@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,7 +1,7 @@
1
1
  import { CompatibilityContext } from '../compatibility.js';
2
2
  import { ExpressionType } from '../ExpressionType.js';
3
3
  import { generateSqlFunctions, getOperatorReturnType } from '../sql_functions.js';
4
- import { visitExpr } from './expression_visitor.js';
4
+ import { RecursiveExpressionVisitor, visitExpr } from './expression_visitor.js';
5
5
  /**
6
6
  * Infers the output schema of sync streams by resolving references against a statically-known source schema.
7
7
  */
@@ -29,8 +29,7 @@ export class SyncPlanSchemaAnalyzer {
29
29
  if (existing != null) {
30
30
  outputTable[definition.name] = {
31
31
  name: definition.name,
32
- type: existing.type.or(definition.type),
33
- originalType: definition.originalType == existing.originalType ? existing.originalType : undefined
32
+ ...mergeType(existing, definition)
34
33
  };
35
34
  }
36
35
  else {
@@ -50,6 +49,81 @@ export class SyncPlanSchemaAnalyzer {
50
49
  }
51
50
  }
52
51
  }
52
+ /**
53
+ * Resolves all parameters referenced in queriers for a stream, and attempts to infer their type.
54
+ */
55
+ resolveReferencedParameters(queriers) {
56
+ const parameters = {};
57
+ const parameterInference = new ParameterTypeInference(parameters);
58
+ const mergeTypes = (a, b) => {
59
+ return a.map((type, index) => {
60
+ const other = b[index];
61
+ return mergeType(type, other);
62
+ });
63
+ };
64
+ // Infers the type of parameters created by a bucket or parameter lookup.
65
+ const inferSourceParameters = (sources) => {
66
+ let mergedTypes = null;
67
+ for (const source of sources) {
68
+ const tables = this.schema.getTables(source.sourceTable.toTablePattern(this.defaultSchema));
69
+ for (const table of tables) {
70
+ const typeResolver = new ExpressionTypeInference(table);
71
+ const types = source.parameters.map((p) => visitExpr(typeResolver, p.expr, null));
72
+ if (mergedTypes != null) {
73
+ mergedTypes = mergeTypes(mergedTypes, types);
74
+ }
75
+ else {
76
+ mergedTypes = types;
77
+ }
78
+ }
79
+ }
80
+ return mergedTypes;
81
+ };
82
+ // If the given parameter value is a subscription parameter, infers its type to the expected type.
83
+ const inferQuerierParameter = (expectedType, parameter) => {
84
+ switch (parameter.type) {
85
+ case 'request':
86
+ visitExpr(parameterInference, parameter.expr, expectedType);
87
+ break;
88
+ case 'lookup':
89
+ const lookup = parameter.lookup;
90
+ if (lookup.type === 'parameter') {
91
+ const inputTypes = inferSourceParameters([lookup.lookup]);
92
+ lookup.instantiation.forEach((param, i) => inferQuerierParameter(inputTypes[i], param));
93
+ }
94
+ else {
95
+ // Inputs to table-valued functions must be strings.
96
+ for (const input of lookup.functionInputs) {
97
+ visitExpr(parameterInference, input, { type: ExpressionType.TEXT });
98
+ }
99
+ }
100
+ break;
101
+ case 'intersection':
102
+ for (const value of parameter.values) {
103
+ inferQuerierParameter(expectedType, value);
104
+ }
105
+ break;
106
+ }
107
+ };
108
+ for (const querier of queriers) {
109
+ // Infer types of bucket parameters to apply them to subscription parameters. For a stream defined as
110
+ // `SELECT * FROM org WHERE id = subscription.parameter('org')`, this gives us [typeOfId]. By going through the
111
+ // instantiation, we see that parameter 0 corresponds to `subscription.parameter('org')` and thus infer that org
112
+ // needs to have a matching type. The same principle applies to values passed into parameter lookups.
113
+ const parameterTypes = inferSourceParameters(querier.bucket.sources);
114
+ querier.sourceInstantiation.forEach((param, i) => inferQuerierParameter(parameterTypes[i], param));
115
+ for (const filter of querier.requestFilters) {
116
+ visitExpr(parameterInference, filter, ExpressionTypeInference.BOOLEAN);
117
+ }
118
+ }
119
+ return parameters;
120
+ }
121
+ }
122
+ function mergeType(a, b) {
123
+ return {
124
+ type: a.type.or(b.type),
125
+ originalType: a.originalType === b.originalType ? a.originalType : undefined
126
+ };
53
127
  }
54
128
  /**
55
129
  * Infers the type of expressions, resolving column references against a fixed schema table.
@@ -119,5 +193,32 @@ class ExpressionTypeInference {
119
193
  // We don't care about compatibility as these functions are only used to infer types.
120
194
  static functions = generateSqlFunctions(CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY);
121
195
  static BOOLEAN = { type: ExpressionType.INTEGER, originalType: 'bool' };
196
+ static ANY = { type: ExpressionType.ANY };
197
+ }
198
+ class ParameterTypeInference extends RecursiveExpressionVisitor {
199
+ parameters;
200
+ constructor(parameters) {
201
+ super();
202
+ this.parameters = parameters;
203
+ }
204
+ defaultExpression(expr, expectedType) {
205
+ // Recognize the "->>($subscription, $parameterName)" pattern.
206
+ let foundParameter = null;
207
+ if (expr.type == 'function' && expr.function == '->>') {
208
+ const [source, key] = expr.parameters;
209
+ if (source.type == 'data' && source.source.request === 'subscription' && key.type == 'lit_string') {
210
+ foundParameter = key.value;
211
+ }
212
+ }
213
+ if (foundParameter == null) {
214
+ // Not a parameter, recurse into inner expressions. Because this might be a function call or another complex
215
+ // expression, we can't pass the outer expectedType down without changes.
216
+ return super.visitChildren(expr, ExpressionTypeInference.ANY);
217
+ }
218
+ else {
219
+ const existing = this.parameters[foundParameter];
220
+ this.parameters[foundParameter] = existing ? mergeType(existing, expectedType) : expectedType;
221
+ }
222
+ }
122
223
  }
123
224
  //# sourceMappingURL=schema_inference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema_inference.js","sourceRoot":"","sources":["../../src/sync_plan/schema_inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema_inference.js","sourceRoot":"","sources":["../../src/sync_plan/schema_inference.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ interface SerializedDataSource {
51
51
  interface SerializedParameterIndexLookupCreator {
52
52
  table: SerializedTablePattern;
53
53
  hash: number;
54
- lookupScope: ParameterLookupScope;
54
+ lookupScope: Omit<ParameterLookupScope, 'source'>;
55
55
  output: SqlExpression<SerializedTableProcessorData>[];
56
56
  filters: SqlExpression<SerializedTableProcessorData>[];
57
57
  tableValuedFunctions: TableProcessorTableValuedFunction[];
@@ -10,7 +10,7 @@ import { SqliteValue } from '../types.js';
10
10
  * subtype where `toSqliteValue` returns the old or the new format depending on options.
11
11
  *
12
12
  * Instances of {@link CustomSqliteValue} are always temporary structures that aren't persisted. They are created by the
13
- * replicator implementations, the sync rule implementation will invoke {@link toSqliteValue} to ensure that an
13
+ * replicator implementations, the sync config implementation will invoke {@link toSqliteValue} to ensure that an
14
14
  * {@link EvaluatedRow} only consists of proper SQLite values.
15
15
  */
16
16
  export declare abstract class CustomSqliteValue {
@@ -8,7 +8,7 @@ import { JSONBig } from '@powersync/service-jsonbig';
8
8
  * subtype where `toSqliteValue` returns the old or the new format depending on options.
9
9
  *
10
10
  * Instances of {@link CustomSqliteValue} are always temporary structures that aren't persisted. They are created by the
11
- * replicator implementations, the sync rule implementation will invoke {@link toSqliteValue} to ensure that an
11
+ * replicator implementations, the sync config implementation will invoke {@link toSqliteValue} to ensure that an
12
12
  * {@link EvaluatedRow} only consists of proper SQLite values.
13
13
  */
14
14
  export class CustomSqliteValue {
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { JsonContainer } from '@powersync/service-jsonbig';
2
2
  import { BucketPriority } from './BucketDescription.js';
3
3
  import { ScopedParameterLookup, UnscopedParameterLookup } from './BucketParameterQuerier.js';
4
+ import { BucketDataSource } from './BucketSource.js';
4
5
  import { CompatibilityContext } from './compatibility.js';
5
6
  import { ColumnDefinition } from './ExpressionType.js';
6
7
  import { RequestFunctionCall } from './request_functions.js';
@@ -46,6 +47,8 @@ export interface EvaluatedRow {
46
47
  id: string;
47
48
  /** Must be JSON-serializable. */
48
49
  data: SqliteJsonRow;
50
+ /** Source for the evaluated row. */
51
+ source: BucketDataSource;
49
52
  }
50
53
  /**
51
54
  * Bucket data as evaluated by the BucketDataSource.
@@ -98,7 +101,7 @@ export declare class BaseJwtPayload implements RequestJwtPayload {
98
101
  /**
99
102
  * sub, converted to a SQLite-compatible value (number | string | bigint | null).
100
103
  *
101
- * This is the value used for sync rules and in logs.
104
+ * This is the value used for sync config and in logs.
102
105
  */
103
106
  readonly userIdJson: SqliteJsonValue;
104
107
  constructor(parsedPayload: Record<string, any>);
package/dist/types.js CHANGED
@@ -23,7 +23,7 @@ export class BaseJwtPayload {
23
23
  /**
24
24
  * sub, converted to a SQLite-compatible value (number | string | bigint | null).
25
25
  *
26
- * This is the value used for sync rules and in logs.
26
+ * This is the value used for sync config and in logs.
27
27
  */
28
28
  userIdJson;
29
29
  constructor(parsedPayload) {
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAsFtE,MAAM,UAAU,iBAAiB,CAC/B,CAA8G;IAE9G,OAAO,OAAQ,CAAqB,CAAC,KAAK,IAAI,QAAQ,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAmB;IAChD,OAAO,OAAQ,CAAkB,CAAC,MAAM,IAAI,QAAQ,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAA2B;IAC9D,OAAO,OAAQ,CAA0B,CAAC,0BAA0B,IAAI,QAAQ,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAA4B;IAChE,OAAO,QAAQ,IAAI,CAAC,CAAC;AACvB,CAAC;AAYD,MAAM,OAAO,cAAc;IACzB;;;;OAIG;IACa,aAAa,CAAsB;IAEnD;;;;OAIG;IACa,UAAU,CAAkB;IAE5C,YAAY,aAAkC;QAC5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,UAAU;QACZ,uEAAuE;QACvE,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;CACF;AA2BD,MAAM,OAAO,iBAAiB;IAC5B,kBAAkB,CAAgB;IAClC,qBAAqB,CAAgB;IACrC,cAAc,CAAgB;IAE9B;;OAEG;IACH,iBAAiB,CAAS;IAE1B,gBAAgB,CAAuB;IACvC,mBAAmB,CAAgB;IAEnC;;OAEG;IACH,eAAe,CAAS;IAExB,MAAM,CAAkB;IAKxB,YAAY,YAAmD,EAAE,gBAAsC;QACrG,IAAI,YAAY,YAAY,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;YAC1D,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;YAChE,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;YAClD,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;YACxD,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;YACpD,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;YACtD,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;YAC5D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YAClC,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAA6C,CAAC;QAEpF,MAAM,eAAe,GAAG;YACtB,GAAG,gBAAgB;YACnB,oDAAoD;YACpD,OAAO,EAAE,YAAY,CAAC,UAAU;SACjC,CAAC;QAEF,gHAAgH;QAChH,iBAAiB;QACjB,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,aAAa,CAAC;QACrD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAChD,eAAe,EACf,oBAAoB,CAAC,4BAA4B,CAClD,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAErE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,gBAAiB,EAAE,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;QAClH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QAClC,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,KAAK,IAAI,yBAAyB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC/E,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,yBAAyB,CAAC,MAA2B;QACnD,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAChC,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEtD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA6MD,MAAM,UAAU,gCAAgC,CAAC,MAAsB;IACrE,OAAQ,MAAyC,CAAC,KAAK,IAAI,IAAI,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,9 +1,35 @@
1
1
  import { Replacer } from '@powersync/service-jsonbig';
2
2
  import { SelectFromStatement, Statement } from 'pgsql-ast-parser';
3
+ import { BucketDescription, BucketInclusionReason, BucketPriority, ResolvedBucket } from './BucketDescription.js';
4
+ import { BucketDataSource } from './BucketSource.js';
3
5
  import { CompatibilityContext } from './compatibility.js';
4
6
  import { BucketDataScope } from './HydrationState.js';
5
7
  import { DatabaseInputRow, DatabaseInputValue, SqliteInputRow, SqliteInputValue, SqliteJsonRow, SqliteJsonValue, SqliteParameterValue, SqliteRow, SqliteValue } from './types.js';
6
8
  export declare function isSelectStatement(q: Statement): q is SelectFromStatement;
9
+ export declare function bucketDescription(scope: BucketDataScope, serializedParameters: string, priority: BucketPriority): BucketDescription;
10
+ export declare function resolvedBucket(description: BucketDescription, options: {
11
+ definition: string;
12
+ inclusion_reasons: BucketInclusionReason[];
13
+ }): ResolvedBucket;
14
+ /**
15
+ * Resolves duplicate buckets in the given array, merging the inclusion reasons for duplicate.
16
+ *
17
+ * It's possible for duplicates to occur when a stream has multiple subscriptions, consider e.g.
18
+ *
19
+ * ```
20
+ * sync_streams:
21
+ * assets_by_category:
22
+ * query: select * from assets where category in (request.parameters() -> 'categories')
23
+ * ```
24
+ *
25
+ * Here, a client might subscribe once with `{"categories": [1]}` and once with `{"categories": [1, 2]}`. Since each
26
+ * subscription is evaluated independently, this would lead to three buckets, with a duplicate `assets_by_category[1]`
27
+ * bucket.
28
+ */
29
+ export declare function mergeBuckets(buckets: ResolvedBucket[]): ResolvedBucket[];
30
+ export declare function withBucketSource<T extends object>(value: T, source: BucketDataSource): T & {
31
+ source: BucketDataSource;
32
+ };
7
33
  export declare function buildBucketName(scope: BucketDataScope, serializedParameters: string): string;
8
34
  export declare function serializeBucketParameters(bucketParameters: string[], params: Record<string, SqliteJsonValue>): string;
9
35
  /**
@@ -23,7 +49,7 @@ export declare function jsonValueToSqlite(fixedJsonBehavior: boolean, value: nul
23
49
  export declare function isJsonValue(value: SqliteValue): value is SqliteJsonValue;
24
50
  export declare function isValidParameterValue(value: SqliteValue): value is SqliteParameterValue;
25
51
  /**
26
- * Map database row to SqliteRow for use in sync rules.
52
+ * Map database row to SqliteRow for use in sync config.
27
53
  */
28
54
  export declare function toSyncRulesRow(row: DatabaseInputRow): SqliteInputRow;
29
55
  /**
@@ -52,7 +78,3 @@ export declare const JSONBucketNameSerialize: {
52
78
  * Lookup serialization must be number-agnostic. I.e. normalize numbers, instead of preserving numbers.
53
79
  */
54
80
  export declare function normalizeParameterValue(value: SqliteJsonValue): SqliteJsonValue;
55
- /**
56
- * Extracts and normalizes the ID column from a row.
57
- */
58
- export declare function idFromData(data: SqliteJsonRow): string;
package/dist/utils.js CHANGED
@@ -2,10 +2,64 @@ import { JSONBig, JsonContainer, stringifyRaw } from '@powersync/service-jsonbig
2
2
  import { SyncRuleProcessingError as SyncRulesProcessingError } from './errors.js';
3
3
  import { SQLITE_FALSE, SQLITE_TRUE } from './sql_support.js';
4
4
  import { CustomArray, CustomObject, CustomSqliteValue } from './types/custom_sqlite_value.js';
5
- import { castAsText } from './sql_functions.js';
6
5
  export function isSelectStatement(q) {
7
6
  return q.type == 'select';
8
7
  }
8
+ export function bucketDescription(scope, serializedParameters, priority) {
9
+ const info = { bucket: scope.bucketPrefix + serializedParameters, priority };
10
+ return withBucketSource(info, scope.source);
11
+ }
12
+ export function resolvedBucket(description, options) {
13
+ const result = {
14
+ ...description,
15
+ ...options
16
+ };
17
+ return withBucketSource(result, description.source);
18
+ }
19
+ /**
20
+ * Resolves duplicate buckets in the given array, merging the inclusion reasons for duplicate.
21
+ *
22
+ * It's possible for duplicates to occur when a stream has multiple subscriptions, consider e.g.
23
+ *
24
+ * ```
25
+ * sync_streams:
26
+ * assets_by_category:
27
+ * query: select * from assets where category in (request.parameters() -> 'categories')
28
+ * ```
29
+ *
30
+ * Here, a client might subscribe once with `{"categories": [1]}` and once with `{"categories": [1, 2]}`. Since each
31
+ * subscription is evaluated independently, this would lead to three buckets, with a duplicate `assets_by_category[1]`
32
+ * bucket.
33
+ */
34
+ export function mergeBuckets(buckets) {
35
+ const byBucketId = {};
36
+ for (const bucket of buckets) {
37
+ const existing = byBucketId[bucket.bucket];
38
+ if (existing != null) {
39
+ existing.inclusion_reasons.push(...bucket.inclusion_reasons);
40
+ existing.priority = Math.min(existing.priority, bucket.priority);
41
+ }
42
+ else {
43
+ // Clone so that we can modify the merged value without affecting the input value
44
+ byBucketId[bucket.bucket] = cloneResolvedBucket(bucket);
45
+ }
46
+ }
47
+ return Object.values(byBucketId);
48
+ }
49
+ function cloneResolvedBucket(bucket) {
50
+ let clone = structuredClone(bucket);
51
+ // The structured clone does not include the non-enumerable source - set it directly.
52
+ return withBucketSource(clone, bucket.source);
53
+ }
54
+ export function withBucketSource(value, source) {
55
+ Object.defineProperty(value, 'source', {
56
+ value: source,
57
+ // This is important. If the property is enumerable, it may end up in JSON output to the client,
58
+ // and will pollute tests.
59
+ enumerable: false
60
+ });
61
+ return value;
62
+ }
9
63
  export function buildBucketName(scope, serializedParameters) {
10
64
  return scope.bucketPrefix + serializedParameters;
11
65
  }
@@ -106,7 +160,7 @@ function filterJsonData(data, context, depth = 0) {
106
160
  }
107
161
  }
108
162
  /**
109
- * Map database row to SqliteRow for use in sync rules.
163
+ * Map database row to SqliteRow for use in sync config.
110
164
  */
111
165
  export function toSyncRulesRow(row) {
112
166
  let record = {};
@@ -217,20 +271,4 @@ export function normalizeParameterValue(value) {
217
271
  }
218
272
  return value;
219
273
  }
220
- /**
221
- * Extracts and normalizes the ID column from a row.
222
- */
223
- export function idFromData(data) {
224
- let id = data.id;
225
- if (typeof id != 'string') {
226
- // While an explicit cast would be better, this covers against very common
227
- // issues when initially testing out sync, for example when the id column is an
228
- // auto-incrementing integer.
229
- // If there is no id column, we use a blank id. This will result in the user syncing
230
- // a single arbitrary row for this table - better than just not being able to sync
231
- // anything.
232
- id = castAsText(id) ?? '';
233
- }
234
- return id;
235
- }
236
274
  //# 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":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAkB,gCAAgC,EAAwB,MAAM,YAAY,CAAC;AAEpG;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC,2DAA2D;IAC3D,kCAAkC,GAAY,KAAK,CAAC;IACpD,8CAA8C;IAC9C,oCAAoC,GAAY,KAAK,CAAC;IACtD,+DAA+D;IAC/D,oBAAoB,GAAY,KAAK,CAAC;IAEtC,MAAM,CAAC,MAAuB;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAE1B,IAAI,CAAC,kCAAkC,KAAK,CAAC,CAAC,cAAc,IAAI,eAAe,CAAC;YAChF,IAAI,CAAC,oCAAoC;gBACvC,CAAC,CAAC,cAAc,IAAI,iBAAiB,IAAI,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;YAC9E,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;QACnE,CAAC;aAAM,IAAI,gCAAgC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;gBAChC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC;YACjD,CAAC;iBAAM,IAAI,KAAK,IAAI,iBAAiB,EAAE,CAAC;gBACtC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YACxE,kHAAkH;YAClH,cAAc;YACd,MAAM,WAAW,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAEnD,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,IAAI,YAAY,EAAE,CAAC;oBACjB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kCAAkC;gBACrC,WAAW,CAAC,kCAAkC,IAAI,YAAY,CAAC,kCAAkC,CAAC;YAEpG,yFAAyF;YACzF,IAAI,CAAC,oCAAoC,KAAK,WAAW,CAAC,oCAAoC,CAAC;YAC/F,IAAI,CAAC,oCAAoC,KAAK,YAAY,CAAC,oCAAoC,CAAC;YAChG,OAAO;QACT,CAAC;QAED,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,CAAC,OAAiC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAkB,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAE9E;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC,2DAA2D;IAC3D,kCAAkC,GAAY,KAAK,CAAC;IACpD,8CAA8C;IAC9C,oCAAoC,GAAY,KAAK,CAAC;IACtD,+DAA+D;IAC/D,oBAAoB,GAAY,KAAK,CAAC;IAEtC,MAAM,CAAC,MAAuB;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAE1B,IAAI,CAAC,kCAAkC,KAAK,CAAC,CAAC,cAAc,IAAI,eAAe,CAAC;YAChF,IAAI,CAAC,oCAAoC;gBACvC,CAAC,CAAC,cAAc,IAAI,iBAAiB,IAAI,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;YAC9E,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;QACnE,CAAC;aAAM,IAAI,gCAAgC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;gBAChC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC;YACjD,CAAC;iBAAM,IAAI,KAAK,IAAI,iBAAiB,EAAE,CAAC;gBACtC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YACxE,kHAAkH;YAClH,cAAc;YACd,MAAM,WAAW,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAEnD,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,IAAI,YAAY,EAAE,CAAC;oBACjB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kCAAkC;gBACrC,WAAW,CAAC,kCAAkC,IAAI,YAAY,CAAC,kCAAkC,CAAC;YAEpG,yFAAyF;YACzF,IAAI,CAAC,oCAAoC,KAAK,WAAW,CAAC,oCAAoC,CAAC;YAC/F,IAAI,CAAC,oCAAoC,KAAK,YAAY,CAAC,oCAAoC,CAAC;YAChG,OAAO;QACT,CAAC;QAED,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,CAAC,OAAiC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ export declare function isSingleQuotedScalar(type: string | null | undefined): boolean;
2
+ export declare function isDoubleQuotedScalar(type: string | null | undefined): boolean;
3
+ export declare function isQuotedScalar(type: string | null | undefined): boolean;
4
+ export declare function isBlockLiteralScalar(type: string | null | undefined): boolean;
5
+ export declare function isBlockFoldedScalar(type: string | null | undefined): boolean;
6
+ export declare function isBlockScalar(type: string | null | undefined): boolean;
7
+ /**
8
+ * Builds a map from indexes in parsed YAML scalars to indexes in the source YAML file.
9
+ *
10
+ * Quoted scalars (", ') have escape sequences that take up more chars in the source relative to the parsed value.
11
+ * Multi-line scalars (|, >) have line folding where newline + surrounding whitespace collapses
12
+ * to a single space. In both cases value offsets don't map 1:1 to source offsets.
13
+ *
14
+ * For unrecognised scalar types the map is empty, so all lookups fall back via ??.
15
+ *
16
+ * @param src The raw YAML source of the scalar token.
17
+ * @param scalarType The Scalar.type value.
18
+ */
19
+ export declare function buildParsedToSourceValueMap(src: string, scalarType: string | null | undefined): number[];