@bedrockio/model 0.19.3 → 0.20.1

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 (95) hide show
  1. package/.claude/settings.local.json +22 -1
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +29 -0
  4. package/dist/cjs/schema.js +9 -3
  5. package/package.json +3 -3
  6. package/src/schema.js +9 -3
  7. package/tsconfig.validate.json +8 -0
  8. package/types/generated/access.d.ts.map +1 -0
  9. package/types/{assign.d.ts.map → generated/assign.d.ts.map} +1 -1
  10. package/types/{cache.d.ts.map → generated/cache.d.ts.map} +1 -1
  11. package/types/{clone.d.ts.map → generated/clone.d.ts.map} +1 -1
  12. package/types/generated/const.d.ts.map +1 -0
  13. package/types/generated/delete-hooks.d.ts.map +1 -0
  14. package/types/{disallowed.d.ts.map → generated/disallowed.d.ts.map} +1 -1
  15. package/types/generated/env.d.ts.map +1 -0
  16. package/types/generated/errors.d.ts.map +1 -0
  17. package/types/{export.d.ts.map → generated/export.d.ts.map} +1 -1
  18. package/types/{hydrate.d.ts.map → generated/hydrate.d.ts.map} +1 -1
  19. package/types/generated/include.d.ts.map +1 -0
  20. package/types/generated/index.d.ts +7 -0
  21. package/types/{index.d.ts.map → generated/index.d.ts.map} +1 -1
  22. package/types/generated/load.d.ts.map +1 -0
  23. package/types/{query.d.ts.map → generated/query.d.ts.map} +1 -1
  24. package/types/{reload.d.ts.map → generated/reload.d.ts.map} +1 -1
  25. package/types/generated/schema.d.ts +12 -0
  26. package/types/generated/schema.d.ts.map +1 -0
  27. package/types/{search.d.ts → generated/search.d.ts} +7 -2
  28. package/types/generated/search.d.ts.map +1 -0
  29. package/types/generated/serialization.d.ts.map +1 -0
  30. package/types/generated/slug.d.ts.map +1 -0
  31. package/types/generated/soft-delete.d.ts.map +1 -0
  32. package/types/generated/testing.d.ts.map +1 -0
  33. package/types/{upsert.d.ts.map → generated/upsert.d.ts.map} +1 -1
  34. package/types/generated/utils.d.ts.map +1 -0
  35. package/types/{validation-schemas.d.ts → generated/validation-schemas.d.ts} +28 -8
  36. package/types/generated/validation-schemas.d.ts.map +1 -0
  37. package/types/generated/validation.d.ts.map +1 -0
  38. package/types/generated/warn.d.ts.map +1 -0
  39. package/types/index.d.ts +22 -7
  40. package/types/modules/assign.d.ts +22 -0
  41. package/types/modules/cache.d.ts +31 -0
  42. package/types/modules/clone.d.ts +18 -0
  43. package/types/modules/delete-hooks.d.ts +33 -0
  44. package/types/modules/export.d.ts +17 -0
  45. package/types/modules/hydrate.d.ts +37 -0
  46. package/types/modules/include.d.ts +92 -0
  47. package/types/modules/reload.d.ts +17 -0
  48. package/types/modules/search.d.ts +137 -0
  49. package/types/modules/slug.d.ts +80 -0
  50. package/types/modules/soft-delete.d.ts +458 -0
  51. package/types/modules/upsert.d.ts +67 -0
  52. package/types/modules/validation.d.ts +145 -0
  53. package/types/access.d.ts.map +0 -1
  54. package/types/const.d.ts.map +0 -1
  55. package/types/delete-hooks.d.ts.map +0 -1
  56. package/types/env.d.ts.map +0 -1
  57. package/types/errors.d.ts.map +0 -1
  58. package/types/include.d.ts.map +0 -1
  59. package/types/load.d.ts.map +0 -1
  60. package/types/references.d.ts +0 -2
  61. package/types/references.d.ts.map +0 -1
  62. package/types/schema.d.ts +0 -76
  63. package/types/schema.d.ts.map +0 -1
  64. package/types/search.d.ts.map +0 -1
  65. package/types/serialization.d.ts.map +0 -1
  66. package/types/slug.d.ts.map +0 -1
  67. package/types/soft-delete.d.ts.map +0 -1
  68. package/types/testing.d.ts.map +0 -1
  69. package/types/utils.d.ts.map +0 -1
  70. package/types/validation-schemas.d.ts.map +0 -1
  71. package/types/validation.d.ts.map +0 -1
  72. package/types/warn.d.ts.map +0 -1
  73. /package/types/{access.d.ts → generated/access.d.ts} +0 -0
  74. /package/types/{assign.d.ts → generated/assign.d.ts} +0 -0
  75. /package/types/{cache.d.ts → generated/cache.d.ts} +0 -0
  76. /package/types/{clone.d.ts → generated/clone.d.ts} +0 -0
  77. /package/types/{const.d.ts → generated/const.d.ts} +0 -0
  78. /package/types/{delete-hooks.d.ts → generated/delete-hooks.d.ts} +0 -0
  79. /package/types/{disallowed.d.ts → generated/disallowed.d.ts} +0 -0
  80. /package/types/{env.d.ts → generated/env.d.ts} +0 -0
  81. /package/types/{errors.d.ts → generated/errors.d.ts} +0 -0
  82. /package/types/{export.d.ts → generated/export.d.ts} +0 -0
  83. /package/types/{hydrate.d.ts → generated/hydrate.d.ts} +0 -0
  84. /package/types/{include.d.ts → generated/include.d.ts} +0 -0
  85. /package/types/{load.d.ts → generated/load.d.ts} +0 -0
  86. /package/types/{query.d.ts → generated/query.d.ts} +0 -0
  87. /package/types/{reload.d.ts → generated/reload.d.ts} +0 -0
  88. /package/types/{serialization.d.ts → generated/serialization.d.ts} +0 -0
  89. /package/types/{slug.d.ts → generated/slug.d.ts} +0 -0
  90. /package/types/{soft-delete.d.ts → generated/soft-delete.d.ts} +0 -0
  91. /package/types/{testing.d.ts → generated/testing.d.ts} +0 -0
  92. /package/types/{upsert.d.ts → generated/upsert.d.ts} +0 -0
  93. /package/types/{utils.d.ts → generated/utils.d.ts} +0 -0
  94. /package/types/{validation.d.ts → generated/validation.d.ts} +0 -0
  95. /package/types/{warn.d.ts → generated/warn.d.ts} +0 -0
@@ -0,0 +1,458 @@
1
+ import type { HydratedDocument } from 'mongoose';
2
+
3
+ declare module 'mongoose' {
4
+ interface Model<
5
+ TRawDocType,
6
+ TQueryHelpers = {},
7
+ TInstanceMethods = {},
8
+ TVirtuals = {},
9
+ THydratedDocumentType = HydratedDocument<
10
+ TRawDocType,
11
+ TVirtuals & TInstanceMethods,
12
+ TQueryHelpers,
13
+ TVirtuals
14
+ >,
15
+ TSchema = any,
16
+ > {
17
+ /**
18
+ * Soft deletes one document by setting deleted=true and deletedAt timestamp.
19
+ *
20
+ * @param {Object} filter - Query filter
21
+ * @param {Object} [options] - MongoDB options
22
+ *
23
+ * @returns {Promise<Object>}
24
+ *
25
+ * | | | |
26
+ * |---|---|---|
27
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
28
+ * | `deletedCount` | `number` | Number of documents deleted |
29
+ *
30
+ * @example
31
+ * ```js
32
+ * const result = await User.deleteOne({
33
+ * email: 'user@example.com'
34
+ * });
35
+ * ```
36
+ *
37
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
38
+ */
39
+ deleteOne(
40
+ filter: any,
41
+ options?: any,
42
+ ): Promise<{ acknowledged: boolean; deletedCount: number }>;
43
+
44
+ /**
45
+ * Soft deletes multiple documents by setting deleted=true and deletedAt timestamp.
46
+ *
47
+ * @param {Object} filter - Query filter
48
+ * @param {Object} [options] - MongoDB options
49
+ *
50
+ * @returns {Promise<Object>}
51
+ *
52
+ * | | | |
53
+ * |---|---|---|
54
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
55
+ * | `deletedCount` | `number` | Number of documents deleted |
56
+ *
57
+ * @example
58
+ * ```js
59
+ * const result = await User.deleteMany({
60
+ * inactive: true
61
+ * });
62
+ * ```
63
+ *
64
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
65
+ */
66
+ deleteMany(
67
+ filter: any,
68
+ options?: any,
69
+ ): Promise<{ acknowledged: boolean; deletedCount: number }>;
70
+
71
+ /**
72
+ * Finds and soft deletes one document, returning the deleted document.
73
+ *
74
+ * @param {Object} filter - Query filter
75
+ * @param {Object} [options] - MongoDB options
76
+ *
77
+ * @returns {Promise<Document|null>} - The deleted document or null
78
+ *
79
+ * @example
80
+ * ```js
81
+ * const user = await User.findOneAndDelete({
82
+ * email: 'user@example.com'
83
+ * });
84
+ * ```
85
+ *
86
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
87
+ */
88
+ findOneAndDelete(filter: any, options?: any): Promise<any>;
89
+
90
+ /**
91
+ * Restores one soft-deleted document by setting deleted=false and unsetting deletedAt.
92
+ *
93
+ * @param {Object} filter - Query filter
94
+ * @param {Object} [options] - MongoDB options
95
+ *
96
+ * @returns {Promise<Object>}
97
+ *
98
+ * | | | |
99
+ * |---|---|---|
100
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
101
+ * | `restoredCount` | `number` | Number of documents restored |
102
+ *
103
+ * @example
104
+ * ```js
105
+ * const result = await User.restoreOne({
106
+ * email: 'user@example.com'
107
+ * });
108
+ * ```
109
+ *
110
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
111
+ */
112
+ restoreOne(
113
+ filter: any,
114
+ options?: any,
115
+ ): Promise<{ acknowledged: boolean; restoredCount: number }>;
116
+
117
+ /**
118
+ * Restores multiple soft-deleted documents by setting deleted=false and unsetting deletedAt.
119
+ *
120
+ * @param {Object} filter - Query filter
121
+ * @param {Object} [options] - MongoDB options
122
+ *
123
+ * @returns {Promise<Object>}
124
+ *
125
+ * | | | |
126
+ * |---|---|---|
127
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
128
+ * | `restoredCount` | `number` | Number of documents restored |
129
+ *
130
+ * @example
131
+ * ```js
132
+ * const result = await User.restoreMany({
133
+ * deletedAt: {
134
+ * $gte: oneWeekAgo
135
+ * }
136
+ * });
137
+ * ```
138
+ *
139
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
140
+ */
141
+ restoreMany(
142
+ filter: any,
143
+ options?: any,
144
+ ): Promise<{ acknowledged: boolean; restoredCount: number }>;
145
+
146
+ /**
147
+ * Permanently deletes one document from the database (hard delete).
148
+ *
149
+ * @param {Object} conditions - Query conditions
150
+ * @param {Object} [options] - MongoDB options
151
+ *
152
+ * @returns {Promise<Object>}
153
+ *
154
+ * | | | |
155
+ * |---|---|---|
156
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
157
+ * | `destroyedCount` | `number` | Number of documents destroyed |
158
+ *
159
+ * @example
160
+ * ```js
161
+ * const result = await User.destroyOne({
162
+ * email: 'user@example.com'
163
+ * });
164
+ * ```
165
+ *
166
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
167
+ */
168
+ destroyOne(
169
+ conditions: any,
170
+ options?: any,
171
+ ): Promise<{ acknowledged: boolean; destroyedCount: number }>;
172
+
173
+ /**
174
+ * Permanently deletes multiple documents from the database (hard delete).
175
+ *
176
+ * @param {Object} conditions - Query conditions
177
+ * @param {Object} [options] - MongoDB options
178
+ *
179
+ * @returns {Promise<Object>}
180
+ *
181
+ * | | | |
182
+ * |---|---|---|
183
+ * | `acknowledged` | `boolean` | Whether the operation was acknowledged |
184
+ * | `destroyedCount` | `number` | Number of documents destroyed |
185
+ *
186
+ * @example
187
+ * ```js
188
+ * const result = await User.destroyMany({
189
+ * deletedAt: {
190
+ * $lt: sixMonthsAgo
191
+ * }
192
+ * });
193
+ * ```
194
+ *
195
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
196
+ */
197
+ destroyMany(
198
+ conditions: any,
199
+ options?: any,
200
+ ): Promise<{ acknowledged: boolean; destroyedCount: number }>;
201
+
202
+ /**
203
+ * Finds documents that have been soft-deleted (deleted=true).
204
+ *
205
+ * @param {Object} filter - Query filter
206
+ * @param {Object} [projection] - Fields to include/exclude
207
+ * @param {Object} [options] - MongoDB options
208
+ *
209
+ * @returns {Promise<Document[]>} - Array of deleted documents
210
+ *
211
+ * @example
212
+ * ```js
213
+ * const deletedUsers = await User.findDeleted({
214
+ * deletedAt: {
215
+ * $gte: lastMonth
216
+ * }
217
+ * });
218
+ * ```
219
+ *
220
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
221
+ */
222
+ findDeleted(filter: any, projection?: any, options?: any): Promise<any[]>;
223
+
224
+ /**
225
+ * Finds one document that has been soft-deleted (deleted=true).
226
+ *
227
+ * @param {Object} filter - Query filter
228
+ * @param {Object} [projection] - Fields to include/exclude
229
+ * @param {Object} [options] - MongoDB options
230
+ *
231
+ * @returns {Promise<Document|null>} - The deleted document or null
232
+ *
233
+ * @example
234
+ * ```js
235
+ * const user = await User.findOneDeleted({
236
+ * email: 'user@example.com'
237
+ * });
238
+ * ```
239
+ *
240
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
241
+ */
242
+ findOneDeleted(filter: any, projection?: any, options?: any): Promise<any>;
243
+
244
+ /**
245
+ * Finds a soft-deleted document by its ID.
246
+ *
247
+ * @param {string} id - Document ID
248
+ * @param {Object} [projection] - Fields to include/exclude
249
+ * @param {Object} [options] - MongoDB options
250
+ *
251
+ * @returns {Promise<Document|null>} - The deleted document or null
252
+ *
253
+ * @example
254
+ * ```js
255
+ * const user = await User.findByIdDeleted('507f1f77bcf86cd799439011');
256
+ * ```
257
+ *
258
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
259
+ */
260
+ findByIdDeleted(id: any, projection?: any, options?: any): Promise<any>;
261
+
262
+ /**
263
+ * Checks if a soft-deleted document exists matching the filter.
264
+ *
265
+ * @param {Object} filter - Query filter
266
+ * @param {Object} [options] - MongoDB options
267
+ *
268
+ * @returns {Promise<Object|null>} - Object with _id if exists, null otherwise
269
+ *
270
+ * @example
271
+ * ```js
272
+ * const exists = await User.existsDeleted({
273
+ * email: 'user@example.com'
274
+ * });
275
+ * ```
276
+ *
277
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
278
+ */
279
+ existsDeleted(filter: any, options?: any): Promise<any>;
280
+
281
+ /**
282
+ * Counts soft-deleted documents matching the filter.
283
+ *
284
+ * @param {Object} filter - Query filter
285
+ * @param {Object} [options] - MongoDB options
286
+ *
287
+ * @returns {Promise<number>} - Count of deleted documents
288
+ *
289
+ * @example
290
+ * ```js
291
+ * const count = await User.countDocumentsDeleted({
292
+ * deletedAt: {
293
+ * $gte: lastMonth
294
+ * }
295
+ * });
296
+ * ```
297
+ *
298
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
299
+ */
300
+ countDocumentsDeleted(filter: any, options?: any): Promise<number>;
301
+
302
+ /**
303
+ * Finds documents including both deleted and non-deleted ones.
304
+ *
305
+ * @param {Object} filter - Query filter
306
+ * @param {Object} [projection] - Fields to include/exclude
307
+ * @param {Object} [options] - MongoDB options
308
+ *
309
+ * @returns {Promise<Document[]>} - Array of documents
310
+ *
311
+ * @example
312
+ * ```js
313
+ * const allUsers = await User.findWithDeleted({
314
+ * email: {
315
+ * $regex: '@example.com$'
316
+ * }
317
+ * });
318
+ * ```
319
+ *
320
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
321
+ */
322
+ findWithDeleted(
323
+ filter: any,
324
+ projection?: any,
325
+ options?: any,
326
+ ): Promise<any[]>;
327
+
328
+ /**
329
+ * Finds one document including both deleted and non-deleted ones.
330
+ *
331
+ * @param {Object} filter - Query filter
332
+ * @param {Object} [projection] - Fields to include/exclude
333
+ * @param {Object} [options] - MongoDB options
334
+ *
335
+ * @returns {Promise<Document|null>} - The document or null
336
+ *
337
+ * @example
338
+ * ```js
339
+ * const user = await User.findOneWithDeleted({
340
+ * email: 'user@example.com'
341
+ * });
342
+ * ```
343
+ *
344
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
345
+ */
346
+ findOneWithDeleted(
347
+ filter: any,
348
+ projection?: any,
349
+ options?: any,
350
+ ): Promise<any>;
351
+
352
+ /**
353
+ * Finds a document by ID including both deleted and non-deleted ones.
354
+ *
355
+ * @param {string} id - Document ID
356
+ * @param {Object} [projection] - Fields to include/exclude
357
+ * @param {Object} [options] - MongoDB options
358
+ *
359
+ * @returns {Promise<Document|null>} - The document or null
360
+ *
361
+ * @example
362
+ * ```js
363
+ * const user = await User.findByIdWithDeleted('507f1f77bcf86cd799439011');
364
+ * ```
365
+ *
366
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
367
+ */
368
+ findByIdWithDeleted(id: any, projection?: any, options?: any): Promise<any>;
369
+
370
+ /**
371
+ * Checks if a document exists (deleted or not) matching the filter.
372
+ *
373
+ * @param {Object} filter - Query filter
374
+ * @param {Object} [options] - MongoDB options
375
+ *
376
+ * @returns {Promise<Object|null>} - Object with _id if exists, null otherwise
377
+ *
378
+ * @example
379
+ * ```js
380
+ * const exists = await User.existsWithDeleted({
381
+ * email: 'user@example.com'
382
+ * });
383
+ * ```
384
+ *
385
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
386
+ */
387
+ existsWithDeleted(filter: any, options?: any): Promise<any>;
388
+
389
+ /**
390
+ * Counts documents (deleted or not) matching the filter.
391
+ *
392
+ * @param {Object} filter - Query filter
393
+ * @param {Object} [options] - MongoDB options
394
+ *
395
+ * @returns {Promise<number>} - Count of documents
396
+ *
397
+ * @example
398
+ * ```js
399
+ * const count = await User.countDocumentsWithDeleted({
400
+ * email: {
401
+ * $regex: '@example.com$'
402
+ * }
403
+ * });
404
+ * ```
405
+ *
406
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
407
+ */
408
+ countDocumentsWithDeleted(filter: any, options?: any): Promise<number>;
409
+ }
410
+
411
+ interface Document {
412
+ /**
413
+ * Soft deletes this document by setting deleted=true and deletedAt timestamp, then saves without validation.
414
+ *
415
+ * @returns {Promise<Document>} - The saved document
416
+ *
417
+ * @example
418
+ * ```js
419
+ * await user.delete();
420
+ * ```
421
+ *
422
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
423
+ */
424
+ delete(): Promise<this>;
425
+
426
+ /**
427
+ * Restores this soft-deleted document by setting deleted=false and unsetting deletedAt, then saves with validation.
428
+ *
429
+ * @returns {Promise<Document>} - The saved document
430
+ *
431
+ * @example
432
+ * ```js
433
+ * await user.restore();
434
+ * ```
435
+ *
436
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
437
+ */
438
+ restore(): Promise<this>;
439
+
440
+ /**
441
+ * Permanently deletes this document from the database (hard delete).
442
+ *
443
+ * @param {...any} args - Additional arguments passed to destroyOne
444
+ *
445
+ * @returns {Promise<Object>} - Result object with acknowledged and destroyedCount
446
+ *
447
+ * @example
448
+ * ```js
449
+ * await user.destroy();
450
+ * ```
451
+ *
452
+ * @see {@link https://github.com/bedrockio/model#soft-delete}
453
+ */
454
+ destroy(
455
+ ...args: any[]
456
+ ): Promise<{ acknowledged: boolean; destroyedCount: number }>;
457
+ }
458
+ }
@@ -0,0 +1,67 @@
1
+ import type { HydratedDocument } from 'mongoose';
2
+
3
+ declare module 'mongoose' {
4
+ interface Model<
5
+ TRawDocType,
6
+ TQueryHelpers = {},
7
+ TInstanceMethods = {},
8
+ TVirtuals = {},
9
+ THydratedDocumentType = HydratedDocument<
10
+ TRawDocType,
11
+ TVirtuals & TInstanceMethods,
12
+ TQueryHelpers,
13
+ TVirtuals
14
+ >,
15
+ TSchema = any,
16
+ > {
17
+ /**
18
+ * Updates an existing document or creates a new one if not found. Runs document hooks.
19
+ *
20
+ * @param {Object} query - Query to find existing document
21
+ * @param {Object} [fields] - Fields to update/create (defaults to query if not provided)
22
+ *
23
+ * @returns {Promise<Document>} - The created or updated document
24
+ *
25
+ * @example
26
+ * ```js
27
+ * const user = await User.upsert(
28
+ * {
29
+ * email: 'user@example.com'
30
+ * },
31
+ * {
32
+ * email: 'user@example.com',
33
+ * name: 'John Doe'
34
+ * }
35
+ * );
36
+ * ```
37
+ *
38
+ * @see {@link https://github.com/bedrockio/model#upsert}
39
+ */
40
+ upsert(query: any, fields?: any): Promise<any>;
41
+
42
+ /**
43
+ * Finds an existing document or creates a new one if not found. Does not update existing documents.
44
+ *
45
+ * @param {Object} query - Query to find existing document
46
+ * @param {Object} [fields] - Fields to create if not found (defaults to query if not provided)
47
+ *
48
+ * @returns {Promise<Document>} - The found or created document
49
+ *
50
+ * @example
51
+ * ```js
52
+ * const user = await User.findOrCreate(
53
+ * {
54
+ * email: 'user@example.com'
55
+ * },
56
+ * {
57
+ * email: 'user@example.com',
58
+ * name: 'John Doe'
59
+ * }
60
+ * );
61
+ * ```
62
+ *
63
+ * @see {@link https://github.com/bedrockio/model#upsert}
64
+ */
65
+ findOrCreate(query: any, fields?: any): Promise<any>;
66
+ }
67
+ }
@@ -0,0 +1,145 @@
1
+ import type { HydratedDocument } from 'mongoose';
2
+
3
+ declare module 'mongoose' {
4
+ interface Model<
5
+ TRawDocType,
6
+ TQueryHelpers = {},
7
+ TInstanceMethods = {},
8
+ TVirtuals = {},
9
+ THydratedDocumentType = HydratedDocument<
10
+ TRawDocType,
11
+ TVirtuals & TInstanceMethods,
12
+ TQueryHelpers,
13
+ TVirtuals
14
+ >,
15
+ TSchema = any,
16
+ > {
17
+ /**
18
+ * Returns a validation schema for creating new documents.
19
+ *
20
+ * @param {Object} [options] - Configuration options
21
+ *
22
+ * | | | |
23
+ * |---|---|---|
24
+ * | `stripEmpty` | `boolean` | Strip empty values (default: true) |
25
+ * | `applyUnique` | `boolean` | Apply unique field validation (default: true) |
26
+ * | `stripDeleted` | `boolean` | Strip deleted fields from schema (default: true) |
27
+ * | `allowIncludes` | `boolean` | Allow include parameter (default: false) |
28
+ * | `stripTimestamps` | `boolean` | Strip createdAt/updatedAt fields (default: true) |
29
+ * | `allowDefaultTags` | `boolean` | Tag default values for OpenAPI (default: true) |
30
+ * | `allowExpandedRefs` | `boolean` | Allow expanded object references (default: true) |
31
+ * | `requireWriteAccess` | `boolean` | Require write access validation (default: true) |
32
+ *
33
+ * @returns {Object} - Yada validation schema
34
+ *
35
+ * @example
36
+ * ```js
37
+ * const schema = User.getCreateValidation();
38
+ * const validated = await schema.validate(data);
39
+ * ```
40
+ *
41
+ * @see {@link https://github.com/bedrockio/model#validation}
42
+ */
43
+ getCreateValidation(options?: any): any;
44
+
45
+ /**
46
+ * Returns a validation schema for updating existing documents.
47
+ *
48
+ * @param {Object} [options] - Configuration options
49
+ *
50
+ * | | | |
51
+ * |---|---|---|
52
+ * | `allowNull` | `boolean` | Allow null values to unset fields (default: true) |
53
+ * | `applyUnique` | `boolean` | Apply unique field validation (default: true) |
54
+ * | `skipRequired` | `boolean` | Skip required field checks (default: true) |
55
+ * | `stripUnknown` | `boolean` | Strip unknown fields (default: true) |
56
+ * | `stripDeleted` | `boolean` | Strip deleted fields from schema (default: true) |
57
+ * | `allowFlatKeys` | `boolean` | Allow dot notation for updates (default: true) |
58
+ * | `allowIncludes` | `boolean` | Allow include parameter (default: false) |
59
+ * | `stripTimestamps` | `boolean` | Strip createdAt/updatedAt fields (default: true) |
60
+ * | `allowExpandedRefs` | `boolean` | Allow expanded object references (default: true) |
61
+ * | `requireWriteAccess` | `boolean` | Require write access validation (default: true) |
62
+ *
63
+ * @returns {Object} - Yada validation schema
64
+ *
65
+ * @example
66
+ * ```js
67
+ * const schema = User.getUpdateValidation();
68
+ * const validated = await schema.validate(updates);
69
+ * ```
70
+ *
71
+ * @see {@link https://github.com/bedrockio/model#validation}
72
+ */
73
+ getUpdateValidation(options?: any): any;
74
+
75
+ /**
76
+ * Returns a validation schema for search queries.
77
+ *
78
+ * @param {Object} [options] - Configuration options
79
+ *
80
+ * | | | |
81
+ * |---|---|---|
82
+ * | `allowExport` | `boolean` | Include export validation (filename, format) |
83
+ * | `defaults` | `Object` | Default values for search parameters |
84
+ * | `formats` | `Object` | Custom export formats configuration |
85
+ *
86
+ * @returns {Object} - Yada validation schema
87
+ *
88
+ * @example
89
+ * ```js
90
+ * const schema = User.getSearchValidation({
91
+ * allowExport: true
92
+ * });
93
+ * const validated = await schema.validate(query);
94
+ * ```
95
+ *
96
+ * @see {@link https://github.com/bedrockio/model#validation}
97
+ */
98
+ getSearchValidation(options?: any): any;
99
+
100
+ /**
101
+ * Returns a validation schema for delete operations.
102
+ *
103
+ * @returns {Object} - Yada validation schema
104
+ *
105
+ * @example
106
+ * ```js
107
+ * const schema = User.getDeleteValidation();
108
+ * await schema.validate({ authUser, document });
109
+ * ```
110
+ *
111
+ * @see {@link https://github.com/bedrockio/model#validation}
112
+ */
113
+ getDeleteValidation(): any;
114
+
115
+ /**
116
+ * Returns the validation schema for include fields.
117
+ *
118
+ * @returns {Object} - Yada validation schema for include parameter
119
+ *
120
+ * @example
121
+ * ```js
122
+ * const schema = User.getIncludeValidation();
123
+ * const validated = await schema.validate(['organization', 'createdBy']);
124
+ * ```
125
+ *
126
+ * @see {@link https://github.com/bedrockio/model#validation}
127
+ */
128
+ getIncludeValidation(): any;
129
+
130
+ /**
131
+ * Returns a base validation schema with deleted fields stripped and read access required.
132
+ *
133
+ * @returns {Object} - Yada validation schema
134
+ *
135
+ * @example
136
+ * ```js
137
+ * const schema = User.getBaseSchema();
138
+ * const validated = await schema.validate(data);
139
+ * ```
140
+ *
141
+ * @see {@link https://github.com/bedrockio/model#validation}
142
+ */
143
+ getBaseSchema(): any;
144
+ }
145
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.js"],"names":[],"mappings":"AAIA;;GAEG;AACH,oCAFW,MAAM,GAAC,MAAM,EAAE,yBA2BzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.js"],"names":[],"mappings":";;;;;;;;AASA,iCAAkC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-hooks.d.ts","sourceRoot":"","sources":["../src/delete-hooks.js"],"names":[],"mappings":"AASA,wDAgBC;AAED,qEAqCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.js"],"names":[],"mappings":"AAAA,4BAAyC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.js"],"names":[],"mappings":"AAAA;CAA8C;AAE9C;IACE,uBAGC;IADC,UAAgB;CAEnB;AAED;IACE,wCAGC;IADC,aAAsB;CAEzB;AAED;IACE,wCAGC;IADC,aAAsB;IAGxB;;;MAKC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"include.d.ts","sourceRoot":"","sources":["../src/include.js"],"names":[],"mappings":"AAkBA,gDAuEC;AAMD,uDA4BC;AAGD,yDAIC;AAaD,yEAUC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,sCAJW,MAAM,QACN,MAAM,OAahB;AAED;;;;GAIG;AACH,sCAFW,MAAM,mBAkBhB;qBA3CoB,UAAU"}
@@ -1,2 +0,0 @@
1
- export function applyReferences(schema: any): void;
2
- //# sourceMappingURL=references.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.js"],"names":[],"mappings":"AAMA,mDAoDC"}