orchid-orm-valibot 0.3.121 → 0.3.123

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
@@ -1,5 +1,5 @@
1
- import { Column, EnumColumn, ArrayColumnValue, ColumnSchemaGetterTableClass, ColumnSchemaGetterColumns, JSONColumn, ArrayColumn, SmallIntColumn, IntegerColumn, RealColumn, SmallSerialColumn, SerialColumn, BigIntColumn, DecimalColumn, DoublePrecisionColumn, BigSerialColumn, MoneyColumn, VarCharColumn, TextColumn, StringColumn, CitextColumn, DateColumn, TimestampColumn, TimestampTZColumn, StringData } from 'pqb';
2
- import { BaseValidation, BaseSchema, Output, NeverSchema, NumberSchema, DateSchema, PicklistSchema, NullableSchema, UnionSchema, UnknownSchema, BooleanSchema, InstanceSchema, StringSchema, ObjectSchema, OptionalSchema, ArraySchema } from 'valibot';
1
+ import { Column, EnumColumn, ArrayColumnValue, ArrayColumn, JSONColumn, ColumnSchemaGetterTableClass, ColumnSchemaGetterColumns, SmallIntColumn, IntegerColumn, RealColumn, SmallSerialColumn, SerialColumn, BigIntColumn, StringData, DecimalColumn, DoublePrecisionColumn, BigSerialColumn, MoneyColumn, VarCharColumn, TextColumn, StringColumn, CitextColumn, DateColumn, TimestampColumn, TimestampTZColumn } from 'pqb/internal';
2
+ import { BaseValidation, BaseSchema, Output, NeverSchema, NumberSchema, DateSchema, PicklistSchema, ArraySchema, NullableSchema, UnionSchema, UnknownSchema, BooleanSchema, InstanceSchema, StringSchema, ObjectSchema, OptionalSchema } from 'valibot';
3
3
 
4
4
  declare class ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
5
5
  constructor(schema: Schema);
@@ -266,4 +266,5 @@ type PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{
266
266
  [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? K : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];
267
267
  }>;
268
268
 
269
- export { type GtValidation, type LtValidation, type StepValidation, type ValibotSchemaConfig, gt, lt, step, valibotSchemaConfig };
269
+ export { gt, lt, step, valibotSchemaConfig };
270
+ export type { GtValidation, LtValidation, StepValidation, ValibotSchemaConfig };
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var pqb = require('pqb');
3
+ var internal = require('pqb/internal');
4
4
  var valibot = require('valibot');
5
5
 
6
- class ValibotJSONColumn extends pqb.JSONColumn {
6
+ class ValibotJSONColumn extends internal.JSONColumn {
7
7
  constructor(schema) {
8
8
  super(valibotSchemaConfig, schema);
9
9
  }
10
10
  }
11
11
  function applyMethod(column, key, value, validation, params) {
12
- const cloned = pqb.setDataValue(
12
+ const cloned = internal.setDataValue(
13
13
  column,
14
14
  key,
15
15
  value,
@@ -25,7 +25,7 @@ function applyMethod(column, key, value, validation, params) {
25
25
  return cloned;
26
26
  }
27
27
  function applySimpleMethod(column, key, validation, params, ...args) {
28
- const cloned = pqb.setDataValue(
28
+ const cloned = internal.setDataValue(
29
29
  column,
30
30
  key,
31
31
  true,
@@ -54,7 +54,7 @@ const arrayMethods = {
54
54
  return applyMethod(this, "min", 1, valibot.minLength, params);
55
55
  }
56
56
  };
57
- class ValibotArrayColumn extends pqb.ArrayColumn {
57
+ class ValibotArrayColumn extends internal.ArrayColumn {
58
58
  constructor(item) {
59
59
  super(valibotSchemaConfig, item, valibot.array(item.inputSchema, []));
60
60
  }
@@ -187,19 +187,19 @@ const numberMethods = {
187
187
  );
188
188
  }
189
189
  };
190
- class SmallIntColumnValibot extends pqb.SmallIntColumn {
190
+ class SmallIntColumnValibot extends internal.SmallIntColumn {
191
191
  }
192
192
  Object.assign(SmallIntColumnValibot.prototype, numberMethods);
193
- class IntegerColumnValibot extends pqb.IntegerColumn {
193
+ class IntegerColumnValibot extends internal.IntegerColumn {
194
194
  }
195
195
  Object.assign(IntegerColumnValibot.prototype, numberMethods);
196
- class RealColumnValibot extends pqb.RealColumn {
196
+ class RealColumnValibot extends internal.RealColumn {
197
197
  }
198
198
  Object.assign(RealColumnValibot.prototype, numberMethods);
199
- class SmallSerialColumnValibot extends pqb.SmallSerialColumn {
199
+ class SmallSerialColumnValibot extends internal.SmallSerialColumn {
200
200
  }
201
201
  Object.assign(SmallSerialColumnValibot.prototype, numberMethods);
202
- class SerialColumnValibot extends pqb.SerialColumn {
202
+ class SerialColumnValibot extends internal.SerialColumn {
203
203
  }
204
204
  Object.assign(SerialColumnValibot.prototype, numberMethods);
205
205
  const stringMethods = {
@@ -253,31 +253,31 @@ const stringMethods = {
253
253
  return applySimpleMethod(this, "toUpperCase", valibot.toUpperCase, params);
254
254
  }
255
255
  };
256
- class BigIntColumnValibot extends pqb.BigIntColumn {
256
+ class BigIntColumnValibot extends internal.BigIntColumn {
257
257
  }
258
258
  Object.assign(BigIntColumnValibot.prototype, stringMethods);
259
- class DecimalColumnValibot extends pqb.DecimalColumn {
259
+ class DecimalColumnValibot extends internal.DecimalColumn {
260
260
  }
261
261
  Object.assign(DecimalColumnValibot.prototype, stringMethods);
262
- class DoublePrecisionColumnValibot extends pqb.DoublePrecisionColumn {
262
+ class DoublePrecisionColumnValibot extends internal.DoublePrecisionColumn {
263
263
  }
264
264
  Object.assign(DoublePrecisionColumnValibot.prototype, stringMethods);
265
- class BigSerialColumnValibot extends pqb.BigSerialColumn {
265
+ class BigSerialColumnValibot extends internal.BigSerialColumn {
266
266
  }
267
267
  Object.assign(BigSerialColumnValibot.prototype, stringMethods);
268
- class MoneyColumnValibot extends pqb.MoneyColumn {
268
+ class MoneyColumnValibot extends internal.MoneyColumn {
269
269
  }
270
270
  Object.assign(MoneyColumnValibot.prototype, numberMethods);
271
- class VarCharColumnValibot extends pqb.VarCharColumn {
271
+ class VarCharColumnValibot extends internal.VarCharColumn {
272
272
  }
273
273
  Object.assign(VarCharColumnValibot.prototype, stringMethods);
274
- class TextColumnValibot extends pqb.TextColumn {
274
+ class TextColumnValibot extends internal.TextColumn {
275
275
  }
276
276
  Object.assign(TextColumnValibot.prototype, stringMethods);
277
- class StringColumnValibot extends pqb.StringColumn {
277
+ class StringColumnValibot extends internal.StringColumn {
278
278
  }
279
279
  Object.assign(StringColumnValibot.prototype, stringMethods);
280
- class CitextColumnValibot extends pqb.CitextColumn {
280
+ class CitextColumnValibot extends internal.CitextColumn {
281
281
  }
282
282
  Object.assign(CitextColumnValibot.prototype, stringMethods);
283
283
  const dateMethods = {
@@ -288,13 +288,13 @@ const dateMethods = {
288
288
  return applyMethod(this, "max", value, valibot.maxValue, params);
289
289
  }
290
290
  };
291
- class DateColumnValibot extends pqb.DateColumn {
291
+ class DateColumnValibot extends internal.DateColumn {
292
292
  }
293
293
  Object.assign(DateColumnValibot.prototype, dateMethods);
294
- class TimestampNoTzColumnValibot extends pqb.TimestampColumn {
294
+ class TimestampNoTzColumnValibot extends internal.TimestampColumn {
295
295
  }
296
296
  Object.assign(TimestampNoTzColumnValibot.prototype, dateMethods);
297
- class TimestampColumnValibot extends pqb.TimestampTZColumn {
297
+ class TimestampColumnValibot extends internal.TimestampTZColumn {
298
298
  }
299
299
  Object.assign(TimestampColumnValibot.prototype, dateMethods);
300
300
  let pointSchema;
@@ -302,13 +302,13 @@ const parseDateToDate = (value) => new Date(value);
302
302
  const valibotSchemaConfig = {
303
303
  type: void 0,
304
304
  parse(schema, fn) {
305
- return pqb.setColumnParse(this, fn, schema);
305
+ return internal.setColumnParse(this, fn, schema);
306
306
  },
307
307
  parseNull(schema, fn) {
308
- return pqb.setColumnParseNull(this, fn, schema);
308
+ return internal.setColumnParseNull(this, fn, schema);
309
309
  },
310
310
  encode(schema, fn) {
311
- return pqb.setColumnEncode(this, fn, schema);
311
+ return internal.setColumnEncode(this, fn, schema);
312
312
  },
313
313
  asType(_types) {
314
314
  return this;
@@ -342,13 +342,13 @@ const valibotSchemaConfig = {
342
342
  return this.parse(valibot.date([]), parseDateToDate);
343
343
  },
344
344
  enum(dataType, type) {
345
- return new pqb.EnumColumn(valibotSchemaConfig, dataType, type, valibot.picklist(type));
345
+ return new internal.EnumColumn(valibotSchemaConfig, dataType, type, valibot.picklist(type));
346
346
  },
347
347
  array(item) {
348
348
  return new ValibotArrayColumn(item);
349
349
  },
350
350
  nullable() {
351
- return pqb.makeColumnNullable(
351
+ return internal.makeColumnNullable(
352
352
  this,
353
353
  valibot.nullable(this.inputSchema),
354
354
  this.nullSchema ? valibot.union([this.outputSchema, this.nullSchema]) : valibot.nullable(this.outputSchema),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/valibot.ts"],"sourcesContent":["import {\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n makeColumnNullable,\n setDataValue,\n StringData,\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n Column,\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 actionIssue,\n actionOutput,\n array,\n ArraySchema,\n BaseSchema,\n BaseTransformation,\n BaseValidation,\n boolean,\n BooleanSchema,\n coerce,\n cuid2,\n date,\n DateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema,\n integer,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n minLength,\n minValue,\n never,\n NeverSchema,\n nullable,\n NullableSchema,\n number,\n NumberSchema,\n object,\n ObjectEntries,\n ObjectSchema,\n optional,\n OptionalSchema,\n Output,\n partial,\n pick,\n picklist,\n PicklistSchema,\n regex,\n required,\n startsWith,\n string,\n stringify,\n StringSchema,\n toLowerCase,\n toTrimmed,\n toUpperCase,\n ulid,\n union,\n unknown,\n UnknownSchema,\n UnionSchema,\n url,\n uuid,\n} from 'valibot';\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schema: Schema) {\n super(valibotSchemaConfig, schema);\n }\n}\n\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(valibotSchemaConfig, item, array(item.inputSchema, []));\n }\n}\n\nObject.assign(ValibotArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n lte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n max<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n min<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n positive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonNegative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n negative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonPositive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n step<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n int<T>(this: T, params?: Column.Error.StringOrMessage): T;\n finite<T>(this: T, params?: Column.Error.StringOrMessage): T;\n safe<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nexport type GtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'gt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function gt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): GtValidation<TInput, TRequirement> {\n return {\n type: 'gt',\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input > this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n gt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'lt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function lt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): LtValidation<TInput, TRequirement> {\n return {\n type: 'lt',\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input < this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n lt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'step';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function step<TInput extends number, TRequirement extends TInput>(\n requirement: TRequirement,\n message?: string,\n): StepValidation<TInput, TRequirement> {\n return {\n type: 'step',\n expects: `a multiple of ${stringify(requirement)}`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input % this.requirement === 0) {\n return actionOutput(input);\n }\n return actionIssue(this, step, input, 'value', stringify(input));\n },\n };\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, lt, 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, maxValue, 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, maxValue, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, gt, 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, minValue, 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, minValue, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, gt, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, minValue, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, lt, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, maxValue, 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, step, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', integer, params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', 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(\n applySimpleMethod(\n this,\n 'safe',\n minValue,\n params,\n Number.MIN_SAFE_INTEGER,\n ),\n 'safe',\n maxValue,\n params,\n Number.MAX_SAFE_INTEGER,\n );\n },\n};\n\ninterface SmallIntColumnValibot\n extends SmallIntColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnValibot extends SmallIntColumn<ValibotSchemaConfig> {}\nObject.assign(SmallIntColumnValibot.prototype, numberMethods);\n\ninterface IntegerColumnValibot\n extends IntegerColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnValibot extends IntegerColumn<ValibotSchemaConfig> {}\nObject.assign(IntegerColumnValibot.prototype, numberMethods);\n\ninterface RealColumnValibot\n extends RealColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass RealColumnValibot extends RealColumn<ValibotSchemaConfig> {}\nObject.assign(RealColumnValibot.prototype, numberMethods);\n\ninterface SmallSerialColumnValibot\n extends SmallSerialColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnValibot extends SmallSerialColumn<ValibotSchemaConfig> {}\nObject.assign(SmallSerialColumnValibot.prototype, numberMethods);\n\ninterface SerialColumnValibot\n extends SerialColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnValibot extends SerialColumn<ValibotSchemaConfig> {}\nObject.assign(SerialColumnValibot.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid url\n url<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be an emoji\n emoji<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Validate the value over the given regular expression\n regex<T>(this: T, value: RegExp, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to include a given string\n includes<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T>(\n this: T,\n params?: StringData['datetime'] &\n Exclude<Column.Error.StringOrMessage, string>,\n ): T;\n\n // Check a value to be a valid ipv4 address\n ipv4<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Check a value to be a valid ipv6 address\n ipv6<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Trim the value during a validation\n trim<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', email, params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', url, params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', emoji, params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', uuid, params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', cuid2, params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', ulid, params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, regex, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, includes, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, startsWith, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, endsWith, params);\n },\n\n datetime(params) {\n return applySimpleMethod(this, 'datetime', isoDateTime, params);\n },\n\n ipv4(params = {}) {\n return applySimpleMethod(this, 'ipv4', ipv4, params);\n },\n\n ipv6(params = {}) {\n return applySimpleMethod(this, 'ipv6', ipv6, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', toTrimmed, params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', toLowerCase, params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', toUpperCase, params);\n },\n};\n\ninterface BigIntColumnValibot\n extends BigIntColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnValibot extends BigIntColumn<ValibotSchemaConfig> {}\nObject.assign(BigIntColumnValibot.prototype, stringMethods);\n\ninterface DecimalColumnValibot\n extends DecimalColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnValibot extends DecimalColumn<ValibotSchemaConfig> {}\nObject.assign(DecimalColumnValibot.prototype, stringMethods);\n\ninterface DoublePrecisionColumnValibot\n extends DoublePrecisionColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnValibot extends DoublePrecisionColumn<ValibotSchemaConfig> {}\nObject.assign(DoublePrecisionColumnValibot.prototype, stringMethods);\n\ninterface BigSerialColumnValibot\n extends BigSerialColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnValibot extends BigSerialColumn<ValibotSchemaConfig> {}\nObject.assign(BigSerialColumnValibot.prototype, stringMethods);\n\ninterface MoneyColumnValibot\n extends MoneyColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass MoneyColumnValibot extends MoneyColumn<ValibotSchemaConfig> {}\nObject.assign(MoneyColumnValibot.prototype, numberMethods);\n\ninterface VarCharColumnValibot\n extends VarCharColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnValibot extends VarCharColumn<ValibotSchemaConfig> {}\nObject.assign(VarCharColumnValibot.prototype, stringMethods);\n\ninterface TextColumnValibot\n extends TextColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass TextColumnValibot extends TextColumn<ValibotSchemaConfig> {}\nObject.assign(TextColumnValibot.prototype, stringMethods);\n\ninterface StringColumnValibot\n extends StringColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass StringColumnValibot extends StringColumn<ValibotSchemaConfig> {}\nObject.assign(StringColumnValibot.prototype, stringMethods);\n\ninterface CitextColumnValibot\n extends CitextColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnValibot extends CitextColumn<ValibotSchemaConfig> {}\nObject.assign(CitextColumnValibot.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, minValue, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxValue, params);\n },\n};\n\ninterface DateColumnValibot\n extends DateColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass DateColumnValibot extends DateColumn<ValibotSchemaConfig> {}\nObject.assign(DateColumnValibot.prototype, dateMethods);\n\ninterface TimestampNoTzColumnValibot\n extends TimestampColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampNoTzColumnValibot.prototype, dateMethods);\n\ninterface TimestampColumnValibot\n extends TimestampTZColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampColumnValibot.prototype, dateMethods);\n\ntype PointSchemaValibot = ObjectSchema<{\n srid: OptionalSchema<NumberSchema>;\n lon: NumberSchema;\n lat: NumberSchema;\n}>;\n\nlet pointSchema: PointSchemaValibot | undefined;\n\nexport interface ValibotSchemaConfig {\n type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\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 BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\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>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\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 valibotSchemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\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 narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), Date.parse as never);\n },\n dateAsDate() {\n return this.parse(date([]), parseDateToDate);\n },\n enum(dataType, type) {\n return new EnumColumn(valibotSchemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this as never,\n nullable(this.inputSchema),\n this.nullSchema\n ? union([this.outputSchema, this.nullSchema])\n : nullable(this.outputSchema),\n nullable(this.querySchema),\n ) as never;\n },\n json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONColumn((schema ?? unknown([])) as Schema);\n },\n boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\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.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(valibotSchemaConfig),\n integer: () => new IntegerColumnValibot(valibotSchemaConfig),\n real: () => new RealColumnValibot(valibotSchemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(valibotSchemaConfig),\n serial: () => new SerialColumnValibot(valibotSchemaConfig),\n\n bigint: () => new BigIntColumnValibot(valibotSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(valibotSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(valibotSchemaConfig),\n bigSerial: () => new BigSerialColumnValibot(valibotSchemaConfig),\n money: () => new MoneyColumnValibot(valibotSchemaConfig),\n varchar: (limit) => new VarCharColumnValibot(valibotSchemaConfig, limit),\n text: () => new TextColumnValibot(valibotSchemaConfig),\n string: (limit) => new StringColumnValibot(valibotSchemaConfig, limit),\n citext: () => new CitextColumnValibot(valibotSchemaConfig),\n\n date: () => new DateColumnValibot(valibotSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(valibotSchemaConfig, precision),\n timestamp: (precision) =>\n new TimestampColumnValibot(valibotSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n}>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\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 ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\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: ObjectEntries = {};\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 object(shape) as MapSchema<T, Key>;\n}\n"],"names":["JSONColumn","setDataValue","minLength","maxLength","length","ArrayColumn","array","stringify","actionOutput","actionIssue","maxValue","minValue","integer","finite","SmallIntColumn","IntegerColumn","RealColumn","SmallSerialColumn","SerialColumn","email","url","emoji","uuid","cuid2","ulid","regex","includes","startsWith","endsWith","isoDateTime","ipv4","ipv6","toTrimmed","toLowerCase","toUpperCase","BigIntColumn","DecimalColumn","DoublePrecisionColumn","BigSerialColumn","MoneyColumn","VarCharColumn","TextColumn","StringColumn","CitextColumn","DateColumn","TimestampColumn","TimestampTZColumn","setColumnParse","setColumnParseNull","setColumnEncode","number","date","EnumColumn","picklist","makeColumnNullable","nullable","union","unknown","boolean","instance","never","string","coerce","object","optional","partial","required","pick"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/valibot.ts"],"sourcesContent":["import {\n Column,\n ArrayColumn,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n ArrayColumnValue,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n makeColumnNullable,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n setDataValue,\n StringData,\n} from 'pqb/internal';\nimport {\n actionIssue,\n actionOutput,\n array,\n ArraySchema,\n BaseSchema,\n BaseTransformation,\n BaseValidation,\n boolean,\n BooleanSchema,\n coerce,\n cuid2,\n date,\n DateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema,\n integer,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n minLength,\n minValue,\n never,\n NeverSchema,\n nullable,\n NullableSchema,\n number,\n NumberSchema,\n object,\n ObjectEntries,\n ObjectSchema,\n optional,\n OptionalSchema,\n Output,\n partial,\n pick,\n picklist,\n PicklistSchema,\n regex,\n required,\n startsWith,\n string,\n stringify,\n StringSchema,\n toLowerCase,\n toTrimmed,\n toUpperCase,\n ulid,\n union,\n unknown,\n UnknownSchema,\n UnionSchema,\n url,\n uuid,\n} from 'valibot';\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schema: Schema) {\n super(valibotSchemaConfig, schema);\n }\n}\n\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends\n ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(valibotSchemaConfig, item, array(item.inputSchema, []));\n }\n}\n\nObject.assign(ValibotArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n lte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n max<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n min<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n positive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonNegative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n negative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonPositive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n step<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n int<T>(this: T, params?: Column.Error.StringOrMessage): T;\n finite<T>(this: T, params?: Column.Error.StringOrMessage): T;\n safe<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nexport type GtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'gt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function gt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): GtValidation<TInput, TRequirement> {\n return {\n type: 'gt',\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input > this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n gt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'lt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function lt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): LtValidation<TInput, TRequirement> {\n return {\n type: 'lt',\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input < this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n lt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'step';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function step<TInput extends number, TRequirement extends TInput>(\n requirement: TRequirement,\n message?: string,\n): StepValidation<TInput, TRequirement> {\n return {\n type: 'step',\n expects: `a multiple of ${stringify(requirement)}`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input % this.requirement === 0) {\n return actionOutput(input);\n }\n return actionIssue(this, step, input, 'value', stringify(input));\n },\n };\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, lt, 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, maxValue, 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, maxValue, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, gt, 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, minValue, 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, minValue, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, gt, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, minValue, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, lt, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, maxValue, 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, step, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', integer, params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', 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(\n applySimpleMethod(\n this,\n 'safe',\n minValue,\n params,\n Number.MIN_SAFE_INTEGER,\n ),\n 'safe',\n maxValue,\n params,\n Number.MAX_SAFE_INTEGER,\n );\n },\n};\n\ninterface SmallIntColumnValibot\n extends SmallIntColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SmallIntColumnValibot extends SmallIntColumn<ValibotSchemaConfig> {}\nObject.assign(SmallIntColumnValibot.prototype, numberMethods);\n\ninterface IntegerColumnValibot\n extends IntegerColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass IntegerColumnValibot extends IntegerColumn<ValibotSchemaConfig> {}\nObject.assign(IntegerColumnValibot.prototype, numberMethods);\n\ninterface RealColumnValibot\n extends RealColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass RealColumnValibot extends RealColumn<ValibotSchemaConfig> {}\nObject.assign(RealColumnValibot.prototype, numberMethods);\n\ninterface SmallSerialColumnValibot\n extends SmallSerialColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SmallSerialColumnValibot extends SmallSerialColumn<ValibotSchemaConfig> {}\nObject.assign(SmallSerialColumnValibot.prototype, numberMethods);\n\ninterface SerialColumnValibot\n extends SerialColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SerialColumnValibot extends SerialColumn<ValibotSchemaConfig> {}\nObject.assign(SerialColumnValibot.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid url\n url<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be an emoji\n emoji<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Validate the value over the given regular expression\n regex<T>(this: T, value: RegExp, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to include a given string\n includes<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T>(\n this: T,\n params?: StringData['datetime'] &\n Exclude<Column.Error.StringOrMessage, string>,\n ): T;\n\n // Check a value to be a valid ipv4 address\n ipv4<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Check a value to be a valid ipv6 address\n ipv6<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Trim the value during a validation\n trim<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', email, params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', url, params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', emoji, params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', uuid, params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', cuid2, params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', ulid, params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, regex, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, includes, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, startsWith, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, endsWith, params);\n },\n\n datetime(params) {\n return applySimpleMethod(this, 'datetime', isoDateTime, params);\n },\n\n ipv4(params = {}) {\n return applySimpleMethod(this, 'ipv4', ipv4, params);\n },\n\n ipv6(params = {}) {\n return applySimpleMethod(this, 'ipv6', ipv6, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', toTrimmed, params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', toLowerCase, params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', toUpperCase, params);\n },\n};\n\ninterface BigIntColumnValibot\n extends BigIntColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass BigIntColumnValibot extends BigIntColumn<ValibotSchemaConfig> {}\nObject.assign(BigIntColumnValibot.prototype, stringMethods);\n\ninterface DecimalColumnValibot\n extends DecimalColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass DecimalColumnValibot extends DecimalColumn<ValibotSchemaConfig> {}\nObject.assign(DecimalColumnValibot.prototype, stringMethods);\n\ninterface DoublePrecisionColumnValibot\n extends DoublePrecisionColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass DoublePrecisionColumnValibot extends DoublePrecisionColumn<ValibotSchemaConfig> {}\nObject.assign(DoublePrecisionColumnValibot.prototype, stringMethods);\n\ninterface BigSerialColumnValibot\n extends BigSerialColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass BigSerialColumnValibot extends BigSerialColumn<ValibotSchemaConfig> {}\nObject.assign(BigSerialColumnValibot.prototype, stringMethods);\n\ninterface MoneyColumnValibot\n extends MoneyColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnValibot extends MoneyColumn<ValibotSchemaConfig> {}\nObject.assign(MoneyColumnValibot.prototype, numberMethods);\n\ninterface VarCharColumnValibot\n extends VarCharColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass VarCharColumnValibot extends VarCharColumn<ValibotSchemaConfig> {}\nObject.assign(VarCharColumnValibot.prototype, stringMethods);\n\ninterface TextColumnValibot\n extends TextColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass TextColumnValibot extends TextColumn<ValibotSchemaConfig> {}\nObject.assign(TextColumnValibot.prototype, stringMethods);\n\ninterface StringColumnValibot\n extends StringColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass StringColumnValibot extends StringColumn<ValibotSchemaConfig> {}\nObject.assign(StringColumnValibot.prototype, stringMethods);\n\ninterface CitextColumnValibot\n extends CitextColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass CitextColumnValibot extends CitextColumn<ValibotSchemaConfig> {}\nObject.assign(CitextColumnValibot.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, minValue, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxValue, params);\n },\n};\n\ninterface DateColumnValibot\n extends DateColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass DateColumnValibot extends DateColumn<ValibotSchemaConfig> {}\nObject.assign(DateColumnValibot.prototype, dateMethods);\n\ninterface TimestampNoTzColumnValibot\n extends TimestampColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampNoTzColumnValibot.prototype, dateMethods);\n\ninterface TimestampColumnValibot\n extends TimestampTZColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampColumnValibot.prototype, dateMethods);\n\ntype PointSchemaValibot = ObjectSchema<{\n srid: OptionalSchema<NumberSchema>;\n lon: NumberSchema;\n lat: NumberSchema;\n}>;\n\nlet pointSchema: PointSchemaValibot | undefined;\n\nexport interface ValibotSchemaConfig {\n type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\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 BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\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>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\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 valibotSchemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\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 narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), Date.parse as never);\n },\n dateAsDate() {\n return this.parse(date([]), parseDateToDate);\n },\n enum(dataType, type) {\n return new EnumColumn(valibotSchemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this as never,\n nullable(this.inputSchema),\n this.nullSchema\n ? union([this.outputSchema, this.nullSchema])\n : nullable(this.outputSchema),\n nullable(this.querySchema),\n ) as never;\n },\n json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONColumn((schema ?? unknown([])) as Schema);\n },\n boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\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.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(valibotSchemaConfig),\n integer: () => new IntegerColumnValibot(valibotSchemaConfig),\n real: () => new RealColumnValibot(valibotSchemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(valibotSchemaConfig),\n serial: () => new SerialColumnValibot(valibotSchemaConfig),\n\n bigint: () => new BigIntColumnValibot(valibotSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(valibotSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(valibotSchemaConfig),\n bigSerial: () => new BigSerialColumnValibot(valibotSchemaConfig),\n money: () => new MoneyColumnValibot(valibotSchemaConfig),\n varchar: (limit) => new VarCharColumnValibot(valibotSchemaConfig, limit),\n text: () => new TextColumnValibot(valibotSchemaConfig),\n string: (limit) => new StringColumnValibot(valibotSchemaConfig, limit),\n citext: () => new CitextColumnValibot(valibotSchemaConfig),\n\n date: () => new DateColumnValibot(valibotSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(valibotSchemaConfig, precision),\n timestamp: (precision) =>\n new TimestampColumnValibot(valibotSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n}>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\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 ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\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: ObjectEntries = {};\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 object(shape) as MapSchema<T, Key>;\n}\n"],"names":["JSONColumn","setDataValue","minLength","maxLength","length","ArrayColumn","array","stringify","actionOutput","actionIssue","maxValue","minValue","integer","finite","SmallIntColumn","IntegerColumn","RealColumn","SmallSerialColumn","SerialColumn","email","url","emoji","uuid","cuid2","ulid","regex","includes","startsWith","endsWith","isoDateTime","ipv4","ipv6","toTrimmed","toLowerCase","toUpperCase","BigIntColumn","DecimalColumn","DoublePrecisionColumn","BigSerialColumn","MoneyColumn","VarCharColumn","TextColumn","StringColumn","CitextColumn","DateColumn","TimestampColumn","TimestampTZColumn","setColumnParse","setColumnParseNull","setColumnEncode","number","date","EnumColumn","picklist","makeColumnNullable","nullable","union","unknown","boolean","instance","never","string","coerce","object","optional","partial","required","pick"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { setDataValue, ArrayColumn, SmallIntColumn, IntegerColumn, RealColumn, SmallSerialColumn, SerialColumn, BigIntColumn, DecimalColumn, DoublePrecisionColumn, BigSerialColumn, MoneyColumn, VarCharColumn, TextColumn, StringColumn, CitextColumn, DateColumn, TimestampColumn, TimestampTZColumn, setColumnParse, setColumnParseNull, setColumnEncode, EnumColumn, makeColumnNullable, JSONColumn } from 'pqb';
2
- import { minLength, maxLength, length, array, stringify, actionOutput, actionIssue, maxValue, minValue, integer, finite, email, url, emoji, uuid, cuid2, ulid, regex, includes, startsWith, endsWith, isoDateTime, ipv4, ipv6, toTrimmed, toLowerCase, toUpperCase, number, date, picklist, nullable, union, unknown, boolean, instance, never, string, coerce, object, optional, partial, required, pick } from 'valibot';
1
+ import { ArrayColumn, SmallIntColumn, IntegerColumn, RealColumn, SmallSerialColumn, SerialColumn, BigIntColumn, DecimalColumn, DoublePrecisionColumn, BigSerialColumn, MoneyColumn, VarCharColumn, TextColumn, StringColumn, CitextColumn, DateColumn, TimestampColumn, TimestampTZColumn, makeColumnNullable, EnumColumn, setColumnEncode, setColumnParseNull, setColumnParse, setDataValue, JSONColumn } from 'pqb/internal';
2
+ import { array, minValue, object, number, optional, required, pick, partial, string, uuid, maxLength, regex, coerce, date, integer, minLength, never, unknown, instance, boolean, nullable, union, picklist, length, actionOutput, actionIssue, stringify, maxValue, finite, toUpperCase, toLowerCase, toTrimmed, ipv6, ipv4, isoDateTime, endsWith, startsWith, includes, ulid, cuid2, emoji, url, email } from 'valibot';
3
3
 
4
4
  class ValibotJSONColumn extends JSONColumn {
5
5
  constructor(schema) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/valibot.ts"],"sourcesContent":["import {\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n makeColumnNullable,\n setDataValue,\n StringData,\n ArrayColumn,\n ArrayColumnValue,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n Column,\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 actionIssue,\n actionOutput,\n array,\n ArraySchema,\n BaseSchema,\n BaseTransformation,\n BaseValidation,\n boolean,\n BooleanSchema,\n coerce,\n cuid2,\n date,\n DateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema,\n integer,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n minLength,\n minValue,\n never,\n NeverSchema,\n nullable,\n NullableSchema,\n number,\n NumberSchema,\n object,\n ObjectEntries,\n ObjectSchema,\n optional,\n OptionalSchema,\n Output,\n partial,\n pick,\n picklist,\n PicklistSchema,\n regex,\n required,\n startsWith,\n string,\n stringify,\n StringSchema,\n toLowerCase,\n toTrimmed,\n toUpperCase,\n ulid,\n union,\n unknown,\n UnknownSchema,\n UnionSchema,\n url,\n uuid,\n} from 'valibot';\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schema: Schema) {\n super(valibotSchemaConfig, schema);\n }\n}\n\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(valibotSchemaConfig, item, array(item.inputSchema, []));\n }\n}\n\nObject.assign(ValibotArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n lte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n max<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n min<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n positive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonNegative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n negative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonPositive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n step<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n int<T>(this: T, params?: Column.Error.StringOrMessage): T;\n finite<T>(this: T, params?: Column.Error.StringOrMessage): T;\n safe<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nexport type GtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'gt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function gt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): GtValidation<TInput, TRequirement> {\n return {\n type: 'gt',\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input > this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n gt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'lt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function lt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): LtValidation<TInput, TRequirement> {\n return {\n type: 'lt',\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input < this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n lt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'step';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function step<TInput extends number, TRequirement extends TInput>(\n requirement: TRequirement,\n message?: string,\n): StepValidation<TInput, TRequirement> {\n return {\n type: 'step',\n expects: `a multiple of ${stringify(requirement)}`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input % this.requirement === 0) {\n return actionOutput(input);\n }\n return actionIssue(this, step, input, 'value', stringify(input));\n },\n };\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, lt, 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, maxValue, 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, maxValue, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, gt, 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, minValue, 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, minValue, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, gt, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, minValue, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, lt, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, maxValue, 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, step, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', integer, params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', 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(\n applySimpleMethod(\n this,\n 'safe',\n minValue,\n params,\n Number.MIN_SAFE_INTEGER,\n ),\n 'safe',\n maxValue,\n params,\n Number.MAX_SAFE_INTEGER,\n );\n },\n};\n\ninterface SmallIntColumnValibot\n extends SmallIntColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SmallIntColumnValibot extends SmallIntColumn<ValibotSchemaConfig> {}\nObject.assign(SmallIntColumnValibot.prototype, numberMethods);\n\ninterface IntegerColumnValibot\n extends IntegerColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass IntegerColumnValibot extends IntegerColumn<ValibotSchemaConfig> {}\nObject.assign(IntegerColumnValibot.prototype, numberMethods);\n\ninterface RealColumnValibot\n extends RealColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass RealColumnValibot extends RealColumn<ValibotSchemaConfig> {}\nObject.assign(RealColumnValibot.prototype, numberMethods);\n\ninterface SmallSerialColumnValibot\n extends SmallSerialColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SmallSerialColumnValibot extends SmallSerialColumn<ValibotSchemaConfig> {}\nObject.assign(SmallSerialColumnValibot.prototype, numberMethods);\n\ninterface SerialColumnValibot\n extends SerialColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass SerialColumnValibot extends SerialColumn<ValibotSchemaConfig> {}\nObject.assign(SerialColumnValibot.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid url\n url<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be an emoji\n emoji<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Validate the value over the given regular expression\n regex<T>(this: T, value: RegExp, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to include a given string\n includes<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T>(\n this: T,\n params?: StringData['datetime'] &\n Exclude<Column.Error.StringOrMessage, string>,\n ): T;\n\n // Check a value to be a valid ipv4 address\n ipv4<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Check a value to be a valid ipv6 address\n ipv6<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Trim the value during a validation\n trim<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', email, params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', url, params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', emoji, params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', uuid, params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', cuid2, params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', ulid, params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, regex, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, includes, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, startsWith, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, endsWith, params);\n },\n\n datetime(params) {\n return applySimpleMethod(this, 'datetime', isoDateTime, params);\n },\n\n ipv4(params = {}) {\n return applySimpleMethod(this, 'ipv4', ipv4, params);\n },\n\n ipv6(params = {}) {\n return applySimpleMethod(this, 'ipv6', ipv6, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', toTrimmed, params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', toLowerCase, params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', toUpperCase, params);\n },\n};\n\ninterface BigIntColumnValibot\n extends BigIntColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass BigIntColumnValibot extends BigIntColumn<ValibotSchemaConfig> {}\nObject.assign(BigIntColumnValibot.prototype, stringMethods);\n\ninterface DecimalColumnValibot\n extends DecimalColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass DecimalColumnValibot extends DecimalColumn<ValibotSchemaConfig> {}\nObject.assign(DecimalColumnValibot.prototype, stringMethods);\n\ninterface DoublePrecisionColumnValibot\n extends DoublePrecisionColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass DoublePrecisionColumnValibot extends DoublePrecisionColumn<ValibotSchemaConfig> {}\nObject.assign(DoublePrecisionColumnValibot.prototype, stringMethods);\n\ninterface BigSerialColumnValibot\n extends BigSerialColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass BigSerialColumnValibot extends BigSerialColumn<ValibotSchemaConfig> {}\nObject.assign(BigSerialColumnValibot.prototype, stringMethods);\n\ninterface MoneyColumnValibot\n extends MoneyColumn<ValibotSchemaConfig>,\n NumberMethods {}\n\nclass MoneyColumnValibot extends MoneyColumn<ValibotSchemaConfig> {}\nObject.assign(MoneyColumnValibot.prototype, numberMethods);\n\ninterface VarCharColumnValibot\n extends VarCharColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass VarCharColumnValibot extends VarCharColumn<ValibotSchemaConfig> {}\nObject.assign(VarCharColumnValibot.prototype, stringMethods);\n\ninterface TextColumnValibot\n extends TextColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass TextColumnValibot extends TextColumn<ValibotSchemaConfig> {}\nObject.assign(TextColumnValibot.prototype, stringMethods);\n\ninterface StringColumnValibot\n extends StringColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass StringColumnValibot extends StringColumn<ValibotSchemaConfig> {}\nObject.assign(StringColumnValibot.prototype, stringMethods);\n\ninterface CitextColumnValibot\n extends CitextColumn<ValibotSchemaConfig>,\n StringMethods {}\n\nclass CitextColumnValibot extends CitextColumn<ValibotSchemaConfig> {}\nObject.assign(CitextColumnValibot.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, minValue, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxValue, params);\n },\n};\n\ninterface DateColumnValibot\n extends DateColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass DateColumnValibot extends DateColumn<ValibotSchemaConfig> {}\nObject.assign(DateColumnValibot.prototype, dateMethods);\n\ninterface TimestampNoTzColumnValibot\n extends TimestampColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampNoTzColumnValibot.prototype, dateMethods);\n\ninterface TimestampColumnValibot\n extends TimestampTZColumn<ValibotSchemaConfig>,\n DateMethods {}\n\nclass TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampColumnValibot.prototype, dateMethods);\n\ntype PointSchemaValibot = ObjectSchema<{\n srid: OptionalSchema<NumberSchema>;\n lon: NumberSchema;\n lat: NumberSchema;\n}>;\n\nlet pointSchema: PointSchemaValibot | undefined;\n\nexport interface ValibotSchemaConfig {\n type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\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 BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\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>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\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 valibotSchemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\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 narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), Date.parse as never);\n },\n dateAsDate() {\n return this.parse(date([]), parseDateToDate);\n },\n enum(dataType, type) {\n return new EnumColumn(valibotSchemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this as never,\n nullable(this.inputSchema),\n this.nullSchema\n ? union([this.outputSchema, this.nullSchema])\n : nullable(this.outputSchema),\n nullable(this.querySchema),\n ) as never;\n },\n json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONColumn((schema ?? unknown([])) as Schema);\n },\n boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\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.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(valibotSchemaConfig),\n integer: () => new IntegerColumnValibot(valibotSchemaConfig),\n real: () => new RealColumnValibot(valibotSchemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(valibotSchemaConfig),\n serial: () => new SerialColumnValibot(valibotSchemaConfig),\n\n bigint: () => new BigIntColumnValibot(valibotSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(valibotSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(valibotSchemaConfig),\n bigSerial: () => new BigSerialColumnValibot(valibotSchemaConfig),\n money: () => new MoneyColumnValibot(valibotSchemaConfig),\n varchar: (limit) => new VarCharColumnValibot(valibotSchemaConfig, limit),\n text: () => new TextColumnValibot(valibotSchemaConfig),\n string: (limit) => new StringColumnValibot(valibotSchemaConfig, limit),\n citext: () => new CitextColumnValibot(valibotSchemaConfig),\n\n date: () => new DateColumnValibot(valibotSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(valibotSchemaConfig, precision),\n timestamp: (precision) =>\n new TimestampColumnValibot(valibotSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n}>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\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 ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\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: ObjectEntries = {};\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 object(shape) as MapSchema<T, Key>;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/valibot.ts"],"sourcesContent":["import {\n Column,\n ArrayColumn,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n ArrayColumnValue,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n makeColumnNullable,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n setDataValue,\n StringData,\n} from 'pqb/internal';\nimport {\n actionIssue,\n actionOutput,\n array,\n ArraySchema,\n BaseSchema,\n BaseTransformation,\n BaseValidation,\n boolean,\n BooleanSchema,\n coerce,\n cuid2,\n date,\n DateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema,\n integer,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n minLength,\n minValue,\n never,\n NeverSchema,\n nullable,\n NullableSchema,\n number,\n NumberSchema,\n object,\n ObjectEntries,\n ObjectSchema,\n optional,\n OptionalSchema,\n Output,\n partial,\n pick,\n picklist,\n PicklistSchema,\n regex,\n required,\n startsWith,\n string,\n stringify,\n StringSchema,\n toLowerCase,\n toTrimmed,\n toUpperCase,\n ulid,\n union,\n unknown,\n UnknownSchema,\n UnionSchema,\n url,\n uuid,\n} from 'valibot';\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schema: Schema) {\n super(valibotSchemaConfig, schema);\n }\n}\n\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends\n ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(item: Item) {\n super(valibotSchemaConfig, item, array(item.inputSchema, []));\n }\n}\n\nObject.assign(ValibotArrayColumn.prototype, arrayMethods);\n\ninterface NumberMethods {\n lt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n lte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n max<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gt<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n gte<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n min<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n positive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonNegative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n negative<T>(this: T, params?: Column.Error.StringOrMessage): T;\n nonPositive<T>(this: T, params?: Column.Error.StringOrMessage): T;\n step<T>(this: T, value: number, params?: Column.Error.StringOrMessage): T;\n int<T>(this: T, params?: Column.Error.StringOrMessage): T;\n finite<T>(this: T, params?: Column.Error.StringOrMessage): T;\n safe<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nexport type GtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'gt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function gt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): GtValidation<TInput, TRequirement> {\n return {\n type: 'gt',\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input > this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n gt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'lt';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function lt<\n TInput extends string | number | bigint | Date,\n TRequirement extends TInput,\n>(\n requirement: TRequirement,\n message?: string,\n): LtValidation<TInput, TRequirement> {\n return {\n type: 'lt',\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input < this.requirement) {\n return actionOutput(input);\n }\n return actionIssue(\n this,\n lt,\n input,\n 'value',\n input instanceof Date ? input.toJSON() : stringify(input),\n );\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n /**\n * The validation type.\n */\n type: 'step';\n /**\n * The maximum value.\n */\n requirement: TRequirement;\n};\n\nexport function step<TInput extends number, TRequirement extends TInput>(\n requirement: TRequirement,\n message?: string,\n): StepValidation<TInput, TRequirement> {\n return {\n type: 'step',\n expects: `a multiple of ${stringify(requirement)}`,\n async: false,\n message,\n requirement,\n _parse(input) {\n if (input % this.requirement === 0) {\n return actionOutput(input);\n }\n return actionIssue(this, step, input, 'value', stringify(input));\n },\n };\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, lt, 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, maxValue, 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, maxValue, params);\n },\n\n // Require a value to be greater than a given number\n gt(value, params) {\n return applyMethod(this, 'gt', value, gt, 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, minValue, 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, minValue, params);\n },\n\n // Require a value to be greater than 0\n positive(params) {\n return applyMethod(this, 'gt', 0, gt, params);\n },\n\n // Require a value to be greater than or equal to 0\n nonNegative(params) {\n return applyMethod(this, 'gte', 0, minValue, params);\n },\n\n // Require a value to be lower than 0\n negative(params) {\n return applyMethod(this, 'lt', 0, lt, params);\n },\n\n // Require a value to be lower than or equal to 0\n nonPositive(params) {\n return applyMethod(this, 'lte', 0, maxValue, 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, step, params);\n },\n\n // Require a value to be an integer\n int(params) {\n return applySimpleMethod(this, 'int', integer, params);\n },\n\n // Exclude `Infinity` from being a valid value\n finite(params) {\n return applySimpleMethod(this, 'finite', 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(\n applySimpleMethod(\n this,\n 'safe',\n minValue,\n params,\n Number.MIN_SAFE_INTEGER,\n ),\n 'safe',\n maxValue,\n params,\n Number.MAX_SAFE_INTEGER,\n );\n },\n};\n\ninterface SmallIntColumnValibot\n extends SmallIntColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SmallIntColumnValibot extends SmallIntColumn<ValibotSchemaConfig> {}\nObject.assign(SmallIntColumnValibot.prototype, numberMethods);\n\ninterface IntegerColumnValibot\n extends IntegerColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass IntegerColumnValibot extends IntegerColumn<ValibotSchemaConfig> {}\nObject.assign(IntegerColumnValibot.prototype, numberMethods);\n\ninterface RealColumnValibot\n extends RealColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass RealColumnValibot extends RealColumn<ValibotSchemaConfig> {}\nObject.assign(RealColumnValibot.prototype, numberMethods);\n\ninterface SmallSerialColumnValibot\n extends SmallSerialColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SmallSerialColumnValibot extends SmallSerialColumn<ValibotSchemaConfig> {}\nObject.assign(SmallSerialColumnValibot.prototype, numberMethods);\n\ninterface SerialColumnValibot\n extends SerialColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass SerialColumnValibot extends SerialColumn<ValibotSchemaConfig> {}\nObject.assign(SerialColumnValibot.prototype, numberMethods);\n\ninterface StringMethods extends ArrayMethods<number> {\n // Check a value to be a valid email\n email<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid url\n url<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be an emoji\n emoji<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid uuid\n uuid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid cuid2\n cuid2<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to be a valid ulid\n ulid<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Validate the value over the given regular expression\n regex<T>(this: T, value: RegExp, params?: Column.Error.StringOrMessage): T;\n\n // Check a value to include a given string\n includes<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to start with a given string\n startsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value to end with a given string\n endsWith<T, Value extends string>(\n this: T,\n value: Value,\n params?: Column.Error.StringOrMessage,\n ): T;\n\n // Check a value have a valid datetime string\n datetime<T>(\n this: T,\n params?: StringData['datetime'] &\n Exclude<Column.Error.StringOrMessage, string>,\n ): T;\n\n // Check a value to be a valid ipv4 address\n ipv4<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Check a value to be a valid ipv6 address\n ipv6<T>(this: T, params?: Exclude<Column.Error.StringOrMessage, string>): T;\n\n // Trim the value during a validation\n trim<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to a lower case during a validation\n toLowerCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n\n // Transform value to an upper case during a validation\n toUpperCase<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst stringMethods: StringMethods = {\n ...(arrayMethods as unknown as ArrayMethods<number>),\n\n email(params) {\n return applySimpleMethod(this, 'email', email, params);\n },\n\n url(params) {\n return applySimpleMethod(this, 'url', url, params);\n },\n\n emoji(params) {\n return applySimpleMethod(this, 'emoji', emoji, params);\n },\n\n uuid(params) {\n return applySimpleMethod(this, 'uuid', uuid, params);\n },\n\n cuid2(params) {\n return applySimpleMethod(this, 'cuid2', cuid2, params);\n },\n\n ulid(params) {\n return applySimpleMethod(this, 'ulid', ulid, params);\n },\n\n regex(value, params) {\n return applyMethod(this, 'regex', value, regex, params);\n },\n\n includes(value, params) {\n return applyMethod(this, 'includes', value, includes, params);\n },\n\n startsWith(value, params) {\n return applyMethod(this, 'startsWith', value, startsWith, params);\n },\n\n endsWith(value, params) {\n return applyMethod(this, 'endsWith', value, endsWith, params);\n },\n\n datetime(params) {\n return applySimpleMethod(this, 'datetime', isoDateTime, params);\n },\n\n ipv4(params = {}) {\n return applySimpleMethod(this, 'ipv4', ipv4, params);\n },\n\n ipv6(params = {}) {\n return applySimpleMethod(this, 'ipv6', ipv6, params);\n },\n\n trim(params) {\n return applySimpleMethod(this, 'trim', toTrimmed, params);\n },\n\n toLowerCase(params) {\n return applySimpleMethod(this, 'toLowerCase', toLowerCase, params);\n },\n\n toUpperCase(params) {\n return applySimpleMethod(this, 'toUpperCase', toUpperCase, params);\n },\n};\n\ninterface BigIntColumnValibot\n extends BigIntColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass BigIntColumnValibot extends BigIntColumn<ValibotSchemaConfig> {}\nObject.assign(BigIntColumnValibot.prototype, stringMethods);\n\ninterface DecimalColumnValibot\n extends DecimalColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass DecimalColumnValibot extends DecimalColumn<ValibotSchemaConfig> {}\nObject.assign(DecimalColumnValibot.prototype, stringMethods);\n\ninterface DoublePrecisionColumnValibot\n extends DoublePrecisionColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass DoublePrecisionColumnValibot extends DoublePrecisionColumn<ValibotSchemaConfig> {}\nObject.assign(DoublePrecisionColumnValibot.prototype, stringMethods);\n\ninterface BigSerialColumnValibot\n extends BigSerialColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass BigSerialColumnValibot extends BigSerialColumn<ValibotSchemaConfig> {}\nObject.assign(BigSerialColumnValibot.prototype, stringMethods);\n\ninterface MoneyColumnValibot\n extends MoneyColumn<ValibotSchemaConfig>, NumberMethods {}\n\nclass MoneyColumnValibot extends MoneyColumn<ValibotSchemaConfig> {}\nObject.assign(MoneyColumnValibot.prototype, numberMethods);\n\ninterface VarCharColumnValibot\n extends VarCharColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass VarCharColumnValibot extends VarCharColumn<ValibotSchemaConfig> {}\nObject.assign(VarCharColumnValibot.prototype, stringMethods);\n\ninterface TextColumnValibot\n extends TextColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass TextColumnValibot extends TextColumn<ValibotSchemaConfig> {}\nObject.assign(TextColumnValibot.prototype, stringMethods);\n\ninterface StringColumnValibot\n extends StringColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass StringColumnValibot extends StringColumn<ValibotSchemaConfig> {}\nObject.assign(StringColumnValibot.prototype, stringMethods);\n\ninterface CitextColumnValibot\n extends CitextColumn<ValibotSchemaConfig>, StringMethods {}\n\nclass CitextColumnValibot extends CitextColumn<ValibotSchemaConfig> {}\nObject.assign(CitextColumnValibot.prototype, stringMethods);\n\ninterface DateMethods {\n // Require a value to be greater than or equal to a given Date object\n min<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be lower than or equal to a given Date object\n max<T>(this: T, value: Date, params?: Column.Error.StringOrMessage): T;\n}\n\nconst dateMethods: DateMethods = {\n min(value, params) {\n return applyMethod(this, 'min', value, minValue, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxValue, params);\n },\n};\n\ninterface DateColumnValibot\n extends DateColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass DateColumnValibot extends DateColumn<ValibotSchemaConfig> {}\nObject.assign(DateColumnValibot.prototype, dateMethods);\n\ninterface TimestampNoTzColumnValibot\n extends TimestampColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampNoTzColumnValibot.prototype, dateMethods);\n\ninterface TimestampColumnValibot\n extends TimestampTZColumn<ValibotSchemaConfig>, DateMethods {}\n\nclass TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig> {}\nObject.assign(TimestampColumnValibot.prototype, dateMethods);\n\ntype PointSchemaValibot = ObjectSchema<{\n srid: OptionalSchema<NumberSchema>;\n lon: NumberSchema;\n lat: NumberSchema;\n}>;\n\nlet pointSchema: PointSchemaValibot | undefined;\n\nexport interface ValibotSchemaConfig {\n type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\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 BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\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>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\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 valibotSchemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\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 narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), Date.parse as never);\n },\n dateAsDate() {\n return this.parse(date([]), parseDateToDate);\n },\n enum(dataType, type) {\n return new EnumColumn(valibotSchemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(item);\n },\n nullable() {\n return makeColumnNullable(\n this as never,\n nullable(this.inputSchema),\n this.nullSchema\n ? union([this.outputSchema, this.nullSchema])\n : nullable(this.outputSchema),\n nullable(this.querySchema),\n ) as never;\n },\n json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONColumn((schema ?? unknown([])) as Schema);\n },\n boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\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.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(valibotSchemaConfig),\n integer: () => new IntegerColumnValibot(valibotSchemaConfig),\n real: () => new RealColumnValibot(valibotSchemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(valibotSchemaConfig),\n serial: () => new SerialColumnValibot(valibotSchemaConfig),\n\n bigint: () => new BigIntColumnValibot(valibotSchemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(valibotSchemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(valibotSchemaConfig),\n bigSerial: () => new BigSerialColumnValibot(valibotSchemaConfig),\n money: () => new MoneyColumnValibot(valibotSchemaConfig),\n varchar: (limit) => new VarCharColumnValibot(valibotSchemaConfig, limit),\n text: () => new TextColumnValibot(valibotSchemaConfig),\n string: (limit) => new StringColumnValibot(valibotSchemaConfig, limit),\n citext: () => new CitextColumnValibot(valibotSchemaConfig),\n\n date: () => new DateColumnValibot(valibotSchemaConfig),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(valibotSchemaConfig, precision),\n timestamp: (precision) =>\n new TimestampColumnValibot(valibotSchemaConfig, precision),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key];\n}>;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnSchemaGetterColumns<T>[K]['querySchema']\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\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 ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\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: ObjectEntries = {};\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 object(shape) as MapSchema<T, Key>;\n}\n"],"names":[],"mappings":";;;AAgGA,MAAM,0BAAqD,UAAA,CAIzD;AAAA,EACA,YAAY,MAAA,EAAgB;AAC1B,IAAA,KAAA,CAAM,qBAAqB,MAAM,CAAA;AAAA,EACnC;AACF;AAEA,SAAS,WAAA,CACP,MAAA,EACA,GAAA,EACA,KAAA,EACA,YACA,MAAA,EACA;AACA,EAAA,MAAM,MAAA,GAAS,YAAA;AAAA,IACb,MAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,CAAA,GAAI,UAAA;AAAA,IACR,KAAA;AAAA,IACA,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,CAAO,OAAA,GAAU;AAAA,GAChD;AAEA,EAAA,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAC9B,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAC/B,EAAA,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAE9B,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,iBAAA,CACP,MAAA,EACA,GAAA,EACA,UAAA,EACA,WACG,IAAA,EACH;AACA,EAAA,MAAM,MAAA,GAAS,YAAA;AAAA,IACb,MAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,CAAA,GAAI,UAAA;AAAA,IACR,GAAI,IAAA;AAAA,IACH,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,CAAO,OAAA,GAAU;AAAA,GACjD;AAEA,EAAA,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAC9B,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAC/B,EAAA,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAE9B,EAAA,OAAO,MAAA;AACT;AAgBA,MAAM,YAAA,GAAqC;AAAA,EACzC,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,WAAW,MAAM,CAAA;AAAA,EAC1D,CAAA;AAAA,EACA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,WAAW,MAAM,CAAA;AAAA,EAC1D,CAAA;AAAA,EACA,MAAA,CAAO,OAAO,MAAA,EAAQ;AACpB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,QAAQ,MAAM,CAAA;AAAA,EAC1D,CAAA;AAAA,EACA,SAAS,MAAA,EAAQ;AACf,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,CAAA,EAAG,WAAW,MAAM,CAAA;AAAA,EACtD;AACF,CAAA;AAaA,MAAM,2BAA0D,WAAA,CAM9D;AAAA,EACA,YAAY,IAAA,EAAY;AACtB,IAAA,KAAA,CAAM,qBAAqB,IAAA,EAAM,KAAA,CAAM,KAAK,WAAA,EAAa,EAAE,CAAC,CAAA;AAAA,EAC9D;AACF;AAEA,MAAA,CAAO,MAAA,CAAO,kBAAA,CAAmB,SAAA,EAAW,YAAY,CAAA;AAiCjD,SAAS,EAAA,CAId,aACA,OAAA,EACoC;AACpC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,IAAA;AAAA,IACN,OAAA,EAAS,IACP,WAAA,YAAuB,IAAA,GACnB,YAAY,MAAA,EAAO,GACnB,SAAA,CAAU,WAAW,CAC3B,CAAA,CAAA;AAAA,IACA,KAAA,EAAO,KAAA;AAAA,IACP,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAO,KAAA,EAAO;AACZ,MAAA,IAAI,KAAA,GAAQ,KAAK,WAAA,EAAa;AAC5B,QAAA,OAAO,aAAa,KAAK,CAAA;AAAA,MAC3B;AACA,MAAA,OAAO,WAAA;AAAA,QACL,IAAA;AAAA,QACA,EAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,iBAAiB,IAAA,GAAO,KAAA,CAAM,MAAA,EAAO,GAAI,UAAU,KAAK;AAAA,OAC1D;AAAA,IACF;AAAA,GACF;AACF;AAgBO,SAAS,EAAA,CAId,aACA,OAAA,EACoC;AACpC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,IAAA;AAAA,IACN,OAAA,EAAS,IACP,WAAA,YAAuB,IAAA,GACnB,YAAY,MAAA,EAAO,GACnB,SAAA,CAAU,WAAW,CAC3B,CAAA,CAAA;AAAA,IACA,KAAA,EAAO,KAAA;AAAA,IACP,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAO,KAAA,EAAO;AACZ,MAAA,IAAI,KAAA,GAAQ,KAAK,WAAA,EAAa;AAC5B,QAAA,OAAO,aAAa,KAAK,CAAA;AAAA,MAC3B;AACA,MAAA,OAAO,WAAA;AAAA,QACL,IAAA;AAAA,QACA,EAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,iBAAiB,IAAA,GAAO,KAAA,CAAM,MAAA,EAAO,GAAI,UAAU,KAAK;AAAA,OAC1D;AAAA,IACF;AAAA,GACF;AACF;AAgBO,SAAS,IAAA,CACd,aACA,OAAA,EACsC;AACtC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,CAAA,cAAA,EAAiB,SAAA,CAAU,WAAW,CAAC,CAAA,CAAA;AAAA,IAChD,KAAA,EAAO,KAAA;AAAA,IACP,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAO,KAAA,EAAO;AACZ,MAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,WAAA,KAAgB,CAAA,EAAG;AAClC,QAAA,OAAO,aAAa,KAAK,CAAA;AAAA,MAC3B;AACA,MAAA,OAAO,YAAY,IAAA,EAAM,IAAA,EAAM,OAAO,OAAA,EAAS,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,IACjE;AAAA,GACF;AACF;AAEA,MAAM,aAAA,GAA+B;AAAA;AAAA,EAEnC,EAAA,CAAG,OAAO,MAAA,EAAQ;AAChB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,IAAI,MAAM,CAAA;AAAA,EAClD,CAAA;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA;AAAA,EAGA,EAAA,CAAG,OAAO,MAAA,EAAQ;AAChB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,IAAI,MAAM,CAAA;AAAA,EAClD,CAAA;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA;AAAA,EAGA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA;AAAA,EAGA,SAAS,MAAA,EAAQ;AACf,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,IAAA,EAAM,CAAA,EAAG,IAAI,MAAM,CAAA;AAAA,EAC9C,CAAA;AAAA;AAAA,EAGA,YAAY,MAAA,EAAQ;AAClB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,CAAA,EAAG,UAAU,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA;AAAA,EAGA,SAAS,MAAA,EAAQ;AACf,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,IAAA,EAAM,CAAA,EAAG,IAAI,MAAM,CAAA;AAAA,EAC9C,CAAA;AAAA;AAAA,EAGA,YAAY,MAAA,EAAQ;AAClB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,CAAA,EAAG,UAAU,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,OAAO,MAAA,EAAQ;AAClB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,MAAM,CAAA;AAAA,EACtD,CAAA;AAAA;AAAA,EAGA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAM,CAAA;AAAA,EACvD,CAAA;AAAA;AAAA,EAGA,OAAO,MAAA,EAAQ;AACb,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA;AAAA,EAGA,KAAK,MAAA,EAAQ;AACX,IAAA,OAAO,iBAAA;AAAA,MACL,iBAAA;AAAA,QACE,IAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,CAAO;AAAA,OACT;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA,CAAO;AAAA,KACT;AAAA,EACF;AACF,CAAA;AAKA,MAAM,8BAA8B,cAAA,CAAoC;AAAC;AACzE,MAAA,CAAO,MAAA,CAAO,qBAAA,CAAsB,SAAA,EAAW,aAAa,CAAA;AAK5D,MAAM,6BAA6B,aAAA,CAAmC;AAAC;AACvE,MAAA,CAAO,MAAA,CAAO,oBAAA,CAAqB,SAAA,EAAW,aAAa,CAAA;AAK3D,MAAM,0BAA0B,UAAA,CAAgC;AAAC;AACjE,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,SAAA,EAAW,aAAa,CAAA;AAKxD,MAAM,iCAAiC,iBAAA,CAAuC;AAAC;AAC/E,MAAA,CAAO,MAAA,CAAO,wBAAA,CAAyB,SAAA,EAAW,aAAa,CAAA;AAK/D,MAAM,4BAA4B,YAAA,CAAkC;AAAC;AACrE,MAAA,CAAO,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAoE1D,MAAM,aAAA,GAA+B;AAAA,EACnC,GAAI,YAAA;AAAA,EAEJ,MAAM,MAAA,EAAQ;AACZ,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,EACvD,CAAA;AAAA,EAEA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,MAAM,CAAA;AAAA,EACnD,CAAA;AAAA,EAEA,MAAM,MAAA,EAAQ;AACZ,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,EACvD,CAAA;AAAA,EAEA,KAAK,MAAA,EAAQ;AACX,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA,EAEA,MAAM,MAAA,EAAQ;AACZ,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,EACvD,CAAA;AAAA,EAEA,KAAK,MAAA,EAAQ;AACX,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA,EAEA,KAAA,CAAM,OAAO,MAAA,EAAQ;AACnB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,EACxD,CAAA;AAAA,EAEA,QAAA,CAAS,OAAO,MAAA,EAAQ;AACtB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EAC9D,CAAA;AAAA,EAEA,UAAA,CAAW,OAAO,MAAA,EAAQ;AACxB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,YAAA,EAAc,KAAA,EAAO,YAAY,MAAM,CAAA;AAAA,EAClE,CAAA;AAAA,EAEA,QAAA,CAAS,OAAO,MAAA,EAAQ;AACtB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EAC9D,CAAA;AAAA,EAEA,SAAS,MAAA,EAAQ;AACf,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,UAAA,EAAY,WAAA,EAAa,MAAM,CAAA;AAAA,EAChE,CAAA;AAAA,EAEA,IAAA,CAAK,MAAA,GAAS,EAAC,EAAG;AAChB,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA,EAEA,IAAA,CAAK,MAAA,GAAS,EAAC,EAAG;AAChB,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA,EAEA,KAAK,MAAA,EAAQ;AACX,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,MAAA,EAAQ,SAAA,EAAW,MAAM,CAAA;AAAA,EAC1D,CAAA;AAAA,EAEA,YAAY,MAAA,EAAQ;AAClB,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,aAAA,EAAe,WAAA,EAAa,MAAM,CAAA;AAAA,EACnE,CAAA;AAAA,EAEA,YAAY,MAAA,EAAQ;AAClB,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,aAAA,EAAe,WAAA,EAAa,MAAM,CAAA;AAAA,EACnE;AACF,CAAA;AAKA,MAAM,4BAA4B,YAAA,CAAkC;AAAC;AACrE,MAAA,CAAO,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAK1D,MAAM,6BAA6B,aAAA,CAAmC;AAAC;AACvE,MAAA,CAAO,MAAA,CAAO,oBAAA,CAAqB,SAAA,EAAW,aAAa,CAAA;AAK3D,MAAM,qCAAqC,qBAAA,CAA2C;AAAC;AACvF,MAAA,CAAO,MAAA,CAAO,4BAAA,CAA6B,SAAA,EAAW,aAAa,CAAA;AAKnE,MAAM,+BAA+B,eAAA,CAAqC;AAAC;AAC3E,MAAA,CAAO,MAAA,CAAO,sBAAA,CAAuB,SAAA,EAAW,aAAa,CAAA;AAK7D,MAAM,2BAA2B,WAAA,CAAiC;AAAC;AACnE,MAAA,CAAO,MAAA,CAAO,kBAAA,CAAmB,SAAA,EAAW,aAAa,CAAA;AAKzD,MAAM,6BAA6B,aAAA,CAAmC;AAAC;AACvE,MAAA,CAAO,MAAA,CAAO,oBAAA,CAAqB,SAAA,EAAW,aAAa,CAAA;AAK3D,MAAM,0BAA0B,UAAA,CAAgC;AAAC;AACjE,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,SAAA,EAAW,aAAa,CAAA;AAKxD,MAAM,4BAA4B,YAAA,CAAkC;AAAC;AACrE,MAAA,CAAO,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAK1D,MAAM,4BAA4B,YAAA,CAAkC;AAAC;AACrE,MAAA,CAAO,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAU1D,MAAM,WAAA,GAA2B;AAAA,EAC/B,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD,CAAA;AAAA,EACA,GAAA,CAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAO,WAAA,CAAY,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAAA,EACzD;AACF,CAAA;AAKA,MAAM,0BAA0B,UAAA,CAAgC;AAAC;AACjE,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,SAAA,EAAW,WAAW,CAAA;AAKtD,MAAM,mCAAmC,eAAA,CAAqC;AAAC;AAC/E,MAAA,CAAO,MAAA,CAAO,0BAAA,CAA2B,SAAA,EAAW,WAAW,CAAA;AAK/D,MAAM,+BAA+B,iBAAA,CAAuC;AAAC;AAC7E,MAAA,CAAO,MAAA,CAAO,sBAAA,CAAuB,SAAA,EAAW,WAAW,CAAA;AAQ3D,IAAI,WAAA;AAkPJ,MAAM,eAAA,GAAkB,CAAC,KAAA,KAAmB,IAAI,KAAK,KAAe,CAAA;AAE7D,MAAM,mBAAA,GAA2C;AAAA,EACtD,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,CAAM,QAAQ,EAAA,EAAI;AAChB,IAAA,OAAO,cAAA,CAAe,IAAA,EAAe,EAAA,EAAI,MAAM,CAAA;AAAA,EACjD,CAAA;AAAA,EACA,SAAA,CAAU,QAAQ,EAAA,EAAI;AACpB,IAAA,OAAO,kBAAA,CAAmB,IAAA,EAAe,EAAA,EAAI,MAAM,CAAA;AAAA,EACrD,CAAA;AAAA,EACA,MAAA,CAAO,QAAQ,EAAA,EAAI;AACjB,IAAA,OAAO,eAAA,CAAgB,IAAA,EAAe,EAAA,EAAI,MAAM,CAAA;AAAA,EAClD,CAAA;AAAA,EACA,OAAO,MAAA,EAAQ;AACb,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EACA,WAAW,IAAA,EAAM;AACf,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAC5B,IAAA,IAAK,CAAA,CAAuB,KAAK,SAAA,EAAW;AAC1C,MAAA,CAAA,CAAE,YAAA,GAAe,EAAE,WAAA,GAAc,IAAA;AAAA,IACnC,CAAA,MAAO;AACL,MAAA,CAAA,CAAE,WAAA,GAAc,CAAA,CAAE,YAAA,GAAe,CAAA,CAAE,WAAA,GAAc,IAAA;AAAA,IACnD;AACA,IAAA,OAAO,CAAA;AAAA,EACT,CAAA;AAAA,EACA,eAAe,KAAA,EAAO;AACpB,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AAC5B,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,CAAA,CAAE,cAAc,KAAA,CAAM,KAAA;AAAA,IACxB;AACA,IAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,MAAA,CAAA,CAAE,eAAe,KAAA,CAAM,MAAA;AAAA,IACzB;AACA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,CAAA,CAAE,cAAc,KAAA,CAAM,KAAA;AAAA,IACxB;AACA,IAAA,OAAO,CAAA;AAAA,EACT,CAAA;AAAA,EACA,YAAA,GAAe;AACb,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA,CAAO,EAAE,CAAA,EAAG,KAAK,KAAc,CAAA;AAAA,EACnD,CAAA;AAAA,EACA,UAAA,GAAa;AACX,IAAA,OAAO,KAAK,KAAA,CAAM,IAAA,CAAK,EAAE,GAAG,eAAe,CAAA;AAAA,EAC7C,CAAA;AAAA,EACA,IAAA,CAAK,UAAU,IAAA,EAAM;AACnB,IAAA,OAAO,IAAI,UAAA,CAAW,mBAAA,EAAqB,UAAU,IAAA,EAAM,QAAA,CAAS,IAAI,CAAC,CAAA;AAAA,EAC3E,CAAA;AAAA,EACA,MAAM,IAAA,EAAM;AACV,IAAA,OAAO,IAAI,mBAAmB,IAAI,CAAA;AAAA,EACpC,CAAA;AAAA,EACA,QAAA,GAAW;AACT,IAAA,OAAO,kBAAA;AAAA,MACL,IAAA;AAAA,MACA,QAAA,CAAS,KAAK,WAAW,CAAA;AAAA,MACzB,IAAA,CAAK,UAAA,GACD,KAAA,CAAM,CAAC,IAAA,CAAK,YAAA,EAAc,IAAA,CAAK,UAAU,CAAC,CAAA,GAC1C,QAAA,CAAS,IAAA,CAAK,YAAY,CAAA;AAAA,MAC9B,QAAA,CAAS,KAAK,WAAW;AAAA,KAC3B;AAAA,EACF,CAAA;AAAA,EACA,KAAgD,MAAA,EAAiB;AAC/D,IAAA,OAAO,IAAI,iBAAA,CAAmB,MAAA,IAAU,OAAA,CAAQ,EAAE,CAAY,CAAA;AAAA,EAChE,CAAA;AAAA,EACA,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzB,MAAA,EAAQ,MAAM,QAAA,CAAS,MAAA,EAAQ,EAAE,CAAA;AAAA,EACjC,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzB,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,EACnB,YAAA,EAAc,MAAM,MAAA,CAAO,EAAE,CAAA;AAAA,EAC7B,UAAU,GAAA,EAAK;AACb,IAAA,OAAO,MAAA,CAAO,CAAC,SAAA,CAAU,GAAG,CAAC,CAAC,CAAA;AAAA,EAChC,CAAA;AAAA,EACA,UAAU,GAAA,EAAK;AACb,IAAA,OAAO,MAAA,CAAO,CAAC,SAAA,CAAU,GAAG,CAAC,CAAC,CAAA;AAAA,EAChC,CAAA;AAAA,EACA,YAAA,CAAa,KAAK,GAAA,EAAK;AACrB,IAAA,OAAO,MAAA,CAAO,CAAC,SAAA,CAAU,GAAG,GAAG,SAAA,CAAU,GAAG,CAAC,CAAC,CAAA;AAAA,EAChD,CAAA;AAAA,EACA,MAAA,EAAQ,MAAM,MAAA,CAAO,EAAE,CAAA;AAAA,EACvB,KAAK,MAAM,MAAA,CAAO,CAAC,OAAA,EAAS,CAAC,CAAA;AAAA,EAE7B,gBAAA,EAAkB,MAChB,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,CAAC,KAAA,KAAU,IAAI,IAAA,CAAK,KAAe,CAAC,CAAA;AAAA,EAEvD,cAAc,MACZ,MAAA;AAAA,IACE;AAAA,MACE,KAAA,EAAO,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,MACxB,MAAA,EAAQ,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,MACzB,IAAA,EAAM,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,MACvB,KAAA,EAAO,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,MACxB,OAAA,EAAS,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,MAC1B,OAAA,EAAS,QAAA,CAAS,MAAA,EAAQ;AAAA,KAC5B;AAAA,IACA;AAAC,GACH;AAAA,EAEF,KAAK,CAAC,GAAA,KACJ,MAAM,MAAA,CAAO,CAAC,UAAU,GAAG,CAAA,EAAG,MAAM,OAAO,CAAC,CAAC,CAAA,GAAI,MAAA,CAAO,CAAC,KAAA,CAAM,OAAO,CAAC,CAAC,CAAA;AAAA,EAE1E,MAAM,MAAM,MAAA,CAAO,CAAC,IAAA,EAAM,CAAC,CAAA;AAAA,EAE3B,WAAA,GAAc;AACZ,IAAA,OAAO,SAAA,CAAU,MAAM,aAAa,CAAA;AAAA,EACtC,CAAA;AAAA,EAEA,YAAA,GAAe;AACb,IAAA,OAAO,SAAA,CAAU,MAAM,cAAc,CAAA;AAAA,EACvC,CAAA;AAAA,EAEA,WAAA,GAAc;AACZ,IAAA,OAAO,OAAA,CAAQ,SAAA,CAAU,IAAA,EAAM,aAAa,CAAC,CAAA;AAAA,EAC/C,CAAA;AAAA,EAEA,YAAA,GAA8D;AAC5D,IAAA,MAAM,KAAA,GAAQ,KAAK,WAAA,EAAY;AAE/B,IAAA,MAAM,QAAuB,EAAC;AAC9B,IAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAQ,GAAI,KAAK,SAAA,CAAU,OAAA;AAE1C,IAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,MAAA,MAAM,MAAA,GAAS,QAAQ,GAAG,CAAA;AAC1B,MAAA,IAAI,MAAA,CAAO,QAAA,IAAY,CAAC,MAAA,CAAO,KAAK,UAAA,EAAY;AAC9C,QAAA,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAE9B,QAAA,IAAI,OAAO,IAAA,CAAK,UAAA,IAAc,MAAA,CAAO,IAAA,CAAK,YAAY,MAAA,EAAW;AAC/D,UAAA,KAAA,CAAM,GAAG,CAAA,GAAI,QAAA,CAAS,KAAA,CAAM,GAAG,CAAC,CAAA;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB,CAAA;AAAA,EAEA,YAAA,GAA8D;AAC5D,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,YAAA,EAAuB,CAAA;AAAA,EAC7C,CAAA;AAAA,EAEA,UAAA,GAA4D;AAC1D,IAAA,MAAM,OAAiB,EAAC;AAExB,IAAA,MAAM;AAAA,MACJ,OAAA,EAAS,EAAE,KAAA;AAAM,QACf,IAAA,CAAK,SAAA;AACT,IAAA,KAAA,MAAW,OAAO,KAAA,EAAO;AACvB,MAAA,IAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAA,CAAK,UAAA,EAAY;AAC9B,QAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,MACf;AAAA,IACF;AAEA,IAAA,OAAO,QAAA;AAAA,MACL,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAY,IAAa;AAAA,KACjD;AAAA,EACF,CAAA;AAAA,EAEA,MAAM,OAAA,EAAiB;AACrB,IAAA,MAAM,CAAA,GAAI,IAAA;AACV,IAAA,CAAA,CAAE,YAAY,OAAA,GACZ,CAAA,CAAE,aAAa,OAAA,GACf,CAAA,CAAE,YAAY,OAAA,GACZ,OAAA;AACJ,IAAA,OAAO,CAAA;AAAA,EACT,CAAA;AAAA,EAEA,QAAA,EAAU,MAAM,IAAI,qBAAA,CAAsB,mBAAmB,CAAA;AAAA,EAC7D,OAAA,EAAS,MAAM,IAAI,oBAAA,CAAqB,mBAAmB,CAAA;AAAA,EAC3D,IAAA,EAAM,MAAM,IAAI,iBAAA,CAAkB,mBAAmB,CAAA;AAAA,EACrD,WAAA,EAAa,MAAM,IAAI,wBAAA,CAAyB,mBAAmB,CAAA;AAAA,EACnE,MAAA,EAAQ,MAAM,IAAI,mBAAA,CAAoB,mBAAmB,CAAA;AAAA,EAEzD,MAAA,EAAQ,MAAM,IAAI,mBAAA,CAAoB,mBAAmB,CAAA;AAAA,EACzD,OAAA,EAAS,CAAC,SAAA,EAAW,KAAA,KACnB,IAAI,oBAAA,CAAqB,mBAAA,EAAqB,WAAW,KAAK,CAAA;AAAA,EAChE,eAAA,EAAiB,MAAM,IAAI,4BAAA,CAA6B,mBAAmB,CAAA;AAAA,EAC3E,SAAA,EAAW,MAAM,IAAI,sBAAA,CAAuB,mBAAmB,CAAA;AAAA,EAC/D,KAAA,EAAO,MAAM,IAAI,kBAAA,CAAmB,mBAAmB,CAAA;AAAA,EACvD,SAAS,CAAC,KAAA,KAAU,IAAI,oBAAA,CAAqB,qBAAqB,KAAK,CAAA;AAAA,EACvE,IAAA,EAAM,MAAM,IAAI,iBAAA,CAAkB,mBAAmB,CAAA;AAAA,EACrD,QAAQ,CAAC,KAAA,KAAU,IAAI,mBAAA,CAAoB,qBAAqB,KAAK,CAAA;AAAA,EACrE,MAAA,EAAQ,MAAM,IAAI,mBAAA,CAAoB,mBAAmB,CAAA;AAAA,EAEzD,IAAA,EAAM,MAAM,IAAI,iBAAA,CAAkB,mBAAmB,CAAA;AAAA,EACrD,eAAe,CAAC,SAAA,KACd,IAAI,0BAAA,CAA2B,qBAAqB,SAAS,CAAA;AAAA,EAC/D,WAAW,CAAC,SAAA,KACV,IAAI,sBAAA,CAAuB,qBAAqB,SAAS,CAAA;AAAA,EAE3D,oBAAA,EAAsB,MACnB,WAAA,KAAA,WAAA,GAAgB,MAAA,CAAO;AAAA,IACtB,IAAA,EAAM,QAAA,CAAS,MAAA,EAAQ,CAAA;AAAA,IACvB,KAAK,MAAA,EAAO;AAAA,IACZ,KAAK,MAAA;AAAO,GACb,CAAA;AACL;AAqCA,SAAS,SAAA,CAGP,OAAU,SAAA,EAAmC;AAC7C,EAAA,MAAM,QAAuB,EAAC;AAC9B,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAQ,GAAI,MAAM,SAAA,CAAU,OAAA;AAE3C,EAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,IAAA,IAAI,OAAA,CAAQ,GAAG,CAAA,CAAE,QAAA,EAAU;AACzB,MAAA,KAAA,CAAM,GAAG,CAAA,GAAI,OAAA,CAAQ,GAAG,EAAE,SAAS,CAAA;AAAA,IACrC;AAAA,EACF;AAEA,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;;;;"}
package/package.json CHANGED
@@ -1,13 +1,24 @@
1
1
  {
2
2
  "name": "orchid-orm-valibot",
3
- "version": "0.3.121",
3
+ "version": "0.3.123",
4
4
  "description": "OrchidORM valibot integration",
5
+ "keywords": [
6
+ "orchid-orm",
7
+ "query-builder",
8
+ "schema",
9
+ "valibot"
10
+ ],
5
11
  "homepage": "https://orchid-orm.netlify.app/guide/columns-validation-methods.html",
12
+ "license": "ISC",
13
+ "author": "Roman Kushyn",
6
14
  "repository": {
7
15
  "type": "git",
8
16
  "url": "https://github.com/romeerez/orchid-orm.git",
9
17
  "directory": "packages/schemaConfigs/valibot"
10
18
  },
19
+ "files": [
20
+ "dist"
21
+ ],
11
22
  "main": "dist/index.js",
12
23
  "module": "dist/index.mjs",
13
24
  "typings": "dist/index.d.ts",
@@ -18,29 +29,22 @@
18
29
  "types": "./dist/index.d.ts"
19
30
  }
20
31
  },
21
- "files": [
22
- "dist"
23
- ],
24
- "keywords": [
25
- "orchid-orm",
26
- "query-builder",
27
- "schema",
28
- "valibot"
29
- ],
30
- "author": "Roman Kushyn",
31
- "license": "ISC",
32
32
  "dependencies": {
33
- "valibot": "^0.29.0",
34
- "pqb": "0.61.13"
33
+ "valibot": "0.29.0",
34
+ "pqb": "0.62.1"
35
35
  },
36
36
  "devDependencies": {
37
- "test-utils": "0.3.5"
37
+ "test-utils": "0.3.6"
38
38
  },
39
39
  "scripts": {
40
40
  "test": "jest --watch --verbose false",
41
41
  "check": "jest",
42
42
  "types": "tsc",
43
43
  "test:ci": "jest --coverage --coverageReporters json-summary",
44
- "build": "rimraf ./dist/ && rollup -c ../../../rollup.config.mjs"
44
+ "build": "rimraf ./dist/ && rollup -c ../../../rollup.config.mjs",
45
+ "lint": "oxlint --fix",
46
+ "lint:check": "oxlint",
47
+ "fmt": "oxfmt",
48
+ "fmt:check": "oxfmt --check"
45
49
  }
46
50
  }