cogsbox-shape 0.5.77 → 0.5.79

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.
@@ -1,1568 +0,0 @@
1
- import { z } from "zod";
2
- import { type JsonSchema7Type } from "zod-to-json-schema";
3
- type CurrentTimestampConfig = {
4
- default: "CURRENT_TIMESTAMP";
5
- defaultValue: Date;
6
- };
7
- export declare const isFunction: (fn: unknown) => fn is Function;
8
- export declare function currentTimeStamp(): CurrentTimestampConfig;
9
- type SQLType = ({
10
- type: "int";
11
- nullable?: boolean;
12
- default?: number;
13
- } | {
14
- type: "boolean";
15
- nullable?: boolean;
16
- default?: boolean;
17
- } | {
18
- type: "date" | "datetime";
19
- nullable?: boolean;
20
- default?: "CURRENT_TIMESTAMP";
21
- defaultValue?: Date;
22
- } | {
23
- type: "date" | "datetime";
24
- nullable?: boolean;
25
- default?: Date;
26
- } | {
27
- type: "varchar" | "char" | "text" | "longtext";
28
- nullable?: boolean;
29
- length?: number;
30
- default?: string;
31
- }) & {
32
- pk?: true;
33
- };
34
- type BaseConfig = {
35
- nullable?: boolean;
36
- pk?: true;
37
- field?: string;
38
- };
39
- type IntConfig = BaseConfig & {
40
- default?: number;
41
- };
42
- type BooleanConfig = BaseConfig & {
43
- default?: boolean;
44
- };
45
- type DateConfig = BaseConfig & {
46
- type?: "date" | "datetime";
47
- default?: Date;
48
- };
49
- type StringConfig = BaseConfig & {
50
- length?: number;
51
- default?: string;
52
- };
53
- type SQLToDefaultType<T extends SQLType> = T["nullable"] extends true ? T["type"] extends "varchar" | "char" | "text" | "longtext" ? string | null : T["type"] extends "int" ? number | null : T["type"] extends "boolean" ? boolean | null : T["type"] extends "date" | "datetime" ? T extends {
54
- default: "CURRENT_TIMESTAMP";
55
- } ? never : Date | null : never : T["type"] extends "varchar" | "char" | "text" | "longtext" ? string : T["type"] extends "int" ? number : T["type"] extends "boolean" ? boolean : T["type"] extends "date" | "datetime" ? T extends {
56
- default: "CURRENT_TIMESTAMP";
57
- } ? never : Date : never;
58
- type SQLToZodType<T extends SQLType, TDefault extends boolean> = T["pk"] extends true ? TDefault extends true ? z.ZodString : z.ZodNumber : T["nullable"] extends true ? T["type"] extends "varchar" | "char" | "text" | "longtext" ? z.ZodNullable<z.ZodString> : T["type"] extends "int" ? z.ZodNullable<z.ZodNumber> : T["type"] extends "boolean" ? z.ZodNullable<z.ZodBoolean> : T["type"] extends "date" | "datetime" ? T extends {
59
- default: "CURRENT_TIMESTAMP";
60
- } ? TDefault extends true ? never : z.ZodNullable<z.ZodDate> : z.ZodNullable<z.ZodDate> : never : T["type"] extends "varchar" | "char" | "text" | "longtext" ? z.ZodString : T["type"] extends "int" ? z.ZodNumber : T["type"] extends "boolean" ? z.ZodBoolean : T["type"] extends "date" | "datetime" ? T extends {
61
- default: "CURRENT_TIMESTAMP";
62
- } ? TDefault extends true ? never : z.ZodDate : z.ZodDate : never;
63
- type CustomTransform<DbType, ClientType> = {
64
- toClient: (dbValue: DbType) => ClientType;
65
- toDb: (clientValue: ClientType) => DbType;
66
- };
67
- export declare function createTransforms<TTransforms extends Record<string, CustomTransform<any, any>>>(transforms: TTransforms): {
68
- sql: <T extends SQLType>(config: T) => {
69
- sql: T;
70
- dbType: SQLToZodType<T, false>;
71
- zodDbSchema: SQLToZodType<T, false>;
72
- zodClientSchema: SQLToZodType<T, true>;
73
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
74
- zod: SQLToZodType<T, true>;
75
- serverType?: never;
76
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
77
- sql: T;
78
- zodDbSchema: SQLToZodType<T, false>;
79
- zodClientSchema: ClientType;
80
- jsonSchema: any;
81
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
82
- transform: (transforms: {
83
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never) => z.TypeOf<ClientType>;
84
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never;
85
- }) => {
86
- sql: T;
87
- zodDbSchema: SQLToZodType<T, false>;
88
- zodClientSchema: ClientType;
89
- jsonSchema: any;
90
- defaultValue: DefaultValue;
91
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never) => z.TypeOf<ClientType>;
92
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never;
93
- transforms: {
94
- toClient: string;
95
- toDb: string;
96
- };
97
- };
98
- };
99
- db: <ServerType extends z.ZodTypeAny>(dbType: ({ zod }: {
100
- zod: SQLToZodType<T, false>;
101
- }) => ServerType) => {
102
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
103
- zod: SQLToZodType<T, true>;
104
- serverType?: ServerType;
105
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
106
- sql: T;
107
- zodDbSchema: SQLToZodType<T, false> | ServerType;
108
- zodClientSchema: ClientType;
109
- jsonSchema: any;
110
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
111
- transform: (transforms: {
112
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never) => z.TypeOf<ClientType>;
113
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never;
114
- }) => {
115
- sql: T;
116
- zodDbSchema: SQLToZodType<T, false> | ServerType;
117
- zodClientSchema: ClientType;
118
- jsonSchema: any;
119
- defaultValue: DefaultValue;
120
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never) => z.TypeOf<ClientType>;
121
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never;
122
- transforms: {
123
- toClient: string;
124
- toDb: string;
125
- };
126
- };
127
- };
128
- sql: T;
129
- dbType: ServerType;
130
- zodDbSchema: ServerType;
131
- zodClientSchema: SQLToZodType<T, true>;
132
- jsonSchema: JsonSchema7Type & {
133
- $schema?: string | undefined;
134
- definitions?: {
135
- [key: string]: JsonSchema7Type;
136
- } | undefined;
137
- };
138
- defaultValue: z.TypeOf<ServerType>;
139
- };
140
- };
141
- };
142
- export declare const shape: {
143
- int: (config?: IntConfig) => {
144
- sql: {
145
- nullable?: boolean;
146
- pk?: true;
147
- field?: string;
148
- default?: number;
149
- type: "int";
150
- };
151
- dbType: z.ZodNumber;
152
- zodDbSchema: z.ZodNumber;
153
- zodClientSchema: z.ZodNumber;
154
- jsonSchema: JsonSchema7Type & {
155
- $schema?: string | undefined;
156
- definitions?: {
157
- [key: string]: JsonSchema7Type;
158
- } | undefined;
159
- };
160
- defaultValue: number;
161
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
162
- zod: z.ZodNumber;
163
- serverType?: never;
164
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
165
- sql: {
166
- nullable?: boolean;
167
- pk?: true;
168
- field?: string;
169
- default?: number;
170
- type: "int";
171
- };
172
- zodDbSchema: z.ZodNumber;
173
- zodClientSchema: ClientType;
174
- jsonSchema: any;
175
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
176
- transform: (transforms: {
177
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
178
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
179
- }) => {
180
- sql: {
181
- nullable?: boolean;
182
- pk?: true;
183
- field?: string;
184
- default?: number;
185
- type: "int";
186
- };
187
- zodDbSchema: z.ZodNumber;
188
- zodClientSchema: ClientType;
189
- jsonSchema: any;
190
- defaultValue: DefaultValue;
191
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
192
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
193
- transforms: {
194
- toClient: string;
195
- toDb: string;
196
- };
197
- };
198
- };
199
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
200
- zod: z.ZodNumber;
201
- }) => ServerType)) => {
202
- sql: {
203
- nullable?: boolean;
204
- pk?: true;
205
- field?: string;
206
- default?: number;
207
- type: "int";
208
- };
209
- dbType: ServerType;
210
- zodDbSchema: ServerType;
211
- zodClientSchema: z.ZodNumber;
212
- jsonSchema: JsonSchema7Type & {
213
- $schema?: string | undefined;
214
- definitions?: {
215
- [key: string]: JsonSchema7Type;
216
- } | undefined;
217
- };
218
- defaultValue: z.TypeOf<ServerType>;
219
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
220
- zod: z.ZodNumber;
221
- serverType?: ServerType;
222
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
223
- sql: {
224
- nullable?: boolean;
225
- pk?: true;
226
- field?: string;
227
- default?: number;
228
- type: "int";
229
- };
230
- zodDbSchema: z.ZodNumber | ServerType;
231
- zodClientSchema: ClientType;
232
- jsonSchema: any;
233
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
234
- transform: (transforms: {
235
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
236
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
237
- }) => {
238
- sql: {
239
- nullable?: boolean;
240
- pk?: true;
241
- field?: string;
242
- default?: number;
243
- type: "int";
244
- };
245
- zodDbSchema: z.ZodNumber | ServerType;
246
- zodClientSchema: ClientType;
247
- jsonSchema: any;
248
- defaultValue: DefaultValue;
249
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
250
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
251
- transforms: {
252
- toClient: string;
253
- toDb: string;
254
- };
255
- };
256
- };
257
- };
258
- };
259
- varchar: (config?: Omit<StringConfig, "type">) => {
260
- sql: {
261
- pk?: true;
262
- nullable?: boolean;
263
- default?: string;
264
- length?: number;
265
- field?: string;
266
- type: "varchar";
267
- };
268
- dbType: z.ZodString;
269
- zodDbSchema: z.ZodString;
270
- zodClientSchema: z.ZodString;
271
- jsonSchema: JsonSchema7Type & {
272
- $schema?: string | undefined;
273
- definitions?: {
274
- [key: string]: JsonSchema7Type;
275
- } | undefined;
276
- };
277
- defaultValue: string;
278
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
279
- zod: z.ZodString;
280
- serverType?: never;
281
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
282
- sql: {
283
- pk?: true;
284
- nullable?: boolean;
285
- default?: string;
286
- length?: number;
287
- field?: string;
288
- type: "varchar";
289
- };
290
- zodDbSchema: z.ZodString;
291
- zodClientSchema: ClientType;
292
- jsonSchema: any;
293
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
294
- transform: (transforms: {
295
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
296
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
297
- }) => {
298
- sql: {
299
- pk?: true;
300
- nullable?: boolean;
301
- default?: string;
302
- length?: number;
303
- field?: string;
304
- type: "varchar";
305
- };
306
- zodDbSchema: z.ZodString;
307
- zodClientSchema: ClientType;
308
- jsonSchema: any;
309
- defaultValue: DefaultValue;
310
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
311
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
312
- transforms: {
313
- toClient: string;
314
- toDb: string;
315
- };
316
- };
317
- };
318
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
319
- zod: z.ZodString;
320
- }) => ServerType)) => {
321
- sql: {
322
- pk?: true;
323
- nullable?: boolean;
324
- default?: string;
325
- length?: number;
326
- field?: string;
327
- type: "varchar";
328
- };
329
- dbType: ServerType;
330
- zodDbSchema: ServerType;
331
- zodClientSchema: z.ZodString;
332
- jsonSchema: JsonSchema7Type & {
333
- $schema?: string | undefined;
334
- definitions?: {
335
- [key: string]: JsonSchema7Type;
336
- } | undefined;
337
- };
338
- defaultValue: z.TypeOf<ServerType>;
339
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
340
- zod: z.ZodString;
341
- serverType?: ServerType;
342
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
343
- sql: {
344
- pk?: true;
345
- nullable?: boolean;
346
- default?: string;
347
- length?: number;
348
- field?: string;
349
- type: "varchar";
350
- };
351
- zodDbSchema: z.ZodString | ServerType;
352
- zodClientSchema: ClientType;
353
- jsonSchema: any;
354
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
355
- transform: (transforms: {
356
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
357
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
358
- }) => {
359
- sql: {
360
- pk?: true;
361
- nullable?: boolean;
362
- default?: string;
363
- length?: number;
364
- field?: string;
365
- type: "varchar";
366
- };
367
- zodDbSchema: z.ZodString | ServerType;
368
- zodClientSchema: ClientType;
369
- jsonSchema: any;
370
- defaultValue: DefaultValue;
371
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
372
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
373
- transforms: {
374
- toClient: string;
375
- toDb: string;
376
- };
377
- };
378
- };
379
- };
380
- };
381
- char: (config?: Omit<StringConfig, "type">) => {
382
- sql: {
383
- pk?: true;
384
- nullable?: boolean;
385
- default?: string;
386
- length?: number;
387
- field?: string;
388
- type: "char";
389
- };
390
- dbType: z.ZodString;
391
- zodDbSchema: z.ZodString;
392
- zodClientSchema: z.ZodString;
393
- jsonSchema: JsonSchema7Type & {
394
- $schema?: string | undefined;
395
- definitions?: {
396
- [key: string]: JsonSchema7Type;
397
- } | undefined;
398
- };
399
- defaultValue: string;
400
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
401
- zod: z.ZodString;
402
- serverType?: never;
403
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
404
- sql: {
405
- pk?: true;
406
- nullable?: boolean;
407
- default?: string;
408
- length?: number;
409
- field?: string;
410
- type: "char";
411
- };
412
- zodDbSchema: z.ZodString;
413
- zodClientSchema: ClientType;
414
- jsonSchema: any;
415
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
416
- transform: (transforms: {
417
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
418
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
419
- }) => {
420
- sql: {
421
- pk?: true;
422
- nullable?: boolean;
423
- default?: string;
424
- length?: number;
425
- field?: string;
426
- type: "char";
427
- };
428
- zodDbSchema: z.ZodString;
429
- zodClientSchema: ClientType;
430
- jsonSchema: any;
431
- defaultValue: DefaultValue;
432
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
433
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
434
- transforms: {
435
- toClient: string;
436
- toDb: string;
437
- };
438
- };
439
- };
440
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
441
- zod: z.ZodString;
442
- }) => ServerType)) => {
443
- sql: {
444
- pk?: true;
445
- nullable?: boolean;
446
- default?: string;
447
- length?: number;
448
- field?: string;
449
- type: "char";
450
- };
451
- dbType: ServerType;
452
- zodDbSchema: ServerType;
453
- zodClientSchema: z.ZodString;
454
- jsonSchema: JsonSchema7Type & {
455
- $schema?: string | undefined;
456
- definitions?: {
457
- [key: string]: JsonSchema7Type;
458
- } | undefined;
459
- };
460
- defaultValue: z.TypeOf<ServerType>;
461
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
462
- zod: z.ZodString;
463
- serverType?: ServerType;
464
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
465
- sql: {
466
- pk?: true;
467
- nullable?: boolean;
468
- default?: string;
469
- length?: number;
470
- field?: string;
471
- type: "char";
472
- };
473
- zodDbSchema: z.ZodString | ServerType;
474
- zodClientSchema: ClientType;
475
- jsonSchema: any;
476
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
477
- transform: (transforms: {
478
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
479
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
480
- }) => {
481
- sql: {
482
- pk?: true;
483
- nullable?: boolean;
484
- default?: string;
485
- length?: number;
486
- field?: string;
487
- type: "char";
488
- };
489
- zodDbSchema: z.ZodString | ServerType;
490
- zodClientSchema: ClientType;
491
- jsonSchema: any;
492
- defaultValue: DefaultValue;
493
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
494
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
495
- transforms: {
496
- toClient: string;
497
- toDb: string;
498
- };
499
- };
500
- };
501
- };
502
- };
503
- text: (config?: Omit<StringConfig, "type" | "length">) => {
504
- sql: {
505
- pk?: true;
506
- nullable?: boolean;
507
- default?: string;
508
- field?: string;
509
- type: "text";
510
- };
511
- dbType: z.ZodString;
512
- zodDbSchema: z.ZodString;
513
- zodClientSchema: z.ZodString;
514
- jsonSchema: JsonSchema7Type & {
515
- $schema?: string | undefined;
516
- definitions?: {
517
- [key: string]: JsonSchema7Type;
518
- } | undefined;
519
- };
520
- defaultValue: string;
521
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
522
- zod: z.ZodString;
523
- serverType?: never;
524
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
525
- sql: {
526
- pk?: true;
527
- nullable?: boolean;
528
- default?: string;
529
- field?: string;
530
- type: "text";
531
- };
532
- zodDbSchema: z.ZodString;
533
- zodClientSchema: ClientType;
534
- jsonSchema: any;
535
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
536
- transform: (transforms: {
537
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
538
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
539
- }) => {
540
- sql: {
541
- pk?: true;
542
- nullable?: boolean;
543
- default?: string;
544
- field?: string;
545
- type: "text";
546
- };
547
- zodDbSchema: z.ZodString;
548
- zodClientSchema: ClientType;
549
- jsonSchema: any;
550
- defaultValue: DefaultValue;
551
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
552
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
553
- transforms: {
554
- toClient: string;
555
- toDb: string;
556
- };
557
- };
558
- };
559
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
560
- zod: z.ZodString;
561
- }) => ServerType)) => {
562
- sql: {
563
- pk?: true;
564
- nullable?: boolean;
565
- default?: string;
566
- field?: string;
567
- type: "text";
568
- };
569
- dbType: ServerType;
570
- zodDbSchema: ServerType;
571
- zodClientSchema: z.ZodString;
572
- jsonSchema: JsonSchema7Type & {
573
- $schema?: string | undefined;
574
- definitions?: {
575
- [key: string]: JsonSchema7Type;
576
- } | undefined;
577
- };
578
- defaultValue: z.TypeOf<ServerType>;
579
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
580
- zod: z.ZodString;
581
- serverType?: ServerType;
582
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
583
- sql: {
584
- pk?: true;
585
- nullable?: boolean;
586
- default?: string;
587
- field?: string;
588
- type: "text";
589
- };
590
- zodDbSchema: z.ZodString | ServerType;
591
- zodClientSchema: ClientType;
592
- jsonSchema: any;
593
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
594
- transform: (transforms: {
595
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
596
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
597
- }) => {
598
- sql: {
599
- pk?: true;
600
- nullable?: boolean;
601
- default?: string;
602
- field?: string;
603
- type: "text";
604
- };
605
- zodDbSchema: z.ZodString | ServerType;
606
- zodClientSchema: ClientType;
607
- jsonSchema: any;
608
- defaultValue: DefaultValue;
609
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
610
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
611
- transforms: {
612
- toClient: string;
613
- toDb: string;
614
- };
615
- };
616
- };
617
- };
618
- };
619
- longtext: (config?: Omit<StringConfig, "type" | "length">) => {
620
- sql: {
621
- pk?: true;
622
- nullable?: boolean;
623
- default?: string;
624
- field?: string;
625
- type: "longtext";
626
- };
627
- dbType: z.ZodString;
628
- zodDbSchema: z.ZodString;
629
- zodClientSchema: z.ZodString;
630
- jsonSchema: JsonSchema7Type & {
631
- $schema?: string | undefined;
632
- definitions?: {
633
- [key: string]: JsonSchema7Type;
634
- } | undefined;
635
- };
636
- defaultValue: string;
637
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
638
- zod: z.ZodString;
639
- serverType?: never;
640
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
641
- sql: {
642
- pk?: true;
643
- nullable?: boolean;
644
- default?: string;
645
- field?: string;
646
- type: "longtext";
647
- };
648
- zodDbSchema: z.ZodString;
649
- zodClientSchema: ClientType;
650
- jsonSchema: any;
651
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
652
- transform: (transforms: {
653
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
654
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
655
- }) => {
656
- sql: {
657
- pk?: true;
658
- nullable?: boolean;
659
- default?: string;
660
- field?: string;
661
- type: "longtext";
662
- };
663
- zodDbSchema: z.ZodString;
664
- zodClientSchema: ClientType;
665
- jsonSchema: any;
666
- defaultValue: DefaultValue;
667
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
668
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
669
- transforms: {
670
- toClient: string;
671
- toDb: string;
672
- };
673
- };
674
- };
675
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
676
- zod: z.ZodString;
677
- }) => ServerType)) => {
678
- sql: {
679
- pk?: true;
680
- nullable?: boolean;
681
- default?: string;
682
- field?: string;
683
- type: "longtext";
684
- };
685
- dbType: ServerType;
686
- zodDbSchema: ServerType;
687
- zodClientSchema: z.ZodString;
688
- jsonSchema: JsonSchema7Type & {
689
- $schema?: string | undefined;
690
- definitions?: {
691
- [key: string]: JsonSchema7Type;
692
- } | undefined;
693
- };
694
- defaultValue: z.TypeOf<ServerType>;
695
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
696
- zod: z.ZodString;
697
- serverType?: ServerType;
698
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
699
- sql: {
700
- pk?: true;
701
- nullable?: boolean;
702
- default?: string;
703
- field?: string;
704
- type: "longtext";
705
- };
706
- zodDbSchema: z.ZodString | ServerType;
707
- zodClientSchema: ClientType;
708
- jsonSchema: any;
709
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
710
- transform: (transforms: {
711
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
712
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
713
- }) => {
714
- sql: {
715
- pk?: true;
716
- nullable?: boolean;
717
- default?: string;
718
- field?: string;
719
- type: "longtext";
720
- };
721
- zodDbSchema: z.ZodString | ServerType;
722
- zodClientSchema: ClientType;
723
- jsonSchema: any;
724
- defaultValue: DefaultValue;
725
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
726
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
727
- transforms: {
728
- toClient: string;
729
- toDb: string;
730
- };
731
- };
732
- };
733
- };
734
- };
735
- boolean: (config?: BooleanConfig) => {
736
- sql: {
737
- nullable?: boolean;
738
- pk?: true;
739
- field?: string;
740
- default?: boolean;
741
- type: "boolean";
742
- };
743
- dbType: z.ZodBoolean;
744
- zodDbSchema: z.ZodBoolean;
745
- zodClientSchema: z.ZodBoolean;
746
- jsonSchema: JsonSchema7Type & {
747
- $schema?: string | undefined;
748
- definitions?: {
749
- [key: string]: JsonSchema7Type;
750
- } | undefined;
751
- };
752
- defaultValue: boolean;
753
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
754
- zod: z.ZodBoolean;
755
- serverType?: never;
756
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
757
- sql: {
758
- nullable?: boolean;
759
- pk?: true;
760
- field?: string;
761
- default?: boolean;
762
- type: "boolean";
763
- };
764
- zodDbSchema: z.ZodBoolean;
765
- zodClientSchema: ClientType;
766
- jsonSchema: any;
767
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
768
- transform: (transforms: {
769
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
770
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
771
- }) => {
772
- sql: {
773
- nullable?: boolean;
774
- pk?: true;
775
- field?: string;
776
- default?: boolean;
777
- type: "boolean";
778
- };
779
- zodDbSchema: z.ZodBoolean;
780
- zodClientSchema: ClientType;
781
- jsonSchema: any;
782
- defaultValue: DefaultValue;
783
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
784
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
785
- transforms: {
786
- toClient: string;
787
- toDb: string;
788
- };
789
- };
790
- };
791
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
792
- zod: z.ZodBoolean;
793
- }) => ServerType)) => {
794
- sql: {
795
- nullable?: boolean;
796
- pk?: true;
797
- field?: string;
798
- default?: boolean;
799
- type: "boolean";
800
- };
801
- dbType: ServerType;
802
- zodDbSchema: ServerType;
803
- zodClientSchema: z.ZodBoolean;
804
- jsonSchema: JsonSchema7Type & {
805
- $schema?: string | undefined;
806
- definitions?: {
807
- [key: string]: JsonSchema7Type;
808
- } | undefined;
809
- };
810
- defaultValue: z.TypeOf<ServerType>;
811
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
812
- zod: z.ZodBoolean;
813
- serverType?: ServerType;
814
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
815
- sql: {
816
- nullable?: boolean;
817
- pk?: true;
818
- field?: string;
819
- default?: boolean;
820
- type: "boolean";
821
- };
822
- zodDbSchema: z.ZodBoolean | ServerType;
823
- zodClientSchema: ClientType;
824
- jsonSchema: any;
825
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
826
- transform: (transforms: {
827
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
828
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
829
- }) => {
830
- sql: {
831
- nullable?: boolean;
832
- pk?: true;
833
- field?: string;
834
- default?: boolean;
835
- type: "boolean";
836
- };
837
- zodDbSchema: z.ZodBoolean | ServerType;
838
- zodClientSchema: ClientType;
839
- jsonSchema: any;
840
- defaultValue: DefaultValue;
841
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
842
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
843
- transforms: {
844
- toClient: string;
845
- toDb: string;
846
- };
847
- };
848
- };
849
- };
850
- };
851
- date: (config?: Omit<DateConfig, "type">) => {
852
- sql: {
853
- pk?: true;
854
- nullable?: boolean;
855
- default?: Date;
856
- field?: string;
857
- type: "date";
858
- };
859
- dbType: z.ZodDate;
860
- zodDbSchema: z.ZodDate;
861
- zodClientSchema: z.ZodDate;
862
- jsonSchema: JsonSchema7Type & {
863
- $schema?: string | undefined;
864
- definitions?: {
865
- [key: string]: JsonSchema7Type;
866
- } | undefined;
867
- };
868
- defaultValue: Date;
869
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
870
- zod: z.ZodDate;
871
- serverType?: never;
872
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
873
- sql: {
874
- pk?: true;
875
- nullable?: boolean;
876
- default?: Date;
877
- field?: string;
878
- type: "date";
879
- };
880
- zodDbSchema: z.ZodDate;
881
- zodClientSchema: ClientType;
882
- jsonSchema: any;
883
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
884
- transform: (transforms: {
885
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
886
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
887
- }) => {
888
- sql: {
889
- pk?: true;
890
- nullable?: boolean;
891
- default?: Date;
892
- field?: string;
893
- type: "date";
894
- };
895
- zodDbSchema: z.ZodDate;
896
- zodClientSchema: ClientType;
897
- jsonSchema: any;
898
- defaultValue: DefaultValue;
899
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
900
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
901
- transforms: {
902
- toClient: string;
903
- toDb: string;
904
- };
905
- };
906
- };
907
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
908
- zod: z.ZodDate;
909
- }) => ServerType)) => {
910
- sql: {
911
- pk?: true;
912
- nullable?: boolean;
913
- default?: Date;
914
- field?: string;
915
- type: "date";
916
- };
917
- dbType: ServerType;
918
- zodDbSchema: ServerType;
919
- zodClientSchema: z.ZodDate;
920
- jsonSchema: JsonSchema7Type & {
921
- $schema?: string | undefined;
922
- definitions?: {
923
- [key: string]: JsonSchema7Type;
924
- } | undefined;
925
- };
926
- defaultValue: z.TypeOf<ServerType>;
927
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
928
- zod: z.ZodDate;
929
- serverType?: ServerType;
930
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
931
- sql: {
932
- pk?: true;
933
- nullable?: boolean;
934
- default?: Date;
935
- field?: string;
936
- type: "date";
937
- };
938
- zodDbSchema: z.ZodDate | ServerType;
939
- zodClientSchema: ClientType;
940
- jsonSchema: any;
941
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
942
- transform: (transforms: {
943
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
944
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
945
- }) => {
946
- sql: {
947
- pk?: true;
948
- nullable?: boolean;
949
- default?: Date;
950
- field?: string;
951
- type: "date";
952
- };
953
- zodDbSchema: z.ZodDate | ServerType;
954
- zodClientSchema: ClientType;
955
- jsonSchema: any;
956
- defaultValue: DefaultValue;
957
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
958
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
959
- transforms: {
960
- toClient: string;
961
- toDb: string;
962
- };
963
- };
964
- };
965
- };
966
- };
967
- datetime: (config?: Omit<DateConfig, "type">) => {
968
- sql: {
969
- pk?: true;
970
- nullable?: boolean;
971
- default?: Date;
972
- field?: string;
973
- type: "datetime";
974
- };
975
- dbType: z.ZodDate;
976
- zodDbSchema: z.ZodDate;
977
- zodClientSchema: z.ZodDate;
978
- jsonSchema: JsonSchema7Type & {
979
- $schema?: string | undefined;
980
- definitions?: {
981
- [key: string]: JsonSchema7Type;
982
- } | undefined;
983
- };
984
- defaultValue: Date;
985
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
986
- zod: z.ZodDate;
987
- serverType?: never;
988
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
989
- sql: {
990
- pk?: true;
991
- nullable?: boolean;
992
- default?: Date;
993
- field?: string;
994
- type: "datetime";
995
- };
996
- zodDbSchema: z.ZodDate;
997
- zodClientSchema: ClientType;
998
- jsonSchema: any;
999
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1000
- transform: (transforms: {
1001
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1002
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1003
- }) => {
1004
- sql: {
1005
- pk?: true;
1006
- nullable?: boolean;
1007
- default?: Date;
1008
- field?: string;
1009
- type: "datetime";
1010
- };
1011
- zodDbSchema: z.ZodDate;
1012
- zodClientSchema: ClientType;
1013
- jsonSchema: any;
1014
- defaultValue: DefaultValue;
1015
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1016
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1017
- transforms: {
1018
- toClient: string;
1019
- toDb: string;
1020
- };
1021
- };
1022
- };
1023
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
1024
- zod: z.ZodDate;
1025
- }) => ServerType)) => {
1026
- sql: {
1027
- pk?: true;
1028
- nullable?: boolean;
1029
- default?: Date;
1030
- field?: string;
1031
- type: "datetime";
1032
- };
1033
- dbType: ServerType;
1034
- zodDbSchema: ServerType;
1035
- zodClientSchema: z.ZodDate;
1036
- jsonSchema: JsonSchema7Type & {
1037
- $schema?: string | undefined;
1038
- definitions?: {
1039
- [key: string]: JsonSchema7Type;
1040
- } | undefined;
1041
- };
1042
- defaultValue: z.TypeOf<ServerType>;
1043
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
1044
- zod: z.ZodDate;
1045
- serverType?: ServerType;
1046
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
1047
- sql: {
1048
- pk?: true;
1049
- nullable?: boolean;
1050
- default?: Date;
1051
- field?: string;
1052
- type: "datetime";
1053
- };
1054
- zodDbSchema: z.ZodDate | ServerType;
1055
- zodClientSchema: ClientType;
1056
- jsonSchema: any;
1057
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1058
- transform: (transforms: {
1059
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1060
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1061
- }) => {
1062
- sql: {
1063
- pk?: true;
1064
- nullable?: boolean;
1065
- default?: Date;
1066
- field?: string;
1067
- type: "datetime";
1068
- };
1069
- zodDbSchema: z.ZodDate | ServerType;
1070
- zodClientSchema: ClientType;
1071
- jsonSchema: any;
1072
- defaultValue: DefaultValue;
1073
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1074
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1075
- transforms: {
1076
- toClient: string;
1077
- toDb: string;
1078
- };
1079
- };
1080
- };
1081
- };
1082
- };
1083
- sql: <T extends SQLType>(sqlConfig: T) => {
1084
- sql: T;
1085
- dbType: SQLToZodType<T, false>;
1086
- zodDbSchema: SQLToZodType<T, false>;
1087
- zodClientSchema: SQLToZodType<T, true>;
1088
- jsonSchema: JsonSchema7Type & {
1089
- $schema?: string | undefined;
1090
- definitions?: {
1091
- [key: string]: JsonSchema7Type;
1092
- } | undefined;
1093
- };
1094
- defaultValue: SQLToDefaultType<T>;
1095
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
1096
- zod: SQLToZodType<T, true>;
1097
- serverType?: never;
1098
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
1099
- sql: T;
1100
- zodDbSchema: SQLToZodType<T, false>;
1101
- zodClientSchema: ClientType;
1102
- jsonSchema: any;
1103
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1104
- transform: (transforms: {
1105
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never) => z.TypeOf<ClientType>;
1106
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never;
1107
- }) => {
1108
- sql: T;
1109
- zodDbSchema: SQLToZodType<T, false>;
1110
- zodClientSchema: ClientType;
1111
- jsonSchema: any;
1112
- defaultValue: DefaultValue;
1113
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never) => z.TypeOf<ClientType>;
1114
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : never : never : never;
1115
- transforms: {
1116
- toClient: string;
1117
- toDb: string;
1118
- };
1119
- };
1120
- };
1121
- db: <ServerType extends z.ZodTypeAny>(assert: ((tools: {
1122
- zod: SQLToZodType<T, false>;
1123
- }) => ServerType) | ServerType) => {
1124
- sql: T;
1125
- dbType: ServerType;
1126
- zodDbSchema: ServerType;
1127
- zodClientSchema: SQLToZodType<T, true>;
1128
- jsonSchema: JsonSchema7Type & {
1129
- $schema?: string | undefined;
1130
- definitions?: {
1131
- [key: string]: JsonSchema7Type;
1132
- } | undefined;
1133
- };
1134
- defaultValue: z.infer<ServerType>;
1135
- client: <ClientType extends z.ZodTypeAny, DefaultValue extends z.TypeOf<ClientType>>(assert?: ClientType | ((tools: {
1136
- zod: SQLToZodType<T, true>;
1137
- serverType?: ServerType;
1138
- }) => ClientType) | undefined, defaultValue?: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never) | undefined) => {
1139
- sql: T;
1140
- zodDbSchema: SQLToZodType<T, false> | ServerType;
1141
- zodClientSchema: ClientType;
1142
- jsonSchema: any;
1143
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1144
- transform: (transforms: {
1145
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never) => z.TypeOf<ClientType>;
1146
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never;
1147
- }) => {
1148
- sql: T;
1149
- zodDbSchema: SQLToZodType<T, false> | ServerType;
1150
- zodClientSchema: ClientType;
1151
- jsonSchema: any;
1152
- defaultValue: DefaultValue;
1153
- toClient: (dbValue: SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never) => z.TypeOf<ClientType>;
1154
- toDb: (clientValue: z.TypeOf<ClientType>) => SQLToZodType<T, false> extends infer T_1 ? T_1 extends SQLToZodType<T, false> ? T_1 extends z.ZodTypeAny ? z.TypeOf<SQLToZodType<T, false>> : ServerType extends z.ZodTypeAny ? z.TypeOf<ServerType> : any : never : never;
1155
- transforms: {
1156
- toClient: string;
1157
- toDb: string;
1158
- };
1159
- };
1160
- };
1161
- };
1162
- };
1163
- sql2: <T extends SQLType>(sqlConfig: T) => Builder<"sql", T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, undefined, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1164
- };
1165
- type Builder<TStage extends "sql" | "new" | "client" | "validation", T extends SQLType, TSql extends z.ZodTypeAny, TNew extends z.ZodTypeAny, TInitialValue, TClient extends z.ZodTypeAny, TValidation extends z.ZodTypeAny> = {
1166
- config: {
1167
- sql: T;
1168
- zodSqlSchema: TSql;
1169
- zodNewSchema: TNew;
1170
- initialValue: TInitialValue;
1171
- zodClientSchema: TClient;
1172
- zodValidationSchema: TValidation;
1173
- };
1174
- } & (TStage extends "sql" ? {
1175
- initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: ((tools: {
1176
- sql: TSql;
1177
- }) => TNewNext) | TNewNext, defaultValue: () => TDefaultNext) => Prettify<Builder<"new", T, TSql, TNewNext, TDefaultNext, TSql, TSql>>;
1178
- client: <TClientNext extends z.ZodTypeAny>(assert: ((tools: {
1179
- sql: TSql;
1180
- initialState: TNew;
1181
- }) => TClientNext) | TClientNext) => Prettify<Builder<"client", T, TSql, TNew, TInitialValue, TClientNext, TClientNext>>;
1182
- validation: <TValidationNext extends z.ZodTypeAny>(assert: ((tools: {
1183
- sql: TSql;
1184
- initialState: TNew;
1185
- client: TClient;
1186
- }) => TValidationNext) | TValidationNext) => Prettify<Builder<"validation", T, TSql, TNew, TInitialValue, TClient, TValidationNext>>;
1187
- } : TStage extends "new" ? {
1188
- client: <TClientNext extends z.ZodTypeAny>(assert: ((tools: {
1189
- sql: TSql;
1190
- initialState: TNew;
1191
- }) => TClientNext) | TClientNext) => Prettify<Builder<"client", T, TSql, TNew, TInitialValue, TClientNext, TClientNext>>;
1192
- validation: <TValidationNext extends z.ZodTypeAny>(assert: ((tools: {
1193
- sql: TSql;
1194
- initialState: TNew;
1195
- client: TClient;
1196
- }) => TValidationNext) | TValidationNext) => Prettify<Builder<"validation", T, TSql, TNew, TInitialValue, TClient, TValidationNext>>;
1197
- } : TStage extends "client" ? {
1198
- validation: <TValidationNext extends z.ZodTypeAny>(assert: ((tools: {
1199
- sql: TSql;
1200
- initialState: TNew;
1201
- client: TClient;
1202
- }) => TValidationNext) | TValidationNext) => Prettify<Builder<"validation", T, TSql, TNew, TInitialValue, TClient, TValidationNext>>;
1203
- } : TStage extends "validation" ? {
1204
- transform: (transforms: {
1205
- toClient: (dbValue: z.infer<TSql>) => z.infer<TClient>;
1206
- toDb: (clientValue: z.infer<TClient>) => z.infer<TSql>;
1207
- }) => {
1208
- config: {
1209
- sql: T;
1210
- zodSqlSchema: TSql;
1211
- zodNewSchema: TNew;
1212
- initialValue: TInitialValue;
1213
- zodClientSchema: TClient;
1214
- zodValidationSchema: TValidation;
1215
- transforms: {
1216
- toClient: (dbValue: z.infer<TSql>) => z.infer<TClient>;
1217
- toDb: (clientValue: z.infer<TClient>) => z.infer<TSql>;
1218
- };
1219
- };
1220
- };
1221
- } : {});
1222
- export declare function hasMany<T extends Schema<any>>(config: {
1223
- fromKey: string;
1224
- toKey: () => T[keyof T];
1225
- schema: () => T;
1226
- defaultCount?: number;
1227
- }): () => {
1228
- type: "hasMany";
1229
- fromKey: string;
1230
- toKey: T[keyof T];
1231
- schema: T;
1232
- defaultCount: number | undefined;
1233
- };
1234
- export declare function hasOne<T extends Schema<any>>(config: {
1235
- fromKey: string;
1236
- toKey: () => T[keyof T];
1237
- schema: () => T;
1238
- }): () => {
1239
- type: "hasOne";
1240
- fromKey: string;
1241
- toKey: T[keyof T];
1242
- schema: T;
1243
- };
1244
- export declare function belongsTo<T extends Schema<any>>(config: {
1245
- fromKey: string;
1246
- toKey: () => T[keyof T];
1247
- schema: () => T;
1248
- }): () => {
1249
- type: "belongsTo";
1250
- fromKey: string;
1251
- toKey: T[keyof T];
1252
- schema: T;
1253
- };
1254
- export declare function manyToMany<T extends Schema<any>>(config: {
1255
- fromKey: string;
1256
- toKey: () => T[keyof T];
1257
- schema: () => T;
1258
- defaultCount?: number;
1259
- }): () => {
1260
- type: "manyToMany";
1261
- fromKey: string;
1262
- toKey: T[keyof T];
1263
- schema: T;
1264
- defaultCount: number | undefined;
1265
- };
1266
- type RelationType = "hasMany" | "belongsTo" | "hasOne" | "manyToMany";
1267
- type BaseSchemaField<T extends SQLType = SQLType> = {
1268
- type: "field";
1269
- sql: T;
1270
- zodDbSchema: z.ZodType<any>;
1271
- zodClientSchema: z.ZodType<any>;
1272
- defaultValue?: any;
1273
- __fieldId?: string;
1274
- toClient?: (dbValue: any) => any;
1275
- toDb?: (clientValue: any) => any;
1276
- };
1277
- type AnyFieldDefinition = ReturnType<typeof shape.sql>;
1278
- type ReferenceField<TField extends AnyFieldDefinition, TTo extends SchemaField> = TField & {
1279
- type: "reference";
1280
- to: () => TTo;
1281
- };
1282
- type SchemaField<T extends SQLType = SQLType> = BaseSchemaField<T> | ReferenceField<AnyFieldDefinition, any>;
1283
- export type Schema<T extends Record<string, SchemaField | (() => Relation<any>)>> = {
1284
- _tableName: string;
1285
- __schemaId?: string;
1286
- [key: string]: T[keyof T] | string | ((id: number) => string) | undefined;
1287
- };
1288
- type ValidShapeField = ReturnType<typeof shape.sql>;
1289
- export type ShapeSchema = {
1290
- _tableName: string;
1291
- [key: string]: string | ((id: number) => string) | ValidShapeField;
1292
- };
1293
- type Relation<U extends Schema<any>> = {
1294
- type: RelationType;
1295
- fromKey: string;
1296
- toKey: SchemaField;
1297
- schema: U;
1298
- defaultCount?: number;
1299
- };
1300
- type Prettify<T> = {
1301
- [K in keyof T]: T[K];
1302
- } & {};
1303
- type InferSchema<T> = {
1304
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1305
- zodClientSchema: infer ClientType extends z.ZodTypeAny;
1306
- toClient?: (dbValue: any) => infer TransformedType;
1307
- } ? T[K]["toClient"] extends Function ? z.ZodType<TransformedType> : ClientType extends z.ZodNever ? z.ZodOptional<z.ZodDate> : ClientType : T[K] extends () => {
1308
- type: "hasMany";
1309
- schema: infer S;
1310
- } ? z.ZodArray<z.ZodObject<{
1311
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1312
- zodClientSchema: z.ZodTypeAny;
1313
- toClient?: (dbValue: any) => any;
1314
- } ? S[P]["toClient"] extends Function ? z.ZodType<ReturnType<S[P]["toClient"]>> : S[P]["zodClientSchema"] extends z.ZodNever ? z.ZodOptional<z.ZodDate> : S[P]["zodClientSchema"] : never;
1315
- }>> : T[K] extends () => {
1316
- type: "hasOne" | "belongsTo";
1317
- schema: infer S;
1318
- } ? z.ZodObject<{
1319
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1320
- zodClientSchema: z.ZodTypeAny;
1321
- toClient?: (dbValue: any) => any;
1322
- } ? S[P]["toClient"] extends Function ? z.ZodType<ReturnType<S[P]["toClient"]>> : S[P]["zodClientSchema"] extends z.ZodNever ? z.ZodOptional<z.ZodDate> : S[P]["zodClientSchema"] : never;
1323
- }> : never;
1324
- };
1325
- export type InferDBSchema<T> = {
1326
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1327
- zodDbSchema: infer DbType extends z.ZodTypeAny;
1328
- } ? DbType : T[K] extends {
1329
- dbType: infer DbType extends z.ZodTypeAny;
1330
- } ? DbType : T[K] extends () => {
1331
- type: "hasMany";
1332
- schema: infer S;
1333
- } ? z.ZodArray<z.ZodObject<{
1334
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1335
- zodDbSchema: infer DbType extends z.ZodTypeAny;
1336
- } ? DbType : never;
1337
- }>> : T[K] extends () => {
1338
- type: "hasOne" | "belongsTo";
1339
- schema: infer S;
1340
- } ? z.ZodObject<{
1341
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1342
- zodDbSchema: infer DbType extends z.ZodTypeAny;
1343
- } ? DbType : never;
1344
- }> : never;
1345
- };
1346
- type UUID = string | `${string}-${string}-${string}-${string}-${string}`;
1347
- type InferDefaultValues<T, TDefault extends boolean = true> = {
1348
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1349
- sql: {
1350
- pk: true;
1351
- };
1352
- } ? UUID : T[K] extends {
1353
- defaultValue: infer U;
1354
- } ? U : T[K] extends {
1355
- zodClientSchema: z.ZodOptional<any>;
1356
- } ? undefined : T[K] extends {
1357
- zodClientSchema: z.ZodNullable<any>;
1358
- } ? null : T[K] extends {
1359
- zodClientSchema: z.ZodArray<any>;
1360
- } ? z.infer<T[K]["zodClientSchema"]> | [] : T[K] extends {
1361
- zodClientSchema: z.ZodObject<any>;
1362
- } ? z.infer<T[K]["zodClientSchema"]> | {} : T[K] extends () => {
1363
- type: "hasMany";
1364
- schema: infer S;
1365
- } ? Array<Prettify<InferDefaultValues<S>>> : T[K] extends () => {
1366
- type: "hasOne" | "belongsTo";
1367
- schema: infer S;
1368
- } ? Prettify<InferDefaultValues<S>> : T[K] extends {
1369
- zodClientSchema: z.ZodType<any>;
1370
- } ? z.infer<T[K]["zodClientSchema"]> : never;
1371
- };
1372
- type DeepWriteable<T> = T extends Date ? T : T extends object ? {
1373
- -readonly [K in keyof T]: DeepWriteable<T[K]>;
1374
- } : T;
1375
- export type SerializableField = {
1376
- sql: SQLType;
1377
- jsonSchema: JsonSchema7Type;
1378
- defaultValue?: any;
1379
- transforms?: {
1380
- toClient: string;
1381
- toDb: string;
1382
- };
1383
- };
1384
- export type SerializableRelation = {
1385
- type: "relation";
1386
- relationType: "hasMany" | "hasOne" | "belongsTo" | "manyToMany";
1387
- fromKey: string;
1388
- toKey: SerializableField;
1389
- defaultCount?: number;
1390
- };
1391
- export type SerializableSchema = {
1392
- _tableName: string;
1393
- __schemaId: string;
1394
- _syncKey?: {
1395
- toString: string;
1396
- };
1397
- } & {
1398
- [key: string]: SerializableField | (SerializableRelation & {
1399
- schema: SerializableSchema;
1400
- });
1401
- };
1402
- type InferSerializedSchema<T> = {
1403
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1404
- sql: infer S;
1405
- zodClientSchema: any;
1406
- defaultValue?: infer D;
1407
- } ? {
1408
- sql: S;
1409
- jsonSchema: JsonSchema7Type;
1410
- defaultValue: D;
1411
- transforms?: {
1412
- toClient: string;
1413
- toDb: string;
1414
- };
1415
- } : T[K] extends () => {
1416
- type: "hasMany";
1417
- schema: infer S;
1418
- fromKey: infer FK;
1419
- toKey: infer TK;
1420
- } ? {
1421
- type: "relation";
1422
- relationType: "hasMany";
1423
- fromKey: FK;
1424
- toKey: TK extends {
1425
- sql: infer TKSQL;
1426
- zodClientSchema: any;
1427
- defaultValue?: infer TKD;
1428
- } ? {
1429
- sql: TKSQL;
1430
- jsonSchema: JsonSchema7Type;
1431
- defaultValue: TKD;
1432
- transforms?: {
1433
- toClient: string;
1434
- toDb: string;
1435
- };
1436
- } : never;
1437
- schema: Prettify<InferSerializedSchema<S>> & {
1438
- _tableName: string;
1439
- __schemaId: string;
1440
- };
1441
- defaultCount?: number;
1442
- } : T[K] extends () => {
1443
- type: infer R;
1444
- schema: infer S;
1445
- fromKey: infer FK;
1446
- toKey: infer TK;
1447
- } ? {
1448
- type: "relation";
1449
- relationType: R;
1450
- fromKey: FK;
1451
- toKey: TK extends {
1452
- sql: infer TKSQL;
1453
- zodClientSchema: any;
1454
- defaultValue?: infer TKD;
1455
- } ? {
1456
- sql: TKSQL;
1457
- jsonSchema: JsonSchema7Type;
1458
- defaultValue: TKD;
1459
- transforms?: {
1460
- toClient: string;
1461
- toDb: string;
1462
- };
1463
- } : never;
1464
- schema: Prettify<InferSerializedSchema<S>> & {
1465
- _tableName: string;
1466
- __schemaId: string;
1467
- };
1468
- } : never;
1469
- };
1470
- export declare function reference<TTargetField extends SchemaField, TField extends object>(config: {
1471
- to: () => TTargetField;
1472
- field: TField;
1473
- }): TField & {
1474
- type: "reference";
1475
- to: () => TTargetField;
1476
- };
1477
- export declare function createMixedValidationSchema<T extends Schema<any>>(schema: T, clientSchema?: z.ZodObject<any>, dbSchema?: z.ZodObject<any>): z.ZodObject<any>;
1478
- type InferMixedSchema<T extends Schema<any>> = {
1479
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1480
- zodClientSchema: infer C;
1481
- zodDbSchema: infer D;
1482
- } ? C extends z.ZodTypeAny ? D extends z.ZodTypeAny ? z.ZodUnion<[C, D]> : C : D extends z.ZodTypeAny ? D : never : T[K] extends () => {
1483
- type: "hasMany";
1484
- schema: infer S extends Schema<any>;
1485
- } ? z.ZodArray<z.ZodObject<InferMixedSchema<S>>> : T[K] extends () => {
1486
- type: "hasOne" | "belongsTo";
1487
- schema: infer S extends Schema<any>;
1488
- } ? z.ZodObject<InferMixedSchema<S>> : never;
1489
- };
1490
- export declare function createSchema<T extends Schema<any>>(schema: T): {
1491
- dbSchema: z.ZodObject<Prettify<InferDBSchema<T>>>;
1492
- clientSchema: z.ZodObject<Prettify<OmitNever<InferSchema<T>>>>;
1493
- mixedSchema: z.ZodObject<Prettify<InferMixedSchema<T>>>;
1494
- defaultValues: Prettify<OmitNever<ConfigWithOptionalProps<T>>>;
1495
- initialValues: () => Prettify<OmitNever<ConfigWithOptionalProps<T>>>;
1496
- serialized: Prettify<InferSerializedSchema<T>> & {
1497
- _tableName: string;
1498
- __schemaId: string;
1499
- };
1500
- };
1501
- type IsOptionalKey<T, K extends keyof T> = {} extends Pick<T, K> ? true : false;
1502
- type DeepConversionType<ClientType, DbType> = ClientType extends Date | string | number | boolean | null | undefined ? ClientType | DbType : DbType extends Date | string | number | boolean | null | undefined ? ClientType | DbType : ClientType extends Array<infer ClientItem> ? DbType extends Array<infer DbItem> ? Array<DeepConversionType<ClientItem, DbItem>> : ClientType | DbType : ClientType extends object ? DbType extends object ? {
1503
- [K in keyof ClientType & keyof DbType as IsOptionalKey<ClientType, K> extends true ? never : IsOptionalKey<DbType, K> extends true ? never : K]: DeepConversionType<ClientType[K], DbType[K]>;
1504
- } & {
1505
- [K in keyof (ClientType | DbType) as K extends keyof ClientType & keyof DbType ? IsOptionalKey<ClientType, K> extends true ? K : IsOptionalKey<DbType, K> extends true ? K : never : K]?: K extends keyof ClientType ? K extends keyof DbType ? DeepConversionType<ClientType[K], DbType[K]> : ClientType[K] : K extends keyof DbType ? DbType[K] : never;
1506
- } : ClientType | DbType : ClientType | DbType;
1507
- type ConversionType<T extends Schema<any>> = DeepConversionType<SchemaTypes<T>["client"], SchemaTypes<T>["db"]>;
1508
- type OmitNever<T> = {
1509
- [K in keyof T as T[K] extends never ? never : K]: T[K];
1510
- };
1511
- type DefaultValue<T> = Prettify<DeepWriteable<InferDefaultValues<T>>>;
1512
- type GetMandatoryKeys<T> = {
1513
- [P in keyof T]: T[P] extends Exclude<T[P], undefined> ? P : never;
1514
- }[keyof T];
1515
- type MandatoryProps<T> = Pick<DefaultValue<T>, GetMandatoryKeys<DefaultValue<T>>>;
1516
- type ConfigWithOptionalProps<T> = Partial<DefaultValue<T>> & MandatoryProps<T>;
1517
- export type SchemaTypes<T extends Schema<any>> = {
1518
- client: z.infer<typeof createSchema<T> extends (...args: any) => {
1519
- clientSchema: infer R;
1520
- } ? R : never>;
1521
- db: z.infer<typeof createSchema<T> extends (...args: any) => {
1522
- dbSchema: infer R;
1523
- } ? R : never>;
1524
- both: z.infer<typeof createSchema<T> extends (...args: any) => {
1525
- clientSchema: infer C;
1526
- dbSchema: infer D;
1527
- } ? C | D : never>;
1528
- join: Prettify<ConversionType<T>>;
1529
- };
1530
- type InferSqlSchema<T> = {
1531
- [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
1532
- config: {
1533
- zodSqlSchema: infer S extends z.ZodTypeAny;
1534
- };
1535
- } ? S : never;
1536
- };
1537
- type InferClientSchema<T> = {
1538
- [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
1539
- config: {
1540
- zodClientSchema: infer C extends z.ZodTypeAny;
1541
- };
1542
- } ? C : never;
1543
- };
1544
- type InferValidationSchema<T> = {
1545
- [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
1546
- config: {
1547
- zodValidationSchema: infer V extends z.ZodTypeAny;
1548
- };
1549
- } ? V : never;
1550
- };
1551
- type InferDefaultValues2<T> = {
1552
- [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
1553
- config: {
1554
- initialValue: infer D;
1555
- };
1556
- } ? D : never;
1557
- };
1558
- export declare function createSchema2<T extends {
1559
- _tableName: string;
1560
- }>(schema: T extends {
1561
- _tableName: string;
1562
- } ? T : never): {
1563
- sqlSchema: z.ZodObject<Prettify<InferSqlSchema<T>>>;
1564
- clientSchema: z.ZodObject<Prettify<InferClientSchema<T>>>;
1565
- validationSchema: z.ZodObject<Prettify<InferValidationSchema<T>>>;
1566
- defaultValues: Prettify<InferDefaultValues2<T>>;
1567
- };
1568
- export {};