dolphin-server-modules 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/DOLPHIN_MASTER_GUIDE_NEPALI.md +369 -478
  2. package/dist/adapters/mongoose/index.test.d.ts +1 -0
  3. package/dist/adapters/mongoose/index.test.js +103 -0
  4. package/dist/adapters/mongoose/index.test.js.map +1 -0
  5. package/dist/auth/auth.test.d.ts +1 -0
  6. package/dist/auth/auth.test.js +291 -0
  7. package/dist/auth/auth.test.js.map +1 -0
  8. package/dist/authController/authController.test.d.ts +1 -0
  9. package/dist/authController/authController.test.js +361 -0
  10. package/dist/authController/authController.test.js.map +1 -0
  11. package/dist/controller/controller.test.d.ts +1 -0
  12. package/dist/controller/controller.test.js +39 -0
  13. package/dist/controller/controller.test.js.map +1 -0
  14. package/dist/curd/crud.d.ts +2 -0
  15. package/dist/curd/crud.js +83 -24
  16. package/dist/curd/crud.js.map +1 -1
  17. package/dist/curd/crud.test.d.ts +1 -0
  18. package/dist/curd/crud.test.js +163 -0
  19. package/dist/curd/crud.test.js.map +1 -0
  20. package/dist/djson/djson.d.ts +42 -0
  21. package/dist/djson/djson.js +318 -0
  22. package/dist/djson/djson.js.map +1 -0
  23. package/dist/index.d.ts +1 -5
  24. package/dist/index.js +1 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/middleware/zod.test.d.ts +1 -0
  27. package/dist/middleware/zod.test.js +76 -0
  28. package/dist/middleware/zod.test.js.map +1 -0
  29. package/dist/realtime/core.d.ts +27 -28
  30. package/dist/realtime/core.js +297 -65
  31. package/dist/realtime/core.js.map +1 -1
  32. package/dist/realtime/index.d.ts +1 -1
  33. package/dist/realtime/index.js +1 -1
  34. package/dist/realtime/index.js.map +1 -1
  35. package/dist/realtime/plugins.d.ts +17 -4
  36. package/dist/realtime/plugins.js +300 -14
  37. package/dist/realtime/plugins.js.map +1 -1
  38. package/dist/realtime/realtime.test.d.ts +1 -0
  39. package/dist/realtime/realtime.test.js +271 -0
  40. package/dist/realtime/realtime.test.js.map +1 -0
  41. package/package.json +4 -2
  42. package/dist/router/router.d.ts +0 -26
  43. package/dist/router/router.js +0 -71
  44. package/dist/router/router.js.map +0 -1
  45. package/dist/server/server.d.ts +0 -23
  46. package/dist/server/server.js +0 -219
  47. package/dist/server/server.js.map +0 -1
package/dist/curd/crud.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // crud-lite.ts — World-class lightweight CRUD (2026 style, full-featured)
3
- // Compatible with your auth DatabaseAdapter
3
+ // Refactored with Mongoose Adapter compatibility
4
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
6
6
  };
@@ -8,11 +8,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.createCRUD = createCRUD;
9
9
  exports.createCrudController = createCrudController;
10
10
  const node_crypto_1 = __importDefault(require("node:crypto"));
11
+ // ===== HELPER: ID Mapping for Mongoose Compatibility =====
12
+ const translateId = (query) => {
13
+ if (!query)
14
+ return query;
15
+ // Handle direct id field
16
+ if (query.id !== undefined) {
17
+ query._id = query.id;
18
+ delete query.id;
19
+ }
20
+ // Handle nested operators
21
+ const operators = ['$and', '$or'];
22
+ for (const op of operators) {
23
+ if (query[op] && Array.isArray(query[op])) {
24
+ query[op] = query[op].map((subQuery) => translateId(subQuery));
25
+ }
26
+ }
27
+ return query;
28
+ };
29
+ // ===== HELPER: Safe Method Call with Fallbacks =====
30
+ const safeUpdate = async (db, collection, filter, data) => {
31
+ const updateMethod = db.update || db.updateOne;
32
+ if (!updateMethod) {
33
+ throw new Error('Database adapter must implement update() or updateOne()');
34
+ }
35
+ return updateMethod.call(db, collection, translateId(filter), data);
36
+ };
37
+ const safeDelete = async (db, collection, filter) => {
38
+ const deleteMethod = db.delete || db.deleteOne;
39
+ if (!deleteMethod) {
40
+ throw new Error('Database adapter must implement delete() or deleteOne()');
41
+ }
42
+ return deleteMethod.call(db, collection, translateId(filter));
43
+ };
11
44
  // ===== CRUD Factory =====
12
45
  function createCRUD(db, options = {}) {
13
46
  const { enforceOwnership = true, softDelete = false, defaultLimit = 100 } = options;
14
47
  const generateId = () => node_crypto_1.default.randomBytes(12).toString('hex');
15
48
  const applyOwnership = (query, userId) => {
49
+ // 🔒 Security: If enforceOwnership is true but userId is undefined, return empty filter
50
+ if (enforceOwnership && !userId) {
51
+ // This will cause queries to return empty results
52
+ return { _id: { $eq: null } };
53
+ }
16
54
  if (!enforceOwnership || !userId)
17
55
  return query;
18
56
  return { ...query, userId: { $eq: userId } };
@@ -102,27 +140,33 @@ function createCRUD(db, options = {}) {
102
140
  ...(userId && { userId }),
103
141
  ...item
104
142
  }));
105
- const results = [];
106
- for (const doc of docs) {
107
- results.push(await db.create(collection, doc));
108
- }
143
+ // 🚀 Performance: Use Promise.all for parallel execution
144
+ const results = await Promise.all(docs.map(doc => db.create(collection, doc)));
109
145
  return results;
110
146
  },
111
147
  async readOne(collection, id, userId) {
148
+ // 🔒 Security: If enforceOwnership true & userId undefined, return null immediately
149
+ if (enforceOwnership && !userId)
150
+ return null;
112
151
  const filter = applyOwnership({ id }, userId);
113
- const results = await db.read(collection, filter);
152
+ const translatedFilter = translateId(filter);
153
+ const results = await db.read(collection, translatedFilter);
114
154
  const filtered = applySoftDelete(results);
115
155
  return filtered[0] || null;
116
156
  },
117
157
  async read(collection, filter = {}, options = {}, userId) {
158
+ // 🔒 Security: If enforceOwnership true & userId undefined, return empty array immediately
159
+ if (enforceOwnership && !userId)
160
+ return [];
118
161
  const safeFilter = applyOwnership(filter, userId);
162
+ const translatedFilter = translateId(safeFilter);
119
163
  let items = [];
120
164
  if (db.advancedRead) {
121
- items = await db.advancedRead(collection, safeFilter, options);
165
+ items = await db.advancedRead(collection, translatedFilter, options);
122
166
  }
123
167
  else {
124
168
  const raw = await db.read(collection, {});
125
- items = applySoftDelete(raw).filter(i => matchFilter(i, safeFilter));
169
+ items = applySoftDelete(raw).filter(i => matchFilter(i, translatedFilter));
126
170
  }
127
171
  if (options.sort)
128
172
  items = applySort(items, options.sort);
@@ -134,66 +178,81 @@ function createCRUD(db, options = {}) {
134
178
  return items;
135
179
  },
136
180
  async updateOne(collection, id, data, userId) {
181
+ // 🔒 Security: If enforceOwnership true & userId undefined, return null immediately
182
+ if (enforceOwnership && !userId)
183
+ return null;
137
184
  const filter = applyOwnership({ id }, userId);
138
- const results = await db.read(collection, filter);
185
+ const results = await db.read(collection, translateId(filter));
139
186
  if (results.length === 0)
140
187
  return null;
141
188
  const updateData = { ...data, updatedAt: new Date().toISOString() };
142
- await db.update(collection, filter, updateData);
189
+ await safeUpdate(db, collection, filter, updateData);
143
190
  return { ...results[0], ...updateData };
144
191
  },
145
192
  async updateMany(collection, filter, data, userId) {
193
+ // 🔒 Security: If enforceOwnership true & userId undefined, return 0 immediately
194
+ if (enforceOwnership && !userId)
195
+ return 0;
146
196
  const safeFilter = applyOwnership(filter, userId);
147
197
  const items = await this.read(collection, safeFilter, {}, userId);
148
198
  const updateData = { ...data, updatedAt: new Date().toISOString() };
149
- for (const item of items) {
150
- await db.update(collection, { id: item.id }, updateData);
151
- }
199
+ // 🚀 Performance: Use Promise.all for parallel execution
200
+ await Promise.all(items.map(item => safeUpdate(db, collection, { id: item.id }, updateData)));
152
201
  return items.length;
153
202
  },
154
203
  async deleteOne(collection, id, userId) {
204
+ // 🔒 Security: If enforceOwnership true & userId undefined, return null immediately
205
+ if (enforceOwnership && !userId)
206
+ return null;
155
207
  const filter = applyOwnership({ id }, userId);
156
- const results = await db.read(collection, filter);
208
+ const results = await db.read(collection, translateId(filter));
157
209
  if (results.length === 0)
158
210
  return null;
159
211
  if (softDelete) {
160
- await db.update(collection, filter, { deletedAt: new Date().toISOString() });
212
+ await safeUpdate(db, collection, filter, { deletedAt: new Date().toISOString() });
161
213
  return results[0];
162
214
  }
163
215
  else {
164
- await db.delete(collection, filter);
216
+ await safeDelete(db, collection, filter);
165
217
  return results[0];
166
218
  }
167
219
  },
168
220
  async deleteMany(collection, filter, userId) {
221
+ // 🔒 Security: If enforceOwnership true & userId undefined, return 0 immediately
222
+ if (enforceOwnership && !userId)
223
+ return 0;
169
224
  const safeFilter = applyOwnership(filter, userId);
170
225
  const items = await this.read(collection, safeFilter, {}, userId);
171
226
  if (softDelete) {
172
- for (const item of items) {
173
- await db.update(collection, { id: item.id }, { deletedAt: new Date().toISOString() });
174
- }
227
+ // 🚀 Performance: Use Promise.all for parallel execution
228
+ await Promise.all(items.map(item => safeUpdate(db, collection, { id: item.id }, { deletedAt: new Date().toISOString() })));
175
229
  }
176
230
  else {
177
- await db.delete(collection, safeFilter);
231
+ await safeDelete(db, collection, translateId(safeFilter));
178
232
  }
179
233
  return items.length;
180
234
  },
181
235
  async restore(collection, id, userId) {
182
236
  if (!softDelete)
183
237
  throw new Error('Soft delete not enabled');
238
+ // 🔒 Security: If enforceOwnership true & userId undefined, return null immediately
239
+ if (enforceOwnership && !userId)
240
+ return null;
184
241
  const filter = applyOwnership({ id, deletedAt: { $ne: null } }, userId);
185
- const results = await db.read(collection, filter);
242
+ const results = await db.read(collection, translateId(filter));
186
243
  if (results.length === 0)
187
244
  return null;
188
- // ✅ FIX: Set deletedAt to null to explicitly restore
189
245
  const updateData = { ...results[0], deletedAt: null, updatedAt: new Date().toISOString() };
190
- await db.update(collection, filter, updateData);
246
+ await safeUpdate(db, collection, filter, updateData);
191
247
  return this.readOne(collection, id, userId);
192
248
  },
193
249
  async count(collection, filter = {}, userId) {
250
+ // 🔒 Security: If enforceOwnership true & userId undefined, return 0 immediately
251
+ if (enforceOwnership && !userId)
252
+ return 0;
194
253
  const safeFilter = applyOwnership(filter, userId);
195
254
  const raw = await db.read(collection, {});
196
- return applySoftDelete(raw).filter(i => matchFilter(i, safeFilter)).length;
255
+ return applySoftDelete(raw).filter(i => matchFilter(i, translateId(safeFilter))).length;
197
256
  },
198
257
  async exists(collection, filter, userId) {
199
258
  const count = await this.count(collection, filter, userId);
@@ -1 +1 @@
1
- {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,iDAAiD;;;;;AAsFjD,gCAyPC;AAGD,oDAoDC;AApYD,8DAAiC;AA6CjC,4DAA4D;AAC5D,MAAM,WAAW,GAAG,CAAC,KAAU,EAAO,EAAE;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,yBAAyB;IACzB,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,UAAU,GAAG,KAAK,EAAE,EAAmB,EAAE,UAAkB,EAAE,MAAW,EAAE,IAAS,EAAgB,EAAE;IACzG,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,EAAmB,EAAE,UAAkB,EAAE,MAAW,EAAgB,EAAE;IAC9F,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,2BAA2B;AAC3B,SAAgB,UAAU,CACxB,EAAmB,EACnB,UAAuF,EAAE;IAEzF,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,YAAY,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAEpF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,qBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,cAAc,GAAG,CAAyB,KAAqB,EAAE,MAAe,EAAkB,EAAE;QACxG,wFAAwF;QACxF,IAAI,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,kDAAkD;YAClD,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAS,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAyB,IAAS,EAAE,MAAsB,EAAW,EAAE;QACzF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,GAAQ,EAAE,IAAS,EAAW,EAAE;YAC1D,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,GAAG,KAAK,SAAS,CAAC;YACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC;YAClD,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;YAC3C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;YAC3C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChF,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAS,MAAc,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YAC1F,CAAC;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAU,EAAO,EAAE;QAC1C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,IAAwC,EAAE,EAAE;QACzE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAgB,EAAE,MAAe;YAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,EAAE,EAAE,UAAU,EAAE;gBAChB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,GAAG,IAAI;aACH,CAAC;YACP,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,KAAwB,EAAE,MAAe;YAC5E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,EAAE,EAAE,UAAU,EAAE;gBAChB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,GAAG,IAAI;aACR,CAAC,CAAQ,CAAC;YAEX,yDAAyD;YACzD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC3D,oFAAoF;YACpF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAE7C,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,SAAyB,EAAE,EAC3B,UAA6B,EAAE,EAC/B,MAAe;YAEf,2FAA2F;YAC3F,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YAE3C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,KAAK,GAAQ,EAAE,CAAC;YAEpB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAK,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1C,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAE,IAAgB,EAAE,MAAe;YAC/E,oFAAoF;YACpF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAE7C,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACpE,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACrD,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAO,CAAC;QAC/C,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,MAAsB,EAAE,IAAgB,EAAE,MAAe;YAC5F,iFAAiF;YACjF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAEpE,yDAAyD;YACzD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACjC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CACxD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC7D,oFAAoF;YACpF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAE7C,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAClF,OAAO,OAAO,CAAC,CAAC,CAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACzC,OAAO,OAAO,CAAC,CAAC,CAAM,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,MAAsB,EAAE,MAAe;YAC1E,iFAAiF;YACjF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAElE,IAAI,UAAU,EAAE,CAAC;gBACf,yDAAyD;gBACzD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACjC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CACrF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC3D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5D,oFAAoF;YACpF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAE7C,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3F,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,SAAyB,EAAE,EAAE,MAAe;YAC1E,iFAAiF;YACjF,IAAI,gBAAgB,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1F,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,MAAsB,EAAE,MAAe;YACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,OAAO,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,SAAyB,EAAE,EAC3B,OAAe,CAAC,EAChB,QAAgB,YAAY,EAC5B,MAAe;YAEf,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE3D,OAAO;gBACL,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,KAAK;gBACL,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpC,OAAO,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK;gBAC7B,OAAO,EAAE,IAAI,GAAG,CAAC;aAClB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAgB,oBAAoB,CAClC,kBAAuB,EACvB,cAAuB;IAEvB,IAAI,OAAwB,CAAC;IAC7B,IAAI,UAAkB,CAAC;IAEvB,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,GAAG,kBAAkB,CAAC;QAC7B,UAAU,GAAG,cAAc,CAAC;IAC9B,CAAC;SAAM,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAC7F,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACrC,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;IAC5H,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAI,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;gBACtD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9C,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crud_1 = require("./crud");
4
+ class MockDB {
5
+ data = {};
6
+ async createUser() { return {}; }
7
+ async findUserByEmail() { return {}; }
8
+ async findUserById() { return {}; }
9
+ async updateUser() { return {}; }
10
+ async saveRefreshToken() { }
11
+ async findRefreshToken() { }
12
+ async deleteRefreshToken() { }
13
+ async create(collection, doc) {
14
+ if (!this.data[collection])
15
+ this.data[collection] = [];
16
+ this.data[collection].push(doc);
17
+ return doc;
18
+ }
19
+ async read(collection, query) {
20
+ return this.data[collection] || [];
21
+ }
22
+ async update(collection, query, data) {
23
+ if (!this.data[collection])
24
+ return null;
25
+ const docIndex = this.data[collection].findIndex(d => d.id === query.id);
26
+ if (docIndex === -1 && query.id)
27
+ return null;
28
+ // For many
29
+ for (let i = 0; i < this.data[collection].length; i++) {
30
+ if (!query.id || this.data[collection][i].id === query.id) {
31
+ this.data[collection][i] = { ...this.data[collection][i], ...data };
32
+ }
33
+ }
34
+ return data;
35
+ }
36
+ async delete(collection, query) {
37
+ if (!this.data[collection])
38
+ return null;
39
+ // Just simple mock for id match or flush
40
+ if (query.id) {
41
+ this.data[collection] = this.data[collection].filter(d => d.id !== query.id?.['$eq'] && d.id !== query.id);
42
+ }
43
+ else {
44
+ this.data[collection] = [];
45
+ }
46
+ return true;
47
+ }
48
+ }
49
+ describe('CRUD Factory', () => {
50
+ let db;
51
+ beforeEach(() => {
52
+ db = new MockDB();
53
+ });
54
+ it('creates and reads documents with softdelete enabled', async () => {
55
+ const crud = (0, crud_1.createCRUD)(db, { softDelete: true, enforceOwnership: false });
56
+ const user = 'user_1';
57
+ const doc1 = await crud.create('posts', { title: 'Hello', rating: 5 }, user);
58
+ expect(doc1.title).toBe('Hello');
59
+ expect(doc1.userId).toBe(user);
60
+ const doc2 = await crud.create('posts', { title: 'World', rating: 4 }, user);
61
+ let list = await crud.read('posts');
62
+ expect(list.length).toBe(2);
63
+ // Delete one
64
+ await crud.deleteOne('posts', doc1.id);
65
+ list = await crud.read('posts');
66
+ expect(list.length).toBe(1); // One is soft deleted
67
+ // Restore
68
+ await crud.restore('posts', doc1.id);
69
+ list = await crud.read('posts');
70
+ expect(list.length).toBe(2); // Restored
71
+ });
72
+ it('applies complex filters correctly', async () => {
73
+ const crud = (0, crud_1.createCRUD)(db, { enforceOwnership: false });
74
+ await crud.createMany('items', [
75
+ { category: 'A', price: 10 },
76
+ { category: 'A', price: 20 },
77
+ { category: 'B', price: 15 },
78
+ { category: 'B', price: 5 }
79
+ ]);
80
+ const res1 = await crud.read('items', { category: { $in: ['A'] } });
81
+ expect(res1.length).toBe(2);
82
+ const res2 = await crud.read('items', { price: { $gt: 10 } });
83
+ expect(res2.length).toBe(2);
84
+ const res3 = await crud.read('items', {
85
+ $or: [
86
+ { price: { $lte: 5 } },
87
+ { category: 'A' }
88
+ ]
89
+ });
90
+ expect(res3.length).toBe(3); // A items + price<=5
91
+ });
92
+ it('supports pagination and sorting', async () => {
93
+ const crud = (0, crud_1.createCRUD)(db, { enforceOwnership: false });
94
+ await crud.createMany('scores', [
95
+ { p: 10 }, { p: 50 }, { p: 20 }, { p: 30 }
96
+ ]);
97
+ const page1 = await crud.paginate('scores', {}, 1, 2);
98
+ expect(page1.items.length).toBe(2);
99
+ expect(page1.total).toBe(4);
100
+ expect(page1.totalPages).toBe(2);
101
+ expect(page1.hasNext).toBe(true);
102
+ const sorted = await crud.read('scores', {}, { sort: { p: 'desc' } });
103
+ expect(sorted[0].p).toBe(50);
104
+ expect(sorted[3].p).toBe(10);
105
+ });
106
+ });
107
+ describe('CRUD Controller', () => {
108
+ let db;
109
+ beforeEach(() => {
110
+ db = new MockDB();
111
+ });
112
+ const mockCtx = (overrides = {}) => ({
113
+ query: {},
114
+ params: {},
115
+ body: {},
116
+ req: { user: { id: 'user_1' } },
117
+ json: jest.fn(),
118
+ status: jest.fn().mockReturnThis(),
119
+ ...overrides
120
+ });
121
+ it('handles getAll with query filters', async () => {
122
+ const adapter = new MockDB();
123
+ await adapter.create('posts', { id: '1', title: 'A', userId: 'user_1' });
124
+ await adapter.create('posts', { id: '2', title: 'B', userId: 'user_1' });
125
+ // Model metadata format
126
+ const model = { adapter, collection: 'posts' };
127
+ const controller = require('./crud').createCrudController(model);
128
+ const ctx = mockCtx({ query: { title: 'A' } });
129
+ await controller.getAll(ctx);
130
+ expect(ctx.json).toHaveBeenCalledWith(expect.arrayContaining([expect.objectContaining({ title: 'A' })]));
131
+ expect(ctx.json.mock.calls[0][0].length).toBe(1);
132
+ });
133
+ it('handles create and returns 201', async () => {
134
+ const adapter = new MockDB();
135
+ const model = { adapter, collection: 'items' };
136
+ const controller = require('./crud').createCrudController(model);
137
+ const ctx = mockCtx({ body: { name: 'New Item' } });
138
+ await controller.create(ctx);
139
+ expect(ctx.status).toHaveBeenCalledWith(201);
140
+ expect(ctx.json).toHaveBeenCalledWith(expect.objectContaining({ name: 'New Item', userId: 'user_1' }));
141
+ });
142
+ it('handles getOne and returns 404 if not found', async () => {
143
+ const adapter = new MockDB();
144
+ const model = { adapter, collection: 'items' };
145
+ const controller = require('./crud').createCrudController(model);
146
+ const ctx = mockCtx({ params: { id: 'nonexistent' } });
147
+ await controller.getOne(ctx);
148
+ expect(ctx.status).toHaveBeenCalledWith(404);
149
+ expect(ctx.json).toHaveBeenCalledWith({ error: 'Not Found' });
150
+ });
151
+ it('handles delete and returns success', async () => {
152
+ const adapter = new MockDB();
153
+ const doc = await adapter.create('items', { id: '123', userId: 'user_1' });
154
+ const model = { adapter, collection: 'items' };
155
+ const controller = require('./crud').createCrudController(model);
156
+ const ctx = mockCtx({ params: { id: '123' } });
157
+ await controller.delete(ctx);
158
+ expect(ctx.json).toHaveBeenCalledWith(expect.objectContaining({ success: true }));
159
+ const remaining = await adapter.read('items', { id: '123' });
160
+ expect(remaining.length).toBe(0);
161
+ });
162
+ });
163
+ //# sourceMappingURL=crud.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.test.js","sourceRoot":"","sources":["../../curd/crud.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export type InputFormat = 'json' | 'querystring' | 'keyvalue' | 'hex' | 'base64' | 'plain';
2
+ export type OutputFormat = 'json' | 'querystring' | 'keyvalue' | 'hex' | 'base64' | 'buffer';
3
+ export interface DJSONOptions {
4
+ strict?: boolean;
5
+ autoDetect?: boolean;
6
+ }
7
+ export interface ParseResult {
8
+ success: boolean;
9
+ data: any;
10
+ format?: InputFormat;
11
+ error?: string;
12
+ timestamp: number;
13
+ }
14
+ export declare class DJSON {
15
+ private static opts;
16
+ static configure(o: Partial<DJSONOptions>): void;
17
+ static parse(data: any, format?: InputFormat): any;
18
+ static parseSafe(data: any, format?: InputFormat): ParseResult;
19
+ private static autoDetect;
20
+ private static parseWithFormat;
21
+ private static parseJSON;
22
+ private static parseQS;
23
+ private static parseKV;
24
+ private static parseHex;
25
+ private static parseB64;
26
+ private static parseValue;
27
+ static encode(data: any, fmt?: OutputFormat): string | Buffer;
28
+ private static toQS;
29
+ private static toKV;
30
+ private static toHex;
31
+ private static toB64;
32
+ private static toBuffer;
33
+ }
34
+ export declare const djson: (data: any, format?: InputFormat) => any;
35
+ export declare const djsonSafe: (data: any, format?: InputFormat) => ParseResult;
36
+ export declare const dencode: (data: any, format?: OutputFormat) => string | Buffer<ArrayBufferLike>;
37
+ export declare const toBuffer: (data: any) => Buffer;
38
+ export declare const toQueryString: (data: any) => string;
39
+ export declare const toKeyValue: (data: any) => string;
40
+ export declare const toHex: (data: any) => string;
41
+ export declare const toBase64: (data: any) => string;
42
+ export default DJSON;