orchid-orm-schema-to-zod 0.3.14 → 0.3.17
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/index.d.ts +4 -3
- package/dist/index.js +88 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +88 -66
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as orchid_core from 'orchid-core';
|
|
2
|
-
import { JSONTypeAny, JSONArray, JSONEnum, JSONInstanceOf, JSONLiteral, JSONMap, JSONSet, JSONNativeEnum, JSONTuple, JSONObject, UnknownKeysParam, JSONRecord, JSONRecordKeyType, JSONIntersection
|
|
2
|
+
import { JSONDiscriminatedUnion, Primitive, JSONTypeAny, JSONArray, JSONEnum, JSONInstanceOf, JSONLiteral, JSONMap, JSONSet, JSONNativeEnum, JSONTuple, JSONObject, UnknownKeysParam, JSONRecord, JSONRecordKeyType, JSONIntersection } from 'orchid-core';
|
|
3
3
|
import { ColumnsShape, ColumnType, EnumColumn, ArrayColumn, JSONColumn, VirtualColumn } from 'pqb';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { Buffer } from 'node:buffer';
|
|
@@ -36,7 +36,8 @@ declare type JsonToZod<T extends JSONTypeAny, D = T['dataType']> = T extends {
|
|
|
36
36
|
data: Omit<T['data'], 'optional'>;
|
|
37
37
|
}>> : D extends 'bigint' ? z.ZodString : D extends 'boolean' ? z.ZodBoolean : D extends 'date' ? z.ZodDate : D extends 'nan' ? z.ZodNaN : D extends 'never' ? z.ZodNever : D extends 'null' ? z.ZodNull : D extends 'number' ? z.ZodNumber : D extends 'string' ? z.ZodString : D extends 'undefined' ? z.ZodUndefined : D extends 'unknown' ? z.ZodUnknown : D extends 'void' ? z.ZodVoid : T extends JSONArray<infer U> ? z.ZodArray<JsonToZod<U>> : T extends JSONEnum<string, infer U> ? z.ZodEnum<U> : T extends JSONInstanceOf<infer U> ? z.ZodType<InstanceType<U>, z.ZodTypeDef, InstanceType<U>> : T extends JSONLiteral<infer U> ? z.ZodLiteral<U> : T extends JSONMap<infer K, infer V> ? z.ZodMap<JsonToZod<K>, JsonToZod<V>> : T extends JSONSet<infer U> ? z.ZodSet<JsonToZod<U>> : T extends JSONNativeEnum<infer U> ? z.ZodNativeEnum<U> : T extends JSONTuple<infer U, infer R> ? z.ZodTuple<MapJsonTuple<U>, R extends JSONTypeAny ? JsonToZod<R> : null> : T extends JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam> ? z.ZodObject<{
|
|
38
38
|
[K in keyof T['shape']]: JsonToZod<T['shape'][K]>;
|
|
39
|
-
}, T['unknownKeys'], JsonToZod<T['catchAllType']>> : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny> ? z.ZodRecord<JsonToZod<T['keyType']> extends z.ZodType<string | number | symbol, any, any> ? JsonToZod<T['keyType']> : never, JsonToZod<T['valueType']>> : T extends JSONIntersection<JSONTypeAny, JSONTypeAny> ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>> : T extends JSONDiscriminatedUnion<string, Primitive, any> ?
|
|
39
|
+
}, T['unknownKeys'], JsonToZod<T['catchAllType']>> : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny> ? z.ZodRecord<JsonToZod<T['keyType']> extends z.ZodType<string | number | symbol, any, any> ? JsonToZod<T['keyType']> : never, JsonToZod<T['valueType']>> : T extends JSONIntersection<JSONTypeAny, JSONTypeAny> ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>> : T extends JSONDiscriminatedUnion<string, Primitive, any> ? MapDiscriminatedUnion<T> : D extends 'any' ? z.ZodTypeAny : z.ZodType<T['type']>;
|
|
40
|
+
declare type MapDiscriminatedUnion<T extends JSONDiscriminatedUnion<string, Primitive, any>, Options = MapJsonTuple<T['_options']>> = z.ZodDiscriminatedUnion<T['discriminator'], Options extends z.ZodDiscriminatedUnionOption<T['discriminator']>[] ? Options : never>;
|
|
40
41
|
declare type MapJsonTuple<T extends unknown[]> = T extends [infer Head, ...infer Tail] ? [Head extends JSONTypeAny ? JsonToZod<Head> : never, ...MapJsonTuple<Tail>] : [];
|
|
41
42
|
declare type TableToZod<T extends new () => {
|
|
42
43
|
columns: {
|
|
@@ -77,4 +78,4 @@ declare const interval: z.ZodObject<{
|
|
|
77
78
|
seconds?: number | undefined;
|
|
78
79
|
}>;
|
|
79
80
|
|
|
80
|
-
export { InstanceToZod, TableToZod, columnToZod, instanceToZod, tableToZod };
|
|
81
|
+
export { InstanceToZod, MapDiscriminatedUnion, TableToZod, columnToZod, instanceToZod, tableToZod };
|
package/dist/index.js
CHANGED
|
@@ -35,14 +35,27 @@ const columnToZod = (column) => {
|
|
|
35
35
|
};
|
|
36
36
|
const typeHandler = (fn) => {
|
|
37
37
|
return (column) => {
|
|
38
|
-
let type = fn(column);
|
|
38
|
+
let type = fn(column, column.data.errors);
|
|
39
|
+
const { errors } = column.data;
|
|
40
|
+
const { required_error, invalid_type_error } = {
|
|
41
|
+
required_error: errors == null ? void 0 : errors.required,
|
|
42
|
+
invalid_type_error: errors == null ? void 0 : errors.invalidType
|
|
43
|
+
};
|
|
44
|
+
type._def.errorMap = (iss, ctx) => {
|
|
45
|
+
if (iss.code !== "invalid_type")
|
|
46
|
+
return { message: ctx.defaultError };
|
|
47
|
+
if (ctx.data === void 0) {
|
|
48
|
+
return { message: required_error != null ? required_error : ctx.defaultError };
|
|
49
|
+
}
|
|
50
|
+
return { message: invalid_type_error != null ? invalid_type_error : ctx.defaultError };
|
|
51
|
+
};
|
|
39
52
|
column.chain.forEach((item) => {
|
|
40
53
|
if (item[0] === "transform") {
|
|
41
54
|
type = type.transform(item[1]);
|
|
42
55
|
} else if (item[0] === "to") {
|
|
43
56
|
type = zod.z.preprocess(item[1], itemToZod(item[2]));
|
|
44
57
|
} else if (item[0] === "refine") {
|
|
45
|
-
type = type.refine(item[1]);
|
|
58
|
+
type = type.refine(item[1], { message: errors == null ? void 0 : errors.refine });
|
|
46
59
|
} else if (item[0] === "superRefine") {
|
|
47
60
|
type = type.superRefine(item[1]);
|
|
48
61
|
}
|
|
@@ -71,57 +84,85 @@ const stringParams = [
|
|
|
71
84
|
"max",
|
|
72
85
|
"length",
|
|
73
86
|
"regex",
|
|
87
|
+
"includes",
|
|
74
88
|
"startsWith",
|
|
75
89
|
"endsWith"
|
|
76
90
|
];
|
|
77
|
-
const stringEmptyParams = [
|
|
78
|
-
|
|
91
|
+
const stringEmptyParams = [
|
|
92
|
+
"email",
|
|
93
|
+
"url",
|
|
94
|
+
"emoji",
|
|
95
|
+
"uuid",
|
|
96
|
+
"cuid",
|
|
97
|
+
"cuid2",
|
|
98
|
+
"ulid",
|
|
99
|
+
"trim",
|
|
100
|
+
"toLowerCase",
|
|
101
|
+
"toUpperCase"
|
|
102
|
+
];
|
|
103
|
+
const stringObjectParams = ["datetime", "ip"];
|
|
104
|
+
const handleString = typeHandler((column, errors) => {
|
|
79
105
|
let type = zod.z.string();
|
|
80
106
|
const data = column.data;
|
|
81
107
|
stringParams.forEach((key) => {
|
|
82
108
|
const value = data[key];
|
|
83
109
|
if (value !== void 0) {
|
|
84
|
-
type = type[key](value);
|
|
110
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
85
111
|
}
|
|
86
112
|
});
|
|
87
113
|
stringEmptyParams.forEach((key) => {
|
|
88
114
|
const value = data[key];
|
|
89
115
|
if (value) {
|
|
90
|
-
type = type[key]();
|
|
116
|
+
type = type[key]({ message: errors == null ? void 0 : errors[key] });
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
stringObjectParams.forEach((key) => {
|
|
120
|
+
const value = data[key];
|
|
121
|
+
if (value) {
|
|
122
|
+
type = type[key](value);
|
|
91
123
|
}
|
|
92
124
|
});
|
|
93
125
|
const { maxChars } = data;
|
|
94
126
|
if (maxChars !== void 0) {
|
|
95
|
-
type = type.length(maxChars);
|
|
127
|
+
type = type.length(maxChars, { message: errors == null ? void 0 : errors.length });
|
|
96
128
|
}
|
|
97
129
|
return type;
|
|
98
130
|
});
|
|
99
|
-
const numberParams = ["lt", "lte", "gt", "gte", "
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
131
|
+
const numberParams = ["lt", "lte", "gt", "gte", "step"];
|
|
132
|
+
const numberEmptyParams = ["finite", "safe"];
|
|
133
|
+
const handleNumber = typeHandler(
|
|
134
|
+
(column, errors) => {
|
|
135
|
+
let type = zod.z.number();
|
|
136
|
+
numberParams.forEach((key) => {
|
|
137
|
+
const value = column.data[key];
|
|
138
|
+
if (value !== void 0) {
|
|
139
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
numberEmptyParams.forEach((key) => {
|
|
143
|
+
const value = column.data[key];
|
|
144
|
+
if (value) {
|
|
145
|
+
type = type[key]({ message: errors == null ? void 0 : errors[key] });
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
if (column.data.int) {
|
|
149
|
+
type = type.int({ message: errors == null ? void 0 : errors.int });
|
|
106
150
|
}
|
|
107
|
-
|
|
108
|
-
if (column.data.int) {
|
|
109
|
-
type = type.int();
|
|
151
|
+
return type;
|
|
110
152
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const handleBigInt = typeHandler(() => {
|
|
153
|
+
);
|
|
154
|
+
const handleBigInt = typeHandler((_, errors) => {
|
|
114
155
|
return zod.z.string().refine(
|
|
115
156
|
(value) => {
|
|
116
157
|
try {
|
|
117
158
|
BigInt(value);
|
|
118
159
|
return true;
|
|
119
|
-
} catch (
|
|
160
|
+
} catch (_2) {
|
|
120
161
|
return false;
|
|
121
162
|
}
|
|
122
163
|
},
|
|
123
164
|
{
|
|
124
|
-
message: "Failed to parse bigint"
|
|
165
|
+
message: (errors == null ? void 0 : errors.invalidType) || "Failed to parse bigint"
|
|
125
166
|
}
|
|
126
167
|
);
|
|
127
168
|
});
|
|
@@ -129,12 +170,12 @@ const handleBuffer = typeHandler(() => {
|
|
|
129
170
|
return zod.z.instanceof(node_buffer.Buffer);
|
|
130
171
|
});
|
|
131
172
|
const dateParams = ["min", "max"];
|
|
132
|
-
const handleDate = typeHandler((column) => {
|
|
173
|
+
const handleDate = typeHandler((column, errors) => {
|
|
133
174
|
let type = zod.z.date();
|
|
134
175
|
dateParams.forEach((key) => {
|
|
135
176
|
const value = column.data[key];
|
|
136
177
|
if (value !== void 0) {
|
|
137
|
-
type = type[key](value);
|
|
178
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
138
179
|
}
|
|
139
180
|
});
|
|
140
181
|
return zod.z.preprocess(
|
|
@@ -142,13 +183,13 @@ const handleDate = typeHandler((column) => {
|
|
|
142
183
|
type
|
|
143
184
|
);
|
|
144
185
|
});
|
|
145
|
-
const handleTime = typeHandler(() => {
|
|
186
|
+
const handleTime = typeHandler((_, errors) => {
|
|
146
187
|
return zod.z.string().refine(
|
|
147
188
|
(val) => {
|
|
148
189
|
return !isNaN(new Date(`2000-01-01 ${val}`).getTime());
|
|
149
190
|
},
|
|
150
191
|
{
|
|
151
|
-
message: "Invalid time"
|
|
192
|
+
message: (errors == null ? void 0 : errors.invalidType) || "Invalid time"
|
|
152
193
|
}
|
|
153
194
|
);
|
|
154
195
|
});
|
|
@@ -159,25 +200,21 @@ const interval = zod.z.object({
|
|
|
159
200
|
hours: zod.z.number().optional(),
|
|
160
201
|
seconds: zod.z.number().optional()
|
|
161
202
|
}).strict();
|
|
162
|
-
const handleInterval = typeHandler(() =>
|
|
163
|
-
|
|
164
|
-
});
|
|
165
|
-
const handleBoolean = typeHandler(() => {
|
|
166
|
-
return zod.z.boolean();
|
|
167
|
-
});
|
|
203
|
+
const handleInterval = typeHandler(() => interval);
|
|
204
|
+
const handleBoolean = typeHandler(() => zod.z.boolean());
|
|
168
205
|
const handleEnum = typeHandler((column) => {
|
|
169
206
|
const enumColumn = column;
|
|
170
207
|
return zod.z.enum(enumColumn.options);
|
|
171
208
|
});
|
|
172
|
-
const handleBitString = typeHandler(() => {
|
|
173
|
-
return zod.z.string().regex(/[10]/g);
|
|
209
|
+
const handleBitString = typeHandler((_, errors) => {
|
|
210
|
+
return zod.z.string().regex(/[10]/g, { message: errors == null ? void 0 : errors.invalidType });
|
|
174
211
|
});
|
|
175
|
-
const handleUUID = typeHandler(() => {
|
|
176
|
-
return zod.z.string().uuid();
|
|
212
|
+
const handleUUID = typeHandler((_, errors) => {
|
|
213
|
+
return zod.z.string().uuid({ message: errors == null ? void 0 : errors.invalidType });
|
|
177
214
|
});
|
|
178
215
|
const arrayParams = ["min", "max", "length"];
|
|
179
216
|
const handleArray = typeHandler(
|
|
180
|
-
(array) => {
|
|
217
|
+
(array, errors) => {
|
|
181
218
|
let type;
|
|
182
219
|
if ("element" in array) {
|
|
183
220
|
type = zod.z.array(jsonItemToZod(array.element));
|
|
@@ -187,7 +224,7 @@ const handleArray = typeHandler(
|
|
|
187
224
|
arrayParams.forEach((key) => {
|
|
188
225
|
const value = array.data[key];
|
|
189
226
|
if (value !== void 0) {
|
|
190
|
-
type = type[key](value);
|
|
227
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
191
228
|
}
|
|
192
229
|
});
|
|
193
230
|
return type;
|
|
@@ -195,6 +232,7 @@ const handleArray = typeHandler(
|
|
|
195
232
|
);
|
|
196
233
|
const handleJson = typeHandler((column) => {
|
|
197
234
|
const type = column.data.schema;
|
|
235
|
+
column.data.errors = column.data.schema.data.errors;
|
|
198
236
|
return jsonItemToZod(type);
|
|
199
237
|
});
|
|
200
238
|
const jsonItemToZod = (type) => {
|
|
@@ -250,31 +288,15 @@ const converters = {
|
|
|
250
288
|
array: handleArray,
|
|
251
289
|
jsonb: handleJson
|
|
252
290
|
};
|
|
253
|
-
const handleAny = typeHandler(() =>
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const
|
|
260
|
-
return zod.z.never();
|
|
261
|
-
});
|
|
262
|
-
const handleNull = typeHandler(() => {
|
|
263
|
-
return zod.z.null();
|
|
264
|
-
});
|
|
265
|
-
const handleUndefined = typeHandler(() => {
|
|
266
|
-
return zod.z.undefined();
|
|
267
|
-
});
|
|
268
|
-
const handleUnknown = typeHandler(() => {
|
|
269
|
-
return zod.z.unknown();
|
|
270
|
-
});
|
|
271
|
-
const handleVoid = typeHandler(() => {
|
|
272
|
-
return zod.z.void();
|
|
273
|
-
});
|
|
291
|
+
const handleAny = typeHandler(() => zod.z.any());
|
|
292
|
+
const handleNaN = typeHandler(() => zod.z.nan());
|
|
293
|
+
const handleNever = typeHandler(() => zod.z.never());
|
|
294
|
+
const handleNull = typeHandler(() => zod.z.null());
|
|
295
|
+
const handleUndefined = typeHandler(() => zod.z.undefined());
|
|
296
|
+
const handleUnknown = typeHandler(() => zod.z.unknown());
|
|
297
|
+
const handleVoid = typeHandler(() => zod.z.void());
|
|
274
298
|
const handleInstanceOf = typeHandler(
|
|
275
|
-
(type) =>
|
|
276
|
-
return zod.z.instanceof(type.class);
|
|
277
|
-
}
|
|
299
|
+
(type) => zod.z.instanceof(type.class)
|
|
278
300
|
);
|
|
279
301
|
const handleLiteral = typeHandler((type) => {
|
|
280
302
|
return zod.z.literal(type.value);
|
|
@@ -284,13 +306,13 @@ const handleMap = typeHandler((type) => {
|
|
|
284
306
|
return zod.z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));
|
|
285
307
|
});
|
|
286
308
|
const setParams = ["min", "max", "size"];
|
|
287
|
-
const handleSet = typeHandler((column) => {
|
|
309
|
+
const handleSet = typeHandler((column, errors) => {
|
|
288
310
|
const { valueType } = column;
|
|
289
311
|
let type = zod.z.set(jsonItemToZod(valueType));
|
|
290
312
|
setParams.forEach((key) => {
|
|
291
313
|
const value = column.data[key];
|
|
292
314
|
if (value !== void 0) {
|
|
293
|
-
type = type[key](value);
|
|
315
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
294
316
|
}
|
|
295
317
|
});
|
|
296
318
|
return type;
|
|
@@ -308,7 +330,7 @@ const handleTuple = typeHandler((column) => {
|
|
|
308
330
|
return type;
|
|
309
331
|
});
|
|
310
332
|
const handleObject = typeHandler(
|
|
311
|
-
(type) => {
|
|
333
|
+
(type, errors) => {
|
|
312
334
|
const shape = {};
|
|
313
335
|
for (const key in type.shape) {
|
|
314
336
|
shape[key] = jsonItemToZod(type.shape[key]);
|
|
@@ -317,7 +339,7 @@ const handleObject = typeHandler(
|
|
|
317
339
|
if (type.unknownKeys === "passthrough") {
|
|
318
340
|
object = object.passthrough();
|
|
319
341
|
} else if (type.unknownKeys === "strict") {
|
|
320
|
-
object = object.strict();
|
|
342
|
+
object = object.strict(errors == null ? void 0 : errors.strict);
|
|
321
343
|
}
|
|
322
344
|
if (type.catchAllType) {
|
|
323
345
|
object = object.catchall(jsonItemToZod(type.catchAllType));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {\n ArrayColumn,\n ColumnsShape,\n ColumnType,\n DateColumn,\n EnumColumn,\n JSONColumn,\n NumberColumn,\n TextColumn,\n VirtualColumn,\n} from 'pqb';\nimport {\n JSONTypeAny,\n Primitive,\n JSONArray,\n JSONEnum,\n JSONInstanceOf,\n JSONLiteral,\n JSONMap,\n EnumLike,\n JSONNativeEnum,\n JSONDate,\n JSONNumber,\n JSONString,\n JSONSet,\n JSONTuple,\n JSONObject,\n UnknownKeysParam,\n JSONDiscriminatedObject,\n JSONDiscriminatedUnion,\n JSONRecord,\n JSONRecordKeyType,\n JSONIntersection,\n JSONUnion,\n JSONLazy,\n} from 'orchid-core';\nimport { z, ZodTypeAny } from 'zod';\nimport { Buffer } from 'node:buffer';\n\ntype NumberType =\n | 'smallint'\n | 'integer'\n | 'real'\n | 'smallserial'\n | 'serial'\n | 'money';\n\ntype BigIntType =\n | 'bigint'\n | 'numeric'\n | 'decimal'\n | 'double precision'\n | 'bigserial';\n\ntype StringType = 'varchar' | 'char' | 'text' | 'string' | 'xml' | 'json';\n\ntype DateTimeType = 'date' | 'timestamp' | 'timestamp with time zone';\n\ntype TimeType = 'time' | 'time with time zone';\n\ntype GeometryType =\n | 'point'\n | 'line'\n | 'lseg'\n | 'box'\n | 'path'\n | 'polygon'\n | 'circle';\n\ntype NetworkType = 'cidr' | 'inet' | 'macaddr' | 'macaddr8';\n\ntype BitStringType = 'bit' | 'bit varying';\n\ntype FullTextSearchType = 'tsvector' | 'tsquery';\n\ntype UUIDType = 'uuid';\n\ntype ByteaType = 'bytea';\n\ntype SchemaToZod<\n T extends ColumnType,\n D = T['dataType'],\n> = T['data']['isNullable'] extends true\n ? z.ZodNullable<\n SchemaToZod<\n Omit<T, 'data'> & {\n data: Omit<T['data'], 'isNullable'> & { isNullable: false };\n }\n >\n >\n : D extends NumberType\n ? z.ZodNumber\n : D extends\n | BigIntType\n | StringType\n | TimeType\n | GeometryType\n | NetworkType\n | BitStringType\n | FullTextSearchType\n | UUIDType\n ? z.ZodString\n : D extends ByteaType\n ? z.ZodType<Buffer>\n : D extends DateTimeType\n ? z.ZodDate\n : D extends 'interval'\n ? typeof interval\n : D extends 'boolean'\n ? z.ZodBoolean\n : T extends EnumColumn<string, infer U>\n ? z.ZodEnum<U>\n : T extends ArrayColumn<infer U>\n ? z.ZodArray<SchemaToZod<U>>\n : T extends JSONColumn\n ? JsonToZod<T['data']['schema']>\n : T extends VirtualColumn\n ? z.ZodNever\n : never;\n\ntype JsonToZod<T extends JSONTypeAny, D = T['dataType']> = T extends {\n types: [JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]];\n}\n ? z.ZodUnion<MapJsonTuple<T['types']>>\n : T['data'] extends {\n nullable: true;\n }\n ? T['data'] extends { optional: true }\n ? z.ZodNullable<\n z.ZodOptional<\n JsonToZod<\n Omit<T, 'data'> & { data: Omit<T['data'], 'nullable' | 'optional'> }\n >\n >\n >\n : z.ZodNullable<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'nullable'> }>\n >\n : T['data'] extends { optional: true }\n ? z.ZodOptional<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'optional'> }>\n >\n : D extends 'bigint'\n ? z.ZodString\n : D extends 'boolean'\n ? z.ZodBoolean\n : D extends 'date'\n ? z.ZodDate\n : D extends 'nan'\n ? z.ZodNaN\n : D extends 'never'\n ? z.ZodNever\n : D extends 'null'\n ? z.ZodNull\n : D extends 'number'\n ? z.ZodNumber\n : D extends 'string'\n ? z.ZodString\n : D extends 'undefined'\n ? z.ZodUndefined\n : D extends 'unknown'\n ? z.ZodUnknown\n : D extends 'void'\n ? z.ZodVoid\n : T extends JSONArray<infer U>\n ? z.ZodArray<JsonToZod<U>>\n : T extends JSONEnum<string, infer U>\n ? z.ZodEnum<U>\n : T extends JSONInstanceOf<infer U>\n ? z.ZodType<InstanceType<U>, z.ZodTypeDef, InstanceType<U>>\n : T extends JSONLiteral<infer U>\n ? z.ZodLiteral<U>\n : T extends JSONMap<infer K, infer V>\n ? z.ZodMap<JsonToZod<K>, JsonToZod<V>>\n : T extends JSONSet<infer U>\n ? z.ZodSet<JsonToZod<U>>\n : T extends JSONNativeEnum<infer U>\n ? z.ZodNativeEnum<U>\n : T extends JSONTuple<infer U, infer R>\n ? z.ZodTuple<MapJsonTuple<U>, R extends JSONTypeAny ? JsonToZod<R> : null>\n : T extends JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>\n ? z.ZodObject<\n { [K in keyof T['shape']]: JsonToZod<T['shape'][K]> },\n T['unknownKeys'],\n JsonToZod<T['catchAllType']>\n >\n : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny>\n ? z.ZodRecord<\n JsonToZod<T['keyType']> extends z.ZodType<\n string | number | symbol,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >\n ? JsonToZod<T['keyType']>\n : never,\n JsonToZod<T['valueType']>\n >\n : T extends JSONIntersection<JSONTypeAny, JSONTypeAny>\n ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>>\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends JSONDiscriminatedUnion<string, Primitive, any>\n ? z.ZodDiscriminatedUnion<\n T['discriminator'],\n T['discriminatorValue'],\n JsonToZod<T['_option']> extends z.ZodDiscriminatedUnionOption<\n T['discriminator'],\n T['discriminatorValue']\n >\n ? JsonToZod<T['_option']>\n : never\n >\n : D extends 'any'\n ? z.ZodTypeAny\n : z.ZodType<T['type']>;\n\ntype MapJsonTuple<T extends unknown[]> = T extends [infer Head, ...infer Tail]\n ? [Head extends JSONTypeAny ? JsonToZod<Head> : never, ...MapJsonTuple<Tail>]\n : [];\n\nexport type TableToZod<\n T extends new () => { columns: { shape: ColumnsShape } },\n> = InstanceToZod<InstanceType<T>['columns']>;\n\nexport const tableToZod = <\n T extends new () => { columns: { shape: ColumnsShape } },\n>(\n table: T,\n): TableToZod<T> => {\n return instanceToZod(new table().columns) as unknown as TableToZod<T>;\n};\n\nexport type InstanceToZod<T extends { shape: ColumnsShape }> = z.ZodObject<{\n [K in keyof T['shape']]: SchemaToZod<T['shape'][K]>;\n}>;\n\nexport const instanceToZod = <T extends { shape: ColumnsShape }>({\n shape,\n}: T): InstanceToZod<T> => {\n const result = {} as z.ZodRawShape;\n for (const key in shape) {\n const column = shape[key];\n if (!(column instanceof VirtualColumn)) {\n result[key as keyof typeof result] = columnToZod(column);\n }\n }\n return z.object(result) as InstanceToZod<T>;\n};\n\nexport const columnToZod = <T extends ColumnType>(\n column: T,\n): SchemaToZod<T> => {\n const dataType = column.data.as?.dataType || column.dataType;\n const converter = converters[dataType];\n if (!converter) {\n if (column instanceof VirtualColumn) {\n return handleNever(column) as SchemaToZod<T>;\n }\n throw new Error(`Cannot parse column ${dataType}`);\n }\n return converter(column) as SchemaToZod<T>;\n};\n\nconst typeHandler = <Type extends ColumnType | JSONTypeAny>(\n fn: (column: Type) => z.ZodTypeAny,\n) => {\n return (column: ColumnType | JSONTypeAny) => {\n let type = fn(column as Type);\n\n column.chain.forEach((item) => {\n if (item[0] === 'transform') {\n type = type.transform(item[1]);\n } else if (item[0] === 'to') {\n type = z.preprocess(item[1], itemToZod(item[2]));\n } else if (item[0] === 'refine') {\n type = type.refine(item[1]);\n } else if (item[0] === 'superRefine') {\n type = type.superRefine(item[1]);\n }\n });\n\n if (\n ('nullable' in column.data && column.data.nullable) ||\n (column as ColumnType).data.isNullable\n ) {\n if ('optional' in column.data && column.data.optional) {\n type = type.nullish();\n } else {\n type = type.nullable();\n }\n } else if ('optional' in column.data && column.data.optional) {\n type = type.optional();\n }\n\n if (column instanceof ColumnType) {\n if (column.data.validationDefault !== undefined) {\n type = type.default(column.data.validationDefault);\n }\n } else if (column.data.default !== undefined) {\n type = type.default(column.data.default);\n }\n\n return type;\n };\n};\n\nconst stringParams = [\n 'min',\n 'max',\n 'length',\n 'regex',\n 'startsWith',\n 'endsWith',\n];\nconst stringEmptyParams = ['email', 'url', 'uuid', 'cuid', 'trim'];\nconst handleString = typeHandler((column: TextColumn | JSONString) => {\n let type = z.string();\n const data = column.data;\n\n stringParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<string, (value: unknown) => z.ZodString>\n )[key](value);\n }\n });\n\n stringEmptyParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = (type as unknown as Record<string, () => z.ZodString>)[key]();\n }\n });\n\n const { maxChars } = data as { maxChars?: number };\n if (maxChars !== undefined) {\n type = (\n type as unknown as Record<string, (len: number) => z.ZodString>\n ).length(maxChars);\n }\n\n return type;\n});\n\nconst numberParams = ['lt', 'lte', 'gt', 'gte', 'multipleOf'];\nconst handleNumber = typeHandler((column: NumberColumn | JSONNumber) => {\n let type = z.number();\n numberParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<string, (value: unknown) => z.ZodNumber>\n )[key](value);\n }\n });\n if ((column.data as Record<string, boolean>).int) {\n type = type.int();\n }\n return type;\n});\n\nconst handleBigInt = typeHandler(() => {\n return z.string().refine(\n (value) => {\n try {\n BigInt(value);\n return true;\n } catch (_) {\n return false;\n }\n },\n {\n message: 'Failed to parse bigint',\n },\n );\n});\n\nconst handleBuffer = typeHandler(() => {\n return z.instanceof(Buffer);\n});\n\nconst dateParams = ['min', 'max'];\nconst handleDate = typeHandler((column: DateColumn | JSONDate) => {\n let type = z.date();\n dateParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (type as unknown as Record<string, (value: unknown) => z.ZodDate>)[\n key\n ](value);\n }\n });\n\n return z.preprocess(\n (val) => (typeof val === 'string' ? new Date(val) : val),\n type,\n );\n});\n\nconst handleTime = typeHandler(() => {\n return z.string().refine(\n (val) => {\n return !isNaN(new Date(`2000-01-01 ${val}`).getTime());\n },\n {\n message: 'Invalid time',\n },\n );\n});\n\nconst interval = z\n .object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n seconds: z.number().optional(),\n })\n .strict();\n\nconst handleInterval = typeHandler(() => {\n return interval;\n});\n\nconst handleBoolean = typeHandler(() => {\n return z.boolean();\n});\n\nconst handleEnum = typeHandler((column: EnumColumn | JSONEnum) => {\n const enumColumn = column as\n | EnumColumn<string, [string, ...string[]]>\n | JSONEnum<string, [string, ...string[]]>;\n return z.enum(enumColumn.options);\n});\n\nconst handleBitString = typeHandler(() => {\n return z.string().regex(/[10]/g);\n});\n\nconst handleUUID = typeHandler(() => {\n return z.string().uuid();\n});\n\nconst arrayParams = ['min', 'max', 'length'];\nconst handleArray = typeHandler(\n (array: ArrayColumn<ColumnType> | JSONArray<JSONTypeAny>) => {\n let type: z.ZodArray<z.ZodTypeAny>;\n if ('element' in array) {\n type = z.array(jsonItemToZod(array.element));\n } else {\n type = z.array(columnToZod(array.data.item));\n }\n\n arrayParams.forEach((key) => {\n const value = (array.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<\n string,\n (value: unknown) => z.ZodArray<z.ZodTypeAny>\n >\n )[key](value);\n }\n });\n\n return type;\n },\n);\n\nconst handleJson = typeHandler((column: JSONColumn) => {\n const type = column.data.schema;\n return jsonItemToZod(type);\n});\n\nconst jsonItemToZod = (type: JSONTypeAny) => {\n const converter = jsonConverters[type.dataType];\n if (!converter) throw new Error(`Cannot parse column ${type.dataType}`);\n return converter(type);\n};\n\nconst itemToZod = (item: ColumnType | JSONTypeAny) => {\n return item instanceof ColumnType ? columnToZod(item) : jsonItemToZod(item);\n};\n\nconst converters: Record<string, (column: ColumnType) => z.ZodType> = {\n varchar: handleString,\n char: handleString,\n text: handleString,\n smallint: handleNumber,\n integer: handleNumber,\n real: handleNumber,\n smallserial: handleNumber,\n serial: handleNumber,\n money: handleNumber,\n bigint: handleBigInt,\n decimal: handleBigInt,\n 'double precision': handleBigInt,\n bigserial: handleBigInt,\n bytea: handleBuffer,\n date: handleDate,\n timestamp: handleDate,\n 'timestamp with time zone': handleDate,\n time: handleTime,\n 'time with time zone': handleTime,\n interval: handleInterval,\n boolean: handleBoolean,\n enum: handleEnum,\n point: handleString,\n line: handleString,\n lseg: handleString,\n box: handleString,\n path: handleString,\n polygon: handleString,\n circle: handleString,\n cidr: handleString,\n inet: handleString,\n macaddr: handleString,\n macaddr8: handleString,\n bit: handleBitString,\n 'bit varying': handleBitString,\n tsvector: handleString,\n tsquery: handleString,\n xml: handleString,\n json: handleString,\n uuid: handleUUID,\n array: handleArray,\n jsonb: handleJson,\n};\n\nconst handleAny = typeHandler(() => {\n return z.any();\n});\n\nconst handleNaN = typeHandler(() => {\n return z.nan();\n});\n\nconst handleNever = typeHandler(() => {\n return z.never();\n});\n\nconst handleNull = typeHandler(() => {\n return z.null();\n});\n\nconst handleUndefined = typeHandler(() => {\n return z.undefined();\n});\n\nconst handleUnknown = typeHandler(() => {\n return z.unknown();\n});\n\nconst handleVoid = typeHandler(() => {\n return z.void();\n});\n\nconst handleInstanceOf = typeHandler(\n (type: JSONInstanceOf<new () => unknown>) => {\n return z.instanceof(type.class);\n },\n);\n\nconst handleLiteral = typeHandler((type: JSONTypeAny) => {\n return z.literal((type as JSONLiteral<string>).value);\n});\n\nconst handleMap = typeHandler((type: JSONMap<JSONTypeAny, JSONTypeAny>) => {\n const { keyType, valueType } = type;\n return z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));\n});\n\nconst setParams = ['min', 'max', 'size'];\nconst handleSet = typeHandler((column: JSONSet<JSONTypeAny>) => {\n const { valueType } = column;\n let type = z.set(jsonItemToZod(valueType));\n setParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<\n string,\n (value: unknown) => z.ZodSet<z.ZodTypeAny>\n >\n )[key](value);\n }\n });\n return type;\n});\n\nconst handleNativeEnum = typeHandler((type: JSONTypeAny) => {\n return z.nativeEnum((type as JSONNativeEnum<EnumLike>).enum);\n});\n\nconst handleTuple = typeHandler((column: JSONTuple) => {\n let type: z.ZodTuple<[], ZodTypeAny | null> = z.tuple(\n column.items.map((item) => jsonItemToZod(item)) as [],\n );\n if (column.restType) {\n type = type.rest(jsonItemToZod(column.restType));\n }\n return type;\n});\n\nconst handleObject = typeHandler(\n (type: JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>) => {\n const shape: Record<string, z.ZodTypeAny> = {};\n for (const key in type.shape) {\n shape[key] = jsonItemToZod(type.shape[key]);\n }\n\n let object: z.ZodObject<z.ZodRawShape, UnknownKeysParam, z.ZodTypeAny> =\n z.object(shape);\n\n if (type.unknownKeys === 'passthrough') {\n object = object.passthrough();\n } else if (type.unknownKeys === 'strict') {\n object = object.strict();\n }\n\n if (type.catchAllType) {\n object = object.catchall(jsonItemToZod(type.catchAllType));\n }\n\n return object;\n },\n);\n\nconst handleRecord = typeHandler(\n (type: JSONRecord<JSONRecordKeyType, JSONTypeAny>) => {\n return z.record(jsonItemToZod(type.keyType), jsonItemToZod(type.valueType));\n },\n);\n\nconst handleUnion = typeHandler(\n (type: JSONUnion<[JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]]>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return z.union(type.types.map(jsonItemToZod) as any);\n },\n);\n\nconst handleIntersection = typeHandler(\n (type: JSONIntersection<JSONTypeAny, JSONTypeAny>) => {\n return z.intersection(jsonItemToZod(type.left), jsonItemToZod(type.right));\n },\n);\n\nconst handleDiscriminatedUnion = typeHandler(\n (\n type: JSONDiscriminatedUnion<\n string,\n Primitive,\n JSONDiscriminatedObject<string, Primitive>\n >,\n ) => {\n return z.discriminatedUnion(\n type.discriminator,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [...type.options.values()].map(jsonItemToZod) as any,\n );\n },\n);\n\nconst handleLazy = typeHandler((type: JSONLazy<JSONTypeAny>) => {\n return z.lazy(() => jsonItemToZod(type.getter()));\n});\n\nconst jsonConverters: Record<string, (type: JSONTypeAny) => z.ZodType> = {\n any: handleAny,\n bigint: handleBigInt,\n boolean: handleBoolean,\n date: handleDate,\n nan: handleNaN,\n never: handleNever,\n null: handleNull,\n number: handleNumber,\n string: handleString,\n undefined: handleUndefined,\n unknown: handleUnknown,\n void: handleVoid,\n array: handleArray,\n enum: handleEnum,\n instanceOf: handleInstanceOf,\n literal: handleLiteral,\n map: handleMap,\n set: handleSet,\n nativeEnum: handleNativeEnum,\n tuple: handleTuple,\n object: handleObject,\n record: handleRecord,\n union: handleUnion,\n intersection: handleIntersection,\n discriminatedUnion: handleDiscriminatedUnion,\n lazy: handleLazy,\n};\n"],"names":["VirtualColumn","z","ColumnType","Buffer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/main.ts"],"sourcesContent":["import {\n ArrayColumn,\n ColumnsShape,\n ColumnType,\n DateColumn,\n EnumColumn,\n JSONColumn,\n NumberColumn,\n TextColumn,\n VirtualColumn,\n} from 'pqb';\nimport {\n JSONTypeAny,\n Primitive,\n JSONArray,\n JSONEnum,\n JSONInstanceOf,\n JSONLiteral,\n JSONMap,\n EnumLike,\n JSONNativeEnum,\n JSONDate,\n JSONNumber,\n JSONString,\n JSONSet,\n JSONTuple,\n JSONObject,\n UnknownKeysParam,\n JSONDiscriminatedObject,\n JSONDiscriminatedUnion,\n JSONRecord,\n JSONRecordKeyType,\n JSONIntersection,\n JSONUnion,\n JSONLazy,\n EmptyObject,\n} from 'orchid-core';\nimport { z, ZodErrorMap, ZodTypeAny } from 'zod';\nimport { Buffer } from 'node:buffer';\n\ntype NumberType =\n | 'smallint'\n | 'integer'\n | 'real'\n | 'smallserial'\n | 'serial'\n | 'money';\n\ntype BigIntType =\n | 'bigint'\n | 'numeric'\n | 'decimal'\n | 'double precision'\n | 'bigserial';\n\ntype StringType = 'varchar' | 'char' | 'text' | 'string' | 'xml' | 'json';\n\ntype DateTimeType = 'date' | 'timestamp' | 'timestamp with time zone';\n\ntype TimeType = 'time' | 'time with time zone';\n\ntype GeometryType =\n | 'point'\n | 'line'\n | 'lseg'\n | 'box'\n | 'path'\n | 'polygon'\n | 'circle';\n\ntype NetworkType = 'cidr' | 'inet' | 'macaddr' | 'macaddr8';\n\ntype BitStringType = 'bit' | 'bit varying';\n\ntype FullTextSearchType = 'tsvector' | 'tsquery';\n\ntype UUIDType = 'uuid';\n\ntype ByteaType = 'bytea';\n\ntype SchemaToZod<\n T extends ColumnType,\n D = T['dataType'],\n> = T['data']['isNullable'] extends true\n ? z.ZodNullable<\n SchemaToZod<\n Omit<T, 'data'> & {\n data: Omit<T['data'], 'isNullable'> & { isNullable: false };\n }\n >\n >\n : D extends NumberType\n ? z.ZodNumber\n : D extends\n | BigIntType\n | StringType\n | TimeType\n | GeometryType\n | NetworkType\n | BitStringType\n | FullTextSearchType\n | UUIDType\n ? z.ZodString\n : D extends ByteaType\n ? z.ZodType<Buffer>\n : D extends DateTimeType\n ? z.ZodDate\n : D extends 'interval'\n ? typeof interval\n : D extends 'boolean'\n ? z.ZodBoolean\n : T extends EnumColumn<string, infer U>\n ? z.ZodEnum<U>\n : T extends ArrayColumn<infer U>\n ? z.ZodArray<SchemaToZod<U>>\n : T extends JSONColumn\n ? JsonToZod<T['data']['schema']>\n : T extends VirtualColumn\n ? z.ZodNever\n : never;\n\ntype JsonToZod<T extends JSONTypeAny, D = T['dataType']> = T extends {\n types: [JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]];\n}\n ? z.ZodUnion<MapJsonTuple<T['types']>>\n : T['data'] extends {\n nullable: true;\n }\n ? T['data'] extends { optional: true }\n ? z.ZodNullable<\n z.ZodOptional<\n JsonToZod<\n Omit<T, 'data'> & { data: Omit<T['data'], 'nullable' | 'optional'> }\n >\n >\n >\n : z.ZodNullable<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'nullable'> }>\n >\n : T['data'] extends { optional: true }\n ? z.ZodOptional<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'optional'> }>\n >\n : D extends 'bigint'\n ? z.ZodString\n : D extends 'boolean'\n ? z.ZodBoolean\n : D extends 'date'\n ? z.ZodDate\n : D extends 'nan'\n ? z.ZodNaN\n : D extends 'never'\n ? z.ZodNever\n : D extends 'null'\n ? z.ZodNull\n : D extends 'number'\n ? z.ZodNumber\n : D extends 'string'\n ? z.ZodString\n : D extends 'undefined'\n ? z.ZodUndefined\n : D extends 'unknown'\n ? z.ZodUnknown\n : D extends 'void'\n ? z.ZodVoid\n : T extends JSONArray<infer U>\n ? z.ZodArray<JsonToZod<U>>\n : T extends JSONEnum<string, infer U>\n ? z.ZodEnum<U>\n : T extends JSONInstanceOf<infer U>\n ? z.ZodType<InstanceType<U>, z.ZodTypeDef, InstanceType<U>>\n : T extends JSONLiteral<infer U>\n ? z.ZodLiteral<U>\n : T extends JSONMap<infer K, infer V>\n ? z.ZodMap<JsonToZod<K>, JsonToZod<V>>\n : T extends JSONSet<infer U>\n ? z.ZodSet<JsonToZod<U>>\n : T extends JSONNativeEnum<infer U>\n ? z.ZodNativeEnum<U>\n : T extends JSONTuple<infer U, infer R>\n ? z.ZodTuple<MapJsonTuple<U>, R extends JSONTypeAny ? JsonToZod<R> : null>\n : T extends JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>\n ? z.ZodObject<\n { [K in keyof T['shape']]: JsonToZod<T['shape'][K]> },\n T['unknownKeys'],\n JsonToZod<T['catchAllType']>\n >\n : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny>\n ? z.ZodRecord<\n JsonToZod<T['keyType']> extends z.ZodType<\n string | number | symbol,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >\n ? JsonToZod<T['keyType']>\n : never,\n JsonToZod<T['valueType']>\n >\n : T extends JSONIntersection<JSONTypeAny, JSONTypeAny>\n ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>>\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends JSONDiscriminatedUnion<string, Primitive, any>\n ? MapDiscriminatedUnion<T>\n : D extends 'any'\n ? z.ZodTypeAny\n : z.ZodType<T['type']>;\n\nexport type MapDiscriminatedUnion<\n T extends JSONDiscriminatedUnion<string, Primitive, any>,\n Options = MapJsonTuple<T['_options']>,\n> = z.ZodDiscriminatedUnion<\n T['discriminator'],\n Options extends z.ZodDiscriminatedUnionOption<T['discriminator']>[]\n ? Options\n : never\n>;\n\ntype MapJsonTuple<T extends unknown[]> = T extends [infer Head, ...infer Tail]\n ? [Head extends JSONTypeAny ? JsonToZod<Head> : never, ...MapJsonTuple<Tail>]\n : [];\n\nexport type TableToZod<\n T extends new () => { columns: { shape: ColumnsShape } },\n> = InstanceToZod<InstanceType<T>['columns']>;\n\nexport const tableToZod = <\n T extends new () => { columns: { shape: ColumnsShape } },\n>(\n table: T,\n): TableToZod<T> => {\n return instanceToZod(new table().columns) as unknown as TableToZod<T>;\n};\n\nexport type InstanceToZod<T extends { shape: ColumnsShape }> = z.ZodObject<{\n [K in keyof T['shape']]: SchemaToZod<T['shape'][K]>;\n}>;\n\nexport const instanceToZod = <T extends { shape: ColumnsShape }>({\n shape,\n}: T): InstanceToZod<T> => {\n const result = {} as z.ZodRawShape;\n for (const key in shape) {\n const column = shape[key];\n if (!(column instanceof VirtualColumn)) {\n result[key as keyof typeof result] = columnToZod(column);\n }\n }\n return z.object(result) as InstanceToZod<T>;\n};\n\nexport const columnToZod = <T extends ColumnType>(\n column: T,\n): SchemaToZod<T> => {\n const dataType = column.data.as?.dataType || column.dataType;\n const converter = converters[dataType];\n if (!converter) {\n if (column instanceof VirtualColumn) {\n return handleNever(column) as SchemaToZod<T>;\n }\n throw new Error(`Cannot parse column ${dataType}`);\n }\n return converter(column) as SchemaToZod<T>;\n};\n\nconst typeHandler = <Type extends ColumnType | JSONTypeAny>(\n fn: (column: Type, errors?: Record<string, string>) => z.ZodTypeAny,\n) => {\n return (column: ColumnType | JSONTypeAny) => {\n let type = fn(column as Type, column.data.errors);\n\n const { errors } = column.data;\n const { required_error, invalid_type_error } = {\n required_error: errors?.required,\n invalid_type_error: errors?.invalidType,\n };\n\n // copy-pasted from Zod source, may break in future\n type._def.errorMap = ((iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (ctx.data === undefined) {\n return { message: required_error ?? ctx.defaultError };\n }\n return { message: invalid_type_error ?? ctx.defaultError };\n }) as ZodErrorMap;\n\n column.chain.forEach((item) => {\n if (item[0] === 'transform') {\n type = type.transform(item[1]);\n } else if (item[0] === 'to') {\n type = z.preprocess(item[1], itemToZod(item[2]));\n } else if (item[0] === 'refine') {\n type = type.refine(item[1], { message: errors?.refine });\n } else if (item[0] === 'superRefine') {\n type = type.superRefine(item[1]);\n }\n });\n\n if (\n ('nullable' in column.data && column.data.nullable) ||\n (column as ColumnType).data.isNullable\n ) {\n if ('optional' in column.data && column.data.optional) {\n type = type.nullish();\n } else {\n type = type.nullable();\n }\n } else if ('optional' in column.data && column.data.optional) {\n type = type.optional();\n }\n\n if (column instanceof ColumnType) {\n if (column.data.validationDefault !== undefined) {\n type = type.default(column.data.validationDefault);\n }\n } else if (column.data.default !== undefined) {\n type = type.default(column.data.default);\n }\n\n return type;\n };\n};\n\nconst stringParams = [\n 'min',\n 'max',\n 'length',\n 'regex',\n 'includes',\n 'startsWith',\n 'endsWith',\n];\n\nconst stringEmptyParams = [\n 'email',\n 'url',\n 'emoji',\n 'uuid',\n 'cuid',\n 'cuid2',\n 'ulid',\n 'trim',\n 'toLowerCase',\n 'toUpperCase',\n];\n\nconst stringObjectParams = ['datetime', 'ip'];\n\nconst handleString = typeHandler((column: TextColumn | JSONString, errors) => {\n let type = z.string();\n const data = column.data;\n\n stringParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n stringEmptyParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'email']({ message: errors?.[key] });\n }\n });\n\n stringObjectParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'datetime'](value as EmptyObject);\n }\n });\n\n const { maxChars } = data as { maxChars?: number };\n if (maxChars !== undefined) {\n type = type.length(maxChars, { message: errors?.length });\n }\n\n return type;\n});\n\nconst numberParams = ['lt', 'lte', 'gt', 'gte', 'step'];\n\nconst numberEmptyParams = ['finite', 'safe'];\n\nconst handleNumber = typeHandler(\n (column: NumberColumn | JSONNumber, errors) => {\n let type = z.number();\n numberParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n numberEmptyParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'finite']({ message: errors?.[key] });\n }\n });\n\n if ((column.data as Record<'int', boolean>).int) {\n type = type.int({ message: errors?.int });\n }\n\n return type;\n },\n);\n\nconst handleBigInt = typeHandler((_, errors) => {\n return z.string().refine(\n (value) => {\n try {\n BigInt(value);\n return true;\n } catch (_) {\n return false;\n }\n },\n {\n message: errors?.invalidType || 'Failed to parse bigint',\n },\n );\n});\n\nconst handleBuffer = typeHandler(() => {\n return z.instanceof(Buffer);\n});\n\nconst dateParams = ['min', 'max'];\nconst handleDate = typeHandler((column: DateColumn | JSONDate, errors) => {\n let type = z.date();\n dateParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as Date, { message: errors?.[key] });\n }\n });\n\n return z.preprocess(\n (val) => (typeof val === 'string' ? new Date(val) : val),\n type,\n );\n});\n\nconst handleTime = typeHandler((_, errors) => {\n return z.string().refine(\n (val) => {\n return !isNaN(new Date(`2000-01-01 ${val}`).getTime());\n },\n {\n message: errors?.invalidType || 'Invalid time',\n },\n );\n});\n\nconst interval = z\n .object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n seconds: z.number().optional(),\n })\n .strict();\n\nconst handleInterval = typeHandler(() => interval);\n\nconst handleBoolean = typeHandler(() => z.boolean());\n\nconst handleEnum = typeHandler((column: EnumColumn | JSONEnum) => {\n const enumColumn = column as\n | EnumColumn<string, [string, ...string[]]>\n | JSONEnum<string, [string, ...string[]]>;\n return z.enum(enumColumn.options);\n});\n\nconst handleBitString = typeHandler((_, errors) => {\n return z.string().regex(/[10]/g, { message: errors?.invalidType });\n});\n\nconst handleUUID = typeHandler((_, errors) => {\n return z.string().uuid({ message: errors?.invalidType });\n});\n\nconst arrayParams = ['min', 'max', 'length'];\nconst handleArray = typeHandler(\n (array: ArrayColumn<ColumnType> | JSONArray<JSONTypeAny>, errors) => {\n let type: z.ZodArray<z.ZodTypeAny>;\n if ('element' in array) {\n type = z.array(jsonItemToZod(array.element));\n } else {\n type = z.array(columnToZod(array.data.item));\n }\n\n arrayParams.forEach((key) => {\n const value = (array.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n return type;\n },\n);\n\nconst handleJson = typeHandler((column: JSONColumn) => {\n const type = column.data.schema;\n column.data.errors = column.data.schema.data.errors;\n return jsonItemToZod(type);\n});\n\nconst jsonItemToZod = (type: JSONTypeAny) => {\n const converter = jsonConverters[type.dataType];\n if (!converter) throw new Error(`Cannot parse column ${type.dataType}`);\n return converter(type);\n};\n\nconst itemToZod = (item: ColumnType | JSONTypeAny) => {\n return item instanceof ColumnType ? columnToZod(item) : jsonItemToZod(item);\n};\n\nconst converters: Record<string, (column: ColumnType) => z.ZodType> = {\n varchar: handleString,\n char: handleString,\n text: handleString,\n smallint: handleNumber,\n integer: handleNumber,\n real: handleNumber,\n smallserial: handleNumber,\n serial: handleNumber,\n money: handleNumber,\n bigint: handleBigInt,\n decimal: handleBigInt,\n 'double precision': handleBigInt,\n bigserial: handleBigInt,\n bytea: handleBuffer,\n date: handleDate,\n timestamp: handleDate,\n 'timestamp with time zone': handleDate,\n time: handleTime,\n 'time with time zone': handleTime,\n interval: handleInterval,\n boolean: handleBoolean,\n enum: handleEnum,\n point: handleString,\n line: handleString,\n lseg: handleString,\n box: handleString,\n path: handleString,\n polygon: handleString,\n circle: handleString,\n cidr: handleString,\n inet: handleString,\n macaddr: handleString,\n macaddr8: handleString,\n bit: handleBitString,\n 'bit varying': handleBitString,\n tsvector: handleString,\n tsquery: handleString,\n xml: handleString,\n json: handleString,\n uuid: handleUUID,\n array: handleArray,\n jsonb: handleJson,\n};\n\nconst handleAny = typeHandler(() => z.any());\n\nconst handleNaN = typeHandler(() => z.nan());\n\nconst handleNever = typeHandler(() => z.never());\n\nconst handleNull = typeHandler(() => z.null());\n\nconst handleUndefined = typeHandler(() => z.undefined());\n\nconst handleUnknown = typeHandler(() => z.unknown());\n\nconst handleVoid = typeHandler(() => z.void());\n\nconst handleInstanceOf = typeHandler(\n (type: JSONInstanceOf<new () => EmptyObject>) => z.instanceof(type.class),\n);\n\nconst handleLiteral = typeHandler((type: JSONTypeAny) => {\n return z.literal((type as JSONLiteral<string>).value);\n});\n\nconst handleMap = typeHandler((type: JSONMap<JSONTypeAny, JSONTypeAny>) => {\n const { keyType, valueType } = type;\n return z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));\n});\n\nconst setParams = ['min', 'max', 'size'];\nconst handleSet = typeHandler((column: JSONSet<JSONTypeAny>, errors) => {\n const { valueType } = column;\n let type = z.set(jsonItemToZod(valueType));\n setParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n return type;\n});\n\nconst handleNativeEnum = typeHandler((type: JSONTypeAny) => {\n return z.nativeEnum((type as JSONNativeEnum<EnumLike>).enum);\n});\n\nconst handleTuple = typeHandler((column: JSONTuple) => {\n let type: z.ZodTuple<[], ZodTypeAny | null> = z.tuple(\n column.items.map((item) => jsonItemToZod(item)) as [],\n );\n if (column.restType) {\n type = type.rest(jsonItemToZod(column.restType));\n }\n return type;\n});\n\nconst handleObject = typeHandler(\n (type: JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>, errors) => {\n const shape: Record<string, z.ZodTypeAny> = {};\n for (const key in type.shape) {\n shape[key] = jsonItemToZod(type.shape[key]);\n }\n\n let object: z.ZodObject<z.ZodRawShape, UnknownKeysParam, z.ZodTypeAny> =\n z.object(shape);\n\n if (type.unknownKeys === 'passthrough') {\n object = object.passthrough();\n } else if (type.unknownKeys === 'strict') {\n object = object.strict(errors?.strict);\n }\n\n if (type.catchAllType) {\n object = object.catchall(jsonItemToZod(type.catchAllType));\n }\n\n return object;\n },\n);\n\nconst handleRecord = typeHandler(\n (type: JSONRecord<JSONRecordKeyType, JSONTypeAny>) => {\n return z.record(jsonItemToZod(type.keyType), jsonItemToZod(type.valueType));\n },\n);\n\nconst handleUnion = typeHandler(\n (type: JSONUnion<[JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]]>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return z.union(type.types.map(jsonItemToZod) as any);\n },\n);\n\nconst handleIntersection = typeHandler(\n (type: JSONIntersection<JSONTypeAny, JSONTypeAny>) => {\n return z.intersection(jsonItemToZod(type.left), jsonItemToZod(type.right));\n },\n);\n\nconst handleDiscriminatedUnion = typeHandler(\n (\n type: JSONDiscriminatedUnion<\n string,\n Primitive,\n JSONDiscriminatedObject<string, Primitive>[]\n >,\n ) => {\n return z.discriminatedUnion(\n type.discriminator,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [...type.options.values()].map(jsonItemToZod) as any,\n );\n },\n);\n\nconst handleLazy = typeHandler((type: JSONLazy<JSONTypeAny>) => {\n return z.lazy(() => jsonItemToZod(type.getter()));\n});\n\nconst jsonConverters: Record<string, (type: JSONTypeAny) => z.ZodType> = {\n any: handleAny,\n bigint: handleBigInt,\n boolean: handleBoolean,\n date: handleDate,\n nan: handleNaN,\n never: handleNever,\n null: handleNull,\n number: handleNumber,\n string: handleString,\n undefined: handleUndefined,\n unknown: handleUnknown,\n void: handleVoid,\n array: handleArray,\n enum: handleEnum,\n instanceOf: handleInstanceOf,\n literal: handleLiteral,\n map: handleMap,\n set: handleSet,\n nativeEnum: handleNativeEnum,\n tuple: handleTuple,\n object: handleObject,\n record: handleRecord,\n union: handleUnion,\n intersection: handleIntersection,\n discriminatedUnion: handleDiscriminatedUnion,\n lazy: handleLazy,\n};\n"],"names":["VirtualColumn","z","ColumnType","_","Buffer"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -31,14 +31,27 @@ const columnToZod = (column) => {
|
|
|
31
31
|
};
|
|
32
32
|
const typeHandler = (fn) => {
|
|
33
33
|
return (column) => {
|
|
34
|
-
let type = fn(column);
|
|
34
|
+
let type = fn(column, column.data.errors);
|
|
35
|
+
const { errors } = column.data;
|
|
36
|
+
const { required_error, invalid_type_error } = {
|
|
37
|
+
required_error: errors == null ? void 0 : errors.required,
|
|
38
|
+
invalid_type_error: errors == null ? void 0 : errors.invalidType
|
|
39
|
+
};
|
|
40
|
+
type._def.errorMap = (iss, ctx) => {
|
|
41
|
+
if (iss.code !== "invalid_type")
|
|
42
|
+
return { message: ctx.defaultError };
|
|
43
|
+
if (ctx.data === void 0) {
|
|
44
|
+
return { message: required_error != null ? required_error : ctx.defaultError };
|
|
45
|
+
}
|
|
46
|
+
return { message: invalid_type_error != null ? invalid_type_error : ctx.defaultError };
|
|
47
|
+
};
|
|
35
48
|
column.chain.forEach((item) => {
|
|
36
49
|
if (item[0] === "transform") {
|
|
37
50
|
type = type.transform(item[1]);
|
|
38
51
|
} else if (item[0] === "to") {
|
|
39
52
|
type = z.preprocess(item[1], itemToZod(item[2]));
|
|
40
53
|
} else if (item[0] === "refine") {
|
|
41
|
-
type = type.refine(item[1]);
|
|
54
|
+
type = type.refine(item[1], { message: errors == null ? void 0 : errors.refine });
|
|
42
55
|
} else if (item[0] === "superRefine") {
|
|
43
56
|
type = type.superRefine(item[1]);
|
|
44
57
|
}
|
|
@@ -67,57 +80,85 @@ const stringParams = [
|
|
|
67
80
|
"max",
|
|
68
81
|
"length",
|
|
69
82
|
"regex",
|
|
83
|
+
"includes",
|
|
70
84
|
"startsWith",
|
|
71
85
|
"endsWith"
|
|
72
86
|
];
|
|
73
|
-
const stringEmptyParams = [
|
|
74
|
-
|
|
87
|
+
const stringEmptyParams = [
|
|
88
|
+
"email",
|
|
89
|
+
"url",
|
|
90
|
+
"emoji",
|
|
91
|
+
"uuid",
|
|
92
|
+
"cuid",
|
|
93
|
+
"cuid2",
|
|
94
|
+
"ulid",
|
|
95
|
+
"trim",
|
|
96
|
+
"toLowerCase",
|
|
97
|
+
"toUpperCase"
|
|
98
|
+
];
|
|
99
|
+
const stringObjectParams = ["datetime", "ip"];
|
|
100
|
+
const handleString = typeHandler((column, errors) => {
|
|
75
101
|
let type = z.string();
|
|
76
102
|
const data = column.data;
|
|
77
103
|
stringParams.forEach((key) => {
|
|
78
104
|
const value = data[key];
|
|
79
105
|
if (value !== void 0) {
|
|
80
|
-
type = type[key](value);
|
|
106
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
81
107
|
}
|
|
82
108
|
});
|
|
83
109
|
stringEmptyParams.forEach((key) => {
|
|
84
110
|
const value = data[key];
|
|
85
111
|
if (value) {
|
|
86
|
-
type = type[key]();
|
|
112
|
+
type = type[key]({ message: errors == null ? void 0 : errors[key] });
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
stringObjectParams.forEach((key) => {
|
|
116
|
+
const value = data[key];
|
|
117
|
+
if (value) {
|
|
118
|
+
type = type[key](value);
|
|
87
119
|
}
|
|
88
120
|
});
|
|
89
121
|
const { maxChars } = data;
|
|
90
122
|
if (maxChars !== void 0) {
|
|
91
|
-
type = type.length(maxChars);
|
|
123
|
+
type = type.length(maxChars, { message: errors == null ? void 0 : errors.length });
|
|
92
124
|
}
|
|
93
125
|
return type;
|
|
94
126
|
});
|
|
95
|
-
const numberParams = ["lt", "lte", "gt", "gte", "
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
127
|
+
const numberParams = ["lt", "lte", "gt", "gte", "step"];
|
|
128
|
+
const numberEmptyParams = ["finite", "safe"];
|
|
129
|
+
const handleNumber = typeHandler(
|
|
130
|
+
(column, errors) => {
|
|
131
|
+
let type = z.number();
|
|
132
|
+
numberParams.forEach((key) => {
|
|
133
|
+
const value = column.data[key];
|
|
134
|
+
if (value !== void 0) {
|
|
135
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
numberEmptyParams.forEach((key) => {
|
|
139
|
+
const value = column.data[key];
|
|
140
|
+
if (value) {
|
|
141
|
+
type = type[key]({ message: errors == null ? void 0 : errors[key] });
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
if (column.data.int) {
|
|
145
|
+
type = type.int({ message: errors == null ? void 0 : errors.int });
|
|
102
146
|
}
|
|
103
|
-
|
|
104
|
-
if (column.data.int) {
|
|
105
|
-
type = type.int();
|
|
147
|
+
return type;
|
|
106
148
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const handleBigInt = typeHandler(() => {
|
|
149
|
+
);
|
|
150
|
+
const handleBigInt = typeHandler((_, errors) => {
|
|
110
151
|
return z.string().refine(
|
|
111
152
|
(value) => {
|
|
112
153
|
try {
|
|
113
154
|
BigInt(value);
|
|
114
155
|
return true;
|
|
115
|
-
} catch (
|
|
156
|
+
} catch (_2) {
|
|
116
157
|
return false;
|
|
117
158
|
}
|
|
118
159
|
},
|
|
119
160
|
{
|
|
120
|
-
message: "Failed to parse bigint"
|
|
161
|
+
message: (errors == null ? void 0 : errors.invalidType) || "Failed to parse bigint"
|
|
121
162
|
}
|
|
122
163
|
);
|
|
123
164
|
});
|
|
@@ -125,12 +166,12 @@ const handleBuffer = typeHandler(() => {
|
|
|
125
166
|
return z.instanceof(Buffer);
|
|
126
167
|
});
|
|
127
168
|
const dateParams = ["min", "max"];
|
|
128
|
-
const handleDate = typeHandler((column) => {
|
|
169
|
+
const handleDate = typeHandler((column, errors) => {
|
|
129
170
|
let type = z.date();
|
|
130
171
|
dateParams.forEach((key) => {
|
|
131
172
|
const value = column.data[key];
|
|
132
173
|
if (value !== void 0) {
|
|
133
|
-
type = type[key](value);
|
|
174
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
134
175
|
}
|
|
135
176
|
});
|
|
136
177
|
return z.preprocess(
|
|
@@ -138,13 +179,13 @@ const handleDate = typeHandler((column) => {
|
|
|
138
179
|
type
|
|
139
180
|
);
|
|
140
181
|
});
|
|
141
|
-
const handleTime = typeHandler(() => {
|
|
182
|
+
const handleTime = typeHandler((_, errors) => {
|
|
142
183
|
return z.string().refine(
|
|
143
184
|
(val) => {
|
|
144
185
|
return !isNaN(new Date(`2000-01-01 ${val}`).getTime());
|
|
145
186
|
},
|
|
146
187
|
{
|
|
147
|
-
message: "Invalid time"
|
|
188
|
+
message: (errors == null ? void 0 : errors.invalidType) || "Invalid time"
|
|
148
189
|
}
|
|
149
190
|
);
|
|
150
191
|
});
|
|
@@ -155,25 +196,21 @@ const interval = z.object({
|
|
|
155
196
|
hours: z.number().optional(),
|
|
156
197
|
seconds: z.number().optional()
|
|
157
198
|
}).strict();
|
|
158
|
-
const handleInterval = typeHandler(() =>
|
|
159
|
-
|
|
160
|
-
});
|
|
161
|
-
const handleBoolean = typeHandler(() => {
|
|
162
|
-
return z.boolean();
|
|
163
|
-
});
|
|
199
|
+
const handleInterval = typeHandler(() => interval);
|
|
200
|
+
const handleBoolean = typeHandler(() => z.boolean());
|
|
164
201
|
const handleEnum = typeHandler((column) => {
|
|
165
202
|
const enumColumn = column;
|
|
166
203
|
return z.enum(enumColumn.options);
|
|
167
204
|
});
|
|
168
|
-
const handleBitString = typeHandler(() => {
|
|
169
|
-
return z.string().regex(/[10]/g);
|
|
205
|
+
const handleBitString = typeHandler((_, errors) => {
|
|
206
|
+
return z.string().regex(/[10]/g, { message: errors == null ? void 0 : errors.invalidType });
|
|
170
207
|
});
|
|
171
|
-
const handleUUID = typeHandler(() => {
|
|
172
|
-
return z.string().uuid();
|
|
208
|
+
const handleUUID = typeHandler((_, errors) => {
|
|
209
|
+
return z.string().uuid({ message: errors == null ? void 0 : errors.invalidType });
|
|
173
210
|
});
|
|
174
211
|
const arrayParams = ["min", "max", "length"];
|
|
175
212
|
const handleArray = typeHandler(
|
|
176
|
-
(array) => {
|
|
213
|
+
(array, errors) => {
|
|
177
214
|
let type;
|
|
178
215
|
if ("element" in array) {
|
|
179
216
|
type = z.array(jsonItemToZod(array.element));
|
|
@@ -183,7 +220,7 @@ const handleArray = typeHandler(
|
|
|
183
220
|
arrayParams.forEach((key) => {
|
|
184
221
|
const value = array.data[key];
|
|
185
222
|
if (value !== void 0) {
|
|
186
|
-
type = type[key](value);
|
|
223
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
187
224
|
}
|
|
188
225
|
});
|
|
189
226
|
return type;
|
|
@@ -191,6 +228,7 @@ const handleArray = typeHandler(
|
|
|
191
228
|
);
|
|
192
229
|
const handleJson = typeHandler((column) => {
|
|
193
230
|
const type = column.data.schema;
|
|
231
|
+
column.data.errors = column.data.schema.data.errors;
|
|
194
232
|
return jsonItemToZod(type);
|
|
195
233
|
});
|
|
196
234
|
const jsonItemToZod = (type) => {
|
|
@@ -246,31 +284,15 @@ const converters = {
|
|
|
246
284
|
array: handleArray,
|
|
247
285
|
jsonb: handleJson
|
|
248
286
|
};
|
|
249
|
-
const handleAny = typeHandler(() =>
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const
|
|
256
|
-
return z.never();
|
|
257
|
-
});
|
|
258
|
-
const handleNull = typeHandler(() => {
|
|
259
|
-
return z.null();
|
|
260
|
-
});
|
|
261
|
-
const handleUndefined = typeHandler(() => {
|
|
262
|
-
return z.undefined();
|
|
263
|
-
});
|
|
264
|
-
const handleUnknown = typeHandler(() => {
|
|
265
|
-
return z.unknown();
|
|
266
|
-
});
|
|
267
|
-
const handleVoid = typeHandler(() => {
|
|
268
|
-
return z.void();
|
|
269
|
-
});
|
|
287
|
+
const handleAny = typeHandler(() => z.any());
|
|
288
|
+
const handleNaN = typeHandler(() => z.nan());
|
|
289
|
+
const handleNever = typeHandler(() => z.never());
|
|
290
|
+
const handleNull = typeHandler(() => z.null());
|
|
291
|
+
const handleUndefined = typeHandler(() => z.undefined());
|
|
292
|
+
const handleUnknown = typeHandler(() => z.unknown());
|
|
293
|
+
const handleVoid = typeHandler(() => z.void());
|
|
270
294
|
const handleInstanceOf = typeHandler(
|
|
271
|
-
(type) =>
|
|
272
|
-
return z.instanceof(type.class);
|
|
273
|
-
}
|
|
295
|
+
(type) => z.instanceof(type.class)
|
|
274
296
|
);
|
|
275
297
|
const handleLiteral = typeHandler((type) => {
|
|
276
298
|
return z.literal(type.value);
|
|
@@ -280,13 +302,13 @@ const handleMap = typeHandler((type) => {
|
|
|
280
302
|
return z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));
|
|
281
303
|
});
|
|
282
304
|
const setParams = ["min", "max", "size"];
|
|
283
|
-
const handleSet = typeHandler((column) => {
|
|
305
|
+
const handleSet = typeHandler((column, errors) => {
|
|
284
306
|
const { valueType } = column;
|
|
285
307
|
let type = z.set(jsonItemToZod(valueType));
|
|
286
308
|
setParams.forEach((key) => {
|
|
287
309
|
const value = column.data[key];
|
|
288
310
|
if (value !== void 0) {
|
|
289
|
-
type = type[key](value);
|
|
311
|
+
type = type[key](value, { message: errors == null ? void 0 : errors[key] });
|
|
290
312
|
}
|
|
291
313
|
});
|
|
292
314
|
return type;
|
|
@@ -304,7 +326,7 @@ const handleTuple = typeHandler((column) => {
|
|
|
304
326
|
return type;
|
|
305
327
|
});
|
|
306
328
|
const handleObject = typeHandler(
|
|
307
|
-
(type) => {
|
|
329
|
+
(type, errors) => {
|
|
308
330
|
const shape = {};
|
|
309
331
|
for (const key in type.shape) {
|
|
310
332
|
shape[key] = jsonItemToZod(type.shape[key]);
|
|
@@ -313,7 +335,7 @@ const handleObject = typeHandler(
|
|
|
313
335
|
if (type.unknownKeys === "passthrough") {
|
|
314
336
|
object = object.passthrough();
|
|
315
337
|
} else if (type.unknownKeys === "strict") {
|
|
316
|
-
object = object.strict();
|
|
338
|
+
object = object.strict(errors == null ? void 0 : errors.strict);
|
|
317
339
|
}
|
|
318
340
|
if (type.catchAllType) {
|
|
319
341
|
object = object.catchall(jsonItemToZod(type.catchAllType));
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import {\n ArrayColumn,\n ColumnsShape,\n ColumnType,\n DateColumn,\n EnumColumn,\n JSONColumn,\n NumberColumn,\n TextColumn,\n VirtualColumn,\n} from 'pqb';\nimport {\n JSONTypeAny,\n Primitive,\n JSONArray,\n JSONEnum,\n JSONInstanceOf,\n JSONLiteral,\n JSONMap,\n EnumLike,\n JSONNativeEnum,\n JSONDate,\n JSONNumber,\n JSONString,\n JSONSet,\n JSONTuple,\n JSONObject,\n UnknownKeysParam,\n JSONDiscriminatedObject,\n JSONDiscriminatedUnion,\n JSONRecord,\n JSONRecordKeyType,\n JSONIntersection,\n JSONUnion,\n JSONLazy,\n} from 'orchid-core';\nimport { z, ZodTypeAny } from 'zod';\nimport { Buffer } from 'node:buffer';\n\ntype NumberType =\n | 'smallint'\n | 'integer'\n | 'real'\n | 'smallserial'\n | 'serial'\n | 'money';\n\ntype BigIntType =\n | 'bigint'\n | 'numeric'\n | 'decimal'\n | 'double precision'\n | 'bigserial';\n\ntype StringType = 'varchar' | 'char' | 'text' | 'string' | 'xml' | 'json';\n\ntype DateTimeType = 'date' | 'timestamp' | 'timestamp with time zone';\n\ntype TimeType = 'time' | 'time with time zone';\n\ntype GeometryType =\n | 'point'\n | 'line'\n | 'lseg'\n | 'box'\n | 'path'\n | 'polygon'\n | 'circle';\n\ntype NetworkType = 'cidr' | 'inet' | 'macaddr' | 'macaddr8';\n\ntype BitStringType = 'bit' | 'bit varying';\n\ntype FullTextSearchType = 'tsvector' | 'tsquery';\n\ntype UUIDType = 'uuid';\n\ntype ByteaType = 'bytea';\n\ntype SchemaToZod<\n T extends ColumnType,\n D = T['dataType'],\n> = T['data']['isNullable'] extends true\n ? z.ZodNullable<\n SchemaToZod<\n Omit<T, 'data'> & {\n data: Omit<T['data'], 'isNullable'> & { isNullable: false };\n }\n >\n >\n : D extends NumberType\n ? z.ZodNumber\n : D extends\n | BigIntType\n | StringType\n | TimeType\n | GeometryType\n | NetworkType\n | BitStringType\n | FullTextSearchType\n | UUIDType\n ? z.ZodString\n : D extends ByteaType\n ? z.ZodType<Buffer>\n : D extends DateTimeType\n ? z.ZodDate\n : D extends 'interval'\n ? typeof interval\n : D extends 'boolean'\n ? z.ZodBoolean\n : T extends EnumColumn<string, infer U>\n ? z.ZodEnum<U>\n : T extends ArrayColumn<infer U>\n ? z.ZodArray<SchemaToZod<U>>\n : T extends JSONColumn\n ? JsonToZod<T['data']['schema']>\n : T extends VirtualColumn\n ? z.ZodNever\n : never;\n\ntype JsonToZod<T extends JSONTypeAny, D = T['dataType']> = T extends {\n types: [JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]];\n}\n ? z.ZodUnion<MapJsonTuple<T['types']>>\n : T['data'] extends {\n nullable: true;\n }\n ? T['data'] extends { optional: true }\n ? z.ZodNullable<\n z.ZodOptional<\n JsonToZod<\n Omit<T, 'data'> & { data: Omit<T['data'], 'nullable' | 'optional'> }\n >\n >\n >\n : z.ZodNullable<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'nullable'> }>\n >\n : T['data'] extends { optional: true }\n ? z.ZodOptional<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'optional'> }>\n >\n : D extends 'bigint'\n ? z.ZodString\n : D extends 'boolean'\n ? z.ZodBoolean\n : D extends 'date'\n ? z.ZodDate\n : D extends 'nan'\n ? z.ZodNaN\n : D extends 'never'\n ? z.ZodNever\n : D extends 'null'\n ? z.ZodNull\n : D extends 'number'\n ? z.ZodNumber\n : D extends 'string'\n ? z.ZodString\n : D extends 'undefined'\n ? z.ZodUndefined\n : D extends 'unknown'\n ? z.ZodUnknown\n : D extends 'void'\n ? z.ZodVoid\n : T extends JSONArray<infer U>\n ? z.ZodArray<JsonToZod<U>>\n : T extends JSONEnum<string, infer U>\n ? z.ZodEnum<U>\n : T extends JSONInstanceOf<infer U>\n ? z.ZodType<InstanceType<U>, z.ZodTypeDef, InstanceType<U>>\n : T extends JSONLiteral<infer U>\n ? z.ZodLiteral<U>\n : T extends JSONMap<infer K, infer V>\n ? z.ZodMap<JsonToZod<K>, JsonToZod<V>>\n : T extends JSONSet<infer U>\n ? z.ZodSet<JsonToZod<U>>\n : T extends JSONNativeEnum<infer U>\n ? z.ZodNativeEnum<U>\n : T extends JSONTuple<infer U, infer R>\n ? z.ZodTuple<MapJsonTuple<U>, R extends JSONTypeAny ? JsonToZod<R> : null>\n : T extends JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>\n ? z.ZodObject<\n { [K in keyof T['shape']]: JsonToZod<T['shape'][K]> },\n T['unknownKeys'],\n JsonToZod<T['catchAllType']>\n >\n : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny>\n ? z.ZodRecord<\n JsonToZod<T['keyType']> extends z.ZodType<\n string | number | symbol,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >\n ? JsonToZod<T['keyType']>\n : never,\n JsonToZod<T['valueType']>\n >\n : T extends JSONIntersection<JSONTypeAny, JSONTypeAny>\n ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>>\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends JSONDiscriminatedUnion<string, Primitive, any>\n ? z.ZodDiscriminatedUnion<\n T['discriminator'],\n T['discriminatorValue'],\n JsonToZod<T['_option']> extends z.ZodDiscriminatedUnionOption<\n T['discriminator'],\n T['discriminatorValue']\n >\n ? JsonToZod<T['_option']>\n : never\n >\n : D extends 'any'\n ? z.ZodTypeAny\n : z.ZodType<T['type']>;\n\ntype MapJsonTuple<T extends unknown[]> = T extends [infer Head, ...infer Tail]\n ? [Head extends JSONTypeAny ? JsonToZod<Head> : never, ...MapJsonTuple<Tail>]\n : [];\n\nexport type TableToZod<\n T extends new () => { columns: { shape: ColumnsShape } },\n> = InstanceToZod<InstanceType<T>['columns']>;\n\nexport const tableToZod = <\n T extends new () => { columns: { shape: ColumnsShape } },\n>(\n table: T,\n): TableToZod<T> => {\n return instanceToZod(new table().columns) as unknown as TableToZod<T>;\n};\n\nexport type InstanceToZod<T extends { shape: ColumnsShape }> = z.ZodObject<{\n [K in keyof T['shape']]: SchemaToZod<T['shape'][K]>;\n}>;\n\nexport const instanceToZod = <T extends { shape: ColumnsShape }>({\n shape,\n}: T): InstanceToZod<T> => {\n const result = {} as z.ZodRawShape;\n for (const key in shape) {\n const column = shape[key];\n if (!(column instanceof VirtualColumn)) {\n result[key as keyof typeof result] = columnToZod(column);\n }\n }\n return z.object(result) as InstanceToZod<T>;\n};\n\nexport const columnToZod = <T extends ColumnType>(\n column: T,\n): SchemaToZod<T> => {\n const dataType = column.data.as?.dataType || column.dataType;\n const converter = converters[dataType];\n if (!converter) {\n if (column instanceof VirtualColumn) {\n return handleNever(column) as SchemaToZod<T>;\n }\n throw new Error(`Cannot parse column ${dataType}`);\n }\n return converter(column) as SchemaToZod<T>;\n};\n\nconst typeHandler = <Type extends ColumnType | JSONTypeAny>(\n fn: (column: Type) => z.ZodTypeAny,\n) => {\n return (column: ColumnType | JSONTypeAny) => {\n let type = fn(column as Type);\n\n column.chain.forEach((item) => {\n if (item[0] === 'transform') {\n type = type.transform(item[1]);\n } else if (item[0] === 'to') {\n type = z.preprocess(item[1], itemToZod(item[2]));\n } else if (item[0] === 'refine') {\n type = type.refine(item[1]);\n } else if (item[0] === 'superRefine') {\n type = type.superRefine(item[1]);\n }\n });\n\n if (\n ('nullable' in column.data && column.data.nullable) ||\n (column as ColumnType).data.isNullable\n ) {\n if ('optional' in column.data && column.data.optional) {\n type = type.nullish();\n } else {\n type = type.nullable();\n }\n } else if ('optional' in column.data && column.data.optional) {\n type = type.optional();\n }\n\n if (column instanceof ColumnType) {\n if (column.data.validationDefault !== undefined) {\n type = type.default(column.data.validationDefault);\n }\n } else if (column.data.default !== undefined) {\n type = type.default(column.data.default);\n }\n\n return type;\n };\n};\n\nconst stringParams = [\n 'min',\n 'max',\n 'length',\n 'regex',\n 'startsWith',\n 'endsWith',\n];\nconst stringEmptyParams = ['email', 'url', 'uuid', 'cuid', 'trim'];\nconst handleString = typeHandler((column: TextColumn | JSONString) => {\n let type = z.string();\n const data = column.data;\n\n stringParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<string, (value: unknown) => z.ZodString>\n )[key](value);\n }\n });\n\n stringEmptyParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = (type as unknown as Record<string, () => z.ZodString>)[key]();\n }\n });\n\n const { maxChars } = data as { maxChars?: number };\n if (maxChars !== undefined) {\n type = (\n type as unknown as Record<string, (len: number) => z.ZodString>\n ).length(maxChars);\n }\n\n return type;\n});\n\nconst numberParams = ['lt', 'lte', 'gt', 'gte', 'multipleOf'];\nconst handleNumber = typeHandler((column: NumberColumn | JSONNumber) => {\n let type = z.number();\n numberParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<string, (value: unknown) => z.ZodNumber>\n )[key](value);\n }\n });\n if ((column.data as Record<string, boolean>).int) {\n type = type.int();\n }\n return type;\n});\n\nconst handleBigInt = typeHandler(() => {\n return z.string().refine(\n (value) => {\n try {\n BigInt(value);\n return true;\n } catch (_) {\n return false;\n }\n },\n {\n message: 'Failed to parse bigint',\n },\n );\n});\n\nconst handleBuffer = typeHandler(() => {\n return z.instanceof(Buffer);\n});\n\nconst dateParams = ['min', 'max'];\nconst handleDate = typeHandler((column: DateColumn | JSONDate) => {\n let type = z.date();\n dateParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (type as unknown as Record<string, (value: unknown) => z.ZodDate>)[\n key\n ](value);\n }\n });\n\n return z.preprocess(\n (val) => (typeof val === 'string' ? new Date(val) : val),\n type,\n );\n});\n\nconst handleTime = typeHandler(() => {\n return z.string().refine(\n (val) => {\n return !isNaN(new Date(`2000-01-01 ${val}`).getTime());\n },\n {\n message: 'Invalid time',\n },\n );\n});\n\nconst interval = z\n .object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n seconds: z.number().optional(),\n })\n .strict();\n\nconst handleInterval = typeHandler(() => {\n return interval;\n});\n\nconst handleBoolean = typeHandler(() => {\n return z.boolean();\n});\n\nconst handleEnum = typeHandler((column: EnumColumn | JSONEnum) => {\n const enumColumn = column as\n | EnumColumn<string, [string, ...string[]]>\n | JSONEnum<string, [string, ...string[]]>;\n return z.enum(enumColumn.options);\n});\n\nconst handleBitString = typeHandler(() => {\n return z.string().regex(/[10]/g);\n});\n\nconst handleUUID = typeHandler(() => {\n return z.string().uuid();\n});\n\nconst arrayParams = ['min', 'max', 'length'];\nconst handleArray = typeHandler(\n (array: ArrayColumn<ColumnType> | JSONArray<JSONTypeAny>) => {\n let type: z.ZodArray<z.ZodTypeAny>;\n if ('element' in array) {\n type = z.array(jsonItemToZod(array.element));\n } else {\n type = z.array(columnToZod(array.data.item));\n }\n\n arrayParams.forEach((key) => {\n const value = (array.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<\n string,\n (value: unknown) => z.ZodArray<z.ZodTypeAny>\n >\n )[key](value);\n }\n });\n\n return type;\n },\n);\n\nconst handleJson = typeHandler((column: JSONColumn) => {\n const type = column.data.schema;\n return jsonItemToZod(type);\n});\n\nconst jsonItemToZod = (type: JSONTypeAny) => {\n const converter = jsonConverters[type.dataType];\n if (!converter) throw new Error(`Cannot parse column ${type.dataType}`);\n return converter(type);\n};\n\nconst itemToZod = (item: ColumnType | JSONTypeAny) => {\n return item instanceof ColumnType ? columnToZod(item) : jsonItemToZod(item);\n};\n\nconst converters: Record<string, (column: ColumnType) => z.ZodType> = {\n varchar: handleString,\n char: handleString,\n text: handleString,\n smallint: handleNumber,\n integer: handleNumber,\n real: handleNumber,\n smallserial: handleNumber,\n serial: handleNumber,\n money: handleNumber,\n bigint: handleBigInt,\n decimal: handleBigInt,\n 'double precision': handleBigInt,\n bigserial: handleBigInt,\n bytea: handleBuffer,\n date: handleDate,\n timestamp: handleDate,\n 'timestamp with time zone': handleDate,\n time: handleTime,\n 'time with time zone': handleTime,\n interval: handleInterval,\n boolean: handleBoolean,\n enum: handleEnum,\n point: handleString,\n line: handleString,\n lseg: handleString,\n box: handleString,\n path: handleString,\n polygon: handleString,\n circle: handleString,\n cidr: handleString,\n inet: handleString,\n macaddr: handleString,\n macaddr8: handleString,\n bit: handleBitString,\n 'bit varying': handleBitString,\n tsvector: handleString,\n tsquery: handleString,\n xml: handleString,\n json: handleString,\n uuid: handleUUID,\n array: handleArray,\n jsonb: handleJson,\n};\n\nconst handleAny = typeHandler(() => {\n return z.any();\n});\n\nconst handleNaN = typeHandler(() => {\n return z.nan();\n});\n\nconst handleNever = typeHandler(() => {\n return z.never();\n});\n\nconst handleNull = typeHandler(() => {\n return z.null();\n});\n\nconst handleUndefined = typeHandler(() => {\n return z.undefined();\n});\n\nconst handleUnknown = typeHandler(() => {\n return z.unknown();\n});\n\nconst handleVoid = typeHandler(() => {\n return z.void();\n});\n\nconst handleInstanceOf = typeHandler(\n (type: JSONInstanceOf<new () => unknown>) => {\n return z.instanceof(type.class);\n },\n);\n\nconst handleLiteral = typeHandler((type: JSONTypeAny) => {\n return z.literal((type as JSONLiteral<string>).value);\n});\n\nconst handleMap = typeHandler((type: JSONMap<JSONTypeAny, JSONTypeAny>) => {\n const { keyType, valueType } = type;\n return z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));\n});\n\nconst setParams = ['min', 'max', 'size'];\nconst handleSet = typeHandler((column: JSONSet<JSONTypeAny>) => {\n const { valueType } = column;\n let type = z.set(jsonItemToZod(valueType));\n setParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = (\n type as unknown as Record<\n string,\n (value: unknown) => z.ZodSet<z.ZodTypeAny>\n >\n )[key](value);\n }\n });\n return type;\n});\n\nconst handleNativeEnum = typeHandler((type: JSONTypeAny) => {\n return z.nativeEnum((type as JSONNativeEnum<EnumLike>).enum);\n});\n\nconst handleTuple = typeHandler((column: JSONTuple) => {\n let type: z.ZodTuple<[], ZodTypeAny | null> = z.tuple(\n column.items.map((item) => jsonItemToZod(item)) as [],\n );\n if (column.restType) {\n type = type.rest(jsonItemToZod(column.restType));\n }\n return type;\n});\n\nconst handleObject = typeHandler(\n (type: JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>) => {\n const shape: Record<string, z.ZodTypeAny> = {};\n for (const key in type.shape) {\n shape[key] = jsonItemToZod(type.shape[key]);\n }\n\n let object: z.ZodObject<z.ZodRawShape, UnknownKeysParam, z.ZodTypeAny> =\n z.object(shape);\n\n if (type.unknownKeys === 'passthrough') {\n object = object.passthrough();\n } else if (type.unknownKeys === 'strict') {\n object = object.strict();\n }\n\n if (type.catchAllType) {\n object = object.catchall(jsonItemToZod(type.catchAllType));\n }\n\n return object;\n },\n);\n\nconst handleRecord = typeHandler(\n (type: JSONRecord<JSONRecordKeyType, JSONTypeAny>) => {\n return z.record(jsonItemToZod(type.keyType), jsonItemToZod(type.valueType));\n },\n);\n\nconst handleUnion = typeHandler(\n (type: JSONUnion<[JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]]>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return z.union(type.types.map(jsonItemToZod) as any);\n },\n);\n\nconst handleIntersection = typeHandler(\n (type: JSONIntersection<JSONTypeAny, JSONTypeAny>) => {\n return z.intersection(jsonItemToZod(type.left), jsonItemToZod(type.right));\n },\n);\n\nconst handleDiscriminatedUnion = typeHandler(\n (\n type: JSONDiscriminatedUnion<\n string,\n Primitive,\n JSONDiscriminatedObject<string, Primitive>\n >,\n ) => {\n return z.discriminatedUnion(\n type.discriminator,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [...type.options.values()].map(jsonItemToZod) as any,\n );\n },\n);\n\nconst handleLazy = typeHandler((type: JSONLazy<JSONTypeAny>) => {\n return z.lazy(() => jsonItemToZod(type.getter()));\n});\n\nconst jsonConverters: Record<string, (type: JSONTypeAny) => z.ZodType> = {\n any: handleAny,\n bigint: handleBigInt,\n boolean: handleBoolean,\n date: handleDate,\n nan: handleNaN,\n never: handleNever,\n null: handleNull,\n number: handleNumber,\n string: handleString,\n undefined: handleUndefined,\n unknown: handleUnknown,\n void: handleVoid,\n array: handleArray,\n enum: handleEnum,\n instanceOf: handleInstanceOf,\n literal: handleLiteral,\n map: handleMap,\n set: handleSet,\n nativeEnum: handleNativeEnum,\n tuple: handleTuple,\n object: handleObject,\n record: handleRecord,\n union: handleUnion,\n intersection: handleIntersection,\n discriminatedUnion: handleDiscriminatedUnion,\n lazy: handleLazy,\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/main.ts"],"sourcesContent":["import {\n ArrayColumn,\n ColumnsShape,\n ColumnType,\n DateColumn,\n EnumColumn,\n JSONColumn,\n NumberColumn,\n TextColumn,\n VirtualColumn,\n} from 'pqb';\nimport {\n JSONTypeAny,\n Primitive,\n JSONArray,\n JSONEnum,\n JSONInstanceOf,\n JSONLiteral,\n JSONMap,\n EnumLike,\n JSONNativeEnum,\n JSONDate,\n JSONNumber,\n JSONString,\n JSONSet,\n JSONTuple,\n JSONObject,\n UnknownKeysParam,\n JSONDiscriminatedObject,\n JSONDiscriminatedUnion,\n JSONRecord,\n JSONRecordKeyType,\n JSONIntersection,\n JSONUnion,\n JSONLazy,\n EmptyObject,\n} from 'orchid-core';\nimport { z, ZodErrorMap, ZodTypeAny } from 'zod';\nimport { Buffer } from 'node:buffer';\n\ntype NumberType =\n | 'smallint'\n | 'integer'\n | 'real'\n | 'smallserial'\n | 'serial'\n | 'money';\n\ntype BigIntType =\n | 'bigint'\n | 'numeric'\n | 'decimal'\n | 'double precision'\n | 'bigserial';\n\ntype StringType = 'varchar' | 'char' | 'text' | 'string' | 'xml' | 'json';\n\ntype DateTimeType = 'date' | 'timestamp' | 'timestamp with time zone';\n\ntype TimeType = 'time' | 'time with time zone';\n\ntype GeometryType =\n | 'point'\n | 'line'\n | 'lseg'\n | 'box'\n | 'path'\n | 'polygon'\n | 'circle';\n\ntype NetworkType = 'cidr' | 'inet' | 'macaddr' | 'macaddr8';\n\ntype BitStringType = 'bit' | 'bit varying';\n\ntype FullTextSearchType = 'tsvector' | 'tsquery';\n\ntype UUIDType = 'uuid';\n\ntype ByteaType = 'bytea';\n\ntype SchemaToZod<\n T extends ColumnType,\n D = T['dataType'],\n> = T['data']['isNullable'] extends true\n ? z.ZodNullable<\n SchemaToZod<\n Omit<T, 'data'> & {\n data: Omit<T['data'], 'isNullable'> & { isNullable: false };\n }\n >\n >\n : D extends NumberType\n ? z.ZodNumber\n : D extends\n | BigIntType\n | StringType\n | TimeType\n | GeometryType\n | NetworkType\n | BitStringType\n | FullTextSearchType\n | UUIDType\n ? z.ZodString\n : D extends ByteaType\n ? z.ZodType<Buffer>\n : D extends DateTimeType\n ? z.ZodDate\n : D extends 'interval'\n ? typeof interval\n : D extends 'boolean'\n ? z.ZodBoolean\n : T extends EnumColumn<string, infer U>\n ? z.ZodEnum<U>\n : T extends ArrayColumn<infer U>\n ? z.ZodArray<SchemaToZod<U>>\n : T extends JSONColumn\n ? JsonToZod<T['data']['schema']>\n : T extends VirtualColumn\n ? z.ZodNever\n : never;\n\ntype JsonToZod<T extends JSONTypeAny, D = T['dataType']> = T extends {\n types: [JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]];\n}\n ? z.ZodUnion<MapJsonTuple<T['types']>>\n : T['data'] extends {\n nullable: true;\n }\n ? T['data'] extends { optional: true }\n ? z.ZodNullable<\n z.ZodOptional<\n JsonToZod<\n Omit<T, 'data'> & { data: Omit<T['data'], 'nullable' | 'optional'> }\n >\n >\n >\n : z.ZodNullable<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'nullable'> }>\n >\n : T['data'] extends { optional: true }\n ? z.ZodOptional<\n JsonToZod<Omit<T, 'data'> & { data: Omit<T['data'], 'optional'> }>\n >\n : D extends 'bigint'\n ? z.ZodString\n : D extends 'boolean'\n ? z.ZodBoolean\n : D extends 'date'\n ? z.ZodDate\n : D extends 'nan'\n ? z.ZodNaN\n : D extends 'never'\n ? z.ZodNever\n : D extends 'null'\n ? z.ZodNull\n : D extends 'number'\n ? z.ZodNumber\n : D extends 'string'\n ? z.ZodString\n : D extends 'undefined'\n ? z.ZodUndefined\n : D extends 'unknown'\n ? z.ZodUnknown\n : D extends 'void'\n ? z.ZodVoid\n : T extends JSONArray<infer U>\n ? z.ZodArray<JsonToZod<U>>\n : T extends JSONEnum<string, infer U>\n ? z.ZodEnum<U>\n : T extends JSONInstanceOf<infer U>\n ? z.ZodType<InstanceType<U>, z.ZodTypeDef, InstanceType<U>>\n : T extends JSONLiteral<infer U>\n ? z.ZodLiteral<U>\n : T extends JSONMap<infer K, infer V>\n ? z.ZodMap<JsonToZod<K>, JsonToZod<V>>\n : T extends JSONSet<infer U>\n ? z.ZodSet<JsonToZod<U>>\n : T extends JSONNativeEnum<infer U>\n ? z.ZodNativeEnum<U>\n : T extends JSONTuple<infer U, infer R>\n ? z.ZodTuple<MapJsonTuple<U>, R extends JSONTypeAny ? JsonToZod<R> : null>\n : T extends JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>\n ? z.ZodObject<\n { [K in keyof T['shape']]: JsonToZod<T['shape'][K]> },\n T['unknownKeys'],\n JsonToZod<T['catchAllType']>\n >\n : T extends JSONRecord<JSONRecordKeyType, JSONTypeAny>\n ? z.ZodRecord<\n JsonToZod<T['keyType']> extends z.ZodType<\n string | number | symbol,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >\n ? JsonToZod<T['keyType']>\n : never,\n JsonToZod<T['valueType']>\n >\n : T extends JSONIntersection<JSONTypeAny, JSONTypeAny>\n ? z.ZodIntersection<JsonToZod<T['left']>, JsonToZod<T['right']>>\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends JSONDiscriminatedUnion<string, Primitive, any>\n ? MapDiscriminatedUnion<T>\n : D extends 'any'\n ? z.ZodTypeAny\n : z.ZodType<T['type']>;\n\nexport type MapDiscriminatedUnion<\n T extends JSONDiscriminatedUnion<string, Primitive, any>,\n Options = MapJsonTuple<T['_options']>,\n> = z.ZodDiscriminatedUnion<\n T['discriminator'],\n Options extends z.ZodDiscriminatedUnionOption<T['discriminator']>[]\n ? Options\n : never\n>;\n\ntype MapJsonTuple<T extends unknown[]> = T extends [infer Head, ...infer Tail]\n ? [Head extends JSONTypeAny ? JsonToZod<Head> : never, ...MapJsonTuple<Tail>]\n : [];\n\nexport type TableToZod<\n T extends new () => { columns: { shape: ColumnsShape } },\n> = InstanceToZod<InstanceType<T>['columns']>;\n\nexport const tableToZod = <\n T extends new () => { columns: { shape: ColumnsShape } },\n>(\n table: T,\n): TableToZod<T> => {\n return instanceToZod(new table().columns) as unknown as TableToZod<T>;\n};\n\nexport type InstanceToZod<T extends { shape: ColumnsShape }> = z.ZodObject<{\n [K in keyof T['shape']]: SchemaToZod<T['shape'][K]>;\n}>;\n\nexport const instanceToZod = <T extends { shape: ColumnsShape }>({\n shape,\n}: T): InstanceToZod<T> => {\n const result = {} as z.ZodRawShape;\n for (const key in shape) {\n const column = shape[key];\n if (!(column instanceof VirtualColumn)) {\n result[key as keyof typeof result] = columnToZod(column);\n }\n }\n return z.object(result) as InstanceToZod<T>;\n};\n\nexport const columnToZod = <T extends ColumnType>(\n column: T,\n): SchemaToZod<T> => {\n const dataType = column.data.as?.dataType || column.dataType;\n const converter = converters[dataType];\n if (!converter) {\n if (column instanceof VirtualColumn) {\n return handleNever(column) as SchemaToZod<T>;\n }\n throw new Error(`Cannot parse column ${dataType}`);\n }\n return converter(column) as SchemaToZod<T>;\n};\n\nconst typeHandler = <Type extends ColumnType | JSONTypeAny>(\n fn: (column: Type, errors?: Record<string, string>) => z.ZodTypeAny,\n) => {\n return (column: ColumnType | JSONTypeAny) => {\n let type = fn(column as Type, column.data.errors);\n\n const { errors } = column.data;\n const { required_error, invalid_type_error } = {\n required_error: errors?.required,\n invalid_type_error: errors?.invalidType,\n };\n\n // copy-pasted from Zod source, may break in future\n type._def.errorMap = ((iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (ctx.data === undefined) {\n return { message: required_error ?? ctx.defaultError };\n }\n return { message: invalid_type_error ?? ctx.defaultError };\n }) as ZodErrorMap;\n\n column.chain.forEach((item) => {\n if (item[0] === 'transform') {\n type = type.transform(item[1]);\n } else if (item[0] === 'to') {\n type = z.preprocess(item[1], itemToZod(item[2]));\n } else if (item[0] === 'refine') {\n type = type.refine(item[1], { message: errors?.refine });\n } else if (item[0] === 'superRefine') {\n type = type.superRefine(item[1]);\n }\n });\n\n if (\n ('nullable' in column.data && column.data.nullable) ||\n (column as ColumnType).data.isNullable\n ) {\n if ('optional' in column.data && column.data.optional) {\n type = type.nullish();\n } else {\n type = type.nullable();\n }\n } else if ('optional' in column.data && column.data.optional) {\n type = type.optional();\n }\n\n if (column instanceof ColumnType) {\n if (column.data.validationDefault !== undefined) {\n type = type.default(column.data.validationDefault);\n }\n } else if (column.data.default !== undefined) {\n type = type.default(column.data.default);\n }\n\n return type;\n };\n};\n\nconst stringParams = [\n 'min',\n 'max',\n 'length',\n 'regex',\n 'includes',\n 'startsWith',\n 'endsWith',\n];\n\nconst stringEmptyParams = [\n 'email',\n 'url',\n 'emoji',\n 'uuid',\n 'cuid',\n 'cuid2',\n 'ulid',\n 'trim',\n 'toLowerCase',\n 'toUpperCase',\n];\n\nconst stringObjectParams = ['datetime', 'ip'];\n\nconst handleString = typeHandler((column: TextColumn | JSONString, errors) => {\n let type = z.string();\n const data = column.data;\n\n stringParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n stringEmptyParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'email']({ message: errors?.[key] });\n }\n });\n\n stringObjectParams.forEach((key) => {\n const value = (data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'datetime'](value as EmptyObject);\n }\n });\n\n const { maxChars } = data as { maxChars?: number };\n if (maxChars !== undefined) {\n type = type.length(maxChars, { message: errors?.length });\n }\n\n return type;\n});\n\nconst numberParams = ['lt', 'lte', 'gt', 'gte', 'step'];\n\nconst numberEmptyParams = ['finite', 'safe'];\n\nconst handleNumber = typeHandler(\n (column: NumberColumn | JSONNumber, errors) => {\n let type = z.number();\n numberParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n numberEmptyParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value) {\n type = type[key as 'finite']({ message: errors?.[key] });\n }\n });\n\n if ((column.data as Record<'int', boolean>).int) {\n type = type.int({ message: errors?.int });\n }\n\n return type;\n },\n);\n\nconst handleBigInt = typeHandler((_, errors) => {\n return z.string().refine(\n (value) => {\n try {\n BigInt(value);\n return true;\n } catch (_) {\n return false;\n }\n },\n {\n message: errors?.invalidType || 'Failed to parse bigint',\n },\n );\n});\n\nconst handleBuffer = typeHandler(() => {\n return z.instanceof(Buffer);\n});\n\nconst dateParams = ['min', 'max'];\nconst handleDate = typeHandler((column: DateColumn | JSONDate, errors) => {\n let type = z.date();\n dateParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as Date, { message: errors?.[key] });\n }\n });\n\n return z.preprocess(\n (val) => (typeof val === 'string' ? new Date(val) : val),\n type,\n );\n});\n\nconst handleTime = typeHandler((_, errors) => {\n return z.string().refine(\n (val) => {\n return !isNaN(new Date(`2000-01-01 ${val}`).getTime());\n },\n {\n message: errors?.invalidType || 'Invalid time',\n },\n );\n});\n\nconst interval = z\n .object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n seconds: z.number().optional(),\n })\n .strict();\n\nconst handleInterval = typeHandler(() => interval);\n\nconst handleBoolean = typeHandler(() => z.boolean());\n\nconst handleEnum = typeHandler((column: EnumColumn | JSONEnum) => {\n const enumColumn = column as\n | EnumColumn<string, [string, ...string[]]>\n | JSONEnum<string, [string, ...string[]]>;\n return z.enum(enumColumn.options);\n});\n\nconst handleBitString = typeHandler((_, errors) => {\n return z.string().regex(/[10]/g, { message: errors?.invalidType });\n});\n\nconst handleUUID = typeHandler((_, errors) => {\n return z.string().uuid({ message: errors?.invalidType });\n});\n\nconst arrayParams = ['min', 'max', 'length'];\nconst handleArray = typeHandler(\n (array: ArrayColumn<ColumnType> | JSONArray<JSONTypeAny>, errors) => {\n let type: z.ZodArray<z.ZodTypeAny>;\n if ('element' in array) {\n type = z.array(jsonItemToZod(array.element));\n } else {\n type = z.array(columnToZod(array.data.item));\n }\n\n arrayParams.forEach((key) => {\n const value = (array.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n\n return type;\n },\n);\n\nconst handleJson = typeHandler((column: JSONColumn) => {\n const type = column.data.schema;\n column.data.errors = column.data.schema.data.errors;\n return jsonItemToZod(type);\n});\n\nconst jsonItemToZod = (type: JSONTypeAny) => {\n const converter = jsonConverters[type.dataType];\n if (!converter) throw new Error(`Cannot parse column ${type.dataType}`);\n return converter(type);\n};\n\nconst itemToZod = (item: ColumnType | JSONTypeAny) => {\n return item instanceof ColumnType ? columnToZod(item) : jsonItemToZod(item);\n};\n\nconst converters: Record<string, (column: ColumnType) => z.ZodType> = {\n varchar: handleString,\n char: handleString,\n text: handleString,\n smallint: handleNumber,\n integer: handleNumber,\n real: handleNumber,\n smallserial: handleNumber,\n serial: handleNumber,\n money: handleNumber,\n bigint: handleBigInt,\n decimal: handleBigInt,\n 'double precision': handleBigInt,\n bigserial: handleBigInt,\n bytea: handleBuffer,\n date: handleDate,\n timestamp: handleDate,\n 'timestamp with time zone': handleDate,\n time: handleTime,\n 'time with time zone': handleTime,\n interval: handleInterval,\n boolean: handleBoolean,\n enum: handleEnum,\n point: handleString,\n line: handleString,\n lseg: handleString,\n box: handleString,\n path: handleString,\n polygon: handleString,\n circle: handleString,\n cidr: handleString,\n inet: handleString,\n macaddr: handleString,\n macaddr8: handleString,\n bit: handleBitString,\n 'bit varying': handleBitString,\n tsvector: handleString,\n tsquery: handleString,\n xml: handleString,\n json: handleString,\n uuid: handleUUID,\n array: handleArray,\n jsonb: handleJson,\n};\n\nconst handleAny = typeHandler(() => z.any());\n\nconst handleNaN = typeHandler(() => z.nan());\n\nconst handleNever = typeHandler(() => z.never());\n\nconst handleNull = typeHandler(() => z.null());\n\nconst handleUndefined = typeHandler(() => z.undefined());\n\nconst handleUnknown = typeHandler(() => z.unknown());\n\nconst handleVoid = typeHandler(() => z.void());\n\nconst handleInstanceOf = typeHandler(\n (type: JSONInstanceOf<new () => EmptyObject>) => z.instanceof(type.class),\n);\n\nconst handleLiteral = typeHandler((type: JSONTypeAny) => {\n return z.literal((type as JSONLiteral<string>).value);\n});\n\nconst handleMap = typeHandler((type: JSONMap<JSONTypeAny, JSONTypeAny>) => {\n const { keyType, valueType } = type;\n return z.map(jsonItemToZod(keyType), jsonItemToZod(valueType));\n});\n\nconst setParams = ['min', 'max', 'size'];\nconst handleSet = typeHandler((column: JSONSet<JSONTypeAny>, errors) => {\n const { valueType } = column;\n let type = z.set(jsonItemToZod(valueType));\n setParams.forEach((key) => {\n const value = (column.data as Record<string, unknown>)[key];\n if (value !== undefined) {\n type = type[key as 'min'](value as number, { message: errors?.[key] });\n }\n });\n return type;\n});\n\nconst handleNativeEnum = typeHandler((type: JSONTypeAny) => {\n return z.nativeEnum((type as JSONNativeEnum<EnumLike>).enum);\n});\n\nconst handleTuple = typeHandler((column: JSONTuple) => {\n let type: z.ZodTuple<[], ZodTypeAny | null> = z.tuple(\n column.items.map((item) => jsonItemToZod(item)) as [],\n );\n if (column.restType) {\n type = type.rest(jsonItemToZod(column.restType));\n }\n return type;\n});\n\nconst handleObject = typeHandler(\n (type: JSONObject<Record<string, JSONTypeAny>, UnknownKeysParam>, errors) => {\n const shape: Record<string, z.ZodTypeAny> = {};\n for (const key in type.shape) {\n shape[key] = jsonItemToZod(type.shape[key]);\n }\n\n let object: z.ZodObject<z.ZodRawShape, UnknownKeysParam, z.ZodTypeAny> =\n z.object(shape);\n\n if (type.unknownKeys === 'passthrough') {\n object = object.passthrough();\n } else if (type.unknownKeys === 'strict') {\n object = object.strict(errors?.strict);\n }\n\n if (type.catchAllType) {\n object = object.catchall(jsonItemToZod(type.catchAllType));\n }\n\n return object;\n },\n);\n\nconst handleRecord = typeHandler(\n (type: JSONRecord<JSONRecordKeyType, JSONTypeAny>) => {\n return z.record(jsonItemToZod(type.keyType), jsonItemToZod(type.valueType));\n },\n);\n\nconst handleUnion = typeHandler(\n (type: JSONUnion<[JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]]>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return z.union(type.types.map(jsonItemToZod) as any);\n },\n);\n\nconst handleIntersection = typeHandler(\n (type: JSONIntersection<JSONTypeAny, JSONTypeAny>) => {\n return z.intersection(jsonItemToZod(type.left), jsonItemToZod(type.right));\n },\n);\n\nconst handleDiscriminatedUnion = typeHandler(\n (\n type: JSONDiscriminatedUnion<\n string,\n Primitive,\n JSONDiscriminatedObject<string, Primitive>[]\n >,\n ) => {\n return z.discriminatedUnion(\n type.discriminator,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [...type.options.values()].map(jsonItemToZod) as any,\n );\n },\n);\n\nconst handleLazy = typeHandler((type: JSONLazy<JSONTypeAny>) => {\n return z.lazy(() => jsonItemToZod(type.getter()));\n});\n\nconst jsonConverters: Record<string, (type: JSONTypeAny) => z.ZodType> = {\n any: handleAny,\n bigint: handleBigInt,\n boolean: handleBoolean,\n date: handleDate,\n nan: handleNaN,\n never: handleNever,\n null: handleNull,\n number: handleNumber,\n string: handleString,\n undefined: handleUndefined,\n unknown: handleUnknown,\n void: handleVoid,\n array: handleArray,\n enum: handleEnum,\n instanceOf: handleInstanceOf,\n literal: handleLiteral,\n map: handleMap,\n set: handleSet,\n nativeEnum: handleNativeEnum,\n tuple: handleTuple,\n object: handleObject,\n record: handleRecord,\n union: handleUnion,\n intersection: handleIntersection,\n discriminatedUnion: handleDiscriminatedUnion,\n lazy: handleLazy,\n};\n"],"names":["_"],"mappings":";;;;AAmOa,MAAA,UAAA,GAAa,CAGxB,KACkB,KAAA;AAClB,EAAA,OAAO,aAAc,CAAA,IAAI,KAAM,EAAA,CAAE,OAAO,CAAA,CAAA;AAC1C,EAAA;AAMO,MAAM,gBAAgB,CAAoC;AAAA,EAC/D,KAAA;AACF,CAA2B,KAAA;AACzB,EAAA,MAAM,SAAS,EAAC,CAAA;AAChB,EAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,IAAA,MAAM,SAAS,KAAM,CAAA,GAAA,CAAA,CAAA;AACrB,IAAI,IAAA,EAAE,kBAAkB,aAAgB,CAAA,EAAA;AACtC,MAAO,MAAA,CAAA,GAAA,CAAA,GAA8B,YAAY,MAAM,CAAA,CAAA;AAAA,KACzD;AAAA,GACF;AACA,EAAO,OAAA,CAAA,CAAE,OAAO,MAAM,CAAA,CAAA;AACxB,EAAA;AAEa,MAAA,WAAA,GAAc,CACzB,MACmB,KAAA;AA9PrB,EAAA,IAAA,EAAA,CAAA;AA+PE,EAAA,MAAM,aAAW,EAAO,GAAA,MAAA,CAAA,IAAA,CAAK,EAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,aAAY,MAAO,CAAA,QAAA,CAAA;AACpD,EAAA,MAAM,YAAY,UAAW,CAAA,QAAA,CAAA,CAAA;AAC7B,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,IAAI,kBAAkB,aAAe,EAAA;AACnC,MAAA,OAAO,YAAY,MAAM,CAAA,CAAA;AAAA,KAC3B;AACA,IAAM,MAAA,IAAI,KAAM,CAAA,CAAA,oBAAA,EAAuB,QAAU,CAAA,CAAA,CAAA,CAAA;AAAA,GACnD;AACA,EAAA,OAAO,UAAU,MAAM,CAAA,CAAA;AACzB,EAAA;AAEA,MAAM,WAAA,GAAc,CAClB,EACG,KAAA;AACH,EAAA,OAAO,CAAC,MAAqC,KAAA;AAC3C,IAAA,IAAI,IAAO,GAAA,EAAA,CAAG,MAAgB,EAAA,MAAA,CAAO,KAAK,MAAM,CAAA,CAAA;AAEhD,IAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAO,CAAA,IAAA,CAAA;AAC1B,IAAM,MAAA,EAAE,cAAgB,EAAA,kBAAA,EAAuB,GAAA;AAAA,MAC7C,gBAAgB,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,QAAA;AAAA,MACxB,oBAAoB,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,WAAA;AAAA,KAC9B,CAAA;AAGA,IAAA,IAAA,CAAK,IAAK,CAAA,QAAA,GAAY,CAAC,GAAA,EAAK,GAAQ,KAAA;AAClC,MAAA,IAAI,IAAI,IAAS,KAAA,cAAA;AAAgB,QAAO,OAAA,EAAE,OAAS,EAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AACpE,MAAI,IAAA,GAAA,CAAI,SAAS,KAAW,CAAA,EAAA;AAC1B,QAAA,OAAO,EAAE,OAAA,EAAS,cAAkB,IAAA,IAAA,GAAA,cAAA,GAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AAAA,OACvD;AACA,MAAA,OAAO,EAAE,OAAA,EAAS,kBAAsB,IAAA,IAAA,GAAA,kBAAA,GAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AAAA,KAC3D,CAAA;AAEA,IAAO,MAAA,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,IAAS,KAAA;AAC7B,MAAI,IAAA,IAAA,CAAK,OAAO,WAAa,EAAA;AAC3B,QAAO,IAAA,GAAA,IAAA,CAAK,SAAU,CAAA,IAAA,CAAK,CAAE,CAAA,CAAA,CAAA;AAAA,OAC/B,MAAA,IAAW,IAAK,CAAA,CAAA,CAAA,KAAO,IAAM,EAAA;AAC3B,QAAA,IAAA,GAAO,EAAE,UAAW,CAAA,IAAA,CAAK,IAAI,SAAU,CAAA,IAAA,CAAK,EAAE,CAAC,CAAA,CAAA;AAAA,OACjD,MAAA,IAAW,IAAK,CAAA,CAAA,CAAA,KAAO,QAAU,EAAA;AAC/B,QAAO,IAAA,GAAA,IAAA,CAAK,OAAO,IAAK,CAAA,CAAA,CAAA,EAAI,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAQ,CAAA,CAAA;AAAA,OACzD,MAAA,IAAW,IAAK,CAAA,CAAA,CAAA,KAAO,aAAe,EAAA;AACpC,QAAO,IAAA,GAAA,IAAA,CAAK,WAAY,CAAA,IAAA,CAAK,CAAE,CAAA,CAAA,CAAA;AAAA,OACjC;AAAA,KACD,CAAA,CAAA;AAED,IACG,IAAA,UAAA,IAAc,OAAO,IAAQ,IAAA,MAAA,CAAO,KAAK,QACzC,IAAA,MAAA,CAAsB,KAAK,UAC5B,EAAA;AACA,MAAA,IAAI,UAAc,IAAA,MAAA,CAAO,IAAQ,IAAA,MAAA,CAAO,KAAK,QAAU,EAAA;AACrD,QAAA,IAAA,GAAO,KAAK,OAAQ,EAAA,CAAA;AAAA,OACf,MAAA;AACL,QAAA,IAAA,GAAO,KAAK,QAAS,EAAA,CAAA;AAAA,OACvB;AAAA,eACS,UAAc,IAAA,MAAA,CAAO,IAAQ,IAAA,MAAA,CAAO,KAAK,QAAU,EAAA;AAC5D,MAAA,IAAA,GAAO,KAAK,QAAS,EAAA,CAAA;AAAA,KACvB;AAEA,IAAA,IAAI,kBAAkB,UAAY,EAAA;AAChC,MAAI,IAAA,MAAA,CAAO,IAAK,CAAA,iBAAA,KAAsB,KAAW,CAAA,EAAA;AAC/C,QAAA,IAAA,GAAO,IAAK,CAAA,OAAA,CAAQ,MAAO,CAAA,IAAA,CAAK,iBAAiB,CAAA,CAAA;AAAA,OACnD;AAAA,KACS,MAAA,IAAA,MAAA,CAAO,IAAK,CAAA,OAAA,KAAY,KAAW,CAAA,EAAA;AAC5C,MAAA,IAAA,GAAO,IAAK,CAAA,OAAA,CAAQ,MAAO,CAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,KACzC;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,CAAA;AACF,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AACF,CAAA,CAAA;AAEA,MAAM,iBAAoB,GAAA;AAAA,EACxB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AACF,CAAA,CAAA;AAEA,MAAM,kBAAA,GAAqB,CAAC,UAAA,EAAY,IAAI,CAAA,CAAA;AAE5C,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,MAAA,EAAiC,MAAW,KAAA;AAC5E,EAAI,IAAA,IAAA,GAAO,EAAE,MAAO,EAAA,CAAA;AACpB,EAAA,MAAM,OAAO,MAAO,CAAA,IAAA,CAAA;AAEpB,EAAa,YAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC5B,IAAA,MAAM,QAAS,IAAiC,CAAA,GAAA,CAAA,CAAA;AAChD,IAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,MAAA,IAAA,GAAO,KAAK,GAAc,CAAA,CAAA,KAAA,EAAiB,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,KACvE;AAAA,GACD,CAAA,CAAA;AAED,EAAkB,iBAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACjC,IAAA,MAAM,QAAS,IAAiC,CAAA,GAAA,CAAA,CAAA;AAChD,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,GAAO,KAAK,GAAgB,CAAA,CAAA,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,KACxD;AAAA,GACD,CAAA,CAAA;AAED,EAAmB,kBAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAClC,IAAA,MAAM,QAAS,IAAiC,CAAA,GAAA,CAAA,CAAA;AAChD,IAAA,IAAI,KAAO,EAAA;AACT,MAAO,IAAA,GAAA,IAAA,CAAK,KAAmB,KAAoB,CAAA,CAAA;AAAA,KACrD;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,UAAa,GAAA,IAAA,CAAA;AACrB,EAAA,IAAI,aAAa,KAAW,CAAA,EAAA;AAC1B,IAAA,IAAA,GAAO,KAAK,MAAO,CAAA,QAAA,EAAU,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAQ,CAAA,CAAA;AAAA,GAC1D;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAC,CAAA,CAAA;AAED,MAAM,eAAe,CAAC,IAAA,EAAM,KAAO,EAAA,IAAA,EAAM,OAAO,MAAM,CAAA,CAAA;AAEtD,MAAM,iBAAA,GAAoB,CAAC,QAAA,EAAU,MAAM,CAAA,CAAA;AAE3C,MAAM,YAAe,GAAA,WAAA;AAAA,EACnB,CAAC,QAAmC,MAAW,KAAA;AAC7C,IAAI,IAAA,IAAA,GAAO,EAAE,MAAO,EAAA,CAAA;AACpB,IAAa,YAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC5B,MAAM,MAAA,KAAA,GAAS,OAAO,IAAiC,CAAA,GAAA,CAAA,CAAA;AACvD,MAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,QAAA,IAAA,GAAO,KAAK,GAAc,CAAA,CAAA,KAAA,EAAiB,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,OACvE;AAAA,KACD,CAAA,CAAA;AAED,IAAkB,iBAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACjC,MAAM,MAAA,KAAA,GAAS,OAAO,IAAiC,CAAA,GAAA,CAAA,CAAA;AACvD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,IAAA,GAAO,KAAK,GAAiB,CAAA,CAAA,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,OACzD;AAAA,KACD,CAAA,CAAA;AAED,IAAK,IAAA,MAAA,CAAO,KAAgC,GAAK,EAAA;AAC/C,MAAA,IAAA,GAAO,KAAK,GAAI,CAAA,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,KAC1C;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,CAAA,EAAG,MAAW,KAAA;AAC9C,EAAO,OAAA,CAAA,CAAE,QAAS,CAAA,MAAA;AAAA,IAChB,CAAC,KAAU,KAAA;AACT,MAAI,IAAA;AACF,QAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AACZ,QAAO,OAAA,IAAA,CAAA;AAAA,eACAA,EAAP,EAAA;AACA,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,IACA;AAAA,MACE,OAAA,EAAA,CAAS,iCAAQ,WAAe,KAAA,wBAAA;AAAA,KAClC;AAAA,GACF,CAAA;AACF,CAAC,CAAA,CAAA;AAED,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,EAAO,OAAA,CAAA,CAAE,WAAW,MAAM,CAAA,CAAA;AAC5B,CAAC,CAAA,CAAA;AAED,MAAM,UAAA,GAAa,CAAC,KAAA,EAAO,KAAK,CAAA,CAAA;AAChC,MAAM,UAAa,GAAA,WAAA,CAAY,CAAC,MAAA,EAA+B,MAAW,KAAA;AACxE,EAAI,IAAA,IAAA,GAAO,EAAE,IAAK,EAAA,CAAA;AAClB,EAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC1B,IAAM,MAAA,KAAA,GAAS,OAAO,IAAiC,CAAA,GAAA,CAAA,CAAA;AACvD,IAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,MAAA,IAAA,GAAO,KAAK,GAAc,CAAA,CAAA,KAAA,EAAe,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,KACrE;AAAA,GACD,CAAA,CAAA;AAED,EAAA,OAAO,CAAE,CAAA,UAAA;AAAA,IACP,CAAC,QAAS,OAAO,GAAA,KAAQ,WAAW,IAAI,IAAA,CAAK,GAAG,CAAI,GAAA,GAAA;AAAA,IACpD,IAAA;AAAA,GACF,CAAA;AACF,CAAC,CAAA,CAAA;AAED,MAAM,UAAa,GAAA,WAAA,CAAY,CAAC,CAAA,EAAG,MAAW,KAAA;AAC5C,EAAO,OAAA,CAAA,CAAE,QAAS,CAAA,MAAA;AAAA,IAChB,CAAC,GAAQ,KAAA;AACP,MAAO,OAAA,CAAC,MAAM,IAAI,IAAA,CAAK,cAAc,GAAK,CAAA,CAAA,CAAA,CAAE,SAAS,CAAA,CAAA;AAAA,KACvD;AAAA,IACA;AAAA,MACE,OAAA,EAAA,CAAS,iCAAQ,WAAe,KAAA,cAAA;AAAA,KAClC;AAAA,GACF,CAAA;AACF,CAAC,CAAA,CAAA;AAED,MAAM,QAAA,GAAW,EACd,MAAO,CAAA;AAAA,EACN,KAAO,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EAC3B,MAAQ,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EAC5B,IAAM,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EAC1B,KAAO,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EAC3B,OAAS,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAC/B,CAAC,EACA,MAAO,EAAA,CAAA;AAEV,MAAM,cAAA,GAAiB,WAAY,CAAA,MAAM,QAAQ,CAAA,CAAA;AAEjD,MAAM,aAAgB,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,SAAS,CAAA,CAAA;AAEnD,MAAM,UAAA,GAAa,WAAY,CAAA,CAAC,MAAkC,KAAA;AAChE,EAAA,MAAM,UAAa,GAAA,MAAA,CAAA;AAGnB,EAAO,OAAA,CAAA,CAAE,IAAK,CAAA,UAAA,CAAW,OAAO,CAAA,CAAA;AAClC,CAAC,CAAA,CAAA;AAED,MAAM,eAAkB,GAAA,WAAA,CAAY,CAAC,CAAA,EAAG,MAAW,KAAA;AACjD,EAAO,OAAA,CAAA,CAAE,QAAS,CAAA,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,WAAA,EAAa,CAAA,CAAA;AACnE,CAAC,CAAA,CAAA;AAED,MAAM,UAAa,GAAA,WAAA,CAAY,CAAC,CAAA,EAAG,MAAW,KAAA;AAC5C,EAAO,OAAA,CAAA,CAAE,QAAS,CAAA,IAAA,CAAK,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,aAAa,CAAA,CAAA;AACzD,CAAC,CAAA,CAAA;AAED,MAAM,WAAc,GAAA,CAAC,KAAO,EAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AAC3C,MAAM,WAAc,GAAA,WAAA;AAAA,EAClB,CAAC,OAAyD,MAAW,KAAA;AACnE,IAAI,IAAA,IAAA,CAAA;AACJ,IAAA,IAAI,aAAa,KAAO,EAAA;AACtB,MAAA,IAAA,GAAO,CAAE,CAAA,KAAA,CAAM,aAAc,CAAA,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AAAA,KACtC,MAAA;AACL,MAAA,IAAA,GAAO,EAAE,KAAM,CAAA,WAAA,CAAY,KAAM,CAAA,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,KAC7C;AAEA,IAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC3B,MAAM,MAAA,KAAA,GAAS,MAAM,IAAiC,CAAA,GAAA,CAAA,CAAA;AACtD,MAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,QAAA,IAAA,GAAO,KAAK,GAAc,CAAA,CAAA,KAAA,EAAiB,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,OACvE;AAAA,KACD,CAAA,CAAA;AAED,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,CAAA,CAAA;AAEA,MAAM,UAAA,GAAa,WAAY,CAAA,CAAC,MAAuB,KAAA;AACrD,EAAM,MAAA,IAAA,GAAO,OAAO,IAAK,CAAA,MAAA,CAAA;AACzB,EAAA,MAAA,CAAO,IAAK,CAAA,MAAA,GAAS,MAAO,CAAA,IAAA,CAAK,OAAO,IAAK,CAAA,MAAA,CAAA;AAC7C,EAAA,OAAO,cAAc,IAAI,CAAA,CAAA;AAC3B,CAAC,CAAA,CAAA;AAED,MAAM,aAAA,GAAgB,CAAC,IAAsB,KAAA;AAC3C,EAAM,MAAA,SAAA,GAAY,eAAe,IAAK,CAAA,QAAA,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,SAAA;AAAW,IAAA,MAAM,IAAI,KAAA,CAAM,CAAuB,oBAAA,EAAA,IAAA,CAAK,QAAU,CAAA,CAAA,CAAA,CAAA;AACtE,EAAA,OAAO,UAAU,IAAI,CAAA,CAAA;AACvB,CAAA,CAAA;AAEA,MAAM,SAAA,GAAY,CAAC,IAAmC,KAAA;AACpD,EAAA,OAAO,gBAAgB,UAAa,GAAA,WAAA,CAAY,IAAI,CAAA,GAAI,cAAc,IAAI,CAAA,CAAA;AAC5E,CAAA,CAAA;AAEA,MAAM,UAAgE,GAAA;AAAA,EACpE,OAAS,EAAA,YAAA;AAAA,EACT,IAAM,EAAA,YAAA;AAAA,EACN,IAAM,EAAA,YAAA;AAAA,EACN,QAAU,EAAA,YAAA;AAAA,EACV,OAAS,EAAA,YAAA;AAAA,EACT,IAAM,EAAA,YAAA;AAAA,EACN,WAAa,EAAA,YAAA;AAAA,EACb,MAAQ,EAAA,YAAA;AAAA,EACR,KAAO,EAAA,YAAA;AAAA,EACP,MAAQ,EAAA,YAAA;AAAA,EACR,OAAS,EAAA,YAAA;AAAA,EACT,kBAAoB,EAAA,YAAA;AAAA,EACpB,SAAW,EAAA,YAAA;AAAA,EACX,KAAO,EAAA,YAAA;AAAA,EACP,IAAM,EAAA,UAAA;AAAA,EACN,SAAW,EAAA,UAAA;AAAA,EACX,0BAA4B,EAAA,UAAA;AAAA,EAC5B,IAAM,EAAA,UAAA;AAAA,EACN,qBAAuB,EAAA,UAAA;AAAA,EACvB,QAAU,EAAA,cAAA;AAAA,EACV,OAAS,EAAA,aAAA;AAAA,EACT,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA,YAAA;AAAA,EACP,IAAM,EAAA,YAAA;AAAA,EACN,IAAM,EAAA,YAAA;AAAA,EACN,GAAK,EAAA,YAAA;AAAA,EACL,IAAM,EAAA,YAAA;AAAA,EACN,OAAS,EAAA,YAAA;AAAA,EACT,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA,YAAA;AAAA,EACN,IAAM,EAAA,YAAA;AAAA,EACN,OAAS,EAAA,YAAA;AAAA,EACT,QAAU,EAAA,YAAA;AAAA,EACV,GAAK,EAAA,eAAA;AAAA,EACL,aAAe,EAAA,eAAA;AAAA,EACf,QAAU,EAAA,YAAA;AAAA,EACV,OAAS,EAAA,YAAA;AAAA,EACT,GAAK,EAAA,YAAA;AAAA,EACL,IAAM,EAAA,YAAA;AAAA,EACN,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA,WAAA;AAAA,EACP,KAAO,EAAA,UAAA;AACT,CAAA,CAAA;AAEA,MAAM,SAAY,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,KAAK,CAAA,CAAA;AAE3C,MAAM,SAAY,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,KAAK,CAAA,CAAA;AAE3C,MAAM,WAAc,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,OAAO,CAAA,CAAA;AAE/C,MAAM,UAAa,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,MAAM,CAAA,CAAA;AAE7C,MAAM,eAAkB,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,WAAW,CAAA,CAAA;AAEvD,MAAM,aAAgB,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,SAAS,CAAA,CAAA;AAEnD,MAAM,UAAa,GAAA,WAAA,CAAY,MAAM,CAAA,CAAE,MAAM,CAAA,CAAA;AAE7C,MAAM,gBAAmB,GAAA,WAAA;AAAA,EACvB,CAAC,IAAA,KAAgD,CAAE,CAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAC1E,CAAA,CAAA;AAEA,MAAM,aAAA,GAAgB,WAAY,CAAA,CAAC,IAAsB,KAAA;AACvD,EAAO,OAAA,CAAA,CAAE,OAAS,CAAA,IAAA,CAA6B,KAAK,CAAA,CAAA;AACtD,CAAC,CAAA,CAAA;AAED,MAAM,SAAA,GAAY,WAAY,CAAA,CAAC,IAA4C,KAAA;AACzE,EAAM,MAAA,EAAE,OAAS,EAAA,SAAA,EAAc,GAAA,IAAA,CAAA;AAC/B,EAAA,OAAO,EAAE,GAAI,CAAA,aAAA,CAAc,OAAO,CAAG,EAAA,aAAA,CAAc,SAAS,CAAC,CAAA,CAAA;AAC/D,CAAC,CAAA,CAAA;AAED,MAAM,SAAY,GAAA,CAAC,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AACvC,MAAM,SAAY,GAAA,WAAA,CAAY,CAAC,MAAA,EAA8B,MAAW,KAAA;AACtE,EAAM,MAAA,EAAE,WAAc,GAAA,MAAA,CAAA;AACtB,EAAA,IAAI,IAAO,GAAA,CAAA,CAAE,GAAI,CAAA,aAAA,CAAc,SAAS,CAAC,CAAA,CAAA;AACzC,EAAU,SAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACzB,IAAM,MAAA,KAAA,GAAS,OAAO,IAAiC,CAAA,GAAA,CAAA,CAAA;AACvD,IAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,MAAA,IAAA,GAAO,KAAK,GAAc,CAAA,CAAA,KAAA,EAAiB,EAAE,OAAS,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,MAAM,CAAA,CAAA;AAAA,KACvE;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA,IAAA,CAAA;AACT,CAAC,CAAA,CAAA;AAED,MAAM,gBAAA,GAAmB,WAAY,CAAA,CAAC,IAAsB,KAAA;AAC1D,EAAO,OAAA,CAAA,CAAE,UAAY,CAAA,IAAA,CAAkC,IAAI,CAAA,CAAA;AAC7D,CAAC,CAAA,CAAA;AAED,MAAM,WAAA,GAAc,WAAY,CAAA,CAAC,MAAsB,KAAA;AACrD,EAAA,IAAI,OAA0C,CAAE,CAAA,KAAA;AAAA,IAC9C,OAAO,KAAM,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA,aAAA,CAAc,IAAI,CAAC,CAAA;AAAA,GAChD,CAAA;AACA,EAAA,IAAI,OAAO,QAAU,EAAA;AACnB,IAAA,IAAA,GAAO,IAAK,CAAA,IAAA,CAAK,aAAc,CAAA,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAA;AAAA,GACjD;AACA,EAAO,OAAA,IAAA,CAAA;AACT,CAAC,CAAA,CAAA;AAED,MAAM,YAAe,GAAA,WAAA;AAAA,EACnB,CAAC,MAAiE,MAAW,KAAA;AAC3E,IAAA,MAAM,QAAsC,EAAC,CAAA;AAC7C,IAAW,KAAA,MAAA,GAAA,IAAO,KAAK,KAAO,EAAA;AAC5B,MAAA,KAAA,CAAM,GAAO,CAAA,GAAA,aAAA,CAAc,IAAK,CAAA,KAAA,CAAM,GAAI,CAAA,CAAA,CAAA;AAAA,KAC5C;AAEA,IAAI,IAAA,MAAA,GACF,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAEhB,IAAI,IAAA,IAAA,CAAK,gBAAgB,aAAe,EAAA;AACtC,MAAA,MAAA,GAAS,OAAO,WAAY,EAAA,CAAA;AAAA,KAC9B,MAAA,IAAW,IAAK,CAAA,WAAA,KAAgB,QAAU,EAAA;AACxC,MAAS,MAAA,GAAA,MAAA,CAAO,MAAO,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,KACvC;AAEA,IAAA,IAAI,KAAK,YAAc,EAAA;AACrB,MAAA,MAAA,GAAS,MAAO,CAAA,QAAA,CAAS,aAAc,CAAA,IAAA,CAAK,YAAY,CAAC,CAAA,CAAA;AAAA,KAC3D;AAEA,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AACF,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA,WAAA;AAAA,EACnB,CAAC,IAAqD,KAAA;AACpD,IAAO,OAAA,CAAA,CAAE,OAAO,aAAc,CAAA,IAAA,CAAK,OAAO,CAAG,EAAA,aAAA,CAAc,IAAK,CAAA,SAAS,CAAC,CAAA,CAAA;AAAA,GAC5E;AACF,CAAA,CAAA;AAEA,MAAM,WAAc,GAAA,WAAA;AAAA,EAClB,CAAC,IAAkE,KAAA;AAEjE,IAAA,OAAO,EAAE,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,GAAA,CAAI,aAAa,CAAQ,CAAA,CAAA;AAAA,GACrD;AACF,CAAA,CAAA;AAEA,MAAM,kBAAqB,GAAA,WAAA;AAAA,EACzB,CAAC,IAAqD,KAAA;AACpD,IAAO,OAAA,CAAA,CAAE,aAAa,aAAc,CAAA,IAAA,CAAK,IAAI,CAAG,EAAA,aAAA,CAAc,IAAK,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,GAC3E;AACF,CAAA,CAAA;AAEA,MAAM,wBAA2B,GAAA,WAAA;AAAA,EAC/B,CACE,IAKG,KAAA;AACH,IAAA,OAAO,CAAE,CAAA,kBAAA;AAAA,MACP,IAAK,CAAA,aAAA;AAAA,MAEL,CAAC,GAAG,IAAK,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAE,IAAI,aAAa,CAAA;AAAA,KAC9C,CAAA;AAAA,GACF;AACF,CAAA,CAAA;AAEA,MAAM,UAAA,GAAa,WAAY,CAAA,CAAC,IAAgC,KAAA;AAC9D,EAAA,OAAO,EAAE,IAAK,CAAA,MAAM,cAAc,IAAK,CAAA,MAAA,EAAQ,CAAC,CAAA,CAAA;AAClD,CAAC,CAAA,CAAA;AAED,MAAM,cAAmE,GAAA;AAAA,EACvE,GAAK,EAAA,SAAA;AAAA,EACL,MAAQ,EAAA,YAAA;AAAA,EACR,OAAS,EAAA,aAAA;AAAA,EACT,IAAM,EAAA,UAAA;AAAA,EACN,GAAK,EAAA,SAAA;AAAA,EACL,KAAO,EAAA,WAAA;AAAA,EACP,IAAM,EAAA,UAAA;AAAA,EACN,MAAQ,EAAA,YAAA;AAAA,EACR,MAAQ,EAAA,YAAA;AAAA,EACR,SAAW,EAAA,eAAA;AAAA,EACX,OAAS,EAAA,aAAA;AAAA,EACT,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA,WAAA;AAAA,EACP,IAAM,EAAA,UAAA;AAAA,EACN,UAAY,EAAA,gBAAA;AAAA,EACZ,OAAS,EAAA,aAAA;AAAA,EACT,GAAK,EAAA,SAAA;AAAA,EACL,GAAK,EAAA,SAAA;AAAA,EACL,UAAY,EAAA,gBAAA;AAAA,EACZ,KAAO,EAAA,WAAA;AAAA,EACP,MAAQ,EAAA,YAAA;AAAA,EACR,MAAQ,EAAA,YAAA;AAAA,EACR,KAAO,EAAA,WAAA;AAAA,EACP,YAAc,EAAA,kBAAA;AAAA,EACd,kBAAoB,EAAA,wBAAA;AAAA,EACpB,IAAM,EAAA,UAAA;AACR,CAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orchid-orm-schema-to-zod",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.17",
|
|
4
4
|
"description": "Orchid-ORM columns schema to Zod converter",
|
|
5
5
|
"homepage": "https://orchid-orm.netlify.app/guide/columns-validation-methods.html",
|
|
6
6
|
"repository": {
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"author": "Roman Kushyn",
|
|
44
44
|
"license": "ISC",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"orchid-core": "0.1.
|
|
47
|
-
"pqb": "0.10.
|
|
48
|
-
"zod": "^3.
|
|
46
|
+
"orchid-core": "0.1.9",
|
|
47
|
+
"pqb": "0.10.16",
|
|
48
|
+
"zod": "^3.21.4"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"test": "jest --watch --verbose false",
|