@powersync/service-sync-rules 0.26.1 → 0.28.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/BaseSqlDataQuery.d.ts +53 -12
- package/dist/BaseSqlDataQuery.js +49 -9
- package/dist/BaseSqlDataQuery.js.map +1 -1
- package/dist/BucketDescription.d.ts +1 -1
- package/dist/BucketDescription.js +1 -1
- package/dist/BucketDescription.js.map +1 -1
- package/dist/SourceTableInterface.d.ts +1 -1
- package/dist/SqlBucketDescriptor.d.ts +6 -6
- package/dist/SqlBucketDescriptor.js +24 -28
- package/dist/SqlBucketDescriptor.js.map +1 -1
- package/dist/SqlDataQuery.d.ts +14 -3
- package/dist/SqlDataQuery.js +41 -27
- package/dist/SqlDataQuery.js.map +1 -1
- package/dist/SqlParameterQuery.d.ts +82 -26
- package/dist/SqlParameterQuery.js +135 -77
- package/dist/SqlParameterQuery.js.map +1 -1
- package/dist/SqlSyncRules.d.ts +3 -5
- package/dist/SqlSyncRules.js +20 -23
- package/dist/SqlSyncRules.js.map +1 -1
- package/dist/StaticSchema.js +2 -2
- package/dist/StaticSchema.js.map +1 -1
- package/dist/StaticSqlParameterQuery.d.ts +50 -15
- package/dist/StaticSqlParameterQuery.js +74 -36
- package/dist/StaticSqlParameterQuery.js.map +1 -1
- package/dist/TablePattern.js +2 -2
- package/dist/TablePattern.js.map +1 -1
- package/dist/TableValuedFunctionSqlParameterQuery.d.ts +70 -17
- package/dist/TableValuedFunctionSqlParameterQuery.js +98 -43
- package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
- package/dist/events/SqlEventDescriptor.d.ts +2 -4
- package/dist/events/SqlEventDescriptor.js +8 -11
- package/dist/events/SqlEventDescriptor.js.map +1 -1
- package/dist/events/SqlEventSourceQuery.d.ts +2 -2
- package/dist/events/SqlEventSourceQuery.js +24 -17
- package/dist/events/SqlEventSourceQuery.js.map +1 -1
- package/dist/request_functions.js +3 -3
- package/dist/request_functions.js.map +1 -1
- package/dist/schema-generators/SchemaGenerator.js +2 -2
- package/dist/schema-generators/SchemaGenerator.js.map +1 -1
- package/dist/sql_filters.d.ts +12 -12
- package/dist/sql_filters.js +24 -24
- package/dist/sql_filters.js.map +1 -1
- package/dist/types.d.ts +10 -12
- package/dist/types.js +13 -13
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SelectedColumn } from 'pgsql-ast-parser';
|
|
2
1
|
import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
3
2
|
import { BucketParameterQuerier, ParameterLookup } from './BucketParameterQuerier.js';
|
|
4
3
|
import { SqlRuleError } from './errors.js';
|
|
@@ -6,7 +5,24 @@ import { SourceTableInterface } from './SourceTableInterface.js';
|
|
|
6
5
|
import { SqlTools } from './sql_filters.js';
|
|
7
6
|
import { StaticSqlParameterQuery } from './StaticSqlParameterQuery.js';
|
|
8
7
|
import { TablePattern } from './TablePattern.js';
|
|
8
|
+
import { TableValuedFunctionSqlParameterQuery } from './TableValuedFunctionSqlParameterQuery.js';
|
|
9
9
|
import { EvaluatedParametersResult, InputParameter, ParameterMatchClause, ParameterValueClause, QueryParseOptions, RequestParameters, RowValueClause, SqliteJsonRow, SqliteRow } from './types.js';
|
|
10
|
+
export interface SqlParameterQueryOptions {
|
|
11
|
+
sourceTable: TablePattern;
|
|
12
|
+
table: string;
|
|
13
|
+
sql: string;
|
|
14
|
+
lookupExtractors: Record<string, RowValueClause>;
|
|
15
|
+
parameterExtractors: Record<string, ParameterValueClause>;
|
|
16
|
+
priority: BucketPriority;
|
|
17
|
+
filter: ParameterMatchClause;
|
|
18
|
+
descriptorName: string;
|
|
19
|
+
inputParameters: InputParameter[];
|
|
20
|
+
expandedInputParameter: InputParameter | undefined;
|
|
21
|
+
bucketParameters: string[];
|
|
22
|
+
queryId: string;
|
|
23
|
+
tools: SqlTools;
|
|
24
|
+
errors?: SqlRuleError[];
|
|
25
|
+
}
|
|
10
26
|
/**
|
|
11
27
|
* Represents a parameter query, such as:
|
|
12
28
|
*
|
|
@@ -14,46 +30,86 @@ import { EvaluatedParametersResult, InputParameter, ParameterMatchClause, Parame
|
|
|
14
30
|
* SELECT id as user_id, token_parameters.is_admin as is_admin FROM users WHERE users.user_id = token_parameters.user_id
|
|
15
31
|
*/
|
|
16
32
|
export declare class SqlParameterQuery {
|
|
17
|
-
static fromSql(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
static fromSql(descriptorName: string, sql: string, options: QueryParseOptions, queryId: string): SqlParameterQuery | StaticSqlParameterQuery | TableValuedFunctionSqlParameterQuery;
|
|
34
|
+
/**
|
|
35
|
+
* The table the parameter query queries from.
|
|
36
|
+
*
|
|
37
|
+
* Currently, no wildcards are supported here.
|
|
38
|
+
*/
|
|
39
|
+
readonly sourceTable: TablePattern;
|
|
40
|
+
/**
|
|
41
|
+
* The table name or alias, as referred to in the SQL query.
|
|
42
|
+
* Not used directly outside the query.
|
|
43
|
+
*
|
|
44
|
+
* Currently, this always matches sourceTable.name.
|
|
45
|
+
*/
|
|
46
|
+
readonly table: string;
|
|
47
|
+
/**
|
|
48
|
+
* The source SQL query, for debugging purposes.
|
|
49
|
+
*/
|
|
50
|
+
readonly sql: string;
|
|
24
51
|
/**
|
|
25
52
|
* Example: SELECT *user.id* FROM users WHERE ...
|
|
53
|
+
*
|
|
54
|
+
* These are applied onto the replicated parameter table rows, returning lookup values.
|
|
55
|
+
*/
|
|
56
|
+
readonly lookupExtractors: Record<string, RowValueClause>;
|
|
57
|
+
/**
|
|
58
|
+
* Example: SELECT *token_parameters.user_id*.
|
|
59
|
+
*
|
|
60
|
+
* These are applied onto the request parameters.
|
|
26
61
|
*/
|
|
27
|
-
|
|
62
|
+
readonly parameterExtractors: Record<string, ParameterValueClause>;
|
|
63
|
+
readonly priority: BucketPriority;
|
|
28
64
|
/**
|
|
29
|
-
*
|
|
65
|
+
* This is the entire where clause.
|
|
66
|
+
*
|
|
67
|
+
* This can convert a parameter row into a set of parameter values, that would make the where clause match.
|
|
68
|
+
* Those are then persisted to lookup later.
|
|
30
69
|
*/
|
|
31
|
-
|
|
32
|
-
priority?: BucketPriority;
|
|
33
|
-
filter?: ParameterMatchClause;
|
|
70
|
+
readonly filter: ParameterMatchClause;
|
|
34
71
|
/**
|
|
35
72
|
* Bucket definition name.
|
|
36
73
|
*/
|
|
37
|
-
|
|
38
|
-
/** _Input_ token / user parameters */
|
|
39
|
-
input_parameters?: InputParameter[];
|
|
40
|
-
/** If specified, an input parameter that expands to an array. */
|
|
41
|
-
expanded_input_parameter?: InputParameter;
|
|
74
|
+
readonly descriptorName: string;
|
|
42
75
|
/**
|
|
43
|
-
*
|
|
76
|
+
* _Input_ token / user parameters - the parameters passed into the parameter query.
|
|
44
77
|
*
|
|
45
|
-
*
|
|
78
|
+
* These "pre-process" the parameters.
|
|
79
|
+
*/
|
|
80
|
+
readonly inputParameters: InputParameter[];
|
|
81
|
+
/**
|
|
82
|
+
* If specified, an input parameter that expands to an array. Currently, only one parameter
|
|
83
|
+
* may is allowed to expand to an array
|
|
46
84
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
85
|
+
readonly expandedInputParameter: InputParameter | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* _Output_ bucket parameters, excluding the `bucket.` prefix.
|
|
88
|
+
*
|
|
89
|
+
* Each one of these will be present in either lookupExtractors or parameterExtractors.
|
|
90
|
+
*/
|
|
91
|
+
readonly bucketParameters: string[];
|
|
92
|
+
/**
|
|
93
|
+
* Unique identifier for this query within a bucket definition.
|
|
94
|
+
*
|
|
95
|
+
* Typically auto-generated based on query order.
|
|
96
|
+
*
|
|
97
|
+
* This is used when persisting lookup values.
|
|
98
|
+
*/
|
|
99
|
+
readonly queryId: string;
|
|
100
|
+
readonly tools: SqlTools;
|
|
101
|
+
readonly errors: SqlRuleError[];
|
|
102
|
+
constructor(options: SqlParameterQueryOptions);
|
|
52
103
|
applies(table: SourceTableInterface): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Given a replicated row, results an array of bucket parameter rows to persist.
|
|
106
|
+
*/
|
|
53
107
|
evaluateParameterRow(row: SqliteRow): EvaluatedParametersResult[];
|
|
54
|
-
transformRows
|
|
108
|
+
private transformRows;
|
|
55
109
|
/**
|
|
56
110
|
* Given partial parameter rows, turn into bucket ids.
|
|
111
|
+
*
|
|
112
|
+
* Internal function, but exposed for tests.
|
|
57
113
|
*/
|
|
58
114
|
resolveBucketDescriptions(bucketParameters: SqliteJsonRow[], parameters: RequestParameters): BucketDescription[];
|
|
59
115
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parse } from 'pgsql-ast-parser';
|
|
2
|
-
import {
|
|
2
|
+
import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
|
|
3
3
|
import { ParameterLookup } from './BucketParameterQuerier.js';
|
|
4
4
|
import { SqlRuleError } from './errors.js';
|
|
5
5
|
import { SqlTools } from './sql_filters.js';
|
|
@@ -16,9 +16,8 @@ import { filterJsonRow, getBucketId, isJsonValue, isSelectStatement, normalizePa
|
|
|
16
16
|
* SELECT id as user_id, token_parameters.is_admin as is_admin FROM users WHERE users.user_id = token_parameters.user_id
|
|
17
17
|
*/
|
|
18
18
|
export class SqlParameterQuery {
|
|
19
|
-
static fromSql(
|
|
19
|
+
static fromSql(descriptorName, sql, options, queryId) {
|
|
20
20
|
const parsed = parse(sql, { locationTracking: true });
|
|
21
|
-
const rows = new SqlParameterQuery();
|
|
22
21
|
const schema = options?.schema;
|
|
23
22
|
if (parsed.length > 1) {
|
|
24
23
|
throw new SqlRuleError('Only a single SELECT statement is supported', sql, parsed[1]?._location);
|
|
@@ -29,15 +28,16 @@ export class SqlParameterQuery {
|
|
|
29
28
|
}
|
|
30
29
|
if (q.from == null) {
|
|
31
30
|
// E.g. SELECT token_parameters.user_id as user_id WHERE token_parameters.is_admin
|
|
32
|
-
return StaticSqlParameterQuery.fromSql(
|
|
31
|
+
return StaticSqlParameterQuery.fromSql(descriptorName, sql, q, options, queryId);
|
|
33
32
|
}
|
|
34
|
-
|
|
33
|
+
let errors = [];
|
|
34
|
+
errors.push(...checkUnsupportedFeatures(sql, q));
|
|
35
35
|
if (q.from.length != 1) {
|
|
36
36
|
throw new SqlRuleError('Must SELECT from a single table', sql, q.from?.[0]._location);
|
|
37
37
|
}
|
|
38
38
|
else if (q.from[0].type == 'call') {
|
|
39
39
|
const from = q.from[0];
|
|
40
|
-
return TableValuedFunctionSqlParameterQuery.fromSql(
|
|
40
|
+
return TableValuedFunctionSqlParameterQuery.fromSql(descriptorName, sql, from, q, options, queryId);
|
|
41
41
|
}
|
|
42
42
|
else if (q.from[0].type == 'statement') {
|
|
43
43
|
throw new SqlRuleError('Subqueries are not supported yet', sql, q.from?.[0]._location);
|
|
@@ -48,7 +48,7 @@ export class SqlParameterQuery {
|
|
|
48
48
|
}
|
|
49
49
|
const alias = q.from?.[0].name.alias ?? tableRef.name;
|
|
50
50
|
if (tableRef.name != alias) {
|
|
51
|
-
|
|
51
|
+
errors.push(new SqlRuleError('Table aliases not supported in parameter queries', sql, q.from?.[0]._location));
|
|
52
52
|
}
|
|
53
53
|
const sourceTable = new TablePattern(tableRef.schema ?? options.defaultSchema, tableRef.name);
|
|
54
54
|
let querySchema = undefined;
|
|
@@ -57,7 +57,7 @@ export class SqlParameterQuery {
|
|
|
57
57
|
if (tables.length == 0) {
|
|
58
58
|
const e = new SqlRuleError(`Table ${sourceTable.schema}.${sourceTable.tablePattern} not found`, sql, q.from?.[0]?._location);
|
|
59
59
|
e.type = 'warning';
|
|
60
|
-
|
|
60
|
+
errors.push(e);
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
63
|
querySchema = new TableQuerySchema(tables, alias);
|
|
@@ -65,111 +65,168 @@ export class SqlParameterQuery {
|
|
|
65
65
|
}
|
|
66
66
|
const tools = new SqlTools({
|
|
67
67
|
table: alias,
|
|
68
|
-
|
|
68
|
+
parameterTables: ['token_parameters', 'user_parameters'],
|
|
69
69
|
sql,
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
supportsExpandingParameters: true,
|
|
71
|
+
supportsParameterExpressions: true,
|
|
72
72
|
schema: querySchema
|
|
73
73
|
});
|
|
74
74
|
tools.checkSpecificNameCase(tableRef);
|
|
75
75
|
const where = q.where;
|
|
76
76
|
const filter = tools.compileWhereClause(where);
|
|
77
|
-
const
|
|
77
|
+
const bucketParameters = (q.columns ?? [])
|
|
78
78
|
.map((column) => tools.getOutputName(column))
|
|
79
79
|
.filter((c) => !tools.isBucketPriorityParameter(c));
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
rows.filter = filter;
|
|
84
|
-
rows.descriptor_name = descriptor_name;
|
|
85
|
-
rows.bucket_parameters = bucket_parameters;
|
|
86
|
-
rows.input_parameters = filter.inputParameters;
|
|
87
|
-
rows.priority = options.priority;
|
|
88
|
-
const expandedParams = rows.input_parameters.filter((param) => param.expands);
|
|
89
|
-
if (expandedParams.length > 1) {
|
|
90
|
-
rows.errors.push(new SqlRuleError('Cannot have multiple array input parameters', sql));
|
|
91
|
-
}
|
|
92
|
-
rows.expanded_input_parameter = expandedParams[0];
|
|
93
|
-
rows.columns = q.columns ?? [];
|
|
94
|
-
rows.static_columns = [];
|
|
95
|
-
rows.lookup_columns = [];
|
|
80
|
+
let priority = options.priority;
|
|
81
|
+
let lookupExtractors = {};
|
|
82
|
+
let parameterExtractors = {};
|
|
96
83
|
for (let column of q.columns ?? []) {
|
|
97
84
|
const name = tools.getSpecificOutputName(column);
|
|
98
85
|
if (column.alias != null) {
|
|
99
86
|
tools.checkSpecificNameCase(column.alias);
|
|
100
87
|
}
|
|
101
88
|
if (tools.isBucketPriorityParameter(name)) {
|
|
102
|
-
if (
|
|
103
|
-
|
|
89
|
+
if (priority !== undefined) {
|
|
90
|
+
errors.push(new SqlRuleError('Cannot set priority multiple times.', sql));
|
|
104
91
|
continue;
|
|
105
92
|
}
|
|
106
|
-
|
|
93
|
+
priority = tools.extractBucketPriority(column.expr);
|
|
107
94
|
}
|
|
108
95
|
else if (tools.isTableRef(column.expr)) {
|
|
109
|
-
rows.lookup_columns.push(column);
|
|
110
96
|
const extractor = tools.compileRowValueExtractor(column.expr);
|
|
111
97
|
if (isClauseError(extractor)) {
|
|
112
98
|
// Error logged already
|
|
113
99
|
continue;
|
|
114
100
|
}
|
|
115
|
-
|
|
101
|
+
lookupExtractors[name] = extractor;
|
|
116
102
|
}
|
|
117
103
|
else {
|
|
118
|
-
rows.static_columns.push(column);
|
|
119
104
|
const extractor = tools.compileParameterValueExtractor(column.expr);
|
|
120
105
|
if (isClauseError(extractor)) {
|
|
121
106
|
// Error logged already
|
|
122
107
|
continue;
|
|
123
108
|
}
|
|
124
|
-
|
|
109
|
+
parameterExtractors[name] = extractor;
|
|
125
110
|
}
|
|
126
111
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (
|
|
112
|
+
errors.push(...tools.errors);
|
|
113
|
+
const expandedParams = filter.inputParameters.filter((param) => param.expands);
|
|
114
|
+
if (expandedParams.length > 1) {
|
|
115
|
+
errors.push(new SqlRuleError('Cannot have multiple array input parameters', sql));
|
|
116
|
+
}
|
|
117
|
+
const parameterQuery = new SqlParameterQuery({
|
|
118
|
+
sourceTable,
|
|
119
|
+
table: alias,
|
|
120
|
+
sql,
|
|
121
|
+
lookupExtractors,
|
|
122
|
+
parameterExtractors,
|
|
123
|
+
priority: priority ?? DEFAULT_BUCKET_PRIORITY,
|
|
124
|
+
filter,
|
|
125
|
+
descriptorName,
|
|
126
|
+
inputParameters: filter.inputParameters,
|
|
127
|
+
expandedInputParameter: expandedParams[0],
|
|
128
|
+
bucketParameters,
|
|
129
|
+
queryId,
|
|
130
|
+
tools,
|
|
131
|
+
errors
|
|
132
|
+
});
|
|
133
|
+
if (parameterQuery.usesDangerousRequestParameters && !options.accept_potentially_dangerous_queries) {
|
|
130
134
|
let err = new SqlRuleError("Potentially dangerous query based on parameters set by the client. The client can send any value for these parameters so it's not a good place to do authorization.", sql);
|
|
131
135
|
err.type = 'warning';
|
|
132
|
-
|
|
136
|
+
parameterQuery.errors.push(err);
|
|
133
137
|
}
|
|
134
|
-
return
|
|
138
|
+
return parameterQuery;
|
|
135
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* The table the parameter query queries from.
|
|
142
|
+
*
|
|
143
|
+
* Currently, no wildcards are supported here.
|
|
144
|
+
*/
|
|
136
145
|
sourceTable;
|
|
146
|
+
/**
|
|
147
|
+
* The table name or alias, as referred to in the SQL query.
|
|
148
|
+
* Not used directly outside the query.
|
|
149
|
+
*
|
|
150
|
+
* Currently, this always matches sourceTable.name.
|
|
151
|
+
*/
|
|
137
152
|
table;
|
|
153
|
+
/**
|
|
154
|
+
* The source SQL query, for debugging purposes.
|
|
155
|
+
*/
|
|
138
156
|
sql;
|
|
139
|
-
columns;
|
|
140
|
-
lookup_columns;
|
|
141
|
-
static_columns;
|
|
142
157
|
/**
|
|
143
158
|
* Example: SELECT *user.id* FROM users WHERE ...
|
|
159
|
+
*
|
|
160
|
+
* These are applied onto the replicated parameter table rows, returning lookup values.
|
|
144
161
|
*/
|
|
145
|
-
|
|
162
|
+
lookupExtractors;
|
|
146
163
|
/**
|
|
147
|
-
* Example: SELECT *token_parameters.user_id
|
|
164
|
+
* Example: SELECT *token_parameters.user_id*.
|
|
165
|
+
*
|
|
166
|
+
* These are applied onto the request parameters.
|
|
148
167
|
*/
|
|
149
|
-
|
|
168
|
+
parameterExtractors;
|
|
150
169
|
priority;
|
|
170
|
+
/**
|
|
171
|
+
* This is the entire where clause.
|
|
172
|
+
*
|
|
173
|
+
* This can convert a parameter row into a set of parameter values, that would make the where clause match.
|
|
174
|
+
* Those are then persisted to lookup later.
|
|
175
|
+
*/
|
|
151
176
|
filter;
|
|
152
177
|
/**
|
|
153
178
|
* Bucket definition name.
|
|
154
179
|
*/
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
180
|
+
descriptorName;
|
|
181
|
+
/**
|
|
182
|
+
* _Input_ token / user parameters - the parameters passed into the parameter query.
|
|
183
|
+
*
|
|
184
|
+
* These "pre-process" the parameters.
|
|
185
|
+
*/
|
|
186
|
+
inputParameters;
|
|
187
|
+
/**
|
|
188
|
+
* If specified, an input parameter that expands to an array. Currently, only one parameter
|
|
189
|
+
* may is allowed to expand to an array
|
|
190
|
+
*/
|
|
191
|
+
expandedInputParameter;
|
|
160
192
|
/**
|
|
161
|
-
* _Output_ bucket parameters.
|
|
193
|
+
* _Output_ bucket parameters, excluding the `bucket.` prefix.
|
|
162
194
|
*
|
|
163
|
-
* Each one of these will be present in either
|
|
195
|
+
* Each one of these will be present in either lookupExtractors or parameterExtractors.
|
|
164
196
|
*/
|
|
165
|
-
|
|
166
|
-
|
|
197
|
+
bucketParameters;
|
|
198
|
+
/**
|
|
199
|
+
* Unique identifier for this query within a bucket definition.
|
|
200
|
+
*
|
|
201
|
+
* Typically auto-generated based on query order.
|
|
202
|
+
*
|
|
203
|
+
* This is used when persisting lookup values.
|
|
204
|
+
*/
|
|
205
|
+
queryId;
|
|
167
206
|
tools;
|
|
168
|
-
errors
|
|
169
|
-
constructor() {
|
|
207
|
+
errors;
|
|
208
|
+
constructor(options) {
|
|
209
|
+
this.sourceTable = options.sourceTable;
|
|
210
|
+
this.table = options.table;
|
|
211
|
+
this.sql = options.sql;
|
|
212
|
+
this.lookupExtractors = options.lookupExtractors;
|
|
213
|
+
this.parameterExtractors = options.parameterExtractors;
|
|
214
|
+
this.priority = options.priority;
|
|
215
|
+
this.filter = options.filter;
|
|
216
|
+
this.descriptorName = options.descriptorName;
|
|
217
|
+
this.inputParameters = options.inputParameters;
|
|
218
|
+
this.expandedInputParameter = options.expandedInputParameter;
|
|
219
|
+
this.bucketParameters = options.bucketParameters;
|
|
220
|
+
this.queryId = options.queryId;
|
|
221
|
+
this.tools = options.tools;
|
|
222
|
+
this.errors = options.errors ?? [];
|
|
223
|
+
}
|
|
170
224
|
applies(table) {
|
|
171
225
|
return this.sourceTable.matches(table);
|
|
172
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Given a replicated row, results an array of bucket parameter rows to persist.
|
|
229
|
+
*/
|
|
173
230
|
evaluateParameterRow(row) {
|
|
174
231
|
const tables = {
|
|
175
232
|
[this.table]: row
|
|
@@ -178,13 +235,13 @@ export class SqlParameterQuery {
|
|
|
178
235
|
const filterParameters = this.filter.filterRow(tables);
|
|
179
236
|
let result = [];
|
|
180
237
|
for (let filterParamSet of filterParameters) {
|
|
181
|
-
let lookup = [this.
|
|
182
|
-
lookup.push(...this.
|
|
238
|
+
let lookup = [this.descriptorName, this.queryId];
|
|
239
|
+
lookup.push(...this.inputParameters.map((param) => {
|
|
183
240
|
return normalizeParameterValue(param.filteredRowToLookupValue(filterParamSet));
|
|
184
241
|
}));
|
|
185
242
|
const data = this.transformRows(row);
|
|
186
243
|
const role = {
|
|
187
|
-
|
|
244
|
+
bucketParameters: data.map((row) => filterJsonRow(row)),
|
|
188
245
|
lookup: new ParameterLookup(lookup)
|
|
189
246
|
};
|
|
190
247
|
result.push(role);
|
|
@@ -198,14 +255,16 @@ export class SqlParameterQuery {
|
|
|
198
255
|
transformRows(row) {
|
|
199
256
|
const tables = { [this.table]: row };
|
|
200
257
|
let result = {};
|
|
201
|
-
for (let key in this.
|
|
202
|
-
const extractor = this.
|
|
258
|
+
for (let key in this.lookupExtractors) {
|
|
259
|
+
const extractor = this.lookupExtractors[key];
|
|
203
260
|
result[key] = extractor.evaluate(tables);
|
|
204
261
|
}
|
|
205
262
|
return [result];
|
|
206
263
|
}
|
|
207
264
|
/**
|
|
208
265
|
* Given partial parameter rows, turn into bucket ids.
|
|
266
|
+
*
|
|
267
|
+
* Internal function, but exposed for tests.
|
|
209
268
|
*/
|
|
210
269
|
resolveBucketDescriptions(bucketParameters, parameters) {
|
|
211
270
|
// Filters have already been applied and gotten us the set of bucketParameters - don't attempt to filter again.
|
|
@@ -214,12 +273,12 @@ export class SqlParameterQuery {
|
|
|
214
273
|
return bucketParameters
|
|
215
274
|
.map((lookup) => {
|
|
216
275
|
let result = {};
|
|
217
|
-
for (let name of this.
|
|
218
|
-
if (name in this.
|
|
276
|
+
for (let name of this.bucketParameters) {
|
|
277
|
+
if (name in this.lookupExtractors) {
|
|
219
278
|
result[`bucket.${name}`] = lookup[name];
|
|
220
279
|
}
|
|
221
280
|
else {
|
|
222
|
-
const value = this.
|
|
281
|
+
const value = this.parameterExtractors[name].lookupParameterValue(parameters);
|
|
223
282
|
if (!isJsonValue(value)) {
|
|
224
283
|
// Not valid - exclude.
|
|
225
284
|
// Should we error instead?
|
|
@@ -231,8 +290,8 @@ export class SqlParameterQuery {
|
|
|
231
290
|
}
|
|
232
291
|
}
|
|
233
292
|
return {
|
|
234
|
-
bucket: getBucketId(this.
|
|
235
|
-
priority: this.priority
|
|
293
|
+
bucket: getBucketId(this.descriptorName, this.bucketParameters, result),
|
|
294
|
+
priority: this.priority
|
|
236
295
|
};
|
|
237
296
|
})
|
|
238
297
|
.filter((lookup) => lookup != null);
|
|
@@ -243,10 +302,10 @@ export class SqlParameterQuery {
|
|
|
243
302
|
* Each lookup is [bucket definition name, parameter query index, ...lookup values]
|
|
244
303
|
*/
|
|
245
304
|
getLookups(parameters) {
|
|
246
|
-
if (!this.
|
|
247
|
-
let lookup = [this.
|
|
305
|
+
if (!this.expandedInputParameter) {
|
|
306
|
+
let lookup = [this.descriptorName, this.queryId];
|
|
248
307
|
let valid = true;
|
|
249
|
-
lookup.push(...this.
|
|
308
|
+
lookup.push(...this.inputParameters.map((param) => {
|
|
250
309
|
// Scalar value
|
|
251
310
|
const value = param.parametersToLookupValue(parameters);
|
|
252
311
|
if (isJsonValue(value)) {
|
|
@@ -263,7 +322,7 @@ export class SqlParameterQuery {
|
|
|
263
322
|
return [new ParameterLookup(lookup)];
|
|
264
323
|
}
|
|
265
324
|
else {
|
|
266
|
-
const arrayString = this.
|
|
325
|
+
const arrayString = this.expandedInputParameter.parametersToLookupValue(parameters);
|
|
267
326
|
if (arrayString == null || typeof arrayString != 'string') {
|
|
268
327
|
return [];
|
|
269
328
|
}
|
|
@@ -279,11 +338,11 @@ export class SqlParameterQuery {
|
|
|
279
338
|
}
|
|
280
339
|
return values
|
|
281
340
|
.map((expandedValue) => {
|
|
282
|
-
let lookup = [this.
|
|
341
|
+
let lookup = [this.descriptorName, this.queryId];
|
|
283
342
|
let valid = true;
|
|
284
343
|
const normalizedExpandedValue = normalizeParameterValue(expandedValue);
|
|
285
|
-
lookup.push(...this.
|
|
286
|
-
if (param == this.
|
|
344
|
+
lookup.push(...this.inputParameters.map((param) => {
|
|
345
|
+
if (param == this.expandedInputParameter) {
|
|
287
346
|
// Expand array value
|
|
288
347
|
return normalizedExpandedValue;
|
|
289
348
|
}
|
|
@@ -331,12 +390,11 @@ export class SqlParameterQuery {
|
|
|
331
390
|
}
|
|
332
391
|
get hasAuthenticatedBucketParameters() {
|
|
333
392
|
// select request.user_id() as user_id where ...
|
|
334
|
-
const authenticatedExtractor = Object.values(this.
|
|
393
|
+
const authenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesAuthenticatedRequestParameters) != null;
|
|
335
394
|
return authenticatedExtractor;
|
|
336
395
|
}
|
|
337
396
|
get hasAuthenticatedMatchClause() {
|
|
338
397
|
// select ... where user_id = request.user_id()
|
|
339
|
-
this.filter?.inputParameters.find;
|
|
340
398
|
const authenticatedInputParameter = this.filter.usesAuthenticatedRequestParameters;
|
|
341
399
|
return authenticatedInputParameter;
|
|
342
400
|
}
|
|
@@ -344,7 +402,7 @@ export class SqlParameterQuery {
|
|
|
344
402
|
// select ... where request.parameters() ->> 'include_comments'
|
|
345
403
|
const unauthenticatedInputParameter = this.filter.usesUnauthenticatedRequestParameters;
|
|
346
404
|
// select request.parameters() ->> 'project_id'
|
|
347
|
-
const unauthenticatedExtractor = Object.values(this.
|
|
405
|
+
const unauthenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesUnauthenticatedRequestParameters) != null;
|
|
348
406
|
return unauthenticatedInputParameter || unauthenticatedExtractor;
|
|
349
407
|
}
|
|
350
408
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlParameterQuery.js","sourceRoot":"","sources":["../src/SqlParameterQuery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlParameterQuery.js","sourceRoot":"","sources":["../src/SqlParameterQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAqC,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAA0B,eAAe,EAAyB,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AAejG,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAmBjH;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CACZ,cAAsB,EACtB,GAAW,EACX,OAA0B,EAC1B,OAAe;QAEf,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE/B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,YAAY,CAAC,6CAA6C,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACnB,kFAAkF;YAClF,OAAO,uBAAuB,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,MAAM,GAAmB,EAAE,CAAC;QAEhC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,YAAY,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,oCAAoC,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtG,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,YAAY,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChC,IAAI,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,YAAY,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;QAC9D,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,kDAAkD,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9F,IAAI,WAAW,GAA4B,SAAS,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,IAAI,YAAY,CACxB,SAAS,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,YAAY,YAAY,EACnE,GAAG,EACH,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CACvB,CAAC;gBACF,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;gBAEnB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;YACzB,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;YACxD,GAAG;YACH,2BAA2B,EAAE,IAAI;YACjC,4BAA4B,EAAE,IAAI;YAClC,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QACH,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;aACvC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,QAAQ,GAA+B,OAAO,CAAC,QAAQ,CAAC;QAC5D,IAAI,gBAAgB,GAAmC,EAAE,CAAC;QAC1D,IAAI,mBAAmB,GAAyC,EAAE,CAAC;QAEnE,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1E,SAAS;gBACX,CAAC;gBAED,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,uBAAuB;oBACvB,SAAS;gBACX,CAAC;gBACD,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpE,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,uBAAuB;oBACvB,SAAS;gBACX,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACxC,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC;YAC3C,WAAW;YACX,KAAK,EAAE,KAAK;YACZ,GAAG;YACH,gBAAgB;YAChB,mBAAmB;YACnB,QAAQ,EAAE,QAAQ,IAAI,uBAAuB;YAC7C,MAAM;YACN,cAAc;YACd,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,sBAAsB,EAAE,cAAc,CAAC,CAAC,CAAC;YACzC,gBAAgB;YAChB,OAAO;YACP,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,8BAA8B,IAAI,CAAC,OAAO,CAAC,oCAAoC,EAAE,CAAC;YACnG,IAAI,GAAG,GAAG,IAAI,YAAY,CACxB,qKAAqK,EACrK,GAAG,CACJ,CAAC;YACF,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;YACrB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACM,WAAW,CAAe;IAEnC;;;;;OAKG;IACM,KAAK,CAAS;IAEvB;;OAEG;IACM,GAAG,CAAS;IAErB;;;;OAIG;IACM,gBAAgB,CAAiC;IAE1D;;;;OAIG;IACM,mBAAmB,CAAuC;IAE1D,QAAQ,CAAiB;IAElC;;;;;OAKG;IACM,MAAM,CAAuB;IAEtC;;OAEG;IACM,cAAc,CAAS;IAEhC;;;;OAIG;IACM,eAAe,CAAmB;IAE3C;;;OAGG;IACM,sBAAsB,CAA6B;IAE5D;;;;OAIG;IACM,gBAAgB,CAAW;IAEpC;;;;;;OAMG;IACM,OAAO,CAAS;IAChB,KAAK,CAAW;IAEhB,MAAM,CAAiB;IAEhC,YAAY,OAAiC;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,KAA2B;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,GAAc;QACjC,MAAM,MAAM,GAAG;YACb,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG;SAClB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,MAAM,GAAgC,EAAE,CAAC;YAC7C,KAAK,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;gBAC5C,IAAI,MAAM,GAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpE,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpC,OAAO,uBAAuB,CAAC,KAAK,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjF,CAAC,CAAC,CACH,CAAC;gBAEF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAErC,MAAM,IAAI,GAAwB;oBAChC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC;iBACpC,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,mCAAmC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,GAAc;QAClC,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,yBAAyB,CAAC,gBAAiC,EAAE,UAA6B;QACxF,+GAA+G;QAC/G,yGAAyG;QACzG,oCAAoC;QAEpC,OAAO,gBAAgB;aACpB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,IAAI,MAAM,GAAoC,EAAE,CAAC;YACjD,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvC,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAClC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;oBAC9E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxB,uBAAuB;wBACvB,2BAA2B;wBAC3B,OAAO,IAAI,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,UAA6B;QACtC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,MAAM,GAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpE,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAmB,EAAE;gBACrD,eAAe;gBACf,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;gBAExD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,KAAK,CAAC;oBACd,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAEpF,IAAI,WAAW,IAAI,IAAI,IAAI,OAAO,WAAW,IAAI,QAAQ,EAAE,CAAC;gBAC1D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,MAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,MAAM;iBACV,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;gBACrB,IAAI,MAAM,GAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpE,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;gBACvE,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAmB,EAAE;oBACrD,IAAI,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBACzC,qBAAqB;wBACrB,OAAO,uBAAuB,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,eAAe;wBACf,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;wBAExD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;4BACvB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,KAAK,GAAG,KAAK,CAAC;4BACd,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAsB,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,yBAAyB,CAAC,iBAAoC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,6EAA6E;YAC7E,gEAAgE;YAChE,OAAO;gBACL,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,KAAK;gBACxB,qBAAqB,EAAE,EAAE;gBACzB,8BAA8B,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aAC/C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,iBAAiB,EAAE,IAAI;YACvB,qBAAqB,EAAE,OAAO;YAC9B,8BAA8B,EAAE,KAAK,EAAE,MAA6B,EAAE,EAAE;gBACtE,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YAC7E,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,gCAAgC;QAClC,gDAAgD;QAChD,MAAM,sBAAsB,GAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,kCAAkC,CACxF,IAAI,IAAI,CAAC;QACZ,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,IAAI,2BAA2B;QAC7B,+CAA+C;QAC/C,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC;QACnF,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,IAAI,oCAAoC;QACtC,+DAA+D;QAC/D,MAAM,6BAA6B,GAAG,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAAC;QAEvF,+CAA+C;QAC/C,MAAM,wBAAwB,GAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,oCAAoC,CAC1F,IAAI,IAAI,CAAC;QAEZ,OAAO,6BAA6B,IAAI,wBAAwB,CAAC;IACnE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,8BAA8B;QAChC,OAAO,CACL,IAAI,CAAC,oCAAoC;YACzC,CAAC,IAAI,CAAC,gCAAgC;YACtC,CAAC,IAAI,CAAC,2BAA2B,CAClC,CAAC;IACJ,CAAC;CACF"}
|
package/dist/SqlSyncRules.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Scalar } from 'yaml';
|
|
2
|
+
import { BucketParameterQuerier } from './BucketParameterQuerier.js';
|
|
2
3
|
import { YamlError } from './errors.js';
|
|
3
4
|
import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
|
|
4
|
-
import { IdSequence } from './IdSequence.js';
|
|
5
5
|
import { SourceTableInterface } from './SourceTableInterface.js';
|
|
6
6
|
import { QueryParseResult, SqlBucketDescriptor } from './SqlBucketDescriptor.js';
|
|
7
7
|
import { TablePattern } from './TablePattern.js';
|
|
8
8
|
import { EvaluatedParameters, EvaluatedRow, EvaluateRowOptions, EvaluationError, RequestParameters, SourceSchema, SqliteRow, SyncRules } from './types.js';
|
|
9
|
-
import { BucketParameterQuerier } from './BucketParameterQuerier.js';
|
|
10
9
|
export interface SyncRulesOptions {
|
|
11
10
|
schema?: SourceSchema;
|
|
12
11
|
/**
|
|
@@ -18,9 +17,8 @@ export interface SyncRulesOptions {
|
|
|
18
17
|
throwOnError?: boolean;
|
|
19
18
|
}
|
|
20
19
|
export declare class SqlSyncRules implements SyncRules {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
idSequence: IdSequence;
|
|
20
|
+
bucketDescriptors: SqlBucketDescriptor[];
|
|
21
|
+
eventDescriptors: SqlEventDescriptor[];
|
|
24
22
|
content: string;
|
|
25
23
|
errors: YamlError[];
|
|
26
24
|
static validate(yaml: string, options: SyncRulesOptions): YamlError[];
|