flowquery 1.0.86 → 1.0.88
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
|
@@ -19,6 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
const data_resolver_1 = __importDefault(require("./data_resolver"));
|
|
22
23
|
const node_reference_1 = __importDefault(require("./node_reference"));
|
|
23
24
|
const pattern_1 = __importDefault(require("./pattern"));
|
|
24
25
|
class PatternExpression extends pattern_1.default {
|
|
@@ -26,6 +27,7 @@ class PatternExpression extends pattern_1.default {
|
|
|
26
27
|
super(...arguments);
|
|
27
28
|
this._fetched = false;
|
|
28
29
|
this._evaluation = false;
|
|
30
|
+
this._fetchedContext = null;
|
|
29
31
|
}
|
|
30
32
|
set identifier(id) {
|
|
31
33
|
throw new Error("Cannot set identifier on PatternExpression");
|
|
@@ -75,12 +77,15 @@ class PatternExpression extends pattern_1.default {
|
|
|
75
77
|
const _super = Object.create(null, {
|
|
76
78
|
fetchData: { get: () => super.fetchData }
|
|
77
79
|
});
|
|
78
|
-
return __awaiter(this,
|
|
79
|
-
|
|
80
|
+
return __awaiter(this, arguments, void 0, function* (ctx = null) {
|
|
81
|
+
const context = ctx !== null && ctx !== void 0 ? ctx : data_resolver_1.default.getInstance().sourceContext;
|
|
82
|
+
// Source-backed access is bound to one query's context.
|
|
83
|
+
if (this._fetched && (!this.deferred || this._fetchedContext === context)) {
|
|
80
84
|
return;
|
|
81
85
|
}
|
|
82
|
-
yield _super.fetchData.call(this);
|
|
86
|
+
yield _super.fetchData.call(this, context);
|
|
83
87
|
this._fetched = true;
|
|
88
|
+
this._fetchedContext = context;
|
|
84
89
|
});
|
|
85
90
|
}
|
|
86
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern_expression.js","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pattern_expression.js","sourceRoot":"","sources":["../../src/graph/pattern_expression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,oEAA2C;AAE3C,sEAA6C;AAC7C,wDAAgC;AAIhC,MAAM,iBAAkB,SAAQ,iBAAO;IAAvC;;QACY,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAY,KAAK,CAAC;QAC7B,oBAAe,GAAyB,IAAI,CAAC;IAwCzD,CAAC;IAvCG,IAAW,UAAU,CAAC,EAAiB;QACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IACM,UAAU,CAAC,OAA4B;QAC1C,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACM,MAAM;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,OAAO,YAAY,wBAAa,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IACY,QAAQ;;;YACjB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;;gBACzB,KAAsB,eAAA,KAAA,cAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA,IAAA,sDAAE,CAAC;oBAAxB,cAAqB;oBAArB,WAAqB;oBAAhC,MAAM,CAAC,KAAA,CAAA;oBACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,CAAC;;;;;;;;;QACL,CAAC;KAAA;IACM,KAAK;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACY,SAAS;;;;6DAAC,MAA4B,IAAI;YACnD,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,uBAAY,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC;YAChE,wDAAwD;YACxD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,EAAE,CAAC;gBACxE,OAAO;YACX,CAAC;YACD,MAAM,OAAM,SAAS,YAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACnC,CAAC;KAAA;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
|
package/dist/graph/patterns.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Pattern from "./pattern";
|
|
2
|
+
import type SourceContext from "./source_context";
|
|
2
3
|
declare class Patterns {
|
|
3
4
|
private _patterns;
|
|
4
5
|
constructor(patterns?: Pattern[]);
|
|
5
6
|
get patterns(): Pattern[];
|
|
6
|
-
initialize(): Promise<void>;
|
|
7
|
+
initialize(ctx?: SourceContext | null): Promise<void>;
|
|
7
8
|
traverse(): AsyncGenerator<void>;
|
|
8
9
|
private _chainPatterns;
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAElD,cAAM,QAAQ;IACV,OAAO,CAAC,SAAS,CAAiB;gBACtB,QAAQ,GAAE,OAAO,EAAO;IAGpC,IAAW,QAAQ,IAAI,OAAO,EAAE,CAE/B;IACY,UAAU,CAAC,GAAG,GAAE,aAAa,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC;YAI/B,cAAc;CAShC;AAED,eAAe,QAAQ,CAAC"}
|
package/dist/graph/patterns.js
CHANGED
|
@@ -43,9 +43,9 @@ class Patterns {
|
|
|
43
43
|
return this._patterns;
|
|
44
44
|
}
|
|
45
45
|
initialize() {
|
|
46
|
-
return __awaiter(this,
|
|
46
|
+
return __awaiter(this, arguments, void 0, function* (ctx = null) {
|
|
47
47
|
for (const pattern of this._patterns) {
|
|
48
|
-
yield pattern.fetchData();
|
|
48
|
+
yield pattern.fetchData(ctx);
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
}
|
|
@@ -60,7 +60,7 @@ class Patterns {
|
|
|
60
60
|
return __asyncGenerator(this, arguments, function* _chainPatterns_1() {
|
|
61
61
|
var _a, e_1, _b, _c;
|
|
62
62
|
try {
|
|
63
|
-
for (var _d = true, _e = __asyncValues(this._patterns[index].
|
|
63
|
+
for (var _d = true, _e = __asyncValues(this._patterns[index].traverse()), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
|
|
64
64
|
_c = _f.value;
|
|
65
65
|
_d = false;
|
|
66
66
|
const _ = _c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/graph/patterns.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,QAAQ;IAEV,YAAY,WAAsB,EAAE;QAD5B,cAAS,GAAc,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACY,UAAU;6DAAC,MAA4B,IAAI;YACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;KAAA;IACa,QAAQ;;YAClB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,6BAAO;YACxC,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;QAClC,CAAC;KAAA;IACc,cAAc,CAAC,KAAa;;;;gBACvC,KAAsB,eAAA,KAAA,cAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA,IAAA,+DAAE,CAAC;oBAAnC,cAAgC;oBAAhC,WAAgC;oBAA3C,MAAM,CAAC,KAAA,CAAA;oBACd,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBACpC,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACJ,2BAAK,CAAC;oBACV,CAAC;gBACL,CAAC;;;;;;;;;QACL,CAAC;KAAA;CACJ;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import ASTNode from "../parsing/ast_node";
|
|
2
2
|
import Node from "./node";
|
|
3
|
+
import type SourceContext from "./source_context";
|
|
4
|
+
import { NodeSourceProvider } from "./source_provider";
|
|
5
|
+
import VirtualStatement from "./virtual_statement";
|
|
3
6
|
declare class PhysicalNode extends Node {
|
|
4
7
|
private _virtual;
|
|
8
|
+
private _provider;
|
|
5
9
|
set statement(statement: ASTNode | null);
|
|
6
10
|
get statement(): ASTNode | null;
|
|
11
|
+
/** @internal The backing statement wrapper (for capability opt-in). */
|
|
12
|
+
get virtual(): VirtualStatement;
|
|
13
|
+
/** Source provider serving this label, or `null` for legacy eager loading. */
|
|
14
|
+
get provider(): NodeSourceProvider | null;
|
|
15
|
+
set provider(provider: NodeSourceProvider | null);
|
|
7
16
|
set isStatic(value: boolean);
|
|
8
17
|
get isStatic(): boolean;
|
|
9
18
|
set refreshEveryMs(value: number | null);
|
|
10
19
|
get refreshEveryMs(): number | null;
|
|
11
20
|
invalidateCache(): void;
|
|
12
|
-
data(args?: Record<string, any> | null, provenance?: boolean): Promise<Record<string, any>[]>;
|
|
21
|
+
data(args?: Record<string, any> | null, provenance?: boolean, sourceContext?: SourceContext | null): Promise<Record<string, any>[]>;
|
|
13
22
|
}
|
|
14
23
|
export default PhysicalNode;
|
|
15
24
|
//# sourceMappingURL=physical_node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_node.d.ts","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"physical_node.d.ts","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAEnD,cAAM,YAAa,SAAQ,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,SAAS,CAAmC;IAEpD,IAAW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,uEAAuE;IACvE,IAAW,OAAO,IAAI,gBAAgB,CAErC;IACD,8EAA8E;IAC9E,IAAW,QAAQ,IAAI,kBAAkB,GAAG,IAAI,CAE/C;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EAEtD;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE7C;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACM,eAAe,IAAI,IAAI;IAGvB,IAAI,CACP,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EACvC,UAAU,GAAE,OAAe,EAC3B,aAAa,GAAE,aAAa,GAAG,IAAW,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAapC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -4,11 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_1 = __importDefault(require("./node"));
|
|
7
|
+
const statement_source_1 = require("./statement_source");
|
|
7
8
|
const virtual_statement_1 = __importDefault(require("./virtual_statement"));
|
|
8
9
|
class PhysicalNode extends node_1.default {
|
|
9
10
|
constructor() {
|
|
10
11
|
super(...arguments);
|
|
11
12
|
this._virtual = new virtual_statement_1.default();
|
|
13
|
+
this._provider = null;
|
|
12
14
|
}
|
|
13
15
|
set statement(statement) {
|
|
14
16
|
this._virtual.statement = statement;
|
|
@@ -16,6 +18,17 @@ class PhysicalNode extends node_1.default {
|
|
|
16
18
|
get statement() {
|
|
17
19
|
return this._virtual.statement;
|
|
18
20
|
}
|
|
21
|
+
/** @internal The backing statement wrapper (for capability opt-in). */
|
|
22
|
+
get virtual() {
|
|
23
|
+
return this._virtual;
|
|
24
|
+
}
|
|
25
|
+
/** Source provider serving this label, or `null` for legacy eager loading. */
|
|
26
|
+
get provider() {
|
|
27
|
+
return this._provider;
|
|
28
|
+
}
|
|
29
|
+
set provider(provider) {
|
|
30
|
+
this._provider = provider;
|
|
31
|
+
}
|
|
19
32
|
set isStatic(value) {
|
|
20
33
|
this._virtual.isStatic = value;
|
|
21
34
|
}
|
|
@@ -31,8 +44,12 @@ class PhysicalNode extends node_1.default {
|
|
|
31
44
|
invalidateCache() {
|
|
32
45
|
this._virtual.invalidateCache();
|
|
33
46
|
}
|
|
34
|
-
data(args = null, provenance = false) {
|
|
35
|
-
|
|
47
|
+
data(args = null, provenance = false, sourceContext = null) {
|
|
48
|
+
var _a;
|
|
49
|
+
if (this._virtual.statement === null && this._provider !== null) {
|
|
50
|
+
return (0, statement_source_1.materializeScan)(this._provider, "node", (_a = this.label) !== null && _a !== void 0 ? _a : "", { label: this.label }, args, sourceContext);
|
|
51
|
+
}
|
|
52
|
+
return this._virtual.data(args, provenance, sourceContext);
|
|
36
53
|
}
|
|
37
54
|
}
|
|
38
55
|
exports.default = PhysicalNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_node.js","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"physical_node.js","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;AAG1B,yDAAqD;AACrD,4EAAmD;AAEnD,MAAM,YAAa,SAAQ,cAAI;IAA/B;;QACY,aAAQ,GAAqB,IAAI,2BAAgB,EAAE,CAAC;QACpD,cAAS,GAA8B,IAAI,CAAC;IAmDxD,CAAC;IAjDG,IAAW,SAAS,CAAC,SAAyB;QAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IACxC,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,CAAC;IACD,uEAAuE;IACvE,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,8EAA8E;IAC9E,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,QAAmC;QACnD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ,CAAC,KAAc;QAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IACD,IAAW,cAAc,CAAC,KAAoB;QAC1C,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;IACzC,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxC,CAAC;IACM,eAAe;QAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC;IACM,IAAI,CACP,OAAmC,IAAI,EACvC,aAAsB,KAAK,EAC3B,gBAAsC,IAAI;;QAE1C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,IAAA,kCAAe,EAClB,IAAI,CAAC,SAAS,EACd,MAAM,EACN,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,EAChB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACrB,IAAI,EACJ,aAAa,CAChB,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import ASTNode from "../parsing/ast_node";
|
|
2
2
|
import Relationship from "./relationship";
|
|
3
|
+
import type SourceContext from "./source_context";
|
|
4
|
+
import { RelationshipSourceProvider } from "./source_provider";
|
|
5
|
+
import VirtualStatement from "./virtual_statement";
|
|
3
6
|
declare class PhysicalRelationship extends Relationship {
|
|
4
7
|
private _virtual;
|
|
8
|
+
private _provider;
|
|
5
9
|
set statement(statement: ASTNode | null);
|
|
6
10
|
get statement(): ASTNode | null;
|
|
11
|
+
/** @internal The backing statement wrapper (for capability opt-in). */
|
|
12
|
+
get virtual(): VirtualStatement;
|
|
13
|
+
/** Source provider serving this relationship, or `null` for legacy eager loading. */
|
|
14
|
+
get provider(): RelationshipSourceProvider | null;
|
|
15
|
+
set provider(provider: RelationshipSourceProvider | null);
|
|
7
16
|
set isStatic(value: boolean);
|
|
8
17
|
get isStatic(): boolean;
|
|
9
18
|
set refreshEveryMs(value: number | null);
|
|
10
19
|
get refreshEveryMs(): number | null;
|
|
11
20
|
invalidateCache(): void;
|
|
12
|
-
data(args?: Record<string, any> | null, provenance?: boolean): Promise<Record<string, any>[]>;
|
|
21
|
+
data(args?: Record<string, any> | null, provenance?: boolean, sourceContext?: SourceContext | null): Promise<Record<string, any>[]>;
|
|
13
22
|
}
|
|
14
23
|
export default PhysicalRelationship;
|
|
15
24
|
//# sourceMappingURL=physical_relationship.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_relationship.d.ts","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"physical_relationship.d.ts","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAEnD,cAAM,oBAAqB,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,SAAS,CAA2C;IAE5D,IAAW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,uEAAuE;IACvE,IAAW,OAAO,IAAI,gBAAgB,CAErC;IACD,qFAAqF;IACrF,IAAW,QAAQ,IAAI,0BAA0B,GAAG,IAAI,CAEvD;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,EAE9D;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE7C;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACM,eAAe,IAAI,IAAI;IAGvB,IAAI,CACP,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EACvC,UAAU,GAAE,OAAe,EAC3B,aAAa,GAAE,aAAa,GAAG,IAAW,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAepC;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -4,11 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const relationship_1 = __importDefault(require("./relationship"));
|
|
7
|
+
const statement_source_1 = require("./statement_source");
|
|
7
8
|
const virtual_statement_1 = __importDefault(require("./virtual_statement"));
|
|
8
9
|
class PhysicalRelationship extends relationship_1.default {
|
|
9
10
|
constructor() {
|
|
10
11
|
super(...arguments);
|
|
11
12
|
this._virtual = new virtual_statement_1.default();
|
|
13
|
+
this._provider = null;
|
|
12
14
|
}
|
|
13
15
|
set statement(statement) {
|
|
14
16
|
this._virtual.statement = statement;
|
|
@@ -16,6 +18,17 @@ class PhysicalRelationship extends relationship_1.default {
|
|
|
16
18
|
get statement() {
|
|
17
19
|
return this._virtual.statement;
|
|
18
20
|
}
|
|
21
|
+
/** @internal The backing statement wrapper (for capability opt-in). */
|
|
22
|
+
get virtual() {
|
|
23
|
+
return this._virtual;
|
|
24
|
+
}
|
|
25
|
+
/** Source provider serving this relationship, or `null` for legacy eager loading. */
|
|
26
|
+
get provider() {
|
|
27
|
+
return this._provider;
|
|
28
|
+
}
|
|
29
|
+
set provider(provider) {
|
|
30
|
+
this._provider = provider;
|
|
31
|
+
}
|
|
19
32
|
set isStatic(value) {
|
|
20
33
|
this._virtual.isStatic = value;
|
|
21
34
|
}
|
|
@@ -31,8 +44,14 @@ class PhysicalRelationship extends relationship_1.default {
|
|
|
31
44
|
invalidateCache() {
|
|
32
45
|
this._virtual.invalidateCache();
|
|
33
46
|
}
|
|
34
|
-
data(args = null, provenance = false) {
|
|
35
|
-
|
|
47
|
+
data(args = null, provenance = false, sourceContext = null) {
|
|
48
|
+
var _a, _b, _c, _d;
|
|
49
|
+
if (this._virtual.statement === null && this._provider !== null) {
|
|
50
|
+
const sourceLabel = (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : null;
|
|
51
|
+
const targetLabel = (_d = (_c = this.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null;
|
|
52
|
+
return (0, statement_source_1.materializeScan)(this._provider, "relationship", `(:${sourceLabel !== null && sourceLabel !== void 0 ? sourceLabel : ""})-[:${this.type}]->(:${targetLabel !== null && targetLabel !== void 0 ? targetLabel : ""})`, { type: this.type, sourceLabel, targetLabel }, args, sourceContext);
|
|
53
|
+
}
|
|
54
|
+
return this._virtual.data(args, provenance, sourceContext);
|
|
36
55
|
}
|
|
37
56
|
}
|
|
38
57
|
exports.default = PhysicalRelationship;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_relationship.js","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":";;;;;AACA,kEAA0C;
|
|
1
|
+
{"version":3,"file":"physical_relationship.js","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":";;;;;AACA,kEAA0C;AAG1C,yDAAqD;AACrD,4EAAmD;AAEnD,MAAM,oBAAqB,SAAQ,sBAAY;IAA/C;;QACY,aAAQ,GAAqB,IAAI,2BAAgB,EAAE,CAAC;QACpD,cAAS,GAAsC,IAAI,CAAC;IAqDhE,CAAC;IAnDG,IAAW,SAAS,CAAC,SAAyB;QAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IACxC,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnC,CAAC;IACD,uEAAuE;IACvE,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,qFAAqF;IACrF,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,QAA2C;QAC3D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ,CAAC,KAAc;QAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IACD,IAAW,cAAc,CAAC,KAAoB;QAC1C,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;IACzC,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxC,CAAC;IACM,eAAe;QAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC;IACM,IAAI,CACP,OAAmC,IAAI,EACvC,aAAsB,KAAK,EAC3B,gBAAsC,IAAI;;QAE1C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI,CAAC;YAC/C,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI,CAAC;YAC/C,OAAO,IAAA,kCAAe,EAClB,IAAI,CAAC,SAAS,EACd,cAAc,EACd,KAAK,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,OAAO,IAAI,CAAC,IAAI,QAAQ,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,GAAG,EAClE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAC7C,IAAI,EACJ,aAAa,CAChB,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -2,8 +2,9 @@ import ASTNode from "../parsing/ast_node";
|
|
|
2
2
|
import Expression from "../parsing/expressions/expression";
|
|
3
3
|
import Hops from "./hops";
|
|
4
4
|
import Node from "./node";
|
|
5
|
-
import RelationshipData from "./relationship_data";
|
|
5
|
+
import RelationshipData, { RelationshipRecord } from "./relationship_data";
|
|
6
6
|
import RelationshipMatchCollector, { RelationshipMatchRecord } from "./relationship_match_collector";
|
|
7
|
+
import { RelationshipAccess, SourceTerms } from "./source_access";
|
|
7
8
|
declare class Relationship extends ASTNode {
|
|
8
9
|
protected _identifier: string | null;
|
|
9
10
|
protected _types: string[];
|
|
@@ -15,6 +16,8 @@ declare class Relationship extends ASTNode {
|
|
|
15
16
|
protected _target: Node | null;
|
|
16
17
|
protected _direction: "left" | "right";
|
|
17
18
|
private _data;
|
|
19
|
+
private _access;
|
|
20
|
+
private _frames;
|
|
18
21
|
constructor(identifier?: string | null, type?: string | null);
|
|
19
22
|
set identifier(identifier: string);
|
|
20
23
|
get identifier(): string | null;
|
|
@@ -40,9 +43,30 @@ declare class Relationship extends ASTNode {
|
|
|
40
43
|
get matches(): RelationshipMatchRecord[];
|
|
41
44
|
setData(data: RelationshipData | null): void;
|
|
42
45
|
getData(): RelationshipData | null;
|
|
46
|
+
/** @internal Provider-backed access; when set, rows are fetched on demand. */
|
|
47
|
+
setAccess(access: RelationshipAccess | null): void;
|
|
48
|
+
get access(): RelationshipAccess | null;
|
|
49
|
+
sourceTerms(): SourceTerms;
|
|
50
|
+
/** Stored endpoint matched against the traversal's current node id. */
|
|
51
|
+
get anchorSide(): "left" | "right";
|
|
52
|
+
/** Stored endpoint holding the id of the next node in traversal order. */
|
|
53
|
+
get nextField(): "left_id" | "right_id";
|
|
54
|
+
/** The relationship row bound at `hop` (deferred frames or legacy data cursor). */
|
|
55
|
+
currentRecord(hop?: number): RelationshipRecord | null;
|
|
56
|
+
/** @internal Bind a row for `hop` (used by reversed plans). */
|
|
57
|
+
setFrame(hop: number, record: RelationshipRecord): void;
|
|
58
|
+
/** @internal Unbind the row for `hop` (end of a reversed match). */
|
|
59
|
+
clearFrame(hop: number): void;
|
|
60
|
+
/** @internal Push a match for an explicitly supplied row. */
|
|
61
|
+
pushMatch(record: RelationshipRecord, traversalId: string): void;
|
|
62
|
+
/** @internal Pop the most recent match. */
|
|
63
|
+
popMatch(): void;
|
|
43
64
|
setEndNode(node: Node): void;
|
|
44
65
|
_left_id_or_right_id(): string;
|
|
45
66
|
find(left_id: string, hop?: number): AsyncGenerator<void>;
|
|
67
|
+
private _deferredFind;
|
|
68
|
+
private _visit;
|
|
69
|
+
matchesRecord(record: RelationshipRecord): boolean;
|
|
46
70
|
}
|
|
47
71
|
export default Relationship;
|
|
48
72
|
//# sourceMappingURL=relationship.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
const ast_node_1 = __importDefault(require("../parsing/ast_node"));
|
|
32
32
|
const hops_1 = __importDefault(require("./hops"));
|
|
33
33
|
const relationship_match_collector_1 = __importDefault(require("./relationship_match_collector"));
|
|
34
|
+
const source_access_1 = require("./source_access");
|
|
34
35
|
class Relationship extends ast_node_1.default {
|
|
35
36
|
constructor(identifier = null, type = null) {
|
|
36
37
|
super();
|
|
@@ -44,6 +45,8 @@ class Relationship extends ast_node_1.default {
|
|
|
44
45
|
this._target = null;
|
|
45
46
|
this._direction = "right";
|
|
46
47
|
this._data = null;
|
|
48
|
+
this._access = null;
|
|
49
|
+
this._frames = new Map();
|
|
47
50
|
this._identifier = identifier;
|
|
48
51
|
if (type !== null) {
|
|
49
52
|
this._types = [type];
|
|
@@ -135,6 +138,52 @@ class Relationship extends ast_node_1.default {
|
|
|
135
138
|
getData() {
|
|
136
139
|
return this._data;
|
|
137
140
|
}
|
|
141
|
+
/** @internal Provider-backed access; when set, rows are fetched on demand. */
|
|
142
|
+
setAccess(access) {
|
|
143
|
+
this._access = access;
|
|
144
|
+
this._frames.clear();
|
|
145
|
+
}
|
|
146
|
+
get access() {
|
|
147
|
+
return this._access;
|
|
148
|
+
}
|
|
149
|
+
sourceTerms() {
|
|
150
|
+
return (0, source_access_1.buildTerms)(this._properties, []);
|
|
151
|
+
}
|
|
152
|
+
/** Stored endpoint matched against the traversal's current node id. */
|
|
153
|
+
get anchorSide() {
|
|
154
|
+
return this._direction === "left" ? "right" : "left";
|
|
155
|
+
}
|
|
156
|
+
/** Stored endpoint holding the id of the next node in traversal order. */
|
|
157
|
+
get nextField() {
|
|
158
|
+
return this._direction === "left" ? "left_id" : "right_id";
|
|
159
|
+
}
|
|
160
|
+
/** The relationship row bound at `hop` (deferred frames or legacy data cursor). */
|
|
161
|
+
currentRecord(hop = 0) {
|
|
162
|
+
var _a, _b;
|
|
163
|
+
const frame = this._frames.get(hop);
|
|
164
|
+
if (frame !== undefined || this._access !== null) {
|
|
165
|
+
return frame !== null && frame !== void 0 ? frame : null;
|
|
166
|
+
}
|
|
167
|
+
return (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.current(hop)) !== null && _b !== void 0 ? _b : null;
|
|
168
|
+
}
|
|
169
|
+
/** @internal Bind a row for `hop` (used by reversed plans). */
|
|
170
|
+
setFrame(hop, record) {
|
|
171
|
+
this._frames.set(hop, record);
|
|
172
|
+
}
|
|
173
|
+
/** @internal Unbind the row for `hop` (end of a reversed match). */
|
|
174
|
+
clearFrame(hop) {
|
|
175
|
+
this._frames.delete(hop);
|
|
176
|
+
}
|
|
177
|
+
/** @internal Push a match for an explicitly supplied row. */
|
|
178
|
+
pushMatch(record, traversalId) {
|
|
179
|
+
this._matches.push(this, traversalId, record);
|
|
180
|
+
this._value = this._matches.value();
|
|
181
|
+
}
|
|
182
|
+
/** @internal Pop the most recent match. */
|
|
183
|
+
popMatch() {
|
|
184
|
+
this._matches.pop();
|
|
185
|
+
this._value = this._matches.value();
|
|
186
|
+
}
|
|
138
187
|
setEndNode(node) {
|
|
139
188
|
this._matches.endNode = node;
|
|
140
189
|
}
|
|
@@ -144,6 +193,10 @@ class Relationship extends ast_node_1.default {
|
|
|
144
193
|
find(left_id_1) {
|
|
145
194
|
return __asyncGenerator(this, arguments, function* find_1(left_id, hop = 0) {
|
|
146
195
|
var _a, _b, _c;
|
|
196
|
+
if (this._access !== null) {
|
|
197
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this._deferredFind(left_id, hop))));
|
|
198
|
+
return yield __await(void 0);
|
|
199
|
+
}
|
|
147
200
|
// Save original source node
|
|
148
201
|
const original = this._source;
|
|
149
202
|
if (hop > 0) {
|
|
@@ -191,6 +244,88 @@ class Relationship extends ast_node_1.default {
|
|
|
191
244
|
}
|
|
192
245
|
});
|
|
193
246
|
}
|
|
247
|
+
_deferredFind(left_id, hop) {
|
|
248
|
+
return __asyncGenerator(this, arguments, function* _deferredFind_1() {
|
|
249
|
+
var _a, e_1, _b, _c;
|
|
250
|
+
var _d;
|
|
251
|
+
const original = this._source;
|
|
252
|
+
if (hop > 0) {
|
|
253
|
+
this._source = this._target;
|
|
254
|
+
}
|
|
255
|
+
try {
|
|
256
|
+
if (hop === 0 && ((_d = this.hops) === null || _d === void 0 ? void 0 : _d.multi()) && this.hops.min === 0 && this._target) {
|
|
257
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this._target.find(left_id, hop))));
|
|
258
|
+
}
|
|
259
|
+
const { terms: allTerms, args } = this.sourceTerms();
|
|
260
|
+
// Hops below the minimum are traversed without a property check,
|
|
261
|
+
// so their edges must not be filtered by the source either.
|
|
262
|
+
const terms = hop + 1 >= this.hops.min ? allTerms : [];
|
|
263
|
+
const target = this._target;
|
|
264
|
+
try {
|
|
265
|
+
for (var _e = true, _f = __asyncValues(this._access.expand(left_id, this.anchorSide, terms, args)), _g; _g = yield __await(_f.next()), _a = _g.done, !_a; _e = true) {
|
|
266
|
+
_c = _g.value;
|
|
267
|
+
_e = false;
|
|
268
|
+
const page = _c;
|
|
269
|
+
if (target !== null &&
|
|
270
|
+
target.access !== null &&
|
|
271
|
+
target.access.deferred &&
|
|
272
|
+
page.length > 1) {
|
|
273
|
+
const targetTerms = target.sourceTerms();
|
|
274
|
+
yield __await(target.access.prefetch(page.map((row) => row[this.nextField]), targetTerms.terms, targetTerms.args));
|
|
275
|
+
}
|
|
276
|
+
for (const row of page) {
|
|
277
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this._visit(row, left_id, hop))));
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
282
|
+
finally {
|
|
283
|
+
try {
|
|
284
|
+
if (!_e && !_a && (_b = _f.return)) yield __await(_b.call(_f));
|
|
285
|
+
}
|
|
286
|
+
finally { if (e_1) throw e_1.error; }
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
this._source = original;
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
_visit(record, left_id, hop) {
|
|
295
|
+
return __asyncGenerator(this, arguments, function* _visit_1() {
|
|
296
|
+
this._frames.set(hop, record);
|
|
297
|
+
const id = record[this.nextField];
|
|
298
|
+
if (hop + 1 >= this.hops.min) {
|
|
299
|
+
if (!this.matchesRecord(record)) {
|
|
300
|
+
return yield __await(void 0);
|
|
301
|
+
}
|
|
302
|
+
this.pushMatch(record, left_id);
|
|
303
|
+
try {
|
|
304
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this._target.find(id, hop))));
|
|
305
|
+
if (hop + 1 < this.hops.max && !this._matches.isCircular(id)) {
|
|
306
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this.find(id, hop + 1))));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
finally {
|
|
310
|
+
this._matches.pop();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
yield __await(yield* __asyncDelegator(__asyncValues(this.find(id, hop + 1))));
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
matchesRecord(record) {
|
|
319
|
+
for (const [key, expression] of this._properties) {
|
|
320
|
+
if (!(key in record)) {
|
|
321
|
+
throw new Error("Relationship does not have property");
|
|
322
|
+
}
|
|
323
|
+
if (record[key] !== expression.value()) {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
194
329
|
}
|
|
195
330
|
exports.default = Relationship;
|
|
196
331
|
//# sourceMappingURL=relationship.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship.js","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA0C;AAE1C,kDAA0B;AAG1B,kGAEwC;
|
|
1
|
+
{"version":3,"file":"relationship.js","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ declare class RelationshipMatchCollector {
|
|
|
10
10
|
private _matches;
|
|
11
11
|
private _nodeIds;
|
|
12
12
|
private _nodeIdSet;
|
|
13
|
-
push(relationship: Relationship, traversalId: string): RelationshipMatchRecord;
|
|
13
|
+
push(relationship: Relationship, traversalId: string, record?: Record<string, any> | null): RelationshipMatchRecord;
|
|
14
14
|
set endNode(node: any);
|
|
15
15
|
pop(): RelationshipMatchRecord | undefined;
|
|
16
16
|
value(): RelationshipMatchRecord | RelationshipMatchRecord[] | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship_match_collector.d.ts","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,cAAM,0BAA0B;IAC5B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAA0B;IAErC,IAAI,
|
|
1
|
+
{"version":3,"file":"relationship_match_collector.d.ts","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,cAAM,0BAA0B;IAC5B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAA0B;IAErC,IAAI,CACP,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACpC,uBAAuB;IAuC1B,IAAW,OAAO,CAAC,IAAI,EAAE,GAAG,EAI3B;IACM,GAAG,IAAI,uBAAuB,GAAG,SAAS;IAO1C,KAAK,IAAI,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,IAAI;IAW1E,IAAW,OAAO,IAAI,uBAAuB,EAAE,CAE9C;IAKM,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAG7C;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
const virtual_sources_1 = require("./virtual_sources");
|
|
4
15
|
class RelationshipMatchCollector {
|
|
@@ -7,12 +18,27 @@ class RelationshipMatchCollector {
|
|
|
7
18
|
this._nodeIds = [];
|
|
8
19
|
this._nodeIdSet = new Set();
|
|
9
20
|
}
|
|
10
|
-
push(relationship, traversalId) {
|
|
21
|
+
push(relationship, traversalId, record) {
|
|
11
22
|
var _a;
|
|
12
23
|
const data = relationship.getData();
|
|
13
|
-
|
|
24
|
+
// Provider-backed relationships supply the bound row explicitly
|
|
25
|
+
// (or expose it via currentRecord) instead of a data cursor.
|
|
26
|
+
const explicit = record !== undefined || relationship.access !== null;
|
|
27
|
+
const currentRecord = explicit
|
|
28
|
+
? (record !== null && record !== void 0 ? record : relationship.currentRecord(0))
|
|
29
|
+
: data === null || data === void 0 ? void 0 : data.current();
|
|
14
30
|
const actualType = currentRecord && "_type" in currentRecord ? currentRecord["_type"] : relationship.type;
|
|
15
|
-
|
|
31
|
+
let relProperties;
|
|
32
|
+
if (explicit) {
|
|
33
|
+
relProperties = {};
|
|
34
|
+
if (currentRecord != null) {
|
|
35
|
+
const { left_id, right_id, _type } = currentRecord, props = __rest(currentRecord, ["left_id", "right_id", "_type"]);
|
|
36
|
+
relProperties = props;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
relProperties = data === null || data === void 0 ? void 0 : data.properties();
|
|
41
|
+
}
|
|
16
42
|
const match = Object.assign(Object.assign({}, (relProperties || {})), { type: actualType, startNode: ((_a = relationship.source) === null || _a === void 0 ? void 0 : _a.value()) || {}, endNode: null, properties: relProperties });
|
|
17
43
|
// Thread the underlying record's inner provenance onto the
|
|
18
44
|
// freshly constructed match object so the snapshot can read it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship_match_collector.js","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relationship_match_collector.js","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"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"}
|