drizzle-valibot 0.4.1 → 0.4.2-08bb2d5

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.
@@ -1,62 +1,66 @@
1
1
  import type { Assume, Column } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ArrayHasAtLeastOneValue, ColumnIsGeneratedAlwaysAs, IsNever, Json, RemoveNeverElements } from "./utils.cjs";
4
- export type GetEnumValuesFromColumn<TColumn extends Column> = TColumn['_'] extends {
5
- enumValues: [string, ...string[]];
6
- } ? TColumn['_']['enumValues'] : undefined;
7
- export type GetBaseColumn<TColumn extends Column> = TColumn['_'] extends {
8
- baseColumn: Column | never | undefined;
9
- } ? IsNever<TColumn['_']['baseColumn']> extends false ? TColumn['_']['baseColumn'] : undefined : undefined;
3
+ import type { IsEnumDefined, IsNever, Json, RemoveNeverElements } from "./utils.cjs";
4
+ export type HasBaseColumn<TColumn> = TColumn extends {
5
+ _: {
6
+ baseColumn: Column | undefined;
7
+ };
8
+ } ? IsNever<TColumn['_']['baseColumn']> extends false ? true : false : false;
10
9
  export type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = {
11
10
  readonly [K in TEnumValues[number]]: K;
12
11
  };
12
+ type StringHasMaxLength<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgVarchar' | 'PgChar' | 'MySqlChar' | 'MySqlVarChar' | 'MySqlText' | 'SingleStoreChar' | 'SingleStoreText' | 'SingleStoreVarChar' | 'MsSqlChar' | 'MsSqlVarChar' | 'CockroachChar' | 'CockroachVarchar' ? true : TColumn['_']['columnType'] extends 'SQLiteText' ? TColumn['_'] extends {
13
+ length: number | undefined;
14
+ } ? undefined extends TColumn['_']['length'] ? false : true : false : false;
13
15
  export type ExtractAdditionalProperties<TColumn extends Column> = {
14
- max: TColumn['_']['columnType'] extends 'PgVarchar' | 'SQLiteText' | 'PgChar' | 'MySqlChar' | 'SingleStoreChar' ? Assume<TColumn['_'], {
15
- length: number | undefined;
16
- }>['length'] : TColumn['_']['columnType'] extends 'MySqlText' | 'MySqlVarChar' | 'SingleStoreText' | 'SingleStoreVarChar' ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' ? Assume<TColumn['_'], {
16
+ max: StringHasMaxLength<TColumn> extends true ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachBinaryVector' ? Assume<TColumn['_'], {
17
17
  dimensions: number;
18
- }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' ? Assume<TColumn['_'], {
18
+ }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' | 'CockroachArray' ? Assume<TColumn['_'], {
19
19
  size: number | undefined;
20
20
  }>['size'] : undefined;
21
- fixedLength: TColumn['_']['columnType'] extends 'PgChar' | 'PgHalfVector' | 'PgVector' | 'PgArray' | 'MySqlChar' | 'SingleStoreChar' ? true : false;
21
+ fixedLength: TColumn['_']['columnType'] extends 'PgHalfVector' | 'PgVector' | 'PgArray' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachArray' ? true : false;
22
22
  };
23
23
  type GetLengthAction<T extends Record<string, any>, TType extends string | ArrayLike<unknown>> = T['fixedLength'] extends true ? v.LengthAction<TType, number, undefined> : v.MaxLengthAction<TType, number, undefined>;
24
- type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], GetEnumValuesFromColumn<T>, GetBaseColumn<T>, ExtractAdditionalProperties<T>>, undefined>;
25
- export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends [string, ...string[]] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
24
+ type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], T['_']['enumValues'], HasBaseColumn<T> extends true ? Assume<T['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<T>>, undefined>;
25
+ export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends string[] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
26
26
  v.ArraySchema<v.NumberSchema<undefined>, undefined>,
27
27
  GetLengthAction<TAdditionalProperties, number[]>
28
- ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
28
+ ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' | 'CockroachUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' | 'CockroachBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
29
29
  v.StringSchema<undefined>,
30
30
  v.RegexAction<string, undefined>,
31
31
  TAdditionalProperties['max'] extends number ? GetLengthAction<TAdditionalProperties, string> : never
32
32
  ]>> : TBaseColumn extends Column ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
33
- GetArraySchema<TBaseColumn>,
34
- GetLengthAction<TAdditionalProperties, TBaseColumn['_']['data'][]>
35
- ]> : GetArraySchema<TBaseColumn> : ArrayHasAtLeastOneValue<TEnumValues> extends true ? v.EnumSchema<EnumValuesToEnum<Assume<TEnumValues, [string, ...string[]]>>, undefined> : TData extends infer TTuple extends [any, ...any[]] ? v.TupleSchema<Assume<{
36
- [K in keyof TTuple]: GetValibotType<TTuple[K], string, string, undefined, undefined, {
37
- noPipe: true;
38
- }>;
39
- }, [
40
- any,
41
- ...any[]
42
- ]>, undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotType<Assume<TData, any[]>[number], string, string, undefined, undefined, {
33
+ GetArraySchema<Assume<TBaseColumn, Column>>,
34
+ GetLengthAction<TAdditionalProperties, Assume<TBaseColumn, Column>['_']['data'][]>
35
+ ]> : GetArraySchema<Assume<TBaseColumn, Column>> : IsEnumDefined<TEnumValues> extends true ? v.EnumSchema<{
36
+ readonly [K in Assume<TEnumValues, [string, ...string[]]>[number]]: K;
37
+ }, undefined> : TColumnType extends 'PgGeometry' | 'PgPointTuple' | 'CockroachGeometry' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TColumnType extends 'PgLine' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotPrimitiveType<Assume<TData, any[]>[number], '', {
43
38
  noPipe: true;
44
- }>, undefined> : TData extends infer TDict extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' ? v.GenericSchema<TDict> : v.ObjectSchema<{
45
- readonly [K in keyof TDict]: GetValibotType<TDict[K], string, string, undefined, undefined, {
39
+ }>, undefined> : TData extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? v.GenericSchema<TData> : v.ObjectSchema<{
40
+ readonly [K in keyof TData]: GetValibotPrimitiveType<TData[K], '', {
46
41
  noPipe: true;
47
42
  }>;
48
- }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
43
+ }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties>;
44
+ type IsBigIntStringMode<TData, TColumnType> = TColumnType extends 'MsSqlBigInt' ? TData extends string ? true : false : false;
45
+ type GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties extends Record<string, any>> = IsBigIntStringMode<TData, TColumnType> extends true ? v.SchemaWithPipe<[
46
+ v.StringSchema<undefined>,
47
+ v.RegexAction<string, undefined>,
48
+ v.TransformAction<string, bigint>,
49
+ v.MinValueAction<bigint, bigint, undefined>,
50
+ v.MaxValueAction<bigint, bigint, undefined>,
51
+ v.TransformAction<bigint, string>
52
+ ]> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
49
53
  v.NumberSchema<undefined>,
50
54
  v.MinValueAction<number, number, undefined>,
51
55
  v.MaxValueAction<number, number, undefined>,
52
- TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' ? v.IntegerAction<number, undefined> : never
56
+ TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' | 'MsSqlTinyInt' | 'MsSqlSmallInt' | 'MsSqlInt' | 'CockroachInteger' | 'CockroachBigInt53' | 'CockroachSmallInt' | 'MsSqlBigInt' ? v.IntegerAction<number, undefined> : never
53
57
  ]>> : TData extends bigint ? TAdditionalProperties['noPipe'] extends true ? v.BigintSchema<undefined> : v.SchemaWithPipe<[
54
58
  v.BigintSchema<undefined>,
55
59
  v.MinValueAction<bigint, bigint, undefined>,
56
60
  v.MaxValueAction<bigint, bigint, undefined>
57
61
  ]> : TData extends boolean ? v.BooleanSchema<undefined> : TData extends string ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[v.StringSchema<undefined>, GetLengthAction<TAdditionalProperties, string>]> : v.StringSchema<undefined> : v.AnySchema;
58
62
  type HandleSelectColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : v.NullableSchema<TSchema, undefined>;
59
- type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
60
- type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
61
- export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
63
+ type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
64
+ type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
65
+ export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], TColumn['_']['enumValues'], HasBaseColumn<TColumn> extends true ? Assume<TColumn['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
62
66
  export {};
@@ -1,62 +1,66 @@
1
1
  import type { Assume, Column } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ArrayHasAtLeastOneValue, ColumnIsGeneratedAlwaysAs, IsNever, Json, RemoveNeverElements } from "./utils.mjs";
4
- export type GetEnumValuesFromColumn<TColumn extends Column> = TColumn['_'] extends {
5
- enumValues: [string, ...string[]];
6
- } ? TColumn['_']['enumValues'] : undefined;
7
- export type GetBaseColumn<TColumn extends Column> = TColumn['_'] extends {
8
- baseColumn: Column | never | undefined;
9
- } ? IsNever<TColumn['_']['baseColumn']> extends false ? TColumn['_']['baseColumn'] : undefined : undefined;
3
+ import type { IsEnumDefined, IsNever, Json, RemoveNeverElements } from "./utils.mjs";
4
+ export type HasBaseColumn<TColumn> = TColumn extends {
5
+ _: {
6
+ baseColumn: Column | undefined;
7
+ };
8
+ } ? IsNever<TColumn['_']['baseColumn']> extends false ? true : false : false;
10
9
  export type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = {
11
10
  readonly [K in TEnumValues[number]]: K;
12
11
  };
12
+ type StringHasMaxLength<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgVarchar' | 'PgChar' | 'MySqlChar' | 'MySqlVarChar' | 'MySqlText' | 'SingleStoreChar' | 'SingleStoreText' | 'SingleStoreVarChar' | 'MsSqlChar' | 'MsSqlVarChar' | 'CockroachChar' | 'CockroachVarchar' ? true : TColumn['_']['columnType'] extends 'SQLiteText' ? TColumn['_'] extends {
13
+ length: number | undefined;
14
+ } ? undefined extends TColumn['_']['length'] ? false : true : false : false;
13
15
  export type ExtractAdditionalProperties<TColumn extends Column> = {
14
- max: TColumn['_']['columnType'] extends 'PgVarchar' | 'SQLiteText' | 'PgChar' | 'MySqlChar' | 'SingleStoreChar' ? Assume<TColumn['_'], {
15
- length: number | undefined;
16
- }>['length'] : TColumn['_']['columnType'] extends 'MySqlText' | 'MySqlVarChar' | 'SingleStoreText' | 'SingleStoreVarChar' ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' ? Assume<TColumn['_'], {
16
+ max: StringHasMaxLength<TColumn> extends true ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachBinaryVector' ? Assume<TColumn['_'], {
17
17
  dimensions: number;
18
- }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' ? Assume<TColumn['_'], {
18
+ }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' | 'CockroachArray' ? Assume<TColumn['_'], {
19
19
  size: number | undefined;
20
20
  }>['size'] : undefined;
21
- fixedLength: TColumn['_']['columnType'] extends 'PgChar' | 'PgHalfVector' | 'PgVector' | 'PgArray' | 'MySqlChar' | 'SingleStoreChar' ? true : false;
21
+ fixedLength: TColumn['_']['columnType'] extends 'PgHalfVector' | 'PgVector' | 'PgArray' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachArray' ? true : false;
22
22
  };
23
23
  type GetLengthAction<T extends Record<string, any>, TType extends string | ArrayLike<unknown>> = T['fixedLength'] extends true ? v.LengthAction<TType, number, undefined> : v.MaxLengthAction<TType, number, undefined>;
24
- type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], GetEnumValuesFromColumn<T>, GetBaseColumn<T>, ExtractAdditionalProperties<T>>, undefined>;
25
- export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends [string, ...string[]] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
24
+ type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], T['_']['enumValues'], HasBaseColumn<T> extends true ? Assume<T['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<T>>, undefined>;
25
+ export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends string[] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
26
26
  v.ArraySchema<v.NumberSchema<undefined>, undefined>,
27
27
  GetLengthAction<TAdditionalProperties, number[]>
28
- ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
28
+ ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' | 'CockroachUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' | 'CockroachBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
29
29
  v.StringSchema<undefined>,
30
30
  v.RegexAction<string, undefined>,
31
31
  TAdditionalProperties['max'] extends number ? GetLengthAction<TAdditionalProperties, string> : never
32
32
  ]>> : TBaseColumn extends Column ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
33
- GetArraySchema<TBaseColumn>,
34
- GetLengthAction<TAdditionalProperties, TBaseColumn['_']['data'][]>
35
- ]> : GetArraySchema<TBaseColumn> : ArrayHasAtLeastOneValue<TEnumValues> extends true ? v.EnumSchema<EnumValuesToEnum<Assume<TEnumValues, [string, ...string[]]>>, undefined> : TData extends infer TTuple extends [any, ...any[]] ? v.TupleSchema<Assume<{
36
- [K in keyof TTuple]: GetValibotType<TTuple[K], string, string, undefined, undefined, {
37
- noPipe: true;
38
- }>;
39
- }, [
40
- any,
41
- ...any[]
42
- ]>, undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotType<Assume<TData, any[]>[number], string, string, undefined, undefined, {
33
+ GetArraySchema<Assume<TBaseColumn, Column>>,
34
+ GetLengthAction<TAdditionalProperties, Assume<TBaseColumn, Column>['_']['data'][]>
35
+ ]> : GetArraySchema<Assume<TBaseColumn, Column>> : IsEnumDefined<TEnumValues> extends true ? v.EnumSchema<{
36
+ readonly [K in Assume<TEnumValues, [string, ...string[]]>[number]]: K;
37
+ }, undefined> : TColumnType extends 'PgGeometry' | 'PgPointTuple' | 'CockroachGeometry' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TColumnType extends 'PgLine' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotPrimitiveType<Assume<TData, any[]>[number], '', {
43
38
  noPipe: true;
44
- }>, undefined> : TData extends infer TDict extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' ? v.GenericSchema<TDict> : v.ObjectSchema<{
45
- readonly [K in keyof TDict]: GetValibotType<TDict[K], string, string, undefined, undefined, {
39
+ }>, undefined> : TData extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? v.GenericSchema<TData> : v.ObjectSchema<{
40
+ readonly [K in keyof TData]: GetValibotPrimitiveType<TData[K], '', {
46
41
  noPipe: true;
47
42
  }>;
48
- }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
43
+ }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties>;
44
+ type IsBigIntStringMode<TData, TColumnType> = TColumnType extends 'MsSqlBigInt' ? TData extends string ? true : false : false;
45
+ type GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties extends Record<string, any>> = IsBigIntStringMode<TData, TColumnType> extends true ? v.SchemaWithPipe<[
46
+ v.StringSchema<undefined>,
47
+ v.RegexAction<string, undefined>,
48
+ v.TransformAction<string, bigint>,
49
+ v.MinValueAction<bigint, bigint, undefined>,
50
+ v.MaxValueAction<bigint, bigint, undefined>,
51
+ v.TransformAction<bigint, string>
52
+ ]> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
49
53
  v.NumberSchema<undefined>,
50
54
  v.MinValueAction<number, number, undefined>,
51
55
  v.MaxValueAction<number, number, undefined>,
52
- TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' ? v.IntegerAction<number, undefined> : never
56
+ TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' | 'MsSqlTinyInt' | 'MsSqlSmallInt' | 'MsSqlInt' | 'CockroachInteger' | 'CockroachBigInt53' | 'CockroachSmallInt' | 'MsSqlBigInt' ? v.IntegerAction<number, undefined> : never
53
57
  ]>> : TData extends bigint ? TAdditionalProperties['noPipe'] extends true ? v.BigintSchema<undefined> : v.SchemaWithPipe<[
54
58
  v.BigintSchema<undefined>,
55
59
  v.MinValueAction<bigint, bigint, undefined>,
56
60
  v.MaxValueAction<bigint, bigint, undefined>
57
61
  ]> : TData extends boolean ? v.BooleanSchema<undefined> : TData extends string ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[v.StringSchema<undefined>, GetLengthAction<TAdditionalProperties, string>]> : v.StringSchema<undefined> : v.AnySchema;
58
62
  type HandleSelectColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : v.NullableSchema<TSchema, undefined>;
59
- type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
60
- type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
61
- export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
63
+ type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
64
+ type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
65
+ export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], TColumn['_']['enumValues'], HasBaseColumn<TColumn> extends true ? Assume<TColumn['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
62
66
  export {};
package/column.types.d.ts CHANGED
@@ -1,62 +1,66 @@
1
1
  import type { Assume, Column } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ArrayHasAtLeastOneValue, ColumnIsGeneratedAlwaysAs, IsNever, Json, RemoveNeverElements } from './utils.js';
4
- export type GetEnumValuesFromColumn<TColumn extends Column> = TColumn['_'] extends {
5
- enumValues: [string, ...string[]];
6
- } ? TColumn['_']['enumValues'] : undefined;
7
- export type GetBaseColumn<TColumn extends Column> = TColumn['_'] extends {
8
- baseColumn: Column | never | undefined;
9
- } ? IsNever<TColumn['_']['baseColumn']> extends false ? TColumn['_']['baseColumn'] : undefined : undefined;
3
+ import type { IsEnumDefined, IsNever, Json, RemoveNeverElements } from './utils.js';
4
+ export type HasBaseColumn<TColumn> = TColumn extends {
5
+ _: {
6
+ baseColumn: Column | undefined;
7
+ };
8
+ } ? IsNever<TColumn['_']['baseColumn']> extends false ? true : false : false;
10
9
  export type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = {
11
10
  readonly [K in TEnumValues[number]]: K;
12
11
  };
12
+ type StringHasMaxLength<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgVarchar' | 'PgChar' | 'MySqlChar' | 'MySqlVarChar' | 'MySqlText' | 'SingleStoreChar' | 'SingleStoreText' | 'SingleStoreVarChar' | 'MsSqlChar' | 'MsSqlVarChar' | 'CockroachChar' | 'CockroachVarchar' ? true : TColumn['_']['columnType'] extends 'SQLiteText' ? TColumn['_'] extends {
13
+ length: number | undefined;
14
+ } ? undefined extends TColumn['_']['length'] ? false : true : false : false;
13
15
  export type ExtractAdditionalProperties<TColumn extends Column> = {
14
- max: TColumn['_']['columnType'] extends 'PgVarchar' | 'SQLiteText' | 'PgChar' | 'MySqlChar' | 'SingleStoreChar' ? Assume<TColumn['_'], {
15
- length: number | undefined;
16
- }>['length'] : TColumn['_']['columnType'] extends 'MySqlText' | 'MySqlVarChar' | 'SingleStoreText' | 'SingleStoreVarChar' ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' ? Assume<TColumn['_'], {
16
+ max: StringHasMaxLength<TColumn> extends true ? number : TColumn['_']['columnType'] extends 'PgBinaryVector' | 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachBinaryVector' ? Assume<TColumn['_'], {
17
17
  dimensions: number;
18
- }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' ? Assume<TColumn['_'], {
18
+ }>['dimensions'] : TColumn['_']['columnType'] extends 'PgArray' | 'CockroachArray' ? Assume<TColumn['_'], {
19
19
  size: number | undefined;
20
20
  }>['size'] : undefined;
21
- fixedLength: TColumn['_']['columnType'] extends 'PgChar' | 'PgHalfVector' | 'PgVector' | 'PgArray' | 'MySqlChar' | 'SingleStoreChar' ? true : false;
21
+ fixedLength: TColumn['_']['columnType'] extends 'PgHalfVector' | 'PgVector' | 'PgArray' | 'SingleStoreVector' | 'CockroachVector' | 'CockroachArray' ? true : false;
22
22
  };
23
23
  type GetLengthAction<T extends Record<string, any>, TType extends string | ArrayLike<unknown>> = T['fixedLength'] extends true ? v.LengthAction<TType, number, undefined> : v.MaxLengthAction<TType, number, undefined>;
24
- type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], GetEnumValuesFromColumn<T>, GetBaseColumn<T>, ExtractAdditionalProperties<T>>, undefined>;
25
- export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends [string, ...string[]] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
24
+ type GetArraySchema<T extends Column> = v.ArraySchema<GetValibotType<T['_']['data'], T['_']['dataType'], T['_']['columnType'], T['_']['enumValues'], HasBaseColumn<T> extends true ? Assume<T['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<T>>, undefined>;
25
+ export type GetValibotType<TData, TDataType extends string, TColumnType extends string, TEnumValues extends string[] | undefined, TBaseColumn extends Column | undefined, TAdditionalProperties extends Record<string, any>> = TColumnType extends 'PgHalfVector' | 'PgVector' | 'SingleStoreVector' | 'CockroachVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
26
26
  v.ArraySchema<v.NumberSchema<undefined>, undefined>,
27
27
  GetLengthAction<TAdditionalProperties, number[]>
28
- ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
28
+ ]> : v.ArraySchema<v.NumberSchema<undefined>, undefined> : TColumnType extends 'PgUUID' | 'CockroachUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]> : TColumnType extends 'PgBinaryVector' | 'CockroachBinaryVector' ? v.SchemaWithPipe<RemoveNeverElements<[
29
29
  v.StringSchema<undefined>,
30
30
  v.RegexAction<string, undefined>,
31
31
  TAdditionalProperties['max'] extends number ? GetLengthAction<TAdditionalProperties, string> : never
32
32
  ]>> : TBaseColumn extends Column ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[
33
- GetArraySchema<TBaseColumn>,
34
- GetLengthAction<TAdditionalProperties, TBaseColumn['_']['data'][]>
35
- ]> : GetArraySchema<TBaseColumn> : ArrayHasAtLeastOneValue<TEnumValues> extends true ? v.EnumSchema<EnumValuesToEnum<Assume<TEnumValues, [string, ...string[]]>>, undefined> : TData extends infer TTuple extends [any, ...any[]] ? v.TupleSchema<Assume<{
36
- [K in keyof TTuple]: GetValibotType<TTuple[K], string, string, undefined, undefined, {
37
- noPipe: true;
38
- }>;
39
- }, [
40
- any,
41
- ...any[]
42
- ]>, undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotType<Assume<TData, any[]>[number], string, string, undefined, undefined, {
33
+ GetArraySchema<Assume<TBaseColumn, Column>>,
34
+ GetLengthAction<TAdditionalProperties, Assume<TBaseColumn, Column>['_']['data'][]>
35
+ ]> : GetArraySchema<Assume<TBaseColumn, Column>> : IsEnumDefined<TEnumValues> extends true ? v.EnumSchema<{
36
+ readonly [K in Assume<TEnumValues, [string, ...string[]]>[number]]: K;
37
+ }, undefined> : TColumnType extends 'PgGeometry' | 'PgPointTuple' | 'CockroachGeometry' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TColumnType extends 'PgLine' ? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined> : TData extends Date ? v.DateSchema<undefined> : TData extends Buffer ? v.GenericSchema<Buffer> : TDataType extends 'array' ? v.ArraySchema<GetValibotPrimitiveType<Assume<TData, any[]>[number], '', {
43
38
  noPipe: true;
44
- }>, undefined> : TData extends infer TDict extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' ? v.GenericSchema<TDict> : v.ObjectSchema<{
45
- readonly [K in keyof TDict]: GetValibotType<TDict[K], string, string, undefined, undefined, {
39
+ }>, undefined> : TData extends Record<string, any> ? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? v.GenericSchema<TData> : v.ObjectSchema<{
40
+ readonly [K in keyof TData]: GetValibotPrimitiveType<TData[K], '', {
46
41
  noPipe: true;
47
42
  }>;
48
- }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
43
+ }, undefined> : TDataType extends 'json' ? v.GenericSchema<Json> : GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties>;
44
+ type IsBigIntStringMode<TData, TColumnType> = TColumnType extends 'MsSqlBigInt' ? TData extends string ? true : false : false;
45
+ type GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties extends Record<string, any>> = IsBigIntStringMode<TData, TColumnType> extends true ? v.SchemaWithPipe<[
46
+ v.StringSchema<undefined>,
47
+ v.RegexAction<string, undefined>,
48
+ v.TransformAction<string, bigint>,
49
+ v.MinValueAction<bigint, bigint, undefined>,
50
+ v.MaxValueAction<bigint, bigint, undefined>,
51
+ v.TransformAction<bigint, string>
52
+ ]> : TData extends number ? TAdditionalProperties['noPipe'] extends true ? v.NumberSchema<undefined> : v.SchemaWithPipe<RemoveNeverElements<[
49
53
  v.NumberSchema<undefined>,
50
54
  v.MinValueAction<number, number, undefined>,
51
55
  v.MaxValueAction<number, number, undefined>,
52
- TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' ? v.IntegerAction<number, undefined> : never
56
+ TColumnType extends 'MySqlTinyInt' | 'SingleStoreTinyInt' | 'PgSmallInt' | 'PgSmallSerial' | 'MySqlSmallInt' | 'MySqlMediumInt' | 'SingleStoreSmallInt' | 'SingleStoreMediumInt' | 'PgInteger' | 'PgSerial' | 'MySqlInt' | 'SingleStoreInt' | 'PgBigInt53' | 'PgBigSerial53' | 'MySqlBigInt53' | 'MySqlSerial' | 'SingleStoreBigInt53' | 'SingleStoreSerial' | 'SQLiteInteger' | 'MySqlYear' | 'SingleStoreYear' | 'MsSqlTinyInt' | 'MsSqlSmallInt' | 'MsSqlInt' | 'CockroachInteger' | 'CockroachBigInt53' | 'CockroachSmallInt' | 'MsSqlBigInt' ? v.IntegerAction<number, undefined> : never
53
57
  ]>> : TData extends bigint ? TAdditionalProperties['noPipe'] extends true ? v.BigintSchema<undefined> : v.SchemaWithPipe<[
54
58
  v.BigintSchema<undefined>,
55
59
  v.MinValueAction<bigint, bigint, undefined>,
56
60
  v.MaxValueAction<bigint, bigint, undefined>
57
61
  ]> : TData extends boolean ? v.BooleanSchema<undefined> : TData extends string ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<[v.StringSchema<undefined>, GetLengthAction<TAdditionalProperties, string>]> : v.StringSchema<undefined> : v.AnySchema;
58
62
  type HandleSelectColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : v.NullableSchema<TSchema, undefined>;
59
- type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
60
- type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = ColumnIsGeneratedAlwaysAs<TColumn> extends true ? never : TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
61
- export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
63
+ type HandleInsertColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? v.OptionalSchema<TSchema, undefined> : TSchema : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
64
+ type HandleUpdateColumn<TSchema extends v.GenericSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? v.OptionalSchema<TSchema, undefined> : v.OptionalSchema<v.NullableSchema<TSchema, undefined>, undefined>;
65
+ export type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn extends Column> = GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], TColumn['_']['enumValues'], HasBaseColumn<TColumn> extends true ? Assume<TColumn['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema extends v.AnySchema ? v.AnySchema : TType extends 'select' ? HandleSelectColumn<TSchema, TColumn> : TType extends 'insert' ? HandleInsertColumn<TSchema, TColumn> : TType extends 'update' ? HandleUpdateColumn<TSchema, TColumn> : TSchema : v.AnySchema;
62
66
  export {};
package/index.cjs CHANGED
@@ -68,13 +68,26 @@ function columnToSchema(column) {
68
68
  }
69
69
  if (!schema) {
70
70
  // Handle specific types
71
- if (isColumnType(column, ['PgGeometry', 'PgPointTuple'])) {
71
+ if (isColumnType(column, [
72
+ 'PgGeometry',
73
+ 'PgPointTuple',
74
+ 'CockroachGeometry',
75
+ ])) {
72
76
  schema = v__namespace.tuple([v__namespace.number(), v__namespace.number()]);
73
77
  }
74
- else if (isColumnType(column, ['PgGeometryObject', 'PgPointObject'])) {
78
+ else if (isColumnType(column, [
79
+ 'PgGeometryObject',
80
+ 'PgPointObject',
81
+ 'CockroachGeometryObject',
82
+ ])) {
75
83
  schema = v__namespace.object({ x: v__namespace.number(), y: v__namespace.number() });
76
84
  }
77
- else if (isColumnType(column, ['PgHalfVector', 'PgVector'])) {
85
+ else if (isColumnType(column, [
86
+ 'PgHalfVector',
87
+ 'PgVector',
88
+ 'SingleStoreVector',
89
+ 'CockroachVector',
90
+ ])) {
78
91
  schema = v__namespace.array(v__namespace.number());
79
92
  schema = column.dimensions ? v__namespace.pipe(schema, v__namespace.length(column.dimensions)) : schema;
80
93
  }
@@ -85,7 +98,7 @@ function columnToSchema(column) {
85
98
  else if (isColumnType(column, ['PgLineABC'])) {
86
99
  schema = v__namespace.object({ a: v__namespace.number(), b: v__namespace.number(), c: v__namespace.number() });
87
100
  } // Handle other types
88
- else if (isColumnType(column, ['PgArray'])) {
101
+ else if (isColumnType(column, ['PgArray', 'CockroachArray'])) {
89
102
  schema = v__namespace.array(columnToSchema(column.baseColumn));
90
103
  schema = column.size ? v__namespace.pipe(schema, v__namespace.length(column.size)) : schema;
91
104
  }
@@ -123,11 +136,15 @@ function columnToSchema(column) {
123
136
  return schema;
124
137
  }
125
138
  function numberColumnToSchema(column) {
126
- let unsigned = column.getSQLType().includes('unsigned');
139
+ let unsigned = column.getSQLType().includes('unsigned') || isColumnType(column, ['MsSqlTinyInt']);
127
140
  let min;
128
141
  let max;
129
142
  let integer = false;
130
- if (isColumnType(column, ['MySqlTinyInt', 'SingleStoreTinyInt'])) {
143
+ if (isColumnType(column, [
144
+ 'MySqlTinyInt',
145
+ 'SingleStoreTinyInt',
146
+ 'MsSqlTinyInt',
147
+ ])) {
131
148
  min = unsigned ? 0 : CONSTANTS.INT8_MIN;
132
149
  max = unsigned ? CONSTANTS.INT8_UNSIGNED_MAX : CONSTANTS.INT8_MAX;
133
150
  integer = true;
@@ -137,6 +154,8 @@ function numberColumnToSchema(column) {
137
154
  'PgSmallSerial',
138
155
  'MySqlSmallInt',
139
156
  'SingleStoreSmallInt',
157
+ 'MsSqlSmallInt',
158
+ 'CockroachSmallInt',
140
159
  ])) {
141
160
  min = unsigned ? 0 : CONSTANTS.INT16_MIN;
142
161
  max = unsigned ? CONSTANTS.INT16_UNSIGNED_MAX : CONSTANTS.INT16_MAX;
@@ -148,6 +167,8 @@ function numberColumnToSchema(column) {
148
167
  'MySqlMediumInt',
149
168
  'SingleStoreFloat',
150
169
  'SingleStoreMediumInt',
170
+ 'MsSqlReal',
171
+ 'CockroachReal',
151
172
  ])) {
152
173
  min = unsigned ? 0 : CONSTANTS.INT24_MIN;
153
174
  max = unsigned ? CONSTANTS.INT24_UNSIGNED_MAX : CONSTANTS.INT24_MAX;
@@ -158,6 +179,8 @@ function numberColumnToSchema(column) {
158
179
  'PgSerial',
159
180
  'MySqlInt',
160
181
  'SingleStoreInt',
182
+ 'MsSqlInt',
183
+ 'CockroachInteger',
161
184
  ])) {
162
185
  min = unsigned ? 0 : CONSTANTS.INT32_MIN;
163
186
  max = unsigned ? CONSTANTS.INT32_UNSIGNED_MAX : CONSTANTS.INT32_MAX;
@@ -170,6 +193,8 @@ function numberColumnToSchema(column) {
170
193
  'SingleStoreReal',
171
194
  'SingleStoreDouble',
172
195
  'SQLiteReal',
196
+ 'MsSqlFloat',
197
+ 'CockroachFloat',
173
198
  ])) {
174
199
  min = unsigned ? 0 : CONSTANTS.INT48_MIN;
175
200
  max = unsigned ? CONSTANTS.INT48_UNSIGNED_MAX : CONSTANTS.INT48_MAX;
@@ -179,14 +204,18 @@ function numberColumnToSchema(column) {
179
204
  'PgBigSerial53',
180
205
  'MySqlBigInt53',
181
206
  'MySqlSerial',
207
+ 'MySqlDecimalNumber',
182
208
  'SingleStoreBigInt53',
183
209
  'SingleStoreSerial',
210
+ 'SingleStoreDecimalNumber',
184
211
  'SQLiteInteger',
185
- ])) {
212
+ 'CockroachBigInt53',
213
+ ])
214
+ || (isColumnType(column, ['MsSqlBigInt']) && column.mode === 'number')) {
186
215
  unsigned = unsigned || isColumnType(column, ['MySqlSerial', 'SingleStoreSerial']);
187
216
  min = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
188
217
  max = Number.MAX_SAFE_INTEGER;
189
- integer = true;
218
+ integer = !isColumnType(column, ['MySqlDecimalNumber', 'SingleStoreDecimalNumber']);
190
219
  }
191
220
  else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
192
221
  min = 1901;
@@ -203,20 +232,42 @@ function numberColumnToSchema(column) {
203
232
  }
204
233
  return v__namespace.pipe(v__namespace.number(), ...actions);
205
234
  }
235
+ /** @internal */
236
+ const bigintStringModeSchema = v__namespace.pipe(v__namespace.string(), v__namespace.regex(/^-?\d+$/), v__namespace.transform((v) => BigInt(v)), v__namespace.minValue(CONSTANTS.INT64_MIN), v__namespace.maxValue(CONSTANTS.INT64_MAX), v__namespace.transform((v) => v.toString()));
206
237
  function bigintColumnToSchema(column) {
238
+ if (isColumnType(column, ['MsSqlBigInt'])) {
239
+ if (column.mode === 'string') {
240
+ return bigintStringModeSchema;
241
+ }
242
+ else if (column.mode === 'number') {
243
+ return numberColumnToSchema(column);
244
+ }
245
+ }
207
246
  const unsigned = column.getSQLType().includes('unsigned');
208
247
  const min = unsigned ? 0n : CONSTANTS.INT64_MIN;
209
248
  const max = unsigned ? CONSTANTS.INT64_UNSIGNED_MAX : CONSTANTS.INT64_MAX;
210
249
  return v__namespace.pipe(v__namespace.bigint(), v__namespace.minValue(min), v__namespace.maxValue(max));
211
250
  }
212
251
  function stringColumnToSchema(column) {
213
- if (isColumnType(column, ['PgUUID'])) {
252
+ if (isColumnType(column, ['PgUUID', 'CockroachUUID'])) {
214
253
  return v__namespace.pipe(v__namespace.string(), v__namespace.uuid());
215
254
  }
216
255
  let max;
217
256
  let regex;
218
257
  let fixed = false;
219
- if (isColumnType(column, ['PgVarchar', 'SQLiteText'])) {
258
+ // Char columns are padded to a fixed length. The input can be equal or less than the set length
259
+ if (isColumnType(column, [
260
+ 'PgVarchar',
261
+ 'SQLiteText',
262
+ 'PgChar',
263
+ 'MySqlChar',
264
+ 'SingleStoreChar',
265
+ 'MsSqlChar',
266
+ 'MsSqlVarChar',
267
+ 'CockroachChar',
268
+ 'CockroachVarchar',
269
+ 'CockroachString',
270
+ ])) {
220
271
  max = column.length;
221
272
  }
222
273
  else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
@@ -236,15 +287,7 @@ function stringColumnToSchema(column) {
236
287
  max = CONSTANTS.INT8_UNSIGNED_MAX;
237
288
  }
238
289
  }
239
- if (isColumnType(column, [
240
- 'PgChar',
241
- 'MySqlChar',
242
- 'SingleStoreChar',
243
- ])) {
244
- max = column.length;
245
- fixed = true;
246
- }
247
- if (isColumnType(column, ['PgBinaryVector'])) {
290
+ if (isColumnType(column, ['PgBinaryVector', 'CockroachBinaryVector'])) {
248
291
  regex = /^[01]+$/;
249
292
  max = column.dimensions;
250
293
  }
@@ -311,7 +354,8 @@ const createSelectSchema = (entity, refine) => {
311
354
  const createInsertSchema = (entity, refine) => {
312
355
  const columns = getColumns(entity);
313
356
  return handleColumns(columns, refine ?? {}, {
314
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
357
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
358
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
315
359
  optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
316
360
  nullable: (column) => !column.notNull,
317
361
  });
@@ -319,7 +363,8 @@ const createInsertSchema = (entity, refine) => {
319
363
  const createUpdateSchema = (entity, refine) => {
320
364
  const columns = getColumns(entity);
321
365
  return handleColumns(columns, refine ?? {}, {
322
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
366
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
367
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
323
368
  optional: () => true,
324
369
  nullable: (column) => !column.notNull,
325
370
  });
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":["v","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,SAAS,GAAG;IACxB,QAAQ,EAAE,CAAC,GAAG;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,iBAAiB,EAAE,GAAG;IACtB,SAAS,EAAE,CAAC,KAAK;AACjB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,kBAAkB,EAAE,KAAK;IACzB,SAAS,EAAE,CAAC,OAAO;AACnB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,kBAAkB,EAAE,QAAQ;IAC5B,SAAS,EAAE,CAAC,UAAU;AACtB,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,kBAAkB,EAAE,UAAU;IAC9B,SAAS,EAAE,CAAC,eAAe;AAC3B,IAAA,SAAS,EAAE,eAAe;AAC1B,IAAA,kBAAkB,EAAE,eAAe;IACnC,SAAS,EAAE,CAAC,oBAAoB;AAChC,IAAA,SAAS,EAAE,oBAAoB;AAC/B,IAAA,kBAAkB,EAAE,qBAAqB;CACzC;;ACde,SAAA,YAAY,CAAmB,MAAc,EAAE,WAAqB,EAAA;IACnF,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAEK,SAAU,UAAU,CAAC,MAAc,EAAA;IACxC,OAAO,YAAY,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,CAAC;AAEM,MAAM,QAAQ,GAA6D;;AC+C3E,MAAM,aAAa,GAAGA,YAAC,CAAC,KAAK,CAAC,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,OAAO,EAAE,EAAEA,YAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AACzE,MAAA,UAAU,GAA0BA,YAAC,CAAC,KAAK,CAAC;IACxD,aAAa;AACb,IAAAA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,GAAG,EAAE,CAAC;AAChB,IAAAA,YAAC,CAAC,MAAM,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,GAAG,EAAE,CAAC;AAC7B,CAAA,EAAE;AACU,MAAA,YAAY,GAA4BA,YAAC,CAAC,MAAM,CAAS,CAAC,CAAC,KAAK,CAAC,YAAY,MAAM,EAAE;AAE5F,SAAU,aAAa,CAAC,MAAgB,EAAA;IAC7C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAEK,SAAU,cAAc,CAAC,MAAc,EAAA;AAC5C,IAAA,IAAI,MAAwB,CAAC;AAE7B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAGA,YAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAGA,YAAC,CAAC,MAAM,EAAE,CAAC;KAC1F;IAED,IAAI,CAAC,MAAM,EAAE;;QAEZ,IAAI,YAAY,CAAsC,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE;AAC9F,YAAA,MAAM,GAAGA,YAAC,CAAC,KAAK,CAAC,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC3C;aAAM,IACN,YAAY,CAA6C,MAAM,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,EACtG;YACD,MAAM,GAAGA,YAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACpD;aAAM,IAAI,YAAY,CAAoC,MAAM,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,EAAE;YACjG,MAAM,GAAGA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7B,MAAM,GAAG,MAAM,CAAC,UAAU,GAAGA,YAAC,CAAC,IAAI,CAAC,MAAiC,EAAEA,YAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC;SAC7G;aAAM,IAAI,YAAY,CAAmB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC9D,MAAM,GAAGA,YAAC,CAAC,KAAK,CAAC,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvD,YAAAA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC7B;aAAM,IAAI,YAAY,CAAiB,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE;AAC/D,YAAA,MAAM,GAAGA,YAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAEA,YAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpE,SAAC;aACI,IAAI,YAAY,CAAoB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;AAC9D,YAAA,MAAM,GAAGA,YAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,MAAM,GAAG,MAAM,CAAC,IAAI,GAAGA,YAAC,CAAC,IAAI,CAAC,MAAiC,EAAEA,YAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;SACjG;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;YACvC,MAAM,GAAGA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,GAAG,EAAE,CAAC,CAAC;SAC1B;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,GAAGA,YAAC,CAAC,OAAO,EAAE,CAAC;SACrB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;AACtC,YAAA,MAAM,GAAGA,YAAC,CAAC,IAAI,EAAE,CAAC;SAClB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;YACtC,MAAM,GAAG,UAAU,CAAC;SACpB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxC,YAAA,MAAM,GAAGA,YAAC,CAAC,GAAG,EAAE,CAAC;SACjB;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACxC,MAAM,GAAG,YAAY,CAAC;SACtB;KACD;IAED,IAAI,CAAC,MAAM,EAAE;AACZ,QAAA,MAAM,GAAGA,YAAC,CAAC,GAAG,EAAE,CAAC;KACjB;AAED,IAAA,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,IAAI,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACxD,IAAA,IAAI,GAAY,CAAC;AACjB,IAAA,IAAI,GAAY,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,YAAY,CAA8C,MAAM,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,EAAE;AAC9G,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;AACxC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAAuF,MAAM,EAAE;QAC1G,YAAY;QACZ,eAAe;QACf,eAAe;QACf,qBAAqB;AACrB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAEV,MAAM,EAAE;QACT,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,sBAAsB;AACtB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;KAC3E;SAAM,IACN,YAAY,CAAuE,MAAM,EAAE;QAC1F,WAAW;QACX,UAAU;QACV,UAAU;QACV,gBAAgB;AAChB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IACN,YAAY,CAOV,MAAM,EAAE;QACT,mBAAmB;QACnB,WAAW;QACX,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,YAAY;AACZ,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;AACzC,QAAA,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;KACpE;SAAM,IACN,YAAY,CASX,MAAM,EACN;QACC,YAAY;QACZ,eAAe;QACf,eAAe;QACf,aAAa;QACb,qBAAqB;QACrB,mBAAmB;QACnB,eAAe;AACf,KAAA,CACD,EACA;AACD,QAAA,QAAQ,GAAG,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAClF,QAAA,GAAG,GAAG,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC7C,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC9B,OAAO,GAAG,IAAI,CAAC;KACf;SAAM,IAAI,YAAY,CAAwC,MAAM,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE;QACzG,GAAG,GAAG,IAAI,CAAC;QACX,GAAG,GAAG,IAAI,CAAC;QACX,OAAO,GAAG,IAAI,CAAC;KACf;SAAM;AACN,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,QAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,MAAM,OAAO,GAAU,CAACA,YAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAEA,YAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,EAAE;QACZ,OAAO,CAAC,IAAI,CAACA,YAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1B;AACD,IAAA,OAAOA,YAAC,CAAC,IAAI,CAACA,YAAC,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1D,IAAA,MAAM,GAAG,GAAG,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;AAChD,IAAA,MAAM,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;IAE1E,OAAOA,YAAC,CAAC,IAAI,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAEA,YAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAA;IAC3C,IAAI,YAAY,CAA+C,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnF,QAAA,OAAOA,YAAC,CAAC,IAAI,CAACA,YAAC,CAAC,MAAM,EAAE,EAAEA,YAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACpC;AAED,IAAA,IAAI,GAAuB,CAAC;AAC5B,IAAA,IAAI,KAAyB,CAAC;IAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,IAAI,YAAY,CAAmC,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;AACxF,QAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;KACpB;SAAM,IACN,YAAY,CAA8C,MAAM,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,EACxG;QACD,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC;KACpD;SAAM,IAAI,YAAY,CAAwC,MAAM,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE;AACzG,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;AACnC,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC5C,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE;AACtC,YAAA,GAAG,GAAG,SAAS,CAAC,kBAAkB,CAAC;SACnC;aAAM;AACN,YAAA,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;SAClC;KACD;IAED,IACC,YAAY,CAAsD,MAAM,EAAE;QACzE,QAAQ;QACR,WAAW;QACX,iBAAiB;AACjB,KAAA,CAAC,EACD;AACD,QAAA,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACpB,KAAK,GAAG,IAAI,CAAC;KACb;IAED,IAAI,YAAY,CAAsB,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAClE,KAAK,GAAG,SAAS,CAAC;AAClB,QAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;KACxB;IAED,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,IAAI,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAACA,YAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7B;AACD,IAAA,IAAI,GAAG,IAAI,KAAK,EAAE;QACjB,OAAO,CAAC,IAAI,CAACA,YAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5B;SAAM,IAAI,GAAG,EAAE;QACf,OAAO,CAAC,IAAI,CAACA,YAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B;IACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAGA,YAAC,CAAC,IAAI,CAACA,YAAC,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,GAAGA,YAAC,CAAC,MAAM,EAAE,CAAC;AACzE;;AC9RA,SAAS,UAAU,CAAC,SAAuB,EAAA;AAC1C,IAAA,OAAOC,kBAAO,CAAC,SAAS,CAAC,GAAGC,0BAAe,CAAC,SAAS,CAAC,GAAGC,gCAAqB,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CACrB,OAA4B,EAC5B,WAAgC,EAChC,UAAsB,EAAA;IAEtB,MAAM,aAAa,GAAoC,EAAE,CAAC;AAE1D,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtD,QAAA,IAAI,CAACC,aAAE,CAAC,QAAQ,EAAEC,iBAAM,CAAC,IAAI,CAACD,aAAE,CAAC,QAAQ,EAAEE,cAAG,CAAC,IAAI,CAACF,aAAE,CAAC,QAAQ,EAAEE,cAAG,CAAC,OAAO,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9G,MAAM,OAAO,GAAGL,kBAAO,CAAC,QAAQ,CAAC,IAAIM,iBAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACxF,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YAChF,SAAS;SACT;AAED,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AACjE,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAChC,SAAS;SACT;AAED,QAAA,MAAM,MAAM,GAAGH,aAAE,CAAC,QAAQ,EAAEC,iBAAM,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3D,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAGL,YAAC,CAAC,GAAG,EAAE,CAAC;AACzD,QAAA,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE/E,QAAA,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,SAAS;SACT;aAAM;AACN,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC7B;QAED,IAAI,MAAM,EAAE;AACX,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAGA,YAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAE,CAAC,CAAC;aACrD;AAED,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAGA,YAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAE,CAAC,CAAC;aACrD;SACD;KACD;AAED,IAAA,OAAOA,YAAC,CAAC,MAAM,CAAC,aAAa,CAAQ,CAAC;AACvC,CAAC;MAEY,kBAAkB,GAAuB,CACrD,MAAoD,EACpD,MAA4B,KACzB;AACH,IAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACrB,OAAOA,YAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;KAChD;AACD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;AAC3C,QAAA,KAAK,EAAE,MAAM,KAAK;AAClB,QAAA,QAAQ,EAAE,MAAM,KAAK;QACrB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,EAAE;MAEW,kBAAkB,GAAuB,CACrD,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACvG,QAAA,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;QAC9E,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX,EAAE;MAEW,kBAAkB,GAAuB,CACrD,MAAa,EACb,MAA4B,KACzB;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,IAAA,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,IAAI,KAAK,QAAQ;AACvG,QAAA,QAAQ,EAAE,MAAM,IAAI;QACpB,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO;AACrC,KAAA,CAAQ,CAAC;AACX;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":["v","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView"],"mappings":"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"}
package/index.mjs CHANGED
@@ -47,13 +47,26 @@ function columnToSchema(column) {
47
47
  }
48
48
  if (!schema) {
49
49
  // Handle specific types
50
- if (isColumnType(column, ['PgGeometry', 'PgPointTuple'])) {
50
+ if (isColumnType(column, [
51
+ 'PgGeometry',
52
+ 'PgPointTuple',
53
+ 'CockroachGeometry',
54
+ ])) {
51
55
  schema = v.tuple([v.number(), v.number()]);
52
56
  }
53
- else if (isColumnType(column, ['PgGeometryObject', 'PgPointObject'])) {
57
+ else if (isColumnType(column, [
58
+ 'PgGeometryObject',
59
+ 'PgPointObject',
60
+ 'CockroachGeometryObject',
61
+ ])) {
54
62
  schema = v.object({ x: v.number(), y: v.number() });
55
63
  }
56
- else if (isColumnType(column, ['PgHalfVector', 'PgVector'])) {
64
+ else if (isColumnType(column, [
65
+ 'PgHalfVector',
66
+ 'PgVector',
67
+ 'SingleStoreVector',
68
+ 'CockroachVector',
69
+ ])) {
57
70
  schema = v.array(v.number());
58
71
  schema = column.dimensions ? v.pipe(schema, v.length(column.dimensions)) : schema;
59
72
  }
@@ -64,7 +77,7 @@ function columnToSchema(column) {
64
77
  else if (isColumnType(column, ['PgLineABC'])) {
65
78
  schema = v.object({ a: v.number(), b: v.number(), c: v.number() });
66
79
  } // Handle other types
67
- else if (isColumnType(column, ['PgArray'])) {
80
+ else if (isColumnType(column, ['PgArray', 'CockroachArray'])) {
68
81
  schema = v.array(columnToSchema(column.baseColumn));
69
82
  schema = column.size ? v.pipe(schema, v.length(column.size)) : schema;
70
83
  }
@@ -102,11 +115,15 @@ function columnToSchema(column) {
102
115
  return schema;
103
116
  }
104
117
  function numberColumnToSchema(column) {
105
- let unsigned = column.getSQLType().includes('unsigned');
118
+ let unsigned = column.getSQLType().includes('unsigned') || isColumnType(column, ['MsSqlTinyInt']);
106
119
  let min;
107
120
  let max;
108
121
  let integer = false;
109
- if (isColumnType(column, ['MySqlTinyInt', 'SingleStoreTinyInt'])) {
122
+ if (isColumnType(column, [
123
+ 'MySqlTinyInt',
124
+ 'SingleStoreTinyInt',
125
+ 'MsSqlTinyInt',
126
+ ])) {
110
127
  min = unsigned ? 0 : CONSTANTS.INT8_MIN;
111
128
  max = unsigned ? CONSTANTS.INT8_UNSIGNED_MAX : CONSTANTS.INT8_MAX;
112
129
  integer = true;
@@ -116,6 +133,8 @@ function numberColumnToSchema(column) {
116
133
  'PgSmallSerial',
117
134
  'MySqlSmallInt',
118
135
  'SingleStoreSmallInt',
136
+ 'MsSqlSmallInt',
137
+ 'CockroachSmallInt',
119
138
  ])) {
120
139
  min = unsigned ? 0 : CONSTANTS.INT16_MIN;
121
140
  max = unsigned ? CONSTANTS.INT16_UNSIGNED_MAX : CONSTANTS.INT16_MAX;
@@ -127,6 +146,8 @@ function numberColumnToSchema(column) {
127
146
  'MySqlMediumInt',
128
147
  'SingleStoreFloat',
129
148
  'SingleStoreMediumInt',
149
+ 'MsSqlReal',
150
+ 'CockroachReal',
130
151
  ])) {
131
152
  min = unsigned ? 0 : CONSTANTS.INT24_MIN;
132
153
  max = unsigned ? CONSTANTS.INT24_UNSIGNED_MAX : CONSTANTS.INT24_MAX;
@@ -137,6 +158,8 @@ function numberColumnToSchema(column) {
137
158
  'PgSerial',
138
159
  'MySqlInt',
139
160
  'SingleStoreInt',
161
+ 'MsSqlInt',
162
+ 'CockroachInteger',
140
163
  ])) {
141
164
  min = unsigned ? 0 : CONSTANTS.INT32_MIN;
142
165
  max = unsigned ? CONSTANTS.INT32_UNSIGNED_MAX : CONSTANTS.INT32_MAX;
@@ -149,6 +172,8 @@ function numberColumnToSchema(column) {
149
172
  'SingleStoreReal',
150
173
  'SingleStoreDouble',
151
174
  'SQLiteReal',
175
+ 'MsSqlFloat',
176
+ 'CockroachFloat',
152
177
  ])) {
153
178
  min = unsigned ? 0 : CONSTANTS.INT48_MIN;
154
179
  max = unsigned ? CONSTANTS.INT48_UNSIGNED_MAX : CONSTANTS.INT48_MAX;
@@ -158,14 +183,18 @@ function numberColumnToSchema(column) {
158
183
  'PgBigSerial53',
159
184
  'MySqlBigInt53',
160
185
  'MySqlSerial',
186
+ 'MySqlDecimalNumber',
161
187
  'SingleStoreBigInt53',
162
188
  'SingleStoreSerial',
189
+ 'SingleStoreDecimalNumber',
163
190
  'SQLiteInteger',
164
- ])) {
191
+ 'CockroachBigInt53',
192
+ ])
193
+ || (isColumnType(column, ['MsSqlBigInt']) && column.mode === 'number')) {
165
194
  unsigned = unsigned || isColumnType(column, ['MySqlSerial', 'SingleStoreSerial']);
166
195
  min = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
167
196
  max = Number.MAX_SAFE_INTEGER;
168
- integer = true;
197
+ integer = !isColumnType(column, ['MySqlDecimalNumber', 'SingleStoreDecimalNumber']);
169
198
  }
170
199
  else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
171
200
  min = 1901;
@@ -182,20 +211,42 @@ function numberColumnToSchema(column) {
182
211
  }
183
212
  return v.pipe(v.number(), ...actions);
184
213
  }
214
+ /** @internal */
215
+ const bigintStringModeSchema = v.pipe(v.string(), v.regex(/^-?\d+$/), v.transform((v) => BigInt(v)), v.minValue(CONSTANTS.INT64_MIN), v.maxValue(CONSTANTS.INT64_MAX), v.transform((v) => v.toString()));
185
216
  function bigintColumnToSchema(column) {
217
+ if (isColumnType(column, ['MsSqlBigInt'])) {
218
+ if (column.mode === 'string') {
219
+ return bigintStringModeSchema;
220
+ }
221
+ else if (column.mode === 'number') {
222
+ return numberColumnToSchema(column);
223
+ }
224
+ }
186
225
  const unsigned = column.getSQLType().includes('unsigned');
187
226
  const min = unsigned ? 0n : CONSTANTS.INT64_MIN;
188
227
  const max = unsigned ? CONSTANTS.INT64_UNSIGNED_MAX : CONSTANTS.INT64_MAX;
189
228
  return v.pipe(v.bigint(), v.minValue(min), v.maxValue(max));
190
229
  }
191
230
  function stringColumnToSchema(column) {
192
- if (isColumnType(column, ['PgUUID'])) {
231
+ if (isColumnType(column, ['PgUUID', 'CockroachUUID'])) {
193
232
  return v.pipe(v.string(), v.uuid());
194
233
  }
195
234
  let max;
196
235
  let regex;
197
236
  let fixed = false;
198
- if (isColumnType(column, ['PgVarchar', 'SQLiteText'])) {
237
+ // Char columns are padded to a fixed length. The input can be equal or less than the set length
238
+ if (isColumnType(column, [
239
+ 'PgVarchar',
240
+ 'SQLiteText',
241
+ 'PgChar',
242
+ 'MySqlChar',
243
+ 'SingleStoreChar',
244
+ 'MsSqlChar',
245
+ 'MsSqlVarChar',
246
+ 'CockroachChar',
247
+ 'CockroachVarchar',
248
+ 'CockroachString',
249
+ ])) {
199
250
  max = column.length;
200
251
  }
201
252
  else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
@@ -215,15 +266,7 @@ function stringColumnToSchema(column) {
215
266
  max = CONSTANTS.INT8_UNSIGNED_MAX;
216
267
  }
217
268
  }
218
- if (isColumnType(column, [
219
- 'PgChar',
220
- 'MySqlChar',
221
- 'SingleStoreChar',
222
- ])) {
223
- max = column.length;
224
- fixed = true;
225
- }
226
- if (isColumnType(column, ['PgBinaryVector'])) {
269
+ if (isColumnType(column, ['PgBinaryVector', 'CockroachBinaryVector'])) {
227
270
  regex = /^[01]+$/;
228
271
  max = column.dimensions;
229
272
  }
@@ -290,7 +333,8 @@ const createSelectSchema = (entity, refine) => {
290
333
  const createInsertSchema = (entity, refine) => {
291
334
  const columns = getColumns(entity);
292
335
  return handleColumns(columns, refine ?? {}, {
293
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
336
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
337
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
294
338
  optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
295
339
  nullable: (column) => !column.notNull,
296
340
  });
@@ -298,7 +342,8 @@ const createInsertSchema = (entity, refine) => {
298
342
  const createUpdateSchema = (entity, refine) => {
299
343
  const columns = getColumns(entity);
300
344
  return handleColumns(columns, refine ?? {}, {
301
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
345
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
346
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
302
347
  optional: () => true,
303
348
  nullable: (column) => !column.notNull,
304
349
  });
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-valibot",
3
- "version": "0.4.1",
3
+ "version": "0.4.2-08bb2d5",
4
4
  "description": "Generate valibot schemas from Drizzle ORM schemas",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -63,12 +63,12 @@
63
63
  "@types/node": "^18.15.10",
64
64
  "cpy": "^10.1.0",
65
65
  "drizzle-orm": "link:../drizzle-orm/dist",
66
- "json-rules-engine": "^7.3.0",
66
+ "json-rules-engine": "^7.3.1",
67
67
  "rimraf": "^5.0.0",
68
- "rollup": "^3.20.7",
68
+ "rollup": "^3.29.5",
69
69
  "valibot": "1.0.0-beta.7",
70
70
  "vite-tsconfig-paths": "^4.3.2",
71
- "vitest": "^1.6.0",
71
+ "vitest": "^3.1.3",
72
72
  "zx": "^7.2.2"
73
73
  }
74
74
  }
@@ -1,4 +1,5 @@
1
1
  import type { Table, View } from 'drizzle-orm';
2
+ import type { CockroachEnum } from 'drizzle-orm/cockroach-core';
2
3
  import type { PgEnum } from 'drizzle-orm/pg-core';
3
4
  import type * as v from 'valibot';
4
5
  import type { EnumValuesToEnum } from "./column.types.cjs";
@@ -8,7 +9,7 @@ export interface CreateSelectSchema {
8
9
  <TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, TTable['$inferSelect']>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
9
10
  <TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
10
11
  <TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
11
- <TEnum extends PgEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
+ <TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
13
  }
13
14
  export interface CreateInsertSchema {
14
15
  <TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
@@ -1,4 +1,5 @@
1
1
  import type { Table, View } from 'drizzle-orm';
2
+ import type { CockroachEnum } from 'drizzle-orm/cockroach-core';
2
3
  import type { PgEnum } from 'drizzle-orm/pg-core';
3
4
  import type * as v from 'valibot';
4
5
  import type { EnumValuesToEnum } from "./column.types.mjs";
@@ -8,7 +9,7 @@ export interface CreateSelectSchema {
8
9
  <TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, TTable['$inferSelect']>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
9
10
  <TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
10
11
  <TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
11
- <TEnum extends PgEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
+ <TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
13
  }
13
14
  export interface CreateInsertSchema {
14
15
  <TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
package/schema.types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Table, View } from 'drizzle-orm';
2
+ import type { CockroachEnum } from 'drizzle-orm/cockroach-core';
2
3
  import type { PgEnum } from 'drizzle-orm/pg-core';
3
4
  import type * as v from 'valibot';
4
5
  import type { EnumValuesToEnum } from './column.types.js';
@@ -8,7 +9,7 @@ export interface CreateSelectSchema {
8
9
  <TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, TTable['$inferSelect']>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
9
10
  <TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
10
11
  <TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
11
- <TEnum extends PgEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
+ <TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): v.EnumSchema<EnumValuesToEnum<TEnum['enumValues']>, undefined>;
12
13
  }
13
14
  export interface CreateInsertSchema {
14
15
  <TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
@@ -1,23 +1,21 @@
1
1
  import type { Assume, Column, DrizzleTypeError, SelectedFieldsFlat, Simplify, Table, View } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ExtractAdditionalProperties, GetBaseColumn, GetEnumValuesFromColumn, GetValibotType, HandleColumn } from "./column.types.cjs";
4
- import type { GetSelection, RemoveNever } from "./utils.cjs";
3
+ import type { ExtractAdditionalProperties, GetValibotType, HandleColumn, HasBaseColumn } from "./column.types.cjs";
4
+ import type { ColumnIsGeneratedAlwaysAs, GetSelection } from "./utils.cjs";
5
5
  export interface Conditions {
6
6
  never: (column?: Column) => boolean;
7
7
  optional: (column: Column) => boolean;
8
8
  nullable: (column: Column) => boolean;
9
9
  }
10
- export type BuildRefineColumns<TColumns extends Record<string, any>> = Simplify<RemoveNever<{
11
- [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema : v.AnySchema : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildRefineColumns<GetSelection<TObject>> : TColumns[K];
12
- }>>;
13
- export type BuildRefine<TColumns extends Record<string, any>> = BuildRefineColumns<TColumns> extends infer TBuildColumns ? {
14
- [K in keyof TBuildColumns]?: TBuildColumns[K] extends v.GenericSchema ? ((schema: TBuildColumns[K]) => v.GenericSchema) | v.GenericSchema : TBuildColumns[K] extends Record<string, any> ? Simplify<BuildRefine<TBuildColumns[K]>> : never;
15
- } : never;
16
- type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement extends v.GenericSchema | ((schema: v.GenericSchema) => v.GenericSchema), TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
17
- type IsRefinementDefined<TRefinements, TKey extends string> = TKey extends keyof TRefinements ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
18
- export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<RemoveNever<{
19
- readonly [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? TRefinements extends object ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? HandleRefinement<TType, TRefinements[Assume<K, keyof TRefinements>], TColumn> : HandleColumn<TType, TColumn> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[Assume<K, keyof TRefinements>] extends infer TNestedRefinements extends object ? TNestedRefinements : undefined : undefined> : v.AnySchema;
20
- }>>, undefined>;
10
+ type BuildRefineField<T> = T extends v.GenericSchema ? ((schema: T) => v.GenericSchema) | v.GenericSchema : never;
11
+ export type BuildRefine<TColumns extends Record<string, any>> = {
12
+ [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetValibotType<TColumns[K]['_']['data'], TColumns[K]['_']['dataType'], TColumns[K]['_']['columnType'], TColumns[K]['_']['enumValues'], HasBaseColumn<TColumns[K]> extends true ? Assume<TColumns[K]['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumns[K]>>> : BuildRefine<GetSelection<TColumns[K]>>;
13
+ };
14
+ type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
15
+ type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
16
+ export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<{
17
+ readonly [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, v.GenericSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : v.AnySchema;
18
+ }>, undefined>;
21
19
  export type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = {
22
20
  [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends Record<string, v.GenericSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`>;
23
21
  };
@@ -1,23 +1,21 @@
1
1
  import type { Assume, Column, DrizzleTypeError, SelectedFieldsFlat, Simplify, Table, View } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ExtractAdditionalProperties, GetBaseColumn, GetEnumValuesFromColumn, GetValibotType, HandleColumn } from "./column.types.mjs";
4
- import type { GetSelection, RemoveNever } from "./utils.mjs";
3
+ import type { ExtractAdditionalProperties, GetValibotType, HandleColumn, HasBaseColumn } from "./column.types.mjs";
4
+ import type { ColumnIsGeneratedAlwaysAs, GetSelection } from "./utils.mjs";
5
5
  export interface Conditions {
6
6
  never: (column?: Column) => boolean;
7
7
  optional: (column: Column) => boolean;
8
8
  nullable: (column: Column) => boolean;
9
9
  }
10
- export type BuildRefineColumns<TColumns extends Record<string, any>> = Simplify<RemoveNever<{
11
- [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema : v.AnySchema : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildRefineColumns<GetSelection<TObject>> : TColumns[K];
12
- }>>;
13
- export type BuildRefine<TColumns extends Record<string, any>> = BuildRefineColumns<TColumns> extends infer TBuildColumns ? {
14
- [K in keyof TBuildColumns]?: TBuildColumns[K] extends v.GenericSchema ? ((schema: TBuildColumns[K]) => v.GenericSchema) | v.GenericSchema : TBuildColumns[K] extends Record<string, any> ? Simplify<BuildRefine<TBuildColumns[K]>> : never;
15
- } : never;
16
- type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement extends v.GenericSchema | ((schema: v.GenericSchema) => v.GenericSchema), TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
17
- type IsRefinementDefined<TRefinements, TKey extends string> = TKey extends keyof TRefinements ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
18
- export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<RemoveNever<{
19
- readonly [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? TRefinements extends object ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? HandleRefinement<TType, TRefinements[Assume<K, keyof TRefinements>], TColumn> : HandleColumn<TType, TColumn> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[Assume<K, keyof TRefinements>] extends infer TNestedRefinements extends object ? TNestedRefinements : undefined : undefined> : v.AnySchema;
20
- }>>, undefined>;
10
+ type BuildRefineField<T> = T extends v.GenericSchema ? ((schema: T) => v.GenericSchema) | v.GenericSchema : never;
11
+ export type BuildRefine<TColumns extends Record<string, any>> = {
12
+ [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetValibotType<TColumns[K]['_']['data'], TColumns[K]['_']['dataType'], TColumns[K]['_']['columnType'], TColumns[K]['_']['enumValues'], HasBaseColumn<TColumns[K]> extends true ? Assume<TColumns[K]['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumns[K]>>> : BuildRefine<GetSelection<TColumns[K]>>;
13
+ };
14
+ type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
15
+ type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
16
+ export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<{
17
+ readonly [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, v.GenericSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : v.AnySchema;
18
+ }>, undefined>;
21
19
  export type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = {
22
20
  [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends Record<string, v.GenericSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`>;
23
21
  };
@@ -1,23 +1,21 @@
1
1
  import type { Assume, Column, DrizzleTypeError, SelectedFieldsFlat, Simplify, Table, View } from 'drizzle-orm';
2
2
  import type * as v from 'valibot';
3
- import type { ExtractAdditionalProperties, GetBaseColumn, GetEnumValuesFromColumn, GetValibotType, HandleColumn } from './column.types.js';
4
- import type { GetSelection, RemoveNever } from './utils.js';
3
+ import type { ExtractAdditionalProperties, GetValibotType, HandleColumn, HasBaseColumn } from './column.types.js';
4
+ import type { ColumnIsGeneratedAlwaysAs, GetSelection } from './utils.js';
5
5
  export interface Conditions {
6
6
  never: (column?: Column) => boolean;
7
7
  optional: (column: Column) => boolean;
8
8
  nullable: (column: Column) => boolean;
9
9
  }
10
- export type BuildRefineColumns<TColumns extends Record<string, any>> = Simplify<RemoveNever<{
11
- [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? GetValibotType<TColumn['_']['data'], TColumn['_']['dataType'], TColumn['_']['columnType'], GetEnumValuesFromColumn<TColumn>, GetBaseColumn<TColumn>, ExtractAdditionalProperties<TColumn>> extends infer TSchema extends v.GenericSchema ? TSchema : v.AnySchema : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildRefineColumns<GetSelection<TObject>> : TColumns[K];
12
- }>>;
13
- export type BuildRefine<TColumns extends Record<string, any>> = BuildRefineColumns<TColumns> extends infer TBuildColumns ? {
14
- [K in keyof TBuildColumns]?: TBuildColumns[K] extends v.GenericSchema ? ((schema: TBuildColumns[K]) => v.GenericSchema) | v.GenericSchema : TBuildColumns[K] extends Record<string, any> ? Simplify<BuildRefine<TBuildColumns[K]>> : never;
15
- } : never;
16
- type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement extends v.GenericSchema | ((schema: v.GenericSchema) => v.GenericSchema), TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
17
- type IsRefinementDefined<TRefinements, TKey extends string> = TKey extends keyof TRefinements ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
18
- export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<RemoveNever<{
19
- readonly [K in keyof TColumns]: TColumns[K] extends infer TColumn extends Column ? TRefinements extends object ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? HandleRefinement<TType, TRefinements[Assume<K, keyof TRefinements>], TColumn> : HandleColumn<TType, TColumn> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[Assume<K, keyof TRefinements>] extends infer TNestedRefinements extends object ? TNestedRefinements : undefined : undefined> : v.AnySchema;
20
- }>>, undefined>;
10
+ type BuildRefineField<T> = T extends v.GenericSchema ? ((schema: T) => v.GenericSchema) | v.GenericSchema : never;
11
+ export type BuildRefine<TColumns extends Record<string, any>> = {
12
+ [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetValibotType<TColumns[K]['_']['data'], TColumns[K]['_']['dataType'], TColumns[K]['_']['columnType'], TColumns[K]['_']['enumValues'], HasBaseColumn<TColumns[K]> extends true ? Assume<TColumns[K]['_']['baseColumn'], Column> : undefined, ExtractAdditionalProperties<TColumns[K]>>> : BuildRefine<GetSelection<TColumns[K]>>;
13
+ };
14
+ type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn extends Column> = TRefinement extends (schema: any) => v.GenericSchema ? (TColumn['_']['notNull'] extends true ? ReturnType<TRefinement> : v.NullableSchema<ReturnType<TRefinement>, undefined>) extends infer TSchema ? TType extends 'update' ? v.OptionalSchema<Assume<TSchema, v.GenericSchema>, undefined> : TSchema : v.AnySchema : TRefinement;
15
+ type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends v.GenericSchema | ((schema: any) => any) ? true : false : false;
16
+ export type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = v.ObjectSchema<Simplify<{
17
+ readonly [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, Assume<K, string>> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, v.GenericSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : v.AnySchema;
18
+ }>, undefined>;
21
19
  export type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = {
22
20
  [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends Record<string, v.GenericSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`>;
23
21
  };
package/utils.d.cts CHANGED
@@ -12,10 +12,10 @@ export type Json = Literal | {
12
12
  [key: string]: any;
13
13
  } | any[];
14
14
  export type IsNever<T> = [T] extends [never] ? true : false;
15
- export type ArrayHasAtLeastOneValue<TEnum extends [any, ...any[]] | undefined> = TEnum extends [infer TString, ...any[]] ? TString extends `${infer TLiteral}` ? TLiteral extends any ? true : false : false : false;
16
- export type ColumnIsGeneratedAlwaysAs<TColumn extends Column> = TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends undefined ? false : TColumn['_']['generated'] extends infer TGenerated extends {
17
- type: string;
18
- } ? TGenerated['type'] extends 'byDefault' ? false : true : true;
15
+ export type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
16
+ export type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column ? TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends {
17
+ type: 'byDefault';
18
+ } | undefined ? false : true : false;
19
19
  export type RemoveNever<T> = {
20
20
  [K in keyof T as T[K] extends never ? never : K]: T[K];
21
21
  };
package/utils.d.mts CHANGED
@@ -12,10 +12,10 @@ export type Json = Literal | {
12
12
  [key: string]: any;
13
13
  } | any[];
14
14
  export type IsNever<T> = [T] extends [never] ? true : false;
15
- export type ArrayHasAtLeastOneValue<TEnum extends [any, ...any[]] | undefined> = TEnum extends [infer TString, ...any[]] ? TString extends `${infer TLiteral}` ? TLiteral extends any ? true : false : false : false;
16
- export type ColumnIsGeneratedAlwaysAs<TColumn extends Column> = TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends undefined ? false : TColumn['_']['generated'] extends infer TGenerated extends {
17
- type: string;
18
- } ? TGenerated['type'] extends 'byDefault' ? false : true : true;
15
+ export type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
16
+ export type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column ? TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends {
17
+ type: 'byDefault';
18
+ } | undefined ? false : true : false;
19
19
  export type RemoveNever<T> = {
20
20
  [K in keyof T as T[K] extends never ? never : K]: T[K];
21
21
  };
package/utils.d.ts CHANGED
@@ -12,10 +12,10 @@ export type Json = Literal | {
12
12
  [key: string]: any;
13
13
  } | any[];
14
14
  export type IsNever<T> = [T] extends [never] ? true : false;
15
- export type ArrayHasAtLeastOneValue<TEnum extends [any, ...any[]] | undefined> = TEnum extends [infer TString, ...any[]] ? TString extends `${infer TLiteral}` ? TLiteral extends any ? true : false : false : false;
16
- export type ColumnIsGeneratedAlwaysAs<TColumn extends Column> = TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends undefined ? false : TColumn['_']['generated'] extends infer TGenerated extends {
17
- type: string;
18
- } ? TGenerated['type'] extends 'byDefault' ? false : true : true;
15
+ export type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
16
+ export type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column ? TColumn['_']['identity'] extends 'always' ? true : TColumn['_']['generated'] extends {
17
+ type: 'byDefault';
18
+ } | undefined ? false : true : false;
19
19
  export type RemoveNever<T> = {
20
20
  [K in keyof T as T[K] extends never ? never : K]: T[K];
21
21
  };