cogsbox-shape 0.5.23 → 0.5.26

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.
package/dist/schema.d.ts CHANGED
@@ -50,1117 +50,2095 @@ type StringConfig = BaseConfig & {
50
50
  length?: number;
51
51
  default?: string;
52
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
53
  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
54
  default: "CURRENT_TIMESTAMP";
60
55
  } ? 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
56
  default: "CURRENT_TIMESTAMP";
62
57
  } ? 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
58
  export declare const shape: {
143
59
  int: (config?: IntConfig) => {
144
- sql: {
60
+ config: BuilderConfig<{
145
61
  nullable?: boolean;
146
62
  pk?: true;
147
63
  field?: string;
148
64
  default?: number;
149
65
  type: "int";
66
+ }, z.ZodNumber, z.ZodNumber, undefined, z.ZodNumber, z.ZodNumber>;
67
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
68
+ sql: z.ZodNumber;
69
+ initialState: z.ZodNumber;
70
+ client: z.ZodNumber;
71
+ }) => TValidationNext)) => {
72
+ config: BuilderConfig<{
73
+ nullable?: boolean;
74
+ pk?: true;
75
+ field?: string;
76
+ default?: number;
77
+ type: "int";
78
+ }, z.ZodNumber, z.ZodNumber, undefined, z.ZodNumber, TValidationNext>;
79
+ transform: (transforms: {
80
+ toClient: (dbValue: number) => number;
81
+ toDb: (clientValue: number) => number;
82
+ }) => {
83
+ config: BuilderConfig<{
84
+ nullable?: boolean;
85
+ pk?: true;
86
+ field?: string;
87
+ default?: number;
88
+ type: "int";
89
+ }, z.ZodNumber, z.ZodNumber, undefined, z.ZodNumber, TValidationNext> & {
90
+ transforms: {
91
+ toClient: (dbValue: number) => number;
92
+ toDb: (clientValue: number) => number;
93
+ };
94
+ };
95
+ };
150
96
  };
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: {
97
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
98
+ sql: z.ZodNumber;
99
+ initialState: z.ZodNumber;
100
+ }) => TClientNext)) => {
101
+ config: BuilderConfig<{
166
102
  nullable?: boolean;
167
103
  pk?: true;
168
104
  field?: string;
169
105
  default?: number;
170
106
  type: "int";
107
+ }, z.ZodNumber, z.ZodNumber, undefined, TClientNext, TClientNext>;
108
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
109
+ sql: z.ZodNumber;
110
+ initialState: z.ZodNumber;
111
+ client: TClientNext;
112
+ }) => TValidationNext)) => {
113
+ config: BuilderConfig<{
114
+ nullable?: boolean;
115
+ pk?: true;
116
+ field?: string;
117
+ default?: number;
118
+ type: "int";
119
+ }, z.ZodNumber, z.ZodNumber, undefined, TClientNext, TValidationNext>;
120
+ transform: (transforms: {
121
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
122
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
123
+ }) => {
124
+ config: BuilderConfig<{
125
+ nullable?: boolean;
126
+ pk?: true;
127
+ field?: string;
128
+ default?: number;
129
+ type: "int";
130
+ }, z.ZodNumber, z.ZodNumber, undefined, TClientNext, TValidationNext> & {
131
+ transforms: {
132
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
133
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
134
+ };
135
+ };
136
+ };
171
137
  };
172
- zodDbSchema: z.ZodNumber;
173
- zodClientSchema: ClientType;
174
- jsonSchema: any;
175
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
176
138
  transform: (transforms: {
177
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
178
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
139
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
140
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
179
141
  }) => {
180
- sql: {
142
+ config: BuilderConfig<{
181
143
  nullable?: boolean;
182
144
  pk?: true;
183
145
  field?: string;
184
146
  default?: number;
185
147
  type: "int";
148
+ }, z.ZodNumber, z.ZodNumber, undefined, TClientNext, TClientNext> & {
149
+ transforms: {
150
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
151
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
152
+ };
186
153
  };
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;
154
+ };
155
+ };
156
+ transform: (transforms: {
157
+ toClient: (dbValue: number) => number;
158
+ toDb: (clientValue: number) => number;
159
+ }) => {
160
+ config: BuilderConfig<{
161
+ nullable?: boolean;
162
+ pk?: true;
163
+ field?: string;
164
+ default?: number;
165
+ type: "int";
166
+ }, z.ZodNumber, z.ZodNumber, undefined, z.ZodNumber, z.ZodNumber> & {
193
167
  transforms: {
194
- toClient: string;
195
- toDb: string;
168
+ toClient: (dbValue: number) => number;
169
+ toDb: (clientValue: number) => number;
196
170
  };
197
171
  };
198
172
  };
199
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
200
- zod: z.ZodNumber;
201
- }) => ServerType)) => {
202
- sql: {
173
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
174
+ sql: z.ZodNumber;
175
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
176
+ config: BuilderConfig<{
203
177
  nullable?: boolean;
204
178
  pk?: true;
205
179
  field?: string;
206
180
  default?: number;
207
181
  type: "int";
182
+ }, z.ZodNumber, TNewNext, TDefaultNext, z.ZodNumber, z.ZodNumber>;
183
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
184
+ sql: z.ZodNumber;
185
+ initialState: TNewNext;
186
+ client: z.ZodNumber;
187
+ }) => TValidationNext)) => {
188
+ config: BuilderConfig<{
189
+ nullable?: boolean;
190
+ pk?: true;
191
+ field?: string;
192
+ default?: number;
193
+ type: "int";
194
+ }, z.ZodNumber, TNewNext, TDefaultNext, z.ZodNumber, TValidationNext>;
195
+ transform: (transforms: {
196
+ toClient: (dbValue: number) => number;
197
+ toDb: (clientValue: number) => number;
198
+ }) => {
199
+ config: BuilderConfig<{
200
+ nullable?: boolean;
201
+ pk?: true;
202
+ field?: string;
203
+ default?: number;
204
+ type: "int";
205
+ }, z.ZodNumber, TNewNext, TDefaultNext, z.ZodNumber, TValidationNext> & {
206
+ transforms: {
207
+ toClient: (dbValue: number) => number;
208
+ toDb: (clientValue: number) => number;
209
+ };
210
+ };
211
+ };
208
212
  };
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: {
213
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
214
+ sql: z.ZodNumber;
215
+ initialState: TNewNext;
216
+ }) => TClientNext)) => {
217
+ config: BuilderConfig<{
224
218
  nullable?: boolean;
225
219
  pk?: true;
226
220
  field?: string;
227
221
  default?: number;
228
222
  type: "int";
223
+ }, z.ZodNumber, TNewNext, TDefaultNext, TClientNext, TClientNext>;
224
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
225
+ sql: z.ZodNumber;
226
+ initialState: TNewNext;
227
+ client: TClientNext;
228
+ }) => TValidationNext)) => {
229
+ config: BuilderConfig<{
230
+ nullable?: boolean;
231
+ pk?: true;
232
+ field?: string;
233
+ default?: number;
234
+ type: "int";
235
+ }, z.ZodNumber, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
236
+ transform: (transforms: {
237
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
238
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
239
+ }) => {
240
+ config: BuilderConfig<{
241
+ nullable?: boolean;
242
+ pk?: true;
243
+ field?: string;
244
+ default?: number;
245
+ type: "int";
246
+ }, z.ZodNumber, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
247
+ transforms: {
248
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
249
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
250
+ };
251
+ };
252
+ };
229
253
  };
230
- zodDbSchema: z.ZodNumber | ServerType;
231
- zodClientSchema: ClientType;
232
- jsonSchema: any;
233
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
234
254
  transform: (transforms: {
235
- toClient: (dbValue: number) => z.TypeOf<ClientType>;
236
- toDb: (clientValue: z.TypeOf<ClientType>) => number;
255
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
256
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
237
257
  }) => {
238
- sql: {
258
+ config: BuilderConfig<{
239
259
  nullable?: boolean;
240
260
  pk?: true;
241
261
  field?: string;
242
262
  default?: number;
243
263
  type: "int";
264
+ }, z.ZodNumber, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
265
+ transforms: {
266
+ toClient: (dbValue: number) => z.TypeOf<TClientNext>;
267
+ toDb: (clientValue: z.TypeOf<TClientNext>) => number;
268
+ };
244
269
  };
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;
270
+ };
271
+ };
272
+ transform: (transforms: {
273
+ toClient: (dbValue: number) => number;
274
+ toDb: (clientValue: number) => number;
275
+ }) => {
276
+ config: BuilderConfig<{
277
+ nullable?: boolean;
278
+ pk?: true;
279
+ field?: string;
280
+ default?: number;
281
+ type: "int";
282
+ }, z.ZodNumber, TNewNext, TDefaultNext, z.ZodNumber, z.ZodNumber> & {
251
283
  transforms: {
252
- toClient: string;
253
- toDb: string;
284
+ toClient: (dbValue: number) => number;
285
+ toDb: (clientValue: number) => number;
254
286
  };
255
287
  };
256
288
  };
257
289
  };
258
290
  };
259
291
  varchar: (config?: Omit<StringConfig, "type">) => {
260
- sql: {
292
+ config: BuilderConfig<{
293
+ pk?: true;
261
294
  nullable?: boolean;
262
295
  default?: string;
263
- pk?: true;
264
296
  length?: number;
265
297
  field?: string;
266
298
  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: {
299
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString>;
300
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
301
+ sql: z.ZodString;
302
+ initialState: z.ZodString;
303
+ client: z.ZodString;
304
+ }) => TValidationNext)) => {
305
+ config: BuilderConfig<{
306
+ pk?: true;
283
307
  nullable?: boolean;
284
308
  default?: string;
309
+ length?: number;
310
+ field?: string;
311
+ type: "varchar";
312
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext>;
313
+ transform: (transforms: {
314
+ toClient: (dbValue: string) => string;
315
+ toDb: (clientValue: string) => string;
316
+ }) => {
317
+ config: BuilderConfig<{
318
+ pk?: true;
319
+ nullable?: boolean;
320
+ default?: string;
321
+ length?: number;
322
+ field?: string;
323
+ type: "varchar";
324
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext> & {
325
+ transforms: {
326
+ toClient: (dbValue: string) => string;
327
+ toDb: (clientValue: string) => string;
328
+ };
329
+ };
330
+ };
331
+ };
332
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
333
+ sql: z.ZodString;
334
+ initialState: z.ZodString;
335
+ }) => TClientNext)) => {
336
+ config: BuilderConfig<{
285
337
  pk?: true;
338
+ nullable?: boolean;
339
+ default?: string;
286
340
  length?: number;
287
341
  field?: string;
288
342
  type: "varchar";
343
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext>;
344
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
345
+ sql: z.ZodString;
346
+ initialState: z.ZodString;
347
+ client: TClientNext;
348
+ }) => TValidationNext)) => {
349
+ config: BuilderConfig<{
350
+ pk?: true;
351
+ nullable?: boolean;
352
+ default?: string;
353
+ length?: number;
354
+ field?: string;
355
+ type: "varchar";
356
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext>;
357
+ transform: (transforms: {
358
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
359
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
360
+ }) => {
361
+ config: BuilderConfig<{
362
+ pk?: true;
363
+ nullable?: boolean;
364
+ default?: string;
365
+ length?: number;
366
+ field?: string;
367
+ type: "varchar";
368
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext> & {
369
+ transforms: {
370
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
371
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
372
+ };
373
+ };
374
+ };
289
375
  };
290
- zodDbSchema: z.ZodString;
291
- zodClientSchema: ClientType;
292
- jsonSchema: any;
293
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
294
376
  transform: (transforms: {
295
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
296
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
377
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
378
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
297
379
  }) => {
298
- sql: {
380
+ config: BuilderConfig<{
381
+ pk?: true;
299
382
  nullable?: boolean;
300
383
  default?: string;
301
- pk?: true;
302
384
  length?: number;
303
385
  field?: string;
304
386
  type: "varchar";
387
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext> & {
388
+ transforms: {
389
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
390
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
391
+ };
305
392
  };
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;
393
+ };
394
+ };
395
+ transform: (transforms: {
396
+ toClient: (dbValue: string) => string;
397
+ toDb: (clientValue: string) => string;
398
+ }) => {
399
+ config: BuilderConfig<{
400
+ pk?: true;
401
+ nullable?: boolean;
402
+ default?: string;
403
+ length?: number;
404
+ field?: string;
405
+ type: "varchar";
406
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString> & {
312
407
  transforms: {
313
- toClient: string;
314
- toDb: string;
408
+ toClient: (dbValue: string) => string;
409
+ toDb: (clientValue: string) => string;
315
410
  };
316
411
  };
317
412
  };
318
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
319
- zod: z.ZodString;
320
- }) => ServerType)) => {
321
- sql: {
413
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
414
+ sql: z.ZodString;
415
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
416
+ config: BuilderConfig<{
417
+ pk?: true;
322
418
  nullable?: boolean;
323
419
  default?: string;
324
- pk?: true;
325
420
  length?: number;
326
421
  field?: string;
327
422
  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: {
423
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString>;
424
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
425
+ sql: z.ZodString;
426
+ initialState: TNewNext;
427
+ client: z.ZodString;
428
+ }) => TValidationNext)) => {
429
+ config: BuilderConfig<{
430
+ pk?: true;
344
431
  nullable?: boolean;
345
432
  default?: string;
433
+ length?: number;
434
+ field?: string;
435
+ type: "varchar";
436
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext>;
437
+ transform: (transforms: {
438
+ toClient: (dbValue: string) => string;
439
+ toDb: (clientValue: string) => string;
440
+ }) => {
441
+ config: BuilderConfig<{
442
+ pk?: true;
443
+ nullable?: boolean;
444
+ default?: string;
445
+ length?: number;
446
+ field?: string;
447
+ type: "varchar";
448
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext> & {
449
+ transforms: {
450
+ toClient: (dbValue: string) => string;
451
+ toDb: (clientValue: string) => string;
452
+ };
453
+ };
454
+ };
455
+ };
456
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
457
+ sql: z.ZodString;
458
+ initialState: TNewNext;
459
+ }) => TClientNext)) => {
460
+ config: BuilderConfig<{
346
461
  pk?: true;
462
+ nullable?: boolean;
463
+ default?: string;
347
464
  length?: number;
348
465
  field?: string;
349
466
  type: "varchar";
467
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext>;
468
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
469
+ sql: z.ZodString;
470
+ initialState: TNewNext;
471
+ client: TClientNext;
472
+ }) => TValidationNext)) => {
473
+ config: BuilderConfig<{
474
+ pk?: true;
475
+ nullable?: boolean;
476
+ default?: string;
477
+ length?: number;
478
+ field?: string;
479
+ type: "varchar";
480
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
481
+ transform: (transforms: {
482
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
483
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
484
+ }) => {
485
+ config: BuilderConfig<{
486
+ pk?: true;
487
+ nullable?: boolean;
488
+ default?: string;
489
+ length?: number;
490
+ field?: string;
491
+ type: "varchar";
492
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
493
+ transforms: {
494
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
495
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
496
+ };
497
+ };
498
+ };
350
499
  };
351
- zodDbSchema: z.ZodString | ServerType;
352
- zodClientSchema: ClientType;
353
- jsonSchema: any;
354
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
355
500
  transform: (transforms: {
356
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
357
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
501
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
502
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
358
503
  }) => {
359
- sql: {
504
+ config: BuilderConfig<{
505
+ pk?: true;
360
506
  nullable?: boolean;
361
507
  default?: string;
362
- pk?: true;
363
508
  length?: number;
364
509
  field?: string;
365
510
  type: "varchar";
511
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
512
+ transforms: {
513
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
514
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
515
+ };
366
516
  };
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;
517
+ };
518
+ };
519
+ transform: (transforms: {
520
+ toClient: (dbValue: string) => string;
521
+ toDb: (clientValue: string) => string;
522
+ }) => {
523
+ config: BuilderConfig<{
524
+ pk?: true;
525
+ nullable?: boolean;
526
+ default?: string;
527
+ length?: number;
528
+ field?: string;
529
+ type: "varchar";
530
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString> & {
373
531
  transforms: {
374
- toClient: string;
375
- toDb: string;
532
+ toClient: (dbValue: string) => string;
533
+ toDb: (clientValue: string) => string;
376
534
  };
377
535
  };
378
536
  };
379
537
  };
380
538
  };
381
539
  char: (config?: Omit<StringConfig, "type">) => {
382
- sql: {
540
+ config: BuilderConfig<{
541
+ pk?: true;
383
542
  nullable?: boolean;
384
543
  default?: string;
385
- pk?: true;
386
544
  length?: number;
387
545
  field?: string;
388
546
  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: {
547
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString>;
548
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
549
+ sql: z.ZodString;
550
+ initialState: z.ZodString;
551
+ client: z.ZodString;
552
+ }) => TValidationNext)) => {
553
+ config: BuilderConfig<{
554
+ pk?: true;
405
555
  nullable?: boolean;
406
556
  default?: string;
557
+ length?: number;
558
+ field?: string;
559
+ type: "char";
560
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext>;
561
+ transform: (transforms: {
562
+ toClient: (dbValue: string) => string;
563
+ toDb: (clientValue: string) => string;
564
+ }) => {
565
+ config: BuilderConfig<{
566
+ pk?: true;
567
+ nullable?: boolean;
568
+ default?: string;
569
+ length?: number;
570
+ field?: string;
571
+ type: "char";
572
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext> & {
573
+ transforms: {
574
+ toClient: (dbValue: string) => string;
575
+ toDb: (clientValue: string) => string;
576
+ };
577
+ };
578
+ };
579
+ };
580
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
581
+ sql: z.ZodString;
582
+ initialState: z.ZodString;
583
+ }) => TClientNext)) => {
584
+ config: BuilderConfig<{
407
585
  pk?: true;
586
+ nullable?: boolean;
587
+ default?: string;
408
588
  length?: number;
409
589
  field?: string;
410
590
  type: "char";
591
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext>;
592
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
593
+ sql: z.ZodString;
594
+ initialState: z.ZodString;
595
+ client: TClientNext;
596
+ }) => TValidationNext)) => {
597
+ config: BuilderConfig<{
598
+ pk?: true;
599
+ nullable?: boolean;
600
+ default?: string;
601
+ length?: number;
602
+ field?: string;
603
+ type: "char";
604
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext>;
605
+ transform: (transforms: {
606
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
607
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
608
+ }) => {
609
+ config: BuilderConfig<{
610
+ pk?: true;
611
+ nullable?: boolean;
612
+ default?: string;
613
+ length?: number;
614
+ field?: string;
615
+ type: "char";
616
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext> & {
617
+ transforms: {
618
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
619
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
620
+ };
621
+ };
622
+ };
411
623
  };
412
- zodDbSchema: z.ZodString;
413
- zodClientSchema: ClientType;
414
- jsonSchema: any;
415
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
416
624
  transform: (transforms: {
417
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
418
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
625
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
626
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
419
627
  }) => {
420
- sql: {
628
+ config: BuilderConfig<{
629
+ pk?: true;
421
630
  nullable?: boolean;
422
631
  default?: string;
423
- pk?: true;
424
632
  length?: number;
425
633
  field?: string;
426
634
  type: "char";
635
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext> & {
636
+ transforms: {
637
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
638
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
639
+ };
427
640
  };
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;
641
+ };
642
+ };
643
+ transform: (transforms: {
644
+ toClient: (dbValue: string) => string;
645
+ toDb: (clientValue: string) => string;
646
+ }) => {
647
+ config: BuilderConfig<{
648
+ pk?: true;
649
+ nullable?: boolean;
650
+ default?: string;
651
+ length?: number;
652
+ field?: string;
653
+ type: "char";
654
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString> & {
434
655
  transforms: {
435
- toClient: string;
436
- toDb: string;
656
+ toClient: (dbValue: string) => string;
657
+ toDb: (clientValue: string) => string;
437
658
  };
438
659
  };
439
660
  };
440
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
441
- zod: z.ZodString;
442
- }) => ServerType)) => {
443
- sql: {
661
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
662
+ sql: z.ZodString;
663
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
664
+ config: BuilderConfig<{
665
+ pk?: true;
444
666
  nullable?: boolean;
445
667
  default?: string;
446
- pk?: true;
447
668
  length?: number;
448
669
  field?: string;
449
670
  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: {
671
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString>;
672
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
673
+ sql: z.ZodString;
674
+ initialState: TNewNext;
675
+ client: z.ZodString;
676
+ }) => TValidationNext)) => {
677
+ config: BuilderConfig<{
678
+ pk?: true;
466
679
  nullable?: boolean;
467
680
  default?: string;
681
+ length?: number;
682
+ field?: string;
683
+ type: "char";
684
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext>;
685
+ transform: (transforms: {
686
+ toClient: (dbValue: string) => string;
687
+ toDb: (clientValue: string) => string;
688
+ }) => {
689
+ config: BuilderConfig<{
690
+ pk?: true;
691
+ nullable?: boolean;
692
+ default?: string;
693
+ length?: number;
694
+ field?: string;
695
+ type: "char";
696
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext> & {
697
+ transforms: {
698
+ toClient: (dbValue: string) => string;
699
+ toDb: (clientValue: string) => string;
700
+ };
701
+ };
702
+ };
703
+ };
704
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
705
+ sql: z.ZodString;
706
+ initialState: TNewNext;
707
+ }) => TClientNext)) => {
708
+ config: BuilderConfig<{
468
709
  pk?: true;
710
+ nullable?: boolean;
711
+ default?: string;
469
712
  length?: number;
470
713
  field?: string;
471
714
  type: "char";
715
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext>;
716
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
717
+ sql: z.ZodString;
718
+ initialState: TNewNext;
719
+ client: TClientNext;
720
+ }) => TValidationNext)) => {
721
+ config: BuilderConfig<{
722
+ pk?: true;
723
+ nullable?: boolean;
724
+ default?: string;
725
+ length?: number;
726
+ field?: string;
727
+ type: "char";
728
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
729
+ transform: (transforms: {
730
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
731
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
732
+ }) => {
733
+ config: BuilderConfig<{
734
+ pk?: true;
735
+ nullable?: boolean;
736
+ default?: string;
737
+ length?: number;
738
+ field?: string;
739
+ type: "char";
740
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
741
+ transforms: {
742
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
743
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
744
+ };
745
+ };
746
+ };
472
747
  };
473
- zodDbSchema: z.ZodString | ServerType;
474
- zodClientSchema: ClientType;
475
- jsonSchema: any;
476
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
477
748
  transform: (transforms: {
478
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
479
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
749
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
750
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
480
751
  }) => {
481
- sql: {
752
+ config: BuilderConfig<{
753
+ pk?: true;
482
754
  nullable?: boolean;
483
755
  default?: string;
484
- pk?: true;
485
756
  length?: number;
486
757
  field?: string;
487
758
  type: "char";
759
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
760
+ transforms: {
761
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
762
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
763
+ };
488
764
  };
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;
765
+ };
766
+ };
767
+ transform: (transforms: {
768
+ toClient: (dbValue: string) => string;
769
+ toDb: (clientValue: string) => string;
770
+ }) => {
771
+ config: BuilderConfig<{
772
+ pk?: true;
773
+ nullable?: boolean;
774
+ default?: string;
775
+ length?: number;
776
+ field?: string;
777
+ type: "char";
778
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString> & {
495
779
  transforms: {
496
- toClient: string;
497
- toDb: string;
780
+ toClient: (dbValue: string) => string;
781
+ toDb: (clientValue: string) => string;
498
782
  };
499
783
  };
500
784
  };
501
785
  };
502
786
  };
503
787
  text: (config?: Omit<StringConfig, "type" | "length">) => {
504
- sql: {
788
+ config: BuilderConfig<{
789
+ pk?: true;
505
790
  nullable?: boolean;
506
791
  default?: string;
507
- pk?: true;
508
792
  field?: string;
509
793
  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: {
794
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString>;
795
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
796
+ sql: z.ZodString;
797
+ initialState: z.ZodString;
798
+ client: z.ZodString;
799
+ }) => TValidationNext)) => {
800
+ config: BuilderConfig<{
801
+ pk?: true;
526
802
  nullable?: boolean;
527
803
  default?: string;
804
+ field?: string;
805
+ type: "text";
806
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext>;
807
+ transform: (transforms: {
808
+ toClient: (dbValue: string) => string;
809
+ toDb: (clientValue: string) => string;
810
+ }) => {
811
+ config: BuilderConfig<{
812
+ pk?: true;
813
+ nullable?: boolean;
814
+ default?: string;
815
+ field?: string;
816
+ type: "text";
817
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext> & {
818
+ transforms: {
819
+ toClient: (dbValue: string) => string;
820
+ toDb: (clientValue: string) => string;
821
+ };
822
+ };
823
+ };
824
+ };
825
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
826
+ sql: z.ZodString;
827
+ initialState: z.ZodString;
828
+ }) => TClientNext)) => {
829
+ config: BuilderConfig<{
528
830
  pk?: true;
831
+ nullable?: boolean;
832
+ default?: string;
529
833
  field?: string;
530
834
  type: "text";
835
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext>;
836
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
837
+ sql: z.ZodString;
838
+ initialState: z.ZodString;
839
+ client: TClientNext;
840
+ }) => TValidationNext)) => {
841
+ config: BuilderConfig<{
842
+ pk?: true;
843
+ nullable?: boolean;
844
+ default?: string;
845
+ field?: string;
846
+ type: "text";
847
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext>;
848
+ transform: (transforms: {
849
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
850
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
851
+ }) => {
852
+ config: BuilderConfig<{
853
+ pk?: true;
854
+ nullable?: boolean;
855
+ default?: string;
856
+ field?: string;
857
+ type: "text";
858
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext> & {
859
+ transforms: {
860
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
861
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
862
+ };
863
+ };
864
+ };
531
865
  };
532
- zodDbSchema: z.ZodString;
533
- zodClientSchema: ClientType;
534
- jsonSchema: any;
535
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
536
866
  transform: (transforms: {
537
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
538
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
867
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
868
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
539
869
  }) => {
540
- sql: {
870
+ config: BuilderConfig<{
871
+ pk?: true;
541
872
  nullable?: boolean;
542
873
  default?: string;
543
- pk?: true;
544
874
  field?: string;
545
875
  type: "text";
876
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext> & {
877
+ transforms: {
878
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
879
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
880
+ };
546
881
  };
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;
882
+ };
883
+ };
884
+ transform: (transforms: {
885
+ toClient: (dbValue: string) => string;
886
+ toDb: (clientValue: string) => string;
887
+ }) => {
888
+ config: BuilderConfig<{
889
+ pk?: true;
890
+ nullable?: boolean;
891
+ default?: string;
892
+ field?: string;
893
+ type: "text";
894
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString> & {
553
895
  transforms: {
554
- toClient: string;
555
- toDb: string;
896
+ toClient: (dbValue: string) => string;
897
+ toDb: (clientValue: string) => string;
556
898
  };
557
899
  };
558
900
  };
559
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
560
- zod: z.ZodString;
561
- }) => ServerType)) => {
562
- sql: {
901
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
902
+ sql: z.ZodString;
903
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
904
+ config: BuilderConfig<{
905
+ pk?: true;
563
906
  nullable?: boolean;
564
907
  default?: string;
565
- pk?: true;
566
908
  field?: string;
567
909
  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: {
910
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString>;
911
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
912
+ sql: z.ZodString;
913
+ initialState: TNewNext;
914
+ client: z.ZodString;
915
+ }) => TValidationNext)) => {
916
+ config: BuilderConfig<{
917
+ pk?: true;
584
918
  nullable?: boolean;
585
919
  default?: string;
920
+ field?: string;
921
+ type: "text";
922
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext>;
923
+ transform: (transforms: {
924
+ toClient: (dbValue: string) => string;
925
+ toDb: (clientValue: string) => string;
926
+ }) => {
927
+ config: BuilderConfig<{
928
+ pk?: true;
929
+ nullable?: boolean;
930
+ default?: string;
931
+ field?: string;
932
+ type: "text";
933
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext> & {
934
+ transforms: {
935
+ toClient: (dbValue: string) => string;
936
+ toDb: (clientValue: string) => string;
937
+ };
938
+ };
939
+ };
940
+ };
941
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
942
+ sql: z.ZodString;
943
+ initialState: TNewNext;
944
+ }) => TClientNext)) => {
945
+ config: BuilderConfig<{
586
946
  pk?: true;
947
+ nullable?: boolean;
948
+ default?: string;
587
949
  field?: string;
588
950
  type: "text";
951
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext>;
952
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
953
+ sql: z.ZodString;
954
+ initialState: TNewNext;
955
+ client: TClientNext;
956
+ }) => TValidationNext)) => {
957
+ config: BuilderConfig<{
958
+ pk?: true;
959
+ nullable?: boolean;
960
+ default?: string;
961
+ field?: string;
962
+ type: "text";
963
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
964
+ transform: (transforms: {
965
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
966
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
967
+ }) => {
968
+ config: BuilderConfig<{
969
+ pk?: true;
970
+ nullable?: boolean;
971
+ default?: string;
972
+ field?: string;
973
+ type: "text";
974
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
975
+ transforms: {
976
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
977
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
978
+ };
979
+ };
980
+ };
589
981
  };
590
- zodDbSchema: z.ZodString | ServerType;
591
- zodClientSchema: ClientType;
592
- jsonSchema: any;
593
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
594
982
  transform: (transforms: {
595
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
596
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
983
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
984
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
597
985
  }) => {
598
- sql: {
986
+ config: BuilderConfig<{
987
+ pk?: true;
599
988
  nullable?: boolean;
600
989
  default?: string;
601
- pk?: true;
602
990
  field?: string;
603
991
  type: "text";
992
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
993
+ transforms: {
994
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
995
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
996
+ };
604
997
  };
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;
998
+ };
999
+ };
1000
+ transform: (transforms: {
1001
+ toClient: (dbValue: string) => string;
1002
+ toDb: (clientValue: string) => string;
1003
+ }) => {
1004
+ config: BuilderConfig<{
1005
+ pk?: true;
1006
+ nullable?: boolean;
1007
+ default?: string;
1008
+ field?: string;
1009
+ type: "text";
1010
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString> & {
611
1011
  transforms: {
612
- toClient: string;
613
- toDb: string;
1012
+ toClient: (dbValue: string) => string;
1013
+ toDb: (clientValue: string) => string;
614
1014
  };
615
1015
  };
616
1016
  };
617
1017
  };
618
1018
  };
619
1019
  longtext: (config?: Omit<StringConfig, "type" | "length">) => {
620
- sql: {
1020
+ config: BuilderConfig<{
1021
+ pk?: true;
621
1022
  nullable?: boolean;
622
1023
  default?: string;
623
- pk?: true;
624
1024
  field?: string;
625
1025
  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: {
1026
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString>;
1027
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1028
+ sql: z.ZodString;
1029
+ initialState: z.ZodString;
1030
+ client: z.ZodString;
1031
+ }) => TValidationNext)) => {
1032
+ config: BuilderConfig<{
1033
+ pk?: true;
642
1034
  nullable?: boolean;
643
1035
  default?: string;
1036
+ field?: string;
1037
+ type: "longtext";
1038
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext>;
1039
+ transform: (transforms: {
1040
+ toClient: (dbValue: string) => string;
1041
+ toDb: (clientValue: string) => string;
1042
+ }) => {
1043
+ config: BuilderConfig<{
1044
+ pk?: true;
1045
+ nullable?: boolean;
1046
+ default?: string;
1047
+ field?: string;
1048
+ type: "longtext";
1049
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, TValidationNext> & {
1050
+ transforms: {
1051
+ toClient: (dbValue: string) => string;
1052
+ toDb: (clientValue: string) => string;
1053
+ };
1054
+ };
1055
+ };
1056
+ };
1057
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1058
+ sql: z.ZodString;
1059
+ initialState: z.ZodString;
1060
+ }) => TClientNext)) => {
1061
+ config: BuilderConfig<{
644
1062
  pk?: true;
1063
+ nullable?: boolean;
1064
+ default?: string;
645
1065
  field?: string;
646
1066
  type: "longtext";
1067
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext>;
1068
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1069
+ sql: z.ZodString;
1070
+ initialState: z.ZodString;
1071
+ client: TClientNext;
1072
+ }) => TValidationNext)) => {
1073
+ config: BuilderConfig<{
1074
+ pk?: true;
1075
+ nullable?: boolean;
1076
+ default?: string;
1077
+ field?: string;
1078
+ type: "longtext";
1079
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext>;
1080
+ transform: (transforms: {
1081
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1082
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1083
+ }) => {
1084
+ config: BuilderConfig<{
1085
+ pk?: true;
1086
+ nullable?: boolean;
1087
+ default?: string;
1088
+ field?: string;
1089
+ type: "longtext";
1090
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TValidationNext> & {
1091
+ transforms: {
1092
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1093
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1094
+ };
1095
+ };
1096
+ };
647
1097
  };
648
- zodDbSchema: z.ZodString;
649
- zodClientSchema: ClientType;
650
- jsonSchema: any;
651
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
652
1098
  transform: (transforms: {
653
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
654
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
1099
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1100
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
655
1101
  }) => {
656
- sql: {
1102
+ config: BuilderConfig<{
1103
+ pk?: true;
657
1104
  nullable?: boolean;
658
1105
  default?: string;
659
- pk?: true;
660
1106
  field?: string;
661
1107
  type: "longtext";
1108
+ }, z.ZodString, z.ZodString, undefined, TClientNext, TClientNext> & {
1109
+ transforms: {
1110
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1111
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1112
+ };
662
1113
  };
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;
1114
+ };
1115
+ };
1116
+ transform: (transforms: {
1117
+ toClient: (dbValue: string) => string;
1118
+ toDb: (clientValue: string) => string;
1119
+ }) => {
1120
+ config: BuilderConfig<{
1121
+ pk?: true;
1122
+ nullable?: boolean;
1123
+ default?: string;
1124
+ field?: string;
1125
+ type: "longtext";
1126
+ }, z.ZodString, z.ZodString, undefined, z.ZodString, z.ZodString> & {
669
1127
  transforms: {
670
- toClient: string;
671
- toDb: string;
1128
+ toClient: (dbValue: string) => string;
1129
+ toDb: (clientValue: string) => string;
672
1130
  };
673
1131
  };
674
1132
  };
675
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
676
- zod: z.ZodString;
677
- }) => ServerType)) => {
678
- sql: {
1133
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
1134
+ sql: z.ZodString;
1135
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
1136
+ config: BuilderConfig<{
1137
+ pk?: true;
679
1138
  nullable?: boolean;
680
1139
  default?: string;
681
- pk?: true;
682
1140
  field?: string;
683
1141
  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: {
1142
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString>;
1143
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1144
+ sql: z.ZodString;
1145
+ initialState: TNewNext;
1146
+ client: z.ZodString;
1147
+ }) => TValidationNext)) => {
1148
+ config: BuilderConfig<{
1149
+ pk?: true;
700
1150
  nullable?: boolean;
701
1151
  default?: string;
1152
+ field?: string;
1153
+ type: "longtext";
1154
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext>;
1155
+ transform: (transforms: {
1156
+ toClient: (dbValue: string) => string;
1157
+ toDb: (clientValue: string) => string;
1158
+ }) => {
1159
+ config: BuilderConfig<{
1160
+ pk?: true;
1161
+ nullable?: boolean;
1162
+ default?: string;
1163
+ field?: string;
1164
+ type: "longtext";
1165
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, TValidationNext> & {
1166
+ transforms: {
1167
+ toClient: (dbValue: string) => string;
1168
+ toDb: (clientValue: string) => string;
1169
+ };
1170
+ };
1171
+ };
1172
+ };
1173
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1174
+ sql: z.ZodString;
1175
+ initialState: TNewNext;
1176
+ }) => TClientNext)) => {
1177
+ config: BuilderConfig<{
702
1178
  pk?: true;
1179
+ nullable?: boolean;
1180
+ default?: string;
703
1181
  field?: string;
704
1182
  type: "longtext";
1183
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext>;
1184
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1185
+ sql: z.ZodString;
1186
+ initialState: TNewNext;
1187
+ client: TClientNext;
1188
+ }) => TValidationNext)) => {
1189
+ config: BuilderConfig<{
1190
+ pk?: true;
1191
+ nullable?: boolean;
1192
+ default?: string;
1193
+ field?: string;
1194
+ type: "longtext";
1195
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
1196
+ transform: (transforms: {
1197
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1198
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1199
+ }) => {
1200
+ config: BuilderConfig<{
1201
+ pk?: true;
1202
+ nullable?: boolean;
1203
+ default?: string;
1204
+ field?: string;
1205
+ type: "longtext";
1206
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
1207
+ transforms: {
1208
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1209
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1210
+ };
1211
+ };
1212
+ };
705
1213
  };
706
- zodDbSchema: z.ZodString | ServerType;
707
- zodClientSchema: ClientType;
708
- jsonSchema: any;
709
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
710
1214
  transform: (transforms: {
711
- toClient: (dbValue: string) => z.TypeOf<ClientType>;
712
- toDb: (clientValue: z.TypeOf<ClientType>) => string;
1215
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1216
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
713
1217
  }) => {
714
- sql: {
1218
+ config: BuilderConfig<{
1219
+ pk?: true;
715
1220
  nullable?: boolean;
716
1221
  default?: string;
717
- pk?: true;
718
1222
  field?: string;
719
1223
  type: "longtext";
1224
+ }, z.ZodString, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
1225
+ transforms: {
1226
+ toClient: (dbValue: string) => z.TypeOf<TClientNext>;
1227
+ toDb: (clientValue: z.TypeOf<TClientNext>) => string;
1228
+ };
720
1229
  };
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;
1230
+ };
1231
+ };
1232
+ transform: (transforms: {
1233
+ toClient: (dbValue: string) => string;
1234
+ toDb: (clientValue: string) => string;
1235
+ }) => {
1236
+ config: BuilderConfig<{
1237
+ pk?: true;
1238
+ nullable?: boolean;
1239
+ default?: string;
1240
+ field?: string;
1241
+ type: "longtext";
1242
+ }, z.ZodString, TNewNext, TDefaultNext, z.ZodString, z.ZodString> & {
727
1243
  transforms: {
728
- toClient: string;
729
- toDb: string;
1244
+ toClient: (dbValue: string) => string;
1245
+ toDb: (clientValue: string) => string;
730
1246
  };
731
1247
  };
732
1248
  };
733
1249
  };
734
1250
  };
735
1251
  boolean: (config?: BooleanConfig) => {
736
- sql: {
1252
+ config: BuilderConfig<{
737
1253
  nullable?: boolean;
738
1254
  pk?: true;
739
1255
  field?: string;
740
1256
  default?: boolean;
741
1257
  type: "boolean";
1258
+ }, z.ZodBoolean, z.ZodBoolean, undefined, z.ZodBoolean, z.ZodBoolean>;
1259
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1260
+ sql: z.ZodBoolean;
1261
+ initialState: z.ZodBoolean;
1262
+ client: z.ZodBoolean;
1263
+ }) => TValidationNext)) => {
1264
+ config: BuilderConfig<{
1265
+ nullable?: boolean;
1266
+ pk?: true;
1267
+ field?: string;
1268
+ default?: boolean;
1269
+ type: "boolean";
1270
+ }, z.ZodBoolean, z.ZodBoolean, undefined, z.ZodBoolean, TValidationNext>;
1271
+ transform: (transforms: {
1272
+ toClient: (dbValue: boolean) => boolean;
1273
+ toDb: (clientValue: boolean) => boolean;
1274
+ }) => {
1275
+ config: BuilderConfig<{
1276
+ nullable?: boolean;
1277
+ pk?: true;
1278
+ field?: string;
1279
+ default?: boolean;
1280
+ type: "boolean";
1281
+ }, z.ZodBoolean, z.ZodBoolean, undefined, z.ZodBoolean, TValidationNext> & {
1282
+ transforms: {
1283
+ toClient: (dbValue: boolean) => boolean;
1284
+ toDb: (clientValue: boolean) => boolean;
1285
+ };
1286
+ };
1287
+ };
742
1288
  };
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: {
1289
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1290
+ sql: z.ZodBoolean;
1291
+ initialState: z.ZodBoolean;
1292
+ }) => TClientNext)) => {
1293
+ config: BuilderConfig<{
758
1294
  nullable?: boolean;
759
1295
  pk?: true;
760
1296
  field?: string;
761
1297
  default?: boolean;
762
1298
  type: "boolean";
1299
+ }, z.ZodBoolean, z.ZodBoolean, undefined, TClientNext, TClientNext>;
1300
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1301
+ sql: z.ZodBoolean;
1302
+ initialState: z.ZodBoolean;
1303
+ client: TClientNext;
1304
+ }) => TValidationNext)) => {
1305
+ config: BuilderConfig<{
1306
+ nullable?: boolean;
1307
+ pk?: true;
1308
+ field?: string;
1309
+ default?: boolean;
1310
+ type: "boolean";
1311
+ }, z.ZodBoolean, z.ZodBoolean, undefined, TClientNext, TValidationNext>;
1312
+ transform: (transforms: {
1313
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1314
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1315
+ }) => {
1316
+ config: BuilderConfig<{
1317
+ nullable?: boolean;
1318
+ pk?: true;
1319
+ field?: string;
1320
+ default?: boolean;
1321
+ type: "boolean";
1322
+ }, z.ZodBoolean, z.ZodBoolean, undefined, TClientNext, TValidationNext> & {
1323
+ transforms: {
1324
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1325
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1326
+ };
1327
+ };
1328
+ };
763
1329
  };
764
- zodDbSchema: z.ZodBoolean;
765
- zodClientSchema: ClientType;
766
- jsonSchema: any;
767
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
768
1330
  transform: (transforms: {
769
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
770
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
1331
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1332
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
771
1333
  }) => {
772
- sql: {
1334
+ config: BuilderConfig<{
773
1335
  nullable?: boolean;
774
1336
  pk?: true;
775
1337
  field?: string;
776
1338
  default?: boolean;
777
1339
  type: "boolean";
1340
+ }, z.ZodBoolean, z.ZodBoolean, undefined, TClientNext, TClientNext> & {
1341
+ transforms: {
1342
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1343
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1344
+ };
778
1345
  };
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;
1346
+ };
1347
+ };
1348
+ transform: (transforms: {
1349
+ toClient: (dbValue: boolean) => boolean;
1350
+ toDb: (clientValue: boolean) => boolean;
1351
+ }) => {
1352
+ config: BuilderConfig<{
1353
+ nullable?: boolean;
1354
+ pk?: true;
1355
+ field?: string;
1356
+ default?: boolean;
1357
+ type: "boolean";
1358
+ }, z.ZodBoolean, z.ZodBoolean, undefined, z.ZodBoolean, z.ZodBoolean> & {
785
1359
  transforms: {
786
- toClient: string;
787
- toDb: string;
1360
+ toClient: (dbValue: boolean) => boolean;
1361
+ toDb: (clientValue: boolean) => boolean;
788
1362
  };
789
1363
  };
790
1364
  };
791
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
792
- zod: z.ZodBoolean;
793
- }) => ServerType)) => {
794
- sql: {
1365
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
1366
+ sql: z.ZodBoolean;
1367
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
1368
+ config: BuilderConfig<{
795
1369
  nullable?: boolean;
796
1370
  pk?: true;
797
1371
  field?: string;
798
1372
  default?: boolean;
799
1373
  type: "boolean";
1374
+ }, z.ZodBoolean, TNewNext, TDefaultNext, z.ZodBoolean, z.ZodBoolean>;
1375
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1376
+ sql: z.ZodBoolean;
1377
+ initialState: TNewNext;
1378
+ client: z.ZodBoolean;
1379
+ }) => TValidationNext)) => {
1380
+ config: BuilderConfig<{
1381
+ nullable?: boolean;
1382
+ pk?: true;
1383
+ field?: string;
1384
+ default?: boolean;
1385
+ type: "boolean";
1386
+ }, z.ZodBoolean, TNewNext, TDefaultNext, z.ZodBoolean, TValidationNext>;
1387
+ transform: (transforms: {
1388
+ toClient: (dbValue: boolean) => boolean;
1389
+ toDb: (clientValue: boolean) => boolean;
1390
+ }) => {
1391
+ config: BuilderConfig<{
1392
+ nullable?: boolean;
1393
+ pk?: true;
1394
+ field?: string;
1395
+ default?: boolean;
1396
+ type: "boolean";
1397
+ }, z.ZodBoolean, TNewNext, TDefaultNext, z.ZodBoolean, TValidationNext> & {
1398
+ transforms: {
1399
+ toClient: (dbValue: boolean) => boolean;
1400
+ toDb: (clientValue: boolean) => boolean;
1401
+ };
1402
+ };
1403
+ };
800
1404
  };
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: {
1405
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1406
+ sql: z.ZodBoolean;
1407
+ initialState: TNewNext;
1408
+ }) => TClientNext)) => {
1409
+ config: BuilderConfig<{
816
1410
  nullable?: boolean;
817
1411
  pk?: true;
818
1412
  field?: string;
819
1413
  default?: boolean;
820
1414
  type: "boolean";
1415
+ }, z.ZodBoolean, TNewNext, TDefaultNext, TClientNext, TClientNext>;
1416
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1417
+ sql: z.ZodBoolean;
1418
+ initialState: TNewNext;
1419
+ client: TClientNext;
1420
+ }) => TValidationNext)) => {
1421
+ config: BuilderConfig<{
1422
+ nullable?: boolean;
1423
+ pk?: true;
1424
+ field?: string;
1425
+ default?: boolean;
1426
+ type: "boolean";
1427
+ }, z.ZodBoolean, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
1428
+ transform: (transforms: {
1429
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1430
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1431
+ }) => {
1432
+ config: BuilderConfig<{
1433
+ nullable?: boolean;
1434
+ pk?: true;
1435
+ field?: string;
1436
+ default?: boolean;
1437
+ type: "boolean";
1438
+ }, z.ZodBoolean, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
1439
+ transforms: {
1440
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1441
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1442
+ };
1443
+ };
1444
+ };
821
1445
  };
822
- zodDbSchema: z.ZodBoolean | ServerType;
823
- zodClientSchema: ClientType;
824
- jsonSchema: any;
825
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
826
1446
  transform: (transforms: {
827
- toClient: (dbValue: boolean) => z.TypeOf<ClientType>;
828
- toDb: (clientValue: z.TypeOf<ClientType>) => boolean;
1447
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1448
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
829
1449
  }) => {
830
- sql: {
1450
+ config: BuilderConfig<{
831
1451
  nullable?: boolean;
832
1452
  pk?: true;
833
1453
  field?: string;
834
1454
  default?: boolean;
835
1455
  type: "boolean";
1456
+ }, z.ZodBoolean, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
1457
+ transforms: {
1458
+ toClient: (dbValue: boolean) => z.TypeOf<TClientNext>;
1459
+ toDb: (clientValue: z.TypeOf<TClientNext>) => boolean;
1460
+ };
836
1461
  };
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;
1462
+ };
1463
+ };
1464
+ transform: (transforms: {
1465
+ toClient: (dbValue: boolean) => boolean;
1466
+ toDb: (clientValue: boolean) => boolean;
1467
+ }) => {
1468
+ config: BuilderConfig<{
1469
+ nullable?: boolean;
1470
+ pk?: true;
1471
+ field?: string;
1472
+ default?: boolean;
1473
+ type: "boolean";
1474
+ }, z.ZodBoolean, TNewNext, TDefaultNext, z.ZodBoolean, z.ZodBoolean> & {
843
1475
  transforms: {
844
- toClient: string;
845
- toDb: string;
1476
+ toClient: (dbValue: boolean) => boolean;
1477
+ toDb: (clientValue: boolean) => boolean;
846
1478
  };
847
1479
  };
848
1480
  };
849
1481
  };
850
1482
  };
851
1483
  date: (config?: Omit<DateConfig, "type">) => {
852
- sql: {
1484
+ config: BuilderConfig<{
1485
+ pk?: true;
853
1486
  nullable?: boolean;
854
1487
  default?: Date;
855
- pk?: true;
856
1488
  field?: string;
857
1489
  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: {
1490
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, z.ZodDate>;
1491
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1492
+ sql: z.ZodDate;
1493
+ initialState: z.ZodDate;
1494
+ client: z.ZodDate;
1495
+ }) => TValidationNext)) => {
1496
+ config: BuilderConfig<{
1497
+ pk?: true;
874
1498
  nullable?: boolean;
875
1499
  default?: Date;
1500
+ field?: string;
1501
+ type: "date";
1502
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, TValidationNext>;
1503
+ transform: (transforms: {
1504
+ toClient: (dbValue: Date) => Date;
1505
+ toDb: (clientValue: Date) => Date;
1506
+ }) => {
1507
+ config: BuilderConfig<{
1508
+ pk?: true;
1509
+ nullable?: boolean;
1510
+ default?: Date;
1511
+ field?: string;
1512
+ type: "date";
1513
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, TValidationNext> & {
1514
+ transforms: {
1515
+ toClient: (dbValue: Date) => Date;
1516
+ toDb: (clientValue: Date) => Date;
1517
+ };
1518
+ };
1519
+ };
1520
+ };
1521
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1522
+ sql: z.ZodDate;
1523
+ initialState: z.ZodDate;
1524
+ }) => TClientNext)) => {
1525
+ config: BuilderConfig<{
876
1526
  pk?: true;
1527
+ nullable?: boolean;
1528
+ default?: Date;
877
1529
  field?: string;
878
1530
  type: "date";
1531
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TClientNext>;
1532
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1533
+ sql: z.ZodDate;
1534
+ initialState: z.ZodDate;
1535
+ client: TClientNext;
1536
+ }) => TValidationNext)) => {
1537
+ config: BuilderConfig<{
1538
+ pk?: true;
1539
+ nullable?: boolean;
1540
+ default?: Date;
1541
+ field?: string;
1542
+ type: "date";
1543
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TValidationNext>;
1544
+ transform: (transforms: {
1545
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1546
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1547
+ }) => {
1548
+ config: BuilderConfig<{
1549
+ pk?: true;
1550
+ nullable?: boolean;
1551
+ default?: Date;
1552
+ field?: string;
1553
+ type: "date";
1554
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TValidationNext> & {
1555
+ transforms: {
1556
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1557
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1558
+ };
1559
+ };
1560
+ };
879
1561
  };
880
- zodDbSchema: z.ZodDate;
881
- zodClientSchema: ClientType;
882
- jsonSchema: any;
883
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
884
1562
  transform: (transforms: {
885
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
886
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1563
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1564
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
887
1565
  }) => {
888
- sql: {
1566
+ config: BuilderConfig<{
1567
+ pk?: true;
889
1568
  nullable?: boolean;
890
1569
  default?: Date;
891
- pk?: true;
892
1570
  field?: string;
893
1571
  type: "date";
1572
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TClientNext> & {
1573
+ transforms: {
1574
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1575
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1576
+ };
894
1577
  };
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;
1578
+ };
1579
+ };
1580
+ transform: (transforms: {
1581
+ toClient: (dbValue: Date) => Date;
1582
+ toDb: (clientValue: Date) => Date;
1583
+ }) => {
1584
+ config: BuilderConfig<{
1585
+ pk?: true;
1586
+ nullable?: boolean;
1587
+ default?: Date;
1588
+ field?: string;
1589
+ type: "date";
1590
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, z.ZodDate> & {
901
1591
  transforms: {
902
- toClient: string;
903
- toDb: string;
1592
+ toClient: (dbValue: Date) => Date;
1593
+ toDb: (clientValue: Date) => Date;
904
1594
  };
905
1595
  };
906
1596
  };
907
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
908
- zod: z.ZodDate;
909
- }) => ServerType)) => {
910
- sql: {
1597
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
1598
+ sql: z.ZodDate;
1599
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
1600
+ config: BuilderConfig<{
1601
+ pk?: true;
911
1602
  nullable?: boolean;
912
1603
  default?: Date;
913
- pk?: true;
914
1604
  field?: string;
915
1605
  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: {
1606
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, z.ZodDate>;
1607
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1608
+ sql: z.ZodDate;
1609
+ initialState: TNewNext;
1610
+ client: z.ZodDate;
1611
+ }) => TValidationNext)) => {
1612
+ config: BuilderConfig<{
1613
+ pk?: true;
932
1614
  nullable?: boolean;
933
1615
  default?: Date;
1616
+ field?: string;
1617
+ type: "date";
1618
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, TValidationNext>;
1619
+ transform: (transforms: {
1620
+ toClient: (dbValue: Date) => Date;
1621
+ toDb: (clientValue: Date) => Date;
1622
+ }) => {
1623
+ config: BuilderConfig<{
1624
+ pk?: true;
1625
+ nullable?: boolean;
1626
+ default?: Date;
1627
+ field?: string;
1628
+ type: "date";
1629
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, TValidationNext> & {
1630
+ transforms: {
1631
+ toClient: (dbValue: Date) => Date;
1632
+ toDb: (clientValue: Date) => Date;
1633
+ };
1634
+ };
1635
+ };
1636
+ };
1637
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1638
+ sql: z.ZodDate;
1639
+ initialState: TNewNext;
1640
+ }) => TClientNext)) => {
1641
+ config: BuilderConfig<{
934
1642
  pk?: true;
1643
+ nullable?: boolean;
1644
+ default?: Date;
935
1645
  field?: string;
936
1646
  type: "date";
1647
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TClientNext>;
1648
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1649
+ sql: z.ZodDate;
1650
+ initialState: TNewNext;
1651
+ client: TClientNext;
1652
+ }) => TValidationNext)) => {
1653
+ config: BuilderConfig<{
1654
+ pk?: true;
1655
+ nullable?: boolean;
1656
+ default?: Date;
1657
+ field?: string;
1658
+ type: "date";
1659
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
1660
+ transform: (transforms: {
1661
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1662
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1663
+ }) => {
1664
+ config: BuilderConfig<{
1665
+ pk?: true;
1666
+ nullable?: boolean;
1667
+ default?: Date;
1668
+ field?: string;
1669
+ type: "date";
1670
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
1671
+ transforms: {
1672
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1673
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1674
+ };
1675
+ };
1676
+ };
937
1677
  };
938
- zodDbSchema: z.ZodDate | ServerType;
939
- zodClientSchema: ClientType;
940
- jsonSchema: any;
941
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
942
1678
  transform: (transforms: {
943
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
944
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1679
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1680
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
945
1681
  }) => {
946
- sql: {
1682
+ config: BuilderConfig<{
1683
+ pk?: true;
947
1684
  nullable?: boolean;
948
1685
  default?: Date;
949
- pk?: true;
950
1686
  field?: string;
951
1687
  type: "date";
1688
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
1689
+ transforms: {
1690
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1691
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1692
+ };
952
1693
  };
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;
1694
+ };
1695
+ };
1696
+ transform: (transforms: {
1697
+ toClient: (dbValue: Date) => Date;
1698
+ toDb: (clientValue: Date) => Date;
1699
+ }) => {
1700
+ config: BuilderConfig<{
1701
+ pk?: true;
1702
+ nullable?: boolean;
1703
+ default?: Date;
1704
+ field?: string;
1705
+ type: "date";
1706
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, z.ZodDate> & {
959
1707
  transforms: {
960
- toClient: string;
961
- toDb: string;
1708
+ toClient: (dbValue: Date) => Date;
1709
+ toDb: (clientValue: Date) => Date;
962
1710
  };
963
1711
  };
964
1712
  };
965
1713
  };
966
1714
  };
967
1715
  datetime: (config?: Omit<DateConfig, "type">) => {
968
- sql: {
1716
+ config: BuilderConfig<{
1717
+ pk?: true;
969
1718
  nullable?: boolean;
970
1719
  default?: Date;
971
- pk?: true;
972
1720
  field?: string;
973
1721
  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: {
1722
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, z.ZodDate>;
1723
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1724
+ sql: z.ZodDate;
1725
+ initialState: z.ZodDate;
1726
+ client: z.ZodDate;
1727
+ }) => TValidationNext)) => {
1728
+ config: BuilderConfig<{
1729
+ pk?: true;
990
1730
  nullable?: boolean;
991
1731
  default?: Date;
1732
+ field?: string;
1733
+ type: "datetime";
1734
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, TValidationNext>;
1735
+ transform: (transforms: {
1736
+ toClient: (dbValue: Date) => Date;
1737
+ toDb: (clientValue: Date) => Date;
1738
+ }) => {
1739
+ config: BuilderConfig<{
1740
+ pk?: true;
1741
+ nullable?: boolean;
1742
+ default?: Date;
1743
+ field?: string;
1744
+ type: "datetime";
1745
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, TValidationNext> & {
1746
+ transforms: {
1747
+ toClient: (dbValue: Date) => Date;
1748
+ toDb: (clientValue: Date) => Date;
1749
+ };
1750
+ };
1751
+ };
1752
+ };
1753
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1754
+ sql: z.ZodDate;
1755
+ initialState: z.ZodDate;
1756
+ }) => TClientNext)) => {
1757
+ config: BuilderConfig<{
992
1758
  pk?: true;
1759
+ nullable?: boolean;
1760
+ default?: Date;
993
1761
  field?: string;
994
1762
  type: "datetime";
1763
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TClientNext>;
1764
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1765
+ sql: z.ZodDate;
1766
+ initialState: z.ZodDate;
1767
+ client: TClientNext;
1768
+ }) => TValidationNext)) => {
1769
+ config: BuilderConfig<{
1770
+ pk?: true;
1771
+ nullable?: boolean;
1772
+ default?: Date;
1773
+ field?: string;
1774
+ type: "datetime";
1775
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TValidationNext>;
1776
+ transform: (transforms: {
1777
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1778
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1779
+ }) => {
1780
+ config: BuilderConfig<{
1781
+ pk?: true;
1782
+ nullable?: boolean;
1783
+ default?: Date;
1784
+ field?: string;
1785
+ type: "datetime";
1786
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TValidationNext> & {
1787
+ transforms: {
1788
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1789
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1790
+ };
1791
+ };
1792
+ };
995
1793
  };
996
- zodDbSchema: z.ZodDate;
997
- zodClientSchema: ClientType;
998
- jsonSchema: any;
999
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1000
1794
  transform: (transforms: {
1001
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1002
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1795
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1796
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1003
1797
  }) => {
1004
- sql: {
1798
+ config: BuilderConfig<{
1799
+ pk?: true;
1005
1800
  nullable?: boolean;
1006
1801
  default?: Date;
1007
- pk?: true;
1008
1802
  field?: string;
1009
1803
  type: "datetime";
1804
+ }, z.ZodDate, z.ZodDate, undefined, TClientNext, TClientNext> & {
1805
+ transforms: {
1806
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1807
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1808
+ };
1010
1809
  };
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;
1810
+ };
1811
+ };
1812
+ transform: (transforms: {
1813
+ toClient: (dbValue: Date) => Date;
1814
+ toDb: (clientValue: Date) => Date;
1815
+ }) => {
1816
+ config: BuilderConfig<{
1817
+ pk?: true;
1818
+ nullable?: boolean;
1819
+ default?: Date;
1820
+ field?: string;
1821
+ type: "datetime";
1822
+ }, z.ZodDate, z.ZodDate, undefined, z.ZodDate, z.ZodDate> & {
1017
1823
  transforms: {
1018
- toClient: string;
1019
- toDb: string;
1824
+ toClient: (dbValue: Date) => Date;
1825
+ toDb: (clientValue: Date) => Date;
1020
1826
  };
1021
1827
  };
1022
1828
  };
1023
- db: <ServerType extends z.ZodTypeAny>(assert: ServerType | ((tools: {
1024
- zod: z.ZodDate;
1025
- }) => ServerType)) => {
1026
- sql: {
1829
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
1830
+ sql: z.ZodDate;
1831
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
1832
+ config: BuilderConfig<{
1833
+ pk?: true;
1027
1834
  nullable?: boolean;
1028
1835
  default?: Date;
1029
- pk?: true;
1030
1836
  field?: string;
1031
1837
  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: {
1838
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, z.ZodDate>;
1839
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1840
+ sql: z.ZodDate;
1841
+ initialState: TNewNext;
1842
+ client: z.ZodDate;
1843
+ }) => TValidationNext)) => {
1844
+ config: BuilderConfig<{
1845
+ pk?: true;
1048
1846
  nullable?: boolean;
1049
1847
  default?: Date;
1848
+ field?: string;
1849
+ type: "datetime";
1850
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, TValidationNext>;
1851
+ transform: (transforms: {
1852
+ toClient: (dbValue: Date) => Date;
1853
+ toDb: (clientValue: Date) => Date;
1854
+ }) => {
1855
+ config: BuilderConfig<{
1856
+ pk?: true;
1857
+ nullable?: boolean;
1858
+ default?: Date;
1859
+ field?: string;
1860
+ type: "datetime";
1861
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, TValidationNext> & {
1862
+ transforms: {
1863
+ toClient: (dbValue: Date) => Date;
1864
+ toDb: (clientValue: Date) => Date;
1865
+ };
1866
+ };
1867
+ };
1868
+ };
1869
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1870
+ sql: z.ZodDate;
1871
+ initialState: TNewNext;
1872
+ }) => TClientNext)) => {
1873
+ config: BuilderConfig<{
1050
1874
  pk?: true;
1875
+ nullable?: boolean;
1876
+ default?: Date;
1051
1877
  field?: string;
1052
1878
  type: "datetime";
1879
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TClientNext>;
1880
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1881
+ sql: z.ZodDate;
1882
+ initialState: TNewNext;
1883
+ client: TClientNext;
1884
+ }) => TValidationNext)) => {
1885
+ config: BuilderConfig<{
1886
+ pk?: true;
1887
+ nullable?: boolean;
1888
+ default?: Date;
1889
+ field?: string;
1890
+ type: "datetime";
1891
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
1892
+ transform: (transforms: {
1893
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1894
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1895
+ }) => {
1896
+ config: BuilderConfig<{
1897
+ pk?: true;
1898
+ nullable?: boolean;
1899
+ default?: Date;
1900
+ field?: string;
1901
+ type: "datetime";
1902
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
1903
+ transforms: {
1904
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1905
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1906
+ };
1907
+ };
1908
+ };
1053
1909
  };
1054
- zodDbSchema: z.ZodDate | ServerType;
1055
- zodClientSchema: ClientType;
1056
- jsonSchema: any;
1057
- defaultValue: DefaultValue | (DefaultValue extends Date ? CurrentTimestampConfig : never);
1058
1910
  transform: (transforms: {
1059
- toClient: (dbValue: Date) => z.TypeOf<ClientType>;
1060
- toDb: (clientValue: z.TypeOf<ClientType>) => Date;
1911
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1912
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1061
1913
  }) => {
1062
- sql: {
1914
+ config: BuilderConfig<{
1915
+ pk?: true;
1063
1916
  nullable?: boolean;
1064
1917
  default?: Date;
1065
- pk?: true;
1066
1918
  field?: string;
1067
1919
  type: "datetime";
1920
+ }, z.ZodDate, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
1921
+ transforms: {
1922
+ toClient: (dbValue: Date) => z.TypeOf<TClientNext>;
1923
+ toDb: (clientValue: z.TypeOf<TClientNext>) => Date;
1924
+ };
1068
1925
  };
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;
1926
+ };
1927
+ };
1928
+ transform: (transforms: {
1929
+ toClient: (dbValue: Date) => Date;
1930
+ toDb: (clientValue: Date) => Date;
1931
+ }) => {
1932
+ config: BuilderConfig<{
1933
+ pk?: true;
1934
+ nullable?: boolean;
1935
+ default?: Date;
1936
+ field?: string;
1937
+ type: "datetime";
1938
+ }, z.ZodDate, TNewNext, TDefaultNext, z.ZodDate, z.ZodDate> & {
1075
1939
  transforms: {
1076
- toClient: string;
1077
- toDb: string;
1940
+ toClient: (dbValue: Date) => Date;
1941
+ toDb: (clientValue: Date) => Date;
1078
1942
  };
1079
1943
  };
1080
1944
  };
1081
1945
  };
1082
1946
  };
1083
1947
  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;
1948
+ config: BuilderConfig<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>;
1949
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1950
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1951
+ initialState: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1952
+ client: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1953
+ }) => TValidationNext)) => {
1954
+ config: BuilderConfig<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, TValidationNext>;
1955
+ transform: (transforms: {
1956
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1957
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1958
+ }) => {
1959
+ config: BuilderConfig<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, TValidationNext> & {
1960
+ transforms: {
1961
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1962
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1963
+ };
1964
+ };
1965
+ };
1093
1966
  };
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);
1967
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
1968
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1969
+ initialState: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1970
+ }) => TClientNext)) => {
1971
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, undefined, TClientNext, TClientNext>;
1972
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
1973
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1974
+ initialState: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
1975
+ client: TClientNext;
1976
+ }) => TValidationNext)) => {
1977
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, undefined, TClientNext, TValidationNext>;
1978
+ transform: (transforms: {
1979
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
1980
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1981
+ }) => {
1982
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, undefined, TClientNext, TValidationNext> & {
1983
+ transforms: {
1984
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
1985
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1986
+ };
1987
+ };
1988
+ };
1989
+ };
1104
1990
  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;
1991
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
1992
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1107
1993
  }) => {
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;
1994
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, undefined, TClientNext, TClientNext> & {
1995
+ transforms: {
1996
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
1997
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1998
+ };
1999
+ };
2000
+ };
2001
+ };
2002
+ transform: (transforms: {
2003
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2004
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2005
+ }) => {
2006
+ config: BuilderConfig<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> & {
1115
2007
  transforms: {
1116
- toClient: string;
1117
- toDb: string;
2008
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2009
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1118
2010
  };
1119
2011
  };
1120
2012
  };
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;
2013
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: TNewNext | ((tools: {
2014
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
2015
+ }) => TNewNext), defaultValue: () => TDefaultNext) => {
2016
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2017
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
2018
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
2019
+ initialState: TNewNext;
2020
+ client: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
2021
+ }) => TValidationNext)) => {
2022
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TValidationNext>;
2023
+ transform: (transforms: {
2024
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2025
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2026
+ }) => {
2027
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TValidationNext> & {
2028
+ transforms: {
2029
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2030
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2031
+ };
2032
+ };
2033
+ };
1133
2034
  };
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);
2035
+ client: <TClientNext extends z.ZodTypeAny>(schema: TClientNext | ((tools: {
2036
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
2037
+ initialState: TNewNext;
2038
+ }) => TClientNext)) => {
2039
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, TClientNext, TClientNext>;
2040
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: TValidationNext | ((tools: {
2041
+ sql: SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never;
2042
+ initialState: TNewNext;
2043
+ client: TClientNext;
2044
+ }) => TValidationNext)) => {
2045
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, TClientNext, TValidationNext>;
2046
+ transform: (transforms: {
2047
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
2048
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2049
+ }) => {
2050
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, TClientNext, TValidationNext> & {
2051
+ transforms: {
2052
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
2053
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2054
+ };
2055
+ };
2056
+ };
2057
+ };
1144
2058
  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;
2059
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
2060
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1147
2061
  }) => {
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;
2062
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, TClientNext, TClientNext> & {
2063
+ transforms: {
2064
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<TClientNext>;
2065
+ toDb: (clientValue: z.TypeOf<TClientNext>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2066
+ };
2067
+ };
2068
+ };
2069
+ };
2070
+ transform: (transforms: {
2071
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2072
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2073
+ }) => {
2074
+ config: BuilderConfig<T, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, TNewNext, TDefaultNext, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never, SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never> & {
1155
2075
  transforms: {
1156
- toClient: string;
1157
- toDb: string;
2076
+ toClient: (dbValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
2077
+ toDb: (clientValue: z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>) => z.TypeOf<SQLToZodType<T, false> extends z.ZodTypeAny ? SQLToZodType<T, false> : never>;
1158
2078
  };
1159
2079
  };
1160
2080
  };
1161
2081
  };
1162
2082
  };
1163
2083
  };
2084
+ interface IBuilderMethods<T extends SQLType, TSql extends z.ZodTypeAny, TNew extends z.ZodTypeAny, TInitialValue, TClient extends z.ZodTypeAny, TValidation extends z.ZodTypeAny> {
2085
+ /**
2086
+ * Defines the schema and default value for creating a new item.
2087
+ * Moves the builder to the 'new' stage.
2088
+ */
2089
+ initialState: <TNewNext extends z.ZodTypeAny, TDefaultNext>(schema: ((tools: {
2090
+ sql: TSql;
2091
+ }) => TNewNext) | TNewNext, defaultValue: () => TDefaultNext) => Builder<"new", T, TSql, TNewNext, TDefaultNext, TSql, TSql>;
2092
+ /**
2093
+ * Defines the schema for data sent to the client.
2094
+ * Moves the builder to the 'client' stage.
2095
+ */
2096
+ client: <TClientNext extends z.ZodTypeAny>(schema: ((tools: {
2097
+ sql: TSql;
2098
+ initialState: TNew;
2099
+ }) => TClientNext) | TClientNext) => Builder<"client", T, TSql, TNew, TInitialValue, TClientNext, TClientNext>;
2100
+ /**
2101
+ * Defines a validation schema for updates or inputs.
2102
+ * Moves the builder to the 'validation' stage.
2103
+ */
2104
+ validation: <TValidationNext extends z.ZodTypeAny>(schema: ((tools: {
2105
+ sql: TSql;
2106
+ initialState: TNew;
2107
+ client: TClient;
2108
+ }) => TValidationNext) | TValidationNext) => Builder<"validation", T, TSql, TNew, TInitialValue, TClient, TValidationNext>;
2109
+ /**
2110
+ * Finalizes the builder by providing data transformation functions.
2111
+ * This is the terminal step.
2112
+ */
2113
+ transform: (transforms: {
2114
+ toClient: (dbValue: z.infer<TSql>) => z.infer<TClient>;
2115
+ toDb: (clientValue: z.infer<TClient>) => z.infer<TSql>;
2116
+ }) => {
2117
+ config: BuilderConfig<T, TSql, TNew, TInitialValue, TClient, TValidation> & {
2118
+ transforms: typeof transforms;
2119
+ };
2120
+ };
2121
+ }
2122
+ type Stage = "sql" | "new" | "client" | "validation" | "done";
2123
+ type StageMethods = {
2124
+ sql: "initialState" | "client" | "validation" | "transform";
2125
+ new: "client" | "validation" | "transform";
2126
+ client: "validation" | "transform";
2127
+ validation: "transform";
2128
+ done: never;
2129
+ };
2130
+ type BuilderConfig<T extends SQLType, TSql extends z.ZodTypeAny, TNew extends z.ZodTypeAny, TInitialValue, TClient extends z.ZodTypeAny, TValidation extends z.ZodTypeAny> = {
2131
+ sql: T;
2132
+ zodSqlSchema: TSql;
2133
+ zodNewSchema: TNew;
2134
+ initialValue: TInitialValue;
2135
+ zodClientSchema: TClient;
2136
+ zodValidationSchema: TValidation;
2137
+ };
2138
+ export type Builder<TStage extends Stage, T extends SQLType, TSql extends z.ZodTypeAny, TNew extends z.ZodTypeAny, TInitialValue, TClient extends z.ZodTypeAny, TValidation extends z.ZodTypeAny> = Prettify<{
2139
+ /** The configuration object, available at every stage. */
2140
+ config: BuilderConfig<T, TSql, TNew, TInitialValue, TClient, TValidation>;
2141
+ } & Pick<IBuilderMethods<T, TSql, TNew, TInitialValue, TClient, TValidation>, StageMethods[TStage]>>;
1164
2142
  export declare function hasMany<T extends Schema<any>>(config: {
1165
2143
  fromKey: string;
1166
2144
  toKey: () => T[keyof T];
@@ -1242,28 +2220,6 @@ type Relation<U extends Schema<any>> = {
1242
2220
  type Prettify<T> = {
1243
2221
  [K in keyof T]: T[K];
1244
2222
  } & {};
1245
- type InferSchema<T> = {
1246
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1247
- zodClientSchema: infer ClientType extends z.ZodTypeAny;
1248
- toClient?: (dbValue: any) => infer TransformedType;
1249
- } ? T[K]["toClient"] extends Function ? z.ZodType<TransformedType> : ClientType extends z.ZodNever ? z.ZodOptional<z.ZodDate> : ClientType : T[K] extends () => {
1250
- type: "hasMany";
1251
- schema: infer S;
1252
- } ? z.ZodArray<z.ZodObject<{
1253
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1254
- zodClientSchema: z.ZodTypeAny;
1255
- toClient?: (dbValue: any) => any;
1256
- } ? 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;
1257
- }>> : T[K] extends () => {
1258
- type: "hasOne" | "belongsTo";
1259
- schema: infer S;
1260
- } ? z.ZodObject<{
1261
- [P in keyof S as P extends "_tableName" | "__schemaId" ? never : P]: S[P] extends {
1262
- zodClientSchema: z.ZodTypeAny;
1263
- toClient?: (dbValue: any) => any;
1264
- } ? 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;
1265
- }> : never;
1266
- };
1267
2223
  export type InferDBSchema<T> = {
1268
2224
  [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1269
2225
  zodDbSchema: infer DbType extends z.ZodTypeAny;
@@ -1285,35 +2241,6 @@ export type InferDBSchema<T> = {
1285
2241
  } ? DbType : never;
1286
2242
  }> : never;
1287
2243
  };
1288
- type UUID = string | `${string}-${string}-${string}-${string}-${string}`;
1289
- type InferDefaultValues<T, TDefault extends boolean = true> = {
1290
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1291
- sql: {
1292
- pk: true;
1293
- };
1294
- } ? UUID : T[K] extends {
1295
- defaultValue: infer U;
1296
- } ? U : T[K] extends {
1297
- zodClientSchema: z.ZodOptional<any>;
1298
- } ? undefined : T[K] extends {
1299
- zodClientSchema: z.ZodNullable<any>;
1300
- } ? null : T[K] extends {
1301
- zodClientSchema: z.ZodArray<any>;
1302
- } ? z.infer<T[K]["zodClientSchema"]> | [] : T[K] extends {
1303
- zodClientSchema: z.ZodObject<any>;
1304
- } ? z.infer<T[K]["zodClientSchema"]> | {} : T[K] extends () => {
1305
- type: "hasMany";
1306
- schema: infer S;
1307
- } ? Array<Prettify<InferDefaultValues<S>>> : T[K] extends () => {
1308
- type: "hasOne" | "belongsTo";
1309
- schema: infer S;
1310
- } ? Prettify<InferDefaultValues<S>> : T[K] extends {
1311
- zodClientSchema: z.ZodType<any>;
1312
- } ? z.infer<T[K]["zodClientSchema"]> : never;
1313
- };
1314
- type DeepWriteable<T> = T extends Date ? T : T extends object ? {
1315
- -readonly [K in keyof T]: DeepWriteable<T[K]>;
1316
- } : T;
1317
2244
  export type SerializableField = {
1318
2245
  sql: SQLType;
1319
2246
  jsonSchema: JsonSchema7Type;
@@ -1341,74 +2268,6 @@ export type SerializableSchema = {
1341
2268
  schema: SerializableSchema;
1342
2269
  });
1343
2270
  };
1344
- type InferSerializedSchema<T> = {
1345
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1346
- sql: infer S;
1347
- zodClientSchema: any;
1348
- defaultValue?: infer D;
1349
- } ? {
1350
- sql: S;
1351
- jsonSchema: JsonSchema7Type;
1352
- defaultValue: D;
1353
- transforms?: {
1354
- toClient: string;
1355
- toDb: string;
1356
- };
1357
- } : T[K] extends () => {
1358
- type: "hasMany";
1359
- schema: infer S;
1360
- fromKey: infer FK;
1361
- toKey: infer TK;
1362
- } ? {
1363
- type: "relation";
1364
- relationType: "hasMany";
1365
- fromKey: FK;
1366
- toKey: TK extends {
1367
- sql: infer TKSQL;
1368
- zodClientSchema: any;
1369
- defaultValue?: infer TKD;
1370
- } ? {
1371
- sql: TKSQL;
1372
- jsonSchema: JsonSchema7Type;
1373
- defaultValue: TKD;
1374
- transforms?: {
1375
- toClient: string;
1376
- toDb: string;
1377
- };
1378
- } : never;
1379
- schema: Prettify<InferSerializedSchema<S>> & {
1380
- _tableName: string;
1381
- __schemaId: string;
1382
- };
1383
- defaultCount?: number;
1384
- } : T[K] extends () => {
1385
- type: infer R;
1386
- schema: infer S;
1387
- fromKey: infer FK;
1388
- toKey: infer TK;
1389
- } ? {
1390
- type: "relation";
1391
- relationType: R;
1392
- fromKey: FK;
1393
- toKey: TK extends {
1394
- sql: infer TKSQL;
1395
- zodClientSchema: any;
1396
- defaultValue?: infer TKD;
1397
- } ? {
1398
- sql: TKSQL;
1399
- jsonSchema: JsonSchema7Type;
1400
- defaultValue: TKD;
1401
- transforms?: {
1402
- toClient: string;
1403
- toDb: string;
1404
- };
1405
- } : never;
1406
- schema: Prettify<InferSerializedSchema<S>> & {
1407
- _tableName: string;
1408
- __schemaId: string;
1409
- };
1410
- } : never;
1411
- };
1412
2271
  export declare function reference<TTargetField extends SchemaField, TField extends object>(config: {
1413
2272
  to: () => TTargetField;
1414
2273
  field: TField;
@@ -1417,56 +2276,42 @@ export declare function reference<TTargetField extends SchemaField, TField exten
1417
2276
  to: () => TTargetField;
1418
2277
  };
1419
2278
  export declare function createMixedValidationSchema<T extends Schema<any>>(schema: T, clientSchema?: z.ZodObject<any>, dbSchema?: z.ZodObject<any>): z.ZodObject<any>;
1420
- type InferMixedSchema<T extends Schema<any>> = {
1421
- [K in keyof T as K extends "_tableName" | "__schemaId" ? never : K]: T[K] extends {
1422
- zodClientSchema: infer C;
1423
- zodDbSchema: infer D;
1424
- } ? C extends z.ZodTypeAny ? D extends z.ZodTypeAny ? z.ZodUnion<[C, D]> : C : D extends z.ZodTypeAny ? D : never : T[K] extends () => {
1425
- type: "hasMany";
1426
- schema: infer S extends Schema<any>;
1427
- } ? z.ZodArray<z.ZodObject<InferMixedSchema<S>>> : T[K] extends () => {
1428
- type: "hasOne" | "belongsTo";
1429
- schema: infer S extends Schema<any>;
1430
- } ? z.ZodObject<InferMixedSchema<S>> : never;
2279
+ type InferSqlSchema<T> = {
2280
+ [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
2281
+ config: {
2282
+ zodSqlSchema: infer S extends z.ZodTypeAny;
2283
+ };
2284
+ } ? S : never;
1431
2285
  };
1432
- export declare function createSchema<T extends Schema<any>>(schema: T): {
1433
- dbSchema: z.ZodObject<Prettify<InferDBSchema<T>>>;
1434
- clientSchema: z.ZodObject<Prettify<OmitNever<InferSchema<T>>>>;
1435
- mixedSchema: z.ZodObject<Prettify<InferMixedSchema<T>>>;
1436
- defaultValues: Prettify<OmitNever<ConfigWithOptionalProps<T>>>;
1437
- initialValues: () => Prettify<OmitNever<ConfigWithOptionalProps<T>>>;
1438
- serialized: Prettify<InferSerializedSchema<T>> & {
1439
- _tableName: string;
1440
- __schemaId: string;
1441
- };
2286
+ type InferClientSchema<T> = {
2287
+ [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
2288
+ config: {
2289
+ zodClientSchema: infer C extends z.ZodTypeAny;
2290
+ };
2291
+ } ? C : never;
1442
2292
  };
1443
- type IsOptionalKey<T, K extends keyof T> = {} extends Pick<T, K> ? true : false;
1444
- 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 ? {
1445
- [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]>;
1446
- } & {
1447
- [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;
1448
- } : ClientType | DbType : ClientType | DbType;
1449
- type ConversionType<T extends Schema<any>> = DeepConversionType<SchemaTypes<T>["client"], SchemaTypes<T>["db"]>;
1450
- type OmitNever<T> = {
1451
- [K in keyof T as T[K] extends never ? never : K]: T[K];
2293
+ type InferValidationSchema<T> = {
2294
+ [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
2295
+ config: {
2296
+ zodValidationSchema: infer V extends z.ZodTypeAny;
2297
+ };
2298
+ } ? V : never;
1452
2299
  };
1453
- type DefaultValue<T> = Prettify<DeepWriteable<InferDefaultValues<T>>>;
1454
- type GetMandatoryKeys<T> = {
1455
- [P in keyof T]: T[P] extends Exclude<T[P], undefined> ? P : never;
1456
- }[keyof T];
1457
- type MandatoryProps<T> = Pick<DefaultValue<T>, GetMandatoryKeys<DefaultValue<T>>>;
1458
- type ConfigWithOptionalProps<T> = Partial<DefaultValue<T>> & MandatoryProps<T>;
1459
- export type SchemaTypes<T extends Schema<any>> = {
1460
- client: z.infer<typeof createSchema<T> extends (...args: any) => {
1461
- clientSchema: infer R;
1462
- } ? R : never>;
1463
- db: z.infer<typeof createSchema<T> extends (...args: any) => {
1464
- dbSchema: infer R;
1465
- } ? R : never>;
1466
- both: z.infer<typeof createSchema<T> extends (...args: any) => {
1467
- clientSchema: infer C;
1468
- dbSchema: infer D;
1469
- } ? C | D : never>;
1470
- join: Prettify<ConversionType<T>>;
2300
+ type InferDefaultValues2<T> = {
2301
+ [K in keyof T as K extends "_tableName" ? never : K]: T[K] extends {
2302
+ config: {
2303
+ initialValue: infer D;
2304
+ };
2305
+ } ? D : never;
2306
+ };
2307
+ export declare function createSchema<T extends {
2308
+ _tableName: string;
2309
+ }>(schema: T extends {
2310
+ _tableName: string;
2311
+ } ? T : never): {
2312
+ sqlSchema: z.ZodObject<Prettify<InferSqlSchema<T>>>;
2313
+ clientSchema: z.ZodObject<Prettify<InferClientSchema<T>>>;
2314
+ validationSchema: z.ZodObject<Prettify<InferValidationSchema<T>>>;
2315
+ defaultValues: Prettify<InferDefaultValues2<T>>;
1471
2316
  };
1472
2317
  export {};