flowquery 1.0.85 → 1.0.87

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 (145) hide show
  1. package/README.md +101 -0
  2. package/dist/compute/flowquery.d.ts +18 -0
  3. package/dist/compute/flowquery.d.ts.map +1 -1
  4. package/dist/compute/flowquery.js +26 -0
  5. package/dist/compute/flowquery.js.map +1 -1
  6. package/dist/compute/runner.d.ts +29 -0
  7. package/dist/compute/runner.d.ts.map +1 -1
  8. package/dist/compute/runner.js +111 -3
  9. package/dist/compute/runner.js.map +1 -1
  10. package/dist/extensibility.d.ts +4 -1
  11. package/dist/extensibility.d.ts.map +1 -1
  12. package/dist/extensibility.js +14 -1
  13. package/dist/extensibility.js.map +1 -1
  14. package/dist/flowquery.min.js +1 -1
  15. package/dist/graph/data.d.ts +1 -0
  16. package/dist/graph/data.d.ts.map +1 -1
  17. package/dist/graph/data.js +3 -0
  18. package/dist/graph/data.js.map +1 -1
  19. package/dist/graph/data_cache.d.ts +3 -1
  20. package/dist/graph/data_cache.d.ts.map +1 -1
  21. package/dist/graph/data_cache.js +5 -4
  22. package/dist/graph/data_cache.js.map +1 -1
  23. package/dist/graph/data_resolver.d.ts +13 -0
  24. package/dist/graph/data_resolver.d.ts.map +1 -1
  25. package/dist/graph/data_resolver.js +52 -0
  26. package/dist/graph/data_resolver.js.map +1 -1
  27. package/dist/graph/database.d.ts +19 -0
  28. package/dist/graph/database.d.ts.map +1 -1
  29. package/dist/graph/database.js +76 -0
  30. package/dist/graph/database.js.map +1 -1
  31. package/dist/graph/node.d.ts +21 -0
  32. package/dist/graph/node.d.ts.map +1 -1
  33. package/dist/graph/node.js +147 -0
  34. package/dist/graph/node.js.map +1 -1
  35. package/dist/graph/pattern.d.ts +19 -1
  36. package/dist/graph/pattern.d.ts.map +1 -1
  37. package/dist/graph/pattern.js +279 -1
  38. package/dist/graph/pattern.js.map +1 -1
  39. package/dist/graph/pattern_expression.d.ts +3 -1
  40. package/dist/graph/pattern_expression.d.ts.map +1 -1
  41. package/dist/graph/pattern_expression.js +8 -3
  42. package/dist/graph/pattern_expression.js.map +1 -1
  43. package/dist/graph/patterns.d.ts +2 -1
  44. package/dist/graph/patterns.d.ts.map +1 -1
  45. package/dist/graph/patterns.js +3 -3
  46. package/dist/graph/patterns.js.map +1 -1
  47. package/dist/graph/physical_node.d.ts +10 -1
  48. package/dist/graph/physical_node.d.ts.map +1 -1
  49. package/dist/graph/physical_node.js +19 -2
  50. package/dist/graph/physical_node.js.map +1 -1
  51. package/dist/graph/physical_relationship.d.ts +10 -1
  52. package/dist/graph/physical_relationship.d.ts.map +1 -1
  53. package/dist/graph/physical_relationship.js +21 -2
  54. package/dist/graph/physical_relationship.js.map +1 -1
  55. package/dist/graph/relationship.d.ts +25 -1
  56. package/dist/graph/relationship.d.ts.map +1 -1
  57. package/dist/graph/relationship.js +135 -0
  58. package/dist/graph/relationship.js.map +1 -1
  59. package/dist/graph/relationship_match_collector.d.ts +1 -1
  60. package/dist/graph/relationship_match_collector.d.ts.map +1 -1
  61. package/dist/graph/relationship_match_collector.js +29 -3
  62. package/dist/graph/relationship_match_collector.js.map +1 -1
  63. package/dist/graph/relationship_reference.d.ts.map +1 -1
  64. package/dist/graph/relationship_reference.js +1 -2
  65. package/dist/graph/relationship_reference.js.map +1 -1
  66. package/dist/graph/source_access.d.ts +107 -0
  67. package/dist/graph/source_access.d.ts.map +1 -0
  68. package/dist/graph/source_access.js +726 -0
  69. package/dist/graph/source_access.js.map +1 -0
  70. package/dist/graph/source_context.d.ts +101 -0
  71. package/dist/graph/source_context.d.ts.map +1 -0
  72. package/dist/graph/source_context.js +392 -0
  73. package/dist/graph/source_context.js.map +1 -0
  74. package/dist/graph/source_provider.d.ts +263 -0
  75. package/dist/graph/source_provider.d.ts.map +1 -0
  76. package/dist/graph/source_provider.js +306 -0
  77. package/dist/graph/source_provider.js.map +1 -0
  78. package/dist/graph/statement_source.d.ts +27 -0
  79. package/dist/graph/statement_source.d.ts.map +1 -0
  80. package/dist/graph/statement_source.js +117 -0
  81. package/dist/graph/statement_source.js.map +1 -0
  82. package/dist/graph/virtual_statement.d.ts +19 -1
  83. package/dist/graph/virtual_statement.d.ts.map +1 -1
  84. package/dist/graph/virtual_statement.js +197 -5
  85. package/dist/graph/virtual_statement.js.map +1 -1
  86. package/dist/index.browser.d.ts +3 -0
  87. package/dist/index.browser.d.ts.map +1 -1
  88. package/dist/index.browser.js +14 -0
  89. package/dist/index.browser.js.map +1 -1
  90. package/dist/index.node.d.ts +3 -0
  91. package/dist/index.node.d.ts.map +1 -1
  92. package/dist/index.node.js +14 -1
  93. package/dist/index.node.js.map +1 -1
  94. package/dist/parsing/expressions/expression.d.ts +6 -0
  95. package/dist/parsing/expressions/expression.d.ts.map +1 -1
  96. package/dist/parsing/expressions/expression.js +30 -3
  97. package/dist/parsing/expressions/expression.js.map +1 -1
  98. package/dist/parsing/operations/aggregated_return.d.ts +2 -0
  99. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
  100. package/dist/parsing/operations/aggregated_return.js +6 -0
  101. package/dist/parsing/operations/aggregated_return.js.map +1 -1
  102. package/dist/parsing/operations/aggregated_with.d.ts +2 -0
  103. package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
  104. package/dist/parsing/operations/aggregated_with.js +6 -0
  105. package/dist/parsing/operations/aggregated_with.js.map +1 -1
  106. package/dist/parsing/operations/create_node.d.ts +5 -1
  107. package/dist/parsing/operations/create_node.d.ts.map +1 -1
  108. package/dist/parsing/operations/create_node.js +20 -1
  109. package/dist/parsing/operations/create_node.js.map +1 -1
  110. package/dist/parsing/operations/create_relationship.d.ts +5 -1
  111. package/dist/parsing/operations/create_relationship.d.ts.map +1 -1
  112. package/dist/parsing/operations/create_relationship.js +21 -1
  113. package/dist/parsing/operations/create_relationship.js.map +1 -1
  114. package/dist/parsing/operations/limit.d.ts +1 -0
  115. package/dist/parsing/operations/limit.d.ts.map +1 -1
  116. package/dist/parsing/operations/limit.js +3 -0
  117. package/dist/parsing/operations/limit.js.map +1 -1
  118. package/dist/parsing/operations/match.d.ts +16 -0
  119. package/dist/parsing/operations/match.d.ts.map +1 -1
  120. package/dist/parsing/operations/match.js +104 -8
  121. package/dist/parsing/operations/match.js.map +1 -1
  122. package/dist/parsing/operations/operation.d.ts +6 -0
  123. package/dist/parsing/operations/operation.d.ts.map +1 -1
  124. package/dist/parsing/operations/operation.js +8 -0
  125. package/dist/parsing/operations/operation.js.map +1 -1
  126. package/dist/parsing/operations/return.d.ts +10 -0
  127. package/dist/parsing/operations/return.d.ts.map +1 -1
  128. package/dist/parsing/operations/return.js +23 -0
  129. package/dist/parsing/operations/return.js.map +1 -1
  130. package/dist/parsing/operations/unwind.d.ts +1 -0
  131. package/dist/parsing/operations/unwind.d.ts.map +1 -1
  132. package/dist/parsing/operations/unwind.js +9 -2
  133. package/dist/parsing/operations/unwind.js.map +1 -1
  134. package/dist/parsing/operations/where.d.ts +1 -0
  135. package/dist/parsing/operations/where.d.ts.map +1 -1
  136. package/dist/parsing/operations/where.js +4 -0
  137. package/dist/parsing/operations/where.js.map +1 -1
  138. package/dist/parsing/operations/with.d.ts +1 -0
  139. package/dist/parsing/operations/with.d.ts.map +1 -1
  140. package/dist/parsing/operations/with.js +4 -0
  141. package/dist/parsing/operations/with.js.map +1 -1
  142. package/dist/parsing/parser.d.ts.map +1 -1
  143. package/dist/parsing/parser.js +20 -2
  144. package/dist/parsing/parser.js.map +1 -1
  145. package/package.json +1 -1
@@ -22,10 +22,20 @@ declare class Return extends Projection {
22
22
  protected _provenanceSources: ProvenanceSource[] | null;
23
23
  protected _provenanceSink: RowProvenance[] | null;
24
24
  protected _provenanceRows: RowProvenance[];
25
+ protected _rowSink: ((row: Record<string, any>) => Promise<void> | void) | null;
25
26
  set where(where: Where);
26
27
  get where(): boolean;
27
28
  set limit(limit: Limit);
28
29
  set orderBy(orderBy: OrderBy);
30
+ get saturated(): boolean;
31
+ /** @internal Whether rows can be handed to a sink as they are produced. */
32
+ get supportsRowSink(): boolean;
33
+ /**
34
+ * @internal Deliver each projected row to `sink` instead of buffering
35
+ * it (used to stream statement-backed sources). Pass `null` to restore
36
+ * buffering.
37
+ */
38
+ setRowSink(sink: ((row: Record<string, any>) => Promise<void> | void) | null): void;
29
39
  /**
30
40
  * Direct the runner-owned sink that receives the post-sorted,
31
41
  * post-limited provenance rows. Once a sink is registered, every
@@ -1 +1 @@
1
- {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,UAAU,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;IACzD,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,CAAM;IAChD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAElC;IACD;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI;IAGpD;;;;;;;OAOG;IACI,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAM7C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,UAAU;IAS9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAG1C;IACY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAmBpB,yEAAyE;IACzE,IAAW,cAAc,IAAI,aAAa,EAAE,CAE3C;CACJ;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,UAAU,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;IACzD,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,CAAM;IAChD,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAQ;IACvF,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAElC;IACD,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,2EAA2E;IAC3E,IAAW,eAAe,IAAI,OAAO,CAEpC;IACD;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAG1F;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI;IAGpD;;;;;;;OAOG;IACI,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAM7C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,UAAU;IAS9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAG1C;IACY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAmBpB,yEAAyE;IACzE,IAAW,cAAc,IAAI,aAAa,EAAE,CAE3C;CACJ;AAED,eAAe,MAAM,CAAC"}
@@ -35,6 +35,7 @@ class Return extends projection_1.default {
35
35
  this._provenanceSources = null;
36
36
  this._provenanceSink = null;
37
37
  this._provenanceRows = [];
38
+ this._rowSink = null;
38
39
  }
39
40
  set where(where) {
40
41
  this._where = where;
@@ -51,6 +52,21 @@ class Return extends projection_1.default {
51
52
  set orderBy(orderBy) {
52
53
  this._orderBy = orderBy;
53
54
  }
55
+ get saturated() {
56
+ return this._orderBy === null && this._limit !== null && this._limit.isLimitReached;
57
+ }
58
+ /** @internal Whether rows can be handed to a sink as they are produced. */
59
+ get supportsRowSink() {
60
+ return this._orderBy === null && this._provenanceSink === null;
61
+ }
62
+ /**
63
+ * @internal Deliver each projected row to `sink` instead of buffering
64
+ * it (used to stream statement-backed sources). Pass `null` to restore
65
+ * buffering.
66
+ */
67
+ setRowSink(sink) {
68
+ this._rowSink = sink;
69
+ }
54
70
  /**
55
71
  * Direct the runner-owned sink that receives the post-sorted,
56
72
  * post-limited provenance rows. Once a sink is registered, every
@@ -102,6 +118,13 @@ class Return extends projection_1.default {
102
118
  if (this._orderBy !== null) {
103
119
  this._orderBy.captureSortKeys();
104
120
  }
121
+ if (this._rowSink !== null) {
122
+ if (this._limit !== null) {
123
+ this._limit.increment();
124
+ }
125
+ yield this._rowSink(Object.fromEntries(record));
126
+ return;
127
+ }
105
128
  this._results.push(Object.fromEntries(record));
106
129
  if (this._provenanceSink !== null) {
107
130
  const segment = this._snapshotProvenance();
@@ -1 +1 @@
1
- {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ declare class Unwind extends Operation {
6
6
  get expression(): Expression;
7
7
  get as(): string;
8
8
  run(): Promise<void>;
9
+ get saturated(): boolean;
9
10
  value(): any;
10
11
  }
11
12
  export default Unwind;
@@ -1 +1 @@
1
- {"version":3,"file":"unwind.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/unwind.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,MAAO,SAAQ,SAAS;IAC1B,OAAO,CAAC,MAAM,CAAM;gBACR,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACD,IAAW,EAAE,IAAI,MAAM,CAEtB;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAe1B,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"unwind.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/unwind.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,MAAO,SAAQ,SAAS;IAC1B,OAAO,CAAC,MAAM,CAAM;gBACR,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACD,IAAW,EAAE,IAAI,MAAM,CAEtB;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC,IAAW,SAAS,IAAI,OAAO,CAE9B;IACM,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,MAAM,CAAC"}
@@ -26,7 +26,7 @@ class Unwind extends operation_1.default {
26
26
  }
27
27
  run() {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
- var _a, _b, _c;
29
+ var _a, _b, _c, _d;
30
30
  const expression = this.expression.value();
31
31
  if (expression === null || expression === undefined) {
32
32
  (_a = this.next) === null || _a === void 0 ? void 0 : _a.reset();
@@ -38,10 +38,17 @@ class Unwind extends operation_1.default {
38
38
  for (let i = 0; i < expression.length; i++) {
39
39
  this._value = expression[i];
40
40
  yield ((_b = this.next) === null || _b === void 0 ? void 0 : _b.run());
41
+ if ((_c = this.next) === null || _c === void 0 ? void 0 : _c.saturated) {
42
+ break;
43
+ }
41
44
  }
42
- (_c = this.next) === null || _c === void 0 ? void 0 : _c.reset();
45
+ (_d = this.next) === null || _d === void 0 ? void 0 : _d.reset();
43
46
  });
44
47
  }
48
+ get saturated() {
49
+ var _a, _b;
50
+ return (_b = (_a = this.next) === null || _a === void 0 ? void 0 : _a.saturated) !== null && _b !== void 0 ? _b : false;
51
+ }
45
52
  value() {
46
53
  return this._value;
47
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unwind.js","sourceRoot":"","sources":["../../../src/parsing/operations/unwind.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,4DAAoC;AAEpC,MAAM,MAAO,SAAQ,mBAAS;IAE1B,YAAY,UAAsB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;IAC1C,CAAC;IACD,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAA0B,CAAC;IACvD,CAAC;IACY,GAAG;;;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAC;gBACnB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;YAC3B,CAAC;YACD,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAC;QACvB,CAAC;KAAA;IACM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"unwind.js","sourceRoot":"","sources":["../../../src/parsing/operations/unwind.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,4DAAoC;AAEpC,MAAM,MAAO,SAAQ,mBAAS;IAE1B,YAAY,UAAsB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;IAC1C,CAAC;IACD,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAA0B,CAAC;IACvD,CAAC;IACY,GAAG;;;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAC;gBACnB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;gBACvB,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAE,CAAC;oBACvB,MAAM;gBACV,CAAC;YACL,CAAC;YACD,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAC;QACvB,CAAC;KAAA;IACD,IAAW,SAAS;;QAChB,OAAO,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,mCAAI,KAAK,CAAC;IACzC,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
@@ -20,6 +20,7 @@ declare class Where extends Operation {
20
20
  constructor(expression: Expression);
21
21
  get expression(): Expression;
22
22
  run(): Promise<void>;
23
+ get saturated(): boolean;
23
24
  value(): any;
24
25
  }
25
26
  export default Where;
@@ -1 +1 @@
1
- {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/where.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,cAAM,KAAM,SAAQ,SAAS;IACzB;;;;OAIG;gBACS,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1B,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/where.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,cAAM,KAAM,SAAQ,SAAS;IACzB;;;;OAIG;gBACS,UAAU,EAAE,UAAU;IAIlC,IAAW,UAAU,IAAI,UAAU,CAElC;IACY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,IAAW,SAAS,IAAI,OAAO,CAE9B;IACM,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,KAAK,CAAC"}
@@ -52,6 +52,10 @@ class Where extends operation_1.default {
52
52
  }
53
53
  });
54
54
  }
55
+ get saturated() {
56
+ var _a, _b;
57
+ return (_b = (_a = this.next) === null || _a === void 0 ? void 0 : _a.saturated) !== null && _b !== void 0 ? _b : false;
58
+ }
55
59
  value() {
56
60
  return this.expression.value();
57
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"where.js","sourceRoot":"","sources":["../../../src/parsing/operations/where.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,4DAAoC;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,KAAM,SAAQ,mBAAS;IACzB;;;;OAIG;IACH,YAAY,UAAsB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;IAC1C,CAAC;IACY,GAAG;;;YACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC/C,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;gBAClD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1B,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;YAC3B,CAAC;QACL,CAAC;KAAA;IACM,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"where.js","sourceRoot":"","sources":["../../../src/parsing/operations/where.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,4DAAoC;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,KAAM,SAAQ,mBAAS;IACzB;;;;OAIG;IACH,YAAY,UAAsB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;IAC1C,CAAC;IACY,GAAG;;;YACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC/C,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;gBAClD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1B,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;YAC3B,CAAC;QACL,CAAC;KAAA;IACD,IAAW,SAAS;;QAChB,OAAO,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,mCAAI,KAAK,CAAC;IACzC,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
@@ -12,6 +12,7 @@ import Projection from "./projection";
12
12
  */
13
13
  declare class With extends Projection {
14
14
  run(): Promise<void>;
15
+ get saturated(): boolean;
15
16
  }
16
17
  export default With;
17
18
  //# sourceMappingURL=with.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/with.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,cAAM,IAAK,SAAQ,UAAU;IACZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"with.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/with.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,cAAM,IAAK,SAAQ,UAAU;IACZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,IAAW,SAAS,IAAI,OAAO,CAE9B;CACJ;AAED,eAAe,IAAI,CAAC"}
@@ -31,6 +31,10 @@ class With extends projection_1.default {
31
31
  yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
32
32
  });
33
33
  }
34
+ get saturated() {
35
+ var _a, _b;
36
+ return (_b = (_a = this.next) === null || _a === void 0 ? void 0 : _a.saturated) !== null && _b !== void 0 ? _b : false;
37
+ }
34
38
  }
35
39
  exports.default = With;
36
40
  //# sourceMappingURL=with.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"with.js","sourceRoot":"","sources":["../../../src/parsing/operations/with.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8DAAsC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,IAAK,SAAQ,oBAAU;IACZ,GAAG;;;YACZ,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;CACJ;AAED,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"with.js","sourceRoot":"","sources":["../../../src/parsing/operations/with.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8DAAsC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,IAAK,SAAQ,oBAAU;IACZ,GAAG;;;YACZ,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACD,IAAW,SAAS;;QAChB,OAAO,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,mCAAI,KAAK,CAAC;IACzC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"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"}
@@ -606,6 +606,24 @@ class Parser extends base_parser_1.default {
606
606
  relationship.target = target;
607
607
  }
608
608
  this.expectAndSkipWhitespaceAndComments();
609
+ // Optional `WITH CAPABILITIES { ... }` opts the definition into the
610
+ // backend-aware source contract (see setNodeSourceCapabilities).
611
+ let capabilities = null;
612
+ if (this.token.isWith()) {
613
+ this.setNextToken();
614
+ this.expectAndSkipWhitespaceAndComments();
615
+ if (!this.token.isIdentifierOrKeyword() ||
616
+ (this.token.value || "").toUpperCase() !== "CAPABILITIES") {
617
+ throw new Error("Expected CAPABILITIES after WITH in CREATE VIRTUAL");
618
+ }
619
+ this.setNextToken();
620
+ this.expectAndSkipWhitespaceAndComments();
621
+ capabilities = this.parseAssociativeArray();
622
+ if (capabilities === null) {
623
+ throw new Error("Expected capabilities map after WITH CAPABILITIES");
624
+ }
625
+ this.expectAndSkipWhitespaceAndComments();
626
+ }
609
627
  if (!this.token.isAs()) {
610
628
  throw new Error("Expected AS");
611
629
  }
@@ -676,10 +694,10 @@ class Parser extends base_parser_1.default {
676
694
  }
677
695
  let create;
678
696
  if (relationship !== null) {
679
- create = new create_relationship_1.default(relationship, query, isStatic, refreshEveryMs);
697
+ create = new create_relationship_1.default(relationship, query, isStatic, refreshEveryMs, capabilities);
680
698
  }
681
699
  else {
682
- create = new create_node_1.default(node, query, isStatic, refreshEveryMs);
700
+ create = new create_node_1.default(node, query, isStatic, refreshEveryMs, capabilities);
683
701
  }
684
702
  return create;
685
703
  }