pqb 0.0.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 +3630 -0
- package/dist/index.esm.js +4587 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +4691 -0
- package/dist/index.js.map +1 -0
- package/package.json +59 -0
- package/rollup.config.js +35 -0
- package/src/adapter.test.ts +10 -0
- package/src/adapter.ts +171 -0
- package/src/columnSchema/array.ts +21 -0
- package/src/columnSchema/boolean.ts +10 -0
- package/src/columnSchema/columnType.test.ts +129 -0
- package/src/columnSchema/columnType.ts +77 -0
- package/src/columnSchema/columnTypes.ts +145 -0
- package/src/columnSchema/columnsSchema.test.ts +32 -0
- package/src/columnSchema/columnsSchema.ts +100 -0
- package/src/columnSchema/commonMethods.ts +130 -0
- package/src/columnSchema/dateTime.ts +104 -0
- package/src/columnSchema/enum.ts +13 -0
- package/src/columnSchema/index.ts +11 -0
- package/src/columnSchema/json/array.ts +55 -0
- package/src/columnSchema/json/discriminatedUnion.ts +91 -0
- package/src/columnSchema/json/enum.ts +29 -0
- package/src/columnSchema/json/instanceOf.ts +16 -0
- package/src/columnSchema/json/intersection.ts +23 -0
- package/src/columnSchema/json/lazy.ts +22 -0
- package/src/columnSchema/json/literal.ts +12 -0
- package/src/columnSchema/json/map.ts +29 -0
- package/src/columnSchema/json/nativeEnum.ts +30 -0
- package/src/columnSchema/json/nullable.ts +33 -0
- package/src/columnSchema/json/nullish.ts +30 -0
- package/src/columnSchema/json/object.ts +206 -0
- package/src/columnSchema/json/optional.ts +28 -0
- package/src/columnSchema/json/record.ts +40 -0
- package/src/columnSchema/json/scalarTypes.ts +117 -0
- package/src/columnSchema/json/set.ts +34 -0
- package/src/columnSchema/json/tuple.ts +40 -0
- package/src/columnSchema/json/typeBase.ts +202 -0
- package/src/columnSchema/json/union.ts +16 -0
- package/src/columnSchema/json.ts +64 -0
- package/src/columnSchema/number.ts +122 -0
- package/src/columnSchema/string.ts +222 -0
- package/src/columnSchema/utils.ts +27 -0
- package/src/common.ts +86 -0
- package/src/db.test.ts +67 -0
- package/src/db.ts +212 -0
- package/src/errors.ts +7 -0
- package/src/index.ts +18 -0
- package/src/operators.test.ts +608 -0
- package/src/operators.ts +177 -0
- package/src/query.ts +292 -0
- package/src/queryDataUtils.ts +50 -0
- package/src/queryMethods/aggregate.test.ts +583 -0
- package/src/queryMethods/aggregate.ts +878 -0
- package/src/queryMethods/callbacks.test.ts +69 -0
- package/src/queryMethods/callbacks.ts +55 -0
- package/src/queryMethods/clear.test.ts +64 -0
- package/src/queryMethods/clear.ts +58 -0
- package/src/queryMethods/columnInfo.test.ts +45 -0
- package/src/queryMethods/columnInfo.ts +67 -0
- package/src/queryMethods/delete.test.ts +135 -0
- package/src/queryMethods/delete.ts +50 -0
- package/src/queryMethods/for.test.ts +57 -0
- package/src/queryMethods/for.ts +99 -0
- package/src/queryMethods/from.test.ts +66 -0
- package/src/queryMethods/from.ts +58 -0
- package/src/queryMethods/get.test.ts +66 -0
- package/src/queryMethods/get.ts +88 -0
- package/src/queryMethods/having.test.ts +247 -0
- package/src/queryMethods/having.ts +99 -0
- package/src/queryMethods/insert.test.ts +555 -0
- package/src/queryMethods/insert.ts +453 -0
- package/src/queryMethods/join.test.ts +150 -0
- package/src/queryMethods/join.ts +508 -0
- package/src/queryMethods/json.test.ts +398 -0
- package/src/queryMethods/json.ts +259 -0
- package/src/queryMethods/log.test.ts +172 -0
- package/src/queryMethods/log.ts +123 -0
- package/src/queryMethods/queryMethods.test.ts +629 -0
- package/src/queryMethods/queryMethods.ts +428 -0
- package/src/queryMethods/select.test.ts +479 -0
- package/src/queryMethods/select.ts +249 -0
- package/src/queryMethods/then.ts +236 -0
- package/src/queryMethods/transaction.test.ts +66 -0
- package/src/queryMethods/transaction.ts +66 -0
- package/src/queryMethods/union.test.ts +59 -0
- package/src/queryMethods/union.ts +89 -0
- package/src/queryMethods/update.test.ts +417 -0
- package/src/queryMethods/update.ts +350 -0
- package/src/queryMethods/upsert.test.ts +56 -0
- package/src/queryMethods/upsert.ts +43 -0
- package/src/queryMethods/where.test.ts +1594 -0
- package/src/queryMethods/where.ts +450 -0
- package/src/queryMethods/window.test.ts +66 -0
- package/src/queryMethods/window.ts +108 -0
- package/src/queryMethods/with.test.ts +191 -0
- package/src/queryMethods/with.ts +92 -0
- package/src/quote.ts +36 -0
- package/src/relations.ts +194 -0
- package/src/sql/aggregate.ts +80 -0
- package/src/sql/columnInfo.ts +22 -0
- package/src/sql/common.ts +42 -0
- package/src/sql/delete.ts +41 -0
- package/src/sql/distinct.ts +19 -0
- package/src/sql/fromAndAs.ts +51 -0
- package/src/sql/having.ts +140 -0
- package/src/sql/index.ts +2 -0
- package/src/sql/insert.ts +102 -0
- package/src/sql/join.ts +242 -0
- package/src/sql/orderBy.ts +41 -0
- package/src/sql/select.ts +153 -0
- package/src/sql/toSql.ts +153 -0
- package/src/sql/truncate.ts +13 -0
- package/src/sql/types.ts +355 -0
- package/src/sql/update.ts +62 -0
- package/src/sql/where.ts +314 -0
- package/src/sql/window.ts +38 -0
- package/src/sql/with.ts +32 -0
- package/src/test-utils.ts +172 -0
- package/src/utils.ts +140 -0
- package/tsconfig.build.json +6 -0
- package/tsconfig.json +8 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,3630 @@
|
|
|
1
|
+
import { PoolConfig, Pool, PoolClient } from 'pg';
|
|
2
|
+
|
|
3
|
+
declare type AliasOrTable<T extends Pick<Query, 'tableAlias' | 'table'>> = T['tableAlias'] extends string ? T['tableAlias'] : T['table'] extends string ? T['table'] : never;
|
|
4
|
+
declare type StringKey<K extends PropertyKey> = Exclude<K, symbol | number>;
|
|
5
|
+
declare type RawExpression<C extends ColumnType = ColumnType> = {
|
|
6
|
+
__raw: string;
|
|
7
|
+
__values: unknown[];
|
|
8
|
+
__column: C;
|
|
9
|
+
};
|
|
10
|
+
declare type Expression<T extends Query = Query, C extends ColumnType = ColumnType> = keyof T['selectable'] | RawExpression<C>;
|
|
11
|
+
declare type ExpressionOfType<T extends Query, C extends ColumnType, Type> = {
|
|
12
|
+
[K in keyof T['selectable']]: ColumnOutput<T['selectable'][K]['column']> extends Type | null ? K : never;
|
|
13
|
+
}[Selectable<T>] | RawExpression<C>;
|
|
14
|
+
declare type NumberExpression<T extends Query, C extends ColumnType = ColumnType> = ExpressionOfType<T, C, number>;
|
|
15
|
+
declare type StringExpression<T extends Query, C extends ColumnType = ColumnType> = ExpressionOfType<T, C, string>;
|
|
16
|
+
declare type BooleanExpression<T extends Query, C extends ColumnType = ColumnType> = ExpressionOfType<T, C, boolean>;
|
|
17
|
+
declare type ExpressionOutput<T extends Query, Expr extends Expression<T>> = Expr extends keyof T['selectable'] ? T['selectable'][Expr]['column'] : Expr extends RawExpression<infer ColumnType> ? ColumnType : never;
|
|
18
|
+
declare const raw: <C extends ColumnType<unknown, Operators, unknown>>(sql: string, ...values: unknown[]) => RawExpression<C>;
|
|
19
|
+
declare const rawColumn: <C extends ColumnType<unknown, Operators, unknown>>(column: C, sql: string, ...values: unknown[]) => RawExpression<C>;
|
|
20
|
+
declare const isRaw: (obj: object) => obj is RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
21
|
+
declare const getRaw: (raw: RawExpression, values: unknown[]) => string;
|
|
22
|
+
declare const EMPTY_OBJECT: {};
|
|
23
|
+
declare const getQueryParsers: (q: Query) => ColumnsParsers | undefined;
|
|
24
|
+
|
|
25
|
+
declare type WithSelectable<T extends QueryBase, W extends keyof T['withData']> = T['withData'][W] extends WithDataItem ? StringKey<keyof T['withData'][W]['shape']> | `${T['withData'][W]['table']}.${StringKey<keyof T['withData'][W]['shape']>}` : never;
|
|
26
|
+
declare type JoinArgs<T extends QueryBase, Q extends Query = Query, R extends keyof T['relations'] = keyof T['relations'], W extends keyof T['withData'] = keyof T['withData']> = [relation: R] | [
|
|
27
|
+
query: Q,
|
|
28
|
+
conditions: Record<Selectable<Q>, Selectable<T> | RawExpression> | RawExpression
|
|
29
|
+
] | [
|
|
30
|
+
withAlias: W,
|
|
31
|
+
conditions: Record<WithSelectable<T, W>, Selectable<T> | RawExpression> | RawExpression
|
|
32
|
+
] | [
|
|
33
|
+
query: Q,
|
|
34
|
+
leftColumn: Selectable<Q> | RawExpression,
|
|
35
|
+
rightColumn: Selectable<T> | RawExpression
|
|
36
|
+
] | [
|
|
37
|
+
withAlias: W,
|
|
38
|
+
leftColumn: WithSelectable<T, W> | RawExpression,
|
|
39
|
+
rightColumn: Selectable<T> | RawExpression
|
|
40
|
+
] | [
|
|
41
|
+
query: Q,
|
|
42
|
+
leftColumn: Selectable<Q> | RawExpression,
|
|
43
|
+
op: string,
|
|
44
|
+
rightColumn: Selectable<T> | RawExpression
|
|
45
|
+
] | [
|
|
46
|
+
withAlias: W,
|
|
47
|
+
leftColumn: WithSelectable<T, W> | RawExpression,
|
|
48
|
+
op: string,
|
|
49
|
+
rightColumn: Selectable<T> | RawExpression
|
|
50
|
+
];
|
|
51
|
+
declare type JoinResult<T extends Query, Args extends JoinArgs<T>, A extends Query | keyof T['relations'] = Args[0]> = AddQueryJoinedTable<T, A extends Query ? A : T['relations'] extends Record<string, Relation> ? A extends keyof T['relations'] ? T['relations'][A]['model'] : A extends keyof T['withData'] ? T['withData'][A] extends WithDataItem ? {
|
|
52
|
+
table: T['withData'][A]['table'];
|
|
53
|
+
tableAlias: undefined;
|
|
54
|
+
result: T['withData'][A]['shape'];
|
|
55
|
+
} : never : never : never>;
|
|
56
|
+
declare type JoinCallbackArg<T extends QueryBase> = Query | keyof T['withData'] | keyof T['relations'];
|
|
57
|
+
declare type JoinCallback<T extends QueryBase, Arg extends JoinCallbackArg<T>> = (q: OnQueryBuilder<T, Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
58
|
+
table: T['withData'][Arg]['table'];
|
|
59
|
+
tableAlias: undefined;
|
|
60
|
+
shape: T['withData'][Arg]['shape'];
|
|
61
|
+
selectable: {
|
|
62
|
+
[K in keyof T['withData'][Arg]['shape'] as `${T['withData'][Arg]['table']}.${StringKey<K>}`]: {
|
|
63
|
+
as: StringKey<K>;
|
|
64
|
+
column: T['withData'][Arg]['shape'][K];
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
} : never : Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['model'] : never : never>) => OnQueryBuilder;
|
|
68
|
+
declare type JoinCallbackResult<T extends Query, Arg extends JoinCallbackArg<T>> = AddQueryJoinedTable<T, Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['model'] : Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
69
|
+
table: T['withData'][Arg]['table'];
|
|
70
|
+
tableAlias: undefined;
|
|
71
|
+
result: T['withData'][Arg]['shape'];
|
|
72
|
+
} : never : never : never>;
|
|
73
|
+
declare class Join {
|
|
74
|
+
join<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
75
|
+
join<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
76
|
+
_join<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
77
|
+
_join<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
78
|
+
innerJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
79
|
+
innerJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
80
|
+
_innerJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
81
|
+
_innerJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
82
|
+
leftJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
83
|
+
leftJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
84
|
+
_leftJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
85
|
+
_leftJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
86
|
+
leftOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
87
|
+
leftOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
88
|
+
_leftOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
89
|
+
_leftOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
90
|
+
rightJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
91
|
+
rightJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
92
|
+
_rightJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
93
|
+
_rightJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
94
|
+
rightOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
95
|
+
rightOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
96
|
+
_rightOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
97
|
+
_rightOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
98
|
+
fullOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
99
|
+
fullOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
100
|
+
_fullOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T, Args>;
|
|
101
|
+
_fullOuterJoin<T extends Query, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
102
|
+
}
|
|
103
|
+
declare type PickQueryForSelect<T extends QueryBase = QueryBase> = Pick<T, 'table' | 'tableAlias' | 'selectable'>;
|
|
104
|
+
declare type OnArgs<Q extends {
|
|
105
|
+
selectable: SelectableBase;
|
|
106
|
+
}> = [leftColumn: keyof Q['selectable'], rightColumn: keyof Q['selectable']] | [
|
|
107
|
+
leftColumn: keyof Q['selectable'],
|
|
108
|
+
op: string,
|
|
109
|
+
rightColumn: keyof Q['selectable']
|
|
110
|
+
];
|
|
111
|
+
declare const pushQueryOn: <T extends QueryBase>(q: T, joinFrom: QueryBase | string, joinTo: QueryBase | string, ...on: OnArgs<QueryBase>) => T;
|
|
112
|
+
declare const pushQueryOrOn: typeof pushQueryOn;
|
|
113
|
+
declare const addQueryOn: typeof pushQueryOrOn;
|
|
114
|
+
declare const addQueryOrOn: typeof pushQueryOrOn;
|
|
115
|
+
declare type OnJsonPathEqualsArgs<T extends QueryBase> = [
|
|
116
|
+
leftColumn: keyof T['selectable'],
|
|
117
|
+
leftPath: string,
|
|
118
|
+
rightColumn: keyof T['selectable'],
|
|
119
|
+
rightPath: string
|
|
120
|
+
];
|
|
121
|
+
declare class OnQueryBuilder<S extends QueryBase = QueryBase, J extends PickQueryForSelect = PickQueryForSelect> extends WhereQueryBuilder<Omit<S, 'selectable'> & {
|
|
122
|
+
selectable: S['selectable'] & J['selectable'];
|
|
123
|
+
}> implements QueryBase {
|
|
124
|
+
joinTo: QueryBase | string;
|
|
125
|
+
constructor(q: {
|
|
126
|
+
table?: string;
|
|
127
|
+
query: {
|
|
128
|
+
as?: string;
|
|
129
|
+
};
|
|
130
|
+
}, joinTo: QueryBase | string);
|
|
131
|
+
on<T extends this>(this: T, ...args: OnArgs<T>): T;
|
|
132
|
+
_on<T extends this>(this: T, ...args: OnArgs<T>): T;
|
|
133
|
+
orOn<T extends this>(this: T, ...args: OnArgs<T>): T;
|
|
134
|
+
_orOn<T extends this>(this: T, ...args: OnArgs<T>): T;
|
|
135
|
+
onJsonPathEquals<T extends this>(this: T, ...args: OnJsonPathEqualsArgs<T>): T;
|
|
136
|
+
_onJsonPathEquals<T extends this>(this: T, ...args: OnJsonPathEqualsArgs<T>): T;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
declare type WhereArg<T extends QueryBase> = (Omit<{
|
|
140
|
+
[K in keyof T['selectable']]?: T['selectable'][K]['column']['type'] | null | ColumnOperators<T['selectable'], K> | RawExpression;
|
|
141
|
+
}, 'NOT' | 'OR' | 'IN' | 'EXISTS'> & {
|
|
142
|
+
NOT?: MaybeArray<WhereArg<T>>;
|
|
143
|
+
OR?: MaybeArray<WhereArg<T>>[];
|
|
144
|
+
IN?: MaybeArray<{
|
|
145
|
+
columns: (keyof T['selectable'])[];
|
|
146
|
+
values: unknown[][] | Query | RawExpression;
|
|
147
|
+
}>;
|
|
148
|
+
EXISTS?: MaybeArray<JoinArgs<T> | JoinCallbackArg<T>>;
|
|
149
|
+
}) | QueryBase | RawExpression | ((q: WhereQueryBuilder<T>) => WhereQueryBuilder);
|
|
150
|
+
declare type WhereInColumn<T extends QueryBase> = keyof T['selectable'] | [keyof T['selectable'], ...(keyof T['selectable'])[]];
|
|
151
|
+
declare type WhereInValues<T extends QueryBase, Column extends WhereInColumn<T>> = Column extends keyof T['selectable'] ? T['selectable'][Column]['column']['type'][] | Query | RawExpression : ({
|
|
152
|
+
[I in keyof Column]: Column[I] extends keyof T['selectable'] ? T['selectable'][Column[I]]['column']['type'] : never;
|
|
153
|
+
} & {
|
|
154
|
+
length: Column extends {
|
|
155
|
+
length: number;
|
|
156
|
+
} ? Column['length'] : never;
|
|
157
|
+
})[] | Query | RawExpression;
|
|
158
|
+
declare type WhereResult<T extends QueryBase> = Omit<T, 'hasWhere'> & {
|
|
159
|
+
hasWhere: true;
|
|
160
|
+
};
|
|
161
|
+
declare type WhereInArg<T extends Pick<Query, 'selectable'>> = {
|
|
162
|
+
[K in keyof T['selectable']]?: T['selectable'][K]['column']['type'][] | Query | RawExpression;
|
|
163
|
+
};
|
|
164
|
+
declare abstract class Where implements QueryBase {
|
|
165
|
+
abstract clone<T extends this>(this: T): T;
|
|
166
|
+
abstract selectable: SelectableBase;
|
|
167
|
+
abstract relations: RelationsBase;
|
|
168
|
+
abstract withData: WithDataBase;
|
|
169
|
+
abstract __model: Query;
|
|
170
|
+
query: QueryData;
|
|
171
|
+
table?: string;
|
|
172
|
+
tableAlias?: string;
|
|
173
|
+
where<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
174
|
+
_where<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
175
|
+
whereNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
176
|
+
_whereNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
177
|
+
and<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
178
|
+
_and<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
179
|
+
andNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
180
|
+
_andNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
181
|
+
or<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
182
|
+
_or<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
183
|
+
orNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
184
|
+
_orNot<T extends Where>(this: T, ...args: WhereArg<T>[]): WhereResult<T>;
|
|
185
|
+
whereIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): T;
|
|
186
|
+
whereIn<T extends Where>(this: T, arg: WhereInArg<T>): T;
|
|
187
|
+
_whereIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
188
|
+
_whereIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
189
|
+
orWhereIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
190
|
+
orWhereIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
191
|
+
_orWhereIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
192
|
+
_orWhereIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
193
|
+
whereNotIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
194
|
+
whereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
195
|
+
_whereNotIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
196
|
+
_whereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
197
|
+
orWhereNotIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
198
|
+
orWhereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
199
|
+
_orWhereNotIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
200
|
+
_orWhereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
201
|
+
whereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
202
|
+
whereExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
203
|
+
_whereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
204
|
+
_whereExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
205
|
+
orWhereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
206
|
+
orWhereExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
207
|
+
_orWhereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
208
|
+
_orWhereExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
209
|
+
whereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
210
|
+
whereNotExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
211
|
+
_whereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
212
|
+
_whereNotExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
213
|
+
orWhereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
214
|
+
orWhereNotExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
215
|
+
_orWhereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
216
|
+
_orWhereNotExists<T extends Where, Arg extends JoinCallbackArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
217
|
+
}
|
|
218
|
+
declare class WhereQueryBuilder<Q extends QueryBase = QueryBase> extends Where implements QueryBase {
|
|
219
|
+
table: Q['table'];
|
|
220
|
+
tableAlias: Q['tableAlias'];
|
|
221
|
+
query: QueryData;
|
|
222
|
+
selectable: Q['selectable'];
|
|
223
|
+
__model: Query;
|
|
224
|
+
relations: {};
|
|
225
|
+
withData: {};
|
|
226
|
+
constructor(table: Q['table'], tableAlias: Q['tableAlias']);
|
|
227
|
+
clone<T extends this>(this: T): T;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
declare type OptionalKeys<T extends Query> = {
|
|
231
|
+
[K in keyof T['shape']]: T['shape'][K]['isPrimaryKey'] extends true ? K : T['shape'][K]['isNullable'] extends true ? K : never;
|
|
232
|
+
}[keyof T['shape']];
|
|
233
|
+
declare type InsertData<T extends Query, DefaultKeys extends string = T[defaultsKey] extends string ? T[defaultsKey] : never, Data = SetOptional<SetOptional<T['inputType'], OptionalKeys<T>>, DefaultKeys>> = [keyof T['relations']] extends [never] ? Data : Omit<Data, {
|
|
234
|
+
[K in keyof T['relations']]: T['relations'][K] extends BelongsToRelation ? T['relations'][K]['options']['foreignKey'] : never;
|
|
235
|
+
}[keyof T['relations']]> & {
|
|
236
|
+
[Key in keyof T['relations']]: T['relations'][Key] extends BelongsToRelation ? SetOptional<{
|
|
237
|
+
[K in T['relations'][Key]['options']['foreignKey']]: T['relations'][Key]['options']['foreignKey'] extends keyof T['inputType'] ? T['inputType'][T['relations'][Key]['options']['foreignKey']] : never;
|
|
238
|
+
}, DefaultKeys> | {
|
|
239
|
+
[K in Key]: {
|
|
240
|
+
create?: InsertData<T['relations'][Key]['nestedCreateQuery']>;
|
|
241
|
+
connect?: WhereArg<T['relations'][Key]['model']>;
|
|
242
|
+
};
|
|
243
|
+
} : T['relations'][Key] extends HasOneRelation ? 'through' extends T['relations'][Key]['options'] ? {} : {
|
|
244
|
+
[K in Key]?: {
|
|
245
|
+
create?: InsertData<T['relations'][Key]['nestedCreateQuery']>;
|
|
246
|
+
connect?: WhereArg<T['relations'][Key]['model']>;
|
|
247
|
+
};
|
|
248
|
+
} : T['relations'][Key] extends Relation ? 'through' extends T['relations'][Key]['options'] ? {} : {
|
|
249
|
+
[K in Key]?: {
|
|
250
|
+
create?: InsertData<T['relations'][Key]['nestedCreateQuery']>[];
|
|
251
|
+
connect?: WhereArg<T['relations'][Key]['model']>[];
|
|
252
|
+
connectOrCreate?: {
|
|
253
|
+
where: WhereArg<T['relations'][Key]['model']>;
|
|
254
|
+
create: InsertData<T['relations'][Key]['nestedCreateQuery']>;
|
|
255
|
+
}[];
|
|
256
|
+
};
|
|
257
|
+
} : {};
|
|
258
|
+
}[keyof T['relations']];
|
|
259
|
+
declare type InsertOneResult<T extends Query> = T['hasSelect'] extends false ? SetQueryReturnsRowCount<T> : T['returnType'] extends 'all' ? SetQueryReturnsOne<T> : T['returnType'] extends 'one' ? SetQueryReturnsOne<T> : T;
|
|
260
|
+
declare type InsertManyResult<T extends Query> = T['hasSelect'] extends false ? SetQueryReturnsRowCount<T> : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAll<T> : T;
|
|
261
|
+
declare type OnConflictArg<T extends Query> = keyof T['shape'] | (keyof T['shape'])[] | RawExpression;
|
|
262
|
+
declare class Insert {
|
|
263
|
+
insert<T extends Query>(this: T, data: InsertData<T>): InsertOneResult<T>;
|
|
264
|
+
insert<T extends Query>(this: T, data: InsertData<T>[] | {
|
|
265
|
+
columns: string[];
|
|
266
|
+
values: RawExpression;
|
|
267
|
+
}): InsertManyResult<T>;
|
|
268
|
+
_insert<T extends Query>(this: T, data: InsertData<T>): InsertOneResult<T>;
|
|
269
|
+
_insert<T extends Query>(this: T, data: InsertData<T>[] | {
|
|
270
|
+
columns: string[];
|
|
271
|
+
values: RawExpression;
|
|
272
|
+
}): InsertManyResult<T>;
|
|
273
|
+
create<T extends Query>(this: T, data: InsertData<T>): SetQueryReturnsOne<T>;
|
|
274
|
+
create<T extends Query>(this: T, data: InsertData<T>[] | {
|
|
275
|
+
columns: string[];
|
|
276
|
+
values: RawExpression;
|
|
277
|
+
}): SetQueryReturnsAll<T>;
|
|
278
|
+
_create<T extends Query>(this: T, data: InsertData<T>): SetQueryReturnsOne<T>;
|
|
279
|
+
_create<T extends Query>(this: T, data: InsertData<T>[] | {
|
|
280
|
+
columns: string[];
|
|
281
|
+
values: RawExpression;
|
|
282
|
+
}): SetQueryReturnsAll<T>;
|
|
283
|
+
defaults<T extends Query, Data extends Partial<InsertData<T>>>(this: T, data: Data): T & {
|
|
284
|
+
[defaultsKey]: keyof Data;
|
|
285
|
+
};
|
|
286
|
+
_defaults<T extends Query, Data extends Partial<InsertData<T>>>(this: T, data: Data): T & {
|
|
287
|
+
[defaultsKey]: keyof Data;
|
|
288
|
+
};
|
|
289
|
+
onConflict<T extends Query, Arg extends OnConflictArg<T>>(this: T, arg?: Arg): OnConflictQueryBuilder<T, Arg>;
|
|
290
|
+
_onConflict<T extends Query, Arg extends OnConflictArg<T> | undefined = undefined>(this: T, arg?: Arg): OnConflictQueryBuilder<T, Arg>;
|
|
291
|
+
}
|
|
292
|
+
declare class OnConflictQueryBuilder<T extends Query, Arg extends OnConflictArg<T> | undefined> {
|
|
293
|
+
private query;
|
|
294
|
+
private onConflict;
|
|
295
|
+
constructor(query: T, onConflict: Arg);
|
|
296
|
+
ignore(): T;
|
|
297
|
+
merge(update?: keyof T['shape'] | (keyof T['shape'])[] | Partial<T['inputType']> | RawExpression): T;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
declare type UpdateData<T extends Query> = {
|
|
301
|
+
[K in keyof T['type']]?: T['type'][K] | RawExpression;
|
|
302
|
+
} & (T['relations'] extends Record<string, Relation> ? {
|
|
303
|
+
[K in keyof T['relations']]?: T['relations'][K]['type'] extends 'belongsTo' ? {
|
|
304
|
+
disconnect: boolean;
|
|
305
|
+
} | {
|
|
306
|
+
set: WhereArg<T['relations'][K]['model']>;
|
|
307
|
+
} | {
|
|
308
|
+
delete: boolean;
|
|
309
|
+
} | {
|
|
310
|
+
update: UpdateData<T['relations'][K]['model']>;
|
|
311
|
+
} | (T['returnType'] extends 'one' | 'oneOrThrow' ? {
|
|
312
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>;
|
|
313
|
+
} | {
|
|
314
|
+
upsert: {
|
|
315
|
+
update: UpdateData<T['relations'][K]['model']>;
|
|
316
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>;
|
|
317
|
+
};
|
|
318
|
+
} : never) : T['relations'][K]['type'] extends 'hasOne' ? {
|
|
319
|
+
disconnect: boolean;
|
|
320
|
+
} | {
|
|
321
|
+
delete: boolean;
|
|
322
|
+
} | {
|
|
323
|
+
update: UpdateData<T['relations'][K]['model']>;
|
|
324
|
+
} | (T['returnType'] extends 'one' | 'oneOrThrow' ? {
|
|
325
|
+
set: WhereArg<T['relations'][K]['model']>;
|
|
326
|
+
} | {
|
|
327
|
+
upsert: {
|
|
328
|
+
update: UpdateData<T['relations'][K]['model']>;
|
|
329
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>;
|
|
330
|
+
};
|
|
331
|
+
} | {
|
|
332
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>;
|
|
333
|
+
} : never) : T['relations'][K]['type'] extends 'hasMany' ? {
|
|
334
|
+
disconnect: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
335
|
+
} | {
|
|
336
|
+
delete: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
337
|
+
} | {
|
|
338
|
+
update: {
|
|
339
|
+
where: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
340
|
+
data: UpdateData<T['relations'][K]['model']>;
|
|
341
|
+
};
|
|
342
|
+
} | (T['returnType'] extends 'one' | 'oneOrThrow' ? {
|
|
343
|
+
set: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
344
|
+
} | {
|
|
345
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>[];
|
|
346
|
+
} : never) : T['relations'][K]['type'] extends 'hasAndBelongsToMany' ? {
|
|
347
|
+
disconnect: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
348
|
+
} | {
|
|
349
|
+
set: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
350
|
+
} | {
|
|
351
|
+
delete: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
352
|
+
} | {
|
|
353
|
+
update: {
|
|
354
|
+
where: MaybeArray<WhereArg<T['relations'][K]['model']>>;
|
|
355
|
+
data: UpdateData<T['relations'][K]['model']>;
|
|
356
|
+
};
|
|
357
|
+
} | {
|
|
358
|
+
create: InsertData<T['relations'][K]['nestedCreateQuery']>[];
|
|
359
|
+
} : never;
|
|
360
|
+
} : {});
|
|
361
|
+
declare type UpdateArgs<T extends Query, ForceAll extends boolean> = (T['hasWhere'] extends true ? true : ForceAll) extends true ? [update: RawExpression | UpdateData<T>, forceAll?: ForceAll] : [update: RawExpression | UpdateData<T>, forceAll: true];
|
|
362
|
+
declare type UpdateResult<T extends Query> = T['hasSelect'] extends false ? SetQueryReturnsRowCount<T> : T;
|
|
363
|
+
declare type ChangeCountArg<T extends Query> = keyof T['shape'] | Partial<Record<keyof T['shape'], number>>;
|
|
364
|
+
declare class Update {
|
|
365
|
+
update<T extends Query, ForceAll extends boolean = false>(this: T, ...args: UpdateArgs<T, ForceAll>): UpdateResult<T>;
|
|
366
|
+
_update<T extends Query, ForceAll extends boolean = false>(this: T, ...args: UpdateArgs<T, ForceAll>): UpdateResult<T>;
|
|
367
|
+
updateOrThrow<T extends Query, ForceAll extends boolean = false>(this: T, ...args: UpdateArgs<T, ForceAll>): UpdateResult<T>;
|
|
368
|
+
_updateOrThrow<T extends Query, ForceAll extends boolean = false>(this: T, ...args: UpdateArgs<T, ForceAll>): UpdateResult<T>;
|
|
369
|
+
increment<T extends Query>(this: T, data: ChangeCountArg<T>): UpdateResult<T>;
|
|
370
|
+
_increment<T extends Query>(this: T, data: ChangeCountArg<T>): UpdateResult<T>;
|
|
371
|
+
decrement<T extends Query>(this: T, data: ChangeCountArg<T>): UpdateResult<T>;
|
|
372
|
+
_decrement<T extends Query>(this: T, data: ChangeCountArg<T>): UpdateResult<T>;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
declare type NestedInsertOneItem = {
|
|
376
|
+
create?: Record<string, unknown>;
|
|
377
|
+
connect?: WhereArg<QueryBase>;
|
|
378
|
+
};
|
|
379
|
+
declare type NestedInsertManyItems = {
|
|
380
|
+
create?: Record<string, unknown>[];
|
|
381
|
+
connect?: WhereArg<QueryBase>[];
|
|
382
|
+
connectOrCreate?: {
|
|
383
|
+
where: WhereArg<QueryBase>;
|
|
384
|
+
create: Record<string, unknown>;
|
|
385
|
+
}[];
|
|
386
|
+
};
|
|
387
|
+
declare type NestedInsertItem = NestedInsertOneItem | NestedInsertManyItems;
|
|
388
|
+
declare type BelongsToNestedInsert = (query: Query, relationData: NestedInsertOneItem[]) => Promise<Record<string, unknown>[]>;
|
|
389
|
+
declare type HasOneNestedInsert = (query: Query, data: [
|
|
390
|
+
selfData: Record<string, unknown>,
|
|
391
|
+
relationData: NestedInsertOneItem
|
|
392
|
+
][]) => Promise<void>;
|
|
393
|
+
declare type HasManyNestedInsert = (query: Query, data: [
|
|
394
|
+
selfData: Record<string, unknown>,
|
|
395
|
+
relationData: NestedInsertManyItems
|
|
396
|
+
][]) => Promise<void>;
|
|
397
|
+
declare type NestedUpdateOneItem = {
|
|
398
|
+
disconnect?: boolean;
|
|
399
|
+
set?: WhereArg<QueryBase>;
|
|
400
|
+
delete?: boolean;
|
|
401
|
+
update?: UpdateData<Query>;
|
|
402
|
+
upsert?: {
|
|
403
|
+
update: UpdateData<Query>;
|
|
404
|
+
create: Record<string, unknown>;
|
|
405
|
+
};
|
|
406
|
+
create: Record<string, unknown>;
|
|
407
|
+
};
|
|
408
|
+
declare type NestedUpdateManyItems = {
|
|
409
|
+
disconnect?: MaybeArray<WhereArg<QueryBase>>;
|
|
410
|
+
set?: MaybeArray<WhereArg<QueryBase>>;
|
|
411
|
+
delete?: MaybeArray<WhereArg<QueryBase>>;
|
|
412
|
+
update?: {
|
|
413
|
+
where: MaybeArray<WhereArg<QueryBase>>;
|
|
414
|
+
data: UpdateData<Query>;
|
|
415
|
+
};
|
|
416
|
+
create: Record<string, unknown>[];
|
|
417
|
+
};
|
|
418
|
+
declare type NestedUpdateItem = NestedUpdateOneItem | NestedUpdateManyItems;
|
|
419
|
+
declare type BelongsToNestedUpdate = (q: Query, update: Record<string, unknown>, params: NestedUpdateOneItem, state: {
|
|
420
|
+
updateLater?: Record<string, unknown>;
|
|
421
|
+
updateLaterPromises?: Promise<void>[];
|
|
422
|
+
}) => boolean;
|
|
423
|
+
declare type HasOneNestedUpdate = (query: Query, data: Record<string, unknown>[], relationData: NestedUpdateOneItem) => Promise<void>;
|
|
424
|
+
declare type HasManyNestedUpdate = (query: Query, data: Record<string, unknown>[], relationData: NestedUpdateManyItems) => Promise<void>;
|
|
425
|
+
declare type BaseRelation = {
|
|
426
|
+
type: string;
|
|
427
|
+
key: string;
|
|
428
|
+
model: QueryWithTable;
|
|
429
|
+
joinQuery: Query;
|
|
430
|
+
nestedCreateQuery: Query;
|
|
431
|
+
nestedInsert?: BelongsToNestedInsert | HasOneNestedInsert | HasManyNestedInsert;
|
|
432
|
+
nestedUpdate?: BelongsToNestedUpdate | HasOneNestedUpdate | HasManyNestedUpdate;
|
|
433
|
+
primaryKey: string;
|
|
434
|
+
options: {
|
|
435
|
+
scope?(q: QueryWithTable): QueryWithTable;
|
|
436
|
+
required?: boolean;
|
|
437
|
+
};
|
|
438
|
+
};
|
|
439
|
+
interface BelongsToRelation extends BaseRelation {
|
|
440
|
+
type: 'belongsTo';
|
|
441
|
+
returns: 'one';
|
|
442
|
+
options: BaseRelation['options'] & {
|
|
443
|
+
primaryKey: string;
|
|
444
|
+
foreignKey: string;
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
interface HasOneRelation extends BaseRelation {
|
|
448
|
+
type: 'hasOne';
|
|
449
|
+
returns: 'one';
|
|
450
|
+
options: BaseRelation['options'] & ({
|
|
451
|
+
primaryKey: string;
|
|
452
|
+
foreignKey: string;
|
|
453
|
+
} | {
|
|
454
|
+
through: string;
|
|
455
|
+
source: string;
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
interface HasManyRelation extends BaseRelation {
|
|
459
|
+
type: 'hasMany';
|
|
460
|
+
returns: 'many';
|
|
461
|
+
options: BaseRelation['options'] & ({
|
|
462
|
+
primaryKey: string;
|
|
463
|
+
foreignKey: string;
|
|
464
|
+
} | {
|
|
465
|
+
through: string;
|
|
466
|
+
source: string;
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
interface HasAndBelongsToManyRelation extends BaseRelation {
|
|
470
|
+
type: 'hasAndBelongsToMany';
|
|
471
|
+
returns: 'many';
|
|
472
|
+
options: BaseRelation['options'] & {
|
|
473
|
+
primaryKey: string;
|
|
474
|
+
foreignKey: string;
|
|
475
|
+
associationPrimaryKey: string;
|
|
476
|
+
associationForeignKey: string;
|
|
477
|
+
joinTable: string;
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
declare type Relation = BelongsToRelation | HasOneRelation | HasManyRelation | HasAndBelongsToManyRelation;
|
|
481
|
+
declare type RelationsBase = Record<never, Relation>;
|
|
482
|
+
declare type relationQueryKey = typeof relationQueryKey;
|
|
483
|
+
declare const relationQueryKey: unique symbol;
|
|
484
|
+
declare type isRequiredRelationKey = typeof isRequiredRelationKey;
|
|
485
|
+
declare const isRequiredRelationKey: unique symbol;
|
|
486
|
+
declare type RelationQueryBase = Query & {
|
|
487
|
+
[relationQueryKey]: string;
|
|
488
|
+
[isRequiredRelationKey]: boolean;
|
|
489
|
+
};
|
|
490
|
+
declare type RelationQuery<RelationName extends PropertyKey = string, Params extends Record<string, unknown> = never, Populate extends string = never, T extends Query = Query, Required extends boolean = boolean, Q extends RelationQueryBase = Omit<T, 'tableAlias'> & {
|
|
491
|
+
tableAlias: RelationName extends string ? RelationName : never;
|
|
492
|
+
[isRequiredRelationKey]: Required;
|
|
493
|
+
[relationQueryKey]: string;
|
|
494
|
+
}> = ((params: Params) => Q & {
|
|
495
|
+
[defaultsKey]: Pick<T['type'], Populate>;
|
|
496
|
+
}) & Q;
|
|
497
|
+
|
|
498
|
+
interface QueryResultRow {
|
|
499
|
+
[column: string]: any;
|
|
500
|
+
}
|
|
501
|
+
declare type TypeParsers = Record<number, (input: string) => unknown>;
|
|
502
|
+
declare type Query$1 = string | {
|
|
503
|
+
text: string;
|
|
504
|
+
values?: unknown[];
|
|
505
|
+
};
|
|
506
|
+
declare type QueryResult<T extends QueryResultRow = any> = {
|
|
507
|
+
rowCount: number;
|
|
508
|
+
rows: T[];
|
|
509
|
+
};
|
|
510
|
+
declare type QueryArraysResult<R extends any[] = any[]> = {
|
|
511
|
+
rowCount: number;
|
|
512
|
+
rows: R[];
|
|
513
|
+
fields: {
|
|
514
|
+
name: string;
|
|
515
|
+
}[];
|
|
516
|
+
};
|
|
517
|
+
declare type AdapterOptions = Omit<PoolConfig, 'types'> & {
|
|
518
|
+
types?: TypeParsers;
|
|
519
|
+
};
|
|
520
|
+
declare class Adapter {
|
|
521
|
+
types: TypeParsers;
|
|
522
|
+
pool: Pool;
|
|
523
|
+
constructor({ types, ...config }: AdapterOptions);
|
|
524
|
+
query<T extends QueryResultRow = any>(query: Query$1, types?: TypeParsers): Promise<QueryResult<T>>;
|
|
525
|
+
arrays<R extends any[] = any[]>(query: Query$1, types?: TypeParsers): Promise<QueryArraysResult<R>>;
|
|
526
|
+
transaction<Result>(cb: (adapter: Adapter) => Promise<Result>): Promise<Result>;
|
|
527
|
+
destroy(): Promise<void>;
|
|
528
|
+
}
|
|
529
|
+
declare class TransactionAdapter implements Adapter {
|
|
530
|
+
pool: Pool;
|
|
531
|
+
client: PoolClient;
|
|
532
|
+
types: TypeParsers;
|
|
533
|
+
constructor(pool: Pool, client: PoolClient, types: TypeParsers);
|
|
534
|
+
query<T extends QueryResultRow = any>(query: Query$1, types?: TypeParsers): Promise<QueryResult<T>>;
|
|
535
|
+
arrays<R extends any[] = any[]>(query: Query$1, types?: TypeParsers): Promise<QueryArraysResult<R>>;
|
|
536
|
+
transaction<Result>(cb: (adapter: Adapter) => Promise<Result>): Promise<Result>;
|
|
537
|
+
destroy(): Promise<void>;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
declare type QueryLogObject = {
|
|
541
|
+
colors: boolean;
|
|
542
|
+
beforeQuery(q: Query, sql: Sql): unknown;
|
|
543
|
+
afterQuery(q: Query, sql: Sql, logData: unknown): void;
|
|
544
|
+
onError(error: Error, q: Query, sql: Sql, logData: unknown): void;
|
|
545
|
+
};
|
|
546
|
+
declare type QueryLogger = {
|
|
547
|
+
log(message: string): void;
|
|
548
|
+
error(message: string): void;
|
|
549
|
+
};
|
|
550
|
+
declare type QueryLogOptions = {
|
|
551
|
+
log?: boolean | Partial<QueryLogObject>;
|
|
552
|
+
logger?: QueryLogger;
|
|
553
|
+
};
|
|
554
|
+
declare class QueryLog {
|
|
555
|
+
log<T extends Query>(this: T, log?: boolean): T;
|
|
556
|
+
_log<T extends Query>(this: T, log?: boolean): T;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
declare type BeforeCallback<T extends Query> = (query: T) => void | Promise<void>;
|
|
560
|
+
declare type AfterCallback<T extends Query> = (query: T, data: unknown) => void | Promise<void>;
|
|
561
|
+
declare class QueryCallbacks {
|
|
562
|
+
beforeQuery<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
563
|
+
_beforeQuery<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
564
|
+
afterQuery<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
565
|
+
_afterQuery<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
566
|
+
beforeInsert<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
567
|
+
_beforeInsert<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
568
|
+
afterInsert<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
569
|
+
_afterInsert<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
570
|
+
beforeUpdate<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
571
|
+
_beforeUpdate<T extends Query>(this: T, cb: BeforeCallback<T>): T;
|
|
572
|
+
afterUpdate<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
573
|
+
_afterUpdate<T extends Query>(this: T, cb: AfterCallback<T>): T;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
declare type Sql = {
|
|
577
|
+
text: string;
|
|
578
|
+
values: unknown[];
|
|
579
|
+
};
|
|
580
|
+
declare const queryKeysOfNotSimpleQuery: (keyof SelectQueryData)[];
|
|
581
|
+
declare type CommonQueryData = {
|
|
582
|
+
adapter: Adapter;
|
|
583
|
+
handleResult(q: Query, result: QueryResult): Promise<unknown>;
|
|
584
|
+
returnType: QueryReturnType;
|
|
585
|
+
[relationQueryKey]?: string;
|
|
586
|
+
inTransaction?: boolean;
|
|
587
|
+
wrapInTransaction?: boolean;
|
|
588
|
+
throwOnNotFound?: boolean;
|
|
589
|
+
take?: boolean;
|
|
590
|
+
with?: WithItem[];
|
|
591
|
+
withShapes?: Record<string, ColumnsShape>;
|
|
592
|
+
schema?: string;
|
|
593
|
+
select?: SelectItem[];
|
|
594
|
+
as?: string;
|
|
595
|
+
from?: string | Query | RawExpression;
|
|
596
|
+
and?: WhereItem[];
|
|
597
|
+
or?: WhereItem[][];
|
|
598
|
+
parsers?: ColumnsParsers;
|
|
599
|
+
defaults?: Record<string, unknown>;
|
|
600
|
+
beforeQuery?: BeforeCallback<Query>[];
|
|
601
|
+
afterQuery?: AfterCallback<Query>[];
|
|
602
|
+
log?: QueryLogObject;
|
|
603
|
+
logger: QueryLogger;
|
|
604
|
+
};
|
|
605
|
+
declare type SelectQueryData = CommonQueryData & {
|
|
606
|
+
type: undefined;
|
|
607
|
+
distinct?: Expression[];
|
|
608
|
+
fromOnly?: boolean;
|
|
609
|
+
join?: JoinItem[];
|
|
610
|
+
joinedParsers?: Record<string, ColumnsParsers>;
|
|
611
|
+
group?: (string | RawExpression)[];
|
|
612
|
+
having?: HavingItem[];
|
|
613
|
+
havingOr?: HavingItem[][];
|
|
614
|
+
window?: WindowItem[];
|
|
615
|
+
union?: {
|
|
616
|
+
arg: UnionItem;
|
|
617
|
+
kind: UnionKind;
|
|
618
|
+
wrap?: boolean;
|
|
619
|
+
}[];
|
|
620
|
+
order?: OrderItem[];
|
|
621
|
+
limit?: number;
|
|
622
|
+
offset?: number;
|
|
623
|
+
for?: {
|
|
624
|
+
type: 'UPDATE' | 'NO KEY UPDATE' | 'SHARE' | 'KEY SHARE';
|
|
625
|
+
tableNames?: string[] | RawExpression;
|
|
626
|
+
mode?: 'NO WAIT' | 'SKIP LOCKED';
|
|
627
|
+
};
|
|
628
|
+
};
|
|
629
|
+
declare type InsertQueryData = CommonQueryData & {
|
|
630
|
+
type: 'insert';
|
|
631
|
+
columns: string[];
|
|
632
|
+
values: unknown[][] | RawExpression;
|
|
633
|
+
using?: JoinItem[];
|
|
634
|
+
join?: JoinItem[];
|
|
635
|
+
joinedParsers?: Record<string, ColumnsParsers>;
|
|
636
|
+
onConflict?: {
|
|
637
|
+
type: 'ignore';
|
|
638
|
+
expr?: OnConflictItem;
|
|
639
|
+
} | {
|
|
640
|
+
type: 'merge';
|
|
641
|
+
expr?: OnConflictItem;
|
|
642
|
+
update?: OnConflictMergeUpdate;
|
|
643
|
+
};
|
|
644
|
+
beforeInsert?: BeforeCallback<Query>[];
|
|
645
|
+
afterInsert?: AfterCallback<Query>[];
|
|
646
|
+
};
|
|
647
|
+
declare type UpdateQueryData = CommonQueryData & {
|
|
648
|
+
type: 'update';
|
|
649
|
+
data: (Record<string, RawExpression | {
|
|
650
|
+
op: string;
|
|
651
|
+
arg: unknown;
|
|
652
|
+
} | unknown> | RawExpression)[];
|
|
653
|
+
beforeUpdate?: BeforeCallback<Query>[];
|
|
654
|
+
afterUpdate?: AfterCallback<Query>[];
|
|
655
|
+
};
|
|
656
|
+
declare type DeleteQueryData = CommonQueryData & {
|
|
657
|
+
type: 'delete';
|
|
658
|
+
join?: JoinItem[];
|
|
659
|
+
joinedParsers?: Record<string, ColumnsParsers>;
|
|
660
|
+
};
|
|
661
|
+
declare type TruncateQueryData = CommonQueryData & {
|
|
662
|
+
type: 'truncate';
|
|
663
|
+
restartIdentity?: boolean;
|
|
664
|
+
cascade?: boolean;
|
|
665
|
+
};
|
|
666
|
+
declare type ColumnInfoQueryData = CommonQueryData & {
|
|
667
|
+
type: 'columnInfo';
|
|
668
|
+
column?: string;
|
|
669
|
+
};
|
|
670
|
+
declare type QueryData = SelectQueryData | InsertQueryData | UpdateQueryData | DeleteQueryData | TruncateQueryData | ColumnInfoQueryData;
|
|
671
|
+
declare type WithItem = [
|
|
672
|
+
as: string,
|
|
673
|
+
options: WithOptions,
|
|
674
|
+
query: Query | RawExpression
|
|
675
|
+
];
|
|
676
|
+
declare type WithOptions = {
|
|
677
|
+
columns?: string[];
|
|
678
|
+
recursive?: true;
|
|
679
|
+
materialized?: true;
|
|
680
|
+
notMaterialized?: true;
|
|
681
|
+
};
|
|
682
|
+
declare type JsonItem<As extends string = string, Type extends ColumnType = ColumnType> = {
|
|
683
|
+
__json: [
|
|
684
|
+
kind: 'set',
|
|
685
|
+
as: As,
|
|
686
|
+
type: Type,
|
|
687
|
+
column: string | JsonItem,
|
|
688
|
+
path: Array<string | number>,
|
|
689
|
+
value: unknown,
|
|
690
|
+
options?: {
|
|
691
|
+
createIfMissing?: boolean;
|
|
692
|
+
}
|
|
693
|
+
] | [
|
|
694
|
+
kind: 'insert',
|
|
695
|
+
as: As,
|
|
696
|
+
type: Type,
|
|
697
|
+
column: string | JsonItem,
|
|
698
|
+
path: Array<string | number>,
|
|
699
|
+
value: unknown,
|
|
700
|
+
options?: {
|
|
701
|
+
insertAfter?: boolean;
|
|
702
|
+
}
|
|
703
|
+
] | [
|
|
704
|
+
kind: 'remove',
|
|
705
|
+
as: As,
|
|
706
|
+
type: Type,
|
|
707
|
+
column: string | JsonItem,
|
|
708
|
+
path: Array<string | number>
|
|
709
|
+
] | [
|
|
710
|
+
kind: 'pathQuery',
|
|
711
|
+
as: As,
|
|
712
|
+
type: Type,
|
|
713
|
+
column: string | JsonItem,
|
|
714
|
+
path: string,
|
|
715
|
+
options?: {
|
|
716
|
+
vars?: string;
|
|
717
|
+
silent?: boolean;
|
|
718
|
+
}
|
|
719
|
+
];
|
|
720
|
+
};
|
|
721
|
+
declare type SelectItem = string | RelationQuery | AggregateItem | {
|
|
722
|
+
selectAs: Record<string, string | Query | RawExpression>;
|
|
723
|
+
} | SelectFunctionItem | JsonItem | RawExpression;
|
|
724
|
+
declare type SelectFunctionItem = {
|
|
725
|
+
function: string;
|
|
726
|
+
arguments: SelectItem[];
|
|
727
|
+
as?: string;
|
|
728
|
+
};
|
|
729
|
+
declare type JoinItem = {
|
|
730
|
+
type: string;
|
|
731
|
+
args: [relation: string] | [
|
|
732
|
+
arg: string | QueryWithTable,
|
|
733
|
+
conditions: Record<string, string | RawExpression> | RawExpression | ((q: unknown) => QueryBase)
|
|
734
|
+
] | [
|
|
735
|
+
arg: string | QueryWithTable,
|
|
736
|
+
leftColumn: string | RawExpression,
|
|
737
|
+
rightColumn: string | RawExpression
|
|
738
|
+
] | [
|
|
739
|
+
arg: string | QueryWithTable,
|
|
740
|
+
leftColumn: string | RawExpression,
|
|
741
|
+
op: string,
|
|
742
|
+
rightColumn: string | RawExpression
|
|
743
|
+
];
|
|
744
|
+
};
|
|
745
|
+
declare type WhereItem = (Omit<Record<string, unknown | Record<string, unknown | Query | RawExpression> | RawExpression>, 'NOT' | 'AND' | 'OR' | 'IN' | 'EXISTS' | 'ON' | 'ON_JSON_PATH_EQUALS'> & {
|
|
746
|
+
NOT?: MaybeArray<WhereItem>;
|
|
747
|
+
AND?: MaybeArray<WhereItem>;
|
|
748
|
+
OR?: MaybeArray<WhereItem>[];
|
|
749
|
+
IN?: MaybeArray<WhereInItem>;
|
|
750
|
+
EXISTS?: MaybeArray<JoinItem['args']>;
|
|
751
|
+
ON?: WhereOnItem | WhereJsonPathEqualsItem;
|
|
752
|
+
}) | ((q: unknown) => QueryBase) | Query | RawExpression;
|
|
753
|
+
declare type WhereInItem = {
|
|
754
|
+
columns: string[];
|
|
755
|
+
values: unknown[][] | Query | RawExpression;
|
|
756
|
+
};
|
|
757
|
+
declare type WhereJsonPathEqualsItem = [
|
|
758
|
+
leftColumn: string,
|
|
759
|
+
leftPath: string,
|
|
760
|
+
rightColumn: string,
|
|
761
|
+
rightPath: string
|
|
762
|
+
];
|
|
763
|
+
declare type WhereOnItem = {
|
|
764
|
+
joinFrom: {
|
|
765
|
+
table?: string;
|
|
766
|
+
query: {
|
|
767
|
+
as?: string;
|
|
768
|
+
};
|
|
769
|
+
} | string;
|
|
770
|
+
joinTo: {
|
|
771
|
+
table?: string;
|
|
772
|
+
query: {
|
|
773
|
+
as?: string;
|
|
774
|
+
};
|
|
775
|
+
} | string;
|
|
776
|
+
on: [leftFullColumn: string, rightFullColumn: string] | [leftFullColumn: string, op: string, rightFullColumn: string];
|
|
777
|
+
};
|
|
778
|
+
declare type AggregateItemOptions = {
|
|
779
|
+
as?: string;
|
|
780
|
+
distinct?: boolean;
|
|
781
|
+
order?: OrderItem[];
|
|
782
|
+
filter?: WhereItem;
|
|
783
|
+
filterOr?: WhereItem[];
|
|
784
|
+
withinGroup?: boolean;
|
|
785
|
+
over?: string;
|
|
786
|
+
window?: WindowItem;
|
|
787
|
+
};
|
|
788
|
+
declare type SortDir = 'ASC' | 'DESC';
|
|
789
|
+
declare type OrderItem = string | Record<string, SortDir | {
|
|
790
|
+
dir: SortDir;
|
|
791
|
+
nulls: 'FIRST' | 'LAST';
|
|
792
|
+
}> | RawExpression;
|
|
793
|
+
declare type AggregateItemArg = Expression | Record<string, Expression> | [Expression, string];
|
|
794
|
+
declare type AggregateItem = {
|
|
795
|
+
function: string;
|
|
796
|
+
arg?: AggregateItemArg;
|
|
797
|
+
options: AggregateItemOptions;
|
|
798
|
+
};
|
|
799
|
+
declare type ColumnOperators<S extends SelectableBase, Column extends keyof S> = {
|
|
800
|
+
[O in keyof S[Column]['column']['operators']]?: S[Column]['column']['operators'][O]['type'];
|
|
801
|
+
};
|
|
802
|
+
declare type HavingItemObject = Record<string, unknown>;
|
|
803
|
+
declare type HavingItem = Record<string, HavingItemObject> | {
|
|
804
|
+
count?: number | HavingItemObject;
|
|
805
|
+
} | Query | RawExpression;
|
|
806
|
+
declare type WindowItem = Record<string, WindowDeclaration | RawExpression>;
|
|
807
|
+
declare type WindowDeclaration = {
|
|
808
|
+
partitionBy?: Expression | Expression[];
|
|
809
|
+
order?: OrderItem;
|
|
810
|
+
};
|
|
811
|
+
declare type UnionItem = Query | RawExpression;
|
|
812
|
+
declare type UnionKind = 'UNION' | 'UNION ALL' | 'INTERSECT' | 'INTERSECT ALL' | 'EXCEPT' | 'EXCEPT ALL';
|
|
813
|
+
declare type OnConflictItem = string | string[] | RawExpression;
|
|
814
|
+
declare type OnConflictMergeUpdate = string | string[] | Record<string, unknown> | RawExpression;
|
|
815
|
+
|
|
816
|
+
declare const toSql: (model: Query, values?: unknown[]) => Sql;
|
|
817
|
+
|
|
818
|
+
declare type MaybeArray<T> = T | T[];
|
|
819
|
+
declare type SetOptional<T, K extends PropertyKey> = Omit<T, K> & {
|
|
820
|
+
[P in K]?: P extends keyof T ? T[P] : never;
|
|
821
|
+
};
|
|
822
|
+
declare type GetTypesOrRaw<T extends [...unknown[]]> = T extends [
|
|
823
|
+
infer Head,
|
|
824
|
+
...infer Tail
|
|
825
|
+
] ? [GetTypeOrRaw<Head>, ...GetTypesOrRaw<Tail>] : [];
|
|
826
|
+
declare type GetTypeOrRaw<T> = T | RawExpression;
|
|
827
|
+
declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
828
|
+
declare type UnionToOvlds<U> = UnionToIntersection<U extends any ? (f: U) => void : never>;
|
|
829
|
+
declare type PopPropertyKeyUnion<U> = UnionToOvlds<U> extends (a: infer A extends PropertyKey) => void ? A : never;
|
|
830
|
+
declare type IsUnion$1<T> = [T] extends [UnionToIntersection<T>] ? false : true;
|
|
831
|
+
declare type PropertyKeyUnionToArray<T, A extends PropertyKey[] = []> = IsUnion$1<T> extends true ? PropertyKeyUnionToArray<Exclude<T, PopPropertyKeyUnion<T>>, [
|
|
832
|
+
PopPropertyKeyUnion<T>,
|
|
833
|
+
...A
|
|
834
|
+
]> : [T, ...A];
|
|
835
|
+
declare type OptionalPropertyNames<T> = {
|
|
836
|
+
[K in keyof T]-?: {} extends {
|
|
837
|
+
[P in K]: T[K];
|
|
838
|
+
} ? K : never;
|
|
839
|
+
}[keyof T];
|
|
840
|
+
declare type SpreadProperties<L, R, K extends keyof L & keyof R> = {
|
|
841
|
+
[P in K]: L[P] | Exclude<R[P], undefined>;
|
|
842
|
+
};
|
|
843
|
+
declare type Id<T> = T extends infer U ? {
|
|
844
|
+
[K in keyof U]: U[K];
|
|
845
|
+
} : never;
|
|
846
|
+
declare type SpreadTwo<L, R> = Id<Pick<L, Exclude<keyof L, keyof R>> & Pick<R, Exclude<keyof R, OptionalPropertyNames<R>>> & Pick<R, Exclude<OptionalPropertyNames<R>, keyof L>> & SpreadProperties<L, R, OptionalPropertyNames<R> & keyof L>>;
|
|
847
|
+
declare type Spread<A extends readonly [...any]> = A extends [
|
|
848
|
+
infer L,
|
|
849
|
+
...infer R
|
|
850
|
+
] ? SpreadTwo<L, Spread<R>> : unknown;
|
|
851
|
+
declare type SimpleSpread<A extends readonly [...any]> = A extends [
|
|
852
|
+
infer L,
|
|
853
|
+
...infer R
|
|
854
|
+
] ? L & SimpleSpread<R> : {};
|
|
855
|
+
declare type FilterTuple<T extends readonly any[], E> = T extends [
|
|
856
|
+
infer F,
|
|
857
|
+
...infer R
|
|
858
|
+
] ? [F] extends [E] ? [F, ...FilterTuple<R, E>] : FilterTuple<R, E> : [];
|
|
859
|
+
declare type CoalesceString<Left extends string | undefined, Right extends string> = Left extends undefined ? Right : Left;
|
|
860
|
+
declare function applyMixins(derivedCtor: any, constructors: any[]): void;
|
|
861
|
+
declare const joinTruthy: (...strings: (string | false | undefined)[]) => string;
|
|
862
|
+
declare const getClonedQueryData: (query: QueryData) => QueryData;
|
|
863
|
+
declare const getQueryAs: (q: {
|
|
864
|
+
table?: string;
|
|
865
|
+
query: {
|
|
866
|
+
as?: string;
|
|
867
|
+
};
|
|
868
|
+
}) => string;
|
|
869
|
+
declare const toArray: <T>(item: T) => T extends unknown[] ? T : [T];
|
|
870
|
+
declare const noop: () => void;
|
|
871
|
+
|
|
872
|
+
declare type ThenResult<Res> = <T extends Query>(this: T, resolve?: (value: Res) => any, reject?: (error: any) => any) => Promise<Res | never>;
|
|
873
|
+
declare const queryMethodByReturnType: Record<QueryReturnType, 'query' | 'arrays'>;
|
|
874
|
+
declare class Then {
|
|
875
|
+
then(this: Query, resolve?: (result: any) => any, reject?: (error: any) => any): Promise<any>;
|
|
876
|
+
}
|
|
877
|
+
declare const handleResult: CommonQueryData['handleResult'];
|
|
878
|
+
declare const parseResult: (q: Query, returnType: QueryReturnType, result: QueryResult) => unknown;
|
|
879
|
+
declare const parseRecord: (parsers: ColumnsParsers, row: any) => any;
|
|
880
|
+
|
|
881
|
+
declare type AggregateArg<T extends Query> = Expression<T> | Record<string, Expression<T>> | [Expression<T>, string];
|
|
882
|
+
declare type AggregateOptions<T extends Query = Query, As extends string | undefined = any> = {
|
|
883
|
+
as?: As;
|
|
884
|
+
distinct?: boolean;
|
|
885
|
+
order?: OrderArg<T> | OrderArg<T>[];
|
|
886
|
+
filter?: WhereArg<T>;
|
|
887
|
+
filterOr?: WhereArg<T>[];
|
|
888
|
+
withinGroup?: boolean;
|
|
889
|
+
over?: T['windows'][number] | WindowArgDeclaration<T>;
|
|
890
|
+
};
|
|
891
|
+
declare type Aggregate1ArgumentTypes<T extends Query = Query, C extends ColumnType = ColumnType> = {
|
|
892
|
+
count: Expression<T, C>;
|
|
893
|
+
avg: NumberExpression<T, C>;
|
|
894
|
+
min: Expression<T, C>;
|
|
895
|
+
max: Expression<T, C>;
|
|
896
|
+
sum: NumberExpression<T, C>;
|
|
897
|
+
bitAnd: NumberExpression<T, C>;
|
|
898
|
+
bitOr: NumberExpression<T, C>;
|
|
899
|
+
boolAnd: BooleanExpression<T, C>;
|
|
900
|
+
boolOr: BooleanExpression<T, C>;
|
|
901
|
+
every: BooleanExpression<T, C>;
|
|
902
|
+
jsonAgg: Expression<T, C>;
|
|
903
|
+
jsonbAgg: Expression<T, C>;
|
|
904
|
+
xmlAgg: Expression<T, C>;
|
|
905
|
+
};
|
|
906
|
+
declare type SelectAgg<T extends Query, Func extends string, As extends string | undefined, Value extends ColumnType> = AddQuerySelect<T, Record<CoalesceString<As, Func>, Value>>;
|
|
907
|
+
declare type AT1<T extends Query> = Aggregate1ArgumentTypes<T>;
|
|
908
|
+
declare type WindowFunctionOptions<T extends Query = Query, As extends string | undefined = any> = {
|
|
909
|
+
as?: As;
|
|
910
|
+
} & WindowArgDeclaration<T>;
|
|
911
|
+
declare class Aggregate {
|
|
912
|
+
selectAgg<T extends Query, Func extends string, As extends string | undefined, Value extends ColumnType>(this: T, functionName: Func, arg: AggregateArg<T>, options?: AggregateOptions<T, As>): SelectAgg<T, Func, As, Value>;
|
|
913
|
+
_selectAgg<T extends Query, Func extends string, As extends string | undefined, Value extends ColumnType>(this: T, functionName: Func, arg: AggregateArg<T>, options?: AggregateOptions<T, As>, columnType?: ColumnType): SelectAgg<T, Func, As, Value>;
|
|
914
|
+
count<T extends Query>(this: T, arg?: AT1<T>['count'] | '*', options?: AggregateOptions<T>): SetQueryReturnsValue<T, NumberColumn>;
|
|
915
|
+
_count<T extends Query>(this: T, arg?: AT1<T>['count'] | '*', options?: AggregateOptions<T>): SetQueryReturnsValue<T, NumberColumn>;
|
|
916
|
+
selectCount<T extends Query, As extends string | undefined = undefined>(this: T, arg?: AT1<T>['count'] | '*', options?: AggregateOptions<T, As>): SelectAgg<T, 'count', As, NumberColumn>;
|
|
917
|
+
_selectCount<T extends Query, As extends string | undefined = undefined>(this: T, arg?: AT1<T>['count'] | '*', options?: AggregateOptions<T, As>): SelectAgg<T, 'count', As, NumberColumn>;
|
|
918
|
+
avg<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['avg'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
919
|
+
_avg<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['avg'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
920
|
+
selectAvg<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'avg', As, NullableColumn<NumberColumn>>;
|
|
921
|
+
_selectAvg<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'avg', As, NullableColumn<NumberColumn>>;
|
|
922
|
+
min<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['min'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
923
|
+
_min<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['min'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
924
|
+
selectMin<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'min', As, NullableColumn<NumberColumn>>;
|
|
925
|
+
_selectMin<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'min', As, NullableColumn<NumberColumn>>;
|
|
926
|
+
max<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['max'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
927
|
+
_max<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['max'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
928
|
+
selectMax<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'max', As, NullableColumn<NumberColumn>>;
|
|
929
|
+
_selectMax<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'max', As, NullableColumn<NumberColumn>>;
|
|
930
|
+
sum<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['sum'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
931
|
+
_sum<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['sum'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
932
|
+
selectSum<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'sum', As, NullableColumn<NumberColumn>>;
|
|
933
|
+
_selectSum<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'sum', As, NullableColumn<NumberColumn>>;
|
|
934
|
+
bitAnd<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['bitAnd'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
935
|
+
_bitAnd<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['bitAnd'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
936
|
+
selectBitAnd<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bit_and', As, NullableColumn<NumberColumn>>;
|
|
937
|
+
_selectBitAnd<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bit_and', As, NullableColumn<NumberColumn>>;
|
|
938
|
+
bitOr<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['bitOr'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
939
|
+
_bitOr<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['bitOr'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<NumberColumn>>;
|
|
940
|
+
selectBitOr<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bit_or', As, NullableColumn<NumberColumn>>;
|
|
941
|
+
_selectBitOr<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bit_or', As, NullableColumn<NumberColumn>>;
|
|
942
|
+
boolAnd<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['boolAnd'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
943
|
+
_boolAnd<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['boolAnd'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
944
|
+
selectBoolAnd<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bool_and', As, NullableColumn<BooleanColumn>>;
|
|
945
|
+
_selectBoolAnd<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bool_and', As, NullableColumn<BooleanColumn>>;
|
|
946
|
+
boolOr<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['boolOr'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
947
|
+
_boolOr<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['boolOr'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
948
|
+
selectBoolOr<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bool_or', As, NullableColumn<BooleanColumn>>;
|
|
949
|
+
_selectBoolOr<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'bool_or', As, NullableColumn<BooleanColumn>>;
|
|
950
|
+
every<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['every'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
951
|
+
_every<T extends Query>(this: T, arg: Aggregate1ArgumentTypes<T>['every'], options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<BooleanColumn>>;
|
|
952
|
+
selectEvery<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'every', As, NullableColumn<BooleanColumn>>;
|
|
953
|
+
_selectEvery<T extends Query, As extends string | undefined = undefined>(this: T, arg: Expression<T>, options?: AggregateOptions<T, As>): SelectAgg<T, 'every', As, NullableColumn<BooleanColumn>>;
|
|
954
|
+
jsonAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
955
|
+
_jsonAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
956
|
+
selectJsonAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonAgg'], As extends string | undefined = undefined>(this: T, arg: Expr, options?: AggregateOptions<T, As>): SelectAgg<T, 'json_agg', As, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
957
|
+
_selectJsonAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonAgg'], As extends string | undefined = undefined>(this: T, arg: Expr, options?: AggregateOptions<T, As>): SelectAgg<T, 'json_agg', As, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
958
|
+
jsonbAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonbAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
959
|
+
_jsonbAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonbAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
960
|
+
selectJsonbAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonbAgg'], As extends string | undefined = undefined>(this: T, arg: Expr, options?: AggregateOptions<T, As>): SelectAgg<T, 'jsonb_agg', As, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
961
|
+
_selectJsonbAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['jsonbAgg'], As extends string | undefined = undefined>(this: T, arg: Expr, options?: AggregateOptions<T, As>): SelectAgg<T, 'jsonb_agg', As, NullableColumn<ArrayColumn<ExpressionOutput<T, Expr>>>>;
|
|
962
|
+
xmlAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['xmlAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<StringColumn>>;
|
|
963
|
+
_xmlAgg<T extends Query, Expr extends Aggregate1ArgumentTypes<T>['xmlAgg']>(this: T, arg: Expr, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<StringColumn>>;
|
|
964
|
+
selectXmlAgg<T extends Query, As extends string | undefined = undefined>(this: T, arg: Aggregate1ArgumentTypes<T>['xmlAgg'], options?: AggregateOptions<T, As>): SelectAgg<T, 'xmlagg', As, NullableColumn<StringColumn>>;
|
|
965
|
+
_selectXmlAgg<T extends Query, As extends string | undefined = undefined>(this: T, arg: Aggregate1ArgumentTypes<T>['xmlAgg'], options?: AggregateOptions<T, As>): SelectAgg<T, 'xmlagg', As, NullableColumn<StringColumn>>;
|
|
966
|
+
jsonObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>>(this: T, obj: Obj, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ColumnType<{
|
|
967
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
968
|
+
}>>>;
|
|
969
|
+
_jsonObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>>(this: T, obj: Obj, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ColumnType<{
|
|
970
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
971
|
+
}>>>;
|
|
972
|
+
selectJsonObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>, As extends string | undefined = undefined>(this: T, obj: Obj, options?: AggregateOptions<T, As>): SelectAgg<T, 'json_object_agg', As, NullableColumn<ColumnType<{
|
|
973
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
974
|
+
}>>>;
|
|
975
|
+
_selectJsonObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>, As extends string | undefined = undefined>(this: T, obj: Obj, options?: AggregateOptions<T, As>): SelectAgg<T, 'json_object_agg', As, NullableColumn<ColumnType<{
|
|
976
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
977
|
+
}>>>;
|
|
978
|
+
jsonbObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>>(this: T, obj: Obj, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ColumnType<{
|
|
979
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
980
|
+
}>>>;
|
|
981
|
+
_jsonbObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>>(this: T, obj: Obj, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<ColumnType<{
|
|
982
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
983
|
+
}>>>;
|
|
984
|
+
selectJsonbObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>, As extends string | undefined = undefined>(this: T, obj: Obj, options?: AggregateOptions<T, As>): SelectAgg<T, 'jsonb_object_agg', As, NullableColumn<ColumnType<{
|
|
985
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
986
|
+
}>>>;
|
|
987
|
+
_selectJsonbObjectAgg<T extends Query, Obj extends Record<string, Expression<T>>, As extends string | undefined = undefined>(this: T, obj: Obj, options?: AggregateOptions<T, As>): SelectAgg<T, 'jsonb_object_agg', As, NullableColumn<ColumnType<{
|
|
988
|
+
[K in keyof Obj]: ExpressionOutput<T, Obj[K]>['type'];
|
|
989
|
+
}>>>;
|
|
990
|
+
stringAgg<T extends Query>(this: T, arg: StringExpression<T>, delimiter: string, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<StringColumn>>;
|
|
991
|
+
_stringAgg<T extends Query>(this: T, arg: StringExpression<T>, delimiter: string, options?: AggregateOptions<T>): SetQueryReturnsValue<T, NullableColumn<StringColumn>>;
|
|
992
|
+
selectStringAgg<T extends Query, As extends string | undefined = undefined>(this: T, arg: StringExpression<T>, delimiter: string, options?: AggregateOptions<T, As>): SelectAgg<T, 'string_agg', As, NullableColumn<StringColumn>>;
|
|
993
|
+
_selectStringAgg<T extends Query, As extends string | undefined = undefined>(this: T, arg: StringExpression<T>, delimiter: string, options?: AggregateOptions<T, As>): SelectAgg<T, 'string_agg', As, NullableColumn<StringColumn>>;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
declare type SelectArg<T extends QueryBase> = keyof T['selectable'] | (T['relations'] extends Record<string, Relation> ? keyof T['relations'] : never) | RelationQueryBase | SelectAsArg<T>;
|
|
997
|
+
declare type SelectAsArg<T extends QueryBase> = Record<string, keyof T['selectable'] | Query | RawExpression>;
|
|
998
|
+
declare type SelectResult<T extends Query, Args extends SelectArg<T>[], SelectAsArgs = SimpleSpread<FilterTuple<Args, SelectAsArg<QueryBase>>>> = AddQuerySelect<T, {
|
|
999
|
+
[Arg in Args[number] as Arg extends keyof T['selectable'] ? T['selectable'][Arg]['as'] : Arg extends keyof T['relations'] ? Arg : Arg extends RelationQueryBase ? Arg['tableAlias'] extends string ? Arg['tableAlias'] : never : never]: Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['returnType'] extends 'all' ? ArrayOfColumnsObjects<Arg['result']> : Arg['returnType'] extends 'valueOrThrow' ? Arg['result']['value'] : Arg[isRequiredRelationKey] extends true ? ColumnsObject<Arg['result']> : NullableColumn<ColumnsObject<Arg['result']>> : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['returns'] extends 'many' ? ArrayOfColumnsObjects<T['relations'][Arg]['model']['result']> : T['relations'][Arg]['options']['required'] extends true ? ColumnsObject<T['relations'][Arg]['model']['result']> : NullableColumn<ColumnsObject<T['relations'][Arg]['model']['result']>> : never : never;
|
|
1000
|
+
} & {
|
|
1001
|
+
[K in keyof SelectAsArgs]: SelectAsArgs[K] extends keyof T['selectable'] ? T['selectable'][SelectAsArgs[K]]['column'] : SelectAsArgs[K] extends RawExpression ? SelectAsArgs[K]['__column'] : SelectAsArgs[K] extends Query ? SelectAsArgs[K]['returnType'] extends 'all' ? ArrayOfColumnsObjects<SelectAsArgs[K]['result']> : ColumnsObject<SelectAsArgs[K]['result']> : never;
|
|
1002
|
+
}>;
|
|
1003
|
+
declare class Select {
|
|
1004
|
+
select<T extends Query, K extends SelectArg<T>[]>(this: T, ...args: K): SelectResult<T, K>;
|
|
1005
|
+
_select<T extends Query, K extends SelectArg<T>[]>(this: T, ...args: K): SelectResult<T, K>;
|
|
1006
|
+
selectAll<T extends Query>(this: T): QuerySelectAll<T>;
|
|
1007
|
+
_selectAll<T extends Query>(this: T): QuerySelectAll<T>;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
declare type FromArgs<T extends Query> = [
|
|
1011
|
+
first: string | Query | RawExpression | Exclude<keyof T['withData'], symbol | number>,
|
|
1012
|
+
second?: string | {
|
|
1013
|
+
as?: string;
|
|
1014
|
+
only?: boolean;
|
|
1015
|
+
}
|
|
1016
|
+
];
|
|
1017
|
+
declare type FromResult<T extends Query, Args extends FromArgs<T>> = Args[1] extends string ? SetQueryTableAlias<T, Args[1]> : Args[1] extends {
|
|
1018
|
+
as: string;
|
|
1019
|
+
} ? SetQueryTableAlias<T, Args[1]['as']> : Args[0] extends string ? SetQueryTableAlias<T, Args[0]> : Args[0] extends Query ? SetQueryTableAlias<T, AliasOrTable<Args[0]>> : T;
|
|
1020
|
+
declare class From {
|
|
1021
|
+
from<T extends Query, Args extends FromArgs<T>>(this: T, ...args: Args): FromResult<T, Args>;
|
|
1022
|
+
_from<T extends Query, Args extends FromArgs<T>>(this: T, ...args: Args): FromResult<T, Args>;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
declare type DbTableOptions = {
|
|
1026
|
+
schema?: string;
|
|
1027
|
+
} & QueryLogOptions;
|
|
1028
|
+
interface Db<Table extends string | undefined = undefined, Shape extends ColumnsShape = Record<string, never>, Relations extends Query['relations'] = Query['relations']> extends QueryMethods {
|
|
1029
|
+
new (adapter: Adapter, queryBuilder: Db, table?: Table, shape?: Shape, options?: DbTableOptions): this;
|
|
1030
|
+
adapter: Adapter;
|
|
1031
|
+
queryBuilder: Db;
|
|
1032
|
+
whereQueryBuilder: Query['whereQueryBuilder'];
|
|
1033
|
+
table: Table;
|
|
1034
|
+
shape: Shape;
|
|
1035
|
+
schema: TableSchema<Shape>;
|
|
1036
|
+
type: ColumnShapeOutput<Shape>;
|
|
1037
|
+
inputType: ColumnShapeInput<Shape>;
|
|
1038
|
+
returnType: 'all';
|
|
1039
|
+
then: ThenResult<Pick<ColumnShapeOutput<Shape>, DefaultSelectColumns<Shape>[number]>[]>;
|
|
1040
|
+
query: QueryData;
|
|
1041
|
+
columns: (keyof ColumnShapeOutput<Shape>)[];
|
|
1042
|
+
defaultSelectColumns: DefaultSelectColumns<Shape>;
|
|
1043
|
+
columnsParsers?: ColumnsParsers;
|
|
1044
|
+
result: Pick<Shape, DefaultSelectColumns<Shape>[number]>;
|
|
1045
|
+
hasSelect: false;
|
|
1046
|
+
hasWhere: false;
|
|
1047
|
+
selectable: {
|
|
1048
|
+
[K in keyof Shape]: {
|
|
1049
|
+
as: K;
|
|
1050
|
+
column: Shape[K];
|
|
1051
|
+
};
|
|
1052
|
+
} & {
|
|
1053
|
+
[K in keyof Shape as `${Table}.${StringKey<K>}`]: {
|
|
1054
|
+
as: K;
|
|
1055
|
+
column: Shape[K];
|
|
1056
|
+
};
|
|
1057
|
+
};
|
|
1058
|
+
tableAlias: undefined;
|
|
1059
|
+
windows: PropertyKey[];
|
|
1060
|
+
withData: Query['withData'];
|
|
1061
|
+
joinedTables: Query['joinedTables'];
|
|
1062
|
+
relations: Relations;
|
|
1063
|
+
[defaultsKey]: Query[defaultsKey];
|
|
1064
|
+
}
|
|
1065
|
+
declare class Db<Table extends string | undefined = undefined, Shape extends ColumnsShape = Record<string, never>, Relations extends Query['relations'] = Query['relations']> implements Query {
|
|
1066
|
+
adapter: Adapter;
|
|
1067
|
+
queryBuilder: Db;
|
|
1068
|
+
table: Table;
|
|
1069
|
+
shape: Shape;
|
|
1070
|
+
whereQueryBuilder: typeof WhereQueryBuilder;
|
|
1071
|
+
onQueryBuilder: typeof OnQueryBuilder;
|
|
1072
|
+
constructor(adapter: Adapter, queryBuilder: Db, table: Table, shape: Shape, options: DbTableOptions);
|
|
1073
|
+
}
|
|
1074
|
+
declare type DbResult<CT extends Record<string, AnyColumnTypeCreator>> = Db & {
|
|
1075
|
+
<Table extends string, Shape extends ColumnsShape = ColumnsShape>(table: Table, shape?: ((t: CT) => Shape) | Shape, options?: DbTableOptions): Db<Table, Shape>;
|
|
1076
|
+
adapter: Adapter;
|
|
1077
|
+
destroy: Adapter['destroy'];
|
|
1078
|
+
};
|
|
1079
|
+
declare type DbOptions<CT extends Record<string, AnyColumnTypeCreator> = ColumnTypes> = ({
|
|
1080
|
+
adapter: Adapter;
|
|
1081
|
+
} | Omit<AdapterOptions, 'log'>) & QueryLogOptions & {
|
|
1082
|
+
columnTypes?: CT;
|
|
1083
|
+
};
|
|
1084
|
+
declare const createDb: <CT extends Record<string, AnyColumnTypeCreator>>({ log, logger, columnTypes: ct, ...options }: DbOptions<CT>) => DbResult<CT>;
|
|
1085
|
+
|
|
1086
|
+
declare type WithArgsOptions = Omit<WithOptions, 'columns'> & {
|
|
1087
|
+
columns?: boolean | string[];
|
|
1088
|
+
};
|
|
1089
|
+
declare type WithArgs = [string, ColumnsShape, RawExpression] | [string, WithArgsOptions, ColumnsShape, RawExpression] | [string, Query | ((qb: Db) => Query)] | [string, WithArgsOptions, Query | ((qb: Db) => Query)];
|
|
1090
|
+
declare type WithShape<Args extends WithArgs> = Args[1] extends Query ? Args[1]['result'] : Args[1] extends (qb: Db) => Query ? ReturnType<Args[1]>['result'] : Args[2] extends Query ? Args[2]['result'] : Args[2] extends (qb: Db) => Query ? ReturnType<Args[2]>['result'] : Args[1] extends ColumnsShape ? Args[1] : Args[2] extends ColumnsShape ? Args[2] : Args[2] extends (t: ColumnTypes) => ColumnsShape ? ReturnType<Args[2]> : never;
|
|
1091
|
+
declare type WithResult<T extends Query, Args extends WithArgs, Shape extends ColumnsShape> = AddQueryWith<T, {
|
|
1092
|
+
table: Args[0];
|
|
1093
|
+
shape: Shape;
|
|
1094
|
+
type: ColumnShapeOutput<Shape>;
|
|
1095
|
+
}>;
|
|
1096
|
+
declare class With {
|
|
1097
|
+
with<T extends Query, Args extends WithArgs, Shape extends ColumnsShape = WithShape<Args>>(this: T, ...args: Args): WithResult<T, Args, Shape>;
|
|
1098
|
+
_with<T extends Query, Args extends WithArgs, Shape extends ColumnsShape = WithShape<Args>>(this: T, ...args: Args): WithResult<T, Args, Shape>;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
declare type UnionArg<T extends Query> = (Omit<Query, 'result'> & {
|
|
1102
|
+
result: T['result'];
|
|
1103
|
+
}) | RawExpression;
|
|
1104
|
+
declare class Union {
|
|
1105
|
+
union<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1106
|
+
_union<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1107
|
+
unionAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1108
|
+
_unionAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1109
|
+
intersect<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1110
|
+
_intersect<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1111
|
+
intersectAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1112
|
+
_intersectAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1113
|
+
except<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1114
|
+
_except<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1115
|
+
exceptAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1116
|
+
_exceptAll<T extends Query>(this: T, args: UnionArg<T>[], wrap?: boolean): T;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
declare type JsonColumnName<T extends Pick<Query, 'selectable'>> = StringKey<{
|
|
1120
|
+
[K in keyof T['selectable']]: T['selectable'][K]['column']['dataType'] extends 'jsonb' ? K : never;
|
|
1121
|
+
}[keyof T['selectable']]>;
|
|
1122
|
+
declare type ColumnOrJsonMethod<T extends Query> = JsonColumnName<T> | JsonItem;
|
|
1123
|
+
declare type JsonSetResult<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string, Type extends ColumnType = Column extends keyof T['shape'] ? T['shape'][Column] : Column extends JsonItem ? Column['__json'][2] : ColumnType> = JsonItem<As, Type> & (Type extends ColumnType ? AddQuerySelect<T, Record<As, Type>> : T);
|
|
1124
|
+
declare type JsonPathQueryResult<T extends Query, As extends string, Type extends ColumnType> = JsonItem & AddQuerySelect<T, {
|
|
1125
|
+
[K in As]: Type;
|
|
1126
|
+
}>;
|
|
1127
|
+
declare class Json {
|
|
1128
|
+
json<T extends Query>(this: T): SetQueryReturnsValueOptional<T, StringColumn>;
|
|
1129
|
+
_json<T extends Query>(this: T): SetQueryReturnsValueOptional<T, StringColumn>;
|
|
1130
|
+
jsonSet<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, value: unknown, options?: {
|
|
1131
|
+
as?: As;
|
|
1132
|
+
createIfMissing?: boolean;
|
|
1133
|
+
}): JsonSetResult<T, Column, As>;
|
|
1134
|
+
_jsonSet<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, value: unknown, options?: {
|
|
1135
|
+
as?: As;
|
|
1136
|
+
createIfMissing?: boolean;
|
|
1137
|
+
}): JsonSetResult<T, Column, As>;
|
|
1138
|
+
jsonInsert<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, ...args: [
|
|
1139
|
+
column: Column,
|
|
1140
|
+
path: Array<string | number>,
|
|
1141
|
+
value: unknown,
|
|
1142
|
+
options?: {
|
|
1143
|
+
as?: As;
|
|
1144
|
+
insertAfter?: boolean;
|
|
1145
|
+
}
|
|
1146
|
+
]): JsonSetResult<T, Column, As>;
|
|
1147
|
+
_jsonInsert<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, value: unknown, options?: {
|
|
1148
|
+
as?: As;
|
|
1149
|
+
insertAfter?: boolean;
|
|
1150
|
+
}): JsonSetResult<T, Column, As>;
|
|
1151
|
+
jsonRemove<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, ...args: [
|
|
1152
|
+
column: Column,
|
|
1153
|
+
path: Array<string | number>,
|
|
1154
|
+
options?: {
|
|
1155
|
+
as?: As;
|
|
1156
|
+
}
|
|
1157
|
+
]): JsonSetResult<T, Column, As>;
|
|
1158
|
+
_jsonRemove<T extends Query, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, options?: {
|
|
1159
|
+
as?: As;
|
|
1160
|
+
}): JsonSetResult<T, Column, As>;
|
|
1161
|
+
jsonPathQuery<T extends Query, As extends string, Type extends ColumnType>(this: T, ...args: [
|
|
1162
|
+
type: Type,
|
|
1163
|
+
column: ColumnOrJsonMethod<T>,
|
|
1164
|
+
path: string,
|
|
1165
|
+
as: As,
|
|
1166
|
+
options?: {
|
|
1167
|
+
vars?: string;
|
|
1168
|
+
silent?: boolean;
|
|
1169
|
+
}
|
|
1170
|
+
]): JsonPathQueryResult<T, As, Type>;
|
|
1171
|
+
_jsonPathQuery<T extends Query, As extends string, Type extends ColumnType>(this: T, type: Type, column: ColumnOrJsonMethod<T>, path: string, as: As, options?: {
|
|
1172
|
+
vars?: string;
|
|
1173
|
+
silent?: boolean;
|
|
1174
|
+
}): JsonPathQueryResult<T, As, Type>;
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
declare type DeleteArgs<T extends Query> = T['hasWhere'] extends true ? [forceAll?: boolean] : [true];
|
|
1178
|
+
declare type DeleteResult<T extends Query> = T['hasSelect'] extends false ? SetQueryReturnsRowCount<T> : T;
|
|
1179
|
+
declare class Delete {
|
|
1180
|
+
del<T extends Query>(this: T, ...args: DeleteArgs<T>): DeleteResult<T>;
|
|
1181
|
+
_del<T extends Query>(this: T, ...args: DeleteArgs<T>): DeleteResult<T>;
|
|
1182
|
+
delete<T extends Query>(this: T, ...args: DeleteArgs<T>): DeleteResult<T>;
|
|
1183
|
+
_delete<T extends Query>(this: T, ...args: DeleteArgs<T>): DeleteResult<T>;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
declare class Transaction {
|
|
1187
|
+
transaction<T extends Query, Result>(this: T, cb: (query: T) => Promise<Result>): Promise<Result>;
|
|
1188
|
+
transacting<T extends Query>(this: T, query: Query): T;
|
|
1189
|
+
_transacting<T extends Query>(this: T, query: Query): T;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
declare type ForQueryBuilder<Q extends Query> = Q & {
|
|
1193
|
+
noWait<T extends ForQueryBuilder<Q>>(this: T): T;
|
|
1194
|
+
_noWait<T extends ForQueryBuilder<Q>>(this: T): T;
|
|
1195
|
+
skipLocked<T extends ForQueryBuilder<Q>>(this: T): T;
|
|
1196
|
+
_skipLocked<T extends ForQueryBuilder<Q>>(this: T): T;
|
|
1197
|
+
};
|
|
1198
|
+
declare class For {
|
|
1199
|
+
forUpdate<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1200
|
+
_forUpdate<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1201
|
+
forNoKeyUpdate<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1202
|
+
_forNoKeyUpdate<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1203
|
+
forShare<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1204
|
+
_forShare<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1205
|
+
forKeyShare<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1206
|
+
_forKeyShare<T extends Query>(this: T, tableNames?: string[] | RawExpression): ForQueryBuilder<T>;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
declare type ColumnInfo = {
|
|
1210
|
+
defaultValue: unknown;
|
|
1211
|
+
type: string;
|
|
1212
|
+
maxLength: number | null;
|
|
1213
|
+
nullable: boolean;
|
|
1214
|
+
};
|
|
1215
|
+
declare class ColumnInfoMethods {
|
|
1216
|
+
columnInfo<T extends Query, Column extends keyof T['shape'] | undefined = undefined>(this: T, column?: Column): SetQueryReturnsColumnInfo<T, Column>;
|
|
1217
|
+
_columnInfo<T extends Query, Column extends keyof T['shape'] | undefined = undefined>(this: T, column?: Column): SetQueryReturnsColumnInfo<T, Column>;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
declare type ClearStatement = 'with' | 'select' | 'where' | 'union' | 'using' | 'join' | 'group' | 'order' | 'having' | 'limit' | 'offset' | 'counters';
|
|
1221
|
+
declare class Clear {
|
|
1222
|
+
clear<T extends Query>(this: T, ...clears: ClearStatement[]): T;
|
|
1223
|
+
_clear<T extends Query>(this: T, ...clears: ClearStatement[]): T;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
declare type HavingArgObject<T extends Query, Agg extends keyof Aggregate1ArgumentTypes<T>> = {
|
|
1227
|
+
[Column in Exclude<Aggregate1ArgumentTypes<T>[Agg], RawExpression>]?: T['selectable'][Column]['column']['type'] | (ColumnOperators<T['selectable'], Column> & AggregateOptions<T>);
|
|
1228
|
+
};
|
|
1229
|
+
declare type HavingArg<T extends Query = Query> = ({
|
|
1230
|
+
[Agg in keyof Aggregate1ArgumentTypes<T>]?: HavingArgObject<T, Agg>;
|
|
1231
|
+
} & {
|
|
1232
|
+
count?: number | HavingArgObject<T, 'count'>;
|
|
1233
|
+
}) | Query | RawExpression;
|
|
1234
|
+
declare class Having {
|
|
1235
|
+
having<T extends Query>(this: T, ...args: HavingArg<T>[]): T;
|
|
1236
|
+
_having<T extends Query>(this: T, ...args: HavingArg<T>[]): T;
|
|
1237
|
+
havingOr<T extends Query>(this: T, ...args: HavingArg<T>[]): T;
|
|
1238
|
+
_havingOr<T extends Query>(this: T, ...args: HavingArg<T>[]): T;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
declare class Window {
|
|
1242
|
+
selectRowNumber<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'row_number', As, IntegerColumn>;
|
|
1243
|
+
_selectRowNumber<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'row_number', As, IntegerColumn>;
|
|
1244
|
+
selectRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'rank', As, IntegerColumn>;
|
|
1245
|
+
_selectRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'rank', As, IntegerColumn>;
|
|
1246
|
+
selectDenseRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'dense_rank', As, IntegerColumn>;
|
|
1247
|
+
_selectDenseRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'dense_rank', As, IntegerColumn>;
|
|
1248
|
+
selectPercentRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'percent_rank', As, IntegerColumn>;
|
|
1249
|
+
_selectPercentRank<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'percent_rank', As, IntegerColumn>;
|
|
1250
|
+
selectCumeDist<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'cume_dist', As, IntegerColumn>;
|
|
1251
|
+
_selectCumeDist<T extends Query, As extends string | undefined = undefined>(this: T, options: WindowFunctionOptions<T, As>): SelectAgg<T, 'cume_dist', As, IntegerColumn>;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
declare type UpsertData<T extends Query> = {
|
|
1255
|
+
update: UpdateData<T>;
|
|
1256
|
+
create: InsertData<T>;
|
|
1257
|
+
};
|
|
1258
|
+
declare type UpsertResult<T extends Query> = T['hasSelect'] extends true ? SetQueryReturnsOne<T> : SetQueryReturnsVoid<T>;
|
|
1259
|
+
declare type UpsertThis = WhereResult<Query> & {
|
|
1260
|
+
returnType: 'one' | 'oneOrThrow';
|
|
1261
|
+
};
|
|
1262
|
+
declare class QueryUpsert {
|
|
1263
|
+
upsert<T extends UpsertThis>(this: T, data: UpsertData<T>): UpsertResult<T>;
|
|
1264
|
+
_upsert<T extends UpsertThis>(this: T, data: UpsertData<T>): UpsertResult<T>;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
declare type GetArg<T extends QueryBase> = keyof T['selectable'] | (RelationQueryBase & {
|
|
1268
|
+
returnType: 'value' | 'valueOrThrow';
|
|
1269
|
+
}) | RawExpression;
|
|
1270
|
+
declare type UnwrapRaw<T extends Query, Arg extends GetArg<T>> = Arg extends RawExpression ? Arg['__column'] : Exclude<Arg, RawExpression>;
|
|
1271
|
+
declare type GetResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValue<T, UnwrapRaw<T, Arg>>;
|
|
1272
|
+
declare type GetOptionalResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValueOptional<T, UnwrapRaw<T, Arg>>;
|
|
1273
|
+
declare class QueryGet {
|
|
1274
|
+
get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
1275
|
+
_get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
1276
|
+
getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
1277
|
+
_getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
declare type WindowArg<T extends Query> = Record<string, WindowArgDeclaration<T> | RawExpression>;
|
|
1281
|
+
declare type WindowArgDeclaration<T extends Query = Query> = {
|
|
1282
|
+
partitionBy?: Expression<T> | Expression<T>[];
|
|
1283
|
+
order?: OrderArg<T>;
|
|
1284
|
+
};
|
|
1285
|
+
declare type WindowResult<T extends Query, W extends WindowArg<T>> = SetQueryWindows<T, PropertyKeyUnionToArray<keyof W>>;
|
|
1286
|
+
declare type OrderArg<T extends Query> = keyof T['selectable'] | {
|
|
1287
|
+
[K in Selectable<T>]?: SortDir | {
|
|
1288
|
+
dir: SortDir;
|
|
1289
|
+
nulls: 'FIRST' | 'LAST';
|
|
1290
|
+
};
|
|
1291
|
+
} | RawExpression;
|
|
1292
|
+
interface QueryMethods extends Aggregate, Select, From, Join, With, Union, Json, Insert, Update, Delete, Transaction, For, ColumnInfoMethods, Where, Clear, Having, Window, Then, QueryLog, QueryCallbacks, QueryUpsert, QueryGet {
|
|
1293
|
+
}
|
|
1294
|
+
declare class QueryMethods {
|
|
1295
|
+
windows: PropertyKey[];
|
|
1296
|
+
__model: Query;
|
|
1297
|
+
all<T extends Query>(this: T): SetQueryReturnsAll<T>;
|
|
1298
|
+
_all<T extends Query>(this: T): SetQueryReturnsAll<T>;
|
|
1299
|
+
take<T extends Query>(this: T): SetQueryReturnsOne<T>;
|
|
1300
|
+
_take<T extends Query>(this: T): SetQueryReturnsOne<T>;
|
|
1301
|
+
takeOptional<T extends Query>(this: T): SetQueryReturnsOneOptional<T>;
|
|
1302
|
+
_takeOptional<T extends Query>(this: T): SetQueryReturnsOneOptional<T>;
|
|
1303
|
+
rows<T extends Query>(this: T): SetQueryReturnsRows<T>;
|
|
1304
|
+
_rows<T extends Query>(this: T): SetQueryReturnsRows<T>;
|
|
1305
|
+
pluck<T extends Query, S extends Expression<T>>(this: T, select: S): SetQueryReturnsPluck<T, S>;
|
|
1306
|
+
_pluck<T extends Query, S extends Expression<T>>(this: T, select: S): SetQueryReturnsPluck<T, S>;
|
|
1307
|
+
exec<T extends Query>(this: T): SetQueryReturnsVoid<T>;
|
|
1308
|
+
_exec<T extends Query>(this: T): SetQueryReturnsVoid<T>;
|
|
1309
|
+
clone<T extends QueryBase>(this: T): T;
|
|
1310
|
+
toSql(this: Query, values?: unknown[]): Sql;
|
|
1311
|
+
distinct<T extends Query>(this: T, ...columns: Expression<T>[]): T;
|
|
1312
|
+
_distinct<T extends Query>(this: T, ...columns: Expression<T>[]): T;
|
|
1313
|
+
find<T extends Query>(this: T, ...args: GetTypesOrRaw<T['schema']['primaryTypes']>): SetQueryReturnsOne<WhereResult<T>>;
|
|
1314
|
+
_find<T extends Query>(this: T, ...args: GetTypesOrRaw<T['schema']['primaryTypes']>): SetQueryReturnsOne<WhereResult<T>>;
|
|
1315
|
+
findOptional<T extends Query>(this: T, ...args: GetTypesOrRaw<T['schema']['primaryTypes']>): SetQueryReturnsOneOptional<WhereResult<T>>;
|
|
1316
|
+
_findOptional<T extends Query>(this: T, ...args: GetTypesOrRaw<T['schema']['primaryTypes']>): SetQueryReturnsOneOptional<WhereResult<T>>;
|
|
1317
|
+
findBy<T extends Query>(this: T, ...args: WhereArg<T>[]): SetQueryReturnsOne<WhereResult<T>>;
|
|
1318
|
+
_findBy<T extends Query>(this: T, ...args: WhereArg<T>[]): SetQueryReturnsOne<WhereResult<T>>;
|
|
1319
|
+
findByOptional<T extends Query>(this: T, ...args: WhereArg<T>[]): SetQueryReturnsOneOptional<WhereResult<T>>;
|
|
1320
|
+
_findByOptional<T extends Query>(this: T, ...args: WhereArg<T>[]): SetQueryReturnsOneOptional<WhereResult<T>>;
|
|
1321
|
+
as<T extends Query, TableAlias extends string>(this: T, tableAlias: TableAlias): SetQueryTableAlias<T, TableAlias>;
|
|
1322
|
+
_as<T extends Query, TableAlias extends string>(this: T, tableAlias: TableAlias): SetQueryTableAlias<T, TableAlias>;
|
|
1323
|
+
withSchema<T extends Query>(this: T, schema: string): T;
|
|
1324
|
+
_withSchema<T extends Query>(this: T, schema: string): T;
|
|
1325
|
+
group<T extends Query>(this: T, ...columns: Expression<T>[]): T;
|
|
1326
|
+
_group<T extends Query>(this: T, ...columns: Expression<T>[]): T;
|
|
1327
|
+
window<T extends Query, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
|
|
1328
|
+
_window<T extends Query, W extends WindowArg<T>>(this: T, arg: W): WindowResult<T, W>;
|
|
1329
|
+
wrap<T extends Query, Q extends Query, As extends string = 't'>(this: T, query: Q, as?: As): SetQueryTableAlias<Q, As>;
|
|
1330
|
+
_wrap<T extends Query, Q extends Query, As extends string = 't'>(this: T, query: Q, as?: As): SetQueryTableAlias<Q, As>;
|
|
1331
|
+
order<T extends Query>(this: T, ...args: OrderArg<T>[]): T;
|
|
1332
|
+
_order<T extends Query>(this: T, ...args: OrderArg<T>[]): T;
|
|
1333
|
+
limit<T extends Query>(this: T, arg: number): T;
|
|
1334
|
+
_limit<T extends Query>(this: T, arg: number): T;
|
|
1335
|
+
offset<T extends Query>(this: T, arg: number): T;
|
|
1336
|
+
_offset<T extends Query>(this: T, arg: number): T;
|
|
1337
|
+
exists<T extends Query>(this: T): SetQueryReturnsValueOptional<T, NumberColumn>;
|
|
1338
|
+
_exists<T extends Query>(this: T): SetQueryReturnsValueOptional<T, NumberColumn>;
|
|
1339
|
+
truncate<T extends Query>(this: T, options?: {
|
|
1340
|
+
restartIdentity?: boolean;
|
|
1341
|
+
cascade?: boolean;
|
|
1342
|
+
}): SetQueryReturnsVoid<T>;
|
|
1343
|
+
_truncate<T extends Query>(this: T, options?: {
|
|
1344
|
+
restartIdentity?: boolean;
|
|
1345
|
+
cascade?: boolean;
|
|
1346
|
+
}): SetQueryReturnsVoid<T>;
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
declare type ColumnParser = (input: unknown) => unknown;
|
|
1350
|
+
declare type ColumnsParsers = Record<string, ColumnParser>;
|
|
1351
|
+
declare type SelectableBase = Record<PropertyKey, {
|
|
1352
|
+
as: string;
|
|
1353
|
+
column: ColumnType;
|
|
1354
|
+
}>;
|
|
1355
|
+
declare type WithDataItem = {
|
|
1356
|
+
table: string;
|
|
1357
|
+
shape: ColumnsShape;
|
|
1358
|
+
};
|
|
1359
|
+
declare type WithDataBase = Record<never, WithDataItem>;
|
|
1360
|
+
declare type QueryBase = {
|
|
1361
|
+
query: QueryData;
|
|
1362
|
+
table?: string;
|
|
1363
|
+
tableAlias?: string;
|
|
1364
|
+
clone(): QueryBase;
|
|
1365
|
+
selectable: SelectableBase;
|
|
1366
|
+
__model: Query;
|
|
1367
|
+
relations: RelationsBase;
|
|
1368
|
+
withData: WithDataBase;
|
|
1369
|
+
};
|
|
1370
|
+
declare type defaultsKey = typeof defaultsKey;
|
|
1371
|
+
declare const defaultsKey: unique symbol;
|
|
1372
|
+
declare type Query = QueryMethods & {
|
|
1373
|
+
queryBuilder: Db;
|
|
1374
|
+
whereQueryBuilder: typeof WhereQueryBuilder;
|
|
1375
|
+
onQueryBuilder: typeof OnQueryBuilder;
|
|
1376
|
+
table?: string;
|
|
1377
|
+
shape: ColumnsShape;
|
|
1378
|
+
schema: Omit<TableSchema<ColumnsShape>, 'primaryKeys' | 'primaryTypes'> & {
|
|
1379
|
+
primaryKeys: any[];
|
|
1380
|
+
primaryTypes: any[];
|
|
1381
|
+
};
|
|
1382
|
+
type: Record<string, unknown>;
|
|
1383
|
+
inputType: Record<string, unknown>;
|
|
1384
|
+
query: QueryData;
|
|
1385
|
+
result: ColumnsShape;
|
|
1386
|
+
hasSelect: boolean;
|
|
1387
|
+
hasWhere: boolean;
|
|
1388
|
+
selectable: SelectableBase;
|
|
1389
|
+
returnType: QueryReturnType;
|
|
1390
|
+
then: ThenResult<unknown>;
|
|
1391
|
+
tableAlias: string | undefined;
|
|
1392
|
+
joinedTables: Record<string, Pick<Query, 'result' | 'tableAlias' | 'table'>>;
|
|
1393
|
+
windows: PropertyKey[];
|
|
1394
|
+
defaultSelectColumns: string[];
|
|
1395
|
+
columnsParsers?: ColumnsParsers;
|
|
1396
|
+
relations: RelationsBase;
|
|
1397
|
+
withData: WithDataBase;
|
|
1398
|
+
[defaultsKey]?: string;
|
|
1399
|
+
};
|
|
1400
|
+
declare type Selectable<T extends QueryBase> = StringKey<keyof T['selectable']>;
|
|
1401
|
+
declare type QueryWithTable = Query & {
|
|
1402
|
+
table: string;
|
|
1403
|
+
};
|
|
1404
|
+
declare type DefaultSelectColumns<S extends ColumnsShape> = {
|
|
1405
|
+
[K in keyof S]: S[K]['isHidden'] extends true ? never : K;
|
|
1406
|
+
}[StringKey<keyof S>][];
|
|
1407
|
+
declare type QueryReturnType = 'all' | 'one' | 'oneOrThrow' | 'rows' | 'pluck' | 'value' | 'valueOrThrow' | 'rowCount' | 'void';
|
|
1408
|
+
declare type JoinedTablesBase = Record<string, Pick<Query, 'result' | 'tableAlias' | 'table'>>;
|
|
1409
|
+
declare type QueryThen<ReturnType extends QueryReturnType, Result extends ColumnsShape> = ReturnType extends 'all' ? ThenResult<ColumnShapeOutput<Result>[]> : ReturnType extends 'one' ? ThenResult<ColumnShapeOutput<Result> | undefined> : ReturnType extends 'oneOrThrow' ? ThenResult<ColumnShapeOutput<Result>> : ReturnType extends 'value' ? Result extends {
|
|
1410
|
+
value: ColumnType;
|
|
1411
|
+
} ? ThenResult<Result['value']['type'] | undefined> : never : ReturnType extends 'valueOrThrow' ? Result extends {
|
|
1412
|
+
value: ColumnType;
|
|
1413
|
+
} ? ThenResult<Result['value']['type']> : never : ReturnType extends 'rows' ? ThenResult<ColumnShapeOutput<Result>[keyof Result][][]> : ReturnType extends 'pluck' ? Result extends {
|
|
1414
|
+
pluck: ColumnType;
|
|
1415
|
+
} ? ThenResult<Result['pluck']['type'][]> : never : ReturnType extends 'rowCount' ? ThenResult<number> : ReturnType extends 'void' ? ThenResult<void> : never;
|
|
1416
|
+
declare type AddQuerySelect<T extends Pick<Query, 'hasSelect' | 'result' | 'then' | 'returnType'>, Result extends ColumnsShape> = T['hasSelect'] extends false ? Omit<T, 'hasSelect' | 'result' | 'then'> & {
|
|
1417
|
+
hasSelect: true;
|
|
1418
|
+
result: Result;
|
|
1419
|
+
then: QueryThen<T['returnType'], Result>;
|
|
1420
|
+
} : Omit<T, 'result' | 'then'> & {
|
|
1421
|
+
result: Spread<[T['result'], Result]>;
|
|
1422
|
+
then: QueryThen<T['returnType'], Spread<[T['result'], Result]>>;
|
|
1423
|
+
};
|
|
1424
|
+
declare type QuerySelectAll<T extends Query> = Omit<T, 'hasSelect' | 'result' | 'then'> & {
|
|
1425
|
+
hasSelect: true;
|
|
1426
|
+
result: T['shape'];
|
|
1427
|
+
then: QueryThen<T['returnType'], T['shape']>;
|
|
1428
|
+
};
|
|
1429
|
+
declare type SetQueryReturns<T extends Query, R extends QueryReturnType> = Omit<T, 'returnType' | 'then'> & {
|
|
1430
|
+
returnType: R;
|
|
1431
|
+
then: QueryThen<R, T['result']>;
|
|
1432
|
+
};
|
|
1433
|
+
declare type SetQueryReturnsAll<T extends Query> = SetQueryReturns<T, 'all'>;
|
|
1434
|
+
declare type SetQueryReturnsOneOptional<T extends Query> = SetQueryReturns<T, 'one'>;
|
|
1435
|
+
declare type SetQueryReturnsOne<T extends Query> = SetQueryReturns<T, 'oneOrThrow'>;
|
|
1436
|
+
declare type SetQueryReturnsRows<T extends Query> = SetQueryReturns<T, 'rows'>;
|
|
1437
|
+
declare type SetQueryReturnsPluck<T extends Query, S extends keyof T['selectable'] | RawExpression, C extends ColumnType = S extends keyof T['selectable'] ? T['selectable'][S]['column'] : S extends RawExpression ? S['__column'] : never> = Omit<T, 'hasSelect' | 'result' | 'returnType' | 'then'> & {
|
|
1438
|
+
hasSelect: true;
|
|
1439
|
+
result: {
|
|
1440
|
+
pluck: C;
|
|
1441
|
+
};
|
|
1442
|
+
returnType: 'pluck';
|
|
1443
|
+
then: ThenResult<C['type'][]>;
|
|
1444
|
+
};
|
|
1445
|
+
declare type SetQueryReturnsValueOptional<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnType, Column extends ColumnType = Arg extends ColumnType ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'hasSelect' | 'result' | 'returnType' | 'then'> & {
|
|
1446
|
+
hasSelect: true;
|
|
1447
|
+
result: {
|
|
1448
|
+
value: Column;
|
|
1449
|
+
};
|
|
1450
|
+
returnType: 'value';
|
|
1451
|
+
then: ThenResult<Column['type'] | undefined>;
|
|
1452
|
+
};
|
|
1453
|
+
declare type SetQueryReturnsValue<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnType, Column extends ColumnType = Arg extends ColumnType ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'hasSelect' | 'result' | 'returnType' | 'then'> & {
|
|
1454
|
+
hasSelect: true;
|
|
1455
|
+
result: {
|
|
1456
|
+
value: Column;
|
|
1457
|
+
};
|
|
1458
|
+
returnType: 'valueOrThrow';
|
|
1459
|
+
then: ThenResult<Column['type']>;
|
|
1460
|
+
};
|
|
1461
|
+
declare type SetQueryReturnsRowCount<T extends Query> = SetQueryReturns<T, 'rowCount'>;
|
|
1462
|
+
declare type SetQueryReturnsVoid<T extends Query> = SetQueryReturns<T, 'void'>;
|
|
1463
|
+
declare type SetQueryReturnsColumnInfo<T extends Query, Column extends keyof T['shape'] | undefined, Result = Column extends keyof T['shape'] ? ColumnInfo : Record<keyof T['shape'], ColumnInfo>> = Omit<T, 'result' | 'returnType' | 'then'> & {
|
|
1464
|
+
result: {
|
|
1465
|
+
value: ColumnType<Result>;
|
|
1466
|
+
};
|
|
1467
|
+
returnType: 'value';
|
|
1468
|
+
then: ThenResult<Result>;
|
|
1469
|
+
};
|
|
1470
|
+
declare type SetQueryTableAlias<T extends Query, TableAlias extends string> = Omit<T, 'tableAlias' | 'selectable'> & {
|
|
1471
|
+
tableAlias: TableAlias;
|
|
1472
|
+
selectable: Omit<T['selectable'], `${AliasOrTable<T>}.${StringKey<keyof T['shape']>}`> & {
|
|
1473
|
+
[K in keyof T['shape'] as `${TableAlias}.${StringKey<keyof T['shape']>}`]: {
|
|
1474
|
+
as: K;
|
|
1475
|
+
column: T['shape'][K];
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
};
|
|
1479
|
+
declare type SetQueryJoinedTables<T extends Query, Selectable extends Record<string, {
|
|
1480
|
+
as: string;
|
|
1481
|
+
column: ColumnType;
|
|
1482
|
+
}>, JoinedTables extends JoinedTablesBase> = Omit<T, 'selectable' | 'joinedTables'> & {
|
|
1483
|
+
selectable: Selectable;
|
|
1484
|
+
joinedTables: JoinedTables;
|
|
1485
|
+
};
|
|
1486
|
+
declare type AddQueryJoinedTable<T extends Query, J extends Pick<Query, 'result' | 'tableAlias' | 'table'>> = SetQueryJoinedTables<T, T['selectable'] & {
|
|
1487
|
+
[K in keyof J['result'] as `${AliasOrTable<J>}.${StringKey<K>}`]: {
|
|
1488
|
+
as: K;
|
|
1489
|
+
column: J['result'][K];
|
|
1490
|
+
};
|
|
1491
|
+
}, string extends keyof T['joinedTables'] ? Record<AliasOrTable<J>, J> : Spread<[T['joinedTables'], Record<AliasOrTable<J>, J>]>>;
|
|
1492
|
+
declare type SetQueryWith<T extends Query, WithData extends Record<string, WithDataItem>> = Omit<T, 'withData'> & {
|
|
1493
|
+
withData: WithData;
|
|
1494
|
+
};
|
|
1495
|
+
declare type AddQueryWith<T extends Query, With extends WithDataItem> = SetQueryWith<T, Spread<[T['withData'], {
|
|
1496
|
+
[K in With['table']]: With;
|
|
1497
|
+
}]>>;
|
|
1498
|
+
declare type SetQueryWindows<T extends Query, W extends PropertyKey[]> = Omit<T, 'windows'> & {
|
|
1499
|
+
windows: W;
|
|
1500
|
+
};
|
|
1501
|
+
|
|
1502
|
+
declare type Fn<T> = (key: string, value: T, values: unknown[]) => string;
|
|
1503
|
+
declare type Operator<T> = Fn<T> & {
|
|
1504
|
+
type: T;
|
|
1505
|
+
};
|
|
1506
|
+
declare const createOperator: <T>(fn: Fn<T>) => Fn<T> & {
|
|
1507
|
+
type: T;
|
|
1508
|
+
};
|
|
1509
|
+
declare type Operators = Record<string, Operator<any>>;
|
|
1510
|
+
declare const Operators: {
|
|
1511
|
+
any: {
|
|
1512
|
+
equals: Fn<any> & {
|
|
1513
|
+
type: any;
|
|
1514
|
+
};
|
|
1515
|
+
not: Fn<any> & {
|
|
1516
|
+
type: any;
|
|
1517
|
+
};
|
|
1518
|
+
in: Fn<any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1519
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1520
|
+
};
|
|
1521
|
+
notIn: Fn<any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1522
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1523
|
+
};
|
|
1524
|
+
};
|
|
1525
|
+
boolean: {
|
|
1526
|
+
equals: Fn<boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1527
|
+
type: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1528
|
+
};
|
|
1529
|
+
not: Fn<boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1530
|
+
type: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1531
|
+
};
|
|
1532
|
+
in: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[]> & {
|
|
1533
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[];
|
|
1534
|
+
};
|
|
1535
|
+
notIn: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[]> & {
|
|
1536
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[];
|
|
1537
|
+
};
|
|
1538
|
+
};
|
|
1539
|
+
number: {
|
|
1540
|
+
lt: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1541
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1542
|
+
};
|
|
1543
|
+
lte: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1544
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1545
|
+
};
|
|
1546
|
+
gt: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1547
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1548
|
+
};
|
|
1549
|
+
gte: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1550
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1551
|
+
};
|
|
1552
|
+
between: Fn<[number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>]> & {
|
|
1553
|
+
type: [number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>];
|
|
1554
|
+
};
|
|
1555
|
+
equals: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1556
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1557
|
+
};
|
|
1558
|
+
not: Fn<number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1559
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1560
|
+
};
|
|
1561
|
+
in: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[]> & {
|
|
1562
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[];
|
|
1563
|
+
};
|
|
1564
|
+
notIn: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[]> & {
|
|
1565
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[];
|
|
1566
|
+
};
|
|
1567
|
+
};
|
|
1568
|
+
date: {
|
|
1569
|
+
lt: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1570
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1571
|
+
};
|
|
1572
|
+
lte: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1573
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1574
|
+
};
|
|
1575
|
+
gt: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1576
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1577
|
+
};
|
|
1578
|
+
gte: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1579
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1580
|
+
};
|
|
1581
|
+
between: Fn<[Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date]> & {
|
|
1582
|
+
type: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date];
|
|
1583
|
+
};
|
|
1584
|
+
equals: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1585
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1586
|
+
};
|
|
1587
|
+
not: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1588
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1589
|
+
};
|
|
1590
|
+
in: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[]> & {
|
|
1591
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
1592
|
+
};
|
|
1593
|
+
notIn: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[]> & {
|
|
1594
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
1595
|
+
};
|
|
1596
|
+
};
|
|
1597
|
+
time: {
|
|
1598
|
+
lt: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1599
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1600
|
+
};
|
|
1601
|
+
lte: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1602
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1603
|
+
};
|
|
1604
|
+
gt: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1605
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1606
|
+
};
|
|
1607
|
+
gte: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1608
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1609
|
+
};
|
|
1610
|
+
between: Fn<[Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date]> & {
|
|
1611
|
+
type: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date];
|
|
1612
|
+
};
|
|
1613
|
+
equals: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1614
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1615
|
+
};
|
|
1616
|
+
not: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date> & {
|
|
1617
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
1618
|
+
};
|
|
1619
|
+
in: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[]> & {
|
|
1620
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
1621
|
+
};
|
|
1622
|
+
notIn: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[]> & {
|
|
1623
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
1624
|
+
};
|
|
1625
|
+
};
|
|
1626
|
+
text: {
|
|
1627
|
+
contains: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1628
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1629
|
+
};
|
|
1630
|
+
containsInsensitive: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1631
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1632
|
+
};
|
|
1633
|
+
startsWith: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1634
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1635
|
+
};
|
|
1636
|
+
startsWithInsensitive: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1637
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1638
|
+
};
|
|
1639
|
+
endsWith: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1640
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1641
|
+
};
|
|
1642
|
+
endsWithInsensitive: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1643
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1644
|
+
};
|
|
1645
|
+
equals: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1646
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1647
|
+
};
|
|
1648
|
+
not: Fn<string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1649
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1650
|
+
};
|
|
1651
|
+
in: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[]> & {
|
|
1652
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
1653
|
+
};
|
|
1654
|
+
notIn: Fn<Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[]> & {
|
|
1655
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
1656
|
+
};
|
|
1657
|
+
};
|
|
1658
|
+
json: {
|
|
1659
|
+
jsonPath: Fn<[path: string, op: string, value: unknown]> & {
|
|
1660
|
+
type: [path: string, op: string, value: unknown];
|
|
1661
|
+
};
|
|
1662
|
+
jsonSupersetOf: Fn<unknown> & {
|
|
1663
|
+
type: unknown;
|
|
1664
|
+
};
|
|
1665
|
+
jsonSubsetOf: Fn<unknown> & {
|
|
1666
|
+
type: unknown;
|
|
1667
|
+
};
|
|
1668
|
+
equals: Fn<unknown> & {
|
|
1669
|
+
type: unknown;
|
|
1670
|
+
};
|
|
1671
|
+
not: Fn<unknown> & {
|
|
1672
|
+
type: unknown;
|
|
1673
|
+
};
|
|
1674
|
+
in: Fn<Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1675
|
+
type: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1676
|
+
};
|
|
1677
|
+
notIn: Fn<Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1678
|
+
type: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1679
|
+
};
|
|
1680
|
+
};
|
|
1681
|
+
array: {
|
|
1682
|
+
equals: Fn<any> & {
|
|
1683
|
+
type: any;
|
|
1684
|
+
};
|
|
1685
|
+
not: Fn<any> & {
|
|
1686
|
+
type: any;
|
|
1687
|
+
};
|
|
1688
|
+
in: Fn<any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1689
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1690
|
+
};
|
|
1691
|
+
notIn: Fn<any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>> & {
|
|
1692
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1693
|
+
};
|
|
1694
|
+
};
|
|
1695
|
+
};
|
|
1696
|
+
|
|
1697
|
+
declare type EmptyObject = Record<never, never>;
|
|
1698
|
+
declare const cloneInstance: <T>(instance: T) => T;
|
|
1699
|
+
declare const assignMethodsToClass: <Methods extends Record<string, unknown>>(klass: {
|
|
1700
|
+
prototype: unknown;
|
|
1701
|
+
}, methods: Methods) => void;
|
|
1702
|
+
|
|
1703
|
+
type utils_EmptyObject = EmptyObject;
|
|
1704
|
+
declare const utils_cloneInstance: typeof cloneInstance;
|
|
1705
|
+
declare const utils_assignMethodsToClass: typeof assignMethodsToClass;
|
|
1706
|
+
declare namespace utils {
|
|
1707
|
+
export {
|
|
1708
|
+
utils_EmptyObject as EmptyObject,
|
|
1709
|
+
utils_cloneInstance as cloneInstance,
|
|
1710
|
+
utils_assignMethodsToClass as assignMethodsToClass,
|
|
1711
|
+
};
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
declare type ColumnOutput<T extends ColumnType> = T['type'];
|
|
1715
|
+
declare type ColumnInput<T extends ColumnType> = T['inputType'];
|
|
1716
|
+
declare type NullableColumn<T extends ColumnType> = Omit<T, 'type' | 'operators'> & {
|
|
1717
|
+
type: T['type'] | null;
|
|
1718
|
+
isNullable: true;
|
|
1719
|
+
operators: Omit<T['operators'], 'equals' | 'not'> & {
|
|
1720
|
+
equals: Operator<T['type'] | null>;
|
|
1721
|
+
not: Operator<T['type'] | null>;
|
|
1722
|
+
};
|
|
1723
|
+
};
|
|
1724
|
+
declare type AnyColumnType = ColumnType<any, Record<string, Operator<any>>>;
|
|
1725
|
+
declare type AnyColumnTypeCreator = (...args: any[]) => AnyColumnType;
|
|
1726
|
+
declare abstract class ColumnType<Type = unknown, Ops extends Operators = Operators, InputType = Type> {
|
|
1727
|
+
abstract dataType: string;
|
|
1728
|
+
abstract operators: Ops;
|
|
1729
|
+
type: Type;
|
|
1730
|
+
inputType: InputType;
|
|
1731
|
+
data: EmptyObject;
|
|
1732
|
+
isPrimaryKey: boolean;
|
|
1733
|
+
isHidden: boolean;
|
|
1734
|
+
isNullable: boolean;
|
|
1735
|
+
encodeFn?: (input: any) => unknown;
|
|
1736
|
+
parseFn?: (input: unknown) => unknown;
|
|
1737
|
+
primaryKey<T extends ColumnType>(this: T): T & {
|
|
1738
|
+
isPrimaryKey: true;
|
|
1739
|
+
};
|
|
1740
|
+
hidden<T extends ColumnType>(this: T): T & {
|
|
1741
|
+
isHidden: true;
|
|
1742
|
+
};
|
|
1743
|
+
nullable<T extends ColumnType>(this: T): NullableColumn<T>;
|
|
1744
|
+
encode<T extends ColumnType, Input>(this: T, fn: (input: Input) => unknown): Omit<T, 'inputType'> & {
|
|
1745
|
+
inputType: Input;
|
|
1746
|
+
};
|
|
1747
|
+
parse<T extends ColumnType, Output>(this: T, fn: (input: T['type']) => Output): Omit<T, 'type'> & {
|
|
1748
|
+
type: Output;
|
|
1749
|
+
};
|
|
1750
|
+
toSQL(): string;
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
interface BaseNumberData {
|
|
1754
|
+
lt?: number;
|
|
1755
|
+
lte?: number;
|
|
1756
|
+
gt?: number;
|
|
1757
|
+
gte?: number;
|
|
1758
|
+
multipleOf?: number;
|
|
1759
|
+
}
|
|
1760
|
+
declare type NumberColumn = ColumnType<number>;
|
|
1761
|
+
declare type NumberColumnData = BaseNumberData;
|
|
1762
|
+
declare type NumberMethods = typeof numberMethods$1;
|
|
1763
|
+
declare const numberMethods$1: {
|
|
1764
|
+
lt<T extends ColumnType<unknown, Operators, unknown>, Value extends number>(this: T, value: Value): T & {
|
|
1765
|
+
data: Omit<T["data"], "lt"> & {
|
|
1766
|
+
lt: Value;
|
|
1767
|
+
};
|
|
1768
|
+
};
|
|
1769
|
+
lte<T_1 extends ColumnType<unknown, Operators, unknown>, Value_1 extends number>(this: T_1, value: Value_1): T_1 & {
|
|
1770
|
+
data: Omit<T_1["data"], "lte"> & {
|
|
1771
|
+
lte: Value_1;
|
|
1772
|
+
};
|
|
1773
|
+
};
|
|
1774
|
+
max<T_2 extends ColumnType<unknown, Operators, unknown>, Value_2 extends number>(this: T_2, value: Value_2): T_2 & {
|
|
1775
|
+
data: Omit<T_2["data"], "lte"> & {
|
|
1776
|
+
lte: Value_2;
|
|
1777
|
+
};
|
|
1778
|
+
};
|
|
1779
|
+
gt<T_3 extends ColumnType<unknown, Operators, unknown>, Value_3 extends number>(this: T_3, value: Value_3): T_3 & {
|
|
1780
|
+
data: Omit<T_3["data"], "gt"> & {
|
|
1781
|
+
gt: Value_3;
|
|
1782
|
+
};
|
|
1783
|
+
};
|
|
1784
|
+
gte<T_4 extends ColumnType<unknown, Operators, unknown>, Value_4 extends number>(this: T_4, value: Value_4): T_4 & {
|
|
1785
|
+
data: Omit<T_4["data"], "gte"> & {
|
|
1786
|
+
gte: Value_4;
|
|
1787
|
+
};
|
|
1788
|
+
};
|
|
1789
|
+
min<T_5 extends ColumnType<unknown, Operators, unknown>, Value_5 extends number>(this: T_5, value: Value_5): T_5 & {
|
|
1790
|
+
data: Omit<T_5["data"], "gte"> & {
|
|
1791
|
+
gte: Value_5;
|
|
1792
|
+
};
|
|
1793
|
+
};
|
|
1794
|
+
positive<T_6 extends ColumnType<unknown, Operators, unknown>>(this: T_6): T_6 & {
|
|
1795
|
+
data: Omit<T_6["data"], "gt"> & {
|
|
1796
|
+
gt: 0;
|
|
1797
|
+
};
|
|
1798
|
+
};
|
|
1799
|
+
nonNegative<T_7 extends ColumnType<unknown, Operators, unknown>>(this: T_7): T_7 & {
|
|
1800
|
+
data: Omit<T_7["data"], "gte"> & {
|
|
1801
|
+
gte: 0;
|
|
1802
|
+
};
|
|
1803
|
+
};
|
|
1804
|
+
negative<T_8 extends ColumnType<unknown, Operators, unknown>>(this: T_8): T_8 & {
|
|
1805
|
+
data: Omit<T_8["data"], "lt"> & {
|
|
1806
|
+
lt: 0;
|
|
1807
|
+
};
|
|
1808
|
+
};
|
|
1809
|
+
nonPositive<T_9 extends ColumnType<unknown, Operators, unknown>>(this: T_9): T_9 & {
|
|
1810
|
+
data: Omit<T_9["data"], "lte"> & {
|
|
1811
|
+
lte: 0;
|
|
1812
|
+
};
|
|
1813
|
+
};
|
|
1814
|
+
multipleOf<T_10 extends ColumnType<unknown, Operators, unknown>, Value_6 extends number>(this: T_10, value: Value_6): T_10 & {
|
|
1815
|
+
data: Omit<T_10["data"], "multipleOf"> & {
|
|
1816
|
+
multipleOf: Value_6;
|
|
1817
|
+
};
|
|
1818
|
+
};
|
|
1819
|
+
step<T_11 extends ColumnType<unknown, Operators, unknown>, Value_7 extends number>(this: T_11, value: Value_7): T_11 & {
|
|
1820
|
+
data: Omit<T_11["data"], "multipleOf"> & {
|
|
1821
|
+
multipleOf: Value_7;
|
|
1822
|
+
};
|
|
1823
|
+
};
|
|
1824
|
+
};
|
|
1825
|
+
interface NumberBaseColumn<Type> extends ColumnType<Type, typeof Operators.number>, NumberMethods {
|
|
1826
|
+
}
|
|
1827
|
+
declare abstract class NumberBaseColumn<Type> extends ColumnType<Type, typeof Operators.number> {
|
|
1828
|
+
data: BaseNumberData;
|
|
1829
|
+
operators: {
|
|
1830
|
+
lt: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1831
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1832
|
+
};
|
|
1833
|
+
lte: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1834
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1835
|
+
};
|
|
1836
|
+
gt: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1837
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1838
|
+
};
|
|
1839
|
+
gte: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1840
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1841
|
+
};
|
|
1842
|
+
between: ((key: string, value: [number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>], values: unknown[]) => string) & {
|
|
1843
|
+
type: [number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>];
|
|
1844
|
+
};
|
|
1845
|
+
equals: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1846
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1847
|
+
};
|
|
1848
|
+
not: ((key: string, value: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1849
|
+
type: number | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1850
|
+
};
|
|
1851
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[], values: unknown[]) => string) & {
|
|
1852
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[];
|
|
1853
|
+
};
|
|
1854
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[], values: unknown[]) => string) & {
|
|
1855
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | number[];
|
|
1856
|
+
};
|
|
1857
|
+
};
|
|
1858
|
+
}
|
|
1859
|
+
interface DecimalColumnData extends NumberColumnData {
|
|
1860
|
+
precision?: number;
|
|
1861
|
+
scale?: number;
|
|
1862
|
+
}
|
|
1863
|
+
declare class DecimalBaseColumn<Type extends number | bigint, Precision extends number | undefined = undefined, Scale extends number | undefined = undefined> extends NumberBaseColumn<Type> {
|
|
1864
|
+
data: DecimalColumnData & {
|
|
1865
|
+
precision: Precision;
|
|
1866
|
+
scale: Scale;
|
|
1867
|
+
};
|
|
1868
|
+
dataType: "decimal";
|
|
1869
|
+
constructor(precision?: Precision, scale?: Scale);
|
|
1870
|
+
toSQL(): string;
|
|
1871
|
+
}
|
|
1872
|
+
declare class SmallIntColumn extends NumberBaseColumn<number> {
|
|
1873
|
+
dataType: "smallint";
|
|
1874
|
+
}
|
|
1875
|
+
declare class IntegerColumn extends NumberBaseColumn<number> {
|
|
1876
|
+
dataType: "integer";
|
|
1877
|
+
}
|
|
1878
|
+
declare class BigIntColumn extends NumberBaseColumn<bigint> {
|
|
1879
|
+
dataType: "bigint";
|
|
1880
|
+
}
|
|
1881
|
+
declare class DecimalColumn<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined> extends DecimalBaseColumn<number, Precision, Scale> {
|
|
1882
|
+
}
|
|
1883
|
+
declare class DecimalBigIntColumn<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined> extends DecimalBaseColumn<bigint, Precision, Scale> {
|
|
1884
|
+
}
|
|
1885
|
+
declare class RealColumn extends NumberBaseColumn<number> {
|
|
1886
|
+
dataType: "real";
|
|
1887
|
+
}
|
|
1888
|
+
declare class DoublePrecisionColumn extends NumberBaseColumn<bigint> {
|
|
1889
|
+
dataType: "double precision";
|
|
1890
|
+
}
|
|
1891
|
+
declare class SmallSerialColumn extends NumberBaseColumn<number> {
|
|
1892
|
+
dataType: "smallserial";
|
|
1893
|
+
}
|
|
1894
|
+
declare class SerialColumn extends NumberBaseColumn<number> {
|
|
1895
|
+
dataType: "serial";
|
|
1896
|
+
}
|
|
1897
|
+
declare class BigSerialColumn extends NumberBaseColumn<bigint> {
|
|
1898
|
+
dataType: "bigserial";
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1901
|
+
interface BaseStringData {
|
|
1902
|
+
min?: number;
|
|
1903
|
+
max?: number;
|
|
1904
|
+
length?: number;
|
|
1905
|
+
email?: boolean;
|
|
1906
|
+
url?: boolean;
|
|
1907
|
+
uuid?: boolean;
|
|
1908
|
+
cuid?: boolean;
|
|
1909
|
+
regex?: RegExp;
|
|
1910
|
+
trim?: boolean;
|
|
1911
|
+
}
|
|
1912
|
+
declare type StringColumn = ColumnType<string>;
|
|
1913
|
+
declare type TextColumnData = BaseStringData;
|
|
1914
|
+
declare type TextMethods = typeof textMethods;
|
|
1915
|
+
declare const textMethods: {
|
|
1916
|
+
email<T extends ColumnType<string, Operators, string>>(this: T): T & {
|
|
1917
|
+
data: Omit<T["data"], "email"> & {
|
|
1918
|
+
email: true;
|
|
1919
|
+
};
|
|
1920
|
+
};
|
|
1921
|
+
url<T_1 extends ColumnType<string, Operators, string>>(this: T_1): T_1 & {
|
|
1922
|
+
data: Omit<T_1["data"], "url"> & {
|
|
1923
|
+
url: true;
|
|
1924
|
+
};
|
|
1925
|
+
};
|
|
1926
|
+
uuid<T_2 extends ColumnType<string, Operators, string>>(this: T_2): T_2 & {
|
|
1927
|
+
data: Omit<T_2["data"], "uuid"> & {
|
|
1928
|
+
uuid: true;
|
|
1929
|
+
};
|
|
1930
|
+
};
|
|
1931
|
+
cuid<T_3 extends ColumnType<string, Operators, string>>(this: T_3): T_3 & {
|
|
1932
|
+
data: Omit<T_3["data"], "cuid"> & {
|
|
1933
|
+
cuid: true;
|
|
1934
|
+
};
|
|
1935
|
+
};
|
|
1936
|
+
regex<T_4 extends ColumnType<string, Operators, string>, Value extends RegExp>(this: T_4, value: Value): T_4 & {
|
|
1937
|
+
data: Omit<T_4["data"], "regex"> & {
|
|
1938
|
+
regex: Value;
|
|
1939
|
+
};
|
|
1940
|
+
};
|
|
1941
|
+
trim<T_5 extends ColumnType<string, Operators, string>>(this: T_5): T_5 & {
|
|
1942
|
+
data: Omit<T_5["data"], "cuid"> & {
|
|
1943
|
+
trim: true;
|
|
1944
|
+
};
|
|
1945
|
+
};
|
|
1946
|
+
min<T_6 extends {
|
|
1947
|
+
data: {
|
|
1948
|
+
min?: number | undefined;
|
|
1949
|
+
};
|
|
1950
|
+
}, Value_1 extends number>(this: T_6, value: Value_1): T_6 & {
|
|
1951
|
+
data: Omit<T_6["data"], "min"> & {
|
|
1952
|
+
min: Value_1;
|
|
1953
|
+
};
|
|
1954
|
+
};
|
|
1955
|
+
max<T_7 extends {
|
|
1956
|
+
data: {
|
|
1957
|
+
max?: number | undefined;
|
|
1958
|
+
};
|
|
1959
|
+
}, Value_2 extends number>(this: T_7, value: Value_2): T_7 & {
|
|
1960
|
+
data: Omit<T_7["data"], "max"> & {
|
|
1961
|
+
max: Value_2;
|
|
1962
|
+
};
|
|
1963
|
+
};
|
|
1964
|
+
length<T_8 extends {
|
|
1965
|
+
data: {
|
|
1966
|
+
length?: number | undefined;
|
|
1967
|
+
};
|
|
1968
|
+
}, Value_3 extends number>(this: T_8, value: Value_3): T_8 & {
|
|
1969
|
+
data: Omit<T_8["data"], "length"> & {
|
|
1970
|
+
length: Value_3;
|
|
1971
|
+
};
|
|
1972
|
+
};
|
|
1973
|
+
};
|
|
1974
|
+
interface TextBaseColumn extends ColumnType<string, typeof Operators.text>, TextMethods {
|
|
1975
|
+
}
|
|
1976
|
+
declare abstract class TextBaseColumn extends ColumnType<string, typeof Operators.text> {
|
|
1977
|
+
data: BaseStringData;
|
|
1978
|
+
operators: {
|
|
1979
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1980
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1981
|
+
};
|
|
1982
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1983
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1984
|
+
};
|
|
1985
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1986
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1987
|
+
};
|
|
1988
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1989
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1990
|
+
};
|
|
1991
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1992
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1993
|
+
};
|
|
1994
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1995
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1996
|
+
};
|
|
1997
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
1998
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
1999
|
+
};
|
|
2000
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2001
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2002
|
+
};
|
|
2003
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2004
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2005
|
+
};
|
|
2006
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2007
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2008
|
+
};
|
|
2009
|
+
};
|
|
2010
|
+
}
|
|
2011
|
+
declare abstract class LimitedTextBaseColumn<Limit extends number | undefined = undefined> extends TextBaseColumn {
|
|
2012
|
+
data: TextColumnData & {
|
|
2013
|
+
max: Limit;
|
|
2014
|
+
};
|
|
2015
|
+
constructor(limit?: Limit);
|
|
2016
|
+
toSQL(): string;
|
|
2017
|
+
}
|
|
2018
|
+
declare class VarCharColumn<Limit extends number | undefined = undefined> extends LimitedTextBaseColumn<Limit> {
|
|
2019
|
+
dataType: "varchar";
|
|
2020
|
+
}
|
|
2021
|
+
declare class CharColumn<Limit extends number | undefined = undefined> extends LimitedTextBaseColumn<Limit> {
|
|
2022
|
+
dataType: "char";
|
|
2023
|
+
}
|
|
2024
|
+
declare class TextColumn extends ColumnType<string> {
|
|
2025
|
+
dataType: "text";
|
|
2026
|
+
operators: {
|
|
2027
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2028
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2029
|
+
};
|
|
2030
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2031
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2032
|
+
};
|
|
2033
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2034
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2035
|
+
};
|
|
2036
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2037
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2038
|
+
};
|
|
2039
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2040
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2041
|
+
};
|
|
2042
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2043
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2044
|
+
};
|
|
2045
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2046
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2047
|
+
};
|
|
2048
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2049
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2050
|
+
};
|
|
2051
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2052
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2053
|
+
};
|
|
2054
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2055
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2056
|
+
};
|
|
2057
|
+
};
|
|
2058
|
+
}
|
|
2059
|
+
declare class ByteaColumn extends NumberBaseColumn<string> {
|
|
2060
|
+
dataType: "bytea";
|
|
2061
|
+
}
|
|
2062
|
+
declare class PointColumn extends ColumnType<string, typeof Operators.text> {
|
|
2063
|
+
dataType: "point";
|
|
2064
|
+
operators: {
|
|
2065
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2066
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2067
|
+
};
|
|
2068
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2069
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2070
|
+
};
|
|
2071
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2072
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2073
|
+
};
|
|
2074
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2075
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2076
|
+
};
|
|
2077
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2078
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2079
|
+
};
|
|
2080
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2081
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2082
|
+
};
|
|
2083
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2084
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2085
|
+
};
|
|
2086
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2087
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2088
|
+
};
|
|
2089
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2090
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2091
|
+
};
|
|
2092
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2093
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2094
|
+
};
|
|
2095
|
+
};
|
|
2096
|
+
}
|
|
2097
|
+
declare class LineColumn extends ColumnType<string, typeof Operators.text> {
|
|
2098
|
+
dataType: "point";
|
|
2099
|
+
operators: {
|
|
2100
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2101
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2102
|
+
};
|
|
2103
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2104
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2105
|
+
};
|
|
2106
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2107
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2108
|
+
};
|
|
2109
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2110
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2111
|
+
};
|
|
2112
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2113
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2114
|
+
};
|
|
2115
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2116
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2117
|
+
};
|
|
2118
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2119
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2120
|
+
};
|
|
2121
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2122
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2123
|
+
};
|
|
2124
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2125
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2126
|
+
};
|
|
2127
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2128
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2129
|
+
};
|
|
2130
|
+
};
|
|
2131
|
+
}
|
|
2132
|
+
declare class LsegColumn extends ColumnType<string, typeof Operators.text> {
|
|
2133
|
+
dataType: "point";
|
|
2134
|
+
operators: {
|
|
2135
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2136
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2137
|
+
};
|
|
2138
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2139
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2140
|
+
};
|
|
2141
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2142
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2143
|
+
};
|
|
2144
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2145
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2146
|
+
};
|
|
2147
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2148
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2149
|
+
};
|
|
2150
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2151
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2152
|
+
};
|
|
2153
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2154
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2155
|
+
};
|
|
2156
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2157
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2158
|
+
};
|
|
2159
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2160
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2161
|
+
};
|
|
2162
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2163
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2164
|
+
};
|
|
2165
|
+
};
|
|
2166
|
+
}
|
|
2167
|
+
declare class BoxColumn extends ColumnType<string, typeof Operators.text> {
|
|
2168
|
+
dataType: "point";
|
|
2169
|
+
operators: {
|
|
2170
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2171
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2172
|
+
};
|
|
2173
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2174
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2175
|
+
};
|
|
2176
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2177
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2178
|
+
};
|
|
2179
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2180
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2181
|
+
};
|
|
2182
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2183
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2184
|
+
};
|
|
2185
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2186
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2187
|
+
};
|
|
2188
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2189
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2190
|
+
};
|
|
2191
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2192
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2193
|
+
};
|
|
2194
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2195
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2196
|
+
};
|
|
2197
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2198
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2199
|
+
};
|
|
2200
|
+
};
|
|
2201
|
+
}
|
|
2202
|
+
declare class PathColumn extends ColumnType<string, typeof Operators.text> {
|
|
2203
|
+
dataType: "point";
|
|
2204
|
+
operators: {
|
|
2205
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2206
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2207
|
+
};
|
|
2208
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2209
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2210
|
+
};
|
|
2211
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2212
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2213
|
+
};
|
|
2214
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2215
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2216
|
+
};
|
|
2217
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2218
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2219
|
+
};
|
|
2220
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2221
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2222
|
+
};
|
|
2223
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2224
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2225
|
+
};
|
|
2226
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2227
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2228
|
+
};
|
|
2229
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2230
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2231
|
+
};
|
|
2232
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2233
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2234
|
+
};
|
|
2235
|
+
};
|
|
2236
|
+
}
|
|
2237
|
+
declare class PolygonColumn extends ColumnType<string, typeof Operators.text> {
|
|
2238
|
+
dataType: "point";
|
|
2239
|
+
operators: {
|
|
2240
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2241
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2242
|
+
};
|
|
2243
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2244
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2245
|
+
};
|
|
2246
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2247
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2248
|
+
};
|
|
2249
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2250
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2251
|
+
};
|
|
2252
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2253
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2254
|
+
};
|
|
2255
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2256
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2257
|
+
};
|
|
2258
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2259
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2260
|
+
};
|
|
2261
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2262
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2263
|
+
};
|
|
2264
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2265
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2266
|
+
};
|
|
2267
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2268
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2269
|
+
};
|
|
2270
|
+
};
|
|
2271
|
+
}
|
|
2272
|
+
declare class CircleColumn extends ColumnType<string, typeof Operators.text> {
|
|
2273
|
+
dataType: "point";
|
|
2274
|
+
operators: {
|
|
2275
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2276
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2277
|
+
};
|
|
2278
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2279
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2280
|
+
};
|
|
2281
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2282
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2283
|
+
};
|
|
2284
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2285
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2286
|
+
};
|
|
2287
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2288
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2289
|
+
};
|
|
2290
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2291
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2292
|
+
};
|
|
2293
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2294
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2295
|
+
};
|
|
2296
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2297
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2298
|
+
};
|
|
2299
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2300
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2301
|
+
};
|
|
2302
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2303
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2304
|
+
};
|
|
2305
|
+
};
|
|
2306
|
+
}
|
|
2307
|
+
declare class MoneyColumn extends NumberBaseColumn<string> {
|
|
2308
|
+
dataType: "money";
|
|
2309
|
+
}
|
|
2310
|
+
declare class CidrColumn extends ColumnType<string, typeof Operators.text> {
|
|
2311
|
+
dataType: "cidr";
|
|
2312
|
+
operators: {
|
|
2313
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2314
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2315
|
+
};
|
|
2316
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2317
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2318
|
+
};
|
|
2319
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2320
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2321
|
+
};
|
|
2322
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2323
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2324
|
+
};
|
|
2325
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2326
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2327
|
+
};
|
|
2328
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2329
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2330
|
+
};
|
|
2331
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2332
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2333
|
+
};
|
|
2334
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2335
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2336
|
+
};
|
|
2337
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2338
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2339
|
+
};
|
|
2340
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2341
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2342
|
+
};
|
|
2343
|
+
};
|
|
2344
|
+
}
|
|
2345
|
+
declare class InetColumn extends ColumnType<string, typeof Operators.text> {
|
|
2346
|
+
dataType: "inet";
|
|
2347
|
+
operators: {
|
|
2348
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2349
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2350
|
+
};
|
|
2351
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2352
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2353
|
+
};
|
|
2354
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2355
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2356
|
+
};
|
|
2357
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2358
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2359
|
+
};
|
|
2360
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2361
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2362
|
+
};
|
|
2363
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2364
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2365
|
+
};
|
|
2366
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2367
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2368
|
+
};
|
|
2369
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2370
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2371
|
+
};
|
|
2372
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2373
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2374
|
+
};
|
|
2375
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2376
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2377
|
+
};
|
|
2378
|
+
};
|
|
2379
|
+
}
|
|
2380
|
+
declare class MacAddrColumn extends ColumnType<string, typeof Operators.text> {
|
|
2381
|
+
dataType: "macaddr";
|
|
2382
|
+
operators: {
|
|
2383
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2384
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2385
|
+
};
|
|
2386
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2387
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2388
|
+
};
|
|
2389
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2390
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2391
|
+
};
|
|
2392
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2393
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2394
|
+
};
|
|
2395
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2396
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2397
|
+
};
|
|
2398
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2399
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2400
|
+
};
|
|
2401
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2402
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2403
|
+
};
|
|
2404
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2405
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2406
|
+
};
|
|
2407
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2408
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2409
|
+
};
|
|
2410
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2411
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2412
|
+
};
|
|
2413
|
+
};
|
|
2414
|
+
}
|
|
2415
|
+
declare class MacAddr8Column extends ColumnType<string, typeof Operators.text> {
|
|
2416
|
+
dataType: "macaddr8";
|
|
2417
|
+
operators: {
|
|
2418
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2419
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2420
|
+
};
|
|
2421
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2422
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2423
|
+
};
|
|
2424
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2425
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2426
|
+
};
|
|
2427
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2428
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2429
|
+
};
|
|
2430
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2431
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2432
|
+
};
|
|
2433
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2434
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2435
|
+
};
|
|
2436
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2437
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2438
|
+
};
|
|
2439
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2440
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2441
|
+
};
|
|
2442
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2443
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2444
|
+
};
|
|
2445
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2446
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2447
|
+
};
|
|
2448
|
+
};
|
|
2449
|
+
}
|
|
2450
|
+
declare class BitColumn<Length extends number | undefined = undefined> extends ColumnType<string, typeof Operators.text> {
|
|
2451
|
+
dataType: "bit";
|
|
2452
|
+
operators: {
|
|
2453
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2454
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2455
|
+
};
|
|
2456
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2457
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2458
|
+
};
|
|
2459
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2460
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2461
|
+
};
|
|
2462
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2463
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2464
|
+
};
|
|
2465
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2466
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2467
|
+
};
|
|
2468
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2469
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2470
|
+
};
|
|
2471
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2472
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2473
|
+
};
|
|
2474
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2475
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2476
|
+
};
|
|
2477
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2478
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2479
|
+
};
|
|
2480
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2481
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2482
|
+
};
|
|
2483
|
+
};
|
|
2484
|
+
data: {
|
|
2485
|
+
length: Length;
|
|
2486
|
+
};
|
|
2487
|
+
constructor(length?: Length);
|
|
2488
|
+
toSQL(): string;
|
|
2489
|
+
}
|
|
2490
|
+
declare class BitVaryingColumn<Length extends number | undefined = undefined> extends ColumnType<string, typeof Operators.text> {
|
|
2491
|
+
dataType: "bit varying";
|
|
2492
|
+
operators: {
|
|
2493
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2494
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2495
|
+
};
|
|
2496
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2497
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2498
|
+
};
|
|
2499
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2500
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2501
|
+
};
|
|
2502
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2503
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2504
|
+
};
|
|
2505
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2506
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2507
|
+
};
|
|
2508
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2509
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2510
|
+
};
|
|
2511
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2512
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2513
|
+
};
|
|
2514
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2515
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2516
|
+
};
|
|
2517
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2518
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2519
|
+
};
|
|
2520
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2521
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2522
|
+
};
|
|
2523
|
+
};
|
|
2524
|
+
data: {
|
|
2525
|
+
length: Length;
|
|
2526
|
+
};
|
|
2527
|
+
constructor(length?: Length);
|
|
2528
|
+
toSQL(): string;
|
|
2529
|
+
}
|
|
2530
|
+
declare class TsVectorColumn extends ColumnType<string, typeof Operators.text> {
|
|
2531
|
+
dataType: "tsvector";
|
|
2532
|
+
operators: {
|
|
2533
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2534
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2535
|
+
};
|
|
2536
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2537
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2538
|
+
};
|
|
2539
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2540
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2541
|
+
};
|
|
2542
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2543
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2544
|
+
};
|
|
2545
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2546
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2547
|
+
};
|
|
2548
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2549
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2550
|
+
};
|
|
2551
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2552
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2553
|
+
};
|
|
2554
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2555
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2556
|
+
};
|
|
2557
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2558
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2559
|
+
};
|
|
2560
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2561
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2562
|
+
};
|
|
2563
|
+
};
|
|
2564
|
+
}
|
|
2565
|
+
declare class TsQueryColumn extends ColumnType<string, typeof Operators.text> {
|
|
2566
|
+
dataType: "tsquery";
|
|
2567
|
+
operators: {
|
|
2568
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2569
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2570
|
+
};
|
|
2571
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2572
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2573
|
+
};
|
|
2574
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2575
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2576
|
+
};
|
|
2577
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2578
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2579
|
+
};
|
|
2580
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2581
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2582
|
+
};
|
|
2583
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2584
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2585
|
+
};
|
|
2586
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2587
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2588
|
+
};
|
|
2589
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2590
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2591
|
+
};
|
|
2592
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2593
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2594
|
+
};
|
|
2595
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2596
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2597
|
+
};
|
|
2598
|
+
};
|
|
2599
|
+
}
|
|
2600
|
+
declare class UUIDColumn extends ColumnType<string, typeof Operators.text> {
|
|
2601
|
+
dataType: "uuid";
|
|
2602
|
+
operators: {
|
|
2603
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2604
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2605
|
+
};
|
|
2606
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2607
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2608
|
+
};
|
|
2609
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2610
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2611
|
+
};
|
|
2612
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2613
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2614
|
+
};
|
|
2615
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2616
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2617
|
+
};
|
|
2618
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2619
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2620
|
+
};
|
|
2621
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2622
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2623
|
+
};
|
|
2624
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2625
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2626
|
+
};
|
|
2627
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2628
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2629
|
+
};
|
|
2630
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2631
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2632
|
+
};
|
|
2633
|
+
};
|
|
2634
|
+
}
|
|
2635
|
+
declare class XMLColumn extends ColumnType<string, typeof Operators.text> {
|
|
2636
|
+
dataType: "uuid";
|
|
2637
|
+
operators: {
|
|
2638
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2639
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2640
|
+
};
|
|
2641
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2642
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2643
|
+
};
|
|
2644
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2645
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2646
|
+
};
|
|
2647
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2648
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2649
|
+
};
|
|
2650
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2651
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2652
|
+
};
|
|
2653
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2654
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2655
|
+
};
|
|
2656
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2657
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2658
|
+
};
|
|
2659
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2660
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2661
|
+
};
|
|
2662
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2663
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2664
|
+
};
|
|
2665
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
2666
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
2667
|
+
};
|
|
2668
|
+
};
|
|
2669
|
+
}
|
|
2670
|
+
|
|
2671
|
+
declare class DateColumn extends ColumnType<string, typeof Operators.date> {
|
|
2672
|
+
dataType: "date";
|
|
2673
|
+
operators: {
|
|
2674
|
+
lt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2675
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2676
|
+
};
|
|
2677
|
+
lte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2678
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2679
|
+
};
|
|
2680
|
+
gt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2681
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2682
|
+
};
|
|
2683
|
+
gte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2684
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2685
|
+
};
|
|
2686
|
+
between: ((key: string, value: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date], values: unknown[]) => string) & {
|
|
2687
|
+
type: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date];
|
|
2688
|
+
};
|
|
2689
|
+
equals: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2690
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2691
|
+
};
|
|
2692
|
+
not: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2693
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2694
|
+
};
|
|
2695
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2696
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2697
|
+
};
|
|
2698
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2699
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2700
|
+
};
|
|
2701
|
+
};
|
|
2702
|
+
}
|
|
2703
|
+
interface DateTimeColumnData {
|
|
2704
|
+
precision?: number;
|
|
2705
|
+
}
|
|
2706
|
+
declare abstract class DateTimeBaseClass<Precision extends number | undefined = undefined> extends ColumnType<string, typeof Operators.date, string | number | Date> {
|
|
2707
|
+
data: DateTimeColumnData & {
|
|
2708
|
+
precision: Precision;
|
|
2709
|
+
};
|
|
2710
|
+
operators: {
|
|
2711
|
+
lt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2712
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2713
|
+
};
|
|
2714
|
+
lte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2715
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2716
|
+
};
|
|
2717
|
+
gt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2718
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2719
|
+
};
|
|
2720
|
+
gte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2721
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2722
|
+
};
|
|
2723
|
+
between: ((key: string, value: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date], values: unknown[]) => string) & {
|
|
2724
|
+
type: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date];
|
|
2725
|
+
};
|
|
2726
|
+
equals: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2727
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2728
|
+
};
|
|
2729
|
+
not: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2730
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2731
|
+
};
|
|
2732
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2733
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2734
|
+
};
|
|
2735
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2736
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2737
|
+
};
|
|
2738
|
+
};
|
|
2739
|
+
constructor(precision?: Precision);
|
|
2740
|
+
toSQL(): string;
|
|
2741
|
+
}
|
|
2742
|
+
declare abstract class DateTimeWithTimeZoneBaseClass<Precision extends number | undefined = undefined> extends DateTimeBaseClass<Precision> {
|
|
2743
|
+
abstract baseDataType: string;
|
|
2744
|
+
toSQL(): string;
|
|
2745
|
+
}
|
|
2746
|
+
declare class TimestampColumn<Precision extends number | undefined = undefined> extends DateTimeBaseClass<Precision> {
|
|
2747
|
+
dataType: "timestamp";
|
|
2748
|
+
}
|
|
2749
|
+
declare class TimestampWithTimeZoneColumn<Precision extends number | undefined = undefined> extends DateTimeWithTimeZoneBaseClass<Precision> {
|
|
2750
|
+
dataType: "timestamp with time zone";
|
|
2751
|
+
baseDataType: "timestamp";
|
|
2752
|
+
}
|
|
2753
|
+
declare class TimeColumn<Precision extends number | undefined = undefined> extends DateTimeBaseClass<Precision> {
|
|
2754
|
+
dataType: "time";
|
|
2755
|
+
}
|
|
2756
|
+
declare class TimeWithTimeZoneColumn<Precision extends number | undefined = undefined> extends DateTimeWithTimeZoneBaseClass<Precision> {
|
|
2757
|
+
dataType: "time with time zone";
|
|
2758
|
+
baseDataType: "time";
|
|
2759
|
+
}
|
|
2760
|
+
declare class IntervalColumn<Fields extends string | undefined = undefined, Precision extends number | undefined = undefined> extends ColumnType<string, typeof Operators.date> {
|
|
2761
|
+
dataType: "interval";
|
|
2762
|
+
data: DateTimeColumnData & {
|
|
2763
|
+
fields: Fields;
|
|
2764
|
+
precision: Precision;
|
|
2765
|
+
};
|
|
2766
|
+
operators: {
|
|
2767
|
+
lt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2768
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2769
|
+
};
|
|
2770
|
+
lte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2771
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2772
|
+
};
|
|
2773
|
+
gt: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2774
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2775
|
+
};
|
|
2776
|
+
gte: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2777
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2778
|
+
};
|
|
2779
|
+
between: ((key: string, value: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date], values: unknown[]) => string) & {
|
|
2780
|
+
type: [Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date];
|
|
2781
|
+
};
|
|
2782
|
+
equals: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2783
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2784
|
+
};
|
|
2785
|
+
not: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date, values: unknown[]) => string) & {
|
|
2786
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date;
|
|
2787
|
+
};
|
|
2788
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2789
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2790
|
+
};
|
|
2791
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[], values: unknown[]) => string) & {
|
|
2792
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | Date[];
|
|
2793
|
+
};
|
|
2794
|
+
};
|
|
2795
|
+
constructor(fields?: Fields, precision?: Precision);
|
|
2796
|
+
toSQL(): string;
|
|
2797
|
+
}
|
|
2798
|
+
|
|
2799
|
+
declare class BooleanColumn extends ColumnType<boolean, typeof Operators.boolean> {
|
|
2800
|
+
dataType: "boolean";
|
|
2801
|
+
operators: {
|
|
2802
|
+
equals: ((key: string, value: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2803
|
+
type: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2804
|
+
};
|
|
2805
|
+
not: ((key: string, value: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2806
|
+
type: boolean | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2807
|
+
};
|
|
2808
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[], values: unknown[]) => string) & {
|
|
2809
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[];
|
|
2810
|
+
};
|
|
2811
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[], values: unknown[]) => string) & {
|
|
2812
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | boolean[];
|
|
2813
|
+
};
|
|
2814
|
+
};
|
|
2815
|
+
}
|
|
2816
|
+
|
|
2817
|
+
declare class EnumColumn<DataType extends string, Type> extends ColumnType<Type, typeof Operators.any> {
|
|
2818
|
+
dataType: DataType;
|
|
2819
|
+
operators: {
|
|
2820
|
+
equals: ((key: string, value: any, values: unknown[]) => string) & {
|
|
2821
|
+
type: any;
|
|
2822
|
+
};
|
|
2823
|
+
not: ((key: string, value: any, values: unknown[]) => string) & {
|
|
2824
|
+
type: any;
|
|
2825
|
+
};
|
|
2826
|
+
in: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2827
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2828
|
+
};
|
|
2829
|
+
notIn: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
2830
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
2831
|
+
};
|
|
2832
|
+
};
|
|
2833
|
+
constructor(dataType: DataType);
|
|
2834
|
+
}
|
|
2835
|
+
|
|
2836
|
+
declare type JSONNullable<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2837
|
+
type: T['type'] | null;
|
|
2838
|
+
data: T['data'] & {
|
|
2839
|
+
nullable: true;
|
|
2840
|
+
};
|
|
2841
|
+
};
|
|
2842
|
+
declare type JSONNotNullable<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2843
|
+
type: Exclude<T['type'], null>;
|
|
2844
|
+
data: Omit<T['data'], 'nullable'>;
|
|
2845
|
+
};
|
|
2846
|
+
|
|
2847
|
+
declare type JSONNullish<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2848
|
+
type: T['type'] | undefined | null;
|
|
2849
|
+
data: T['data'] & {
|
|
2850
|
+
nullable: true;
|
|
2851
|
+
};
|
|
2852
|
+
};
|
|
2853
|
+
declare type JSONNotNullish<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2854
|
+
type: Exclude<T['type'], undefined | null>;
|
|
2855
|
+
data: Omit<T['data'], 'nullable'>;
|
|
2856
|
+
};
|
|
2857
|
+
|
|
2858
|
+
declare type JSONIntersection<Left extends JSONTypeAny, Right extends JSONTypeAny> = JSONType<Left['type'] & Right['type'], 'intersection'> & {
|
|
2859
|
+
left: Left;
|
|
2860
|
+
right: Right;
|
|
2861
|
+
};
|
|
2862
|
+
|
|
2863
|
+
declare type ArrayMethods = typeof arrayMethods;
|
|
2864
|
+
declare const arrayMethods: {
|
|
2865
|
+
min<T extends {
|
|
2866
|
+
data: {
|
|
2867
|
+
min?: number;
|
|
2868
|
+
};
|
|
2869
|
+
}, Value extends number>(this: T, value: Value): T & {
|
|
2870
|
+
data: Omit<T["data"], "min"> & {
|
|
2871
|
+
min: Value;
|
|
2872
|
+
};
|
|
2873
|
+
};
|
|
2874
|
+
max<T_1 extends {
|
|
2875
|
+
data: {
|
|
2876
|
+
max?: number;
|
|
2877
|
+
};
|
|
2878
|
+
}, Value_1 extends number>(this: T_1, value: Value_1): T_1 & {
|
|
2879
|
+
data: Omit<T_1["data"], "max"> & {
|
|
2880
|
+
max: Value_1;
|
|
2881
|
+
};
|
|
2882
|
+
};
|
|
2883
|
+
length<T_2 extends {
|
|
2884
|
+
data: {
|
|
2885
|
+
length?: number;
|
|
2886
|
+
};
|
|
2887
|
+
}, Value_2 extends number>(this: T_2, value: Value_2): T_2 & {
|
|
2888
|
+
data: Omit<T_2["data"], "length"> & {
|
|
2889
|
+
length: Value_2;
|
|
2890
|
+
};
|
|
2891
|
+
};
|
|
2892
|
+
};
|
|
2893
|
+
|
|
2894
|
+
declare type ArrayCardinality = 'many' | 'atLeastOne';
|
|
2895
|
+
declare type arrayOutputType<T extends JSONTypeAny, Cardinality extends ArrayCardinality = 'many'> = Cardinality extends 'atLeastOne' ? [T['type'], ...T['type'][]] : T['type'][];
|
|
2896
|
+
interface JSONArray<Type extends JSONTypeAny, Cardinality extends ArrayCardinality = 'many'> extends JSONType<arrayOutputType<Type, Cardinality>, 'array'>, ArrayMethods {
|
|
2897
|
+
data: JSONTypeData & {
|
|
2898
|
+
min?: number;
|
|
2899
|
+
max?: number;
|
|
2900
|
+
length?: number;
|
|
2901
|
+
};
|
|
2902
|
+
element: Type;
|
|
2903
|
+
deepPartial(): JSONArray<DeepPartial<Type>, Cardinality>;
|
|
2904
|
+
nonEmpty(this: JSONArray<Type>): JSONArray<Type, 'atLeastOne'> & {
|
|
2905
|
+
data: {
|
|
2906
|
+
min: 1;
|
|
2907
|
+
};
|
|
2908
|
+
};
|
|
2909
|
+
}
|
|
2910
|
+
|
|
2911
|
+
declare type JSONTypeAny = JSONType<any, string>;
|
|
2912
|
+
declare type DeepPartial<T extends JSONTypeAny> = ReturnType<JSONTypeAny['deepPartial']> extends ReturnType<T['deepPartial']> ? T : ReturnType<T['deepPartial']>;
|
|
2913
|
+
declare type JSONTypeData = {
|
|
2914
|
+
optional?: true;
|
|
2915
|
+
nullable?: true;
|
|
2916
|
+
};
|
|
2917
|
+
declare type Primitive = string | number | bigint | boolean | null | undefined;
|
|
2918
|
+
declare type JSONType<Type, DataType> = {
|
|
2919
|
+
type: Type;
|
|
2920
|
+
data: JSONTypeData;
|
|
2921
|
+
dataType: DataType;
|
|
2922
|
+
chain: (['transform', (input: unknown) => unknown] | ['to', (input: unknown) => JSONTypeAny | undefined, JSONTypeAny] | ['refine', (input: unknown) => unknown] | ['superRefine', (input: unknown) => unknown])[];
|
|
2923
|
+
optional<T extends JSONTypeAny>(this: T): JSONOptional<T>;
|
|
2924
|
+
required<T extends JSONTypeAny>(this: T): JSONRequired<T>;
|
|
2925
|
+
nullable<T extends JSONTypeAny>(this: T): JSONNullable<T>;
|
|
2926
|
+
notNullable<T extends JSONTypeAny>(this: T): JSONNotNullable<T>;
|
|
2927
|
+
nullish<T extends JSONTypeAny>(this: T): JSONNullish<T>;
|
|
2928
|
+
notNullish<T extends JSONTypeAny>(this: T): JSONNotNullish<T>;
|
|
2929
|
+
deepPartial(): JSONTypeAny;
|
|
2930
|
+
transform<T extends JSONTypeAny, Transformed>(this: T, fn: (input: T['type']) => Transformed): JSONType<Transformed extends PromiseLike<unknown> ? Awaited<Transformed> : Transformed, T['dataType']>;
|
|
2931
|
+
to<T extends JSONTypeAny, ToType extends JSONTypeAny>(this: T, fn: (input: T['type']) => ToType['type'] | undefined, type: ToType): ToType;
|
|
2932
|
+
refine<T extends JSONTypeAny, RefinedOutput extends T['type']>(this: T, check: (arg: T['type']) => unknown): T & {
|
|
2933
|
+
type: RefinedOutput;
|
|
2934
|
+
};
|
|
2935
|
+
superRefine<T extends JSONTypeAny, RefinedOutput extends T['type']>(this: T, check: (arg: T['type']) => unknown): T & {
|
|
2936
|
+
type: RefinedOutput;
|
|
2937
|
+
};
|
|
2938
|
+
and<A extends JSONTypeAny, B extends JSONTypeAny>(this: A, type: B): JSONIntersection<A, B>;
|
|
2939
|
+
or<T extends JSONTypeAny, U extends [JSONTypeAny, ...JSONTypeAny[]]>(this: T, ...types: U): T | U[number];
|
|
2940
|
+
default<T extends JSONTypeAny>(this: T, value: T['type'] | (() => T['type'])): JSONNotNullish<T>;
|
|
2941
|
+
array<T extends JSONTypeAny>(this: T): JSONArray<T>;
|
|
2942
|
+
};
|
|
2943
|
+
|
|
2944
|
+
declare type JSONOptional<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2945
|
+
type: T['type'] | undefined;
|
|
2946
|
+
data: T['data'] & {
|
|
2947
|
+
optional: true;
|
|
2948
|
+
};
|
|
2949
|
+
};
|
|
2950
|
+
declare type JSONRequired<T extends JSONTypeAny> = Omit<T, 'type' | 'data'> & {
|
|
2951
|
+
type: Exclude<T['type'], undefined>;
|
|
2952
|
+
data: Omit<T['data'], 'optional'>;
|
|
2953
|
+
};
|
|
2954
|
+
|
|
2955
|
+
interface JSONNativeEnum<T extends EnumLike> extends JSONType<T[keyof T], 'nativeEnum'> {
|
|
2956
|
+
dataType: 'nativeEnum';
|
|
2957
|
+
enum: T;
|
|
2958
|
+
options: (number | string)[];
|
|
2959
|
+
}
|
|
2960
|
+
declare type EnumLike = {
|
|
2961
|
+
[k: string]: string | number;
|
|
2962
|
+
[nu: number]: string;
|
|
2963
|
+
};
|
|
2964
|
+
|
|
2965
|
+
interface JSONMap<Key extends JSONTypeAny, Value extends JSONTypeAny> extends JSONType<Map<Key['type'], Value['type']>, 'map'> {
|
|
2966
|
+
keyType: Key;
|
|
2967
|
+
valueType: Value;
|
|
2968
|
+
deepPartial(): JSONMap<ReturnType<Key['deepPartial']>, ReturnType<Value['deepPartial']>>;
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
interface JSONInstanceOf<T extends Class> extends JSONType<T, 'instanceOf'> {
|
|
2972
|
+
class: T;
|
|
2973
|
+
}
|
|
2974
|
+
declare type Class = new (...args: any[]) => any;
|
|
2975
|
+
|
|
2976
|
+
interface JSONEnum<T extends EnumValues> extends JSONType<T[number], 'enum'> {
|
|
2977
|
+
enum: {
|
|
2978
|
+
[k in T[number]]: k;
|
|
2979
|
+
};
|
|
2980
|
+
options: T;
|
|
2981
|
+
}
|
|
2982
|
+
declare type EnumValues = readonly [string, ...string[]];
|
|
2983
|
+
|
|
2984
|
+
declare type JSONObjectShape = Record<string, JSONTypeAny>;
|
|
2985
|
+
declare type UnknownKeysParam = 'passthrough' | 'strict' | 'strip';
|
|
2986
|
+
declare type FullyPartial<T extends JSONObjectShape> = {
|
|
2987
|
+
[K in keyof T]: JSONOptional<T[K]>;
|
|
2988
|
+
};
|
|
2989
|
+
declare type PartiallyPartial<T extends JSONObjectShape, P extends keyof T> = {
|
|
2990
|
+
[K in keyof T]: K extends P ? JSONOptional<T[K]> : T[K];
|
|
2991
|
+
};
|
|
2992
|
+
declare type identity<T> = T;
|
|
2993
|
+
declare type flatten<T extends object> = identity<{
|
|
2994
|
+
[k in keyof T]: T[k];
|
|
2995
|
+
}>;
|
|
2996
|
+
declare type optionalKeys<T extends object> = {
|
|
2997
|
+
[k in keyof T]: undefined extends T[k] ? k : never;
|
|
2998
|
+
}[keyof T];
|
|
2999
|
+
declare type requiredKeys<T extends object> = {
|
|
3000
|
+
[k in keyof T]: undefined extends T[k] ? never : k;
|
|
3001
|
+
}[keyof T];
|
|
3002
|
+
declare type addQuestionMarks<T extends object> = Partial<Pick<T, optionalKeys<T>>> & Pick<T, requiredKeys<T>>;
|
|
3003
|
+
declare type baseObjectOutputType<Shape extends JSONObjectShape> = flatten<addQuestionMarks<{
|
|
3004
|
+
[k in keyof Shape]: Shape[k]['type'];
|
|
3005
|
+
}>>;
|
|
3006
|
+
declare type objectOutputType<Shape extends JSONObjectShape, Catchall extends JSONTypeAny> = JSONTypeAny extends Catchall ? baseObjectOutputType<Shape> : flatten<baseObjectOutputType<Shape> & {
|
|
3007
|
+
[k: string]: Catchall['type'];
|
|
3008
|
+
}>;
|
|
3009
|
+
declare type IsEqual<T, U> = (<G>() => G extends T ? 1 : 2) extends <G>() => G extends U ? 1 : 2 ? true : false;
|
|
3010
|
+
declare type Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : KeyType extends ExcludeType ? never : KeyType;
|
|
3011
|
+
declare type Except<ObjectType, KeysType extends keyof ObjectType> = {
|
|
3012
|
+
[KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType];
|
|
3013
|
+
};
|
|
3014
|
+
declare type Merge<FirstType, SecondType> = Except<FirstType, Extract<keyof FirstType, keyof SecondType>> & SecondType;
|
|
3015
|
+
interface JSONObject<T extends JSONObjectShape, UnknownKeys extends UnknownKeysParam = 'strip', Catchall extends JSONTypeAny = JSONTypeAny, Output = objectOutputType<T, Catchall>> extends JSONType<Output, 'object'> {
|
|
3016
|
+
shape: T;
|
|
3017
|
+
unknownKeys: UnknownKeys;
|
|
3018
|
+
catchAllType: Catchall;
|
|
3019
|
+
extend<S extends JSONObjectShape>(shape: S): JSONObject<Merge<T, S>, UnknownKeys, Catchall>;
|
|
3020
|
+
merge<S extends JSONObjectShape, U extends UnknownKeysParam, C extends JSONTypeAny>(obj: JSONObject<S, U, C>): JSONObject<Merge<T, S>, U, C>;
|
|
3021
|
+
pick<K extends keyof T>(...arr: K[]): JSONObject<Pick<T, K>, UnknownKeys, Catchall>;
|
|
3022
|
+
omit<K extends keyof T>(...arr: K[]): JSONObject<Omit<T, K>, UnknownKeys, Catchall>;
|
|
3023
|
+
partial(): JSONObject<FullyPartial<T>, UnknownKeys, Catchall>;
|
|
3024
|
+
partial<P extends keyof T>(...arr: P[]): JSONObject<PartiallyPartial<T, P>, UnknownKeys, Catchall>;
|
|
3025
|
+
deepPartial(): JSONObject<{
|
|
3026
|
+
[k in keyof T]: JSONOptional<DeepPartial<T[k]>>;
|
|
3027
|
+
}, UnknownKeys, Catchall>;
|
|
3028
|
+
passthrough(): JSONObject<T, 'passthrough', Catchall>;
|
|
3029
|
+
strict(): JSONObject<T, 'strict', Catchall>;
|
|
3030
|
+
strip(): JSONObject<T, 'strip', Catchall>;
|
|
3031
|
+
catchAll<C extends JSONTypeAny>(type: C): JSONObject<T, UnknownKeys, C>;
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
interface JSONLiteral<T extends Primitive> extends JSONType<T, 'literal'> {
|
|
3035
|
+
value: Primitive;
|
|
3036
|
+
}
|
|
3037
|
+
|
|
3038
|
+
interface JSONDiscriminatedUnion<Discriminator extends string, Options extends DiscriminatedOptions<Discriminator>> extends JSONType<Options[number]['type'], 'discriminatedUnion'> {
|
|
3039
|
+
discriminator: Discriminator;
|
|
3040
|
+
options: OptionsMap<Discriminator, Options>;
|
|
3041
|
+
}
|
|
3042
|
+
declare type JSONDiscriminatedObject<Discriminator extends string> = JSONObject<Record<Discriminator, JSONLiteral<Primitive>>>;
|
|
3043
|
+
declare type DiscriminatedOptions<Discriminator extends string> = readonly [
|
|
3044
|
+
JSONDiscriminatedObject<Discriminator>,
|
|
3045
|
+
JSONDiscriminatedObject<Discriminator>,
|
|
3046
|
+
...JSONDiscriminatedObject<Discriminator>[]
|
|
3047
|
+
];
|
|
3048
|
+
declare type OptionsMap<Discriminator extends string, Options extends DiscriminatedOptions<Discriminator>> = Map<Options[number]['shape'][Discriminator]['value'], Options[number]>;
|
|
3049
|
+
|
|
3050
|
+
declare type JSONAny = JSONTypeAny & {
|
|
3051
|
+
dataType: 'any';
|
|
3052
|
+
};
|
|
3053
|
+
declare type JSONBigInt = JSONType<bigint, 'bigint'> & {
|
|
3054
|
+
data: BaseNumberData;
|
|
3055
|
+
} & typeof bigIntMethods;
|
|
3056
|
+
declare const bigIntMethods: {
|
|
3057
|
+
lt<T extends JSONType<bigint, "bigint"> & {
|
|
3058
|
+
data: BaseNumberData;
|
|
3059
|
+
}, Value extends number>(this: T, value: Value): T & {
|
|
3060
|
+
data: Omit<T["data"], "lt"> & {
|
|
3061
|
+
lt: Value;
|
|
3062
|
+
};
|
|
3063
|
+
};
|
|
3064
|
+
lte<T_1 extends JSONType<bigint, "bigint"> & {
|
|
3065
|
+
data: BaseNumberData;
|
|
3066
|
+
}, Value_1 extends number>(this: T_1, value: Value_1): T_1 & {
|
|
3067
|
+
data: Omit<T_1["data"], "lte"> & {
|
|
3068
|
+
lte: Value_1;
|
|
3069
|
+
};
|
|
3070
|
+
};
|
|
3071
|
+
max<T_2 extends JSONType<bigint, "bigint"> & {
|
|
3072
|
+
data: BaseNumberData;
|
|
3073
|
+
}, Value_2 extends number>(this: T_2, value: Value_2): T_2 & {
|
|
3074
|
+
data: Omit<T_2["data"], "lte"> & {
|
|
3075
|
+
lte: Value_2;
|
|
3076
|
+
};
|
|
3077
|
+
};
|
|
3078
|
+
gt<T_3 extends JSONType<bigint, "bigint"> & {
|
|
3079
|
+
data: BaseNumberData;
|
|
3080
|
+
}, Value_3 extends number>(this: T_3, value: Value_3): T_3 & {
|
|
3081
|
+
data: Omit<T_3["data"], "gt"> & {
|
|
3082
|
+
gt: Value_3;
|
|
3083
|
+
};
|
|
3084
|
+
};
|
|
3085
|
+
gte<T_4 extends JSONType<bigint, "bigint"> & {
|
|
3086
|
+
data: BaseNumberData;
|
|
3087
|
+
}, Value_4 extends number>(this: T_4, value: Value_4): T_4 & {
|
|
3088
|
+
data: Omit<T_4["data"], "gte"> & {
|
|
3089
|
+
gte: Value_4;
|
|
3090
|
+
};
|
|
3091
|
+
};
|
|
3092
|
+
min<T_5 extends JSONType<bigint, "bigint"> & {
|
|
3093
|
+
data: BaseNumberData;
|
|
3094
|
+
}, Value_5 extends number>(this: T_5, value: Value_5): T_5 & {
|
|
3095
|
+
data: Omit<T_5["data"], "gte"> & {
|
|
3096
|
+
gte: Value_5;
|
|
3097
|
+
};
|
|
3098
|
+
};
|
|
3099
|
+
positive<T_6 extends JSONType<bigint, "bigint"> & {
|
|
3100
|
+
data: BaseNumberData;
|
|
3101
|
+
}>(this: T_6): T_6 & {
|
|
3102
|
+
data: Omit<T_6["data"], "gt"> & {
|
|
3103
|
+
gt: 0;
|
|
3104
|
+
};
|
|
3105
|
+
};
|
|
3106
|
+
nonNegative<T_7 extends JSONType<bigint, "bigint"> & {
|
|
3107
|
+
data: BaseNumberData;
|
|
3108
|
+
}>(this: T_7): T_7 & {
|
|
3109
|
+
data: Omit<T_7["data"], "gte"> & {
|
|
3110
|
+
gte: 0;
|
|
3111
|
+
};
|
|
3112
|
+
};
|
|
3113
|
+
negative<T_8 extends JSONType<bigint, "bigint"> & {
|
|
3114
|
+
data: BaseNumberData;
|
|
3115
|
+
}>(this: T_8): T_8 & {
|
|
3116
|
+
data: Omit<T_8["data"], "lt"> & {
|
|
3117
|
+
lt: 0;
|
|
3118
|
+
};
|
|
3119
|
+
};
|
|
3120
|
+
nonPositive<T_9 extends JSONType<bigint, "bigint"> & {
|
|
3121
|
+
data: BaseNumberData;
|
|
3122
|
+
}>(this: T_9): T_9 & {
|
|
3123
|
+
data: Omit<T_9["data"], "lte"> & {
|
|
3124
|
+
lte: 0;
|
|
3125
|
+
};
|
|
3126
|
+
};
|
|
3127
|
+
multipleOf<T_10 extends JSONType<bigint, "bigint"> & {
|
|
3128
|
+
data: BaseNumberData;
|
|
3129
|
+
}, Value_6 extends number>(this: T_10, value: Value_6): T_10 & {
|
|
3130
|
+
data: Omit<T_10["data"], "multipleOf"> & {
|
|
3131
|
+
multipleOf: Value_6;
|
|
3132
|
+
};
|
|
3133
|
+
};
|
|
3134
|
+
step<T_11 extends JSONType<bigint, "bigint"> & {
|
|
3135
|
+
data: BaseNumberData;
|
|
3136
|
+
}, Value_7 extends number>(this: T_11, value: Value_7): T_11 & {
|
|
3137
|
+
data: Omit<T_11["data"], "multipleOf"> & {
|
|
3138
|
+
multipleOf: Value_7;
|
|
3139
|
+
};
|
|
3140
|
+
};
|
|
3141
|
+
dataType: "bigint";
|
|
3142
|
+
};
|
|
3143
|
+
declare type JSONBoolean = JSONType<boolean, 'boolean'>;
|
|
3144
|
+
declare type JSONNaN = JSONType<number, 'nan'>;
|
|
3145
|
+
declare type JSONNever = JSONType<unknown, 'never'>;
|
|
3146
|
+
declare type JSONNull = JSONType<null, 'null'>;
|
|
3147
|
+
declare type JSONNumber = JSONType<number, 'number'> & {
|
|
3148
|
+
data: BaseNumberData;
|
|
3149
|
+
} & typeof numberMethods;
|
|
3150
|
+
declare const numberMethods: {
|
|
3151
|
+
dataType: "number";
|
|
3152
|
+
lt<T extends JSONType<number, "number"> & {
|
|
3153
|
+
data: BaseNumberData;
|
|
3154
|
+
}, Value extends number>(this: T, value: Value): T & {
|
|
3155
|
+
data: Omit<T["data"], "lt"> & {
|
|
3156
|
+
lt: Value;
|
|
3157
|
+
};
|
|
3158
|
+
};
|
|
3159
|
+
lte<T_1 extends JSONType<number, "number"> & {
|
|
3160
|
+
data: BaseNumberData;
|
|
3161
|
+
}, Value_1 extends number>(this: T_1, value: Value_1): T_1 & {
|
|
3162
|
+
data: Omit<T_1["data"], "lte"> & {
|
|
3163
|
+
lte: Value_1;
|
|
3164
|
+
};
|
|
3165
|
+
};
|
|
3166
|
+
max<T_2 extends JSONType<number, "number"> & {
|
|
3167
|
+
data: BaseNumberData;
|
|
3168
|
+
}, Value_2 extends number>(this: T_2, value: Value_2): T_2 & {
|
|
3169
|
+
data: Omit<T_2["data"], "lte"> & {
|
|
3170
|
+
lte: Value_2;
|
|
3171
|
+
};
|
|
3172
|
+
};
|
|
3173
|
+
gt<T_3 extends JSONType<number, "number"> & {
|
|
3174
|
+
data: BaseNumberData;
|
|
3175
|
+
}, Value_3 extends number>(this: T_3, value: Value_3): T_3 & {
|
|
3176
|
+
data: Omit<T_3["data"], "gt"> & {
|
|
3177
|
+
gt: Value_3;
|
|
3178
|
+
};
|
|
3179
|
+
};
|
|
3180
|
+
gte<T_4 extends JSONType<number, "number"> & {
|
|
3181
|
+
data: BaseNumberData;
|
|
3182
|
+
}, Value_4 extends number>(this: T_4, value: Value_4): T_4 & {
|
|
3183
|
+
data: Omit<T_4["data"], "gte"> & {
|
|
3184
|
+
gte: Value_4;
|
|
3185
|
+
};
|
|
3186
|
+
};
|
|
3187
|
+
min<T_5 extends JSONType<number, "number"> & {
|
|
3188
|
+
data: BaseNumberData;
|
|
3189
|
+
}, Value_5 extends number>(this: T_5, value: Value_5): T_5 & {
|
|
3190
|
+
data: Omit<T_5["data"], "gte"> & {
|
|
3191
|
+
gte: Value_5;
|
|
3192
|
+
};
|
|
3193
|
+
};
|
|
3194
|
+
positive<T_6 extends JSONType<number, "number"> & {
|
|
3195
|
+
data: BaseNumberData;
|
|
3196
|
+
}>(this: T_6): T_6 & {
|
|
3197
|
+
data: Omit<T_6["data"], "gt"> & {
|
|
3198
|
+
gt: 0;
|
|
3199
|
+
};
|
|
3200
|
+
};
|
|
3201
|
+
nonNegative<T_7 extends JSONType<number, "number"> & {
|
|
3202
|
+
data: BaseNumberData;
|
|
3203
|
+
}>(this: T_7): T_7 & {
|
|
3204
|
+
data: Omit<T_7["data"], "gte"> & {
|
|
3205
|
+
gte: 0;
|
|
3206
|
+
};
|
|
3207
|
+
};
|
|
3208
|
+
negative<T_8 extends JSONType<number, "number"> & {
|
|
3209
|
+
data: BaseNumberData;
|
|
3210
|
+
}>(this: T_8): T_8 & {
|
|
3211
|
+
data: Omit<T_8["data"], "lt"> & {
|
|
3212
|
+
lt: 0;
|
|
3213
|
+
};
|
|
3214
|
+
};
|
|
3215
|
+
nonPositive<T_9 extends JSONType<number, "number"> & {
|
|
3216
|
+
data: BaseNumberData;
|
|
3217
|
+
}>(this: T_9): T_9 & {
|
|
3218
|
+
data: Omit<T_9["data"], "lte"> & {
|
|
3219
|
+
lte: 0;
|
|
3220
|
+
};
|
|
3221
|
+
};
|
|
3222
|
+
multipleOf<T_10 extends JSONType<number, "number"> & {
|
|
3223
|
+
data: BaseNumberData;
|
|
3224
|
+
}, Value_6 extends number>(this: T_10, value: Value_6): T_10 & {
|
|
3225
|
+
data: Omit<T_10["data"], "multipleOf"> & {
|
|
3226
|
+
multipleOf: Value_6;
|
|
3227
|
+
};
|
|
3228
|
+
};
|
|
3229
|
+
step<T_11 extends JSONType<number, "number"> & {
|
|
3230
|
+
data: BaseNumberData;
|
|
3231
|
+
}, Value_7 extends number>(this: T_11, value: Value_7): T_11 & {
|
|
3232
|
+
data: Omit<T_11["data"], "multipleOf"> & {
|
|
3233
|
+
multipleOf: Value_7;
|
|
3234
|
+
};
|
|
3235
|
+
};
|
|
3236
|
+
};
|
|
3237
|
+
declare type JSONDate = JSONType<Date, 'date'>;
|
|
3238
|
+
declare type JSONString = JSONType<string, 'string'> & {
|
|
3239
|
+
data: BaseStringData;
|
|
3240
|
+
} & typeof stringMethods;
|
|
3241
|
+
declare const stringMethods: {
|
|
3242
|
+
dataType: "string";
|
|
3243
|
+
email<T extends JSONType<number, "string"> & {
|
|
3244
|
+
data: BaseStringData;
|
|
3245
|
+
}>(this: T): T & {
|
|
3246
|
+
data: Omit<T["data"], "email"> & {
|
|
3247
|
+
email: true;
|
|
3248
|
+
};
|
|
3249
|
+
};
|
|
3250
|
+
url<T_1 extends JSONType<number, "string"> & {
|
|
3251
|
+
data: BaseStringData;
|
|
3252
|
+
}>(this: T_1): T_1 & {
|
|
3253
|
+
data: Omit<T_1["data"], "url"> & {
|
|
3254
|
+
url: true;
|
|
3255
|
+
};
|
|
3256
|
+
};
|
|
3257
|
+
uuid<T_2 extends JSONType<number, "string"> & {
|
|
3258
|
+
data: BaseStringData;
|
|
3259
|
+
}>(this: T_2): T_2 & {
|
|
3260
|
+
data: Omit<T_2["data"], "uuid"> & {
|
|
3261
|
+
uuid: true;
|
|
3262
|
+
};
|
|
3263
|
+
};
|
|
3264
|
+
cuid<T_3 extends JSONType<number, "string"> & {
|
|
3265
|
+
data: BaseStringData;
|
|
3266
|
+
}>(this: T_3): T_3 & {
|
|
3267
|
+
data: Omit<T_3["data"], "cuid"> & {
|
|
3268
|
+
cuid: true;
|
|
3269
|
+
};
|
|
3270
|
+
};
|
|
3271
|
+
regex<T_4 extends JSONType<number, "string"> & {
|
|
3272
|
+
data: BaseStringData;
|
|
3273
|
+
}, Value extends RegExp>(this: T_4, value: Value): T_4 & {
|
|
3274
|
+
data: Omit<T_4["data"], "regex"> & {
|
|
3275
|
+
regex: Value;
|
|
3276
|
+
};
|
|
3277
|
+
};
|
|
3278
|
+
trim<T_5 extends JSONType<number, "string"> & {
|
|
3279
|
+
data: BaseStringData;
|
|
3280
|
+
}>(this: T_5): T_5 & {
|
|
3281
|
+
data: Omit<T_5["data"], "cuid"> & {
|
|
3282
|
+
trim: true;
|
|
3283
|
+
};
|
|
3284
|
+
};
|
|
3285
|
+
min<T_6 extends {
|
|
3286
|
+
data: {
|
|
3287
|
+
min?: number | undefined;
|
|
3288
|
+
};
|
|
3289
|
+
}, Value_1 extends number>(this: T_6, value: Value_1): T_6 & {
|
|
3290
|
+
data: Omit<T_6["data"], "min"> & {
|
|
3291
|
+
min: Value_1;
|
|
3292
|
+
};
|
|
3293
|
+
};
|
|
3294
|
+
max<T_7 extends {
|
|
3295
|
+
data: {
|
|
3296
|
+
max?: number | undefined;
|
|
3297
|
+
};
|
|
3298
|
+
}, Value_2 extends number>(this: T_7, value: Value_2): T_7 & {
|
|
3299
|
+
data: Omit<T_7["data"], "max"> & {
|
|
3300
|
+
max: Value_2;
|
|
3301
|
+
};
|
|
3302
|
+
};
|
|
3303
|
+
length<T_8 extends {
|
|
3304
|
+
data: {
|
|
3305
|
+
length?: number | undefined;
|
|
3306
|
+
};
|
|
3307
|
+
}, Value_3 extends number>(this: T_8, value: Value_3): T_8 & {
|
|
3308
|
+
data: Omit<T_8["data"], "length"> & {
|
|
3309
|
+
length: Value_3;
|
|
3310
|
+
};
|
|
3311
|
+
};
|
|
3312
|
+
};
|
|
3313
|
+
declare type JSONUndefined = JSONType<undefined, 'undefined'>;
|
|
3314
|
+
declare type JSONUnknown = JSONType<unknown, 'unknown'>;
|
|
3315
|
+
declare type JSONVoid = JSONType<void, 'void'>;
|
|
3316
|
+
|
|
3317
|
+
interface JSONTuple<T extends JSONTupleItems | [] = JSONTupleItems, Rest extends JSONTypeAny | null = null> extends JSONType<OutputTypeOfTupleWithRest<T, Rest>, 'tuple'> {
|
|
3318
|
+
items: T;
|
|
3319
|
+
deepPartial(): {
|
|
3320
|
+
[k in keyof T]: T[k] extends JSONTypeAny ? DeepPartial<T[k]> : never;
|
|
3321
|
+
} extends infer PI ? PI extends JSONTupleItems ? JSONTuple<PI> : never : never;
|
|
3322
|
+
}
|
|
3323
|
+
declare type JSONTupleItems = [JSONTypeAny, ...JSONTypeAny[]];
|
|
3324
|
+
declare type AssertArray<T> = T extends unknown[] ? T : never;
|
|
3325
|
+
declare type OutputTypeOfTuple<T extends JSONTupleItems | []> = AssertArray<{
|
|
3326
|
+
[k in keyof T]: T[k] extends JSONTypeAny ? T[k]['type'] : never;
|
|
3327
|
+
}>;
|
|
3328
|
+
declare type OutputTypeOfTupleWithRest<T extends JSONTupleItems | [], Rest extends JSONTypeAny | null = null> = Rest extends JSONTypeAny ? [...OutputTypeOfTuple<T>, ...Rest['type'][]] : OutputTypeOfTuple<T>;
|
|
3329
|
+
|
|
3330
|
+
interface JSONSet<Value extends JSONTypeAny> extends JSONType<Set<Value['type']>, 'set'>, ArrayMethods {
|
|
3331
|
+
data: JSONTypeData & {
|
|
3332
|
+
min?: number;
|
|
3333
|
+
max?: number;
|
|
3334
|
+
length?: number;
|
|
3335
|
+
};
|
|
3336
|
+
valueType: Value;
|
|
3337
|
+
deepPartial(): JSONSet<ReturnType<Value['deepPartial']>>;
|
|
3338
|
+
nonEmpty(this: JSONSet<Value>): JSONSet<Value> & {
|
|
3339
|
+
data: {
|
|
3340
|
+
min: 1;
|
|
3341
|
+
};
|
|
3342
|
+
};
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
interface JSONRecord<Key extends KeyType, Value extends JSONTypeAny> extends JSONType<Record<Key['type'], Value['type']>, 'record'> {
|
|
3346
|
+
keyType: Key;
|
|
3347
|
+
valueType: Value;
|
|
3348
|
+
deepPartial(): JSONRecord<Key, ReturnType<Value['deepPartial']>>;
|
|
3349
|
+
}
|
|
3350
|
+
declare type KeyType = JSONType<string | number, 'string' | 'number'>;
|
|
3351
|
+
declare type Args<Key extends KeyType, Value extends JSONTypeAny> = Args2<Key, Value> | Args1<Key>;
|
|
3352
|
+
declare type Args2<Key extends KeyType, Value extends JSONTypeAny> = [
|
|
3353
|
+
key: Key,
|
|
3354
|
+
value: Value
|
|
3355
|
+
];
|
|
3356
|
+
declare type Args1<Value extends JSONTypeAny> = [value: Value];
|
|
3357
|
+
declare function record(...args: Args<JSONString | JSONNumber, JSONTypeAny>): JSONRecord<JSONString | JSONNumber, JSONTypeAny>;
|
|
3358
|
+
|
|
3359
|
+
declare type JSONTypes = typeof jsonTypes;
|
|
3360
|
+
declare const jsonTypes: {
|
|
3361
|
+
set: <Value extends JSONTypeAny>(valueType: Value) => JSONSet<Value>;
|
|
3362
|
+
tuple: <T extends [] | JSONTupleItems>(items: T) => JSONTuple<T, null>;
|
|
3363
|
+
union: <T_1 extends [JSONTypeAny, JSONTypeAny, ...JSONTypeAny[]]>(types: T_1) => T_1[number];
|
|
3364
|
+
any: () => JSONAny;
|
|
3365
|
+
bigint: () => JSONBigInt;
|
|
3366
|
+
boolean: () => JSONBoolean;
|
|
3367
|
+
date: () => JSONDate;
|
|
3368
|
+
nan: () => JSONNaN;
|
|
3369
|
+
never: () => JSONNever;
|
|
3370
|
+
null: () => JSONNull;
|
|
3371
|
+
number: () => JSONNumber;
|
|
3372
|
+
string: () => JSONString;
|
|
3373
|
+
undefined: () => JSONUndefined;
|
|
3374
|
+
unknown: () => JSONUnknown;
|
|
3375
|
+
void: () => JSONVoid;
|
|
3376
|
+
array: <Type extends JSONTypeAny>(element: Type) => JSONArray<Type, "many">;
|
|
3377
|
+
discriminatedUnion: <Discriminator extends string, Options extends readonly [JSONObject<Record<Discriminator, JSONLiteral<Primitive>>, "strip", JSONTypeAny, addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never> extends infer T_2 ? { [k in keyof T_2]: addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never>[k]; } : never>, JSONObject<Record<Discriminator, JSONLiteral<Primitive>>, "strip", JSONTypeAny, addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never> extends infer T_2 ? { [k in keyof T_2]: addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never>[k]; } : never>, ...JSONObject<Record<Discriminator, JSONLiteral<Primitive>>, "strip", JSONTypeAny, addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never> extends infer T_2 ? { [k in keyof T_2]: addQuestionMarks<Record<Discriminator, JSONLiteral<Primitive>> extends infer T_3 ? { [k_1 in keyof T_3]: Record<Discriminator, JSONLiteral<Primitive>>[k_1]["type"]; } : never>[k]; } : never>[]]>(discriminator: Discriminator, options: Options) => JSONDiscriminatedUnion<Discriminator, Options>;
|
|
3378
|
+
enum: <T_4 extends readonly [string, ...string[]]>(options: T_4) => JSONEnum<T_4>;
|
|
3379
|
+
instanceOf: <T_5 extends new (...args: any[]) => any>(cls: T_5) => JSONInstanceOf<T_5>;
|
|
3380
|
+
intersection: <Left extends JSONTypeAny, Right extends JSONTypeAny>(left: Left, right: Right) => JSONIntersection<Left, Right>;
|
|
3381
|
+
lazy: <T_6 extends JSONTypeAny>(fn: () => T_6) => void;
|
|
3382
|
+
literal: <T_7 extends Primitive>(value: T_7) => JSONLiteral<T_7>;
|
|
3383
|
+
map: <Key extends JSONTypeAny, Value_1 extends JSONTypeAny>(keyType: Key, valueType: Value_1) => JSONMap<Key, Value_1>;
|
|
3384
|
+
nativeEnum: <T_8 extends {
|
|
3385
|
+
[k: string]: string | number;
|
|
3386
|
+
[nu: number]: string;
|
|
3387
|
+
}>(givenEnum: T_8) => JSONNativeEnum<T_8>;
|
|
3388
|
+
nullable: <T_9 extends JSONTypeAny>(type: T_9) => JSONNullable<T_9>;
|
|
3389
|
+
nullish: <T_10 extends JSONTypeAny>(type: T_10) => JSONNullish<T_10>;
|
|
3390
|
+
object: <T_11 extends JSONObjectShape, UnknownKeys extends UnknownKeysParam = "strip", Catchall extends JSONTypeAny = JSONTypeAny>(shape: T_11) => JSONObject<T_11, UnknownKeys, Catchall, JSONTypeAny extends Catchall ? addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }> extends infer T_12 ? { [k_2 in keyof T_12]: addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }>[k_2]; } : never : (addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }> extends infer T_12 ? { [k_2 in keyof T_12]: addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }>[k_2]; } : never) & {
|
|
3391
|
+
[k: string]: Catchall["type"];
|
|
3392
|
+
} extends infer T_13 ? { [k_4 in keyof T_13]: ((addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }> extends infer T_12 ? { [k_2 in keyof T_12]: addQuestionMarks<{ [k_3 in keyof T_11]: T_11[k_3]["type"]; }>[k_2]; } : never) & {
|
|
3393
|
+
[k: string]: Catchall["type"];
|
|
3394
|
+
})[k_4]; } : never>;
|
|
3395
|
+
optional: <T_14 extends JSONTypeAny>(type: T_14) => JSONOptional<T_14>;
|
|
3396
|
+
record: typeof record;
|
|
3397
|
+
};
|
|
3398
|
+
declare class JSONColumn<Type extends JSONTypeAny = JSONTypeAny> extends ColumnType<Type['type'], typeof Operators.json> {
|
|
3399
|
+
dataType: "jsonb";
|
|
3400
|
+
operators: {
|
|
3401
|
+
jsonPath: ((key: string, value: [path: string, op: string, value: unknown], values: unknown[]) => string) & {
|
|
3402
|
+
type: [path: string, op: string, value: unknown];
|
|
3403
|
+
};
|
|
3404
|
+
jsonSupersetOf: ((key: string, value: unknown, values: unknown[]) => string) & {
|
|
3405
|
+
type: unknown;
|
|
3406
|
+
};
|
|
3407
|
+
jsonSubsetOf: ((key: string, value: unknown, values: unknown[]) => string) & {
|
|
3408
|
+
type: unknown;
|
|
3409
|
+
};
|
|
3410
|
+
equals: ((key: string, value: unknown, values: unknown[]) => string) & {
|
|
3411
|
+
type: unknown;
|
|
3412
|
+
};
|
|
3413
|
+
not: ((key: string, value: unknown, values: unknown[]) => string) & {
|
|
3414
|
+
type: unknown;
|
|
3415
|
+
};
|
|
3416
|
+
in: ((key: string, value: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3417
|
+
type: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3418
|
+
};
|
|
3419
|
+
notIn: ((key: string, value: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3420
|
+
type: Query | unknown[] | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3421
|
+
};
|
|
3422
|
+
};
|
|
3423
|
+
data: {
|
|
3424
|
+
schema: Type;
|
|
3425
|
+
};
|
|
3426
|
+
constructor(schemaOrFn: Type | ((j: JSONTypes) => Type));
|
|
3427
|
+
}
|
|
3428
|
+
declare class JSONTextColumn extends ColumnType<string, typeof Operators.text> {
|
|
3429
|
+
dataType: "json";
|
|
3430
|
+
operators: {
|
|
3431
|
+
contains: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3432
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3433
|
+
};
|
|
3434
|
+
containsInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3435
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3436
|
+
};
|
|
3437
|
+
startsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3438
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3439
|
+
};
|
|
3440
|
+
startsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3441
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3442
|
+
};
|
|
3443
|
+
endsWith: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3444
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3445
|
+
};
|
|
3446
|
+
endsWithInsensitive: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3447
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3448
|
+
};
|
|
3449
|
+
equals: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3450
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3451
|
+
};
|
|
3452
|
+
not: ((key: string, value: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3453
|
+
type: string | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3454
|
+
};
|
|
3455
|
+
in: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
3456
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
3457
|
+
};
|
|
3458
|
+
notIn: ((key: string, value: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[], values: unknown[]) => string) & {
|
|
3459
|
+
type: Query | RawExpression<ColumnType<unknown, Operators, unknown>> | string[];
|
|
3460
|
+
};
|
|
3461
|
+
};
|
|
3462
|
+
}
|
|
3463
|
+
|
|
3464
|
+
declare class ArrayColumn<Item extends ColumnType> extends ColumnType<Item['type'][], typeof Operators.array> {
|
|
3465
|
+
dataType: "array";
|
|
3466
|
+
operators: {
|
|
3467
|
+
equals: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3468
|
+
type: any;
|
|
3469
|
+
};
|
|
3470
|
+
not: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3471
|
+
type: any;
|
|
3472
|
+
};
|
|
3473
|
+
in: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3474
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3475
|
+
};
|
|
3476
|
+
notIn: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3477
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3478
|
+
};
|
|
3479
|
+
};
|
|
3480
|
+
data: {
|
|
3481
|
+
item: Item;
|
|
3482
|
+
};
|
|
3483
|
+
constructor(item: Item);
|
|
3484
|
+
toSQL(): string;
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
declare type ColumnTypes = typeof columnTypes;
|
|
3488
|
+
declare const columnTypes: {
|
|
3489
|
+
smallint: () => SmallIntColumn;
|
|
3490
|
+
integer: () => IntegerColumn;
|
|
3491
|
+
bigint: () => BigIntColumn;
|
|
3492
|
+
numeric: <Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(precision?: Precision | undefined, scale?: Scale | undefined) => DecimalColumn<Precision, Scale>;
|
|
3493
|
+
numericBigInt: <Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(precision?: Precision_1 | undefined, scale?: Scale_1 | undefined) => DecimalBigIntColumn<Precision_1, Scale_1>;
|
|
3494
|
+
decimal: <Precision_2 extends number | undefined = undefined, Scale_2 extends number | undefined = undefined>(precision?: Precision_2 | undefined, scale?: Scale_2 | undefined) => DecimalColumn<Precision_2, Scale_2>;
|
|
3495
|
+
decimalBigInt: <Precision_3 extends number | undefined = undefined, Scale_3 extends number | undefined = undefined>(precision?: Precision_3 | undefined, scale?: Scale_3 | undefined) => DecimalBigIntColumn<Precision_3, Scale_3>;
|
|
3496
|
+
real: () => RealColumn;
|
|
3497
|
+
doublePrecision: () => DoublePrecisionColumn;
|
|
3498
|
+
smallSerial: () => SmallSerialColumn;
|
|
3499
|
+
serial: () => SerialColumn;
|
|
3500
|
+
bigserial: () => BigSerialColumn;
|
|
3501
|
+
money: () => MoneyColumn;
|
|
3502
|
+
varchar: <Limit extends number | undefined = undefined>(limit?: Limit | undefined) => VarCharColumn<Limit>;
|
|
3503
|
+
char: <Limit_1 extends number | undefined = undefined>(limit?: Limit_1 | undefined) => CharColumn<Limit_1>;
|
|
3504
|
+
text: () => TextColumn;
|
|
3505
|
+
bytea: () => ByteaColumn;
|
|
3506
|
+
date: () => DateColumn;
|
|
3507
|
+
timestamp: <Precision_4 extends number | undefined = undefined>(precision?: Precision_4 | undefined) => TimestampColumn<Precision_4>;
|
|
3508
|
+
timestampWithTimeZone: <Precision_5 extends number | undefined = undefined>(precision?: Precision_5 | undefined) => TimestampWithTimeZoneColumn<Precision_5>;
|
|
3509
|
+
time: <Precision_6 extends number | undefined = undefined>(precision?: Precision_6 | undefined) => TimeColumn<Precision_6>;
|
|
3510
|
+
timeWithTimeZone: <Precision_7 extends number | undefined = undefined>(precision?: Precision_7 | undefined) => TimeWithTimeZoneColumn<Precision_7>;
|
|
3511
|
+
interval: <Fields extends string | undefined = undefined, Precision_8 extends number | undefined = undefined>(fields?: Fields | undefined, precision?: Precision_8 | undefined) => IntervalColumn<Fields, Precision_8>;
|
|
3512
|
+
boolean: () => BooleanColumn;
|
|
3513
|
+
enum: <DataType extends string, Type>(dataType: DataType) => EnumColumn<DataType, Type>;
|
|
3514
|
+
point: () => PointColumn;
|
|
3515
|
+
line: () => LineColumn;
|
|
3516
|
+
lseg: () => LsegColumn;
|
|
3517
|
+
box: () => BoxColumn;
|
|
3518
|
+
path: () => PathColumn;
|
|
3519
|
+
polygon: () => PolygonColumn;
|
|
3520
|
+
circle: () => CircleColumn;
|
|
3521
|
+
cidr(): CidrColumn;
|
|
3522
|
+
inet: () => InetColumn;
|
|
3523
|
+
macaddr: () => MacAddrColumn;
|
|
3524
|
+
macaddr8: () => MacAddr8Column;
|
|
3525
|
+
bit: () => BitColumn<undefined>;
|
|
3526
|
+
bitVarying: () => BitVaryingColumn<undefined>;
|
|
3527
|
+
tsvector: () => TsVectorColumn;
|
|
3528
|
+
tsquery: () => TsQueryColumn;
|
|
3529
|
+
uuid: () => UUIDColumn;
|
|
3530
|
+
xml: () => XMLColumn;
|
|
3531
|
+
json: <Type_1 extends JSONTypeAny>(schemaOrFn: Type_1 | ((j: JSONTypes) => Type_1)) => JSONColumn<Type_1>;
|
|
3532
|
+
jsonText: () => JSONTextColumn;
|
|
3533
|
+
array: <Item extends ColumnType<unknown, Operators, unknown>>(item: Item) => ArrayColumn<Item>;
|
|
3534
|
+
};
|
|
3535
|
+
|
|
3536
|
+
declare type ColumnsShape = Record<string, ColumnType>;
|
|
3537
|
+
declare type ColumnShapeOutput<Shape extends ColumnsShape> = {
|
|
3538
|
+
[K in keyof Shape]: ColumnOutput<Shape[K]>;
|
|
3539
|
+
};
|
|
3540
|
+
declare type ColumnShapeInput<Shape extends ColumnsShape> = {
|
|
3541
|
+
[K in keyof Shape]: ColumnInput<Shape[K]>;
|
|
3542
|
+
};
|
|
3543
|
+
declare class ColumnsObject<Shape extends ColumnsShape> extends ColumnType<{
|
|
3544
|
+
[K in keyof Shape]: Shape[K]['type'];
|
|
3545
|
+
}, typeof Operators.any> {
|
|
3546
|
+
shape: Shape;
|
|
3547
|
+
dataType: string;
|
|
3548
|
+
operators: {
|
|
3549
|
+
equals: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3550
|
+
type: any;
|
|
3551
|
+
};
|
|
3552
|
+
not: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3553
|
+
type: any;
|
|
3554
|
+
};
|
|
3555
|
+
in: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3556
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3557
|
+
};
|
|
3558
|
+
notIn: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3559
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3560
|
+
};
|
|
3561
|
+
};
|
|
3562
|
+
constructor(shape: Shape);
|
|
3563
|
+
}
|
|
3564
|
+
declare class ArrayOfColumnsObjects<Shape extends ColumnsShape> extends ColumnType<{
|
|
3565
|
+
[K in keyof Shape]: Shape[K]['type'];
|
|
3566
|
+
}[], typeof Operators.any> {
|
|
3567
|
+
shape: Shape;
|
|
3568
|
+
dataType: string;
|
|
3569
|
+
operators: {
|
|
3570
|
+
equals: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3571
|
+
type: any;
|
|
3572
|
+
};
|
|
3573
|
+
not: ((key: string, value: any, values: unknown[]) => string) & {
|
|
3574
|
+
type: any;
|
|
3575
|
+
};
|
|
3576
|
+
in: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3577
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3578
|
+
};
|
|
3579
|
+
notIn: ((key: string, value: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>, values: unknown[]) => string) & {
|
|
3580
|
+
type: any[] | Query | RawExpression<ColumnType<unknown, Operators, unknown>>;
|
|
3581
|
+
};
|
|
3582
|
+
};
|
|
3583
|
+
constructor(shape: Shape);
|
|
3584
|
+
}
|
|
3585
|
+
declare type UnionKeyofToOvlds<S, U> = UnionToIntersection<U extends keyof S ? (f: U) => void : never>;
|
|
3586
|
+
declare type PopKeyofColumnShapeUnion<S extends ColumnsShape, U extends keyof S> = UnionKeyofToOvlds<S, U> extends (a: infer A extends keyof S) => void ? A : never;
|
|
3587
|
+
declare type IsUnion<T> = [T] extends [UnionToIntersection<T>] ? false : true;
|
|
3588
|
+
declare type UnionToArray<S extends ColumnsShape, T extends keyof S, A extends [...(keyof S)[]] = []> = IsUnion<T> extends true ? UnionToArray<S, Exclude<T, PopKeyofColumnShapeUnion<S, T>>, [
|
|
3589
|
+
PopKeyofColumnShapeUnion<S, T>,
|
|
3590
|
+
...A
|
|
3591
|
+
]> : [T, ...A];
|
|
3592
|
+
declare type GetPrimaryKeys<S extends ColumnsShape> = UnionToArray<S, {
|
|
3593
|
+
[K in keyof S]: S[K] extends {
|
|
3594
|
+
isPrimaryKey: true;
|
|
3595
|
+
} ? K : never;
|
|
3596
|
+
}[keyof S]>;
|
|
3597
|
+
declare type GetPrimaryTypes<S extends ColumnsShape, Keys extends [...(keyof S | string)[]] = GetPrimaryKeys<S>> = GetTypesFromKeys<S, Keys>;
|
|
3598
|
+
declare type GetTypesFromKeys<S extends ColumnsShape, T extends [...(keyof S)[]]> = T extends [
|
|
3599
|
+
infer Head extends keyof S,
|
|
3600
|
+
...infer Tail extends [...(keyof S)[]]
|
|
3601
|
+
] ? [GetTypeFromKey<S, Head>, ...GetTypesFromKeys<S, Tail>] : [];
|
|
3602
|
+
declare type GetTypeFromKey<S extends ColumnsShape, T extends keyof S> = S[T]['type'];
|
|
3603
|
+
declare class TableSchema<Shape extends ColumnsShape> {
|
|
3604
|
+
shape: Shape;
|
|
3605
|
+
primaryKeys: string extends keyof Shape ? string[] : GetPrimaryKeys<Shape>;
|
|
3606
|
+
primaryTypes: GetPrimaryTypes<Shape>;
|
|
3607
|
+
constructor(shape: Shape);
|
|
3608
|
+
}
|
|
3609
|
+
|
|
3610
|
+
declare type Value = any;
|
|
3611
|
+
declare const quote: (value: Value) => string;
|
|
3612
|
+
|
|
3613
|
+
declare const removeFromQuery: <T extends Query>(q: T, key: string) => T;
|
|
3614
|
+
declare const pushQueryArray: <T extends {
|
|
3615
|
+
query: QueryData;
|
|
3616
|
+
}>(q: T, key: string, value: unknown) => T;
|
|
3617
|
+
declare const pushQueryValue: <T extends {
|
|
3618
|
+
query: QueryData;
|
|
3619
|
+
}>(q: T, key: string, value: unknown) => T;
|
|
3620
|
+
declare const setQueryObjectValue: <T extends {
|
|
3621
|
+
query: QueryData;
|
|
3622
|
+
}>(q: T, object: string, key: string, value: unknown) => T;
|
|
3623
|
+
|
|
3624
|
+
declare class NotFoundError extends Error {
|
|
3625
|
+
constructor(message?: string);
|
|
3626
|
+
}
|
|
3627
|
+
declare class MoreThanOneRowError extends Error {
|
|
3628
|
+
}
|
|
3629
|
+
|
|
3630
|
+
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AggregateItem, AggregateItemArg, AggregateItemOptions, AliasOrTable, AnyColumnType, AnyColumnTypeCreator, ArrayColumn, ArrayOfColumnsObjects, BaseNumberData, BaseRelation, BaseStringData, BelongsToNestedInsert, BelongsToNestedUpdate, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CoalesceString, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnInput, ColumnOperators, ColumnOutput, ColumnParser, ColumnShapeInput, ColumnShapeOutput, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, DateColumn, DateTimeBaseClass, DateTimeColumnData, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbTableOptions, DecimalBaseColumn, DecimalBigIntColumn, DecimalColumn, DecimalColumnData, DefaultSelectColumns, DeleteQueryData, DoublePrecisionColumn, EMPTY_OBJECT, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, FilterTuple, GetTypeOrRaw, GetTypesOrRaw, HasAndBelongsToManyRelation, HasManyNestedInsert, HasManyNestedUpdate, HasManyRelation, HasOneNestedInsert, HasOneNestedUpdate, HasOneRelation, HavingItem, InetColumn, Insert, InsertData, InsertQueryData, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinCallbackArg, JoinItem, JoinedTablesBase, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MaybeArray, MoneyColumn, MoreThanOneRowError, NestedInsertItem, NestedInsertManyItems, NestedInsertOneItem, NestedUpdateItem, NestedUpdateManyItems, NestedUpdateOneItem, NotFoundError, NullableColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OptionalKeys, OrderArg, OrderItem, PathColumn, PointColumn, PolygonColumn, PropertyKeyUnionToArray, Query, QueryArraysResult, QueryBase, QueryData, QueryMethods, QueryResult, QueryResultRow, QueryReturnType, QuerySelectAll, QueryWithTable, RawExpression, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationsBase, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SerialColumn, SetOptional, SetQueryJoinedTables, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SimpleSpread, SmallIntColumn, SmallSerialColumn, SortDir, Spread, Sql, StringColumn, StringExpression, StringKey, TableSchema, TextBaseColumn, TextColumn, TextColumnData, Then, ThenResult, TimeColumn, TimeWithTimeZoneColumn, TimestampColumn, TimestampWithTimeZoneColumn, Transaction, TransactionAdapter, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnionItem, UnionToArray, UnionToIntersection, UnionToOvlds, UpdateQueryData, VarCharColumn, WhereInItem, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addQueryOn, addQueryOrOn, applyMixins, columnTypes, utils as columnUtils, createDb, createOperator, defaultsKey, getClonedQueryData, getQueryAs, getQueryParsers, getRaw, handleResult, isRaw, isRequiredRelationKey, joinTruthy, noop, parseRecord, parseResult, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryKeysOfNotSimpleQuery, queryMethodByReturnType, quote, raw, rawColumn, relationQueryKey, removeFromQuery, setQueryObjectValue, toArray, toSql };
|