orchid-orm-schema-to-zod 0.9.11 → 0.9.12

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 CHANGED
@@ -211,4 +211,4 @@ type PkeySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<{
211
211
  [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? K : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];
212
212
  }, 'strip'>;
213
213
 
214
- export { ZodSchemaConfig, zodSchemaConfig };
214
+ export { type ZodSchemaConfig, zodSchemaConfig };
package/dist/index.js CHANGED
@@ -4,25 +4,6 @@ var orchidCore = require('orchid-core');
4
4
  var pqb = require('pqb');
5
5
  var zod = require('zod');
6
6
 
7
- var __defProp = Object.defineProperty;
8
- var __defProps = Object.defineProperties;
9
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
- var __spreadValues = (a, b) => {
15
- for (var prop in b || (b = {}))
16
- if (__hasOwnProp.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- if (__getOwnPropSymbols)
19
- for (var prop of __getOwnPropSymbols(b)) {
20
- if (__propIsEnum.call(b, prop))
21
- __defNormalProp(a, prop, b[prop]);
22
- }
23
- return a;
24
- };
25
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
7
  class ZodJSONColumn extends pqb.JSONColumn {
27
8
  constructor(schema) {
28
9
  super(zodSchemaConfig, schema);
@@ -139,7 +120,8 @@ Object.assign(SmallSerialColumnZod.prototype, numberMethods);
139
120
  class SerialColumnZod extends pqb.SerialColumn {
140
121
  }
141
122
  Object.assign(SerialColumnZod.prototype, numberMethods);
142
- const stringMethods = __spreadProps(__spreadValues({}, arrayMethods), {
123
+ const stringMethods = {
124
+ ...arrayMethods,
143
125
  email(params) {
144
126
  return applySimpleMethod(this, "email", params);
145
127
  },
@@ -188,7 +170,7 @@ const stringMethods = __spreadProps(__spreadValues({}, arrayMethods), {
188
170
  toUpperCase(params) {
189
171
  return applySimpleMethod(this, "toUpperCase", params);
190
172
  }
191
- });
173
+ };
192
174
  class BigIntColumnZod extends pqb.BigIntColumn {
193
175
  }
194
176
  Object.assign(BigIntColumnZod.prototype, stringMethods);
@@ -274,7 +256,7 @@ const zodSchemaConfig = {
274
256
  );
275
257
  },
276
258
  json(schema) {
277
- return new ZodJSONColumn(schema != null ? schema : zod.z.unknown());
259
+ return new ZodJSONColumn(schema ?? zod.z.unknown());
278
260
  },
279
261
  boolean: () => zod.z.boolean(),
280
262
  buffer: () => zod.z.instanceof(Buffer),
@@ -414,15 +396,14 @@ const zodSchemaConfig = {
414
396
  */
415
397
  error(errors) {
416
398
  const { errors: old } = this.data;
417
- const newErrors = old ? __spreadValues(__spreadValues({}, old), errors) : errors;
399
+ const newErrors = old ? { ...old, ...errors } : errors;
418
400
  const { required, invalidType } = newErrors;
419
401
  const errorMap = (iss, ctx) => {
420
- if (iss.code !== "invalid_type")
421
- return { message: ctx.defaultError };
402
+ if (iss.code !== "invalid_type") return { message: ctx.defaultError };
422
403
  if (typeof ctx.data === "undefined") {
423
- return { message: required != null ? required : ctx.defaultError };
404
+ return { message: required ?? ctx.defaultError };
424
405
  }
425
- return { message: invalidType != null ? invalidType : ctx.defaultError };
406
+ return { message: invalidType ?? ctx.defaultError };
426
407
  };
427
408
  this.inputSchema._def.errorMap = this.outputSchema._def.errorMap = this.querySchema._def.errorMap = errorMap;
428
409
  return orchidCore.setColumnData(this, "errors", newErrors);
@@ -444,11 +425,11 @@ const zodSchemaConfig = {
444
425
  date: () => new DateColumnZod(zodSchemaConfig),
445
426
  timestampNoTZ: (precision) => new TimestampNoTzColumnZod(zodSchemaConfig, precision),
446
427
  timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),
447
- geographyPointSchema: () => pointSchema != null ? pointSchema : pointSchema = zod.z.object({
428
+ geographyPointSchema: () => pointSchema ?? (pointSchema = zod.z.object({
448
429
  srid: zod.z.number().optional(),
449
430
  lon: zod.z.number(),
450
431
  lat: zod.z.number()
451
- })
432
+ }))
452
433
  };
453
434
  function mapSchema(klass, schemaKey) {
454
435
  const shape = {};
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n AsTypeArg,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n ColumnTypeBase,\n EncodeColumn,\n NullableColumn,\n ParseColumn,\n makeColumnNullable,\n ErrorMessage,\n setDataValue,\n StringTypeData,\n ErrorMessages,\n setColumnData,\n ColumnDataBase,\n ParseNullColumn,\n} from 'orchid-core';\nimport {\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n ColumnType,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n} from 'pqb';\nimport {\n z,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodEnum,\n ZodNever,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRawShape,\n ZodString,\n ZodType,\n ZodTypeAny,\n ZodUnion,\n ZodUnknown,\n} from 'zod';\nimport { ZodErrorMap } from 'zod/lib/ZodError';\n\nclass ZodJSONColumn<ZodSchema extends ZodTypeAny> extends JSONColumn<\n ZodSchema['_output'],\n ZodSchemaConfig,\n ZodSchema\n> {\n constructor(schema: ZodSchema) {\n super(zodSchemaConfig, schema);\n }\n}\n\ntype NumberMethodSchema<Key extends string> = {\n [K in Key]: (\n value: unknown,\n params?: ErrorMessage,\n ) => NumberMethodSchema<Key>;\n};\n\nfunction applyMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSchema<Key>;\n outputSchema: NumberMethodSchema<Key>;\n querySchema: NumberMethodSchema<Key>;\n },\n>(column: T, key: Key, value: unknown, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, value, params);\n cloned.inputSchema = column.inputSchema[key](value, params);\n cloned.outputSchema = column.outputSchema[key](value, params);\n cloned.querySchema = column.querySchema[key](value, params);\n return cloned;\n}\n\ntype NumberMethodSimpleSchema<Key extends string> = {\n [K in Key]: (params?: ErrorMessage) => NumberMethodSimpleSchema<Key>;\n};\n\nfunction applySimpleMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSimpleSchema<Key>;\n outputSchema: NumberMethodSimpleSchema<Key>;\n querySchema: NumberMethodSimpleSchema<Key>;\n },\n>(column: T, key: Key, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, true, params);\n column.inputSchema = column.inputSchema[key](params);\n column.outputSchema = column.outputSchema[key](params);\n column.querySchema = column.querySchema[key](params);\n return cloned;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a maximum length (inclusive)\n max<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a specific length\n length<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a value to be non-empty\n nonEmpty<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<Date> = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, params);\n },\n nonEmpty(params) {\n const cloned = setDataValue(this, 'nonEmpty', true, params);\n this.inputSchema = this.inputSchema.nonempty(params);\n this.outputSchema = this.outputSchema.nonempty(params);\n this.querySchema = this.querySchema.nonempty(params);\n return cloned;\n },\n};\n\ninterface ZodArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ZodArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(zodSchemaConfig, item, z.array(item.inputSchema));\n }\n}\n\nObject.assign(ZodArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n lte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n max<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n min<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n positive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonNegative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n negative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonPositive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n step<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n int<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n finite<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n safe<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst numberMethods: NumberMethods = {\n // Require a value to be lower than a given number\n lt(value, params) {\n return applyMethod(this, 'lt', value, params);\n },\n\n // Require a value to be lower than or equal to a given number (the same as `max`)\n lte(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be lower than or equal to a given number\n max(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, params);\n },\n\n // Require a value to be greater than or equal to a given number (the same as `min`)\n gte(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than or equal to a given number\n min(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, params);\n },\n\n // Require a value to be a multiple of a given number\n step(value, params) {\n return applyMethod(this, 'step', value, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', params);\n },\n\n // Require the value to be less than or equal to Number.MAX_SAFE_INTEGER\n safe(params) {\n return applySimpleMethod(this, 'safe', params);\n },\n};\n\ninterface SmallIntColumnZod\n extends SmallIntColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnZod extends SmallIntColumn<ZodSchemaConfig> {}\nObject.assign(SmallIntColumnZod.prototype, numberMethods);\n\ninterface IntegerColumnZod\n extends IntegerColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnZod extends IntegerColumn<ZodSchemaConfig> {}\nObject.assign(IntegerColumnZod.prototype, numberMethods);\n\ninterface RealColumnZod extends RealColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass RealColumnZod extends RealColumn<ZodSchemaConfig> {}\nObject.assign(RealColumnZod.prototype, numberMethods);\n\ninterface SmallSerialColumnZod\n extends SmallSerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnZod extends SmallSerialColumn<ZodSchemaConfig> {}\nObject.assign(SmallSerialColumnZod.prototype, numberMethods);\n\ninterface SerialColumnZod\n extends SerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnZod extends SerialColumn<ZodSchemaConfig> {}\nObject.assign(SerialColumnZod.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid url\n url<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be an emoji\n emoji<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid\n cuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Validate the value over the given regular expression\n regex<T extends ColumnTypeBase>(\n this: T,\n value: RegExp,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to include a given string\n includes<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['datetime'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Check a value to be a valid ip address\n ip<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['ip'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Trim the value during a validation\n trim<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', params);\n },\n\n cuid(params) {\n return applySimpleMethod(this, 'cuid', params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, params);\n },\n\n datetime(params = {}) {\n return applyMethod(this, 'datetime', params, params);\n },\n\n ip(params = {}) {\n return applyMethod(this, 'ip', params, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', params);\n },\n};\n\ninterface BigIntColumnZod\n extends BigIntColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnZod extends BigIntColumn<ZodSchemaConfig> {}\nObject.assign(BigIntColumnZod.prototype, stringMethods);\n\ninterface DecimalColumnZod\n extends DecimalColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnZod extends DecimalColumn<ZodSchemaConfig> {}\nObject.assign(DecimalColumnZod.prototype, stringMethods);\n\ninterface DoublePrecisionColumnZod\n extends DoublePrecisionColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnZod extends DoublePrecisionColumn<ZodSchemaConfig> {}\nObject.assign(DoublePrecisionColumnZod.prototype, stringMethods);\n\ninterface BigSerialColumnZod\n extends BigSerialColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnZod extends BigSerialColumn<ZodSchemaConfig> {}\nObject.assign(BigSerialColumnZod.prototype, stringMethods);\n\ninterface MoneyColumnZod extends MoneyColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnZod extends MoneyColumn<ZodSchemaConfig> {}\nObject.assign(MoneyColumnZod.prototype, numberMethods);\n\ninterface VarCharColumnZod\n extends VarCharColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnZod extends VarCharColumn<ZodSchemaConfig> {}\nObject.assign(VarCharColumnZod.prototype, stringMethods);\n\ninterface TextColumnZod extends TextColumn<ZodSchemaConfig>, StringMethods {}\n\nclass TextColumnZod extends TextColumn<ZodSchemaConfig> {}\nObject.assign(TextColumnZod.prototype, stringMethods);\n\ninterface StringColumnZod\n extends StringColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass StringColumnZod extends StringColumn<ZodSchemaConfig> {}\nObject.assign(StringColumnZod.prototype, stringMethods);\n\ninterface CitextColumnZod\n extends CitextColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnZod extends CitextColumn<ZodSchemaConfig> {}\nObject.assign(CitextColumnZod.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n};\n\ninterface DateColumnZod extends DateColumn<ZodSchemaConfig>, DateMethods {}\n\nclass DateColumnZod extends DateColumn<ZodSchemaConfig> {}\nObject.assign(DateColumnZod.prototype, dateMethods);\n\ninterface TimestampNoTzColumnZod\n extends TimestampColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnZod extends TimestampColumn<ZodSchemaConfig> {}\nObject.assign(TimestampNoTzColumnZod.prototype, dateMethods);\n\ninterface TimestampColumnZod\n extends TimestampTZColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnZod extends TimestampTZColumn<ZodSchemaConfig> {}\nObject.assign(TimestampColumnZod.prototype, dateMethods);\n\ntype PointSchemaZod = ZodObject<{\n srid: ZodOptional<ZodNumber>;\n lon: ZodNumber;\n lat: ZodNumber;\n}>;\n\nlet pointSchema: PointSchemaZod | undefined;\n\nexport interface ZodSchemaConfig {\n type: ZodTypeAny;\n\n parse<\n T extends ColumnTypeBase,\n OutputSchema extends ZodTypeAny,\n Output = OutputSchema['_output'],\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Output,\n ): ParseColumn<T, OutputSchema, Output>;\n\n parseNull<\n T extends ColumnTypeBase,\n NullSchema extends ZodTypeAny,\n NullType = NullSchema['_output'],\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): ParseNullColumn<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends ZodTypeAny,\n Input = InputSchema['_output'],\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: Input) => unknown,\n ): EncodeColumn<T, InputSchema, Input>;\n\n asType<\n T,\n Types extends AsTypeArg<ZodTypeAny>,\n TypeSchema extends ZodTypeAny = Types extends { type: ZodTypeAny }\n ? Types['type']\n : never,\n Type = TypeSchema['_output'],\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']['_output']\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']['_output']\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']['_output']\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n dateAsNumber<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodNumber, number>;\n\n dateAsDate<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodDate, Date>;\n\n enum<U extends string, T extends readonly [U, ...U[]]>(\n dataType: string,\n type: T,\n ): EnumColumn<\n ZodSchemaConfig,\n // remove readonly flag for Zod\n ZodEnum<{\n -readonly [P in keyof T]: T[P];\n }>,\n U,\n T\n >;\n\n array<Item extends ArrayColumnValue>(item: Item): ZodArrayColumn<Item>;\n\n nullable<T extends ColumnTypeBase>(\n this: T,\n ): NullableColumn<\n T,\n ZodNullable<T['inputSchema']>,\n T['nullSchema'] extends ZodTypeAny\n ? ZodUnion<[T['outputSchema'], T['nullSchema']]>\n : ZodNullable<T['outputSchema']>,\n ZodNullable<T['querySchema']>\n >;\n\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(\n schema?: ZodSchema,\n ): ZodJSONColumn<ZodSchema>;\n\n boolean(): ZodBoolean;\n buffer(): ZodType<Buffer>;\n unknown(): ZodUnknown;\n never(): ZodNever;\n stringSchema(): ZodString;\n stringMin(max: number): ZodString;\n stringMax(max: number): ZodString;\n stringMinMax(min: number, max: number): ZodString;\n number(): ZodNumber;\n int(): ZodNumber;\n stringNumberDate(): ZodDate;\n timeInterval(): ZodObject<{\n years: ZodOptional<ZodNumber>;\n months: ZodOptional<ZodNumber>;\n days: ZodOptional<ZodNumber>;\n hours: ZodOptional<ZodNumber>;\n minutes: ZodOptional<ZodNumber>;\n seconds: ZodOptional<ZodNumber>;\n }>;\n bit(max: number): ZodString;\n uuid(): ZodString;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T extends ColumnTypeBase>(this: T, error: ErrorMessages): T;\n\n smallint(): SmallIntColumnZod;\n integer(): IntegerColumnZod;\n real(): RealColumnZod;\n smallSerial(): SmallSerialColumnZod;\n serial(): SerialColumnZod;\n\n bigint(): BigIntColumnZod;\n decimal(precision?: number, scale?: number): DecimalColumnZod;\n doublePrecision(): DoublePrecisionColumnZod;\n bigSerial(): BigSerialColumnZod;\n money(): MoneyColumnZod;\n varchar(limit?: number): VarCharColumnZod;\n text(): TextColumnZod;\n string(limit?: number): StringColumnZod;\n citext(): CitextColumnZod;\n\n date(): DateColumnZod;\n timestampNoTZ(precision?: number): TimestampNoTzColumnZod;\n timestamp(precision?: number): TimestampColumnZod;\n\n geographyPointSchema(): PointSchemaZod;\n}\n\n// parse a date string to date object, with respect to null\nconst parseDateToDate = (value: unknown) => new Date(value as string);\n\nexport const zodSchemaConfig: ZodSchemaConfig = {\n type: undefined as unknown as ZodTypeAny,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n dateAsNumber() {\n const c = this.parse(z.number(), Date.parse as never) as ColumnTypeBase;\n c.data.defaultParse = Date.parse;\n return c as never;\n },\n dateAsDate() {\n const c = this.parse(z.date(), parseDateToDate) as ColumnTypeBase;\n c.data.defaultParse = parseDateToDate;\n return c as never;\n },\n enum(dataType, type) {\n return new EnumColumn(zodSchemaConfig, dataType, type, z.enum(type));\n },\n array(item) {\n return new ZodArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this,\n z.nullable(this.inputSchema),\n this.nullSchema\n ? this.outputSchema.or(this.nullSchema)\n : z.nullable(this.outputSchema),\n z.nullable(this.querySchema),\n ) as never;\n },\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(schema?: ZodSchema) {\n return new ZodJSONColumn((schema ?? z.unknown()) as ZodSchema);\n },\n boolean: () => z.boolean(),\n buffer: () => z.instanceof(Buffer),\n unknown: () => z.unknown(),\n never: () => z.never(),\n stringSchema: () => z.string(),\n stringMin(min) {\n return z.string().min(min);\n },\n stringMax(max) {\n return z.string().max(max);\n },\n stringMinMax(min, max) {\n return z.string().min(min).max(max);\n },\n number: () => z.number(),\n int: () => z.number().int(),\n\n stringNumberDate: () => z.coerce.date(),\n\n timeInterval: () =>\n z.object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n minutes: z.number().optional(),\n seconds: z.number().optional(),\n }),\n\n bit: (max?: number) =>\n (max ? z.string().max(max) : z.string()).regex(/[10]/g),\n\n uuid: () => z.string().uuid(),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key].querySchema.optional();\n }\n }\n\n return z.object(shape) as never;\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ZodObject<ZodRawShape>;\n\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.shape[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = shape[key].optional();\n }\n }\n }\n\n return z.object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return (\n this.createSchema() as ZodObject<ZodRawShape>\n ).partial() as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const pkeys: Record<string, true> = {};\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].dataType && shape[key].data.primaryKey) {\n pkeys[key] = true;\n }\n }\n\n return (this.querySchema() as ZodObject<ZodRawShape>)\n .pick(pkeys)\n .required() as PkeySchema<T>;\n },\n\n /**\n * `error` allows to specify two following validation messages:\n *\n * ```ts\n * t.text().error({\n * required: 'This column is required',\n * invalidType: 'This column must be an integer',\n * });\n * ```\n *\n * It will be converted into `Zod`'s messages:\n *\n * ```ts\n * z.string({\n * required_error: 'This column is required',\n * invalid_type_error: 'This column must be an integer',\n * });\n * ```\n *\n * Each validation method can accept an error message as a string:\n *\n * ```ts\n * t.text().min(5, 'Must be 5 or more characters long');\n * t.text().max(5, 'Must be 5 or fewer characters long');\n * t.text().length(5, 'Must be exactly 5 characters long');\n * t.text().email('Invalid email address');\n * t.text().url('Invalid url');\n * t.text().emoji('Contains non-emoji characters');\n * t.text().uuid('Invalid UUID');\n * t.text().includes('tuna', 'Must include tuna');\n * t.text().startsWith('https://', 'Must provide secure URL');\n * t.text().endsWith('.com', 'Only .com domains allowed');\n * ```\n *\n * Except for `text().datetime()` and `text().ip()`:\n *\n * these methods can have their own parameters, so the error message is passed in object.\n *\n * ```ts\n * t.text().datetime({ message: 'Invalid datetime string! Must be UTC.' });\n * t.text().ip({ message: 'Invalid IP address' });\n * ```\n *\n * Error messages are supported for a JSON schema as well:\n *\n * ```ts\n * t.json((j) =>\n * j.object({\n * one: j\n * .string()\n * .error({ required: 'One is required' })\n * .min(5, 'Must be 5 or more characters long'),\n * two: j\n * .string()\n * .error({ invalidType: 'Two should be a string' })\n * .max(5, 'Must be 5 or fewer characters long'),\n * three: j.string().length(5, 'Must be exactly 5 characters long'),\n * }),\n * );\n * ```\n *\n * @param errors - object, key is either 'required' or 'invalidType', value is an error message\n */\n error(errors) {\n const { errors: old } = this.data;\n const newErrors = old ? { ...old, ...errors } : errors;\n const { required, invalidType } = newErrors;\n\n const errorMap: ZodErrorMap = (iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (typeof ctx.data === 'undefined') {\n return { message: required ?? ctx.defaultError };\n }\n return { message: invalidType ?? ctx.defaultError };\n };\n\n (this.inputSchema as ZodTypeAny)._def.errorMap =\n (this.outputSchema as ZodTypeAny)._def.errorMap =\n (this.querySchema as ZodTypeAny)._def.errorMap =\n errorMap;\n\n return setColumnData(this, 'errors', newErrors);\n },\n\n smallint: () => new SmallIntColumnZod(zodSchemaConfig),\n integer: () => new IntegerColumnZod(zodSchemaConfig),\n real: () => new RealColumnZod(zodSchemaConfig),\n smallSerial: () => new SmallSerialColumnZod(zodSchemaConfig),\n serial: () => new SerialColumnZod(zodSchemaConfig),\n\n bigint: () => new BigIntColumnZod(zodSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnZod(zodSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnZod(zodSchemaConfig),\n bigSerial: () => new BigSerialColumnZod(zodSchemaConfig),\n money: () => new MoneyColumnZod(zodSchemaConfig),\n varchar: (limit) => new VarCharColumnZod(zodSchemaConfig, limit),\n text: () => new TextColumnZod(zodSchemaConfig),\n string: (limit) => new StringColumnZod(zodSchemaConfig, limit),\n citext: () => new CitextColumnZod(zodSchemaConfig),\n\n date: () => new DateColumnZod(zodSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnZod(zodSchemaConfig, precision),\n timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= z.object({\n srid: z.number().optional(),\n lon: z.number(),\n lat: z.number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n },\n 'strip'\n>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ZodOptional<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n },\n 'strip'\n>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true\n ? ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n },\n 'strip'\n>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ZodRawShape = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return z.object(shape) as MapSchema<T, Key>;\n}\n"],"names":["JSONColumn","setDataValue","ArrayColumn","z","SmallIntColumn","IntegerColumn","RealColumn","SmallSerialColumn","SerialColumn","BigIntColumn","DecimalColumn","DoublePrecisionColumn","BigSerialColumn","MoneyColumn","VarCharColumn","TextColumn","StringColumn","CitextColumn","DateColumn","TimestampColumn","TimestampTZColumn","setColumnParse","setColumnParseNull","setColumnEncode","EnumColumn","makeColumnNullable","setColumnData"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,MAAM,sBAAoDA,cAIxD,CAAA;AAAA,EACA,YAAY,MAAmB,EAAA;AAC7B,IAAA,KAAA,CAAM,iBAAiB,MAAM,CAAA,CAAA;AAAA,GAC/B;AACF,CAAA;AASA,SAAS,WAQP,CAAA,MAAA,EAAW,GAAU,EAAA,KAAA,EAAgB,MAAuB,EAAA;AAC5D,EAAA,MAAM,MAAS,GAAAC,uBAAA,CAAa,MAAQ,EAAA,GAAA,EAAK,OAAO,MAAM,CAAA,CAAA;AACtD,EAAA,MAAA,CAAO,cAAc,MAAO,CAAA,WAAA,CAAY,GAAG,CAAA,CAAE,OAAO,MAAM,CAAA,CAAA;AAC1D,EAAA,MAAA,CAAO,eAAe,MAAO,CAAA,YAAA,CAAa,GAAG,CAAA,CAAE,OAAO,MAAM,CAAA,CAAA;AAC5D,EAAA,MAAA,CAAO,cAAc,MAAO,CAAA,WAAA,CAAY,GAAG,CAAA,CAAE,OAAO,MAAM,CAAA,CAAA;AAC1D,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAMA,SAAS,iBAAA,CAQP,MAAW,EAAA,GAAA,EAAU,MAAuB,EAAA;AAC5C,EAAA,MAAM,MAAS,GAAAA,uBAAA,CAAa,MAAQ,EAAA,GAAA,EAAK,MAAM,MAAM,CAAA,CAAA;AACrD,EAAA,MAAA,CAAO,WAAc,GAAA,MAAA,CAAO,WAAY,CAAA,GAAG,EAAE,MAAM,CAAA,CAAA;AACnD,EAAA,MAAA,CAAO,YAAe,GAAA,MAAA,CAAO,YAAa,CAAA,GAAG,EAAE,MAAM,CAAA,CAAA;AACrD,EAAA,MAAA,CAAO,WAAc,GAAA,MAAA,CAAO,WAAY,CAAA,GAAG,EAAE,MAAM,CAAA,CAAA;AACnD,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AA4BA,MAAM,YAAmC,GAAA;AAAA,EACvC,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EACA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EACA,MAAA,CAAO,OAAO,MAAQ,EAAA;AACpB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,QAAU,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAClD;AAAA,EACA,SAAS,MAAQ,EAAA;AACf,IAAA,MAAM,MAAS,GAAAA,uBAAA,CAAa,IAAM,EAAA,UAAA,EAAY,MAAM,MAAM,CAAA,CAAA;AAC1D,IAAA,IAAA,CAAK,WAAc,GAAA,IAAA,CAAK,WAAY,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AACnD,IAAA,IAAA,CAAK,YAAe,GAAA,IAAA,CAAK,YAAa,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AACrD,IAAA,IAAA,CAAK,WAAc,GAAA,IAAA,CAAK,WAAY,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AACnD,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AACF,CAAA,CAAA;AAYA,MAAM,uBAAsDC,eAM1D,CAAA;AAAA,EACA,YAAY,IAAY,EAAA;AACtB,IAAA,KAAA,CAAM,iBAAiB,IAAM,EAAAC,KAAA,CAAE,KAAM,CAAA,IAAA,CAAK,WAAW,CAAC,CAAA,CAAA;AAAA,GACxD;AACF,CAAA;AAEA,MAAO,CAAA,MAAA,CAAO,cAAe,CAAA,SAAA,EAAW,YAAY,CAAA,CAAA;AA+CpD,MAAM,aAA+B,GAAA;AAAA;AAAA,EAEnC,EAAA,CAAG,OAAO,MAAQ,EAAA;AAChB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC9C;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA;AAAA,EAGA,EAAA,CAAG,OAAO,MAAQ,EAAA;AAChB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC9C;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA;AAAA,EAGA,SAAS,MAAQ,EAAA;AACf,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,IAAM,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC1C;AAAA;AAAA,EAGA,YAAY,MAAQ,EAAA;AAClB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC3C;AAAA;AAAA,EAGA,SAAS,MAAQ,EAAA;AACf,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,IAAM,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC1C;AAAA;AAAA,EAGA,YAAY,MAAQ,EAAA;AAClB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC3C;AAAA;AAAA,EAGA,IAAA,CAAK,OAAO,MAAQ,EAAA;AAClB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,MAAQ,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAChD;AAAA;AAAA,EAGA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC9C;AAAA;AAAA,EAGA,OAAO,MAAQ,EAAA;AACb,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA;AAAA,EAGA,KAAK,MAAQ,EAAA;AACX,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AACF,CAAA,CAAA;AAMA,MAAM,0BAA0BC,kBAAgC,CAAA;AAAC,CAAA;AACjE,MAAO,CAAA,MAAA,CAAO,iBAAkB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMxD,MAAM,yBAAyBC,iBAA+B,CAAA;AAAC,CAAA;AAC/D,MAAO,CAAA,MAAA,CAAO,gBAAiB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAIvD,MAAM,sBAAsBC,cAA4B,CAAA;AAAC,CAAA;AACzD,MAAO,CAAA,MAAA,CAAO,aAAc,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMpD,MAAM,6BAA6BC,qBAAmC,CAAA;AAAC,CAAA;AACvE,MAAO,CAAA,MAAA,CAAO,oBAAqB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAM3D,MAAM,wBAAwBC,gBAA8B,CAAA;AAAC,CAAA;AAC7D,MAAO,CAAA,MAAA,CAAO,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AA0EtD,MAAM,aAAA,GAA+B,iCAC/B,YAD+B,CAAA,EAAA;AAAA,EAGnC,MAAM,MAAQ,EAAA;AACZ,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,GAChD;AAAA,EAEA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC9C;AAAA,EAEA,MAAM,MAAQ,EAAA;AACZ,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,GAChD;AAAA,EAEA,KAAK,MAAQ,EAAA;AACX,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,KAAK,MAAQ,EAAA;AACX,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,MAAM,MAAQ,EAAA;AACZ,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,GAChD;AAAA,EAEA,KAAK,MAAQ,EAAA;AACX,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,KAAA,CAAM,OAAO,MAAQ,EAAA;AACnB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,QAAA,CAAS,OAAO,MAAQ,EAAA;AACtB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,UAAY,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,UAAA,CAAW,OAAO,MAAQ,EAAA;AACxB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,YAAc,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GACtD;AAAA,EAEA,QAAA,CAAS,OAAO,MAAQ,EAAA;AACtB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,UAAY,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,QAAA,CAAS,MAAS,GAAA,EAAI,EAAA;AACpB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,UAAY,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GACrD;AAAA,EAEA,EAAA,CAAG,MAAS,GAAA,EAAI,EAAA;AACd,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,KAAK,MAAQ,EAAA;AACX,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,YAAY,MAAQ,EAAA;AAClB,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,aAAA,EAAe,MAAM,CAAA,CAAA;AAAA,GACtD;AAAA,EAEA,YAAY,MAAQ,EAAA;AAClB,IAAO,OAAA,iBAAA,CAAkB,IAAM,EAAA,aAAA,EAAe,MAAM,CAAA,CAAA;AAAA,GACtD;AACF,CAAA,CAAA,CAAA;AAMA,MAAM,wBAAwBC,gBAA8B,CAAA;AAAC,CAAA;AAC7D,MAAO,CAAA,MAAA,CAAO,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMtD,MAAM,yBAAyBC,iBAA+B,CAAA;AAAC,CAAA;AAC/D,MAAO,CAAA,MAAA,CAAO,gBAAiB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMvD,MAAM,iCAAiCC,yBAAuC,CAAA;AAAC,CAAA;AAC/E,MAAO,CAAA,MAAA,CAAO,wBAAyB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAM/D,MAAM,2BAA2BC,mBAAiC,CAAA;AAAC,CAAA;AACnE,MAAO,CAAA,MAAA,CAAO,kBAAmB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAIzD,MAAM,uBAAuBC,eAA6B,CAAA;AAAC,CAAA;AAC3D,MAAO,CAAA,MAAA,CAAO,cAAe,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMrD,MAAM,yBAAyBC,iBAA+B,CAAA;AAAC,CAAA;AAC/D,MAAO,CAAA,MAAA,CAAO,gBAAiB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAIvD,MAAM,sBAAsBC,cAA4B,CAAA;AAAC,CAAA;AACzD,MAAO,CAAA,MAAA,CAAO,aAAc,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMpD,MAAM,wBAAwBC,gBAA8B,CAAA;AAAC,CAAA;AAC7D,MAAO,CAAA,MAAA,CAAO,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAMtD,MAAM,wBAAwBC,gBAA8B,CAAA;AAAC,CAAA;AAC7D,MAAO,CAAA,MAAA,CAAO,eAAgB,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAUtD,MAAM,WAA2B,GAAA;AAAA,EAC/B,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AAAA,EACA,GAAA,CAAI,OAAO,MAAQ,EAAA;AACjB,IAAA,OAAO,WAAY,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,GAC/C;AACF,CAAA,CAAA;AAIA,MAAM,sBAAsBC,cAA4B,CAAA;AAAC,CAAA;AACzD,MAAO,CAAA,MAAA,CAAO,aAAc,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAMlD,MAAM,+BAA+BC,mBAAiC,CAAA;AAAC,CAAA;AACvE,MAAO,CAAA,MAAA,CAAO,sBAAuB,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAM3D,MAAM,2BAA2BC,qBAAmC,CAAA;AAAC,CAAA;AACrE,MAAO,CAAA,MAAA,CAAO,kBAAmB,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAQvD,IAAI,WAAA,CAAA;AAqLJ,MAAM,eAAkB,GAAA,CAAC,KAAmB,KAAA,IAAI,KAAK,KAAe,CAAA,CAAA;AAE7D,MAAM,eAAmC,GAAA;AAAA,EAC9C,IAAM,EAAA,KAAA,CAAA;AAAA,EACN,KAAA,CAAM,QAAQ,EAAI,EAAA;AAChB,IAAO,OAAAC,kBAAA,CAAe,IAAe,EAAA,EAAA,EAAI,MAAM,CAAA,CAAA;AAAA,GACjD;AAAA,EACA,SAAA,CAAU,QAAQ,EAAI,EAAA;AACpB,IAAO,OAAAC,sBAAA,CAAmB,IAAe,EAAA,EAAA,EAAI,MAAM,CAAA,CAAA;AAAA,GACrD;AAAA,EACA,MAAA,CAAO,QAAQ,EAAI,EAAA;AACjB,IAAO,OAAAC,mBAAA,CAAgB,IAAe,EAAA,EAAA,EAAI,MAAM,CAAA,CAAA;AAAA,GAClD;AAAA,EACA,OAAO,MAAQ,EAAA;AACb,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EACA,YAAe,GAAA;AACb,IAAA,MAAM,IAAI,IAAK,CAAA,KAAA,CAAMpB,MAAE,MAAO,EAAA,EAAG,KAAK,KAAc,CAAA,CAAA;AACpD,IAAE,CAAA,CAAA,IAAA,CAAK,eAAe,IAAK,CAAA,KAAA,CAAA;AAC3B,IAAO,OAAA,CAAA,CAAA;AAAA,GACT;AAAA,EACA,UAAa,GAAA;AACX,IAAA,MAAM,IAAI,IAAK,CAAA,KAAA,CAAMA,KAAE,CAAA,IAAA,IAAQ,eAAe,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAE,KAAK,YAAe,GAAA,eAAA,CAAA;AACtB,IAAO,OAAA,CAAA,CAAA;AAAA,GACT;AAAA,EACA,IAAA,CAAK,UAAU,IAAM,EAAA;AACnB,IAAO,OAAA,IAAIqB,eAAW,eAAiB,EAAA,QAAA,EAAU,MAAMrB,KAAE,CAAA,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,GACrE;AAAA,EACA,MAAM,IAAM,EAAA;AACV,IAAO,OAAA,IAAI,eAAe,IAAI,CAAA,CAAA;AAAA,GAChC;AAAA,EACA,QAAW,GAAA;AACT,IAAO,OAAAsB,6BAAA;AAAA,MACL,IAAA;AAAA,MACAtB,KAAA,CAAE,QAAS,CAAA,IAAA,CAAK,WAAW,CAAA;AAAA,MAC3B,IAAA,CAAK,UACD,GAAA,IAAA,CAAK,YAAa,CAAA,EAAA,CAAG,IAAK,CAAA,UAAU,CACpC,GAAAA,KAAA,CAAE,QAAS,CAAA,IAAA,CAAK,YAAY,CAAA;AAAA,MAChCA,KAAA,CAAE,QAAS,CAAA,IAAA,CAAK,WAAW,CAAA;AAAA,KAC7B,CAAA;AAAA,GACF;AAAA,EACA,KAAgD,MAAoB,EAAA;AAClE,IAAA,OAAO,IAAI,aAAA,CAAe,MAAU,IAAA,IAAA,GAAA,MAAA,GAAAA,KAAA,CAAE,SAAuB,CAAA,CAAA;AAAA,GAC/D;AAAA,EACA,OAAA,EAAS,MAAMA,KAAA,CAAE,OAAQ,EAAA;AAAA,EACzB,MAAQ,EAAA,MAAMA,KAAE,CAAA,UAAA,CAAW,MAAM,CAAA;AAAA,EACjC,OAAA,EAAS,MAAMA,KAAA,CAAE,OAAQ,EAAA;AAAA,EACzB,KAAA,EAAO,MAAMA,KAAA,CAAE,KAAM,EAAA;AAAA,EACrB,YAAA,EAAc,MAAMA,KAAA,CAAE,MAAO,EAAA;AAAA,EAC7B,UAAU,GAAK,EAAA;AACb,IAAA,OAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAAA,GAC3B;AAAA,EACA,UAAU,GAAK,EAAA;AACb,IAAA,OAAOA,KAAE,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAAA,GAC3B;AAAA,EACA,YAAA,CAAa,KAAK,GAAK,EAAA;AACrB,IAAA,OAAOA,MAAE,MAAO,EAAA,CAAE,IAAI,GAAG,CAAA,CAAE,IAAI,GAAG,CAAA,CAAA;AAAA,GACpC;AAAA,EACA,MAAA,EAAQ,MAAMA,KAAA,CAAE,MAAO,EAAA;AAAA,EACvB,GAAK,EAAA,MAAMA,KAAE,CAAA,MAAA,GAAS,GAAI,EAAA;AAAA,EAE1B,gBAAkB,EAAA,MAAMA,KAAE,CAAA,MAAA,CAAO,IAAK,EAAA;AAAA,EAEtC,YAAA,EAAc,MACZA,KAAA,CAAE,MAAO,CAAA;AAAA,IACP,KAAO,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC3B,MAAQ,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC5B,IAAM,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC1B,KAAO,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC3B,OAAS,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC7B,OAAS,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,GAC9B,CAAA;AAAA,EAEH,GAAK,EAAA,CAAC,GACH,KAAA,CAAA,GAAA,GAAMA,MAAE,MAAO,EAAA,CAAE,GAAI,CAAA,GAAG,CAAI,GAAAA,KAAA,CAAE,MAAO,EAAA,EAAG,MAAM,OAAO,CAAA;AAAA,EAExD,IAAM,EAAA,MAAMA,KAAE,CAAA,MAAA,GAAS,IAAK,EAAA;AAAA,EAE5B,WAAc,GAAA;AACZ,IAAO,OAAA,SAAA,CAAU,MAAM,aAAa,CAAA,CAAA;AAAA,GACtC;AAAA,EAEA,YAAe,GAAA;AACb,IAAO,OAAA,SAAA,CAAU,MAAM,cAAc,CAAA,CAAA;AAAA,GACvC;AAAA,EAEA,WAAc,GAAA;AACZ,IAAA,MAAM,QAAqB,EAAC,CAAA;AAC5B,IAAA,MAAM,EAAE,KAAA,EAAO,OAAQ,EAAA,GAAI,KAAK,SAAU,CAAA,OAAA,CAAA;AAE1C,IAAA,KAAA,MAAW,OAAO,OAAS,EAAA;AACzB,MAAI,IAAA,OAAA,CAAQ,GAAG,CAAA,CAAE,QAAU,EAAA;AACzB,QAAA,KAAA,CAAM,GAAG,CAAI,GAAA,OAAA,CAAQ,GAAG,CAAA,CAAE,YAAY,QAAS,EAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAEA,IAAO,OAAAA,KAAA,CAAE,OAAO,KAAK,CAAA,CAAA;AAAA,GACvB;AAAA,EAEA,YAA8D,GAAA;AAC5D,IAAM,MAAA,KAAA,GAAQ,KAAK,WAAY,EAAA,CAAA;AAE/B,IAAA,MAAM,QAAqB,EAAC,CAAA;AAC5B,IAAA,MAAM,EAAE,KAAA,EAAO,OAAQ,EAAA,GAAI,KAAK,SAAU,CAAA,OAAA,CAAA;AAE1C,IAAA,KAAA,MAAW,OAAO,OAAS,EAAA;AACzB,MAAM,MAAA,MAAA,GAAS,QAAQ,GAAG,CAAA,CAAA;AAC1B,MAAA,IAAI,MAAO,CAAA,QAAA,IAAY,CAAC,MAAA,CAAO,KAAK,UAAY,EAAA;AAC9C,QAAA,KAAA,CAAM,GAAG,CAAA,GAAI,KAAM,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAE5B,QAAA,IAAI,OAAO,IAAK,CAAA,UAAA,IAAc,MAAO,CAAA,IAAA,CAAK,YAAY,KAAW,CAAA,EAAA;AAC/D,UAAA,KAAA,CAAM,GAAG,CAAA,GAAI,KAAM,CAAA,GAAG,EAAE,QAAS,EAAA,CAAA;AAAA,SACnC;AAAA,OACF;AAAA,KACF;AAEA,IAAO,OAAAA,KAAA,CAAE,OAAO,KAAK,CAAA,CAAA;AAAA,GACvB;AAAA,EAEA,YAA8D,GAAA;AAC5D,IACE,OAAA,IAAA,CAAK,YAAa,EAAA,CAClB,OAAQ,EAAA,CAAA;AAAA,GACZ;AAAA,EAEA,UAA4D,GAAA;AAC1D,IAAA,MAAM,QAA8B,EAAC,CAAA;AAErC,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,KAAM,EAAA;AAAA,QACf,IAAK,CAAA,SAAA,CAAA;AACT,IAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,MAAI,IAAA,KAAA,CAAM,GAAG,CAAE,CAAA,QAAA,IAAY,MAAM,GAAG,CAAA,CAAE,KAAK,UAAY,EAAA;AACrD,QAAA,KAAA,CAAM,GAAG,CAAI,GAAA,IAAA,CAAA;AAAA,OACf;AAAA,KACF;AAEA,IAAA,OAAQ,KAAK,WAAY,EAAA,CACtB,IAAK,CAAA,KAAK,EACV,QAAS,EAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiEA,MAAM,MAAQ,EAAA;AACZ,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAI,EAAA,GAAI,IAAK,CAAA,IAAA,CAAA;AAC7B,IAAA,MAAM,SAAY,GAAA,GAAA,GAAM,cAAK,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,CAAA,EAAQ,MAAW,CAAA,GAAA,MAAA,CAAA;AAChD,IAAM,MAAA,EAAE,QAAU,EAAA,WAAA,EAAgB,GAAA,SAAA,CAAA;AAElC,IAAM,MAAA,QAAA,GAAwB,CAAC,GAAA,EAAK,GAAQ,KAAA;AAC1C,MAAA,IAAI,IAAI,IAAS,KAAA,cAAA;AAAgB,QAAO,OAAA,EAAE,OAAS,EAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AACpE,MAAI,IAAA,OAAO,GAAI,CAAA,IAAA,KAAS,WAAa,EAAA;AACnC,QAAA,OAAO,EAAE,OAAA,EAAS,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AAAA,OACjD;AACA,MAAA,OAAO,EAAE,OAAA,EAAS,WAAe,IAAA,IAAA,GAAA,WAAA,GAAA,GAAA,CAAI,YAAa,EAAA,CAAA;AAAA,KACpD,CAAA;AAEA,IAAC,IAAA,CAAK,WAA2B,CAAA,IAAA,CAAK,QACnC,GAAA,IAAA,CAAK,YAA4B,CAAA,IAAA,CAAK,QACtC,GAAA,IAAA,CAAK,WAA2B,CAAA,IAAA,CAAK,QACpC,GAAA,QAAA,CAAA;AAEJ,IAAO,OAAAuB,wBAAA,CAAc,IAAM,EAAA,QAAA,EAAU,SAAS,CAAA,CAAA;AAAA,GAChD;AAAA,EAEA,QAAU,EAAA,MAAM,IAAI,iBAAA,CAAkB,eAAe,CAAA;AAAA,EACrD,OAAS,EAAA,MAAM,IAAI,gBAAA,CAAiB,eAAe,CAAA;AAAA,EACnD,IAAM,EAAA,MAAM,IAAI,aAAA,CAAc,eAAe,CAAA;AAAA,EAC7C,WAAa,EAAA,MAAM,IAAI,oBAAA,CAAqB,eAAe,CAAA;AAAA,EAC3D,MAAQ,EAAA,MAAM,IAAI,eAAA,CAAgB,eAAe,CAAA;AAAA,EAEjD,MAAQ,EAAA,MAAM,IAAI,eAAA,CAAgB,eAAe,CAAA;AAAA,EACjD,OAAA,EAAS,CAAC,SAAW,EAAA,KAAA,KACnB,IAAI,gBAAiB,CAAA,eAAA,EAAiB,WAAW,KAAK,CAAA;AAAA,EACxD,eAAiB,EAAA,MAAM,IAAI,wBAAA,CAAyB,eAAe,CAAA;AAAA,EACnE,SAAW,EAAA,MAAM,IAAI,kBAAA,CAAmB,eAAe,CAAA;AAAA,EACvD,KAAO,EAAA,MAAM,IAAI,cAAA,CAAe,eAAe,CAAA;AAAA,EAC/C,SAAS,CAAC,KAAA,KAAU,IAAI,gBAAA,CAAiB,iBAAiB,KAAK,CAAA;AAAA,EAC/D,IAAM,EAAA,MAAM,IAAI,aAAA,CAAc,eAAe,CAAA;AAAA,EAC7C,QAAQ,CAAC,KAAA,KAAU,IAAI,eAAA,CAAgB,iBAAiB,KAAK,CAAA;AAAA,EAC7D,MAAQ,EAAA,MAAM,IAAI,eAAA,CAAgB,eAAe,CAAA;AAAA,EAEjD,IAAM,EAAA,MAAM,IAAI,aAAA,CAAc,eAAe,CAAA;AAAA,EAC7C,eAAe,CAAC,SAAA,KACd,IAAI,sBAAA,CAAuB,iBAAiB,SAAS,CAAA;AAAA,EACvD,WAAW,CAAC,SAAA,KAAc,IAAI,kBAAA,CAAmB,iBAAiB,SAAS,CAAA;AAAA,EAE3E,oBAAsB,EAAA,MACnB,WAAgB,IAAA,IAAA,GAAA,WAAA,GAAA,WAAA,GAAAvB,KAAA,CAAE,MAAO,CAAA;AAAA,IACxB,IAAM,EAAAA,KAAA,CAAE,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,IAC1B,GAAA,EAAKA,MAAE,MAAO,EAAA;AAAA,IACd,GAAA,EAAKA,MAAE,MAAO,EAAA;AAAA,GACf,CAAA;AACL,EAAA;AAoDA,SAAS,SAAA,CAGP,OAAU,SAAmC,EAAA;AAC7C,EAAA,MAAM,QAAqB,EAAC,CAAA;AAC5B,EAAA,MAAM,EAAE,KAAA,EAAO,OAAQ,EAAA,GAAI,MAAM,SAAU,CAAA,OAAA,CAAA;AAE3C,EAAA,KAAA,MAAW,OAAO,OAAS,EAAA;AACzB,IAAI,IAAA,OAAA,CAAQ,GAAG,CAAA,CAAE,QAAU,EAAA;AACzB,MAAA,KAAA,CAAM,GAAG,CAAA,GAAI,OAAQ,CAAA,GAAG,EAAE,SAAS,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AAEA,EAAO,OAAAA,KAAA,CAAE,OAAO,KAAK,CAAA,CAAA;AACvB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n AsTypeArg,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n ColumnTypeBase,\n EncodeColumn,\n NullableColumn,\n ParseColumn,\n makeColumnNullable,\n ErrorMessage,\n setDataValue,\n StringTypeData,\n ErrorMessages,\n setColumnData,\n ColumnDataBase,\n ParseNullColumn,\n} from 'orchid-core';\nimport {\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n ColumnType,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n} from 'pqb';\nimport {\n z,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodEnum,\n ZodNever,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRawShape,\n ZodString,\n ZodType,\n ZodTypeAny,\n ZodUnion,\n ZodUnknown,\n} from 'zod';\nimport { ZodErrorMap } from 'zod/lib/ZodError';\n\nclass ZodJSONColumn<ZodSchema extends ZodTypeAny> extends JSONColumn<\n ZodSchema['_output'],\n ZodSchemaConfig,\n ZodSchema\n> {\n constructor(schema: ZodSchema) {\n super(zodSchemaConfig, schema);\n }\n}\n\ntype NumberMethodSchema<Key extends string> = {\n [K in Key]: (\n value: unknown,\n params?: ErrorMessage,\n ) => NumberMethodSchema<Key>;\n};\n\nfunction applyMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSchema<Key>;\n outputSchema: NumberMethodSchema<Key>;\n querySchema: NumberMethodSchema<Key>;\n },\n>(column: T, key: Key, value: unknown, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, value, params);\n cloned.inputSchema = column.inputSchema[key](value, params);\n cloned.outputSchema = column.outputSchema[key](value, params);\n cloned.querySchema = column.querySchema[key](value, params);\n return cloned;\n}\n\ntype NumberMethodSimpleSchema<Key extends string> = {\n [K in Key]: (params?: ErrorMessage) => NumberMethodSimpleSchema<Key>;\n};\n\nfunction applySimpleMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSimpleSchema<Key>;\n outputSchema: NumberMethodSimpleSchema<Key>;\n querySchema: NumberMethodSimpleSchema<Key>;\n },\n>(column: T, key: Key, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, true, params);\n column.inputSchema = column.inputSchema[key](params);\n column.outputSchema = column.outputSchema[key](params);\n column.querySchema = column.querySchema[key](params);\n return cloned;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a maximum length (inclusive)\n max<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a specific length\n length<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a value to be non-empty\n nonEmpty<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<Date> = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, params);\n },\n nonEmpty(params) {\n const cloned = setDataValue(this, 'nonEmpty', true, params);\n this.inputSchema = this.inputSchema.nonempty(params);\n this.outputSchema = this.outputSchema.nonempty(params);\n this.querySchema = this.querySchema.nonempty(params);\n return cloned;\n },\n};\n\ninterface ZodArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ZodArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(zodSchemaConfig, item, z.array(item.inputSchema));\n }\n}\n\nObject.assign(ZodArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n lte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n max<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n min<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n positive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonNegative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n negative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonPositive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n step<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n int<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n finite<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n safe<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst numberMethods: NumberMethods = {\n // Require a value to be lower than a given number\n lt(value, params) {\n return applyMethod(this, 'lt', value, params);\n },\n\n // Require a value to be lower than or equal to a given number (the same as `max`)\n lte(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be lower than or equal to a given number\n max(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, params);\n },\n\n // Require a value to be greater than or equal to a given number (the same as `min`)\n gte(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than or equal to a given number\n min(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, params);\n },\n\n // Require a value to be a multiple of a given number\n step(value, params) {\n return applyMethod(this, 'step', value, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', params);\n },\n\n // Require the value to be less than or equal to Number.MAX_SAFE_INTEGER\n safe(params) {\n return applySimpleMethod(this, 'safe', params);\n },\n};\n\ninterface SmallIntColumnZod\n extends SmallIntColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnZod extends SmallIntColumn<ZodSchemaConfig> {}\nObject.assign(SmallIntColumnZod.prototype, numberMethods);\n\ninterface IntegerColumnZod\n extends IntegerColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnZod extends IntegerColumn<ZodSchemaConfig> {}\nObject.assign(IntegerColumnZod.prototype, numberMethods);\n\ninterface RealColumnZod extends RealColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass RealColumnZod extends RealColumn<ZodSchemaConfig> {}\nObject.assign(RealColumnZod.prototype, numberMethods);\n\ninterface SmallSerialColumnZod\n extends SmallSerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnZod extends SmallSerialColumn<ZodSchemaConfig> {}\nObject.assign(SmallSerialColumnZod.prototype, numberMethods);\n\ninterface SerialColumnZod\n extends SerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnZod extends SerialColumn<ZodSchemaConfig> {}\nObject.assign(SerialColumnZod.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid url\n url<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be an emoji\n emoji<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid\n cuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Validate the value over the given regular expression\n regex<T extends ColumnTypeBase>(\n this: T,\n value: RegExp,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to include a given string\n includes<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['datetime'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Check a value to be a valid ip address\n ip<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['ip'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Trim the value during a validation\n trim<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', params);\n },\n\n cuid(params) {\n return applySimpleMethod(this, 'cuid', params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, params);\n },\n\n datetime(params = {}) {\n return applyMethod(this, 'datetime', params, params);\n },\n\n ip(params = {}) {\n return applyMethod(this, 'ip', params, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', params);\n },\n};\n\ninterface BigIntColumnZod\n extends BigIntColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnZod extends BigIntColumn<ZodSchemaConfig> {}\nObject.assign(BigIntColumnZod.prototype, stringMethods);\n\ninterface DecimalColumnZod\n extends DecimalColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnZod extends DecimalColumn<ZodSchemaConfig> {}\nObject.assign(DecimalColumnZod.prototype, stringMethods);\n\ninterface DoublePrecisionColumnZod\n extends DoublePrecisionColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnZod extends DoublePrecisionColumn<ZodSchemaConfig> {}\nObject.assign(DoublePrecisionColumnZod.prototype, stringMethods);\n\ninterface BigSerialColumnZod\n extends BigSerialColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnZod extends BigSerialColumn<ZodSchemaConfig> {}\nObject.assign(BigSerialColumnZod.prototype, stringMethods);\n\ninterface MoneyColumnZod extends MoneyColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnZod extends MoneyColumn<ZodSchemaConfig> {}\nObject.assign(MoneyColumnZod.prototype, numberMethods);\n\ninterface VarCharColumnZod\n extends VarCharColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnZod extends VarCharColumn<ZodSchemaConfig> {}\nObject.assign(VarCharColumnZod.prototype, stringMethods);\n\ninterface TextColumnZod extends TextColumn<ZodSchemaConfig>, StringMethods {}\n\nclass TextColumnZod extends TextColumn<ZodSchemaConfig> {}\nObject.assign(TextColumnZod.prototype, stringMethods);\n\ninterface StringColumnZod\n extends StringColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass StringColumnZod extends StringColumn<ZodSchemaConfig> {}\nObject.assign(StringColumnZod.prototype, stringMethods);\n\ninterface CitextColumnZod\n extends CitextColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnZod extends CitextColumn<ZodSchemaConfig> {}\nObject.assign(CitextColumnZod.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n};\n\ninterface DateColumnZod extends DateColumn<ZodSchemaConfig>, DateMethods {}\n\nclass DateColumnZod extends DateColumn<ZodSchemaConfig> {}\nObject.assign(DateColumnZod.prototype, dateMethods);\n\ninterface TimestampNoTzColumnZod\n extends TimestampColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnZod extends TimestampColumn<ZodSchemaConfig> {}\nObject.assign(TimestampNoTzColumnZod.prototype, dateMethods);\n\ninterface TimestampColumnZod\n extends TimestampTZColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnZod extends TimestampTZColumn<ZodSchemaConfig> {}\nObject.assign(TimestampColumnZod.prototype, dateMethods);\n\ntype PointSchemaZod = ZodObject<{\n srid: ZodOptional<ZodNumber>;\n lon: ZodNumber;\n lat: ZodNumber;\n}>;\n\nlet pointSchema: PointSchemaZod | undefined;\n\nexport interface ZodSchemaConfig {\n type: ZodTypeAny;\n\n parse<\n T extends ColumnTypeBase,\n OutputSchema extends ZodTypeAny,\n Output = OutputSchema['_output'],\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Output,\n ): ParseColumn<T, OutputSchema, Output>;\n\n parseNull<\n T extends ColumnTypeBase,\n NullSchema extends ZodTypeAny,\n NullType = NullSchema['_output'],\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): ParseNullColumn<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends ZodTypeAny,\n Input = InputSchema['_output'],\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: Input) => unknown,\n ): EncodeColumn<T, InputSchema, Input>;\n\n asType<\n T,\n Types extends AsTypeArg<ZodTypeAny>,\n TypeSchema extends ZodTypeAny = Types extends { type: ZodTypeAny }\n ? Types['type']\n : never,\n Type = TypeSchema['_output'],\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']['_output']\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']['_output']\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']['_output']\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n dateAsNumber<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodNumber, number>;\n\n dateAsDate<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodDate, Date>;\n\n enum<U extends string, T extends readonly [U, ...U[]]>(\n dataType: string,\n type: T,\n ): EnumColumn<\n ZodSchemaConfig,\n // remove readonly flag for Zod\n ZodEnum<{\n -readonly [P in keyof T]: T[P];\n }>,\n U,\n T\n >;\n\n array<Item extends ArrayColumnValue>(item: Item): ZodArrayColumn<Item>;\n\n nullable<T extends ColumnTypeBase>(\n this: T,\n ): NullableColumn<\n T,\n ZodNullable<T['inputSchema']>,\n T['nullSchema'] extends ZodTypeAny\n ? ZodUnion<[T['outputSchema'], T['nullSchema']]>\n : ZodNullable<T['outputSchema']>,\n ZodNullable<T['querySchema']>\n >;\n\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(\n schema?: ZodSchema,\n ): ZodJSONColumn<ZodSchema>;\n\n boolean(): ZodBoolean;\n buffer(): ZodType<Buffer>;\n unknown(): ZodUnknown;\n never(): ZodNever;\n stringSchema(): ZodString;\n stringMin(max: number): ZodString;\n stringMax(max: number): ZodString;\n stringMinMax(min: number, max: number): ZodString;\n number(): ZodNumber;\n int(): ZodNumber;\n stringNumberDate(): ZodDate;\n timeInterval(): ZodObject<{\n years: ZodOptional<ZodNumber>;\n months: ZodOptional<ZodNumber>;\n days: ZodOptional<ZodNumber>;\n hours: ZodOptional<ZodNumber>;\n minutes: ZodOptional<ZodNumber>;\n seconds: ZodOptional<ZodNumber>;\n }>;\n bit(max: number): ZodString;\n uuid(): ZodString;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T extends ColumnTypeBase>(this: T, error: ErrorMessages): T;\n\n smallint(): SmallIntColumnZod;\n integer(): IntegerColumnZod;\n real(): RealColumnZod;\n smallSerial(): SmallSerialColumnZod;\n serial(): SerialColumnZod;\n\n bigint(): BigIntColumnZod;\n decimal(precision?: number, scale?: number): DecimalColumnZod;\n doublePrecision(): DoublePrecisionColumnZod;\n bigSerial(): BigSerialColumnZod;\n money(): MoneyColumnZod;\n varchar(limit?: number): VarCharColumnZod;\n text(): TextColumnZod;\n string(limit?: number): StringColumnZod;\n citext(): CitextColumnZod;\n\n date(): DateColumnZod;\n timestampNoTZ(precision?: number): TimestampNoTzColumnZod;\n timestamp(precision?: number): TimestampColumnZod;\n\n geographyPointSchema(): PointSchemaZod;\n}\n\n// parse a date string to date object, with respect to null\nconst parseDateToDate = (value: unknown) => new Date(value as string);\n\nexport const zodSchemaConfig: ZodSchemaConfig = {\n type: undefined as unknown as ZodTypeAny,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n dateAsNumber() {\n const c = this.parse(z.number(), Date.parse as never) as ColumnTypeBase;\n c.data.defaultParse = Date.parse;\n return c as never;\n },\n dateAsDate() {\n const c = this.parse(z.date(), parseDateToDate) as ColumnTypeBase;\n c.data.defaultParse = parseDateToDate;\n return c as never;\n },\n enum(dataType, type) {\n return new EnumColumn(zodSchemaConfig, dataType, type, z.enum(type));\n },\n array(item) {\n return new ZodArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this,\n z.nullable(this.inputSchema),\n this.nullSchema\n ? this.outputSchema.or(this.nullSchema)\n : z.nullable(this.outputSchema),\n z.nullable(this.querySchema),\n ) as never;\n },\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(schema?: ZodSchema) {\n return new ZodJSONColumn((schema ?? z.unknown()) as ZodSchema);\n },\n boolean: () => z.boolean(),\n buffer: () => z.instanceof(Buffer),\n unknown: () => z.unknown(),\n never: () => z.never(),\n stringSchema: () => z.string(),\n stringMin(min) {\n return z.string().min(min);\n },\n stringMax(max) {\n return z.string().max(max);\n },\n stringMinMax(min, max) {\n return z.string().min(min).max(max);\n },\n number: () => z.number(),\n int: () => z.number().int(),\n\n stringNumberDate: () => z.coerce.date(),\n\n timeInterval: () =>\n z.object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n minutes: z.number().optional(),\n seconds: z.number().optional(),\n }),\n\n bit: (max?: number) =>\n (max ? z.string().max(max) : z.string()).regex(/[10]/g),\n\n uuid: () => z.string().uuid(),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key].querySchema.optional();\n }\n }\n\n return z.object(shape) as never;\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ZodObject<ZodRawShape>;\n\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.shape[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = shape[key].optional();\n }\n }\n }\n\n return z.object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return (\n this.createSchema() as ZodObject<ZodRawShape>\n ).partial() as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const pkeys: Record<string, true> = {};\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].dataType && shape[key].data.primaryKey) {\n pkeys[key] = true;\n }\n }\n\n return (this.querySchema() as ZodObject<ZodRawShape>)\n .pick(pkeys)\n .required() as PkeySchema<T>;\n },\n\n /**\n * `error` allows to specify two following validation messages:\n *\n * ```ts\n * t.text().error({\n * required: 'This column is required',\n * invalidType: 'This column must be an integer',\n * });\n * ```\n *\n * It will be converted into `Zod`'s messages:\n *\n * ```ts\n * z.string({\n * required_error: 'This column is required',\n * invalid_type_error: 'This column must be an integer',\n * });\n * ```\n *\n * Each validation method can accept an error message as a string:\n *\n * ```ts\n * t.text().min(5, 'Must be 5 or more characters long');\n * t.text().max(5, 'Must be 5 or fewer characters long');\n * t.text().length(5, 'Must be exactly 5 characters long');\n * t.text().email('Invalid email address');\n * t.text().url('Invalid url');\n * t.text().emoji('Contains non-emoji characters');\n * t.text().uuid('Invalid UUID');\n * t.text().includes('tuna', 'Must include tuna');\n * t.text().startsWith('https://', 'Must provide secure URL');\n * t.text().endsWith('.com', 'Only .com domains allowed');\n * ```\n *\n * Except for `text().datetime()` and `text().ip()`:\n *\n * these methods can have their own parameters, so the error message is passed in object.\n *\n * ```ts\n * t.text().datetime({ message: 'Invalid datetime string! Must be UTC.' });\n * t.text().ip({ message: 'Invalid IP address' });\n * ```\n *\n * Error messages are supported for a JSON schema as well:\n *\n * ```ts\n * t.json((j) =>\n * j.object({\n * one: j\n * .string()\n * .error({ required: 'One is required' })\n * .min(5, 'Must be 5 or more characters long'),\n * two: j\n * .string()\n * .error({ invalidType: 'Two should be a string' })\n * .max(5, 'Must be 5 or fewer characters long'),\n * three: j.string().length(5, 'Must be exactly 5 characters long'),\n * }),\n * );\n * ```\n *\n * @param errors - object, key is either 'required' or 'invalidType', value is an error message\n */\n error(errors) {\n const { errors: old } = this.data;\n const newErrors = old ? { ...old, ...errors } : errors;\n const { required, invalidType } = newErrors;\n\n const errorMap: ZodErrorMap = (iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (typeof ctx.data === 'undefined') {\n return { message: required ?? ctx.defaultError };\n }\n return { message: invalidType ?? ctx.defaultError };\n };\n\n (this.inputSchema as ZodTypeAny)._def.errorMap =\n (this.outputSchema as ZodTypeAny)._def.errorMap =\n (this.querySchema as ZodTypeAny)._def.errorMap =\n errorMap;\n\n return setColumnData(this, 'errors', newErrors);\n },\n\n smallint: () => new SmallIntColumnZod(zodSchemaConfig),\n integer: () => new IntegerColumnZod(zodSchemaConfig),\n real: () => new RealColumnZod(zodSchemaConfig),\n smallSerial: () => new SmallSerialColumnZod(zodSchemaConfig),\n serial: () => new SerialColumnZod(zodSchemaConfig),\n\n bigint: () => new BigIntColumnZod(zodSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnZod(zodSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnZod(zodSchemaConfig),\n bigSerial: () => new BigSerialColumnZod(zodSchemaConfig),\n money: () => new MoneyColumnZod(zodSchemaConfig),\n varchar: (limit) => new VarCharColumnZod(zodSchemaConfig, limit),\n text: () => new TextColumnZod(zodSchemaConfig),\n string: (limit) => new StringColumnZod(zodSchemaConfig, limit),\n citext: () => new CitextColumnZod(zodSchemaConfig),\n\n date: () => new DateColumnZod(zodSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnZod(zodSchemaConfig, precision),\n timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= z.object({\n srid: z.number().optional(),\n lon: z.number(),\n lat: z.number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n },\n 'strip'\n>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ZodOptional<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n },\n 'strip'\n>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true\n ? ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n },\n 'strip'\n>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ZodRawShape = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return z.object(shape) as MapSchema<T, Key>;\n}\n"],"names":["JSONColumn","setDataValue","ArrayColumn","z","SmallIntColumn","IntegerColumn","RealColumn","SmallSerialColumn","SerialColumn","BigIntColumn","DecimalColumn","DoublePrecisionColumn","BigSerialColumn","MoneyColumn","VarCharColumn","TextColumn","StringColumn","CitextColumn","DateColumn","TimestampColumn","TimestampTZColumn","setColumnParse","setColumnParseNull","setColumnEncode","EnumColumn","makeColumnNullable","setColumnData"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -2,25 +2,6 @@ import { setDataValue, makeColumnNullable, setColumnData } from 'orchid-core';
2
2
  import { ArrayColumn, SmallIntColumn, IntegerColumn, RealColumn, SmallSerialColumn, SerialColumn, BigIntColumn, DecimalColumn, DoublePrecisionColumn, BigSerialColumn, MoneyColumn, VarCharColumn, TextColumn, StringColumn, CitextColumn, DateColumn, TimestampColumn, TimestampTZColumn, setColumnParse, setColumnParseNull, setColumnEncode, EnumColumn, JSONColumn } from 'pqb';
3
3
  import { z } from 'zod';
4
4
 
5
- var __defProp = Object.defineProperty;
6
- var __defProps = Object.defineProperties;
7
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
5
  class ZodJSONColumn extends JSONColumn {
25
6
  constructor(schema) {
26
7
  super(zodSchemaConfig, schema);
@@ -137,7 +118,8 @@ Object.assign(SmallSerialColumnZod.prototype, numberMethods);
137
118
  class SerialColumnZod extends SerialColumn {
138
119
  }
139
120
  Object.assign(SerialColumnZod.prototype, numberMethods);
140
- const stringMethods = __spreadProps(__spreadValues({}, arrayMethods), {
121
+ const stringMethods = {
122
+ ...arrayMethods,
141
123
  email(params) {
142
124
  return applySimpleMethod(this, "email", params);
143
125
  },
@@ -186,7 +168,7 @@ const stringMethods = __spreadProps(__spreadValues({}, arrayMethods), {
186
168
  toUpperCase(params) {
187
169
  return applySimpleMethod(this, "toUpperCase", params);
188
170
  }
189
- });
171
+ };
190
172
  class BigIntColumnZod extends BigIntColumn {
191
173
  }
192
174
  Object.assign(BigIntColumnZod.prototype, stringMethods);
@@ -272,7 +254,7 @@ const zodSchemaConfig = {
272
254
  );
273
255
  },
274
256
  json(schema) {
275
- return new ZodJSONColumn(schema != null ? schema : z.unknown());
257
+ return new ZodJSONColumn(schema ?? z.unknown());
276
258
  },
277
259
  boolean: () => z.boolean(),
278
260
  buffer: () => z.instanceof(Buffer),
@@ -412,15 +394,14 @@ const zodSchemaConfig = {
412
394
  */
413
395
  error(errors) {
414
396
  const { errors: old } = this.data;
415
- const newErrors = old ? __spreadValues(__spreadValues({}, old), errors) : errors;
397
+ const newErrors = old ? { ...old, ...errors } : errors;
416
398
  const { required, invalidType } = newErrors;
417
399
  const errorMap = (iss, ctx) => {
418
- if (iss.code !== "invalid_type")
419
- return { message: ctx.defaultError };
400
+ if (iss.code !== "invalid_type") return { message: ctx.defaultError };
420
401
  if (typeof ctx.data === "undefined") {
421
- return { message: required != null ? required : ctx.defaultError };
402
+ return { message: required ?? ctx.defaultError };
422
403
  }
423
- return { message: invalidType != null ? invalidType : ctx.defaultError };
404
+ return { message: invalidType ?? ctx.defaultError };
424
405
  };
425
406
  this.inputSchema._def.errorMap = this.outputSchema._def.errorMap = this.querySchema._def.errorMap = errorMap;
426
407
  return setColumnData(this, "errors", newErrors);
@@ -442,11 +423,11 @@ const zodSchemaConfig = {
442
423
  date: () => new DateColumnZod(zodSchemaConfig),
443
424
  timestampNoTZ: (precision) => new TimestampNoTzColumnZod(zodSchemaConfig, precision),
444
425
  timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),
445
- geographyPointSchema: () => pointSchema != null ? pointSchema : pointSchema = z.object({
426
+ geographyPointSchema: () => pointSchema ?? (pointSchema = z.object({
446
427
  srid: z.number().optional(),
447
428
  lon: z.number(),
448
429
  lat: z.number()
449
- })
430
+ }))
450
431
  };
451
432
  function mapSchema(klass, schemaKey) {
452
433
  const shape = {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/zod.ts"],"sourcesContent":["import {\n AsTypeArg,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n ColumnTypeBase,\n EncodeColumn,\n NullableColumn,\n ParseColumn,\n makeColumnNullable,\n ErrorMessage,\n setDataValue,\n StringTypeData,\n ErrorMessages,\n setColumnData,\n ColumnDataBase,\n ParseNullColumn,\n} from 'orchid-core';\nimport {\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n ColumnType,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n} from 'pqb';\nimport {\n z,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodEnum,\n ZodNever,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRawShape,\n ZodString,\n ZodType,\n ZodTypeAny,\n ZodUnion,\n ZodUnknown,\n} from 'zod';\nimport { ZodErrorMap } from 'zod/lib/ZodError';\n\nclass ZodJSONColumn<ZodSchema extends ZodTypeAny> extends JSONColumn<\n ZodSchema['_output'],\n ZodSchemaConfig,\n ZodSchema\n> {\n constructor(schema: ZodSchema) {\n super(zodSchemaConfig, schema);\n }\n}\n\ntype NumberMethodSchema<Key extends string> = {\n [K in Key]: (\n value: unknown,\n params?: ErrorMessage,\n ) => NumberMethodSchema<Key>;\n};\n\nfunction applyMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSchema<Key>;\n outputSchema: NumberMethodSchema<Key>;\n querySchema: NumberMethodSchema<Key>;\n },\n>(column: T, key: Key, value: unknown, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, value, params);\n cloned.inputSchema = column.inputSchema[key](value, params);\n cloned.outputSchema = column.outputSchema[key](value, params);\n cloned.querySchema = column.querySchema[key](value, params);\n return cloned;\n}\n\ntype NumberMethodSimpleSchema<Key extends string> = {\n [K in Key]: (params?: ErrorMessage) => NumberMethodSimpleSchema<Key>;\n};\n\nfunction applySimpleMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSimpleSchema<Key>;\n outputSchema: NumberMethodSimpleSchema<Key>;\n querySchema: NumberMethodSimpleSchema<Key>;\n },\n>(column: T, key: Key, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, true, params);\n column.inputSchema = column.inputSchema[key](params);\n column.outputSchema = column.outputSchema[key](params);\n column.querySchema = column.querySchema[key](params);\n return cloned;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a maximum length (inclusive)\n max<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a specific length\n length<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a value to be non-empty\n nonEmpty<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<Date> = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, params);\n },\n nonEmpty(params) {\n const cloned = setDataValue(this, 'nonEmpty', true, params);\n this.inputSchema = this.inputSchema.nonempty(params);\n this.outputSchema = this.outputSchema.nonempty(params);\n this.querySchema = this.querySchema.nonempty(params);\n return cloned;\n },\n};\n\ninterface ZodArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ZodArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(zodSchemaConfig, item, z.array(item.inputSchema));\n }\n}\n\nObject.assign(ZodArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n lte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n max<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n min<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n positive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonNegative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n negative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonPositive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n step<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n int<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n finite<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n safe<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst numberMethods: NumberMethods = {\n // Require a value to be lower than a given number\n lt(value, params) {\n return applyMethod(this, 'lt', value, params);\n },\n\n // Require a value to be lower than or equal to a given number (the same as `max`)\n lte(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be lower than or equal to a given number\n max(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, params);\n },\n\n // Require a value to be greater than or equal to a given number (the same as `min`)\n gte(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than or equal to a given number\n min(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, params);\n },\n\n // Require a value to be a multiple of a given number\n step(value, params) {\n return applyMethod(this, 'step', value, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', params);\n },\n\n // Require the value to be less than or equal to Number.MAX_SAFE_INTEGER\n safe(params) {\n return applySimpleMethod(this, 'safe', params);\n },\n};\n\ninterface SmallIntColumnZod\n extends SmallIntColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnZod extends SmallIntColumn<ZodSchemaConfig> {}\nObject.assign(SmallIntColumnZod.prototype, numberMethods);\n\ninterface IntegerColumnZod\n extends IntegerColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnZod extends IntegerColumn<ZodSchemaConfig> {}\nObject.assign(IntegerColumnZod.prototype, numberMethods);\n\ninterface RealColumnZod extends RealColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass RealColumnZod extends RealColumn<ZodSchemaConfig> {}\nObject.assign(RealColumnZod.prototype, numberMethods);\n\ninterface SmallSerialColumnZod\n extends SmallSerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnZod extends SmallSerialColumn<ZodSchemaConfig> {}\nObject.assign(SmallSerialColumnZod.prototype, numberMethods);\n\ninterface SerialColumnZod\n extends SerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnZod extends SerialColumn<ZodSchemaConfig> {}\nObject.assign(SerialColumnZod.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid url\n url<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be an emoji\n emoji<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid\n cuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Validate the value over the given regular expression\n regex<T extends ColumnTypeBase>(\n this: T,\n value: RegExp,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to include a given string\n includes<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['datetime'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Check a value to be a valid ip address\n ip<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['ip'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Trim the value during a validation\n trim<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', params);\n },\n\n cuid(params) {\n return applySimpleMethod(this, 'cuid', params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, params);\n },\n\n datetime(params = {}) {\n return applyMethod(this, 'datetime', params, params);\n },\n\n ip(params = {}) {\n return applyMethod(this, 'ip', params, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', params);\n },\n};\n\ninterface BigIntColumnZod\n extends BigIntColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnZod extends BigIntColumn<ZodSchemaConfig> {}\nObject.assign(BigIntColumnZod.prototype, stringMethods);\n\ninterface DecimalColumnZod\n extends DecimalColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnZod extends DecimalColumn<ZodSchemaConfig> {}\nObject.assign(DecimalColumnZod.prototype, stringMethods);\n\ninterface DoublePrecisionColumnZod\n extends DoublePrecisionColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnZod extends DoublePrecisionColumn<ZodSchemaConfig> {}\nObject.assign(DoublePrecisionColumnZod.prototype, stringMethods);\n\ninterface BigSerialColumnZod\n extends BigSerialColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnZod extends BigSerialColumn<ZodSchemaConfig> {}\nObject.assign(BigSerialColumnZod.prototype, stringMethods);\n\ninterface MoneyColumnZod extends MoneyColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnZod extends MoneyColumn<ZodSchemaConfig> {}\nObject.assign(MoneyColumnZod.prototype, numberMethods);\n\ninterface VarCharColumnZod\n extends VarCharColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnZod extends VarCharColumn<ZodSchemaConfig> {}\nObject.assign(VarCharColumnZod.prototype, stringMethods);\n\ninterface TextColumnZod extends TextColumn<ZodSchemaConfig>, StringMethods {}\n\nclass TextColumnZod extends TextColumn<ZodSchemaConfig> {}\nObject.assign(TextColumnZod.prototype, stringMethods);\n\ninterface StringColumnZod\n extends StringColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass StringColumnZod extends StringColumn<ZodSchemaConfig> {}\nObject.assign(StringColumnZod.prototype, stringMethods);\n\ninterface CitextColumnZod\n extends CitextColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnZod extends CitextColumn<ZodSchemaConfig> {}\nObject.assign(CitextColumnZod.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n};\n\ninterface DateColumnZod extends DateColumn<ZodSchemaConfig>, DateMethods {}\n\nclass DateColumnZod extends DateColumn<ZodSchemaConfig> {}\nObject.assign(DateColumnZod.prototype, dateMethods);\n\ninterface TimestampNoTzColumnZod\n extends TimestampColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnZod extends TimestampColumn<ZodSchemaConfig> {}\nObject.assign(TimestampNoTzColumnZod.prototype, dateMethods);\n\ninterface TimestampColumnZod\n extends TimestampTZColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnZod extends TimestampTZColumn<ZodSchemaConfig> {}\nObject.assign(TimestampColumnZod.prototype, dateMethods);\n\ntype PointSchemaZod = ZodObject<{\n srid: ZodOptional<ZodNumber>;\n lon: ZodNumber;\n lat: ZodNumber;\n}>;\n\nlet pointSchema: PointSchemaZod | undefined;\n\nexport interface ZodSchemaConfig {\n type: ZodTypeAny;\n\n parse<\n T extends ColumnTypeBase,\n OutputSchema extends ZodTypeAny,\n Output = OutputSchema['_output'],\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Output,\n ): ParseColumn<T, OutputSchema, Output>;\n\n parseNull<\n T extends ColumnTypeBase,\n NullSchema extends ZodTypeAny,\n NullType = NullSchema['_output'],\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): ParseNullColumn<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends ZodTypeAny,\n Input = InputSchema['_output'],\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: Input) => unknown,\n ): EncodeColumn<T, InputSchema, Input>;\n\n asType<\n T,\n Types extends AsTypeArg<ZodTypeAny>,\n TypeSchema extends ZodTypeAny = Types extends { type: ZodTypeAny }\n ? Types['type']\n : never,\n Type = TypeSchema['_output'],\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']['_output']\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']['_output']\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']['_output']\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n dateAsNumber<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodNumber, number>;\n\n dateAsDate<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodDate, Date>;\n\n enum<U extends string, T extends readonly [U, ...U[]]>(\n dataType: string,\n type: T,\n ): EnumColumn<\n ZodSchemaConfig,\n // remove readonly flag for Zod\n ZodEnum<{\n -readonly [P in keyof T]: T[P];\n }>,\n U,\n T\n >;\n\n array<Item extends ArrayColumnValue>(item: Item): ZodArrayColumn<Item>;\n\n nullable<T extends ColumnTypeBase>(\n this: T,\n ): NullableColumn<\n T,\n ZodNullable<T['inputSchema']>,\n T['nullSchema'] extends ZodTypeAny\n ? ZodUnion<[T['outputSchema'], T['nullSchema']]>\n : ZodNullable<T['outputSchema']>,\n ZodNullable<T['querySchema']>\n >;\n\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(\n schema?: ZodSchema,\n ): ZodJSONColumn<ZodSchema>;\n\n boolean(): ZodBoolean;\n buffer(): ZodType<Buffer>;\n unknown(): ZodUnknown;\n never(): ZodNever;\n stringSchema(): ZodString;\n stringMin(max: number): ZodString;\n stringMax(max: number): ZodString;\n stringMinMax(min: number, max: number): ZodString;\n number(): ZodNumber;\n int(): ZodNumber;\n stringNumberDate(): ZodDate;\n timeInterval(): ZodObject<{\n years: ZodOptional<ZodNumber>;\n months: ZodOptional<ZodNumber>;\n days: ZodOptional<ZodNumber>;\n hours: ZodOptional<ZodNumber>;\n minutes: ZodOptional<ZodNumber>;\n seconds: ZodOptional<ZodNumber>;\n }>;\n bit(max: number): ZodString;\n uuid(): ZodString;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T extends ColumnTypeBase>(this: T, error: ErrorMessages): T;\n\n smallint(): SmallIntColumnZod;\n integer(): IntegerColumnZod;\n real(): RealColumnZod;\n smallSerial(): SmallSerialColumnZod;\n serial(): SerialColumnZod;\n\n bigint(): BigIntColumnZod;\n decimal(precision?: number, scale?: number): DecimalColumnZod;\n doublePrecision(): DoublePrecisionColumnZod;\n bigSerial(): BigSerialColumnZod;\n money(): MoneyColumnZod;\n varchar(limit?: number): VarCharColumnZod;\n text(): TextColumnZod;\n string(limit?: number): StringColumnZod;\n citext(): CitextColumnZod;\n\n date(): DateColumnZod;\n timestampNoTZ(precision?: number): TimestampNoTzColumnZod;\n timestamp(precision?: number): TimestampColumnZod;\n\n geographyPointSchema(): PointSchemaZod;\n}\n\n// parse a date string to date object, with respect to null\nconst parseDateToDate = (value: unknown) => new Date(value as string);\n\nexport const zodSchemaConfig: ZodSchemaConfig = {\n type: undefined as unknown as ZodTypeAny,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n dateAsNumber() {\n const c = this.parse(z.number(), Date.parse as never) as ColumnTypeBase;\n c.data.defaultParse = Date.parse;\n return c as never;\n },\n dateAsDate() {\n const c = this.parse(z.date(), parseDateToDate) as ColumnTypeBase;\n c.data.defaultParse = parseDateToDate;\n return c as never;\n },\n enum(dataType, type) {\n return new EnumColumn(zodSchemaConfig, dataType, type, z.enum(type));\n },\n array(item) {\n return new ZodArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this,\n z.nullable(this.inputSchema),\n this.nullSchema\n ? this.outputSchema.or(this.nullSchema)\n : z.nullable(this.outputSchema),\n z.nullable(this.querySchema),\n ) as never;\n },\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(schema?: ZodSchema) {\n return new ZodJSONColumn((schema ?? z.unknown()) as ZodSchema);\n },\n boolean: () => z.boolean(),\n buffer: () => z.instanceof(Buffer),\n unknown: () => z.unknown(),\n never: () => z.never(),\n stringSchema: () => z.string(),\n stringMin(min) {\n return z.string().min(min);\n },\n stringMax(max) {\n return z.string().max(max);\n },\n stringMinMax(min, max) {\n return z.string().min(min).max(max);\n },\n number: () => z.number(),\n int: () => z.number().int(),\n\n stringNumberDate: () => z.coerce.date(),\n\n timeInterval: () =>\n z.object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n minutes: z.number().optional(),\n seconds: z.number().optional(),\n }),\n\n bit: (max?: number) =>\n (max ? z.string().max(max) : z.string()).regex(/[10]/g),\n\n uuid: () => z.string().uuid(),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key].querySchema.optional();\n }\n }\n\n return z.object(shape) as never;\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ZodObject<ZodRawShape>;\n\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.shape[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = shape[key].optional();\n }\n }\n }\n\n return z.object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return (\n this.createSchema() as ZodObject<ZodRawShape>\n ).partial() as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const pkeys: Record<string, true> = {};\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].dataType && shape[key].data.primaryKey) {\n pkeys[key] = true;\n }\n }\n\n return (this.querySchema() as ZodObject<ZodRawShape>)\n .pick(pkeys)\n .required() as PkeySchema<T>;\n },\n\n /**\n * `error` allows to specify two following validation messages:\n *\n * ```ts\n * t.text().error({\n * required: 'This column is required',\n * invalidType: 'This column must be an integer',\n * });\n * ```\n *\n * It will be converted into `Zod`'s messages:\n *\n * ```ts\n * z.string({\n * required_error: 'This column is required',\n * invalid_type_error: 'This column must be an integer',\n * });\n * ```\n *\n * Each validation method can accept an error message as a string:\n *\n * ```ts\n * t.text().min(5, 'Must be 5 or more characters long');\n * t.text().max(5, 'Must be 5 or fewer characters long');\n * t.text().length(5, 'Must be exactly 5 characters long');\n * t.text().email('Invalid email address');\n * t.text().url('Invalid url');\n * t.text().emoji('Contains non-emoji characters');\n * t.text().uuid('Invalid UUID');\n * t.text().includes('tuna', 'Must include tuna');\n * t.text().startsWith('https://', 'Must provide secure URL');\n * t.text().endsWith('.com', 'Only .com domains allowed');\n * ```\n *\n * Except for `text().datetime()` and `text().ip()`:\n *\n * these methods can have their own parameters, so the error message is passed in object.\n *\n * ```ts\n * t.text().datetime({ message: 'Invalid datetime string! Must be UTC.' });\n * t.text().ip({ message: 'Invalid IP address' });\n * ```\n *\n * Error messages are supported for a JSON schema as well:\n *\n * ```ts\n * t.json((j) =>\n * j.object({\n * one: j\n * .string()\n * .error({ required: 'One is required' })\n * .min(5, 'Must be 5 or more characters long'),\n * two: j\n * .string()\n * .error({ invalidType: 'Two should be a string' })\n * .max(5, 'Must be 5 or fewer characters long'),\n * three: j.string().length(5, 'Must be exactly 5 characters long'),\n * }),\n * );\n * ```\n *\n * @param errors - object, key is either 'required' or 'invalidType', value is an error message\n */\n error(errors) {\n const { errors: old } = this.data;\n const newErrors = old ? { ...old, ...errors } : errors;\n const { required, invalidType } = newErrors;\n\n const errorMap: ZodErrorMap = (iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (typeof ctx.data === 'undefined') {\n return { message: required ?? ctx.defaultError };\n }\n return { message: invalidType ?? ctx.defaultError };\n };\n\n (this.inputSchema as ZodTypeAny)._def.errorMap =\n (this.outputSchema as ZodTypeAny)._def.errorMap =\n (this.querySchema as ZodTypeAny)._def.errorMap =\n errorMap;\n\n return setColumnData(this, 'errors', newErrors);\n },\n\n smallint: () => new SmallIntColumnZod(zodSchemaConfig),\n integer: () => new IntegerColumnZod(zodSchemaConfig),\n real: () => new RealColumnZod(zodSchemaConfig),\n smallSerial: () => new SmallSerialColumnZod(zodSchemaConfig),\n serial: () => new SerialColumnZod(zodSchemaConfig),\n\n bigint: () => new BigIntColumnZod(zodSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnZod(zodSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnZod(zodSchemaConfig),\n bigSerial: () => new BigSerialColumnZod(zodSchemaConfig),\n money: () => new MoneyColumnZod(zodSchemaConfig),\n varchar: (limit) => new VarCharColumnZod(zodSchemaConfig, limit),\n text: () => new TextColumnZod(zodSchemaConfig),\n string: (limit) => new StringColumnZod(zodSchemaConfig, limit),\n citext: () => new CitextColumnZod(zodSchemaConfig),\n\n date: () => new DateColumnZod(zodSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnZod(zodSchemaConfig, precision),\n timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= z.object({\n srid: z.number().optional(),\n lon: z.number(),\n lat: z.number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n },\n 'strip'\n>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ZodOptional<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n },\n 'strip'\n>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true\n ? ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n },\n 'strip'\n>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ZodRawShape = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return z.object(shape) as MapSchema<T, Key>;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/zod.ts"],"sourcesContent":["import {\n AsTypeArg,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n ColumnTypeBase,\n EncodeColumn,\n NullableColumn,\n ParseColumn,\n makeColumnNullable,\n ErrorMessage,\n setDataValue,\n StringTypeData,\n ErrorMessages,\n setColumnData,\n ColumnDataBase,\n ParseNullColumn,\n} from 'orchid-core';\nimport {\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n ColumnType,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n} from 'pqb';\nimport {\n z,\n ZodArray,\n ZodBoolean,\n ZodDate,\n ZodEnum,\n ZodNever,\n ZodNullable,\n ZodNumber,\n ZodObject,\n ZodOptional,\n ZodRawShape,\n ZodString,\n ZodType,\n ZodTypeAny,\n ZodUnion,\n ZodUnknown,\n} from 'zod';\nimport { ZodErrorMap } from 'zod/lib/ZodError';\n\nclass ZodJSONColumn<ZodSchema extends ZodTypeAny> extends JSONColumn<\n ZodSchema['_output'],\n ZodSchemaConfig,\n ZodSchema\n> {\n constructor(schema: ZodSchema) {\n super(zodSchemaConfig, schema);\n }\n}\n\ntype NumberMethodSchema<Key extends string> = {\n [K in Key]: (\n value: unknown,\n params?: ErrorMessage,\n ) => NumberMethodSchema<Key>;\n};\n\nfunction applyMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSchema<Key>;\n outputSchema: NumberMethodSchema<Key>;\n querySchema: NumberMethodSchema<Key>;\n },\n>(column: T, key: Key, value: unknown, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, value, params);\n cloned.inputSchema = column.inputSchema[key](value, params);\n cloned.outputSchema = column.outputSchema[key](value, params);\n cloned.querySchema = column.querySchema[key](value, params);\n return cloned;\n}\n\ntype NumberMethodSimpleSchema<Key extends string> = {\n [K in Key]: (params?: ErrorMessage) => NumberMethodSimpleSchema<Key>;\n};\n\nfunction applySimpleMethod<\n Key extends string,\n T extends {\n data: ColumnDataBase;\n inputSchema: NumberMethodSimpleSchema<Key>;\n outputSchema: NumberMethodSimpleSchema<Key>;\n querySchema: NumberMethodSimpleSchema<Key>;\n },\n>(column: T, key: Key, params?: ErrorMessage) {\n const cloned = setDataValue(column, key, true, params);\n column.inputSchema = column.inputSchema[key](params);\n column.outputSchema = column.outputSchema[key](params);\n column.querySchema = column.querySchema[key](params);\n return cloned;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a maximum length (inclusive)\n max<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a specific length\n length<T extends ColumnTypeBase>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Require a value to be non-empty\n nonEmpty<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<Date> = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, params);\n },\n nonEmpty(params) {\n const cloned = setDataValue(this, 'nonEmpty', true, params);\n this.inputSchema = this.inputSchema.nonempty(params);\n this.outputSchema = this.outputSchema.nonempty(params);\n this.querySchema = this.querySchema.nonempty(params);\n return cloned;\n },\n};\n\ninterface ZodArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ZodArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ZodSchemaConfig,\n Item,\n ZodArray<Item['inputSchema']>,\n ZodArray<Item['outputSchema']>,\n ZodArray<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(zodSchemaConfig, item, z.array(item.inputSchema));\n }\n}\n\nObject.assign(ZodArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n lte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n max<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gt<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n gte<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n min<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n positive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonNegative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n negative<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n nonPositive<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n step<T extends ColumnTypeBase>(\n this: T,\n value: number,\n params?: ErrorMessage,\n ): T;\n int<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n finite<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n safe<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst numberMethods: NumberMethods = {\n // Require a value to be lower than a given number\n lt(value, params) {\n return applyMethod(this, 'lt', value, params);\n },\n\n // Require a value to be lower than or equal to a given number (the same as `max`)\n lte(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be lower than or equal to a given number\n max(value, params) {\n return applyMethod(this, 'lte', value, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, params);\n },\n\n // Require a value to be greater than or equal to a given number (the same as `min`)\n gte(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than or equal to a given number\n min(value, params) {\n return applyMethod(this, 'gte', value, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, params);\n },\n\n // Require a value to be a multiple of a given number\n step(value, params) {\n return applyMethod(this, 'step', value, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', params);\n },\n\n // Require the value to be less than or equal to Number.MAX_SAFE_INTEGER\n safe(params) {\n return applySimpleMethod(this, 'safe', params);\n },\n};\n\ninterface SmallIntColumnZod\n extends SmallIntColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnZod extends SmallIntColumn<ZodSchemaConfig> {}\nObject.assign(SmallIntColumnZod.prototype, numberMethods);\n\ninterface IntegerColumnZod\n extends IntegerColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnZod extends IntegerColumn<ZodSchemaConfig> {}\nObject.assign(IntegerColumnZod.prototype, numberMethods);\n\ninterface RealColumnZod extends RealColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass RealColumnZod extends RealColumn<ZodSchemaConfig> {}\nObject.assign(RealColumnZod.prototype, numberMethods);\n\ninterface SmallSerialColumnZod\n extends SmallSerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnZod extends SmallSerialColumn<ZodSchemaConfig> {}\nObject.assign(SmallSerialColumnZod.prototype, numberMethods);\n\ninterface SerialColumnZod\n extends SerialColumn<ZodSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnZod extends SerialColumn<ZodSchemaConfig> {}\nObject.assign(SerialColumnZod.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid url\n url<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be an emoji\n emoji<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid\n cuid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Validate the value over the given regular expression\n regex<T extends ColumnTypeBase>(\n this: T,\n value: RegExp,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to include a given string\n includes<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T extends ColumnTypeBase, Value extends string>(\n this: T,\n value: Value,\n params?: ErrorMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['datetime'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Check a value to be a valid ip address\n ip<T extends ColumnTypeBase>(\n this: T,\n params?: StringTypeData['ip'] & Exclude<ErrorMessage, string>,\n ): T;\n\n // Trim the value during a validation\n trim<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T extends ColumnTypeBase>(this: T, params?: ErrorMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', params);\n },\n\n cuid(params) {\n return applySimpleMethod(this, 'cuid', params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, params);\n },\n\n datetime(params = {}) {\n return applyMethod(this, 'datetime', params, params);\n },\n\n ip(params = {}) {\n return applyMethod(this, 'ip', params, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', params);\n },\n};\n\ninterface BigIntColumnZod\n extends BigIntColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnZod extends BigIntColumn<ZodSchemaConfig> {}\nObject.assign(BigIntColumnZod.prototype, stringMethods);\n\ninterface DecimalColumnZod\n extends DecimalColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnZod extends DecimalColumn<ZodSchemaConfig> {}\nObject.assign(DecimalColumnZod.prototype, stringMethods);\n\ninterface DoublePrecisionColumnZod\n extends DoublePrecisionColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnZod extends DoublePrecisionColumn<ZodSchemaConfig> {}\nObject.assign(DoublePrecisionColumnZod.prototype, stringMethods);\n\ninterface BigSerialColumnZod\n extends BigSerialColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnZod extends BigSerialColumn<ZodSchemaConfig> {}\nObject.assign(BigSerialColumnZod.prototype, stringMethods);\n\ninterface MoneyColumnZod extends MoneyColumn<ZodSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnZod extends MoneyColumn<ZodSchemaConfig> {}\nObject.assign(MoneyColumnZod.prototype, numberMethods);\n\ninterface VarCharColumnZod\n extends VarCharColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnZod extends VarCharColumn<ZodSchemaConfig> {}\nObject.assign(VarCharColumnZod.prototype, stringMethods);\n\ninterface TextColumnZod extends TextColumn<ZodSchemaConfig>, StringMethods {}\n\nclass TextColumnZod extends TextColumn<ZodSchemaConfig> {}\nObject.assign(TextColumnZod.prototype, stringMethods);\n\ninterface StringColumnZod\n extends StringColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass StringColumnZod extends StringColumn<ZodSchemaConfig> {}\nObject.assign(StringColumnZod.prototype, stringMethods);\n\ninterface CitextColumnZod\n extends CitextColumn<ZodSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnZod extends CitextColumn<ZodSchemaConfig> {}\nObject.assign(CitextColumnZod.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T extends ColumnTypeBase>(this: T, value: Date, params?: ErrorMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, params);\n },\n};\n\ninterface DateColumnZod extends DateColumn<ZodSchemaConfig>, DateMethods {}\n\nclass DateColumnZod extends DateColumn<ZodSchemaConfig> {}\nObject.assign(DateColumnZod.prototype, dateMethods);\n\ninterface TimestampNoTzColumnZod\n extends TimestampColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnZod extends TimestampColumn<ZodSchemaConfig> {}\nObject.assign(TimestampNoTzColumnZod.prototype, dateMethods);\n\ninterface TimestampColumnZod\n extends TimestampTZColumn<ZodSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnZod extends TimestampTZColumn<ZodSchemaConfig> {}\nObject.assign(TimestampColumnZod.prototype, dateMethods);\n\ntype PointSchemaZod = ZodObject<{\n srid: ZodOptional<ZodNumber>;\n lon: ZodNumber;\n lat: ZodNumber;\n}>;\n\nlet pointSchema: PointSchemaZod | undefined;\n\nexport interface ZodSchemaConfig {\n type: ZodTypeAny;\n\n parse<\n T extends ColumnTypeBase,\n OutputSchema extends ZodTypeAny,\n Output = OutputSchema['_output'],\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Output,\n ): ParseColumn<T, OutputSchema, Output>;\n\n parseNull<\n T extends ColumnTypeBase,\n NullSchema extends ZodTypeAny,\n NullType = NullSchema['_output'],\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): ParseNullColumn<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends ZodTypeAny,\n Input = InputSchema['_output'],\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: Input) => unknown,\n ): EncodeColumn<T, InputSchema, Input>;\n\n asType<\n T,\n Types extends AsTypeArg<ZodTypeAny>,\n TypeSchema extends ZodTypeAny = Types extends { type: ZodTypeAny }\n ? Types['type']\n : never,\n Type = TypeSchema['_output'],\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']['_output']\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends ZodTypeAny\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']['_output']\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends ZodTypeAny\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']['_output']\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends ZodTypeAny\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n dateAsNumber<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodNumber, number>;\n\n dateAsDate<T extends ColumnType<ZodSchemaConfig>>(\n this: T,\n ): ParseColumn<T, ZodDate, Date>;\n\n enum<U extends string, T extends readonly [U, ...U[]]>(\n dataType: string,\n type: T,\n ): EnumColumn<\n ZodSchemaConfig,\n // remove readonly flag for Zod\n ZodEnum<{\n -readonly [P in keyof T]: T[P];\n }>,\n U,\n T\n >;\n\n array<Item extends ArrayColumnValue>(item: Item): ZodArrayColumn<Item>;\n\n nullable<T extends ColumnTypeBase>(\n this: T,\n ): NullableColumn<\n T,\n ZodNullable<T['inputSchema']>,\n T['nullSchema'] extends ZodTypeAny\n ? ZodUnion<[T['outputSchema'], T['nullSchema']]>\n : ZodNullable<T['outputSchema']>,\n ZodNullable<T['querySchema']>\n >;\n\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(\n schema?: ZodSchema,\n ): ZodJSONColumn<ZodSchema>;\n\n boolean(): ZodBoolean;\n buffer(): ZodType<Buffer>;\n unknown(): ZodUnknown;\n never(): ZodNever;\n stringSchema(): ZodString;\n stringMin(max: number): ZodString;\n stringMax(max: number): ZodString;\n stringMinMax(min: number, max: number): ZodString;\n number(): ZodNumber;\n int(): ZodNumber;\n stringNumberDate(): ZodDate;\n timeInterval(): ZodObject<{\n years: ZodOptional<ZodNumber>;\n months: ZodOptional<ZodNumber>;\n days: ZodOptional<ZodNumber>;\n hours: ZodOptional<ZodNumber>;\n minutes: ZodOptional<ZodNumber>;\n seconds: ZodOptional<ZodNumber>;\n }>;\n bit(max: number): ZodString;\n uuid(): ZodString;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T extends ColumnTypeBase>(this: T, error: ErrorMessages): T;\n\n smallint(): SmallIntColumnZod;\n integer(): IntegerColumnZod;\n real(): RealColumnZod;\n smallSerial(): SmallSerialColumnZod;\n serial(): SerialColumnZod;\n\n bigint(): BigIntColumnZod;\n decimal(precision?: number, scale?: number): DecimalColumnZod;\n doublePrecision(): DoublePrecisionColumnZod;\n bigSerial(): BigSerialColumnZod;\n money(): MoneyColumnZod;\n varchar(limit?: number): VarCharColumnZod;\n text(): TextColumnZod;\n string(limit?: number): StringColumnZod;\n citext(): CitextColumnZod;\n\n date(): DateColumnZod;\n timestampNoTZ(precision?: number): TimestampNoTzColumnZod;\n timestamp(precision?: number): TimestampColumnZod;\n\n geographyPointSchema(): PointSchemaZod;\n}\n\n// parse a date string to date object, with respect to null\nconst parseDateToDate = (value: unknown) => new Date(value as string);\n\nexport const zodSchemaConfig: ZodSchemaConfig = {\n type: undefined as unknown as ZodTypeAny,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n dateAsNumber() {\n const c = this.parse(z.number(), Date.parse as never) as ColumnTypeBase;\n c.data.defaultParse = Date.parse;\n return c as never;\n },\n dateAsDate() {\n const c = this.parse(z.date(), parseDateToDate) as ColumnTypeBase;\n c.data.defaultParse = parseDateToDate;\n return c as never;\n },\n enum(dataType, type) {\n return new EnumColumn(zodSchemaConfig, dataType, type, z.enum(type));\n },\n array(item) {\n return new ZodArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this,\n z.nullable(this.inputSchema),\n this.nullSchema\n ? this.outputSchema.or(this.nullSchema)\n : z.nullable(this.outputSchema),\n z.nullable(this.querySchema),\n ) as never;\n },\n json<ZodSchema extends ZodTypeAny = ZodUnknown>(schema?: ZodSchema) {\n return new ZodJSONColumn((schema ?? z.unknown()) as ZodSchema);\n },\n boolean: () => z.boolean(),\n buffer: () => z.instanceof(Buffer),\n unknown: () => z.unknown(),\n never: () => z.never(),\n stringSchema: () => z.string(),\n stringMin(min) {\n return z.string().min(min);\n },\n stringMax(max) {\n return z.string().max(max);\n },\n stringMinMax(min, max) {\n return z.string().min(min).max(max);\n },\n number: () => z.number(),\n int: () => z.number().int(),\n\n stringNumberDate: () => z.coerce.date(),\n\n timeInterval: () =>\n z.object({\n years: z.number().optional(),\n months: z.number().optional(),\n days: z.number().optional(),\n hours: z.number().optional(),\n minutes: z.number().optional(),\n seconds: z.number().optional(),\n }),\n\n bit: (max?: number) =>\n (max ? z.string().max(max) : z.string()).regex(/[10]/g),\n\n uuid: () => z.string().uuid(),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key].querySchema.optional();\n }\n }\n\n return z.object(shape) as never;\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ZodObject<ZodRawShape>;\n\n const shape: ZodRawShape = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.shape[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = shape[key].optional();\n }\n }\n }\n\n return z.object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return (\n this.createSchema() as ZodObject<ZodRawShape>\n ).partial() as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const pkeys: Record<string, true> = {};\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].dataType && shape[key].data.primaryKey) {\n pkeys[key] = true;\n }\n }\n\n return (this.querySchema() as ZodObject<ZodRawShape>)\n .pick(pkeys)\n .required() as PkeySchema<T>;\n },\n\n /**\n * `error` allows to specify two following validation messages:\n *\n * ```ts\n * t.text().error({\n * required: 'This column is required',\n * invalidType: 'This column must be an integer',\n * });\n * ```\n *\n * It will be converted into `Zod`'s messages:\n *\n * ```ts\n * z.string({\n * required_error: 'This column is required',\n * invalid_type_error: 'This column must be an integer',\n * });\n * ```\n *\n * Each validation method can accept an error message as a string:\n *\n * ```ts\n * t.text().min(5, 'Must be 5 or more characters long');\n * t.text().max(5, 'Must be 5 or fewer characters long');\n * t.text().length(5, 'Must be exactly 5 characters long');\n * t.text().email('Invalid email address');\n * t.text().url('Invalid url');\n * t.text().emoji('Contains non-emoji characters');\n * t.text().uuid('Invalid UUID');\n * t.text().includes('tuna', 'Must include tuna');\n * t.text().startsWith('https://', 'Must provide secure URL');\n * t.text().endsWith('.com', 'Only .com domains allowed');\n * ```\n *\n * Except for `text().datetime()` and `text().ip()`:\n *\n * these methods can have their own parameters, so the error message is passed in object.\n *\n * ```ts\n * t.text().datetime({ message: 'Invalid datetime string! Must be UTC.' });\n * t.text().ip({ message: 'Invalid IP address' });\n * ```\n *\n * Error messages are supported for a JSON schema as well:\n *\n * ```ts\n * t.json((j) =>\n * j.object({\n * one: j\n * .string()\n * .error({ required: 'One is required' })\n * .min(5, 'Must be 5 or more characters long'),\n * two: j\n * .string()\n * .error({ invalidType: 'Two should be a string' })\n * .max(5, 'Must be 5 or fewer characters long'),\n * three: j.string().length(5, 'Must be exactly 5 characters long'),\n * }),\n * );\n * ```\n *\n * @param errors - object, key is either 'required' or 'invalidType', value is an error message\n */\n error(errors) {\n const { errors: old } = this.data;\n const newErrors = old ? { ...old, ...errors } : errors;\n const { required, invalidType } = newErrors;\n\n const errorMap: ZodErrorMap = (iss, ctx) => {\n if (iss.code !== 'invalid_type') return { message: ctx.defaultError };\n if (typeof ctx.data === 'undefined') {\n return { message: required ?? ctx.defaultError };\n }\n return { message: invalidType ?? ctx.defaultError };\n };\n\n (this.inputSchema as ZodTypeAny)._def.errorMap =\n (this.outputSchema as ZodTypeAny)._def.errorMap =\n (this.querySchema as ZodTypeAny)._def.errorMap =\n errorMap;\n\n return setColumnData(this, 'errors', newErrors);\n },\n\n smallint: () => new SmallIntColumnZod(zodSchemaConfig),\n integer: () => new IntegerColumnZod(zodSchemaConfig),\n real: () => new RealColumnZod(zodSchemaConfig),\n smallSerial: () => new SmallSerialColumnZod(zodSchemaConfig),\n serial: () => new SerialColumnZod(zodSchemaConfig),\n\n bigint: () => new BigIntColumnZod(zodSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnZod(zodSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnZod(zodSchemaConfig),\n bigSerial: () => new BigSerialColumnZod(zodSchemaConfig),\n money: () => new MoneyColumnZod(zodSchemaConfig),\n varchar: (limit) => new VarCharColumnZod(zodSchemaConfig, limit),\n text: () => new TextColumnZod(zodSchemaConfig),\n string: (limit) => new StringColumnZod(zodSchemaConfig, limit),\n citext: () => new CitextColumnZod(zodSchemaConfig),\n\n date: () => new DateColumnZod(zodSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnZod(zodSchemaConfig, precision),\n timestamp: (precision) => new TimestampColumnZod(zodSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= z.object({\n srid: z.number().optional(),\n lon: z.number(),\n lat: z.number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n },\n 'strip'\n>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T>]: ZodOptional<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n },\n 'strip'\n>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true\n ? ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: ZodOptional<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n },\n 'strip'\n>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ZodObject<\n {\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n },\n 'strip'\n>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ZodRawShape = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return z.object(shape) as MapSchema<T, Key>;\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchid-orm-schema-to-zod",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
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": {
@@ -30,8 +30,8 @@
30
30
  "license": "ISC",
31
31
  "dependencies": {
32
32
  "zod": "^3.23.8",
33
- "pqb": "0.42.4",
34
- "orchid-core": "0.21.1"
33
+ "orchid-core": "0.21.1",
34
+ "pqb": "0.42.5"
35
35
  },
36
36
  "devDependencies": {
37
37
  "test-utils": "0.3.2"