@jaepil/uqa 0.1.0
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/LICENSE +661 -0
- package/README.md +788 -0
- package/dist/types/src/analysis/analyzer.d.ts +27 -0
- package/dist/types/src/analysis/analyzer.d.ts.map +1 -0
- package/dist/types/src/analysis/char-filter.d.ts +27 -0
- package/dist/types/src/analysis/char-filter.d.ts.map +1 -0
- package/dist/types/src/analysis/token-filter.d.ts +73 -0
- package/dist/types/src/analysis/token-filter.d.ts.map +1 -0
- package/dist/types/src/analysis/tokenizer.d.ts +42 -0
- package/dist/types/src/analysis/tokenizer.d.ts.map +1 -0
- package/dist/types/src/api/query-builder.d.ts +103 -0
- package/dist/types/src/api/query-builder.d.ts.map +1 -0
- package/dist/types/src/cli/repl.d.ts +42 -0
- package/dist/types/src/cli/repl.d.ts.map +1 -0
- package/dist/types/src/core/functor.d.ts +38 -0
- package/dist/types/src/core/functor.d.ts.map +1 -0
- package/dist/types/src/core/hierarchical.d.ts +24 -0
- package/dist/types/src/core/hierarchical.d.ts.map +1 -0
- package/dist/types/src/core/posting-list.d.ts +43 -0
- package/dist/types/src/core/posting-list.d.ts.map +1 -0
- package/dist/types/src/core/types.d.ts +116 -0
- package/dist/types/src/core/types.d.ts.map +1 -0
- package/dist/types/src/engine.d.ts +130 -0
- package/dist/types/src/engine.d.ts.map +1 -0
- package/dist/types/src/execution/batch.d.ts +144 -0
- package/dist/types/src/execution/batch.d.ts.map +1 -0
- package/dist/types/src/execution/physical.d.ts +18 -0
- package/dist/types/src/execution/physical.d.ts.map +1 -0
- package/dist/types/src/execution/relational.d.ts +174 -0
- package/dist/types/src/execution/relational.d.ts.map +1 -0
- package/dist/types/src/execution/scan.d.ts +41 -0
- package/dist/types/src/execution/scan.d.ts.map +1 -0
- package/dist/types/src/execution/spill.d.ts +39 -0
- package/dist/types/src/execution/spill.d.ts.map +1 -0
- package/dist/types/src/fdw/arrow-handler.d.ts +28 -0
- package/dist/types/src/fdw/arrow-handler.d.ts.map +1 -0
- package/dist/types/src/fdw/duckdb-handler.d.ts +32 -0
- package/dist/types/src/fdw/duckdb-handler.d.ts.map +1 -0
- package/dist/types/src/fdw/foreign-table.d.ts +47 -0
- package/dist/types/src/fdw/foreign-table.d.ts.map +1 -0
- package/dist/types/src/fdw/handler.d.ts +52 -0
- package/dist/types/src/fdw/handler.d.ts.map +1 -0
- package/dist/types/src/fusion/attention.d.ts +23 -0
- package/dist/types/src/fusion/attention.d.ts.map +1 -0
- package/dist/types/src/fusion/boolean.d.ts +6 -0
- package/dist/types/src/fusion/boolean.d.ts.map +1 -0
- package/dist/types/src/fusion/learned.d.ts +12 -0
- package/dist/types/src/fusion/learned.d.ts.map +1 -0
- package/dist/types/src/fusion/log-odds.d.ts +87 -0
- package/dist/types/src/fusion/log-odds.d.ts.map +1 -0
- package/dist/types/src/fusion/query-features.d.ts +8 -0
- package/dist/types/src/fusion/query-features.d.ts.map +1 -0
- package/dist/types/src/graph/centrality.d.ts +35 -0
- package/dist/types/src/graph/centrality.d.ts.map +1 -0
- package/dist/types/src/graph/cross-paradigm.d.ts +68 -0
- package/dist/types/src/graph/cross-paradigm.d.ts.map +1 -0
- package/dist/types/src/graph/cypher/ast.d.ts +175 -0
- package/dist/types/src/graph/cypher/ast.d.ts.map +1 -0
- package/dist/types/src/graph/cypher/compiler.d.ts +60 -0
- package/dist/types/src/graph/cypher/compiler.d.ts.map +1 -0
- package/dist/types/src/graph/cypher/lexer.d.ts +82 -0
- package/dist/types/src/graph/cypher/lexer.d.ts.map +1 -0
- package/dist/types/src/graph/cypher/parser.d.ts +50 -0
- package/dist/types/src/graph/cypher/parser.d.ts.map +1 -0
- package/dist/types/src/graph/delta.d.ts +31 -0
- package/dist/types/src/graph/delta.d.ts.map +1 -0
- package/dist/types/src/graph/graph-embedding.d.ts +13 -0
- package/dist/types/src/graph/graph-embedding.d.ts.map +1 -0
- package/dist/types/src/graph/incremental-match.d.ts +16 -0
- package/dist/types/src/graph/incremental-match.d.ts.map +1 -0
- package/dist/types/src/graph/index.d.ts +58 -0
- package/dist/types/src/graph/index.d.ts.map +1 -0
- package/dist/types/src/graph/join.d.ts +18 -0
- package/dist/types/src/graph/join.d.ts.map +1 -0
- package/dist/types/src/graph/message-passing.d.ts +17 -0
- package/dist/types/src/graph/message-passing.d.ts.map +1 -0
- package/dist/types/src/graph/operators.d.ts +81 -0
- package/dist/types/src/graph/operators.d.ts.map +1 -0
- package/dist/types/src/graph/pattern.d.ts +63 -0
- package/dist/types/src/graph/pattern.d.ts.map +1 -0
- package/dist/types/src/graph/posting-list.d.ts +24 -0
- package/dist/types/src/graph/posting-list.d.ts.map +1 -0
- package/dist/types/src/graph/rpq-optimizer.d.ts +25 -0
- package/dist/types/src/graph/rpq-optimizer.d.ts.map +1 -0
- package/dist/types/src/graph/store.d.ts +61 -0
- package/dist/types/src/graph/store.d.ts.map +1 -0
- package/dist/types/src/graph/temporal-filter.d.ts +12 -0
- package/dist/types/src/graph/temporal-filter.d.ts.map +1 -0
- package/dist/types/src/graph/temporal-pattern-match.d.ts +26 -0
- package/dist/types/src/graph/temporal-pattern-match.d.ts.map +1 -0
- package/dist/types/src/graph/temporal-traverse.d.ts +25 -0
- package/dist/types/src/graph/temporal-traverse.d.ts.map +1 -0
- package/dist/types/src/graph/versioned-store.d.ts +64 -0
- package/dist/types/src/graph/versioned-store.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +20 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/joins/base.d.ts +18 -0
- package/dist/types/src/joins/base.d.ts.map +1 -0
- package/dist/types/src/joins/cross-paradigm.d.ts +46 -0
- package/dist/types/src/joins/cross-paradigm.d.ts.map +1 -0
- package/dist/types/src/joins/cross.d.ts +9 -0
- package/dist/types/src/joins/cross.d.ts.map +1 -0
- package/dist/types/src/joins/index.d.ts +7 -0
- package/dist/types/src/joins/index.d.ts.map +1 -0
- package/dist/types/src/joins/inner.d.ts +7 -0
- package/dist/types/src/joins/inner.d.ts.map +1 -0
- package/dist/types/src/joins/outer.d.ts +16 -0
- package/dist/types/src/joins/outer.d.ts.map +1 -0
- package/dist/types/src/joins/semi.d.ts +22 -0
- package/dist/types/src/joins/semi.d.ts.map +1 -0
- package/dist/types/src/joins/sort-merge.d.ts +7 -0
- package/dist/types/src/joins/sort-merge.d.ts.map +1 -0
- package/dist/types/src/math/linalg.d.ts +27 -0
- package/dist/types/src/math/linalg.d.ts.map +1 -0
- package/dist/types/src/math/random.d.ts +15 -0
- package/dist/types/src/math/random.d.ts.map +1 -0
- package/dist/types/src/operators/aggregation.d.ts +65 -0
- package/dist/types/src/operators/aggregation.d.ts.map +1 -0
- package/dist/types/src/operators/attention.d.ts +16 -0
- package/dist/types/src/operators/attention.d.ts.map +1 -0
- package/dist/types/src/operators/backend.d.ts +52 -0
- package/dist/types/src/operators/backend.d.ts.map +1 -0
- package/dist/types/src/operators/base.d.ts +32 -0
- package/dist/types/src/operators/base.d.ts.map +1 -0
- package/dist/types/src/operators/boolean.d.ts +23 -0
- package/dist/types/src/operators/boolean.d.ts.map +1 -0
- package/dist/types/src/operators/calibrated-vector.d.ts +56 -0
- package/dist/types/src/operators/calibrated-vector.d.ts.map +1 -0
- package/dist/types/src/operators/deep-fusion.d.ts +104 -0
- package/dist/types/src/operators/deep-fusion.d.ts.map +1 -0
- package/dist/types/src/operators/deep-learn.d.ts +87 -0
- package/dist/types/src/operators/deep-learn.d.ts.map +1 -0
- package/dist/types/src/operators/hierarchical.d.ts +44 -0
- package/dist/types/src/operators/hierarchical.d.ts.map +1 -0
- package/dist/types/src/operators/hybrid.d.ts +75 -0
- package/dist/types/src/operators/hybrid.d.ts.map +1 -0
- package/dist/types/src/operators/learned-fusion.d.ts +15 -0
- package/dist/types/src/operators/learned-fusion.d.ts.map +1 -0
- package/dist/types/src/operators/multi-field.d.ts +13 -0
- package/dist/types/src/operators/multi-field.d.ts.map +1 -0
- package/dist/types/src/operators/multi-stage.d.ts +12 -0
- package/dist/types/src/operators/multi-stage.d.ts.map +1 -0
- package/dist/types/src/operators/primitive.d.ts +75 -0
- package/dist/types/src/operators/primitive.d.ts.map +1 -0
- package/dist/types/src/operators/progressive-fusion.d.ts +13 -0
- package/dist/types/src/operators/progressive-fusion.d.ts.map +1 -0
- package/dist/types/src/operators/sparse.d.ts +12 -0
- package/dist/types/src/operators/sparse.d.ts.map +1 -0
- package/dist/types/src/planner/cardinality.d.ts +110 -0
- package/dist/types/src/planner/cardinality.d.ts.map +1 -0
- package/dist/types/src/planner/cost-model.d.ts +16 -0
- package/dist/types/src/planner/cost-model.d.ts.map +1 -0
- package/dist/types/src/planner/executor.d.ts +48 -0
- package/dist/types/src/planner/executor.d.ts.map +1 -0
- package/dist/types/src/planner/join-enumerator.d.ts +76 -0
- package/dist/types/src/planner/join-enumerator.d.ts.map +1 -0
- package/dist/types/src/planner/join-graph.d.ts +61 -0
- package/dist/types/src/planner/join-graph.d.ts.map +1 -0
- package/dist/types/src/planner/join-order.d.ts +24 -0
- package/dist/types/src/planner/join-order.d.ts.map +1 -0
- package/dist/types/src/planner/optimizer.d.ts +62 -0
- package/dist/types/src/planner/optimizer.d.ts.map +1 -0
- package/dist/types/src/planner/parallel.d.ts +43 -0
- package/dist/types/src/planner/parallel.d.ts.map +1 -0
- package/dist/types/src/scoring/bayesian-bm25.d.ts +22 -0
- package/dist/types/src/scoring/bayesian-bm25.d.ts.map +1 -0
- package/dist/types/src/scoring/bm25.d.ts +20 -0
- package/dist/types/src/scoring/bm25.d.ts.map +1 -0
- package/dist/types/src/scoring/calibration.d.ts +68 -0
- package/dist/types/src/scoring/calibration.d.ts.map +1 -0
- package/dist/types/src/scoring/external-prior.d.ts +55 -0
- package/dist/types/src/scoring/external-prior.d.ts.map +1 -0
- package/dist/types/src/scoring/fusion-wand.d.ts +19 -0
- package/dist/types/src/scoring/fusion-wand.d.ts.map +1 -0
- package/dist/types/src/scoring/multi-field.d.ts +10 -0
- package/dist/types/src/scoring/multi-field.d.ts.map +1 -0
- package/dist/types/src/scoring/parameter-learner.d.ts +42 -0
- package/dist/types/src/scoring/parameter-learner.d.ts.map +1 -0
- package/dist/types/src/scoring/vector.d.ts +42 -0
- package/dist/types/src/scoring/vector.d.ts.map +1 -0
- package/dist/types/src/scoring/wand.d.ts +51 -0
- package/dist/types/src/scoring/wand.d.ts.map +1 -0
- package/dist/types/src/sql/compiler.d.ts +551 -0
- package/dist/types/src/sql/compiler.d.ts.map +1 -0
- package/dist/types/src/sql/expr-evaluator.d.ts +43 -0
- package/dist/types/src/sql/expr-evaluator.d.ts.map +1 -0
- package/dist/types/src/sql/fts-query.d.ts +60 -0
- package/dist/types/src/sql/fts-query.d.ts.map +1 -0
- package/dist/types/src/sql/table.d.ts +72 -0
- package/dist/types/src/sql/table.d.ts.map +1 -0
- package/dist/types/src/storage/abc/document-store.d.ts +44 -0
- package/dist/types/src/storage/abc/document-store.d.ts.map +1 -0
- package/dist/types/src/storage/abc/graph-store.d.ts +109 -0
- package/dist/types/src/storage/abc/graph-store.d.ts.map +1 -0
- package/dist/types/src/storage/abc/inverted-index.d.ts +118 -0
- package/dist/types/src/storage/abc/inverted-index.d.ts.map +1 -0
- package/dist/types/src/storage/block-max-index.d.ts +45 -0
- package/dist/types/src/storage/block-max-index.d.ts.map +1 -0
- package/dist/types/src/storage/btree-index.d.ts +18 -0
- package/dist/types/src/storage/btree-index.d.ts.map +1 -0
- package/dist/types/src/storage/catalog.d.ts +87 -0
- package/dist/types/src/storage/catalog.d.ts.map +1 -0
- package/dist/types/src/storage/document-store.d.ts +20 -0
- package/dist/types/src/storage/document-store.d.ts.map +1 -0
- package/dist/types/src/storage/index-abc.d.ts +16 -0
- package/dist/types/src/storage/index-abc.d.ts.map +1 -0
- package/dist/types/src/storage/index-manager.d.ts +19 -0
- package/dist/types/src/storage/index-manager.d.ts.map +1 -0
- package/dist/types/src/storage/index-types.d.ts +10 -0
- package/dist/types/src/storage/index-types.d.ts.map +1 -0
- package/dist/types/src/storage/inverted-index.d.ts +55 -0
- package/dist/types/src/storage/inverted-index.d.ts.map +1 -0
- package/dist/types/src/storage/ivf-index.d.ts +57 -0
- package/dist/types/src/storage/ivf-index.d.ts.map +1 -0
- package/dist/types/src/storage/managed-connection.d.ts +64 -0
- package/dist/types/src/storage/managed-connection.d.ts.map +1 -0
- package/dist/types/src/storage/spatial-index.d.ts +18 -0
- package/dist/types/src/storage/spatial-index.d.ts.map +1 -0
- package/dist/types/src/storage/sqlite-document-store.d.ts +54 -0
- package/dist/types/src/storage/sqlite-document-store.d.ts.map +1 -0
- package/dist/types/src/storage/sqlite-graph-store.d.ts +59 -0
- package/dist/types/src/storage/sqlite-graph-store.d.ts.map +1 -0
- package/dist/types/src/storage/sqlite-inverted-index.d.ts +75 -0
- package/dist/types/src/storage/sqlite-inverted-index.d.ts.map +1 -0
- package/dist/types/src/storage/transaction.d.ts +15 -0
- package/dist/types/src/storage/transaction.d.ts.map +1 -0
- package/dist/types/src/storage/vector-index.d.ts +23 -0
- package/dist/types/src/storage/vector-index.d.ts.map +1 -0
- package/dist/uqa.es.js +16156 -0
- package/dist/uqa.es.js.map +1 -0
- package/dist/uqa.umd.js +11 -0
- package/dist/uqa.umd.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export declare enum TokenType {
|
|
2
|
+
MATCH = "MATCH",
|
|
3
|
+
OPTIONAL = "OPTIONAL",
|
|
4
|
+
WHERE = "WHERE",
|
|
5
|
+
RETURN = "RETURN",
|
|
6
|
+
WITH = "WITH",
|
|
7
|
+
CREATE = "CREATE",
|
|
8
|
+
DELETE = "DELETE",
|
|
9
|
+
DETACH = "DETACH",
|
|
10
|
+
SET = "SET",
|
|
11
|
+
REMOVE = "REMOVE",
|
|
12
|
+
MERGE = "MERGE",
|
|
13
|
+
ON = "ON",
|
|
14
|
+
ORDER = "ORDER",
|
|
15
|
+
BY = "BY",
|
|
16
|
+
ASC = "ASC",
|
|
17
|
+
DESC = "DESC",
|
|
18
|
+
SKIP = "SKIP",
|
|
19
|
+
LIMIT = "LIMIT",
|
|
20
|
+
DISTINCT = "DISTINCT",
|
|
21
|
+
AS = "AS",
|
|
22
|
+
AND = "AND",
|
|
23
|
+
OR = "OR",
|
|
24
|
+
XOR = "XOR",
|
|
25
|
+
NOT = "NOT",
|
|
26
|
+
IN = "IN",
|
|
27
|
+
IS = "IS",
|
|
28
|
+
NULL = "NULL",
|
|
29
|
+
TRUE = "TRUE",
|
|
30
|
+
FALSE = "FALSE",
|
|
31
|
+
CASE = "CASE",
|
|
32
|
+
WHEN = "WHEN",
|
|
33
|
+
THEN = "THEN",
|
|
34
|
+
ELSE = "ELSE",
|
|
35
|
+
END = "END",
|
|
36
|
+
EXISTS = "EXISTS",
|
|
37
|
+
UNWIND = "UNWIND",
|
|
38
|
+
CALL = "CALL",
|
|
39
|
+
YIELD = "YIELD",
|
|
40
|
+
INTEGER = "INTEGER",
|
|
41
|
+
FLOAT = "FLOAT",
|
|
42
|
+
STRING = "STRING",
|
|
43
|
+
IDENTIFIER = "IDENTIFIER",
|
|
44
|
+
PARAMETER = "PARAMETER",
|
|
45
|
+
EQ = "EQ",// =
|
|
46
|
+
NEQ = "NEQ",// <>
|
|
47
|
+
LT = "LT",// <
|
|
48
|
+
GT = "GT",// >
|
|
49
|
+
LTE = "LTE",// <=
|
|
50
|
+
GTE = "GTE",// >=
|
|
51
|
+
PLUS = "PLUS",// +
|
|
52
|
+
PLUS_EQ = "PLUS_EQ",// +=
|
|
53
|
+
MINUS = "MINUS",// -
|
|
54
|
+
STAR = "STAR",// *
|
|
55
|
+
SLASH = "SLASH",// /
|
|
56
|
+
PERCENT = "PERCENT",// %
|
|
57
|
+
STARTS_WITH = "STARTS_WITH",
|
|
58
|
+
ENDS_WITH = "ENDS_WITH",
|
|
59
|
+
CONTAINS = "CONTAINS",
|
|
60
|
+
LPAREN = "LPAREN",// (
|
|
61
|
+
RPAREN = "RPAREN",// )
|
|
62
|
+
LBRACKET = "LBRACKET",// [
|
|
63
|
+
RBRACKET = "RBRACKET",// ]
|
|
64
|
+
LBRACE = "LBRACE",// {
|
|
65
|
+
RBRACE = "RBRACE",// }
|
|
66
|
+
COMMA = "COMMA",// ,
|
|
67
|
+
DOT = "DOT",// .
|
|
68
|
+
COLON = "COLON",// :
|
|
69
|
+
PIPE = "PIPE",// |
|
|
70
|
+
DOTDOT = "DOTDOT",// ..
|
|
71
|
+
DASH = "DASH",// -
|
|
72
|
+
ARROW_RIGHT = "ARROW_RIGHT",// ->
|
|
73
|
+
ARROW_LEFT = "ARROW_LEFT",// <-
|
|
74
|
+
EOF = "EOF"
|
|
75
|
+
}
|
|
76
|
+
export interface Token {
|
|
77
|
+
readonly type: TokenType;
|
|
78
|
+
readonly value: string;
|
|
79
|
+
readonly position: number;
|
|
80
|
+
}
|
|
81
|
+
export declare function tokenize(input: string): Token[];
|
|
82
|
+
//# sourceMappingURL=lexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../../../../src/graph/cypher/lexer.ts"],"names":[],"mappings":"AAcA,oBAAY,SAAS;IAEnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,EAAE,OAAO;IACT,KAAK,UAAU;IACf,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IAGf,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,SAAS,cAAc;IAGvB,EAAE,OAAO,CAAE,IAAI;IACf,GAAG,QAAQ,CAAE,KAAK;IAClB,EAAE,OAAO,CAAE,IAAI;IACf,EAAE,OAAO,CAAE,IAAI;IACf,GAAG,QAAQ,CAAE,KAAK;IAClB,GAAG,QAAQ,CAAE,KAAK;IAClB,IAAI,SAAS,CAAE,IAAI;IACnB,OAAO,YAAY,CAAE,KAAK;IAC1B,KAAK,UAAU,CAAE,IAAI;IACrB,IAAI,SAAS,CAAE,IAAI;IACnB,KAAK,UAAU,CAAE,IAAI;IACrB,OAAO,YAAY,CAAE,IAAI;IACzB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,QAAQ,aAAa;IAGrB,MAAM,WAAW,CAAE,IAAI;IACvB,MAAM,WAAW,CAAE,IAAI;IACvB,QAAQ,aAAa,CAAE,IAAI;IAC3B,QAAQ,aAAa,CAAE,IAAI;IAC3B,MAAM,WAAW,CAAE,IAAI;IACvB,MAAM,WAAW,CAAE,IAAI;IACvB,KAAK,UAAU,CAAE,IAAI;IACrB,GAAG,QAAQ,CAAE,IAAI;IACjB,KAAK,UAAU,CAAE,IAAI;IACrB,IAAI,SAAS,CAAE,IAAI;IACnB,MAAM,WAAW,CAAE,KAAK;IAGxB,IAAI,SAAS,CAAE,IAAI;IACnB,WAAW,gBAAgB,CAAE,KAAK;IAClC,UAAU,eAAe,CAAE,KAAK;IAGhC,GAAG,QAAQ;CACZ;AAID,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAoDD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,CAoU/C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { CypherQuery } from "./ast.js";
|
|
2
|
+
export declare class CypherParser {
|
|
3
|
+
private tokens;
|
|
4
|
+
private pos;
|
|
5
|
+
constructor(input: string);
|
|
6
|
+
private peek;
|
|
7
|
+
private advance;
|
|
8
|
+
private expect;
|
|
9
|
+
private match;
|
|
10
|
+
private atClauseStart;
|
|
11
|
+
parse(): CypherQuery;
|
|
12
|
+
private parseClause;
|
|
13
|
+
private parseMatchClause;
|
|
14
|
+
private parseMatchClauseInner;
|
|
15
|
+
private parseReturnClause;
|
|
16
|
+
private parseWithClause;
|
|
17
|
+
private parseCreateClause;
|
|
18
|
+
private parseDeleteClause;
|
|
19
|
+
private parseDeleteClauseInner;
|
|
20
|
+
private parseSetClause;
|
|
21
|
+
private parseRemoveClause;
|
|
22
|
+
private parseMergeClause;
|
|
23
|
+
private parseUnwindClause;
|
|
24
|
+
private parseCallClause;
|
|
25
|
+
private parsePatternList;
|
|
26
|
+
private parsePathPattern;
|
|
27
|
+
private isRelationshipStart;
|
|
28
|
+
private parseNodePattern;
|
|
29
|
+
private parseRelationshipPattern;
|
|
30
|
+
private parsePropertyMap;
|
|
31
|
+
private parseReturnItems;
|
|
32
|
+
private parseReturnItem;
|
|
33
|
+
private parseOptionalOrderBy;
|
|
34
|
+
private parseOrderByItem;
|
|
35
|
+
private parseOptionalSkip;
|
|
36
|
+
private parseOptionalLimit;
|
|
37
|
+
private parseExpr;
|
|
38
|
+
private parseOr;
|
|
39
|
+
private parseXor;
|
|
40
|
+
private parseAnd;
|
|
41
|
+
private parseNot;
|
|
42
|
+
private parseComparison;
|
|
43
|
+
private parseAddSub;
|
|
44
|
+
private parseMulDiv;
|
|
45
|
+
private parseUnaryExpr;
|
|
46
|
+
private parsePrimary;
|
|
47
|
+
private parseCaseExpr;
|
|
48
|
+
}
|
|
49
|
+
export declare function parseCypher(input: string): CypherQuery;
|
|
50
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../../src/graph/cypher/parser.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,WAAW,EAWZ,MAAM,UAAU,CAAC;AAiBlB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,GAAG,CAAS;gBAER,KAAK,EAAE,MAAM;IAKzB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,aAAa;IAmBrB,KAAK,IAAI,WAAW;IAQpB,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAgExB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,wBAAwB;IA2EhC,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;IA+HpB,OAAO,CAAC,aAAa;CA0BtB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAGtD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Vertex, Edge } from "../core/types.js";
|
|
2
|
+
export type DeltaKind = "add_vertex" | "remove_vertex" | "add_edge" | "remove_edge";
|
|
3
|
+
export interface DeltaOp {
|
|
4
|
+
readonly kind: DeltaKind;
|
|
5
|
+
readonly vertex?: Vertex;
|
|
6
|
+
readonly edge?: Edge;
|
|
7
|
+
readonly vertexId?: number;
|
|
8
|
+
readonly edgeId?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function createDeltaOp(kind: DeltaKind, opts?: {
|
|
11
|
+
vertex?: Vertex;
|
|
12
|
+
edge?: Edge;
|
|
13
|
+
vertexId?: number;
|
|
14
|
+
edgeId?: number;
|
|
15
|
+
}): DeltaOp;
|
|
16
|
+
export declare class GraphDelta {
|
|
17
|
+
private _ops;
|
|
18
|
+
private _affectedVertices;
|
|
19
|
+
private _affectedLabels;
|
|
20
|
+
get ops(): ReadonlyArray<DeltaOp>;
|
|
21
|
+
get affectedVertices(): ReadonlySet<number>;
|
|
22
|
+
get affectedLabels(): ReadonlySet<string>;
|
|
23
|
+
get isEmpty(): boolean;
|
|
24
|
+
addVertex(vertex: Vertex): void;
|
|
25
|
+
removeVertex(vertexId: number, label?: string): void;
|
|
26
|
+
addEdge(edge: Edge): void;
|
|
27
|
+
removeEdge(edgeId: number, edge?: Edge): void;
|
|
28
|
+
clear(): void;
|
|
29
|
+
merge(other: GraphDelta): GraphDelta;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=delta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../../src/graph/delta.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAQT;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAA0B;IAEjD,IAAI,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAEhC;IAED,IAAI,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE1C;IAED,IAAI,cAAc,IAAI,WAAW,CAAC,MAAM,CAAC,CAExC;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAOzB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI;IAS7C,KAAK,IAAI,IAAI;IAMb,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;CAsBrC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PostingList } from "../core/posting-list.js";
|
|
2
|
+
import { Operator } from "../operators/base.js";
|
|
3
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
4
|
+
export declare class GraphEmbeddingOperator extends Operator {
|
|
5
|
+
readonly graph: string;
|
|
6
|
+
readonly kHops: number;
|
|
7
|
+
constructor(opts: {
|
|
8
|
+
graph: string;
|
|
9
|
+
kHops?: number;
|
|
10
|
+
});
|
|
11
|
+
execute(context: ExecutionContext): PostingList;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=graph-embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-embedding.d.ts","sourceRoot":"","sources":["../../../../src/graph/graph-embedding.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAU7D,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAMnD,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;CA6HhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
2
|
+
import { GraphPostingList } from "./posting-list.js";
|
|
3
|
+
import type { GraphPattern } from "./pattern.js";
|
|
4
|
+
import type { GraphDelta } from "./delta.js";
|
|
5
|
+
export declare class IncrementalPatternMatcher {
|
|
6
|
+
readonly pattern: GraphPattern;
|
|
7
|
+
readonly graph: string;
|
|
8
|
+
private _cachedResults;
|
|
9
|
+
constructor(pattern: GraphPattern, graph: string);
|
|
10
|
+
get cachedResults(): ReadonlyArray<ReadonlyMap<string, number>> | null;
|
|
11
|
+
fullMatch(context: ExecutionContext): GraphPostingList;
|
|
12
|
+
incrementalUpdate(delta: GraphDelta, context: ExecutionContext): GraphPostingList;
|
|
13
|
+
invalidate(): void;
|
|
14
|
+
private _buildPostingList;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=incremental-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incremental-match.d.ts","sourceRoot":"","sources":["../../../../src/graph/incremental-match.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,cAAc,CAA2C;gBAErD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM;IAKhD,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAErE;IAGD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IAwBtD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IA+EjF,UAAU,IAAI,IAAI;IAIlB,OAAO,CAAC,iBAAiB;CAsC1B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { GraphStore } from "../storage/abc/graph-store.js";
|
|
2
|
+
import type { GraphPattern } from "./pattern.js";
|
|
3
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
4
|
+
export declare class LabelIndex {
|
|
5
|
+
private _labelToEdges;
|
|
6
|
+
private _labelToVertices;
|
|
7
|
+
build(store: GraphStore, graphName: string): void;
|
|
8
|
+
edgesByLabel(label: string): number[];
|
|
9
|
+
verticesByLabel(label: string): Set<number>;
|
|
10
|
+
labels(): string[];
|
|
11
|
+
labelCount(label: string): number;
|
|
12
|
+
}
|
|
13
|
+
export declare class NeighborhoodIndex {
|
|
14
|
+
readonly maxHops: number;
|
|
15
|
+
private _cache;
|
|
16
|
+
constructor(maxHops?: number);
|
|
17
|
+
build(store: GraphStore, graphName: string, label?: string | null): void;
|
|
18
|
+
neighbors(vertexId: number, hops: number): Set<number>;
|
|
19
|
+
hasVertex(vertexId: number): boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class PathIndex {
|
|
22
|
+
private _index;
|
|
23
|
+
private _makeKey;
|
|
24
|
+
private _pairKey;
|
|
25
|
+
private _parsePairKey;
|
|
26
|
+
build(store: GraphStore, graphName: string, labelSequences: string[][]): void;
|
|
27
|
+
private _findReachable;
|
|
28
|
+
lookup(labels: string[], graphName: string): Array<[number, number]>;
|
|
29
|
+
hasPath(labels: string[], graphName: string): boolean;
|
|
30
|
+
indexedPaths(): string[][];
|
|
31
|
+
}
|
|
32
|
+
export declare class SubgraphIndex {
|
|
33
|
+
private _cache;
|
|
34
|
+
private _patternKey;
|
|
35
|
+
build(_store: GraphStore, graphName: string, patterns: GraphPattern[], context: ExecutionContext): void;
|
|
36
|
+
lookup(pattern: GraphPattern, graphName: string): Array<Map<string, number>> | null;
|
|
37
|
+
hasPattern(pattern: GraphPattern, graphName: string): boolean;
|
|
38
|
+
invalidate(pattern: GraphPattern, graphName: string): void;
|
|
39
|
+
}
|
|
40
|
+
export declare class VertexPropertyIndex {
|
|
41
|
+
private _hashIndex;
|
|
42
|
+
private _sortedIndex;
|
|
43
|
+
private _indexedProperties;
|
|
44
|
+
build(store: GraphStore, graphName: string, propertyNames: string[]): void;
|
|
45
|
+
lookupEq(propertyName: string, value: unknown): Set<number>;
|
|
46
|
+
lookupRange(propertyName: string, low: number, high: number): number[];
|
|
47
|
+
hasProperty(propertyName: string): boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare class EdgePropertyIndex {
|
|
50
|
+
private _hashIndex;
|
|
51
|
+
private _sortedIndex;
|
|
52
|
+
private _indexedProperties;
|
|
53
|
+
build(store: GraphStore, graphName: string, propertyNames: string[]): void;
|
|
54
|
+
lookupEq(propertyName: string, value: unknown): Set<number>;
|
|
55
|
+
lookupRange(propertyName: string, low: number, high: number): number[];
|
|
56
|
+
hasProperty(propertyName: string): boolean;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/graph/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PostingList } from "../core/posting-list.js";
|
|
2
|
+
import { Operator } from "../operators/base.js";
|
|
3
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
4
|
+
export declare class GraphGraphJoinOperator extends Operator {
|
|
5
|
+
readonly left: Operator;
|
|
6
|
+
readonly right: Operator;
|
|
7
|
+
readonly joinVariable: string;
|
|
8
|
+
constructor(left: Operator, right: Operator, joinVariable: string);
|
|
9
|
+
execute(context: ExecutionContext): PostingList;
|
|
10
|
+
}
|
|
11
|
+
export declare class CrossParadigmGraphJoinOperator extends Operator {
|
|
12
|
+
readonly graphSource: Operator;
|
|
13
|
+
readonly relationalSource: Operator;
|
|
14
|
+
readonly joinField: string;
|
|
15
|
+
constructor(graphSource: Operator, relationalSource: Operator, joinField: string);
|
|
16
|
+
execute(context: ExecutionContext): PostingList;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../src/graph/join.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM;IAOjE,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;CAoFhD;AAID,qBAAa,8BAA+B,SAAQ,QAAQ;IAC1D,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAOhF,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;CAsEhD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PostingList } from "../core/posting-list.js";
|
|
2
|
+
import { Operator } from "../operators/base.js";
|
|
3
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
4
|
+
export declare class MessagePassingOperator extends Operator {
|
|
5
|
+
readonly kLayers: number;
|
|
6
|
+
readonly aggregation: "mean" | "sum" | "max";
|
|
7
|
+
readonly propertyName: string;
|
|
8
|
+
readonly graph: string;
|
|
9
|
+
constructor(opts: {
|
|
10
|
+
kLayers?: number;
|
|
11
|
+
aggregation?: "mean" | "sum" | "max";
|
|
12
|
+
propertyName?: string;
|
|
13
|
+
graph: string;
|
|
14
|
+
});
|
|
15
|
+
execute(context: ExecutionContext): PostingList;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=message-passing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-passing.d.ts","sourceRoot":"","sources":["../../../../src/graph/message-passing.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf;IAQD,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW;CAyGhD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Vertex } from "../core/types.js";
|
|
2
|
+
import { PostingList } from "../core/posting-list.js";
|
|
3
|
+
import { Operator } from "../operators/base.js";
|
|
4
|
+
import type { ExecutionContext } from "../operators/base.js";
|
|
5
|
+
import type { GraphPattern, RegularPathExpr } from "./pattern.js";
|
|
6
|
+
export declare class TraverseOperator extends Operator {
|
|
7
|
+
readonly startVertex: number;
|
|
8
|
+
readonly graph: string;
|
|
9
|
+
readonly label: string | null;
|
|
10
|
+
readonly maxHops: number;
|
|
11
|
+
readonly vertexPredicate: ((v: Vertex) => boolean) | null;
|
|
12
|
+
readonly score: number;
|
|
13
|
+
constructor(startVertex: number, graph: string, label?: string | null, maxHops?: number, vertexPredicate?: ((v: Vertex) => boolean) | null, score?: number);
|
|
14
|
+
execute(context: ExecutionContext): PostingList;
|
|
15
|
+
}
|
|
16
|
+
export declare class PatternMatchOperator extends Operator {
|
|
17
|
+
readonly pattern: GraphPattern;
|
|
18
|
+
readonly graph: string;
|
|
19
|
+
readonly score: number;
|
|
20
|
+
constructor(pattern: GraphPattern, graph: string, score?: number);
|
|
21
|
+
execute(context: ExecutionContext): PostingList;
|
|
22
|
+
private _backtrackSearch;
|
|
23
|
+
private _computeCandidates;
|
|
24
|
+
private _backtrack;
|
|
25
|
+
private _validateEdgesFor;
|
|
26
|
+
private _validateAllEdges;
|
|
27
|
+
private _checkNegatedEdges;
|
|
28
|
+
private _collectMatchEdges;
|
|
29
|
+
private _buildPostingList;
|
|
30
|
+
}
|
|
31
|
+
export declare class RegularPathQueryOperator extends Operator {
|
|
32
|
+
readonly pathExpr: RegularPathExpr;
|
|
33
|
+
readonly graph: string;
|
|
34
|
+
readonly startVertex: number | null;
|
|
35
|
+
readonly score: number;
|
|
36
|
+
constructor(pathExpr: RegularPathExpr, graph: string, startVertex?: number | null, score?: number);
|
|
37
|
+
execute(context: ExecutionContext): PostingList;
|
|
38
|
+
private _simulateDfa;
|
|
39
|
+
private _tryIndexLookup;
|
|
40
|
+
private _extractLabelSequence;
|
|
41
|
+
}
|
|
42
|
+
export declare class VertexAggregationOperator extends Operator {
|
|
43
|
+
readonly source: Operator;
|
|
44
|
+
readonly propertyName: string;
|
|
45
|
+
readonly aggFn: (values: number[]) => number;
|
|
46
|
+
constructor(source: Operator, propertyName: string, aggFn?: (values: number[]) => number);
|
|
47
|
+
execute(context: ExecutionContext): PostingList;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Weighted regular path query: finds paths matching a regular expression
|
|
51
|
+
* with associated edge weights. The score of each result path is the
|
|
52
|
+
* aggregation (sum/min/max/product) of edge weights along the path.
|
|
53
|
+
*/
|
|
54
|
+
export declare class WeightedPathQueryOperator extends Operator {
|
|
55
|
+
readonly pathExpr: RegularPathExpr;
|
|
56
|
+
readonly graph: string;
|
|
57
|
+
readonly startVertex: number | null;
|
|
58
|
+
readonly weightProperty: string;
|
|
59
|
+
readonly aggregation: "sum" | "min" | "max" | "product";
|
|
60
|
+
readonly weightThreshold: number | null;
|
|
61
|
+
readonly score: number;
|
|
62
|
+
constructor(pathExpr: RegularPathExpr, graph: string, opts?: {
|
|
63
|
+
startVertex?: number | null;
|
|
64
|
+
weightProperty?: string;
|
|
65
|
+
aggregation?: "sum" | "min" | "max" | "product";
|
|
66
|
+
weightThreshold?: number | null;
|
|
67
|
+
score?: number;
|
|
68
|
+
});
|
|
69
|
+
execute(context: ExecutionContext): PostingList;
|
|
70
|
+
private _simulateWeightedDfa;
|
|
71
|
+
}
|
|
72
|
+
export declare class CypherQueryOperator extends Operator {
|
|
73
|
+
readonly graph: string;
|
|
74
|
+
readonly query: string;
|
|
75
|
+
readonly graphName: string;
|
|
76
|
+
readonly params: Record<string, unknown>;
|
|
77
|
+
readonly colNames: string[];
|
|
78
|
+
constructor(graph: string, query: string, graphName: string, params?: Record<string, unknown>, colNames?: string[]);
|
|
79
|
+
execute(context: ExecutionContext): PostingList;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=operators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../../src/graph/operators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Vertex, Edge } from "../core/types.js";
|
|
2
|
+
export interface VertexPattern {
|
|
3
|
+
readonly variable: string;
|
|
4
|
+
readonly constraints: ((v: Vertex) => boolean)[];
|
|
5
|
+
}
|
|
6
|
+
export interface EdgePattern {
|
|
7
|
+
readonly sourceVar: string;
|
|
8
|
+
readonly targetVar: string;
|
|
9
|
+
readonly label: string | null;
|
|
10
|
+
readonly constraints: ((e: Edge) => boolean)[];
|
|
11
|
+
readonly negated: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface GraphPattern {
|
|
14
|
+
readonly vertexPatterns: VertexPattern[];
|
|
15
|
+
readonly edgePatterns: EdgePattern[];
|
|
16
|
+
}
|
|
17
|
+
export declare function createVertexPattern(variable: string, constraints?: ((v: Vertex) => boolean)[]): VertexPattern;
|
|
18
|
+
export declare function createEdgePattern(sourceVar: string, targetVar: string, opts?: Partial<{
|
|
19
|
+
label: string | null;
|
|
20
|
+
constraints: ((e: Edge) => boolean)[];
|
|
21
|
+
negated: boolean;
|
|
22
|
+
}>): EdgePattern;
|
|
23
|
+
export declare function createGraphPattern(vertexPatterns?: VertexPattern[], edgePatterns?: EdgePattern[]): GraphPattern;
|
|
24
|
+
export declare abstract class RegularPathExpr {
|
|
25
|
+
abstract equals(other: RegularPathExpr): boolean;
|
|
26
|
+
abstract toString(): string;
|
|
27
|
+
}
|
|
28
|
+
export declare class Label extends RegularPathExpr {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
constructor(name: string);
|
|
31
|
+
equals(other: RegularPathExpr): boolean;
|
|
32
|
+
toString(): string;
|
|
33
|
+
}
|
|
34
|
+
export declare class Concat extends RegularPathExpr {
|
|
35
|
+
readonly left: RegularPathExpr;
|
|
36
|
+
readonly right: RegularPathExpr;
|
|
37
|
+
constructor(left: RegularPathExpr, right: RegularPathExpr);
|
|
38
|
+
equals(other: RegularPathExpr): boolean;
|
|
39
|
+
toString(): string;
|
|
40
|
+
}
|
|
41
|
+
export declare class Alternation extends RegularPathExpr {
|
|
42
|
+
readonly left: RegularPathExpr;
|
|
43
|
+
readonly right: RegularPathExpr;
|
|
44
|
+
constructor(left: RegularPathExpr, right: RegularPathExpr);
|
|
45
|
+
equals(other: RegularPathExpr): boolean;
|
|
46
|
+
toString(): string;
|
|
47
|
+
}
|
|
48
|
+
export declare class KleeneStar extends RegularPathExpr {
|
|
49
|
+
readonly inner: RegularPathExpr;
|
|
50
|
+
constructor(inner: RegularPathExpr);
|
|
51
|
+
equals(other: RegularPathExpr): boolean;
|
|
52
|
+
toString(): string;
|
|
53
|
+
}
|
|
54
|
+
export declare class BoundedLabel extends RegularPathExpr {
|
|
55
|
+
readonly name: string;
|
|
56
|
+
readonly minCount: number;
|
|
57
|
+
readonly maxCount: number;
|
|
58
|
+
constructor(name: string, minCount: number, maxCount: number);
|
|
59
|
+
equals(other: RegularPathExpr): boolean;
|
|
60
|
+
toString(): string;
|
|
61
|
+
}
|
|
62
|
+
export declare function parseRpq(exprStr: string): RegularPathExpr;
|
|
63
|
+
//# sourceMappingURL=pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../../src/graph/pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PostingEntry } from "../core/types.js";
|
|
2
|
+
import { PostingList } from "../core/posting-list.js";
|
|
3
|
+
export interface GraphPayload {
|
|
4
|
+
readonly subgraphVertices: ReadonlySet<number>;
|
|
5
|
+
readonly subgraphEdges: ReadonlySet<number>;
|
|
6
|
+
readonly score: number;
|
|
7
|
+
readonly graphName: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createGraphPayload(opts?: Partial<{
|
|
10
|
+
subgraphVertices: ReadonlySet<number>;
|
|
11
|
+
subgraphEdges: ReadonlySet<number>;
|
|
12
|
+
score: number;
|
|
13
|
+
graphName: string;
|
|
14
|
+
}>): GraphPayload;
|
|
15
|
+
export declare class GraphPostingList extends PostingList {
|
|
16
|
+
private _graphPayloads;
|
|
17
|
+
constructor(entries?: PostingEntry[], graphPayloads?: Map<number, GraphPayload>);
|
|
18
|
+
setGraphPayload(docId: number, payload: GraphPayload): void;
|
|
19
|
+
getGraphPayload(docId: number): GraphPayload | null;
|
|
20
|
+
get graphPayloads(): Map<number, GraphPayload>;
|
|
21
|
+
toPostingList(): PostingList;
|
|
22
|
+
static fromPostingList(pl: PostingList): GraphPostingList;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=posting-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posting-list.d.ts","sourceRoot":"","sources":["../../../../src/graph/posting-list.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,GACD,YAAY,CAOd;AAID,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,cAAc,CAA4B;gBAEtC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAK/E,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI3D,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAInD,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAE7C;IAID,aAAa,IAAI,WAAW;IA0B5B,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB;CA+B1D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type RegularPathExpr } from "./pattern.js";
|
|
2
|
+
export declare function simplifyExpr(expr: RegularPathExpr): RegularPathExpr;
|
|
3
|
+
export interface NFAState {
|
|
4
|
+
readonly id: number;
|
|
5
|
+
}
|
|
6
|
+
export interface NFATransition {
|
|
7
|
+
readonly from: number;
|
|
8
|
+
readonly to: number;
|
|
9
|
+
readonly label: string | null;
|
|
10
|
+
}
|
|
11
|
+
export interface NFA {
|
|
12
|
+
readonly states: NFAState[];
|
|
13
|
+
readonly transitions: NFATransition[];
|
|
14
|
+
readonly startState: number;
|
|
15
|
+
readonly acceptState: number;
|
|
16
|
+
}
|
|
17
|
+
export type DFAState = string;
|
|
18
|
+
export type DFATransitions = Map<string, Map<string, string>>;
|
|
19
|
+
export interface DFAResult {
|
|
20
|
+
readonly transitions: DFATransitions;
|
|
21
|
+
readonly startState: DFAState;
|
|
22
|
+
readonly acceptStates: Set<DFAState>;
|
|
23
|
+
}
|
|
24
|
+
export declare function subsetConstruction(nfa: NFA): DFAResult;
|
|
25
|
+
//# sourceMappingURL=rpq-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpq-optimizer.d.ts","sourceRoot":"","sources":["../../../../src/graph/rpq-optimizer.ts"],"names":[],"mappings":"AAYA,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAIrF,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CA2CnE;AAID,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAKD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;CACtC;AA2CD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CA8CtD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Edge, Vertex } from "../core/types.js";
|
|
2
|
+
import { GraphStore } from "../storage/abc/graph-store.js";
|
|
3
|
+
export declare class MemoryGraphStore extends GraphStore {
|
|
4
|
+
private _vertices;
|
|
5
|
+
private _edges;
|
|
6
|
+
private _graphs;
|
|
7
|
+
private _vertexMembership;
|
|
8
|
+
private _edgeMembership;
|
|
9
|
+
private _nextVertexId;
|
|
10
|
+
private _nextEdgeId;
|
|
11
|
+
createGraph(name: string): void;
|
|
12
|
+
dropGraph(name: string): void;
|
|
13
|
+
graphNames(): string[];
|
|
14
|
+
hasGraph(name: string): boolean;
|
|
15
|
+
unionGraphs(g1: string, g2: string, target: string): void;
|
|
16
|
+
intersectGraphs(g1: string, g2: string, target: string): void;
|
|
17
|
+
differenceGraphs(g1: string, g2: string, target: string): void;
|
|
18
|
+
copyGraph(source: string, target: string): void;
|
|
19
|
+
addVertex(vertex: Vertex, graph: string): void;
|
|
20
|
+
addEdge(edge: Edge, graph: string): void;
|
|
21
|
+
removeVertex(vertexId: number, graph: string): void;
|
|
22
|
+
removeEdge(edgeId: number, graph: string): void;
|
|
23
|
+
neighbors(vertexId: number, graph: string, label?: string | null, direction?: "out" | "in"): number[];
|
|
24
|
+
verticesByLabel(label: string, graph: string): Vertex[];
|
|
25
|
+
verticesInGraph(graph: string): Vertex[];
|
|
26
|
+
edgesInGraph(graph: string): Edge[];
|
|
27
|
+
vertexGraphs(vertexId: number): Set<string>;
|
|
28
|
+
outEdgeIds(vertexId: number, graph: string): Set<number>;
|
|
29
|
+
inEdgeIds(vertexId: number, graph: string): Set<number>;
|
|
30
|
+
edgeIdsByLabel(label: string, graph: string): Set<number>;
|
|
31
|
+
vertexIdsInGraph(graph: string): Set<number>;
|
|
32
|
+
degreeDistribution(graph: string): Map<number, number>;
|
|
33
|
+
labelDegree(label: string, graph: string): number;
|
|
34
|
+
vertexLabelCounts(graph: string): Map<string, number>;
|
|
35
|
+
getVertex(vertexId: number): Vertex | null;
|
|
36
|
+
getEdge(edgeId: number): Edge | null;
|
|
37
|
+
nextVertexId(): number;
|
|
38
|
+
nextEdgeId(): number;
|
|
39
|
+
clear(): void;
|
|
40
|
+
get vertices(): Map<number, Vertex>;
|
|
41
|
+
get edges(): Map<number, Edge>;
|
|
42
|
+
get vertexCount(): number;
|
|
43
|
+
get edgeCount(): number;
|
|
44
|
+
addVertices(vertices: Vertex[], graph: string): void;
|
|
45
|
+
addEdges(edges: Edge[], graph: string): void;
|
|
46
|
+
vertexProperty(vertexId: number, key: string): unknown;
|
|
47
|
+
setVertexProperty(vertexId: number, key: string, value: unknown): void;
|
|
48
|
+
edgeProperty(edgeId: number, key: string): unknown;
|
|
49
|
+
setEdgeProperty(edgeId: number, key: string, value: unknown): void;
|
|
50
|
+
edgesByLabel(label: string, graph: string): Edge[];
|
|
51
|
+
vertexLabels(graph: string): Set<string>;
|
|
52
|
+
edgeLabels(graph: string): Set<string>;
|
|
53
|
+
outDegree(vertexId: number, graph: string): number;
|
|
54
|
+
inDegree(vertexId: number, graph: string): number;
|
|
55
|
+
edgesBetween(sourceId: number, targetId: number, graph: string, label?: string | null): Edge[];
|
|
56
|
+
subgraph(vertexIds: Set<number>, graph: string, target: string): void;
|
|
57
|
+
minTimestamp(graph: string): number | null;
|
|
58
|
+
maxTimestamp(graph: string): number | null;
|
|
59
|
+
edgesInTimeRange(graph: string, startTime: number, endTime: number): Edge[];
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/graph/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Edge } from "../core/types.js";
|
|
2
|
+
export declare class TemporalFilter {
|
|
3
|
+
readonly timestamp: number | null;
|
|
4
|
+
readonly timeRange: [number, number] | null;
|
|
5
|
+
constructor(opts?: {
|
|
6
|
+
timestamp?: number | null;
|
|
7
|
+
timeRange?: [number, number] | null;
|
|
8
|
+
});
|
|
9
|
+
isValid(edge: Edge): boolean;
|
|
10
|
+
private _isValidRange;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=temporal-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-filter.d.ts","sourceRoot":"","sources":["../../../../src/graph/temporal-filter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAI7C,qBAAa,cAAc;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;gBAEhC,IAAI,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;KACrC;IAUD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAiC5B,OAAO,CAAC,aAAa;CAmBtB"}
|