springnext 0.0.1 → 0.0.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.
@@ -0,0 +1,581 @@
1
+ import type { ZodArray, ZodBoolean, ZodNullable, ZodObject, ZodString, ZodType } from 'zod';
2
+ import z from 'zod';
3
+ import { Pagination } from '../value-objects/pagination.value-object';
4
+ import type { CRUD } from './store.shared-models.utils';
5
+ type ZodSchema = ZodType;
6
+ type Models<List, Detail> = {
7
+ list: List;
8
+ detail: Detail;
9
+ };
10
+ type SearchPayload<List, Specific> = {
11
+ list: List;
12
+ specific: Specific;
13
+ };
14
+ type ActionsPayload<Create, Update> = {
15
+ create: Create;
16
+ update: Update;
17
+ };
18
+ export type Metadata = {
19
+ name: string;
20
+ models: {
21
+ list: ZodSchema;
22
+ details: ZodSchema;
23
+ };
24
+ searchPayload: {
25
+ list: ZodSchema;
26
+ specific: ZodSchema;
27
+ };
28
+ actionsPayload: {
29
+ create: ZodSchema;
30
+ update: ZodSchema;
31
+ };
32
+ customOperations?: Record<string, {
33
+ payload: ZodSchema;
34
+ response: ZodSchema;
35
+ }>;
36
+ };
37
+ export type Contract<Schemas extends {
38
+ models: {
39
+ list: unknown;
40
+ details: unknown;
41
+ };
42
+ searchPayload: {
43
+ list: unknown;
44
+ specific: unknown;
45
+ };
46
+ actionsPayload: {
47
+ create: unknown;
48
+ update: unknown;
49
+ };
50
+ customOperations?: Record<string, {
51
+ payload: unknown;
52
+ response: unknown;
53
+ }>;
54
+ }> = CRUD<Models<z.infer<Schemas['models']['list']>, z.infer<Schemas['models']['details']>>, SearchPayload<z.infer<Schemas['searchPayload']['list']>, z.infer<Schemas['searchPayload']['specific']>>, ActionsPayload<z.infer<Schemas['actionsPayload']['create']>, z.infer<Schemas['actionsPayload']['update']>>> & (Schemas['customOperations'] extends Record<string, {
55
+ payload: ZodSchema;
56
+ response: ZodSchema;
57
+ }> ? {
58
+ [operation in keyof Schemas['customOperations']]: (payload: z.infer<Schemas['customOperations'][operation]['payload']>) => Promise<z.infer<Schemas['customOperations'][operation]['response']>>;
59
+ } : {});
60
+ export declare const toModuleMetadata: <Schemas extends {
61
+ models: {
62
+ list: unknown;
63
+ details: unknown;
64
+ };
65
+ searchPayload: {
66
+ list: unknown;
67
+ specific: unknown;
68
+ };
69
+ actionsPayload: {
70
+ create: unknown;
71
+ update: unknown;
72
+ };
73
+ customOperations?: Record<string, {
74
+ payload: unknown;
75
+ response: unknown;
76
+ }>;
77
+ name: string;
78
+ }>(schemas: Schemas) => {
79
+ name: string;
80
+ schemas: Record<Exclude<keyof (Schemas["customOperations"] extends Record<string, {
81
+ payload: ZodSchema;
82
+ response: ZodSchema;
83
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
84
+ payload: Schemas["customOperations"][operation]["payload"];
85
+ response: Schemas["customOperations"][operation]["response"];
86
+ }; } : {}), keyof CRUD<any, any, any>>, {
87
+ payload: (CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
88
+ payload: ZodSchema;
89
+ response: ZodSchema;
90
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
91
+ payload: Schemas["customOperations"][operation]["payload"];
92
+ response: Schemas["customOperations"][operation]["response"];
93
+ }; } : {}))[Exclude<keyof (Schemas["customOperations"] extends Record<string, {
94
+ payload: ZodSchema;
95
+ response: ZodSchema;
96
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
97
+ payload: Schemas["customOperations"][operation]["payload"];
98
+ response: Schemas["customOperations"][operation]["response"];
99
+ }; } : {}), keyof CRUD<any, any, any>>]["payload"];
100
+ response: (CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
101
+ payload: ZodSchema;
102
+ response: ZodSchema;
103
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
104
+ payload: Schemas["customOperations"][operation]["payload"];
105
+ response: Schemas["customOperations"][operation]["response"];
106
+ }; } : {}))[Exclude<keyof (Schemas["customOperations"] extends Record<string, {
107
+ payload: ZodSchema;
108
+ response: ZodSchema;
109
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
110
+ payload: Schemas["customOperations"][operation]["payload"];
111
+ response: Schemas["customOperations"][operation]["response"];
112
+ }; } : {}), keyof CRUD<any, any, any>>]["response"];
113
+ }> & {
114
+ list: {
115
+ payload: ZodObject<Parameters<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
116
+ payload: ZodSchema;
117
+ response: ZodSchema;
118
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
119
+ payload: Schemas["customOperations"][operation]["payload"];
120
+ response: Schemas["customOperations"][operation]["response"];
121
+ }; } : {}))["list"]>[0] & {
122
+ pagination: ReturnType<typeof Pagination.schema.optional>;
123
+ }>;
124
+ response: ZodArray<Awaited<ReturnType<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
125
+ payload: ZodSchema;
126
+ response: ZodSchema;
127
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
128
+ payload: Schemas["customOperations"][operation]["payload"];
129
+ response: Schemas["customOperations"][operation]["response"];
130
+ }; } : {}))["list"]>>[number]>;
131
+ };
132
+ details: {
133
+ payload: ZodObject<Parameters<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
134
+ payload: ZodSchema;
135
+ response: ZodSchema;
136
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
137
+ payload: Schemas["customOperations"][operation]["payload"];
138
+ response: Schemas["customOperations"][operation]["response"];
139
+ }; } : {}))["details"]>[0]>;
140
+ response: ZodNullable<Schemas["models"]["details"]>;
141
+ };
142
+ create: {
143
+ payload: ZodObject<Parameters<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
144
+ payload: ZodSchema;
145
+ response: ZodSchema;
146
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
147
+ payload: Schemas["customOperations"][operation]["payload"];
148
+ response: Schemas["customOperations"][operation]["response"];
149
+ }; } : {}))["create"]>[0]>;
150
+ response: ZodObject<{
151
+ id: ZodString;
152
+ }>;
153
+ };
154
+ updateOne: {
155
+ payload: ZodObject<Parameters<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
156
+ payload: ZodSchema;
157
+ response: ZodSchema;
158
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
159
+ payload: Schemas["customOperations"][operation]["payload"];
160
+ response: Schemas["customOperations"][operation]["response"];
161
+ }; } : {}))["updateOne"]>[0]>;
162
+ response: ZodObject<{
163
+ success: ZodBoolean;
164
+ }>;
165
+ };
166
+ deleteOne: {
167
+ payload: ZodObject<Parameters<(CRUD<Models<Schemas["models"]["list"], Schemas["models"]["details"]>, SearchPayload<Schemas["searchPayload"]["list"], Schemas["searchPayload"]["specific"]>, ActionsPayload<Schemas["actionsPayload"]["create"], Schemas["actionsPayload"]["update"]>> & (Schemas["customOperations"] extends Record<string, {
168
+ payload: ZodSchema;
169
+ response: ZodSchema;
170
+ }> ? { [operation in keyof Schemas["customOperations"]]: {
171
+ payload: Schemas["customOperations"][operation]["payload"];
172
+ response: Schemas["customOperations"][operation]["response"];
173
+ }; } : {}))["deleteOne"]>[0]>;
174
+ response: ZodObject<{
175
+ success: ZodBoolean;
176
+ }>;
177
+ };
178
+ };
179
+ };
180
+ export declare const methods: <T extends Metadata>(schemas: T) => <Method extends "details" | "list" | "create" | "updateOne" | "deleteOne" | Exclude<keyof (T["customOperations"] extends Record<string, {
181
+ payload: ZodSchema;
182
+ response: ZodSchema;
183
+ }> ? { [operation in keyof T["customOperations"]]: {
184
+ payload: T["customOperations"][operation]["payload"];
185
+ response: T["customOperations"][operation]["response"];
186
+ }; } : {}), keyof CRUD<any, any, any>>>(methodName: Method, handler: (payload: z.core.output<(Record<Exclude<keyof (T["customOperations"] extends Record<string, {
187
+ payload: ZodSchema;
188
+ response: ZodSchema;
189
+ }> ? { [operation in keyof T["customOperations"]]: {
190
+ payload: T["customOperations"][operation]["payload"];
191
+ response: T["customOperations"][operation]["response"];
192
+ }; } : {}), keyof CRUD<any, any, any>>, {
193
+ payload: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
194
+ payload: ZodSchema;
195
+ response: ZodSchema;
196
+ }> ? { [operation in keyof T["customOperations"]]: {
197
+ payload: T["customOperations"][operation]["payload"];
198
+ response: T["customOperations"][operation]["response"];
199
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
200
+ payload: ZodSchema;
201
+ response: ZodSchema;
202
+ }> ? { [operation in keyof T["customOperations"]]: {
203
+ payload: T["customOperations"][operation]["payload"];
204
+ response: T["customOperations"][operation]["response"];
205
+ }; } : {}), keyof CRUD<any, any, any>>]["payload"];
206
+ response: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
207
+ payload: ZodSchema;
208
+ response: ZodSchema;
209
+ }> ? { [operation in keyof T["customOperations"]]: {
210
+ payload: T["customOperations"][operation]["payload"];
211
+ response: T["customOperations"][operation]["response"];
212
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
213
+ payload: ZodSchema;
214
+ response: ZodSchema;
215
+ }> ? { [operation in keyof T["customOperations"]]: {
216
+ payload: T["customOperations"][operation]["payload"];
217
+ response: T["customOperations"][operation]["response"];
218
+ }; } : {}), keyof CRUD<any, any, any>>]["response"];
219
+ }> & {
220
+ list: {
221
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
222
+ payload: ZodSchema;
223
+ response: ZodSchema;
224
+ }> ? { [operation in keyof T["customOperations"]]: {
225
+ payload: T["customOperations"][operation]["payload"];
226
+ response: T["customOperations"][operation]["response"];
227
+ }; } : {}))["list"]>[0] & {
228
+ pagination: ReturnType<typeof Pagination.schema.optional>;
229
+ }, z.core.$strip>;
230
+ response: ZodArray<Awaited<ReturnType<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
231
+ payload: ZodSchema;
232
+ response: ZodSchema;
233
+ }> ? { [operation in keyof T["customOperations"]]: {
234
+ payload: T["customOperations"][operation]["payload"];
235
+ response: T["customOperations"][operation]["response"];
236
+ }; } : {}))["list"]>>[number]>;
237
+ };
238
+ details: {
239
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
240
+ payload: ZodSchema;
241
+ response: ZodSchema;
242
+ }> ? { [operation in keyof T["customOperations"]]: {
243
+ payload: T["customOperations"][operation]["payload"];
244
+ response: T["customOperations"][operation]["response"];
245
+ }; } : {}))["details"]>[0], z.core.$strip>;
246
+ response: ZodNullable<T["models"]["details"]>;
247
+ };
248
+ create: {
249
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
250
+ payload: ZodSchema;
251
+ response: ZodSchema;
252
+ }> ? { [operation in keyof T["customOperations"]]: {
253
+ payload: T["customOperations"][operation]["payload"];
254
+ response: T["customOperations"][operation]["response"];
255
+ }; } : {}))["create"]>[0], z.core.$strip>;
256
+ response: ZodObject<{
257
+ id: ZodString;
258
+ }, z.core.$strip>;
259
+ };
260
+ updateOne: {
261
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
262
+ payload: ZodSchema;
263
+ response: ZodSchema;
264
+ }> ? { [operation in keyof T["customOperations"]]: {
265
+ payload: T["customOperations"][operation]["payload"];
266
+ response: T["customOperations"][operation]["response"];
267
+ }; } : {}))["updateOne"]>[0], z.core.$strip>;
268
+ response: ZodObject<{
269
+ success: ZodBoolean;
270
+ }, z.core.$strip>;
271
+ };
272
+ deleteOne: {
273
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
274
+ payload: ZodSchema;
275
+ response: ZodSchema;
276
+ }> ? { [operation in keyof T["customOperations"]]: {
277
+ payload: T["customOperations"][operation]["payload"];
278
+ response: T["customOperations"][operation]["response"];
279
+ }; } : {}))["deleteOne"]>[0], z.core.$strip>;
280
+ response: ZodObject<{
281
+ success: ZodBoolean;
282
+ }, z.core.$strip>;
283
+ };
284
+ })[Method]["payload"]>, config: {
285
+ methodError: (payload: string | import("../errors.utils").ErrorBaseCreatingPayload, cause?: unknown) => import("../errors.utils").ModuleErrorModel;
286
+ }) => Promise<z.core.output<(Record<Exclude<keyof (T["customOperations"] extends Record<string, {
287
+ payload: ZodSchema;
288
+ response: ZodSchema;
289
+ }> ? { [operation in keyof T["customOperations"]]: {
290
+ payload: T["customOperations"][operation]["payload"];
291
+ response: T["customOperations"][operation]["response"];
292
+ }; } : {}), keyof CRUD<any, any, any>>, {
293
+ payload: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
294
+ payload: ZodSchema;
295
+ response: ZodSchema;
296
+ }> ? { [operation in keyof T["customOperations"]]: {
297
+ payload: T["customOperations"][operation]["payload"];
298
+ response: T["customOperations"][operation]["response"];
299
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
300
+ payload: ZodSchema;
301
+ response: ZodSchema;
302
+ }> ? { [operation in keyof T["customOperations"]]: {
303
+ payload: T["customOperations"][operation]["payload"];
304
+ response: T["customOperations"][operation]["response"];
305
+ }; } : {}), keyof CRUD<any, any, any>>]["payload"];
306
+ response: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
307
+ payload: ZodSchema;
308
+ response: ZodSchema;
309
+ }> ? { [operation in keyof T["customOperations"]]: {
310
+ payload: T["customOperations"][operation]["payload"];
311
+ response: T["customOperations"][operation]["response"];
312
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
313
+ payload: ZodSchema;
314
+ response: ZodSchema;
315
+ }> ? { [operation in keyof T["customOperations"]]: {
316
+ payload: T["customOperations"][operation]["payload"];
317
+ response: T["customOperations"][operation]["response"];
318
+ }; } : {}), keyof CRUD<any, any, any>>]["response"];
319
+ }> & {
320
+ list: {
321
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
322
+ payload: ZodSchema;
323
+ response: ZodSchema;
324
+ }> ? { [operation in keyof T["customOperations"]]: {
325
+ payload: T["customOperations"][operation]["payload"];
326
+ response: T["customOperations"][operation]["response"];
327
+ }; } : {}))["list"]>[0] & {
328
+ pagination: ReturnType<typeof Pagination.schema.optional>;
329
+ }, z.core.$strip>;
330
+ response: ZodArray<Awaited<ReturnType<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
331
+ payload: ZodSchema;
332
+ response: ZodSchema;
333
+ }> ? { [operation in keyof T["customOperations"]]: {
334
+ payload: T["customOperations"][operation]["payload"];
335
+ response: T["customOperations"][operation]["response"];
336
+ }; } : {}))["list"]>>[number]>;
337
+ };
338
+ details: {
339
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
340
+ payload: ZodSchema;
341
+ response: ZodSchema;
342
+ }> ? { [operation in keyof T["customOperations"]]: {
343
+ payload: T["customOperations"][operation]["payload"];
344
+ response: T["customOperations"][operation]["response"];
345
+ }; } : {}))["details"]>[0], z.core.$strip>;
346
+ response: ZodNullable<T["models"]["details"]>;
347
+ };
348
+ create: {
349
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
350
+ payload: ZodSchema;
351
+ response: ZodSchema;
352
+ }> ? { [operation in keyof T["customOperations"]]: {
353
+ payload: T["customOperations"][operation]["payload"];
354
+ response: T["customOperations"][operation]["response"];
355
+ }; } : {}))["create"]>[0], z.core.$strip>;
356
+ response: ZodObject<{
357
+ id: ZodString;
358
+ }, z.core.$strip>;
359
+ };
360
+ updateOne: {
361
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
362
+ payload: ZodSchema;
363
+ response: ZodSchema;
364
+ }> ? { [operation in keyof T["customOperations"]]: {
365
+ payload: T["customOperations"][operation]["payload"];
366
+ response: T["customOperations"][operation]["response"];
367
+ }; } : {}))["updateOne"]>[0], z.core.$strip>;
368
+ response: ZodObject<{
369
+ success: ZodBoolean;
370
+ }, z.core.$strip>;
371
+ };
372
+ deleteOne: {
373
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
374
+ payload: ZodSchema;
375
+ response: ZodSchema;
376
+ }> ? { [operation in keyof T["customOperations"]]: {
377
+ payload: T["customOperations"][operation]["payload"];
378
+ response: T["customOperations"][operation]["response"];
379
+ }; } : {}))["deleteOne"]>[0], z.core.$strip>;
380
+ response: ZodObject<{
381
+ success: ZodBoolean;
382
+ }, z.core.$strip>;
383
+ };
384
+ })[Method]["response"]>>, config?: import("../zod-module.utils").Config) => (payload: z.core.output<(Record<Exclude<keyof (T["customOperations"] extends Record<string, {
385
+ payload: ZodSchema;
386
+ response: ZodSchema;
387
+ }> ? { [operation in keyof T["customOperations"]]: {
388
+ payload: T["customOperations"][operation]["payload"];
389
+ response: T["customOperations"][operation]["response"];
390
+ }; } : {}), keyof CRUD<any, any, any>>, {
391
+ payload: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
392
+ payload: ZodSchema;
393
+ response: ZodSchema;
394
+ }> ? { [operation in keyof T["customOperations"]]: {
395
+ payload: T["customOperations"][operation]["payload"];
396
+ response: T["customOperations"][operation]["response"];
397
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
398
+ payload: ZodSchema;
399
+ response: ZodSchema;
400
+ }> ? { [operation in keyof T["customOperations"]]: {
401
+ payload: T["customOperations"][operation]["payload"];
402
+ response: T["customOperations"][operation]["response"];
403
+ }; } : {}), keyof CRUD<any, any, any>>]["payload"];
404
+ response: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
405
+ payload: ZodSchema;
406
+ response: ZodSchema;
407
+ }> ? { [operation in keyof T["customOperations"]]: {
408
+ payload: T["customOperations"][operation]["payload"];
409
+ response: T["customOperations"][operation]["response"];
410
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
411
+ payload: ZodSchema;
412
+ response: ZodSchema;
413
+ }> ? { [operation in keyof T["customOperations"]]: {
414
+ payload: T["customOperations"][operation]["payload"];
415
+ response: T["customOperations"][operation]["response"];
416
+ }; } : {}), keyof CRUD<any, any, any>>]["response"];
417
+ }> & {
418
+ list: {
419
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
420
+ payload: ZodSchema;
421
+ response: ZodSchema;
422
+ }> ? { [operation in keyof T["customOperations"]]: {
423
+ payload: T["customOperations"][operation]["payload"];
424
+ response: T["customOperations"][operation]["response"];
425
+ }; } : {}))["list"]>[0] & {
426
+ pagination: ReturnType<typeof Pagination.schema.optional>;
427
+ }, z.core.$strip>;
428
+ response: ZodArray<Awaited<ReturnType<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
429
+ payload: ZodSchema;
430
+ response: ZodSchema;
431
+ }> ? { [operation in keyof T["customOperations"]]: {
432
+ payload: T["customOperations"][operation]["payload"];
433
+ response: T["customOperations"][operation]["response"];
434
+ }; } : {}))["list"]>>[number]>;
435
+ };
436
+ details: {
437
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
438
+ payload: ZodSchema;
439
+ response: ZodSchema;
440
+ }> ? { [operation in keyof T["customOperations"]]: {
441
+ payload: T["customOperations"][operation]["payload"];
442
+ response: T["customOperations"][operation]["response"];
443
+ }; } : {}))["details"]>[0], z.core.$strip>;
444
+ response: ZodNullable<T["models"]["details"]>;
445
+ };
446
+ create: {
447
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
448
+ payload: ZodSchema;
449
+ response: ZodSchema;
450
+ }> ? { [operation in keyof T["customOperations"]]: {
451
+ payload: T["customOperations"][operation]["payload"];
452
+ response: T["customOperations"][operation]["response"];
453
+ }; } : {}))["create"]>[0], z.core.$strip>;
454
+ response: ZodObject<{
455
+ id: ZodString;
456
+ }, z.core.$strip>;
457
+ };
458
+ updateOne: {
459
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
460
+ payload: ZodSchema;
461
+ response: ZodSchema;
462
+ }> ? { [operation in keyof T["customOperations"]]: {
463
+ payload: T["customOperations"][operation]["payload"];
464
+ response: T["customOperations"][operation]["response"];
465
+ }; } : {}))["updateOne"]>[0], z.core.$strip>;
466
+ response: ZodObject<{
467
+ success: ZodBoolean;
468
+ }, z.core.$strip>;
469
+ };
470
+ deleteOne: {
471
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
472
+ payload: ZodSchema;
473
+ response: ZodSchema;
474
+ }> ? { [operation in keyof T["customOperations"]]: {
475
+ payload: T["customOperations"][operation]["payload"];
476
+ response: T["customOperations"][operation]["response"];
477
+ }; } : {}))["deleteOne"]>[0], z.core.$strip>;
478
+ response: ZodObject<{
479
+ success: ZodBoolean;
480
+ }, z.core.$strip>;
481
+ };
482
+ })[Method]["payload"]>) => Promise<z.core.output<(Record<Exclude<keyof (T["customOperations"] extends Record<string, {
483
+ payload: ZodSchema;
484
+ response: ZodSchema;
485
+ }> ? { [operation in keyof T["customOperations"]]: {
486
+ payload: T["customOperations"][operation]["payload"];
487
+ response: T["customOperations"][operation]["response"];
488
+ }; } : {}), keyof CRUD<any, any, any>>, {
489
+ payload: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
490
+ payload: ZodSchema;
491
+ response: ZodSchema;
492
+ }> ? { [operation in keyof T["customOperations"]]: {
493
+ payload: T["customOperations"][operation]["payload"];
494
+ response: T["customOperations"][operation]["response"];
495
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
496
+ payload: ZodSchema;
497
+ response: ZodSchema;
498
+ }> ? { [operation in keyof T["customOperations"]]: {
499
+ payload: T["customOperations"][operation]["payload"];
500
+ response: T["customOperations"][operation]["response"];
501
+ }; } : {}), keyof CRUD<any, any, any>>]["payload"];
502
+ response: (CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
503
+ payload: ZodSchema;
504
+ response: ZodSchema;
505
+ }> ? { [operation in keyof T["customOperations"]]: {
506
+ payload: T["customOperations"][operation]["payload"];
507
+ response: T["customOperations"][operation]["response"];
508
+ }; } : {}))[Exclude<keyof (T["customOperations"] extends Record<string, {
509
+ payload: ZodSchema;
510
+ response: ZodSchema;
511
+ }> ? { [operation in keyof T["customOperations"]]: {
512
+ payload: T["customOperations"][operation]["payload"];
513
+ response: T["customOperations"][operation]["response"];
514
+ }; } : {}), keyof CRUD<any, any, any>>]["response"];
515
+ }> & {
516
+ list: {
517
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
518
+ payload: ZodSchema;
519
+ response: ZodSchema;
520
+ }> ? { [operation in keyof T["customOperations"]]: {
521
+ payload: T["customOperations"][operation]["payload"];
522
+ response: T["customOperations"][operation]["response"];
523
+ }; } : {}))["list"]>[0] & {
524
+ pagination: ReturnType<typeof Pagination.schema.optional>;
525
+ }, z.core.$strip>;
526
+ response: ZodArray<Awaited<ReturnType<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
527
+ payload: ZodSchema;
528
+ response: ZodSchema;
529
+ }> ? { [operation in keyof T["customOperations"]]: {
530
+ payload: T["customOperations"][operation]["payload"];
531
+ response: T["customOperations"][operation]["response"];
532
+ }; } : {}))["list"]>>[number]>;
533
+ };
534
+ details: {
535
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
536
+ payload: ZodSchema;
537
+ response: ZodSchema;
538
+ }> ? { [operation in keyof T["customOperations"]]: {
539
+ payload: T["customOperations"][operation]["payload"];
540
+ response: T["customOperations"][operation]["response"];
541
+ }; } : {}))["details"]>[0], z.core.$strip>;
542
+ response: ZodNullable<T["models"]["details"]>;
543
+ };
544
+ create: {
545
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
546
+ payload: ZodSchema;
547
+ response: ZodSchema;
548
+ }> ? { [operation in keyof T["customOperations"]]: {
549
+ payload: T["customOperations"][operation]["payload"];
550
+ response: T["customOperations"][operation]["response"];
551
+ }; } : {}))["create"]>[0], z.core.$strip>;
552
+ response: ZodObject<{
553
+ id: ZodString;
554
+ }, z.core.$strip>;
555
+ };
556
+ updateOne: {
557
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
558
+ payload: ZodSchema;
559
+ response: ZodSchema;
560
+ }> ? { [operation in keyof T["customOperations"]]: {
561
+ payload: T["customOperations"][operation]["payload"];
562
+ response: T["customOperations"][operation]["response"];
563
+ }; } : {}))["updateOne"]>[0], z.core.$strip>;
564
+ response: ZodObject<{
565
+ success: ZodBoolean;
566
+ }, z.core.$strip>;
567
+ };
568
+ deleteOne: {
569
+ payload: ZodObject<Parameters<(CRUD<Models<T["models"]["list"], T["models"]["details"]>, SearchPayload<T["searchPayload"]["list"], T["searchPayload"]["specific"]>, ActionsPayload<T["actionsPayload"]["create"], T["actionsPayload"]["update"]>> & (T["customOperations"] extends Record<string, {
570
+ payload: ZodSchema;
571
+ response: ZodSchema;
572
+ }> ? { [operation in keyof T["customOperations"]]: {
573
+ payload: T["customOperations"][operation]["payload"];
574
+ response: T["customOperations"][operation]["response"];
575
+ }; } : {}))["deleteOne"]>[0], z.core.$strip>;
576
+ response: ZodObject<{
577
+ success: ZodBoolean;
578
+ }, z.core.$strip>;
579
+ };
580
+ })[Method]["response"]>>;
581
+ export {};
@@ -0,0 +1 @@
1
+ export * from './pagination.value-object';
@@ -0,0 +1,19 @@
1
+ import z from 'zod';
2
+ export type PaginationModel = z.infer<typeof Pagination.schema>;
3
+ export declare class Pagination {
4
+ private readonly data;
5
+ static schema: z.ZodObject<{
6
+ zeroBasedIndex: z.ZodCoercedNumber<unknown>;
7
+ pageSize: z.ZodCoercedNumber<unknown>;
8
+ }, z.core.$strip>;
9
+ private constructor();
10
+ static create: (data: PaginationModel) => Pagination;
11
+ get model(): PaginationModel;
12
+ same: (pagination: Pagination) => boolean;
13
+ get nextPage(): Pagination;
14
+ /**
15
+ * Safe implementation. If it's first page, pagination with the same model is returned.
16
+ */
17
+ get previousPage(): Pagination;
18
+ get previousPage_UNSAFE(): Pagination;
19
+ }
@@ -0,0 +1 @@
1
+ export {};