@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.
Files changed (97) hide show
  1. package/LICENSE +3 -3
  2. package/dist/BaseSqlDataQuery.d.ts +9 -1
  3. package/dist/BaseSqlDataQuery.js +42 -0
  4. package/dist/BaseSqlDataQuery.js.map +1 -1
  5. package/dist/BucketDescription.d.ts +16 -0
  6. package/dist/BucketParameterQuerier.d.ts +19 -3
  7. package/dist/BucketParameterQuerier.js.map +1 -1
  8. package/dist/BucketSource.d.ts +72 -0
  9. package/dist/BucketSource.js +6 -0
  10. package/dist/BucketSource.js.map +1 -0
  11. package/dist/ExpressionType.d.ts +2 -1
  12. package/dist/ExpressionType.js +1 -1
  13. package/dist/ExpressionType.js.map +1 -1
  14. package/dist/SqlBucketDescriptor.d.ts +40 -8
  15. package/dist/SqlBucketDescriptor.js +78 -10
  16. package/dist/SqlBucketDescriptor.js.map +1 -1
  17. package/dist/SqlDataQuery.d.ts +4 -3
  18. package/dist/SqlDataQuery.js +10 -30
  19. package/dist/SqlDataQuery.js.map +1 -1
  20. package/dist/SqlParameterQuery.d.ts +4 -4
  21. package/dist/SqlParameterQuery.js +9 -4
  22. package/dist/SqlParameterQuery.js.map +1 -1
  23. package/dist/SqlSyncRules.d.ts +55 -7
  24. package/dist/SqlSyncRules.js +126 -47
  25. package/dist/SqlSyncRules.js.map +1 -1
  26. package/dist/StaticSqlParameterQuery.d.ts +2 -2
  27. package/dist/StaticSqlParameterQuery.js +3 -2
  28. package/dist/StaticSqlParameterQuery.js.map +1 -1
  29. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +2 -2
  30. package/dist/TableValuedFunctionSqlParameterQuery.js +11 -10
  31. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  32. package/dist/TableValuedFunctions.d.ts +2 -2
  33. package/dist/TableValuedFunctions.js +38 -35
  34. package/dist/TableValuedFunctions.js.map +1 -1
  35. package/dist/compatibility.d.ts +40 -0
  36. package/dist/compatibility.js +56 -0
  37. package/dist/compatibility.js.map +1 -0
  38. package/dist/events/SqlEventDescriptor.d.ts +3 -1
  39. package/dist/events/SqlEventDescriptor.js +4 -2
  40. package/dist/events/SqlEventDescriptor.js.map +1 -1
  41. package/dist/events/SqlEventSourceQuery.d.ts +2 -1
  42. package/dist/events/SqlEventSourceQuery.js +3 -2
  43. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  44. package/dist/index.d.ts +7 -0
  45. package/dist/index.js +7 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/json_schema.js +54 -1
  48. package/dist/json_schema.js.map +1 -1
  49. package/dist/request_functions.d.ts +24 -4
  50. package/dist/request_functions.js +68 -17
  51. package/dist/request_functions.js.map +1 -1
  52. package/dist/schema-generators/SchemaGenerator.js +2 -12
  53. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  54. package/dist/sql_filters.d.ts +25 -2
  55. package/dist/sql_filters.js +223 -119
  56. package/dist/sql_filters.js.map +1 -1
  57. package/dist/sql_functions.d.ts +13 -31
  58. package/dist/sql_functions.js +191 -114
  59. package/dist/sql_functions.js.map +1 -1
  60. package/dist/sql_support.d.ts +20 -0
  61. package/dist/sql_support.js +67 -14
  62. package/dist/sql_support.js.map +1 -1
  63. package/dist/streams/filter.d.ts +148 -0
  64. package/dist/streams/filter.js +426 -0
  65. package/dist/streams/filter.js.map +1 -0
  66. package/dist/streams/from_sql.d.ts +4 -0
  67. package/dist/streams/from_sql.js +375 -0
  68. package/dist/streams/from_sql.js.map +1 -0
  69. package/dist/streams/functions.d.ts +2 -0
  70. package/dist/streams/functions.js +38 -0
  71. package/dist/streams/functions.js.map +1 -0
  72. package/dist/streams/parameter.d.ts +67 -0
  73. package/dist/streams/parameter.js +2 -0
  74. package/dist/streams/parameter.js.map +1 -0
  75. package/dist/streams/stream.d.ts +40 -0
  76. package/dist/streams/stream.js +139 -0
  77. package/dist/streams/stream.js.map +1 -0
  78. package/dist/streams/utils.d.ts +1 -0
  79. package/dist/streams/utils.js +13 -0
  80. package/dist/streams/utils.js.map +1 -0
  81. package/dist/streams/variant.d.ts +122 -0
  82. package/dist/streams/variant.js +266 -0
  83. package/dist/streams/variant.js.map +1 -0
  84. package/dist/types/custom_sqlite_value.d.ts +38 -0
  85. package/dist/types/custom_sqlite_value.js +50 -0
  86. package/dist/types/custom_sqlite_value.js.map +1 -0
  87. package/dist/types/time.d.ts +33 -0
  88. package/dist/types/time.js +67 -0
  89. package/dist/types/time.js.map +1 -0
  90. package/dist/types.d.ts +52 -9
  91. package/dist/types.js +28 -2
  92. package/dist/types.js.map +1 -1
  93. package/dist/utils.d.ts +9 -6
  94. package/dist/utils.js +42 -17
  95. package/dist/utils.js.map +1 -1
  96. package/package.json +3 -3
  97. package/schema/sync_rules.json +84 -2
@@ -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
- try {
155
- const tables = { [this.table]: this.addSpecialParameters(table, row) };
156
- const bucketParameters = this.filter.filterRow(tables);
157
- const bucketIds = bucketParameters.map((params) => getBucketId(this.descriptorName, this.bucketParameters, params));
158
- const data = this.transformRow(tables);
159
- let id = data.id;
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
- const outputTable = this.getOutputName(table.name);
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
@@ -1 +1 @@
1
- {"version":3,"file":"SqlDataQuery.js","sourceRoot":"","sources":["../src/SqlDataQuery.ts"],"names":[],"mappings":"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"}
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":"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"}
@@ -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, SqlBucketDescriptor } from './SqlBucketDescriptor.js';
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
- bucketDescriptors: SqlBucketDescriptor[];
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: SqliteRow): EvaluatedParameters[];
42
- evaluateParameterRowWithErrors(table: SourceTableInterface, row: SqliteRow): {
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(parameters: RequestParameters): BucketParameterQuerier;
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
  }
@@ -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
- bucketDescriptors = [];
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
- if (bucketMap == null) {
60
- rules.errors.push(new YamlError(new Error(`'bucket_definitions' is required`)));
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.items) {
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
- let parseOptionPriority = undefined;
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
- rules.bucketDescriptors.push(descriptor);
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 query of this.bucketDescriptors) {
220
- rawResults.push(...query.evaluateRow(options));
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 query of this.bucketDescriptors) {
239
- rawResults.push(...query.evaluateParameterRow(table, row));
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(parameters) {
246
- const queriers = this.bucketDescriptors.map((query) => query.getBucketParameterQuerier(parameters));
247
- return mergeBucketParameterQueriers(queriers);
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.bucketDescriptors.some((query) => query.hasDynamicBucketQueries());
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.bucketDescriptors) {
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
- for (const bucket of this.bucketDescriptors) {
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
- for (let bucket of this.bucketDescriptors) {
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.bucketDescriptors) {
300
- for (let q of bucket.dataQueries) {
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