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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source_access.js","sourceRoot":"","sources":["../../src/graph/source_access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { SourceReadContext, SourceRow } from "./source_provider";
2
+ /** Options controlling provider-backed execution (`RunnerOptions.sources`). */
3
+ export interface SourceOptions {
4
+ /** Preferred page size sent to providers (default 256). */
5
+ pageSize?: number;
6
+ /** Upper bound on ids per lookup/expand request (default 100; providers may lower it). */
7
+ maxBatchSize?: number;
8
+ /** Query-scoped cache capacity, in rows (default 10000; 0 disables caching). */
9
+ cacheCapacity?: number;
10
+ /** Maximum rows buffered by a batched expansion before falling back to streaming (default 1024). */
11
+ maxPrefetchRows?: number;
12
+ /** Allow reversing a pattern to start from a more selective end node (default true). */
13
+ reorder?: boolean;
14
+ /** External cancellation signal for the query. */
15
+ signal?: AbortSignal;
16
+ }
17
+ export interface ResolvedSourceOptions {
18
+ pageSize: number;
19
+ maxBatchSize: number;
20
+ cacheCapacity: number;
21
+ maxPrefetchRows: number;
22
+ reorder: boolean;
23
+ }
24
+ /** A start-point decision recorded for diagnostics. */
25
+ export interface SourcePlan {
26
+ pattern: string;
27
+ start: "first" | "last";
28
+ reason: string;
29
+ }
30
+ /** Counters describing provider interaction for one query. */
31
+ export interface SourceStats {
32
+ calls: {
33
+ scan: number;
34
+ lookup: number;
35
+ expand: number;
36
+ };
37
+ pages: number;
38
+ rows: number;
39
+ cacheHits: number;
40
+ cacheMisses: number;
41
+ batches: number;
42
+ materializations: number;
43
+ fallbacks: number;
44
+ cancellations: number;
45
+ peakBufferedRows: number;
46
+ plans: SourcePlan[];
47
+ }
48
+ export declare function emptySourceStats(): SourceStats;
49
+ /**
50
+ * Canonical, type-tagged cache key. `1` and `"1"` produce different
51
+ * keys; object keys are sorted so logically equal requests collide.
52
+ */
53
+ export declare function canonicalKey(value: any): string;
54
+ /**
55
+ * Query-scoped state shared by every provider read of one top-level
56
+ * query (including nested virtual definition runs): options, stats,
57
+ * the read cache, cancellation and provider read contexts.
58
+ */
59
+ declare class SourceContext {
60
+ readonly options: ResolvedSourceOptions;
61
+ readonly stats: SourceStats;
62
+ readonly provenance: boolean;
63
+ private _controller;
64
+ private _cache;
65
+ private _inflight;
66
+ private _readContexts;
67
+ private _materialized;
68
+ private _closed;
69
+ private _externalSignal;
70
+ private _onExternalAbort;
71
+ constructor(options?: SourceOptions, provenance?: boolean);
72
+ get signal(): AbortSignal;
73
+ get cancelled(): boolean;
74
+ /** Cancel the query: aborts every in-flight provider read. */
75
+ cancel(reason?: string): void;
76
+ throwIfCancelled(): void;
77
+ /** Await `promise`, rejecting early when the query is cancelled. */
78
+ race<T>(promise: Promise<T>): Promise<T>;
79
+ cacheGet(key: string): SourceRow[] | undefined;
80
+ cacheSet(key: string, rows: SourceRow[]): void;
81
+ /** Coalesce concurrent identical reads within the query. */
82
+ coalesce(key: string, load: () => Promise<SourceRow[]>): Promise<SourceRow[]>;
83
+ /** Full-scan materialization shared within the query (fallback path). */
84
+ materialize(key: string, load: () => Promise<SourceRow[]>): Promise<SourceRow[]>;
85
+ notePeakBuffered(rows: number): void;
86
+ /** Lazily open the provider's read context (once per query). */
87
+ readContext(provider: any): Promise<SourceReadContext>;
88
+ /** End the query: abort outstanding reads and close provider read contexts. */
89
+ close(): Promise<void>;
90
+ /**
91
+ * Invoke a provider operation and iterate its result as validated
92
+ * pages. Errors are wrapped with the source name and operation;
93
+ * {@link SourceUnsupportedError} and cancellation propagate as-is.
94
+ */
95
+ call(provider: any, operation: "scan" | "lookup" | "expand", name: string, kind: "node" | "relationship", request: Record<string, any>): AsyncGenerator<SourceRow[], void, unknown>;
96
+ private _page;
97
+ }
98
+ /** @internal The query context that produced a read context, if any. */
99
+ export declare function contextOf(readContext: SourceReadContext | null | undefined): SourceContext | null;
100
+ export default SourceContext;
101
+ //# sourceMappingURL=source_context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source_context.d.ts","sourceRoot":"","sources":["../../src/graph/source_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,iBAAiB,EAEjB,SAAS,EAEZ,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAc9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAqB/C;AAyCD;;;;GAIG;AACH,cAAM,aAAa;IACf,SAAgB,OAAO,EAAE,qBAAqB,CAAC;IAC/C,SAAgB,KAAK,EAAE,WAAW,CAAsB;IACxD,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,aAAa,CAAmD;IACxE,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,OAAO,GAAE,aAAkB,EAAE,UAAU,GAAE,OAAe;IAqBpE,IAAW,MAAM,IAAI,WAAW,CAE/B;IACD,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,8DAA8D;IACvD,MAAM,CAAC,MAAM,GAAE,MAA0B,GAAG,IAAI;IAMhD,gBAAgB,IAAI,IAAI;IAM/B,oEAAoE;IAC7D,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAS;IAO9C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAIrD,4DAA4D;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAOpF,yEAAyE;IAClE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAUhF,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,gEAAgE;IACnD,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwBnE,+EAA+E;IAClE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBnC;;;;OAIG;IACW,IAAI,CACd,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,cAAc,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,cAAc,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;IA8D7C,OAAO,CAAC,KAAK;CA6BhB;AAUD,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAEjG;AAwBD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
12
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
13
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
14
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
15
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
16
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
17
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
18
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
19
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
20
+ function fulfill(value) { resume("next", value); }
21
+ function reject(value) { resume("throw", value); }
22
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.emptySourceStats = emptySourceStats;
26
+ exports.canonicalKey = canonicalKey;
27
+ exports.contextOf = contextOf;
28
+ const source_provider_1 = require("./source_provider");
29
+ function emptySourceStats() {
30
+ return {
31
+ calls: { scan: 0, lookup: 0, expand: 0 },
32
+ pages: 0,
33
+ rows: 0,
34
+ cacheHits: 0,
35
+ cacheMisses: 0,
36
+ batches: 0,
37
+ materializations: 0,
38
+ fallbacks: 0,
39
+ cancellations: 0,
40
+ peakBufferedRows: 0,
41
+ plans: [],
42
+ };
43
+ }
44
+ /**
45
+ * Canonical, type-tagged cache key. `1` and `"1"` produce different
46
+ * keys; object keys are sorted so logically equal requests collide.
47
+ */
48
+ function canonicalKey(value) {
49
+ if (value === undefined)
50
+ return "u";
51
+ if (value === null)
52
+ return "z";
53
+ switch (typeof value) {
54
+ case "boolean":
55
+ return `b:${value}`;
56
+ case "number":
57
+ return `n:${Object.is(value, -0) ? 0 : value}`;
58
+ case "string":
59
+ return `s:${JSON.stringify(value)}`;
60
+ case "bigint":
61
+ return `i:${value.toString()}`;
62
+ }
63
+ if (Array.isArray(value)) {
64
+ return `[${value.map(canonicalKey).join(",")}]`;
65
+ }
66
+ if (typeof value === "object") {
67
+ const keys = Object.keys(value).sort();
68
+ return `{${keys.map((k) => `${JSON.stringify(k)}:${canonicalKey(value[k])}`).join(",")}}`;
69
+ }
70
+ return `x:${String(value)}`;
71
+ }
72
+ /** Row-weighted LRU cache of completed reads. */
73
+ class RowCache {
74
+ constructor(_capacity) {
75
+ this._capacity = _capacity;
76
+ this._entries = new Map();
77
+ this._weight = 0;
78
+ }
79
+ get(key) {
80
+ const rows = this._entries.get(key);
81
+ if (rows !== undefined) {
82
+ this._entries.delete(key);
83
+ this._entries.set(key, rows);
84
+ }
85
+ return rows;
86
+ }
87
+ set(key, rows) {
88
+ const weight = Math.max(1, rows.length);
89
+ if (weight > this._capacity)
90
+ return;
91
+ const existing = this._entries.get(key);
92
+ if (existing !== undefined) {
93
+ this._weight -= Math.max(1, existing.length);
94
+ this._entries.delete(key);
95
+ }
96
+ this._entries.set(key, rows);
97
+ this._weight += weight;
98
+ for (const [k, v] of this._entries) {
99
+ if (this._weight <= this._capacity)
100
+ break;
101
+ this._entries.delete(k);
102
+ this._weight -= Math.max(1, v.length);
103
+ }
104
+ }
105
+ get size() {
106
+ return this._entries.size;
107
+ }
108
+ }
109
+ /**
110
+ * Query-scoped state shared by every provider read of one top-level
111
+ * query (including nested virtual definition runs): options, stats,
112
+ * the read cache, cancellation and provider read contexts.
113
+ */
114
+ class SourceContext {
115
+ constructor(options = {}, provenance = false) {
116
+ var _a, _b, _c;
117
+ this.stats = emptySourceStats();
118
+ this._controller = new AbortController();
119
+ this._inflight = new Map();
120
+ this._readContexts = new Map();
121
+ this._materialized = new Map();
122
+ this._closed = false;
123
+ this._onExternalAbort = null;
124
+ this.options = {
125
+ pageSize: positive(options.pageSize, 256),
126
+ maxBatchSize: positive(options.maxBatchSize, 100),
127
+ cacheCapacity: Math.max(0, (_a = options.cacheCapacity) !== null && _a !== void 0 ? _a : 10000),
128
+ maxPrefetchRows: Math.max(0, (_b = options.maxPrefetchRows) !== null && _b !== void 0 ? _b : 1024),
129
+ reorder: (_c = options.reorder) !== null && _c !== void 0 ? _c : true,
130
+ };
131
+ this.provenance = provenance;
132
+ this._cache = new RowCache(this.options.cacheCapacity);
133
+ this._externalSignal = options.signal;
134
+ if (options.signal !== undefined) {
135
+ if (options.signal.aborted) {
136
+ this.cancel();
137
+ }
138
+ else {
139
+ this._onExternalAbort = () => this.cancel();
140
+ options.signal.addEventListener("abort", this._onExternalAbort);
141
+ }
142
+ }
143
+ }
144
+ get signal() {
145
+ return this._controller.signal;
146
+ }
147
+ get cancelled() {
148
+ return this._controller.signal.aborted;
149
+ }
150
+ /** Cancel the query: aborts every in-flight provider read. */
151
+ cancel(reason = "Query cancelled") {
152
+ if (!this._controller.signal.aborted) {
153
+ this.stats.cancellations++;
154
+ this._controller.abort(new source_provider_1.QueryCancelledError(reason));
155
+ }
156
+ }
157
+ throwIfCancelled() {
158
+ if (this._controller.signal.aborted) {
159
+ const reason = this._controller.signal.reason;
160
+ throw reason instanceof source_provider_1.QueryCancelledError ? reason : new source_provider_1.QueryCancelledError();
161
+ }
162
+ }
163
+ /** Await `promise`, rejecting early when the query is cancelled. */
164
+ race(promise) {
165
+ if (this.cancelled) {
166
+ promise.catch(() => undefined);
167
+ return Promise.reject(this._controller.signal.reason);
168
+ }
169
+ return new Promise((resolve, reject) => {
170
+ const onAbort = () => reject(this._controller.signal.reason);
171
+ this._controller.signal.addEventListener("abort", onAbort, { once: true });
172
+ promise.then((v) => {
173
+ this._controller.signal.removeEventListener("abort", onAbort);
174
+ resolve(v);
175
+ }, (e) => {
176
+ this._controller.signal.removeEventListener("abort", onAbort);
177
+ reject(e);
178
+ });
179
+ });
180
+ }
181
+ cacheGet(key) {
182
+ if (this.options.cacheCapacity === 0)
183
+ return undefined;
184
+ const rows = this._cache.get(key);
185
+ if (rows !== undefined)
186
+ this.stats.cacheHits++;
187
+ else
188
+ this.stats.cacheMisses++;
189
+ return rows;
190
+ }
191
+ cacheSet(key, rows) {
192
+ if (this.options.cacheCapacity === 0)
193
+ return;
194
+ this._cache.set(key, rows);
195
+ }
196
+ /** Coalesce concurrent identical reads within the query. */
197
+ coalesce(key, load) {
198
+ const pending = this._inflight.get(key);
199
+ if (pending !== undefined)
200
+ return pending;
201
+ const promise = load().finally(() => this._inflight.delete(key));
202
+ this._inflight.set(key, promise);
203
+ return promise;
204
+ }
205
+ /** Full-scan materialization shared within the query (fallback path). */
206
+ materialize(key, load) {
207
+ let pending = this._materialized.get(key);
208
+ if (pending === undefined) {
209
+ this.stats.materializations++;
210
+ pending = load();
211
+ this._materialized.set(key, pending);
212
+ pending.catch(() => this._materialized.delete(key));
213
+ }
214
+ return pending;
215
+ }
216
+ notePeakBuffered(rows) {
217
+ if (rows > this.stats.peakBufferedRows)
218
+ this.stats.peakBufferedRows = rows;
219
+ }
220
+ /** Lazily open the provider's read context (once per query). */
221
+ readContext(provider) {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ if (this._closed) {
224
+ throw new source_provider_1.SourceError("Query already finished; source reads are closed");
225
+ }
226
+ let opened = this._readContexts.get(provider);
227
+ if (opened === undefined) {
228
+ opened = (() => __awaiter(this, void 0, void 0, function* () {
229
+ return ({
230
+ provider,
231
+ snapshot: typeof provider.openReadContext === "function"
232
+ ? yield provider.openReadContext()
233
+ : undefined,
234
+ });
235
+ }))();
236
+ this._readContexts.set(provider, opened);
237
+ }
238
+ const ctx = yield opened;
239
+ const readContext = {
240
+ signal: this._controller.signal,
241
+ snapshot: ctx.snapshot,
242
+ };
243
+ Object.defineProperty(readContext, OWNER, { value: this, enumerable: false });
244
+ return readContext;
245
+ });
246
+ }
247
+ /** End the query: abort outstanding reads and close provider read contexts. */
248
+ close() {
249
+ return __awaiter(this, void 0, void 0, function* () {
250
+ if (this._closed)
251
+ return;
252
+ this._closed = true;
253
+ if (this._externalSignal !== undefined && this._onExternalAbort !== null) {
254
+ this._externalSignal.removeEventListener("abort", this._onExternalAbort);
255
+ }
256
+ if (!this._controller.signal.aborted) {
257
+ this._controller.abort(new source_provider_1.QueryCancelledError("Query finished"));
258
+ }
259
+ let firstError = null;
260
+ for (const opened of this._readContexts.values()) {
261
+ try {
262
+ const ctx = yield opened;
263
+ if (typeof ctx.provider.closeReadContext === "function") {
264
+ yield ctx.provider.closeReadContext(ctx.snapshot);
265
+ }
266
+ }
267
+ catch (e) {
268
+ if (firstError === null)
269
+ firstError = e;
270
+ }
271
+ }
272
+ this._readContexts.clear();
273
+ if (firstError !== null)
274
+ throw firstError;
275
+ });
276
+ }
277
+ /**
278
+ * Invoke a provider operation and iterate its result as validated
279
+ * pages. Errors are wrapped with the source name and operation;
280
+ * {@link SourceUnsupportedError} and cancellation propagate as-is.
281
+ */
282
+ call(provider, operation, name, kind, request) {
283
+ return __asyncGenerator(this, arguments, function* call_1() {
284
+ this.throwIfCancelled();
285
+ const readContext = yield __await(this.readContext(provider));
286
+ this.stats.calls[operation]++;
287
+ let result;
288
+ try {
289
+ result = provider[operation](Object.assign({ version: source_provider_1.SOURCE_CONTRACT_VERSION }, request), readContext);
290
+ }
291
+ catch (e) {
292
+ throw wrapError(e, name, operation);
293
+ }
294
+ try {
295
+ if (Array.isArray(result)) {
296
+ yield yield __await(this._page(result, name, operation, kind));
297
+ return yield __await(void 0);
298
+ }
299
+ if (result !== null &&
300
+ typeof result === "object" &&
301
+ typeof result.then === "function") {
302
+ const page = yield __await(this.race(result));
303
+ yield yield __await(this._page(page, name, operation, kind));
304
+ return yield __await(void 0);
305
+ }
306
+ if (result !== null && typeof result === "object") {
307
+ if (typeof result[Symbol.asyncIterator] === "function") {
308
+ const iterator = result[Symbol.asyncIterator]();
309
+ try {
310
+ while (true) {
311
+ const step = yield __await(this.race(iterator.next()));
312
+ if (step.done)
313
+ return yield __await(void 0);
314
+ yield yield __await(this._page(step.value, name, operation, kind));
315
+ }
316
+ }
317
+ finally {
318
+ // A generator suspended inside its own await only
319
+ // handles return() once that await settles; don't
320
+ // let a non-cooperative provider block cancellation.
321
+ const closing = closeIterator(iterator);
322
+ if (!this.cancelled)
323
+ yield __await(closing);
324
+ }
325
+ }
326
+ if (typeof result[Symbol.iterator] === "function") {
327
+ for (const page of result) {
328
+ this.throwIfCancelled();
329
+ yield yield __await(this._page(page, name, operation, kind));
330
+ }
331
+ return yield __await(void 0);
332
+ }
333
+ }
334
+ throw new source_provider_1.SourceResponseError(`Source ${name}: ${operation}() must return an array, a promise of an array, or an (async) iterable of arrays`, name, operation);
335
+ }
336
+ catch (e) {
337
+ throw wrapError(e, name, operation);
338
+ }
339
+ });
340
+ }
341
+ _page(page, name, operation, kind) {
342
+ this.throwIfCancelled();
343
+ if (!Array.isArray(page)) {
344
+ throw new source_provider_1.SourceResponseError(`Source ${name}: ${operation}() produced a page that is not an array`, name, operation);
345
+ }
346
+ for (const row of page) {
347
+ if (row === null || typeof row !== "object" || Array.isArray(row)) {
348
+ throw new source_provider_1.SourceResponseError(`Source ${name}: ${operation}() returned a row that is not an object`, name, operation);
349
+ }
350
+ if (kind === "node" ? !("id" in row) : !("left_id" in row) || !("right_id" in row)) {
351
+ throw new source_provider_1.SourceResponseError(`Source ${name}: ${operation}() returned a row without ${kind === "node" ? "id" : "left_id/right_id"}`, name, operation);
352
+ }
353
+ }
354
+ this.stats.pages++;
355
+ this.stats.rows += page.length;
356
+ return page;
357
+ }
358
+ }
359
+ function positive(value, fallback) {
360
+ return value !== undefined && Number.isFinite(value) && value >= 1
361
+ ? Math.floor(value)
362
+ : fallback;
363
+ }
364
+ const OWNER = Symbol("flowquery.sourceContext");
365
+ /** @internal The query context that produced a read context, if any. */
366
+ function contextOf(readContext) {
367
+ var _a;
368
+ return (_a = readContext === null || readContext === void 0 ? void 0 : readContext[OWNER]) !== null && _a !== void 0 ? _a : null;
369
+ }
370
+ function closeIterator(iterator) {
371
+ return __awaiter(this, void 0, void 0, function* () {
372
+ if (typeof iterator.return === "function") {
373
+ try {
374
+ yield iterator.return();
375
+ }
376
+ catch (_a) {
377
+ // Cleanup errors must not mask the primary outcome.
378
+ }
379
+ }
380
+ });
381
+ }
382
+ function wrapError(e, name, operation) {
383
+ if (e instanceof source_provider_1.SourceError ||
384
+ e instanceof source_provider_1.QueryCancelledError ||
385
+ e instanceof source_provider_1.SourceUnsupportedError) {
386
+ return e;
387
+ }
388
+ const message = e instanceof Error ? e.message : String(e);
389
+ return new source_provider_1.SourceError(`Source ${name}: ${operation}() failed: ${message}`, name, operation, e);
390
+ }
391
+ exports.default = SourceContext;
392
+ //# sourceMappingURL=source_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source_context.js","sourceRoot":"","sources":["../../src/graph/source_context.ts"],"names":[],"mappings":"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"}