pqb 0.41.6 → 0.42.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, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryReturnType, PickQueryResultUniqueColumns, QueryInternalBase, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
3
+ import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, IsQuery, RecordUnknown, Expression, MaybeArray, TemplateLiteralArgs, EmptyObject, QueryColumns, QueryColumn, MaybePromise, FnUnknownToUnknown, QueryMetaBase, QueryReturnType, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, QueryThen, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DefaultSelectOutput, ColumnShapeInput, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, PickQueryTableMetaResultInputType, getValueKey, PickQueryReturnType, PickQueryResultUniqueColumns, QueryInternalBase, PickType, RecordKeyTrue, 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
 
@@ -56,11 +56,16 @@ declare class TransactionAdapter implements Adapter {
56
56
  }
57
57
 
58
58
  interface RelationJoinQuery {
59
- (joiningQuery: Query, baseQuery: Query): Query;
59
+ (joiningQuery: IsQuery, baseQuery: IsQuery): IsQuery;
60
60
  }
61
61
  interface RelationConfigBase {
62
- query: Query;
62
+ query: IsQuery;
63
63
  joinQuery: RelationJoinQuery;
64
+ reverseJoin: RelationJoinQuery;
65
+ params: unknown;
66
+ queryRelated(params: unknown): unknown;
67
+ modifyRelatedQuery?(relatedQuery: IsQuery): (query: IsQuery) => void;
68
+ maybeSingle: unknown;
64
69
  omitForeignKeyInCreate: PropertyKey;
65
70
  dataForCreate?: RelationConfigDataForCreate;
66
71
  optionalDataForCreate: unknown;
@@ -77,34 +82,6 @@ interface RelationsBase {
77
82
  interface RelationQueryBase extends Query {
78
83
  relationConfig: RelationConfigBase;
79
84
  }
80
- type RelationQuery<Config extends RelationConfigBase = RelationConfigBase, Params = never, Required = never, One = never> = RelationQueryFnAndConfig<Config, Params, Required, One> & Config['query'];
81
- interface RelationQueryFnAndConfig<Config extends RelationConfigBase = RelationConfigBase, Params = never, Required = never, One = never> {
82
- (params: Params): One extends true ? Required extends true ? SetQueryReturnsOne<Config['query']> : SetQueryReturnsOneOptional<Config['query']> : Config['query'];
83
- relationConfig: Config;
84
- }
85
-
86
- declare abstract class QueryBase<Scopes extends RecordKeyTrue = EmptyObject> implements QueryBaseCommon<Scopes> {
87
- /**
88
- * Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.
89
- *
90
- * Used under the hood, and not really needed on the app side.
91
- */
92
- clone<T>(this: T): T;
93
- __isQuery: true;
94
- result: QueryColumns;
95
- q: QueryData;
96
- table?: string;
97
- shape: QueryColumns;
98
- relations: RelationsBase;
99
- withData: WithDataItems;
100
- baseQuery: Query;
101
- internal: QueryInternal;
102
- meta: QueryMetaBase<Scopes>;
103
- returnType: QueryReturnType;
104
- }
105
- interface QueryBaseThen<T> extends QueryBase {
106
- then: QueryThen<T>;
107
- }
108
85
 
109
86
  declare const checkIfASimpleQuery: (q: Query) => boolean;
110
87
  interface WithItem {
@@ -168,25 +145,25 @@ type SimpleJoinItemNonSubQueryArgs = [{
168
145
  rightColumn: string | Expression
169
146
  ];
170
147
  type JoinItemArgs = {
171
- j: Query;
148
+ j: IsQuery;
172
149
  s: boolean;
173
- r?: Query;
150
+ r?: IsQuery;
174
151
  } | {
175
152
  w: string;
176
- r: Query;
153
+ r: IsQuery;
177
154
  s: boolean;
178
155
  } | {
179
156
  w: string;
180
157
  a: SimpleJoinItemNonSubQueryArgs;
181
158
  } | {
182
- q: QueryWithTable;
159
+ q: IsQuery;
183
160
  s: boolean;
184
161
  } | {
185
- q: QueryWithTable;
186
- r: Query;
162
+ q: IsQuery;
163
+ r: IsQuery;
187
164
  s: boolean;
188
165
  } | {
189
- q: QueryWithTable;
166
+ q: IsQuery;
190
167
  a: SimpleJoinItemNonSubQueryArgs;
191
168
  s: boolean;
192
169
  };
@@ -206,7 +183,7 @@ type WhereItem = {
206
183
  EXISTS?: MaybeArray<JoinItemArgs>;
207
184
  ON?: WhereOnItem | WhereJsonPathEqualsItem;
208
185
  SEARCH?: MaybeArray<WhereSearchItem>;
209
- } | ((q: unknown) => QueryBase | RelationQuery | Expression) | Query | Expression;
186
+ } | ((q: unknown) => RelationQueryBase | Expression) | Query | Expression;
210
187
  interface WhereInItem {
211
188
  columns: string[];
212
189
  values: unknown[][] | Query | Expression;
@@ -326,7 +303,7 @@ interface QueryComputedArg<ColumnTypes, Shape extends QueryColumns> extends Expr
326
303
  };
327
304
  };
328
305
  }
329
- declare const applyComputedColumns: (q: Query, fn: ComputedOptionsFactory<never, never>) => void;
306
+ declare const applyComputedColumns: (q: IsQuery, fn: ComputedOptionsFactory<never, never>) => void;
330
307
  declare const processComputedResult: (query: QueryData, result: unknown) => Promise<void[]> | undefined;
331
308
  declare const processComputedBatches: (query: QueryData, batches: QueryBatchResult[], originalReturnType: QueryReturnType, returnType: QueryReturnType, tempColumns: Set<string> | undefined, renames: RecordString | undefined, key: string) => Promise<void> | undefined;
332
309
 
@@ -430,7 +407,7 @@ interface CommonQueryData {
430
407
  transform?: QueryDataTransform[];
431
408
  language?: string;
432
409
  subQuery?: number;
433
- relChain?: (Query | RelationQuery)[];
410
+ relChain?: (Query | RelationQueryBase)[];
434
411
  /**
435
412
  * Stores current operator functions available for the query.
436
413
  * Is needed to remove these operators from query object when changing the query type, see {@link setQueryOperators}.
@@ -701,9 +678,9 @@ type JoinResult<T extends PickQueryMetaResultReturnType, JoinedSelectable, Requi
701
678
  type JoinResultFromArgs<T extends PickQueryMetaResultRelationsWithDataReturnType, Arg, Args, RequireJoined, RequireMain> = JoinResult<T, Args extends GenericJoinCallbackTuple ? JoinResultSelectable<ReturnType<Args[0]>['result'], AliasOrTable<ReturnType<Args[0]>>, RequireJoined> : Arg extends PickQueryTableMetaResultShape ? Arg['meta']['hasSelect'] extends true ? JoinResultSelectable<Arg['result'], AliasOrTable<Arg>, RequireJoined> : JoinResultSelectable<Arg['shape'], AliasOrTable<{
702
679
  table: Arg['table'];
703
680
  meta: Arg['meta'];
704
- }>, RequireJoined> : Arg extends keyof T['relations'] ? JoinResultSelectable<T['relations'][Arg]['relationConfig']['query']['shape'], AliasOrTable<{
705
- table: T['relations'][Arg]['relationConfig']['query']['table'];
706
- meta: T['relations'][Arg]['relationConfig']['query']['meta'];
681
+ }>, RequireJoined> : Arg extends keyof T['relations'] ? JoinResultSelectable<T['relations'][Arg]['shape'], AliasOrTable<{
682
+ table: T['relations'][Arg]['table'];
683
+ meta: T['relations'][Arg]['meta'];
707
684
  }>, RequireJoined> : Arg extends GenericJoinCallback ? JoinResultSelectable<ReturnType<Arg>['shape'], AliasOrTable<{
708
685
  table: ReturnType<Arg>['table'];
709
686
  meta: ReturnType<Arg>['meta'];
@@ -754,22 +731,6 @@ type JoinAddSelectable<T extends PickQueryMeta, Selectable> = {
754
731
  [K in keyof T['meta']]: K extends 'selectable' ? T['meta']['selectable'] & Selectable : T['meta'][K];
755
732
  } : T[K];
756
733
  };
757
- /**
758
- * Map the `with` table first argument of `join` or `joinLateral` to a query type.
759
- * Constructs `selectable` based on `with` table shape, and adds generic types to conform the `QueryBase` type.
760
- */
761
- interface JoinWithArgToQuery<With extends WithDataItem> extends Query {
762
- table: With['table'];
763
- meta: QueryMetaBase & {
764
- selectable: {
765
- [K in keyof With['shape'] & string as `${With['table']}.${K}`]: {
766
- as: K;
767
- column: With['shape'][K];
768
- };
769
- };
770
- };
771
- result: With['shape'];
772
- }
773
734
  /**
774
735
  * Map the first argument of `join` or `joinLateral` to a query type.
775
736
  *
@@ -777,7 +738,16 @@ interface JoinWithArgToQuery<With extends WithDataItem> extends Query {
777
738
  * query arg is returned as is,
778
739
  * relation name is replaced with a relation table.
779
740
  */
780
- type JoinArgToQuery<T extends PickQueryRelationsWithData, Arg extends JoinFirstArg<T>> = Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? JoinWithArgToQuery<T['withData'][Arg]> : never : Arg extends PickQueryTableMetaResult ? Arg : Arg extends keyof T['relations'] ? T['relations'][Arg]['relationConfig']['query'] : Arg extends JoinArgToQueryCallback ? ReturnType<Arg> : never;
741
+ type JoinArgToQuery<T extends PickQueryRelationsWithData, Arg extends JoinFirstArg<T>> = Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
742
+ [K in 'table' | 'meta' | 'result' | keyof T]: K extends 'table' ? T['withData'][Arg]['table'] : K extends 'meta' ? QueryMetaBase & {
743
+ selectable: {
744
+ [K in keyof T['withData'][Arg]['shape'] & string as `${T['withData'][Arg]['table']}.${K}`]: {
745
+ as: K;
746
+ column: T['withData'][Arg]['shape'][K];
747
+ };
748
+ };
749
+ } : K extends 'result' ? T['withData'][Arg]['shape'] : K extends keyof T ? T[K] : never;
750
+ } : never : Arg extends PickQueryTableMetaResult ? Arg : Arg extends keyof T['relations'] ? T['relations'][Arg] : Arg extends JoinArgToQueryCallback ? ReturnType<Arg> : never;
781
751
  type JoinArgToQueryCallback = (...args: any[]) => PickQueryTableMetaResult;
782
752
  /**
783
753
  * Type of the `join` callback (not `joinLateral`).
@@ -1484,12 +1454,12 @@ interface Operator<Value, Column extends PickOutputTypeAndOperators = PickOutput
1484
1454
  <T extends PickQueryResult>(this: T, arg: Value): Omit<SetQueryReturnsColumnOrThrow<T, Column>, keyof T['result']['value']['operators']> & Column['operators'];
1485
1455
  _opType: Value;
1486
1456
  }
1487
- declare function setQueryOperators(query: PickQueryBaseQuery, operators: RecordUnknown): PickQueryBaseQuery;
1457
+ declare function setQueryOperators(query: IsQuery, operators: RecordUnknown): IsQuery;
1488
1458
  interface Base<Value> {
1489
- equals: Operator<Value | Query | Expression, BooleanQueryColumn>;
1490
- not: Operator<Value | Query | Expression, BooleanQueryColumn>;
1491
- in: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
1492
- notIn: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
1459
+ equals: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1460
+ not: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1461
+ in: Operator<Value[] | IsQuery | Expression, BooleanQueryColumn>;
1462
+ notIn: Operator<Value[] | IsQuery | Expression, BooleanQueryColumn>;
1493
1463
  }
1494
1464
  interface OperatorsBooleanSelf extends OperatorsBoolean {
1495
1465
  result: {
@@ -1501,23 +1471,23 @@ interface OperatorsBoolean extends Base<boolean> {
1501
1471
  or: Operator<OperatorsBooleanSelf, BooleanQueryColumn>;
1502
1472
  }
1503
1473
  interface Ord<Value> extends Base<Value> {
1504
- lt: Operator<Value | Query | Expression, BooleanQueryColumn>;
1505
- lte: Operator<Value | Query | Expression, BooleanQueryColumn>;
1506
- gt: Operator<Value | Query | Expression, BooleanQueryColumn>;
1507
- gte: Operator<Value | Query | Expression, BooleanQueryColumn>;
1474
+ lt: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1475
+ lte: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1476
+ gt: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1477
+ gte: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1508
1478
  between: Operator<[
1509
- Value | Query | Expression,
1510
- Value | Query | Expression
1479
+ Value | IsQuery | Expression,
1480
+ Value | IsQuery | Expression
1511
1481
  ], BooleanQueryColumn>;
1512
1482
  }
1513
1483
  type OperatorsNumber = Ord<number>;
1514
1484
  interface OperatorsText extends Base<string> {
1515
- contains: Operator<string | Query | Expression, BooleanQueryColumn>;
1516
- containsSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1517
- startsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
1518
- startsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1519
- endsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
1520
- endsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1485
+ contains: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1486
+ containsSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1487
+ startsWith: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1488
+ startsWithSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1489
+ endsWith: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1490
+ endsWithSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1521
1491
  }
1522
1492
  interface JsonPathQueryOptions {
1523
1493
  vars?: RecordUnknown;
@@ -1587,8 +1557,8 @@ interface JsonPathQuery {
1587
1557
  }
1588
1558
  interface OperatorsJson extends Base<unknown> {
1589
1559
  jsonPathQueryFirst: JsonPathQuery;
1590
- jsonSupersetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
1591
- jsonSubsetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
1560
+ jsonSupersetOf: Operator<unknown | IsQuery | Expression, BooleanQueryColumn>;
1561
+ jsonSubsetOf: Operator<unknown | IsQuery | Expression, BooleanQueryColumn>;
1592
1562
  jsonSet: {
1593
1563
  /**
1594
1564
  * Returns a JSON value/object/array where a given value is set at the given path.
@@ -1837,7 +1807,7 @@ declare class ExpressionMethods {
1837
1807
  type WhereArg<T extends PickQueryMetaRelations> = {
1838
1808
  [K in keyof T['meta']['selectable'] | 'NOT' | 'OR' | 'IN']?: K extends 'NOT' ? WhereArg<T> | WhereArgs<T> : K extends 'OR' ? (WhereArg<T> | WhereArgs<T>)[] : K extends 'IN' ? MaybeArray<{
1839
1809
  columns: (keyof T['meta']['selectable'])[];
1840
- values: unknown[][] | QueryBase | Expression;
1810
+ values: unknown[][] | IsQuery | Expression;
1841
1811
  }> : T['meta']['selectable'][K]['column']['queryType'] | null | {
1842
1812
  [O in keyof T['meta']['selectable'][K]['column']['operators']]?: T['meta']['selectable'][K]['column']['operators'][O]['_opType'];
1843
1813
  } | {
@@ -1863,22 +1833,22 @@ type WhereArg<T extends PickQueryMetaRelations> = {
1863
1833
  * ```
1864
1834
  */
1865
1835
  type WhereQueryBuilder<T extends PickQueryRelations> = EmptyObject extends T['relations'] ? {
1866
- [K in keyof T]: K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' | 'columnTypes' ? T[K] : never;
1836
+ [K in keyof T]: K extends keyof Where | keyof ExpressionMethods | 'get' | 'columnTypes' | 'meta' | 'relations' ? T[K] : never;
1867
1837
  } : {
1868
- [K in keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' | 'columnTypes' ? T[K] : never;
1838
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof T & (keyof Where | keyof ExpressionMethods | 'get' | 'columnTypes' | 'meta' | 'relations') ? T[K] : never;
1869
1839
  };
1870
1840
  type WhereArgs<T extends PickQueryMetaRelations> = WhereArg<T>[];
1871
1841
  type WhereNotArgs<T extends PickQueryMetaRelations> = [WhereArg<T>];
1872
1842
  type WhereInColumn<T extends PickQueryMetaRelations> = keyof T['meta']['selectable'] | [keyof T['meta']['selectable'], ...(keyof T['meta']['selectable'])[]];
1873
- type WhereInValues<T extends PickQueryMetaRelations, Column> = Column extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column]['column']['queryType'][] | Query | Expression : ({
1843
+ type WhereInValues<T extends PickQueryMetaRelations, Column> = Column extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column]['column']['queryType'][] | IsQuery | Expression : ({
1874
1844
  [I in keyof Column]: Column[I] extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column[I]]['column']['queryType'] : never;
1875
1845
  } & {
1876
1846
  length: Column extends {
1877
1847
  length: number;
1878
1848
  } ? Column['length'] : never;
1879
- })[] | Query | Expression;
1849
+ })[] | IsQuery | Expression;
1880
1850
  type WhereInArg<T extends PickQueryMeta> = {
1881
- [K in keyof T['meta']['selectable']]?: T['meta']['selectable'][K]['column']['queryType'][] | Query | Expression;
1851
+ [K in keyof T['meta']['selectable']]?: T['meta']['selectable'][K]['column']['queryType'][] | IsQuery | Expression;
1882
1852
  };
1883
1853
  type WhereResult<T> = T & QueryMetaHasWhere;
1884
1854
  interface QueryMetaHasWhere {
@@ -1922,7 +1892,7 @@ declare const _queryOrNot: <T extends PickQueryMetaRelations>(q: T, args: WhereA
1922
1892
  /**
1923
1893
  * Mutative {@link Where.prototype.whereIn}
1924
1894
  */
1925
- declare const _queryWhereIn: <T>(q: T, and: boolean, arg: unknown, values: unknown[] | unknown[][] | Query | Expression | undefined, not?: boolean) => WhereResult<T>;
1895
+ declare const _queryWhereIn: <T>(q: T, and: boolean, arg: unknown, values: unknown[] | unknown[][] | IsQuery | Expression | undefined, not?: boolean) => WhereResult<T>;
1926
1896
  /**
1927
1897
  * Mutative {@link Where.prototype.whereExists}
1928
1898
  */
@@ -2547,7 +2517,8 @@ declare class Where {
2547
2517
  interface ScopeArgumentQueryMeta<Table extends string | undefined, Shape extends QueryColumns> extends QueryMetaBase {
2548
2518
  selectable: SelectableFromShape<Shape, Table>;
2549
2519
  }
2550
- interface ScopeArgumentQuery<Table extends string | undefined, Shape extends QueryColumns> extends Where, QueryBase {
2520
+ interface ScopeArgumentQuery<Table extends string | undefined, Shape extends QueryColumns> extends Where, PickQueryMetaShapeRelationsWithData {
2521
+ __isQuery: true;
2551
2522
  table: Table;
2552
2523
  shape: Shape;
2553
2524
  meta: ScopeArgumentQueryMeta<Table, Shape>;
@@ -3347,7 +3318,7 @@ interface DbTableOptions<ColumnTypes, Table extends string | undefined, Shape ex
3347
3318
  * See {@link ScopeMethods}
3348
3319
  */
3349
3320
  type DbTableOptionScopes<Table extends string | undefined, Shape extends QueryColumns, Keys extends string = string> = {
3350
- [K in Keys]: (q: ScopeArgumentQuery<Table, Shape>) => QueryBase;
3321
+ [K in Keys]: (q: ScopeArgumentQuery<Table, Shape>) => IsQuery;
3351
3322
  };
3352
3323
  type QueryDefaultReturnData<Shape extends QueryColumnsInit> = {
3353
3324
  [K in DefaultSelectColumns<Shape>]: Shape[K]['outputType'];
@@ -3363,12 +3334,22 @@ interface TableMeta<Table extends string | undefined, Shape extends QueryColumns
3363
3334
  defaultSelect: DefaultSelectColumns<Shape>;
3364
3335
  }
3365
3336
  declare const anyShape: QueryColumnsInit;
3366
- interface Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape, Scopes extends RecordUnknown | undefined = EmptyObject> extends DbBase<Adapter, Table, Shape, ColumnTypes, ShapeWithComputed>, QueryMethods<ColumnTypes>, QueryBase {
3367
- result: Pick<Shape, DefaultSelectColumns<Shape>>;
3337
+ declare class Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape, Scopes extends RecordUnknown | undefined = EmptyObject> extends QueryMethods<ColumnTypes> implements Query {
3338
+ adapter: Adapter;
3368
3339
  queryBuilder: Db;
3340
+ table: Table;
3341
+ shape: ShapeWithComputed;
3342
+ columnTypes: ColumnTypes;
3343
+ q: QueryData;
3344
+ __isQuery: true;
3345
+ baseQuery: Query;
3346
+ columns: (keyof Shape)[];
3347
+ outputType: DefaultSelectOutput<Shape>;
3348
+ inputType: ColumnShapeInput<Shape>;
3349
+ result: Pick<Shape, DefaultSelectColumns<Shape>>;
3369
3350
  returnType: undefined;
3370
3351
  then: QueryThen<QueryDefaultReturnData<Shape>>;
3371
- windows: Query['windows'];
3352
+ windows: EmptyObject;
3372
3353
  relations: EmptyObject;
3373
3354
  withData: EmptyObject;
3374
3355
  error: new (message: string, length: number, name: QueryErrorName) => QueryError<this>;
@@ -3379,13 +3360,6 @@ interface Db<Table extends string | undefined = undefined, Shape extends QueryCo
3379
3360
  [K in keyof Shape]: Shape[K]['data']['unique'] extends string ? K : never;
3380
3361
  }[keyof Shape] | keyof PrimaryKeys, UniqueColumnTuples, UniqueConstraints>;
3381
3362
  catch: QueryCatch;
3382
- }
3383
- declare class Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape> implements Query {
3384
- adapter: Adapter;
3385
- queryBuilder: Db;
3386
- table: Table;
3387
- shape: ShapeWithComputed;
3388
- columnTypes: ColumnTypes;
3389
3363
  constructor(adapter: Adapter, queryBuilder: Db, table: Table, shape: ShapeWithComputed, columnTypes: ColumnTypes, transactionStorage: AsyncLocalStorage<TransactionState>, options: DbTableOptions<ColumnTypes, Table, ShapeWithComputed>, tableData?: TableData);
3390
3364
  [inspect.custom](): string;
3391
3365
  /**
@@ -3570,7 +3544,7 @@ interface ToSQLQuery {
3570
3544
  q: Query['q'];
3571
3545
  queryBuilder: Query['queryBuilder'];
3572
3546
  table?: Query['table'];
3573
- internal: Query['internal'];
3547
+ internal: QueryInternal;
3574
3548
  relations: Query['relations'];
3575
3549
  withData: Query['withData'];
3576
3550
  clone: Query['clone'];
@@ -3630,7 +3604,7 @@ type GetArg<T extends QueryGetSelf> = GetStringArg<T> | Expression;
3630
3604
  type GetStringArg<T extends PickQueryMeta> = keyof T['meta']['selectable'] & string;
3631
3605
  type GetResult<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOrThrow<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, Arg['result']['value']> : never;
3632
3606
  type GetResultOptional<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOptional<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOptional<T, Arg['result']['value']> : never;
3633
- declare const _getSelectableColumn: (q: Query, arg: string) => QueryColumn | undefined;
3607
+ declare const _getSelectableColumn: (q: IsQuery, arg: string) => QueryColumn | undefined;
3634
3608
  declare function _queryGet<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResult<T, Arg>;
3635
3609
  declare function _queryGetOptional<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResultOptional<T, Arg>;
3636
3610
 
@@ -4112,7 +4086,7 @@ declare abstract class AsMethods {
4112
4086
 
4113
4087
  type ClearStatement = 'with' | 'select' | 'where' | 'union' | 'using' | 'join' | 'group' | 'order' | 'having' | 'limit' | 'offset' | 'counters';
4114
4088
  declare class Clear {
4115
- clear<T extends Query>(this: T, ...clears: ClearStatement[]): T;
4089
+ clear<T>(this: T, ...clears: ClearStatement[]): T;
4116
4090
  }
4117
4091
 
4118
4092
  interface CreateSelf extends PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryUniqueProperties {
@@ -4212,14 +4186,14 @@ declare const _queryCreateRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<
4212
4186
  declare const _queryInsertRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateRawData<T>>) => InsertRawOrFromResult<T>;
4213
4187
  declare const _queryCreateManyRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateManyRawData<T>>) => CreateManyRawOrFromResult<T>;
4214
4188
  declare const _queryInsertManyRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateManyRawData<T>>) => InsertManyRawOrFromResult<T>;
4215
- declare const _queryCreateFrom: <T extends CreateSelf, Q extends Query & {
4216
- returnType: 'one' | 'oneOrThrow';
4217
- }>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => CreateRawOrFromResult<T>;
4218
- declare const _queryInsertFrom: <T extends CreateSelf, Q extends Query & {
4189
+ interface QueryReturningOne extends IsQuery {
4190
+ result: QueryColumns;
4219
4191
  returnType: 'one' | 'oneOrThrow';
4220
- }>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => InsertRawOrFromResult<T>;
4221
- declare const _queryCreateManyFrom: <T extends CreateSelf>(q: T, query: Query) => CreateManyRawOrFromResult<T>;
4222
- declare const _queryInsertManyFrom: <T extends CreateSelf>(q: T, query: Query) => InsertManyRawOrFromResult<T>;
4192
+ }
4193
+ declare const _queryCreateFrom: <T extends CreateSelf, Q extends QueryReturningOne>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => CreateRawOrFromResult<T>;
4194
+ declare const _queryInsertFrom: <T extends CreateSelf, Q extends QueryReturningOne>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => InsertRawOrFromResult<T>;
4195
+ declare const _queryCreateManyFrom: <T extends CreateSelf>(q: T, query: IsQuery) => CreateManyRawOrFromResult<T>;
4196
+ declare const _queryInsertManyFrom: <T extends CreateSelf>(q: T, query: IsQuery) => InsertManyRawOrFromResult<T>;
4223
4197
  declare const _queryDefaults: <T extends CreateSelf, Data extends Partial<CreateData<T, CreateBelongsToData<T>>>>(q: T, data: Data) => AddQueryDefaults<T, { [K in keyof Data]: true; }>;
4224
4198
  /**
4225
4199
  * Names of all create methods,
@@ -4408,18 +4382,14 @@ declare class Create {
4408
4382
  * @param query - query to create new records from
4409
4383
  * @param data - additionally you can set some columns
4410
4384
  */
4411
- createFrom<T extends CreateSelf, Q extends Query & {
4412
- returnType: 'one' | 'oneOrThrow';
4413
- }>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): CreateRawOrFromResult<T>;
4385
+ createFrom<T extends CreateSelf, Q extends QueryReturningOne>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): CreateRawOrFromResult<T>;
4414
4386
  /**
4415
4387
  * Works exactly as {@link createFrom}, except that it returns inserted row count by default.
4416
4388
  *
4417
4389
  * @param query - query to create new records from
4418
4390
  * @param data - additionally you can set some columns
4419
4391
  */
4420
- insertFrom<T extends CreateSelf, Q extends Query & {
4421
- returnType: 'one' | 'oneOrThrow';
4422
- }>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): InsertRawOrFromResult<T>;
4392
+ insertFrom<T extends CreateSelf, Q extends QueryReturningOne>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): InsertRawOrFromResult<T>;
4423
4393
  /**
4424
4394
  * Similar to `createFrom`, but intended to create many records.
4425
4395
  *
@@ -4433,13 +4403,13 @@ declare class Create {
4433
4403
  *
4434
4404
  * @param query - query to create new records from
4435
4405
  */
4436
- createManyFrom<T extends CreateSelf>(this: T, query: Query): CreateManyRawOrFromResult<T>;
4406
+ createManyFrom<T extends CreateSelf>(this: T, query: IsQuery): CreateManyRawOrFromResult<T>;
4437
4407
  /**
4438
4408
  * Works exactly as {@link createManyFrom}, except that it returns inserted row count by default.
4439
4409
  *
4440
4410
  * @param query - query to create new records from
4441
4411
  */
4442
- insertManyFrom<T extends CreateSelf>(this: T, query: Query): InsertManyRawOrFromResult<T>;
4412
+ insertManyFrom<T extends CreateSelf>(this: T, query: IsQuery): InsertManyRawOrFromResult<T>;
4443
4413
  /**
4444
4414
  * `defaults` allows setting values that will be used later in `create`.
4445
4415
  *
@@ -4949,7 +4919,7 @@ declare class Having {
4949
4919
  *
4950
4920
  * @param args - raw SQL template string or one or multiple callbacks returning a boolean expression
4951
4921
  */
4952
- having<T extends Query>(this: T, ...args: HavingArgFn<T>[]): T;
4922
+ having<T>(this: T, ...args: HavingArgFn<T>[]): T;
4953
4923
  /**
4954
4924
  * Provide SQL expression for the `HAVING` SQL statement:
4955
4925
  *
@@ -4959,7 +4929,7 @@ declare class Having {
4959
4929
  *
4960
4930
  * @param args - SQL expression
4961
4931
  */
4962
- havingSql<T extends Query>(this: T, ...args: SQLQueryArgs): T;
4932
+ havingSql<T>(this: T, ...args: SQLQueryArgs): T;
4963
4933
  }
4964
4934
 
4965
4935
  declare const commitSql: SingleSqlItem;
@@ -5348,7 +5318,7 @@ type MergeQueryResult<T extends PickQueryMetaResult, Q extends PickQueryMetaResu
5348
5318
  [K in keyof T['result'] | keyof Q['result']]: K extends keyof Q['result'] ? Q['result'][K] : T['result'][K];
5349
5319
  } : T['result'] : Q['result'];
5350
5320
  declare class MergeQueryMethods {
5351
- merge<T extends Query, Q extends Query>(this: T, q: Q): MergeQuery<T, Q>;
5321
+ merge<T extends PickQueryMetaResultReturnTypeWithDataWindows, Q extends PickQueryMetaResultReturnTypeWithDataWindows>(this: T, q: Q): MergeQuery<T, Q>;
5352
5322
  }
5353
5323
 
5354
5324
  interface SelectSelf {
@@ -5363,7 +5333,7 @@ type SelectArg<T extends SelectSelf> = '*' | keyof T['meta']['selectable'];
5363
5333
  type SelectArgs<T extends SelectSelf> = ('*' | keyof T['meta']['selectable'])[];
5364
5334
  interface SelectAsArg<T extends SelectSelf> {
5365
5335
  [K: string]: keyof T['meta']['selectable'] | Expression | ((q: EmptyObject extends T['relations'] ? T : {
5366
- [K in keyof T]: K extends keyof T['relations'] ? T[K] extends (...args: any[]) => any ? ReturnType<T[K]> : never : T[K];
5336
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K]['relationConfig']['maybeSingle'] : K extends keyof T ? T[K] : never;
5367
5337
  }) => unknown);
5368
5338
  }
5369
5339
  type SelectAsFnReturnType = {
@@ -5426,7 +5396,7 @@ type SelectAsSelectable<Arg> = {
5426
5396
  };
5427
5397
  } : never;
5428
5398
  }[keyof Arg];
5429
- type SelectAsValueResult<T extends SelectSelf, Arg> = Arg extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Arg]['column'] : Arg extends Expression ? Arg['result']['value'] : Arg extends (q: never) => QueryBase ? SelectSubQueryResult<ReturnType<Arg>> : Arg extends (q: never) => Expression ? ReturnType<Arg>['result']['value'] : Arg extends (q: never) => QueryBase | Expression ? SelectSubQueryResult<Exclude<ReturnType<Arg>, Expression>> | Exclude<ReturnType<Arg>, QueryBase>['result']['value'] : never;
5399
+ type SelectAsValueResult<T extends SelectSelf, Arg> = Arg extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Arg]['column'] : Arg extends Expression ? Arg['result']['value'] : Arg extends (q: never) => IsQuery ? SelectSubQueryResult<ReturnType<Arg>> : Arg extends (q: never) => Expression ? ReturnType<Arg>['result']['value'] : Arg extends (q: never) => IsQuery | Expression ? SelectSubQueryResult<Exclude<ReturnType<Arg>, Expression>> | Exclude<ReturnType<Arg>, IsQuery>['result']['value'] : never;
5430
5400
  type SelectSubQueryResult<Arg extends SelectSelf> = Arg['returnType'] extends undefined | 'all' ? ColumnsShapeToObjectArray<Arg['result']> : Arg['returnType'] extends 'value' | 'valueOrThrow' ? Arg['result']['value'] : Arg['returnType'] extends 'pluck' ? ColumnsShapeToPluck<Arg['result']> : Arg['returnType'] extends 'one' ? ColumnsShapeToNullableObject<Arg['result']> : ColumnsShapeToObject<Arg['result']>;
5431
5401
  declare const addParserForRawExpression: (q: PickQueryQ, key: string | getValueKey, raw: Expression) => void;
5432
5402
  interface QueryBatchResult {
@@ -5437,7 +5407,7 @@ interface QueryBatchResult {
5437
5407
  declare const addParserForSelectItem: <T extends PickQueryMeta>(q: T, as: string | getValueKey | undefined, key: string, arg: SelectableOrExpression<T> | Query, joinQuery?: boolean) => string | Expression | Query | undefined;
5438
5408
  declare const processSelectArg: <T extends SelectSelf>(q: T, as: string | undefined, arg: SelectArg<T>, columnAs?: string | getValueKey) => SelectItem | undefined | false;
5439
5409
  declare const setParserForSelectedString: (q: PickQueryQAndInternal, arg: string, as: string | getValueKey | undefined, columnAs?: string | getValueKey) => string | undefined;
5440
- declare const getShapeFromSelect: (q: QueryBase, isSubQuery?: boolean) => QueryColumns;
5410
+ declare const getShapeFromSelect: (q: IsQuery, isSubQuery?: boolean) => QueryColumns;
5441
5411
  declare function _querySelect<T extends SelectSelf, Columns extends SelectArgs<T>>(q: T, columns: Columns): SelectResult<T, Columns>;
5442
5412
  declare function _querySelect<T extends SelectSelf, Obj extends SelectAsArg<T>>(q: T, obj: Obj): SelectResultObj<T, Obj>;
5443
5413
  declare function _querySelect<T extends SelectSelf, Columns extends SelectArgs<T>, Obj extends SelectAsArg<T>>(q: T, args: [...columns: Columns, obj: Obj]): SelectResultColumnsAndObj<T, Columns, Obj>;
@@ -5784,8 +5754,8 @@ declare class WithMethods {
5784
5754
  * .select('firstTable.column', 'secondTable.column');
5785
5755
  * ```
5786
5756
  */
5787
- with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q>(this: T, name: Name, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q extends Query ? Q : never>;
5788
- with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query>(this: T, name: Name, options: WithArgsOptions, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q>;
5757
+ with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q>(this: T, name: Name, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q extends PickQueryResult ? Q : never>;
5758
+ with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult>(this: T, name: Name, options: WithArgsOptions, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q>;
5789
5759
  /**
5790
5760
  * It is priceless for fetching tree-like structures, or any other recursive cases.
5791
5761
  *
@@ -5869,12 +5839,12 @@ declare class WithMethods {
5869
5839
  * .where({ n: { gt: 10 } });
5870
5840
  * ```
5871
5841
  */
5872
- withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query, Result = WithResult<T, Name, Q>>(this: T, name: Name, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5842
+ withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult, Result = WithResult<T, Name, Q>>(this: T, name: Name, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5873
5843
  [K in keyof Result]: K extends 'result' ? Q['result'] : Result[K];
5874
- }) => Query): Result;
5875
- withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query, Result = WithResult<T, Name, Q>>(this: T, name: Name, options: WithRecursiveOptions, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5844
+ }) => PickQueryResult): Result;
5845
+ withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult, Result = WithResult<T, Name, Q>>(this: T, name: Name, options: WithRecursiveOptions, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5876
5846
  [K in keyof Result]: K extends 'result' ? Q['result'] : Result[K];
5877
- }) => Query): Result;
5847
+ }) => PickQueryResult): Result;
5878
5848
  /**
5879
5849
  * Use `withSql` to add a Common Table Expression (CTE) based on a custom SQL.
5880
5850
  *
@@ -5939,7 +5909,7 @@ type UnionArgs<T extends PickQueryResult> = ({
5939
5909
  };
5940
5910
  };
5941
5911
  } | ((q: T) => Expression))[];
5942
- declare const _queryUnion: <T extends Query>(base: T, args: UnionArgs<T>, k: UnionKind) => T;
5912
+ declare const _queryUnion: <T extends PickQueryResult>(base: T, args: UnionArgs<T>, k: UnionKind) => T;
5943
5913
  declare class Union {
5944
5914
  /**
5945
5915
  * Creates a union query, takes one or more queries or SQL expressions.
@@ -6038,7 +6008,9 @@ type UpdateData<T extends UpdateSelf> = EmptyObject extends T['relations'] ? {
6038
6008
  } : {
6039
6009
  [K in keyof T['inputType'] | keyof T['relations']]?: K extends keyof T['inputType'] ? UpdateColumn<T, K> : UpdateRelationData<T, T['relations'][K]['relationConfig']>;
6040
6010
  };
6041
- type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | ((q: T) => QueryOrExpression<T['inputType'][Key]>);
6011
+ type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | ((q: {
6012
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof T ? T[K] : never;
6013
+ }) => QueryOrExpression<T['inputType'][Key]>);
6042
6014
  type UpdateRelationData<T extends UpdateSelf, Rel extends RelationConfigBase> = T['returnType'] extends undefined | 'all' ? Rel['dataForUpdate'] : Rel['dataForUpdateOne'];
6043
6015
  type UpdateArg<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? UpdateData<T> : never;
6044
6016
  type UpdateRawArgs<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? SQLQueryArgs : never;
@@ -6873,7 +6845,9 @@ declare class TransformMethods {
6873
6845
  *
6874
6846
  * @param fn - function to transform query result with
6875
6847
  */
6876
- transform<T extends Query, Result>(this: T, fn: (input: T['then'] extends QueryThen<infer Data> ? Data : never) => Result): {
6848
+ transform<T extends IsQuery, Result>(this: T, fn: (input: T extends {
6849
+ then: QueryThen<infer Data>;
6850
+ } ? Data : never) => Result): {
6877
6851
  [K in keyof T]: K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
6878
6852
  value: QueryColumn<Result>;
6879
6853
  } : K extends 'then' ? QueryThen<Result> : T[K];
@@ -6921,7 +6895,11 @@ declare class QueryMap {
6921
6895
  *
6922
6896
  * @param fn - function to transform an individual record
6923
6897
  */
6924
- map<T extends Query, Result>(this: T, fn: (input: T['returnType'] extends undefined | 'all' | 'pluck' ? T['then'] extends QueryThen<(infer Data)[]> ? Data : never : T['then'] extends QueryThen<infer Data | undefined> ? Data : never) => Result): Result extends RecordUnknown ? {
6898
+ map<T extends PickQueryReturnType, Result>(this: T, fn: (input: T['returnType'] extends undefined | 'all' | 'pluck' ? T extends {
6899
+ then: QueryThen<(infer Data)[]>;
6900
+ } ? Data : never : T extends {
6901
+ then: QueryThen<infer Data | undefined>;
6902
+ } ? Data : never) => Result): Result extends RecordUnknown ? {
6925
6903
  [K in keyof T]: K extends 'result' ? {
6926
6904
  [K in keyof Result]: QueryColumn<Result[K]>;
6927
6905
  } : K extends 'then' ? QueryThen<T['returnType'] extends undefined | 'all' ? Result[] : Result> : T[K];
@@ -6971,26 +6949,25 @@ interface QueryHelper<T extends PickQueryMetaShape, Args extends any[], Result>
6971
6949
  result: QueryColumns;
6972
6950
  windows: EmptyObject;
6973
6951
  withData: WithDataItems;
6974
- }>(q: Q, ...args: Args): Result extends Query ? MergeQuery<Q, Result> : Result;
6952
+ }>(q: Q, ...args: Args): Result extends PickQueryMetaResultReturnTypeWithDataWindows ? MergeQuery<Q, Result> : Result;
6975
6953
  result: Result;
6976
6954
  }
6977
- type QueryHelperResult<T extends QueryHelper<Query, any[], unknown>> = T['result'];
6955
+ type QueryHelperResult<T extends QueryHelper<PickQueryMetaShape, any[], unknown>> = T['result'];
6978
6956
  type NarrowTypeResult<T extends PickQueryMetaResultReturnType, Narrow> = {
6979
6957
  [K in keyof T['result']]: K extends keyof Narrow ? {
6980
6958
  [P in keyof T['result'][K]]: P extends 'outputType' ? Narrow[K] extends T['result'][K]['outputType'] ? Narrow[K] : `narrowType() error: passed type does not exist in '${K & string}'s type union` : T['result'][K][P];
6981
6959
  } : T['result'][K];
6982
6960
  };
6983
6961
  type WrapQueryArg = FromQuerySelf;
6984
- declare const _queryAll: <T extends Query>(q: T) => SetQueryReturnsAll<T>;
6985
- declare const _queryTake: <T extends PickQueryResult>(q: T) => SetQueryReturnsOne<T>;
6986
- declare const _queryTakeOptional: <T extends PickQueryResult>(q: T) => SetQueryReturnsOneOptional<T>;
6987
- declare const _queryExec: <T extends Query>(q: T) => never;
6988
- declare const _queryFindBy: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOne<WhereResult<T>>;
6989
- declare const _queryFindByOptional: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOneOptional<WhereResult<T>>;
6990
- declare const _queryRows: <T extends Query>(q: T) => SetQueryReturnsRows<T>;
6991
6962
  interface QueryMethods<ColumnTypes> extends AsMethods, AggregateMethods, Select, FromMethods, Join, WithMethods, Union, JsonMethods, Create, Update, Delete, Transaction, For, Where, SearchMethods, Clear, Having, QueryLog, QueryHooks, QueryUpsertOrCreate, QueryGet, MergeQueryMethods, SqlMethod<ColumnTypes>, TransformMethods, QueryMap, ScopeMethods, SoftDeleteMethods, ExpressionMethods {
6992
6963
  }
6993
6964
  declare class QueryMethods<ColumnTypes> {
6965
+ /**
6966
+ * Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.
6967
+ *
6968
+ * Used under the hood, and not really needed on the app side.
6969
+ */
6970
+ clone<T>(this: T): T;
6994
6971
  /**
6995
6972
  * `.all` is a default behavior, that returns an array of objects:
6996
6973
  *
@@ -7325,7 +7302,7 @@ declare class QueryMethods<ColumnTypes> {
7325
7302
  *
7326
7303
  * @param arg - offset number
7327
7304
  */
7328
- offset<T extends Query>(this: T, arg: number | undefined): T;
7305
+ offset<T extends IsQuery>(this: T, arg: number | undefined): T;
7329
7306
  /**
7330
7307
  * Truncates the specified table.
7331
7308
  *
@@ -7455,7 +7432,7 @@ declare class QueryMethods<ColumnTypes> {
7455
7432
  *
7456
7433
  * @param fn - function to modify the query with. The result type will be merged with the main query as if the `merge` method was used.
7457
7434
  */
7458
- modify<T extends PickQueryMetaResultReturnTypeWithDataWindowsTable<string | undefined>, Arg extends PickQueryMetaResultReturnTypeWithDataWindowsTable<T['table']>, Result>(this: T, fn: (q: Arg) => Result): Result extends Query ? MergeQuery<T, Result> : Result;
7435
+ modify<T extends PickQueryMetaResultReturnTypeWithDataWindowsTable<string | undefined>, Arg extends PickQueryMetaResultReturnTypeWithDataWindowsTable<T['table']>, Result>(this: T, fn: (q: Arg) => Result): Result extends PickQueryMetaResultReturnTypeWithDataWindows ? MergeQuery<T, Result> : Result;
7459
7436
  /**
7460
7437
  * Use `makeHelper` to make a query helper - a function where you can modify the query, and reuse this function across different places.
7461
7438
  *
@@ -7536,6 +7513,8 @@ declare class QueryMethods<ColumnTypes> {
7536
7513
  narrowType<T extends PickQueryMetaResultReturnType>(this: T): <Narrow>() => {
7537
7514
  [K in keyof T]: K extends 'result' ? NarrowTypeResult<T, Narrow> : K extends 'then' ? QueryThen<GetQueryResult<T, NarrowTypeResult<T, Narrow>>> : T[K];
7538
7515
  };
7516
+ queryRelated<T extends PickQueryRelations, RelName extends keyof T['relations']>(this: T, relName: RelName, params: T['relations'][RelName]['relationConfig']['params']): T['relations'][RelName]['relationConfig']['maybeSingle'];
7517
+ chain<T extends PickQueryMetaRelations, RelName extends keyof T['relations']>(this: T, relName: RelName): T['meta']['subQuery'] extends true ? T['relations'][RelName]['relationConfig']['maybeSingle'] : T['relations'][RelName]['relationConfig']['query'];
7539
7518
  }
7540
7519
 
7541
7520
  declare const queryMethodByReturnType: {
@@ -7585,6 +7564,7 @@ interface QueryInternal<SinglePrimaryKey = any, UniqueColumns = any, UniqueColum
7585
7564
  nowSQL?: string;
7586
7565
  primaryKeys?: string[];
7587
7566
  columnNameToKeyMap?: Map<string, string>;
7567
+ callbackArg?: Query;
7588
7568
  }
7589
7569
  type SelectableFromShape<Shape extends QueryColumns, Table extends string | undefined> = {
7590
7570
  [K in keyof Shape]: {
@@ -7604,7 +7584,15 @@ interface WithDataItem {
7604
7584
  interface WithDataItems {
7605
7585
  [K: string]: WithDataItem;
7606
7586
  }
7607
- interface Query extends QueryBase, QueryMethods<unknown> {
7587
+ interface Query extends QueryMethods<unknown> {
7588
+ __isQuery: true;
7589
+ result: QueryColumns;
7590
+ table?: string;
7591
+ withData: WithDataItems;
7592
+ baseQuery: Query;
7593
+ internal: QueryInternal;
7594
+ meta: QueryMetaBase<EmptyObject>;
7595
+ returnType: QueryReturnType;
7608
7596
  queryBuilder: Db;
7609
7597
  columnTypes: unknown;
7610
7598
  shape: QueryColumns;
@@ -7637,6 +7625,8 @@ interface PickQueryBaseQuery {
7637
7625
  }
7638
7626
  interface PickQueryMetaRelations extends PickQueryMeta, PickQueryRelations {
7639
7627
  }
7628
+ interface PickQueryMetaRelationsResult extends PickQueryMetaRelations, PickQueryResult {
7629
+ }
7640
7630
  interface PickQueryMetaResultRelations extends PickQueryResult, PickQueryMeta, PickQueryRelations {
7641
7631
  }
7642
7632
  interface PickQueryMetaResultRelationsWindows extends PickQueryMetaResultRelations, PickQueryWindows {
@@ -7690,9 +7680,6 @@ type SelectableOfType<T extends PickQueryMeta, Type> = {
7690
7680
  [K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['type'] extends Type | null ? K : never;
7691
7681
  }[keyof T['meta']['selectable']];
7692
7682
  type SelectableOrExpressionOfType<T extends PickQueryMeta, C extends PickType> = SelectableOfType<T, C['type']> | Expression<QueryColumn<C['type'] | null>>;
7693
- interface QueryWithTable extends Query {
7694
- table: string;
7695
- }
7696
7683
  declare const queryTypeWithLimitOne: RecordKeyTrue;
7697
7684
  declare const isQueryReturnsAll: (q: Query) => boolean;
7698
7685
  type GetQueryResult<T extends PickQueryReturnType, Result extends QueryColumns> = T['returnType'] extends undefined | 'all' ? ColumnShapeOutput<Result>[] : T['returnType'] extends 'one' ? ColumnShapeOutput<Result> | undefined : T['returnType'] extends 'oneOrThrow' ? ColumnShapeOutput<Result> : T['returnType'] extends 'value' ? Result['value']['outputType'] | undefined : T['returnType'] extends 'valueOrThrow' ? Result['value']['outputType'] : T['returnType'] extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : T['returnType'] extends 'pluck' ? Result['pluck']['outputType'][] : void;
@@ -8337,6 +8324,10 @@ declare const escapeForLog: (value: Value) => string;
8337
8324
  declare const escapeForMigration: (value: Value) => string;
8338
8325
  declare const escapeString: (value: string) => string;
8339
8326
 
8327
+ /**
8328
+ * Call `.clone()` on a supposed query object
8329
+ */
8330
+ declare const _clone: (q: unknown) => Query;
8340
8331
  /**
8341
8332
  * Push all elements of given array into the array in the query data,
8342
8333
  * set given array if there is no array yet in the query data.
@@ -8375,7 +8366,7 @@ declare const setQueryObjectValue: <T extends {
8375
8366
  */
8376
8367
  declare const throwIfNoWhere: (q: PickQueryQ, method: string) => void;
8377
8368
  declare const throwIfJoinLateral: (q: PickQueryQ, method: string) => void;
8378
- declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' | 'withShapes') => string;
8369
+ declare const saveSearchAlias: (q: IsQuery, as: string, key: 'joinedShapes' | 'withShapes') => string;
8379
8370
  /**
8380
8371
  * Extend query prototype with new methods.
8381
8372
  * The query and its data are cloned (with Object.create).
@@ -8385,6 +8376,13 @@ declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' |
8385
8376
  */
8386
8377
  declare const extendQuery: <T extends PickQueryQAndBaseQuery, Methods extends RecordUnknown>(q: T, methods: Methods) => T & Methods;
8387
8378
  declare const getPrimaryKeys: (q: Query) => string[];
8379
+ declare const _queryAll: <T extends PickQueryResult>(q: T) => SetQueryReturnsAll<T>;
8380
+ declare const _queryTake: <T extends PickQueryResult>(q: T) => SetQueryReturnsOne<T>;
8381
+ declare const _queryTakeOptional: <T extends PickQueryResult>(q: T) => SetQueryReturnsOneOptional<T>;
8382
+ declare const _queryExec: <T extends IsQuery>(q: T) => never;
8383
+ declare const _queryFindBy: <T extends PickQueryMetaRelationsResult>(q: T, args: WhereArgs<T>) => SetQueryReturnsOne<WhereResult<T>>;
8384
+ declare const _queryFindByOptional: <T extends PickQueryMetaRelationsResult>(q: T, args: WhereArgs<T>) => SetQueryReturnsOneOptional<WhereResult<T>>;
8385
+ declare const _queryRows: <T extends PickQueryResult>(q: T) => SetQueryReturnsRows<T>;
8388
8386
 
8389
8387
  type Arg = {
8390
8388
  $queryBuilder: Query;
@@ -8508,4 +8506,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8508
8506
  */
8509
8507
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8510
8508
 
8511
- 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, GeneratorIgnore, 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, 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, PostgisGeographyPointColumn, PostgisPoint, 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, QueryResultByReturnType, 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, SetQueryReturnsRowCountMany, 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, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, 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, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
8509
+ 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, GeneratorIgnore, 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, 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, PickQueryMetaRelationsResult, 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, PostgisGeographyPointColumn, PostgisPoint, Query, QueryAfterHook, QueryArraysResult, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryResultByReturnType, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, 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, SetQueryReturnsRowCountMany, 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, _clone, _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, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, 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, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };