@powersync/service-sync-rules 0.26.1 → 0.27.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 (41) hide show
  1. package/dist/BaseSqlDataQuery.d.ts +53 -12
  2. package/dist/BaseSqlDataQuery.js +47 -7
  3. package/dist/BaseSqlDataQuery.js.map +1 -1
  4. package/dist/BucketDescription.d.ts +1 -1
  5. package/dist/BucketDescription.js +1 -1
  6. package/dist/BucketDescription.js.map +1 -1
  7. package/dist/SqlBucketDescriptor.d.ts +6 -6
  8. package/dist/SqlBucketDescriptor.js +24 -28
  9. package/dist/SqlBucketDescriptor.js.map +1 -1
  10. package/dist/SqlDataQuery.d.ts +14 -3
  11. package/dist/SqlDataQuery.js +40 -26
  12. package/dist/SqlDataQuery.js.map +1 -1
  13. package/dist/SqlParameterQuery.d.ts +82 -26
  14. package/dist/SqlParameterQuery.js +135 -77
  15. package/dist/SqlParameterQuery.js.map +1 -1
  16. package/dist/SqlSyncRules.d.ts +3 -5
  17. package/dist/SqlSyncRules.js +20 -23
  18. package/dist/SqlSyncRules.js.map +1 -1
  19. package/dist/StaticSqlParameterQuery.d.ts +50 -15
  20. package/dist/StaticSqlParameterQuery.js +74 -36
  21. package/dist/StaticSqlParameterQuery.js.map +1 -1
  22. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +70 -17
  23. package/dist/TableValuedFunctionSqlParameterQuery.js +98 -43
  24. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  25. package/dist/events/SqlEventDescriptor.d.ts +2 -4
  26. package/dist/events/SqlEventDescriptor.js +7 -10
  27. package/dist/events/SqlEventDescriptor.js.map +1 -1
  28. package/dist/events/SqlEventSourceQuery.d.ts +2 -2
  29. package/dist/events/SqlEventSourceQuery.js +24 -17
  30. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  31. package/dist/request_functions.js +3 -3
  32. package/dist/request_functions.js.map +1 -1
  33. package/dist/schema-generators/SchemaGenerator.js +2 -2
  34. package/dist/schema-generators/SchemaGenerator.js.map +1 -1
  35. package/dist/sql_filters.d.ts +12 -12
  36. package/dist/sql_filters.js +24 -24
  37. package/dist/sql_filters.js.map +1 -1
  38. package/dist/types.d.ts +9 -11
  39. package/dist/types.js +13 -13
  40. package/dist/types.js.map +1 -1
  41. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { SqlTools } from './sql_filters.js';
3
3
  import { checkUnsupportedFeatures, isClauseError, isParameterValueClause, sqliteBool } from './sql_support.js';
4
4
  import { TABLE_VALUED_FUNCTIONS } from './TableValuedFunctions.js';
5
5
  import { getBucketId, isJsonValue } from './utils.js';
6
- import { defaultBucketPriority } from './BucketDescription.js';
6
+ import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
7
7
  /**
8
8
  * Represents a parameter query using a table-valued function.
9
9
  *
@@ -14,46 +14,35 @@ import { defaultBucketPriority } from './BucketDescription.js';
14
14
  * This can currently not be combined with parameter table queries or multiple table-valued functions.
15
15
  */
16
16
  export class TableValuedFunctionSqlParameterQuery {
17
- static fromSql(descriptor_name, sql, call, q, options) {
18
- const query = new TableValuedFunctionSqlParameterQuery();
19
- query.errors.push(...checkUnsupportedFeatures(sql, q));
17
+ static fromSql(descriptorName, sql, call, q, options, queryId) {
18
+ let errors = [];
19
+ errors.push(...checkUnsupportedFeatures(sql, q));
20
20
  if (!(call.function.name in TABLE_VALUED_FUNCTIONS)) {
21
- query.errors.push(new SqlRuleError(`Table-valued function ${call.function.name} is not defined.`, sql, call));
22
- return query;
21
+ throw new SqlRuleError(`Table-valued function ${call.function.name} is not defined.`, sql, call);
23
22
  }
24
23
  const callTable = call.alias?.name ?? call.function.name;
25
24
  const callExpression = call.args[0];
26
25
  const tools = new SqlTools({
27
26
  table: callTable,
28
- parameter_tables: ['token_parameters', 'user_parameters', callTable],
29
- supports_parameter_expressions: true,
27
+ parameterTables: ['token_parameters', 'user_parameters', callTable],
28
+ supportsParameterExpressions: true,
30
29
  sql
31
30
  });
32
31
  const where = q.where;
33
32
  const filter = tools.compileParameterValueExtractor(where);
34
33
  const callClause = tools.compileParameterValueExtractor(callExpression);
35
34
  const columns = q.columns ?? [];
36
- const bucket_parameters = columns.map((column) => tools.getOutputName(column));
37
- query.sql = sql;
38
- query.descriptor_name = descriptor_name;
39
- query.bucket_parameters = bucket_parameters;
40
- query.columns = columns;
41
- query.tools = tools;
42
- query.function = TABLE_VALUED_FUNCTIONS[call.function.name];
43
- query.callTableName = callTable;
44
- if (!isClauseError(callClause)) {
45
- query.callClause = callClause;
46
- }
47
- if (!isClauseError(filter)) {
48
- query.filter = filter;
49
- }
35
+ const bucketParameters = columns.map((column) => tools.getOutputName(column));
36
+ const functionImpl = TABLE_VALUED_FUNCTIONS[call.function.name];
37
+ let priority = options.priority;
38
+ let parameterExtractors = {};
50
39
  for (let column of columns) {
51
40
  if (column.alias != null) {
52
41
  tools.checkSpecificNameCase(column.alias);
53
42
  }
54
43
  const name = tools.getSpecificOutputName(column);
55
44
  if (tools.isBucketPriorityParameter(name)) {
56
- query.priority = tools.extractBucketPriority(column.expr);
45
+ priority = tools.extractBucketPriority(column.expr);
57
46
  continue;
58
47
  }
59
48
  const extractor = tools.compileParameterValueExtractor(column.expr);
@@ -61,9 +50,22 @@ export class TableValuedFunctionSqlParameterQuery {
61
50
  // Error logged already
62
51
  continue;
63
52
  }
64
- query.parameter_extractors[name] = extractor;
53
+ parameterExtractors[name] = extractor;
65
54
  }
66
- query.errors.push(...tools.errors);
55
+ errors.push(...tools.errors);
56
+ const query = new TableValuedFunctionSqlParameterQuery({
57
+ sql,
58
+ descriptorName,
59
+ bucketParameters,
60
+ parameterExtractors,
61
+ filter: isClauseError(filter) ? undefined : filter,
62
+ callClause: isClauseError(callClause) ? undefined : callClause,
63
+ function: functionImpl,
64
+ callTableName: callTable,
65
+ priority: priority ?? DEFAULT_BUCKET_PRIORITY,
66
+ queryId,
67
+ errors
68
+ });
67
69
  if (query.usesDangerousRequestParameters && !options?.accept_potentially_dangerous_queries) {
68
70
  let err = new SqlRuleError("Potentially dangerous query based on parameters set by the client. The client can send any value for these parameters so it's not a good place to do authorization.", sql);
69
71
  err.type = 'warning';
@@ -71,20 +73,73 @@ export class TableValuedFunctionSqlParameterQuery {
71
73
  }
72
74
  return query;
73
75
  }
76
+ /**
77
+ * Raw source sql query, for debugging purposes.
78
+ */
74
79
  sql;
75
- columns;
76
- parameter_extractors = {};
80
+ /**
81
+ * Matches the keys in `bucketParameters`.
82
+ *
83
+ * This is used to map (request parameters + individual function call result row) -> bucket parameters.
84
+ */
85
+ parameterExtractors;
77
86
  priority;
78
- descriptor_name;
79
- /** _Output_ bucket parameters */
80
- bucket_parameters;
81
- id;
82
- tools;
87
+ /**
88
+ * Bucket definition name.
89
+ */
90
+ descriptorName;
91
+ /**
92
+ * _Output_ bucket parameters, excluding the `bucket.` prefix.
93
+ *
94
+ * Each one will be present in the `parameterExtractors` map.
95
+ */
96
+ bucketParameters;
97
+ /**
98
+ * Unique identifier for this query within a bucket definition.
99
+ *
100
+ * Typically auto-generated based on query order.
101
+ *
102
+ * This is not used directly, but we keep this to match behavior of other parameter queries.
103
+ */
104
+ queryId;
105
+ /**
106
+ * The WHERE clause. This is applied on (request parameters + individual function call result row).
107
+ *
108
+ * This is used to determine whether or not this query returns a row.
109
+ *
110
+ * undefined if the clause is not valid.
111
+ */
83
112
  filter;
113
+ /**
114
+ * This is the argument to the table-valued function. It is evaluated on the request parameters.
115
+ *
116
+ * Only a single argument is supported currently.
117
+ */
84
118
  callClause;
119
+ /**
120
+ * The table-valued function that will be called, with the output of `callClause`.
121
+ */
85
122
  function;
123
+ /**
124
+ * The name or alias of the "table" with the function call results.
125
+ *
126
+ * Only used internally.
127
+ */
86
128
  callTableName;
87
- errors = [];
129
+ errors;
130
+ constructor(options) {
131
+ this.sql = options.sql;
132
+ this.parameterExtractors = options.parameterExtractors;
133
+ this.priority = options.priority;
134
+ this.descriptorName = options.descriptorName;
135
+ this.bucketParameters = options.bucketParameters;
136
+ this.queryId = options.queryId;
137
+ this.filter = options.filter;
138
+ this.callClause = options.callClause;
139
+ this.function = options.function;
140
+ this.callTableName = options.callTableName;
141
+ this.errors = options.errors;
142
+ }
88
143
  getStaticBucketDescriptions(parameters) {
89
144
  if (this.filter == null || this.callClause == null) {
90
145
  // Error in filter clause
@@ -103,9 +158,9 @@ export class TableValuedFunctionSqlParameterQuery {
103
158
  }
104
159
  getIndividualBucketDescription(row, parameters) {
105
160
  const mergedParams = {
106
- raw_token_payload: parameters.raw_token_payload,
107
- raw_user_parameters: parameters.raw_user_parameters,
108
- user_id: parameters.user_id,
161
+ rawTokenPayload: parameters.rawTokenPayload,
162
+ rawUserParameters: parameters.rawUserParameters,
163
+ userId: parameters.userId,
109
164
  lookup: (table, column) => {
110
165
  if (table == this.callTableName) {
111
166
  return row[column];
@@ -120,8 +175,8 @@ export class TableValuedFunctionSqlParameterQuery {
120
175
  return null;
121
176
  }
122
177
  let result = {};
123
- for (let name of this.bucket_parameters) {
124
- const value = this.parameter_extractors[name].lookupParameterValue(mergedParams);
178
+ for (let name of this.bucketParameters) {
179
+ const value = this.parameterExtractors[name].lookupParameterValue(mergedParams);
125
180
  if (isJsonValue(value)) {
126
181
  result[`bucket.${name}`] = value;
127
182
  }
@@ -130,16 +185,16 @@ export class TableValuedFunctionSqlParameterQuery {
130
185
  }
131
186
  }
132
187
  return {
133
- bucket: getBucketId(this.descriptor_name, this.bucket_parameters, result),
134
- priority: this.priority ?? defaultBucketPriority
188
+ bucket: getBucketId(this.descriptorName, this.bucketParameters, result),
189
+ priority: this.priority
135
190
  };
136
191
  }
137
192
  get hasAuthenticatedBucketParameters() {
138
193
  // select where request.jwt() ->> 'role' == 'authorized'
139
194
  // we do not count this as a sufficient check
140
- // const authenticatedFilter = this.filter!.usesAuthenticatedRequestParameters;
195
+ // const authenticatedFilter = this.filter.usesAuthenticatedRequestParameters;
141
196
  // select request.user_id() as user_id
142
- const authenticatedExtractor = Object.values(this.parameter_extractors).find((clause) => isParameterValueClause(clause) && clause.usesAuthenticatedRequestParameters) != null;
197
+ const authenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesAuthenticatedRequestParameters) != null;
143
198
  // select value from json_each(request.jwt() ->> 'project_ids')
144
199
  const authenticatedArgument = this.callClause?.usesAuthenticatedRequestParameters ?? false;
145
200
  return authenticatedExtractor || authenticatedArgument;
@@ -148,7 +203,7 @@ export class TableValuedFunctionSqlParameterQuery {
148
203
  // select where request.parameters() ->> 'include_comments'
149
204
  const unauthenticatedFilter = this.filter?.usesUnauthenticatedRequestParameters;
150
205
  // select request.parameters() ->> 'project_id'
151
- const unauthenticatedExtractor = Object.values(this.parameter_extractors).find((clause) => isParameterValueClause(clause) && clause.usesUnauthenticatedRequestParameters) != null;
206
+ const unauthenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesUnauthenticatedRequestParameters) != null;
152
207
  // select value from json_each(request.parameters() ->> 'project_ids')
153
208
  const unauthenticatedArgument = this.callClause?.usesUnauthenticatedRequestParameters ?? false;
154
209
  return unauthenticatedFilter || unauthenticatedExtractor || unauthenticatedArgument;
@@ -1 +1 @@
1
- {"version":3,"file":"TableValuedFunctionSqlParameterQuery.js","sourceRoot":"","sources":["../src/TableValuedFunctionSqlParameterQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableValuedFunctionSqlParameterQuery.js","sourceRoot":"","sources":["../src/TableValuedFunctionSqlParameterQuery.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { IdSequence } from '../IdSequence.js';
2
1
  import { SourceTableInterface } from '../SourceTableInterface.js';
3
2
  import { QueryParseResult } from '../SqlBucketDescriptor.js';
4
3
  import { SyncRulesOptions } from '../SqlSyncRules.js';
@@ -9,10 +8,9 @@ import { EvaluatedEventRowWithErrors, SqlEventSourceQuery } from './SqlEventSour
9
8
  * A sync rules event which is triggered from a SQL table change.
10
9
  */
11
10
  export declare class SqlEventDescriptor {
12
- idSequence: IdSequence;
13
11
  name: string;
14
- source_queries: SqlEventSourceQuery[];
15
- constructor(name: string, idSequence: IdSequence);
12
+ sourceQueries: SqlEventSourceQuery[];
13
+ constructor(name: string);
16
14
  addSourceQuery(sql: string, options: SyncRulesOptions): QueryParseResult;
17
15
  evaluateRowWithErrors(options: EvaluateRowOptions): EvaluatedEventRowWithErrors;
18
16
  getSourceTables(): Set<TablePattern>;
@@ -4,25 +4,22 @@ import { SqlEventSourceQuery } from './SqlEventSourceQuery.js';
4
4
  * A sync rules event which is triggered from a SQL table change.
5
5
  */
6
6
  export class SqlEventDescriptor {
7
- idSequence;
8
7
  name;
9
- source_queries = [];
10
- constructor(name, idSequence) {
11
- this.idSequence = idSequence;
8
+ sourceQueries = [];
9
+ constructor(name) {
12
10
  this.name = name;
13
11
  }
14
12
  addSourceQuery(sql, options) {
15
13
  const source = SqlEventSourceQuery.fromSql(this.name, sql, options);
16
14
  // Each source query should be for a unique table
17
- const existingSourceQuery = this.source_queries.find((q) => q.table == source.table);
15
+ const existingSourceQuery = this.sourceQueries.find((q) => q.table == source.table);
18
16
  if (existingSourceQuery) {
19
17
  return {
20
18
  parsed: false,
21
19
  errors: [new SqlRuleError('Each payload query should query a unique table', sql)]
22
20
  };
23
21
  }
24
- source.ruleId = this.idSequence.nextId();
25
- this.source_queries.push(source);
22
+ this.sourceQueries.push(source);
26
23
  return {
27
24
  parsed: true,
28
25
  errors: source.errors
@@ -30,7 +27,7 @@ export class SqlEventDescriptor {
30
27
  }
31
28
  evaluateRowWithErrors(options) {
32
29
  // There should only be 1 payload result per source query
33
- const matchingQuery = this.source_queries.find((q) => q.applies(options.sourceTable));
30
+ const matchingQuery = this.sourceQueries.find((q) => q.applies(options.sourceTable));
34
31
  if (!matchingQuery) {
35
32
  return {
36
33
  errors: [{ error: `No marching source query found for table ${options.sourceTable.table}` }]
@@ -40,13 +37,13 @@ export class SqlEventDescriptor {
40
37
  }
41
38
  getSourceTables() {
42
39
  let result = new Set();
43
- for (let query of this.source_queries) {
40
+ for (let query of this.sourceQueries) {
44
41
  result.add(query.sourceTable);
45
42
  }
46
43
  return result;
47
44
  }
48
45
  tableTriggersEvent(table) {
49
- return this.source_queries.some((query) => query.applies(table));
46
+ return this.sourceQueries.some((query) => query.applies(table));
50
47
  }
51
48
  }
52
49
  //# sourceMappingURL=SqlEventDescriptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlEventDescriptor.js","sourceRoot":"","sources":["../../src/events/SqlEventDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,EAA+B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAMpB;IALT,IAAI,CAAS;IACb,cAAc,GAA0B,EAAE,CAAC;IAE3C,YACE,IAAY,EACL,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAE7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAyB;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpE,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,IAAI,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;aAClF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7F,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,eAAe;QACb,IAAI,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QACrC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;CACF"}
1
+ {"version":3,"file":"SqlEventDescriptor.js","sourceRoot":"","sources":["../../src/events/SqlEventDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,EAA+B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,IAAI,CAAS;IACb,aAAa,GAA0B,EAAE,CAAC;IAE1C,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAyB;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpE,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,IAAI,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;aAClF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,4CAA4C,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7F,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,eAAe;QACb,IAAI,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QACrC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,10 +1,9 @@
1
- import { BaseSqlDataQuery } from '../BaseSqlDataQuery.js';
1
+ import { BaseSqlDataQuery, BaseSqlDataQueryOptions } from '../BaseSqlDataQuery.js';
2
2
  import { SourceTableInterface } from '../SourceTableInterface.js';
3
3
  import { SyncRulesOptions } from '../SqlSyncRules.js';
4
4
  import { EvaluationError, SqliteJsonRow, SqliteRow } from '../types.js';
5
5
  export type EvaluatedEventSourceRow = {
6
6
  data: SqliteJsonRow;
7
- ruleId?: string;
8
7
  };
9
8
  export type EvaluatedEventRowWithErrors = {
10
9
  result?: EvaluatedEventSourceRow;
@@ -15,5 +14,6 @@ export type EvaluatedEventRowWithErrors = {
15
14
  */
16
15
  export declare class SqlEventSourceQuery extends BaseSqlDataQuery {
17
16
  static fromSql(descriptor_name: string, sql: string, options: SyncRulesOptions): SqlEventSourceQuery;
17
+ constructor(options: BaseSqlDataQueryOptions);
18
18
  evaluateRowWithErrors(table: SourceTableInterface, row: SqliteRow): EvaluatedEventRowWithErrors;
19
19
  }
@@ -13,7 +13,6 @@ import { isSelectStatement } from '../utils.js';
13
13
  export class SqlEventSourceQuery extends BaseSqlDataQuery {
14
14
  static fromSql(descriptor_name, sql, options) {
15
15
  const parsed = parse(sql, { locationTracking: true });
16
- const rows = new SqlEventSourceQuery();
17
16
  const schema = options.schema;
18
17
  if (parsed.length > 1) {
19
18
  throw new SqlRuleError('Only a single SELECT statement is supported', sql, parsed[1]?._location);
@@ -22,7 +21,8 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
22
21
  if (!isSelectStatement(q)) {
23
22
  throw new SqlRuleError('Only SELECT statements are supported', sql, q._location);
24
23
  }
25
- rows.errors.push(...checkUnsupportedFeatures(sql, q));
24
+ let errors = [];
25
+ errors.push(...checkUnsupportedFeatures(sql, q));
26
26
  if (q.from == null || q.from.length != 1 || q.from[0].type != 'table') {
27
27
  throw new SqlRuleError('Must SELECT from a single table', sql, q.from?.[0]._location);
28
28
  }
@@ -38,7 +38,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
38
38
  if (tables.length == 0) {
39
39
  const e = new SqlRuleError(`Table ${sourceTable.schema}.${sourceTable.tablePattern} not found`, sql, q.from?.[0]?._location);
40
40
  e.type = 'warning';
41
- rows.errors.push(e);
41
+ errors.push(e);
42
42
  }
43
43
  else {
44
44
  querySchema = new TableQuerySchema(tables, alias);
@@ -46,17 +46,12 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
46
46
  }
47
47
  const tools = new SqlTools({
48
48
  table: alias,
49
- parameter_tables: [],
50
- value_tables: [alias],
49
+ parameterTables: [],
50
+ valueTables: [alias],
51
51
  sql,
52
52
  schema: querySchema
53
53
  });
54
- rows.sourceTable = sourceTable;
55
- rows.table = alias;
56
- rows.sql = sql;
57
- rows.descriptor_name = descriptor_name;
58
- rows.columns = q.columns ?? [];
59
- rows.tools = tools;
54
+ let extractors = [];
60
55
  for (let column of q.columns ?? []) {
61
56
  const name = tools.getOutputName(column);
62
57
  if (name != '*') {
@@ -65,7 +60,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
65
60
  // Error logged already
66
61
  continue;
67
62
  }
68
- rows.extractors.push({
63
+ extractors.push({
69
64
  extract: (tables, output) => {
70
65
  output[name] = clause.evaluate(tables);
71
66
  },
@@ -76,7 +71,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
76
71
  });
77
72
  }
78
73
  else {
79
- rows.extractors.push({
74
+ extractors.push({
80
75
  extract: (tables, output) => {
81
76
  const row = tables[alias];
82
77
  for (let key in row) {
@@ -94,8 +89,21 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
94
89
  });
95
90
  }
96
91
  }
97
- rows.errors.push(...tools.errors);
98
- return rows;
92
+ errors.push(...tools.errors);
93
+ return new SqlEventSourceQuery({
94
+ sourceTable,
95
+ table: alias,
96
+ sql,
97
+ descriptorName: descriptor_name,
98
+ columns: q.columns ?? [],
99
+ extractors: extractors,
100
+ tools,
101
+ bucketParameters: [],
102
+ errors: errors
103
+ });
104
+ }
105
+ constructor(options) {
106
+ super(options);
99
107
  }
100
108
  evaluateRowWithErrors(table, row) {
101
109
  try {
@@ -103,8 +111,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
103
111
  const data = this.transformRow(tables);
104
112
  return {
105
113
  result: {
106
- data,
107
- ruleId: this.ruleId
114
+ data
108
115
  },
109
116
  errors: []
110
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SqlEventSourceQuery.js","sourceRoot":"","sources":["../../src/events/SqlEventSourceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlEventSourceQuery.js","sourceRoot":"","sources":["../../src/events/SqlEventSourceQuery.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ExpressionType } from './ExpressionType.js';
2
2
  const request_parameters = {
3
3
  debugName: 'request.parameters',
4
4
  call(parameters) {
5
- return parameters.raw_user_parameters;
5
+ return parameters.rawUserParameters;
6
6
  },
7
7
  getReturnType() {
8
8
  return ExpressionType.TEXT;
@@ -15,7 +15,7 @@ const request_parameters = {
15
15
  const request_jwt = {
16
16
  debugName: 'request.jwt',
17
17
  call(parameters) {
18
- return parameters.raw_token_payload;
18
+ return parameters.rawTokenPayload;
19
19
  },
20
20
  getReturnType() {
21
21
  return ExpressionType.TEXT;
@@ -28,7 +28,7 @@ const request_jwt = {
28
28
  const request_user_id = {
29
29
  debugName: 'request.user_id',
30
30
  call(parameters) {
31
- return parameters.user_id;
31
+ return parameters.userId;
32
32
  },
33
33
  getReturnType() {
34
34
  return ExpressionType.TEXT;
@@ -1 +1 @@
1
- {"version":3,"file":"request_functions.js","sourceRoot":"","sources":["../src/request_functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAerD,MAAM,kBAAkB,GAAyB;IAC/C,SAAS,EAAE,oBAAoB;IAC/B,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,mBAAmB,CAAC;IACxC,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,4CAA4C;IACpD,aAAa,EACX,8IAA8I;IAChJ,kCAAkC,EAAE,KAAK;IACzC,oCAAoC,EAAE,IAAI;CAC3C,CAAC;AAEF,MAAM,WAAW,GAAyB;IACxC,SAAS,EAAE,aAAa;IACxB,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,iBAAiB,CAAC;IACtC,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,kFAAkF;IACjG,kCAAkC,EAAE,IAAI;IACxC,oCAAoC,EAAE,KAAK;CAC5C,CAAC;AAEF,MAAM,eAAe,GAAyB;IAC5C,SAAS,EAAE,iBAAiB;IAC5B,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,uEAAuE;IACtF,kCAAkC,EAAE,IAAI;IACxC,oCAAoC,EAAE,KAAK;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU,EAAE,kBAAkB;IAC9B,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAyC,uBAAuB,CAAC"}
1
+ {"version":3,"file":"request_functions.js","sourceRoot":"","sources":["../src/request_functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAerD,MAAM,kBAAkB,GAAyB;IAC/C,SAAS,EAAE,oBAAoB;IAC/B,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,iBAAiB,CAAC;IACtC,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,4CAA4C;IACpD,aAAa,EACX,8IAA8I;IAChJ,kCAAkC,EAAE,KAAK;IACzC,oCAAoC,EAAE,IAAI;CAC3C,CAAC;AAEF,MAAM,WAAW,GAAyB;IACxC,SAAS,EAAE,aAAa;IACxB,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,eAAe,CAAC;IACpC,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,kFAAkF;IACjG,kCAAkC,EAAE,IAAI;IACxC,oCAAoC,EAAE,KAAK;CAC5C,CAAC;AAEF,MAAM,eAAe,GAAyB;IAC5C,SAAS,EAAE,iBAAiB;IAC5B,IAAI,CAAC,UAA6B;QAChC,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,aAAa;QACX,OAAO,cAAc,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,MAAM,EAAE,uBAAuB;IAC/B,aAAa,EAAE,uEAAuE;IACtF,kCAAkC,EAAE,IAAI;IACxC,oCAAoC,EAAE,KAAK;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU,EAAE,kBAAkB;IAC9B,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAyC,uBAAuB,CAAC"}
@@ -2,8 +2,8 @@ import { TYPE_INTEGER, TYPE_REAL, TYPE_TEXT } from '../ExpressionType.js';
2
2
  export class SchemaGenerator {
3
3
  getAllTables(source, schema) {
4
4
  let tables = {};
5
- for (let descriptor of source.bucket_descriptors) {
6
- for (let query of descriptor.data_queries) {
5
+ for (let descriptor of source.bucketDescriptors) {
6
+ for (let query of descriptor.dataQueries) {
7
7
  const outTables = query.getColumnOutputs(schema);
8
8
  for (let table of outTables) {
9
9
  tables[table.name] ??= {};
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../src/schema-generators/SchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQ5F,MAAM,OAAgB,eAAe;IACzB,YAAY,CAAC,MAAoB,EAAE,MAAoB;QAC/D,IAAI,MAAM,GAAqD,EAAE,CAAC;QAElE,KAAK,IAAI,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjD,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjD,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC1B,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;4BACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;aAChC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IASD;;;OAGG;IACH,UAAU,CAAC,GAAqB;QAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../src/schema-generators/SchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQ5F,MAAM,OAAgB,eAAe;IACzB,YAAY,CAAC,MAAoB,EAAE,MAAoB;QAC/D,IAAI,MAAM,GAAqD,EAAE,CAAC;QAElE,KAAK,IAAI,UAAU,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChD,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjD,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC1B,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;4BACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;aAChC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IASD;;;OAGG;IACH,UAAU,CAAC,GAAqB;QAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
1
  import { Expr, ExprRef, Name, NodeLocation, QName, QNameAliased, SelectedColumn } from 'pgsql-ast-parser';
2
2
  import { nil } from 'pgsql-ast-parser/src/utils.js';
3
+ import { BucketPriority } from './BucketDescription.js';
3
4
  import { SqlRuleError } from './errors.js';
4
5
  import { SqlFunction } from './sql_functions.js';
5
6
  import { ClauseError, CompiledClause, ParameterMatchClause, ParameterValueClause, QuerySchema, RowValueClause, StaticValueClause, TrueIfParametersMatch } from './types.js';
6
- import { BucketPriority } from './BucketDescription.js';
7
7
  export declare const MATCH_CONST_FALSE: TrueIfParametersMatch;
8
8
  export declare const MATCH_CONST_TRUE: TrueIfParametersMatch;
9
9
  export interface SqlToolsOptions {
@@ -20,13 +20,13 @@ export interface SqlToolsOptions {
20
20
  * "bucket" (bucket parameters for data query)
21
21
  * "token_parameters" (token parameters for parameter query)
22
22
  */
23
- parameter_tables?: string[];
23
+ parameterTables?: string[];
24
24
  /**
25
25
  * Set of tables used in QueryParameters.
26
26
  *
27
27
  * If not specified, defaults to [table].
28
28
  */
29
- value_tables?: string[];
29
+ valueTables?: string[];
30
30
  /**
31
31
  * For debugging / error messages.
32
32
  */
@@ -36,28 +36,28 @@ export interface SqlToolsOptions {
36
36
  *
37
37
  * Only one parameter may be expanded.
38
38
  */
39
- supports_expanding_parameters?: boolean;
39
+ supportsExpandingParameters?: boolean;
40
40
  /**
41
41
  * true if expressions on parameters are supported, e.g. upper(token_parameters.user_id)
42
42
  */
43
- supports_parameter_expressions?: boolean;
43
+ supportsParameterExpressions?: boolean;
44
44
  /**
45
45
  * Schema for validations.
46
46
  */
47
47
  schema?: QuerySchema;
48
48
  }
49
49
  export declare class SqlTools {
50
- default_table?: string;
51
- value_tables: string[];
50
+ readonly defaultTable?: string;
51
+ readonly valueTables: string[];
52
52
  /**
53
53
  * ['bucket'] for data queries
54
54
  * ['token_parameters', 'user_parameters'] for parameter queries
55
55
  */
56
- parameter_tables: string[];
57
- sql: string;
58
- errors: SqlRuleError[];
59
- supports_expanding_parameters: boolean;
60
- supports_parameter_expressions: boolean;
56
+ readonly parameterTables: string[];
57
+ readonly sql: string;
58
+ readonly errors: SqlRuleError[];
59
+ readonly supportsExpandingParameters: boolean;
60
+ readonly supportsParameterExpressions: boolean;
61
61
  schema?: QuerySchema;
62
62
  constructor(options: SqlToolsOptions);
63
63
  error(message: string, expr: NodeLocation | Expr | undefined): ClauseError;