@powersync/service-sync-rules 0.28.0 → 0.29.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/LICENSE +3 -3
- package/dist/BaseSqlDataQuery.d.ts +9 -1
- package/dist/BaseSqlDataQuery.js +42 -0
- package/dist/BaseSqlDataQuery.js.map +1 -1
- package/dist/BucketDescription.d.ts +16 -0
- package/dist/BucketParameterQuerier.d.ts +19 -3
- package/dist/BucketParameterQuerier.js.map +1 -1
- package/dist/BucketSource.d.ts +72 -0
- package/dist/BucketSource.js +6 -0
- package/dist/BucketSource.js.map +1 -0
- package/dist/ExpressionType.d.ts +2 -1
- package/dist/ExpressionType.js +1 -1
- package/dist/ExpressionType.js.map +1 -1
- package/dist/SqlBucketDescriptor.d.ts +40 -8
- package/dist/SqlBucketDescriptor.js +78 -10
- package/dist/SqlBucketDescriptor.js.map +1 -1
- package/dist/SqlDataQuery.d.ts +4 -3
- package/dist/SqlDataQuery.js +10 -30
- package/dist/SqlDataQuery.js.map +1 -1
- package/dist/SqlParameterQuery.d.ts +4 -4
- package/dist/SqlParameterQuery.js +9 -4
- package/dist/SqlParameterQuery.js.map +1 -1
- package/dist/SqlSyncRules.d.ts +55 -7
- package/dist/SqlSyncRules.js +126 -47
- package/dist/SqlSyncRules.js.map +1 -1
- package/dist/StaticSqlParameterQuery.d.ts +2 -2
- package/dist/StaticSqlParameterQuery.js +3 -2
- package/dist/StaticSqlParameterQuery.js.map +1 -1
- package/dist/TableValuedFunctionSqlParameterQuery.d.ts +2 -2
- package/dist/TableValuedFunctionSqlParameterQuery.js +11 -10
- package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
- package/dist/TableValuedFunctions.d.ts +2 -2
- package/dist/TableValuedFunctions.js +38 -35
- package/dist/TableValuedFunctions.js.map +1 -1
- package/dist/compatibility.d.ts +40 -0
- package/dist/compatibility.js +56 -0
- package/dist/compatibility.js.map +1 -0
- package/dist/events/SqlEventDescriptor.d.ts +3 -1
- package/dist/events/SqlEventDescriptor.js +4 -2
- package/dist/events/SqlEventDescriptor.js.map +1 -1
- package/dist/events/SqlEventSourceQuery.d.ts +2 -1
- package/dist/events/SqlEventSourceQuery.js +3 -2
- package/dist/events/SqlEventSourceQuery.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/json_schema.js +54 -1
- package/dist/json_schema.js.map +1 -1
- package/dist/request_functions.d.ts +24 -4
- package/dist/request_functions.js +68 -17
- package/dist/request_functions.js.map +1 -1
- package/dist/schema-generators/SchemaGenerator.js +2 -12
- package/dist/schema-generators/SchemaGenerator.js.map +1 -1
- package/dist/sql_filters.d.ts +25 -2
- package/dist/sql_filters.js +223 -119
- package/dist/sql_filters.js.map +1 -1
- package/dist/sql_functions.d.ts +13 -31
- package/dist/sql_functions.js +191 -114
- package/dist/sql_functions.js.map +1 -1
- package/dist/sql_support.d.ts +20 -0
- package/dist/sql_support.js +67 -14
- package/dist/sql_support.js.map +1 -1
- package/dist/streams/filter.d.ts +148 -0
- package/dist/streams/filter.js +426 -0
- package/dist/streams/filter.js.map +1 -0
- package/dist/streams/from_sql.d.ts +4 -0
- package/dist/streams/from_sql.js +375 -0
- package/dist/streams/from_sql.js.map +1 -0
- package/dist/streams/functions.d.ts +2 -0
- package/dist/streams/functions.js +38 -0
- package/dist/streams/functions.js.map +1 -0
- package/dist/streams/parameter.d.ts +67 -0
- package/dist/streams/parameter.js +2 -0
- package/dist/streams/parameter.js.map +1 -0
- package/dist/streams/stream.d.ts +40 -0
- package/dist/streams/stream.js +139 -0
- package/dist/streams/stream.js.map +1 -0
- package/dist/streams/utils.d.ts +1 -0
- package/dist/streams/utils.js +13 -0
- package/dist/streams/utils.js.map +1 -0
- package/dist/streams/variant.d.ts +122 -0
- package/dist/streams/variant.js +266 -0
- package/dist/streams/variant.js.map +1 -0
- package/dist/types/custom_sqlite_value.d.ts +38 -0
- package/dist/types/custom_sqlite_value.js +50 -0
- package/dist/types/custom_sqlite_value.js.map +1 -0
- package/dist/types/time.d.ts +33 -0
- package/dist/types/time.js +67 -0
- package/dist/types/time.js.map +1 -0
- package/dist/types.d.ts +52 -9
- package/dist/types.js +28 -2
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +9 -6
- package/dist/utils.js +42 -17
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/schema/sync_rules.json +84 -2
package/dist/SqlDataQuery.js
CHANGED
|
@@ -4,13 +4,12 @@ import { BaseSqlDataQuery } from './BaseSqlDataQuery.js';
|
|
|
4
4
|
import { SqlRuleError } from './errors.js';
|
|
5
5
|
import { ExpressionType } from './ExpressionType.js';
|
|
6
6
|
import { SqlTools } from './sql_filters.js';
|
|
7
|
-
import { castAsText } from './sql_functions.js';
|
|
8
7
|
import { checkUnsupportedFeatures, isClauseError } from './sql_support.js';
|
|
9
8
|
import { TablePattern } from './TablePattern.js';
|
|
10
9
|
import { TableQuerySchema } from './TableQuerySchema.js';
|
|
11
10
|
import { getBucketId, isSelectStatement } from './utils.js';
|
|
12
11
|
export class SqlDataQuery extends BaseSqlDataQuery {
|
|
13
|
-
static fromSql(descriptorName, bucketParameters, sql, options) {
|
|
12
|
+
static fromSql(descriptorName, bucketParameters, sql, options, compatibility) {
|
|
14
13
|
const parsed = parse(sql, { locationTracking: true });
|
|
15
14
|
const schema = options.schema;
|
|
16
15
|
let errors = [];
|
|
@@ -48,6 +47,7 @@ export class SqlDataQuery extends BaseSqlDataQuery {
|
|
|
48
47
|
table: alias,
|
|
49
48
|
parameterTables: ['bucket'],
|
|
50
49
|
valueTables: [alias],
|
|
50
|
+
compatibilityContext: compatibility,
|
|
51
51
|
sql,
|
|
52
52
|
schema: querySchema
|
|
53
53
|
});
|
|
@@ -150,35 +150,15 @@ export class SqlDataQuery extends BaseSqlDataQuery {
|
|
|
150
150
|
super(options);
|
|
151
151
|
this.filter = options.filter;
|
|
152
152
|
}
|
|
153
|
-
evaluateRow(table, row) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
if (typeof id != 'string') {
|
|
161
|
-
// While an explicit cast would be better, this covers against very common
|
|
162
|
-
// issues when initially testing out sync, for example when the id column is an
|
|
163
|
-
// auto-incrementing integer.
|
|
164
|
-
// If there is no id column, we use a blank id. This will result in the user syncing
|
|
165
|
-
// a single arbitrary row for this table - better than just not being able to sync
|
|
166
|
-
// anything.
|
|
167
|
-
id = castAsText(id) ?? '';
|
|
153
|
+
evaluateRow(table, row, bucketIdTransformer) {
|
|
154
|
+
return this.evaluateRowWithOptions({
|
|
155
|
+
table,
|
|
156
|
+
row,
|
|
157
|
+
bucketIds: (tables) => {
|
|
158
|
+
const bucketParameters = this.filter.filterRow(tables);
|
|
159
|
+
return bucketParameters.map((params) => getBucketId(this.descriptorName, this.bucketParameters, params, bucketIdTransformer));
|
|
168
160
|
}
|
|
169
|
-
|
|
170
|
-
return bucketIds.map((bucketId) => {
|
|
171
|
-
return {
|
|
172
|
-
bucket: bucketId,
|
|
173
|
-
table: outputTable,
|
|
174
|
-
id: id,
|
|
175
|
-
data
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
catch (e) {
|
|
180
|
-
return [{ error: e.message ?? `Evaluating data query failed` }];
|
|
181
|
-
}
|
|
161
|
+
});
|
|
182
162
|
}
|
|
183
163
|
}
|
|
184
164
|
//# sourceMappingURL=SqlDataQuery.js.map
|
package/dist/SqlDataQuery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlDataQuery.js","sourceRoot":"","sources":["../src/SqlDataQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAA8C,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SqlDataQuery.js","sourceRoot":"","sources":["../src/SqlDataQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
1
|
+
import { BucketDescription, BucketInclusionReason, BucketPriority } from './BucketDescription.js';
|
|
2
2
|
import { BucketParameterQuerier, ParameterLookup } from './BucketParameterQuerier.js';
|
|
3
3
|
import { SqlRuleError } from './errors.js';
|
|
4
4
|
import { SourceTableInterface } from './SourceTableInterface.js';
|
|
@@ -6,7 +6,7 @@ import { SqlTools } from './sql_filters.js';
|
|
|
6
6
|
import { StaticSqlParameterQuery } from './StaticSqlParameterQuery.js';
|
|
7
7
|
import { TablePattern } from './TablePattern.js';
|
|
8
8
|
import { TableValuedFunctionSqlParameterQuery } from './TableValuedFunctionSqlParameterQuery.js';
|
|
9
|
-
import { EvaluatedParametersResult, InputParameter, ParameterMatchClause, ParameterValueClause, QueryParseOptions, RequestParameters, RowValueClause, SqliteJsonRow, SqliteRow } from './types.js';
|
|
9
|
+
import { BucketIdTransformer, EvaluatedParametersResult, InputParameter, ParameterMatchClause, ParameterValueClause, QueryParseOptions, RequestParameters, RowValueClause, SqliteJsonRow, SqliteRow } from './types.js';
|
|
10
10
|
export interface SqlParameterQueryOptions {
|
|
11
11
|
sourceTable: TablePattern;
|
|
12
12
|
table: string;
|
|
@@ -111,14 +111,14 @@ export declare class SqlParameterQuery {
|
|
|
111
111
|
*
|
|
112
112
|
* Internal function, but exposed for tests.
|
|
113
113
|
*/
|
|
114
|
-
resolveBucketDescriptions(bucketParameters: SqliteJsonRow[], parameters: RequestParameters): BucketDescription[];
|
|
114
|
+
resolveBucketDescriptions(bucketParameters: SqliteJsonRow[], parameters: RequestParameters, transformer: BucketIdTransformer): BucketDescription[];
|
|
115
115
|
/**
|
|
116
116
|
* Given sync parameters, get lookups we need to perform on the database.
|
|
117
117
|
*
|
|
118
118
|
* Each lookup is [bucket definition name, parameter query index, ...lookup values]
|
|
119
119
|
*/
|
|
120
120
|
getLookups(parameters: RequestParameters): ParameterLookup[];
|
|
121
|
-
getBucketParameterQuerier(requestParameters: RequestParameters): BucketParameterQuerier;
|
|
121
|
+
getBucketParameterQuerier(requestParameters: RequestParameters, reasons: BucketInclusionReason[], transformer: BucketIdTransformer): BucketParameterQuerier;
|
|
122
122
|
get hasAuthenticatedBucketParameters(): boolean;
|
|
123
123
|
get hasAuthenticatedMatchClause(): boolean;
|
|
124
124
|
get usesUnauthenticatedRequestParameters(): boolean;
|
|
@@ -69,6 +69,7 @@ export class SqlParameterQuery {
|
|
|
69
69
|
sql,
|
|
70
70
|
supportsExpandingParameters: true,
|
|
71
71
|
supportsParameterExpressions: true,
|
|
72
|
+
compatibilityContext: options.compatibility,
|
|
72
73
|
schema: querySchema
|
|
73
74
|
});
|
|
74
75
|
tools.checkSpecificNameCase(tableRef);
|
|
@@ -266,7 +267,7 @@ export class SqlParameterQuery {
|
|
|
266
267
|
*
|
|
267
268
|
* Internal function, but exposed for tests.
|
|
268
269
|
*/
|
|
269
|
-
resolveBucketDescriptions(bucketParameters, parameters) {
|
|
270
|
+
resolveBucketDescriptions(bucketParameters, parameters, transformer) {
|
|
270
271
|
// Filters have already been applied and gotten us the set of bucketParameters - don't attempt to filter again.
|
|
271
272
|
// We _do_ need to evaluate the output columns here, using a combination of precomputed bucketParameters,
|
|
272
273
|
// and values from token parameters.
|
|
@@ -290,7 +291,7 @@ export class SqlParameterQuery {
|
|
|
290
291
|
}
|
|
291
292
|
}
|
|
292
293
|
return {
|
|
293
|
-
bucket: getBucketId(this.descriptorName, this.bucketParameters, result),
|
|
294
|
+
bucket: getBucketId(this.descriptorName, this.bucketParameters, result, transformer),
|
|
294
295
|
priority: this.priority
|
|
295
296
|
};
|
|
296
297
|
})
|
|
@@ -366,7 +367,7 @@ export class SqlParameterQuery {
|
|
|
366
367
|
.filter((lookup) => lookup != null);
|
|
367
368
|
}
|
|
368
369
|
}
|
|
369
|
-
getBucketParameterQuerier(requestParameters) {
|
|
370
|
+
getBucketParameterQuerier(requestParameters, reasons, transformer) {
|
|
370
371
|
const lookups = this.getLookups(requestParameters);
|
|
371
372
|
if (lookups.length == 0) {
|
|
372
373
|
// This typically happens when the query is pre-filtered using a where clause
|
|
@@ -384,7 +385,11 @@ export class SqlParameterQuery {
|
|
|
384
385
|
parameterQueryLookups: lookups,
|
|
385
386
|
queryDynamicBucketDescriptions: async (source) => {
|
|
386
387
|
const bucketParameters = await source.getParameterSets(lookups);
|
|
387
|
-
return this.resolveBucketDescriptions(bucketParameters, requestParameters)
|
|
388
|
+
return this.resolveBucketDescriptions(bucketParameters, requestParameters, transformer).map((bucket) => ({
|
|
389
|
+
...bucket,
|
|
390
|
+
definition: this.descriptorName,
|
|
391
|
+
inclusion_reasons: reasons
|
|
392
|
+
}));
|
|
388
393
|
}
|
|
389
394
|
};
|
|
390
395
|
}
|
|
@@ -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,EAIL,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,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;AAgBjG,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,oBAAoB,EAAE,OAAO,CAAC,aAAa;YAC3C,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,CACvB,gBAAiC,EACjC,UAA6B,EAC7B,WAAgC;QAEhC,+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,EAAE,WAAW,CAAC;gBACpF,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,CACvB,iBAAoC,EACpC,OAAgC,EAChC,WAAgC;QAEhC,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,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACvG,GAAG,MAAM;oBACT,UAAU,EAAE,IAAI,CAAC,cAAc;oBAC/B,iBAAiB,EAAE,OAAO;iBAC3B,CAAC,CAAC,CAAC;YACN,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,11 +1,13 @@
|
|
|
1
1
|
import { Scalar } from 'yaml';
|
|
2
|
-
import { BucketParameterQuerier } from './BucketParameterQuerier.js';
|
|
2
|
+
import { BucketParameterQuerier, QuerierError } from './BucketParameterQuerier.js';
|
|
3
3
|
import { YamlError } from './errors.js';
|
|
4
4
|
import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
|
|
5
5
|
import { SourceTableInterface } from './SourceTableInterface.js';
|
|
6
|
-
import { QueryParseResult
|
|
6
|
+
import { QueryParseResult } from './SqlBucketDescriptor.js';
|
|
7
7
|
import { TablePattern } from './TablePattern.js';
|
|
8
|
-
import { EvaluatedParameters, EvaluatedRow, EvaluateRowOptions, EvaluationError, RequestParameters, SourceSchema, SqliteRow, SyncRules } from './types.js';
|
|
8
|
+
import { BucketIdTransformer, EvaluatedParameters, EvaluatedRow, EvaluateRowOptions, EvaluationError, RequestParameters, SourceSchema, SqliteInputRow, SqliteInputValue, SqliteJsonRow, SqliteRow, SqliteValue, SyncRules } from './types.js';
|
|
9
|
+
import { BucketSource } from './BucketSource.js';
|
|
10
|
+
import { CompatibilityContext } from './compatibility.js';
|
|
9
11
|
export interface SyncRulesOptions {
|
|
10
12
|
schema?: SourceSchema;
|
|
11
13
|
/**
|
|
@@ -16,9 +18,52 @@ export interface SyncRulesOptions {
|
|
|
16
18
|
defaultSchema: string;
|
|
17
19
|
throwOnError?: boolean;
|
|
18
20
|
}
|
|
21
|
+
export interface RequestedStream {
|
|
22
|
+
/**
|
|
23
|
+
* The parameters for the explicit stream subscription.
|
|
24
|
+
*
|
|
25
|
+
* Unlike {@link GetQuerierOptions.globalParameters}, these parameters are only applied to the particular stream.
|
|
26
|
+
*/
|
|
27
|
+
parameters: SqliteJsonRow | null;
|
|
28
|
+
/**
|
|
29
|
+
* An opaque id of the stream subscription, used to associate buckets with the stream subscriptions that have caused
|
|
30
|
+
* them to be included.
|
|
31
|
+
*/
|
|
32
|
+
opaque_id: number;
|
|
33
|
+
}
|
|
34
|
+
export interface GetQuerierOptions {
|
|
35
|
+
/**
|
|
36
|
+
* A bucket id transformer, compatible to the one used when evaluating rows.
|
|
37
|
+
*
|
|
38
|
+
* Typically, this transformer only depends on the sync rule id (which is known to both the bucket storage
|
|
39
|
+
* implementation responsible for evaluating rows and the sync endpoint).
|
|
40
|
+
*/
|
|
41
|
+
bucketIdTransformer: BucketIdTransformer;
|
|
42
|
+
globalParameters: RequestParameters;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the client is subscribing to default query streams.
|
|
45
|
+
*
|
|
46
|
+
* Client do this by default, but can disable the behavior if needed.
|
|
47
|
+
*/
|
|
48
|
+
hasDefaultStreams: boolean;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* For streams, this is invoked to check whether the client has opened the relevant stream.
|
|
52
|
+
*
|
|
53
|
+
* @param name The name of the stream as it appears in the sync rule definitions.
|
|
54
|
+
* @returns If the strema has been opened by the client, the stream parameters for that particular stream. Otherwise
|
|
55
|
+
* null.
|
|
56
|
+
*/
|
|
57
|
+
streams: Record<string, RequestedStream[]>;
|
|
58
|
+
}
|
|
59
|
+
export interface GetBucketParameterQuerierResult {
|
|
60
|
+
querier: BucketParameterQuerier;
|
|
61
|
+
errors: QuerierError[];
|
|
62
|
+
}
|
|
19
63
|
export declare class SqlSyncRules implements SyncRules {
|
|
20
|
-
|
|
64
|
+
bucketSources: BucketSource[];
|
|
21
65
|
eventDescriptors: SqlEventDescriptor[];
|
|
66
|
+
compatibility: CompatibilityContext;
|
|
22
67
|
content: string;
|
|
23
68
|
errors: YamlError[];
|
|
24
69
|
static validate(yaml: string, options: SyncRulesOptions): YamlError[];
|
|
@@ -27,6 +72,7 @@ export declare class SqlSyncRules implements SyncRules {
|
|
|
27
72
|
static tokenError(token: any, message: string): YamlError;
|
|
28
73
|
withScalar(scalar: Scalar, cb: (value: string) => QueryParseResult): QueryParseResult;
|
|
29
74
|
constructor(content: string);
|
|
75
|
+
applyRowContext<MaybeToast extends undefined = never>(source: SqliteRow<SqliteInputValue | MaybeToast>): SqliteRow<SqliteValue | MaybeToast>;
|
|
30
76
|
/**
|
|
31
77
|
* Throws errors.
|
|
32
78
|
*/
|
|
@@ -38,12 +84,12 @@ export declare class SqlSyncRules implements SyncRules {
|
|
|
38
84
|
/**
|
|
39
85
|
* Throws errors.
|
|
40
86
|
*/
|
|
41
|
-
evaluateParameterRow(table: SourceTableInterface, row:
|
|
42
|
-
evaluateParameterRowWithErrors(table: SourceTableInterface, row:
|
|
87
|
+
evaluateParameterRow(table: SourceTableInterface, row: SqliteInputRow): EvaluatedParameters[];
|
|
88
|
+
evaluateParameterRowWithErrors(table: SourceTableInterface, row: SqliteInputRow): {
|
|
43
89
|
results: EvaluatedParameters[];
|
|
44
90
|
errors: EvaluationError[];
|
|
45
91
|
};
|
|
46
|
-
getBucketParameterQuerier(
|
|
92
|
+
getBucketParameterQuerier(options: GetQuerierOptions): GetBucketParameterQuerierResult;
|
|
47
93
|
hasDynamicBucketQueries(): boolean;
|
|
48
94
|
getSourceTables(): TablePattern[];
|
|
49
95
|
getEventTables(): TablePattern[];
|
|
@@ -51,4 +97,6 @@ export declare class SqlSyncRules implements SyncRules {
|
|
|
51
97
|
tableSyncsData(table: SourceTableInterface): boolean;
|
|
52
98
|
tableSyncsParameters(table: SourceTableInterface): boolean;
|
|
53
99
|
debugGetOutputTables(): Record<string, any[]>;
|
|
100
|
+
private parsePriority;
|
|
101
|
+
static versionedBucketIdTransformer(version: string): (bucketId: string) => string;
|
|
54
102
|
}
|
package/dist/SqlSyncRules.js
CHANGED
|
@@ -6,10 +6,14 @@ import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
|
|
|
6
6
|
import { validateSyncRulesSchema } from './json_schema.js';
|
|
7
7
|
import { SqlBucketDescriptor } from './SqlBucketDescriptor.js';
|
|
8
8
|
import { isEvaluatedParameters, isEvaluatedRow, isEvaluationError } from './types.js';
|
|
9
|
+
import { syncStreamFromSql } from './streams/from_sql.js';
|
|
10
|
+
import { CompatibilityContext, CompatibilityEdition, CompatibilityOption } from './compatibility.js';
|
|
11
|
+
import { applyRowContext } from './utils.js';
|
|
9
12
|
const ACCEPT_POTENTIALLY_DANGEROUS_QUERIES = Symbol('ACCEPT_POTENTIALLY_DANGEROUS_QUERIES');
|
|
10
13
|
export class SqlSyncRules {
|
|
11
|
-
|
|
14
|
+
bucketSources = [];
|
|
12
15
|
eventDescriptors = [];
|
|
16
|
+
compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
|
|
13
17
|
content;
|
|
14
18
|
errors = [];
|
|
15
19
|
static validate(yaml, options) {
|
|
@@ -55,36 +59,57 @@ export class SqlSyncRules {
|
|
|
55
59
|
}
|
|
56
60
|
return rules;
|
|
57
61
|
}
|
|
62
|
+
const declaredOptions = parsed.get('config');
|
|
63
|
+
let compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
|
|
64
|
+
if (declaredOptions != null) {
|
|
65
|
+
const edition = (declaredOptions.get('edition') ?? CompatibilityEdition.LEGACY);
|
|
66
|
+
const options = new Map();
|
|
67
|
+
for (const entry of declaredOptions.items) {
|
|
68
|
+
const { key: { value: key }, value: { value } } = entry;
|
|
69
|
+
const option = CompatibilityOption.byName[key];
|
|
70
|
+
if (option) {
|
|
71
|
+
options.set(option, value);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
compatibility = new CompatibilityContext(edition, options);
|
|
75
|
+
rules.compatibility = compatibility;
|
|
76
|
+
}
|
|
77
|
+
// Bucket definitions using explicit parameter and data queries.
|
|
58
78
|
const bucketMap = parsed.get('bucket_definitions');
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
const streamMap = parsed.get('streams');
|
|
80
|
+
const definitionNames = new Set();
|
|
81
|
+
const checkUniqueName = (name, literal) => {
|
|
82
|
+
if (definitionNames.has(name)) {
|
|
83
|
+
rules.errors.push(this.tokenError(literal, 'Duplicate stream or bucket definition.'));
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
definitionNames.add(name);
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
if (bucketMap == null && streamMap == null) {
|
|
90
|
+
rules.errors.push(new YamlError(new Error(`'bucket_definitions' or 'streams' is required`)));
|
|
61
91
|
if (throwOnError) {
|
|
62
92
|
rules.throwOnError();
|
|
63
93
|
}
|
|
64
94
|
return rules;
|
|
65
95
|
}
|
|
66
|
-
for (let entry of bucketMap
|
|
96
|
+
for (let entry of bucketMap?.items ?? []) {
|
|
67
97
|
const { key: keyScalar, value } = entry;
|
|
68
98
|
const key = keyScalar.toString();
|
|
99
|
+
if (!checkUniqueName(key, keyScalar)) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
69
102
|
if (value == null || !(value instanceof YAMLMap)) {
|
|
70
103
|
rules.errors.push(this.tokenError(keyScalar, `'${key}' bucket definition must be an object`));
|
|
71
104
|
continue;
|
|
72
105
|
}
|
|
73
106
|
const accept_potentially_dangerous_queries = value.get('accept_potentially_dangerous_queries', true)?.value == true;
|
|
74
|
-
|
|
75
|
-
if (value.has('priority')) {
|
|
76
|
-
const priorityValue = value.get('priority', true);
|
|
77
|
-
if (typeof priorityValue.value != 'number' || !isValidPriority(priorityValue.value)) {
|
|
78
|
-
rules.errors.push(this.tokenError(priorityValue, 'Invalid priority, expected a number between 0 and 3 (inclusive).'));
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
parseOptionPriority = priorityValue.value;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
107
|
+
const parseOptionPriority = rules.parsePriority(value);
|
|
84
108
|
const queryOptions = {
|
|
85
109
|
...options,
|
|
86
110
|
accept_potentially_dangerous_queries,
|
|
87
|
-
priority: parseOptionPriority
|
|
111
|
+
priority: parseOptionPriority,
|
|
112
|
+
compatibility
|
|
88
113
|
};
|
|
89
114
|
const parameters = value.get('parameters', true);
|
|
90
115
|
const dataQueries = value.get('data', true);
|
|
@@ -110,10 +135,40 @@ export class SqlSyncRules {
|
|
|
110
135
|
}
|
|
111
136
|
for (let query of dataQueries.items) {
|
|
112
137
|
rules.withScalar(query, (q) => {
|
|
113
|
-
return descriptor.addDataQuery(q, queryOptions);
|
|
138
|
+
return descriptor.addDataQuery(q, queryOptions, compatibility);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
rules.bucketSources.push(descriptor);
|
|
142
|
+
}
|
|
143
|
+
for (const entry of streamMap?.items ?? []) {
|
|
144
|
+
const { key: keyScalar, value } = entry;
|
|
145
|
+
const key = keyScalar.toString();
|
|
146
|
+
if (!checkUniqueName(key, keyScalar)) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const accept_potentially_dangerous_queries = value.get('accept_potentially_dangerous_queries', true)?.value == true;
|
|
150
|
+
const queryOptions = {
|
|
151
|
+
...options,
|
|
152
|
+
accept_potentially_dangerous_queries,
|
|
153
|
+
priority: rules.parsePriority(value),
|
|
154
|
+
auto_subscribe: value.get('auto_subscribe', true)?.value == true,
|
|
155
|
+
compatibility
|
|
156
|
+
};
|
|
157
|
+
const data = value.get('query', true);
|
|
158
|
+
if (data instanceof Scalar) {
|
|
159
|
+
rules.withScalar(data, (q) => {
|
|
160
|
+
const [parsed, errors] = syncStreamFromSql(key, q, queryOptions);
|
|
161
|
+
rules.bucketSources.push(parsed);
|
|
162
|
+
return {
|
|
163
|
+
parsed: true,
|
|
164
|
+
errors
|
|
165
|
+
};
|
|
114
166
|
});
|
|
115
167
|
}
|
|
116
|
-
|
|
168
|
+
else {
|
|
169
|
+
rules.errors.push(this.tokenError(data, 'Must be a string.'));
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
117
172
|
}
|
|
118
173
|
const eventMap = parsed.get('event_definitions');
|
|
119
174
|
for (const event of eventMap?.items ?? []) {
|
|
@@ -127,7 +182,7 @@ export class SqlSyncRules {
|
|
|
127
182
|
rules.errors.push(new YamlError(new Error(`Event definition payloads must be an array.`)));
|
|
128
183
|
continue;
|
|
129
184
|
}
|
|
130
|
-
const eventDescriptor = new SqlEventDescriptor(key.toString());
|
|
185
|
+
const eventDescriptor = new SqlEventDescriptor(key.toString(), compatibility);
|
|
131
186
|
for (let item of payloads.items) {
|
|
132
187
|
if (!isScalar(item)) {
|
|
133
188
|
rules.errors.push(new YamlError(new Error(`Payload queries for events must be scalar.`)));
|
|
@@ -204,6 +259,9 @@ export class SqlSyncRules {
|
|
|
204
259
|
constructor(content) {
|
|
205
260
|
this.content = content;
|
|
206
261
|
}
|
|
262
|
+
applyRowContext(source) {
|
|
263
|
+
return applyRowContext(source, this.compatibility);
|
|
264
|
+
}
|
|
207
265
|
/**
|
|
208
266
|
* Throws errors.
|
|
209
267
|
*/
|
|
@@ -215,9 +273,16 @@ export class SqlSyncRules {
|
|
|
215
273
|
return results;
|
|
216
274
|
}
|
|
217
275
|
evaluateRowWithErrors(options) {
|
|
276
|
+
const resolvedOptions = this.compatibility.isEnabled(CompatibilityOption.versionedBucketIds)
|
|
277
|
+
? options
|
|
278
|
+
: {
|
|
279
|
+
...options,
|
|
280
|
+
// Disable bucket id transformer when the option is unused.
|
|
281
|
+
bucketIdTransformer: (id) => id
|
|
282
|
+
};
|
|
218
283
|
let rawResults = [];
|
|
219
|
-
for (let
|
|
220
|
-
rawResults.push(...
|
|
284
|
+
for (let source of this.bucketSources) {
|
|
285
|
+
rawResults.push(...source.evaluateRow(resolvedOptions));
|
|
221
286
|
}
|
|
222
287
|
const results = rawResults.filter(isEvaluatedRow);
|
|
223
288
|
const errors = rawResults.filter(isEvaluationError);
|
|
@@ -235,23 +300,39 @@ export class SqlSyncRules {
|
|
|
235
300
|
}
|
|
236
301
|
evaluateParameterRowWithErrors(table, row) {
|
|
237
302
|
let rawResults = [];
|
|
238
|
-
for (let
|
|
239
|
-
rawResults.push(...
|
|
303
|
+
for (let source of this.bucketSources) {
|
|
304
|
+
rawResults.push(...source.evaluateParameterRow(table, row));
|
|
240
305
|
}
|
|
241
306
|
const results = rawResults.filter(isEvaluatedParameters);
|
|
242
307
|
const errors = rawResults.filter(isEvaluationError);
|
|
243
308
|
return { results, errors };
|
|
244
309
|
}
|
|
245
|
-
getBucketParameterQuerier(
|
|
246
|
-
const
|
|
247
|
-
|
|
310
|
+
getBucketParameterQuerier(options) {
|
|
311
|
+
const resolvedOptions = this.compatibility.isEnabled(CompatibilityOption.versionedBucketIds)
|
|
312
|
+
? options
|
|
313
|
+
: {
|
|
314
|
+
...options,
|
|
315
|
+
// Disable bucket id transformer when the option is unused.
|
|
316
|
+
bucketIdTransformer: (id) => id
|
|
317
|
+
};
|
|
318
|
+
const queriers = [];
|
|
319
|
+
const errors = [];
|
|
320
|
+
const pending = { queriers, errors };
|
|
321
|
+
for (const source of this.bucketSources) {
|
|
322
|
+
if ((source.subscribedToByDefault && resolvedOptions.hasDefaultStreams) ||
|
|
323
|
+
source.name in resolvedOptions.streams) {
|
|
324
|
+
source.pushBucketParameterQueriers(pending, resolvedOptions);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
const querier = mergeBucketParameterQueriers(queriers);
|
|
328
|
+
return { querier, errors };
|
|
248
329
|
}
|
|
249
330
|
hasDynamicBucketQueries() {
|
|
250
|
-
return this.
|
|
331
|
+
return this.bucketSources.some((s) => s.hasDynamicBucketQueries());
|
|
251
332
|
}
|
|
252
333
|
getSourceTables() {
|
|
253
334
|
const sourceTables = new Map();
|
|
254
|
-
for (const bucket of this.
|
|
335
|
+
for (const bucket of this.bucketSources) {
|
|
255
336
|
for (const r of bucket.getSourceTables()) {
|
|
256
337
|
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
257
338
|
sourceTables.set(key, r);
|
|
@@ -279,33 +360,31 @@ export class SqlSyncRules {
|
|
|
279
360
|
return this.eventDescriptors.some((bucket) => bucket.tableTriggersEvent(table));
|
|
280
361
|
}
|
|
281
362
|
tableSyncsData(table) {
|
|
282
|
-
|
|
283
|
-
if (bucket.tableSyncsData(table)) {
|
|
284
|
-
return true;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
return false;
|
|
363
|
+
return this.bucketSources.some((b) => b.tableSyncsData(table));
|
|
288
364
|
}
|
|
289
365
|
tableSyncsParameters(table) {
|
|
290
|
-
|
|
291
|
-
if (bucket.tableSyncsParameters(table)) {
|
|
292
|
-
return true;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return false;
|
|
366
|
+
return this.bucketSources.some((b) => b.tableSyncsParameters(table));
|
|
296
367
|
}
|
|
297
368
|
debugGetOutputTables() {
|
|
298
369
|
let result = {};
|
|
299
|
-
for (let bucket of this.
|
|
300
|
-
|
|
301
|
-
result[q.table] ??= [];
|
|
302
|
-
const r = {
|
|
303
|
-
query: q.sql
|
|
304
|
-
};
|
|
305
|
-
result[q.table].push(r);
|
|
306
|
-
}
|
|
370
|
+
for (let bucket of this.bucketSources) {
|
|
371
|
+
bucket.debugWriteOutputTables(result);
|
|
307
372
|
}
|
|
308
373
|
return result;
|
|
309
374
|
}
|
|
375
|
+
parsePriority(value) {
|
|
376
|
+
if (value.has('priority')) {
|
|
377
|
+
const priorityValue = value.get('priority', true);
|
|
378
|
+
if (typeof priorityValue.value != 'number' || !isValidPriority(priorityValue.value)) {
|
|
379
|
+
this.errors.push(SqlSyncRules.tokenError(priorityValue, 'Invalid priority, expected a number between 0 and 3 (inclusive).'));
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
return priorityValue.value;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
static versionedBucketIdTransformer(version) {
|
|
387
|
+
return (bucketId) => `${version}#${bucketId}`;
|
|
388
|
+
}
|
|
310
389
|
}
|
|
311
390
|
//# sourceMappingURL=SqlSyncRules.js.map
|