flowquery 1.0.86 → 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.
- package/README.md +101 -0
- package/dist/compute/flowquery.d.ts +18 -0
- package/dist/compute/flowquery.d.ts.map +1 -1
- package/dist/compute/flowquery.js +26 -0
- package/dist/compute/flowquery.js.map +1 -1
- package/dist/compute/runner.d.ts +29 -0
- package/dist/compute/runner.d.ts.map +1 -1
- package/dist/compute/runner.js +111 -3
- package/dist/compute/runner.js.map +1 -1
- package/dist/extensibility.d.ts +4 -1
- package/dist/extensibility.d.ts.map +1 -1
- package/dist/extensibility.js +14 -1
- package/dist/extensibility.js.map +1 -1
- package/dist/flowquery.min.js +1 -1
- package/dist/graph/data.d.ts +1 -0
- package/dist/graph/data.d.ts.map +1 -1
- package/dist/graph/data.js +3 -0
- package/dist/graph/data.js.map +1 -1
- package/dist/graph/data_cache.d.ts +3 -1
- package/dist/graph/data_cache.d.ts.map +1 -1
- package/dist/graph/data_cache.js +5 -4
- package/dist/graph/data_cache.js.map +1 -1
- package/dist/graph/data_resolver.d.ts +13 -0
- package/dist/graph/data_resolver.d.ts.map +1 -1
- package/dist/graph/data_resolver.js +52 -0
- package/dist/graph/data_resolver.js.map +1 -1
- package/dist/graph/database.d.ts +19 -0
- package/dist/graph/database.d.ts.map +1 -1
- package/dist/graph/database.js +76 -0
- package/dist/graph/database.js.map +1 -1
- package/dist/graph/node.d.ts +21 -0
- package/dist/graph/node.d.ts.map +1 -1
- package/dist/graph/node.js +147 -0
- package/dist/graph/node.js.map +1 -1
- package/dist/graph/pattern.d.ts +19 -1
- package/dist/graph/pattern.d.ts.map +1 -1
- package/dist/graph/pattern.js +279 -1
- package/dist/graph/pattern.js.map +1 -1
- package/dist/graph/pattern_expression.d.ts +3 -1
- package/dist/graph/pattern_expression.d.ts.map +1 -1
- package/dist/graph/pattern_expression.js +8 -3
- package/dist/graph/pattern_expression.js.map +1 -1
- package/dist/graph/patterns.d.ts +2 -1
- package/dist/graph/patterns.d.ts.map +1 -1
- package/dist/graph/patterns.js +3 -3
- package/dist/graph/patterns.js.map +1 -1
- package/dist/graph/physical_node.d.ts +10 -1
- package/dist/graph/physical_node.d.ts.map +1 -1
- package/dist/graph/physical_node.js +19 -2
- package/dist/graph/physical_node.js.map +1 -1
- package/dist/graph/physical_relationship.d.ts +10 -1
- package/dist/graph/physical_relationship.d.ts.map +1 -1
- package/dist/graph/physical_relationship.js +21 -2
- package/dist/graph/physical_relationship.js.map +1 -1
- package/dist/graph/relationship.d.ts +25 -1
- package/dist/graph/relationship.d.ts.map +1 -1
- package/dist/graph/relationship.js +135 -0
- package/dist/graph/relationship.js.map +1 -1
- package/dist/graph/relationship_match_collector.d.ts +1 -1
- package/dist/graph/relationship_match_collector.d.ts.map +1 -1
- package/dist/graph/relationship_match_collector.js +29 -3
- package/dist/graph/relationship_match_collector.js.map +1 -1
- package/dist/graph/relationship_reference.d.ts.map +1 -1
- package/dist/graph/relationship_reference.js +1 -2
- package/dist/graph/relationship_reference.js.map +1 -1
- package/dist/graph/source_access.d.ts +107 -0
- package/dist/graph/source_access.d.ts.map +1 -0
- package/dist/graph/source_access.js +726 -0
- package/dist/graph/source_access.js.map +1 -0
- package/dist/graph/source_context.d.ts +101 -0
- package/dist/graph/source_context.d.ts.map +1 -0
- package/dist/graph/source_context.js +392 -0
- package/dist/graph/source_context.js.map +1 -0
- package/dist/graph/source_provider.d.ts +263 -0
- package/dist/graph/source_provider.d.ts.map +1 -0
- package/dist/graph/source_provider.js +306 -0
- package/dist/graph/source_provider.js.map +1 -0
- package/dist/graph/statement_source.d.ts +27 -0
- package/dist/graph/statement_source.d.ts.map +1 -0
- package/dist/graph/statement_source.js +117 -0
- package/dist/graph/statement_source.js.map +1 -0
- package/dist/graph/virtual_statement.d.ts +19 -1
- package/dist/graph/virtual_statement.d.ts.map +1 -1
- package/dist/graph/virtual_statement.js +197 -5
- package/dist/graph/virtual_statement.js.map +1 -1
- package/dist/index.browser.d.ts +3 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +14 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.node.d.ts +3 -0
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js +14 -1
- package/dist/index.node.js.map +1 -1
- package/dist/parsing/operations/aggregated_return.d.ts +2 -0
- package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_return.js +6 -0
- package/dist/parsing/operations/aggregated_return.js.map +1 -1
- package/dist/parsing/operations/aggregated_with.d.ts +2 -0
- package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_with.js +6 -0
- package/dist/parsing/operations/aggregated_with.js.map +1 -1
- package/dist/parsing/operations/create_node.d.ts +5 -1
- package/dist/parsing/operations/create_node.d.ts.map +1 -1
- package/dist/parsing/operations/create_node.js +20 -1
- package/dist/parsing/operations/create_node.js.map +1 -1
- package/dist/parsing/operations/create_relationship.d.ts +5 -1
- package/dist/parsing/operations/create_relationship.d.ts.map +1 -1
- package/dist/parsing/operations/create_relationship.js +21 -1
- package/dist/parsing/operations/create_relationship.js.map +1 -1
- package/dist/parsing/operations/limit.d.ts +1 -0
- package/dist/parsing/operations/limit.d.ts.map +1 -1
- package/dist/parsing/operations/limit.js +3 -0
- package/dist/parsing/operations/limit.js.map +1 -1
- package/dist/parsing/operations/match.d.ts +16 -0
- package/dist/parsing/operations/match.d.ts.map +1 -1
- package/dist/parsing/operations/match.js +104 -8
- package/dist/parsing/operations/match.js.map +1 -1
- package/dist/parsing/operations/operation.d.ts +6 -0
- package/dist/parsing/operations/operation.d.ts.map +1 -1
- package/dist/parsing/operations/operation.js +8 -0
- package/dist/parsing/operations/operation.js.map +1 -1
- package/dist/parsing/operations/return.d.ts +10 -0
- package/dist/parsing/operations/return.d.ts.map +1 -1
- package/dist/parsing/operations/return.js +23 -0
- package/dist/parsing/operations/return.js.map +1 -1
- package/dist/parsing/operations/unwind.d.ts +1 -0
- package/dist/parsing/operations/unwind.d.ts.map +1 -1
- package/dist/parsing/operations/unwind.js +9 -2
- package/dist/parsing/operations/unwind.js.map +1 -1
- package/dist/parsing/operations/where.d.ts +1 -0
- package/dist/parsing/operations/where.d.ts.map +1 -1
- package/dist/parsing/operations/where.js +4 -0
- package/dist/parsing/operations/where.js.map +1 -1
- package/dist/parsing/operations/with.d.ts +1 -0
- package/dist/parsing/operations/with.d.ts.map +1 -1
- package/dist/parsing/operations/with.js +4 -0
- package/dist/parsing/operations/with.js.map +1 -1
- package/dist/parsing/parser.d.ts.map +1 -1
- package/dist/parsing/parser.js +20 -2
- package/dist/parsing/parser.js.map +1 -1
- 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":"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"}
|
|
@@ -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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"}
|