orchid-orm-valibot 0.5.1 → 0.5.2

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,9 +1,23 @@
1
- import { AdapterSchemaConfigOptions, ArrayColumn, ArrayColumnValue, BigIntColumn, BigSerialColumn, CitextColumn, Column, ColumnSchemaConfig, ColumnSchemaGetterColumns, ColumnSchemaGetterTableClass, DateColumn, DecimalColumn, DoublePrecisionColumn, EnumColumn, IntegerColumn, JSONColumn, JSONTextColumn, MoneyColumn, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, StringData, TextColumn, TimestampColumn, TimestampTZColumn, VarCharColumn } from "pqb/internal";
2
- import { ArraySchema, BaseSchema, BaseValidation, BooleanSchema, DateSchema, InstanceSchema, NeverSchema, NullableSchema, NumberSchema, ObjectSchema, OptionalSchema, Output, PicklistSchema, StringSchema, UnionSchema, UnknownSchema } from "valibot";
3
- declare class ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
1
+ import { AdapterSchemaConfigOptions, ArrayColumn, ArrayColumnValue, BigIntColumn, BigSerialColumn, CitextColumn, Column, ColumnSchemaConfig, ColumnSchemaGetterColumns, ColumnSchemaGetterTableClass, DateColumn, DateColumnInput, DecimalColumn, DoublePrecisionColumn, EnumColumn, IntegerColumn, JSONColumn, JSONTextColumn, MoneyColumn, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, StringData, TextColumn, TimestampColumn, TimestampTZColumn, VarCharColumn } from "pqb/internal";
2
+ import { ArraySchema, BaseIssue, BooleanSchema, BrandAction, DateSchema, GenericSchema, GenericValidation, InferOutput, InstanceSchema, IntegerAction, NeverSchema, NullableSchema, NumberSchema, ObjectEntries, ObjectSchema, OptionalSchema, PicklistSchema, SchemaWithPipe, StringSchema, UnionSchema, UnknownSchema } from "valibot";
3
+ type ArraySchema$1<Item extends GenericSchema> = ArraySchema<Item, undefined>;
4
+ type BooleanSchema$1 = BooleanSchema<undefined>;
5
+ type DateSchema$1 = DateSchema<undefined>;
6
+ type InstanceSchema$1<Class extends new (...args: never[]) => object> = InstanceSchema<Class, undefined>;
7
+ type NeverSchema$1 = NeverSchema<undefined>;
8
+ type NullableSchema$1<Schema extends GenericSchema> = NullableSchema<Schema, undefined>;
9
+ type NumberSchema$1 = NumberSchema<undefined>;
10
+ type ObjectSchema$1<Entries> = Entries extends ObjectEntries ? ObjectSchema<Entries, undefined> : never;
11
+ type OptionalSchema$1<Schema extends GenericSchema> = OptionalSchema<Schema, undefined>;
12
+ type PicklistSchema$1<Options extends readonly string[]> = PicklistSchema<Options, undefined>;
13
+ type StringSchema$1 = StringSchema<undefined>;
14
+ type UnionSchema$1<Options extends readonly GenericSchema[]> = UnionSchema<Options, undefined>;
15
+ type UnknownSchema$1 = UnknownSchema;
16
+ type Output<Schema extends GenericSchema> = InferOutput<Schema>;
17
+ declare class ValibotJSONColumn<Schema extends GenericSchema> extends JSONColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
4
18
  constructor(schemaConfig: ValibotSchemaConfig, schema: Schema, jsonEncodedByDriver?: boolean);
5
19
  }
6
- declare class ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
20
+ declare class ValibotJSONTextColumn<Schema extends GenericSchema> extends JSONTextColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
7
21
  constructor(schemaConfig: ValibotSchemaConfig, schema: Schema);
8
22
  }
9
23
  interface ArrayMethods<Value> {
@@ -12,8 +26,8 @@ interface ArrayMethods<Value> {
12
26
  length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;
13
27
  nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;
14
28
  }
15
- interface ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<ValibotSchemaConfig, Item, ArraySchema<Item['inputSchema']>, ArraySchema<Item['outputSchema']>, ArraySchema<Item['querySchema']>>, ArrayMethods<number> {}
16
- declare class ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<ValibotSchemaConfig, Item, ArraySchema<Item['inputSchema']>, ArraySchema<Item['outputSchema']>, ArraySchema<Item['querySchema']>> {
29
+ interface ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<ValibotSchemaConfig, Item, ArraySchema$1<Item['inputSchema']>, ArraySchema$1<Item['outputSchema']>, ArraySchema$1<Item['querySchema']>>, ArrayMethods<number> {}
30
+ declare class ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<ValibotSchemaConfig, Item, ArraySchema$1<Item['inputSchema']>, ArraySchema$1<Item['outputSchema']>, ArraySchema$1<Item['querySchema']>> {
17
31
  constructor(schemaConfig: ValibotSchemaConfig, item: Item);
18
32
  }
19
33
  interface NumberMethods {
@@ -32,7 +46,10 @@ interface NumberMethods {
32
46
  finite<T>(this: T, params?: Column.Error.StringOrMessage): T;
33
47
  safe<T>(this: T, params?: Column.Error.StringOrMessage): T;
34
48
  }
35
- type GtValidation<TInput extends string | number | bigint | boolean | Date, TRequirement extends TInput> = BaseValidation<TInput> & {
49
+ type GtValidation<TInput extends string | number | bigint | boolean | Date, TRequirement extends TInput> = GenericValidation<TInput> & {
50
+ kind: 'validation';
51
+ reference: typeof gt;
52
+ message?: string;
36
53
  /**
37
54
  * The validation type.
38
55
  */
@@ -43,7 +60,10 @@ type GtValidation<TInput extends string | number | bigint | boolean | Date, TReq
43
60
  requirement: TRequirement;
44
61
  };
45
62
  declare function gt<TInput extends string | number | bigint | Date, TRequirement extends TInput>(requirement: TRequirement, message?: string): GtValidation<TInput, TRequirement>;
46
- type LtValidation<TInput extends string | number | bigint | boolean | Date, TRequirement extends TInput> = BaseValidation<TInput> & {
63
+ type LtValidation<TInput extends string | number | bigint | boolean | Date, TRequirement extends TInput> = GenericValidation<TInput> & {
64
+ kind: 'validation';
65
+ reference: typeof lt;
66
+ message?: string;
47
67
  /**
48
68
  * The validation type.
49
69
  */
@@ -54,7 +74,10 @@ type LtValidation<TInput extends string | number | bigint | boolean | Date, TReq
54
74
  requirement: TRequirement;
55
75
  };
56
76
  declare function lt<TInput extends string | number | bigint | Date, TRequirement extends TInput>(requirement: TRequirement, message?: string): LtValidation<TInput, TRequirement>;
57
- type StepValidation<TInput extends number, TRequirement extends TInput> = BaseValidation<TInput> & {
77
+ type StepValidation<TInput extends number, TRequirement extends TInput> = GenericValidation<TInput> & {
78
+ kind: 'validation';
79
+ reference: typeof step;
80
+ message?: string;
58
81
  /**
59
82
  * The validation type.
60
83
  */
@@ -121,68 +144,68 @@ interface TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig
121
144
  declare class TimestampNoTzColumnValibot extends TimestampColumn<ValibotSchemaConfig> {}
122
145
  interface TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig>, DateMethods {}
123
146
  declare class TimestampColumnValibot extends TimestampTZColumn<ValibotSchemaConfig> {}
124
- type PointSchemaValibot = ObjectSchema<{
125
- srid: OptionalSchema<NumberSchema>;
126
- lon: NumberSchema;
127
- lat: NumberSchema;
147
+ type PointSchemaValibot = ObjectSchema$1<{
148
+ srid: OptionalSchema$1<NumberSchema$1>;
149
+ lon: NumberSchema$1;
150
+ lat: NumberSchema$1;
128
151
  }>;
129
152
  interface ValibotSchemaConfig extends ColumnSchemaConfig {
130
- __schemaType: BaseSchema;
131
- parse<T extends Column.Pick.ForParse, OutputSchema extends BaseSchema, Out = Output<OutputSchema>>(this: T, _schema: OutputSchema, fn: (input: T['__type']) => Out): Column.Parse<T, OutputSchema, Out>;
132
- parseNull<T extends Column.Pick.ForParseNull, NullSchema extends BaseSchema, NullType = Output<NullSchema>>(this: T, _schema: NullSchema, fn: () => NullType): Column.ParseNull<T, NullSchema, NullType>;
133
- encode<T extends Column.Pick.Type, InputSchema extends BaseSchema, In = Output<InputSchema>>(this: T, _schema: InputSchema, fn: (input: In) => unknown): Column.Encode<T, InputSchema, In>;
153
+ __schemaType: GenericSchema;
154
+ parse<T extends Column.Pick.ForParse, OutputSchema extends GenericSchema, Out = Output<OutputSchema>>(this: T, _schema: OutputSchema, fn: (input: T['__type']) => Out): Column.Parse<T, OutputSchema, Out>;
155
+ parseNull<T extends Column.Pick.ForParseNull, NullSchema extends GenericSchema, NullType = Output<NullSchema>>(this: T, _schema: NullSchema, fn: () => NullType): Column.ParseNull<T, NullSchema, NullType>;
156
+ encode<T extends Column.Pick.Type, InputSchema extends GenericSchema, In = Output<InputSchema>>(this: T, _schema: InputSchema, fn: (input: In) => unknown): Column.Encode<T, InputSchema, In>;
134
157
  /**
135
158
  * @deprecated use narrowType instead
136
159
  */
137
- asType<T, Types extends Column.AsTypeArg<BaseSchema>, TypeSchema extends BaseSchema = Types extends {
138
- type: BaseSchema;
139
- } ? Types['type'] : never, Type = Output<TypeSchema>>(this: T, types: Types): { [K in keyof T]: K extends 'type' ? Type : K extends '__inputType' ? Types['input'] extends BaseSchema ? Output<Types['input']> : Type : K extends 'inputSchema' ? Types['input'] extends BaseSchema ? Types['input'] : TypeSchema : K extends '__outputType' ? Types['output'] extends BaseSchema ? Output<Types['output']> : Type : K extends 'outputSchema' ? Types['output'] extends BaseSchema ? Types['output'] : TypeSchema : K extends '__queryType' ? Types['query'] extends BaseSchema ? Output<Types['query']> : Type : K extends 'querySchema' ? Types['query'] extends BaseSchema ? Types['query'] : TypeSchema : T[K]; };
140
- narrowType<T extends Column.InputOutputQueryTypesWithSchemas, Type extends BaseSchema<any, T['__inputType'] extends never ? T['__outputType'] & T['__queryType'] : T['__inputType'] & T['__outputType'] & T['__queryType']>>(this: T, types: Type): { [K in keyof T]: K extends '__inputType' ? T['__inputType'] extends never ? never : Output<Type> : K extends '__outputType' | '__queryType' ? Output<Type> : K extends 'inputSchema' ? T['__inputType'] extends never ? NeverSchema : Type : K extends 'outputSchema' | 'querySchema' ? Type : T[K]; };
160
+ asType<T, Types extends Column.AsTypeArg<GenericSchema>, TypeSchema extends GenericSchema = Types extends {
161
+ type: GenericSchema;
162
+ } ? Types['type'] : never, Type = Output<TypeSchema>>(this: T, types: Types): { [K in keyof T]: K extends 'type' ? Type : K extends '__inputType' ? Types['input'] extends GenericSchema ? Output<Types['input']> : Type : K extends 'inputSchema' ? Types['input'] extends GenericSchema ? Types['input'] : TypeSchema : K extends '__outputType' ? Types['output'] extends GenericSchema ? Output<Types['output']> : Type : K extends 'outputSchema' ? Types['output'] extends GenericSchema ? Types['output'] : TypeSchema : K extends '__queryType' ? Types['query'] extends GenericSchema ? Output<Types['query']> : Type : K extends 'querySchema' ? Types['query'] extends GenericSchema ? Types['query'] : TypeSchema : T[K]; };
163
+ narrowType<T extends Column.InputOutputQueryTypesWithSchemas, Type extends GenericSchema<any, T['__inputType'] extends never ? T['__outputType'] & T['__queryType'] : T['__inputType'] & T['__outputType'] & T['__queryType']>>(this: T, types: Type): { [K in keyof T]: K extends '__inputType' ? T['__inputType'] extends never ? never : Output<Type> : K extends '__outputType' | '__queryType' ? Output<Type> : K extends 'inputSchema' ? T['__inputType'] extends never ? NeverSchema$1 : Type : K extends 'outputSchema' | 'querySchema' ? Type : T[K]; };
141
164
  narrowAllTypes<T extends Column.InputOutputQueryTypesWithSchemas, Types extends {
142
165
  input?: {
143
- _types?: {
166
+ '~types'?: {
144
167
  output: T['__inputType'];
145
168
  };
146
169
  };
147
170
  output?: {
148
- _types?: {
171
+ '~types'?: {
149
172
  output: T['__outputType'];
150
173
  };
151
174
  };
152
175
  query?: {
153
- _types?: {
176
+ '~types'?: {
154
177
  output: T['__queryType'];
155
178
  };
156
179
  };
157
- }>(this: T, types: Types): { [K in keyof T]: K extends '__inputType' ? Types['input'] extends BaseSchema ? Output<Types['input']> : T['__inputType'] : K extends 'inputSchema' ? Types['input'] extends BaseSchema ? Types['input'] : T['inputSchema'] : K extends '__outputType' ? Types['output'] extends BaseSchema ? Output<Types['output']> : T['__outputType'] : K extends 'outputSchema' ? Types['output'] extends BaseSchema ? Types['output'] : T['outputSchema'] : K extends '__queryType' ? Types['query'] extends BaseSchema ? Output<Types['query']> : T['querySchema'] : K extends 'querySchema' ? Types['query'] extends BaseSchema ? Types['query'] : T['querySchema'] : T[K]; };
158
- dateAsNumber<T extends Column.Pick.ForParse>(this: T): Column.Parse<T, NumberSchema, number>;
159
- dateAsDate<T extends Column.Pick.ForParse>(this: T): Column.Parse<T, DateSchema, Date>;
160
- enum<T extends readonly string[]>(dataType: string, type: T): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;
180
+ }>(this: T, types: Types): { [K in keyof T]: K extends '__inputType' ? Types['input'] extends GenericSchema ? Output<Types['input']> : T['__inputType'] : K extends 'inputSchema' ? Types['input'] extends GenericSchema ? Types['input'] : T['inputSchema'] : K extends '__outputType' ? Types['output'] extends GenericSchema ? Output<Types['output']> : T['__outputType'] : K extends 'outputSchema' ? Types['output'] extends GenericSchema ? Types['output'] : T['outputSchema'] : K extends '__queryType' ? Types['query'] extends GenericSchema ? Output<Types['query']> : T['querySchema'] : K extends 'querySchema' ? Types['query'] extends GenericSchema ? Types['query'] : T['querySchema'] : T[K]; };
181
+ dateAsNumber<T extends Column.Pick.ForParse>(this: T): Column.Parse<T, NumberSchema$1, number>;
182
+ dateAsDate<T extends Column.Pick.ForParse>(this: T): Column.Parse<T, DateSchema$1, Date>;
183
+ enum<T extends readonly string[]>(dataType: string, type: T): EnumColumn<ValibotSchemaConfig, PicklistSchema$1<T>, T>;
161
184
  array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;
162
- nullable<T extends Column.Pick.ForNullable>(this: T): Column.NullableWithSchema<T, NullableSchema<T['inputSchema']>, T['nullSchema'] extends BaseSchema ? UnionSchema<[T['outputSchema'], T['nullSchema']]> : NullableSchema<T['outputSchema']>, NullableSchema<T['querySchema']>>;
163
- json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema): ValibotJSONColumn<Schema>;
164
- jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema): ValibotJSONTextColumn<Schema>;
165
- boolean(): BooleanSchema;
166
- buffer(): InstanceSchema<typeof Buffer>;
167
- unknown(): UnknownSchema;
168
- never(): NeverSchema;
169
- stringSchema(): StringSchema;
170
- stringMin(max: number): StringSchema;
171
- stringMax(max: number): StringSchema;
172
- stringMinMax(min: number, max: number): StringSchema;
173
- number(): NumberSchema;
174
- int(): NumberSchema;
175
- stringNumberDate(): DateSchema;
176
- timeInterval(): ObjectSchema<{
177
- years: OptionalSchema<NumberSchema>;
178
- months: OptionalSchema<NumberSchema>;
179
- days: OptionalSchema<NumberSchema>;
180
- hours: OptionalSchema<NumberSchema>;
181
- minutes: OptionalSchema<NumberSchema>;
182
- seconds: OptionalSchema<NumberSchema>;
185
+ nullable<T extends Column.Pick.ForNullable>(this: T): Column.NullableWithSchema<T, NullableSchema$1<T['inputSchema']>, T['nullSchema'] extends GenericSchema ? UnionSchema$1<[T['outputSchema'], T['nullSchema']]> : NullableSchema$1<T['outputSchema']>, NullableSchema$1<T['querySchema']>>;
186
+ json<Schema extends GenericSchema = UnknownSchema$1>(schema?: Schema): ValibotJSONColumn<Schema>;
187
+ jsonText<Schema extends GenericSchema = UnknownSchema$1>(schema?: Schema): ValibotJSONTextColumn<Schema>;
188
+ boolean(): BooleanSchema$1;
189
+ buffer(): InstanceSchema$1<typeof Buffer>;
190
+ unknown(): UnknownSchema$1;
191
+ never(): NeverSchema$1;
192
+ stringSchema(): StringSchema$1;
193
+ stringMin(max: number): GenericSchema<string, string>;
194
+ stringMax(max: number): GenericSchema<string, string>;
195
+ stringMinMax(min: number, max: number): GenericSchema<string, string>;
196
+ number(): NumberSchema$1;
197
+ int(): SchemaWithPipe<readonly [NumberSchema$1, IntegerAction<number, undefined>]>;
198
+ stringNumberDate(): GenericSchema<DateColumnInput, Date>;
199
+ timeInterval(): ObjectSchema$1<{
200
+ years: OptionalSchema$1<NumberSchema$1>;
201
+ months: OptionalSchema$1<NumberSchema$1>;
202
+ days: OptionalSchema$1<NumberSchema$1>;
203
+ hours: OptionalSchema$1<NumberSchema$1>;
204
+ minutes: OptionalSchema$1<NumberSchema$1>;
205
+ seconds: OptionalSchema$1<NumberSchema$1>;
183
206
  }>;
184
- bit(max: number): StringSchema;
185
- uuid(): StringSchema;
207
+ bit(max?: number): GenericSchema<string, string>;
208
+ uuid(): GenericSchema<string, string>;
186
209
  inputSchema<T extends ColumnSchemaGetterTableClass>(this: T): MapSchema<T, 'inputSchema'>;
187
210
  outputSchema<T extends ColumnSchemaGetterTableClass>(this: T): MapSchema<T, 'outputSchema'>;
188
211
  querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;
@@ -210,9 +233,18 @@ interface ValibotSchemaConfig extends ColumnSchemaConfig {
210
233
  geographyPointSchema(): PointSchemaValibot;
211
234
  }
212
235
  declare const valibotSchemaConfig: (options?: AdapterSchemaConfigOptions) => ValibotSchemaConfig;
213
- type MapSchema<T extends ColumnSchemaGetterTableClass, Key extends 'inputSchema' | 'outputSchema' | 'querySchema'> = ObjectSchema<{ [K in keyof ColumnSchemaGetterColumns<T>]: ColumnSchemaGetterColumns<T>[K][Key]; }>;
214
- type QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{ [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['querySchema']>; }>;
215
- type CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{ [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? never : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']> : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']> : ColumnSchemaGetterColumns<T>[K]['inputSchema']; }>;
216
- type UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{ [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? never : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>; }>;
217
- type PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{ [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? K : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema']; }>;
236
+ type MapSchema<T extends ColumnSchemaGetterTableClass, Key extends 'inputSchema' | 'outputSchema' | 'querySchema'> = ObjectSchema$1<{ readonly [K in keyof ColumnSchemaGetterColumns<T>]: ColumnValidationSchema<T, K, Key>; }>;
237
+ type TableName<T extends ColumnSchemaGetterTableClass> = T['data'] extends {
238
+ table: infer Table extends string;
239
+ } ? Table : T['data'] extends {
240
+ name: infer Name extends string;
241
+ } ? Name : never;
242
+ type ColumnBrand<T extends ColumnSchemaGetterTableClass, K extends keyof ColumnSchemaGetterColumns<T>> = true extends ColumnSchemaGetterColumns<T>[K]['data']['branded'] ? `${TableName<T>}.${K & string}` : ColumnSchemaGetterColumns<T>[K]['data']['branded'] extends string ? ColumnSchemaGetterColumns<T>[K]['data']['branded'] & string : never;
243
+ type BrandedSchema<Schema extends GenericSchema<unknown, unknown, BaseIssue<unknown>>, Brand extends PropertyKey> = SchemaWithPipe<readonly [Schema, BrandAction<InferOutput<Schema>, Brand>]>;
244
+ type ColumnValidationSchema<T extends ColumnSchemaGetterTableClass, K extends keyof ColumnSchemaGetterColumns<T>, Key extends 'inputSchema' | 'outputSchema' | 'querySchema', Brand extends PropertyKey = ColumnBrand<T, K>> = SchemaOf<[Brand] extends [never] ? ColumnSchemaGetterColumns<T>[K][Key] : ColumnSchemaGetterColumns<T>[K][Key] extends GenericSchema<unknown, unknown, BaseIssue<unknown>> ? BrandedSchema<ColumnSchemaGetterColumns<T>[K][Key], Brand> : ColumnSchemaGetterColumns<T>[K][Key]>;
245
+ type SchemaOf<Schema> = Schema extends GenericSchema ? Schema : never;
246
+ type QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema$1<{ readonly [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema$1<ColumnValidationSchema<T, K, 'querySchema'>>; }>;
247
+ type CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema$1<{ readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? never : K]: ColumnSchemaGetterColumns<T>[K]['data']['isNullable'] extends true ? OptionalSchema$1<ColumnValidationSchema<T, K, 'inputSchema'>> : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true ? OptionalSchema$1<ColumnValidationSchema<T, K, 'inputSchema'>> : ColumnValidationSchema<T, K, 'inputSchema'>; }>;
248
+ type UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema$1<{ readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? never : K]: OptionalSchema$1<ColumnValidationSchema<T, K, 'inputSchema'>>; }>;
249
+ type PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema$1<{ readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string ? K : never]: ColumnValidationSchema<T, K, 'inputSchema'>; }>;
218
250
  export { GtValidation, LtValidation, StepValidation, ValibotSchemaConfig, gt, lt, step, valibotSchemaConfig };
package/dist/index.js CHANGED
@@ -14,17 +14,17 @@ var ValibotJSONTextColumn = class extends pqb_internal.JSONTextColumn {
14
14
  function applyMethod(column, key, value, validation, params) {
15
15
  const cloned = (0, pqb_internal.setDataValue)(column, key, value, params);
16
16
  const v = validation(value, typeof params === "object" ? params.message : params);
17
- cloned.inputSchema.pipe.push(v);
18
- cloned.outputSchema.pipe.push(v);
19
- cloned.querySchema.pipe.push(v);
17
+ cloned.inputSchema = (0, valibot.pipe)(cloned.inputSchema, v);
18
+ cloned.outputSchema = (0, valibot.pipe)(cloned.outputSchema, v);
19
+ cloned.querySchema = (0, valibot.pipe)(cloned.querySchema, v);
20
20
  return cloned;
21
21
  }
22
22
  function applySimpleMethod(column, key, validation, params, ...args) {
23
23
  const cloned = (0, pqb_internal.setDataValue)(column, key, true, params);
24
24
  const v = validation(...args, typeof params === "object" ? params.message : params);
25
- cloned.inputSchema.pipe.push(v);
26
- cloned.outputSchema.pipe.push(v);
27
- cloned.querySchema.pipe.push(v);
25
+ cloned.inputSchema = (0, valibot.pipe)(cloned.inputSchema, v);
26
+ cloned.outputSchema = (0, valibot.pipe)(cloned.outputSchema, v);
27
+ cloned.querySchema = (0, valibot.pipe)(cloned.querySchema, v);
28
28
  return cloned;
29
29
  }
30
30
  const arrayMethods = {
@@ -43,46 +43,52 @@ const arrayMethods = {
43
43
  };
44
44
  var ValibotArrayColumn = class extends pqb_internal.ArrayColumn {
45
45
  constructor(schemaConfig, item) {
46
- super(schemaConfig, item, (0, valibot.array)(item.inputSchema, []));
46
+ super(schemaConfig, item, (0, valibot.array)(item.inputSchema));
47
47
  }
48
48
  };
49
49
  Object.assign(ValibotArrayColumn.prototype, arrayMethods);
50
50
  function gt(requirement, message) {
51
51
  return {
52
+ kind: "validation",
52
53
  type: "gt",
53
- expects: `>${requirement instanceof Date ? requirement.toJSON() : (0, valibot.stringify)(requirement)}`,
54
+ reference: gt,
55
+ expects: `>${requirement instanceof Date ? requirement.toJSON() : (0, valibot._stringify)(requirement)}`,
54
56
  async: false,
55
57
  message,
56
58
  requirement,
57
- _parse(input) {
58
- if (input > this.requirement) return (0, valibot.actionOutput)(input);
59
- return (0, valibot.actionIssue)(this, gt, input, "value", input instanceof Date ? input.toJSON() : (0, valibot.stringify)(input));
59
+ "~run"(dataset, config) {
60
+ if (dataset.typed && !(dataset.value > this.requirement)) (0, valibot._addIssue)(this, "value", dataset, config, { received: dataset.value instanceof Date ? dataset.value.toJSON() : (0, valibot._stringify)(dataset.value) });
61
+ return dataset;
60
62
  }
61
63
  };
62
64
  }
63
65
  function lt(requirement, message) {
64
66
  return {
67
+ kind: "validation",
65
68
  type: "lt",
66
- expects: `<${requirement instanceof Date ? requirement.toJSON() : (0, valibot.stringify)(requirement)}`,
69
+ reference: lt,
70
+ expects: `<${requirement instanceof Date ? requirement.toJSON() : (0, valibot._stringify)(requirement)}`,
67
71
  async: false,
68
72
  message,
69
73
  requirement,
70
- _parse(input) {
71
- if (input < this.requirement) return (0, valibot.actionOutput)(input);
72
- return (0, valibot.actionIssue)(this, lt, input, "value", input instanceof Date ? input.toJSON() : (0, valibot.stringify)(input));
74
+ "~run"(dataset, config) {
75
+ if (dataset.typed && !(dataset.value < this.requirement)) (0, valibot._addIssue)(this, "value", dataset, config, { received: dataset.value instanceof Date ? dataset.value.toJSON() : (0, valibot._stringify)(dataset.value) });
76
+ return dataset;
73
77
  }
74
78
  };
75
79
  }
76
80
  function step(requirement, message) {
77
81
  return {
82
+ kind: "validation",
78
83
  type: "step",
79
- expects: `a multiple of ${(0, valibot.stringify)(requirement)}`,
84
+ reference: step,
85
+ expects: `a multiple of ${(0, valibot._stringify)(requirement)}`,
80
86
  async: false,
81
87
  message,
82
88
  requirement,
83
- _parse(input) {
84
- if (input % this.requirement === 0) return (0, valibot.actionOutput)(input);
85
- return (0, valibot.actionIssue)(this, step, input, "value", (0, valibot.stringify)(input));
89
+ "~run"(dataset, config) {
90
+ if (dataset.typed && dataset.value % this.requirement !== 0) (0, valibot._addIssue)(this, "value", dataset, config);
91
+ return dataset;
86
92
  }
87
93
  };
88
94
  }
@@ -182,7 +188,7 @@ const stringMethods = {
182
188
  return applySimpleMethod(this, "ipv6", valibot.ipv6, params);
183
189
  },
184
190
  trim(params) {
185
- return applySimpleMethod(this, "trim", valibot.toTrimmed, params);
191
+ return applySimpleMethod(this, "trim", valibot.trim, params);
186
192
  },
187
193
  toLowerCase(params) {
188
194
  return applySimpleMethod(this, "toLowerCase", valibot.toLowerCase, params);
@@ -253,10 +259,10 @@ const valibotSchemaConfig = (options) => {
253
259
  return c;
254
260
  },
255
261
  dateAsNumber() {
256
- return this.parse((0, valibot.number)([]), (0, pqb_internal.getDateAsNumberFn)(this));
262
+ return this.parse((0, valibot.number)(), (0, pqb_internal.getDateAsNumberFn)(this));
257
263
  },
258
264
  dateAsDate() {
259
- return this.parse((0, valibot.date)([]), (0, pqb_internal.getDateAsDateFn)(this));
265
+ return this.parse((0, valibot.date)(), (0, pqb_internal.getDateAsDateFn)(this));
260
266
  },
261
267
  enum(dataType, type) {
262
268
  return new pqb_internal.EnumColumn(schemaConfig, dataType, type, (0, valibot.picklist)(type));
@@ -268,28 +274,32 @@ const valibotSchemaConfig = (options) => {
268
274
  return (0, pqb_internal.makeColumnNullable)(this, (0, valibot.nullable)(this.inputSchema), this.nullSchema ? (0, valibot.union)([this.outputSchema, this.nullSchema]) : (0, valibot.nullable)(this.outputSchema), (0, valibot.nullable)(this.querySchema));
269
275
  },
270
276
  json(schema) {
271
- return new ValibotJSONColumn(schemaConfig, schema ?? (0, valibot.unknown)([]), options?.jsonEncodedByDriver);
277
+ return new ValibotJSONColumn(schemaConfig, schema ?? (0, valibot.unknown)(), options?.jsonEncodedByDriver);
272
278
  },
273
279
  jsonText(schema) {
274
- return new ValibotJSONTextColumn(schemaConfig, schema ?? (0, valibot.unknown)([]));
280
+ return new ValibotJSONTextColumn(schemaConfig, schema ?? (0, valibot.unknown)());
275
281
  },
276
- boolean: () => (0, valibot.boolean)([]),
277
- buffer: () => (0, valibot.instance)(Buffer, []),
278
- unknown: () => (0, valibot.unknown)([]),
282
+ boolean: () => (0, valibot.boolean)(),
283
+ buffer: () => (0, valibot.instance)(Buffer),
284
+ unknown: () => (0, valibot.unknown)(),
279
285
  never: () => (0, valibot.never)(),
280
- stringSchema: () => (0, valibot.string)([]),
286
+ stringSchema: () => (0, valibot.string)(),
281
287
  stringMin(min) {
282
- return (0, valibot.string)([(0, valibot.minLength)(min)]);
288
+ return (0, valibot.pipe)((0, valibot.string)(), (0, valibot.minLength)(min));
283
289
  },
284
290
  stringMax(max) {
285
- return (0, valibot.string)([(0, valibot.maxLength)(max)]);
291
+ return (0, valibot.pipe)((0, valibot.string)(), (0, valibot.maxLength)(max));
286
292
  },
287
293
  stringMinMax(min, max) {
288
- return (0, valibot.string)([(0, valibot.minLength)(min), (0, valibot.maxLength)(max)]);
294
+ return (0, valibot.pipe)((0, valibot.string)(), (0, valibot.minLength)(min), (0, valibot.maxLength)(max));
289
295
  },
290
- number: () => (0, valibot.number)([]),
291
- int: () => (0, valibot.number)([(0, valibot.integer)()]),
292
- stringNumberDate: () => (0, valibot.coerce)((0, valibot.date)([]), (input) => new Date(input)),
296
+ number: () => (0, valibot.number)(),
297
+ int: () => (0, valibot.pipe)((0, valibot.number)(), (0, valibot.integer)()),
298
+ stringNumberDate: () => (0, valibot.pipe)((0, valibot.union)([
299
+ (0, valibot.string)(),
300
+ (0, valibot.number)(),
301
+ (0, valibot.date)()
302
+ ]), (0, valibot.toDate)()),
293
303
  timeInterval: () => (0, valibot.object)({
294
304
  years: (0, valibot.optional)((0, valibot.number)()),
295
305
  months: (0, valibot.optional)((0, valibot.number)()),
@@ -297,9 +307,9 @@ const valibotSchemaConfig = (options) => {
297
307
  hours: (0, valibot.optional)((0, valibot.number)()),
298
308
  minutes: (0, valibot.optional)((0, valibot.number)()),
299
309
  seconds: (0, valibot.optional)((0, valibot.number)())
300
- }, []),
301
- bit: (max) => max ? (0, valibot.string)([(0, valibot.maxLength)(max), (0, valibot.regex)(/[10]/g)]) : (0, valibot.string)([(0, valibot.regex)(/[10]/g)]),
302
- uuid: () => (0, valibot.string)([(0, valibot.uuid)()]),
310
+ }),
311
+ bit: (max) => max ? (0, valibot.pipe)((0, valibot.string)(), (0, valibot.maxLength)(max), (0, valibot.regex)(/[10]/g)) : (0, valibot.pipe)((0, valibot.string)(), (0, valibot.regex)(/[10]/g)),
312
+ uuid: () => (0, valibot.pipe)((0, valibot.string)(), (0, valibot.uuid)()),
303
313
  inputSchema() {
304
314
  return mapSchema(this, "inputSchema");
305
315
  },
@@ -332,8 +342,10 @@ const valibotSchemaConfig = (options) => {
332
342
  return (0, valibot.required)((0, valibot.pick)(this.querySchema(), keys));
333
343
  },
334
344
  error(message) {
335
- const c = this;
336
- c.inputSchema.message = c.outputSchema.message = c.querySchema.message = message;
345
+ const c = Object.create(this);
346
+ c.inputSchema = (0, valibot.message)(c.inputSchema, message);
347
+ c.outputSchema = (0, valibot.message)(c.outputSchema, message);
348
+ c.querySchema = (0, valibot.message)(c.querySchema, message);
337
349
  return c;
338
350
  },
339
351
  smallint: () => new SmallIntColumnValibot(schemaConfig),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["JSONColumn","JSONTextColumn","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","getDateAsNumberFn","date","getDateAsDateFn","EnumColumn","picklist","makeColumnNullable","nullable","union","unknown","boolean","instance","never","string","coerce","object","optional","partial","required","pick"],"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 JSONTextColumn,\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 ColumnSchemaConfig,\n AdapterSchemaConfigOptions,\n getDateAsNumberFn,\n getDateAsDateFn,\n RecordUnknown,\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(\n schemaConfig: ValibotSchemaConfig,\n schema: Schema,\n jsonEncodedByDriver?: boolean,\n ) {\n super(schemaConfig, schema, jsonEncodedByDriver);\n }\n}\n\nclass ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schemaConfig: ValibotSchemaConfig, schema: Schema) {\n super(schemaConfig, schema);\n }\n}\n\ninterface ValibotSchemaWithPipe extends RecordUnknown {\n pipe: unknown[];\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 unknown as {\n [K: string]: ValibotSchemaWithPipe;\n };\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 // oxlint-disable-next-line typescript/no-explicit-any\n (cloned.querySchema as any).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 unknown as {\n [K: string]: ValibotSchemaWithPipe;\n };\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 // oxlint-disable-next-line typescript/no-explicit-any\n (cloned.querySchema as any).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(schemaConfig: ValibotSchemaConfig, item: Item) {\n super(schemaConfig, 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 extends ColumnSchemaConfig {\n __schemaType: 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.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.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends Column.Pick.Type,\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.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.Pick.ForParse>(\n this: T,\n ): Column.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.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.NullableWithSchema<\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 jsonText<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONTextColumn<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\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n __schemaType: 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 // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n number([]),\n getDateAsNumberFn(this as never),\n ) as never;\n },\n dateAsDate() {\n // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n date([]),\n getDateAsDateFn(this as never),\n ) as never;\n },\n enum(dataType, type) {\n return new EnumColumn(schemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(schemaConfig, 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(\n schemaConfig,\n (schema ?? unknown([])) as Schema,\n options?.jsonEncodedByDriver,\n );\n },\n jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONTextColumn(\n schemaConfig,\n (schema ?? unknown([])) as Schema,\n );\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 inputSchema: RecordUnknown;\n outputSchema: RecordUnknown;\n querySchema: RecordUnknown;\n };\n c.inputSchema.message =\n c.outputSchema.message =\n (c.querySchema as RecordUnknown).message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(schemaConfig),\n integer: () => new IntegerColumnValibot(schemaConfig),\n real: () => new RealColumnValibot(schemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(schemaConfig),\n serial: () => new SerialColumnValibot(schemaConfig),\n\n bigint: () => new BigIntColumnValibot(schemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(schemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(schemaConfig),\n bigSerial: () => new BigSerialColumnValibot(schemaConfig),\n money: () => new MoneyColumnValibot(schemaConfig),\n varchar: (limit) => new VarCharColumnValibot(schemaConfig, limit),\n text: () => new TextColumnValibot(schemaConfig),\n string: (limit) => new StringColumnValibot(schemaConfig, limit),\n citext: () => new CitextColumnValibot(schemaConfig),\n\n date: () =>\n new DateColumnValibot(schemaConfig, options?.dateParsedByDriver),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n timestamp: (precision) =>\n new TimestampColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n };\n return schemaConfig;\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 : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true\n ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : 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"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["JSONColumn","JSONTextColumn","setDataValue","pipe","minLength","maxLength","length","ArrayColumn","array","_stringify","maxValue","minValue","integer","finite","SmallIntColumn","IntegerColumn","RealColumn","SmallSerialColumn","SerialColumn","email","url","emoji","uuid","cuid2","ulid","regex","includes","startsWith","endsWith","isoDateTime","ipv4","ipv6","trim","toLowerCase","toUpperCase","BigIntColumn","DecimalColumn","DoublePrecisionColumn","BigSerialColumn","MoneyColumn","VarCharColumn","TextColumn","StringColumn","CitextColumn","DateColumn","TimestampColumn","TimestampTZColumn","setColumnParse","setColumnParseNull","setColumnEncode","number","getDateAsNumberFn","date","getDateAsDateFn","EnumColumn","picklist","makeColumnNullable","nullable","union","unknown","boolean","instance","never","string","toDate","object","optional","partial","required","pick","setSchemaMessage"],"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 JSONTextColumn,\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 DateColumnInput,\n makeColumnNullable,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n setDataValue,\n StringData,\n ColumnSchemaConfig,\n AdapterSchemaConfigOptions,\n getDateAsNumberFn,\n getDateAsDateFn,\n} from 'pqb/internal';\nimport {\n _addIssue,\n _stringify,\n array,\n ArraySchema as ValibotArraySchema,\n GenericSchema as BaseSchema,\n GenericTransformation as BaseTransformation,\n GenericValidation as BaseValidation,\n BrandAction,\n BaseIssue,\n boolean,\n BooleanSchema as ValibotBooleanSchema,\n cuid2,\n date,\n DateSchema as ValibotDateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema as ValibotInstanceSchema,\n integer,\n IntegerAction,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n message as setSchemaMessage,\n minLength,\n minValue,\n never,\n NeverSchema as ValibotNeverSchema,\n nullable,\n NullableSchema as ValibotNullableSchema,\n number,\n NumberSchema as ValibotNumberSchema,\n object,\n ObjectEntries,\n ObjectSchema as ValibotObjectSchema,\n optional,\n OptionalSchema as ValibotOptionalSchema,\n partial,\n pick,\n picklist,\n PicklistSchema as ValibotPicklistSchema,\n pipe,\n regex,\n required,\n startsWith,\n string,\n StringSchema as ValibotStringSchema,\n SchemaWithPipe,\n toLowerCase,\n trim,\n toUpperCase,\n toDate,\n ulid,\n union,\n unknown,\n UnknownSchema as ValibotUnknownSchema,\n UnionSchema as ValibotUnionSchema,\n url,\n uuid,\n InferOutput,\n} from 'valibot';\n\ntype ArraySchema<Item extends BaseSchema> = ValibotArraySchema<Item, undefined>;\ntype BooleanSchema = ValibotBooleanSchema<undefined>;\ntype DateSchema = ValibotDateSchema<undefined>;\ntype InstanceSchema<Class extends new (...args: never[]) => object> =\n ValibotInstanceSchema<Class, undefined>;\ntype NeverSchema = ValibotNeverSchema<undefined>;\ntype NullableSchema<Schema extends BaseSchema> = ValibotNullableSchema<\n Schema,\n undefined\n>;\ntype NumberSchema = ValibotNumberSchema<undefined>;\ntype ObjectSchema<Entries> = Entries extends ObjectEntries\n ? ValibotObjectSchema<Entries, undefined>\n : never;\ntype OptionalSchema<Schema extends BaseSchema> = ValibotOptionalSchema<\n Schema,\n undefined\n>;\ntype PicklistSchema<Options extends readonly string[]> = ValibotPicklistSchema<\n Options,\n undefined\n>;\ntype StringSchema = ValibotStringSchema<undefined>;\ntype UnionSchema<Options extends readonly BaseSchema[]> = ValibotUnionSchema<\n Options,\n undefined\n>;\ntype UnknownSchema = ValibotUnknownSchema;\ntype Output<Schema extends BaseSchema> = InferOutput<Schema>;\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(\n schemaConfig: ValibotSchemaConfig,\n schema: Schema,\n jsonEncodedByDriver?: boolean,\n ) {\n super(schemaConfig, schema, jsonEncodedByDriver);\n }\n}\n\nclass ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schemaConfig: ValibotSchemaConfig, schema: Schema) {\n super(schemaConfig, 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 unknown as Record<string, BaseSchema>;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema = pipe(cloned.inputSchema, v);\n cloned.outputSchema = pipe(cloned.outputSchema, v);\n cloned.querySchema = pipe(cloned.querySchema, 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 unknown as Record<string, BaseSchema>;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema = pipe(cloned.inputSchema, v);\n cloned.outputSchema = pipe(cloned.outputSchema, v);\n cloned.querySchema = pipe(cloned.querySchema, 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(schemaConfig: ValibotSchemaConfig, item: Item) {\n super(schemaConfig, 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 kind: 'validation';\n reference: typeof gt;\n message?: string;\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 kind: 'validation',\n type: 'gt',\n reference: gt,\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : _stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && !(dataset.value > this.requirement)) {\n _addIssue(this, 'value', dataset, config, {\n received:\n dataset.value instanceof Date\n ? dataset.value.toJSON()\n : _stringify(dataset.value),\n });\n }\n return dataset;\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n kind: 'validation';\n reference: typeof lt;\n message?: string;\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 kind: 'validation',\n type: 'lt',\n reference: lt,\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : _stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && !(dataset.value < this.requirement)) {\n _addIssue(this, 'value', dataset, config, {\n received:\n dataset.value instanceof Date\n ? dataset.value.toJSON()\n : _stringify(dataset.value),\n });\n }\n return dataset;\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n kind: 'validation';\n reference: typeof step;\n message?: string;\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 kind: 'validation',\n type: 'step',\n reference: step,\n expects: `a multiple of ${_stringify(requirement)}`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && dataset.value % this.requirement !== 0) {\n _addIssue(this, 'value', dataset, config);\n }\n return dataset;\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', trim, 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 extends ColumnSchemaConfig {\n __schemaType: 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.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.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends Column.Pick.Type,\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.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.Pick.ForParse>(\n this: T,\n ): Column.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.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.NullableWithSchema<\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 jsonText<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONTextColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): BaseSchema<string, string>;\n stringMax(max: number): BaseSchema<string, string>;\n stringMinMax(min: number, max: number): BaseSchema<string, string>;\n number(): NumberSchema;\n int(): SchemaWithPipe<\n readonly [NumberSchema, IntegerAction<number, undefined>]\n >;\n stringNumberDate(): BaseSchema<DateColumnInput, Date>;\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): BaseSchema<string, string>;\n uuid(): BaseSchema<string, string>;\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\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n __schemaType: 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 // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n number(),\n getDateAsNumberFn(this as never),\n ) as never;\n },\n dateAsDate() {\n // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n date(),\n getDateAsDateFn(this as never),\n ) as never;\n },\n enum(dataType, type) {\n return new EnumColumn(schemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(schemaConfig, 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(\n schemaConfig,\n (schema ?? unknown()) as Schema,\n options?.jsonEncodedByDriver,\n );\n },\n jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONTextColumn(\n schemaConfig,\n (schema ?? unknown()) as Schema,\n );\n },\n boolean: () => boolean(),\n buffer: () => instance(Buffer),\n unknown: () => unknown(),\n never: () => never(),\n stringSchema: () => string(),\n stringMin(min) {\n return pipe(string(), minLength(min));\n },\n stringMax(max) {\n return pipe(string(), maxLength(max));\n },\n stringMinMax(min, max) {\n return pipe(string(), minLength(min), maxLength(max));\n },\n number: () => number(),\n int: () => pipe(number(), integer()),\n\n stringNumberDate: () => pipe(union([string(), number(), date()]), toDate()),\n\n timeInterval: () =>\n object({\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 bit: (max?: number) =>\n max\n ? pipe(string(), maxLength(max), regex(/[10]/g))\n : pipe(string(), regex(/[10]/g)),\n\n uuid: () => pipe(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') as never) as QuerySchema<\n typeof this\n >;\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 = Object.create(this as object) as Column & {\n inputSchema: BaseSchema;\n outputSchema: BaseSchema;\n querySchema: BaseSchema;\n };\n c.inputSchema = setSchemaMessage(c.inputSchema, message);\n c.outputSchema = setSchemaMessage(c.outputSchema, message);\n c.querySchema = setSchemaMessage(c.querySchema, message);\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(schemaConfig),\n integer: () => new IntegerColumnValibot(schemaConfig),\n real: () => new RealColumnValibot(schemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(schemaConfig),\n serial: () => new SerialColumnValibot(schemaConfig),\n\n bigint: () => new BigIntColumnValibot(schemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(schemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(schemaConfig),\n bigSerial: () => new BigSerialColumnValibot(schemaConfig),\n money: () => new MoneyColumnValibot(schemaConfig),\n varchar: (limit) => new VarCharColumnValibot(schemaConfig, limit),\n text: () => new TextColumnValibot(schemaConfig),\n string: (limit) => new StringColumnValibot(schemaConfig, limit),\n citext: () => new CitextColumnValibot(schemaConfig),\n\n date: () =>\n new DateColumnValibot(schemaConfig, options?.dateParsedByDriver),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n timestamp: (precision) =>\n new TimestampColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n };\n return schemaConfig;\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T>]: ColumnValidationSchema<\n T,\n K,\n Key\n >;\n}>;\n\ntype TableName<T extends ColumnSchemaGetterTableClass> = T['data'] extends {\n table: infer Table extends string;\n}\n ? Table\n : T['data'] extends { name: infer Name extends string }\n ? Name\n : never;\n\n// The default token is represented as `true | string` before table binding.\ntype ColumnBrand<\n T extends ColumnSchemaGetterTableClass,\n K extends keyof ColumnSchemaGetterColumns<T>,\n> = true extends ColumnSchemaGetterColumns<T>[K]['data']['branded']\n ? `${TableName<T>}.${K & string}`\n : ColumnSchemaGetterColumns<T>[K]['data']['branded'] extends string\n ? ColumnSchemaGetterColumns<T>[K]['data']['branded'] & string\n : never;\n\ntype BrandedSchema<\n Schema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n Brand extends PropertyKey,\n> = SchemaWithPipe<readonly [Schema, BrandAction<InferOutput<Schema>, Brand>]>;\n\ntype ColumnValidationSchema<\n T extends ColumnSchemaGetterTableClass,\n K extends keyof ColumnSchemaGetterColumns<T>,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n Brand extends PropertyKey = ColumnBrand<T, K>,\n> = SchemaOf<\n [Brand] extends [never]\n ? ColumnSchemaGetterColumns<T>[K][Key]\n : ColumnSchemaGetterColumns<T>[K][Key] extends BaseSchema<\n unknown,\n unknown,\n BaseIssue<unknown>\n >\n ? BrandedSchema<ColumnSchemaGetterColumns<T>[K][Key], Brand>\n : ColumnSchemaGetterColumns<T>[K][Key]\n>;\n\ntype SchemaOf<Schema> = Schema extends BaseSchema ? Schema : never;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnValidationSchema<T, K, 'querySchema'>\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [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<ColumnValidationSchema<T, K, 'inputSchema'>>\n : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true\n ? OptionalSchema<ColumnValidationSchema<T, K, 'inputSchema'>>\n : ColumnValidationSchema<T, K, 'inputSchema'>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnValidationSchema<T, K, 'inputSchema'>>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnValidationSchema<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"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ArrayColumn, BigIntColumn, BigSerialColumn, CitextColumn, DateColumn, DecimalColumn, DoublePrecisionColumn, EnumColumn, IntegerColumn, JSONColumn, JSONTextColumn, MoneyColumn, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextColumn, TimestampColumn, TimestampTZColumn, VarCharColumn, getDateAsDateFn, getDateAsNumberFn, makeColumnNullable, setColumnEncode, setColumnParse, setColumnParseNull, setDataValue } from "pqb/internal";
2
- import { actionIssue, actionOutput, array, boolean, coerce, cuid2, date, email, emoji, endsWith, finite, includes, instance, integer, ipv4, ipv6, isoDateTime, length, maxLength, maxValue, minLength, minValue, never, nullable, number, object, optional, partial, pick, picklist, regex, required, startsWith, string, stringify, toLowerCase, toTrimmed, toUpperCase, ulid, union, unknown, url, uuid } from "valibot";
2
+ import { _addIssue, _stringify, array, boolean, cuid2, date, email, emoji, endsWith, finite, includes, instance, integer, ipv4, ipv6, isoDateTime, length, maxLength, maxValue, message, minLength, minValue, never, nullable, number, object, optional, partial, pick, picklist, pipe, regex, required, startsWith, string, toDate, toLowerCase, toUpperCase, trim, ulid, union, unknown, url, uuid } from "valibot";
3
3
  var ValibotJSONColumn = class extends JSONColumn {
4
4
  constructor(schemaConfig, schema, jsonEncodedByDriver) {
5
5
  super(schemaConfig, schema, jsonEncodedByDriver);
@@ -13,17 +13,17 @@ var ValibotJSONTextColumn = class extends JSONTextColumn {
13
13
  function applyMethod(column, key, value, validation, params) {
14
14
  const cloned = setDataValue(column, key, value, params);
15
15
  const v = validation(value, typeof params === "object" ? params.message : params);
16
- cloned.inputSchema.pipe.push(v);
17
- cloned.outputSchema.pipe.push(v);
18
- cloned.querySchema.pipe.push(v);
16
+ cloned.inputSchema = pipe(cloned.inputSchema, v);
17
+ cloned.outputSchema = pipe(cloned.outputSchema, v);
18
+ cloned.querySchema = pipe(cloned.querySchema, v);
19
19
  return cloned;
20
20
  }
21
21
  function applySimpleMethod(column, key, validation, params, ...args) {
22
22
  const cloned = setDataValue(column, key, true, params);
23
23
  const v = validation(...args, typeof params === "object" ? params.message : params);
24
- cloned.inputSchema.pipe.push(v);
25
- cloned.outputSchema.pipe.push(v);
26
- cloned.querySchema.pipe.push(v);
24
+ cloned.inputSchema = pipe(cloned.inputSchema, v);
25
+ cloned.outputSchema = pipe(cloned.outputSchema, v);
26
+ cloned.querySchema = pipe(cloned.querySchema, v);
27
27
  return cloned;
28
28
  }
29
29
  const arrayMethods = {
@@ -42,46 +42,52 @@ const arrayMethods = {
42
42
  };
43
43
  var ValibotArrayColumn = class extends ArrayColumn {
44
44
  constructor(schemaConfig, item) {
45
- super(schemaConfig, item, array(item.inputSchema, []));
45
+ super(schemaConfig, item, array(item.inputSchema));
46
46
  }
47
47
  };
48
48
  Object.assign(ValibotArrayColumn.prototype, arrayMethods);
49
49
  function gt(requirement, message) {
50
50
  return {
51
+ kind: "validation",
51
52
  type: "gt",
52
- expects: `>${requirement instanceof Date ? requirement.toJSON() : stringify(requirement)}`,
53
+ reference: gt,
54
+ expects: `>${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
53
55
  async: false,
54
56
  message,
55
57
  requirement,
56
- _parse(input) {
57
- if (input > this.requirement) return actionOutput(input);
58
- return actionIssue(this, gt, input, "value", input instanceof Date ? input.toJSON() : stringify(input));
58
+ "~run"(dataset, config) {
59
+ if (dataset.typed && !(dataset.value > this.requirement)) _addIssue(this, "value", dataset, config, { received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value) });
60
+ return dataset;
59
61
  }
60
62
  };
61
63
  }
62
64
  function lt(requirement, message) {
63
65
  return {
66
+ kind: "validation",
64
67
  type: "lt",
65
- expects: `<${requirement instanceof Date ? requirement.toJSON() : stringify(requirement)}`,
68
+ reference: lt,
69
+ expects: `<${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
66
70
  async: false,
67
71
  message,
68
72
  requirement,
69
- _parse(input) {
70
- if (input < this.requirement) return actionOutput(input);
71
- return actionIssue(this, lt, input, "value", input instanceof Date ? input.toJSON() : stringify(input));
73
+ "~run"(dataset, config) {
74
+ if (dataset.typed && !(dataset.value < this.requirement)) _addIssue(this, "value", dataset, config, { received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value) });
75
+ return dataset;
72
76
  }
73
77
  };
74
78
  }
75
79
  function step(requirement, message) {
76
80
  return {
81
+ kind: "validation",
77
82
  type: "step",
78
- expects: `a multiple of ${stringify(requirement)}`,
83
+ reference: step,
84
+ expects: `a multiple of ${_stringify(requirement)}`,
79
85
  async: false,
80
86
  message,
81
87
  requirement,
82
- _parse(input) {
83
- if (input % this.requirement === 0) return actionOutput(input);
84
- return actionIssue(this, step, input, "value", stringify(input));
88
+ "~run"(dataset, config) {
89
+ if (dataset.typed && dataset.value % this.requirement !== 0) _addIssue(this, "value", dataset, config);
90
+ return dataset;
85
91
  }
86
92
  };
87
93
  }
@@ -181,7 +187,7 @@ const stringMethods = {
181
187
  return applySimpleMethod(this, "ipv6", ipv6, params);
182
188
  },
183
189
  trim(params) {
184
- return applySimpleMethod(this, "trim", toTrimmed, params);
190
+ return applySimpleMethod(this, "trim", trim, params);
185
191
  },
186
192
  toLowerCase(params) {
187
193
  return applySimpleMethod(this, "toLowerCase", toLowerCase, params);
@@ -252,10 +258,10 @@ const valibotSchemaConfig = (options) => {
252
258
  return c;
253
259
  },
254
260
  dateAsNumber() {
255
- return this.parse(number([]), getDateAsNumberFn(this));
261
+ return this.parse(number(), getDateAsNumberFn(this));
256
262
  },
257
263
  dateAsDate() {
258
- return this.parse(date([]), getDateAsDateFn(this));
264
+ return this.parse(date(), getDateAsDateFn(this));
259
265
  },
260
266
  enum(dataType, type) {
261
267
  return new EnumColumn(schemaConfig, dataType, type, picklist(type));
@@ -267,28 +273,32 @@ const valibotSchemaConfig = (options) => {
267
273
  return makeColumnNullable(this, nullable(this.inputSchema), this.nullSchema ? union([this.outputSchema, this.nullSchema]) : nullable(this.outputSchema), nullable(this.querySchema));
268
274
  },
269
275
  json(schema) {
270
- return new ValibotJSONColumn(schemaConfig, schema ?? unknown([]), options?.jsonEncodedByDriver);
276
+ return new ValibotJSONColumn(schemaConfig, schema ?? unknown(), options?.jsonEncodedByDriver);
271
277
  },
272
278
  jsonText(schema) {
273
- return new ValibotJSONTextColumn(schemaConfig, schema ?? unknown([]));
279
+ return new ValibotJSONTextColumn(schemaConfig, schema ?? unknown());
274
280
  },
275
- boolean: () => boolean([]),
276
- buffer: () => instance(Buffer, []),
277
- unknown: () => unknown([]),
281
+ boolean: () => boolean(),
282
+ buffer: () => instance(Buffer),
283
+ unknown: () => unknown(),
278
284
  never: () => never(),
279
- stringSchema: () => string([]),
285
+ stringSchema: () => string(),
280
286
  stringMin(min) {
281
- return string([minLength(min)]);
287
+ return pipe(string(), minLength(min));
282
288
  },
283
289
  stringMax(max) {
284
- return string([maxLength(max)]);
290
+ return pipe(string(), maxLength(max));
285
291
  },
286
292
  stringMinMax(min, max) {
287
- return string([minLength(min), maxLength(max)]);
293
+ return pipe(string(), minLength(min), maxLength(max));
288
294
  },
289
- number: () => number([]),
290
- int: () => number([integer()]),
291
- stringNumberDate: () => coerce(date([]), (input) => new Date(input)),
295
+ number: () => number(),
296
+ int: () => pipe(number(), integer()),
297
+ stringNumberDate: () => pipe(union([
298
+ string(),
299
+ number(),
300
+ date()
301
+ ]), toDate()),
292
302
  timeInterval: () => object({
293
303
  years: optional(number()),
294
304
  months: optional(number()),
@@ -296,9 +306,9 @@ const valibotSchemaConfig = (options) => {
296
306
  hours: optional(number()),
297
307
  minutes: optional(number()),
298
308
  seconds: optional(number())
299
- }, []),
300
- bit: (max) => max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),
301
- uuid: () => string([uuid()]),
309
+ }),
310
+ bit: (max) => max ? pipe(string(), maxLength(max), regex(/[10]/g)) : pipe(string(), regex(/[10]/g)),
311
+ uuid: () => pipe(string(), uuid()),
302
312
  inputSchema() {
303
313
  return mapSchema(this, "inputSchema");
304
314
  },
@@ -330,9 +340,11 @@ const valibotSchemaConfig = (options) => {
330
340
  for (const key in shape) if (shape[key].data.primaryKey) keys.push(key);
331
341
  return required(pick(this.querySchema(), keys));
332
342
  },
333
- error(message) {
334
- const c = this;
335
- c.inputSchema.message = c.outputSchema.message = c.querySchema.message = message;
343
+ error(message$1) {
344
+ const c = Object.create(this);
345
+ c.inputSchema = message(c.inputSchema, message$1);
346
+ c.outputSchema = message(c.outputSchema, message$1);
347
+ c.querySchema = message(c.querySchema, message$1);
336
348
  return c;
337
349
  },
338
350
  smallint: () => new SmallIntColumnValibot(schemaConfig),
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"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 JSONTextColumn,\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 ColumnSchemaConfig,\n AdapterSchemaConfigOptions,\n getDateAsNumberFn,\n getDateAsDateFn,\n RecordUnknown,\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(\n schemaConfig: ValibotSchemaConfig,\n schema: Schema,\n jsonEncodedByDriver?: boolean,\n ) {\n super(schemaConfig, schema, jsonEncodedByDriver);\n }\n}\n\nclass ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schemaConfig: ValibotSchemaConfig, schema: Schema) {\n super(schemaConfig, schema);\n }\n}\n\ninterface ValibotSchemaWithPipe extends RecordUnknown {\n pipe: unknown[];\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 unknown as {\n [K: string]: ValibotSchemaWithPipe;\n };\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 // oxlint-disable-next-line typescript/no-explicit-any\n (cloned.querySchema as any).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 unknown as {\n [K: string]: ValibotSchemaWithPipe;\n };\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 // oxlint-disable-next-line typescript/no-explicit-any\n (cloned.querySchema as any).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(schemaConfig: ValibotSchemaConfig, item: Item) {\n super(schemaConfig, 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 extends ColumnSchemaConfig {\n __schemaType: 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.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.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends Column.Pick.Type,\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.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.Pick.ForParse>(\n this: T,\n ): Column.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.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.NullableWithSchema<\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 jsonText<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONTextColumn<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\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n __schemaType: 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 // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n number([]),\n getDateAsNumberFn(this as never),\n ) as never;\n },\n dateAsDate() {\n // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n date([]),\n getDateAsDateFn(this as never),\n ) as never;\n },\n enum(dataType, type) {\n return new EnumColumn(schemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(schemaConfig, 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(\n schemaConfig,\n (schema ?? unknown([])) as Schema,\n options?.jsonEncodedByDriver,\n );\n },\n jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONTextColumn(\n schemaConfig,\n (schema ?? unknown([])) as Schema,\n );\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 inputSchema: RecordUnknown;\n outputSchema: RecordUnknown;\n querySchema: RecordUnknown;\n };\n c.inputSchema.message =\n c.outputSchema.message =\n (c.querySchema as RecordUnknown).message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(schemaConfig),\n integer: () => new IntegerColumnValibot(schemaConfig),\n real: () => new RealColumnValibot(schemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(schemaConfig),\n serial: () => new SerialColumnValibot(schemaConfig),\n\n bigint: () => new BigIntColumnValibot(schemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(schemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(schemaConfig),\n bigSerial: () => new BigSerialColumnValibot(schemaConfig),\n money: () => new MoneyColumnValibot(schemaConfig),\n varchar: (limit) => new VarCharColumnValibot(schemaConfig, limit),\n text: () => new TextColumnValibot(schemaConfig),\n string: (limit) => new StringColumnValibot(schemaConfig, limit),\n citext: () => new CitextColumnValibot(schemaConfig),\n\n date: () =>\n new DateColumnValibot(schemaConfig, options?.dateParsedByDriver),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n timestamp: (precision) =>\n new TimestampColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n };\n return schemaConfig;\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 : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true\n ? OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>\n : 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"],"mappings":";;AAsGA,IAAM,oBAAN,cAA2D,WAIzD;CACA,YACE,cACA,QACA,qBACA;EACA,MAAM,cAAc,QAAQ,mBAAmB;CACjD;AACF;AAEA,IAAM,wBAAN,cAA+D,eAI7D;CACA,YAAY,cAAmC,QAAgB;EAC7D,MAAM,cAAc,MAAM;CAC5B;AACF;AAMA,SAAS,YACP,QACA,KACA,OACA,YACA,QACA;CACA,MAAM,SAAS,aACb,QACA,KACA,OACA,MACF;CAIA,MAAM,IAAI,WACR,OACA,OAAO,WAAW,WAAW,OAAO,UAAU,MAChD;CAEA,OAAO,YAAY,KAAK,KAAK,CAAC;CAC9B,OAAO,aAAa,KAAK,KAAK,CAAC;CAE/B,OAAQ,YAAoB,KAAK,KAAK,CAAC;CAEvC,OAAO;AACT;AAEA,SAAS,kBACP,QACA,KACA,YACA,QACA,GAAG,MACH;CACA,MAAM,SAAS,aACb,QACA,KACA,MACA,MACF;CAIA,MAAM,IAAI,WACR,GAAI,MACH,OAAO,WAAW,WAAW,OAAO,UAAU,MACjD;CAEA,OAAO,YAAY,KAAK,KAAK,CAAC;CAC9B,OAAO,aAAa,KAAK,KAAK,CAAC;CAE/B,OAAQ,YAAoB,KAAK,KAAK,CAAC;CAEvC,OAAO;AACT;AAgBA,MAAM,eAAqC;CACzC,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,WAAW,MAAM;CAC1D;CACA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,WAAW,MAAM;CAC1D;CACA,OAAO,OAAO,QAAQ;EACpB,OAAO,YAAY,MAAM,UAAU,OAAO,QAAQ,MAAM;CAC1D;CACA,SAAS,QAAQ;EACf,OAAO,YAAY,MAAM,OAAO,GAAG,WAAW,MAAM;CACtD;AACF;AAaA,IAAM,qBAAN,cAAgE,YAM9D;CACA,YAAY,cAAmC,MAAY;EACzD,MAAM,cAAc,MAAM,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC;CACvD;AACF;AAEA,OAAO,OAAO,mBAAmB,WAAW,YAAY;AAiCxD,SAAgB,GAId,aACA,SACoC;CACpC,OAAO;EACL,MAAM;EACN,SAAS,IACP,uBAAuB,OACnB,YAAY,OAAO,IACnB,UAAU,WAAW;EAE3B,OAAO;EACP;EACA;EACA,OAAO,OAAO;GACZ,IAAI,QAAQ,KAAK,aACf,OAAO,aAAa,KAAK;GAE3B,OAAO,YACL,MACA,IACA,OACA,SACA,iBAAiB,OAAO,MAAM,OAAO,IAAI,UAAU,KAAK,CAC1D;EACF;CACF;AACF;AAgBA,SAAgB,GAId,aACA,SACoC;CACpC,OAAO;EACL,MAAM;EACN,SAAS,IACP,uBAAuB,OACnB,YAAY,OAAO,IACnB,UAAU,WAAW;EAE3B,OAAO;EACP;EACA;EACA,OAAO,OAAO;GACZ,IAAI,QAAQ,KAAK,aACf,OAAO,aAAa,KAAK;GAE3B,OAAO,YACL,MACA,IACA,OACA,SACA,iBAAiB,OAAO,MAAM,OAAO,IAAI,UAAU,KAAK,CAC1D;EACF;CACF;AACF;AAgBA,SAAgB,KACd,aACA,SACsC;CACtC,OAAO;EACL,MAAM;EACN,SAAS,iBAAiB,UAAU,WAAW;EAC/C,OAAO;EACP;EACA;EACA,OAAO,OAAO;GACZ,IAAI,QAAQ,KAAK,gBAAgB,GAC/B,OAAO,aAAa,KAAK;GAE3B,OAAO,YAAY,MAAM,MAAM,OAAO,SAAS,UAAU,KAAK,CAAC;EACjE;CACF;AACF;AAEA,MAAM,gBAA+B;CAEnC,GAAG,OAAO,QAAQ;EAChB,OAAO,YAAY,MAAM,MAAM,OAAO,IAAI,MAAM;CAClD;CAGA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;CAGA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;CAGA,GAAG,OAAO,QAAQ;EAChB,OAAO,YAAY,MAAM,MAAM,OAAO,IAAI,MAAM;CAClD;CAGA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;CAGA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;CAGA,SAAS,QAAQ;EACf,OAAO,YAAY,MAAM,MAAM,GAAG,IAAI,MAAM;CAC9C;CAGA,YAAY,QAAQ;EAClB,OAAO,YAAY,MAAM,OAAO,GAAG,UAAU,MAAM;CACrD;CAGA,SAAS,QAAQ;EACf,OAAO,YAAY,MAAM,MAAM,GAAG,IAAI,MAAM;CAC9C;CAGA,YAAY,QAAQ;EAClB,OAAO,YAAY,MAAM,OAAO,GAAG,UAAU,MAAM;CACrD;CAGA,KAAK,OAAO,QAAQ;EAClB,OAAO,YAAY,MAAM,QAAQ,OAAO,MAAM,MAAM;CACtD;CAGA,IAAI,QAAQ;EACV,OAAO,kBAAkB,MAAM,OAAO,SAAS,MAAM;CACvD;CAGA,OAAO,QAAQ;EACb,OAAO,kBAAkB,MAAM,UAAU,QAAQ,MAAM;CACzD;CAGA,KAAK,QAAQ;EACX,OAAO,kBACL,kBACE,MACA,QACA,UACA,QACA,OAAO,gBACT,GACA,QACA,UACA,QACA,OAAO,gBACT;CACF;AACF;AAKA,IAAM,wBAAN,cAAoC,eAAoC,CAAC;AACzE,OAAO,OAAO,sBAAsB,WAAW,aAAa;AAK5D,IAAM,uBAAN,cAAmC,cAAmC,CAAC;AACvE,OAAO,OAAO,qBAAqB,WAAW,aAAa;AAK3D,IAAM,oBAAN,cAAgC,WAAgC,CAAC;AACjE,OAAO,OAAO,kBAAkB,WAAW,aAAa;AAKxD,IAAM,2BAAN,cAAuC,kBAAuC,CAAC;AAC/E,OAAO,OAAO,yBAAyB,WAAW,aAAa;AAK/D,IAAM,sBAAN,cAAkC,aAAkC,CAAC;AACrE,OAAO,OAAO,oBAAoB,WAAW,aAAa;AAoE1D,MAAM,gBAA+B;CACnC,GAAI;CAEJ,MAAM,QAAQ;EACZ,OAAO,kBAAkB,MAAM,SAAS,OAAO,MAAM;CACvD;CAEA,IAAI,QAAQ;EACV,OAAO,kBAAkB,MAAM,OAAO,KAAK,MAAM;CACnD;CAEA,MAAM,QAAQ;EACZ,OAAO,kBAAkB,MAAM,SAAS,OAAO,MAAM;CACvD;CAEA,KAAK,QAAQ;EACX,OAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM;CACrD;CAEA,MAAM,QAAQ;EACZ,OAAO,kBAAkB,MAAM,SAAS,OAAO,MAAM;CACvD;CAEA,KAAK,QAAQ;EACX,OAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM;CACrD;CAEA,MAAM,OAAO,QAAQ;EACnB,OAAO,YAAY,MAAM,SAAS,OAAO,OAAO,MAAM;CACxD;CAEA,SAAS,OAAO,QAAQ;EACtB,OAAO,YAAY,MAAM,YAAY,OAAO,UAAU,MAAM;CAC9D;CAEA,WAAW,OAAO,QAAQ;EACxB,OAAO,YAAY,MAAM,cAAc,OAAO,YAAY,MAAM;CAClE;CAEA,SAAS,OAAO,QAAQ;EACtB,OAAO,YAAY,MAAM,YAAY,OAAO,UAAU,MAAM;CAC9D;CAEA,SAAS,QAAQ;EACf,OAAO,kBAAkB,MAAM,YAAY,aAAa,MAAM;CAChE;CAEA,KAAK,SAAS,CAAC,GAAG;EAChB,OAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM;CACrD;CAEA,KAAK,SAAS,CAAC,GAAG;EAChB,OAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM;CACrD;CAEA,KAAK,QAAQ;EACX,OAAO,kBAAkB,MAAM,QAAQ,WAAW,MAAM;CAC1D;CAEA,YAAY,QAAQ;EAClB,OAAO,kBAAkB,MAAM,eAAe,aAAa,MAAM;CACnE;CAEA,YAAY,QAAQ;EAClB,OAAO,kBAAkB,MAAM,eAAe,aAAa,MAAM;CACnE;AACF;AAKA,IAAM,sBAAN,cAAkC,aAAkC,CAAC;AACrE,OAAO,OAAO,oBAAoB,WAAW,aAAa;AAK1D,IAAM,uBAAN,cAAmC,cAAmC,CAAC;AACvE,OAAO,OAAO,qBAAqB,WAAW,aAAa;AAK3D,IAAM,+BAAN,cAA2C,sBAA2C,CAAC;AACvF,OAAO,OAAO,6BAA6B,WAAW,aAAa;AAKnE,IAAM,yBAAN,cAAqC,gBAAqC,CAAC;AAC3E,OAAO,OAAO,uBAAuB,WAAW,aAAa;AAK7D,IAAM,qBAAN,cAAiC,YAAiC,CAAC;AACnE,OAAO,OAAO,mBAAmB,WAAW,aAAa;AAKzD,IAAM,uBAAN,cAAmC,cAAmC,CAAC;AACvE,OAAO,OAAO,qBAAqB,WAAW,aAAa;AAK3D,IAAM,oBAAN,cAAgC,WAAgC,CAAC;AACjE,OAAO,OAAO,kBAAkB,WAAW,aAAa;AAKxD,IAAM,sBAAN,cAAkC,aAAkC,CAAC;AACrE,OAAO,OAAO,oBAAoB,WAAW,aAAa;AAK1D,IAAM,sBAAN,cAAkC,aAAkC,CAAC;AACrE,OAAO,OAAO,oBAAoB,WAAW,aAAa;AAU1D,MAAM,cAA2B;CAC/B,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;CACA,IAAI,OAAO,QAAQ;EACjB,OAAO,YAAY,MAAM,OAAO,OAAO,UAAU,MAAM;CACzD;AACF;AAKA,IAAM,oBAAN,cAAgC,WAAgC,CAAC;AACjE,OAAO,OAAO,kBAAkB,WAAW,WAAW;AAKtD,IAAM,6BAAN,cAAyC,gBAAqC,CAAC;AAC/E,OAAO,OAAO,2BAA2B,WAAW,WAAW;AAK/D,IAAM,yBAAN,cAAqC,kBAAuC,CAAC;AAC7E,OAAO,OAAO,uBAAuB,WAAW,WAAW;AAQ3D,IAAI;AAqPJ,MAAa,uBACX,YACwB;CACxB,MAAM,eAAoC;EACxC,cAAc,KAAA;EACd,MAAM,QAAQ,IAAI;GAChB,OAAO,eAAe,MAAe,IAAI,MAAM;EACjD;EACA,UAAU,QAAQ,IAAI;GACpB,OAAO,mBAAmB,MAAe,IAAI,MAAM;EACrD;EACA,OAAO,QAAQ,IAAI;GACjB,OAAO,gBAAgB,MAAe,IAAI,MAAM;EAClD;EACA,OAAO,QAAQ;GACb,OAAO;EACT;EACA,WAAW,MAAM;GACf,MAAM,IAAI,OAAO,OAAO,IAAI;GAC5B,IAAK,EAAuB,KAAK,WAC/B,EAAE,eAAe,EAAE,cAAc;QAEjC,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc;GAEnD,OAAO;EACT;EACA,eAAe,OAAO;GACpB,MAAM,IAAI,OAAO,OAAO,IAAI;GAC5B,IAAI,MAAM,OACR,EAAE,cAAc,MAAM;GAExB,IAAI,MAAM,QACR,EAAE,eAAe,MAAM;GAEzB,IAAI,MAAM,OACR,EAAE,cAAc,MAAM;GAExB,OAAO;EACT;EACA,eAAe;GAEb,OAAQ,KAAa,MACnB,OAAO,CAAC,CAAC,GACT,kBAAkB,IAAa,CACjC;EACF;EACA,aAAa;GAEX,OAAQ,KAAa,MACnB,KAAK,CAAC,CAAC,GACP,gBAAgB,IAAa,CAC/B;EACF;EACA,KAAK,UAAU,MAAM;GACnB,OAAO,IAAI,WAAW,cAAc,UAAU,MAAM,SAAS,IAAI,CAAC;EACpE;EACA,MAAM,MAAM;GACV,OAAO,IAAI,mBAAmB,cAAc,IAAI;EAClD;EACA,WAAW;GACT,OAAO,mBACL,MACA,SAAS,KAAK,WAAW,GACzB,KAAK,aACD,MAAM,CAAC,KAAK,cAAc,KAAK,UAAU,CAAC,IAC1C,SAAS,KAAK,YAAY,GAC9B,SAAS,KAAK,WAAW,CAC3B;EACF;EACA,KAAgD,QAAiB;GAC/D,OAAO,IAAI,kBACT,cACC,UAAU,QAAQ,CAAC,CAAC,GACrB,SAAS,mBACX;EACF;EACA,SAAoD,QAAiB;GACnE,OAAO,IAAI,sBACT,cACC,UAAU,QAAQ,CAAC,CAAC,CACvB;EACF;EACA,eAAe,QAAQ,CAAC,CAAC;EACzB,cAAc,SAAS,QAAQ,CAAC,CAAC;EACjC,eAAe,QAAQ,CAAC,CAAC;EACzB,aAAa,MAAM;EACnB,oBAAoB,OAAO,CAAC,CAAC;EAC7B,UAAU,KAAK;GACb,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;EAChC;EACA,UAAU,KAAK;GACb,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;EAChC;EACA,aAAa,KAAK,KAAK;GACrB,OAAO,OAAO,CAAC,UAAU,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC;EAChD;EACA,cAAc,OAAO,CAAC,CAAC;EACvB,WAAW,OAAO,CAAC,QAAQ,CAAC,CAAC;EAE7B,wBACE,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,IAAI,KAAK,KAAe,CAAC;EAEvD,oBACE,OACE;GACE,OAAO,SAAS,OAAO,CAAC;GACxB,QAAQ,SAAS,OAAO,CAAC;GACzB,MAAM,SAAS,OAAO,CAAC;GACvB,OAAO,SAAS,OAAO,CAAC;GACxB,SAAS,SAAS,OAAO,CAAC;GAC1B,SAAS,SAAS,OAAO,CAAC;EAC5B,GACA,CAAC,CACH;EAEF,MAAM,QACJ,MAAM,OAAO,CAAC,UAAU,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC;EAE1E,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;EAE3B,cAAc;GACZ,OAAO,UAAU,MAAM,aAAa;EACtC;EAEA,eAAe;GACb,OAAO,UAAU,MAAM,cAAc;EACvC;EAEA,cAAc;GACZ,OAAO,QAAQ,UAAU,MAAM,aAAa,CAAC;EAC/C;EAEA,eAA8D;GAC5D,MAAM,QAAQ,KAAK,YAAY;GAE/B,MAAM,QAAuB,CAAC;GAC9B,MAAM,EAAE,OAAO,YAAY,KAAK,UAAU;GAE1C,KAAK,MAAM,OAAO,SAAS;IACzB,MAAM,SAAS,QAAQ;IACvB,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,YAAY;KAC9C,MAAM,OAAO,MAAM,QAAQ;KAE3B,IAAI,OAAO,KAAK,cAAc,OAAO,KAAK,YAAY,KAAA,GACpD,MAAM,OAAO,SAAS,MAAM,IAAI;IAEpC;GACF;GAEA,OAAO,OAAO,KAAK;EACrB;EAEA,eAA8D;GAC5D,OAAO,QAAQ,KAAK,aAAa,CAAU;EAC7C;EAEA,aAA4D;GAC1D,MAAM,OAAiB,CAAC;GAExB,MAAM,EACJ,SAAS,EAAE,YACT,KAAK;GACT,KAAK,MAAM,OAAO,OAChB,IAAI,MAAM,IAAI,CAAC,KAAK,YAClB,KAAK,KAAK,GAAG;GAIjB,OAAO,SACL,KAAK,KAAK,YAAY,GAAY,IAAa,CACjD;EACF;EAEA,MAAM,SAAiB;GACrB,MAAM,IAAI;GAKV,EAAE,YAAY,UACZ,EAAE,aAAa,UACf,EAAG,YAA8B,UAC/B;GACJ,OAAO;EACT;EAEA,gBAAgB,IAAI,sBAAsB,YAAY;EACtD,eAAe,IAAI,qBAAqB,YAAY;EACpD,YAAY,IAAI,kBAAkB,YAAY;EAC9C,mBAAmB,IAAI,yBAAyB,YAAY;EAC5D,cAAc,IAAI,oBAAoB,YAAY;EAElD,cAAc,IAAI,oBAAoB,YAAY;EAClD,UAAU,WAAW,UACnB,IAAI,qBAAqB,cAAc,WAAW,KAAK;EACzD,uBAAuB,IAAI,6BAA6B,YAAY;EACpE,iBAAiB,IAAI,uBAAuB,YAAY;EACxD,aAAa,IAAI,mBAAmB,YAAY;EAChD,UAAU,UAAU,IAAI,qBAAqB,cAAc,KAAK;EAChE,YAAY,IAAI,kBAAkB,YAAY;EAC9C,SAAS,UAAU,IAAI,oBAAoB,cAAc,KAAK;EAC9D,cAAc,IAAI,oBAAoB,YAAY;EAElD,YACE,IAAI,kBAAkB,cAAc,SAAS,kBAAkB;EACjE,gBAAgB,cACd,IAAI,2BACF,cACA,WACA,SAAS,kBACX;EACF,YAAY,cACV,IAAI,uBACF,cACA,WACA,SAAS,kBACX;EAEF,4BACG,gBAAgB,OAAO;GACtB,MAAM,SAAS,OAAO,CAAC;GACvB,KAAK,OAAO;GACZ,KAAK,OAAO;EACd,CAAC;CACL;CACA,OAAO;AACT;AAqCA,SAAS,UAGP,OAAU,WAAmC;CAC7C,MAAM,QAAuB,CAAC;CAC9B,MAAM,EAAE,OAAO,YAAY,MAAM,UAAU;CAE3C,KAAK,MAAM,OAAO,SAChB,IAAI,QAAQ,IAAI,CAAC,UACf,MAAM,OAAO,QAAQ,IAAI,CAAC;CAI9B,OAAO,OAAO,KAAK;AACrB"}
1
+ {"version":3,"file":"index.mjs","names":["setSchemaMessage","message"],"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 JSONTextColumn,\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 DateColumnInput,\n makeColumnNullable,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n setDataValue,\n StringData,\n ColumnSchemaConfig,\n AdapterSchemaConfigOptions,\n getDateAsNumberFn,\n getDateAsDateFn,\n} from 'pqb/internal';\nimport {\n _addIssue,\n _stringify,\n array,\n ArraySchema as ValibotArraySchema,\n GenericSchema as BaseSchema,\n GenericTransformation as BaseTransformation,\n GenericValidation as BaseValidation,\n BrandAction,\n BaseIssue,\n boolean,\n BooleanSchema as ValibotBooleanSchema,\n cuid2,\n date,\n DateSchema as ValibotDateSchema,\n email,\n emoji,\n endsWith,\n finite,\n includes,\n instance,\n InstanceSchema as ValibotInstanceSchema,\n integer,\n IntegerAction,\n ipv4,\n ipv6,\n isoDateTime,\n length,\n maxLength,\n maxValue,\n message as setSchemaMessage,\n minLength,\n minValue,\n never,\n NeverSchema as ValibotNeverSchema,\n nullable,\n NullableSchema as ValibotNullableSchema,\n number,\n NumberSchema as ValibotNumberSchema,\n object,\n ObjectEntries,\n ObjectSchema as ValibotObjectSchema,\n optional,\n OptionalSchema as ValibotOptionalSchema,\n partial,\n pick,\n picklist,\n PicklistSchema as ValibotPicklistSchema,\n pipe,\n regex,\n required,\n startsWith,\n string,\n StringSchema as ValibotStringSchema,\n SchemaWithPipe,\n toLowerCase,\n trim,\n toUpperCase,\n toDate,\n ulid,\n union,\n unknown,\n UnknownSchema as ValibotUnknownSchema,\n UnionSchema as ValibotUnionSchema,\n url,\n uuid,\n InferOutput,\n} from 'valibot';\n\ntype ArraySchema<Item extends BaseSchema> = ValibotArraySchema<Item, undefined>;\ntype BooleanSchema = ValibotBooleanSchema<undefined>;\ntype DateSchema = ValibotDateSchema<undefined>;\ntype InstanceSchema<Class extends new (...args: never[]) => object> =\n ValibotInstanceSchema<Class, undefined>;\ntype NeverSchema = ValibotNeverSchema<undefined>;\ntype NullableSchema<Schema extends BaseSchema> = ValibotNullableSchema<\n Schema,\n undefined\n>;\ntype NumberSchema = ValibotNumberSchema<undefined>;\ntype ObjectSchema<Entries> = Entries extends ObjectEntries\n ? ValibotObjectSchema<Entries, undefined>\n : never;\ntype OptionalSchema<Schema extends BaseSchema> = ValibotOptionalSchema<\n Schema,\n undefined\n>;\ntype PicklistSchema<Options extends readonly string[]> = ValibotPicklistSchema<\n Options,\n undefined\n>;\ntype StringSchema = ValibotStringSchema<undefined>;\ntype UnionSchema<Options extends readonly BaseSchema[]> = ValibotUnionSchema<\n Options,\n undefined\n>;\ntype UnknownSchema = ValibotUnknownSchema;\ntype Output<Schema extends BaseSchema> = InferOutput<Schema>;\n\nclass ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(\n schemaConfig: ValibotSchemaConfig,\n schema: Schema,\n jsonEncodedByDriver?: boolean,\n ) {\n super(schemaConfig, schema, jsonEncodedByDriver);\n }\n}\n\nclass ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<\n Output<Schema>,\n ValibotSchemaConfig,\n Schema\n> {\n constructor(schemaConfig: ValibotSchemaConfig, schema: Schema) {\n super(schemaConfig, 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 unknown as Record<string, BaseSchema>;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema = pipe(cloned.inputSchema, v);\n cloned.outputSchema = pipe(cloned.outputSchema, v);\n cloned.querySchema = pipe(cloned.querySchema, 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 unknown as Record<string, BaseSchema>;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema = pipe(cloned.inputSchema, v);\n cloned.outputSchema = pipe(cloned.outputSchema, v);\n cloned.querySchema = pipe(cloned.querySchema, 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(schemaConfig: ValibotSchemaConfig, item: Item) {\n super(schemaConfig, 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 kind: 'validation';\n reference: typeof gt;\n message?: string;\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 kind: 'validation',\n type: 'gt',\n reference: gt,\n expects: `>${\n requirement instanceof Date\n ? requirement.toJSON()\n : _stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && !(dataset.value > this.requirement)) {\n _addIssue(this, 'value', dataset, config, {\n received:\n dataset.value instanceof Date\n ? dataset.value.toJSON()\n : _stringify(dataset.value),\n });\n }\n return dataset;\n },\n };\n}\n\nexport type LtValidation<\n TInput extends string | number | bigint | boolean | Date,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n kind: 'validation';\n reference: typeof lt;\n message?: string;\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 kind: 'validation',\n type: 'lt',\n reference: lt,\n expects: `<${\n requirement instanceof Date\n ? requirement.toJSON()\n : _stringify(requirement)\n }`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && !(dataset.value < this.requirement)) {\n _addIssue(this, 'value', dataset, config, {\n received:\n dataset.value instanceof Date\n ? dataset.value.toJSON()\n : _stringify(dataset.value),\n });\n }\n return dataset;\n },\n };\n}\n\nexport type StepValidation<\n TInput extends number,\n TRequirement extends TInput,\n> = BaseValidation<TInput> & {\n kind: 'validation';\n reference: typeof step;\n message?: string;\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 kind: 'validation',\n type: 'step',\n reference: step,\n expects: `a multiple of ${_stringify(requirement)}`,\n async: false,\n message,\n requirement,\n '~run'(dataset, config) {\n if (dataset.typed && dataset.value % this.requirement !== 0) {\n _addIssue(this, 'value', dataset, config);\n }\n return dataset;\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', trim, 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 extends ColumnSchemaConfig {\n __schemaType: 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.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.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends Column.Pick.Type,\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.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.Pick.ForParse>(\n this: T,\n ): Column.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.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.NullableWithSchema<\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 jsonText<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONTextColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): BaseSchema<string, string>;\n stringMax(max: number): BaseSchema<string, string>;\n stringMinMax(min: number, max: number): BaseSchema<string, string>;\n number(): NumberSchema;\n int(): SchemaWithPipe<\n readonly [NumberSchema, IntegerAction<number, undefined>]\n >;\n stringNumberDate(): BaseSchema<DateColumnInput, Date>;\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): BaseSchema<string, string>;\n uuid(): BaseSchema<string, string>;\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\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n __schemaType: 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 // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n number(),\n getDateAsNumberFn(this as never),\n ) as never;\n },\n dateAsDate() {\n // oxlint-disable-next-line typescript/no-explicit-any\n return (this as any).parse(\n date(),\n getDateAsDateFn(this as never),\n ) as never;\n },\n enum(dataType, type) {\n return new EnumColumn(schemaConfig, dataType, type, picklist(type));\n },\n array(item) {\n return new ValibotArrayColumn(schemaConfig, 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(\n schemaConfig,\n (schema ?? unknown()) as Schema,\n options?.jsonEncodedByDriver,\n );\n },\n jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema) {\n return new ValibotJSONTextColumn(\n schemaConfig,\n (schema ?? unknown()) as Schema,\n );\n },\n boolean: () => boolean(),\n buffer: () => instance(Buffer),\n unknown: () => unknown(),\n never: () => never(),\n stringSchema: () => string(),\n stringMin(min) {\n return pipe(string(), minLength(min));\n },\n stringMax(max) {\n return pipe(string(), maxLength(max));\n },\n stringMinMax(min, max) {\n return pipe(string(), minLength(min), maxLength(max));\n },\n number: () => number(),\n int: () => pipe(number(), integer()),\n\n stringNumberDate: () => pipe(union([string(), number(), date()]), toDate()),\n\n timeInterval: () =>\n object({\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 bit: (max?: number) =>\n max\n ? pipe(string(), maxLength(max), regex(/[10]/g))\n : pipe(string(), regex(/[10]/g)),\n\n uuid: () => pipe(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') as never) as QuerySchema<\n typeof this\n >;\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 = Object.create(this as object) as Column & {\n inputSchema: BaseSchema;\n outputSchema: BaseSchema;\n querySchema: BaseSchema;\n };\n c.inputSchema = setSchemaMessage(c.inputSchema, message);\n c.outputSchema = setSchemaMessage(c.outputSchema, message);\n c.querySchema = setSchemaMessage(c.querySchema, message);\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(schemaConfig),\n integer: () => new IntegerColumnValibot(schemaConfig),\n real: () => new RealColumnValibot(schemaConfig),\n smallSerial: () => new SmallSerialColumnValibot(schemaConfig),\n serial: () => new SerialColumnValibot(schemaConfig),\n\n bigint: () => new BigIntColumnValibot(schemaConfig),\n decimal: (precision, scale) =>\n new DecimalColumnValibot(schemaConfig, precision, scale),\n doublePrecision: () => new DoublePrecisionColumnValibot(schemaConfig),\n bigSerial: () => new BigSerialColumnValibot(schemaConfig),\n money: () => new MoneyColumnValibot(schemaConfig),\n varchar: (limit) => new VarCharColumnValibot(schemaConfig, limit),\n text: () => new TextColumnValibot(schemaConfig),\n string: (limit) => new StringColumnValibot(schemaConfig, limit),\n citext: () => new CitextColumnValibot(schemaConfig),\n\n date: () =>\n new DateColumnValibot(schemaConfig, options?.dateParsedByDriver),\n timestampNoTZ: (precision) =>\n new TimestampNoTzColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n timestamp: (precision) =>\n new TimestampColumnValibot(\n schemaConfig,\n precision,\n options?.dateParsedByDriver,\n ),\n\n geographyPointSchema: () =>\n (pointSchema ??= object({\n srid: optional(number()),\n lon: number(),\n lat: number(),\n })),\n };\n return schemaConfig;\n};\n\ntype MapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T>]: ColumnValidationSchema<\n T,\n K,\n Key\n >;\n}>;\n\ntype TableName<T extends ColumnSchemaGetterTableClass> = T['data'] extends {\n table: infer Table extends string;\n}\n ? Table\n : T['data'] extends { name: infer Name extends string }\n ? Name\n : never;\n\n// The default token is represented as `true | string` before table binding.\ntype ColumnBrand<\n T extends ColumnSchemaGetterTableClass,\n K extends keyof ColumnSchemaGetterColumns<T>,\n> = true extends ColumnSchemaGetterColumns<T>[K]['data']['branded']\n ? `${TableName<T>}.${K & string}`\n : ColumnSchemaGetterColumns<T>[K]['data']['branded'] extends string\n ? ColumnSchemaGetterColumns<T>[K]['data']['branded'] & string\n : never;\n\ntype BrandedSchema<\n Schema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n Brand extends PropertyKey,\n> = SchemaWithPipe<readonly [Schema, BrandAction<InferOutput<Schema>, Brand>]>;\n\ntype ColumnValidationSchema<\n T extends ColumnSchemaGetterTableClass,\n K extends keyof ColumnSchemaGetterColumns<T>,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n Brand extends PropertyKey = ColumnBrand<T, K>,\n> = SchemaOf<\n [Brand] extends [never]\n ? ColumnSchemaGetterColumns<T>[K][Key]\n : ColumnSchemaGetterColumns<T>[K][Key] extends BaseSchema<\n unknown,\n unknown,\n BaseIssue<unknown>\n >\n ? BrandedSchema<ColumnSchemaGetterColumns<T>[K][Key], Brand>\n : ColumnSchemaGetterColumns<T>[K][Key]\n>;\n\ntype SchemaOf<Schema> = Schema extends BaseSchema ? Schema : never;\n\ntype QuerySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T>]: OptionalSchema<\n ColumnValidationSchema<T, K, 'querySchema'>\n >;\n}>;\n\ntype CreateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [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<ColumnValidationSchema<T, K, 'inputSchema'>>\n : ColumnSchemaGetterColumns<T>[K]['data']['default'] extends true\n ? OptionalSchema<ColumnValidationSchema<T, K, 'inputSchema'>>\n : ColumnValidationSchema<T, K, 'inputSchema'>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnValidationSchema<T, K, 'inputSchema'>>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n readonly [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnValidationSchema<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"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchid-orm-valibot",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "OrchidORM valibot integration",
5
5
  "keywords": [
6
6
  "orchid-orm",
@@ -35,8 +35,8 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "valibot": "0.29.0",
39
- "pqb": "0.72.1"
38
+ "valibot": "1.4.2",
39
+ "pqb": "0.72.2"
40
40
  },
41
41
  "devDependencies": {
42
42
  "test-utils": "0.3.7"
@@ -46,7 +46,7 @@
46
46
  "check": "jest",
47
47
  "check:coverage": "jest --coverage --coverageReporters json-summary",
48
48
  "types": "tsc",
49
- "build": "rimraf ./dist/ && rolldown -c ../../../rolldown.config.mjs",
49
+ "build": "rimraf ./dist/ && node ../../../scripts/build.mjs -c ../../../rolldown.config.mjs",
50
50
  "lint": "oxlint --fix",
51
51
  "lint:check": "oxlint",
52
52
  "fmt": "oxfmt",