@powersync/service-sync-rules 0.29.10 → 0.31.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 (188) hide show
  1. package/dist/BaseSqlDataQuery.d.ts +3 -9
  2. package/dist/BaseSqlDataQuery.js +11 -21
  3. package/dist/BaseSqlDataQuery.js.map +1 -1
  4. package/dist/BucketParameterQuerier.d.ts +42 -9
  5. package/dist/BucketParameterQuerier.js +30 -7
  6. package/dist/BucketParameterQuerier.js.map +1 -1
  7. package/dist/BucketSource.d.ts +94 -25
  8. package/dist/BucketSource.js +67 -0
  9. package/dist/BucketSource.js.map +1 -1
  10. package/dist/ExpressionType.d.ts +4 -2
  11. package/dist/ExpressionType.js.map +1 -1
  12. package/dist/HydratedSyncRules.d.ts +46 -0
  13. package/dist/HydratedSyncRules.js +88 -0
  14. package/dist/HydratedSyncRules.js.map +1 -0
  15. package/dist/HydrationState.d.ts +45 -0
  16. package/dist/HydrationState.js +41 -0
  17. package/dist/HydrationState.js.map +1 -0
  18. package/dist/SqlBucketDescriptor.d.ts +31 -28
  19. package/dist/SqlBucketDescriptor.js +89 -112
  20. package/dist/SqlBucketDescriptor.js.map +1 -1
  21. package/dist/SqlDataQuery.d.ts +4 -4
  22. package/dist/SqlDataQuery.js +5 -6
  23. package/dist/SqlDataQuery.js.map +1 -1
  24. package/dist/SqlParameterQuery.d.ts +17 -9
  25. package/dist/SqlParameterQuery.js +49 -23
  26. package/dist/SqlParameterQuery.js.map +1 -1
  27. package/dist/SqlSyncRules.d.ts +11 -53
  28. package/dist/SqlSyncRules.js +11 -376
  29. package/dist/SqlSyncRules.js.map +1 -1
  30. package/dist/StaticSqlParameterQuery.d.ts +13 -3
  31. package/dist/StaticSqlParameterQuery.js +38 -4
  32. package/dist/StaticSqlParameterQuery.js.map +1 -1
  33. package/dist/SyncConfig.d.ts +43 -0
  34. package/dist/SyncConfig.js +102 -0
  35. package/dist/SyncConfig.js.map +1 -0
  36. package/dist/TablePattern.d.ts +22 -4
  37. package/dist/TablePattern.js +57 -19
  38. package/dist/TablePattern.js.map +1 -1
  39. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +14 -4
  40. package/dist/TableValuedFunctionSqlParameterQuery.js +41 -7
  41. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  42. package/dist/compatibility.d.ts +7 -0
  43. package/dist/compatibility.js +34 -0
  44. package/dist/compatibility.js.map +1 -1
  45. package/dist/compiler/bucket_resolver.d.ts +70 -0
  46. package/dist/compiler/bucket_resolver.js +131 -0
  47. package/dist/compiler/bucket_resolver.js.map +1 -0
  48. package/dist/compiler/compatibility.d.ts +16 -0
  49. package/dist/compiler/compatibility.js +12 -0
  50. package/dist/compiler/compatibility.js.map +1 -0
  51. package/dist/compiler/compiler.d.ts +110 -0
  52. package/dist/compiler/compiler.js +130 -0
  53. package/dist/compiler/compiler.js.map +1 -0
  54. package/dist/compiler/equality.d.ts +99 -0
  55. package/dist/compiler/equality.js +284 -0
  56. package/dist/compiler/equality.js.map +1 -0
  57. package/dist/compiler/expression.d.ts +77 -0
  58. package/dist/compiler/expression.js +122 -0
  59. package/dist/compiler/expression.js.map +1 -0
  60. package/dist/compiler/filter.d.ts +71 -0
  61. package/dist/compiler/filter.js +110 -0
  62. package/dist/compiler/filter.js.map +1 -0
  63. package/dist/compiler/filter_simplifier.d.ts +26 -0
  64. package/dist/compiler/filter_simplifier.js +119 -0
  65. package/dist/compiler/filter_simplifier.js.map +1 -0
  66. package/dist/compiler/ir_to_sync_plan.d.ts +37 -0
  67. package/dist/compiler/ir_to_sync_plan.js +163 -0
  68. package/dist/compiler/ir_to_sync_plan.js.map +1 -0
  69. package/dist/compiler/parser.d.ts +99 -0
  70. package/dist/compiler/parser.js +556 -0
  71. package/dist/compiler/parser.js.map +1 -0
  72. package/dist/compiler/querier_graph.d.ts +42 -0
  73. package/dist/compiler/querier_graph.js +365 -0
  74. package/dist/compiler/querier_graph.js.map +1 -0
  75. package/dist/compiler/rows.d.ts +113 -0
  76. package/dist/compiler/rows.js +156 -0
  77. package/dist/compiler/rows.js.map +1 -0
  78. package/dist/compiler/scope.d.ts +22 -0
  79. package/dist/compiler/scope.js +47 -0
  80. package/dist/compiler/scope.js.map +1 -0
  81. package/dist/compiler/sqlite.d.ts +77 -0
  82. package/dist/compiler/sqlite.js +412 -0
  83. package/dist/compiler/sqlite.js.map +1 -0
  84. package/dist/compiler/table.d.ts +66 -0
  85. package/dist/compiler/table.js +67 -0
  86. package/dist/compiler/table.js.map +1 -0
  87. package/dist/errors.d.ts +4 -2
  88. package/dist/errors.js +16 -1
  89. package/dist/errors.js.map +1 -1
  90. package/dist/events/SqlEventDescriptor.js +1 -1
  91. package/dist/events/SqlEventDescriptor.js.map +1 -1
  92. package/dist/events/SqlEventSourceQuery.d.ts +1 -1
  93. package/dist/events/SqlEventSourceQuery.js +1 -2
  94. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  95. package/dist/from_yaml.d.ts +28 -0
  96. package/dist/from_yaml.js +411 -0
  97. package/dist/from_yaml.js.map +1 -0
  98. package/dist/index.d.ts +9 -0
  99. package/dist/index.js +9 -0
  100. package/dist/index.js.map +1 -1
  101. package/dist/json_schema.js +17 -1
  102. package/dist/json_schema.js.map +1 -1
  103. package/dist/request_functions.js.map +1 -1
  104. package/dist/schema-generators/DartSchemaGenerator.d.ts +3 -3
  105. package/dist/schema-generators/DartSchemaGenerator.js.map +1 -1
  106. package/dist/schema-generators/DotNetSchemaGenerator.d.ts +2 -2
  107. package/dist/schema-generators/DotNetSchemaGenerator.js.map +1 -1
  108. package/dist/schema-generators/JsLegacySchemaGenerator.d.ts +2 -2
  109. package/dist/schema-generators/JsLegacySchemaGenerator.js.map +1 -1
  110. package/dist/schema-generators/KotlinSchemaGenerator.d.ts +2 -2
  111. package/dist/schema-generators/KotlinSchemaGenerator.js.map +1 -1
  112. package/dist/schema-generators/RoomSchemaGenerator.d.ts +2 -2
  113. package/dist/schema-generators/RoomSchemaGenerator.js.map +1 -1
  114. package/dist/schema-generators/SchemaGenerator.d.ts +8 -3
  115. package/dist/schema-generators/SchemaGenerator.js +21 -14
  116. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  117. package/dist/schema-generators/SqlSchemaGenerator.d.ts +2 -2
  118. package/dist/schema-generators/SqlSchemaGenerator.js.map +1 -1
  119. package/dist/schema-generators/SwiftSchemaGenerator.d.ts +2 -2
  120. package/dist/schema-generators/SwiftSchemaGenerator.js.map +1 -1
  121. package/dist/schema-generators/TsSchemaGenerator.d.ts +2 -2
  122. package/dist/schema-generators/TsSchemaGenerator.js.map +1 -1
  123. package/dist/sql_functions.d.ts +4 -3
  124. package/dist/sql_functions.js +1 -1
  125. package/dist/sql_functions.js.map +1 -1
  126. package/dist/streams/filter.d.ts +34 -4
  127. package/dist/streams/filter.js +93 -23
  128. package/dist/streams/filter.js.map +1 -1
  129. package/dist/streams/from_sql.js +2 -5
  130. package/dist/streams/from_sql.js.map +1 -1
  131. package/dist/streams/parameter.d.ts +7 -6
  132. package/dist/streams/stream.d.ts +25 -15
  133. package/dist/streams/stream.js +59 -87
  134. package/dist/streams/stream.js.map +1 -1
  135. package/dist/streams/variant.d.ts +14 -21
  136. package/dist/streams/variant.js +68 -46
  137. package/dist/streams/variant.js.map +1 -1
  138. package/dist/sync_plan/engine/javascript.d.ts +6 -0
  139. package/dist/sync_plan/engine/javascript.js +208 -0
  140. package/dist/sync_plan/engine/javascript.js.map +1 -0
  141. package/dist/sync_plan/engine/scalar_expression_engine.d.ts +48 -0
  142. package/dist/sync_plan/engine/scalar_expression_engine.js +99 -0
  143. package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -0
  144. package/dist/sync_plan/engine/sqlite.d.ts +12 -0
  145. package/dist/sync_plan/engine/sqlite.js +53 -0
  146. package/dist/sync_plan/engine/sqlite.js.map +1 -0
  147. package/dist/sync_plan/evaluator/bucket_data_source.d.ts +24 -0
  148. package/dist/sync_plan/evaluator/bucket_data_source.js +139 -0
  149. package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -0
  150. package/dist/sync_plan/evaluator/bucket_source.d.ts +19 -0
  151. package/dist/sync_plan/evaluator/bucket_source.js +145 -0
  152. package/dist/sync_plan/evaluator/bucket_source.js.map +1 -0
  153. package/dist/sync_plan/evaluator/index.d.ts +17 -0
  154. package/dist/sync_plan/evaluator/index.js +32 -0
  155. package/dist/sync_plan/evaluator/index.js.map +1 -0
  156. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +138 -0
  157. package/dist/sync_plan/evaluator/parameter_evaluator.js +359 -0
  158. package/dist/sync_plan/evaluator/parameter_evaluator.js.map +1 -0
  159. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.d.ts +20 -0
  160. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +64 -0
  161. package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -0
  162. package/dist/sync_plan/expression.d.ts +109 -0
  163. package/dist/sync_plan/expression.js +85 -0
  164. package/dist/sync_plan/expression.js.map +1 -0
  165. package/dist/sync_plan/expression_to_sql.d.ts +43 -0
  166. package/dist/sync_plan/expression_to_sql.js +190 -0
  167. package/dist/sync_plan/expression_to_sql.js.map +1 -0
  168. package/dist/sync_plan/expression_visitor.d.ts +57 -0
  169. package/dist/sync_plan/expression_visitor.js +181 -0
  170. package/dist/sync_plan/expression_visitor.js.map +1 -0
  171. package/dist/sync_plan/plan.d.ts +196 -0
  172. package/dist/sync_plan/plan.js +2 -0
  173. package/dist/sync_plan/plan.js.map +1 -0
  174. package/dist/sync_plan/schema_inference.d.ts +16 -0
  175. package/dist/sync_plan/schema_inference.js +123 -0
  176. package/dist/sync_plan/schema_inference.js.map +1 -0
  177. package/dist/sync_plan/serialize.d.ts +82 -0
  178. package/dist/sync_plan/serialize.js +214 -0
  179. package/dist/sync_plan/serialize.js.map +1 -0
  180. package/dist/types/custom_sqlite_value.d.ts +1 -1
  181. package/dist/types.d.ts +72 -29
  182. package/dist/types.js +30 -5
  183. package/dist/types.js.map +1 -1
  184. package/dist/utils.d.ts +10 -3
  185. package/dist/utils.js +26 -3
  186. package/dist/utils.js.map +1 -1
  187. package/package.json +4 -3
  188. package/schema/sync_rules.json +19 -3
@@ -0,0 +1,88 @@
1
+ import { CompatibilityContext, isEvaluatedParameters, isEvaluatedRow, isEvaluationError, mergeBucketParameterQueriers, mergeDataSources, mergeParameterIndexLookupCreators } from './index.js';
2
+ /**
3
+ * Hydrated sync rules is sync rule 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HydratedSyncRules.js","sourceRoot":"","sources":["../src/HydratedSyncRules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { BucketDataSource, ParameterIndexLookupCreator } from './BucketSource.js';
2
+ export interface BucketDataScope {
3
+ /** The prefix is the bucket name before the parameters. */
4
+ bucketPrefix: string;
5
+ }
6
+ export interface ParameterLookupScope {
7
+ /** The lookup name + queryid is used to reference the parameter lookup record. */
8
+ lookupName: string;
9
+ queryId: string;
10
+ }
11
+ /**
12
+ * Hydration state information for a source.
13
+ *
14
+ * This is what keeps track of bucket name and parameter lookup mappings for hydration. This can be used
15
+ * both to re-use mappings across hydrations of different sync rule versions, or to generate new mappings.
16
+ */
17
+ export interface HydrationState {
18
+ /**
19
+ * Given a bucket data source definition, get the bucket prefix to use for it.
20
+ */
21
+ getBucketSourceScope(source: BucketDataSource): BucketDataScope;
22
+ /**
23
+ * Given a bucket parameter lookup definition, get the persistence name to use.
24
+ */
25
+ getParameterIndexLookupScope(source: ParameterIndexLookupCreator): ParameterLookupScope;
26
+ }
27
+ /**
28
+ * This represents hydration state that performs no transformations.
29
+ *
30
+ * This is the legacy default behavior with no bucket versioning.
31
+ */
32
+ export declare const DEFAULT_HYDRATION_STATE: HydrationState;
33
+ /**
34
+ * Transforms bucket ids generated when evaluating the row by e.g. encoding version information.
35
+ *
36
+ * Because buckets are recreated on a sync rule redeploy, it makes sense to use different bucket ids (otherwise, clients
37
+ * may run into checksum errors causing a sync to take longer than necessary or breaking progress).
38
+ *
39
+ * So, this transformer receives the original bucket id as generated by defined sync rules, and can prepend a version
40
+ * identifier.
41
+ *
42
+ * Note that this transformation has not been present in older versions of the sync service. To preserve backwards
43
+ * compatibility, sync rules will not use this without an opt-in.
44
+ */
45
+ export declare function versionedHydrationState(version: number): HydrationState;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This represents hydration state that performs no transformations.
3
+ *
4
+ * This is the legacy default behavior with no bucket versioning.
5
+ */
6
+ export const DEFAULT_HYDRATION_STATE = {
7
+ getBucketSourceScope(source) {
8
+ return {
9
+ bucketPrefix: source.uniqueName
10
+ };
11
+ },
12
+ getParameterIndexLookupScope(source) {
13
+ return source.defaultLookupScope;
14
+ }
15
+ };
16
+ /**
17
+ * Transforms bucket ids generated when evaluating the row by e.g. encoding version information.
18
+ *
19
+ * Because buckets are recreated on a sync rule redeploy, it makes sense to use different bucket ids (otherwise, clients
20
+ * may run into checksum errors causing a sync to take longer than necessary or breaking progress).
21
+ *
22
+ * So, this transformer receives the original bucket id as generated by defined sync rules, and can prepend a version
23
+ * identifier.
24
+ *
25
+ * Note that this transformation has not been present in older versions of the sync service. To preserve backwards
26
+ * compatibility, sync rules will not use this without an opt-in.
27
+ */
28
+ export function versionedHydrationState(version) {
29
+ return {
30
+ getBucketSourceScope(source) {
31
+ return {
32
+ bucketPrefix: `${version}#${source.uniqueName}`
33
+ };
34
+ },
35
+ getParameterIndexLookupScope(source) {
36
+ // No transformations applied here
37
+ return source.defaultLookupScope;
38
+ }
39
+ };
40
+ }
41
+ //# sourceMappingURL=HydrationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HydrationState.js","sourceRoot":"","sources":["../src/HydrationState.ts"],"names":[],"mappings":"AA+BA;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,oBAAoB,CAAC,MAAwB;QAC3C,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC;IACJ,CAAC;IACD,4BAA4B,CAAC,MAAM;QACjC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO;QACL,oBAAoB,CAAC,MAAwB;YAC3C,OAAO;gBACL,YAAY,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE;aAChD,CAAC;QACJ,CAAC;QAED,4BAA4B,CAAC,MAAmC;YAC9D,kCAAkC;YAClC,OAAO,MAAM,CAAC,kBAAkB,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,18 +1,16 @@
1
- import { BucketInclusionReason, ResolvedBucket } from './BucketDescription.js';
2
- import { BucketParameterQuerier, PendingQueriers } from './BucketParameterQuerier.js';
3
- import { BucketSource, BucketSourceType } from './BucketSource.js';
1
+ import { BucketDataSource, BucketSource, BucketSourceType, CreateSourceParams, HydratedBucketSource } from './BucketSource.js';
4
2
  import { ColumnDefinition } from './ExpressionType.js';
5
3
  import { IdSequence } from './IdSequence.js';
6
4
  import { SourceTableInterface } from './SourceTableInterface.js';
7
5
  import { SqlDataQuery } from './SqlDataQuery.js';
8
6
  import { SqlParameterQuery } from './SqlParameterQuery.js';
9
- import { GetQuerierOptions, SyncRulesOptions } from './SqlSyncRules.js';
7
+ import { SyncRulesOptions } from './SqlSyncRules.js';
10
8
  import { StaticSqlParameterQuery } from './StaticSqlParameterQuery.js';
11
9
  import { TablePattern } from './TablePattern.js';
12
10
  import { TableValuedFunctionSqlParameterQuery } from './TableValuedFunctionSqlParameterQuery.js';
13
- import { SqlRuleError } from './errors.js';
14
11
  import { CompatibilityContext } from './compatibility.js';
15
- import { BucketIdTransformer, EvaluatedParametersResult, EvaluateRowOptions, EvaluationResult, QueryParseOptions, RequestParameters, SourceSchema, SqliteRow } from './types.js';
12
+ import { SqlRuleError } from './errors.js';
13
+ import { EvaluateRowOptions, QueryParseOptions, SourceSchema, UnscopedEvaluationResult } from './types.js';
16
14
  export interface QueryParseResult {
17
15
  /**
18
16
  * True if parsed in some form, even if there are errors.
@@ -22,10 +20,9 @@ export interface QueryParseResult {
22
20
  }
23
21
  export declare class SqlBucketDescriptor implements BucketSource {
24
22
  name: string;
25
- bucketParameters?: string[];
26
- constructor(name: string);
27
- get type(): BucketSourceType;
28
- get subscribedToByDefault(): boolean;
23
+ private bucketParametersInternal;
24
+ readonly subscribedToByDefault: boolean;
25
+ private readonly dataSource;
29
26
  /**
30
27
  * source table -> queries
31
28
  */
@@ -33,29 +30,18 @@ export declare class SqlBucketDescriptor implements BucketSource {
33
30
  parameterQueries: SqlParameterQuery[];
34
31
  globalParameterQueries: (StaticSqlParameterQuery | TableValuedFunctionSqlParameterQuery)[];
35
32
  parameterIdSequence: IdSequence;
33
+ constructor(name: string);
34
+ get type(): BucketSourceType;
35
+ get bucketParameters(): string[];
36
+ get dataSources(): BucketDefinitionDataSource[];
37
+ get parameterIndexLookupCreators(): SqlParameterQuery[];
38
+ get parameterQuerierSources(): (StaticSqlParameterQuery | TableValuedFunctionSqlParameterQuery | SqlParameterQuery)[];
36
39
  addDataQuery(sql: string, options: SyncRulesOptions, compatibility: CompatibilityContext): QueryParseResult;
37
40
  addParameterQuery(sql: string, options: QueryParseOptions): QueryParseResult;
38
- evaluateRow(options: EvaluateRowOptions): EvaluationResult[];
39
- evaluateParameterRow(sourceTable: SourceTableInterface, row: SqliteRow): EvaluatedParametersResult[];
40
- /**
41
- * @deprecated Use `pushBucketParameterQueriers` instead and merge at the top-level.
42
- */
43
- getBucketParameterQuerier(options: GetQuerierOptions): BucketParameterQuerier;
44
- pushBucketParameterQueriers(result: PendingQueriers, options: GetQuerierOptions): void;
45
- getStaticBucketDescriptions(parameters: RequestParameters, reasons: BucketInclusionReason[], transformer: BucketIdTransformer): ResolvedBucket[];
46
- hasDynamicBucketQueries(): boolean;
47
- getSourceTables(): Set<TablePattern>;
48
- private bucketInclusionReason;
49
- tableSyncsData(table: SourceTableInterface): boolean;
50
- tableSyncsParameters(table: SourceTableInterface): boolean;
51
- resolveResultSets(schema: SourceSchema, tables: Record<string, Record<string, ColumnDefinition>>): void;
52
- debugWriteOutputTables(result: Record<string, {
53
- query: string;
54
- }[]>): void;
55
41
  debugRepresentation(): {
56
42
  name: string;
57
43
  type: string;
58
- bucket_parameters: string[] | undefined;
44
+ bucket_parameters: string[];
59
45
  global_parameter_queries: {
60
46
  sql: string;
61
47
  }[];
@@ -70,4 +56,21 @@ export declare class SqlBucketDescriptor implements BucketSource {
70
56
  columns: string[];
71
57
  }[];
72
58
  };
59
+ hydrate(params: CreateSourceParams): HydratedBucketSource;
60
+ }
61
+ export declare class BucketDefinitionDataSource implements BucketDataSource {
62
+ private descriptor;
63
+ constructor(descriptor: SqlBucketDescriptor);
64
+ /**
65
+ * For debug use only.
66
+ */
67
+ get bucketParameters(): string[];
68
+ get uniqueName(): string;
69
+ evaluateRow(options: EvaluateRowOptions): UnscopedEvaluationResult[];
70
+ getSourceTables(): Set<TablePattern>;
71
+ tableSyncsData(table: SourceTableInterface): boolean;
72
+ resolveResultSets(schema: SourceSchema, tables: Record<string, Record<string, ColumnDefinition>>): void;
73
+ debugWriteOutputTables(result: Record<string, {
74
+ query: string;
75
+ }[]>): void;
73
76
  }
@@ -1,20 +1,12 @@
1
- import { mergeBucketParameterQueriers } from './BucketParameterQuerier.js';
2
1
  import { BucketSourceType } from './BucketSource.js';
3
2
  import { IdSequence } from './IdSequence.js';
4
3
  import { SqlDataQuery } from './SqlDataQuery.js';
5
4
  import { SqlParameterQuery } from './SqlParameterQuery.js';
6
5
  export class SqlBucketDescriptor {
7
6
  name;
8
- bucketParameters;
9
- constructor(name) {
10
- this.name = name;
11
- }
12
- get type() {
13
- return BucketSourceType.SYNC_RULE;
14
- }
15
- get subscribedToByDefault() {
16
- return true;
17
- }
7
+ bucketParametersInternal = null;
8
+ subscribedToByDefault = true;
9
+ dataSource = new BucketDefinitionDataSource(this);
18
10
  /**
19
11
  * source table -> queries
20
12
  */
@@ -22,11 +14,29 @@ export class SqlBucketDescriptor {
22
14
  parameterQueries = [];
23
15
  globalParameterQueries = [];
24
16
  parameterIdSequence = new IdSequence();
17
+ constructor(name) {
18
+ this.name = name;
19
+ }
20
+ get type() {
21
+ return BucketSourceType.SYNC_RULE;
22
+ }
23
+ get bucketParameters() {
24
+ return this.bucketParametersInternal ?? [];
25
+ }
26
+ get dataSources() {
27
+ return [this.dataSource];
28
+ }
29
+ get parameterIndexLookupCreators() {
30
+ return this.parameterQueries;
31
+ }
32
+ get parameterQuerierSources() {
33
+ return [...this.parameterQueries, ...this.globalParameterQueries];
34
+ }
25
35
  addDataQuery(sql, options, compatibility) {
26
- if (this.bucketParameters == null) {
36
+ if (this.bucketParametersInternal == null) {
27
37
  throw new Error('Bucket parameters must be defined');
28
38
  }
29
- const dataRows = SqlDataQuery.fromSql(this.name, this.bucketParameters, sql, options, compatibility);
39
+ const dataRows = SqlDataQuery.fromSql(this.bucketParametersInternal, sql, options, compatibility);
30
40
  this.dataQueries.push(dataRows);
31
41
  return {
32
42
  parsed: true,
@@ -34,12 +44,13 @@ export class SqlBucketDescriptor {
34
44
  };
35
45
  }
36
46
  addParameterQuery(sql, options) {
37
- const parameterQuery = SqlParameterQuery.fromSql(this.name, sql, options, this.parameterIdSequence.nextId());
38
- if (this.bucketParameters == null) {
39
- this.bucketParameters = parameterQuery.bucketParameters;
47
+ const parameterQuery = SqlParameterQuery.fromSql(this.name, sql, options, this.parameterIdSequence.nextId(), this.dataSource);
48
+ if (this.bucketParametersInternal == null) {
49
+ this.bucketParametersInternal = parameterQuery.bucketParameters;
40
50
  }
41
51
  else {
42
- if (new Set([...parameterQuery.bucketParameters, ...this.bucketParameters]).size != this.bucketParameters.length) {
52
+ if (new Set([...parameterQuery.bucketParameters, ...this.bucketParametersInternal]).size !=
53
+ this.bucketParametersInternal.length) {
43
54
  throw new Error('Bucket parameters must match for each parameter query within a bucket');
44
55
  }
45
56
  }
@@ -54,89 +65,83 @@ export class SqlBucketDescriptor {
54
65
  errors: parameterQuery.errors
55
66
  };
56
67
  }
57
- evaluateRow(options) {
58
- let results = [];
59
- for (let query of this.dataQueries) {
60
- if (!query.applies(options.sourceTable)) {
61
- continue;
62
- }
63
- results.push(...query.evaluateRow(options.sourceTable, options.record, options.bucketIdTransformer));
64
- }
65
- return results;
68
+ debugRepresentation() {
69
+ let all_parameter_queries = [...this.parameterQueries.values()].flat();
70
+ let all_data_queries = [...this.dataQueries.values()].flat();
71
+ return {
72
+ name: this.name,
73
+ type: BucketSourceType[this.type],
74
+ bucket_parameters: this.bucketParameters,
75
+ global_parameter_queries: this.globalParameterQueries.map((q) => {
76
+ return {
77
+ sql: q.sql
78
+ };
79
+ }),
80
+ parameter_queries: all_parameter_queries.map((q) => {
81
+ return {
82
+ sql: q.sql,
83
+ table: q.sourceTable,
84
+ input_parameters: q.inputParameters
85
+ };
86
+ }),
87
+ data_queries: all_data_queries.map((q) => {
88
+ return {
89
+ sql: q.sql,
90
+ table: q.sourceTable,
91
+ columns: q.columnOutputNames()
92
+ };
93
+ })
94
+ };
66
95
  }
67
- evaluateParameterRow(sourceTable, row) {
68
- let results = [];
69
- for (let query of this.parameterQueries) {
70
- if (query.applies(sourceTable)) {
71
- results.push(...query.evaluateParameterRow(row));
96
+ hydrate(params) {
97
+ const hydratedParameterQueriers = this.parameterQueries.map((querier) => querier.createParameterQuerierSource(params));
98
+ const hydratedGlobalParameterQueriers = this.globalParameterQueries.map((querier) => querier.createParameterQuerierSource(params));
99
+ return {
100
+ definition: this,
101
+ pushBucketParameterQueriers: (result, options) => {
102
+ for (let querier of hydratedParameterQueriers) {
103
+ querier.pushBucketParameterQueriers(result, options);
104
+ }
105
+ for (let querier of hydratedGlobalParameterQueriers) {
106
+ querier.pushBucketParameterQueriers(result, options);
107
+ }
72
108
  }
73
- }
74
- return results;
109
+ };
110
+ }
111
+ }
112
+ export class BucketDefinitionDataSource {
113
+ descriptor;
114
+ constructor(descriptor) {
115
+ this.descriptor = descriptor;
75
116
  }
76
117
  /**
77
- * @deprecated Use `pushBucketParameterQueriers` instead and merge at the top-level.
118
+ * For debug use only.
78
119
  */
79
- getBucketParameterQuerier(options) {
80
- const queriers = [];
81
- this.pushBucketParameterQueriers({ queriers, errors: [] }, options);
82
- return mergeBucketParameterQueriers(queriers);
83
- }
84
- pushBucketParameterQueriers(result, options) {
85
- const reasons = [this.bucketInclusionReason()];
86
- const staticBuckets = this.getStaticBucketDescriptions(options.globalParameters, reasons, options.bucketIdTransformer);
87
- const staticQuerier = {
88
- staticBuckets,
89
- hasDynamicBuckets: false,
90
- parameterQueryLookups: [],
91
- queryDynamicBucketDescriptions: async () => []
92
- };
93
- result.queriers.push(staticQuerier);
94
- if (this.parameterQueries.length == 0) {
95
- return;
96
- }
97
- const dynamicQueriers = this.parameterQueries.map((query) => query.getBucketParameterQuerier(options.globalParameters, reasons, options.bucketIdTransformer));
98
- result.queriers.push(...dynamicQueriers);
120
+ get bucketParameters() {
121
+ return this.descriptor.bucketParameters;
122
+ }
123
+ get uniqueName() {
124
+ return this.descriptor.name;
99
125
  }
100
- getStaticBucketDescriptions(parameters, reasons, transformer) {
126
+ evaluateRow(options) {
101
127
  let results = [];
102
- for (let query of this.globalParameterQueries) {
103
- for (const desc of query.getStaticBucketDescriptions(parameters, transformer)) {
104
- results.push({
105
- ...desc,
106
- definition: this.name,
107
- inclusion_reasons: reasons
108
- });
128
+ for (let query of this.descriptor.dataQueries) {
129
+ if (!query.applies(options.sourceTable)) {
130
+ continue;
109
131
  }
132
+ results.push(...query.evaluateRow(options.sourceTable, options.record));
110
133
  }
111
134
  return results;
112
135
  }
113
- hasDynamicBucketQueries() {
114
- return this.parameterQueries.length > 0;
115
- }
116
136
  getSourceTables() {
117
137
  let result = new Set();
118
- for (let query of this.parameterQueries) {
119
- result.add(query.sourceTable);
120
- }
121
- for (let query of this.dataQueries) {
138
+ for (let query of this.descriptor.dataQueries) {
122
139
  result.add(query.sourceTable);
123
140
  }
124
- // Note: No physical tables for global_parameter_queries
125
141
  return result;
126
142
  }
127
- bucketInclusionReason() {
128
- return 'default';
129
- }
130
143
  tableSyncsData(table) {
131
- for (let query of this.dataQueries) {
132
- if (query.applies(table)) {
133
- return true;
134
- }
135
- }
136
- return false;
137
- }
138
- tableSyncsParameters(table) {
139
- for (let query of this.parameterQueries) {
144
+ for (let query of this.descriptor.dataQueries) {
140
145
  if (query.applies(table)) {
141
146
  return true;
142
147
  }
@@ -144,12 +149,12 @@ export class SqlBucketDescriptor {
144
149
  return false;
145
150
  }
146
151
  resolveResultSets(schema, tables) {
147
- for (let query of this.dataQueries) {
152
+ for (let query of this.descriptor.dataQueries) {
148
153
  query.resolveResultSets(schema, tables);
149
154
  }
150
155
  }
151
156
  debugWriteOutputTables(result) {
152
- for (let q of this.dataQueries) {
157
+ for (let q of this.descriptor.dataQueries) {
153
158
  result[q.table.sqlName] ??= [];
154
159
  const r = {
155
160
  query: q.sql
@@ -157,33 +162,5 @@ export class SqlBucketDescriptor {
157
162
  result[q.table.sqlName].push(r);
158
163
  }
159
164
  }
160
- debugRepresentation() {
161
- let all_parameter_queries = [...this.parameterQueries.values()].flat();
162
- let all_data_queries = [...this.dataQueries.values()].flat();
163
- return {
164
- name: this.name,
165
- type: BucketSourceType[this.type],
166
- bucket_parameters: this.bucketParameters,
167
- global_parameter_queries: this.globalParameterQueries.map((q) => {
168
- return {
169
- sql: q.sql
170
- };
171
- }),
172
- parameter_queries: all_parameter_queries.map((q) => {
173
- return {
174
- sql: q.sql,
175
- table: q.sourceTable,
176
- input_parameters: q.inputParameters
177
- };
178
- }),
179
- data_queries: all_data_queries.map((q) => {
180
- return {
181
- sql: q.sql,
182
- table: q.sourceTable,
183
- columns: q.columnOutputNames()
184
- };
185
- })
186
- };
187
- }
188
165
  }
189
166
  //# sourceMappingURL=SqlBucketDescriptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlBucketDescriptor.js","sourceRoot":"","sources":["../src/SqlBucketDescriptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlBucketDescriptor.js","sourceRoot":"","sources":["../src/SqlBucketDescriptor.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { BaseSqlDataQuery, BaseSqlDataQueryOptions } from './BaseSqlDataQuery.js';
2
+ import { CompatibilityContext } from './compatibility.js';
2
3
  import { SourceTableInterface } from './SourceTableInterface.js';
3
4
  import { SyncRulesOptions } from './SqlSyncRules.js';
4
- import { BucketIdTransformer, EvaluationResult, ParameterMatchClause, SqliteRow } from './types.js';
5
- import { CompatibilityContext } from './compatibility.js';
5
+ import { ParameterMatchClause, UnscopedEvaluationResult, SqliteRow } from './types.js';
6
6
  export interface SqlDataQueryOptions extends BaseSqlDataQueryOptions {
7
7
  filter: ParameterMatchClause;
8
8
  }
9
9
  export declare class SqlDataQuery extends BaseSqlDataQuery {
10
- static fromSql(descriptorName: string, bucketParameters: string[], sql: string, options: SyncRulesOptions, compatibility: CompatibilityContext): SqlDataQuery;
10
+ static fromSql(bucketParameters: string[], sql: string, options: SyncRulesOptions, compatibility: CompatibilityContext): SqlDataQuery;
11
11
  /**
12
12
  * The query WHERE clause.
13
13
  *
@@ -17,5 +17,5 @@ export declare class SqlDataQuery extends BaseSqlDataQuery {
17
17
  */
18
18
  readonly filter: ParameterMatchClause;
19
19
  constructor(options: SqlDataQueryOptions);
20
- evaluateRow(table: SourceTableInterface, row: SqliteRow, bucketIdTransformer: BucketIdTransformer): EvaluationResult[];
20
+ evaluateRow(table: SourceTableInterface, row: SqliteRow): UnscopedEvaluationResult[];
21
21
  }
@@ -7,9 +7,9 @@ import { AvailableTable, SqlTools } from './sql_filters.js';
7
7
  import { checkUnsupportedFeatures, isClauseError } from './sql_support.js';
8
8
  import { TablePattern } from './TablePattern.js';
9
9
  import { TableQuerySchema } from './TableQuerySchema.js';
10
- import { getBucketId, isSelectStatement } from './utils.js';
10
+ import { isSelectStatement, serializeBucketParameters } from './utils.js';
11
11
  export class SqlDataQuery extends BaseSqlDataQuery {
12
- static fromSql(descriptorName, bucketParameters, sql, options, compatibility) {
12
+ static fromSql(bucketParameters, sql, options, compatibility) {
13
13
  const parsed = parse(sql, { locationTracking: true });
14
14
  const schema = options.schema;
15
15
  let errors = [];
@@ -131,7 +131,6 @@ export class SqlDataQuery extends BaseSqlDataQuery {
131
131
  sql,
132
132
  filter,
133
133
  columns: q.columns ?? [],
134
- descriptorName,
135
134
  bucketParameters,
136
135
  tools,
137
136
  errors,
@@ -150,13 +149,13 @@ export class SqlDataQuery extends BaseSqlDataQuery {
150
149
  super(options);
151
150
  this.filter = options.filter;
152
151
  }
153
- evaluateRow(table, row, bucketIdTransformer) {
152
+ evaluateRow(table, row) {
154
153
  return this.evaluateRowWithOptions({
155
154
  table,
156
155
  row,
157
- bucketIds: (tables) => {
156
+ serializedBucketParameters: (tables) => {
158
157
  const bucketParameters = this.filter.filterRow(tables);
159
- return bucketParameters.map((params) => getBucketId(this.descriptorName, this.bucketParameters, params, bucketIdTransformer));
158
+ return bucketParameters.map((params) => serializeBucketParameters(this.bucketParameters, params));
160
159
  }
161
160
  });
162
161
  }