pqb 0.40.0 → 0.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PoolConfig, Pool, PoolClient } from 'pg';
2
2
  import * as orchid_core from 'orchid-core';
3
- import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, TemplateLiteralArgs, QueryColumn, MaybePromise, FnUnknownToUnknown, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ParseColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, ColumnTypeBase, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
3
+ import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, TemplateLiteralArgs, QueryColumn, MaybePromise, FnUnknownToUnknown, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ParseColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, ColumnTypeBase, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
4
4
  import { inspect } from 'node:util';
5
5
  import { AsyncLocalStorage } from 'node:async_hooks';
6
6
 
@@ -2684,7 +2684,7 @@ declare class ArrayColumn<Schema extends ColumnTypeSchemaArg, Item extends Array
2684
2684
  constructor(schema: Schema, item: Item, inputType: InputType, outputType?: OutputType, queryType?: QueryType);
2685
2685
  toSQL(): string;
2686
2686
  toCode(this: ArrayColumn<ColumnSchemaConfig, ArrayColumnValue, unknown, unknown, unknown>, ctx: ColumnToCodeCtx, key: string): Code;
2687
- parseFn: ((source: string) => unknown[]) & {
2687
+ parseFn: ((source: string | null) => string | unknown[] | null) & {
2688
2688
  hideFromCode: boolean;
2689
2689
  };
2690
2690
  }
@@ -3043,11 +3043,13 @@ declare class CircleColumn<Schema extends ColumnSchemaConfig> extends ColumnType
3043
3043
  constructor(schema: Schema);
3044
3044
  toCode(ctx: ColumnToCodeCtx, key: string): Code;
3045
3045
  }
3046
- declare class MoneyColumn<Schema extends ColumnSchemaConfig> extends NumberBaseColumn<Schema, ReturnType<Schema['stringSchema']>> {
3046
+ declare class MoneyColumn<Schema extends ColumnSchemaConfig> extends ColumnType<Schema, string, ReturnType<Schema['number']>, OperatorsNumber, string | number, number, ReturnType<Schema['number']>, string | number> {
3047
3047
  dataType: "money";
3048
+ data: NumberColumnData;
3049
+ operators: OperatorsNumber;
3048
3050
  constructor(schema: Schema);
3049
3051
  toCode(ctx: ColumnToCodeCtx, key: string): Code;
3050
- parseFn: ((input: unknown) => number) & {
3052
+ parseFn: ((input: unknown) => number | null) & {
3051
3053
  hideFromCode: boolean;
3052
3054
  };
3053
3055
  }
@@ -3626,9 +3628,9 @@ type QueryReturnsAgg<T, C, Op> = SetQueryReturnsColumnOrThrow<T, QueryColumn<C,
3626
3628
  type CountReturn<T> = QueryReturnsAgg<T, number, OperatorsNumber> & {
3627
3629
  isCount: true;
3628
3630
  };
3629
- type NumberColumnSelectable<T extends PickQueryMeta> = {
3630
- [K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['type'] extends number | null ? K : T['meta']['selectable'][K]['column'] extends NumberAsStringBaseColumn<ColumnSchemaConfig> ? K : never;
3631
- }[keyof T['meta']['selectable']] | Expression<QueryColumn<number | null>>;
3631
+ type SelectableDataType<T extends PickQueryMeta, DataType extends string> = {
3632
+ [K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['dataType'] extends DataType ? K : never;
3633
+ }[keyof T['meta']['selectable']] | Expression<QueryColumnOfDataType<DataType>>;
3632
3634
  type NumberNullable = QueryColumn<number | null, OperatorsNumber>;
3633
3635
  type NumericReturn<T extends PickQueryMeta, Arg> = Arg extends keyof T['meta']['selectable'] ? SetQueryReturnsColumnOrThrow<T, QueryColumn<T['meta']['selectable'][Arg]['column']['type'] | null, OperatorsNumber>> & OperatorsNumber : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, QueryColumn<Arg['result']['value']['type'] | null, OperatorsNumber>> & OperatorsNumber : never;
3634
3636
  type NullableNumberReturn<T> = SetQueryReturnsColumnOrThrow<T, NumberNullable> & OperatorsNumber;
@@ -3661,6 +3663,15 @@ type NullableJSONObjectReturn<T extends PickQueryMeta, Obj extends RecordSelecta
3661
3663
  type StringColumn = QueryColumn<string, OperatorsText>;
3662
3664
  type StringNullable = QueryColumn<string | null, OperatorsText>;
3663
3665
  type NullableStringReturn<T> = SetQueryReturnsColumnOrThrow<T, StringNullable> & OperatorsText;
3666
+ interface AggregateArgTypes {
3667
+ minMax: 'citext' | 'date' | 'float4' | 'float8' | 'inet' | 'int2' | 'int4' | 'int8' | 'interval' | 'money' | 'numeric' | 'text' | 'time' | 'timestamp' | 'timestamptz';
3668
+ sum: 'float4' | 'float8' | 'int2' | 'int4' | 'int8' | 'interval' | 'money' | 'numeric';
3669
+ avg: // unlike sum, avg has no money
3670
+ 'float4' | 'float8' | 'int2' | 'int4' | 'int8' | 'interval' | 'numeric';
3671
+ bit: 'bit' | 'int2' | 'int4' | 'int8';
3672
+ bool: 'bool';
3673
+ stringAgg: 'bytea' | 'text';
3674
+ }
3664
3675
  declare class AggregateMethods {
3665
3676
  /**
3666
3677
  * Use `exists()` to check if there is at least one record-matching condition.
@@ -3718,7 +3729,7 @@ declare class AggregateMethods {
3718
3729
  * @param arg - numeric column or raw SQL
3719
3730
  * @param options - aggregation options
3720
3731
  */
3721
- min<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3732
+ min<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['minMax']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3722
3733
  /**
3723
3734
  * Gets the maximum value for the specified numeric column, returns number or `null` if there are no records.
3724
3735
  *
@@ -3740,7 +3751,7 @@ declare class AggregateMethods {
3740
3751
  * @param arg - numeric column or raw SQL
3741
3752
  * @param options - aggregation options
3742
3753
  */
3743
- max<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3754
+ max<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['minMax']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3744
3755
  /**
3745
3756
  * Retrieve the sum of the values of a given numeric column, returns number or `null` if there are no records.
3746
3757
  *
@@ -3761,7 +3772,7 @@ declare class AggregateMethods {
3761
3772
  * @param arg - numeric column or raw SQL
3762
3773
  * @param options - aggregation options
3763
3774
  */
3764
- sum<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3775
+ sum<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['sum']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3765
3776
  /**
3766
3777
  * Retrieve the average value of a numeric column, it returns a number or `null` if there are no records.
3767
3778
  *
@@ -3779,7 +3790,7 @@ declare class AggregateMethods {
3779
3790
  * @param arg - numeric column or raw SQL
3780
3791
  * @param options - aggregation options
3781
3792
  */
3782
- avg<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3793
+ avg<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['avg']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3783
3794
  /**
3784
3795
  * Bitwise `and` aggregation, returns `number` or `null` if there are no records.
3785
3796
  *
@@ -3800,7 +3811,7 @@ declare class AggregateMethods {
3800
3811
  * @param arg - numeric column or raw SQL
3801
3812
  * @param options - aggregation options
3802
3813
  */
3803
- bitAnd<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3814
+ bitAnd<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['bit']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3804
3815
  /**
3805
3816
  * Bitwise `or` aggregation, returns `number` or `null` if there are no records.
3806
3817
  *
@@ -3818,7 +3829,7 @@ declare class AggregateMethods {
3818
3829
  * @param arg - numeric column or raw SQL
3819
3830
  * @param options - aggregation options
3820
3831
  */
3821
- bitOr<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3832
+ bitOr<T extends PickQueryMetaResultRelationsWindows, Arg extends SelectableDataType<T, AggregateArgTypes['bit']>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3822
3833
  /**
3823
3834
  * Aggregate booleans with `and` logic, it returns `boolean` or `null` if there are no records.
3824
3835
  *
@@ -3839,7 +3850,7 @@ declare class AggregateMethods {
3839
3850
  * @param arg - boolean column or raw SQL
3840
3851
  * @param options - aggregation options
3841
3852
  */
3842
- boolAnd<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, BooleanQueryColumn>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3853
+ boolAnd<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableDataType<T, AggregateArgTypes['bool']>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3843
3854
  /**
3844
3855
  * Aggregate booleans with `or` logic, it returns `boolean` or `null` if there are no records.
3845
3856
  *
@@ -3860,11 +3871,11 @@ declare class AggregateMethods {
3860
3871
  * @param arg - boolean column or raw SQL
3861
3872
  * @param options - aggregation options
3862
3873
  */
3863
- boolOr<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, BooleanQueryColumn>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3874
+ boolOr<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableDataType<T, AggregateArgTypes['bool']>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3864
3875
  /**
3865
3876
  * Equivalent to {@link boolAnd}
3866
3877
  */
3867
- every<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, BooleanQueryColumn>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3878
+ every<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableDataType<T, AggregateArgTypes['bool']>, options?: AggregateOptions<T>): NullableBooleanReturn<T>;
3868
3879
  /**
3869
3880
  * Aggregate values into an array by using `json_agg`. Returns array of values or `null` if there are no records.
3870
3881
  *
@@ -3953,7 +3964,7 @@ declare class AggregateMethods {
3953
3964
  * @param delimiter - string to join with
3954
3965
  * @param options - aggration options
3955
3966
  */
3956
- stringAgg<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, StringColumn>, delimiter: string, options?: AggregateOptions<T>): NullableStringReturn<T>;
3967
+ stringAgg<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableDataType<T, AggregateArgTypes['stringAgg']>, delimiter: string, options?: AggregateOptions<T>): NullableStringReturn<T>;
3957
3968
  /**
3958
3969
  * Concatenates `xml` columns, returns a `string` or `null` if no records.
3959
3970
  *
@@ -8311,4 +8322,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8311
8322
  */
8312
8323
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8313
8324
 
8314
- export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, CreateSelf, CustomTypeColumn, DateBaseColumn, DateColumn, DateColumnInput, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbDomainArg, DbDomainArgRecord, DbExtension, DbOptions, DbResult, DbSharedOptions, DbTableConstructor, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultSchemaConfig, Delete, DeleteArgs, DeleteMethodsNames, DeleteQueryData, DeleteResult, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, FromArg, FromMethods, FromQuerySelf, FromResult, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, OnConflictMerge, OnConflictQueryBuilder, OnConflictSet, OnConflictTarget, OnMethods, Operator, Operators, OperatorsAny, OperatorsArray, OperatorsBoolean, OperatorsDate, OperatorsJson, OperatorsNumber, OperatorsText, OperatorsTime, OrCreateArg, OrExpression, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryColumnTypes, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryMetaWithDataColumnTypes, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryResultColumnTypes, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, PickQueryWithDataColumnTypes, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, QueryWithTable, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, RuntimeComputedQueryColumn, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectAsValue, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SelectableOrExpressions, SerialColumn, SerialColumnData, SetQueryKind, SetQueryKindResult, SetQueryReturnsAll, SetQueryReturnsAllKind, SetQueryReturnsAllKindResult, SetQueryReturnsColumnInfo, SetQueryReturnsColumnKind, SetQueryReturnsColumnKindResult, SetQueryReturnsColumnOptional, SetQueryReturnsColumnOrThrow, SetQueryReturnsOne, SetQueryReturnsOneKind, SetQueryReturnsOneKindResult, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsPluckColumnKind, SetQueryReturnsPluckColumnKindResult, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValueOptional, SetQueryReturnsValueOrThrow, SetQueryReturnsVoid, SetQueryReturnsVoidKind, SetQueryTableAlias, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, SqlMethod, StringColumn$1 as StringColumn, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, ToSQLQuery, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArgs, UnionItem, UnionKind, UnionSet, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithArgsOptions, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, quote, quoteString, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
8325
+ export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateArgTypes, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, CreateSelf, CustomTypeColumn, DateBaseColumn, DateColumn, DateColumnInput, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbDomainArg, DbDomainArgRecord, DbExtension, DbOptions, DbResult, DbSharedOptions, DbTableConstructor, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultSchemaConfig, Delete, DeleteArgs, DeleteMethodsNames, DeleteQueryData, DeleteResult, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, FromArg, FromMethods, FromQuerySelf, FromResult, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, OnConflictMerge, OnConflictQueryBuilder, OnConflictSet, OnConflictTarget, OnMethods, Operator, Operators, OperatorsAny, OperatorsArray, OperatorsBoolean, OperatorsDate, OperatorsJson, OperatorsNumber, OperatorsText, OperatorsTime, OrCreateArg, OrExpression, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryColumnTypes, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryMetaWithDataColumnTypes, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryResultColumnTypes, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, PickQueryWithDataColumnTypes, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, QueryWithTable, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, RuntimeComputedQueryColumn, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectAsValue, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SelectableOrExpressions, SerialColumn, SerialColumnData, SetQueryKind, SetQueryKindResult, SetQueryReturnsAll, SetQueryReturnsAllKind, SetQueryReturnsAllKindResult, SetQueryReturnsColumnInfo, SetQueryReturnsColumnKind, SetQueryReturnsColumnKindResult, SetQueryReturnsColumnOptional, SetQueryReturnsColumnOrThrow, SetQueryReturnsOne, SetQueryReturnsOneKind, SetQueryReturnsOneKindResult, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsPluckColumnKind, SetQueryReturnsPluckColumnKindResult, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValueOptional, SetQueryReturnsValueOrThrow, SetQueryReturnsVoid, SetQueryReturnsVoidKind, SetQueryTableAlias, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, SqlMethod, StringColumn$1 as StringColumn, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, ToSQLQuery, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArgs, UnionItem, UnionKind, UnionSet, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithArgsOptions, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, quote, quoteString, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
package/dist/index.js CHANGED
@@ -1079,193 +1079,6 @@ const Operators = {
1079
1079
  array: base
1080
1080
  };
1081
1081
 
1082
- class NumberBaseColumn extends ColumnType {
1083
- constructor() {
1084
- super(...arguments);
1085
- this.operators = Operators.number;
1086
- }
1087
- }
1088
- class IntegerBaseColumn extends NumberBaseColumn {
1089
- constructor(schema) {
1090
- super(schema, schema.int());
1091
- this.data.int = true;
1092
- }
1093
- }
1094
- class NumberAsStringBaseColumn extends ColumnType {
1095
- constructor(schema) {
1096
- super(schema, schema.stringSchema());
1097
- this.operators = Operators.number;
1098
- }
1099
- }
1100
- class DecimalColumn extends NumberAsStringBaseColumn {
1101
- constructor(schema, numericPrecision, numericScale) {
1102
- super(schema);
1103
- this.operators = Operators.number;
1104
- this.dataType = "numeric";
1105
- this.data.numericPrecision = numericPrecision;
1106
- this.data.numericScale = numericScale;
1107
- this.data.alias = "decimal";
1108
- }
1109
- toCode(ctx, key) {
1110
- const { numericPrecision, numericScale } = this.data;
1111
- return columnCode(
1112
- this,
1113
- ctx,
1114
- key,
1115
- `decimal(${numericPrecision || ""}${numericScale ? `, ${numericScale}` : ""})`
1116
- );
1117
- }
1118
- toSQL() {
1119
- const { numericPrecision, numericScale } = this.data;
1120
- return orchidCore.joinTruthy(
1121
- this.dataType,
1122
- numericPrecision ? numericScale ? `(${numericPrecision}, ${numericScale})` : `(${numericPrecision})` : void 0
1123
- );
1124
- }
1125
- }
1126
- const skipNumberMethods = { int: true };
1127
- const intToCode = (column, ctx, key, alias) => {
1128
- let code;
1129
- if (column.data.identity) {
1130
- code = identityToCode(column.data.identity, alias);
1131
- } else {
1132
- code = [`${alias}()`];
1133
- }
1134
- orchidCore.addCode(
1135
- code,
1136
- orchidCore.numberDataToCode(column.data, ctx.migration, skipNumberMethods)
1137
- );
1138
- return columnCode(column, ctx, key, code);
1139
- };
1140
- class SmallIntColumn extends IntegerBaseColumn {
1141
- constructor(schema) {
1142
- super(schema);
1143
- this.dataType = "int2";
1144
- this.parseItem = parseInt;
1145
- this.data.alias = "smallint";
1146
- }
1147
- toCode(ctx, key) {
1148
- return intToCode(this, ctx, key, "smallint");
1149
- }
1150
- identity(options = {}) {
1151
- return orchidCore.setColumnData(this, "identity", options);
1152
- }
1153
- }
1154
- class IntegerColumn extends IntegerBaseColumn {
1155
- constructor(schema) {
1156
- super(schema);
1157
- this.dataType = "int4";
1158
- this.parseItem = parseInt;
1159
- this.data.alias = "integer";
1160
- }
1161
- toCode(ctx, key) {
1162
- return intToCode(this, ctx, key, "integer");
1163
- }
1164
- identity(options = {}) {
1165
- return orchidCore.setColumnData(this, "identity", options);
1166
- }
1167
- }
1168
- class BigIntColumn extends NumberAsStringBaseColumn {
1169
- constructor(schema) {
1170
- super(schema);
1171
- this.dataType = "int8";
1172
- this.data.alias = "bigint";
1173
- }
1174
- toCode(ctx, key) {
1175
- return intToCode(this, ctx, key, "bigint");
1176
- }
1177
- identity(options = {}) {
1178
- return orchidCore.setColumnData(this, "identity", options);
1179
- }
1180
- }
1181
- class RealColumn extends NumberBaseColumn {
1182
- constructor(schema) {
1183
- super(schema, schema.number());
1184
- this.dataType = "float4";
1185
- this.parseItem = parseFloat;
1186
- this.data.alias = "real";
1187
- }
1188
- toCode(ctx, key) {
1189
- return columnCode(
1190
- this,
1191
- ctx,
1192
- key,
1193
- `real()${orchidCore.numberDataToCode(this.data, ctx.migration)}`
1194
- );
1195
- }
1196
- }
1197
- class DoublePrecisionColumn extends NumberAsStringBaseColumn {
1198
- constructor(schema) {
1199
- super(schema);
1200
- this.dataType = "float8";
1201
- this.data.alias = "doublePrecision";
1202
- }
1203
- toCode(ctx, key) {
1204
- return columnCode(this, ctx, key, `doublePrecision()`);
1205
- }
1206
- }
1207
- class SmallSerialColumn extends IntegerBaseColumn {
1208
- constructor(schema) {
1209
- super(schema);
1210
- this.dataType = "int2";
1211
- this.parseItem = parseInt;
1212
- this.data.int = true;
1213
- this.data.alias = "smallSerial";
1214
- }
1215
- toSQL() {
1216
- return "smallserial";
1217
- }
1218
- toCode(ctx, key) {
1219
- return columnCode(
1220
- this,
1221
- ctx,
1222
- key,
1223
- `smallSerial()${orchidCore.numberDataToCode(
1224
- this.data,
1225
- ctx.migration,
1226
- skipNumberMethods
1227
- )}`
1228
- );
1229
- }
1230
- }
1231
- class SerialColumn extends IntegerBaseColumn {
1232
- constructor(schema) {
1233
- super(schema);
1234
- this.dataType = "int4";
1235
- this.parseItem = parseInt;
1236
- this.data.int = true;
1237
- this.data.alias = "serial";
1238
- }
1239
- toSQL() {
1240
- return "serial";
1241
- }
1242
- toCode(ctx, key) {
1243
- return columnCode(
1244
- this,
1245
- ctx,
1246
- key,
1247
- `serial()${orchidCore.numberDataToCode(
1248
- this.data,
1249
- ctx.migration,
1250
- skipNumberMethods
1251
- )}`
1252
- );
1253
- }
1254
- }
1255
- class BigSerialColumn extends NumberAsStringBaseColumn {
1256
- constructor(schema) {
1257
- super(schema);
1258
- this.dataType = "int8";
1259
- this.data.alias = "bigint";
1260
- }
1261
- toSQL() {
1262
- return "bigserial";
1263
- }
1264
- toCode(ctx, key) {
1265
- return columnCode(this, ctx, key, `bigSerial()`);
1266
- }
1267
- }
1268
-
1269
1082
  var __defProp$j = Object.defineProperty;
1270
1083
  var __defProps$a = Object.defineProperties;
1271
1084
  var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
@@ -1449,13 +1262,14 @@ class CircleColumn extends ColumnType {
1449
1262
  return columnCode(this, ctx, key, `circle()`);
1450
1263
  }
1451
1264
  }
1452
- class MoneyColumn extends NumberBaseColumn {
1265
+ class MoneyColumn extends ColumnType {
1453
1266
  constructor(schema) {
1454
1267
  super(schema, schema.stringSchema());
1455
1268
  this.dataType = "money";
1269
+ this.operators = Operators.number;
1456
1270
  this.parseFn = Object.assign(
1457
1271
  function(input) {
1458
- return parseFloat(input.replace(/,/g, "").replace(/\$/g, ""));
1272
+ return input === null ? input : parseFloat(input.replace(/,/g, "").replace(/\$/g, ""));
1459
1273
  },
1460
1274
  {
1461
1275
  hideFromCode: true
@@ -3021,6 +2835,8 @@ class ArrayColumn extends ColumnType {
3021
2835
  this.operators = Operators.array;
3022
2836
  this.parseFn = Object.assign(
3023
2837
  (source) => {
2838
+ if (!source)
2839
+ return source;
3024
2840
  const entries = [];
3025
2841
  parsePostgresArray(source, entries, this.data.item.parseItem);
3026
2842
  return entries;
@@ -3109,6 +2925,193 @@ const parsePostgresArray = (source, entries, transform) => {
3109
2925
  return pos;
3110
2926
  };
3111
2927
 
2928
+ class NumberBaseColumn extends ColumnType {
2929
+ constructor() {
2930
+ super(...arguments);
2931
+ this.operators = Operators.number;
2932
+ }
2933
+ }
2934
+ class IntegerBaseColumn extends NumberBaseColumn {
2935
+ constructor(schema) {
2936
+ super(schema, schema.int());
2937
+ this.data.int = true;
2938
+ }
2939
+ }
2940
+ class NumberAsStringBaseColumn extends ColumnType {
2941
+ constructor(schema) {
2942
+ super(schema, schema.stringSchema());
2943
+ this.operators = Operators.number;
2944
+ }
2945
+ }
2946
+ class DecimalColumn extends NumberAsStringBaseColumn {
2947
+ constructor(schema, numericPrecision, numericScale) {
2948
+ super(schema);
2949
+ this.operators = Operators.number;
2950
+ this.dataType = "numeric";
2951
+ this.data.numericPrecision = numericPrecision;
2952
+ this.data.numericScale = numericScale;
2953
+ this.data.alias = "decimal";
2954
+ }
2955
+ toCode(ctx, key) {
2956
+ const { numericPrecision, numericScale } = this.data;
2957
+ return columnCode(
2958
+ this,
2959
+ ctx,
2960
+ key,
2961
+ `decimal(${numericPrecision || ""}${numericScale ? `, ${numericScale}` : ""})`
2962
+ );
2963
+ }
2964
+ toSQL() {
2965
+ const { numericPrecision, numericScale } = this.data;
2966
+ return orchidCore.joinTruthy(
2967
+ this.dataType,
2968
+ numericPrecision ? numericScale ? `(${numericPrecision}, ${numericScale})` : `(${numericPrecision})` : void 0
2969
+ );
2970
+ }
2971
+ }
2972
+ const skipNumberMethods = { int: true };
2973
+ const intToCode = (column, ctx, key, alias) => {
2974
+ let code;
2975
+ if (column.data.identity) {
2976
+ code = identityToCode(column.data.identity, alias);
2977
+ } else {
2978
+ code = [`${alias}()`];
2979
+ }
2980
+ orchidCore.addCode(
2981
+ code,
2982
+ orchidCore.numberDataToCode(column.data, ctx.migration, skipNumberMethods)
2983
+ );
2984
+ return columnCode(column, ctx, key, code);
2985
+ };
2986
+ class SmallIntColumn extends IntegerBaseColumn {
2987
+ constructor(schema) {
2988
+ super(schema);
2989
+ this.dataType = "int2";
2990
+ this.parseItem = parseInt;
2991
+ this.data.alias = "smallint";
2992
+ }
2993
+ toCode(ctx, key) {
2994
+ return intToCode(this, ctx, key, "smallint");
2995
+ }
2996
+ identity(options = {}) {
2997
+ return orchidCore.setColumnData(this, "identity", options);
2998
+ }
2999
+ }
3000
+ class IntegerColumn extends IntegerBaseColumn {
3001
+ constructor(schema) {
3002
+ super(schema);
3003
+ this.dataType = "int4";
3004
+ this.parseItem = parseInt;
3005
+ this.data.alias = "integer";
3006
+ }
3007
+ toCode(ctx, key) {
3008
+ return intToCode(this, ctx, key, "integer");
3009
+ }
3010
+ identity(options = {}) {
3011
+ return orchidCore.setColumnData(this, "identity", options);
3012
+ }
3013
+ }
3014
+ class BigIntColumn extends NumberAsStringBaseColumn {
3015
+ constructor(schema) {
3016
+ super(schema);
3017
+ this.dataType = "int8";
3018
+ this.data.alias = "bigint";
3019
+ }
3020
+ toCode(ctx, key) {
3021
+ return intToCode(this, ctx, key, "bigint");
3022
+ }
3023
+ identity(options = {}) {
3024
+ return orchidCore.setColumnData(this, "identity", options);
3025
+ }
3026
+ }
3027
+ class RealColumn extends NumberBaseColumn {
3028
+ constructor(schema) {
3029
+ super(schema, schema.number());
3030
+ this.dataType = "float4";
3031
+ this.parseItem = parseFloat;
3032
+ this.data.alias = "real";
3033
+ }
3034
+ toCode(ctx, key) {
3035
+ return columnCode(
3036
+ this,
3037
+ ctx,
3038
+ key,
3039
+ `real()${orchidCore.numberDataToCode(this.data, ctx.migration)}`
3040
+ );
3041
+ }
3042
+ }
3043
+ class DoublePrecisionColumn extends NumberAsStringBaseColumn {
3044
+ constructor(schema) {
3045
+ super(schema);
3046
+ this.dataType = "float8";
3047
+ this.data.alias = "doublePrecision";
3048
+ }
3049
+ toCode(ctx, key) {
3050
+ return columnCode(this, ctx, key, `doublePrecision()`);
3051
+ }
3052
+ }
3053
+ class SmallSerialColumn extends IntegerBaseColumn {
3054
+ constructor(schema) {
3055
+ super(schema);
3056
+ this.dataType = "int2";
3057
+ this.parseItem = parseInt;
3058
+ this.data.int = true;
3059
+ this.data.alias = "smallSerial";
3060
+ }
3061
+ toSQL() {
3062
+ return "smallserial";
3063
+ }
3064
+ toCode(ctx, key) {
3065
+ return columnCode(
3066
+ this,
3067
+ ctx,
3068
+ key,
3069
+ `smallSerial()${orchidCore.numberDataToCode(
3070
+ this.data,
3071
+ ctx.migration,
3072
+ skipNumberMethods
3073
+ )}`
3074
+ );
3075
+ }
3076
+ }
3077
+ class SerialColumn extends IntegerBaseColumn {
3078
+ constructor(schema) {
3079
+ super(schema);
3080
+ this.dataType = "int4";
3081
+ this.parseItem = parseInt;
3082
+ this.data.int = true;
3083
+ this.data.alias = "serial";
3084
+ }
3085
+ toSQL() {
3086
+ return "serial";
3087
+ }
3088
+ toCode(ctx, key) {
3089
+ return columnCode(
3090
+ this,
3091
+ ctx,
3092
+ key,
3093
+ `serial()${orchidCore.numberDataToCode(
3094
+ this.data,
3095
+ ctx.migration,
3096
+ skipNumberMethods
3097
+ )}`
3098
+ );
3099
+ }
3100
+ }
3101
+ class BigSerialColumn extends NumberAsStringBaseColumn {
3102
+ constructor(schema) {
3103
+ super(schema);
3104
+ this.dataType = "int8";
3105
+ this.data.alias = "bigint";
3106
+ }
3107
+ toSQL() {
3108
+ return "bigserial";
3109
+ }
3110
+ toCode(ctx, key) {
3111
+ return columnCode(this, ctx, key, `bigSerial()`);
3112
+ }
3113
+ }
3114
+
3112
3115
  const parseDateToNumber = (value) => value ? Date.parse(value) : value;
3113
3116
  const parseDateToDate = (value) => value ? new Date(value) : value;
3114
3117
  parseDateToNumber.hideFromCode = parseDateToDate.hideFromCode = true;