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 +88 -56
- package/dist/index.js +51 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -41
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
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,
|
|
3
|
-
|
|
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
|
|
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> =
|
|
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> =
|
|
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> =
|
|
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:
|
|
131
|
-
parse<T extends Column.Pick.ForParse, OutputSchema extends
|
|
132
|
-
parseNull<T extends Column.Pick.ForParseNull, NullSchema extends
|
|
133
|
-
encode<T extends Column.Pick.Type, InputSchema extends
|
|
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<
|
|
138
|
-
type:
|
|
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
|
|
140
|
-
narrowType<T extends Column.InputOutputQueryTypesWithSchemas, Type extends
|
|
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
|
-
|
|
166
|
+
'~types'?: {
|
|
144
167
|
output: T['__inputType'];
|
|
145
168
|
};
|
|
146
169
|
};
|
|
147
170
|
output?: {
|
|
148
|
-
|
|
171
|
+
'~types'?: {
|
|
149
172
|
output: T['__outputType'];
|
|
150
173
|
};
|
|
151
174
|
};
|
|
152
175
|
query?: {
|
|
153
|
-
|
|
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
|
|
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
|
|
163
|
-
json<Schema extends
|
|
164
|
-
jsonText<Schema extends
|
|
165
|
-
boolean(): BooleanSchema;
|
|
166
|
-
buffer(): InstanceSchema<typeof Buffer>;
|
|
167
|
-
unknown(): UnknownSchema;
|
|
168
|
-
never(): NeverSchema;
|
|
169
|
-
stringSchema(): StringSchema;
|
|
170
|
-
stringMin(max: number):
|
|
171
|
-
stringMax(max: number):
|
|
172
|
-
stringMinMax(min: number, max: number):
|
|
173
|
-
number(): NumberSchema;
|
|
174
|
-
int(): NumberSchema
|
|
175
|
-
stringNumberDate():
|
|
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
|
|
185
|
-
uuid():
|
|
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>]:
|
|
214
|
-
type
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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.
|
|
18
|
-
cloned.outputSchema.pipe.
|
|
19
|
-
cloned.querySchema.pipe.
|
|
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.
|
|
26
|
-
cloned.outputSchema.pipe.
|
|
27
|
-
cloned.querySchema.pipe.
|
|
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
|
-
|
|
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
|
-
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
if (
|
|
72
|
-
return
|
|
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
|
-
|
|
84
|
+
reference: step,
|
|
85
|
+
expects: `a multiple of ${(0, valibot._stringify)(requirement)}`,
|
|
80
86
|
async: false,
|
|
81
87
|
message,
|
|
82
88
|
requirement,
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
return
|
|
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.
|
|
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)(
|
|
262
|
+
return this.parse((0, valibot.number)(), (0, pqb_internal.getDateAsNumberFn)(this));
|
|
257
263
|
},
|
|
258
264
|
dateAsDate() {
|
|
259
|
-
return this.parse((0, valibot.date)(
|
|
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)(
|
|
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)(
|
|
288
|
+
return (0, valibot.pipe)((0, valibot.string)(), (0, valibot.minLength)(min));
|
|
283
289
|
},
|
|
284
290
|
stringMax(max) {
|
|
285
|
-
return (0, valibot.string)(
|
|
291
|
+
return (0, valibot.pipe)((0, valibot.string)(), (0, valibot.maxLength)(max));
|
|
286
292
|
},
|
|
287
293
|
stringMinMax(min, max) {
|
|
288
|
-
return (0, valibot.string)(
|
|
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)(
|
|
292
|
-
stringNumberDate: () => (0, valibot.
|
|
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)(
|
|
302
|
-
uuid: () => (0, valibot.string)(
|
|
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
|
|
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 {
|
|
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
|
|
17
|
-
cloned.outputSchema
|
|
18
|
-
cloned.querySchema
|
|
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
|
|
25
|
-
cloned.outputSchema
|
|
26
|
-
cloned.querySchema
|
|
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
|
-
|
|
53
|
+
reference: gt,
|
|
54
|
+
expects: `>${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
|
|
53
55
|
async: false,
|
|
54
56
|
message,
|
|
55
57
|
requirement,
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
return
|
|
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
|
-
|
|
68
|
+
reference: lt,
|
|
69
|
+
expects: `<${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
|
|
66
70
|
async: false,
|
|
67
71
|
message,
|
|
68
72
|
requirement,
|
|
69
|
-
|
|
70
|
-
if (
|
|
71
|
-
return
|
|
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
|
-
|
|
83
|
+
reference: step,
|
|
84
|
+
expects: `a multiple of ${_stringify(requirement)}`,
|
|
79
85
|
async: false,
|
|
80
86
|
message,
|
|
81
87
|
requirement,
|
|
82
|
-
|
|
83
|
-
if (
|
|
84
|
-
return
|
|
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",
|
|
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(
|
|
261
|
+
return this.parse(number(), getDateAsNumberFn(this));
|
|
256
262
|
},
|
|
257
263
|
dateAsDate() {
|
|
258
|
-
return this.parse(date(
|
|
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(
|
|
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(
|
|
287
|
+
return pipe(string(), minLength(min));
|
|
282
288
|
},
|
|
283
289
|
stringMax(max) {
|
|
284
|
-
return string(
|
|
290
|
+
return pipe(string(), maxLength(max));
|
|
285
291
|
},
|
|
286
292
|
stringMinMax(min, max) {
|
|
287
|
-
return string(
|
|
293
|
+
return pipe(string(), minLength(min), maxLength(max));
|
|
288
294
|
},
|
|
289
|
-
number: () => number(
|
|
290
|
-
int: () => number(
|
|
291
|
-
stringNumberDate: () =>
|
|
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(
|
|
301
|
-
uuid: () => string(
|
|
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
|
|
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),
|
package/dist/index.mjs.map
CHANGED
|
@@ -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":"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"}
|
|
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":";;AAyIA,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;AAEA,SAAS,YACP,QACA,KACA,OACA,YACA,QACA;CACA,MAAM,SAAS,aACb,QACA,KACA,OACA,MACF;CAEA,MAAM,IAAI,WACR,OACA,OAAO,WAAW,WAAW,OAAO,UAAU,MAChD;CAEA,OAAO,cAAc,KAAK,OAAO,aAAa,CAAC;CAC/C,OAAO,eAAe,KAAK,OAAO,cAAc,CAAC;CACjD,OAAO,cAAc,KAAK,OAAO,aAAa,CAAC;CAE/C,OAAO;AACT;AAEA,SAAS,kBACP,QACA,KACA,YACA,QACA,GAAG,MACH;CACA,MAAM,SAAS,aACb,QACA,KACA,MACA,MACF;CAEA,MAAM,IAAI,WACR,GAAI,MACH,OAAO,WAAW,WAAW,OAAO,UAAU,MACjD;CAEA,OAAO,cAAc,KAAK,OAAO,aAAa,CAAC;CAC/C,OAAO,eAAe,KAAK,OAAO,cAAc,CAAC;CACjD,OAAO,cAAc,KAAK,OAAO,aAAa,CAAC;CAE/C,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,WAAW,CAAC;CACnD;AACF;AAEA,OAAO,OAAO,mBAAmB,WAAW,YAAY;AAoCxD,SAAgB,GAId,aACA,SACoC;CACpC,OAAO;EACL,MAAM;EACN,MAAM;EACN,WAAW;EACX,SAAS,IACP,uBAAuB,OACnB,YAAY,OAAO,IACnB,WAAW,WAAW;EAE5B,OAAO;EACP;EACA;EACA,OAAO,SAAS,QAAQ;GACtB,IAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,KAAK,cAC1C,UAAU,MAAM,SAAS,SAAS,QAAQ,EACxC,UACE,QAAQ,iBAAiB,OACrB,QAAQ,MAAM,OAAO,IACrB,WAAW,QAAQ,KAAK,EAChC,CAAC;GAEH,OAAO;EACT;CACF;AACF;AAmBA,SAAgB,GAId,aACA,SACoC;CACpC,OAAO;EACL,MAAM;EACN,MAAM;EACN,WAAW;EACX,SAAS,IACP,uBAAuB,OACnB,YAAY,OAAO,IACnB,WAAW,WAAW;EAE5B,OAAO;EACP;EACA;EACA,OAAO,SAAS,QAAQ;GACtB,IAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,KAAK,cAC1C,UAAU,MAAM,SAAS,SAAS,QAAQ,EACxC,UACE,QAAQ,iBAAiB,OACrB,QAAQ,MAAM,OAAO,IACrB,WAAW,QAAQ,KAAK,EAChC,CAAC;GAEH,OAAO;EACT;CACF;AACF;AAmBA,SAAgB,KACd,aACA,SACsC;CACtC,OAAO;EACL,MAAM;EACN,MAAM;EACN,WAAW;EACX,SAAS,iBAAiB,WAAW,WAAW;EAChD,OAAO;EACP;EACA;EACA,OAAO,SAAS,QAAQ;GACtB,IAAI,QAAQ,SAAS,QAAQ,QAAQ,KAAK,gBAAgB,GACxD,UAAU,MAAM,SAAS,SAAS,MAAM;GAE1C,OAAO;EACT;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,MAAM,MAAM;CACrD;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;AAuPJ,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,GACP,kBAAkB,IAAa,CACjC;EACF;EACA,aAAa;GAEX,OAAQ,KAAa,MACnB,KAAK,GACL,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,GACnB,SAAS,mBACX;EACF;EACA,SAAoD,QAAiB;GACnE,OAAO,IAAI,sBACT,cACC,UAAU,QAAQ,CACrB;EACF;EACA,eAAe,QAAQ;EACvB,cAAc,SAAS,MAAM;EAC7B,eAAe,QAAQ;EACvB,aAAa,MAAM;EACnB,oBAAoB,OAAO;EAC3B,UAAU,KAAK;GACb,OAAO,KAAK,OAAO,GAAG,UAAU,GAAG,CAAC;EACtC;EACA,UAAU,KAAK;GACb,OAAO,KAAK,OAAO,GAAG,UAAU,GAAG,CAAC;EACtC;EACA,aAAa,KAAK,KAAK;GACrB,OAAO,KAAK,OAAO,GAAG,UAAU,GAAG,GAAG,UAAU,GAAG,CAAC;EACtD;EACA,cAAc,OAAO;EACrB,WAAW,KAAK,OAAO,GAAG,QAAQ,CAAC;EAEnC,wBAAwB,KAAK,MAAM;GAAC,OAAO;GAAG,OAAO;GAAG,KAAK;EAAC,CAAC,GAAG,OAAO,CAAC;EAE1E,oBACE,OAAO;GACL,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,CAAC;EAEH,MAAM,QACJ,MACI,KAAK,OAAO,GAAG,UAAU,GAAG,GAAG,MAAM,OAAO,CAAC,IAC7C,KAAK,OAAO,GAAG,MAAM,OAAO,CAAC;EAEnC,YAAY,KAAK,OAAO,GAAG,KAAK,CAAC;EAEjC,cAAc;GACZ,OAAO,UAAU,MAAM,aAAa;EACtC;EAEA,eAAe;GACb,OAAO,UAAU,MAAM,cAAc;EACvC;EAEA,cAAc;GACZ,OAAO,QAAQ,UAAU,MAAM,aAAa,CAAU;EAGxD;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,WAAiB;GACrB,MAAM,IAAI,OAAO,OAAO,IAAc;GAKtC,EAAE,cAAcA,QAAiB,EAAE,aAAaC,SAAO;GACvD,EAAE,eAAeD,QAAiB,EAAE,cAAcC,SAAO;GACzD,EAAE,cAAcD,QAAiB,EAAE,aAAaC,SAAO;GACvD,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;AAmFA,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orchid-orm-valibot",
|
|
3
|
-
"version": "0.5.
|
|
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": "
|
|
39
|
-
"pqb": "0.72.
|
|
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/ &&
|
|
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",
|