@powersync/service-sync-rules 0.36.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/BaseSqlDataQuery.d.ts +4 -4
  2. package/dist/BaseSqlDataQuery.js.map +1 -1
  3. package/dist/BucketSource.d.ts +35 -28
  4. package/dist/BucketSource.js +12 -28
  5. package/dist/BucketSource.js.map +1 -1
  6. package/dist/HydratedSyncConfig.d.ts +80 -0
  7. package/dist/HydratedSyncConfig.js +207 -0
  8. package/dist/HydratedSyncConfig.js.map +1 -0
  9. package/dist/HydrationState.d.ts +20 -1
  10. package/dist/HydrationState.js +14 -2
  11. package/dist/HydrationState.js.map +1 -1
  12. package/dist/SourceTableRef.d.ts +9 -0
  13. package/dist/SourceTableRef.js +4 -0
  14. package/dist/SourceTableRef.js.map +1 -0
  15. package/dist/SqlBucketDescriptor.d.ts +5 -4
  16. package/dist/SqlBucketDescriptor.js +3 -0
  17. package/dist/SqlBucketDescriptor.js.map +1 -1
  18. package/dist/SqlDataQuery.d.ts +2 -2
  19. package/dist/SqlDataQuery.js.map +1 -1
  20. package/dist/SqlParameterQuery.d.ts +8 -7
  21. package/dist/SqlParameterQuery.js +5 -3
  22. package/dist/SqlParameterQuery.js.map +1 -1
  23. package/dist/StaticSqlParameterQuery.d.ts +2 -2
  24. package/dist/StaticSqlParameterQuery.js.map +1 -1
  25. package/dist/SyncConfig.d.ts +8 -8
  26. package/dist/SyncConfig.js +8 -16
  27. package/dist/SyncConfig.js.map +1 -1
  28. package/dist/TablePattern.d.ts +8 -2
  29. package/dist/TablePattern.js +8 -0
  30. package/dist/TablePattern.js.map +1 -1
  31. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +2 -2
  32. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  33. package/dist/TableValuedFunctions.js +15 -10
  34. package/dist/TableValuedFunctions.js.map +1 -1
  35. package/dist/cast.js +7 -5
  36. package/dist/cast.js.map +1 -1
  37. package/dist/compatibility.d.ts +3 -1
  38. package/dist/compatibility.js +12 -3
  39. package/dist/compatibility.js.map +1 -1
  40. package/dist/compiler/equality.js +2 -1
  41. package/dist/compiler/equality.js.map +1 -1
  42. package/dist/compiler/parser.js +1 -1
  43. package/dist/compiler/parser.js.map +1 -1
  44. package/dist/events/SqlEventDescriptor.d.ts +2 -2
  45. package/dist/events/SqlEventDescriptor.js.map +1 -1
  46. package/dist/events/SqlEventSourceQuery.d.ts +2 -2
  47. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  48. package/dist/from_yaml.js +9 -2
  49. package/dist/from_yaml.js.map +1 -1
  50. package/dist/index.d.ts +6 -4
  51. package/dist/index.js +6 -4
  52. package/dist/index.js.map +1 -1
  53. package/dist/sql_functions.d.ts +4 -4
  54. package/dist/sql_functions.js +12 -6
  55. package/dist/sql_functions.js.map +1 -1
  56. package/dist/streams/filter.d.ts +8 -7
  57. package/dist/streams/filter.js +5 -3
  58. package/dist/streams/filter.js.map +1 -1
  59. package/dist/streams/stream.d.ts +5 -4
  60. package/dist/streams/stream.js +3 -0
  61. package/dist/streams/stream.js.map +1 -1
  62. package/dist/sync_plan/engine/factory.d.ts +4 -0
  63. package/dist/sync_plan/engine/factory.js +13 -0
  64. package/dist/sync_plan/engine/factory.js.map +1 -0
  65. package/dist/sync_plan/engine/javascript.js +0 -1
  66. package/dist/sync_plan/engine/javascript.js.map +1 -1
  67. package/dist/sync_plan/engine/scalar_expression_engine.d.ts +0 -4
  68. package/dist/sync_plan/engine/scalar_expression_engine.js +2 -2
  69. package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
  70. package/dist/sync_plan/engine/sqlite.d.ts +26 -5
  71. package/dist/sync_plan/engine/sqlite.js +41 -23
  72. package/dist/sync_plan/engine/sqlite.js.map +1 -1
  73. package/dist/sync_plan/evaluator/bucket_data_source.d.ts +6 -7
  74. package/dist/sync_plan/evaluator/bucket_data_source.js +67 -57
  75. package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
  76. package/dist/sync_plan/evaluator/bucket_source.d.ts +2 -2
  77. package/dist/sync_plan/evaluator/bucket_source.js +4 -4
  78. package/dist/sync_plan/evaluator/bucket_source.js.map +1 -1
  79. package/dist/sync_plan/evaluator/index.d.ts +0 -2
  80. package/dist/sync_plan/evaluator/index.js.map +1 -1
  81. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +3 -1
  82. package/dist/sync_plan/evaluator/parameter_evaluator.js +5 -4
  83. package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -1
  84. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +8 -9
  85. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +62 -58
  86. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
  87. package/dist/sync_plan/expression.js +1 -1
  88. package/dist/sync_plan/expression.js.map +1 -1
  89. package/dist/sync_plan/expression_to_sql.js +1 -1
  90. package/dist/sync_plan/expression_to_sql.js.map +1 -1
  91. package/dist/sync_plan/plan.d.ts +2 -2
  92. package/dist/sync_plan/plan_equality_serialized.d.ts +25 -0
  93. package/dist/sync_plan/plan_equality_serialized.js +46 -0
  94. package/dist/sync_plan/plan_equality_serialized.js.map +1 -0
  95. package/dist/sync_plan/serialize.d.ts +16 -17
  96. package/dist/types.d.ts +12 -2
  97. package/dist/types.js.map +1 -1
  98. package/dist/utils.d.ts +1 -0
  99. package/dist/utils.js +13 -0
  100. package/dist/utils.js.map +1 -1
  101. package/package.json +2 -3
  102. package/schema/sync_rules.json +4 -0
  103. package/dist/HydratedSyncRules.d.ts +0 -46
  104. package/dist/HydratedSyncRules.js +0 -88
  105. package/dist/HydratedSyncRules.js.map +0 -1
  106. package/dist/SourceTableInterface.d.ts +0 -5
  107. package/dist/SourceTableInterface.js +0 -2
  108. package/dist/SourceTableInterface.js.map +0 -1
@@ -2,16 +2,15 @@ import { UnscopedParameterLookup } from '../../BucketParameterQuerier.js';
2
2
  import { isValidParameterValueRow } from './parameter_evaluator.js';
3
3
  import { TableProcessorToSqlHelper } from './table_processor_to_sql.js';
4
4
  export class PreparedParameterIndexLookupCreator {
5
- defaultLookupScope;
6
- evaluator;
5
+ sourceId;
7
6
  sourceTable;
8
7
  evaluatorInputs;
8
+ statement;
9
9
  numberOfOutputs;
10
10
  numberOfParameters;
11
- constructor(source, { engine, defaultSchema }) {
12
- this.defaultLookupScope = {
13
- ...source.defaultLookupScope,
14
- source: this
11
+ constructor(source, { defaultSchema }) {
12
+ this.sourceId = {
13
+ ...source.defaultLookupScope
15
14
  };
16
15
  const translationHelper = new TableProcessorToSqlHelper(source);
17
16
  const expressions = source.outputs.map((o) => translationHelper.mapper.transform(o));
@@ -20,11 +19,11 @@ export class PreparedParameterIndexLookupCreator {
20
19
  expressions.push(translationHelper.mapper.transform(parameter.expr));
21
20
  }
22
21
  this.numberOfParameters = source.parameters.length;
23
- this.evaluator = engine.prepareEvaluator({
22
+ this.statement = {
24
23
  outputs: expressions,
25
24
  filters: translationHelper.filterExpressions,
26
25
  tableValuedFunctions: translationHelper.tableValuedFunctions
27
- });
26
+ };
28
27
  this.sourceTable = source.sourceTable.toTablePattern(defaultSchema);
29
28
  this.evaluatorInputs = translationHelper.mapper.instantiation;
30
29
  }
@@ -33,60 +32,65 @@ export class PreparedParameterIndexLookupCreator {
33
32
  set.add(this.sourceTable);
34
33
  return set;
35
34
  }
36
- evaluateParameterRow(sourceTable, row) {
37
- const results = [];
38
- if (!this.sourceTable.matches(sourceTable)) {
39
- return results;
40
- }
41
- function parametersEqual(a, b) {
42
- if (a.length != b.length)
43
- return false;
44
- return a.every((val, idx) => val === b[idx]);
45
- }
46
- try {
47
- const inputInstantiation = this.evaluatorInputs.map((input) => row[input.column]);
48
- // In almost all cases, lookups generate at most one output with exactly one bucket parameter. This is the case
49
- // for all lookups without a table-valued function, e.g. `SELECT foo.* FROM foo, bar ON foo.x = bar.x AND
50
- // bar.y = auth.user_id()` which generates a lookup from `bar.y` to `bar.x`. However, it's also possible for:
51
- //
52
- // - a single row with one partition value to generate multiple outputs, which would yield a lookup with multiple
53
- // entries in bucketParameters.
54
- // - a single row to generate multiple partition values, which would yield multiple lookup entries.
55
- // - a combination of those two, if multiple table-valued functions are used in the parameter result set.
56
- const lookups = [];
57
- function resolveLookup(entries) {
58
- // The lookups array could be a hash map, but since we don't expect rows to generate many lookups, a hash map
59
- // would likely be more expensive than this linear search.
60
- for (const existing of lookups) {
61
- if (parametersEqual(existing.partitionValues, entries)) {
62
- return existing;
63
- }
35
+ createEvaluator({ scalarExpressions }) {
36
+ const evaluator = scalarExpressions.prepareEvaluator(this.statement);
37
+ return {
38
+ evaluateParameterRow: (sourceTable, row) => {
39
+ const results = [];
40
+ if (!this.sourceTable.matches(sourceTable)) {
41
+ return results;
64
42
  }
65
- const created = { partitionValues: entries, bucketParameters: [] };
66
- lookups.push(created);
67
- return created;
68
- }
69
- for (const outputRow of this.evaluator.evaluate(inputInstantiation)) {
70
- if (!isValidParameterValueRow(outputRow)) {
71
- continue;
43
+ function parametersEqual(a, b) {
44
+ if (a.length != b.length)
45
+ return false;
46
+ return a.every((val, idx) => val === b[idx]);
72
47
  }
73
- const outputs = {};
74
- for (let i = 0; i < this.numberOfOutputs; i++) {
75
- outputs[i.toString()] = outputRow[i];
48
+ try {
49
+ const inputInstantiation = this.evaluatorInputs.map((input) => row[input.column]);
50
+ // In almost all cases, lookups generate at most one output with exactly one bucket parameter. This is the case
51
+ // for all lookups without a table-valued function, e.g. `SELECT foo.* FROM foo, bar ON foo.x = bar.x AND
52
+ // bar.y = auth.user_id()` which generates a lookup from `bar.y` to `bar.x`. However, it's also possible for:
53
+ //
54
+ // - a single row with one partition value to generate multiple outputs, which would yield a lookup with multiple
55
+ // entries in bucketParameters.
56
+ // - a single row to generate multiple partition values, which would yield multiple lookup entries.
57
+ // - a combination of those two, if multiple table-valued functions are used in the parameter result set.
58
+ const lookups = [];
59
+ function resolveLookup(entries) {
60
+ // The lookups array could be a hash map, but since we don't expect rows to generate many lookups, a hash map
61
+ // would likely be more expensive than this linear search.
62
+ for (const existing of lookups) {
63
+ if (parametersEqual(existing.partitionValues, entries)) {
64
+ return existing;
65
+ }
66
+ }
67
+ const created = { partitionValues: entries, bucketParameters: [] };
68
+ lookups.push(created);
69
+ return created;
70
+ }
71
+ for (const outputRow of evaluator.evaluate(inputInstantiation)) {
72
+ if (!isValidParameterValueRow(outputRow)) {
73
+ continue;
74
+ }
75
+ const outputs = {};
76
+ for (let i = 0; i < this.numberOfOutputs; i++) {
77
+ outputs[i.toString()] = outputRow[i];
78
+ }
79
+ // source is [...outputs, ...partitionValues]
80
+ const partitionValues = outputRow.splice(this.numberOfOutputs, this.numberOfParameters);
81
+ const pendingLookup = resolveLookup(partitionValues);
82
+ pendingLookup.bucketParameters.push(outputs);
83
+ }
84
+ for (const { partitionValues, bucketParameters } of lookups) {
85
+ results.push({ lookup: UnscopedParameterLookup.normalized(partitionValues), bucketParameters });
86
+ }
76
87
  }
77
- // source is [...outputs, ...partitionValues]
78
- const partitionValues = outputRow.splice(this.numberOfOutputs, this.numberOfParameters);
79
- const pendingLookup = resolveLookup(partitionValues);
80
- pendingLookup.bucketParameters.push(outputs);
81
- }
82
- for (const { partitionValues, bucketParameters } of lookups) {
83
- results.push({ lookup: UnscopedParameterLookup.normalized(partitionValues), bucketParameters });
88
+ catch (e) {
89
+ results.push({ error: e.message });
90
+ }
91
+ return results;
84
92
  }
85
- }
86
- catch (e) {
87
- results.push({ error: e.message });
88
- }
89
- return results;
93
+ };
90
94
  }
91
95
  tableSyncsParameters(table) {
92
96
  return this.sourceTable.matches(table);
@@ -1 +1 @@
1
- {"version":3,"file":"parameter_index_lookup_creator.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/parameter_index_lookup_creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAS1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,OAAO,mCAAmC;IACrC,kBAAkB,CAAuB;IACjC,SAAS,CAA4B;IAC7C,WAAW,CAAe;IAClB,eAAe,CAAiC;IAChD,eAAe,CAAS;IACxB,kBAAkB,CAAS;IAE5C,YAAY,MAA8C,EAAE,EAAE,MAAM,EAAE,aAAa,EAA2B;QAC5G,IAAI,CAAC,kBAAkB,GAAG;YACxB,GAAG,MAAM,CAAC,kBAAkB;YAC5B,MAAM,EAAE,IAAI;SACb,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAErF,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAEnD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACvC,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,iBAAiB,CAAC,iBAAiB;YAC5C,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB;SAC7D,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC;IAChE,CAAC;IAED,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgB,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oBAAoB,CAAC,WAAiC,EAAE,GAAc;QACpE,MAAM,OAAO,GAAwC,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,OAAO,OAAO,CAAC;QACjB,CAAC;QAOD,SAAS,eAAe,CAAC,CAAyB,EAAE,CAAyB;YAC3E,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAEvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAElF,+GAA+G;YAC/G,yGAAyG;YACzG,6GAA6G;YAC7G,EAAE;YACF,kHAAkH;YAClH,kCAAkC;YAClC,oGAAoG;YACpG,0GAA0G;YAC1G,MAAM,OAAO,GAAoB,EAAE,CAAC;YAEpC,SAAS,aAAa,CAAC,OAA+B;gBACpD,6GAA6G;gBAC7G,0DAA0D;gBAC1D,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,IAAI,eAAe,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC;wBACvD,OAAO,QAAQ,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAkB,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;gBAClF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAoC,EAAE,CAAC;gBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACxF,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;gBACrD,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YAED,KAAK,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oBAAoB,CAAC,KAA2B;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"parameter_index_lookup_creator.js","sourceRoot":"","sources":["../../../src/sync_plan/evaluator/parameter_index_lookup_creator.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export const supportedFunctions = {
10
10
  hex: 1,
11
11
  ifnull: { min: 2 },
12
12
  //if: { min: 2 },
13
- iif: { min: 2 },
13
+ iif: 3,
14
14
  instr: 2,
15
15
  length: 1,
16
16
  // TODO: Establish defaults for case sensitivity, changing escape characters, ICU support.
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/sync_plan/expression.ts"],"names":[],"mappings":"AAqIA,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,+DAA+D;IAC/D,SAAS;IACT,mBAAmB;IACnB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,qBAAqB;IACrB,UAAU;IACV,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAClB,iBAAiB;IACjB,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACf,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,0FAA0F;IAC1F,+FAA+F;IAC/F,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,KAAK,EAAE,CAAC;IACR,4BAA4B;IAC5B,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,qBAAqB;IACrB,WAAW;IACX,aAAa;IACb,4BAA4B;IAC5B,4BAA4B;IAC5B,UAAU;IACV,6BAA6B;IAC7B,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC7B,2BAA2B;IAC3B,MAAM,EAAE,CAAC;IACT,4BAA4B;IAC5B,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,KAAK,EAAE,CAAC;IACR,cAAc;IACd,+DAA+D;IAC/D,0GAA0G;IAC1G,2BAA2B;IAC3B,UAAU;IACV,aAAa;IACb,yBAAyB;IACzB,4BAA4B;IAC5B,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACrC,yBAAyB;IACzB,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,8BAA8B;IAC9B,2CAA2C;IAC3C,8CAA8C;IAC9C,4CAA4C;IAC5C,+CAA+C;IAC/C,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,0BAA0B;IAC1B,6BAA6B;IAC7B,4CAA4C;IAC5C,+CAA+C;IAC/C,wCAAwC;IACxC,2CAA2C;IAC3C,gCAAgC;IAChC,iCAAiC;IACjC,yBAAyB;IAEzB,wFAAwF;IACxF,gHAAgH;IAChH,yCAAyC;IACzC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAEpB,iGAAiG;IACjG,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/sync_plan/expression.ts"],"names":[],"mappings":"AAqIA,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,+DAA+D;IAC/D,SAAS;IACT,mBAAmB;IACnB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,qBAAqB;IACrB,UAAU;IACV,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAClB,iBAAiB;IACjB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,0FAA0F;IAC1F,+FAA+F;IAC/F,2BAA2B;IAC3B,kBAAkB;IAClB,cAAc;IACd,KAAK,EAAE,CAAC;IACR,4BAA4B;IAC5B,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,qBAAqB;IACrB,WAAW;IACX,aAAa;IACb,4BAA4B;IAC5B,4BAA4B;IAC5B,UAAU;IACV,6BAA6B;IAC7B,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC7B,2BAA2B;IAC3B,MAAM,EAAE,CAAC;IACT,4BAA4B;IAC5B,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,KAAK,EAAE,CAAC;IACR,cAAc;IACd,+DAA+D;IAC/D,0GAA0G;IAC1G,2BAA2B;IAC3B,UAAU;IACV,aAAa;IACb,yBAAyB;IACzB,4BAA4B;IAC5B,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACrC,yBAAyB;IACzB,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,8BAA8B;IAC9B,2CAA2C;IAC3C,8CAA8C;IAC9C,4CAA4C;IAC5C,+CAA+C;IAC/C,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,0BAA0B;IAC1B,6BAA6B;IAC7B,4CAA4C;IAC5C,+CAA+C;IAC/C,wCAAwC;IACxC,2CAA2C;IAC3C,gCAAgC;IAChC,iCAAiC;IACjC,yBAAyB;IAEzB,wFAAwF;IACxF,gHAAgH;IAChH,yCAAyC;IACzC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAEpB,iGAAiG;IACjG,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -44,7 +44,7 @@ export class ExpressionToSqlite {
44
44
  this.addLexeme(')', { spaceLeft: false });
45
45
  }
46
46
  maybeParenthesis(outerPrecedence, innerPrecedence, inner) {
47
- if (outerPrecedence > innerPrecedence) {
47
+ if (outerPrecedence >= innerPrecedence) {
48
48
  this.parenthesis(inner);
49
49
  }
50
50
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"expression_to_sql.js","sourceRoot":"","sources":["../../src/sync_plan/expression_to_sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression_to_sql.js","sourceRoot":"","sources":["../../src/sync_plan/expression_to_sql.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BucketPriority } from '../BucketDescription.js';
2
- import { ParameterLookupScope } from '../HydrationState.js';
2
+ import { ParameterLookupDefinitionId } from '../HydrationState.js';
3
3
  import { ImplicitSchemaTablePattern } from '../TablePattern.js';
4
4
  import { SqlExpression } from './expression.js';
5
5
  /**
@@ -150,7 +150,7 @@ export interface StreamBucketDataSource {
150
150
  */
151
151
  export interface StreamParameterIndexLookupCreator extends TableProcessor {
152
152
  hashCode: number;
153
- defaultLookupScope: Omit<ParameterLookupScope, 'source'>;
153
+ defaultLookupScope: ParameterLookupDefinitionId;
154
154
  /**
155
155
  * Outputs to persist in the lookup.
156
156
  *
@@ -0,0 +1,25 @@
1
+ import { Equality } from '../compiler/equality.js';
2
+ import { SerializedBucketDataSource, SerializedDataSource, SerializedParameterIndexLookupCreator } from './serialize.js';
3
+ export interface SerializedBucketDataSourceWithDataSources {
4
+ bucket: SerializedBucketDataSource;
5
+ dataSources: readonly SerializedDataSource[];
6
+ }
7
+ /**
8
+ * Equality for SerializedParameterIndexLookupCreator.
9
+ *
10
+ * This compares the JSON form directly. These are self-contained and use a stable serialization form, so it's
11
+ * safe to compare this way.
12
+ *
13
+ * These are only considered equal if the lookupName remains the same, so may be affected by changing order of queries.
14
+ */
15
+ export declare const serializedStreamParameterIndexLookupCreatorEquality: Equality<SerializedParameterIndexLookupCreator>;
16
+ /**
17
+ * SerializedBucketDataSource is not safe to compare _directly_, since it contains index references to SerializedDataSource
18
+ * in the serialized sync plan. However, each SerializedDataSource is self-contained and safe to compare directly.
19
+ *
20
+ * So we compare the SerializedDataSource excluding `bucket.sources`, as well as the resolved SerializedDataSources (order independent).
21
+ * The caller is responsible for resolving the SerializedDataSources.
22
+ *
23
+ * These are only considered equal if uniqueName is the same, so may be affected by changing order of joins/subqueries.
24
+ */
25
+ export declare const serializedStreamBucketDataSourceEquality: Equality<SerializedBucketDataSourceWithDataSources>;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Equality for SerializedParameterIndexLookupCreator.
3
+ *
4
+ * This compares the JSON form directly. These are self-contained and use a stable serialization form, so it's
5
+ * safe to compare this way.
6
+ *
7
+ * These are only considered equal if the lookupName remains the same, so may be affected by changing order of queries.
8
+ */
9
+ export const serializedStreamParameterIndexLookupCreatorEquality = jsonEquality();
10
+ /**
11
+ * SerializedBucketDataSource is not safe to compare _directly_, since it contains index references to SerializedDataSource
12
+ * in the serialized sync plan. However, each SerializedDataSource is self-contained and safe to compare directly.
13
+ *
14
+ * So we compare the SerializedDataSource excluding `bucket.sources`, as well as the resolved SerializedDataSources (order independent).
15
+ * The caller is responsible for resolving the SerializedDataSources.
16
+ *
17
+ * These are only considered equal if uniqueName is the same, so may be affected by changing order of joins/subqueries.
18
+ */
19
+ export const serializedStreamBucketDataSourceEquality = {
20
+ hash(hasher, value) {
21
+ hasher.addString(JSON.stringify(bucketIdentity(value)));
22
+ },
23
+ equals(a, b) {
24
+ return a === b || JSON.stringify(bucketIdentity(a)) == JSON.stringify(bucketIdentity(b));
25
+ }
26
+ };
27
+ function bucketIdentity(value) {
28
+ const { bucket, dataSources } = value;
29
+ return {
30
+ hash: bucket.hash,
31
+ uniqueName: bucket.uniqueName,
32
+ // Sort so that the order of sources does not affect equality, as long as the same data sources are included.
33
+ sources: bucket.sources.map((index) => JSON.stringify(dataSources[index])).sort()
34
+ };
35
+ }
36
+ function jsonEquality() {
37
+ return {
38
+ hash(hasher, value) {
39
+ hasher.addString(JSON.stringify(value));
40
+ },
41
+ equals(a, b) {
42
+ return a === b || JSON.stringify(a) == JSON.stringify(b);
43
+ }
44
+ };
45
+ }
46
+ //# sourceMappingURL=plan_equality_serialized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan_equality_serialized.js","sourceRoot":"","sources":["../../src/sync_plan/plan_equality_serialized.ts"],"names":[],"mappings":"AAYA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mDAAmD,GAC9D,YAAY,EAAyC,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAwD;IAC3G,IAAI,CAAC,MAAM,EAAE,KAAK;QAChB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF,CAAC;AAEF,SAAS,cAAc,CAAC,KAAgD;IACtE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEtC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,6GAA6G;QAC7G,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAClF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;QACL,IAAI,CAAC,MAAM,EAAE,KAAK;YAChB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ParameterLookupScope } from '../HydrationState.js';
1
+ import { ParameterLookupDefinitionId } from '../HydrationState.js';
2
2
  import { SqlExpression } from './expression.js';
3
3
  import { ColumnSqlParameterValue, RequestSqlParameterValue, StreamOptions, SyncPlan, TableProcessorTableValuedFunction } from './plan.js';
4
4
  /**
@@ -10,36 +10,36 @@ import { ColumnSqlParameterValue, RequestSqlParameterValue, StreamOptions, SyncP
10
10
  */
11
11
  export declare function serializeSyncPlan(plan: SyncPlan): SerializedSyncPlanV1;
12
12
  export declare function deserializeSyncPlan(serialized: unknown): SyncPlan;
13
- interface SerializedSyncPlanV1 {
13
+ export interface SerializedSyncPlanV1 {
14
14
  version: number;
15
15
  dataSources: SerializedDataSource[];
16
16
  buckets: SerializedBucketDataSource[];
17
17
  parameterIndexes: SerializedParameterIndexLookupCreator[];
18
18
  streams: SerializedStream[];
19
19
  }
20
- interface SerializedBucketDataSource {
20
+ export interface SerializedBucketDataSource {
21
21
  hash: number;
22
22
  uniqueName: string;
23
23
  sources: number[];
24
24
  }
25
- interface SerializedTablePattern {
25
+ export interface SerializedTablePattern {
26
26
  connection: string | null;
27
27
  schema: string | null;
28
28
  table: string;
29
29
  }
30
- interface SerializedTableProcessorTableValuedFunctionOutput {
30
+ export interface SerializedTableProcessorTableValuedFunctionOutput {
31
31
  function: number;
32
32
  outputName: string;
33
33
  }
34
- type SerializedTableProcessorData = ColumnSqlParameterValue | SerializedTableProcessorTableValuedFunctionOutput;
35
- interface SerializedPartitionKey {
34
+ export type SerializedTableProcessorData = ColumnSqlParameterValue | SerializedTableProcessorTableValuedFunctionOutput;
35
+ export interface SerializedPartitionKey {
36
36
  expr: SqlExpression<SerializedTableProcessorData>;
37
37
  }
38
- type SerializedColumnSource = 'star' | {
38
+ export type SerializedColumnSource = 'star' | {
39
39
  expr: SqlExpression<SerializedTableProcessorData>;
40
40
  alias: string;
41
41
  };
42
- interface SerializedDataSource {
42
+ export interface SerializedDataSource {
43
43
  table: SerializedTablePattern;
44
44
  outputTableName?: string;
45
45
  hash: number;
@@ -48,26 +48,26 @@ interface SerializedDataSource {
48
48
  tableValuedFunctions: TableProcessorTableValuedFunction[];
49
49
  partitionBy: SerializedPartitionKey[];
50
50
  }
51
- interface SerializedParameterIndexLookupCreator {
51
+ export interface SerializedParameterIndexLookupCreator {
52
52
  table: SerializedTablePattern;
53
53
  hash: number;
54
- lookupScope: Omit<ParameterLookupScope, 'source'>;
54
+ lookupScope: ParameterLookupDefinitionId;
55
55
  output: SqlExpression<SerializedTableProcessorData>[];
56
56
  filters: SqlExpression<SerializedTableProcessorData>[];
57
57
  tableValuedFunctions: TableProcessorTableValuedFunction[];
58
58
  partitionBy: SerializedPartitionKey[];
59
59
  }
60
- interface SerializedStream {
60
+ export interface SerializedStream {
61
61
  stream: StreamOptions;
62
62
  queriers: SerializedStreamQuerier[];
63
63
  }
64
- interface SerializedStreamQuerier {
64
+ export interface SerializedStreamQuerier {
65
65
  requestFilters: SqlExpression<RequestSqlParameterValue>[];
66
66
  lookupStages: SerializedExpandingLookup[][];
67
67
  bucket: number;
68
68
  sourceInstantiation: SerializedParameterValue[];
69
69
  }
70
- type SerializedExpandingLookup = {
70
+ export type SerializedExpandingLookup = {
71
71
  type: 'parameter';
72
72
  lookup: number;
73
73
  instantiation: SerializedParameterValue[];
@@ -78,11 +78,11 @@ type SerializedExpandingLookup = {
78
78
  outputs: SqlExpression<ColumnSqlParameterValue>[];
79
79
  filters: SqlExpression<ColumnSqlParameterValue>[];
80
80
  };
81
- interface LookupReference {
81
+ export interface LookupReference {
82
82
  stageId: number;
83
83
  idInStage: number;
84
84
  }
85
- type SerializedParameterValue = {
85
+ export type SerializedParameterValue = {
86
86
  type: 'request';
87
87
  expr: SqlExpression<RequestSqlParameterValue>;
88
88
  } | {
@@ -93,4 +93,3 @@ type SerializedParameterValue = {
93
93
  type: 'intersection';
94
94
  values: SerializedParameterValue[];
95
95
  };
96
- export {};
package/dist/types.d.ts CHANGED
@@ -5,7 +5,7 @@ import { BucketDataSource } from './BucketSource.js';
5
5
  import { CompatibilityContext } from './compatibility.js';
6
6
  import { ColumnDefinition } from './ExpressionType.js';
7
7
  import { RequestFunctionCall } from './request_functions.js';
8
- import { SourceTableInterface } from './SourceTableInterface.js';
8
+ import { SourceTableRef } from './SourceTableRef.js';
9
9
  import { SyncRulesOptions } from './SqlSyncRules.js';
10
10
  import { TablePattern } from './TablePattern.js';
11
11
  import { CustomSqliteValue } from './types/custom_sqlite_value.js';
@@ -251,12 +251,22 @@ export interface InputParameter {
251
251
  parametersToLookupValue(parameters: ParameterValueSet): SqliteValue;
252
252
  }
253
253
  export interface EvaluateRowOptions extends TableRow {
254
+ /**
255
+ * Recommended: List the specific sources to use.
256
+ *
257
+ * If not provided, uses all matching sources in the sync config. This path is primarily intended for tests.
258
+ *
259
+ * If provided, use only these sources.
260
+ *
261
+ * The array identity is used for caching, so it is recommended to use stable arrays here (e.g. from the bucket source definition) for better performance.
262
+ */
263
+ bucketDataSources?: BucketDataSource[];
254
264
  }
255
265
  /**
256
266
  * A row associated with the table it's coming from.
257
267
  */
258
268
  export interface TableRow<R = SqliteRow> {
259
- sourceTable: SourceTableInterface;
269
+ sourceTable: SourceTableRef;
260
270
  record: R;
261
271
  }
262
272
  export interface BaseClause {
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AAIpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAyFtE,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;AAwND,MAAM,UAAU,gCAAgC,CAAC,MAAsB;IACrE,OAAQ,MAAyC,CAAC,KAAK,IAAI,IAAI,CAAC;AAClE,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -27,6 +27,7 @@ export declare function resolvedBucket(description: BucketDescription, options:
27
27
  * bucket.
28
28
  */
29
29
  export declare function mergeBuckets(buckets: ResolvedBucket[]): ResolvedBucket[];
30
+ export declare function uniqueBy<T>(values: T[], key: (value: T) => string | undefined): T[];
30
31
  export declare function withBucketSource<T extends object>(value: T, source: BucketDataSource): T & {
31
32
  source: BucketDataSource;
32
33
  };
package/dist/utils.js CHANGED
@@ -46,6 +46,19 @@ export function mergeBuckets(buckets) {
46
46
  }
47
47
  return Object.values(byBucketId);
48
48
  }
49
+ export function uniqueBy(values, key) {
50
+ const result = [];
51
+ const seen = new Set();
52
+ for (const value of values) {
53
+ const valueKey = key(value);
54
+ if (valueKey == null || seen.has(valueKey)) {
55
+ continue;
56
+ }
57
+ seen.add(valueKey);
58
+ result.push(value);
59
+ }
60
+ return result;
61
+ }
49
62
  function cloneResolvedBucket(bucket) {
50
63
  let clone = structuredClone(bucket);
51
64
  // The structured clone does not include the non-enumerable source - set it directly.
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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"}
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@powersync/service-sync-rules",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.36.0",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
4
+ "version": "0.38.0",
5
+ "exports": "./dist/index.js",
7
6
  "license": "FSL-1.1-ALv2",
8
7
  "publishConfig": {
9
8
  "access": "public"
@@ -211,6 +211,10 @@
211
211
  "custom_postgres_types": {
212
212
  "type": "boolean",
213
213
  "description": "Enabled by default starting from edition 2: Map custom Postgres types into appropriate structures instead of syncing the raw string."
214
+ },
215
+ "unstable_sqlite_expression_engine": {
216
+ "type": "boolean",
217
+ "description": "Enabled by default starting from edition null: Experimental option to evaluate functions and operators in Sync Streams with SQLite instead of a JavaScript implementation."
214
218
  }
215
219
  },
216
220
  "additionalProperties": false
@@ -1,46 +0,0 @@
1
- import { BucketDataSource, CreateSourceParams, HydratedBucketSource } from './BucketSource.js';
2
- import { CompatibilityContext, EvaluatedParameters, EvaluatedRow, EvaluationError, GetBucketParameterQuerierResult, GetQuerierOptions, ParameterIndexLookupCreator, SqlEventDescriptor, SqliteInputValue, SqliteValue, SyncConfig } from './index.js';
3
- import { SourceTableInterface } from './SourceTableInterface.js';
4
- import { EvaluateRowOptions, SqliteRow } from './types.js';
5
- /**
6
- * Hydrated sync config is sync config definitions along with persisted state. Currently, the persisted state
7
- * specifically affects bucket names.
8
- */
9
- export declare class HydratedSyncRules {
10
- bucketSources: HydratedBucketSource[];
11
- eventDescriptors: SqlEventDescriptor[];
12
- compatibility: CompatibilityContext;
13
- readonly definition: SyncConfig;
14
- private readonly innerEvaluateRow;
15
- private readonly innerEvaluateParameterRow;
16
- constructor(params: {
17
- definition: SyncConfig;
18
- createParams: CreateSourceParams;
19
- bucketDataSources: BucketDataSource[];
20
- bucketParameterIndexLookupCreators: ParameterIndexLookupCreator[];
21
- eventDescriptors?: SqlEventDescriptor[];
22
- compatibility?: CompatibilityContext;
23
- });
24
- getSourceTables(): import("./TablePattern.js").TablePattern[];
25
- tableTriggersEvent(table: SourceTableInterface): boolean;
26
- tableSyncsData(table: SourceTableInterface): boolean;
27
- tableSyncsParameters(table: SourceTableInterface): boolean;
28
- applyRowContext<MaybeToast extends undefined = never>(source: SqliteRow<SqliteInputValue | MaybeToast>): SqliteRow<SqliteValue | MaybeToast>;
29
- /**
30
- * Throws errors.
31
- */
32
- evaluateRow(options: EvaluateRowOptions): EvaluatedRow[];
33
- evaluateRowWithErrors(options: EvaluateRowOptions): {
34
- results: EvaluatedRow[];
35
- errors: EvaluationError[];
36
- };
37
- /**
38
- * Throws errors.
39
- */
40
- evaluateParameterRow(table: SourceTableInterface, row: SqliteRow): EvaluatedParameters[];
41
- evaluateParameterRowWithErrors(table: SourceTableInterface, row: SqliteRow): {
42
- results: EvaluatedParameters[];
43
- errors: EvaluationError[];
44
- };
45
- getBucketParameterQuerier(options: GetQuerierOptions): GetBucketParameterQuerierResult;
46
- }