flowquery 1.0.69 → 1.0.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +682 -86
- package/dist/compute/provenance.d.ts +201 -0
- package/dist/compute/provenance.d.ts.map +1 -0
- package/dist/compute/provenance.js +216 -0
- package/dist/compute/provenance.js.map +1 -0
- package/dist/compute/runner.d.ts +202 -3
- package/dist/compute/runner.d.ts.map +1 -1
- package/dist/compute/runner.js +309 -2
- package/dist/compute/runner.js.map +1 -1
- package/dist/flowquery.min.js +1 -1
- package/dist/graph/bindings.d.ts +78 -0
- package/dist/graph/bindings.d.ts.map +1 -0
- package/dist/graph/bindings.js +224 -0
- package/dist/graph/bindings.js.map +1 -0
- package/dist/graph/data_cache.d.ts +4 -0
- package/dist/graph/data_cache.d.ts.map +1 -1
- package/dist/graph/data_cache.js +15 -3
- package/dist/graph/data_cache.js.map +1 -1
- package/dist/graph/data_resolver.d.ts.map +1 -1
- package/dist/graph/data_resolver.js +23 -4
- package/dist/graph/data_resolver.js.map +1 -1
- package/dist/graph/database.d.ts +4 -2
- package/dist/graph/database.d.ts.map +1 -1
- package/dist/graph/database.js +45 -9
- package/dist/graph/database.js.map +1 -1
- package/dist/graph/physical_node.d.ts +7 -2
- package/dist/graph/physical_node.d.ts.map +1 -1
- package/dist/graph/physical_node.js +22 -26
- package/dist/graph/physical_node.js.map +1 -1
- package/dist/graph/physical_relationship.d.ts +7 -2
- package/dist/graph/physical_relationship.d.ts.map +1 -1
- package/dist/graph/physical_relationship.js +22 -26
- package/dist/graph/physical_relationship.js.map +1 -1
- package/dist/graph/relationship_match_collector.d.ts.map +1 -1
- package/dist/graph/relationship_match_collector.js +9 -0
- package/dist/graph/relationship_match_collector.js.map +1 -1
- package/dist/graph/virtual_sources.d.ts +8 -0
- package/dist/graph/virtual_sources.d.ts.map +1 -0
- package/dist/graph/virtual_sources.js +31 -0
- package/dist/graph/virtual_sources.js.map +1 -0
- package/dist/graph/virtual_statement.d.ts +41 -0
- package/dist/graph/virtual_statement.d.ts.map +1 -0
- package/dist/graph/virtual_statement.js +143 -0
- package/dist/graph/virtual_statement.js.map +1 -0
- package/dist/index.browser.d.ts +3 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.node.d.ts +3 -3
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js.map +1 -1
- package/dist/parsing/ast_node.d.ts +9 -0
- package/dist/parsing/ast_node.d.ts.map +1 -1
- package/dist/parsing/ast_node.js +21 -4
- package/dist/parsing/ast_node.js.map +1 -1
- package/dist/parsing/expressions/binding_reference.d.ts +16 -0
- package/dist/parsing/expressions/binding_reference.d.ts.map +1 -0
- package/dist/parsing/expressions/binding_reference.js +34 -0
- package/dist/parsing/expressions/binding_reference.js.map +1 -0
- package/dist/parsing/operations/aggregated_return.d.ts +10 -0
- package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_return.js +56 -3
- package/dist/parsing/operations/aggregated_return.js.map +1 -1
- package/dist/parsing/operations/aggregated_with.d.ts +20 -0
- package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_with.js +33 -1
- 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 +12 -2
- 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 +12 -2
- package/dist/parsing/operations/create_relationship.js.map +1 -1
- package/dist/parsing/operations/drop_binding.d.ts +15 -0
- package/dist/parsing/operations/drop_binding.d.ts.map +1 -0
- package/dist/parsing/operations/drop_binding.js +42 -0
- package/dist/parsing/operations/drop_binding.js.map +1 -0
- package/dist/parsing/operations/group_by.d.ts +32 -0
- package/dist/parsing/operations/group_by.d.ts.map +1 -1
- package/dist/parsing/operations/group_by.js +103 -0
- package/dist/parsing/operations/group_by.js.map +1 -1
- package/dist/parsing/operations/let.d.ts +36 -0
- package/dist/parsing/operations/let.d.ts.map +1 -0
- package/dist/parsing/operations/let.js +154 -0
- package/dist/parsing/operations/let.js.map +1 -0
- package/dist/parsing/operations/load.d.ts +31 -0
- package/dist/parsing/operations/load.d.ts.map +1 -1
- package/dist/parsing/operations/load.js +102 -2
- package/dist/parsing/operations/load.js.map +1 -1
- package/dist/parsing/operations/merge.d.ts +158 -0
- package/dist/parsing/operations/merge.d.ts.map +1 -0
- package/dist/parsing/operations/merge.js +338 -0
- package/dist/parsing/operations/merge.js.map +1 -0
- package/dist/parsing/operations/order_by.d.ts +6 -0
- package/dist/parsing/operations/order_by.d.ts.map +1 -1
- package/dist/parsing/operations/order_by.js +10 -1
- package/dist/parsing/operations/order_by.js.map +1 -1
- package/dist/parsing/operations/refresh_binding.d.ts +15 -0
- package/dist/parsing/operations/refresh_binding.d.ts.map +1 -0
- package/dist/parsing/operations/refresh_binding.js +42 -0
- package/dist/parsing/operations/refresh_binding.js.map +1 -0
- package/dist/parsing/operations/refresh_node.d.ts +11 -0
- package/dist/parsing/operations/refresh_node.d.ts.map +1 -0
- package/dist/parsing/operations/refresh_node.js +46 -0
- package/dist/parsing/operations/refresh_node.js.map +1 -0
- package/dist/parsing/operations/refresh_relationship.d.ts +11 -0
- package/dist/parsing/operations/refresh_relationship.d.ts.map +1 -0
- package/dist/parsing/operations/refresh_relationship.js +46 -0
- package/dist/parsing/operations/refresh_relationship.js.map +1 -0
- package/dist/parsing/operations/return.d.ts +34 -0
- package/dist/parsing/operations/return.d.ts.map +1 -1
- package/dist/parsing/operations/return.js +102 -3
- package/dist/parsing/operations/return.js.map +1 -1
- package/dist/parsing/operations/union.d.ts +19 -2
- package/dist/parsing/operations/union.d.ts.map +1 -1
- package/dist/parsing/operations/union.js +47 -11
- package/dist/parsing/operations/union.js.map +1 -1
- package/dist/parsing/operations/union_all.d.ts +5 -1
- package/dist/parsing/operations/union_all.d.ts.map +1 -1
- package/dist/parsing/operations/union_all.js +8 -2
- package/dist/parsing/operations/union_all.js.map +1 -1
- package/dist/parsing/operations/update.d.ts +27 -0
- package/dist/parsing/operations/update.d.ts.map +1 -0
- package/dist/parsing/operations/update.js +88 -0
- package/dist/parsing/operations/update.js.map +1 -0
- package/dist/parsing/operations/update_delete.d.ts +43 -0
- package/dist/parsing/operations/update_delete.d.ts.map +1 -0
- package/dist/parsing/operations/update_delete.js +105 -0
- package/dist/parsing/operations/update_delete.js.map +1 -0
- package/dist/parsing/parser.d.ts +70 -1
- package/dist/parsing/parser.d.ts.map +1 -1
- package/dist/parsing/parser.js +704 -10
- package/dist/parsing/parser.js.map +1 -1
- package/dist/parsing/statement_info_crawler.d.ts +106 -0
- package/dist/parsing/statement_info_crawler.d.ts.map +1 -1
- package/dist/parsing/statement_info_crawler.js +231 -12
- package/dist/parsing/statement_info_crawler.js.map +1 -1
- package/dist/tokenization/keyword.d.ts +21 -1
- package/dist/tokenization/keyword.d.ts.map +1 -1
- package/dist/tokenization/keyword.js +20 -0
- package/dist/tokenization/keyword.js.map +1 -1
- package/dist/tokenization/token.d.ts +24 -0
- package/dist/tokenization/token.d.ts.map +1 -1
- package/dist/tokenization/token.js +73 -0
- package/dist/tokenization/token.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import ASTNode from "../parsing/ast_node";
|
|
2
2
|
import Node from "./node";
|
|
3
3
|
declare class PhysicalNode extends Node {
|
|
4
|
-
private
|
|
4
|
+
private _virtual;
|
|
5
5
|
set statement(statement: ASTNode | null);
|
|
6
6
|
get statement(): ASTNode | null;
|
|
7
|
-
|
|
7
|
+
set isStatic(value: boolean);
|
|
8
|
+
get isStatic(): boolean;
|
|
9
|
+
set refreshEveryMs(value: number | null);
|
|
10
|
+
get refreshEveryMs(): number | null;
|
|
11
|
+
invalidateCache(): void;
|
|
12
|
+
data(args?: Record<string, any> | null, provenance?: boolean): Promise<Record<string, any>[]>;
|
|
8
13
|
}
|
|
9
14
|
export default PhysicalNode;
|
|
10
15
|
//# 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":"
|
|
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;AAG1B,cAAM,YAAa,SAAQ,IAAI;IAC3B,OAAO,CAAC,QAAQ,CAA4C;IAE5D,IAAW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;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,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAGpC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,42 +1,38 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
6
|
const node_1 = __importDefault(require("./node"));
|
|
7
|
+
const virtual_statement_1 = __importDefault(require("./virtual_statement"));
|
|
16
8
|
class PhysicalNode extends node_1.default {
|
|
17
9
|
constructor() {
|
|
18
10
|
super(...arguments);
|
|
19
|
-
this.
|
|
11
|
+
this._virtual = new virtual_statement_1.default();
|
|
20
12
|
}
|
|
21
13
|
set statement(statement) {
|
|
22
|
-
this.
|
|
14
|
+
this._virtual.statement = statement;
|
|
23
15
|
}
|
|
24
16
|
get statement() {
|
|
25
|
-
return this.
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
return this._virtual.statement;
|
|
18
|
+
}
|
|
19
|
+
set isStatic(value) {
|
|
20
|
+
this._virtual.isStatic = value;
|
|
21
|
+
}
|
|
22
|
+
get isStatic() {
|
|
23
|
+
return this._virtual.isStatic;
|
|
24
|
+
}
|
|
25
|
+
set refreshEveryMs(value) {
|
|
26
|
+
this._virtual.refreshEveryMs = value;
|
|
27
|
+
}
|
|
28
|
+
get refreshEveryMs() {
|
|
29
|
+
return this._virtual.refreshEveryMs;
|
|
30
|
+
}
|
|
31
|
+
invalidateCache() {
|
|
32
|
+
this._virtual.invalidateCache();
|
|
33
|
+
}
|
|
34
|
+
data(args = null, provenance = false) {
|
|
35
|
+
return this._virtual.data(args, provenance);
|
|
40
36
|
}
|
|
41
37
|
}
|
|
42
38
|
exports.default = PhysicalNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_node.js","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"physical_node.js","sourceRoot":"","sources":["../../src/graph/physical_node.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;AAC1B,4EAAmD;AAEnD,MAAM,YAAa,SAAQ,cAAI;IAA/B;;QACY,aAAQ,GAAqB,IAAI,2BAAgB,EAAE,CAAC;IA6BhE,CAAC;IA3BG,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,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;QAE3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import ASTNode from "../parsing/ast_node";
|
|
2
2
|
import Relationship from "./relationship";
|
|
3
3
|
declare class PhysicalRelationship extends Relationship {
|
|
4
|
-
private
|
|
4
|
+
private _virtual;
|
|
5
5
|
set statement(statement: ASTNode | null);
|
|
6
6
|
get statement(): ASTNode | null;
|
|
7
|
-
|
|
7
|
+
set isStatic(value: boolean);
|
|
8
|
+
get isStatic(): boolean;
|
|
9
|
+
set refreshEveryMs(value: number | null);
|
|
10
|
+
get refreshEveryMs(): number | null;
|
|
11
|
+
invalidateCache(): void;
|
|
12
|
+
data(args?: Record<string, any> | null, provenance?: boolean): Promise<Record<string, any>[]>;
|
|
8
13
|
}
|
|
9
14
|
export default PhysicalRelationship;
|
|
10
15
|
//# 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":"
|
|
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;AAG1C,cAAM,oBAAqB,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAA4C;IAE5D,IAAW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;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,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAGpC;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,42 +1,38 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
6
|
const relationship_1 = __importDefault(require("./relationship"));
|
|
7
|
+
const virtual_statement_1 = __importDefault(require("./virtual_statement"));
|
|
16
8
|
class PhysicalRelationship extends relationship_1.default {
|
|
17
9
|
constructor() {
|
|
18
10
|
super(...arguments);
|
|
19
|
-
this.
|
|
11
|
+
this._virtual = new virtual_statement_1.default();
|
|
20
12
|
}
|
|
21
13
|
set statement(statement) {
|
|
22
|
-
this.
|
|
14
|
+
this._virtual.statement = statement;
|
|
23
15
|
}
|
|
24
16
|
get statement() {
|
|
25
|
-
return this.
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
return this._virtual.statement;
|
|
18
|
+
}
|
|
19
|
+
set isStatic(value) {
|
|
20
|
+
this._virtual.isStatic = value;
|
|
21
|
+
}
|
|
22
|
+
get isStatic() {
|
|
23
|
+
return this._virtual.isStatic;
|
|
24
|
+
}
|
|
25
|
+
set refreshEveryMs(value) {
|
|
26
|
+
this._virtual.refreshEveryMs = value;
|
|
27
|
+
}
|
|
28
|
+
get refreshEveryMs() {
|
|
29
|
+
return this._virtual.refreshEveryMs;
|
|
30
|
+
}
|
|
31
|
+
invalidateCache() {
|
|
32
|
+
this._virtual.invalidateCache();
|
|
33
|
+
}
|
|
34
|
+
data(args = null, provenance = false) {
|
|
35
|
+
return this._virtual.data(args, provenance);
|
|
40
36
|
}
|
|
41
37
|
}
|
|
42
38
|
exports.default = PhysicalRelationship;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physical_relationship.js","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"physical_relationship.js","sourceRoot":"","sources":["../../src/graph/physical_relationship.ts"],"names":[],"mappings":";;;;;AACA,kEAA0C;AAC1C,4EAAmD;AAEnD,MAAM,oBAAqB,SAAQ,sBAAY;IAA/C;;QACY,aAAQ,GAAqB,IAAI,2BAAgB,EAAE,CAAC;IA6BhE,CAAC;IA3BG,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,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;QAE3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -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;
|
|
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,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAyBrF,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,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const virtual_sources_1 = require("./virtual_sources");
|
|
3
4
|
class RelationshipMatchCollector {
|
|
4
5
|
constructor() {
|
|
5
6
|
this._matches = [];
|
|
@@ -13,6 +14,14 @@ class RelationshipMatchCollector {
|
|
|
13
14
|
const actualType = currentRecord && "_type" in currentRecord ? currentRecord["_type"] : relationship.type;
|
|
14
15
|
const relProperties = data === null || data === void 0 ? void 0 : data.properties();
|
|
15
16
|
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
|
+
// Thread the underlying record's inner provenance onto the
|
|
18
|
+
// freshly constructed match object so the snapshot can read it
|
|
19
|
+
// by reference.
|
|
20
|
+
if (currentRecord != null) {
|
|
21
|
+
const src = (0, virtual_sources_1.getVirtualSource)(currentRecord);
|
|
22
|
+
if (src !== undefined)
|
|
23
|
+
(0, virtual_sources_1.attachVirtualSource)(match, src);
|
|
24
|
+
}
|
|
16
25
|
this._matches.push(match);
|
|
17
26
|
this._nodeIds.push(traversalId);
|
|
18
27
|
this._nodeIdSet.add(traversalId);
|
|
@@ -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":";;AACA,uDAA0E;AAU1E,MAAM,0BAA0B;IAAhC;QACY,aAAQ,GAA8B,EAAE,CAAC;QACzC,aAAQ,GAAkB,EAAE,CAAC;QAC7B,eAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IA4DhD,CAAC;IA1DU,IAAI,CAAC,YAA0B,EAAE,WAAmB;;QACvD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;QACtC,MAAM,UAAU,GACZ,aAAa,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAK,CAAC;QAC5F,MAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAyB,CAAC;QAChE,MAAM,KAAK,mCACJ,CAAC,aAAa,IAAI,EAAE,CAAC,KACxB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,EAAE,KAAI,EAAE,EAC7C,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,aAAa,GAC5B,CAAC;QACF,2DAA2D;QAC3D,+DAA+D;QAC/D,gBAAgB;QAChB,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAA,kCAAgB,EAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS;gBAAE,IAAA,qCAAmB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAW,OAAO,CAAC,IAAS;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnE,CAAC;IACL,CAAC;IACM,GAAG;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IACM,KAAK;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD;;;OAGG;IACI,UAAU,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AAED,kBAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Register a virtual-sourced record with its inner provenance row. */
|
|
2
|
+
export declare function attachVirtualSource(record: object, prov: unknown): void;
|
|
3
|
+
/**
|
|
4
|
+
* Look up the inner provenance for a record / match object. Returns
|
|
5
|
+
* `undefined` if the value did not originate from a deep-mode virtual.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getVirtualSource(record: object | null | undefined): unknown | undefined;
|
|
8
|
+
//# sourceMappingURL=virtual_sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual_sources.d.ts","sourceRoot":"","sources":["../../src/graph/virtual_sources.ts"],"names":[],"mappings":"AAcA,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAEvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAGvF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.attachVirtualSource = attachVirtualSource;
|
|
4
|
+
exports.getVirtualSource = getVirtualSource;
|
|
5
|
+
/**
|
|
6
|
+
* Module-level back-reference from a virtual node / relationship record
|
|
7
|
+
* (or `RelationshipMatchRecord`) to the inner-runner `RowProvenance` that
|
|
8
|
+
* produced it.
|
|
9
|
+
*
|
|
10
|
+
* Used by deep-mode provenance to thread lineage from a `CREATE VIRTUAL
|
|
11
|
+
* (:X) AS { ... }` sub-query into the outer query's row-level bindings.
|
|
12
|
+
*
|
|
13
|
+
* Decoupled from `compute/provenance` to keep the graph layer free of
|
|
14
|
+
* compute imports — the value is typed as `unknown` here and re-cast by
|
|
15
|
+
* the snapshot code that consumes it.
|
|
16
|
+
*/
|
|
17
|
+
const virtualSources = new WeakMap();
|
|
18
|
+
/** Register a virtual-sourced record with its inner provenance row. */
|
|
19
|
+
function attachVirtualSource(record, prov) {
|
|
20
|
+
virtualSources.set(record, prov);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Look up the inner provenance for a record / match object. Returns
|
|
24
|
+
* `undefined` if the value did not originate from a deep-mode virtual.
|
|
25
|
+
*/
|
|
26
|
+
function getVirtualSource(record) {
|
|
27
|
+
if (record == null)
|
|
28
|
+
return undefined;
|
|
29
|
+
return virtualSources.get(record);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=virtual_sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual_sources.js","sourceRoot":"","sources":["../../src/graph/virtual_sources.ts"],"names":[],"mappings":";;AAeA,kDAEC;AAMD,4CAGC;AA1BD;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAA6B,IAAI,OAAO,EAAE,CAAC;AAE/D,uEAAuE;AACvE,SAAgB,mBAAmB,CAAC,MAAc,EAAE,IAAa;IAC7D,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAiC;IAC9D,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import ASTNode from "../parsing/ast_node";
|
|
2
|
+
/**
|
|
3
|
+
* Backing statement of a virtual node or relationship: owns the AST that
|
|
4
|
+
* synthesises the records and the optional in-memory cache around its
|
|
5
|
+
* execution.
|
|
6
|
+
*
|
|
7
|
+
* Used by {@link PhysicalNode} and {@link PhysicalRelationship} via
|
|
8
|
+
* composition so both physical kinds share a single caching + execution
|
|
9
|
+
* implementation.
|
|
10
|
+
*/
|
|
11
|
+
declare class VirtualStatement {
|
|
12
|
+
private _statement;
|
|
13
|
+
private _isStatic;
|
|
14
|
+
private _refreshEveryMs;
|
|
15
|
+
private _cache;
|
|
16
|
+
private _cachedAt;
|
|
17
|
+
set statement(statement: ASTNode | null);
|
|
18
|
+
get statement(): ASTNode | null;
|
|
19
|
+
set isStatic(value: boolean);
|
|
20
|
+
get isStatic(): boolean;
|
|
21
|
+
set refreshEveryMs(value: number | null);
|
|
22
|
+
get refreshEveryMs(): number | null;
|
|
23
|
+
invalidateCache(): void;
|
|
24
|
+
/** True if the cached payload (if any) is still within its refresh window. */
|
|
25
|
+
private isCacheFresh;
|
|
26
|
+
/**
|
|
27
|
+
* Execute the backing statement and return its records, using the
|
|
28
|
+
* persistent cache when it is safe to do so.
|
|
29
|
+
*
|
|
30
|
+
* @param args Pass-down filter arguments; bypasses the cache.
|
|
31
|
+
* @param provenance Run the inner statement with provenance enabled
|
|
32
|
+
* so each emitted record carries a weak-map link to
|
|
33
|
+
* the inner row that produced it. Also bypasses the
|
|
34
|
+
* cache (the weak-map binding must be re-established
|
|
35
|
+
* each call).
|
|
36
|
+
*/
|
|
37
|
+
data(args?: Record<string, any> | null, provenance?: boolean): Promise<Record<string, any>[]>;
|
|
38
|
+
private runInner;
|
|
39
|
+
}
|
|
40
|
+
export default VirtualStatement;
|
|
41
|
+
//# sourceMappingURL=virtual_statement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual_statement.d.ts","sourceRoot":"","sources":["../../src/graph/virtual_statement.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C;;;;;;;;GAQG;AACH,cAAM,gBAAgB;IAClB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,SAAS,CAAa;IAE9B,IAAW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAG7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE7C;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IAEM,eAAe,IAAI,IAAI;IAK9B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;OAUG;IACU,IAAI,CACb,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EACvC,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YAoBnB,QAAQ;CAoBzB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const virtual_sources_1 = require("./virtual_sources");
|
|
46
|
+
/**
|
|
47
|
+
* Backing statement of a virtual node or relationship: owns the AST that
|
|
48
|
+
* synthesises the records and the optional in-memory cache around its
|
|
49
|
+
* execution.
|
|
50
|
+
*
|
|
51
|
+
* Used by {@link PhysicalNode} and {@link PhysicalRelationship} via
|
|
52
|
+
* composition so both physical kinds share a single caching + execution
|
|
53
|
+
* implementation.
|
|
54
|
+
*/
|
|
55
|
+
class VirtualStatement {
|
|
56
|
+
constructor() {
|
|
57
|
+
this._statement = null;
|
|
58
|
+
this._isStatic = false;
|
|
59
|
+
this._refreshEveryMs = null;
|
|
60
|
+
this._cache = null;
|
|
61
|
+
this._cachedAt = 0;
|
|
62
|
+
}
|
|
63
|
+
set statement(statement) {
|
|
64
|
+
this._statement = statement;
|
|
65
|
+
this.invalidateCache();
|
|
66
|
+
}
|
|
67
|
+
get statement() {
|
|
68
|
+
return this._statement;
|
|
69
|
+
}
|
|
70
|
+
set isStatic(value) {
|
|
71
|
+
this._isStatic = value;
|
|
72
|
+
}
|
|
73
|
+
get isStatic() {
|
|
74
|
+
return this._isStatic;
|
|
75
|
+
}
|
|
76
|
+
set refreshEveryMs(value) {
|
|
77
|
+
this._refreshEveryMs = value;
|
|
78
|
+
}
|
|
79
|
+
get refreshEveryMs() {
|
|
80
|
+
return this._refreshEveryMs;
|
|
81
|
+
}
|
|
82
|
+
invalidateCache() {
|
|
83
|
+
this._cache = null;
|
|
84
|
+
this._cachedAt = 0;
|
|
85
|
+
}
|
|
86
|
+
/** True if the cached payload (if any) is still within its refresh window. */
|
|
87
|
+
isCacheFresh() {
|
|
88
|
+
return this._refreshEveryMs === null || Date.now() - this._cachedAt < this._refreshEveryMs;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Execute the backing statement and return its records, using the
|
|
92
|
+
* persistent cache when it is safe to do so.
|
|
93
|
+
*
|
|
94
|
+
* @param args Pass-down filter arguments; bypasses the cache.
|
|
95
|
+
* @param provenance Run the inner statement with provenance enabled
|
|
96
|
+
* so each emitted record carries a weak-map link to
|
|
97
|
+
* the inner row that produced it. Also bypasses the
|
|
98
|
+
* cache (the weak-map binding must be re-established
|
|
99
|
+
* each call).
|
|
100
|
+
*/
|
|
101
|
+
data() {
|
|
102
|
+
return __awaiter(this, arguments, void 0, function* (args = null, provenance = false) {
|
|
103
|
+
if (this._statement === null) {
|
|
104
|
+
throw new Error("Statement is null");
|
|
105
|
+
}
|
|
106
|
+
// Filter pass-down queries (with args) and provenance mode bypass
|
|
107
|
+
// the persistent cache: arg-bound results depend on runtime values,
|
|
108
|
+
// and provenance mode needs fresh records to back the lineage
|
|
109
|
+
// weak-map.
|
|
110
|
+
const cacheable = !provenance && args === null && this._isStatic;
|
|
111
|
+
if (cacheable && this._cache !== null && this.isCacheFresh()) {
|
|
112
|
+
return this._cache;
|
|
113
|
+
}
|
|
114
|
+
const result = yield this.runInner(args, provenance);
|
|
115
|
+
if (cacheable) {
|
|
116
|
+
this._cache = result;
|
|
117
|
+
this._cachedAt = Date.now();
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
runInner(args, provenance) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
// Lazy dynamic import to avoid a load-time cycle:
|
|
125
|
+
// virtual_statement -> runner -> parsing -> graph (back to here).
|
|
126
|
+
// Python uses the same idiom (function-local import).
|
|
127
|
+
const RunnerCtor = (yield Promise.resolve().then(() => __importStar(require("../compute/runner")))).default;
|
|
128
|
+
const runner = new RunnerCtor(null, this._statement, args, { provenance });
|
|
129
|
+
yield runner.run();
|
|
130
|
+
const result = runner.results;
|
|
131
|
+
if (provenance) {
|
|
132
|
+
const prov = runner.provenance;
|
|
133
|
+
const len = Math.min(prov.length, result.length);
|
|
134
|
+
for (let i = 0; i < len; i++) {
|
|
135
|
+
(0, virtual_sources_1.attachVirtualSource)(result[i], prov[i]);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.default = VirtualStatement;
|
|
143
|
+
//# sourceMappingURL=virtual_statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual_statement.js","sourceRoot":"","sources":["../../src/graph/virtual_statement.ts"],"names":[],"mappings":"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"}
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
*/
|
|
8
8
|
import { default as FlowQuery } from "./compute/flowquery";
|
|
9
|
-
import type { RunnerMetadata } from "./compute/runner";
|
|
10
|
-
import type { NodeInfo, RelationshipInfo, StatementInfo } from "./parsing/statement_info_crawler";
|
|
9
|
+
import type { CellBindingTrace, CellTrace, LineageReport, NodeBinding, RelationshipBinding, RelationshipHop, RowProvenance, RunnerMetadata, RunnerOptions } from "./compute/runner";
|
|
10
|
+
import type { ColumnLineage, ColumnReference, NodeInfo, RelationshipInfo, StatementInfo } from "./parsing/statement_info_crawler";
|
|
11
11
|
export default FlowQuery;
|
|
12
|
-
export type { NodeInfo, RelationshipInfo, RunnerMetadata, StatementInfo };
|
|
12
|
+
export type { CellBindingTrace, CellTrace, ColumnLineage, ColumnReference, LineageReport, NodeBinding, NodeInfo, RelationshipBinding, RelationshipHop, RelationshipInfo, RowProvenance, RunnerMetadata, RunnerOptions, StatementInfo, };
|
|
13
13
|
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EACR,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,aAAa,EAChB,MAAM,kCAAkC,CAAC;AA+B1C,eAAe,SAAS,CAAC;AACzB,YAAY,EACR,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;GAMG;AACH,oEAA2D;
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;GAMG;AACH,oEAA2D;AAY3D,4EAAoD;AACpD,4FAAmE;AAcnE;;;;;GAKG;AACH,mBAAS,CAAC,aAAa,GAAG,UAAU,OAInC;IACG,OAAO,0BAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,mBAAS,CAAC,mBAAmB,GAAG,UAAU,IAAY;IAClD,OAAO,0BAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;GAEG;AACH,mBAAS,CAAC,QAAQ,GAAG,kBAAQ,CAAC;AAE9B,kBAAe,mBAAS,CAAC"}
|
package/dist/index.node.d.ts
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
*/
|
|
8
8
|
import { default as FlowQuery } from "./compute/flowquery";
|
|
9
|
-
import { RunnerMetadata } from "./compute/runner";
|
|
9
|
+
import { CellBindingTrace, CellTrace, LineageReport, RunnerMetadata } from "./compute/runner";
|
|
10
10
|
import Function from "./parsing/functions/function";
|
|
11
11
|
import FunctionFactory, { AsyncDataProvider } from "./parsing/functions/function_factory";
|
|
12
12
|
import { FunctionMetadata, OutputSchema, ParameterSchema } from "./parsing/functions/function_metadata";
|
|
13
|
-
import { NodeInfo, RelationshipInfo, StatementInfo } from "./parsing/statement_info_crawler";
|
|
13
|
+
import { ColumnLineage, ColumnReference, NodeInfo, RelationshipInfo, StatementInfo } from "./parsing/statement_info_crawler";
|
|
14
14
|
export default FlowQuery;
|
|
15
|
-
export { FlowQuery, Function, FunctionFactory, AsyncDataProvider, FunctionMetadata, ParameterSchema, OutputSchema, RunnerMetadata, StatementInfo, NodeInfo, RelationshipInfo, };
|
|
15
|
+
export { FlowQuery, Function, FunctionFactory, AsyncDataProvider, FunctionMetadata, ParameterSchema, OutputSchema, RunnerMetadata, StatementInfo, NodeInfo, RelationshipInfo, ColumnLineage, ColumnReference, CellTrace, CellBindingTrace, LineageReport, };
|
|
16
16
|
//# sourceMappingURL=index.node.d.ts.map
|
package/dist/index.node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,eAAe,EAAE,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,aAAa,EACb,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,aAAa,EAChB,MAAM,kCAAkC,CAAC;AA+B1C,eAAe,SAAS,CAAC;AACzB,OAAO,EACH,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,aAAa,GAChB,CAAC"}
|
package/dist/index.node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.js","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AACH,oEAA2D;
|
|
1
|
+
{"version":3,"file":"index.node.js","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AACH,oEAA2D;AAgDvD,0FAhDgB,mBAAS,OAgDhB;AA9Cb,4EAAoD;AA+ChD,mBA/CG,kBAAQ,CA+CH;AA9CZ,4FAA0F;AA+CtF,0BA/CG,0BAAe,CA+CH;AAjCnB;;;;;GAKG;AACH,mBAAS,CAAC,aAAa,GAAG,UAAU,OAInC;IACG,OAAO,0BAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,mBAAS,CAAC,mBAAmB,GAAG,UAAU,IAAY;IAClD,OAAO,0BAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;GAEG;AACH,mBAAS,CAAC,QAAQ,GAAG,kBAAQ,CAAC;AAE9B,kBAAe,mBAAS,CAAC"}
|
|
@@ -20,6 +20,15 @@ declare class ASTNode {
|
|
|
20
20
|
* @param child - The child node to add
|
|
21
21
|
*/
|
|
22
22
|
addChild(child: ASTNode): void;
|
|
23
|
+
/**
|
|
24
|
+
* Replaces an existing child node with a new node in-place. The
|
|
25
|
+
* new node takes the old node's position and parent reference.
|
|
26
|
+
*
|
|
27
|
+
* @param oldChild - The existing child to replace
|
|
28
|
+
* @param newChild - The replacement node
|
|
29
|
+
* @returns True if the replacement was performed, false otherwise
|
|
30
|
+
*/
|
|
31
|
+
replaceChild(oldChild: ASTNode, newChild: ASTNode): boolean;
|
|
23
32
|
/**
|
|
24
33
|
* Returns the first child node.
|
|
25
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast_node.d.ts","sourceRoot":"","sources":["../../src/parsing/ast_node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAM,OAAO;IACT,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IACzC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKrC;;;;;OAKG;IACI,UAAU,IAAI,OAAO;IAO5B;;;;;OAKG;IACI,SAAS,IAAI,OAAO;IAO3B;;;;OAIG;IACI,WAAW,IAAI,OAAO,EAAE;IAI/B;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;OAIG;IACI,KAAK,IAAI,GAAG;IAInB;;;;OAIG;IACI,UAAU,IAAI,OAAO;IAI5B;;;;OAIG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;OAIG;IACH,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED;;;;OAIG;IACI,KAAK,IAAI,MAAM;IAItB;;;;;OAKG;IACH,OAAO,CAAE,MAAM;IAWf;;;;OAIG;IACH,SAAS,CAAC,QAAQ,IAAI,MAAM;CAG/B;AAED,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"ast_node.d.ts","sourceRoot":"","sources":["../../src/parsing/ast_node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAM,OAAO;IACT,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IACzC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKrC;;;;;;;OAOG;IACI,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAUlE;;;;;OAKG;IACI,UAAU,IAAI,OAAO;IAO5B;;;;;OAKG;IACI,SAAS,IAAI,OAAO;IAO3B;;;;OAIG;IACI,WAAW,IAAI,OAAO,EAAE;IAI/B;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;OAIG;IACI,KAAK,IAAI,GAAG;IAInB;;;;OAIG;IACI,UAAU,IAAI,OAAO;IAI5B;;;;OAIG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;OAIG;IACH,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED;;;;OAIG;IACI,KAAK,IAAI,MAAM;IAItB;;;;;OAKG;IACH,OAAO,CAAE,MAAM;IAWf;;;;OAIG;IACH,SAAS,CAAC,QAAQ,IAAI,MAAM;CAG/B;AAED,eAAe,OAAO,CAAC"}
|