@powersync/service-sync-rules 0.0.0-dev-20260225160713 → 0.0.0-dev-20260511080634

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 (173) hide show
  1. package/README.md +3 -3
  2. package/dist/BaseSqlDataQuery.d.ts +1 -1
  3. package/dist/BaseSqlDataQuery.js +2 -1
  4. package/dist/BaseSqlDataQuery.js.map +1 -1
  5. package/dist/BucketDescription.d.ts +23 -3
  6. package/dist/BucketDescription.js +12 -0
  7. package/dist/BucketDescription.js.map +1 -1
  8. package/dist/BucketParameterQuerier.d.ts +18 -1
  9. package/dist/BucketParameterQuerier.js +39 -3
  10. package/dist/BucketParameterQuerier.js.map +1 -1
  11. package/dist/BucketSource.d.ts +2 -2
  12. package/dist/BucketSource.js +5 -4
  13. package/dist/BucketSource.js.map +1 -1
  14. package/dist/HydratedSyncRules.d.ts +2 -2
  15. package/dist/HydratedSyncRules.js +1 -1
  16. package/dist/HydratedSyncRules.js.map +1 -1
  17. package/dist/HydrationState.d.ts +13 -5
  18. package/dist/HydrationState.js +7 -5
  19. package/dist/HydrationState.js.map +1 -1
  20. package/dist/SqlDataQuery.d.ts +1 -1
  21. package/dist/SqlParameterQuery.js +10 -13
  22. package/dist/SqlParameterQuery.js.map +1 -1
  23. package/dist/SqlSyncRules.d.ts +9 -2
  24. package/dist/SqlSyncRules.js +1 -1
  25. package/dist/SqlSyncRules.js.map +1 -1
  26. package/dist/StaticSqlParameterQuery.js +5 -12
  27. package/dist/StaticSqlParameterQuery.js.map +1 -1
  28. package/dist/StorageVersion.d.ts +27 -0
  29. package/dist/StorageVersion.js +17 -0
  30. package/dist/StorageVersion.js.map +1 -0
  31. package/dist/SyncConfig.d.ts +9 -3
  32. package/dist/SyncConfig.js +9 -3
  33. package/dist/SyncConfig.js.map +1 -1
  34. package/dist/TableValuedFunctionSqlParameterQuery.js +3 -10
  35. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  36. package/dist/TableValuedFunctions.js +1 -0
  37. package/dist/TableValuedFunctions.js.map +1 -1
  38. package/dist/cast.d.ts +9 -0
  39. package/dist/cast.js +131 -0
  40. package/dist/cast.js.map +1 -0
  41. package/dist/compiler/bucket_resolver.d.ts +3 -1
  42. package/dist/compiler/bucket_resolver.js +18 -1
  43. package/dist/compiler/bucket_resolver.js.map +1 -1
  44. package/dist/compiler/compiler.d.ts +3 -3
  45. package/dist/compiler/compiler.js +3 -3
  46. package/dist/compiler/compiler.js.map +1 -1
  47. package/dist/compiler/equality.d.ts +1 -1
  48. package/dist/compiler/equality.js.map +1 -1
  49. package/dist/compiler/expression.d.ts +4 -4
  50. package/dist/compiler/expression.js +2 -2
  51. package/dist/compiler/expression.js.map +1 -1
  52. package/dist/compiler/filter.d.ts +2 -2
  53. package/dist/compiler/filter.js +4 -2
  54. package/dist/compiler/filter.js.map +1 -1
  55. package/dist/compiler/filter_simplifier.d.ts +2 -2
  56. package/dist/compiler/filter_simplifier.js +2 -2
  57. package/dist/compiler/filter_simplifier.js.map +1 -1
  58. package/dist/compiler/ir_to_sync_plan.d.ts +4 -2
  59. package/dist/compiler/ir_to_sync_plan.js +17 -10
  60. package/dist/compiler/ir_to_sync_plan.js.map +1 -1
  61. package/dist/compiler/parser.d.ts +7 -6
  62. package/dist/compiler/parser.js +56 -17
  63. package/dist/compiler/parser.js.map +1 -1
  64. package/dist/compiler/querier_graph.d.ts +2 -1
  65. package/dist/compiler/querier_graph.js +46 -12
  66. package/dist/compiler/querier_graph.js.map +1 -1
  67. package/dist/compiler/rows.d.ts +3 -4
  68. package/dist/compiler/rows.js +3 -8
  69. package/dist/compiler/rows.js.map +1 -1
  70. package/dist/compiler/scope.d.ts +1 -1
  71. package/dist/compiler/sqlite.d.ts +2 -2
  72. package/dist/compiler/sqlite.js +37 -16
  73. package/dist/compiler/sqlite.js.map +1 -1
  74. package/dist/compiler/table.d.ts +43 -2
  75. package/dist/compiler/table.js +129 -9
  76. package/dist/compiler/table.js.map +1 -1
  77. package/dist/events/SqlEventDescriptor.d.ts +1 -1
  78. package/dist/events/SqlEventDescriptor.js +1 -1
  79. package/dist/events/SqlEventDescriptor.js.map +1 -1
  80. package/dist/events/SqlEventSourceQuery.d.ts +1 -1
  81. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  82. package/dist/from_yaml.d.ts +1 -1
  83. package/dist/from_yaml.js +118 -42
  84. package/dist/from_yaml.js.map +1 -1
  85. package/dist/index.d.ts +9 -7
  86. package/dist/index.js +9 -7
  87. package/dist/index.js.map +1 -1
  88. package/dist/json_schema.js +16 -0
  89. package/dist/json_schema.js.map +1 -1
  90. package/dist/schema-generators/DartSchemaGenerator.d.ts +1 -0
  91. package/dist/schema-generators/DartSchemaGenerator.js +36 -2
  92. package/dist/schema-generators/DartSchemaGenerator.js.map +1 -1
  93. package/dist/schema-generators/DotNetSchemaGenerator.d.ts +12 -1
  94. package/dist/schema-generators/DotNetSchemaGenerator.js +104 -3
  95. package/dist/schema-generators/DotNetSchemaGenerator.js.map +1 -1
  96. package/dist/schema-generators/JsLegacySchemaGenerator.js.map +1 -1
  97. package/dist/schema-generators/KotlinSchemaGenerator.d.ts +3 -0
  98. package/dist/schema-generators/KotlinSchemaGenerator.js +68 -5
  99. package/dist/schema-generators/KotlinSchemaGenerator.js.map +1 -1
  100. package/dist/schema-generators/RoomSchemaGenerator.js +3 -19
  101. package/dist/schema-generators/RoomSchemaGenerator.js.map +1 -1
  102. package/dist/schema-generators/SchemaGenerator.d.ts +7 -1
  103. package/dist/schema-generators/SchemaGenerator.js +35 -0
  104. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  105. package/dist/schema-generators/SwiftSchemaGenerator.d.ts +3 -0
  106. package/dist/schema-generators/SwiftSchemaGenerator.js +66 -2
  107. package/dist/schema-generators/SwiftSchemaGenerator.js.map +1 -1
  108. package/dist/schema-generators/TsSchemaGenerator.d.ts +2 -0
  109. package/dist/schema-generators/TsSchemaGenerator.js +45 -8
  110. package/dist/schema-generators/TsSchemaGenerator.js.map +1 -1
  111. package/dist/schema-generators/generators.d.ts +2 -1
  112. package/dist/schema-generators/generators.js +2 -1
  113. package/dist/schema-generators/generators.js.map +1 -1
  114. package/dist/schema-generators/schema-generators.js.map +1 -1
  115. package/dist/sql_filters.d.ts +1 -1
  116. package/dist/sql_filters.js +1 -1
  117. package/dist/sql_filters.js.map +1 -1
  118. package/dist/sql_functions.d.ts +2 -6
  119. package/dist/sql_functions.js +33 -116
  120. package/dist/sql_functions.js.map +1 -1
  121. package/dist/streams/filter.d.ts +2 -4
  122. package/dist/streams/filter.js +2 -1
  123. package/dist/streams/filter.js.map +1 -1
  124. package/dist/streams/from_sql.js +8 -8
  125. package/dist/streams/from_sql.js.map +1 -1
  126. package/dist/streams/stream.d.ts +2 -2
  127. package/dist/streams/variant.d.ts +2 -3
  128. package/dist/streams/variant.js +11 -14
  129. package/dist/streams/variant.js.map +1 -1
  130. package/dist/sync_plan/engine/javascript.js +14 -3
  131. package/dist/sync_plan/engine/javascript.js.map +1 -1
  132. package/dist/sync_plan/engine/sqlite.js +2 -1
  133. package/dist/sync_plan/engine/sqlite.js.map +1 -1
  134. package/dist/sync_plan/evaluator/bucket_data_source.js +4 -3
  135. package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
  136. package/dist/sync_plan/evaluator/bucket_source.d.ts +1 -1
  137. package/dist/sync_plan/evaluator/bucket_source.js +32 -37
  138. package/dist/sync_plan/evaluator/bucket_source.js.map +1 -1
  139. package/dist/sync_plan/evaluator/index.d.ts +8 -2
  140. package/dist/sync_plan/evaluator/index.js +9 -2
  141. package/dist/sync_plan/evaluator/index.js.map +1 -1
  142. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +9 -13
  143. package/dist/sync_plan/evaluator/parameter_evaluator.js +61 -60
  144. package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -1
  145. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +4 -5
  146. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +36 -6
  147. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
  148. package/dist/sync_plan/evaluator/table_processor_to_sql.js +0 -9
  149. package/dist/sync_plan/evaluator/table_processor_to_sql.js.map +1 -1
  150. package/dist/sync_plan/expression.js +40 -40
  151. package/dist/sync_plan/expression.js.map +1 -1
  152. package/dist/sync_plan/expression_visitor.d.ts +4 -1
  153. package/dist/sync_plan/expression_visitor.js +21 -12
  154. package/dist/sync_plan/expression_visitor.js.map +1 -1
  155. package/dist/sync_plan/plan.d.ts +2 -3
  156. package/dist/sync_plan/schema_inference.d.ts +6 -2
  157. package/dist/sync_plan/schema_inference.js +104 -3
  158. package/dist/sync_plan/schema_inference.js.map +1 -1
  159. package/dist/sync_plan/serialize.d.ts +1 -1
  160. package/dist/types/custom_sqlite_value.d.ts +1 -1
  161. package/dist/types/custom_sqlite_value.js +1 -1
  162. package/dist/types.d.ts +4 -1
  163. package/dist/types.js +1 -1
  164. package/dist/types.js.map +1 -1
  165. package/dist/utils.d.ts +27 -5
  166. package/dist/utils.js +56 -18
  167. package/dist/utils.js.map +1 -1
  168. package/dist/validators.js.map +1 -1
  169. package/dist/yaml_scalar_map.d.ts +19 -0
  170. package/dist/yaml_scalar_map.js +339 -0
  171. package/dist/yaml_scalar_map.js.map +1 -0
  172. package/package.json +9 -7
  173. package/schema/sync_rules.json +18 -0
@@ -1,4 +1,7 @@
1
+ import { MapSourceVisitor, visitExpr } from '../sync_plan/expression_visitor.js';
1
2
  import { equalsIgnoringResultSetList } from './compatibility.js';
3
+ import { ColumnInRow, SyncExpression } from './expression.js';
4
+ import { SingleDependencyExpression } from './filter.js';
2
5
  /**
3
6
  * The syntactic sources of a {@link SourceResultSet} being added to a table.
4
7
  */
@@ -15,6 +18,20 @@ export class BaseSourceResultSet {
15
18
  constructor(source) {
16
19
  this.source = source;
17
20
  }
21
+ static areCompatible(a, b) {
22
+ if (a === b) {
23
+ return true;
24
+ }
25
+ if (a instanceof TableValuedResultSet) {
26
+ return a.canAttachTo(b);
27
+ }
28
+ else if (b instanceof TableValuedResultSet) {
29
+ return b.canAttachTo(a);
30
+ }
31
+ else {
32
+ return false;
33
+ }
34
+ }
18
35
  }
19
36
  /**
20
37
  * A {@link SourceResultSet} selecting rows from a table in the source database.
@@ -37,9 +54,15 @@ export class PhysicalSourceResultSet extends BaseSourceResultSet {
37
54
  this.tablePattern = tablePattern;
38
55
  this.schemaTablesForWarnings = schemaTablesForWarnings;
39
56
  }
57
+ get evaluationTarget() {
58
+ return this;
59
+ }
40
60
  get description() {
41
61
  return this.tablePattern.name;
42
62
  }
63
+ clone(references) {
64
+ return new PhysicalSourceResultSet(this.tablePattern, references.getClonedSyntacticSource(this.source), this.schemaTablesForWarnings);
65
+ }
43
66
  }
44
67
  /**
45
68
  * A {@link SourceResultSet} applying a table-valued function with inputs that all depend on either a single result set
@@ -48,28 +71,55 @@ export class PhysicalSourceResultSet extends BaseSourceResultSet {
48
71
  export class TableValuedResultSet extends BaseSourceResultSet {
49
72
  tableValuedFunctionName;
50
73
  parameters;
74
+ // non-null: References inputs from a physical result set.
75
+ // null: References connection data.
76
+ // undefined: Static inputs only, can evaluate with a physical result set.
77
+ #attachedToPhysicalTable;
51
78
  constructor(tableValuedFunctionName, parameters, source) {
52
79
  super(source);
53
80
  this.tableValuedFunctionName = tableValuedFunctionName;
54
81
  this.parameters = parameters;
55
82
  // All parameters must depend on the same result set.
56
- const resultSet = this.inputResultSet;
57
- for (const parameter of parameters) {
58
- if (parameter.resultSet !== resultSet) {
59
- throw new Error('Illegal table-valued result set: All inputs must depend on a single result set or request data.');
83
+ if (this.parameters.length) {
84
+ const firstParameter = this.parameters[0];
85
+ const resultSet = firstParameter.resultSet;
86
+ if (resultSet instanceof TableValuedResultSet) {
87
+ throw new Error('Table-valued functions cannot use inputs from other table-valued functions');
88
+ }
89
+ this.#attachedToPhysicalTable = firstParameter.dependsOnConnection ? null : (resultSet ?? undefined);
90
+ for (const parameter of parameters) {
91
+ if (parameter.resultSet !== resultSet) {
92
+ throw new Error('Illegal table-valued result set: All inputs must depend on a single result set or request data.');
93
+ }
60
94
  }
61
95
  }
62
96
  }
63
97
  get inputResultSet() {
64
- // It's the same for all inputs, validated in the constructor
65
- if (this.parameters.length) {
66
- return this.parameters[0].resultSet;
67
- }
68
- return null;
98
+ return this.#attachedToPhysicalTable ?? null;
99
+ }
100
+ get evaluationTarget() {
101
+ return this.#attachedToPhysicalTable ?? this;
69
102
  }
70
103
  get description() {
71
104
  return this.tableValuedFunctionName;
72
105
  }
106
+ canAttachTo(table) {
107
+ if (this.#attachedToPhysicalTable === table) {
108
+ return true;
109
+ }
110
+ else if (this.#attachedToPhysicalTable === undefined && table instanceof PhysicalSourceResultSet) {
111
+ // This table-valued function was not previously attached to a source result set, so we can attach it to any
112
+ // physical table. This can only be done once (because it's a single logical result set, we must not evaluate
113
+ // the function twice), but the table we attach it to is arbitrary.
114
+ // Attaching a static table-valued function to a result set improves the efficiency of sync plans, since it allows
115
+ // turning parameter match clauses into static row filters that reduce the amount of buckets.
116
+ this.#attachedToPhysicalTable = table;
117
+ return true;
118
+ }
119
+ else {
120
+ return false;
121
+ }
122
+ }
73
123
  buildBehaviorHashCode(hasher) {
74
124
  hasher.addString(this.tableValuedFunctionName);
75
125
  equalsIgnoringResultSetList.hash(hasher, this.parameters);
@@ -78,5 +128,75 @@ export class TableValuedResultSet extends BaseSourceResultSet {
78
128
  return (other.tableValuedFunctionName == this.tableValuedFunctionName &&
79
129
  equalsIgnoringResultSetList.equals(other.parameters, this.parameters));
80
130
  }
131
+ clone(references) {
132
+ return new TableValuedResultSet(this.tableValuedFunctionName, this.parameters.map((p) => new SingleDependencyExpression(references.cloneSyncExpression(p.expression))), references.getClonedSyntacticSource(this.source));
133
+ }
134
+ }
135
+ /**
136
+ * Clones result set instances and associated expressions.
137
+ *
138
+ * This is necessary to safely implement common table expressions in Sync Streams: We use the identity of
139
+ * {@link SourceResultSet} instances to track dependencies between expressions and to convert `WHERE` clauses into a
140
+ * querier and parameter lookups. Semantically, when a CTE is joined multiple times, each CTE acts as an independently-
141
+ * joined subquery. To implement these semantics correctly, we need to join result set instances every time we add a
142
+ * CTE to a query.
143
+ */
144
+ export class CloneTableReferences {
145
+ syntacticClone = new Map();
146
+ clonedResultSets = new Map();
147
+ cloneExpressions;
148
+ constructor(originalResultSets, locations) {
149
+ this.cloneExpressions = new MapSourceVisitor((data) => {
150
+ if (data instanceof ColumnInRow) {
151
+ return new ColumnInRow(data.syntacticOrigin, this.getClonedSource(data.resultSet), data.column);
152
+ }
153
+ return data;
154
+ }, locations);
155
+ for (const source of originalResultSets.keys()) {
156
+ const clone = new SyntacticResultSetSource(source.origin, source.explicitName);
157
+ this.syntacticClone.set(source, clone);
158
+ }
159
+ for (const value of originalResultSets.values()) {
160
+ this.clonedResultSets.set(value, value.clone(this));
161
+ }
162
+ }
163
+ getClonedSyntacticSource(source) {
164
+ const cloned = this.syntacticClone.get(source);
165
+ if (cloned == null)
166
+ throw new Error('Syntactic source not part of original result sets');
167
+ return cloned;
168
+ }
169
+ getClonedSource(source) {
170
+ const cloned = this.clonedResultSets.get(source);
171
+ if (cloned == null)
172
+ throw new Error('Source not part of original result sets');
173
+ return cloned;
174
+ }
175
+ cloneExpression(source) {
176
+ return visitExpr(this.cloneExpressions, source, null);
177
+ }
178
+ cloneSyncExpression(expr) {
179
+ return new SyncExpression(this.cloneExpression(expr.node), expr.locations);
180
+ }
181
+ static clonePreparedSubquery(subquery, locations) {
182
+ const cloner = new CloneTableReferences(subquery.tables, locations);
183
+ const resultColumns = {};
184
+ const tables = new Map();
185
+ let where = null;
186
+ for (const [name, value] of Object.entries(subquery.resultColumns)) {
187
+ resultColumns[name] = cloner.cloneExpression(value);
188
+ }
189
+ subquery.tables.forEach((v, k) => {
190
+ tables.set(cloner.getClonedSyntacticSource(k), cloner.getClonedSource(v));
191
+ });
192
+ if (subquery.where) {
193
+ where = cloner.cloneExpression(subquery.where);
194
+ }
195
+ return {
196
+ resultColumns,
197
+ tables,
198
+ where
199
+ };
200
+ }
81
201
  }
82
202
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/compiler/table.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAgBjE;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAExB;IACA;IAFX,YACW,MAAc,EACd,YAA2B;QAD3B,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAe;IACnC,CAAC;CACL;AAED,MAAM,OAAgB,mBAAmB;IAClB;IAArB,YAAqB,MAAgC;QAAhC,WAAM,GAAN,MAAM,CAA0B;IAAG,CAAC;CAG1D;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IAEnD;IASA;IAVX,YACW,YAAwC,EACjD,MAAgC;IAChC;;;;;;OAMG;IACM,uBAA4C;QAErD,KAAK,CAAC,MAAM,CAAC,CAAC;QAXL,iBAAY,GAAZ,YAAY,CAA4B;QASxC,4BAAuB,GAAvB,uBAAuB,CAAqB;IAGvD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAEhD;IACA;IAFX,YACW,uBAA+B,EAC/B,UAAwC,EACjD,MAAgC;QAEhC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJL,4BAAuB,GAAvB,uBAAuB,CAAQ;QAC/B,eAAU,GAAV,UAAU,CAA8B;QAKjD,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc;QAChB,6DAA6D;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,qBAAqB,CAAC,MAAoB;QACxC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/C,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,CACL,KAAK,CAAC,uBAAuB,IAAI,IAAI,CAAC,uBAAuB;YAC7D,2BAA2B,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CACtE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/compiler/table.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { TablePattern } from '../TablePattern.js';
6
6
  import { EvaluateRowOptions } from '../types.js';
7
7
  import { EvaluatedEventRowWithErrors, SqlEventSourceQuery } from './SqlEventSourceQuery.js';
8
8
  /**
9
- * A sync rules event which is triggered from a SQL table change.
9
+ * A sync config event which is triggered from a SQL table change.
10
10
  */
11
11
  export declare class SqlEventDescriptor {
12
12
  private readonly compatibility;
@@ -1,7 +1,7 @@
1
1
  import { SqlRuleError } from '../errors.js';
2
2
  import { SqlEventSourceQuery } from './SqlEventSourceQuery.js';
3
3
  /**
4
- * A sync rules event which is triggered from a SQL table change.
4
+ * A sync config event which is triggered from a SQL table change.
5
5
  */
6
6
  export class SqlEventDescriptor {
7
7
  compatibility;
@@ -1 +1 @@
1
- {"version":3,"file":"SqlEventDescriptor.js","sourceRoot":"","sources":["../../src/events/SqlEventDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,EAA+B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAMV;IALnB,IAAI,CAAS;IACb,aAAa,GAA0B,EAAE,CAAC;IAE1C,YACE,IAAY,EACK,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;QAEpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAyB;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7E,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,IAAI,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;aAClF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,eAAe;QACb,IAAI,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QACrC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"SqlEventDescriptor.js","sourceRoot":"","sources":["../../src/events/SqlEventDescriptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,OAAO,EAA+B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAMV;IALnB,IAAI,CAAS;IACb,aAAa,GAA0B,EAAE,CAAC;IAE1C,YACE,IAAY,EACK,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;QAEpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAyB;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7E,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,IAAI,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;aAClF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,eAAe;QACb,IAAI,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QACrC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  import { BaseSqlDataQuery, BaseSqlDataQueryOptions } from '../BaseSqlDataQuery.js';
2
+ import { CompatibilityContext } from '../compatibility.js';
2
3
  import { SourceTableInterface } from '../SourceTableInterface.js';
3
4
  import { SyncRulesOptions } from '../SqlSyncRules.js';
4
5
  import { EvaluationError, SqliteJsonRow, SqliteRow } from '../types.js';
5
- import { CompatibilityContext } from '../compatibility.js';
6
6
  export type EvaluatedEventSourceRow = {
7
7
  data: SqliteJsonRow;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SqlEventSourceQuery.js","sourceRoot":"","sources":["../../src/events/SqlEventSourceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlEventSourceQuery.js","sourceRoot":"","sources":["../../src/events/SqlEventSourceQuery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { SourceSchema } from './types.js';
2
1
  import { SyncConfigWithErrors } from './SyncConfig.js';
2
+ import { SourceSchema } from './types.js';
3
3
  /**
4
4
  * Reads `sync_rules.yaml` files containing a sync configuration.
5
5
  *
package/dist/from_yaml.js CHANGED
@@ -1,15 +1,18 @@
1
1
  import { isScalar, LineCounter, parseDocument, Scalar, YAMLMap, YAMLSeq } from 'yaml';
2
- import { SqlRuleError, SyncRulesErrors, YamlError } from './errors.js';
3
2
  import { DEFAULT_BUCKET_PRIORITY, isValidPriority } from './BucketDescription.js';
4
3
  import { CompatibilityContext, CompatibilityEdition, CompatibilityOption, TimeValuePrecision } from './compatibility.js';
5
- import { SqlSyncRules } from './SqlSyncRules.js';
6
- import { validateSyncRulesSchema } from './json_schema.js';
4
+ import { SyncStreamsCompiler } from './compiler/compiler.js';
5
+ import { SqlRuleError, SyncRulesErrors, YamlError } from './errors.js';
7
6
  import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
7
+ import { validateSyncRulesSchema } from './json_schema.js';
8
8
  import { SqlBucketDescriptor } from './SqlBucketDescriptor.js';
9
- import { SyncStreamsCompiler } from './compiler/compiler.js';
9
+ import { SqlSyncRules } from './SqlSyncRules.js';
10
+ import { validateStorageVersion } from './StorageVersion.js';
10
11
  import { syncStreamFromSql } from './streams/from_sql.js';
11
- import { PrecompiledSyncConfig } from './sync_plan/evaluator/index.js';
12
12
  import { javaScriptExpressionEngine } from './sync_plan/engine/javascript.js';
13
+ import { PrecompiledSyncConfig } from './sync_plan/evaluator/index.js';
14
+ import { TablePattern } from './TablePattern.js';
15
+ import { buildParsedToSourceValueMap, isBlockScalar, isQuotedScalar } from './yaml_scalar_map.js';
13
16
  const ACCEPT_POTENTIALLY_DANGEROUS_QUERIES = Symbol('ACCEPT_POTENTIALLY_DANGEROUS_QUERIES');
14
17
  /**
15
18
  * Reads `sync_rules.yaml` files containing a sync configuration.
@@ -47,14 +50,16 @@ export class SyncConfigFromYaml {
47
50
  if (parsed.errors.length > 0) {
48
51
  this.#errors.push(...parsed.errors.map((e) => new YamlError(e)));
49
52
  this.#throwOnErrorIfRequested();
50
- // Return an empty sync rules instance if we couldn't parse YAML, it doesn't make sense to try parsing the broken
53
+ // Return an empty sync config instance if we couldn't parse YAML, it doesn't make sense to try parsing the broken
51
54
  // structure further.
52
55
  return new SqlSyncRules(this.yaml);
53
56
  }
54
57
  let compatibility;
58
+ let storageVersion;
55
59
  if (parsed.has('config')) {
56
60
  const declaredOptions = parsed.get('config');
57
61
  compatibility = this.#parseCompatibilityOptions(declaredOptions);
62
+ storageVersion = this.#validateStorageVersion(declaredOptions);
58
63
  }
59
64
  else {
60
65
  compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
@@ -62,28 +67,39 @@ export class SyncConfigFromYaml {
62
67
  // Bucket definitions using explicit parameter and data queries.
63
68
  const bucketMap = parsed.get('bucket_definitions');
64
69
  const streamMap = parsed.get('streams');
70
+ const globalCtes = parsed.get('with');
65
71
  let result;
66
72
  if (compatibility.edition >= CompatibilityEdition.COMPILED_STREAMS) {
67
- result = this.#compileSyncPlan(bucketMap, streamMap, compatibility);
73
+ result = this.#compileSyncPlan(bucketMap, streamMap, globalCtes, compatibility);
68
74
  }
69
75
  else {
76
+ if (globalCtes != null) {
77
+ // We don't support CTEs at all in this compiler implementation.
78
+ this.#errors.push(this.#yamlError(globalCtes, 'Common table expressions are not supported without the `sync_config_compiler` option.'));
79
+ }
70
80
  result = this.#legacyParseBucketDefinitionsAndStreams(bucketMap, streamMap, compatibility);
71
81
  }
82
+ result.storageVersion = storageVersion;
72
83
  const eventDefinitions = this.#parseEventDefinitions(parsed, compatibility);
73
84
  result.eventDescriptors.push(...eventDefinitions);
74
85
  // Validate that there are no additional properties.
75
86
  // Since these errors don't contain line numbers, do this last.
76
- const valid = validateSyncRulesSchema(parsed.toJSON());
77
- if (!valid) {
78
- this.#errors.push(...validateSyncRulesSchema.errors.map((e) => {
79
- return new YamlError(e);
80
- }));
87
+ if (!this.#hasFatalError) {
88
+ const valid = validateSyncRulesSchema(parsed.toJSON());
89
+ if (!valid) {
90
+ this.#errors.push(...validateSyncRulesSchema.errors.map((e) => {
91
+ return new YamlError(e);
92
+ }));
93
+ }
81
94
  }
82
95
  this.#throwOnErrorIfRequested();
83
96
  return result;
84
97
  }
98
+ get #hasFatalError() {
99
+ return this.#errors.find((e) => e.type != 'warning') != null;
100
+ }
85
101
  #throwOnErrorIfRequested() {
86
- if (this.options.throwOnError && this.#errors.find((e) => e.type != 'warning') != null) {
102
+ if (this.options.throwOnError && this.#hasFatalError) {
87
103
  throw new SyncRulesErrors(this.#errors);
88
104
  }
89
105
  }
@@ -117,7 +133,7 @@ export class SyncConfigFromYaml {
117
133
  }
118
134
  return compatibility;
119
135
  }
120
- #compileSyncPlan(bucketMap, streamMap, compatibility) {
136
+ #compileSyncPlan(bucketMap, streamMap, globalCtes, compatibility) {
121
137
  if (bucketMap != null) {
122
138
  this.#errors.push(this.#yamlError(bucketMap, `'bucket_definitions' are not supported by the new compiler. Consider using https://powersync-community.github.io/bucket-definitions-to-sync-streams/ to translate them to streams.`));
123
139
  }
@@ -125,6 +141,33 @@ export class SyncConfigFromYaml {
125
141
  this.#errors.push(new YamlError(new Error(`'streams' are required.`)));
126
142
  }
127
143
  const compiler = new SyncStreamsCompiler(this.options);
144
+ const parseCommonTableExpressions = (from) => {
145
+ const map = new Map();
146
+ if (from != null) {
147
+ for (const entry of from.items ?? []) {
148
+ const { key: cteNameScalar, value: cteQuery } = entry;
149
+ const cteName = cteNameScalar.value;
150
+ if (this.options.schema) {
151
+ // Emit a warning if the CTE shadows a name from the schema.
152
+ const pattern = new TablePattern(this.options.defaultSchema, cteName);
153
+ if (this.options.schema.getTables(pattern)?.length > 0) {
154
+ const error = this.#yamlError(cteNameScalar, 'This common table expression shadows the name of a table in the source schema.');
155
+ error.type = 'warning';
156
+ this.#errors.push(error);
157
+ }
158
+ }
159
+ if (this.#expectScalar(cteQuery)) {
160
+ const [sql, errorListener] = this.#scalarErrorListener(cteQuery);
161
+ const parsed = compiler.commonTableExpression(sql, errorListener);
162
+ if (parsed) {
163
+ map.set(cteName, parsed);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ return map;
169
+ };
170
+ const parsedGlobalCommonTableExpressions = parseCommonTableExpressions(globalCtes);
128
171
  for (const entry of streamMap?.items ?? []) {
129
172
  const { key: keyScalar, value } = entry;
130
173
  if (!(value instanceof YAMLMap)) {
@@ -135,26 +178,20 @@ export class SyncConfigFromYaml {
135
178
  if (!this.#checkUniqueName(key, keyScalar)) {
136
179
  continue;
137
180
  }
138
- const $with = value.get('with');
139
181
  const streamCompiler = compiler.stream({
140
182
  name: key,
141
183
  isSubscribedByDefault: value.get('auto_subscribe', true)?.value == true,
142
184
  priority: this.#parsePriority(value) ?? DEFAULT_BUCKET_PRIORITY,
143
185
  warnOnDangerousParameter: !this.#acceptPotentiallyUnsafeQueries(value)
144
186
  });
145
- if ($with != null) {
146
- for (const entry of $with.items ?? []) {
147
- const { key: cteName, value: cteQuery } = entry;
148
- const [sql, errorListener] = this.#scalarErrorListener(cteQuery);
149
- const parsed = compiler.commonTableExpression(sql, errorListener);
150
- if (parsed) {
151
- streamCompiler.registerCommonTableExpression(cteName.value, parsed);
152
- }
153
- }
154
- }
187
+ parsedGlobalCommonTableExpressions.forEach((query, name) => streamCompiler.registerCommonTableExpression(name, query));
188
+ // Add stream-local CTEs, which shadow global definitions.
189
+ parseCommonTableExpressions(value.get('with')).forEach((query, name) => streamCompiler.registerCommonTableExpression(name, query));
155
190
  const addQuery = (query) => {
156
- const [sql, errorListener] = this.#scalarErrorListener(query);
157
- streamCompiler.addQuery(sql, errorListener);
191
+ if (this.#expectScalar(query)) {
192
+ const [sql, errorListener] = this.#scalarErrorListener(query);
193
+ streamCompiler.addQuery(sql, errorListener);
194
+ }
158
195
  };
159
196
  const queries = value.get('queries');
160
197
  const query = value.get('query', true);
@@ -166,9 +203,7 @@ export class SyncConfigFromYaml {
166
203
  }
167
204
  if (queries) {
168
205
  for (const queryEntry of queries.items) {
169
- if (queryEntry instanceof Scalar) {
170
- addQuery(queryEntry);
171
- }
206
+ addQuery(queryEntry);
172
207
  }
173
208
  }
174
209
  streamCompiler.finish();
@@ -286,6 +321,29 @@ export class SyncConfigFromYaml {
286
321
  }
287
322
  return rules;
288
323
  }
324
+ #validateStorageVersion(config) {
325
+ const storageScalar = config.get('storage_version', true);
326
+ if (storageScalar != null) {
327
+ if (typeof storageScalar.value == 'number') {
328
+ const rawVersion = storageScalar.value;
329
+ const version = validateStorageVersion(storageScalar.value);
330
+ if (version == null) {
331
+ this.#errors.push(this.#yamlError(storageScalar, `Storage version ${storageScalar.value} is not supported`));
332
+ }
333
+ else if (!version.stable) {
334
+ const error = this.#yamlError(storageScalar, `Storage version ${version.version} is unstable, and may cause unexpected behavior or stop functioning in any release`);
335
+ error.type = 'warning';
336
+ this.#errors.push(error);
337
+ }
338
+ return version?.version;
339
+ }
340
+ else {
341
+ this.#errors.push(this.#yamlError(storageScalar, 'Storage version must be numeric'));
342
+ return undefined;
343
+ }
344
+ }
345
+ return undefined;
346
+ }
289
347
  #parseEventDefinitions(parsed, compatibility) {
290
348
  const eventMap = parsed.get('event_definitions');
291
349
  const eventDescriptors = [];
@@ -350,7 +408,17 @@ export class SyncConfigFromYaml {
350
408
  const end = start + 1;
351
409
  return new YamlError(new Error(message), { start, end });
352
410
  }
411
+ #expectScalar(node) {
412
+ if (!(node instanceof Scalar)) {
413
+ this.#errors.push(this.#yamlError(node, 'Expected a scalar value here.'));
414
+ return false;
415
+ }
416
+ return true;
417
+ }
353
418
  #withScalar(scalar, cb) {
419
+ if (!this.#expectScalar(scalar)) {
420
+ return;
421
+ }
354
422
  const value = scalar.toString();
355
423
  const wrapped = (value) => {
356
424
  try {
@@ -367,7 +435,7 @@ export class SyncConfigFromYaml {
367
435
  for (let err of result.errors) {
368
436
  this.#addErrorFromScalar(scalar, value, err);
369
437
  }
370
- return result;
438
+ return;
371
439
  }
372
440
  /**
373
441
  * Reads string contents from a YAML scalar and returns an error listener for the sync stream compiler.
@@ -393,24 +461,32 @@ export class SyncConfigFromYaml {
393
461
  * @param error An error in the scalar content. Offsets will be translated to point at the full YAML source.
394
462
  */
395
463
  #addErrorFromScalar(scalar, value, err) {
396
- let sourceOffset = scalar.srcToken.offset;
397
- if (scalar.type == Scalar.QUOTE_DOUBLE || scalar.type == Scalar.QUOTE_SINGLE) {
398
- // TODO: Is there a better way to do this?
399
- sourceOffset += 1;
400
- }
464
+ const srcToken = scalar.srcToken;
465
+ // For block scalars, skip past the | or > header line. For quoted scalars, skip the opening quote.
466
+ const valueStart = isBlockScalar(scalar.type)
467
+ ? this.yaml.indexOf('\n', srcToken.offset) + 1
468
+ : srcToken.offset + (isQuotedScalar(scalar.type) ? 1 : 0);
401
469
  let offset;
402
470
  let end;
471
+ // Build an offset map to translate parsed-value positions to source positions, handling
472
+ // escape sequences in quoted scalars and stripped indentation in block scalars.
473
+ const valueSource = isQuotedScalar(scalar.type)
474
+ ? this.yaml.slice(valueStart, scalar.range[1] - 1)
475
+ : this.yaml.slice(valueStart, scalar.range[1]);
476
+ const offsetMap = buildParsedToSourceValueMap(valueSource, scalar.type);
403
477
  if (err instanceof SqlRuleError && err.location) {
404
- offset = err.location.start + sourceOffset;
405
- end = err.location.end + sourceOffset;
478
+ offset = valueStart + (offsetMap[err.location.start] ?? err.location.start);
479
+ end = valueStart + (offsetMap[err.location.end] ?? err.location.end);
406
480
  }
407
481
  else if (typeof err.token?._location?.start == 'number') {
408
- offset = sourceOffset + err.token?._location?.start;
409
- end = sourceOffset + err.token?._location?.end;
482
+ const rawStart = err.token._location.start;
483
+ const rawEnd = err.token._location.end;
484
+ offset = valueStart + (offsetMap[rawStart] ?? rawStart);
485
+ end = valueStart + (offsetMap[rawEnd] ?? rawEnd);
410
486
  }
411
487
  else {
412
- offset = sourceOffset;
413
- end = sourceOffset + Math.max(value.length, 1);
488
+ offset = valueStart;
489
+ end = valueStart + Math.max(value.length, 1);
414
490
  }
415
491
  const pos = { start: offset, end };
416
492
  this.#errors.push(new YamlError(err, pos));
@@ -1 +1 @@
1
- {"version":3,"file":"from_yaml.js","sourceRoot":"","sources":["../src/from_yaml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from_yaml.js","sourceRoot":"","sources":["../src/from_yaml.ts"],"names":[],"mappings":"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"}