@powersync/service-sync-rules 0.29.4 → 0.29.6

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 (51) hide show
  1. package/dist/BaseSqlDataQuery.d.ts +3 -3
  2. package/dist/BaseSqlDataQuery.js +6 -6
  3. package/dist/BaseSqlDataQuery.js.map +1 -1
  4. package/dist/SqlBucketDescriptor.js +2 -2
  5. package/dist/SqlBucketDescriptor.js.map +1 -1
  6. package/dist/SqlDataQuery.js +6 -6
  7. package/dist/SqlDataQuery.js.map +1 -1
  8. package/dist/SqlParameterQuery.d.ts +5 -4
  9. package/dist/SqlParameterQuery.js +20 -15
  10. package/dist/SqlParameterQuery.js.map +1 -1
  11. package/dist/StaticSqlParameterQuery.js +11 -9
  12. package/dist/StaticSqlParameterQuery.js.map +1 -1
  13. package/dist/TableQuerySchema.d.ts +6 -1
  14. package/dist/TableQuerySchema.js +6 -2
  15. package/dist/TableQuerySchema.js.map +1 -1
  16. package/dist/TableValuedFunctionSqlParameterQuery.d.ts +4 -2
  17. package/dist/TableValuedFunctionSqlParameterQuery.js +26 -15
  18. package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  19. package/dist/events/SqlEventSourceQuery.js +5 -5
  20. package/dist/events/SqlEventSourceQuery.js.map +1 -1
  21. package/dist/request_functions.d.ts +19 -7
  22. package/dist/request_functions.js +8 -10
  23. package/dist/request_functions.js.map +1 -1
  24. package/dist/schema-generators/RoomSchemaGenerator.d.ts +13 -0
  25. package/dist/schema-generators/RoomSchemaGenerator.js +53 -0
  26. package/dist/schema-generators/RoomSchemaGenerator.js.map +1 -0
  27. package/dist/schema-generators/SchemaGenerator.d.ts +1 -1
  28. package/dist/schema-generators/SqlSchemaGenerator.d.ts +15 -0
  29. package/dist/schema-generators/SqlSchemaGenerator.js +31 -0
  30. package/dist/schema-generators/SqlSchemaGenerator.js.map +1 -0
  31. package/dist/schema-generators/schema-generators.d.ts +4 -0
  32. package/dist/schema-generators/schema-generators.js +4 -0
  33. package/dist/schema-generators/schema-generators.js.map +1 -1
  34. package/dist/sql_filters.d.ts +42 -13
  35. package/dist/sql_filters.js +64 -32
  36. package/dist/sql_filters.js.map +1 -1
  37. package/dist/sql_support.js +13 -14
  38. package/dist/sql_support.js.map +1 -1
  39. package/dist/streams/from_sql.js +38 -24
  40. package/dist/streams/from_sql.js.map +1 -1
  41. package/dist/streams/functions.js +3 -5
  42. package/dist/streams/functions.js.map +1 -1
  43. package/dist/streams/stream.js +2 -2
  44. package/dist/streams/stream.js.map +1 -1
  45. package/dist/types.d.ts +32 -15
  46. package/dist/types.js +10 -4
  47. package/dist/types.js.map +1 -1
  48. package/dist/validators.d.ts +14 -0
  49. package/dist/validators.js +63 -0
  50. package/dist/validators.js.map +1 -0
  51. package/package.json +2 -2
@@ -1,9 +1,10 @@
1
1
  import { SqlRuleError } from './errors.js';
2
- import { SqlTools } from './sql_filters.js';
3
- import { checkUnsupportedFeatures, isClauseError, isParameterValueClause, sqliteBool } from './sql_support.js';
2
+ import { AvailableTable, SqlTools } from './sql_filters.js';
3
+ import { checkUnsupportedFeatures, isClauseError, sqliteBool } from './sql_support.js';
4
4
  import { generateTableValuedFunctions } from './TableValuedFunctions.js';
5
5
  import { getBucketId, isJsonValue } from './utils.js';
6
6
  import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
7
+ import { DetectRequestParameters } from './validators.js';
7
8
  /**
8
9
  * Represents a parameter query using a table-valued function.
9
10
  *
@@ -22,11 +23,11 @@ export class TableValuedFunctionSqlParameterQuery {
22
23
  if (!(call.function.name in tableValuedFunctions)) {
23
24
  throw new SqlRuleError(`Table-valued function ${call.function.name} is not defined.`, sql, call);
24
25
  }
25
- const callTable = call.alias?.name ?? call.function.name;
26
+ const callTable = AvailableTable.fromCall(call);
26
27
  const callExpression = call.args[0];
27
28
  const tools = new SqlTools({
28
29
  table: callTable,
29
- parameterTables: ['token_parameters', 'user_parameters', callTable],
30
+ parameterTables: [new AvailableTable('token_parameters'), new AvailableTable('user_parameters'), callTable],
30
31
  supportsParameterExpressions: true,
31
32
  compatibilityContext: compatibility,
32
33
  sql
@@ -64,7 +65,7 @@ export class TableValuedFunctionSqlParameterQuery {
64
65
  filter: isClauseError(filter) ? undefined : filter,
65
66
  callClause: isClauseError(callClause) ? undefined : callClause,
66
67
  function: functionImpl,
67
- callTableName: callTable,
68
+ callTable,
68
69
  priority: priority ?? DEFAULT_BUCKET_PRIORITY,
69
70
  queryId,
70
71
  errors
@@ -128,7 +129,7 @@ export class TableValuedFunctionSqlParameterQuery {
128
129
  *
129
130
  * Only used internally.
130
131
  */
131
- callTableName;
132
+ callTable;
132
133
  errors;
133
134
  constructor(options) {
134
135
  this.sql = options.sql;
@@ -140,7 +141,7 @@ export class TableValuedFunctionSqlParameterQuery {
140
141
  this.filter = options.filter;
141
142
  this.callClause = options.callClause;
142
143
  this.function = options.function;
143
- this.callTableName = options.callTableName;
144
+ this.callTable = options.callTable;
144
145
  this.errors = options.errors;
145
146
  }
146
147
  getStaticBucketDescriptions(parameters, transformer) {
@@ -163,7 +164,7 @@ export class TableValuedFunctionSqlParameterQuery {
163
164
  const mergedParams = {
164
165
  ...parameters,
165
166
  lookup: (table, column) => {
166
- if (table == this.callTableName) {
167
+ if (table == this.callTable.nameInSchema) {
167
168
  return row[column];
168
169
  }
169
170
  else {
@@ -190,24 +191,34 @@ export class TableValuedFunctionSqlParameterQuery {
190
191
  priority: this.priority
191
192
  };
192
193
  }
194
+ visitParameterExtractorsAndCallClause() {
195
+ const visitor = new DetectRequestParameters();
196
+ // e.g. select request.user_id() as user_id
197
+ visitor.acceptAll(Object.values(this.parameterExtractors));
198
+ // e.g. select value from json_each(request.jwt() ->> 'project_ids')
199
+ visitor.accept(this.callClause);
200
+ return visitor;
201
+ }
193
202
  get hasAuthenticatedBucketParameters() {
194
203
  // select where request.jwt() ->> 'role' == 'authorized'
195
204
  // we do not count this as a sufficient check
196
205
  // const authenticatedFilter = this.filter.usesAuthenticatedRequestParameters;
206
+ const visitor = new DetectRequestParameters();
197
207
  // select request.user_id() as user_id
198
- const authenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesAuthenticatedRequestParameters) != null;
208
+ visitor.acceptAll(Object.values(this.parameterExtractors));
199
209
  // select value from json_each(request.jwt() ->> 'project_ids')
200
- const authenticatedArgument = this.callClause?.usesAuthenticatedRequestParameters ?? false;
201
- return authenticatedExtractor || authenticatedArgument;
210
+ visitor.accept(this.callClause);
211
+ return visitor.usesAuthenticatedRequestParameters;
202
212
  }
203
213
  get usesUnauthenticatedRequestParameters() {
214
+ const visitor = new DetectRequestParameters();
204
215
  // select where request.parameters() ->> 'include_comments'
205
- const unauthenticatedFilter = this.filter?.usesUnauthenticatedRequestParameters;
216
+ visitor.accept(this.filter);
206
217
  // select request.parameters() ->> 'project_id'
207
- const unauthenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesUnauthenticatedRequestParameters) != null;
218
+ visitor.acceptAll(Object.values(this.parameterExtractors));
208
219
  // select value from json_each(request.parameters() ->> 'project_ids')
209
- const unauthenticatedArgument = this.callClause?.usesUnauthenticatedRequestParameters ?? false;
210
- return unauthenticatedFilter || unauthenticatedExtractor || unauthenticatedArgument;
220
+ visitor.accept(this.callClause);
221
+ return visitor.usesUnauthenticatedRequestParameters;
211
222
  }
212
223
  get usesDangerousRequestParameters() {
213
224
  return this.usesUnauthenticatedRequestParameters && !this.hasAuthenticatedBucketParameters;
@@ -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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAA0B,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,4BAA4B,EAAuB,MAAM,2BAA2B,CAAC;AAU9F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAqC,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAkB1D;;;;;;;;GAQG;AACH,MAAM,OAAO,oCAAoC;IAC/C,MAAM,CAAC,OAAO,CACZ,cAAsB,EACtB,GAAW,EACX,IAAc,EACd,CAAsB,EACtB,OAA0B,EAC1B,OAAe;QAEf,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,MAAM,GAAmB,EAAE,CAAC;QAEhC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,YAAY,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;YACzB,KAAK,EAAE,SAAS;YAChB,eAAe,EAAE,CAAC,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE,IAAI,cAAc,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;YAC3G,4BAA4B,EAAE,IAAI;YAClC,oBAAoB,EAAE,aAAa;YACnC,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,8BAA8B,CAAC,cAAc,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC;QAC/D,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,mBAAmB,GAAyC,EAAE,CAAC;QAEnE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,uBAAuB;gBACvB,SAAS;YACX,CAAC;YACD,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAI,oCAAoC,CAAC;YACrD,GAAG;YACH,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YAClD,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YAC9D,QAAQ,EAAE,YAAY;YACtB,SAAS;YACT,QAAQ,EAAE,QAAQ,IAAI,uBAAuB;YAC7C,OAAO;YACP,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,OAAO,EAAE,oCAAoC,EAAE,CAAC;YAC3F,IAAI,GAAG,GAAG,IAAI,YAAY,CACxB,qKAAqK,EACrK,GAAG,CACJ,CAAC;YACF,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;YACrB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACM,GAAG,CAAS;IAErB;;;;OAIG;IACM,mBAAmB,CAAuC;IAE1D,QAAQ,CAAiB;IAElC;;OAEG;IACM,cAAc,CAAS;IAEhC;;;;OAIG;IACM,gBAAgB,CAAW;IAEpC;;;;;;OAMG;IACM,OAAO,CAAS;IAEzB;;;;;;OAMG;IACM,MAAM,CAAmC;IAElD;;;;OAIG;IACM,UAAU,CAAmC;IAEtD;;OAEG;IACM,QAAQ,CAAsB;IAEvC;;;;OAIG;IACM,SAAS,CAAiB;IAE1B,MAAM,CAAiB;IAEhC,YAAY,OAAoD;QAC9D,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,2BAA2B,CAAC,UAA6B,EAAE,WAAgC;QACzF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACnD,yBAAyB;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAwB,EAAE,CAAC;QACpC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACtF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,8BAA8B,CACpC,GAAc,EACd,UAA6B,EAC7B,WAAgC;QAEhC,MAAM,YAAY,GAAsB;YACtC,GAAG,UAAU;YACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;oBACzC,OAAO,GAAG,CAAC,MAAM,CAAE,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,GAAoC,EAAE,CAAC;QACjD,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAChF,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC;YACpF,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAEO,qCAAqC;QAC3C,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAE9C,2CAA2C;QAC3C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE3D,oEAAoE;QACpE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,gCAAgC;QAClC,wDAAwD;QACxD,6CAA6C;QAC7C,8EAA8E;QAC9E,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAE9C,sCAAsC;QACtC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE3D,+DAA+D;QAC/D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC,kCAAkC,CAAC;IACpD,CAAC;IAED,IAAI,oCAAoC;QACtC,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAE9C,2DAA2D;QAC3D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5B,+CAA+C;QAC/C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE3D,sEAAsE;QACtE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC,oCAAoC,CAAC;IACtD,CAAC;IAED,IAAI,8BAA8B;QAChC,OAAO,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC;IAC7F,CAAC;CACF"}
@@ -2,7 +2,7 @@ import { parse } from 'pgsql-ast-parser';
2
2
  import { BaseSqlDataQuery } from '../BaseSqlDataQuery.js';
3
3
  import { SqlRuleError } from '../errors.js';
4
4
  import { ExpressionType } from '../ExpressionType.js';
5
- import { SqlTools } from '../sql_filters.js';
5
+ import { AvailableTable, SqlTools } from '../sql_filters.js';
6
6
  import { checkUnsupportedFeatures, isClauseError } from '../sql_support.js';
7
7
  import { TablePattern } from '../TablePattern.js';
8
8
  import { TableQuerySchema } from '../TableQuerySchema.js';
@@ -30,7 +30,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
30
30
  if (tableRef?.name == null) {
31
31
  throw new SqlRuleError('Must SELECT from a single table', sql, q.from?.[0]._location);
32
32
  }
33
- const alias = tableRef.alias ?? tableRef.name;
33
+ const alias = AvailableTable.fromAst(tableRef);
34
34
  const sourceTable = new TablePattern(tableRef.schema ?? options.defaultSchema, tableRef.name);
35
35
  let querySchema = undefined;
36
36
  if (schema) {
@@ -74,7 +74,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
74
74
  else {
75
75
  extractors.push({
76
76
  extract: (tables, output) => {
77
- const row = tables[alias];
77
+ const row = tables[alias.nameInSchema];
78
78
  for (let key in row) {
79
79
  if (key.startsWith('_')) {
80
80
  continue;
@@ -83,7 +83,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
83
83
  }
84
84
  },
85
85
  getTypes(schema, into) {
86
- for (let column of schema.getColumns(alias)) {
86
+ for (let column of schema.getColumns(alias.nameInSchema)) {
87
87
  into[column.name] ??= column;
88
88
  }
89
89
  }
@@ -108,7 +108,7 @@ export class SqlEventSourceQuery extends BaseSqlDataQuery {
108
108
  }
109
109
  evaluateRowWithErrors(table, row) {
110
110
  try {
111
- const tables = { [this.table]: this.addSpecialParameters(table, row) };
111
+ const tables = { [this.table.nameInSchema]: this.addSpecialParameters(table, row) };
112
112
  const data = this.transformRow(tables);
113
113
  return {
114
114
  result: {
@@ -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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"}
@@ -1,14 +1,20 @@
1
1
  import { ExpressionType } from './ExpressionType.js';
2
- import { ParameterValueSet, SqliteValue } from './types.js';
2
+ import { CompiledClause, ParameterValueClause, ParameterValueSet, SqliteValue } from './types.js';
3
3
  export interface SqlParameterFunction {
4
4
  readonly debugName: string;
5
5
  call: (parameters: ParameterValueSet, ...args: SqliteValue[]) => SqliteValue;
6
6
  getReturnType(): ExpressionType;
7
7
  parameterCount: number;
8
- /** request.user_id(), request.jwt(), token_parameters.* */
9
- usesAuthenticatedRequestParameters: boolean;
10
- /** request.parameters(), user_parameters.* */
11
- usesUnauthenticatedRequestParameters: boolean;
8
+ /**
9
+ * Whether this function returns data derived from usage parameters.
10
+ *
11
+ * This can be:
12
+ *
13
+ * 1. `subscription`, for unauthenticated subscription parameters like `subscription.parameters()`.
14
+ * 2. `authenticated`, for parameters authenticated by a trusted backend (like `request.user_id()`).
15
+ * 3. `unauthenticated`, for global unauthenticated request parameters like (like `request.parameters()`).
16
+ */
17
+ parameterUsage: 'subscription' | 'authenticated' | 'unauthenticated' | null;
12
18
  detail: string;
13
19
  documentation: string;
14
20
  }
@@ -24,8 +30,7 @@ export declare function parameterFunctions(options: {
24
30
  extractJsonParsed: (v: ParameterValueSet) => any;
25
31
  sourceDescription: string;
26
32
  sourceDocumentation: string;
27
- usesAuthenticatedRequestParameters: boolean;
28
- usesUnauthenticatedRequestParameters: boolean;
33
+ parameterUsage: SqlParameterFunction['parameterUsage'];
29
34
  }): {
30
35
  parameters: SqlParameterFunction;
31
36
  parameter: SqlParameterFunction;
@@ -37,3 +42,10 @@ export declare function globalRequestParameterFunctions(schema: string): {
37
42
  export declare const request_jwt: SqlParameterFunction;
38
43
  export declare function generateUserIdFunction(debugName: string, sameAsDesc: string): SqlParameterFunction;
39
44
  export declare const REQUEST_FUNCTIONS: Record<string, SqlParameterFunction>;
45
+ /**
46
+ * A {@link ParameterValueClause} derived from a call to a {@link SqlParameterFunction}.
47
+ */
48
+ export interface RequestFunctionCall extends ParameterValueClause {
49
+ function: SqlParameterFunction;
50
+ }
51
+ export declare function isRequestFunctionCall(clause: CompiledClause): clause is RequestFunctionCall;
@@ -20,8 +20,7 @@ export function parameterFunctions(options) {
20
20
  },
21
21
  detail: options.sourceDescription,
22
22
  documentation: `Returns ${options.sourceDocumentation}`,
23
- usesAuthenticatedRequestParameters: options.usesAuthenticatedRequestParameters,
24
- usesUnauthenticatedRequestParameters: options.usesUnauthenticatedRequestParameters
23
+ parameterUsage: options.parameterUsage
25
24
  };
26
25
  const extractParameter = {
27
26
  debugName: `${options.schema}.parameter`,
@@ -41,8 +40,7 @@ export function parameterFunctions(options) {
41
40
  },
42
41
  detail: `Extract value from ${options.sourceDescription}`,
43
42
  documentation: `Returns an extracted value (via the key as the second argument) from ${options.sourceDocumentation}`,
44
- usesAuthenticatedRequestParameters: options.usesAuthenticatedRequestParameters,
45
- usesUnauthenticatedRequestParameters: options.usesUnauthenticatedRequestParameters
43
+ parameterUsage: options.parameterUsage
46
44
  };
47
45
  return { parameters: allParameters, parameter: extractParameter };
48
46
  }
@@ -57,8 +55,7 @@ export function globalRequestParameterFunctions(schema) {
57
55
  },
58
56
  sourceDescription: 'Unauthenticated request parameters as JSON',
59
57
  sourceDocumentation: 'parameters passed by the client as a JSON string. These parameters are not authenticated - any value can be passed in by the client.',
60
- usesAuthenticatedRequestParameters: false,
61
- usesUnauthenticatedRequestParameters: true
58
+ parameterUsage: 'unauthenticated'
62
59
  });
63
60
  }
64
61
  export const request_jwt = {
@@ -72,8 +69,7 @@ export const request_jwt = {
72
69
  },
73
70
  detail: 'JWT payload as JSON',
74
71
  documentation: 'The JWT payload as a JSON string. This is always validated against trusted keys.',
75
- usesAuthenticatedRequestParameters: true,
76
- usesUnauthenticatedRequestParameters: false
72
+ parameterUsage: 'authenticated'
77
73
  };
78
74
  export function generateUserIdFunction(debugName, sameAsDesc) {
79
75
  return {
@@ -87,8 +83,7 @@ export function generateUserIdFunction(debugName, sameAsDesc) {
87
83
  },
88
84
  detail: 'Authenticated user id',
89
85
  documentation: `The id of the authenticated user.\nSame as \`${sameAsDesc} ->> 'sub'\`.`,
90
- usesAuthenticatedRequestParameters: true,
91
- usesUnauthenticatedRequestParameters: false
86
+ parameterUsage: 'authenticated'
92
87
  };
93
88
  }
94
89
  const REQUEST_FUNCTIONS_NAMED = {
@@ -97,4 +92,7 @@ const REQUEST_FUNCTIONS_NAMED = {
97
92
  user_id: generateUserIdFunction('request.user_id', 'request.jwt()')
98
93
  };
99
94
  export const REQUEST_FUNCTIONS = REQUEST_FUNCTIONS_NAMED;
95
+ export function isRequestFunctionCall(clause) {
96
+ return clause.function != null;
97
+ }
100
98
  //# sourceMappingURL=request_functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request_functions.js","sourceRoot":"","sources":["../src/request_functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request_functions.js","sourceRoot":"","sources":["../src/request_functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAuB,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsB1D,MAAM,qBAAqB,GAAG,oBAAoB,CAChD,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAC5D,CAAC,qBAAqB,CAAC;AACxB;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAOlC;IACC,MAAM,aAAa,GAAyB;QAC1C,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,aAAa;QACzC,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,UAA6B;YAChC,OAAO,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QACD,aAAa;YACX,OAAO,cAAc,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,MAAM,EAAE,OAAO,CAAC,iBAAiB;QACjC,aAAa,EAAE,WAAW,OAAO,CAAC,mBAAmB,EAAE;QACvD,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IAEF,MAAM,gBAAgB,GAAyB;QAC7C,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,YAAY;QACxC,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,UAA6B,EAAE,IAAI;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACrD,kGAAkG;YAClG,qGAAqG;YACrG,8BAA8B;YAC9B,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa;YACX,OAAO,cAAc,CAAC,GAAG,CAAC;QAC5B,CAAC;QACD,MAAM,EAAE,sBAAsB,OAAO,CAAC,iBAAiB,EAAE;QACzD,aAAa,EAAE,wEAAwE,OAAO,CAAC,mBAAmB,EAAE;QACpH,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,kBAAkB,CAAC;QACxB,MAAM;QACN,iBAAiB,EAAE,UAAU,CAAoB;YAC/C,OAAO,CAAC,CAAC,iBAAiB,CAAC;QAC7B,CAAC;QACD,iBAAiB,EAAE,UAAU,CAAoB;YAC/C,OAAO,CAAC,CAAC,cAAc,CAAC;QAC1B,CAAC;QACD,iBAAiB,EAAE,4CAA4C;QAC/D,mBAAmB,EACjB,sIAAsI;QACxI,cAAc,EAAE,iBAAiB;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,SAAS,EAAE,aAAa;IACxB,cAAc,EAAE,CAAC;IACjB,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,cAAc,EAAE,eAAe;CAChC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,SAAiB,EAAE,UAAkB;IAC1E,OAAO;QACL,SAAS;QACT,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,UAA6B;YAChC,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,CAAC;QACD,aAAa;YACX,OAAO,cAAc,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,MAAM,EAAE,uBAAuB;QAC/B,aAAa,EAAE,gDAAgD,UAAU,eAAe;QACxF,cAAc,EAAE,eAAe;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAG;IAC9B,GAAG,+BAA+B,CAAC,SAAS,CAAC;IAC7C,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAyC,uBAAuB,CAAC;AAS/F,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,OAAQ,MAA8B,CAAC,QAAQ,IAAI,IAAI,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { SqlSyncRules } from '../SqlSyncRules.js';
2
+ import { SourceSchema } from '../types.js';
3
+ import { SchemaGenerator } from './SchemaGenerator.js';
4
+ /**
5
+ * Generates a schema to use with the [Room library](https://docs.powersync.com/client-sdk-references/kotlin-multiplatform/libraries/room).
6
+ */
7
+ export declare class RoomSchemaGenerator extends SchemaGenerator {
8
+ readonly key = "kotlin-room";
9
+ readonly label = "Room (Kotlin Multiplatform)";
10
+ readonly mediaType = "text/x-kotlin";
11
+ readonly fileName = "Entities.kt";
12
+ generate(source: SqlSyncRules, schema: SourceSchema): string;
13
+ }
@@ -0,0 +1,53 @@
1
+ import { SchemaGenerator } from './SchemaGenerator.js';
2
+ /**
3
+ * Generates a schema to use with the [Room library](https://docs.powersync.com/client-sdk-references/kotlin-multiplatform/libraries/room).
4
+ */
5
+ export class RoomSchemaGenerator extends SchemaGenerator {
6
+ key = 'kotlin-room';
7
+ label = 'Room (Kotlin Multiplatform)';
8
+ mediaType = 'text/x-kotlin';
9
+ fileName = 'Entities.kt';
10
+ generate(source, schema) {
11
+ let buffer = `import androidx.room.ColumnInfo
12
+ import androidx.room.Entity
13
+ import androidx.room.PrimaryKey
14
+ `;
15
+ const tables = super.getAllTables(source, schema);
16
+ for (const table of tables) {
17
+ // @Entity(tableName = "todo_list_items") data class TodoListItems(
18
+ buffer += `\n@Entity(tableName = "${table.name}")\n`;
19
+ buffer += `data class ${snakeCaseToKotlin(table.name, true)}(\n`;
20
+ // Id column
21
+ buffer += ' @PrimaryKey val id: String,\n';
22
+ for (const column of table.columns) {
23
+ const sqliteType = this.columnType(column);
24
+ const kotlinType = {
25
+ text: 'String',
26
+ real: 'Double',
27
+ integer: 'Long'
28
+ }[sqliteType];
29
+ // @ColumnInfo(name = "author_id") val authorId: String,
30
+ buffer += ` @ColumnInfo("${column.name}") val ${snakeCaseToKotlin(column.name, false)}: ${kotlinType},\n`;
31
+ }
32
+ buffer += ')\n';
33
+ }
34
+ return buffer;
35
+ }
36
+ }
37
+ function snakeCaseToKotlin(source, initialUpper) {
38
+ let result = '';
39
+ for (const chunk of source.split('_')) {
40
+ if (chunk.length == 0)
41
+ continue;
42
+ const firstCharUpper = result.length > 0 || initialUpper;
43
+ if (firstCharUpper) {
44
+ result += chunk.charAt(0).toUpperCase();
45
+ result += chunk.substring(1);
46
+ }
47
+ else {
48
+ result += chunk;
49
+ }
50
+ }
51
+ return result;
52
+ }
53
+ //# sourceMappingURL=RoomSchemaGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoomSchemaGenerator.js","sourceRoot":"","sources":["../../src/schema-generators/RoomSchemaGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,GAAG,GAAG,aAAa,CAAC;IACpB,KAAK,GAAG,6BAA6B,CAAC;IACtC,SAAS,GAAG,eAAe,CAAC;IAC5B,QAAQ,GAAG,aAAa,CAAC;IAElC,QAAQ,CAAC,MAAoB,EAAE,MAAoB;QACjD,IAAI,MAAM,GAAG;;;CAGhB,CAAC;QACE,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,mEAAmE;YACnE,MAAM,IAAI,0BAA0B,KAAK,CAAC,IAAI,MAAM,CAAC;YACrD,MAAM,IAAI,cAAc,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YAEjE,YAAY;YACZ,MAAM,IAAI,iCAAiC,CAAC;YAE5C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,UAAU,GAAG;oBACjB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,MAAM;iBAChB,CAAC,UAAU,CAAC,CAAC;gBAEd,wDAAwD;gBACxD,MAAM,IAAI,kBAAkB,MAAM,CAAC,IAAI,UAAU,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC;YAC7G,CAAC;YAED,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,YAAqB;IAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,SAAS;QAEhC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC;QACzD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -18,5 +18,5 @@ export declare abstract class SchemaGenerator {
18
18
  * @param def The column definition to generate the type for.
19
19
  * @returns The SDK column type for the given column definition.
20
20
  */
21
- columnType(def: ColumnDefinition): string;
21
+ columnType(def: ColumnDefinition): 'text' | 'real' | 'integer';
22
22
  }
@@ -0,0 +1,15 @@
1
+ import { SqlSyncRules } from '../SqlSyncRules.js';
2
+ import { SourceSchema } from '../types.js';
3
+ import { GenerateSchemaOptions, SchemaGenerator } from './SchemaGenerator.js';
4
+ /**
5
+ * Generates a schema as `CREATE TABLE` statements, useful for libraries like drift or SQLDelight which can generate
6
+ * typed rows or generate queries based on that.
7
+ */
8
+ export declare class SqlSchemaGenerator extends SchemaGenerator {
9
+ readonly label: string;
10
+ readonly fileName: string;
11
+ readonly key = "sql";
12
+ readonly mediaType = "application/sql";
13
+ constructor(label: string, fileName: string);
14
+ generate(source: SqlSyncRules, schema: SourceSchema, options?: GenerateSchemaOptions): string;
15
+ }
@@ -0,0 +1,31 @@
1
+ import { SchemaGenerator } from './SchemaGenerator.js';
2
+ /**
3
+ * Generates a schema as `CREATE TABLE` statements, useful for libraries like drift or SQLDelight which can generate
4
+ * typed rows or generate queries based on that.
5
+ */
6
+ export class SqlSchemaGenerator extends SchemaGenerator {
7
+ label;
8
+ fileName;
9
+ key = 'sql';
10
+ mediaType = 'application/sql';
11
+ constructor(label, fileName) {
12
+ super();
13
+ this.label = label;
14
+ this.fileName = fileName;
15
+ }
16
+ generate(source, schema, options) {
17
+ let buffer = '-- Note: These definitions are only used to generate typed code. PowerSync manages the database schema.\n';
18
+ const tables = super.getAllTables(source, schema);
19
+ for (const table of tables) {
20
+ buffer += `CREATE TABLE ${table.name}(\n`;
21
+ buffer += ' id TEXT NOT NULL PRIMARY KEY';
22
+ for (const column of table.columns) {
23
+ const type = this.columnType(column).toUpperCase();
24
+ buffer += `,\n ${column.name} ${type}`;
25
+ }
26
+ buffer += '\n);\n';
27
+ }
28
+ return buffer;
29
+ }
30
+ }
31
+ //# sourceMappingURL=SqlSchemaGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlSchemaGenerator.js","sourceRoot":"","sources":["../../src/schema-generators/SqlSchemaGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAK1C;IACA;IALF,GAAG,GAAG,KAAK,CAAC;IACZ,SAAS,GAAG,iBAAiB,CAAC;IAEvC,YACW,KAAa,EACb,QAAgB;QAEzB,KAAK,EAAE,CAAC;QAHC,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;IAG3B,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,MAAoB,EAAE,OAA+B;QAClF,IAAI,MAAM,GACR,2GAA2G,CAAC;QAC9G,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,gBAAgB,KAAK,CAAC,IAAI,KAAK,CAAC;YAE1C,MAAM,IAAI,gCAAgC,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnD,MAAM,IAAI,QAAQ,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,QAAQ,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,8 +1,12 @@
1
+ import { SqlSchemaGenerator } from './SqlSchemaGenerator.js';
1
2
  export * from './DartSchemaGenerator.js';
2
3
  export * from './DotNetSchemaGenerator.js';
3
4
  export * from './generators.js';
4
5
  export * from './JsLegacySchemaGenerator.js';
5
6
  export * from './KotlinSchemaGenerator.js';
7
+ export * from './RoomSchemaGenerator.js';
6
8
  export * from './SchemaGenerator.js';
7
9
  export * from './SwiftSchemaGenerator.js';
8
10
  export * from './TsSchemaGenerator.js';
11
+ export declare const driftSchemaGenerator: SqlSchemaGenerator;
12
+ export declare const sqlDelightSchemaGenerator: SqlSchemaGenerator;
@@ -1,9 +1,13 @@
1
+ import { SqlSchemaGenerator } from './SqlSchemaGenerator.js';
1
2
  export * from './DartSchemaGenerator.js';
2
3
  export * from './DotNetSchemaGenerator.js';
3
4
  export * from './generators.js';
4
5
  export * from './JsLegacySchemaGenerator.js';
5
6
  export * from './KotlinSchemaGenerator.js';
7
+ export * from './RoomSchemaGenerator.js';
6
8
  export * from './SchemaGenerator.js';
7
9
  export * from './SwiftSchemaGenerator.js';
8
10
  export * from './TsSchemaGenerator.js';
11
+ export const driftSchemaGenerator = new SqlSchemaGenerator('Drift', 'tables.drift');
12
+ export const sqlDelightSchemaGenerator = new SqlSchemaGenerator('SQLDelight', 'tables.sq');
9
13
  //# sourceMappingURL=schema-generators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generators.js","sourceRoot":"","sources":["../../src/schema-generators/schema-generators.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"schema-generators.js","sourceRoot":"","sources":["../../src/schema-generators/schema-generators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Expr, ExprRef, Name, NodeLocation, QName, QNameAliased, SelectedColumn } from 'pgsql-ast-parser';
1
+ import { Expr, ExprRef, FromCall, Name, NodeLocation, QName, QNameAliased, SelectedColumn } from 'pgsql-ast-parser';
2
2
  import { nil } from 'pgsql-ast-parser/src/utils.js';
3
3
  import { BucketPriority } from './BucketDescription.js';
4
4
  import { SqlRuleError } from './errors.js';
@@ -8,13 +8,41 @@ import { ClauseError, CompiledClause, InputParameter, ParameterMatchClause, Para
8
8
  import { CompatibilityContext } from './compatibility.js';
9
9
  export declare const MATCH_CONST_FALSE: TrueIfParametersMatch;
10
10
  export declare const MATCH_CONST_TRUE: TrueIfParametersMatch;
11
+ /**
12
+ * A table that has been made available to a result set by being included in a `FROM`.
13
+ *
14
+ * This is used to lookup references inside queries only, which is why this doesn't reference the schema name (that's
15
+ * covered by {@link TablePattern}).
16
+ */
17
+ export declare class AvailableTable {
18
+ /**
19
+ * The name of the table in the schema.
20
+ */
21
+ nameInSchema: string;
22
+ /**
23
+ * The alias under which the {@link nameInSchema} is made available to the current query.
24
+ */
25
+ alias?: string;
26
+ /**
27
+ * The name a table has in an SQL expression context.
28
+ */
29
+ get sqlName(): string;
30
+ get isAliased(): boolean;
31
+ constructor(schemaName: string, alias?: string);
32
+ static fromAst(name: QNameAliased): AvailableTable;
33
+ static fromCall(name: FromCall): AvailableTable;
34
+ /**
35
+ * Finds the first table matching the given name in SQL.
36
+ */
37
+ static search(identifier: string | AvailableTable | undefined, available: AvailableTable[]): AvailableTable | undefined;
38
+ }
11
39
  export interface SqlToolsOptions {
12
40
  /**
13
41
  * Default table name, if any. I.e. SELECT FROM <table>.
14
42
  *
15
43
  * Used for to determine the table when using bare column names.
16
44
  */
17
- table?: string;
45
+ table?: AvailableTable;
18
46
  /**
19
47
  * Set of tables used for FilterParameters.
20
48
  *
@@ -22,13 +50,13 @@ export interface SqlToolsOptions {
22
50
  * "bucket" (bucket parameters for data query)
23
51
  * "token_parameters" (token parameters for parameter query)
24
52
  */
25
- parameterTables?: string[];
53
+ parameterTables?: AvailableTable[];
26
54
  /**
27
55
  * Set of tables used in QueryParameters.
28
56
  *
29
- * If not specified, defaults to [table].
57
+ * If not specified, defaults to {@link table}.
30
58
  */
31
- valueTables?: string[];
59
+ valueTables?: AvailableTable[];
32
60
  /**
33
61
  * For debugging / error messages.
34
62
  */
@@ -57,13 +85,15 @@ export interface SqlToolsOptions {
57
85
  compatibilityContext: CompatibilityContext;
58
86
  }
59
87
  export declare class SqlTools {
60
- readonly defaultTable?: string;
61
- readonly valueTables: string[];
88
+ readonly defaultTable?: AvailableTable;
89
+ readonly valueTables: AvailableTable[];
62
90
  /**
63
91
  * ['bucket'] for data queries
64
92
  * ['token_parameters', 'user_parameters'] for parameter queries
93
+ *
94
+ * These are never aliased.
65
95
  */
66
- readonly parameterTables: string[];
96
+ readonly parameterTables: AvailableTable[];
67
97
  readonly sql: string;
68
98
  readonly errors: SqlRuleError[];
69
99
  readonly supportsExpandingParameters: boolean;
@@ -95,8 +125,7 @@ export declare class SqlTools {
95
125
  inputParameters: InputParameter[];
96
126
  unbounded: false;
97
127
  filterRow(tables: QueryParameters): TrueIfParametersMatch;
98
- usesAuthenticatedRequestParameters: boolean;
99
- usesUnauthenticatedRequestParameters: boolean;
128
+ visitChildren: (v: (clause: CompiledClause) => void) => void;
100
129
  };
101
130
  /**
102
131
  * "some_column" => "some_column"
@@ -110,7 +139,7 @@ export declare class SqlTools {
110
139
  /**
111
140
  * Check if an expression is a parameter_table reference.
112
141
  */
113
- isParameterRef(expr: Expr): expr is ExprRef;
142
+ private isParameterRef;
114
143
  /**
115
144
  * Check if an expression is a value_tables reference.
116
145
  *
@@ -124,14 +153,14 @@ export declare class SqlTools {
124
153
  */
125
154
  checkSpecificNameCase(expr: Name | QName | QNameAliased): void;
126
155
  private checkRef;
127
- getParameterRefClause(expr: ExprRef): ParameterValueClause;
156
+ private getParameterRefClause;
128
157
  refHasSchema(ref: ExprRef): boolean;
129
158
  /**
130
159
  * Get the table name from an expression.
131
160
  *
132
161
  * Only "value" tables are supported here, not parameter values.
133
162
  */
134
- getTableName(ref: ExprRef): string;
163
+ getTableName(ref: ExprRef): AvailableTable;
135
164
  /**
136
165
  * Given a function, compile a clause with the function over compiled arguments.
137
166
  *