@powersync/service-sync-rules 0.36.0 → 0.37.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 (103) 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/events/SqlEventDescriptor.d.ts +2 -2
  43. package/dist/events/SqlEventDescriptor.js.map +1 -1
  44. package/dist/events/SqlEventSourceQuery.d.ts +2 -2
  45. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  46. package/dist/from_yaml.js +9 -2
  47. package/dist/from_yaml.js.map +1 -1
  48. package/dist/index.d.ts +3 -4
  49. package/dist/index.js +3 -4
  50. package/dist/index.js.map +1 -1
  51. package/dist/sql_functions.d.ts +4 -4
  52. package/dist/sql_functions.js +12 -6
  53. package/dist/sql_functions.js.map +1 -1
  54. package/dist/streams/filter.d.ts +8 -7
  55. package/dist/streams/filter.js +5 -3
  56. package/dist/streams/filter.js.map +1 -1
  57. package/dist/streams/stream.d.ts +5 -4
  58. package/dist/streams/stream.js +3 -0
  59. package/dist/streams/stream.js.map +1 -1
  60. package/dist/sync_plan/engine/factory.d.ts +4 -0
  61. package/dist/sync_plan/engine/factory.js +13 -0
  62. package/dist/sync_plan/engine/factory.js.map +1 -0
  63. package/dist/sync_plan/engine/javascript.js +0 -1
  64. package/dist/sync_plan/engine/javascript.js.map +1 -1
  65. package/dist/sync_plan/engine/scalar_expression_engine.d.ts +0 -4
  66. package/dist/sync_plan/engine/scalar_expression_engine.js +2 -2
  67. package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
  68. package/dist/sync_plan/engine/sqlite.d.ts +26 -5
  69. package/dist/sync_plan/engine/sqlite.js +38 -23
  70. package/dist/sync_plan/engine/sqlite.js.map +1 -1
  71. package/dist/sync_plan/evaluator/bucket_data_source.d.ts +6 -7
  72. package/dist/sync_plan/evaluator/bucket_data_source.js +67 -57
  73. package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
  74. package/dist/sync_plan/evaluator/bucket_source.d.ts +2 -2
  75. package/dist/sync_plan/evaluator/bucket_source.js +4 -4
  76. package/dist/sync_plan/evaluator/bucket_source.js.map +1 -1
  77. package/dist/sync_plan/evaluator/index.d.ts +0 -2
  78. package/dist/sync_plan/evaluator/index.js.map +1 -1
  79. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +3 -1
  80. package/dist/sync_plan/evaluator/parameter_evaluator.js +4 -3
  81. package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -1
  82. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +8 -9
  83. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +62 -58
  84. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
  85. package/dist/sync_plan/expression.js +1 -1
  86. package/dist/sync_plan/expression.js.map +1 -1
  87. package/dist/sync_plan/expression_to_sql.js +1 -1
  88. package/dist/sync_plan/expression_to_sql.js.map +1 -1
  89. package/dist/sync_plan/plan.d.ts +2 -2
  90. package/dist/sync_plan/serialize.d.ts +2 -2
  91. package/dist/types.d.ts +12 -2
  92. package/dist/types.js.map +1 -1
  93. package/dist/utils.d.ts +1 -0
  94. package/dist/utils.js +13 -0
  95. package/dist/utils.js.map +1 -1
  96. package/package.json +1 -1
  97. package/schema/sync_rules.json +4 -0
  98. package/dist/HydratedSyncRules.d.ts +0 -46
  99. package/dist/HydratedSyncRules.js +0 -88
  100. package/dist/HydratedSyncRules.js.map +0 -1
  101. package/dist/SourceTableInterface.d.ts +0 -5
  102. package/dist/SourceTableInterface.js +0 -2
  103. 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":"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"}
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
  *
@@ -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
  /**
@@ -51,7 +51,7 @@ interface SerializedDataSource {
51
51
  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[];
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":"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"}
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,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/service-sync-rules",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.36.0",
4
+ "version": "0.37.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "FSL-1.1-ALv2",
@@ -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
- }
@@ -1,88 +0,0 @@
1
- import { CompatibilityContext, isEvaluatedParameters, isEvaluatedRow, isEvaluationError, mergeBucketParameterQueriers, mergeDataSources, mergeParameterIndexLookupCreators } from './index.js';
2
- /**
3
- * Hydrated sync config is sync config definitions along with persisted state. Currently, the persisted state
4
- * specifically affects bucket names.
5
- */
6
- export class HydratedSyncRules {
7
- bucketSources = [];
8
- eventDescriptors = [];
9
- compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
10
- definition;
11
- innerEvaluateRow;
12
- innerEvaluateParameterRow;
13
- constructor(params) {
14
- const hydrationState = params.createParams.hydrationState;
15
- this.definition = params.definition;
16
- this.innerEvaluateRow = mergeDataSources(hydrationState, params.bucketDataSources).evaluateRow;
17
- this.innerEvaluateParameterRow = mergeParameterIndexLookupCreators(hydrationState, params.bucketParameterIndexLookupCreators).evaluateParameterRow;
18
- if (params.eventDescriptors) {
19
- this.eventDescriptors = params.eventDescriptors;
20
- }
21
- if (params.compatibility) {
22
- this.compatibility = params.compatibility;
23
- }
24
- this.bucketSources = this.definition.bucketSources.map((source) => source.hydrate(params.createParams));
25
- }
26
- // These methods do not depend on hydration, so we can just forward them to the definition.
27
- getSourceTables() {
28
- return this.definition.getSourceTables();
29
- }
30
- tableTriggersEvent(table) {
31
- return this.definition.tableTriggersEvent(table);
32
- }
33
- tableSyncsData(table) {
34
- return this.definition.tableSyncsData(table);
35
- }
36
- tableSyncsParameters(table) {
37
- return this.definition.tableSyncsParameters(table);
38
- }
39
- applyRowContext(source) {
40
- return this.definition.applyRowContext(source);
41
- }
42
- /**
43
- * Throws errors.
44
- */
45
- evaluateRow(options) {
46
- const { results, errors } = this.evaluateRowWithErrors(options);
47
- if (errors.length > 0) {
48
- throw new Error(errors[0].error);
49
- }
50
- return results;
51
- }
52
- evaluateRowWithErrors(options) {
53
- const rawResults = this.innerEvaluateRow(options);
54
- const results = rawResults.filter(isEvaluatedRow);
55
- const errors = rawResults.filter(isEvaluationError);
56
- return { results, errors };
57
- }
58
- /**
59
- * Throws errors.
60
- */
61
- evaluateParameterRow(table, row) {
62
- const { results, errors } = this.evaluateParameterRowWithErrors(table, row);
63
- if (errors.length > 0) {
64
- throw new Error(errors[0].error);
65
- }
66
- return results;
67
- }
68
- evaluateParameterRowWithErrors(table, row) {
69
- const rawResults = this.innerEvaluateParameterRow(table, row);
70
- const results = rawResults.filter(isEvaluatedParameters);
71
- const errors = rawResults.filter(isEvaluationError);
72
- return { results, errors };
73
- }
74
- getBucketParameterQuerier(options) {
75
- const queriers = [];
76
- const errors = [];
77
- const pending = { queriers, errors };
78
- for (const source of this.bucketSources) {
79
- if ((source.definition.subscribedToByDefault && options.hasDefaultStreams) ||
80
- source.definition.name in options.streams) {
81
- source.pushBucketParameterQueriers(pending, options);
82
- }
83
- }
84
- const querier = mergeBucketParameterQueriers(queriers);
85
- return { querier, errors };
86
- }
87
- }
88
- //# sourceMappingURL=HydratedSyncRules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HydratedSyncRules.js","sourceRoot":"","sources":["../src/HydratedSyncRules.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,EAMpB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,4BAA4B,EAC5B,gBAAgB,EAChB,iCAAiC,EASlC,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,aAAa,GAA2B,EAAE,CAAC;IAC3C,gBAAgB,GAAyB,EAAE,CAAC;IAC5C,aAAa,GAAyB,oBAAoB,CAAC,4BAA4B,CAAC;IAE/E,UAAU,CAAa;IAEf,gBAAgB,CAAoB;IACpC,yBAAyB,CAA6B;IAEvE,YAAY,MAOX;QACC,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;QAE1D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;QAC/F,IAAI,CAAC,yBAAyB,GAAG,iCAAiC,CAChE,cAAc,EACd,MAAM,CAAC,kCAAkC,CAC1C,CAAC,oBAAoB,CAAC;QAEvB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,2FAA2F;IAE3F,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,KAA2B;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,oBAAoB,CAAC,KAA2B;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CACb,MAAgD;QAEhD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAA2B;QACrC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,MAAM,UAAU,GAAuB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAmB,CAAC;QACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAsB,CAAC;QAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAA2B,EAAE,GAAc;QAC9D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8BAA8B,CAC5B,KAA2B,EAC3B,GAAc;QAEd,MAAM,UAAU,GAAgC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAA0B,CAAC;QAClF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAsB,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB,CAAC,OAA0B;QAClD,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IACE,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,CAAC;gBACtE,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EACzC,CAAC;gBACD,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- export interface SourceTableInterface {
2
- readonly connectionTag: string;
3
- readonly schema: string;
4
- readonly name: string;
5
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SourceTableInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SourceTableInterface.js","sourceRoot":"","sources":["../src/SourceTableInterface.ts"],"names":[],"mappings":""}