orchid-orm-valibot 0.4.5 → 0.4.7
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 +16 -14
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { AdapterSchemaConfigOptions, ArrayColumn, ArrayColumnValue, BigIntColumn, BigSerialColumn, CitextColumn, Column, ColumnSchemaConfig, ColumnSchemaGetterColumns, ColumnSchemaGetterTableClass, DateColumn, DecimalColumn, DoublePrecisionColumn, EnumColumn, IntegerColumn, JSONColumn, MoneyColumn, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, StringData, TextColumn, TimestampColumn, TimestampTZColumn, VarCharColumn } from "pqb/internal";
|
|
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
2
|
import { ArraySchema, BaseSchema, BaseValidation, BooleanSchema, DateSchema, InstanceSchema, NeverSchema, NullableSchema, NumberSchema, ObjectSchema, OptionalSchema, Output, PicklistSchema, StringSchema, UnionSchema, UnknownSchema } from "valibot";
|
|
3
3
|
declare class ValibotJSONColumn<Schema extends BaseSchema> extends JSONColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
|
|
4
4
|
constructor(schemaConfig: ValibotSchemaConfig, schema: Schema, jsonEncodedByDriver?: boolean);
|
|
5
5
|
}
|
|
6
|
+
declare class ValibotJSONTextColumn<Schema extends BaseSchema> extends JSONTextColumn<Output<Schema>, ValibotSchemaConfig, Schema> {
|
|
7
|
+
constructor(schemaConfig: ValibotSchemaConfig, schema: Schema);
|
|
8
|
+
}
|
|
6
9
|
interface ArrayMethods<Value> {
|
|
7
10
|
min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;
|
|
8
11
|
max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;
|
|
@@ -124,42 +127,41 @@ type PointSchemaValibot = ObjectSchema<{
|
|
|
124
127
|
lat: NumberSchema;
|
|
125
128
|
}>;
|
|
126
129
|
interface ValibotSchemaConfig extends ColumnSchemaConfig {
|
|
127
|
-
|
|
128
|
-
parse<T extends Column.Pick.ForParse, OutputSchema extends BaseSchema, Out = Output<OutputSchema>>(this: T, _schema: OutputSchema, fn: (input: T['
|
|
130
|
+
__schemaType: BaseSchema;
|
|
131
|
+
parse<T extends Column.Pick.ForParse, OutputSchema extends BaseSchema, Out = Output<OutputSchema>>(this: T, _schema: OutputSchema, fn: (input: T['__type']) => Out): Column.Modifiers.Parse<T, OutputSchema, Out>;
|
|
129
132
|
parseNull<T extends Column.Pick.ForParseNull, NullSchema extends BaseSchema, NullType = Output<NullSchema>>(this: T, _schema: NullSchema, fn: () => NullType): Column.Modifiers.ParseNull<T, NullSchema, NullType>;
|
|
130
|
-
encode<T extends
|
|
131
|
-
type: unknown;
|
|
132
|
-
}, InputSchema extends BaseSchema, In = Output<InputSchema>>(this: T, _schema: InputSchema, fn: (input: In) => unknown): Column.Modifiers.Encode<T, InputSchema, In>;
|
|
133
|
+
encode<T extends Column.Pick.Type, InputSchema extends BaseSchema, In = Output<InputSchema>>(this: T, _schema: InputSchema, fn: (input: In) => unknown): Column.Modifiers.Encode<T, InputSchema, In>;
|
|
133
134
|
/**
|
|
134
135
|
* @deprecated use narrowType instead
|
|
135
136
|
*/
|
|
136
137
|
asType<T, Types extends Column.AsTypeArg<BaseSchema>, TypeSchema extends BaseSchema = (Types extends {
|
|
137
138
|
type: BaseSchema;
|
|
138
|
-
} ? Types['type'] : never), Type = Output<TypeSchema>>(this: T, types: Types): { [K in keyof T]: K extends 'type' ? Type : K extends '
|
|
139
|
-
narrowType<T extends Column.InputOutputQueryTypesWithSchemas, Type extends BaseSchema<any, T['
|
|
139
|
+
} ? Types['type'] : never), Type = Output<TypeSchema>>(this: T, types: Types): { [K in keyof T]: K extends 'type' ? Type : K extends '__inputType' ? Types['input'] extends BaseSchema ? Output<Types['input']> : Type : K extends 'inputSchema' ? Types['input'] extends BaseSchema ? Types['input'] : TypeSchema : K extends '__outputType' ? Types['output'] extends BaseSchema ? Output<Types['output']> : Type : K extends 'outputSchema' ? Types['output'] extends BaseSchema ? Types['output'] : TypeSchema : K extends '__queryType' ? Types['query'] extends BaseSchema ? Output<Types['query']> : Type : K extends 'querySchema' ? Types['query'] extends BaseSchema ? Types['query'] : TypeSchema : T[K] };
|
|
140
|
+
narrowType<T extends Column.InputOutputQueryTypesWithSchemas, Type extends BaseSchema<any, T['__inputType'] extends never ? T['__outputType'] & T['__queryType'] : T['__inputType'] & T['__outputType'] & T['__queryType']>>(this: T, types: Type): { [K in keyof T]: K extends '__inputType' ? T['__inputType'] extends never ? never : Output<Type> : K extends '__outputType' | '__queryType' ? Output<Type> : K extends 'inputSchema' ? T['__inputType'] extends never ? NeverSchema : Type : K extends 'outputSchema' | 'querySchema' ? Type : T[K] };
|
|
140
141
|
narrowAllTypes<T extends Column.InputOutputQueryTypesWithSchemas, Types extends {
|
|
141
142
|
input?: {
|
|
142
143
|
_types?: {
|
|
143
|
-
output: T['
|
|
144
|
+
output: T['__inputType'];
|
|
144
145
|
};
|
|
145
146
|
};
|
|
146
147
|
output?: {
|
|
147
148
|
_types?: {
|
|
148
|
-
output: T['
|
|
149
|
+
output: T['__outputType'];
|
|
149
150
|
};
|
|
150
151
|
};
|
|
151
152
|
query?: {
|
|
152
153
|
_types?: {
|
|
153
|
-
output: T['
|
|
154
|
+
output: T['__queryType'];
|
|
154
155
|
};
|
|
155
156
|
};
|
|
156
|
-
}>(this: T, types: Types): { [K in keyof T]: K extends '
|
|
157
|
-
dateAsNumber<T extends Column
|
|
158
|
-
dateAsDate<T extends Column
|
|
157
|
+
}>(this: T, types: Types): { [K in keyof T]: K extends '__inputType' ? Types['input'] extends BaseSchema ? Output<Types['input']> : T['__inputType'] : K extends 'inputSchema' ? Types['input'] extends BaseSchema ? Types['input'] : T['inputSchema'] : K extends '__outputType' ? Types['output'] extends BaseSchema ? Output<Types['output']> : T['__outputType'] : K extends 'outputSchema' ? Types['output'] extends BaseSchema ? Types['output'] : T['outputSchema'] : K extends '__queryType' ? Types['query'] extends BaseSchema ? Output<Types['query']> : T['querySchema'] : K extends 'querySchema' ? Types['query'] extends BaseSchema ? Types['query'] : T['querySchema'] : T[K] };
|
|
158
|
+
dateAsNumber<T extends Column.Pick.ForParse>(this: T): Column.Modifiers.Parse<T, NumberSchema, number>;
|
|
159
|
+
dateAsDate<T extends Column.Pick.ForParse>(this: T): Column.Modifiers.Parse<T, DateSchema, Date>;
|
|
159
160
|
enum<T extends readonly string[]>(dataType: string, type: T): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;
|
|
160
161
|
array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;
|
|
161
162
|
nullable<T extends Column.Pick.ForNullable>(this: T): Column.Modifiers.Nullable<T, NullableSchema<T['inputSchema']>, T['nullSchema'] extends BaseSchema ? UnionSchema<[T['outputSchema'], T['nullSchema']]> : NullableSchema<T['outputSchema']>, NullableSchema<T['querySchema']>>;
|
|
162
163
|
json<Schema extends BaseSchema = UnknownSchema>(schema?: Schema): ValibotJSONColumn<Schema>;
|
|
164
|
+
jsonText<Schema extends BaseSchema = UnknownSchema>(schema?: Schema): ValibotJSONTextColumn<Schema>;
|
|
163
165
|
boolean(): BooleanSchema;
|
|
164
166
|
buffer(): InstanceSchema<typeof Buffer>;
|
|
165
167
|
unknown(): UnknownSchema;
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,11 @@ var ValibotJSONColumn = class extends pqb_internal.JSONColumn {
|
|
|
6
6
|
super(schemaConfig, schema, jsonEncodedByDriver);
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
|
+
var ValibotJSONTextColumn = class extends pqb_internal.JSONTextColumn {
|
|
10
|
+
constructor(schemaConfig, schema) {
|
|
11
|
+
super(schemaConfig, schema);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
9
14
|
function applyMethod(column, key, value, validation, params) {
|
|
10
15
|
const cloned = (0, pqb_internal.setDataValue)(column, key, value, params);
|
|
11
16
|
const v = validation(value, typeof params === "object" ? params.message : params);
|
|
@@ -221,7 +226,7 @@ Object.assign(TimestampColumnValibot.prototype, dateMethods);
|
|
|
221
226
|
let pointSchema;
|
|
222
227
|
const valibotSchemaConfig = (options) => {
|
|
223
228
|
const schemaConfig = {
|
|
224
|
-
|
|
229
|
+
__schemaType: void 0,
|
|
225
230
|
parse(schema, fn) {
|
|
226
231
|
return (0, pqb_internal.setColumnParse)(this, fn, schema);
|
|
227
232
|
},
|
|
@@ -265,6 +270,9 @@ const valibotSchemaConfig = (options) => {
|
|
|
265
270
|
json(schema) {
|
|
266
271
|
return new ValibotJSONColumn(schemaConfig, schema ?? (0, valibot.unknown)([]), options?.jsonEncodedByDriver);
|
|
267
272
|
},
|
|
273
|
+
jsonText(schema) {
|
|
274
|
+
return new ValibotJSONTextColumn(schemaConfig, schema ?? (0, valibot.unknown)([]));
|
|
275
|
+
},
|
|
268
276
|
boolean: () => (0, valibot.boolean)([]),
|
|
269
277
|
buffer: () => (0, valibot.instance)(Buffer, []),
|
|
270
278
|
unknown: () => (0, valibot.unknown)([]),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["JSONColumn","minLength","maxLength","length","ArrayColumn","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","EnumColumn"],"sources":["../src/valibot.ts"],"sourcesContent":["import {\n Column,\n ArrayColumn,\n BigIntColumn,\n BigSerialColumn,\n CitextColumn,\n DateColumn,\n DecimalColumn,\n DoublePrecisionColumn,\n EnumColumn,\n IntegerColumn,\n JSONColumn,\n MoneyColumn,\n RealColumn,\n SerialColumn,\n SmallIntColumn,\n SmallSerialColumn,\n StringColumn,\n TextColumn,\n TimestampColumn,\n TimestampTZColumn,\n VarCharColumn,\n ArrayColumnValue,\n ColumnSchemaGetterColumns,\n ColumnSchemaGetterTableClass,\n makeColumnNullable,\n setColumnEncode,\n setColumnParse,\n setColumnParseNull,\n setDataValue,\n StringData,\n ColumnSchemaConfig,\n AdapterSchemaConfigOptions,\n getDateAsNumberFn,\n getDateAsDateFn,\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\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends\n ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(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 type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\n}\n\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), getDateAsNumberFn(this));\n },\n dateAsDate() {\n return this.parse(date([]), getDateAsDateFn(this) 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 boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(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 : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n}>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ObjectEntries = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return object(shape) as MapSchema<T, Key>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["JSONColumn","JSONTextColumn","minLength","maxLength","length","ArrayColumn","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","EnumColumn"],"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.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends 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.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends '__inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends '__outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends '__queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['__inputType'] extends never\n ? T['__outputType'] & T['__queryType']\n : T['__inputType'] & T['__outputType'] & T['__queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends '__inputType'\n ? T['__inputType'] extends never\n ? never\n : Output<Type>\n : K extends '__outputType' | '__queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['__inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['__inputType'] } };\n output?: { _types?: { output: T['__outputType'] } };\n query?: { _types?: { output: T['__queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends '__inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['__inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends '__outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['__outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends '__queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n 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 : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n}>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ObjectEntries = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return object(shape) as MapSchema<T, Key>;\n}\n"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import { ArrayColumn, BigIntColumn, BigSerialColumn, CitextColumn, DateColumn, DecimalColumn, DoublePrecisionColumn, EnumColumn, IntegerColumn, JSONColumn, MoneyColumn, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextColumn, TimestampColumn, TimestampTZColumn, VarCharColumn, getDateAsDateFn, getDateAsNumberFn, makeColumnNullable, setColumnEncode, setColumnParse, setColumnParseNull, setDataValue } from "pqb/internal";
|
|
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
2
|
import { actionIssue, actionOutput, array, boolean, coerce, cuid2, date, email, emoji, endsWith, finite, includes, instance, integer, ipv4, ipv6, isoDateTime, length, maxLength, maxValue, minLength, minValue, never, nullable, number, object, optional, partial, pick, picklist, regex, required, startsWith, string, stringify, toLowerCase, toTrimmed, toUpperCase, ulid, union, unknown, url, uuid } from "valibot";
|
|
3
3
|
var ValibotJSONColumn = class extends JSONColumn {
|
|
4
4
|
constructor(schemaConfig, schema, jsonEncodedByDriver) {
|
|
5
5
|
super(schemaConfig, schema, jsonEncodedByDriver);
|
|
6
6
|
}
|
|
7
7
|
};
|
|
8
|
+
var ValibotJSONTextColumn = class extends JSONTextColumn {
|
|
9
|
+
constructor(schemaConfig, schema) {
|
|
10
|
+
super(schemaConfig, schema);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
8
13
|
function applyMethod(column, key, value, validation, params) {
|
|
9
14
|
const cloned = setDataValue(column, key, value, params);
|
|
10
15
|
const v = validation(value, typeof params === "object" ? params.message : params);
|
|
@@ -220,7 +225,7 @@ Object.assign(TimestampColumnValibot.prototype, dateMethods);
|
|
|
220
225
|
let pointSchema;
|
|
221
226
|
const valibotSchemaConfig = (options) => {
|
|
222
227
|
const schemaConfig = {
|
|
223
|
-
|
|
228
|
+
__schemaType: void 0,
|
|
224
229
|
parse(schema, fn) {
|
|
225
230
|
return setColumnParse(this, fn, schema);
|
|
226
231
|
},
|
|
@@ -264,6 +269,9 @@ const valibotSchemaConfig = (options) => {
|
|
|
264
269
|
json(schema) {
|
|
265
270
|
return new ValibotJSONColumn(schemaConfig, schema ?? unknown([]), options?.jsonEncodedByDriver);
|
|
266
271
|
},
|
|
272
|
+
jsonText(schema) {
|
|
273
|
+
return new ValibotJSONTextColumn(schemaConfig, schema ?? unknown([]));
|
|
274
|
+
},
|
|
267
275
|
boolean: () => boolean([]),
|
|
268
276
|
buffer: () => instance(Buffer, []),
|
|
269
277
|
unknown: () => unknown([]),
|
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 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} 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\nfunction applyMethod(\n column: unknown,\n key: string,\n value: unknown,\n validation: (value: never, params?: string) => BaseValidation,\n params?: Column.Error.StringOrMessage,\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n value,\n params,\n ) as Column;\n\n const v = validation(\n value as never,\n typeof params === 'object' ? params.message : params,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\nfunction applySimpleMethod(\n column: unknown,\n key: string,\n validation: (...args: never[]) => BaseValidation | BaseTransformation,\n params?: Column.Error.StringOrMessage,\n ...args: unknown[]\n) {\n const cloned = setDataValue(\n column as Column.Pick.Data,\n key,\n true,\n params,\n ) as Column;\n\n const v = validation(\n ...(args as never[]),\n (typeof params === 'object' ? params.message : params) as never,\n );\n\n cloned.inputSchema.pipe.push(v);\n cloned.outputSchema.pipe.push(v);\n cloned.querySchema.pipe.push(v);\n\n return cloned as never;\n}\n\ninterface ArrayMethods<Value> {\n // Require a minimum length (inclusive)\n min<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a maximum length (inclusive)\n max<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a specific length\n length<T>(this: T, value: Value, params?: Column.Error.StringOrMessage): T;\n\n // Require a value to be non-empty\n nonEmpty<T>(this: T, params?: Column.Error.StringOrMessage): T;\n}\n\nconst arrayMethods: ArrayMethods<number> = {\n min(value, params) {\n return applyMethod(this, 'min', value, minLength, params);\n },\n max(value, params) {\n return applyMethod(this, 'max', value, maxLength, params);\n },\n length(value, params) {\n return applyMethod(this, 'length', value, length, params);\n },\n nonEmpty(params) {\n return applyMethod(this, 'min', 1, minLength, params);\n },\n};\n\ninterface ValibotArrayColumn<Item extends ArrayColumnValue>\n extends\n ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n >,\n ArrayMethods<number> {}\n\nclass ValibotArrayColumn<Item extends ArrayColumnValue> extends ArrayColumn<\n ValibotSchemaConfig,\n Item,\n ArraySchema<Item['inputSchema']>,\n ArraySchema<Item['outputSchema']>,\n ArraySchema<Item['querySchema']>\n> {\n constructor(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 type: BaseSchema;\n\n parse<\n T extends Column.Pick.ForParse,\n OutputSchema extends BaseSchema,\n Out = Output<OutputSchema>,\n >(\n this: T,\n _schema: OutputSchema,\n fn: (input: T['type']) => Out,\n ): Column.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends { type: unknown },\n InputSchema extends BaseSchema,\n In = Output<InputSchema>,\n >(\n this: T,\n _schema: InputSchema,\n fn: (input: In) => unknown,\n ): Column.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['inputType'] extends never\n ? T['outputType'] & T['queryType']\n : T['inputType'] & T['outputType'] & T['queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? T['inputType'] extends never\n ? never\n : Output<Type>\n : K extends 'outputType' | 'queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['inputType'] } };\n output?: { _types?: { output: T['outputType'] } };\n query?: { _types?: { output: T['queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends 'outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends 'queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column<ValibotSchemaConfig>>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n boolean(): BooleanSchema;\n buffer(): InstanceSchema<typeof Buffer>;\n unknown(): UnknownSchema;\n never(): NeverSchema;\n stringSchema(): StringSchema;\n stringMin(max: number): StringSchema;\n stringMax(max: number): StringSchema;\n stringMinMax(min: number, max: number): StringSchema;\n number(): NumberSchema;\n int(): NumberSchema;\n stringNumberDate(): DateSchema;\n timeInterval(): ObjectSchema<{\n years: OptionalSchema<NumberSchema>;\n months: OptionalSchema<NumberSchema>;\n days: OptionalSchema<NumberSchema>;\n hours: OptionalSchema<NumberSchema>;\n minutes: OptionalSchema<NumberSchema>;\n seconds: OptionalSchema<NumberSchema>;\n }>;\n bit(max: number): StringSchema;\n uuid(): StringSchema;\n\n inputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'inputSchema'>;\n\n outputSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): MapSchema<T, 'outputSchema'>;\n\n querySchema<T extends ColumnSchemaGetterTableClass>(this: T): QuerySchema<T>;\n\n createSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): CreateSchema<T>;\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(\n this: T,\n ): UpdateSchema<T>;\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T): PkeySchema<T>;\n\n error<T>(this: T, message: string): T;\n\n smallint(): SmallIntColumnValibot;\n integer(): IntegerColumnValibot;\n real(): RealColumnValibot;\n smallSerial(): SmallSerialColumnValibot;\n serial(): SerialColumnValibot;\n\n bigint(): BigIntColumnValibot;\n decimal(precision?: number, scale?: number): DecimalColumnValibot;\n doublePrecision(): DoublePrecisionColumnValibot;\n bigSerial(): BigSerialColumnValibot;\n money(): MoneyColumnValibot;\n varchar(limit?: number): VarCharColumnValibot;\n text(): TextColumnValibot;\n string(limit?: number): StringColumnValibot;\n citext(): CitextColumnValibot;\n\n date(): DateColumnValibot;\n timestampNoTZ(precision?: number): TimestampNoTzColumnValibot;\n timestamp(precision?: number): TimestampColumnValibot;\n\n geographyPointSchema(): PointSchemaValibot;\n}\n\nexport const valibotSchemaConfig = (\n options?: AdapterSchemaConfigOptions,\n): ValibotSchemaConfig => {\n const schemaConfig: ValibotSchemaConfig = {\n type: undefined as unknown as BaseSchema,\n parse(schema, fn) {\n return setColumnParse(this as never, fn, schema);\n },\n parseNull(schema, fn) {\n return setColumnParseNull(this as never, fn, schema);\n },\n encode(schema, fn) {\n return setColumnEncode(this as never, fn, schema);\n },\n asType(_types) {\n return this as never;\n },\n narrowType(type) {\n const c = Object.create(this);\n if ((c as Column.Pick.Data).data.generated) {\n c.outputSchema = c.querySchema = type;\n } else {\n c.inputSchema = c.outputSchema = c.querySchema = type;\n }\n return c as never;\n },\n narrowAllTypes(types) {\n const c = Object.create(this);\n if (types.input) {\n c.inputSchema = types.input;\n }\n if (types.output) {\n c.outputSchema = types.output;\n }\n if (types.query) {\n c.querySchema = types.query;\n }\n return c as never;\n },\n dateAsNumber() {\n return this.parse(number([]), getDateAsNumberFn(this));\n },\n dateAsDate() {\n return this.parse(date([]), getDateAsDateFn(this) 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 boolean: () => boolean([]),\n buffer: () => instance(Buffer, []),\n unknown: () => unknown([]),\n never: () => never(),\n stringSchema: () => string([]),\n stringMin(min) {\n return string([minLength(min)]);\n },\n stringMax(max) {\n return string([maxLength(max)]);\n },\n stringMinMax(min, max) {\n return string([minLength(min), maxLength(max)]);\n },\n number: () => number([]),\n int: () => number([integer()]),\n\n stringNumberDate: () =>\n coerce(date([]), (input) => new Date(input as string)),\n\n timeInterval: () =>\n object(\n {\n years: optional(number()),\n months: optional(number()),\n days: optional(number()),\n hours: optional(number()),\n minutes: optional(number()),\n seconds: optional(number()),\n },\n [],\n ),\n\n bit: (max?: number) =>\n max ? string([maxLength(max), regex(/[10]/g)]) : string([regex(/[10]/g)]),\n\n uuid: () => string([uuid()]),\n\n inputSchema() {\n return mapSchema(this, 'inputSchema');\n },\n\n outputSchema() {\n return mapSchema(this, 'outputSchema');\n },\n\n querySchema() {\n return partial(mapSchema(this, 'querySchema'));\n },\n\n createSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const input = this.inputSchema() as ObjectSchema<ObjectEntries>;\n\n const shape: ObjectEntries = {};\n const { shape: columns } = this.prototype.columns;\n\n for (const key in columns) {\n const column = columns[key];\n if (column.dataType && !column.data.primaryKey) {\n shape[key] = input.entries[key];\n\n if (column.data.isNullable || column.data.default !== undefined) {\n shape[key] = optional(shape[key]);\n }\n }\n }\n\n return object(shape) as CreateSchema<T>;\n },\n\n updateSchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n return partial(this.createSchema() as never) as UpdateSchema<T>;\n },\n\n pkeySchema<T extends ColumnSchemaGetterTableClass>(this: T) {\n const keys: string[] = [];\n\n const {\n columns: { shape },\n } = this.prototype;\n for (const key in shape) {\n if (shape[key].data.primaryKey) {\n keys.push(key);\n }\n }\n\n return required(\n pick(this.querySchema() as never, keys as never),\n ) as PkeySchema<T>;\n },\n\n error(message: string) {\n const c = this as Column;\n c.inputSchema.message =\n c.outputSchema.message =\n c.querySchema.message =\n message;\n return c as never;\n },\n\n smallint: () => new SmallIntColumnValibot(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 : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n}>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ObjectEntries = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return object(shape) as MapSchema<T, Key>;\n}\n"],"mappings":"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"}
|
|
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.Modifiers.Parse<T, OutputSchema, Out>;\n\n parseNull<\n T extends Column.Pick.ForParseNull,\n NullSchema extends BaseSchema,\n NullType = Output<NullSchema>,\n >(\n this: T,\n _schema: NullSchema,\n fn: () => NullType,\n ): Column.Modifiers.ParseNull<T, NullSchema, NullType>;\n\n encode<\n T extends 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.Modifiers.Encode<T, InputSchema, In>;\n\n /**\n * @deprecated use narrowType instead\n */\n asType<\n T,\n Types extends Column.AsTypeArg<BaseSchema>,\n TypeSchema extends BaseSchema = Types extends { type: BaseSchema }\n ? Types['type']\n : never,\n Type = Output<TypeSchema>,\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends 'type'\n ? Type\n : K extends '__inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : Type\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : TypeSchema\n : K extends '__outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : Type\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : TypeSchema\n : K extends '__queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : Type\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : TypeSchema\n : T[K];\n };\n\n narrowType<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Type extends BaseSchema<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n T['__inputType'] extends never\n ? T['__outputType'] & T['__queryType']\n : T['__inputType'] & T['__outputType'] & T['__queryType']\n >,\n >(\n this: T,\n types: Type,\n ): {\n [K in keyof T]: K extends '__inputType'\n ? T['__inputType'] extends never\n ? never\n : Output<Type>\n : K extends '__outputType' | '__queryType'\n ? Output<Type>\n : K extends 'inputSchema'\n ? T['__inputType'] extends never\n ? NeverSchema\n : Type\n : K extends 'outputSchema' | 'querySchema'\n ? Type\n : T[K];\n };\n\n narrowAllTypes<\n T extends Column.InputOutputQueryTypesWithSchemas,\n Types extends {\n input?: { _types?: { output: T['__inputType'] } };\n output?: { _types?: { output: T['__outputType'] } };\n query?: { _types?: { output: T['__queryType'] } };\n },\n >(\n this: T,\n types: Types,\n ): {\n [K in keyof T]: K extends '__inputType'\n ? Types['input'] extends BaseSchema\n ? Output<Types['input']>\n : T['__inputType']\n : K extends 'inputSchema'\n ? Types['input'] extends BaseSchema\n ? Types['input']\n : T['inputSchema']\n : K extends '__outputType'\n ? Types['output'] extends BaseSchema\n ? Output<Types['output']>\n : T['__outputType']\n : K extends 'outputSchema'\n ? Types['output'] extends BaseSchema\n ? Types['output']\n : T['outputSchema']\n : K extends '__queryType'\n ? Types['query'] extends BaseSchema\n ? Output<Types['query']>\n : T['querySchema']\n : K extends 'querySchema'\n ? Types['query'] extends BaseSchema\n ? Types['query']\n : T['querySchema']\n : T[K];\n };\n\n dateAsNumber<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.Modifiers.Parse<T, NumberSchema, number>;\n\n dateAsDate<T extends Column.Pick.ForParse>(\n this: T,\n ): Column.Modifiers.Parse<T, DateSchema, Date>;\n\n enum<T extends readonly string[]>(\n dataType: string,\n type: T,\n ): EnumColumn<ValibotSchemaConfig, PicklistSchema<T>, T>;\n\n array<Item extends ArrayColumnValue>(item: Item): ValibotArrayColumn<Item>;\n\n nullable<T extends Column.Pick.ForNullable>(\n this: T,\n ): Column.Modifiers.Nullable<\n T,\n NullableSchema<T['inputSchema']>,\n T['nullSchema'] extends BaseSchema\n ? UnionSchema<[T['outputSchema'], T['nullSchema']]>\n : NullableSchema<T['outputSchema']>,\n NullableSchema<T['querySchema']>\n >;\n\n json<Schema extends BaseSchema = UnknownSchema>(\n schema?: Schema,\n ): ValibotJSONColumn<Schema>;\n\n 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 : undefined extends ColumnSchemaGetterColumns<T>[K]['data']['default']\n ? ColumnSchemaGetterColumns<T>[K]['inputSchema']\n : OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype UpdateSchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? never\n : K]: OptionalSchema<ColumnSchemaGetterColumns<T>[K]['inputSchema']>;\n}>;\n\ntype PkeySchema<T extends ColumnSchemaGetterTableClass> = ObjectSchema<{\n [K in keyof ColumnSchemaGetterColumns<T> as ColumnSchemaGetterColumns<T>[K]['data']['primaryKey'] extends string\n ? K\n : never]: ColumnSchemaGetterColumns<T>[K]['inputSchema'];\n}>;\n\nfunction mapSchema<\n T extends ColumnSchemaGetterTableClass,\n Key extends 'inputSchema' | 'outputSchema' | 'querySchema',\n>(klass: T, schemaKey: Key): MapSchema<T, Key> {\n const shape: ObjectEntries = {};\n const { shape: columns } = klass.prototype.columns;\n\n for (const key in columns) {\n if (columns[key].dataType) {\n shape[key] = columns[key][schemaKey];\n }\n }\n\n return object(shape) as MapSchema<T, Key>;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orchid-orm-valibot",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "OrchidORM valibot integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"orchid-orm",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"valibot": "0.29.0",
|
|
39
|
-
"pqb": "0.67.
|
|
39
|
+
"pqb": "0.67.7"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"test-utils": "0.3.7"
|