nukak-express
Advanced tools
Comparing version 0.1.17 to 0.2.0
@@ -6,3 +6,3 @@ { | ||
"license": "MIT", | ||
"version": "0.1.17", | ||
"version": "0.2.0", | ||
"type": "module", | ||
@@ -20,3 +20,3 @@ "main": "./index.js", | ||
"express": "^4.18.2", | ||
"nukak": "^0.1.0" | ||
"nukak": "^0.2.0" | ||
}, | ||
@@ -63,3 +63,3 @@ "devDependencies": { | ||
}, | ||
"gitHead": "53c61e1572f354da6f550af95cd7b3449929f6a5" | ||
"gitHead": "91b7d683aced1ecdfdbdce0d605ba75fcff675b9" | ||
} |
@@ -30,12 +30,10 @@ import { Router as expressRouter } from 'express'; | ||
}); | ||
router.post('/', async (req, res, next) => { | ||
router.get('/one', async (req, res, next) => { | ||
const { $project: project, ...qm } = req.query; | ||
const querier = await getQuerier(); | ||
try { | ||
await querier.beginTransaction(); | ||
const data = await querier.insertOne(entity, req.body); | ||
await querier.commitTransaction(); | ||
const data = await querier.findOne(entity, qm, project); | ||
res.json({ data }); | ||
} | ||
catch (err) { | ||
await querier.rollbackTransaction(); | ||
next(err); | ||
@@ -47,13 +45,11 @@ } | ||
}); | ||
router.patch('/:id', async (req, res, next) => { | ||
router.get('/:id', async (req, res, next) => { | ||
const { $project: project, ...qm } = req.query; | ||
req.query.$filter[meta.id] = req.params.id; | ||
const querier = await getQuerier(); | ||
try { | ||
await querier.beginTransaction(); | ||
const count = await querier.updateMany(entity, req.query, req.body); | ||
await querier.commitTransaction(); | ||
res.json({ data: req.params.id, count }); | ||
const data = await querier.findOne(entity, qm, project); | ||
res.json({ data }); | ||
} | ||
catch (err) { | ||
await querier.rollbackTransaction(); | ||
next(err); | ||
@@ -65,7 +61,10 @@ } | ||
}); | ||
router.get('/one', async (req, res, next) => { | ||
router.get('/', async (req, res, next) => { | ||
const { $project: project, ...qm } = req.query; | ||
const querier = await getQuerier(); | ||
try { | ||
const data = await querier.findOne(entity, req.query); | ||
res.json({ data }); | ||
const findManyPromise = querier.findMany(entity, qm, project); | ||
const countPromise = req.query.count ? querier.count(entity, qm) : undefined; | ||
const [data, count] = await Promise.all([findManyPromise, countPromise]); | ||
res.json({ data, count }); | ||
} | ||
@@ -92,10 +91,12 @@ catch (err) { | ||
}); | ||
router.get('/:id', async (req, res, next) => { | ||
req.query.$filter[meta.id] = req.params.id; | ||
router.post('/', async (req, res, next) => { | ||
const querier = await getQuerier(); | ||
try { | ||
const data = await querier.findOne(entity, req.query); | ||
await querier.beginTransaction(); | ||
const data = await querier.insertOne(entity, req.body); | ||
await querier.commitTransaction(); | ||
res.json({ data }); | ||
} | ||
catch (err) { | ||
await querier.rollbackTransaction(); | ||
next(err); | ||
@@ -107,11 +108,13 @@ } | ||
}); | ||
router.get('/', async (req, res, next) => { | ||
router.patch('/:id', async (req, res, next) => { | ||
req.query.$filter[meta.id] = req.params.id; | ||
const querier = await getQuerier(); | ||
try { | ||
const findManyPromise = querier.findMany(entity, req.query); | ||
const countPromise = req.query.count ? querier.count(entity, req.query) : 0; | ||
const [data, count] = await Promise.all([findManyPromise, countPromise]); | ||
res.json({ data, count }); | ||
await querier.beginTransaction(); | ||
const changes = await querier.updateMany(entity, req.query, req.body); | ||
await querier.commitTransaction(); | ||
res.json({ data: req.params.id, changes }); | ||
} | ||
catch (err) { | ||
await querier.rollbackTransaction(); | ||
next(err); | ||
@@ -128,7 +131,7 @@ } | ||
await querier.beginTransaction(); | ||
const count = await querier.deleteMany(entity, req.query, { | ||
const changes = await querier.deleteMany(entity, req.query, { | ||
softDelete: !!req.query.softDelete, | ||
}); | ||
await querier.commitTransaction(); | ||
res.json({ data: req.params.id, count }); | ||
res.json({ data: req.params.id, changes }); | ||
} | ||
@@ -147,5 +150,5 @@ catch (err) { | ||
await querier.beginTransaction(); | ||
const count = await querier.deleteMany(entity, req.query, { softDelete: !!req.query.softDelete }); | ||
const changes = await querier.deleteMany(entity, req.query, { softDelete: !!req.query.softDelete }); | ||
await querier.commitTransaction(); | ||
res.json({ count }); | ||
res.json({ changes }); | ||
} | ||
@@ -173,2 +176,2 @@ catch (err) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcmllck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQTBCLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFFL0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFNUMsSUFBSSxRQUFRLEdBQUcsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRXhDLElBQUksT0FBTyxFQUFFO1FBQ1gsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN4RTtJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztLQUNyRTtJQUVELEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtB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WUFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckI7UUFBQyxPQUFPLEdBQVEsRUFBRTtZQUNqQixNQUFNLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNYO2dCQUFTO1lBQ1IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLElBQXFCLEVBQUUsS0FBbUI7SUFDbkUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDNUI7U0FBTSxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUNsRCxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzlCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciBhcyBleHByZXNzUm91dGVyLCB0eXBlIFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IGdldFF1ZXJpZXIgfSBmcm9tICdudWthayc7XG5pbXBvcnQgeyBnZXRFbnRpdGllcywgZ2V0TWV0YSB9IGZyb20gJ251a2FrL2VudGl0eSc7XG5pbXBvcnQgdHlwZSB7IEVudGl0eU1ldGEsIFR5cGUgfSBmcm9tICdudWthay90eXBlJztcbmltcG9ydCB7IGtlYmFiQ2FzZSB9IGZyb20gJ251a2FrL3V0aWwnO1xuaW1wb3J0IHsgcGFyc2VRdWVyeSB9IGZyb20gJy4vcXVlcnkudXRpbC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyaWVyTWlkZGxld2FyZShvcHRzOiBNaWRkbGV3YXJlT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHJvdXRlciA9IGV4cHJlc3NSb3V0ZXIoKTtcblxuICBjb25zdCB7IGluY2x1ZGUsIGV4Y2x1ZGUsIC4uLmV4dHJhIH0gPSBvcHRzO1xuXG4gIGxldCBlbnRpdGllcyA9IGluY2x1ZGUgPz8gZ2V0RW50aXRpZXMoKTtcblxuICBpZiAoZXhjbHVkZSkge1xuICAgIGVudGl0aWVzID0gZW50aXRpZXMuZmlsdGVyKChlbnRpdHkpID0+ICFvcHRzLmV4Y2x1ZGUuaW5jbHVkZXMoZW50aXR5KSk7XG4gIH1cblxuICBpZiAoIWVudGl0aWVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vIGVudGl0aWVzIGZvciB0aGUgbnVrYWsgZXhwcmVzcyBtaWRkbGV3YXJlJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIGNvbnN0IHBhdGggPSBrZWJhYkNhc2UoZW50aXR5Lm5hbWUpO1xuICAgIGNvbnN0IHN1YlJvdXRlciA9IGJ1aWxkUXVlcmllclJvdXRlcihlbnRpdHksIGV4dHJhKTtcbiAgICByb3V0ZXIudXNlKCcvJyArIHBhdGgsIHN1YlJvdXRlcik7XG4gIH1cblxuICByZXR1cm4gcm91dGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyaWVyUm91dGVyPEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRXh0cmFPcHRpb25zKSB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgY29uc3Qgcm91dGVyID0gZXhwcmVzc1JvdXRlcigpO1xuXG4gIHJvdXRlci51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgcHJlKHJlcSwgbWV0YSwgb3B0cyk7XG4gICAgbmV4dCgpO1xuICB9KTtcblxuICByb3V0ZXIucG9zdCgnLycsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHF1ZXJpZXIuaW5zZXJ0T25lKGVudGl0eSwgcmVxLmJvZHkpO1xuICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIucGF0Y2goJy86aWQnLCBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICByZXEucXVlcnkuJGZpbHRlclttZXRhLmlkIGFzIHN0cmluZ10gPSByZXEucGFyYW1zLmlkO1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgY291bnQgPSBhd2FpdCBxdWVyaWVyLnVwZGF0ZU1hbnkoZW50aXR5LCByZXEucXVlcnksIHJlcS5ib2R5KTtcbiAgICAgIGF3YWl0IHF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJlcy5qc29uKHsgZGF0YTogcmVxLnBhcmFtcy5pZCwgY291bnQgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgbmV4dChlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJvdXRlci5nZXQoJy9vbmUnLCBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBxdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcXVlcmllci5maW5kT25lKGVudGl0eSwgcmVxLnF1ZXJ5KTtcbiAgICAgIHJlcy5qc29uKHsgZGF0YSB9KTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbmV4dChlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJvdXRlci5nZXQoJy9jb3VudCcsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgcXVlcmllci5jb3VudChlbnRpdHksIHJlcS5xdWVyeSk7XG4gICAgICByZXMuanNvbih7IGNvdW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnLzppZCcsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcS5xdWVyeS4kZmlsdGVyW21ldGEuaWQgYXMgc3RyaW5nXSA9IHJlcS5wYXJhbXMuaWQ7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHF1ZXJpZXIuZmluZE9uZShlbnRpdHksIHJlcS5xdWVyeSk7XG4gICAgICByZXMuanNvbih7IGRhdGEgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIuZ2V0KCcvJywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmluZE1hbnlQcm9taXNlID0gcXVlcmllci5maW5kTWFueShlbnRpdHksIHJlcS5xdWVyeSk7XG4gICAgICBjb25zdCBjb3VudFByb21pc2UgPSByZXEucXVlcnkuY291bnQgPyBxdWVyaWVyLmNvdW50KGVudGl0eSwgcmVxLnF1ZXJ5KSA6IDA7XG4gICAgICBjb25zdCBbZGF0YSwgY291bnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW2ZpbmRNYW55UHJvbWlzZSwgY291bnRQcm9taXNlXSk7XG4gICAgICByZXMuanNvbih7IGRhdGEsIGNvdW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLmRlbGV0ZSgnLzppZCcsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIHJlcS5xdWVyeS4kZmlsdGVyW21ldGEuaWQgYXMgc3RyaW5nXSA9IHJlcS5wYXJhbXMuaWQ7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcmllci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHF1ZXJpZXIuZGVsZXRlTWFueShlbnRpdHksIHJlcS5xdWVyeSwge1xuICAgICAgICBzb2Z0RGVsZXRlOiAhIXJlcS5xdWVyeS5zb2Z0RGVsZXRlLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBxdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXMuanNvbih7IGRhdGE6IHJlcS5wYXJhbXMuaWQsIGNvdW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIuZGVsZXRlKCcvJywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcmllci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHF1ZXJpZXIuZGVsZXRlTWFueShlbnRpdHksIHJlcS5xdWVyeSwgeyBzb2Z0RGVsZXRlOiAhIXJlcS5xdWVyeS5zb2Z0RGVsZXRlIH0pO1xuICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmVzLmpzb24oeyBjb3VudCB9KTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgYXdhaXQgcXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcjtcbn1cblxuZnVuY3Rpb24gcHJlKHJlcTogUmVxdWVzdCwgbWV0YTogRW50aXR5TWV0YTxhbnk+LCBleHRyYTogRXh0cmFPcHRpb25zKSB7XG4gIGNvbnN0IG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHBhcnNlUXVlcnkocmVxKTtcbiAgZXh0cmEucHJlPy4ocmVxLCBtZXRhKTtcbiAgaWYgKG1ldGhvZCA9PT0gJ1BPU1QnIHx8IG1ldGhvZCA9PT0gJ1BBVENIJyB8fCBtZXRob2QgPT09ICdQVVQnKSB7XG4gICAgZXh0cmEucHJlU2F2ZT8uKHJlcSwgbWV0YSk7XG4gIH0gZWxzZSBpZiAobWV0aG9kID09PSAnR0VUJyB8fCBtZXRob2QgPT09ICdERUxFVEUnKSB7XG4gICAgZXh0cmEucHJlRmlsdGVyPy4ocmVxLCBtZXRhKTtcbiAgfVxufVxuXG50eXBlIEV4dHJhT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIEFsbG93IGF1Z21lbnQgYW55IGtpbmQgb2YgcmVxdWVzdCBiZWZvcmUgaXQgcnVuc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlPzogUHJlO1xuICAvKipcbiAgICogQWxsb3cgYXVnbWVudCBhIHNhdmluZyByZXF1ZXN0IChQT1NULCBQQVRDSCwgUFVUKSBiZWZvcmUgaXQgcnVuc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlU2F2ZT86IFByZVNhdmU7XG4gIC8qKlxuICAgKiBBbGxvdyBhdWdtZW50IGEgZmlsdGVyaW5nIHJlcXVlc3QgKEdFVCwgREVMRVRFKSBiZWZvcmUgaXQgcnVuc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlRmlsdGVyPzogUHJlRmlsdGVyO1xufTtcblxudHlwZSBNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgaW5jbHVkZT86IFR5cGU8YW55PltdO1xuICByZWFkb25seSBleGNsdWRlPzogVHlwZTxhbnk+W107XG59ICYgRXh0cmFPcHRpb25zO1xuXG50eXBlIFByZSA9IDxFID0gYW55PihyZXE6IFJlcXVlc3QsIG1ldGE6IEVudGl0eU1ldGE8RT4pID0+IHZvaWQ7XG50eXBlIFByZVNhdmUgPSA8RSA9IGFueT4ocmVxOiBSZXF1ZXN0LCBtZXRhOiBFbnRpdHlNZXRhPEU+KSA9PiB2b2lkO1xudHlwZSBQcmVGaWx0ZXIgPSA8RSA9IGFueT4ocmVxOiBSZXF1ZXN0LCBtZXRhOiBFbnRpdHlNZXRhPEU+KSA9PiB2b2lkO1xuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcmllck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQTBCLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFFL0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFNUMsSUFBSSxRQUFRLEdBQUcsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRXhDLElBQUksT0FBTyxFQUFFO1FBQ1gsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN4RTtJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztLQUNyRTtJQUVELEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVyIGFzIGV4cHJlc3NSb3V0ZXIsIHR5cGUgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgZ2V0UXVlcmllciB9IGZyb20gJ251a2FrJztcbmltcG9ydCB7IGdldEVudGl0aWVzLCBnZXRNZXRhIH0gZnJvbSAnbnVrYWsvZW50aXR5JztcbmltcG9ydCB0eXBlIHsgRW50aXR5TWV0YSwgUXVlcnksIFR5cGUgfSBmcm9tICdudWthay90eXBlJztcbmltcG9ydCB7IGtlYmFiQ2FzZSB9IGZyb20gJ251a2FrL3V0aWwnO1xuaW1wb3J0IHsgcGFyc2VRdWVyeSB9IGZyb20gJy4vcXVlcnkudXRpbC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyaWVyTWlkZGxld2FyZShvcHRzOiBNaWRkbGV3YXJlT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHJvdXRlciA9IGV4cHJlc3NSb3V0ZXIoKTtcblxuICBjb25zdCB7IGluY2x1ZGUsIGV4Y2x1ZGUsIC4uLmV4dHJhIH0gPSBvcHRzO1xuXG4gIGxldCBlbnRpdGllcyA9IGluY2x1ZGUgPz8gZ2V0RW50aXRpZXMoKTtcblxuICBpZiAoZXhjbHVkZSkge1xuICAgIGVudGl0aWVzID0gZW50aXRpZXMuZmlsdGVyKChlbnRpdHkpID0+ICFvcHRzLmV4Y2x1ZGUuaW5jbHVkZXMoZW50aXR5KSk7XG4gIH1cblxuICBpZiAoIWVudGl0aWVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25vIGVudGl0aWVzIGZvciB0aGUgbnVrYWsgZXhwcmVzcyBtaWRkbGV3YXJlJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIGNvbnN0IHBhdGggPSBrZWJhYkNhc2UoZW50aXR5Lm5hbWUpO1xuICAgIGNvbnN0IHN1YlJvdXRlciA9IGJ1aWxkUXVlcmllclJvdXRlcihlbnRpdHksIGV4dHJhKTtcbiAgICByb3V0ZXIudXNlKCcvJyArIHBhdGgsIHN1YlJvdXRlcik7XG4gIH1cblxuICByZXR1cm4gcm91dGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyaWVyUm91dGVyPEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRXh0cmFPcHRpb25zKSB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgY29uc3Qgcm91dGVyID0gZXhwcmVzc1JvdXRlcigpO1xuXG4gIHJvdXRlci51c2UoKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgcHJlKHJlcSwgbWV0YSwgb3B0cyk7XG4gICAgbmV4dCgpO1xuICB9KTtcblxuICByb3V0ZXIuZ2V0KCcvb25lJywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgeyAkcHJvamVjdDogcHJvamVjdCwgLi4ucW0gfSA9IHJlcS5xdWVyeSBhcyBRdWVyeTxFPjtcbiAgICBjb25zdCBxdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcXVlcmllci5maW5kT25lKGVudGl0eSwgcW0sIHByb2plY3QpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnLzppZCcsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgJHByb2plY3Q6IHByb2plY3QsIC4uLnFtIH0gPSByZXEucXVlcnkgYXMgUXVlcnk8RT47XG4gICAgcmVxLnF1ZXJ5LiRmaWx0ZXJbbWV0YS5pZCBhcyBzdHJpbmddID0gcmVxLnBhcmFtcy5pZDtcbiAgICBjb25zdCBxdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcXVlcmllci5maW5kT25lKGVudGl0eSwgcW0sIHByb2plY3QpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnLycsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgJHByb2plY3Q6IHByb2plY3QsIC4uLnFtIH0gPSByZXEucXVlcnkgYXMgUXVlcnk8RT47XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmluZE1hbnlQcm9taXNlID0gcXVlcmllci5maW5kTWFueShlbnRpdHksIHFtLCBwcm9qZWN0KTtcbiAgICAgIGNvbnN0IGNvdW50UHJvbWlzZSA9IHJlcS5xdWVyeS5jb3VudCA/IHF1ZXJpZXIuY291bnQoZW50aXR5LCBxbSkgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBbZGF0YSwgY291bnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW2ZpbmRNYW55UHJvbWlzZSwgY291bnRQcm9taXNlXSk7XG4gICAgICByZXMuanNvbih7IGRhdGEsIGNvdW50IH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBuZXh0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcm91dGVyLmdldCgnL2NvdW50JywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY291bnQgPSBhd2FpdCBxdWVyaWVyLmNvdW50KGVudGl0eSwgcmVxLnF1ZXJ5KTtcbiAgICAgIHJlcy5qc29uKHsgY291bnQgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIucG9zdCgnLycsIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHF1ZXJpZXIuaW5zZXJ0T25lKGVudGl0eSwgcmVxLmJvZHkpO1xuICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIucGF0Y2goJy86aWQnLCBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICByZXEucXVlcnkuJGZpbHRlclttZXRhLmlkIGFzIHN0cmluZ10gPSByZXEucGFyYW1zLmlkO1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgY2hhbmdlcyA9IGF3YWl0IHF1ZXJpZXIudXBkYXRlTWFueShlbnRpdHksIHJlcS5xdWVyeSwgcmVxLmJvZHkpO1xuICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhOiByZXEucGFyYW1zLmlkLCBjaGFuZ2VzIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIuZGVsZXRlKCcvOmlkJywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgcmVxLnF1ZXJ5LiRmaWx0ZXJbbWV0YS5pZCBhcyBzdHJpbmddID0gcmVxLnBhcmFtcy5pZDtcbiAgICBjb25zdCBxdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24oKTtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBhd2FpdCBxdWVyaWVyLmRlbGV0ZU1hbnkoZW50aXR5LCByZXEucXVlcnksIHtcbiAgICAgICAgc29mdERlbGV0ZTogISFyZXEucXVlcnkuc29mdERlbGV0ZSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmVzLmpzb24oeyBkYXRhOiByZXEucGFyYW1zLmlkLCBjaGFuZ2VzIH0pO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgfVxuICB9KTtcblxuICByb3V0ZXIuZGVsZXRlKCcvJywgYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcmllci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gYXdhaXQgcXVlcmllci5kZWxldGVNYW55KGVudGl0eSwgcmVxLnF1ZXJ5LCB7IHNvZnREZWxldGU6ICEhcmVxLnF1ZXJ5LnNvZnREZWxldGUgfSk7XG4gICAgICBhd2FpdCBxdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXMuanNvbih7IGNoYW5nZXMgfSk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgbmV4dChlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByb3V0ZXI7XG59XG5cbmZ1bmN0aW9uIHByZShyZXE6IFJlcXVlc3QsIG1ldGE6IEVudGl0eU1ldGE8YW55PiwgZXh0cmE6IEV4dHJhT3B0aW9ucykge1xuICBjb25zdCBtZXRob2QgPSByZXEubWV0aG9kO1xuICBwYXJzZVF1ZXJ5KHJlcSk7XG4gIGV4dHJhLnByZT8uKHJlcSwgbWV0YSk7XG4gIGlmIChtZXRob2QgPT09ICdQT1NUJyB8fCBtZXRob2QgPT09ICdQQVRDSCcgfHwgbWV0aG9kID09PSAnUFVUJykge1xuICAgIGV4dHJhLnByZVNhdmU/LihyZXEsIG1ldGEpO1xuICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ0dFVCcgfHwgbWV0aG9kID09PSAnREVMRVRFJykge1xuICAgIGV4dHJhLnByZUZpbHRlcj8uKHJlcSwgbWV0YSk7XG4gIH1cbn1cblxudHlwZSBFeHRyYU9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBBbGxvdyBhdWdtZW50IGFueSBraW5kIG9mIHJlcXVlc3QgYmVmb3JlIGl0IHJ1bnNcbiAgICovXG4gIHJlYWRvbmx5IHByZT86IFByZTtcbiAgLyoqXG4gICAqIEFsbG93IGF1Z21lbnQgYSBzYXZpbmcgcmVxdWVzdCAoUE9TVCwgUEFUQ0gsIFBVVCkgYmVmb3JlIGl0IHJ1bnNcbiAgICovXG4gIHJlYWRvbmx5IHByZVNhdmU/OiBQcmVTYXZlO1xuICAvKipcbiAgICogQWxsb3cgYXVnbWVudCBhIGZpbHRlcmluZyByZXF1ZXN0IChHRVQsIERFTEVURSkgYmVmb3JlIGl0IHJ1bnNcbiAgICovXG4gIHJlYWRvbmx5IHByZUZpbHRlcj86IFByZUZpbHRlcjtcbn07XG5cbnR5cGUgTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBUeXBlPGFueT5bXTtcbiAgcmVhZG9ubHkgZXhjbHVkZT86IFR5cGU8YW55PltdO1xufSAmIEV4dHJhT3B0aW9ucztcblxudHlwZSBQcmUgPSA8RSA9IGFueT4ocmVxOiBSZXF1ZXN0LCBtZXRhOiBFbnRpdHlNZXRhPEU+KSA9PiB2b2lkO1xudHlwZSBQcmVTYXZlID0gPEUgPSBhbnk+KHJlcTogUmVxdWVzdCwgbWV0YTogRW50aXR5TWV0YTxFPikgPT4gdm9pZDtcbnR5cGUgUHJlRmlsdGVyID0gPEUgPSBhbnk+KHJlcTogUmVxdWVzdCwgbWV0YTogRW50aXR5TWV0YTxFPikgPT4gdm9pZDtcbiJdfQ== |
@@ -34,9 +34,9 @@  | ||
| Database | Driver | Nukak Adapter | | ||
| ------------ | ---------------- | ---------------- | | ||
| `MySQL` | `mysql2` | `nukak-mysql` | | ||
| `MariaDB` | `mariadb` | `nukak-maria` | | ||
| `SQLite` | `sqlite sqlite3` | `nukak-sqlite` | | ||
| `PostgreSQL` | `pg` | `nukak-postgres` | | ||
| `MongoDB` | `mongodb` | `nukak-mongo` | | ||
| Database | Driver | Nukak Adapter | | ||
| ------------ | ---------------- | --------------------- | | ||
| `MySQL` | `mysql2` | `nukak-mysql` | | ||
| `MariaDB` | `mariadb` | `nukak-maria` | | ||
| `SQLite` | `sqlite sqlite3` | `nukak-sqlite` | | ||
| `PostgreSQL` | `pg` | `nukak-postgres` | | ||
| `MongoDB` | `mongodb` | `nukak-mongo` (alpha) | | ||
@@ -131,7 +131,10 @@ For example, for `Postgres`: | ||
const querier = await getQuerier(); | ||
const users = await querier.findMany(User, { | ||
$project: ['id', 'name', 'email'], | ||
$sort: { createdAt: -1 }, | ||
$limit: limit, | ||
}); | ||
const users = await querier.findMany( | ||
User, | ||
{ | ||
$sort: { createdAt: -1 }, | ||
$limit: limit, | ||
}, | ||
['id', 'name', 'email'] | ||
); | ||
await querier.release(); | ||
@@ -138,0 +141,0 @@ return users; |
Sorry, the diff of this file is not supported yet
78027
11
224
153