@taylordb/query-builder 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/@types/aggregate.d.ts +7 -7
- package/dist/cjs/@types/internal-types.d.ts +4 -14
- package/dist/cjs/@types/type-helpers.d.ts +6 -6
- package/dist/cjs/__tests__/taylorclient.types.d.ts +83 -94
- package/dist/cjs/aggregation-query-builder.d.ts +8 -6
- package/dist/cjs/aggregation-query-builder.js.map +1 -1
- package/dist/cjs/batch-query-builder.d.ts +3 -1
- package/dist/cjs/delete-query-builder.d.ts +1 -1
- package/dist/cjs/executor.d.ts +3 -1
- package/dist/cjs/executor.js +1 -1
- package/dist/cjs/executor.js.map +1 -1
- package/dist/cjs/insert-query-builder.d.ts +3 -3
- package/dist/cjs/insert-query-builder.js.map +1 -1
- package/dist/cjs/query-builder.d.ts +14 -12
- package/dist/cjs/query-builder.js +5 -1
- package/dist/cjs/query-builder.js.map +1 -1
- package/dist/cjs/selection-builder.d.ts +2 -2
- package/dist/cjs/selection-builder.js.map +1 -1
- package/dist/cjs/subscription-manager.d.ts +3 -1
- package/dist/cjs/subscription-manager.js +15 -0
- package/dist/cjs/subscription-manager.js.map +1 -1
- package/dist/cjs/update-query-builder.d.ts +2 -2
- package/dist/cjs/update-query-builder.js.map +1 -1
- package/dist/cjs/where-query-builder.d.ts +4 -5
- package/dist/cjs/where-query-builder.js.map +1 -1
- package/dist/esm/@types/aggregate.d.ts +7 -7
- package/dist/esm/@types/internal-types.d.ts +4 -14
- package/dist/esm/@types/type-helpers.d.ts +6 -6
- package/dist/esm/__tests__/taylorclient.types.d.ts +83 -94
- package/dist/esm/aggregation-query-builder.d.ts +8 -6
- package/dist/esm/aggregation-query-builder.js.map +1 -1
- package/dist/esm/batch-query-builder.d.ts +3 -1
- package/dist/esm/delete-query-builder.d.ts +1 -1
- package/dist/esm/executor.d.ts +3 -1
- package/dist/esm/executor.js +1 -1
- package/dist/esm/executor.js.map +1 -1
- package/dist/esm/insert-query-builder.d.ts +3 -3
- package/dist/esm/insert-query-builder.js.map +1 -1
- package/dist/esm/query-builder.d.ts +14 -12
- package/dist/esm/query-builder.js +5 -1
- package/dist/esm/query-builder.js.map +1 -1
- package/dist/esm/selection-builder.d.ts +2 -2
- package/dist/esm/selection-builder.js.map +1 -1
- package/dist/esm/subscription-manager.d.ts +3 -1
- package/dist/esm/subscription-manager.js +15 -0
- package/dist/esm/subscription-manager.js.map +1 -1
- package/dist/esm/update-query-builder.d.ts +2 -2
- package/dist/esm/update-query-builder.js.map +1 -1
- package/dist/esm/where-query-builder.d.ts +4 -5
- package/dist/esm/where-query-builder.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,23 +2,23 @@ import { AggregationQueryMetaData, MetadataWithTableName } from '@taylordb/share
|
|
|
2
2
|
import { AnyDB } from './internal-types.js';
|
|
3
3
|
import { InferDataType } from './type-helpers.js';
|
|
4
4
|
export type AggregationValue = number | null | object | undefined;
|
|
5
|
-
export type Aggregates<DB extends AnyDB, TName extends keyof DB
|
|
6
|
-
[K in keyof DB[
|
|
5
|
+
export type Aggregates<DB extends AnyDB, TName extends keyof DB, TAggregations extends {
|
|
6
|
+
[K in keyof DB[TName] & string]?: readonly (keyof DB[TName][K]['aggregations'])[];
|
|
7
7
|
}> = {
|
|
8
|
-
-readonly [K in keyof TAggregations & keyof DB[
|
|
9
|
-
-readonly [P in NonNullable<TAggregations[K]>[number]]: DB[
|
|
8
|
+
-readonly [K in keyof TAggregations & keyof DB[TName]]: {
|
|
9
|
+
-readonly [P in NonNullable<TAggregations[K]>[number]]: DB[TName][K]['aggregations'][P];
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
type Head<T extends readonly any[]> = T extends readonly [infer H, ...any[]] ? H : never;
|
|
13
13
|
type Tail<T extends readonly any[]> = T extends readonly [any, ...infer R] ? R : never;
|
|
14
|
-
export type AggregateRecord<DB extends AnyDB, TName extends keyof DB
|
|
15
|
-
[K in keyof DB[
|
|
14
|
+
export type AggregateRecord<DB extends AnyDB, TName extends keyof DB, TGroupBy extends readonly (keyof DB[TName] & string)[], TAggregations extends {
|
|
15
|
+
[K in keyof DB[TName] & string]?: readonly (keyof DB[TName][K]['aggregations'])[];
|
|
16
16
|
}> = TGroupBy extends readonly [] ? {
|
|
17
17
|
count: number;
|
|
18
18
|
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
19
19
|
} : {
|
|
20
20
|
field: Head<TGroupBy>;
|
|
21
|
-
value: InferDataType<DB[
|
|
21
|
+
value: InferDataType<DB[TName][Head<TGroupBy>]>;
|
|
22
22
|
count: number;
|
|
23
23
|
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
24
24
|
} & (Tail<TGroupBy> extends readonly [] ? object : {
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { MetadataWithTableName, ObjConfigurationVisibleField, SelectQueryMetaData } from '@taylordb/shared';
|
|
2
|
-
export type Filters = {
|
|
3
|
-
[key: string]: {
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
export type Aggregates = {
|
|
8
|
-
[key: string]: {
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
1
|
+
import { ColumnType, MetadataWithTableName, ObjConfigurationVisibleField, SelectQueryMetaData } from '@taylordb/shared';
|
|
12
2
|
export type AnyDB = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
[key in keyof any]: {
|
|
4
|
+
[key in keyof any]: ColumnType<any, any, any, any, any, any>;
|
|
5
|
+
};
|
|
16
6
|
};
|
|
17
7
|
export type SelectionQueryNode = ObjConfigurationVisibleField<string> & {
|
|
18
8
|
queryType: 'link';
|
|
@@ -2,7 +2,7 @@ import { ColumnType, LinkColumnType } from '@taylordb/shared';
|
|
|
2
2
|
import { QueryBuilder } from '../query-builder.js';
|
|
3
3
|
import { AnyDB } from './internal-types.js';
|
|
4
4
|
import { LinkColumnNames, NonLinkColumnNames } from './query-builder.js';
|
|
5
|
-
export type InferDataType<TColumn> = TColumn extends ColumnType<
|
|
5
|
+
export type InferDataType<TColumn> = TColumn extends ColumnType<infer D, any, any, any> ? D : never;
|
|
6
6
|
export type TableShape<TTable> = {
|
|
7
7
|
[K in keyof TTable]: InferDataType<TTable[K]>;
|
|
8
8
|
};
|
|
@@ -11,14 +11,14 @@ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (
|
|
|
11
11
|
type InferSubqueryShape<TFunc> = TFunc extends (b: any) => QueryBuilder<any, any, infer SubSelection, infer LinkName> ? {
|
|
12
12
|
[K in LinkName & string]: SubSelection[];
|
|
13
13
|
} : object;
|
|
14
|
-
export type ResolveSelection<DB extends AnyDB, TName extends keyof DB
|
|
15
|
-
[I in keyof TFields]: TFields[I] extends NonLinkColumnNames<DB[
|
|
16
|
-
[K in TFields[I]]: InferDataType<DB[
|
|
14
|
+
export type ResolveSelection<DB extends AnyDB, TName extends keyof DB, TFields extends readonly any[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
15
|
+
[I in keyof TFields]: TFields[I] extends NonLinkColumnNames<DB[TName]> ? {
|
|
16
|
+
[K in TFields[I]]: InferDataType<DB[TName][K]>;
|
|
17
17
|
} : TFields[I] extends (b: any) => QueryBuilder<any, any, any, any> ? InferSubqueryShape<TFields[I]> : object;
|
|
18
18
|
}[number]>;
|
|
19
|
-
export type ResolveWithPlain<DB extends AnyDB, TName extends keyof DB
|
|
19
|
+
export type ResolveWithPlain<DB extends AnyDB, TName extends keyof DB, TRelations extends (LinkColumnNames<DB[TName]> & string) | readonly (LinkColumnNames<DB[TName]> & string)[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
20
20
|
[K in TRelations extends readonly any[] ? TRelations[number] : TRelations]: {
|
|
21
|
-
[P in K]: TableShape<DB[
|
|
21
|
+
[P in K]: TableShape<DB[DB[TName][P] extends LinkColumnType<infer L> ? L : never]>[];
|
|
22
22
|
};
|
|
23
23
|
}[TRelations extends readonly any[] ? TRelations[number] : TRelations]>;
|
|
24
24
|
export type ResolveWithObject<TRelations extends Record<string, (qb: any) => QueryBuilder<any, any, any, any>>, TCurrentSelection> = TCurrentSelection & {
|
|
@@ -6,104 +6,98 @@
|
|
|
6
6
|
*/
|
|
7
7
|
type IsWithinOperatorValue = 'pastWeek' | 'pastMonth' | 'pastYear' | 'nextWeek' | 'nextMonth' | 'nextYear' | 'daysFromNow' | 'daysAgo' | 'currentWeek' | 'currentMonth' | 'currentYear';
|
|
8
8
|
type DefaultDateFilterValue = ('today' | 'tomorrow' | 'yesterday' | 'oneWeekAgo' | 'oneWeekFromNow' | 'oneMonthAgo' | 'oneMonthFromNow') | ['exactDay' | 'exactTimestamp', string] | ['daysAgo' | 'daysFromNow', number];
|
|
9
|
-
export type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
hasAnyOf: string[];
|
|
15
|
-
contains: string;
|
|
16
|
-
startsWith: string;
|
|
17
|
-
endsWith: string;
|
|
18
|
-
doesNotContain: string;
|
|
19
|
-
};
|
|
20
|
-
number: {
|
|
21
|
-
'=': number;
|
|
22
|
-
'!=': number;
|
|
23
|
-
'>': number;
|
|
24
|
-
'>=': number;
|
|
25
|
-
'<': number;
|
|
26
|
-
'<=': number;
|
|
27
|
-
hasAnyOf: number[];
|
|
28
|
-
hasNoneOf: number[];
|
|
29
|
-
};
|
|
30
|
-
checkbox: {
|
|
31
|
-
'=': number;
|
|
32
|
-
};
|
|
33
|
-
link: {
|
|
34
|
-
hasAnyOf: number[];
|
|
35
|
-
hasAllOf: number[];
|
|
36
|
-
isExactly: number[];
|
|
37
|
-
'=': number;
|
|
38
|
-
hasNoneOf: number[];
|
|
39
|
-
};
|
|
40
|
-
date: {
|
|
41
|
-
'=': DefaultDateFilterValue;
|
|
42
|
-
'!=': DefaultDateFilterValue;
|
|
43
|
-
'<': DefaultDateFilterValue;
|
|
44
|
-
'>': DefaultDateFilterValue;
|
|
45
|
-
'<=': DefaultDateFilterValue;
|
|
46
|
-
'>=': DefaultDateFilterValue;
|
|
47
|
-
isWithIn: IsWithinOperatorValue | {
|
|
48
|
-
value: 'daysAgo' | 'daysFromNow';
|
|
49
|
-
date: number;
|
|
50
|
-
};
|
|
51
|
-
isEmpty: boolean;
|
|
52
|
-
isNotEmpty: boolean;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
type Aggregates = {
|
|
56
|
-
number: {
|
|
57
|
-
sum: number;
|
|
58
|
-
average: number;
|
|
59
|
-
median: number;
|
|
60
|
-
min: number | null;
|
|
61
|
-
max: number | null;
|
|
62
|
-
range: number;
|
|
63
|
-
standardDeviation: number;
|
|
64
|
-
histogram: Record<string, number>;
|
|
65
|
-
empty: number;
|
|
66
|
-
filled: number;
|
|
67
|
-
unique: number;
|
|
68
|
-
percentEmpty: number;
|
|
69
|
-
percentFilled: number;
|
|
70
|
-
percentUnique: number;
|
|
71
|
-
};
|
|
72
|
-
date: {
|
|
73
|
-
empty: number;
|
|
74
|
-
filled: number;
|
|
75
|
-
unique: number;
|
|
76
|
-
percentEmpty: number;
|
|
77
|
-
percentFilled: number;
|
|
78
|
-
percentUnique: number;
|
|
79
|
-
min: number | null;
|
|
80
|
-
max: number | null;
|
|
81
|
-
daysRange: number | null;
|
|
82
|
-
monthRange: number | null;
|
|
83
|
-
};
|
|
84
|
-
link: {
|
|
85
|
-
empty: number;
|
|
86
|
-
filled: number;
|
|
87
|
-
percentEmpty: number;
|
|
88
|
-
percentFilled: number;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
export type ColumnType<S, U, I, T> = {
|
|
9
|
+
export type ColumnType<S, U, I, T, F extends {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
} = object, A extends {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
} = object> = {
|
|
92
14
|
raw: S;
|
|
93
15
|
insert: I;
|
|
94
16
|
update: U;
|
|
95
17
|
type: T;
|
|
18
|
+
filters: F;
|
|
19
|
+
aggregations: A;
|
|
96
20
|
};
|
|
97
|
-
export type DateColumnType = ColumnType<string | undefined, string | undefined, string | undefined, 'date'
|
|
98
|
-
|
|
21
|
+
export type DateColumnType = ColumnType<string | undefined, string | undefined, string | undefined, 'date', {
|
|
22
|
+
'=': DefaultDateFilterValue;
|
|
23
|
+
'!=': DefaultDateFilterValue;
|
|
24
|
+
'<': DefaultDateFilterValue;
|
|
25
|
+
'>': DefaultDateFilterValue;
|
|
26
|
+
'<=': DefaultDateFilterValue;
|
|
27
|
+
'>=': DefaultDateFilterValue;
|
|
28
|
+
isWithIn: IsWithinOperatorValue | {
|
|
29
|
+
value: 'daysAgo' | 'daysFromNow';
|
|
30
|
+
date: number;
|
|
31
|
+
};
|
|
32
|
+
isEmpty: boolean;
|
|
33
|
+
isNotEmpty: boolean;
|
|
34
|
+
}, {
|
|
35
|
+
empty: number;
|
|
36
|
+
filled: number;
|
|
37
|
+
unique: number;
|
|
38
|
+
percentEmpty: number;
|
|
39
|
+
percentFilled: number;
|
|
40
|
+
percentUnique: number;
|
|
41
|
+
min: number | null;
|
|
42
|
+
max: number | null;
|
|
43
|
+
daysRange: number | null;
|
|
44
|
+
monthRange: number | null;
|
|
45
|
+
}>;
|
|
46
|
+
export type TextColumnType = ColumnType<string | undefined, string | undefined, string | null, 'text', {
|
|
47
|
+
'=': string;
|
|
48
|
+
'!=': string;
|
|
49
|
+
caseEqual: string;
|
|
50
|
+
hasAnyOf: string[];
|
|
51
|
+
contains: string;
|
|
52
|
+
startsWith: string;
|
|
53
|
+
endsWith: string;
|
|
54
|
+
doesNotContain: string;
|
|
55
|
+
}>;
|
|
99
56
|
export type LinkColumnType<T extends string> = ColumnType<object, number[] | {
|
|
100
57
|
newIds: number[];
|
|
101
58
|
deletedIds: number[];
|
|
102
|
-
} | undefined, number[] | undefined, 'link'
|
|
59
|
+
} | undefined, number[] | undefined, 'link', {
|
|
60
|
+
hasAnyOf: number[];
|
|
61
|
+
hasAllOf: number[];
|
|
62
|
+
isExactly: number[];
|
|
63
|
+
'=': number;
|
|
64
|
+
hasNoneOf: number[];
|
|
65
|
+
}, {
|
|
66
|
+
empty: number;
|
|
67
|
+
filled: number;
|
|
68
|
+
percentEmpty: number;
|
|
69
|
+
percentFilled: number;
|
|
70
|
+
}> & {
|
|
103
71
|
linkedTo: T;
|
|
104
72
|
};
|
|
105
|
-
export type NumberColumnType = ColumnType<number | undefined, number | undefined, number | undefined, 'number'
|
|
106
|
-
|
|
73
|
+
export type NumberColumnType = ColumnType<number | undefined, number | undefined, number | undefined, 'number', {
|
|
74
|
+
'=': number;
|
|
75
|
+
'!=': number;
|
|
76
|
+
'>': number;
|
|
77
|
+
'>=': number;
|
|
78
|
+
'<': number;
|
|
79
|
+
'<=': number;
|
|
80
|
+
hasAnyOf: number[];
|
|
81
|
+
hasNoneOf: number[];
|
|
82
|
+
}, {
|
|
83
|
+
sum: number;
|
|
84
|
+
average: number;
|
|
85
|
+
median: number;
|
|
86
|
+
min: number | null;
|
|
87
|
+
max: number | null;
|
|
88
|
+
range: number;
|
|
89
|
+
standardDeviation: number;
|
|
90
|
+
histogram: Record<string, number>;
|
|
91
|
+
empty: number;
|
|
92
|
+
filled: number;
|
|
93
|
+
unique: number;
|
|
94
|
+
percentEmpty: number;
|
|
95
|
+
percentFilled: number;
|
|
96
|
+
percentUnique: number;
|
|
97
|
+
}>;
|
|
98
|
+
export type CheckboxColumnType = ColumnType<boolean | undefined, boolean | undefined, boolean | undefined, 'checkbox', {
|
|
99
|
+
'=': number;
|
|
100
|
+
}>;
|
|
107
101
|
export type SelectTable = {
|
|
108
102
|
id: NumberColumnType;
|
|
109
103
|
name: TextColumnType;
|
|
@@ -123,7 +117,7 @@ export type CollaboratorsTable = {
|
|
|
123
117
|
emailAddress: TextColumnType;
|
|
124
118
|
avatar: TextColumnType;
|
|
125
119
|
};
|
|
126
|
-
export interface
|
|
120
|
+
export interface TaylorDatabase {
|
|
127
121
|
/**
|
|
128
122
|
*
|
|
129
123
|
*
|
|
@@ -135,11 +129,6 @@ export interface Tables {
|
|
|
135
129
|
collaboratorsTable: CollaboratorsTable;
|
|
136
130
|
customers: CustomersTable;
|
|
137
131
|
}
|
|
138
|
-
export interface TaylorDatabase {
|
|
139
|
-
filters: Filters;
|
|
140
|
-
aggregates: Aggregates;
|
|
141
|
-
tables: Tables;
|
|
142
|
-
}
|
|
143
132
|
interface CustomersTable {
|
|
144
133
|
id: NumberColumnType;
|
|
145
134
|
createdAt: DateColumnType;
|
|
@@ -2,24 +2,26 @@ import type { AggregateNode, AggregateRecord } from './@types/aggregate.js';
|
|
|
2
2
|
import type { AnyDB } from './@types/internal-types.js';
|
|
3
3
|
import { Executor } from './executor.js';
|
|
4
4
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
5
|
-
export declare class AggregationQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
6
|
-
[K in keyof DB[
|
|
5
|
+
export declare class AggregationQueryBuilder<DB extends AnyDB, TableName extends keyof DB, TGroupBy extends readonly (keyof DB[TableName] & string)[] = [], TAggregations extends {
|
|
6
|
+
[K in keyof DB[TableName] & string]?: readonly (keyof DB[TableName][K]['aggregations'])[];
|
|
7
7
|
} = object> extends FilterableQueryBuilder<DB, TableName> {
|
|
8
8
|
#private;
|
|
9
9
|
constructor(node: AggregateNode, executor: Executor);
|
|
10
|
-
groupBy<const TField extends keyof DB[
|
|
10
|
+
groupBy<const TField extends keyof DB[TableName] & string>(field: TField, direction?: 'asc' | 'desc'): AggregationQueryBuilder<DB, TableName, [
|
|
11
11
|
...TGroupBy,
|
|
12
12
|
TField
|
|
13
13
|
], TAggregations>;
|
|
14
14
|
withAggregates<const T extends {
|
|
15
|
-
[K in keyof DB[
|
|
15
|
+
[K in keyof DB[TableName] & string]?: readonly (keyof DB[TableName][K]['aggregations'])[];
|
|
16
16
|
}>(aggregates: T): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations & T>;
|
|
17
17
|
limit(count: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
18
18
|
offset(count: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
19
19
|
paginate(page: number, limit: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
20
|
-
orderBy(field: keyof DB[
|
|
20
|
+
orderBy(field: keyof DB[TableName], direction?: 'asc' | 'desc'): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
21
21
|
execute(): Promise<AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]>;
|
|
22
|
-
subscribe(callback: (result: AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]) => void): Promise<
|
|
22
|
+
subscribe(callback: (result: AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]) => void): Promise<{
|
|
23
|
+
unsubscribe: () => Promise<void>;
|
|
24
|
+
}>;
|
|
23
25
|
compile(): {
|
|
24
26
|
query: string;
|
|
25
27
|
variables: Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAElE,MAAa,uBAQX,SAAQ,+CAAqC;IAC7C,KAAK,CAAgB;IAErB,YAAY,IAAmB,EAAE,QAAkB;QACjD,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,CACL,KAAa,EACb,YAA4B,KAAK;QAOjC,MAAM,WAAW,GAAkC;YACjD,KAAK;YACL,SAAS;SACV,CAAC;QAEF,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;SAC1D,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,cAAc,CAMZ,UAAa;QAEb,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC,GAAG,CACvC,SAAS,CAAC,EAAE,CAAC,SAAmB,CACjC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,aAAa;SAC5B,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CACH,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;SACvD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;SACxD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,QAAQ,CACN,IAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ export declare class BatchQueryBuilder<const TBuilders extends readonly AnyQuery
|
|
|
18
18
|
}>;
|
|
19
19
|
subscribe(callback: (...results: {
|
|
20
20
|
-readonly [K in keyof TBuilders]: InferExecuteResult<TBuilders[K]>;
|
|
21
|
-
}) => void): Promise<
|
|
21
|
+
}) => void): Promise<{
|
|
22
|
+
unsubscribe: () => Promise<void>;
|
|
23
|
+
}>;
|
|
22
24
|
compile(): {
|
|
23
25
|
query: string;
|
|
24
26
|
variables: Record<string, any>;
|
|
@@ -2,7 +2,7 @@ import type { DeleteNode } from './@types/delete.js';
|
|
|
2
2
|
import type { AnyDB } from './@types/internal-types.js';
|
|
3
3
|
import { Executor } from './executor.js';
|
|
4
4
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
5
|
-
export declare class DeleteQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
5
|
+
export declare class DeleteQueryBuilder<DB extends AnyDB, TableName extends keyof DB> extends FilterableQueryBuilder<DB, TableName> {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(node: DeleteNode, executor: Executor);
|
|
8
8
|
execute(): Promise<{
|
package/dist/cjs/executor.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export declare class Executor {
|
|
|
10
10
|
constructor(baseUrl: string, apiKey: string);
|
|
11
11
|
execute<T>(builder: Compilable): Promise<T>;
|
|
12
12
|
rawRequest<T>(query: string, variables: Record<string, any>, headers?: Record<string, string>): Promise<T>;
|
|
13
|
-
subscribe<TResult>(builders: AnySubscribableQueryBuilder[], callback: (result: TResult) => void): Promise<
|
|
13
|
+
subscribe<TResult>(builders: AnySubscribableQueryBuilder[], callback: (result: TResult) => void): Promise<{
|
|
14
|
+
unsubscribe: () => Promise<void>;
|
|
15
|
+
}>;
|
|
14
16
|
}
|
|
15
17
|
export {};
|
package/dist/cjs/executor.js
CHANGED
|
@@ -58,7 +58,7 @@ class Executor {
|
|
|
58
58
|
}
|
|
59
59
|
throw new Error('Unexpected response format');
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
subscribe(builders, callback) {
|
|
62
62
|
const metadatas = builders.map(b => b._prepareMetadata());
|
|
63
63
|
return this.#subscriptionManager.subscribe(metadatas, callback);
|
|
64
64
|
}
|
package/dist/cjs/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@ import type { AnyDB } from './@types/internal-types.js';
|
|
|
3
3
|
import { NonLinkColumnNames } from './@types/query-builder.js';
|
|
4
4
|
import { ResolveSelection } from './@types/type-helpers.js';
|
|
5
5
|
import { Executor } from './executor.js';
|
|
6
|
-
export declare class InsertQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
6
|
+
export declare class InsertQueryBuilder<DB extends AnyDB, TableName extends keyof DB, Selection = {
|
|
7
7
|
id: number;
|
|
8
8
|
}> {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(node: InsertNode, executor: Executor);
|
|
11
|
-
values(values: Insertable<DB[
|
|
12
|
-
returning<const TFields extends readonly NonLinkColumnNames<DB[
|
|
11
|
+
values(values: Insertable<DB[TableName]> | Insertable<DB[TableName]>[]): InsertQueryBuilder<DB, TableName, Selection>;
|
|
12
|
+
returning<const TFields extends readonly NonLinkColumnNames<DB[TableName]>[]>(fields: TFields): InsertQueryBuilder<DB, TableName, ResolveSelection<DB, TableName, TFields, object>>;
|
|
13
13
|
execute(): Promise<Selection[]>;
|
|
14
14
|
compile(): {
|
|
15
15
|
query: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../src/insert-query-builder.ts"],"names":[],"mappings":";;;AAKA,yDAAkD;AAClD,iEAA0D;AAE1D,MAAa,kBAAkB;IAK7B,KAAK,CAAa;IAClB,SAAS,CAAW;IAEpB,YAAY,IAAgB,EAAE,QAAkB;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,
|
|
1
|
+
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../src/insert-query-builder.ts"],"names":[],"mappings":";;;AAKA,yDAAkD;AAClD,iEAA0D;AAE1D,MAAa,kBAAkB;IAK7B,KAAK,CAAa;IAClB,SAAS,CAAW;IAEpB,YAAY,IAAgB,EAAE,QAAkB;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,MAA+D;QAE/D,OAAO,IAAI,kBAAkB,CAC3B;YACE,GAAG,IAAI,CAAC,KAAK;YACb,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC1D,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,SAAS,CACP,MAAe;QAMf,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,IAAI,uCAAgB,CAAgB,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,aAAa;gBACb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,KAAe,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAC3B;YACE,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC;SACpD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,6DAA6D,CAAC;QAE5E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAE3C,OAAO;YACL,KAAK;YACL,SAAS,EAAE;gBACT,QAAQ;aACT;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,YAAY,GAAG,CAAC,OAA+B,EAAS,EAAE;YAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,eAAe,GAAG,IAAI,+BAAY,CACtC,KAAkB,EAClB,IAAI,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,eAAe,CAAC,gBAAgB,EAAE,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YACpD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACpC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEX,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,SAAS,EAAE,kBAAkB;SAC9B,CAAC;IACJ,CAAC;CACF;AA7FD,gDA6FC"}
|
|
@@ -9,24 +9,26 @@ import { Executor } from './executor.js';
|
|
|
9
9
|
import { InsertQueryBuilder } from './insert-query-builder.js';
|
|
10
10
|
import { UpdateQueryBuilder } from './update-query-builder.js';
|
|
11
11
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
12
|
-
export declare class QueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
12
|
+
export declare class QueryBuilder<DB extends AnyDB, TableName extends keyof DB, Selection = object, LinkName = null> extends FilterableQueryBuilder<DB, TableName> {
|
|
13
13
|
_node: QueryNode;
|
|
14
14
|
constructor(node: QueryNode, executor: Executor);
|
|
15
|
-
select<const TFields extends readonly NonLinkColumnNames<DB[
|
|
15
|
+
select<const TFields extends readonly NonLinkColumnNames<DB[TableName]>[]>(fields: TFields): QueryBuilder<DB, TableName, ResolveSelection<DB, TableName, TFields, Selection>>;
|
|
16
16
|
selectAll(): QueryBuilder<DB, TableName, Selection & {
|
|
17
|
-
[K in keyof DB[
|
|
17
|
+
[K in keyof DB[TableName]]: InferDataType<DB[TableName][K]>;
|
|
18
18
|
}>;
|
|
19
|
-
with<const TArg extends (LinkColumnNames<DB[
|
|
19
|
+
with<const TArg extends (LinkColumnNames<DB[TableName]> & string) | readonly (LinkColumnNames<DB[TableName]> & string)[]>(relations: TArg): QueryBuilder<DB, TableName, ResolveWithPlain<DB, TableName, TArg, Selection>>;
|
|
20
20
|
with<const TArg extends {
|
|
21
|
-
[K in LinkColumnNames<DB[
|
|
21
|
+
[K in LinkColumnNames<DB[TableName]>]?: (qb: QueryBuilder<DB, DB[TableName][K] extends LinkColumnType<any> ? DB[TableName][K]['linkedTo'] : never, object, K>) => QueryBuilder<DB, any, any, any>;
|
|
22
22
|
}>(relations: TArg): QueryBuilder<DB, TableName, ResolveWithObject<TArg, Selection>>;
|
|
23
23
|
limit(count: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
24
24
|
offset(count: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
25
25
|
paginate(page: number, limit: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
26
|
-
orderBy(field: keyof DB[
|
|
26
|
+
orderBy(field: keyof DB[TableName], direction?: 'asc' | 'desc'): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
27
27
|
execute(): Promise<Selection[]>;
|
|
28
28
|
executeTakeFirst(): Promise<Selection | null>;
|
|
29
|
-
subscribe(callback: (result: Selection[]) => void): Promise<
|
|
29
|
+
subscribe(callback: (result: Selection[]) => void): Promise<{
|
|
30
|
+
unsubscribe: () => Promise<void>;
|
|
31
|
+
}>;
|
|
30
32
|
compile(): {
|
|
31
33
|
query: string;
|
|
32
34
|
variables: Record<string, any>;
|
|
@@ -41,12 +43,12 @@ export declare class RootQueryBuilder<DB extends AnyDB> {
|
|
|
41
43
|
baseUrl: string;
|
|
42
44
|
apiKey: string;
|
|
43
45
|
});
|
|
44
|
-
selectFrom<TableName extends keyof Omit<DB
|
|
45
|
-
insertInto<TableName extends keyof Omit<DB
|
|
46
|
-
update<TableName extends keyof Omit<DB
|
|
47
|
-
deleteFrom<TableName extends keyof Omit<DB
|
|
46
|
+
selectFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(from: TableName): QueryBuilder<DB, TableName>;
|
|
47
|
+
insertInto<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(into: TableName): InsertQueryBuilder<DB, TableName>;
|
|
48
|
+
update<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): UpdateQueryBuilder<DB, TableName>;
|
|
49
|
+
deleteFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): DeleteQueryBuilder<DB, TableName>;
|
|
48
50
|
batch<const TBuilders extends readonly AnyQueryBuilder[]>(builders: TBuilders): AreAllBuildersSubscribable<TBuilders> extends true ? BatchQueryBuilder<TBuilders> : Omit<BatchQueryBuilder<TBuilders>, 'subscribe'>;
|
|
49
|
-
aggregateFrom<TableName extends keyof Omit<DB
|
|
51
|
+
aggregateFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): AggregationQueryBuilder<DB, TableName>;
|
|
50
52
|
}
|
|
51
53
|
export declare function createQueryBuilder<DB extends AnyDB>(config: {
|
|
52
54
|
baseUrl: string;
|
|
@@ -11,10 +11,14 @@ const insert_query_builder_js_1 = require("./insert-query-builder.js");
|
|
|
11
11
|
const selection_builder_js_1 = require("./selection-builder.js");
|
|
12
12
|
const update_query_builder_js_1 = require("./update-query-builder.js");
|
|
13
13
|
const where_query_builder_js_1 = require("./where-query-builder.js");
|
|
14
|
+
const DEFAULT_LIMIT = 50;
|
|
14
15
|
class QueryBuilder extends where_query_builder_js_1.FilterableQueryBuilder {
|
|
15
16
|
constructor(node, executor) {
|
|
16
17
|
super(node, executor);
|
|
17
|
-
this._node =
|
|
18
|
+
this._node = {
|
|
19
|
+
...node,
|
|
20
|
+
pagination: { limit: DEFAULT_LIMIT, offset: 0, ...node.pagination },
|
|
21
|
+
};
|
|
18
22
|
}
|
|
19
23
|
select(fields) {
|
|
20
24
|
return new QueryBuilder({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import type { AnyDB } from './@types/internal-types.js';
|
|
|
3
3
|
import { LinkColumnNames } from './@types/query-builder.js';
|
|
4
4
|
import { Executor } from './executor.js';
|
|
5
5
|
import { QueryBuilder } from './query-builder.js';
|
|
6
|
-
export declare class SelectionBuilder<DB extends AnyDB, CurrentTableName extends keyof DB
|
|
6
|
+
export declare class SelectionBuilder<DB extends AnyDB, CurrentTableName extends keyof DB> {
|
|
7
7
|
_executor: Executor;
|
|
8
8
|
constructor(executor: Executor);
|
|
9
|
-
useLink<LinkName extends LinkColumnNames<DB[
|
|
9
|
+
useLink<LinkName extends LinkColumnNames<DB[CurrentTableName]> & string>(from: LinkName): QueryBuilder<DB, DB[CurrentTableName][LinkName] extends LinkColumnType<any> ? DB[CurrentTableName][LinkName]["linkedTo"] : never, object, LinkName>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-builder.js","sourceRoot":"","sources":["../../src/selection-builder.ts"],"names":[],"mappings":";;;AAIA,yDAAkD;AAElD,MAAa,gBAAgB;IAI3B,SAAS,CAAW;IAEpB,YAAY,QAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,OAAO,
|
|
1
|
+
{"version":3,"file":"selection-builder.js","sourceRoot":"","sources":["../../src/selection-builder.ts"],"names":[],"mappings":";;;AAIA,yDAAkD;AAElD,MAAa,gBAAgB;IAI3B,SAAS,CAAW;IAEpB,YAAY,QAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,OAAO,CACL,IAAc;QAEd,OAAO,IAAI,+BAAY,CAQrB;YACE,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;YAClD,SAAS,EAAE,MAAM;SAClB,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AA9BD,4CA8BC"}
|
|
@@ -15,5 +15,7 @@ export declare class SubscriptionManager {
|
|
|
15
15
|
timeZone?: string;
|
|
16
16
|
clientId?: string;
|
|
17
17
|
});
|
|
18
|
-
subscribe<TResult>(metadatas: any[], callback: (...results: TResult[]) => void): Promise<
|
|
18
|
+
subscribe<TResult>(metadatas: any[], callback: (...results: TResult[]) => void): Promise<{
|
|
19
|
+
unsubscribe: () => Promise<void>;
|
|
20
|
+
}>;
|
|
19
21
|
}
|
|
@@ -88,6 +88,21 @@ class SubscriptionManager {
|
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
callback(...initialData);
|
|
91
|
+
return {
|
|
92
|
+
unsubscribe: async () => {
|
|
93
|
+
const subscriptionIds = subscriptions.map(s => s.subscriptionId);
|
|
94
|
+
for (const id of subscriptionIds) {
|
|
95
|
+
this.#subscriptions.delete(id);
|
|
96
|
+
}
|
|
97
|
+
await this.executor.rawRequest(`query RemoveSubscription ($subscriptionIds: [String]) {
|
|
98
|
+
plugins {
|
|
99
|
+
subscriptions {
|
|
100
|
+
unsubscribe(subscriptionIds: $subscriptionIds)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}`, { subscriptionIds });
|
|
104
|
+
},
|
|
105
|
+
};
|
|
91
106
|
}
|
|
92
107
|
#handlePatch(response) {
|
|
93
108
|
for (const patch of response.patches) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../src/subscription-manager.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAwC;AACxC,uDAA8C;AAe9C,MAAa,mBAAmB;IAMpB;IACA;IANV,OAAO,GAAkB,IAAI,CAAC;IAC9B,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,aAAa,GAAG,KAAK,CAAC;IAEtB,YACU,QAAkB,EAClB,MAKP;QANO,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAKb;IACA,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;iBAClC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBACtB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAE,EAAC,SAAS,EAAE;gBAC3B,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBACzB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK;oBAC1C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;iBAClC;gBACD,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC9B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;oBACrC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,SAAgB,EAChB,QAAyC;QAEzC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;aACrC;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAO3C;;;;;;;;;;;OAWC,EACD,EAAE,KAAK,EAAE,EACT,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtC,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;QAC7D,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE;gBAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,CAAC,WAAgB,EAAE,EAAE;oBAC7B,6CAA6C;oBAC7C,4DAA4D;oBAC5D,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,cAAc,CAC7C,CAAC;oBACF,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;wBACf,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBAC/B,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,GAAI,WAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../src/subscription-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import type { AnyDB } from './@types/internal-types.js';
|
|
|
2
2
|
import type { Updatable, UpdateNode } from './@types/update.js';
|
|
3
3
|
import { Executor } from './executor.js';
|
|
4
4
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
5
|
-
export declare class UpdateQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
5
|
+
export declare class UpdateQueryBuilder<DB extends AnyDB, TableName extends keyof DB> extends FilterableQueryBuilder<DB, TableName> {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(node: UpdateNode, executor: Executor);
|
|
8
|
-
set(values: Updatable<DB[
|
|
8
|
+
set(values: Updatable<DB[TableName]>): UpdateQueryBuilder<DB, TableName>;
|
|
9
9
|
execute(): Promise<{
|
|
10
10
|
affectedRecords: number;
|
|
11
11
|
}>;
|