@powersync/service-sync-rules 0.38.1 → 0.40.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/BucketParameterQuerier.d.ts +4 -0
- package/dist/BucketParameterQuerier.js.map +1 -1
- package/dist/SqlSyncRules.d.ts +0 -5
- package/dist/SqlSyncRules.js.map +1 -1
- package/dist/TablePattern.d.ts +2 -0
- package/dist/TablePattern.js +18 -1
- package/dist/TablePattern.js.map +1 -1
- package/dist/compiler/expression.d.ts +23 -2
- package/dist/compiler/expression.js +30 -3
- package/dist/compiler/expression.js.map +1 -1
- package/dist/compiler/filter.js +2 -2
- package/dist/compiler/filter.js.map +1 -1
- package/dist/compiler/ir_to_sync_plan.js +7 -1
- package/dist/compiler/ir_to_sync_plan.js.map +1 -1
- package/dist/compiler/parser.d.ts +18 -0
- package/dist/compiler/parser.js +52 -6
- package/dist/compiler/parser.js.map +1 -1
- package/dist/compiler/querier_graph.js +2 -2
- package/dist/compiler/querier_graph.js.map +1 -1
- package/dist/compiler/sqlite.d.ts +3 -2
- package/dist/compiler/sqlite.js +33 -3
- package/dist/compiler/sqlite.js.map +1 -1
- package/dist/compiler/table.js +4 -1
- package/dist/compiler/table.js.map +1 -1
- package/dist/events/SqlEventDescriptor.d.ts +1 -1
- package/dist/events/SqlEventSourceQuery.d.ts +1 -1
- package/dist/events/SqlEventSourceQuery.js +5 -4
- package/dist/events/SqlEventSourceQuery.js.map +1 -1
- package/dist/from_yaml.js +139 -175
- package/dist/from_yaml.js.map +1 -1
- package/dist/index.d.ts +1 -8
- package/dist/index.js +1 -8
- package/dist/index.js.map +1 -1
- package/dist/{BaseSqlDataQuery.d.ts → legacy/BaseSqlDataQuery.d.ts} +5 -5
- package/dist/{BaseSqlDataQuery.js → legacy/BaseSqlDataQuery.js} +2 -2
- package/dist/legacy/BaseSqlDataQuery.js.map +1 -0
- package/dist/{SqlBucketDescriptor.d.ts → legacy/SqlBucketDescriptor.d.ts} +10 -10
- package/dist/{SqlBucketDescriptor.js → legacy/SqlBucketDescriptor.js} +2 -2
- package/dist/legacy/SqlBucketDescriptor.js.map +1 -0
- package/dist/{SqlDataQuery.d.ts → legacy/SqlDataQuery.d.ts} +4 -4
- package/dist/{SqlDataQuery.js → legacy/SqlDataQuery.js} +4 -4
- package/dist/legacy/SqlDataQuery.js.map +1 -0
- package/dist/{SqlParameterQuery.d.ts → legacy/SqlParameterQuery.d.ts} +9 -9
- package/dist/{SqlParameterQuery.js → legacy/SqlParameterQuery.js} +6 -6
- package/dist/legacy/SqlParameterQuery.js.map +1 -0
- package/dist/{StaticSqlParameterQuery.d.ts → legacy/StaticSqlParameterQuery.d.ts} +8 -8
- package/dist/{StaticSqlParameterQuery.js → legacy/StaticSqlParameterQuery.js} +6 -5
- package/dist/legacy/StaticSqlParameterQuery.js.map +1 -0
- package/dist/{TableQuerySchema.d.ts → legacy/TableQuerySchema.d.ts} +2 -2
- package/dist/legacy/TableQuerySchema.js.map +1 -0
- package/dist/{TableValuedFunctionSqlParameterQuery.d.ts → legacy/TableValuedFunctionSqlParameterQuery.d.ts} +9 -9
- package/dist/{TableValuedFunctionSqlParameterQuery.js → legacy/TableValuedFunctionSqlParameterQuery.js} +6 -5
- package/dist/legacy/TableValuedFunctionSqlParameterQuery.js.map +1 -0
- package/dist/{sql_filters.d.ts → legacy/sql_filters.d.ts} +6 -6
- package/dist/{sql_filters.js → legacy/sql_filters.js} +8 -7
- package/dist/legacy/sql_filters.js.map +1 -0
- package/dist/{sql_support.d.ts → legacy/sql_support.d.ts} +2 -6
- package/dist/{sql_support.js → legacy/sql_support.js} +4 -25
- package/dist/legacy/sql_support.js.map +1 -0
- package/dist/{streams → legacy/streams}/filter.d.ts +5 -5
- package/dist/{streams → legacy/streams}/filter.js +6 -5
- package/dist/legacy/streams/filter.js.map +1 -0
- package/dist/{streams → legacy/streams}/from_sql.d.ts +2 -2
- package/dist/{streams → legacy/streams}/from_sql.js +5 -5
- package/dist/legacy/streams/from_sql.js.map +1 -0
- package/dist/{streams → legacy/streams}/functions.d.ts +1 -1
- package/dist/{streams → legacy/streams}/functions.js +1 -1
- package/dist/legacy/streams/functions.js.map +1 -0
- package/dist/{streams → legacy/streams}/parameter.d.ts +5 -5
- package/dist/legacy/streams/parameter.js.map +1 -0
- package/dist/{streams → legacy/streams}/stream.d.ts +6 -6
- package/dist/{streams → legacy/streams}/stream.js +2 -2
- package/dist/legacy/streams/stream.js.map +1 -0
- package/dist/{streams → legacy/streams}/variant.d.ts +5 -5
- package/dist/{streams → legacy/streams}/variant.js +2 -3
- package/dist/legacy/streams/variant.js.map +1 -0
- package/dist/{validators.d.ts → legacy/validators.d.ts} +1 -1
- package/dist/{validators.js → legacy/validators.js} +2 -2
- package/dist/legacy/validators.js.map +1 -0
- package/dist/sql_functions.js +1 -1
- package/dist/sql_functions.js.map +1 -1
- package/dist/sqliteBool.d.ts +5 -0
- package/dist/sqliteBool.js +23 -0
- package/dist/sqliteBool.js.map +1 -0
- package/dist/sync_plan/engine/javascript.js +3 -2
- package/dist/sync_plan/engine/javascript.js.map +1 -1
- package/dist/sync_plan/engine/scalar_expression_engine.js +7 -0
- package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_data_source.js +3 -2
- package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +2 -2
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
- package/dist/sync_plan/evaluator/table_processor_to_sql.d.ts +5 -2
- package/dist/sync_plan/evaluator/table_processor_to_sql.js +10 -0
- package/dist/sync_plan/evaluator/table_processor_to_sql.js.map +1 -1
- package/dist/sync_plan/plan.d.ts +13 -4
- package/dist/sync_plan/serialize.d.ts +23 -5
- package/dist/sync_plan/serialize.js +17 -4
- package/dist/sync_plan/serialize.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +13 -1
- package/dist/utils.js.map +1 -1
- package/dist/yaml_validation.d.ts +73 -0
- package/dist/yaml_validation.js +140 -0
- package/dist/yaml_validation.js.map +1 -0
- package/package.json +1 -1
- package/dist/BaseSqlDataQuery.js.map +0 -1
- package/dist/SqlBucketDescriptor.js.map +0 -1
- package/dist/SqlDataQuery.js.map +0 -1
- package/dist/SqlParameterQuery.js.map +0 -1
- package/dist/StaticSqlParameterQuery.js.map +0 -1
- package/dist/TableQuerySchema.js.map +0 -1
- package/dist/TableValuedFunctionSqlParameterQuery.js.map +0 -1
- package/dist/sql_filters.js.map +0 -1
- package/dist/sql_support.js.map +0 -1
- package/dist/streams/filter.js.map +0 -1
- package/dist/streams/from_sql.js.map +0 -1
- package/dist/streams/functions.js.map +0 -1
- package/dist/streams/parameter.js.map +0 -1
- package/dist/streams/stream.js.map +0 -1
- package/dist/streams/utils.d.ts +0 -1
- package/dist/streams/utils.js +0 -13
- package/dist/streams/utils.js.map +0 -1
- package/dist/streams/variant.js.map +0 -1
- package/dist/validators.js.map +0 -1
- /package/dist/{TableQuerySchema.js → legacy/TableQuerySchema.js} +0 -0
- /package/dist/{streams → legacy/streams}/parameter.js +0 -0
|
@@ -3,7 +3,7 @@ import { filterJsonRow, isJsonValue, isValidParameterValue, JSONBucketNameSerial
|
|
|
3
3
|
import { scalarStatementToSql } from '../engine/scalar_expression_engine.js';
|
|
4
4
|
import { ExpressionToSqlite } from '../expression_to_sql.js';
|
|
5
5
|
import { SyncPlanSchemaAnalyzer } from '../schema_inference.js';
|
|
6
|
-
import { TableProcessorToSqlHelper } from './table_processor_to_sql.js';
|
|
6
|
+
import { resolveRowMetadata, TableProcessorToSqlHelper } from './table_processor_to_sql.js';
|
|
7
7
|
export class PreparedStreamBucketDataSource {
|
|
8
8
|
source;
|
|
9
9
|
sourceTables = new Set();
|
|
@@ -110,9 +110,10 @@ class PendingStreamDataSource {
|
|
|
110
110
|
}
|
|
111
111
|
instantiate(engine) {
|
|
112
112
|
const evaluator = engine.prepareEvaluator(this.statement);
|
|
113
|
+
const pattern = this.tablePattern;
|
|
113
114
|
return (options, results) => {
|
|
114
115
|
try {
|
|
115
|
-
const inputInstantiation = this.evaluatorInputs.map((input) => options.record[input.column]);
|
|
116
|
+
const inputInstantiation = this.evaluatorInputs.map((input) => 'column' in input ? options.record[input.column] : resolveRowMetadata(input, pattern, options.sourceTable));
|
|
116
117
|
row: for (const source of evaluator.evaluate(inputInstantiation)) {
|
|
117
118
|
const record = {};
|
|
118
119
|
for (const output of this.outputs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket_data_source.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/bucket_data_source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAW3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAGL,oBAAoB,EAErB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"bucket_data_source.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/bucket_data_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UnscopedParameterLookup } from '../../BucketParameterQuerier.js';
|
|
2
2
|
import { isValidParameterValueRow } from './parameter_evaluator.js';
|
|
3
|
-
import { TableProcessorToSqlHelper } from './table_processor_to_sql.js';
|
|
3
|
+
import { resolveRowMetadata, TableProcessorToSqlHelper } from './table_processor_to_sql.js';
|
|
4
4
|
export class PreparedParameterIndexLookupCreator {
|
|
5
5
|
sourceId;
|
|
6
6
|
sourceTable;
|
|
@@ -46,7 +46,7 @@ export class PreparedParameterIndexLookupCreator {
|
|
|
46
46
|
return a.every((val, idx) => val === b[idx]);
|
|
47
47
|
}
|
|
48
48
|
try {
|
|
49
|
-
const inputInstantiation = this.evaluatorInputs.map((input) => row[input.column]);
|
|
49
|
+
const inputInstantiation = this.evaluatorInputs.map((input) => 'column' in input ? row[input.column] : resolveRowMetadata(input, this.sourceTable, sourceTable));
|
|
50
50
|
// In almost all cases, lookups generate at most one output with exactly one bucket parameter. This is the case
|
|
51
51
|
// for all lookups without a table-valued function, e.g. `SELECT foo.* FROM foo, bar ON foo.x = bar.x AND
|
|
52
52
|
// bar.y = auth.user_id()` which generates a lookup from `bar.y` to `bar.x`. However, it's also possible for:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter_index_lookup_creator.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/parameter_index_lookup_creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAS1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter_index_lookup_creator.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/parameter_index_lookup_creator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { SourceTableRef } from '../../SourceTableRef.js';
|
|
2
|
+
import { TablePattern } from '../../TablePattern.js';
|
|
1
3
|
import { TableValuedFunction, TableValuedFunctionOutput } from '../engine/scalar_expression_engine.js';
|
|
2
4
|
import { SqlExpression } from '../expression.js';
|
|
3
5
|
import * as plan from '../plan.js';
|
|
@@ -9,12 +11,13 @@ import * as plan from '../plan.js';
|
|
|
9
11
|
*/
|
|
10
12
|
export declare class TableProcessorToSqlHelper {
|
|
11
13
|
mapper: {
|
|
12
|
-
instantiation: plan.ColumnSqlParameterValue[];
|
|
14
|
+
instantiation: (plan.ColumnSqlParameterValue | plan.RowMetadataSqlValue)[];
|
|
13
15
|
tableValuedFunctions: Map<plan.TableProcessorTableValuedFunction, TableValuedFunction>;
|
|
14
16
|
transform(expr: SqlExpression<plan.SqlParameterValue>): SqlExpression<number | TableValuedFunctionOutput>;
|
|
15
|
-
transformWithoutTableValued(expr: SqlExpression<plan.ColumnSqlParameterValue>): SqlExpression<number>;
|
|
17
|
+
transformWithoutTableValued(expr: SqlExpression<plan.ColumnSqlParameterValue | plan.RowMetadataSqlValue>): SqlExpression<number>;
|
|
16
18
|
};
|
|
17
19
|
readonly filterExpressions: SqlExpression<number | TableValuedFunctionOutput>[];
|
|
18
20
|
get tableValuedFunctions(): TableValuedFunction[];
|
|
19
21
|
constructor(source: plan.TableProcessor);
|
|
20
22
|
}
|
|
23
|
+
export declare function resolveRowMetadata(value: plan.RowMetadataSqlValue, pattern: TablePattern, table: SourceTableRef): string;
|
|
@@ -25,4 +25,14 @@ export class TableProcessorToSqlHelper {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
export function resolveRowMetadata(value, pattern, table) {
|
|
29
|
+
switch (value.metadata) {
|
|
30
|
+
case 'schema':
|
|
31
|
+
return table.schema;
|
|
32
|
+
case 'table_name':
|
|
33
|
+
return table.name;
|
|
34
|
+
case 'table_suffix':
|
|
35
|
+
return pattern.isWildcard ? pattern.suffix(table.name) : '';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
28
38
|
//# sourceMappingURL=table_processor_to_sql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_processor_to_sql.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/table_processor_to_sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table_processor_to_sql.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/table_processor_to_sql.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,8BAA8B,EAG/B,MAAM,uCAAuC,CAAC;AAI/C;;;;;GAKG;AACH,MAAM,OAAO,yBAAyB;IACpC,MAAM,GAAG,8BAA8B,EAA2D,CAAC;IAC1F,iBAAiB,GAAwD,EAAE,CAAC;IAErF,IAAI,oBAAoB;QACtB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,MAA2B;QACrC,yCAAyC;QACzC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,EAAE,CAAC,YAAY;gBACrB,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;aACjF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,KAA+B,EAC/B,OAAqB,EACrB,KAAqB;IAErB,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;AACH,CAAC"}
|
package/dist/sync_plan/plan.d.ts
CHANGED
|
@@ -88,10 +88,10 @@ export interface TableProcessorTableValuedFunctionOutput {
|
|
|
88
88
|
/**
|
|
89
89
|
* External data that can be used in expressions for {@link TableProcessor}s.
|
|
90
90
|
*
|
|
91
|
-
* This allows references to the row in the table being processed,
|
|
92
|
-
* {@link TableProcessor#tableValuedFunctions}.
|
|
91
|
+
* This allows references to the row in the table being processed, metadata about the row's source table, and
|
|
92
|
+
* references to outputs of joined {@link TableProcessor#tableValuedFunctions}.
|
|
93
93
|
*/
|
|
94
|
-
export type TableProcessorData = ColumnSqlParameterValue | TableProcessorTableValuedFunctionOutput;
|
|
94
|
+
export type TableProcessorData = ColumnSqlParameterValue | RowMetadataSqlValue | TableProcessorTableValuedFunctionOutput;
|
|
95
95
|
/**
|
|
96
96
|
* A scalar partition key evaluates to a single value in the source or parameter row. For instance, a stream definition
|
|
97
97
|
* like `SELECT * FROM users WHERE id = auth.user_id()` would generate a scalar key to partition users by the `id`
|
|
@@ -197,6 +197,15 @@ export interface StreamQuerier {
|
|
|
197
197
|
export interface ColumnSqlParameterValue {
|
|
198
198
|
column: string;
|
|
199
199
|
}
|
|
200
|
+
export type RowMetadataKind = 'schema' | 'table_name' | 'table_suffix';
|
|
201
|
+
/**
|
|
202
|
+
* A value that resolves to metadata about the source table of the row being processed: the schema containing the
|
|
203
|
+
* table (`schema()`), the name of the table (`table_name()`) or, for wildcard table patterns, the matched
|
|
204
|
+
* suffix of the table name (`table_suffix()`).
|
|
205
|
+
*/
|
|
206
|
+
export interface RowMetadataSqlValue {
|
|
207
|
+
metadata: RowMetadataKind;
|
|
208
|
+
}
|
|
200
209
|
export type ConnectionParameterSource = 'auth' | 'subscription' | 'connection';
|
|
201
210
|
/**
|
|
202
211
|
* A value that resolves to either the current subscription parameters, the JWT of the connecting user or global
|
|
@@ -205,7 +214,7 @@ export type ConnectionParameterSource = 'auth' | 'subscription' | 'connection';
|
|
|
205
214
|
export interface RequestSqlParameterValue {
|
|
206
215
|
request: ConnectionParameterSource;
|
|
207
216
|
}
|
|
208
|
-
export type SqlParameterValue = ColumnSqlParameterValue | RequestSqlParameterValue | TableProcessorTableValuedFunctionOutput;
|
|
217
|
+
export type SqlParameterValue = ColumnSqlParameterValue | RowMetadataSqlValue | RequestSqlParameterValue | TableProcessorTableValuedFunctionOutput;
|
|
209
218
|
/**
|
|
210
219
|
* A lookup returning multiple rows when instantiated.
|
|
211
220
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ParameterLookupDefinitionId } from '../HydrationState.js';
|
|
2
2
|
import { SqlExpression } from './expression.js';
|
|
3
|
-
import { ColumnSqlParameterValue, RequestSqlParameterValue, StreamOptions, SyncPlan, TableProcessorTableValuedFunction } from './plan.js';
|
|
3
|
+
import { ColumnSqlParameterValue, RequestSqlParameterValue, RowMetadataSqlValue, StreamOptions, SyncPlan, TableProcessorTableValuedFunction } from './plan.js';
|
|
4
4
|
/**
|
|
5
5
|
* Serializes a sync plan into a simple JSON object.
|
|
6
6
|
*
|
|
@@ -8,10 +8,28 @@ import { ColumnSqlParameterValue, RequestSqlParameterValue, StreamOptions, SyncP
|
|
|
8
8
|
* queriers to bucket creators. To represent this efficiently, we assign numbers to referenced elements while
|
|
9
9
|
* serializing instead of duplicating definitions.
|
|
10
10
|
*/
|
|
11
|
-
export declare function serializeSyncPlan(plan: SyncPlan):
|
|
11
|
+
export declare function serializeSyncPlan(plan: SyncPlan): SerializedSyncPlan;
|
|
12
12
|
export declare function deserializeSyncPlan(serialized: unknown): SyncPlan;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Every change to the format of {@link SerializedSyncPlan} needs a version bump and a changelog entry in this
|
|
15
|
+
* documentation comment. Even for seemingly backward-compatible changes, like adding new fields, older services would
|
|
16
|
+
* be unaware of them and thus interpret the sync plan incorrectly. Increasing this version ensures that older services
|
|
17
|
+
* wouldn't even try to deserialize sync plans.
|
|
18
|
+
*
|
|
19
|
+
* ### Version 2
|
|
20
|
+
*
|
|
21
|
+
* - Add {@link RowMetadataSqlValue} to data for row and parameter evaluators, exposing the exact table and schema name
|
|
22
|
+
* when matching on wildcard table patterns.
|
|
23
|
+
* The deserialization logic can remain the same for v1 and v2.
|
|
24
|
+
*
|
|
25
|
+
* ### Version 1
|
|
26
|
+
*
|
|
27
|
+
* - Initial version
|
|
28
|
+
*/
|
|
29
|
+
export type SerializedSyncPlanVersion = 1 | 2;
|
|
30
|
+
export declare const maxSupportedSyncPlanVersion: SerializedSyncPlanVersion;
|
|
31
|
+
export interface SerializedSyncPlan {
|
|
32
|
+
version: SerializedSyncPlanVersion;
|
|
15
33
|
dataSources: SerializedDataSource[];
|
|
16
34
|
buckets: SerializedBucketDataSource[];
|
|
17
35
|
parameterIndexes: SerializedParameterIndexLookupCreator[];
|
|
@@ -31,7 +49,7 @@ export interface SerializedTableProcessorTableValuedFunctionOutput {
|
|
|
31
49
|
function: number;
|
|
32
50
|
outputName: string;
|
|
33
51
|
}
|
|
34
|
-
export type SerializedTableProcessorData = ColumnSqlParameterValue | SerializedTableProcessorTableValuedFunctionOutput;
|
|
52
|
+
export type SerializedTableProcessorData = ColumnSqlParameterValue | RowMetadataSqlValue | SerializedTableProcessorTableValuedFunctionOutput;
|
|
35
53
|
export interface SerializedPartitionKey {
|
|
36
54
|
expr: SqlExpression<SerializedTableProcessorData>;
|
|
37
55
|
}
|
|
@@ -13,7 +13,9 @@ export function serializeSyncPlan(plan) {
|
|
|
13
13
|
const parameterIndex = new Map();
|
|
14
14
|
const expandingLookups = new Map();
|
|
15
15
|
const addedTableValuedFunctions = new Map();
|
|
16
|
+
let usesRowMetadataSqlValue = false;
|
|
16
17
|
const replaceFunctionReferenceWithIndex = new MapSourceVisitor((value) => {
|
|
18
|
+
usesRowMetadataSqlValue ||= 'metadata' in value;
|
|
17
19
|
if ('function' in value) {
|
|
18
20
|
return { function: addedTableValuedFunctions.get(value.function), outputName: value.outputName };
|
|
19
21
|
}
|
|
@@ -34,7 +36,13 @@ export function serializeSyncPlan(plan) {
|
|
|
34
36
|
function serializeTableValued(source) {
|
|
35
37
|
return source.tableValuedFunctions.map((fn, i) => {
|
|
36
38
|
addedTableValuedFunctions.set(fn, i);
|
|
37
|
-
return
|
|
39
|
+
return {
|
|
40
|
+
functionName: fn.functionName,
|
|
41
|
+
functionInputs: fn.functionInputs.map(
|
|
42
|
+
// Since we don't support table-valued functions as inputs to other table-valued functions, this doesn't
|
|
43
|
+
// change expressions. It ensures we track row metadata use in any input, though.
|
|
44
|
+
(s) => serializeTableProcessorDataExpr(s))
|
|
45
|
+
};
|
|
38
46
|
});
|
|
39
47
|
}
|
|
40
48
|
function translateParameters(source) {
|
|
@@ -125,7 +133,6 @@ export function serializeSyncPlan(plan) {
|
|
|
125
133
|
};
|
|
126
134
|
}
|
|
127
135
|
return {
|
|
128
|
-
version: 1,
|
|
129
136
|
dataSources: serializeDataSources(),
|
|
130
137
|
buckets: plan.buckets.map((bkt, index) => {
|
|
131
138
|
bucketIndex.set(bkt, index);
|
|
@@ -139,13 +146,18 @@ export function serializeSyncPlan(plan) {
|
|
|
139
146
|
streams: plan.streams.map((s) => ({
|
|
140
147
|
stream: s.stream,
|
|
141
148
|
queriers: s.queriers.map(serializeStreamQuerier)
|
|
142
|
-
}))
|
|
149
|
+
})),
|
|
150
|
+
version: usesRowMetadataSqlValue ? 2 : 1
|
|
143
151
|
};
|
|
144
152
|
}
|
|
145
153
|
export function deserializeSyncPlan(serialized) {
|
|
146
|
-
|
|
154
|
+
const { version } = serialized;
|
|
155
|
+
if (version < 1) {
|
|
147
156
|
throw new Error('Unknown sync plan version passed to deserializeSyncPlan()');
|
|
148
157
|
}
|
|
158
|
+
if (version > maxSupportedSyncPlanVersion) {
|
|
159
|
+
throw new Error(`Encountered a sync plan with version ${version}, the maximum supported version is ${maxSupportedSyncPlanVersion}. This can happen when the PowerSync service version is downgraded after deploying Sync Streams, consider upgrading or re-deploying.`);
|
|
160
|
+
}
|
|
149
161
|
function deserializeTablePattern(pattern) {
|
|
150
162
|
if (pattern.schema) {
|
|
151
163
|
return new TablePattern(`${pattern.connection}.${pattern.schema}`, pattern.table);
|
|
@@ -271,4 +283,5 @@ export function deserializeSyncPlan(serialized) {
|
|
|
271
283
|
streams
|
|
272
284
|
};
|
|
273
285
|
}
|
|
286
|
+
export const maxSupportedSyncPlanVersion = 2;
|
|
274
287
|
//# sourceMappingURL=serialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/sync_plan/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/sync_plan/serialize.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -79,3 +79,4 @@ export declare const JSONBucketNameSerialize: {
|
|
|
79
79
|
* Lookup serialization must be number-agnostic. I.e. normalize numbers, instead of preserving numbers.
|
|
80
80
|
*/
|
|
81
81
|
export declare function normalizeParameterValue(value: SqliteJsonValue): SqliteJsonValue;
|
|
82
|
+
export declare function cartesianProduct<T>(...sets: T[][]): Generator<T[]>;
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSONBig, JsonContainer, stringifyRaw } from '@powersync/service-jsonbig';
|
|
2
2
|
import { SyncRuleProcessingError as SyncRulesProcessingError } from './errors.js';
|
|
3
|
-
import { SQLITE_FALSE, SQLITE_TRUE } from './
|
|
3
|
+
import { SQLITE_FALSE, SQLITE_TRUE } from './sqliteBool.js';
|
|
4
4
|
import { CustomArray, CustomObject, CustomSqliteValue } from './types/custom_sqlite_value.js';
|
|
5
5
|
export function isSelectStatement(q) {
|
|
6
6
|
return q.type == 'select';
|
|
@@ -284,4 +284,16 @@ export function normalizeParameterValue(value) {
|
|
|
284
284
|
}
|
|
285
285
|
return value;
|
|
286
286
|
}
|
|
287
|
+
export function* cartesianProduct(...sets) {
|
|
288
|
+
if (sets.length == 0) {
|
|
289
|
+
yield [];
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const [head, ...tail] = sets;
|
|
293
|
+
for (let h of head) {
|
|
294
|
+
const remainder = cartesianProduct(...tail);
|
|
295
|
+
for (let r of remainder)
|
|
296
|
+
yield [h, ...r];
|
|
297
|
+
}
|
|
298
|
+
}
|
|
287
299
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAY,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK5F,OAAO,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Document, Node, Scalar, YAMLMap, YAMLSeq } from 'yaml';
|
|
2
|
+
import { YamlError } from './errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* A strongly-typed YAML node state used for validation.
|
|
5
|
+
*
|
|
6
|
+
* To inspect contents, use the `require` methods to cast this to {@link YamlMapState}, {@link YamlSequenceState} or
|
|
7
|
+
* {@link YamlScalarState}.
|
|
8
|
+
*/
|
|
9
|
+
export interface YamlState {
|
|
10
|
+
/** The underlying YAML node. */
|
|
11
|
+
node: Node;
|
|
12
|
+
/** Reports an error on the {@link YamlState.node} */
|
|
13
|
+
reportError(message: string, type?: 'warning' | 'fatal'): void;
|
|
14
|
+
/**
|
|
15
|
+
* Casts this node to a YAML map, reporting an error and returning undefined if that fails.
|
|
16
|
+
*/
|
|
17
|
+
requireMap(message?: string): YamlMapState | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Casts this node to a YAML scalar, reporting an error and returning undefined if that fails.
|
|
20
|
+
*/
|
|
21
|
+
requireScalar(message?: string): YamlScalarState | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Casts this node to a YAML sequence, reporting an error an returning undefined if that fails.
|
|
24
|
+
*/
|
|
25
|
+
requireSequence(message?: string): YamlSequenceState | undefined;
|
|
26
|
+
}
|
|
27
|
+
export type YamlMapEntry = {
|
|
28
|
+
key: string;
|
|
29
|
+
keyScalar: YamlScalarState;
|
|
30
|
+
value: YamlState;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* A YAML map.
|
|
34
|
+
*
|
|
35
|
+
* This node automatically reports errors for extra keys through `Symbol.dispose`, which is why it should be bound with
|
|
36
|
+
* a `using` statement to run the finalizer after validation.
|
|
37
|
+
*/
|
|
38
|
+
export interface YamlMapState extends YamlState {
|
|
39
|
+
node: YAMLMap;
|
|
40
|
+
/**
|
|
41
|
+
* Extracts all items from this map, asserting that the keys are strings.
|
|
42
|
+
*/
|
|
43
|
+
stringKeyedItems(): Iterable<YamlMapEntry>;
|
|
44
|
+
get(item: string): YamlState | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Like {@link YamlMapState.get}, but automatically reports an error if the item is missing.
|
|
47
|
+
*/
|
|
48
|
+
require(item: string): YamlState | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Reports an error for all keys in the source map that haven't been matched by a call to {@link YampMapState.get}.
|
|
51
|
+
*/
|
|
52
|
+
[Symbol.dispose](): void;
|
|
53
|
+
}
|
|
54
|
+
export interface YamlSequenceState extends YamlState {
|
|
55
|
+
node: YAMLSeq;
|
|
56
|
+
get items(): Iterable<YamlState>;
|
|
57
|
+
}
|
|
58
|
+
export interface YamlScalarState extends YamlState {
|
|
59
|
+
node: Scalar;
|
|
60
|
+
/**
|
|
61
|
+
* Extracts a number from this scalar, reporting an error message if that failed.
|
|
62
|
+
*/
|
|
63
|
+
requireNumeric(message?: string): number | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Extracts a boolean value from this scalar, reporting an error message if that failed.
|
|
66
|
+
*/
|
|
67
|
+
requireBoolean(message?: string): boolean | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Extracts a string from this scalar, reporting an error message if that failed.
|
|
70
|
+
*/
|
|
71
|
+
requireString(message?: string): string | undefined;
|
|
72
|
+
}
|
|
73
|
+
export declare function documentState(doc: Document, report: (error: YamlError) => void): YamlState;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Scalar, YAMLMap, YAMLSeq } from 'yaml';
|
|
2
|
+
import { YamlError } from './errors.js';
|
|
3
|
+
export function documentState(doc, report) {
|
|
4
|
+
function createYamlError(node, message) {
|
|
5
|
+
if (node.range != null) {
|
|
6
|
+
const [start, _, end] = node.range;
|
|
7
|
+
return new YamlError(new Error(message), { start, end });
|
|
8
|
+
}
|
|
9
|
+
return new YamlError(new Error(message));
|
|
10
|
+
}
|
|
11
|
+
// The implementation for require() methods on yaml states
|
|
12
|
+
function unexpectedType(node, expected) {
|
|
13
|
+
return (message) => {
|
|
14
|
+
report(createYamlError(node, message ?? `Expected ${expected} here.`));
|
|
15
|
+
return undefined;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function reportErrorOnNode(node) {
|
|
19
|
+
return (message, type = 'fatal') => {
|
|
20
|
+
const error = createYamlError(node, message);
|
|
21
|
+
error.type = type;
|
|
22
|
+
report(error);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function wrapMap(node) {
|
|
26
|
+
let matchedKeys = new Set();
|
|
27
|
+
const missingKeys = new Set();
|
|
28
|
+
return {
|
|
29
|
+
node,
|
|
30
|
+
reportError: reportErrorOnNode(node),
|
|
31
|
+
*stringKeyedItems() {
|
|
32
|
+
// This map describes a record, disable warning for additional keys.
|
|
33
|
+
matchedKeys = null;
|
|
34
|
+
for (const entry of node.items) {
|
|
35
|
+
const keyScalar = wrapNode(entry.key)?.requireScalar();
|
|
36
|
+
const key = keyScalar?.requireString();
|
|
37
|
+
const value = wrapNode(entry.value);
|
|
38
|
+
if (key != null && keyScalar != null) {
|
|
39
|
+
yield { key, keyScalar, value };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
get(item) {
|
|
44
|
+
const resolved = node.get(item, true);
|
|
45
|
+
matchedKeys?.add(item);
|
|
46
|
+
return resolved && wrapNode(resolved);
|
|
47
|
+
},
|
|
48
|
+
require(item) {
|
|
49
|
+
const resolved = this.get(item);
|
|
50
|
+
if (resolved === undefined) {
|
|
51
|
+
missingKeys.add(item);
|
|
52
|
+
}
|
|
53
|
+
return resolved;
|
|
54
|
+
},
|
|
55
|
+
requireMap() {
|
|
56
|
+
return this;
|
|
57
|
+
},
|
|
58
|
+
requireScalar: unexpectedType(node, 'a scalar'),
|
|
59
|
+
requireSequence: unexpectedType(node, 'a sequence'),
|
|
60
|
+
[Symbol.dispose]() {
|
|
61
|
+
// Treat keys that haven't been extracted as invalid an report an error.
|
|
62
|
+
if (matchedKeys != null) {
|
|
63
|
+
for (const item of node.items) {
|
|
64
|
+
const key = item.key;
|
|
65
|
+
if (key instanceof Scalar) {
|
|
66
|
+
const keyName = String(key.value);
|
|
67
|
+
if (!matchedKeys.has(keyName)) {
|
|
68
|
+
report(createYamlError(key, `Unknown key '${keyName}'.`));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
report(createYamlError(key, `Unexpected additional key.`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (missingKeys.size) {
|
|
77
|
+
const keys = [...missingKeys].join(', ');
|
|
78
|
+
report(createYamlError(node, `Missing required keys: ${keys}`));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function wrapSequence(node) {
|
|
84
|
+
return {
|
|
85
|
+
node,
|
|
86
|
+
get items() {
|
|
87
|
+
return node.items.map((e) => wrapNode(e));
|
|
88
|
+
},
|
|
89
|
+
reportError: reportErrorOnNode(node),
|
|
90
|
+
requireMap: unexpectedType(node, 'a map'),
|
|
91
|
+
requireScalar: unexpectedType(node, 'a scalar'),
|
|
92
|
+
requireSequence() {
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function wrapScalar(node) {
|
|
98
|
+
return {
|
|
99
|
+
node,
|
|
100
|
+
reportError: reportErrorOnNode(node),
|
|
101
|
+
requireMap: unexpectedType(node, 'a map'),
|
|
102
|
+
requireScalar() {
|
|
103
|
+
return this;
|
|
104
|
+
},
|
|
105
|
+
requireSequence: unexpectedType(node, 'a sequence'),
|
|
106
|
+
requireNumeric(message) {
|
|
107
|
+
if (typeof node.value != 'number') {
|
|
108
|
+
report(createYamlError(node, message ?? `must be numeric`));
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return node.value;
|
|
112
|
+
},
|
|
113
|
+
requireBoolean(message) {
|
|
114
|
+
if (typeof node.value != 'boolean') {
|
|
115
|
+
report(createYamlError(node, message ?? `must be a boolean`));
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
return node.value;
|
|
119
|
+
},
|
|
120
|
+
requireString(message) {
|
|
121
|
+
if (typeof node.value != 'string') {
|
|
122
|
+
report(createYamlError(node, message ?? `must be a string`));
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
return node.value;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function wrapNode(node) {
|
|
130
|
+
return {
|
|
131
|
+
node,
|
|
132
|
+
reportError: reportErrorOnNode(node),
|
|
133
|
+
requireScalar: node instanceof Scalar ? () => wrapScalar(node) : unexpectedType(node, 'a scalar'),
|
|
134
|
+
requireMap: node instanceof YAMLMap ? () => wrapMap(node) : unexpectedType(node, 'a map'),
|
|
135
|
+
requireSequence: node instanceof YAMLSeq ? () => wrapSequence(node) : unexpectedType(node, 'a sequence')
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return wrapNode(doc.contents);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=yaml_validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml_validation.js","sourceRoot":"","sources":["../src/yaml_validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED