flowquery 1.0.69 → 1.0.71

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 (147) hide show
  1. package/README.md +682 -86
  2. package/dist/compute/provenance.d.ts +201 -0
  3. package/dist/compute/provenance.d.ts.map +1 -0
  4. package/dist/compute/provenance.js +216 -0
  5. package/dist/compute/provenance.js.map +1 -0
  6. package/dist/compute/runner.d.ts +202 -3
  7. package/dist/compute/runner.d.ts.map +1 -1
  8. package/dist/compute/runner.js +309 -2
  9. package/dist/compute/runner.js.map +1 -1
  10. package/dist/flowquery.min.js +1 -1
  11. package/dist/graph/bindings.d.ts +78 -0
  12. package/dist/graph/bindings.d.ts.map +1 -0
  13. package/dist/graph/bindings.js +224 -0
  14. package/dist/graph/bindings.js.map +1 -0
  15. package/dist/graph/data_cache.d.ts +4 -0
  16. package/dist/graph/data_cache.d.ts.map +1 -1
  17. package/dist/graph/data_cache.js +15 -3
  18. package/dist/graph/data_cache.js.map +1 -1
  19. package/dist/graph/data_resolver.d.ts.map +1 -1
  20. package/dist/graph/data_resolver.js +23 -4
  21. package/dist/graph/data_resolver.js.map +1 -1
  22. package/dist/graph/database.d.ts +4 -2
  23. package/dist/graph/database.d.ts.map +1 -1
  24. package/dist/graph/database.js +45 -9
  25. package/dist/graph/database.js.map +1 -1
  26. package/dist/graph/physical_node.d.ts +7 -2
  27. package/dist/graph/physical_node.d.ts.map +1 -1
  28. package/dist/graph/physical_node.js +22 -26
  29. package/dist/graph/physical_node.js.map +1 -1
  30. package/dist/graph/physical_relationship.d.ts +7 -2
  31. package/dist/graph/physical_relationship.d.ts.map +1 -1
  32. package/dist/graph/physical_relationship.js +22 -26
  33. package/dist/graph/physical_relationship.js.map +1 -1
  34. package/dist/graph/relationship_match_collector.d.ts.map +1 -1
  35. package/dist/graph/relationship_match_collector.js +9 -0
  36. package/dist/graph/relationship_match_collector.js.map +1 -1
  37. package/dist/graph/virtual_sources.d.ts +8 -0
  38. package/dist/graph/virtual_sources.d.ts.map +1 -0
  39. package/dist/graph/virtual_sources.js +31 -0
  40. package/dist/graph/virtual_sources.js.map +1 -0
  41. package/dist/graph/virtual_statement.d.ts +41 -0
  42. package/dist/graph/virtual_statement.d.ts.map +1 -0
  43. package/dist/graph/virtual_statement.js +143 -0
  44. package/dist/graph/virtual_statement.js.map +1 -0
  45. package/dist/index.browser.d.ts +3 -3
  46. package/dist/index.browser.d.ts.map +1 -1
  47. package/dist/index.browser.js.map +1 -1
  48. package/dist/index.node.d.ts +3 -3
  49. package/dist/index.node.d.ts.map +1 -1
  50. package/dist/index.node.js.map +1 -1
  51. package/dist/parsing/ast_node.d.ts +9 -0
  52. package/dist/parsing/ast_node.d.ts.map +1 -1
  53. package/dist/parsing/ast_node.js +21 -4
  54. package/dist/parsing/ast_node.js.map +1 -1
  55. package/dist/parsing/expressions/binding_reference.d.ts +16 -0
  56. package/dist/parsing/expressions/binding_reference.d.ts.map +1 -0
  57. package/dist/parsing/expressions/binding_reference.js +34 -0
  58. package/dist/parsing/expressions/binding_reference.js.map +1 -0
  59. package/dist/parsing/operations/aggregated_return.d.ts +10 -0
  60. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
  61. package/dist/parsing/operations/aggregated_return.js +56 -3
  62. package/dist/parsing/operations/aggregated_return.js.map +1 -1
  63. package/dist/parsing/operations/aggregated_with.d.ts +20 -0
  64. package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
  65. package/dist/parsing/operations/aggregated_with.js +33 -1
  66. package/dist/parsing/operations/aggregated_with.js.map +1 -1
  67. package/dist/parsing/operations/create_node.d.ts +5 -1
  68. package/dist/parsing/operations/create_node.d.ts.map +1 -1
  69. package/dist/parsing/operations/create_node.js +12 -2
  70. package/dist/parsing/operations/create_node.js.map +1 -1
  71. package/dist/parsing/operations/create_relationship.d.ts +5 -1
  72. package/dist/parsing/operations/create_relationship.d.ts.map +1 -1
  73. package/dist/parsing/operations/create_relationship.js +12 -2
  74. package/dist/parsing/operations/create_relationship.js.map +1 -1
  75. package/dist/parsing/operations/drop_binding.d.ts +15 -0
  76. package/dist/parsing/operations/drop_binding.d.ts.map +1 -0
  77. package/dist/parsing/operations/drop_binding.js +42 -0
  78. package/dist/parsing/operations/drop_binding.js.map +1 -0
  79. package/dist/parsing/operations/group_by.d.ts +32 -0
  80. package/dist/parsing/operations/group_by.d.ts.map +1 -1
  81. package/dist/parsing/operations/group_by.js +103 -0
  82. package/dist/parsing/operations/group_by.js.map +1 -1
  83. package/dist/parsing/operations/let.d.ts +36 -0
  84. package/dist/parsing/operations/let.d.ts.map +1 -0
  85. package/dist/parsing/operations/let.js +154 -0
  86. package/dist/parsing/operations/let.js.map +1 -0
  87. package/dist/parsing/operations/load.d.ts +31 -0
  88. package/dist/parsing/operations/load.d.ts.map +1 -1
  89. package/dist/parsing/operations/load.js +102 -2
  90. package/dist/parsing/operations/load.js.map +1 -1
  91. package/dist/parsing/operations/merge.d.ts +158 -0
  92. package/dist/parsing/operations/merge.d.ts.map +1 -0
  93. package/dist/parsing/operations/merge.js +338 -0
  94. package/dist/parsing/operations/merge.js.map +1 -0
  95. package/dist/parsing/operations/order_by.d.ts +6 -0
  96. package/dist/parsing/operations/order_by.d.ts.map +1 -1
  97. package/dist/parsing/operations/order_by.js +10 -1
  98. package/dist/parsing/operations/order_by.js.map +1 -1
  99. package/dist/parsing/operations/refresh_binding.d.ts +15 -0
  100. package/dist/parsing/operations/refresh_binding.d.ts.map +1 -0
  101. package/dist/parsing/operations/refresh_binding.js +42 -0
  102. package/dist/parsing/operations/refresh_binding.js.map +1 -0
  103. package/dist/parsing/operations/refresh_node.d.ts +11 -0
  104. package/dist/parsing/operations/refresh_node.d.ts.map +1 -0
  105. package/dist/parsing/operations/refresh_node.js +46 -0
  106. package/dist/parsing/operations/refresh_node.js.map +1 -0
  107. package/dist/parsing/operations/refresh_relationship.d.ts +11 -0
  108. package/dist/parsing/operations/refresh_relationship.d.ts.map +1 -0
  109. package/dist/parsing/operations/refresh_relationship.js +46 -0
  110. package/dist/parsing/operations/refresh_relationship.js.map +1 -0
  111. package/dist/parsing/operations/return.d.ts +34 -0
  112. package/dist/parsing/operations/return.d.ts.map +1 -1
  113. package/dist/parsing/operations/return.js +102 -3
  114. package/dist/parsing/operations/return.js.map +1 -1
  115. package/dist/parsing/operations/union.d.ts +19 -2
  116. package/dist/parsing/operations/union.d.ts.map +1 -1
  117. package/dist/parsing/operations/union.js +47 -11
  118. package/dist/parsing/operations/union.js.map +1 -1
  119. package/dist/parsing/operations/union_all.d.ts +5 -1
  120. package/dist/parsing/operations/union_all.d.ts.map +1 -1
  121. package/dist/parsing/operations/union_all.js +8 -2
  122. package/dist/parsing/operations/union_all.js.map +1 -1
  123. package/dist/parsing/operations/update.d.ts +27 -0
  124. package/dist/parsing/operations/update.d.ts.map +1 -0
  125. package/dist/parsing/operations/update.js +88 -0
  126. package/dist/parsing/operations/update.js.map +1 -0
  127. package/dist/parsing/operations/update_delete.d.ts +43 -0
  128. package/dist/parsing/operations/update_delete.d.ts.map +1 -0
  129. package/dist/parsing/operations/update_delete.js +105 -0
  130. package/dist/parsing/operations/update_delete.js.map +1 -0
  131. package/dist/parsing/parser.d.ts +70 -1
  132. package/dist/parsing/parser.d.ts.map +1 -1
  133. package/dist/parsing/parser.js +704 -10
  134. package/dist/parsing/parser.js.map +1 -1
  135. package/dist/parsing/statement_info_crawler.d.ts +106 -0
  136. package/dist/parsing/statement_info_crawler.d.ts.map +1 -1
  137. package/dist/parsing/statement_info_crawler.js +231 -12
  138. package/dist/parsing/statement_info_crawler.js.map +1 -1
  139. package/dist/tokenization/keyword.d.ts +21 -1
  140. package/dist/tokenization/keyword.d.ts.map +1 -1
  141. package/dist/tokenization/keyword.js +20 -0
  142. package/dist/tokenization/keyword.js.map +1 -1
  143. package/dist/tokenization/token.d.ts +24 -0
  144. package/dist/tokenization/token.d.ts.map +1 -1
  145. package/dist/tokenization/token.js +73 -0
  146. package/dist/tokenization/token.js.map +1 -1
  147. package/package.json +1 -1
@@ -0,0 +1,78 @@
1
+ import type ASTNode from "../parsing/ast_node";
2
+ /**
3
+ * One entry in the {@link Bindings} singleton. Plain bindings store
4
+ * their materialised `value` directly; refreshable bindings (created
5
+ * by `LET name = { ... } REFRESH EVERY n unit`) additionally store
6
+ * the backing `statement` and TTL so the value can be re-evaluated on
7
+ * read once stale.
8
+ */
9
+ declare class BindingEntry {
10
+ value: any;
11
+ statement: ASTNode | null;
12
+ isRefreshable: boolean;
13
+ refreshEveryMs: number | null;
14
+ cachedAt: number;
15
+ primed: boolean;
16
+ }
17
+ /**
18
+ * Singleton store for `LET`-bound values.
19
+ *
20
+ * Bindings live alongside virtual node/relationship definitions in
21
+ * {@link Database}: they are persistent across `Runner` invocations
22
+ * for the lifetime of the process.
23
+ *
24
+ * A binding's value may be any JSON-serialisable value: a primitive, an
25
+ * array, or a map. Bindings are referenced by name inside virtual
26
+ * definitions and inside `LOAD JSON FROM <name>` expressions; the
27
+ * `UPDATE` statement replaces an existing binding wholesale, while
28
+ * `MERGE INTO ... USING ...` upserts per row.
29
+ *
30
+ * `LET name = { ... } REFRESH EVERY n unit` registers a refreshable
31
+ * binding: the sub-query is evaluated eagerly and the result is
32
+ * cached, but the TTL causes the next read after expiry to re-execute
33
+ * the sub-query. Refreshable bindings cannot be silently overwritten
34
+ * by another `LET`, `UPDATE`, or `MERGE`; callers must `DROP BINDING`
35
+ * first.
36
+ */
37
+ declare class Bindings {
38
+ private static instance;
39
+ private _entries;
40
+ private _materializing;
41
+ static getInstance(): Bindings;
42
+ /**
43
+ * Eager set, used by plain `LET`, `UPDATE`, and `MERGE INTO`.
44
+ * Throws if the name is currently bound to a refreshable binding;
45
+ * the caller must `DROP BINDING` first.
46
+ */
47
+ set(name: string, value: any): void;
48
+ get(name: string): any;
49
+ has(name: string): boolean;
50
+ delete(name: string): void;
51
+ /** Replace all entries (test/teardown helper). */
52
+ clear(): void;
53
+ /** Inspect the underlying entry without materialising it. */
54
+ getEntry(name: string): BindingEntry | undefined;
55
+ isRefreshable(name: string): boolean;
56
+ /**
57
+ * Register a refreshable binding with an eagerly evaluated value
58
+ * and a backing sub-query that is re-executed when the TTL has
59
+ * elapsed. Throws if a binding with the same name already exists;
60
+ * callers must `DROP BINDING` first.
61
+ */
62
+ registerRefreshable(name: string, value: any, statement: ASTNode, refreshEveryMs: number): void;
63
+ /**
64
+ * Clear the cached value of a refreshable binding so the next
65
+ * {@link materialize} call re-executes the backing sub-query.
66
+ * No-op for plain bindings.
67
+ */
68
+ invalidate(name: string): void;
69
+ /**
70
+ * Re-evaluate a refreshable binding's backing sub-query if the
71
+ * cached value is stale (TTL elapsed or invalidated). No-op for
72
+ * plain bindings or for refreshable bindings that are still fresh.
73
+ */
74
+ materialize(name: string): Promise<void>;
75
+ }
76
+ export default Bindings;
77
+ export { BindingEntry };
78
+ //# sourceMappingURL=bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/graph/bindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C;;;;;;GAMG;AACH,cAAM,YAAY;IACP,KAAK,EAAE,GAAG,CAAa;IACvB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;IACjC,aAAa,EAAE,OAAO,CAAS;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,OAAO,CAAS;CAClC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,cAAc,CAA0B;WAElC,WAAW,IAAI,QAAQ;IAOrC;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAkBnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAKtB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,kDAAkD;IAC3C,KAAK,IAAI,IAAI;IAIpB,6DAA6D;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIhD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACI,mBAAmB,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,GACvB,IAAI;IAcP;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUrC;;;;OAIG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA4CxD;AAED,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.BindingEntry = void 0;
46
+ const virtual_sources_1 = require("./virtual_sources");
47
+ /**
48
+ * One entry in the {@link Bindings} singleton. Plain bindings store
49
+ * their materialised `value` directly; refreshable bindings (created
50
+ * by `LET name = { ... } REFRESH EVERY n unit`) additionally store
51
+ * the backing `statement` and TTL so the value can be re-evaluated on
52
+ * read once stale.
53
+ */
54
+ class BindingEntry {
55
+ constructor() {
56
+ this.value = undefined;
57
+ this.statement = null;
58
+ this.isRefreshable = false;
59
+ this.refreshEveryMs = null;
60
+ this.cachedAt = 0;
61
+ this.primed = false;
62
+ }
63
+ }
64
+ exports.BindingEntry = BindingEntry;
65
+ /**
66
+ * Singleton store for `LET`-bound values.
67
+ *
68
+ * Bindings live alongside virtual node/relationship definitions in
69
+ * {@link Database}: they are persistent across `Runner` invocations
70
+ * for the lifetime of the process.
71
+ *
72
+ * A binding's value may be any JSON-serialisable value: a primitive, an
73
+ * array, or a map. Bindings are referenced by name inside virtual
74
+ * definitions and inside `LOAD JSON FROM <name>` expressions; the
75
+ * `UPDATE` statement replaces an existing binding wholesale, while
76
+ * `MERGE INTO ... USING ...` upserts per row.
77
+ *
78
+ * `LET name = { ... } REFRESH EVERY n unit` registers a refreshable
79
+ * binding: the sub-query is evaluated eagerly and the result is
80
+ * cached, but the TTL causes the next read after expiry to re-execute
81
+ * the sub-query. Refreshable bindings cannot be silently overwritten
82
+ * by another `LET`, `UPDATE`, or `MERGE`; callers must `DROP BINDING`
83
+ * first.
84
+ */
85
+ class Bindings {
86
+ constructor() {
87
+ this._entries = new Map();
88
+ this._materializing = new Set();
89
+ }
90
+ static getInstance() {
91
+ if (!Bindings.instance) {
92
+ Bindings.instance = new Bindings();
93
+ }
94
+ return Bindings.instance;
95
+ }
96
+ /**
97
+ * Eager set, used by plain `LET`, `UPDATE`, and `MERGE INTO`.
98
+ * Throws if the name is currently bound to a refreshable binding;
99
+ * the caller must `DROP BINDING` first.
100
+ */
101
+ set(name, value) {
102
+ const existing = this._entries.get(name);
103
+ if (existing !== undefined && existing.isRefreshable) {
104
+ throw new Error(`Binding '${name}' is refreshable; DROP BINDING ${name} first`);
105
+ }
106
+ let entry = existing;
107
+ if (entry === undefined) {
108
+ entry = new BindingEntry();
109
+ this._entries.set(name, entry);
110
+ }
111
+ entry.value = value;
112
+ entry.statement = null;
113
+ entry.isRefreshable = false;
114
+ entry.refreshEveryMs = null;
115
+ entry.cachedAt = Date.now();
116
+ entry.primed = true;
117
+ }
118
+ get(name) {
119
+ const entry = this._entries.get(name);
120
+ return entry === undefined ? undefined : entry.value;
121
+ }
122
+ has(name) {
123
+ return this._entries.has(name);
124
+ }
125
+ delete(name) {
126
+ this._entries.delete(name);
127
+ }
128
+ /** Replace all entries (test/teardown helper). */
129
+ clear() {
130
+ this._entries.clear();
131
+ }
132
+ /** Inspect the underlying entry without materialising it. */
133
+ getEntry(name) {
134
+ return this._entries.get(name);
135
+ }
136
+ isRefreshable(name) {
137
+ var _a;
138
+ return ((_a = this._entries.get(name)) === null || _a === void 0 ? void 0 : _a.isRefreshable) === true;
139
+ }
140
+ /**
141
+ * Register a refreshable binding with an eagerly evaluated value
142
+ * and a backing sub-query that is re-executed when the TTL has
143
+ * elapsed. Throws if a binding with the same name already exists;
144
+ * callers must `DROP BINDING` first.
145
+ */
146
+ registerRefreshable(name, value, statement, refreshEveryMs) {
147
+ if (this._entries.has(name)) {
148
+ throw new Error(`Binding '${name}' already exists; DROP BINDING ${name} first`);
149
+ }
150
+ const entry = new BindingEntry();
151
+ entry.value = value;
152
+ entry.statement = statement;
153
+ entry.isRefreshable = true;
154
+ entry.refreshEveryMs = refreshEveryMs;
155
+ entry.primed = true;
156
+ entry.cachedAt = Date.now();
157
+ this._entries.set(name, entry);
158
+ }
159
+ /**
160
+ * Clear the cached value of a refreshable binding so the next
161
+ * {@link materialize} call re-executes the backing sub-query.
162
+ * No-op for plain bindings.
163
+ */
164
+ invalidate(name) {
165
+ const entry = this._entries.get(name);
166
+ if (entry === undefined || !entry.isRefreshable) {
167
+ return;
168
+ }
169
+ entry.value = undefined;
170
+ entry.primed = false;
171
+ entry.cachedAt = 0;
172
+ }
173
+ /**
174
+ * Re-evaluate a refreshable binding's backing sub-query if the
175
+ * cached value is stale (TTL elapsed or invalidated). No-op for
176
+ * plain bindings or for refreshable bindings that are still fresh.
177
+ */
178
+ materialize(name) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ const entry = this._entries.get(name);
181
+ if (entry === undefined || !entry.isRefreshable || entry.statement === null) {
182
+ return;
183
+ }
184
+ const isFresh = entry.primed &&
185
+ entry.refreshEveryMs !== null &&
186
+ Date.now() - entry.cachedAt < entry.refreshEveryMs;
187
+ if (isFresh) {
188
+ return;
189
+ }
190
+ if (this._materializing.has(name)) {
191
+ throw new Error(`Cyclic refreshable binding dependency detected while materialising '${name}'`);
192
+ }
193
+ this._materializing.add(name);
194
+ try {
195
+ // Lazy dynamic import to avoid a load-time cycle:
196
+ // bindings -> runner -> parsing -> graph (back to here).
197
+ const RunnerCtor = (yield Promise.resolve().then(() => __importStar(require("../compute/runner")))).default;
198
+ // Capture provenance on refresh so downstream readers can
199
+ // chase lineage back through this LET binding (symmetric to
200
+ // initial materialisation in `Let.run`).
201
+ const runner = new RunnerCtor(null, entry.statement, null, { provenance: true });
202
+ yield runner.run();
203
+ entry.value = runner.results;
204
+ const prov = runner.provenance;
205
+ if (Array.isArray(entry.value)) {
206
+ const len = Math.min(prov.length, entry.value.length);
207
+ for (let i = 0; i < len; i++) {
208
+ const row = entry.value[i];
209
+ if (row !== null && typeof row === "object") {
210
+ (0, virtual_sources_1.attachVirtualSource)(row, prov[i]);
211
+ }
212
+ }
213
+ }
214
+ entry.primed = true;
215
+ entry.cachedAt = Date.now();
216
+ }
217
+ finally {
218
+ this._materializing.delete(name);
219
+ }
220
+ });
221
+ }
222
+ }
223
+ exports.default = Bindings;
224
+ //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/graph/bindings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAAwD;AAExD;;;;;;GAMG;AACH,MAAM,YAAY;IAAlB;QACW,UAAK,GAAQ,SAAS,CAAC;QACvB,cAAS,GAAmB,IAAI,CAAC;QACjC,kBAAa,GAAY,KAAK,CAAC;QAC/B,mBAAc,GAAkB,IAAI,CAAC;QACrC,aAAQ,GAAW,CAAC,CAAC;QACrB,WAAM,GAAY,KAAK,CAAC;IACnC,CAAC;CAAA;AAgLQ,oCAAY;AA9KrB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,QAAQ;IAAd;QAEY,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;QAChD,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;IAoJpD,CAAC;IAlJU,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAY,EAAE,KAAU;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kCAAkC,IAAI,QAAQ,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,GAAG,CAAC,IAAY;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACzD,CAAC;IAEM,GAAG,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,IAAY;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,kDAAkD;IAC3C,KAAK;QACR,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IACtD,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,IAAY;;QAC7B,OAAO,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,aAAa,MAAK,IAAI,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CACtB,IAAY,EACZ,KAAU,EACV,SAAkB,EAClB,cAAsB;QAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kCAAkC,IAAI,QAAQ,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;QACtC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC9C,OAAO;QACX,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;QACxB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACU,WAAW,CAAC,IAAY;;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC1E,OAAO;YACX,CAAC;YACD,MAAM,OAAO,GACT,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,cAAc,KAAK,IAAI;gBAC7B,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACX,uEAAuE,IAAI,GAAG,CACjF,CAAC;YACN,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACD,kDAAkD;gBAClD,yDAAyD;gBACzD,MAAM,UAAU,GAAkB,CAAC,wDAAa,mBAAmB,GAAC,CAAC,CAAC,OAAO,CAAC;gBAC9E,0DAA0D;gBAC1D,4DAA4D;gBAC5D,yCAAyC;gBACzC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjF,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;gBACnB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;4BAC1C,IAAA,qCAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,QAAQ,CAAC"}
@@ -10,6 +10,10 @@ import PhysicalRelationship from "./physical_relationship";
10
10
  */
11
11
  declare class DataCache {
12
12
  private _cache;
13
+ private _provenance;
14
+ constructor(provenance?: boolean);
15
+ /** Whether sub-queries should be run with provenance enabled. */
16
+ get provenance(): boolean;
13
17
  get(key: string, physical: PhysicalNode | PhysicalRelationship, args: Record<string, any> | null): Promise<Record<string, any>[]>;
14
18
  }
15
19
  export default DataCache;
@@ -1 +1 @@
1
- {"version":3,"file":"data_cache.d.ts","sourceRoot":"","sources":["../../src/graph/data_cache.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;GAOG;AACH,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAiD;IAElD,GAAG,CACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,GAAG,oBAAoB,EAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAYpC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"data_cache.d.ts","sourceRoot":"","sources":["../../src/graph/data_cache.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;GAOG;AACH,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAiD;IAC/D,OAAO,CAAC,WAAW,CAAU;gBAEjB,UAAU,GAAE,OAAe;IAIvC,iEAAiE;IACjE,IAAW,UAAU,IAAI,OAAO,CAE/B;IAEY,GAAG,CACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,GAAG,oBAAoB,EAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAmBpC;AAED,eAAe,SAAS,CAAC"}
@@ -18,19 +18,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  * their results depend on runtime parameter values.
19
19
  */
20
20
  class DataCache {
21
- constructor() {
21
+ constructor(provenance = false) {
22
22
  this._cache = new Map();
23
+ this._provenance = provenance;
24
+ }
25
+ /** Whether sub-queries should be run with provenance enabled. */
26
+ get provenance() {
27
+ return this._provenance;
23
28
  }
24
29
  get(key, physical, args) {
25
30
  return __awaiter(this, void 0, void 0, function* () {
26
31
  if (args !== null) {
27
- return physical.data(args);
32
+ return physical.data(args, this._provenance);
33
+ }
34
+ // Provenance mode must re-run the inner query each invocation
35
+ // because the virtual-source weak map is populated only on the
36
+ // freshly produced records. Static caches store inert records
37
+ // with no back-links.
38
+ if (this._provenance) {
39
+ return physical.data(null, true);
28
40
  }
29
41
  const cached = this._cache.get(key);
30
42
  if (cached !== undefined) {
31
43
  return cached;
32
44
  }
33
- const data = yield physical.data(null);
45
+ const data = yield physical.data(null, false);
34
46
  this._cache.set(key, data);
35
47
  return data;
36
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"data_cache.js","sourceRoot":"","sources":["../../src/graph/data_cache.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA;;;;;;;GAOG;AACH,MAAM,SAAS;IAAf;QACY,WAAM,GAAuC,IAAI,GAAG,EAAE,CAAC;IAkBnE,CAAC;IAhBgB,GAAG,CACZ,GAAW,EACX,QAA6C,EAC7C,IAAgC;;YAEhC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AAED,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"data_cache.js","sourceRoot":"","sources":["../../src/graph/data_cache.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA;;;;;;;GAOG;AACH,MAAM,SAAS;IAIX,YAAY,aAAsB,KAAK;QAH/B,WAAM,GAAuC,IAAI,GAAG,EAAE,CAAC;QAI3D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,iEAAiE;IACjE,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEY,GAAG,CACZ,GAAW,EACX,QAA6C,EAC7C,IAAgC;;YAEhC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YACD,8DAA8D;YAC9D,+DAA+D;YAC/D,+DAA+D;YAC/D,sBAAsB;YACtB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AAED,kBAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data_resolver.d.ts","sourceRoot":"","sources":["../../src/graph/data_resolver.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAwB,MAAM,aAAa,CAAC;AAGnD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAwC,MAAM,qBAAqB,CAAC;AAE3E;;;;GAIG;AACH,cAAM,YAAY;IACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,UAAU,CAA8B;WAElC,WAAW,IAAI,YAAY;IAMzC;;;OAGG;IACH,IAAW,SAAS,CAAC,KAAK,EAAE,SAAS,EAEpC;IAEY,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA0CxC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAkExF,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,aAAa;IAU5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAevC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,MAAM,CAAC,WAAW;CAU7B;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"data_resolver.d.ts","sourceRoot":"","sources":["../../src/graph/data_resolver.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAwB,MAAM,aAAa,CAAC;AAGnD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAwC,MAAM,qBAAqB,CAAC;AAG3E;;;;GAIG;AACH,cAAM,YAAY;IACd,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,UAAU,CAA8B;WAElC,WAAW,IAAI,YAAY;IAMzC;;;OAGG;IACH,IAAW,SAAS,CAAC,KAAK,EAAE,SAAS,EAEpC;IAEY,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA0CxC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAgFxF,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,aAAa;IAU5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAevC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,MAAM,CAAC,WAAW;CAU7B;AAED,eAAe,YAAY,CAAC"}
@@ -30,6 +30,7 @@ const node_data_1 = __importDefault(require("./node_data"));
30
30
  const node_reference_1 = __importDefault(require("./node_reference"));
31
31
  const relationship_1 = __importDefault(require("./relationship"));
32
32
  const relationship_data_1 = __importDefault(require("./relationship_data"));
33
+ const virtual_sources_1 = require("./virtual_sources");
33
34
  /**
34
35
  * Resolves pattern elements (nodes and relationships) to data by querying
35
36
  * the Database registry. Handles label compatibility, caching, and schema
@@ -105,7 +106,11 @@ class DataResolver {
105
106
  for (const [label, physical] of db.nodes) {
106
107
  const data = yield this._dataCache.get(`node:${label}`, physical, null);
107
108
  for (const record of data) {
108
- allRecords.push(Object.assign(Object.assign({}, record), { _label: label }));
109
+ const enriched = Object.assign(Object.assign({}, record), { _label: label });
110
+ const src = (0, virtual_sources_1.getVirtualSource)(record);
111
+ if (src !== undefined)
112
+ (0, virtual_sources_1.attachVirtualSource)(enriched, src);
113
+ allRecords.push(enriched);
109
114
  }
110
115
  }
111
116
  return new node_data_1.default(allRecords);
@@ -118,7 +123,11 @@ class DataResolver {
118
123
  if (physical) {
119
124
  const data = yield this._dataCache.get(`node:${lbl}`, physical, args);
120
125
  for (const record of data) {
121
- allRecords.push(Object.assign(Object.assign({}, record), { _label: lbl }));
126
+ const enriched = Object.assign(Object.assign({}, record), { _label: lbl });
127
+ const src = (0, virtual_sources_1.getVirtualSource)(record);
128
+ if (src !== undefined)
129
+ (0, virtual_sources_1.attachVirtualSource)(enriched, src);
130
+ allRecords.push(enriched);
122
131
  }
123
132
  }
124
133
  }
@@ -130,7 +139,13 @@ class DataResolver {
130
139
  }
131
140
  const data = yield this._dataCache.get(`node:${element.label}`, node, args);
132
141
  const label = element.label;
133
- const records = data.map((record) => (Object.assign(Object.assign({}, record), { _label: label })));
142
+ const records = data.map((record) => {
143
+ const enriched = Object.assign(Object.assign({}, record), { _label: label });
144
+ const src = (0, virtual_sources_1.getVirtualSource)(record);
145
+ if (src !== undefined)
146
+ (0, virtual_sources_1.attachVirtualSource)(enriched, src);
147
+ return enriched;
148
+ });
134
149
  return new node_data_1.default(records);
135
150
  }
136
151
  else if (element instanceof relationship_1.default) {
@@ -147,7 +162,11 @@ class DataResolver {
147
162
  const cacheKey = `rel:${(_b = (_a = physical.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : ""}:${typeName}:${(_d = (_c = physical.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : ""}`;
148
163
  const records = (yield this._dataCache.get(cacheKey, physical, args));
149
164
  for (const record of records) {
150
- allRecords.push(Object.assign(Object.assign({}, record), { _type: typeName }));
165
+ const enriched = Object.assign(Object.assign({}, record), { _type: typeName });
166
+ const src = (0, virtual_sources_1.getVirtualSource)(record);
167
+ if (src !== undefined)
168
+ (0, virtual_sources_1.attachVirtualSource)(enriched, src);
169
+ allRecords.push(enriched);
151
170
  }
152
171
  }
153
172
  return new relationship_data_1.default(allRecords);
@@ -1 +1 @@
1
- {"version":3,"file":"data_resolver.js","sourceRoot":"","sources":["../../src/graph/data_resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_resolver.js","sourceRoot":"","sources":["../../src/graph/data_resolver.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,15 @@ declare class Database {
12
12
  get nodes(): Map<string, PhysicalNode>;
13
13
  /** Read-only access to registered relationships (type → endpoint-key → physical). */
14
14
  get relationships(): Map<string, Map<string, PhysicalRelationship>>;
15
- addNode(node: Node, statement: ASTNode): void;
15
+ addNode(node: Node, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null): void;
16
16
  removeNode(node: Node): void;
17
+ refreshNode(node: Node): void;
17
18
  getNode(node: Node): PhysicalNode | null;
18
19
  /** Endpoint-only key: "Source:Target" */
19
20
  private static endpointKey;
20
- addRelationship(relationship: Relationship, statement: ASTNode): void;
21
+ addRelationship(relationship: Relationship, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null): void;
21
22
  removeRelationship(relationship: Relationship): void;
23
+ refreshRelationship(relationship: Relationship): void;
22
24
  getRelationship(relationship: Relationship): PhysicalRelationship | null;
23
25
  }
24
26
  export default Database;
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAwC;IAC7D,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6D;WAE5E,WAAW,IAAI,QAAQ;IAMrC,4CAA4C;IAC5C,IAAW,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAE5C;IACD,qFAAqF;IACrF,IAAW,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAEzE;IACM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ7C,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAM5B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,IAAI;IAG/C,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,WAAW;IAGnB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAmBrE,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAepD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CAclF;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAwC;IAC7D,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6D;WAE5E,WAAW,IAAI,QAAQ;IAMrC,4CAA4C;IAC5C,IAAW,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAE5C;IACD,qFAAqF;IACrF,IAAW,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAEzE;IACM,OAAO,CACV,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW,GACrC,IAAI;IAgBA,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAM5B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAU7B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,IAAI;IAG/C,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,WAAW;IAGnB,eAAe,CAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW,GACrC,IAAI;IA4BA,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAepD,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAiBrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;CAclF;AAED,eAAe,QAAQ,CAAC"}
@@ -20,12 +20,18 @@ class Database {
20
20
  get relationships() {
21
21
  return Database._relationships;
22
22
  }
23
- addNode(node, statement) {
23
+ addNode(node, statement, isStatic = false, refreshEveryMs = null) {
24
24
  if (node.label === null) {
25
25
  throw new Error("Node label is null");
26
26
  }
27
+ const existing = Database._nodes.get(node.label);
28
+ if (existing !== undefined && (existing.isStatic || isStatic)) {
29
+ throw new Error(`Virtual node (:${node.label}) already exists; DROP VIRTUAL (:${node.label}) first`);
30
+ }
27
31
  const physical = new physical_node_1.default(null, node.label);
28
32
  physical.statement = statement;
33
+ physical.isStatic = isStatic;
34
+ physical.refreshEveryMs = refreshEveryMs;
29
35
  Database._nodes.set(node.label, physical);
30
36
  }
31
37
  removeNode(node) {
@@ -34,6 +40,16 @@ class Database {
34
40
  }
35
41
  Database._nodes.delete(node.label);
36
42
  }
43
+ refreshNode(node) {
44
+ if (node.label === null) {
45
+ throw new Error("Node label is null");
46
+ }
47
+ const physical = Database._nodes.get(node.label);
48
+ if (physical === undefined) {
49
+ throw new Error(`Virtual node (:${node.label}) does not exist`);
50
+ }
51
+ physical.invalidateCache();
52
+ }
37
53
  getNode(node) {
38
54
  return Database._nodes.get(node.label) || null;
39
55
  }
@@ -41,22 +57,29 @@ class Database {
41
57
  static endpointKey(sourceLabel, targetLabel) {
42
58
  return `${sourceLabel !== null && sourceLabel !== void 0 ? sourceLabel : ""}:${targetLabel !== null && targetLabel !== void 0 ? targetLabel : ""}`;
43
59
  }
44
- addRelationship(relationship, statement) {
45
- var _a, _b, _c, _d;
60
+ addRelationship(relationship, statement, isStatic = false, refreshEveryMs = null) {
61
+ var _a, _b, _c, _d, _e, _f, _g, _h;
46
62
  if (relationship.type === null) {
47
63
  throw new Error("Relationship type is null");
48
64
  }
65
+ const key = Database.endpointKey((_b = (_a = relationship.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : null, (_d = (_c = relationship.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null);
66
+ const typeMap = Database._relationships.get(relationship.type);
67
+ const existing = typeMap === null || typeMap === void 0 ? void 0 : typeMap.get(key);
68
+ if (existing !== undefined && (existing.isStatic || isStatic)) {
69
+ throw new Error(`Virtual relationship [:${relationship.type}] between (:${(_f = (_e = relationship.source) === null || _e === void 0 ? void 0 : _e.label) !== null && _f !== void 0 ? _f : ""}) and (:${(_h = (_g = relationship.target) === null || _g === void 0 ? void 0 : _g.label) !== null && _h !== void 0 ? _h : ""}) already exists; DROP VIRTUAL ...-[:${relationship.type}]-... first`);
70
+ }
49
71
  const physical = new physical_relationship_1.default(null, relationship.type);
50
72
  physical.statement = statement;
51
73
  physical.source = relationship.source;
52
74
  physical.target = relationship.target;
53
- const key = Database.endpointKey((_b = (_a = relationship.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : null, (_d = (_c = relationship.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null);
54
- let typeMap = Database._relationships.get(relationship.type);
55
- if (!typeMap) {
56
- typeMap = new Map();
57
- Database._relationships.set(relationship.type, typeMap);
75
+ physical.isStatic = isStatic;
76
+ physical.refreshEveryMs = refreshEveryMs;
77
+ let map = typeMap;
78
+ if (!map) {
79
+ map = new Map();
80
+ Database._relationships.set(relationship.type, map);
58
81
  }
59
- typeMap.set(key, physical);
82
+ map.set(key, physical);
60
83
  }
61
84
  removeRelationship(relationship) {
62
85
  var _a, _b, _c, _d;
@@ -72,6 +95,19 @@ class Database {
72
95
  Database._relationships.delete(relationship.type);
73
96
  }
74
97
  }
98
+ refreshRelationship(relationship) {
99
+ var _a, _b, _c, _d, _e, _f, _g, _h;
100
+ if (relationship.type === null) {
101
+ throw new Error("Relationship type is null");
102
+ }
103
+ const typeMap = Database._relationships.get(relationship.type);
104
+ const key = Database.endpointKey((_b = (_a = relationship.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : null, (_d = (_c = relationship.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null);
105
+ const physical = typeMap === null || typeMap === void 0 ? void 0 : typeMap.get(key);
106
+ if (physical === undefined) {
107
+ throw new Error(`Virtual relationship [:${relationship.type}] between (:${(_f = (_e = relationship.source) === null || _e === void 0 ? void 0 : _e.label) !== null && _f !== void 0 ? _f : ""}) and (:${(_h = (_g = relationship.target) === null || _g === void 0 ? void 0 : _g.label) !== null && _h !== void 0 ? _h : ""}) does not exist`);
108
+ }
109
+ physical.invalidateCache();
110
+ }
75
111
  getRelationship(relationship) {
76
112
  var _a, _b, _c, _d, _e;
77
113
  const typeMap = Database._relationships.get(relationship.type);
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}