@powersync/service-sync-rules 0.27.0 → 0.29.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 (101) hide show
  1. package/LICENSE +3 -3
  2. package/dist/BaseSqlDataQuery.d.ts +9 -1
  3. package/dist/BaseSqlDataQuery.js +44 -2
  4. package/dist/BaseSqlDataQuery.js.map +1 -1
  5. package/dist/BucketDescription.d.ts +16 -0
  6. package/dist/BucketParameterQuerier.d.ts +19 -3
  7. package/dist/BucketParameterQuerier.js.map +1 -1
  8. package/dist/BucketSource.d.ts +72 -0
  9. package/dist/BucketSource.js +6 -0
  10. package/dist/BucketSource.js.map +1 -0
  11. package/dist/ExpressionType.d.ts +1 -0
  12. package/dist/ExpressionType.js.map +1 -1
  13. package/dist/SourceTableInterface.d.ts +1 -1
  14. package/dist/SqlBucketDescriptor.d.ts +40 -8
  15. package/dist/SqlBucketDescriptor.js +78 -10
  16. package/dist/SqlBucketDescriptor.js.map +1 -1
  17. package/dist/SqlDataQuery.d.ts +4 -3
  18. package/dist/SqlDataQuery.js +10 -30
  19. package/dist/SqlDataQuery.js.map +1 -1
  20. package/dist/SqlParameterQuery.d.ts +4 -4
  21. package/dist/SqlParameterQuery.js +9 -4
  22. package/dist/SqlParameterQuery.js.map +1 -1
  23. package/dist/SqlSyncRules.d.ts +55 -7
  24. package/dist/SqlSyncRules.js +126 -47
  25. package/dist/SqlSyncRules.js.map +1 -1
  26. package/dist/StaticSchema.js +2 -2
  27. package/dist/StaticSchema.js.map +1 -1
  28. package/dist/StaticSqlParameterQuery.d.ts +2 -2
  29. package/dist/StaticSqlParameterQuery.js +3 -2
  30. package/dist/StaticSqlParameterQuery.js.map +1 -1
  31. package/dist/TablePattern.js +2 -2
  32. package/dist/TablePattern.js.map +1 -1
  33. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +2 -2
  34. package/dist/TableValuedFunctionSqlParameterQuery.js +11 -10
  35. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  36. package/dist/TableValuedFunctions.d.ts +2 -2
  37. package/dist/TableValuedFunctions.js +38 -35
  38. package/dist/TableValuedFunctions.js.map +1 -1
  39. package/dist/compatibility.d.ts +39 -0
  40. package/dist/compatibility.js +54 -0
  41. package/dist/compatibility.js.map +1 -0
  42. package/dist/events/SqlEventDescriptor.d.ts +3 -1
  43. package/dist/events/SqlEventDescriptor.js +5 -3
  44. package/dist/events/SqlEventDescriptor.js.map +1 -1
  45. package/dist/events/SqlEventSourceQuery.d.ts +2 -1
  46. package/dist/events/SqlEventSourceQuery.js +3 -2
  47. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  48. package/dist/index.d.ts +7 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/json_schema.js +54 -1
  52. package/dist/json_schema.js.map +1 -1
  53. package/dist/request_functions.d.ts +24 -4
  54. package/dist/request_functions.js +68 -17
  55. package/dist/request_functions.js.map +1 -1
  56. package/dist/schema-generators/SchemaGenerator.js +2 -12
  57. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  58. package/dist/sql_filters.d.ts +25 -2
  59. package/dist/sql_filters.js +223 -119
  60. package/dist/sql_filters.js.map +1 -1
  61. package/dist/sql_functions.d.ts +13 -31
  62. package/dist/sql_functions.js +191 -114
  63. package/dist/sql_functions.js.map +1 -1
  64. package/dist/sql_support.d.ts +20 -0
  65. package/dist/sql_support.js +67 -14
  66. package/dist/sql_support.js.map +1 -1
  67. package/dist/streams/filter.d.ts +148 -0
  68. package/dist/streams/filter.js +426 -0
  69. package/dist/streams/filter.js.map +1 -0
  70. package/dist/streams/from_sql.d.ts +4 -0
  71. package/dist/streams/from_sql.js +375 -0
  72. package/dist/streams/from_sql.js.map +1 -0
  73. package/dist/streams/functions.d.ts +2 -0
  74. package/dist/streams/functions.js +38 -0
  75. package/dist/streams/functions.js.map +1 -0
  76. package/dist/streams/parameter.d.ts +67 -0
  77. package/dist/streams/parameter.js +2 -0
  78. package/dist/streams/parameter.js.map +1 -0
  79. package/dist/streams/stream.d.ts +40 -0
  80. package/dist/streams/stream.js +139 -0
  81. package/dist/streams/stream.js.map +1 -0
  82. package/dist/streams/utils.d.ts +1 -0
  83. package/dist/streams/utils.js +13 -0
  84. package/dist/streams/utils.js.map +1 -0
  85. package/dist/streams/variant.d.ts +122 -0
  86. package/dist/streams/variant.js +266 -0
  87. package/dist/streams/variant.js.map +1 -0
  88. package/dist/types/custom_sqlite_value.d.ts +38 -0
  89. package/dist/types/custom_sqlite_value.js +50 -0
  90. package/dist/types/custom_sqlite_value.js.map +1 -0
  91. package/dist/types/time.d.ts +33 -0
  92. package/dist/types/time.js +67 -0
  93. package/dist/types/time.js.map +1 -0
  94. package/dist/types.d.ts +53 -10
  95. package/dist/types.js +28 -2
  96. package/dist/types.js.map +1 -1
  97. package/dist/utils.d.ts +9 -6
  98. package/dist/utils.js +42 -17
  99. package/dist/utils.js.map +1 -1
  100. package/package.json +4 -4
  101. package/schema/sync_rules.json +80 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sql_support.js","sourceRoot":"","sources":["../src/sql_support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql_support.js","sourceRoot":"","sources":["../src/sql_support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import { TablePattern } from '../TablePattern.js';
2
+ import { ParameterMatchClause, ParameterValueClause, RowValueClause } from '../types.js';
3
+ import { SqlTools } from '../sql_filters.js';
4
+ import { StreamVariant } from './variant.js';
5
+ import { SubqueryEvaluator } from './parameter.js';
6
+ import { NodeLocation } from 'pgsql-ast-parser';
7
+ /**
8
+ * An intermediate representation of a `WHERE` clause for stream queries.
9
+ *
10
+ * This representation is only used to compile expressions into the {@link StreamVariant}s representing streams in the
11
+ * end.
12
+ */
13
+ export declare abstract class FilterOperator {
14
+ /**
15
+ * The syntactic source creating this filter operator.
16
+ */
17
+ readonly location: NodeLocation | null;
18
+ constructor(location: NodeLocation | null);
19
+ abstract compile(context: StreamCompilationContext): void;
20
+ compileVariants(streamName: string): StreamVariant[];
21
+ /**
22
+ * Transforms this filter operator to a DNF representation, a {@link Or} operator consisting of {@link And} operators
23
+ * internally.
24
+ *
25
+ * We need to represent filters as a sum-of-products because that lets us turn each product into a
26
+ * {@link StreamVariant}, simplifying the rest of the compilation.
27
+ */
28
+ toDisjunctiveNormalForm(tools: SqlTools): FilterOperator;
29
+ /**
30
+ * Checks that this filter is valid, meaning that no `NOT` operators appear before subqueries or other operators that
31
+ * don't support negations.
32
+ */
33
+ isValid(tools: SqlTools): boolean;
34
+ private visitLiterals;
35
+ }
36
+ interface StreamCompilationContext {
37
+ streamName: string;
38
+ allVariants: StreamVariant[];
39
+ currentVariant: StreamVariant;
40
+ queryCounter: number;
41
+ }
42
+ /**
43
+ * A `NOT` operator that inverts an inner operator.
44
+ *
45
+ * This is only used temporarily when compiling the filter: It is illegal to negate {@link InOperator} and
46
+ * {@link CompareRowValueWithStreamParameter} clauses, as those are implemented with special lookups based on bucket
47
+ * parameters.
48
+ * For {@link EvaluateSimpleCondition}, a wrapping {@link Not} clause is unecessary, because we can simply push the
49
+ * negation into the inner evaluator.
50
+ */
51
+ export declare class Not extends FilterOperator {
52
+ readonly operand: FilterOperator;
53
+ constructor(location: NodeLocation | null, operand: FilterOperator);
54
+ compile(): void;
55
+ }
56
+ export declare class And extends FilterOperator {
57
+ readonly inner: FilterOperator[];
58
+ constructor(location: NodeLocation | null, ...operators: FilterOperator[]);
59
+ compile(context: StreamCompilationContext): void;
60
+ }
61
+ export declare class Or extends FilterOperator {
62
+ readonly inner: FilterOperator[];
63
+ constructor(location: NodeLocation | null, ...operators: FilterOperator[]);
64
+ compile(context: StreamCompilationContext): void;
65
+ compileVariants(streamName: string): StreamVariant[];
66
+ }
67
+ export declare class Subquery {
68
+ private table;
69
+ readonly column: RowValueClause;
70
+ private filter;
71
+ constructor(table: TablePattern, column: RowValueClause, filter: CompareRowValueWithStreamParameter | EvaluateSimpleCondition);
72
+ addFilter(filter: CompareRowValueWithStreamParameter | EvaluateSimpleCondition): void;
73
+ compileEvaluator(context: StreamCompilationContext): SubqueryEvaluator;
74
+ }
75
+ export type ScalarExpression = RowValueClause | ParameterValueClause;
76
+ /**
77
+ * A filter that matches when row values are contained in a subquery depending on parameter values.
78
+ *
79
+ * Examples:
80
+ *
81
+ * - `SELECT * FROM comments WHERE issue_id IN (SELECT id FROM issue WHERE owner_id = request.user())`
82
+ *
83
+ * An `IN` operator can also be handled without requiring a subquery, those don't create {@link InOperator}s:
84
+ *
85
+ * - `SELECT * FROM comments WHERE id IN request.params('id')` ({@link CompareRowValueWithStreamParameter})
86
+ * - `SELECT * FROM comments WHERE request.user() IN comments.tagged_users` ({@link CompareRowValueWithStreamParameter})
87
+ *
88
+ * Finally, it's also possible to `IN` operators for parameter values:
89
+ *
90
+ * - `SELECT * FROM comments WHERE request.user_id() IN (SELECT * FROM users WHERE is_admin)`.
91
+ *
92
+ * However, these are not represented as {@link InOperator}s in the filter graph. Instead, we push the
93
+ * `request.user_id()` filter into the subquery and then compile the operator into a {@link ExistsOperator}.
94
+ */
95
+ export declare class InOperator extends FilterOperator {
96
+ private left;
97
+ private right;
98
+ constructor(location: NodeLocation | null, left: RowValueClause, right: Subquery);
99
+ compile(context: StreamCompilationContext): void;
100
+ }
101
+ /**
102
+ * An operator of the form `<left> && <right>`, where `right` is a subqery.
103
+ */
104
+ export declare class OverlapOperator extends FilterOperator {
105
+ private left;
106
+ private right;
107
+ constructor(location: NodeLocation | null, left: RowValueClause, right: Subquery);
108
+ compile(context: StreamCompilationContext): void;
109
+ }
110
+ /**
111
+ * A filter that matches when _something_ exists in a subquery.
112
+ *
113
+ * This is exclusively used to compile `IN` operators where the left operand does not depend on row values, e.g.
114
+ *
115
+ * - `SELECT * FROM comments WHERE request.user_id() IN (SELECT id FROM users WHERE is_admin)`
116
+ *
117
+ * These queries are desugared to something that is semantically equivalent to
118
+ * `WHERE EXISTS (SELECT _ FROM users WHERE is_admin AND id = request.user_id())`.
119
+ */
120
+ export declare class ExistsOperator extends FilterOperator {
121
+ private subquery;
122
+ constructor(location: NodeLocation | null, subquery: Subquery);
123
+ compile(context: StreamCompilationContext): void;
124
+ }
125
+ /**
126
+ * A filter that matches if a column of the input table matches some condition that depends on the request parameters.
127
+ *
128
+ * E.g. `SELECT * FROM issue_id WHERE owner_id = request.user_id()`. This will add the referenced column as a bucket
129
+ * parameter, but doesn't require a dynamic lookup.
130
+ *
131
+ * We only allow a few operators that are efficient to compute here (effectively just an equality operator).
132
+ */
133
+ export declare class CompareRowValueWithStreamParameter extends FilterOperator {
134
+ private match;
135
+ constructor(location: NodeLocation | null, match: ParameterMatchClause);
136
+ compile(context: StreamCompilationContext): void;
137
+ }
138
+ /**
139
+ * A simple condition that is either static, only depends on the current row being matched, or only depends on the input
140
+ * parameters.
141
+ */
142
+ export declare class EvaluateSimpleCondition extends FilterOperator {
143
+ expression: ScalarExpression;
144
+ constructor(location: NodeLocation | null, expression: ScalarExpression);
145
+ compile(context: StreamCompilationContext): void;
146
+ negate(tools: SqlTools): EvaluateSimpleCondition;
147
+ }
148
+ export {};
@@ -0,0 +1,426 @@
1
+ import { isParameterValueClause, isRowValueClause, SQLITE_TRUE, sqliteBool } from '../sql_support.js';
2
+ import { isJsonValue, normalizeParameterValue } from '../utils.js';
3
+ import { checkJsonArray, OPERATOR_NOT } from '../sql_functions.js';
4
+ import { ParameterLookup } from '../BucketParameterQuerier.js';
5
+ import { StreamVariant } from './variant.js';
6
+ import { cartesianProduct } from './utils.js';
7
+ /**
8
+ * An intermediate representation of a `WHERE` clause for stream queries.
9
+ *
10
+ * This representation is only used to compile expressions into the {@link StreamVariant}s representing streams in the
11
+ * end.
12
+ */
13
+ export class FilterOperator {
14
+ /**
15
+ * The syntactic source creating this filter operator.
16
+ */
17
+ location;
18
+ constructor(location) {
19
+ this.location = location;
20
+ }
21
+ compileVariants(streamName) {
22
+ const initialVariant = new StreamVariant(0);
23
+ const allVariants = [initialVariant];
24
+ this.compile({ streamName, currentVariant: initialVariant, allVariants, queryCounter: 0 });
25
+ return allVariants;
26
+ }
27
+ /**
28
+ * Transforms this filter operator to a DNF representation, a {@link Or} operator consisting of {@link And} operators
29
+ * internally.
30
+ *
31
+ * We need to represent filters as a sum-of-products because that lets us turn each product into a
32
+ * {@link StreamVariant}, simplifying the rest of the compilation.
33
+ */
34
+ toDisjunctiveNormalForm(tools) {
35
+ // https://en.wikipedia.org/wiki/Disjunctive_normal_form#..._by_syntactic_means
36
+ if (this instanceof Not) {
37
+ const inner = this.operand;
38
+ if (inner instanceof Not) {
39
+ // !!x => x
40
+ return inner.operand.toDisjunctiveNormalForm(tools);
41
+ }
42
+ if (inner instanceof EvaluateSimpleCondition) {
43
+ // We can push the NOT into the simple condition to eliminate it.
44
+ return inner.negate(tools);
45
+ }
46
+ let inverse;
47
+ if (inner instanceof And) {
48
+ inverse = Or; // !(a AND b) => (!a) OR (!b)
49
+ }
50
+ else if (inner instanceof Or) {
51
+ inverse = And; // !(a OR B) => (!a) AND (!b)
52
+ }
53
+ else {
54
+ return this;
55
+ }
56
+ const terms = inner.inner.map((e) => new Not(e.location, e).toDisjunctiveNormalForm(tools));
57
+ return new inverse(inner.location, ...terms);
58
+ }
59
+ else if (this instanceof And) {
60
+ const atomarFactors = [];
61
+ const orTerms = [];
62
+ for (const originalTerm of this.inner) {
63
+ const normalized = originalTerm.toDisjunctiveNormalForm(tools);
64
+ if (normalized instanceof And) {
65
+ atomarFactors.push(...normalized.inner);
66
+ }
67
+ else if (normalized instanceof Or) {
68
+ orTerms.push(normalized);
69
+ }
70
+ else {
71
+ atomarFactors.push(normalized);
72
+ }
73
+ }
74
+ if (orTerms.length == 0) {
75
+ return new And(this.location, ...atomarFactors);
76
+ }
77
+ // If there's an OR term within the AND, apply the distributive law to turn the term into an ANDs within an outer
78
+ // OR.
79
+ // First, apply distributive law on orTerms to turn e.g. [[a, b], [c, d]] into [ac, ad, bc, bd].
80
+ const multiplied = [...cartesianProduct(...orTerms.map((e) => e.inner))];
81
+ // Then, combine those with the inner AND to turn e.g `A & (B | C) & D` into `(B & A & D) | (C & A & D)`.
82
+ return new Or(this.location, ...multiplied.map((distributedTerms) => new And(this.location, ...distributedTerms, ...atomarFactors)));
83
+ }
84
+ else if (this instanceof Or) {
85
+ // Already in DNF, but we want to simplify `(A OR B) OR C` into `A OR B OR C` if necessary.
86
+ return new Or(this.location, ...this.inner.flatMap((e) => {
87
+ const normalized = e.toDisjunctiveNormalForm(tools);
88
+ return normalized instanceof Or ? normalized.inner : [normalized];
89
+ }));
90
+ }
91
+ return this;
92
+ }
93
+ /**
94
+ * Checks that this filter is valid, meaning that no `NOT` operators appear before subqueries or other operators that
95
+ * don't support negations.
96
+ */
97
+ isValid(tools) {
98
+ let hasError = false;
99
+ for (const literal of this.visitLiterals()) {
100
+ if (literal instanceof Not) {
101
+ tools.error('Negations are not allowed here', literal.location ?? undefined);
102
+ hasError = true;
103
+ }
104
+ }
105
+ return !hasError;
106
+ }
107
+ *visitLiterals() {
108
+ if (this instanceof Or || this instanceof And) {
109
+ for (const term of this.inner) {
110
+ yield* term.visitLiterals();
111
+ }
112
+ }
113
+ else {
114
+ yield this;
115
+ }
116
+ }
117
+ }
118
+ /**
119
+ * A `NOT` operator that inverts an inner operator.
120
+ *
121
+ * This is only used temporarily when compiling the filter: It is illegal to negate {@link InOperator} and
122
+ * {@link CompareRowValueWithStreamParameter} clauses, as those are implemented with special lookups based on bucket
123
+ * parameters.
124
+ * For {@link EvaluateSimpleCondition}, a wrapping {@link Not} clause is unecessary, because we can simply push the
125
+ * negation into the inner evaluator.
126
+ */
127
+ export class Not extends FilterOperator {
128
+ operand;
129
+ constructor(location, operand) {
130
+ super(location);
131
+ this.operand = operand;
132
+ }
133
+ compile() {
134
+ throw Error('Not operator should have been desugared before compilation.');
135
+ }
136
+ }
137
+ export class And extends FilterOperator {
138
+ inner;
139
+ constructor(location, ...operators) {
140
+ super(location);
141
+ this.inner = operators;
142
+ }
143
+ compile(context) {
144
+ // Within a variant, added conditions and parameters form a conjunction.
145
+ for (const condition of this.inner) {
146
+ condition.compile(context);
147
+ }
148
+ }
149
+ }
150
+ export class Or extends FilterOperator {
151
+ inner;
152
+ constructor(location, ...operators) {
153
+ super(location);
154
+ this.inner = operators;
155
+ }
156
+ compile(context) {
157
+ throw Error('An OR operator can only appear at the highest level of the filter chain');
158
+ }
159
+ compileVariants(streamName) {
160
+ const allVariants = [];
161
+ const context = {
162
+ streamName,
163
+ currentVariant: undefined,
164
+ allVariants,
165
+ queryCounter: 0
166
+ };
167
+ for (const condition of this.inner) {
168
+ const variant = new StreamVariant(allVariants.length);
169
+ allVariants.push(variant);
170
+ context.currentVariant = variant;
171
+ condition.compile(context);
172
+ }
173
+ return allVariants;
174
+ }
175
+ }
176
+ export class Subquery {
177
+ table;
178
+ column;
179
+ filter;
180
+ constructor(table, column, filter) {
181
+ this.table = table;
182
+ this.column = column;
183
+ this.filter = filter;
184
+ }
185
+ addFilter(filter) {
186
+ this.filter = new And(this.filter.location, this.filter, filter);
187
+ }
188
+ compileEvaluator(context) {
189
+ const innerVariants = this.filter.compileVariants(context.streamName).map((variant) => {
190
+ const id = context.queryCounter.toString();
191
+ context.queryCounter++;
192
+ if (variant.parameters.length == 0) {
193
+ throw new Error('Unsupported subquery without parameter, must depend on request parameters');
194
+ }
195
+ return [variant, id];
196
+ });
197
+ const column = this.column;
198
+ const evaluator = {
199
+ parameterTable: this.table,
200
+ lookupsForParameterRow(sourceTable, row) {
201
+ const value = column.evaluate({ [sourceTable.name]: row });
202
+ if (!isJsonValue(value)) {
203
+ return null;
204
+ }
205
+ const lookups = [];
206
+ for (const [variant, id] of innerVariants) {
207
+ for (const instantiation of variant.instantiationsForRow({ sourceTable, record: row })) {
208
+ lookups.push(ParameterLookup.normalized(context.streamName, id, instantiation));
209
+ }
210
+ }
211
+ return { value, lookups };
212
+ },
213
+ lookupsForRequest(parameters) {
214
+ const lookups = [];
215
+ for (const [variant, id] of innerVariants) {
216
+ const instantiations = variant.findStaticInstantiations(parameters);
217
+ for (const instantiation of instantiations) {
218
+ lookups.push(ParameterLookup.normalized(context.streamName, id, instantiation));
219
+ }
220
+ }
221
+ return lookups;
222
+ }
223
+ };
224
+ context.currentVariant.subqueries.push(evaluator);
225
+ return evaluator;
226
+ }
227
+ }
228
+ /**
229
+ * A filter that matches when row values are contained in a subquery depending on parameter values.
230
+ *
231
+ * Examples:
232
+ *
233
+ * - `SELECT * FROM comments WHERE issue_id IN (SELECT id FROM issue WHERE owner_id = request.user())`
234
+ *
235
+ * An `IN` operator can also be handled without requiring a subquery, those don't create {@link InOperator}s:
236
+ *
237
+ * - `SELECT * FROM comments WHERE id IN request.params('id')` ({@link CompareRowValueWithStreamParameter})
238
+ * - `SELECT * FROM comments WHERE request.user() IN comments.tagged_users` ({@link CompareRowValueWithStreamParameter})
239
+ *
240
+ * Finally, it's also possible to `IN` operators for parameter values:
241
+ *
242
+ * - `SELECT * FROM comments WHERE request.user_id() IN (SELECT * FROM users WHERE is_admin)`.
243
+ *
244
+ * However, these are not represented as {@link InOperator}s in the filter graph. Instead, we push the
245
+ * `request.user_id()` filter into the subquery and then compile the operator into a {@link ExistsOperator}.
246
+ */
247
+ export class InOperator extends FilterOperator {
248
+ left;
249
+ right;
250
+ constructor(location, left, right) {
251
+ super(location);
252
+ this.left = left;
253
+ this.right = right;
254
+ }
255
+ compile(context) {
256
+ const subqueryEvaluator = this.right.compileEvaluator(context);
257
+ const filter = this.left;
258
+ // Something like `SELECT * FROM comments WHERE issue_id IN (SELECT id FROM issue WHERE owner_id = request.user())`
259
+ // This groups rows into buckets identified by comments.issue_id, which happens in filterRow.
260
+ // When a user connects, we need to resolve all the issue ids they own. This happens with an indirection:
261
+ // 1. In the subquery evaluator, we create an index from owner_id to issue ids.
262
+ // 2. When we have users, we use that index to find issue ids dynamically, with which we can build the buckets
263
+ // to sync.
264
+ context.currentVariant.parameters.push({
265
+ lookup: {
266
+ type: 'in',
267
+ subquery: subqueryEvaluator
268
+ },
269
+ filterRow(options) {
270
+ const tables = { [options.sourceTable.name]: options.record };
271
+ const value = filter.evaluate(tables);
272
+ if (isJsonValue(value)) {
273
+ return [normalizeParameterValue(value)];
274
+ }
275
+ else {
276
+ return [];
277
+ }
278
+ }
279
+ });
280
+ }
281
+ }
282
+ /**
283
+ * An operator of the form `<left> && <right>`, where `right` is a subqery.
284
+ */
285
+ export class OverlapOperator extends FilterOperator {
286
+ left;
287
+ right;
288
+ constructor(location, left, right) {
289
+ super(location);
290
+ this.left = left;
291
+ this.right = right;
292
+ }
293
+ compile(context) {
294
+ const subqueryEvaluator = this.right.compileEvaluator(context);
295
+ const filter = this.left;
296
+ context.currentVariant.parameters.push({
297
+ lookup: {
298
+ type: 'overlap',
299
+ subquery: subqueryEvaluator
300
+ },
301
+ filterRow(options) {
302
+ const tables = { [options.sourceTable.name]: options.record };
303
+ const value = filter.evaluate(tables);
304
+ if (value == null) {
305
+ return [];
306
+ }
307
+ const parsed = checkJsonArray(value, 'Left side of && must evaluate to an array');
308
+ return parsed.map(normalizeParameterValue);
309
+ }
310
+ });
311
+ }
312
+ }
313
+ /**
314
+ * A filter that matches when _something_ exists in a subquery.
315
+ *
316
+ * This is exclusively used to compile `IN` operators where the left operand does not depend on row values, e.g.
317
+ *
318
+ * - `SELECT * FROM comments WHERE request.user_id() IN (SELECT id FROM users WHERE is_admin)`
319
+ *
320
+ * These queries are desugared to something that is semantically equivalent to
321
+ * `WHERE EXISTS (SELECT _ FROM users WHERE is_admin AND id = request.user_id())`.
322
+ */
323
+ export class ExistsOperator extends FilterOperator {
324
+ subquery;
325
+ constructor(location, subquery) {
326
+ super(location);
327
+ this.subquery = subquery;
328
+ }
329
+ compile(context) {
330
+ const subqueryEvaluator = this.subquery.compileEvaluator(context);
331
+ context.currentVariant.requestFilters.push({
332
+ type: 'dynamic',
333
+ subquery: subqueryEvaluator,
334
+ matches(_, results) {
335
+ return results.length > 0;
336
+ }
337
+ });
338
+ }
339
+ }
340
+ /**
341
+ * A filter that matches if a column of the input table matches some condition that depends on the request parameters.
342
+ *
343
+ * E.g. `SELECT * FROM issue_id WHERE owner_id = request.user_id()`. This will add the referenced column as a bucket
344
+ * parameter, but doesn't require a dynamic lookup.
345
+ *
346
+ * We only allow a few operators that are efficient to compute here (effectively just an equality operator).
347
+ */
348
+ export class CompareRowValueWithStreamParameter extends FilterOperator {
349
+ match;
350
+ constructor(location, match) {
351
+ super(location);
352
+ this.match = match;
353
+ }
354
+ compile(context) {
355
+ const match = this.match;
356
+ for (const filters of match.inputParameters) {
357
+ context.currentVariant.parameters.push({
358
+ lookup: {
359
+ type: 'static',
360
+ fromRequest(parameters) {
361
+ const value = filters.parametersToLookupValue(parameters);
362
+ if (filters.expands) {
363
+ if (typeof value != 'string') {
364
+ return [];
365
+ }
366
+ let values = JSON.parse(value);
367
+ if (!Array.isArray(values)) {
368
+ return [];
369
+ }
370
+ return values;
371
+ }
372
+ else {
373
+ return [value];
374
+ }
375
+ }
376
+ },
377
+ filterRow(options) {
378
+ const tables = { [options.sourceTable.name]: options.record };
379
+ const matchingValues = [];
380
+ for (const matchingParameters of match.filterRow(tables)) {
381
+ const matchingValue = matchingParameters[filters.key];
382
+ if (matchingValue != null) {
383
+ matchingValues.push(normalizeParameterValue(matchingValue));
384
+ }
385
+ }
386
+ return matchingValues;
387
+ }
388
+ });
389
+ }
390
+ }
391
+ }
392
+ /**
393
+ * A simple condition that is either static, only depends on the current row being matched, or only depends on the input
394
+ * parameters.
395
+ */
396
+ export class EvaluateSimpleCondition extends FilterOperator {
397
+ expression;
398
+ constructor(location, expression) {
399
+ super(location);
400
+ this.expression = expression;
401
+ }
402
+ compile(context) {
403
+ if (isRowValueClause(this.expression)) {
404
+ const filter = this.expression;
405
+ context.currentVariant.additionalRowFilters.push((row) => {
406
+ return sqliteBool(filter.evaluate({ [row.sourceTable.name]: row.record })) == SQLITE_TRUE;
407
+ });
408
+ }
409
+ else if (isParameterValueClause(this.expression)) {
410
+ const filter = this.expression;
411
+ context.currentVariant.requestFilters.push({
412
+ type: 'static',
413
+ matches(params) {
414
+ return sqliteBool(filter.lookupParameterValue(params)) == SQLITE_TRUE;
415
+ }
416
+ });
417
+ }
418
+ else {
419
+ const _ = this.expression; // Exhaustive check
420
+ }
421
+ }
422
+ negate(tools) {
423
+ return new EvaluateSimpleCondition(this.location, tools.composeFunction(OPERATOR_NOT, [this.expression], []));
424
+ }
425
+ }
426
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/streams/filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { SqlRuleError } from '../errors.js';
2
+ import { StreamParseOptions } from '../types.js';
3
+ import { SyncStream } from './stream.js';
4
+ export declare function syncStreamFromSql(descriptorName: string, sql: string, options: StreamParseOptions): [SyncStream, SqlRuleError[]];