pqb 0.63.0 → 0.64.0

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 +1 @@
1
- export { AdapterBase, AdapterConfigBase, AfterCommitStandaloneHook, AfterHook, ArrayColumn, ArrayColumnValue, ArrayData, AsyncState, BaseNumberData, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Code, Codes, Column, ColumnFromDbParams, ColumnSchemaConfig, ColumnSchemaGetterColumns, ColumnSchemaGetterTableClass, ColumnToCodeCtx, ColumnTypeSchemaArg, ColumnsByType, ColumnsShape, ComputedColumnsFromOptions, ComputedOptionsConfig, ComputedOptionsFactory, CreateCtx, CreateData, CreateManyMethodsNames, CreateMethodsNames, CreateSelf, CustomTypeColumn, DateColumn, DateColumnData, DbDomainArg, DbExtension, DbOptions, DbResult, DbSharedOptions, DbSqlMethod, DbStructureDomainsMap, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultPrivileges, DefaultSchemaConfig, DeleteMethodsNames, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EmptyObject, EmptyTuple, EnumColumn, Expression, FromArg, FromResult, GeneratorIgnore, HookSelectValue, InetColumn, IntegerColumn, IntervalColumn, IsQuery, IsolationLevel, JSONColumn, JSONTextColumn, JoinQueryMethod, JoinedShapes, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MaybeArray, MaybePromise, MergeQuery, MoneyColumn, NoPrimaryKeyOption, NonUniqDataItem, NumberColumnData, Operators, OperatorsArray, OperatorsJson, OperatorsOrdinalText, Ord, PathColumn, PickQueryInputType, PickQueryInternal, PickQueryQ, PickQueryRelations, PickQuerySelectableRelations, PickQueryShape, PointColumn, PolygonColumn, PostgisGeographyPointColumn, Query, QueryAfterHook, QueryArraysResult, QueryBeforeActionHook, QueryBeforeHook, QueryData, QueryHasWhere, QueryHookUtils, QueryHooks, QueryInternal, QueryLogObject, QueryLogOptions, QueryLogger, QueryManyTake, QueryManyTakeOptional, QueryOrExpression, QueryResult, QueryResultRow, QueryReturnType, QueryScopes, RawSql, RawSqlBase, RealColumn, RecordKeyTrue, RecordOptionalString, RecordString, RecordStringOrNumber, RecordUnknown, RelationConfigBase, RelationJoinQuery, RelationsBase, SearchWeight, SelectableFromShape, SerialColumn, SerialColumnData, ShallowSimplify, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SingleSql, SingleSqlItem, SmallIntColumn, SmallSerialColumn, Sql, SqlFn, SqlSessionState, StorageOptions, StringColumn, StringData, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TemplateLiteralArgs, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, Timestamps, TransactionAdapterBase, TransactionArgs, TransactionOptions, TsQueryColumn, TsVectorColumn, UUIDColumn, UniqueConstraints, UniqueTableDataItem, UnknownColumn, UpdateData, UpsertData, UpsertThis, VarCharColumn, VirtualColumn, WhereArg, XMLColumn, _appendQuery, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _orCreate, _prependWith, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, consumeColumnName, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnTypes, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, referencesArgsToCode, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setConnectRetryConfig, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, snakeCaseKey, tableDataMethods, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry } from './index';
1
+ export { AdapterBase, AdapterConfigBase, AfterCommitStandaloneHook, AfterHook, ArrayColumn, ArrayColumnValue, ArrayData, AsyncState, BaseNumberData, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Code, Codes, Column, ColumnFromDbParams, ColumnSchemaConfig, ColumnSchemaGetterColumns, ColumnSchemaGetterTableClass, ColumnToCodeCtx, ColumnTypeSchemaArg, ColumnsByType, ColumnsShape, ComputedColumnsFromOptions, ComputedOptionsConfig, ComputedOptionsFactory, CreateCtx, CreateData, CreateManyMethodsNames, CreateMethodsNames, CreateSelf, CustomTypeColumn, DateColumn, DateColumnData, DbDomainArg, DbExtension, DbOptions, DbResult, DbSharedOptions, DbSqlMethod, DbStructureDomainsMap, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultPrivileges, DefaultSchemaConfig, DeleteMethodsNames, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EmptyObject, EmptyTuple, EnumColumn, Expression, FromArg, FromResult, GeneratorIgnore, HookSelectValue, InetColumn, IntegerColumn, IntervalColumn, IsQuery, IsolationLevel, JSONColumn, JSONTextColumn, JoinQueryMethod, JoinedShapes, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MaybeArray, MaybePromise, MergeQuery, MoneyColumn, NoPrimaryKeyOption, NonUniqDataItem, NumberColumnData, Operators, OperatorsArray, OperatorsJson, OperatorsOrdinalText, Ord, PathColumn, PickQueryInputType, PickQueryInternal, PickQueryQ, PickQueryRelations, PickQuerySelectableRelations, PickQueryShape, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryAfterHook, QueryArraysResult, QueryBeforeActionHook, QueryBeforeHook, QueryData, QueryHasWhere, QueryHookUtils, QueryHooks, QueryInternal, QueryLogObject, QueryLogOptions, QueryLogger, QueryManyTake, QueryManyTakeOptional, QueryOrExpression, QueryResult, QueryResultRow, QueryReturnType, QueryScopes, RawSql, RawSqlBase, RealColumn, RecordKeyTrue, RecordOptionalString, RecordString, RecordStringOrNumber, RecordUnknown, RelationConfigBase, RelationJoinQuery, RelationsBase, SearchWeight, SelectableFromShape, SerialColumn, SerialColumnData, ShallowSimplify, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SingleSql, SingleSqlItem, SmallIntColumn, SmallSerialColumn, Sql, SqlFn, SqlSessionState, StorageOptions, StringColumn, StringData, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TemplateLiteralArgs, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, Timestamps, TransactionAdapterBase, TransactionArgs, TransactionOptions, TsQueryColumn, TsVectorColumn, UUIDColumn, UniqueConstraints, UniqueTableDataItem, UnknownColumn, UpdateData, UpsertData, UpsertThis, VarCharColumn, VirtualColumn, WhereArg, XMLColumn, _appendQuery, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _orCreate, _prependWith, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, consumeColumnName, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnTypes, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, referencesArgsToCode, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setConnectRetryConfig, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, snakeCaseKey, tableDataMethods, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry } from './index';
@@ -2054,18 +2054,21 @@ interface QueryDataSources {
2054
2054
  [K: string]: QuerySourceItem;
2055
2055
  }
2056
2056
 
2057
- interface OrderArgSelf extends PickQuerySelectable, PickQueryResult, PickQueryTsQuery {
2057
+ declare namespace Order {
2058
+ export interface ArgThis extends PickQuerySelectable, PickQueryResult, PickQueryTsQuery {
2059
+ }
2060
+ export type Arg<T extends ArgThis> = ArgKey<T> | ArgTsQuery<T> | {
2061
+ [K in ArgKey<T> | ArgTsQuery<T>]?: K extends ArgTsQuery<T> ? OrderTsQueryConfig : SortDir;
2062
+ } | Expression;
2063
+ export type Args<T extends ArgThis> = Arg<T>[];
2064
+ type ArgTsQuery<T extends ArgThis> = string | undefined extends T['__tsQuery'] ? never : Exclude<T['__tsQuery'], undefined>;
2065
+ type ArgKey<T extends ArgThis> = {
2066
+ [K in keyof T['__selectable']]: T['__selectable'][K]['column']['queryType'] extends undefined ? never : K;
2067
+ }[keyof T['__selectable']] | {
2068
+ [K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' | 'runtimeComputed' ? never : K;
2069
+ }[keyof T['result']];
2070
+ export {};
2058
2071
  }
2059
- type OrderArg<T extends OrderArgSelf> = OrderArgKey<T> | OrderArgTsQuery<T> | {
2060
- [K in OrderArgKey<T> | OrderArgTsQuery<T>]?: K extends OrderArgTsQuery<T> ? OrderTsQueryConfig : SortDir;
2061
- } | Expression;
2062
- type OrderArgs<T extends OrderArgSelf> = OrderArg<T>[];
2063
- type OrderArgTsQuery<T extends OrderArgSelf> = string | undefined extends T['__tsQuery'] ? never : Exclude<T['__tsQuery'], undefined>;
2064
- type OrderArgKey<T extends OrderArgSelf> = {
2065
- [K in keyof T['__selectable']]: T['__selectable'][K]['column']['queryType'] extends undefined ? never : K;
2066
- }[keyof T['__selectable']] | {
2067
- [K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' | 'runtimeComputed' ? never : K;
2068
- }[keyof T['result']];
2069
2072
  declare class QueryOrder {
2070
2073
  /**
2071
2074
  * Adds an order by clause to the query.
@@ -2102,7 +2105,7 @@ declare class QueryOrder {
2102
2105
  *
2103
2106
  * @param args - column name(s) or an object with column names and sort directions.
2104
2107
  */
2105
- order<T extends OrderArgSelf>(this: T, ...args: OrderArgs<T>): T;
2108
+ order<T extends Order.ArgThis>(this: T, ...args: Order.Args<T>): T;
2106
2109
  /**
2107
2110
  * Order by SQL expression
2108
2111
  *
@@ -2117,12 +2120,12 @@ declare class QueryOrder {
2117
2120
  orderSql<T>(this: T, ...args: SQLQueryArgs): T;
2118
2121
  }
2119
2122
 
2120
- interface WindowArg<T extends OrderArgSelf> {
2123
+ interface WindowArg<T extends Order.ArgThis> {
2121
2124
  [K: string]: WindowArgDeclaration<T> | Expression;
2122
2125
  }
2123
- interface WindowArgDeclaration<T extends OrderArgSelf = OrderArgSelf> {
2126
+ interface WindowArgDeclaration<T extends Order.ArgThis = Order.ArgThis> {
2124
2127
  partitionBy?: SelectableOrExpression<T> | SelectableOrExpressions<T>;
2125
- order?: OrderArg<T>;
2128
+ order?: Order.Arg<T>;
2126
2129
  }
2127
2130
  type WindowResult<T, W extends RecordUnknown> = T & {
2128
2131
  windows: {
@@ -2156,12 +2159,12 @@ declare class QueryWindow {
2156
2159
  *
2157
2160
  * @param arg - window config
2158
2161
  */
2159
- window<T extends OrderArgSelf, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
2162
+ window<T extends Order.ArgThis, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
2160
2163
  }
2161
2164
 
2162
2165
  interface AggregateOptions<T extends PickQuerySelectableResultRelationsWindows> {
2163
2166
  distinct?: boolean;
2164
- order?: OrderArg<T> | OrderArgs<T>;
2167
+ order?: Order.Arg<T> | Order.Args<T>;
2165
2168
  filter?: WhereArg<T>;
2166
2169
  filterOr?: WhereArgs<T>;
2167
2170
  withinGroup?: boolean;
@@ -4592,22 +4595,27 @@ type CreateRelationsDataOmittingFKeys<T extends CreateSelf, Union> = (Union exte
4592
4595
  } & Partial<Union['nested']> : {
4593
4596
  [P in Union['columns'] & keyof T['inputType']]: CreateColumn<T, P>;
4594
4597
  } | Union['nested']) => void : never) extends (u: infer Obj) => void ? Obj : never;
4595
- type CreateResult<T extends CreateSelf> = T extends {
4598
+ type CreateResult<T extends CreateSelf, Data> = T extends {
4596
4599
  isCount: true;
4597
- } ? T : T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>>;
4598
- type InsertResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>> : SetQueryReturnsRowCount<T>;
4600
+ } ? T : T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T, Data>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T, Data>> : SetQueryResult<T, NarrowCreateResult<T, Data>>;
4601
+ type InsertResult<T extends CreateSelf, Data> = T['__hasSelect'] extends true ? T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T, Data>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T, Data>> : SetQueryResult<T, NarrowCreateResult<T, Data>> : SetQueryReturnsRowCount<T>;
4599
4602
  type CreateManyResult<T extends CreateSelf> = T extends {
4600
4603
  isCount: true;
4601
- } ? SetQueryResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>>;
4602
- type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>> : SetQueryReturnsRowCountMany<T>;
4604
+ } ? T : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAll<T> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetValueQueryReturnsPluckColumn<T> : T;
4605
+ type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAll<T> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetValueQueryReturnsPluckColumn<T> : T : SetQueryReturnsRowCountMany<T>;
4603
4606
  /**
4604
4607
  * When creating a record with a *belongs to* nested record,
4605
4608
  * un-nullify foreign key columns of the result.
4606
4609
  *
4607
4610
  * The same should work as well with any non-null columns passed to `create`, but it's to be implemented later.
4608
4611
  */
4609
- type NarrowCreateResult<T extends CreateSelf> = EmptyObject extends T['relations'] ? T['result'] : {
4610
- [K in keyof T['result']]: K extends T['relations'][keyof T['relations']]['omitForeignKeyInCreate'] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['type'], null>, T['result'][K]['operators']> : T['result'][K];
4612
+ type NarrowCreateResult<T extends CreateSelf, Data> = EmptyObject extends T['relations'] ? T['result'] : {
4613
+ [K in keyof T['result']]: true extends {
4614
+ [R in keyof T['relations']]: K extends T['relations'][R]['omitForeignKeyInCreate'] ? T['relations'][R]['dataForCreate'] extends {
4615
+ columns: unknown;
4616
+ nested: unknown;
4617
+ } ? keyof T['relations'][R]['dataForCreate']['nested'] extends keyof Data ? true : T['relations'][R]['dataForCreate']['columns'] extends keyof Data ? null | undefined extends Data[T['relations'][R]['dataForCreate']['columns']] ? never : true : never : never : never;
4618
+ }[keyof T['relations']] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['outputType'], null>, T['result'][K]['operators']> : T['result'][K];
4611
4619
  };
4612
4620
  type IgnoreResult<T extends CreateSelf> = T['returnType'] extends 'oneOrThrow' ? QueryTakeOptional<T> : T['returnType'] extends 'valueOrThrow' ? SetQueryReturnsColumnOptional<T, T['result']['value']> : T;
4613
4621
  type OnConflictArg<T extends PickQueryUniqueProperties> = T['internal']['uniqueColumnNames'] | T['internal']['uniqueColumnTuples'] | Expression | {
@@ -4618,6 +4626,7 @@ type AddQueryDefaults<T extends CreateSelf, DefaultKeys extends PropertyKey> = {
4618
4626
  [K in keyof T['__defaults'] | DefaultKeys]: true;
4619
4627
  } : T[K];
4620
4628
  };
4629
+ type ExtraPropertiesAreNotAllowed<T extends CreateSelf, Data> = keyof Data extends keyof T['inputType'] | keyof T['relations'] ? Data : `Extra properties are not allowed: ${Exclude<keyof Data, keyof T['inputType'] | keyof T['relations']> & string}`;
4621
4630
  declare class QueryCreate {
4622
4631
  /**
4623
4632
  * `create` and `insert` create a single record.
@@ -4668,16 +4677,12 @@ declare class QueryCreate {
4668
4677
  * )
4669
4678
  * .from('b');
4670
4679
  * ```
4671
- *
4672
- * @param data - data for the record, may have values, raw SQL, queries, relation operations.
4673
4680
  */
4674
- create<T extends CreateSelf>(this: T, data: CreateData<T>): CreateResult<T>;
4681
+ create<T extends CreateSelf, Data extends CreateData<T>>(this: T, data: ExtraPropertiesAreNotAllowed<T, Data>): CreateResult<T, Data>;
4675
4682
  /**
4676
4683
  * Works exactly as {@link create}, except that it returns inserted row count by default.
4677
- *
4678
- * @param data - data for the record, may have values, raw SQL, queries, relation operations.
4679
4684
  */
4680
- insert<T extends CreateSelf>(this: T, data: CreateData<T>): InsertResult<T>;
4685
+ insert<T extends CreateSelf, Data extends CreateData<T>>(this: T, data: ExtraPropertiesAreNotAllowed<T, Data>): InsertResult<T, Data>;
4681
4686
  /**
4682
4687
  * `createMany` and `insertMany` will create a batch of records.
4683
4688
  *
@@ -8269,7 +8274,7 @@ declare module "./node-postgres" {
8269
8274
  * @param search - name of the search to use the query from
8270
8275
  * @param options - `text` for a text source, `options` for `ts_headline` options
8271
8276
  */
8272
- headline<T extends OrderArgSelf>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>): SetQueryReturnsColumnOrThrow<T, Column.Pick.QueryColumnOfType<string>>;
8277
+ headline<T extends Order.ArgThis>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>): SetQueryReturnsColumnOrThrow<T, Column.Pick.QueryColumnOfType<string>>;
8273
8278
  }
8274
8279
  }
8275
8280
  type SearchArg<T extends PickQuerySelectable, As extends string> = {
@@ -9315,6 +9320,12 @@ interface Query extends IsQuery, PickQueryTable, PickQueryShape, PickQuerySelect
9315
9320
  relationQueries: IsQueries;
9316
9321
  error: new (message: string, length: number, name: QueryErrorName) => QueryError;
9317
9322
  }
9323
+ declare namespace Query {
9324
+ namespace Order {
9325
+ type Arg<T extends Order.ArgThis> = Order.Arg<T>;
9326
+ type Args<T extends Order.ArgThis> = Order.Args<T>;
9327
+ }
9328
+ }
9318
9329
  type SelectableOfType<T extends PickQuerySelectable, Type> = {
9319
9330
  [K in keyof T['__selectable']]: T['__selectable'][K]['column']['type'] extends Type | null ? K : never;
9320
9331
  }[keyof T['__selectable']];
@@ -2054,18 +2054,21 @@ interface QueryDataSources {
2054
2054
  [K: string]: QuerySourceItem;
2055
2055
  }
2056
2056
 
2057
- interface OrderArgSelf extends PickQuerySelectable, PickQueryResult, PickQueryTsQuery {
2057
+ declare namespace Order {
2058
+ export interface ArgThis extends PickQuerySelectable, PickQueryResult, PickQueryTsQuery {
2059
+ }
2060
+ export type Arg<T extends ArgThis> = ArgKey<T> | ArgTsQuery<T> | {
2061
+ [K in ArgKey<T> | ArgTsQuery<T>]?: K extends ArgTsQuery<T> ? OrderTsQueryConfig : SortDir;
2062
+ } | Expression;
2063
+ export type Args<T extends ArgThis> = Arg<T>[];
2064
+ type ArgTsQuery<T extends ArgThis> = string | undefined extends T['__tsQuery'] ? never : Exclude<T['__tsQuery'], undefined>;
2065
+ type ArgKey<T extends ArgThis> = {
2066
+ [K in keyof T['__selectable']]: T['__selectable'][K]['column']['queryType'] extends undefined ? never : K;
2067
+ }[keyof T['__selectable']] | {
2068
+ [K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' | 'runtimeComputed' ? never : K;
2069
+ }[keyof T['result']];
2070
+ export {};
2058
2071
  }
2059
- type OrderArg<T extends OrderArgSelf> = OrderArgKey<T> | OrderArgTsQuery<T> | {
2060
- [K in OrderArgKey<T> | OrderArgTsQuery<T>]?: K extends OrderArgTsQuery<T> ? OrderTsQueryConfig : SortDir;
2061
- } | Expression;
2062
- type OrderArgs<T extends OrderArgSelf> = OrderArg<T>[];
2063
- type OrderArgTsQuery<T extends OrderArgSelf> = string | undefined extends T['__tsQuery'] ? never : Exclude<T['__tsQuery'], undefined>;
2064
- type OrderArgKey<T extends OrderArgSelf> = {
2065
- [K in keyof T['__selectable']]: T['__selectable'][K]['column']['queryType'] extends undefined ? never : K;
2066
- }[keyof T['__selectable']] | {
2067
- [K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' | 'runtimeComputed' ? never : K;
2068
- }[keyof T['result']];
2069
2072
  declare class QueryOrder {
2070
2073
  /**
2071
2074
  * Adds an order by clause to the query.
@@ -2102,7 +2105,7 @@ declare class QueryOrder {
2102
2105
  *
2103
2106
  * @param args - column name(s) or an object with column names and sort directions.
2104
2107
  */
2105
- order<T extends OrderArgSelf>(this: T, ...args: OrderArgs<T>): T;
2108
+ order<T extends Order.ArgThis>(this: T, ...args: Order.Args<T>): T;
2106
2109
  /**
2107
2110
  * Order by SQL expression
2108
2111
  *
@@ -2117,12 +2120,12 @@ declare class QueryOrder {
2117
2120
  orderSql<T>(this: T, ...args: SQLQueryArgs): T;
2118
2121
  }
2119
2122
 
2120
- interface WindowArg<T extends OrderArgSelf> {
2123
+ interface WindowArg<T extends Order.ArgThis> {
2121
2124
  [K: string]: WindowArgDeclaration<T> | Expression;
2122
2125
  }
2123
- interface WindowArgDeclaration<T extends OrderArgSelf = OrderArgSelf> {
2126
+ interface WindowArgDeclaration<T extends Order.ArgThis = Order.ArgThis> {
2124
2127
  partitionBy?: SelectableOrExpression<T> | SelectableOrExpressions<T>;
2125
- order?: OrderArg<T>;
2128
+ order?: Order.Arg<T>;
2126
2129
  }
2127
2130
  type WindowResult<T, W extends RecordUnknown> = T & {
2128
2131
  windows: {
@@ -2156,12 +2159,12 @@ declare class QueryWindow {
2156
2159
  *
2157
2160
  * @param arg - window config
2158
2161
  */
2159
- window<T extends OrderArgSelf, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
2162
+ window<T extends Order.ArgThis, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
2160
2163
  }
2161
2164
 
2162
2165
  interface AggregateOptions<T extends PickQuerySelectableResultRelationsWindows> {
2163
2166
  distinct?: boolean;
2164
- order?: OrderArg<T> | OrderArgs<T>;
2167
+ order?: Order.Arg<T> | Order.Args<T>;
2165
2168
  filter?: WhereArg<T>;
2166
2169
  filterOr?: WhereArgs<T>;
2167
2170
  withinGroup?: boolean;
@@ -4592,22 +4595,27 @@ type CreateRelationsDataOmittingFKeys<T extends CreateSelf, Union> = (Union exte
4592
4595
  } & Partial<Union['nested']> : {
4593
4596
  [P in Union['columns'] & keyof T['inputType']]: CreateColumn<T, P>;
4594
4597
  } | Union['nested']) => void : never) extends (u: infer Obj) => void ? Obj : never;
4595
- type CreateResult<T extends CreateSelf> = T extends {
4598
+ type CreateResult<T extends CreateSelf, Data> = T extends {
4596
4599
  isCount: true;
4597
- } ? T : T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>>;
4598
- type InsertResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>> : SetQueryReturnsRowCount<T>;
4600
+ } ? T : T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T, Data>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T, Data>> : SetQueryResult<T, NarrowCreateResult<T, Data>>;
4601
+ type InsertResult<T extends CreateSelf, Data> = T['__hasSelect'] extends true ? T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T, Data>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T, Data>> : SetQueryResult<T, NarrowCreateResult<T, Data>> : SetQueryReturnsRowCount<T>;
4599
4602
  type CreateManyResult<T extends CreateSelf> = T extends {
4600
4603
  isCount: true;
4601
- } ? SetQueryResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>>;
4602
- type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllResult<T, NarrowCreateResult<T>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnResult<T, NarrowCreateResult<T>> : SetQueryResult<T, NarrowCreateResult<T>> : SetQueryReturnsRowCountMany<T>;
4604
+ } ? T : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAll<T> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetValueQueryReturnsPluckColumn<T> : T;
4605
+ type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAll<T> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetValueQueryReturnsPluckColumn<T> : T : SetQueryReturnsRowCountMany<T>;
4603
4606
  /**
4604
4607
  * When creating a record with a *belongs to* nested record,
4605
4608
  * un-nullify foreign key columns of the result.
4606
4609
  *
4607
4610
  * The same should work as well with any non-null columns passed to `create`, but it's to be implemented later.
4608
4611
  */
4609
- type NarrowCreateResult<T extends CreateSelf> = EmptyObject extends T['relations'] ? T['result'] : {
4610
- [K in keyof T['result']]: K extends T['relations'][keyof T['relations']]['omitForeignKeyInCreate'] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['type'], null>, T['result'][K]['operators']> : T['result'][K];
4612
+ type NarrowCreateResult<T extends CreateSelf, Data> = EmptyObject extends T['relations'] ? T['result'] : {
4613
+ [K in keyof T['result']]: true extends {
4614
+ [R in keyof T['relations']]: K extends T['relations'][R]['omitForeignKeyInCreate'] ? T['relations'][R]['dataForCreate'] extends {
4615
+ columns: unknown;
4616
+ nested: unknown;
4617
+ } ? keyof T['relations'][R]['dataForCreate']['nested'] extends keyof Data ? true : T['relations'][R]['dataForCreate']['columns'] extends keyof Data ? null | undefined extends Data[T['relations'][R]['dataForCreate']['columns']] ? never : true : never : never : never;
4618
+ }[keyof T['relations']] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['outputType'], null>, T['result'][K]['operators']> : T['result'][K];
4611
4619
  };
4612
4620
  type IgnoreResult<T extends CreateSelf> = T['returnType'] extends 'oneOrThrow' ? QueryTakeOptional<T> : T['returnType'] extends 'valueOrThrow' ? SetQueryReturnsColumnOptional<T, T['result']['value']> : T;
4613
4621
  type OnConflictArg<T extends PickQueryUniqueProperties> = T['internal']['uniqueColumnNames'] | T['internal']['uniqueColumnTuples'] | Expression | {
@@ -4618,6 +4626,7 @@ type AddQueryDefaults<T extends CreateSelf, DefaultKeys extends PropertyKey> = {
4618
4626
  [K in keyof T['__defaults'] | DefaultKeys]: true;
4619
4627
  } : T[K];
4620
4628
  };
4629
+ type ExtraPropertiesAreNotAllowed<T extends CreateSelf, Data> = keyof Data extends keyof T['inputType'] | keyof T['relations'] ? Data : `Extra properties are not allowed: ${Exclude<keyof Data, keyof T['inputType'] | keyof T['relations']> & string}`;
4621
4630
  declare class QueryCreate {
4622
4631
  /**
4623
4632
  * `create` and `insert` create a single record.
@@ -4668,16 +4677,12 @@ declare class QueryCreate {
4668
4677
  * )
4669
4678
  * .from('b');
4670
4679
  * ```
4671
- *
4672
- * @param data - data for the record, may have values, raw SQL, queries, relation operations.
4673
4680
  */
4674
- create<T extends CreateSelf>(this: T, data: CreateData<T>): CreateResult<T>;
4681
+ create<T extends CreateSelf, Data extends CreateData<T>>(this: T, data: ExtraPropertiesAreNotAllowed<T, Data>): CreateResult<T, Data>;
4675
4682
  /**
4676
4683
  * Works exactly as {@link create}, except that it returns inserted row count by default.
4677
- *
4678
- * @param data - data for the record, may have values, raw SQL, queries, relation operations.
4679
4684
  */
4680
- insert<T extends CreateSelf>(this: T, data: CreateData<T>): InsertResult<T>;
4685
+ insert<T extends CreateSelf, Data extends CreateData<T>>(this: T, data: ExtraPropertiesAreNotAllowed<T, Data>): InsertResult<T, Data>;
4681
4686
  /**
4682
4687
  * `createMany` and `insertMany` will create a batch of records.
4683
4688
  *
@@ -8269,7 +8274,7 @@ declare module "./postgres-js" {
8269
8274
  * @param search - name of the search to use the query from
8270
8275
  * @param options - `text` for a text source, `options` for `ts_headline` options
8271
8276
  */
8272
- headline<T extends OrderArgSelf>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>): SetQueryReturnsColumnOrThrow<T, Column.Pick.QueryColumnOfType<string>>;
8277
+ headline<T extends Order.ArgThis>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>): SetQueryReturnsColumnOrThrow<T, Column.Pick.QueryColumnOfType<string>>;
8273
8278
  }
8274
8279
  }
8275
8280
  type SearchArg<T extends PickQuerySelectable, As extends string> = {
@@ -9315,6 +9320,12 @@ interface Query extends IsQuery, PickQueryTable, PickQueryShape, PickQuerySelect
9315
9320
  relationQueries: IsQueries;
9316
9321
  error: new (message: string, length: number, name: QueryErrorName) => QueryError;
9317
9322
  }
9323
+ declare namespace Query {
9324
+ namespace Order {
9325
+ type Arg<T extends Order.ArgThis> = Order.Arg<T>;
9326
+ type Args<T extends Order.ArgThis> = Order.Args<T>;
9327
+ }
9328
+ }
9318
9329
  type SelectableOfType<T extends PickQuerySelectable, Type> = {
9319
9330
  [K in keyof T['__selectable']]: T['__selectable'][K]['column']['type'] extends Type | null ? K : never;
9320
9331
  }[keyof T['__selectable']];
package/dist/public.d.ts CHANGED
@@ -1 +1 @@
1
- export { Db, NotFoundError, OrchidOrmInternalError, QueryError, QueryHelperResult, QuerySchema, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
1
+ export { Db, NotFoundError, OrchidOrmInternalError, Query, QueryError, QueryHelperResult, QuerySchema, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
package/dist/public.js CHANGED
@@ -20,10 +20,6 @@ Object.defineProperty(exports, "QueryError", {
20
20
  enumerable: true,
21
21
  get: function () { return index.QueryError; }
22
22
  });
23
- Object.defineProperty(exports, "QueryHelperResult", {
24
- enumerable: true,
25
- get: function () { return index.QueryHelperResult; }
26
- });
27
23
  Object.defineProperty(exports, "copyTableData", {
28
24
  enumerable: true,
29
25
  get: function () { return index.copyTableData; }
@@ -1 +1 @@
1
- {"version":3,"file":"public.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"public.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/public.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { Db, NotFoundError, OrchidOrmInternalError, QueryError, QueryHelperResult, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
1
+ export { Db, NotFoundError, OrchidOrmInternalError, QueryError, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
2
2
  //# sourceMappingURL=public.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pqb",
3
- "version": "0.63.0",
3
+ "version": "0.64.0",
4
4
  "description": "Postgres query builder",
5
5
  "keywords": [
6
6
  "pg",
@@ -67,7 +67,7 @@
67
67
  "check": "jest",
68
68
  "types": "tsc",
69
69
  "test:ci": "jest --coverage --coverageReporters json-summary",
70
- "build": "rimraf ./dist/ && rollup -c ./rollup.config.mjs",
70
+ "build": "rm -rf ./dist/ && rollup -c ./rollup.config.mjs",
71
71
  "lint": "oxlint --fix",
72
72
  "lint:check": "oxlint",
73
73
  "fmt": "oxfmt",