jinaga-server 1.1.3 → 2.0.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 (89) hide show
  1. package/README.md +12 -0
  2. package/dist/authentication/authentication-device.d.ts +3 -2
  3. package/dist/authentication/authentication-device.js +6 -0
  4. package/dist/authentication/authentication-device.js.map +1 -1
  5. package/dist/authentication/authentication-impl.d.ts +3 -2
  6. package/dist/authentication/authentication-impl.js +6 -0
  7. package/dist/authentication/authentication-impl.js.map +1 -1
  8. package/dist/authentication/authentication-noop.d.ts +20 -0
  9. package/dist/authentication/authentication-noop.js +52 -0
  10. package/dist/authentication/authentication-noop.js.map +1 -0
  11. package/dist/authentication/authentication-session.d.ts +3 -2
  12. package/dist/authentication/authentication-session.js +6 -0
  13. package/dist/authentication/authentication-session.js.map +1 -1
  14. package/dist/authentication.d.ts +3 -2
  15. package/dist/authentication.js +6 -0
  16. package/dist/authentication.js.map +1 -1
  17. package/dist/authorization/authorization-keystore.d.ts +3 -4
  18. package/dist/authorization/authorization-keystore.js +9 -4
  19. package/dist/authorization/authorization-keystore.js.map +1 -1
  20. package/dist/debug.d.ts +1 -0
  21. package/dist/debug.js +30 -0
  22. package/dist/debug.js.map +1 -0
  23. package/dist/http/router.js.map +1 -1
  24. package/dist/jinaga-server.js +15 -7
  25. package/dist/jinaga-server.js.map +1 -1
  26. package/dist/memory/memory-keystore.js +0 -6
  27. package/dist/memory/memory-keystore.js.map +1 -1
  28. package/dist/postgres/connection.js +1 -0
  29. package/dist/postgres/connection.js.map +1 -1
  30. package/dist/postgres/maps.d.ts +7 -6
  31. package/dist/postgres/maps.js +9 -1
  32. package/dist/postgres/maps.js.map +1 -1
  33. package/dist/postgres/postgres-keystore.js +0 -6
  34. package/dist/postgres/postgres-keystore.js.map +1 -1
  35. package/dist/postgres/postgres-store.d.ts +1 -2
  36. package/dist/postgres/postgres-store.js +29 -24
  37. package/dist/postgres/postgres-store.js.map +1 -1
  38. package/dist/postgres/specification-result-sql.d.ts +4 -5
  39. package/dist/postgres/specification-result-sql.js +139 -112
  40. package/dist/postgres/specification-result-sql.js.map +1 -1
  41. package/dist/postgres/specification-sql.js.map +1 -1
  42. package/dist/postgres/sql.d.ts +1 -1
  43. package/dist/postgres/sql.js +15 -7
  44. package/dist/postgres/sql.js.map +1 -1
  45. package/dist/util/maps.d.ts +0 -0
  46. package/dist/util/maps.js +2 -0
  47. package/dist/util/maps.js.map +1 -0
  48. package/docs/sql/SQL Generator (projection).png +0 -0
  49. package/docs/sql/SQLFromSpecification.md +396 -0
  50. package/docs/sql/example.sql +49 -0
  51. package/docs/sql/first-path.gv +9 -0
  52. package/docs/sql/first-path.png +0 -0
  53. package/docs/sql/model.gv +20 -0
  54. package/docs/sql/model.png +0 -0
  55. package/integration-test/jinaga-test/Dockerfile +2 -2
  56. package/integration-test/jinaga-test/jinaga.test.js +3 -3
  57. package/integration-test/jinaga-test/package-lock.json +745 -3484
  58. package/integration-test/jinaga-test/package.json +2 -0
  59. package/integration-test/run.sh +3 -3
  60. package/package.json +5 -6
  61. package/replicator/index.ts +31 -0
  62. package/replicator/package-lock.json +855 -0
  63. package/replicator/package.json +27 -0
  64. package/replicator/tsconfig.json +15 -0
  65. package/src/authentication/authentication-device.ts +11 -1
  66. package/src/authentication/authentication-impl.ts +9 -2
  67. package/src/authentication/authentication-noop.ts +65 -0
  68. package/src/authentication/authentication-session.ts +11 -1
  69. package/src/authentication.ts +12 -2
  70. package/src/authorization/authorization-keystore.ts +12 -7
  71. package/src/debug.ts +30 -0
  72. package/src/http/router.ts +2 -2
  73. package/src/jinaga-server.ts +18 -8
  74. package/src/memory/memory-keystore.ts +0 -6
  75. package/src/postgres/connection.ts +2 -1
  76. package/src/postgres/maps.ts +8 -0
  77. package/src/postgres/postgres-keystore.ts +2 -8
  78. package/src/postgres/postgres-store.ts +37 -30
  79. package/src/postgres/specification-result-sql.ts +200 -145
  80. package/src/postgres/specification-sql.ts +1 -1
  81. package/src/postgres/sql.ts +23 -12
  82. package/src/util/maps.ts +0 -0
  83. package/test/postgres/postgresReadSpec.ts +292 -0
  84. package/test/postgres/postgresSpec.ts +31 -31
  85. package/test/postgres/postgresSpecificationSpec.ts +1 -1
  86. package/tsconfig.json +1 -0
  87. package/tsconfig.test.json +26 -0
  88. package/docs/specification.txt +0 -41
  89. package/interactive/index.js +0 -56
@@ -3,57 +3,82 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resultSqlFromSpecification = exports.ResultComposer = void 0;
4
4
  const maps_1 = require("./maps");
5
5
  ;
6
- function countEdges(notExistsConditions) {
7
- return notExistsConditions.reduce((count, c) => count + c.edges.length + countEdges(c.notExistsConditions), 0);
6
+ function countEdges(existentialConditions) {
7
+ return existentialConditions.reduce((count, c) => count + c.edges.length + countEdges(c.existentialConditions), 0);
8
8
  }
9
9
  class QueryDescription {
10
- constructor(inputs, parameters, outputs, facts, edges, notExistsConditions = []) {
10
+ constructor(inputs, parameters, outputs, facts, edges, existentialConditions = []) {
11
11
  this.inputs = inputs;
12
12
  this.parameters = parameters;
13
13
  this.outputs = outputs;
14
14
  this.facts = facts;
15
15
  this.edges = edges;
16
- this.notExistsConditions = notExistsConditions;
16
+ this.existentialConditions = existentialConditions;
17
17
  }
18
18
  withParameter(parameter) {
19
19
  const parameterIndex = this.parameters.length + 1;
20
- const query = new QueryDescription(this.inputs, this.parameters.concat(parameter), this.outputs, this.facts, this.edges, this.notExistsConditions);
20
+ const query = new QueryDescription(this.inputs, this.parameters.concat(parameter), this.outputs, this.facts, this.edges, this.existentialConditions);
21
21
  return { query, parameterIndex };
22
22
  }
23
- withInputParameter(label) {
23
+ withInputParameter(label, factTypeId, factHash, path) {
24
24
  const factTypeParameter = this.parameters.length + 1;
25
25
  const factHashParameter = factTypeParameter + 1;
26
- const input = this.inputs.find(i => i.label === label);
27
- const inputs = this.inputs.map(input => input.label === label
28
- ? Object.assign(Object.assign({}, input), { factTypeParameter, factHashParameter }) : input);
29
- return new QueryDescription(inputs, this.parameters.concat(input.factTypeId, input.factHash), this.outputs, this.facts, this.edges, this.notExistsConditions);
26
+ const factIndex = this.facts.length + 1;
27
+ const factDescription = {
28
+ factIndex: factIndex,
29
+ type: label.type
30
+ };
31
+ const facts = [
32
+ ...this.facts,
33
+ factDescription
34
+ ];
35
+ const input = {
36
+ label: label.name,
37
+ factIndex,
38
+ factTypeParameter,
39
+ factHashParameter
40
+ };
41
+ const parameters = this.parameters.concat(factTypeId, factHash);
42
+ if (path.length === 0) {
43
+ const inputs = [
44
+ ...this.inputs,
45
+ input
46
+ ];
47
+ const queryDescription = new QueryDescription(inputs, parameters, this.outputs, facts, this.edges, this.existentialConditions);
48
+ return { queryDescription, factDescription };
49
+ }
50
+ else {
51
+ const existentialConditions = existentialsWithInput(this.existentialConditions, input, path);
52
+ const queryDescription = new QueryDescription(this.inputs, parameters, this.outputs, facts, this.edges, existentialConditions);
53
+ return { queryDescription, factDescription };
54
+ }
30
55
  }
31
56
  withFact(type) {
32
57
  const factIndex = this.facts.length + 1;
33
58
  const fact = { factIndex, type };
34
- const query = new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts.concat(fact), this.edges, this.notExistsConditions);
59
+ const query = new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts.concat(fact), this.edges, this.existentialConditions);
35
60
  return { query, factIndex };
36
61
  }
37
62
  withOutput(label, type, factIndex) {
38
63
  const output = { label, type, factIndex };
39
- const query = new QueryDescription(this.inputs, this.parameters, this.outputs.concat(output), this.facts, this.edges, this.notExistsConditions);
64
+ const query = new QueryDescription(this.inputs, this.parameters, this.outputs.concat(output), this.facts, this.edges, this.existentialConditions);
40
65
  return query;
41
66
  }
42
67
  withEdge(predecessorFactIndex, successorFactIndex, roleParameter, path) {
43
68
  const edge = {
44
- edgeIndex: this.edges.length + countEdges(this.notExistsConditions) + 1,
69
+ edgeIndex: this.edges.length + countEdges(this.existentialConditions) + 1,
45
70
  predecessorFactIndex,
46
71
  successorFactIndex,
47
72
  roleParameter
48
73
  };
49
74
  const query = (path.length === 0)
50
- ? new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges.concat(edge), this.notExistsConditions)
51
- : new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges, notExistsWithEdge(this.notExistsConditions, edge, path));
75
+ ? new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges.concat(edge), this.existentialConditions)
76
+ : new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges, existentialsWithEdge(this.existentialConditions, edge, path));
52
77
  return query;
53
78
  }
54
- withNotExistsCondition(path) {
55
- const { notExistsConditions: newNotExistsConditions, path: newPath } = notExistsWithCondition(this.notExistsConditions, path);
56
- const query = new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges, newNotExistsConditions);
79
+ withExistentialCondition(exists, path) {
80
+ const { existentialConditions: newExistentialConditions, path: newPath } = existentialsWithNewCondition(this.existentialConditions, exists, path);
81
+ const query = new QueryDescription(this.inputs, this.parameters, this.outputs, this.facts, this.edges, newExistentialConditions);
57
82
  return { query, path: newPath };
58
83
  }
59
84
  isSatisfiable() {
@@ -79,16 +104,15 @@ class QueryDescription {
79
104
  const writtenFactIndexes = new Set().add(firstFactIndex);
80
105
  const joins = generateJoins(this.edges, writtenFactIndexes);
81
106
  const inputWhereClauses = this.inputs
82
- .filter(input => input.factTypeParameter !== 0)
83
107
  .map(input => `f${input.factIndex}.fact_type_id = $${input.factTypeParameter} AND f${input.factIndex}.hash = $${input.factHashParameter}`)
84
108
  .join(" AND ");
85
- const notExistsWhereClauses = this.notExistsConditions
86
- .map(notExistsWhereClause => ` AND NOT EXISTS (${generateNotExistsWhereClause(notExistsWhereClause, writtenFactIndexes)})`)
109
+ const existentialWhereClauses = this.existentialConditions
110
+ .map(existentialCondition => ` AND ${existentialCondition.exists ? "EXISTS" : "NOT EXISTS"} (${generateExistentialWhereClause(existentialCondition, writtenFactIndexes)})`)
87
111
  .join("");
88
112
  const orderByClause = this.outputs
89
113
  .map(output => `f${output.factIndex}.fact_id ASC`)
90
114
  .join(", ");
91
- const sql = `SELECT ${columns} FROM public.fact f${firstFactIndex}${joins.join("")} WHERE ${inputWhereClauses}${notExistsWhereClauses} ORDER BY ${orderByClause}`;
115
+ const sql = `SELECT ${columns} FROM public.fact f${firstFactIndex}${joins.join("")} WHERE ${inputWhereClauses}${existentialWhereClauses} ORDER BY ${orderByClause}`;
92
116
  return {
93
117
  sql,
94
118
  parameters: this.parameters,
@@ -103,46 +127,52 @@ class QueryDescription {
103
127
  }
104
128
  // An unsatisfiable query description will produce no results.
105
129
  QueryDescription.unsatisfiable = new QueryDescription([], [], [], [], [], []);
106
- function notExistsWithEdge(notExistsConditions, edge, path) {
130
+ function existentialsWithInput(existentialConditions, input, path) {
107
131
  if (path.length === 1) {
108
- return notExistsConditions.map((c, i) => i === path[0] ?
109
- {
110
- edges: [...c.edges, edge],
111
- notExistsConditions: c.notExistsConditions
112
- } :
132
+ return existentialConditions.map((c, i) => i === path[0] ? Object.assign(Object.assign({}, c), { inputs: [...c.inputs, input] }) :
113
133
  c);
114
134
  }
115
135
  else {
116
- return notExistsConditions.map((c, i) => i === path[0] ?
117
- {
118
- edges: c.edges,
119
- notExistsConditions: notExistsWithEdge(c.notExistsConditions, edge, path.slice(1))
120
- } :
136
+ return existentialConditions.map((c, i) => i === path[0] ? Object.assign(Object.assign({}, c), { existentialConditions: existentialsWithInput(c.existentialConditions, input, path.slice(1)) }) :
121
137
  c);
122
138
  }
123
139
  }
124
- function notExistsWithCondition(notExistsConditions, path) {
140
+ function existentialsWithEdge(existentialConditions, edge, path) {
141
+ if (path.length === 1) {
142
+ return existentialConditions.map((c, i) => i === path[0] ? Object.assign(Object.assign({}, c), { edges: [...c.edges, edge] }) :
143
+ c);
144
+ }
145
+ else {
146
+ return existentialConditions.map((c, i) => i === path[0] ? Object.assign(Object.assign({}, c), { existentialConditions: existentialsWithEdge(c.existentialConditions, edge, path.slice(1)) }) :
147
+ c);
148
+ }
149
+ }
150
+ function existentialsWithNewCondition(existentialConditions, exists, path) {
125
151
  if (path.length === 0) {
126
- path = [notExistsConditions.length];
127
- notExistsConditions = [
128
- ...notExistsConditions,
152
+ path = [existentialConditions.length];
153
+ existentialConditions = [
154
+ ...existentialConditions,
129
155
  {
156
+ exists: exists,
157
+ inputs: [],
130
158
  edges: [],
131
- notExistsConditions: []
159
+ existentialConditions: []
132
160
  }
133
161
  ];
134
- return { notExistsConditions, path };
162
+ return { existentialConditions: existentialConditions, path };
135
163
  }
136
164
  else {
137
- const { notExistsConditions: newNotExistsConditions, path: newPath } = notExistsWithCondition(notExistsConditions[path[0]].notExistsConditions, path.slice(1));
138
- notExistsConditions = notExistsConditions.map((c, i) => i === path[0] ?
165
+ const { existentialConditions: newExistentialConditions, path: newPath } = existentialsWithNewCondition(existentialConditions[path[0]].existentialConditions, exists, path.slice(1));
166
+ existentialConditions = existentialConditions.map((c, i) => i === path[0] ?
139
167
  {
168
+ exists: c.exists,
169
+ inputs: c.inputs,
140
170
  edges: c.edges,
141
- notExistsConditions: newNotExistsConditions
171
+ existentialConditions: newExistentialConditions
142
172
  } :
143
173
  c);
144
174
  path = [path[0], ...newPath];
145
- return { notExistsConditions, path };
175
+ return { existentialConditions: existentialConditions, path };
146
176
  }
147
177
  }
148
178
  function generateJoins(edges, writtenFactIndexes) {
@@ -178,8 +208,8 @@ function generateJoins(edges, writtenFactIndexes) {
178
208
  });
179
209
  return joins;
180
210
  }
181
- function generateNotExistsWhereClause(notExistsWhereClause, outerFactIndexes) {
182
- const firstEdge = notExistsWhereClause.edges[0];
211
+ function generateExistentialWhereClause(existentialCondition, outerFactIndexes) {
212
+ const firstEdge = existentialCondition.edges[0];
183
213
  const writtenFactIndexes = new Set(outerFactIndexes);
184
214
  const firstJoin = [];
185
215
  const whereClause = [];
@@ -205,9 +235,15 @@ function generateNotExistsWhereClause(notExistsWhereClause, outerFactIndexes) {
205
235
  else {
206
236
  throw new Error("Neither predecessor nor successor fact has been written");
207
237
  }
208
- const tailJoins = generateJoins(notExistsWhereClause.edges.slice(1), writtenFactIndexes);
238
+ const tailJoins = generateJoins(existentialCondition.edges.slice(1), writtenFactIndexes);
209
239
  const joins = firstJoin.concat(tailJoins);
210
- return `SELECT 1 FROM public.edge e${firstEdge.edgeIndex}${joins.join("")} WHERE ${whereClause.join(" AND ")}`;
240
+ const inputWhereClauses = existentialCondition.inputs
241
+ .map(input => ` AND f${input.factIndex}.fact_type_id = $${input.factTypeParameter} AND f${input.factIndex}.hash = $${input.factHashParameter}`)
242
+ .join("");
243
+ const existentialWhereClauses = existentialCondition.existentialConditions
244
+ .map(e => ` AND ${e.exists ? "EXISTS" : "NOT EXISTS"} (${generateExistentialWhereClause(e, writtenFactIndexes)})`)
245
+ .join("");
246
+ return `SELECT 1 FROM public.edge e${firstEdge.edgeIndex}${joins.join("")} WHERE ${whereClause.join(" AND ")}${inputWhereClauses}${existentialWhereClauses}`;
211
247
  }
212
248
  class ResultComposer {
213
249
  constructor(sqlQuery, resultProjection, parentFactIdLength, childResultComposers) {
@@ -292,28 +328,32 @@ class ResultComposer {
292
328
  return this.sqlQuery.labels.map(label => row[`id${label.index}`]);
293
329
  }
294
330
  projectionOf(row) {
295
- if (!Array.isArray(this.resultProjection)) {
296
- return this.singularValue(this.resultProjection, row);
331
+ if (this.resultProjection.type === "field") {
332
+ return this.fieldValue(this.resultProjection, row);
297
333
  }
298
- else if (this.resultProjection.length === 0 && this.childResultComposers.length === 0) {
299
- return this.sqlQuery.labels
300
- .slice(this.parentFactIdLength)
301
- .reduce((acc, label) => (Object.assign(Object.assign({}, acc), { [label.name]: row[`data${label.index}`].fields })), {});
302
- }
303
- else {
304
- return this.resultProjection.reduce((acc, elementProjection) => (Object.assign(Object.assign({}, acc), { [elementProjection.name]: this.elementValue(elementProjection, row) })), {});
334
+ else if (this.resultProjection.type === "composite") {
335
+ if (this.resultProjection.components.length === 0 &&
336
+ this.childResultComposers.length === 0) {
337
+ return this.sqlQuery.labels
338
+ .slice(this.parentFactIdLength)
339
+ .reduce((acc, label) => (Object.assign(Object.assign({}, acc), { [label.name]: row[`data${label.index}`].fields })), {});
340
+ }
341
+ else {
342
+ return this.resultProjection.components.reduce((acc, component) => (Object.assign(Object.assign({}, acc), { [component.name]: this.elementValue(component, row) })), {});
343
+ }
305
344
  }
306
345
  }
307
346
  elementValue(projection, row) {
308
- const label = this.getLabel(projection.label);
309
347
  if (projection.type === "field") {
348
+ const label = this.getLabel(projection.label);
310
349
  return row[`data${label.index}`].fields[projection.field];
311
350
  }
312
351
  else if (projection.type === "hash") {
352
+ const label = this.getLabel(projection.label);
313
353
  return row[`hash${label.index}`];
314
354
  }
315
355
  }
316
- singularValue(projection, row) {
356
+ fieldValue(projection, row) {
317
357
  const label = this.getLabel(projection.label);
318
358
  return row[`data${label.index}`].fields[projection.field];
319
359
  }
@@ -342,88 +382,70 @@ class ResultDescriptionBuilder {
342
382
  throw new Error(`The type of start fact ${i} (${start[i].type}) does not match the type of input ${i} (${specification.given[i].type})`);
343
383
  }
344
384
  }
345
- // Allocate a fact table for each given.
346
- // While the fact type and hash parameters are zero, the join will not be written.
347
- const inputs = specification.given
348
- .map((label, i) => ({
349
- label: label.name,
350
- factIndex: i + 1,
351
- factTypeId: (0, maps_1.getFactTypeId)(this.factTypes, label.type),
352
- factHash: start[i].hash,
353
- factTypeParameter: 0,
354
- factHashParameter: 0
355
- }));
356
- const facts = specification.given
357
- .map((label, i) => ({
358
- factIndex: i + 1,
359
- type: label.type
360
- }));
361
- const givenFacts = specification.given.reduce((knownFacts, label, i) => (Object.assign(Object.assign({}, knownFacts), { [label.name]: facts[i] })), {});
362
385
  // The QueryDescription is an immutable data type.
363
386
  // Initialize it with the inputs and facts.
364
387
  // The DescriptionBuilder will branch at various points, and
365
388
  // build on the current query description along each branch.
366
- const initialQueryDescription = new QueryDescription(inputs, [], [], facts, [], []);
367
- return this.createResultDescription(initialQueryDescription, specification.matches, specification.childProjections, givenFacts, []);
389
+ const initialQueryDescription = new QueryDescription([], [], [], [], [], []);
390
+ return this.createResultDescription(initialQueryDescription, specification.given, start, specification.matches, specification.projection, {}, []);
368
391
  }
369
- createResultDescription(queryDescription, matches, childProjections, knownFacts, path) {
370
- ({ queryDescription, knownFacts } = this.addEdges(queryDescription, knownFacts, path, matches));
392
+ createResultDescription(queryDescription, given, start, matches, projection, knownFacts, path) {
393
+ ({ queryDescription, knownFacts } = this.addEdges(queryDescription, given, start, knownFacts, path, matches));
371
394
  if (!queryDescription.isSatisfiable()) {
372
395
  // Abort the branch if the query is not satisfiable
373
396
  return {
374
397
  queryDescription,
375
- resultProjection: [],
398
+ resultProjection: {
399
+ type: "composite",
400
+ components: []
401
+ },
376
402
  childResultDescriptions: []
377
403
  };
378
404
  }
379
405
  const childResultDescriptions = [];
380
- if (Array.isArray(childProjections)) {
381
- const specificationProjections = childProjections
406
+ if (projection.type === "composite") {
407
+ const specificationProjections = projection.components
382
408
  .filter(projection => projection.type === "specification");
383
- const elementProjections = childProjections
409
+ const singularProjections = projection.components
384
410
  .filter(projection => projection.type === "field" || projection.type === "hash");
385
411
  for (const child of specificationProjections) {
386
- const childResultDescription = this.createResultDescription(queryDescription, child.matches, child.childProjections, knownFacts, []);
412
+ const childResultDescription = this.createResultDescription(queryDescription, given, start, child.matches, child.projection, knownFacts, []);
387
413
  childResultDescriptions.push(Object.assign({ name: child.name }, childResultDescription));
388
414
  }
389
415
  return {
390
416
  queryDescription,
391
- resultProjection: elementProjections,
417
+ resultProjection: {
418
+ type: "composite",
419
+ components: singularProjections
420
+ },
392
421
  childResultDescriptions
393
422
  };
394
423
  }
395
424
  else {
396
425
  return {
397
426
  queryDescription,
398
- resultProjection: childProjections,
427
+ resultProjection: projection,
399
428
  childResultDescriptions: []
400
429
  };
401
430
  }
402
431
  }
403
- addEdges(queryDescription, knownFacts, path, matches) {
432
+ addEdges(queryDescription, given, start, knownFacts, path, matches) {
404
433
  for (const match of matches) {
405
434
  for (const condition of match.conditions) {
406
435
  if (condition.type === "path") {
407
- ({ queryDescription, knownFacts } = this.addPathCondition(queryDescription, knownFacts, path, match.unknown, "", condition));
436
+ ({ queryDescription, knownFacts } = this.addPathCondition(queryDescription, given, start, knownFacts, path, match.unknown, "", condition));
408
437
  }
409
438
  else if (condition.type === "existential") {
410
- if (condition.exists) {
411
- // Include the edges of the existential condition into the current
412
- // query description.
413
- ({ queryDescription } = this.addEdges(queryDescription, knownFacts, path, condition.matches));
414
- }
415
- else {
416
- // Apply the where clause and continue with the tuple where it is true.
417
- // The path describes which not-exists condition we are currently building on.
418
- // Because the path is not empty, labeled facts will be included in the output.
419
- const { query: queryDescriptionWithNotExist, path: conditionalPath } = queryDescription.withNotExistsCondition(path);
420
- const { queryDescription: queryDescriptionConditional } = this.addEdges(queryDescriptionWithNotExist, knownFacts, conditionalPath, condition.matches);
421
- // If the negative existential condition is not satisfiable, then
422
- // that means that the condition will always be true.
423
- // We can therefore skip the branch for the negative existential condition.
424
- if (queryDescriptionConditional.isSatisfiable()) {
425
- queryDescription = queryDescriptionConditional;
426
- }
439
+ // Apply the where clause and continue with the tuple where it is true.
440
+ // The path describes which not-exists condition we are currently building on.
441
+ // Because the path is not empty, labeled facts will be included in the output.
442
+ const { query: queryDescriptionWithExistential, path: conditionalPath } = queryDescription.withExistentialCondition(condition.exists, path);
443
+ const { queryDescription: queryDescriptionConditional } = this.addEdges(queryDescriptionWithExistential, given, start, knownFacts, conditionalPath, condition.matches);
444
+ // If the negative existential condition is not satisfiable, then
445
+ // that means that the condition will always be true.
446
+ // We can therefore skip the branch for the negative existential condition.
447
+ if (queryDescriptionConditional.isSatisfiable()) {
448
+ queryDescription = queryDescriptionConditional;
427
449
  }
428
450
  }
429
451
  if (!queryDescription.isSatisfiable()) {
@@ -439,11 +461,16 @@ class ResultDescriptionBuilder {
439
461
  knownFacts
440
462
  };
441
463
  }
442
- addPathCondition(queryDescription, knownFacts, path, unknown, prefix, condition) {
464
+ addPathCondition(queryDescription, given, start, knownFacts, path, unknown, prefix, condition) {
443
465
  // If no input parameter has been allocated, allocate one now.
444
- const input = queryDescription.inputByLabel(condition.labelRight);
445
- if (input && input.factTypeParameter === 0) {
446
- queryDescription = queryDescription.withInputParameter(input.label);
466
+ if (!knownFacts.hasOwnProperty(condition.labelRight)) {
467
+ const givenIndex = given.findIndex(given => given.name === condition.labelRight);
468
+ if (givenIndex < 0) {
469
+ throw new Error(`No input parameter found for label ${condition.labelRight}`);
470
+ }
471
+ const { queryDescription: newQueryDescription, factDescription } = queryDescription.withInputParameter(given[givenIndex], (0, maps_1.ensureGetFactTypeId)(this.factTypes, start[givenIndex].type), start[givenIndex].hash, path);
472
+ queryDescription = newQueryDescription;
473
+ knownFacts = Object.assign(Object.assign({}, knownFacts), { [condition.labelRight]: factDescription });
447
474
  }
448
475
  // Determine whether we have already written the output.
449
476
  const knownFact = knownFacts[unknown.name];
@@ -475,11 +502,11 @@ class ResultDescriptionBuilder {
475
502
  }
476
503
  else {
477
504
  // If we have not written the fact, we need to write it now.
478
- const { query, factIndex: predecessorFactIndex } = queryWithParameter.withFact(role.targetType);
505
+ const { query, factIndex: predecessorFactIndex } = queryWithParameter.withFact(role.predecessorType);
479
506
  queryDescription = query.withEdge(predecessorFactIndex, factIndex, roleParameter, path);
480
507
  factIndex = predecessorFactIndex;
481
508
  }
482
- type = role.targetType;
509
+ type = role.predecessorType;
483
510
  }
484
511
  const rightType = type;
485
512
  // Walk up the left-hand side.
@@ -501,7 +528,7 @@ class ResultDescriptionBuilder {
501
528
  roleId,
502
529
  declaringType: type
503
530
  });
504
- type = role.targetType;
531
+ type = role.predecessorType;
505
532
  }
506
533
  if (type !== rightType) {
507
534
  throw new Error(`Type mismatch: ${type} is compared to ${rightType}`);
@@ -1 +1 @@
1
- {"version":3,"file":"specification-result-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-result-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specification-result-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-result-sql.ts"],"names":[],"mappings":";;;AAaA,iCAA6F;AA2B5F,CAAC;AAaF,SAAS,UAAU,CAAC,qBAAwD;IACxE,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAC1G,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,gBAAgB;IAMlB,YACqB,MAA0B,EAC1B,UAA+B,EAC/B,OAA4B,EAC5B,KAAwB,EACxB,KAAwB,EACxB,wBAA2D,EAAE;QAL7D,WAAM,GAAN,MAAM,CAAoB;QAC1B,eAAU,GAAV,UAAU,CAAqB;QAC/B,YAAO,GAAP,OAAO,CAAqB;QAC5B,UAAK,GAAL,KAAK,CAAmB;QACxB,UAAK,GAAL,KAAK,CAAmB;QACxB,0BAAqB,GAArB,qBAAqB,CAAwC;IAC/E,CAAC;IAEG,aAAa,CAAC,SAA0B;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EACjC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,CAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACrC,CAAC;IAEM,kBAAkB,CAAC,KAAY,EAAE,UAAkB,EAAE,QAAgB,EAAE,IAAc;QACxF,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,MAAM,eAAe,GAAoB;YACrC,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;SACnB,CAAC;QACF,MAAM,KAAK,GAAG;YACV,GAAG,IAAI,CAAC,KAAK;YACb,eAAe;SAClB,CAAA;QACD,MAAM,KAAK,GAAqB;YAC5B,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS;YACT,iBAAiB;YACjB,iBAAiB;SACpB,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,MAAM,MAAM,GAAG;gBACX,GAAG,IAAI,CAAC,MAAM;gBACd,KAAK;aACR,CAAC;YACF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CACzC,MAAM,EACN,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,KAAK,EACL,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,CAC7B,CAAC;YACF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;SAChD;aACI;YACD,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7F,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CACzC,IAAI,CAAC,MAAM,EACX,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,KAAK,EACL,IAAI,CAAC,KAAK,EACV,qBAAqB,CACxB,CAAC;YACF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;SAChD;IACL,CAAC;IAEM,QAAQ,CAAC,IAAY;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,CAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAEM,UAAU,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;QAC5D,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,CAC7B,CAAC;QACF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ,CAAC,oBAA4B,EAAE,kBAA0B,EAAE,aAAqB,EAAE,IAAc;QAC3G,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;YACzE,oBAAoB;YACpB,kBAAkB;YAClB,aAAa;SAChB,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,IAAI,gBAAgB,CAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,qBAAqB,CAC7B;YACD,CAAC,CAAC,IAAI,gBAAgB,CAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAC/D,CAAC;QACN,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,wBAAwB,CAAC,MAAe,EAAE,IAAc;QAC3D,MAAM,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAClJ,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,wBAAwB,CAC3B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,sBAAsB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,SAAS,iBAAiB,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;aAClL,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,aAAc,CAAC,SAAS,CAAC;QAC9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,KAAK,GAAa,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM;aAChC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,SAAS,oBAAoB,KAAK,CAAC,iBAAiB,SAAS,KAAK,CAAC,SAAS,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;aACzI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,uBAAuB,GAAG,IAAI,CAAC,qBAAqB;aACrD,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,QAAQ,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,8BAA8B,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,GAAG,CAAC;aAC1K,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO;aAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,cAAc,CAAC;aACjD,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,UAAU,OAAO,sBAAsB,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,iBAAiB,GAAG,uBAAuB,aAAa,aAAa,EAAE,CAAC;QACpK,OAAO;YACH,GAAG;YACH,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK;gBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,QAAQ,EAAE,IAAI;SACjB,CAAC;IACN,CAAC;;AA5LD,8DAA8D;AACvD,8BAAa,GAAqB,IAAI,gBAAgB,CACzD,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CACzB,CAAC;AA4LN,SAAS,qBAAqB,CAAC,qBAAwD,EAAE,KAAuB,EAAE,IAAc;IAC5H,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iCAE/C,CAAC,KACJ,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,IAC9B,CAAC;YACH,CAAC,CACJ,CAAC;KACL;SACI;QACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iCAE/C,CAAC,KACJ,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAC7F,CAAC;YACH,CAAC,CACJ,CAAC;KACL;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,qBAAwD,EAAE,IAAqB,EAAE,IAAc;IACzH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iCAE/C,CAAC,KACJ,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAC3B,CAAC;YACH,CAAC,CACJ,CAAC;KACL;SACI;QACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iCAE/C,CAAC,KACJ,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAC3F,CAAC;YACH,CAAC,CACJ,CAAC;KACL;AACL,CAAC;AAED,SAAS,4BAA4B,CAAC,qBAAwD,EAAE,MAAe,EAAE,IAAc;IAC3H,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,IAAI,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtC,qBAAqB,GAAG;YACpB,GAAG,qBAAqB;YACxB;gBACI,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,qBAAqB,EAAE,EAAE;aAC5B;SACJ,CAAC;QACF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;KACjE;SACI;QACD,MAAM,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrL,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE;gBACI,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,qBAAqB,EAAE,wBAAwB;aAClD,CAAC,CAAC;YACH,CAAC,CACJ,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;KACjE;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,kBAA+B;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACnD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;oBACjF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;aACL;iBACI;gBACD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;gBACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,kBAAkB,EAAE;oBAC/C,QAAQ,IAAI,CAAC,kBAAkB,eAAe,IAAI,CAAC,SAAS,oBAAoB,CACnF,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACnD;SACJ;aACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;gBACtC,QAAQ,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;gBAChF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;YACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,oBAAoB,EAAE;gBACjD,QAAQ,IAAI,CAAC,oBAAoB,eAAe,IAAI,CAAC,SAAS,sBAAsB,CACvF,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACrD;aACI;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,8BAA8B,CAAC,oBAAqD,EAAE,gBAA6B;IACxH,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACxD,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;aACI;YACD,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,2BAA2B,SAAS,CAAC,oBAAoB,UAAU;gBAC1F,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;YACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,kBAAkB,EAAE;gBACpD,QAAQ,SAAS,CAAC,kBAAkB,eAAe,SAAS,CAAC,SAAS,oBAAoB,CAC7F,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;SACxD;KACJ;SACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC3D,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,yBAAyB,SAAS,CAAC,kBAAkB,UAAU;YACtF,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;QACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,oBAAoB,EAAE;YACtD,QAAQ,SAAS,CAAC,oBAAoB,eAAe,SAAS,CAAC,SAAS,sBAAsB,CACjG,CAAC;QACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;KAC1D;SACI;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC9E;IACD,MAAM,SAAS,GAAa,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM;SAChD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,SAAS,oBAAoB,KAAK,CAAC,iBAAiB,SAAS,KAAK,CAAC,SAAS,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;SAC9I,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,qBAAqB;SACrE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,8BAA8B,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC;SACjH,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,8BAA8B,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;AAC7J,CAAC;AA4CD,MAAa,cAAc;IACvB,YACqB,QAA+B,EAC/B,gBAA4B,EAC5B,kBAA0B,EAC1B,oBAA2C;QAH3C,aAAQ,GAAR,QAAQ,CAAuB;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAY;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,yBAAoB,GAApB,oBAAoB,CAAuB;IAC5D,CAAC;IAEE,aAAa;QAChB,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACzD,YAAY,CAAC,IAAI,CAAC,iBACd,IAAI,EAAE,mBAAmB,CAAC,IAAI,IAC3B,mBAAmB,CAAC,cAAc,CAAC,aAAa,EAAE,EACvD,CAAC,CAAC;SACP;QACD,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY;SACf,CAAC;IACN,CAAC;IAEM,OAAO,CACV,UAAyB;QAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;SACb;aACI;YACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAClC;IACL,CAAC;IAEO,eAAe,CACnB,UAAyB;QAEzB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,OAAO,EAAE,CAAC;SACb;QAED,yCAAyC;QACzC,MAAM,iBAAiB,GAAwB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,KAAK,MAAM,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACzD,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CACpE,cAAc,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,EAAE;gBACjB,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC7F,MAAM,IAAI,KAAK,CAAC,oBAAoB,mBAAmB,CAAC,IAAI,kBAAkB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/G;YACD,MAAM,eAAe,GAAG,mBAAmB,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAE3F,wBAAwB;YACxB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;gBAC9C,IAAI,OAAO,GAAU,EAAE,CAAC;gBACxB,IAAI,KAAK,GAAG,eAAe,CAAC,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE;oBAC5G,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;oBACzC,KAAK,EAAE,CAAC;iBACX;gBACD,gBAAgB,CAAC,MAAM,mCAChB,gBAAgB,CAAC,MAAM,KAC1B,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,GACtC,CAAC;aACL;SACJ;QAED,gDAAgD;QAChD,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,IAAI,aAAa,GAAa,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7F,IAAI,OAAO,GAAU,CAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;QACrD,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACvD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrF,IAAI,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE;gBAC5C,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACzC;iBACI;gBACD,YAAY,CAAC,IAAI,CAAC;oBACd,aAAa;oBACb,OAAO;iBACV,CAAC,CAAC;gBACH,aAAa,GAAG,iBAAiB,CAAC;gBAClC,OAAO,GAAG,CAAE,gBAAgB,CAAC,MAAM,CAAE,CAAC;aACzC;SACJ;QACD,YAAY,CAAC,IAAI,CAAC;YACd,aAAa;YACb,OAAO;SACV,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,YAAY,CAAC,GAAQ;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,YAAY,CAAC,GAAQ;QACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE;YACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;SACtD;aACI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,WAAW,EAAE;YACjD,IACI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAC7C,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;qBACtB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;qBAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,iCACjB,GAAG,KACN,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,IAChD,EAAE,EAAE,CAAC,CAAA;aACd;iBACI;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,iCAC5D,GAAG,KACN,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,IACrD,EAAE,EAAE,CAAC,CAAC;aACX;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,UAA+B,EAAE,GAAQ;QAC1D,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7D;aACI,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,UAAU,CAAC,UAA2B,EAAE,GAAQ;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEO,QAAQ,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,6BAA6B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzH;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AArJD,wCAqJC;AAOD,MAAM,wBAAwB;IAC1B,YACY,SAAsB,EACtB,OAAgB;QADhB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAS;IACxB,CAAC;IAEL,gBAAgB,CAAC,KAAsB,EAAE,aAA4B;QACjE,oEAAoE;QACpE,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,MAAM,0CAA0C,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACtI;QACD,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC/C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,sCAAsC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;aAC5I;SACJ;QAED,kDAAkD;QAClD,2CAA2C;QAC3C,4DAA4D;QAC5D,4DAA4D;QAC5D,MAAM,uBAAuB,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtJ,CAAC;IAEO,uBAAuB,CAAC,gBAAkC,EAAE,KAAc,EAAE,KAAsB,EAAE,OAAgB,EAAE,UAAsB,EAAE,UAAuB,EAAE,IAAc;QACzL,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE;YACnC,mDAAmD;YACnD,OAAO;gBACH,gBAAgB;gBAChB,gBAAgB,EAAE;oBACd,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,EAAE;iBACjB;gBACD,uBAAuB,EAAE,EAAE;aAC9B,CAAA;SACJ;QACD,MAAM,uBAAuB,GAA6B,EAAE,CAAC;QAC7D,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;YACjC,MAAM,wBAAwB,GAAG,UAAU,CAAC,UAAU;iBACjD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,eAAe,CAAmD,CAAC;YACjH,MAAM,mBAAmB,GAAG,UAAU,CAAC,UAAU;iBAC5C,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAA8C,CAAC;YAClI,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE;gBAC1C,MAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC7I,uBAAuB,CAAC,IAAI,iBACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IACb,sBAAsB,EAC3B,CAAC;aACN;YACD,OAAO;gBACH,gBAAgB;gBAChB,gBAAgB,EAAE;oBACd,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,mBAAmB;iBAClC;gBACD,uBAAuB;aAC1B,CAAC;SACL;aACI;YACD,OAAO;gBACH,gBAAgB;gBAChB,gBAAgB,EAAE,UAAU;gBAC5B,uBAAuB,EAAE,EAAE;aAC9B,CAAA;SACJ;IACL,CAAC;IAEO,QAAQ,CAAC,gBAAkC,EAAE,KAAc,EAAE,KAAsB,EAAE,UAAuB,EAAE,IAAc,EAAE,OAAgB;QAClJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YACzB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;gBACtC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;oBAC3B,CAAC,EAAC,gBAAgB,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;iBAC5I;qBACI,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE;oBACvC,uEAAuE;oBACvE,8EAA8E;oBAC9E,+EAA+E;oBAC/E,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5I,MAAM,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;oBAEvK,iEAAiE;oBACjE,qDAAqD;oBACrD,2EAA2E;oBAC3E,IAAI,2BAA2B,CAAC,aAAa,EAAE,EAAE;wBAC7C,gBAAgB,GAAG,2BAA2B,CAAC;qBAClD;iBACJ;gBACD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE;oBACnC,MAAM;iBACT;aACJ;YACD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE;gBACnC,MAAM;aACT;SACJ;QACD,OAAO;YACH,gBAAgB;YAChB,UAAU;SACb,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,gBAAkC,EAAE,KAAc,EAAE,KAAsB,EAAE,UAAuB,EAAE,IAAc,EAAE,OAAc,EAAE,MAAc,EAAE,SAAwB;QAClM,8DAA8D;QAC9D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YAClD,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,UAAU,GAAG,CAAC,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;aACjF;YACD,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC,kBAAkB,CAClG,KAAK,CAAC,UAAU,CAAC,EACjB,IAAA,0BAAmB,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAC3D,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EACtB,IAAI,CACP,CAAC;YACF,gBAAgB,GAAG,mBAAmB,CAAC;YACvC,UAAU,mCACH,UAAU,KACb,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,eAAe,GAC1C,CAAC;SACL;QAED,wDAAwD;QACxD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAE3E,+BAA+B;QAC/B,gEAAgE;QAChE,IAAI,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,CAAC,UAAU,6BAA6B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnH;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YACpD,6EAA6E;YAC7E,qCAAqC;YACrC,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;aAC3E;YACD,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;aAC3E;YAED,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5G,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,SAAS,EAAE;gBAClC,oEAAoE;gBACpE,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBACpG,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;aACnC;iBACI;gBACD,4DAA4D;gBAC5D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACrG,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBACxF,SAAS,GAAG,oBAAoB,CAAC;aACpC;YACD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;SAC/B;QAED,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,8BAA8B;QAC9B,iEAAiE;QACjE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACpB,MAAM,QAAQ,GAGR,EAAE,CAAC;QACT,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;YACpC,6EAA6E;YAC7E,qCAAqC;YACrC,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;aAC3E;YACD,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;aAC3E;YAED,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,aAAa,EAAE,IAAI;aACtB,CAAC,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;SAC/B;QAED,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,mBAAmB,SAAS,EAAE,CAAC,CAAC;SACzE;QAED,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5G,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,SAAS,EAAE;gBAChE,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBACpG,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;aACnC;iBACI;gBACD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC3G,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBAC9F,SAAS,GAAG,kBAAkB,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,CAAC,SAAS,EAAE;YACZ,UAAU,mCAAQ,UAAU,KAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAE,CAAC;YAClF,mDAAmD;YACnD,0EAA0E;YAC1E,qDAAqD;YACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnB,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aAClG;SACJ;QACD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;CACJ;AAED,SAAS,QAAQ,CAAC,CAAW,EAAE,CAAW;IACtC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAsB,EAAE,aAA4B,EAAE,SAAsB,EAAE,OAAgB;IACrI,MAAM,kBAAkB,GAAG,IAAI,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAE9E,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE;QAC/C,OAAO,IAAI,CAAC;KACf;IACD,OAAO,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AARD,gEAQC;AAED,SAAS,oBAAoB,CAAC,WAA8B,EAAE,kBAA0B;IACpF,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;IACvE,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IACtD,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB;SAC3D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;SACvD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC3F,CAAC,CAAC,CAAC;IACR,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;AACpG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"specification-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-sql.ts"],"names":[],"mappings":";;;AAAA,mCASgB;AAEhB,iCAAwE;AAYvE,CAAC;AAuBF,MAAM,gBAAgB;IAClB,YACqB,MAA0B,EAC1B,UAA+B,EAC/B,OAA4B,EAC5B,KAAwB,EACxB,sBAAuD,EAAE;QAJzD,WAAM,GAAN,MAAM,CAAoB;QAC1B,eAAU,GAAV,UAAU,CAAqB;QAC/B,YAAO,GAAP,OAAO,CAAqB;QAC5B,UAAK,GAAL,KAAK,CAAmB;QACxB,wBAAmB,GAAnB,mBAAmB,CAAsC;IAC3E,CAAC;IAEJ,gBAAgB,CAAC,QAAgB,EAAE,KAAa;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;aACtB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;aACrE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,UAAU,CAAC;aAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;QAC7F,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,KAAK,GAAa,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM;aAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC;aAC9C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,SAAS,oBAAoB,KAAK,CAAC,iBAAiB,SAAS,KAAK,CAAC,SAAS,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;aACzI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB;aACjD,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,4BAA4B,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,GAAG,CAAC;aAC1H,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,iBAAiB,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,UAAU,MAAM,gBAAgB,OAAO,4CAA4C,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,iBAAiB,GAAG,qBAAqB,mBAAmB,OAAO,iBAAiB,iBAAiB,iCAAiC,cAAc,EAAE,CAAC;QAC/R,MAAM,aAAa,GAAa,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO;YACH,GAAG;YACH,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,QAAQ,EAAE,IAAI;SACjB,CAAC;IACN,CAAC;CACJ;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,kBAA+B;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACnD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;oBACjF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;aACL;iBACI;gBACD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;gBACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,kBAAkB,EAAE;oBAC/C,QAAQ,IAAI,CAAC,kBAAkB,eAAe,IAAI,CAAC,SAAS,oBAAoB,CACnF,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACnD;SACJ;aACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;gBACtC,QAAQ,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;gBAChF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;YACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,oBAAoB,EAAE;gBACjD,QAAQ,IAAI,CAAC,oBAAoB,eAAe,IAAI,CAAC,SAAS,sBAAsB,CACvF,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACrD;aACI;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,4BAA4B,CAAC,oBAAmD,EAAE,gBAA6B;IACpH,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACxD,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;aACI;YACD,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,2BAA2B,SAAS,CAAC,oBAAoB,UAAU;gBAC1F,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;YACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,kBAAkB,EAAE;gBACpD,QAAQ,SAAS,CAAC,kBAAkB,eAAe,SAAS,CAAC,SAAS,oBAAoB,CAC7F,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;SACxD;KACJ;SACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC3D,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,yBAAyB,SAAS,CAAC,kBAAkB,UAAU;YACtF,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;QACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,oBAAoB,EAAE;YACtD,QAAQ,SAAS,CAAC,oBAAoB,eAAe,SAAS,CAAC,SAAS,sBAAsB,CACjG,CAAC;QACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;KAC1D;SACI;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC9E;IACD,MAAM,SAAS,GAAa,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,8BAA8B,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QAChE,OAAO,EAAE,CAAC;KACb;SACI;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACxD;AACL,CAAC;AAED,MAAM,kBAAkB;IACpB,YACY,SAAsB,EACtB,OAAgB;QADhB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAS;IACxB,CAAC;IAEL,aAAa,CAAC,IAAU,EAAE,KAA4B;QAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpF,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,mBAAmB,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,mBAAmB,EAAE;gBACtB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC9D,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,qBAAqB,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,qBAAqB,EAAE;gBACxB,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,IAAU;QACvB,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,SAAS,YAAY,CAAC,KAAsB;YACxC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,sCAAsC;QACtC,MAAM,MAAM,GAAuB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACvD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CACxD,CAAC;QAEF,0CAA0C;QAC1C,MAAM,KAAK,GAAsB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CACtD,CAAC;QAEF,iDAAiD;QACjD,MAAM,8BAA8B,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAC5C,CAAC;QACF,MAAM,mBAAmB,GAAoC,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACxG,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CACzE,CAAC;QAEF,MAAM,OAAO,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC3D,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAC5C,CAAC;QAEF,OAAO,IAAI,gBAAgB,CACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,KAAK,EACL,mBAAmB,CACtB,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,IAAU,EAAE,KAA2B,EAAE,YAAgD;QACnH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;SACzD;QAED,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;QAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACH,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,iBAAiB;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,iBAAiB;SACpB,CAAC;IACN,CAAC;IAEO,oBAAoB,CAAC,IAAU,EAAE,IAAyB,EAAE,YAAgD;QAChH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;SACjE;QAED,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;QAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxE;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAwB;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,aAAa;SAChB,CAAC;IACN,CAAC;IAEO,sBAAsB,CAAC,IAAU,EAAE,MAA6B;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;SAC1D;QAED,OAA0B;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC;IACN,CAAC;IAEO,kCAAkC,CAAC,IAAU,EAAE,SAA4C,EAAE,YAAgD;QACjJ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CACtD,CAAC;QACF,MAAM,mBAAmB,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACtE,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CACzE,CAAC;QAEF,OAAO;YACH,KAAK;YACL,mBAAmB;SACtB,CAAA;IACL,CAAC;CACJ;AAED,SAAgB,oBAAoB,CAAC,KAAsB,EAAE,SAAmB,EAAE,KAAa,EAAE,aAA4B,EAAE,SAA8B,EAAE,OAAyC;IACpM,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI;QACJ,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAC,CAAC;IACJ,MAAM,4BAA4B,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC7D,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACrD,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC;AAfD,oDAeC;AAED,SAAgB,WAAW,CAAC,IAAU,EAAE,QAAgB,EAAE,KAAa,EAAE,SAA8B,EAAE,OAAyC;IAC9I,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;QACrD,OAAO,IAAI,CAAC;KACf;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACf,CAAC;AARD,kCAQC"}
1
+ {"version":3,"file":"specification-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-sql.ts"],"names":[],"mappings":";;;AAAA,mCASgB;AAEhB,iCAAwE;AAYvE,CAAC;AAuBF,MAAM,gBAAgB;IAClB,YACqB,MAA0B,EAC1B,UAA+B,EAC/B,OAA4B,EAC5B,KAAwB,EACxB,sBAAuD,EAAE;QAJzD,WAAM,GAAN,MAAM,CAAoB;QAC1B,eAAU,GAAV,UAAU,CAAqB;QAC/B,YAAO,GAAP,OAAO,CAAqB;QAC5B,UAAK,GAAL,KAAK,CAAmB;QACxB,wBAAmB,GAAnB,mBAAmB,CAAsC;IAC3E,CAAC;IAEJ,gBAAgB,CAAC,QAAgB,EAAE,KAAa;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;aACtB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;aACrE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,UAAU,CAAC;aAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,aAAc,CAAC,SAAS,CAAC;QAC9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,KAAK,GAAa,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM;aAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC;aAC9C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,SAAS,oBAAoB,KAAK,CAAC,iBAAiB,SAAS,KAAK,CAAC,SAAS,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;aACzI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB;aACjD,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,4BAA4B,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,GAAG,CAAC;aAC1H,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,iBAAiB,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,UAAU,MAAM,gBAAgB,OAAO,4CAA4C,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,iBAAiB,GAAG,qBAAqB,mBAAmB,OAAO,iBAAiB,iBAAiB,iCAAiC,cAAc,EAAE,CAAC;QAC/R,MAAM,aAAa,GAAa,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO;YACH,GAAG;YACH,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,QAAQ,EAAE,IAAI;SACjB,CAAC;IACN,CAAC;CACJ;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,kBAA+B;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACnD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;oBACjF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;aACL;iBACI;gBACD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;oBACtC,QAAQ,IAAI,CAAC,SAAS,2BAA2B,IAAI,CAAC,oBAAoB,UAAU;oBACpF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;gBACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,kBAAkB,EAAE;oBAC/C,QAAQ,IAAI,CAAC,kBAAkB,eAAe,IAAI,CAAC,SAAS,oBAAoB,CACnF,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACnD;SACJ;aACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtD,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,SAAS,EAAE;gBACtC,QAAQ,IAAI,CAAC,SAAS,yBAAyB,IAAI,CAAC,kBAAkB,UAAU;gBAChF,SAAS,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,aAAa,EAAE,CAC7D,CAAC;YACF,KAAK,CAAC,IAAI,CACN,sBAAsB,IAAI,CAAC,oBAAoB,EAAE;gBACjD,QAAQ,IAAI,CAAC,oBAAoB,eAAe,IAAI,CAAC,SAAS,sBAAsB,CACvF,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACrD;aACI;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,4BAA4B,CAAC,oBAAmD,EAAE,gBAA6B;IACpH,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACxD,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAC1C;aACI;YACD,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,2BAA2B,SAAS,CAAC,oBAAoB,UAAU;gBAC1F,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;YACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,kBAAkB,EAAE;gBACpD,QAAQ,SAAS,CAAC,kBAAkB,eAAe,SAAS,CAAC,SAAS,oBAAoB,CAC7F,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;SACxD;KACJ;SACI,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC3D,WAAW,CAAC,IAAI,CACZ,IAAI,SAAS,CAAC,SAAS,yBAAyB,SAAS,CAAC,kBAAkB,UAAU;YACtF,SAAS,SAAS,CAAC,SAAS,eAAe,SAAS,CAAC,aAAa,EAAE,CACvE,CAAC;QACF,SAAS,CAAC,IAAI,CACV,sBAAsB,SAAS,CAAC,oBAAoB,EAAE;YACtD,QAAQ,SAAS,CAAC,oBAAoB,eAAe,SAAS,CAAC,SAAS,sBAAsB,CACjG,CAAC;QACF,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;KAC1D;SACI;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC9E;IACD,MAAM,SAAS,GAAa,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,8BAA8B,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QAChE,OAAO,EAAE,CAAC;KACb;SACI;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACxD;AACL,CAAC;AAED,MAAM,kBAAkB;IACpB,YACY,SAAsB,EACtB,OAAgB;QADhB,cAAS,GAAT,SAAS,CAAa;QACtB,YAAO,GAAP,OAAO,CAAS;IACxB,CAAC;IAEL,aAAa,CAAC,IAAU,EAAE,KAA4B;QAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpF,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,mBAAmB,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,mBAAmB,EAAE;gBACtB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC9D,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,qBAAqB,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,qBAAqB,EAAE;gBACxB,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,IAAU;QACvB,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,SAAS,YAAY,CAAC,KAAsB;YACxC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,sCAAsC;QACtC,MAAM,MAAM,GAAuB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACvD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CACxD,CAAC;QAEF,0CAA0C;QAC1C,MAAM,KAAK,GAAsB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CACtD,CAAC;QAEF,iDAAiD;QACjD,MAAM,8BAA8B,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAC5C,CAAC;QACF,MAAM,mBAAmB,GAAoC,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACxG,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CACzE,CAAC;QAEF,MAAM,OAAO,GAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC3D,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAC5C,CAAC;QAEF,OAAO,IAAI,gBAAgB,CACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,KAAK,EACL,mBAAmB,CACtB,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,IAAU,EAAE,KAA2B,EAAE,YAAgD;QACnH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;SACzD;QAED,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;QAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACH,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,iBAAiB;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,iBAAiB;SACpB,CAAC;IACN,CAAC;IAEO,oBAAoB,CAAC,IAAU,EAAE,IAAyB,EAAE,YAAgD;QAChH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;SACjE;QAED,MAAM,UAAU,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;QAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxE;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAwB;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,aAAa;SAChB,CAAC;IACN,CAAC;IAEO,sBAAsB,CAAC,IAAU,EAAE,MAA6B;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;SAC1D;QAED,OAA0B;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC;IACN,CAAC;IAEO,kCAAkC,CAAC,IAAU,EAAE,SAA4C,EAAE,YAAgD;QACjJ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACrC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CACtD,CAAC;QACF,MAAM,mBAAmB,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACtE,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CACzE,CAAC;QAEF,OAAO;YACH,KAAK;YACL,mBAAmB;SACtB,CAAA;IACL,CAAC;CACJ;AAED,SAAgB,oBAAoB,CAAC,KAAsB,EAAE,SAAmB,EAAE,KAAa,EAAE,aAA4B,EAAE,SAA8B,EAAE,OAAyC;IACpM,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI;QACJ,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAC,CAAC;IACJ,MAAM,4BAA4B,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC7D,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACrD,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC;AAfD,oDAeC;AAED,SAAgB,WAAW,CAAC,IAAU,EAAE,QAAgB,EAAE,KAAa,EAAE,SAA8B,EAAE,OAAyC;IAC9I,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;QACrD,OAAO,IAAI,CAAC;KACf;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACf,CAAC;AARD,kCAQC"}
@@ -7,4 +7,4 @@ export declare type SqlQuery = {
7
7
  pathLength: number;
8
8
  factTypeNames: string[];
9
9
  };
10
- export declare function sqlFromSteps(start: FactReference, steps: Step[], factTypes: FactTypeMap, roleMap: RoleMap): SqlQuery;
10
+ export declare function sqlFromSteps(start: FactReference, steps: Step[], factTypes: FactTypeMap, roleMap: RoleMap): SqlQuery | null;