@grafema/types 0.2.11 → 0.3.0-beta
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/dist/edges.d.ts +37 -2
- package/dist/edges.d.ts.map +1 -1
- package/dist/edges.js +13 -1
- package/dist/edges.js.map +1 -1
- package/dist/nodes.d.ts +23 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +10 -1
- package/dist/nodes.js.map +1 -1
- package/dist/plugins.d.ts +35 -4
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/rfdb.d.ts +101 -2
- package/dist/rfdb.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/edges.ts +41 -2
- package/src/nodes.ts +31 -1
- package/src/plugins.ts +41 -6
- package/src/rfdb.ts +114 -2
package/dist/edges.d.ts
CHANGED
|
@@ -21,15 +21,16 @@ export declare const EDGE_TYPE: {
|
|
|
21
21
|
readonly PASSES_ARGUMENT: "PASSES_ARGUMENT";
|
|
22
22
|
readonly RECEIVES_ARGUMENT: "RECEIVES_ARGUMENT";
|
|
23
23
|
readonly RETURNS: "RETURNS";
|
|
24
|
+
readonly CALL_RETURNS: "CALL_RETURNS";
|
|
24
25
|
readonly YIELDS: "YIELDS";
|
|
25
26
|
readonly DELEGATES_TO: "DELEGATES_TO";
|
|
27
|
+
readonly HAS_MEMBER: "HAS_MEMBER";
|
|
26
28
|
readonly EXTENDS: "EXTENDS";
|
|
27
29
|
readonly IMPLEMENTS: "IMPLEMENTS";
|
|
28
30
|
readonly INSTANCE_OF: "INSTANCE_OF";
|
|
29
31
|
readonly IMPORTS: "IMPORTS";
|
|
30
32
|
readonly EXPORTS: "EXPORTS";
|
|
31
33
|
readonly IMPORTS_FROM: "IMPORTS_FROM";
|
|
32
|
-
readonly EXPORTS_TO: "EXPORTS_TO";
|
|
33
34
|
readonly DEFINES: "DEFINES";
|
|
34
35
|
readonly USES: "USES";
|
|
35
36
|
readonly DECLARES: "DECLARES";
|
|
@@ -40,8 +41,15 @@ export declare const EDGE_TYPE: {
|
|
|
40
41
|
readonly WRITES_TO: "WRITES_TO";
|
|
41
42
|
readonly DERIVES_FROM: "DERIVES_FROM";
|
|
42
43
|
readonly FLOWS_INTO: "FLOWS_INTO";
|
|
44
|
+
readonly SPREADS_FROM: "SPREADS_FROM";
|
|
45
|
+
readonly ELEMENT_OF: "ELEMENT_OF";
|
|
46
|
+
readonly KEY_OF: "KEY_OF";
|
|
47
|
+
readonly DESTRUCTURED_FROM: "DESTRUCTURED_FROM";
|
|
43
48
|
readonly HAS_PROPERTY: "HAS_PROPERTY";
|
|
44
49
|
readonly HAS_ELEMENT: "HAS_ELEMENT";
|
|
50
|
+
readonly PROPERTY_KEY: "PROPERTY_KEY";
|
|
51
|
+
readonly PROPERTY_VALUE: "PROPERTY_VALUE";
|
|
52
|
+
readonly ASSIGNS_TO: "ASSIGNS_TO";
|
|
45
53
|
readonly ROUTES_TO: "ROUTES_TO";
|
|
46
54
|
readonly HANDLED_BY: "HANDLED_BY";
|
|
47
55
|
readonly MAKES_REQUEST: "MAKES_REQUEST";
|
|
@@ -73,6 +81,7 @@ export declare const EDGE_TYPE: {
|
|
|
73
81
|
readonly LOGS_TO: "LOGS_TO";
|
|
74
82
|
readonly INVOKES_FUNCTION: "INVOKES_FUNCTION";
|
|
75
83
|
readonly PROVISIONED_BY: "PROVISIONED_BY";
|
|
84
|
+
readonly PERFORMS_REDIS: "PERFORMS_REDIS";
|
|
76
85
|
readonly UNKNOWN: "UNKNOWN";
|
|
77
86
|
};
|
|
78
87
|
export type EdgeType = typeof EDGE_TYPE[keyof typeof EDGE_TYPE] | string;
|
|
@@ -95,14 +104,40 @@ export interface ImportsEdge extends EdgeRecord {
|
|
|
95
104
|
specifier?: string;
|
|
96
105
|
isDefault?: boolean;
|
|
97
106
|
}
|
|
107
|
+
/** EXPORT node → entity it exports (FUNCTION, VARIABLE, CLASS, etc.) or re-export target */
|
|
98
108
|
export interface ExportsEdge extends EdgeRecord {
|
|
99
109
|
type: 'EXPORTS';
|
|
100
|
-
exportedName?: string;
|
|
101
110
|
}
|
|
102
111
|
export interface DataFlowEdge extends EdgeRecord {
|
|
103
112
|
type: 'ASSIGNED_FROM' | 'READS_FROM' | 'WRITES_TO' | 'PASSES_ARGUMENT' | 'DERIVES_FROM' | 'FLOWS_INTO';
|
|
104
113
|
dataType?: string;
|
|
105
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Edge representing an element/value relationship with a collection.
|
|
117
|
+
* Source: the element (VARIABLE, PARAMETER, CALL)
|
|
118
|
+
* Destination: the collection (VARIABLE, PARAMETER)
|
|
119
|
+
*
|
|
120
|
+
* Example: `for (const item of arr)` → item --ELEMENT_OF--> arr
|
|
121
|
+
*/
|
|
122
|
+
export interface ElementOfEdge extends EdgeRecord {
|
|
123
|
+
type: 'ELEMENT_OF';
|
|
124
|
+
metadata?: {
|
|
125
|
+
via: 'for-of' | 'for-in' | 'destructuring' | 'method-callback' | 'method-return' | 'computed-access' | 'Object.values' | 'Object.entries';
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Edge representing a key relationship with a collection.
|
|
130
|
+
* Source: the key (VARIABLE, PARAMETER, CALL)
|
|
131
|
+
* Destination: the collection (VARIABLE, PARAMETER)
|
|
132
|
+
*
|
|
133
|
+
* Example: `for (const key in obj)` → key --KEY_OF--> obj
|
|
134
|
+
*/
|
|
135
|
+
export interface KeyOfEdge extends EdgeRecord {
|
|
136
|
+
type: 'KEY_OF';
|
|
137
|
+
metadata?: {
|
|
138
|
+
via: 'for-in' | 'Object.keys' | 'Object.entries';
|
|
139
|
+
};
|
|
140
|
+
}
|
|
106
141
|
/**
|
|
107
142
|
* Edge representing data flowing INTO a container (array, collection)
|
|
108
143
|
* Source: the value being added
|
package/dist/edges.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiIZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,GAAG,MAAM,CAAC;AAGzE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,CAAA;KAAE,CAAC;CAC1J;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,gBAAgB,CAAA;KAAE,CAAC;CACjE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,cAAc,GAAG,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE;QACT,0EAA0E;QAC1E,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC7B,CAAC;CACH"}
|
package/dist/edges.js
CHANGED
|
@@ -28,8 +28,11 @@ export const EDGE_TYPE = {
|
|
|
28
28
|
PASSES_ARGUMENT: 'PASSES_ARGUMENT',
|
|
29
29
|
RECEIVES_ARGUMENT: 'RECEIVES_ARGUMENT',
|
|
30
30
|
RETURNS: 'RETURNS',
|
|
31
|
+
CALL_RETURNS: 'CALL_RETURNS',
|
|
31
32
|
YIELDS: 'YIELDS',
|
|
32
33
|
DELEGATES_TO: 'DELEGATES_TO',
|
|
34
|
+
// Class members
|
|
35
|
+
HAS_MEMBER: 'HAS_MEMBER', // CLASS -> METHOD / PROPERTY / STATIC_BLOCK
|
|
33
36
|
// Inheritance
|
|
34
37
|
EXTENDS: 'EXTENDS',
|
|
35
38
|
IMPLEMENTS: 'IMPLEMENTS',
|
|
@@ -38,7 +41,6 @@ export const EDGE_TYPE = {
|
|
|
38
41
|
IMPORTS: 'IMPORTS',
|
|
39
42
|
EXPORTS: 'EXPORTS',
|
|
40
43
|
IMPORTS_FROM: 'IMPORTS_FROM',
|
|
41
|
-
EXPORTS_TO: 'EXPORTS_TO',
|
|
42
44
|
// Variables/Data flow
|
|
43
45
|
DEFINES: 'DEFINES',
|
|
44
46
|
USES: 'USES',
|
|
@@ -50,9 +52,17 @@ export const EDGE_TYPE = {
|
|
|
50
52
|
WRITES_TO: 'WRITES_TO',
|
|
51
53
|
DERIVES_FROM: 'DERIVES_FROM',
|
|
52
54
|
FLOWS_INTO: 'FLOWS_INTO',
|
|
55
|
+
SPREADS_FROM: 'SPREADS_FROM', // SpreadElement → source being spread
|
|
56
|
+
ELEMENT_OF: 'ELEMENT_OF', // X is an element/value of collection Y (for-of, destructuring, array methods)
|
|
57
|
+
KEY_OF: 'KEY_OF', // X is a key of collection Y (for-in)
|
|
58
|
+
DESTRUCTURED_FROM: 'DESTRUCTURED_FROM', // VARIABLE → source it was destructured from, metadata.property = key
|
|
53
59
|
// Object/Array structure
|
|
54
60
|
HAS_PROPERTY: 'HAS_PROPERTY', // OBJECT_LITERAL -> property value
|
|
55
61
|
HAS_ELEMENT: 'HAS_ELEMENT', // ARRAY_LITERAL -> element
|
|
62
|
+
// Property assignment structure
|
|
63
|
+
PROPERTY_KEY: 'PROPERTY_KEY', // PROPERTY_ASSIGNMENT -> key literal
|
|
64
|
+
PROPERTY_VALUE: 'PROPERTY_VALUE', // PROPERTY_ASSIGNMENT -> value expression
|
|
65
|
+
ASSIGNS_TO: 'ASSIGNS_TO', // PROPERTY_ASSIGNMENT -> target PROPERTY/VARIABLE
|
|
56
66
|
// HTTP/Routing
|
|
57
67
|
ROUTES_TO: 'ROUTES_TO',
|
|
58
68
|
HANDLED_BY: 'HANDLED_BY',
|
|
@@ -95,6 +105,8 @@ export const EDGE_TYPE = {
|
|
|
95
105
|
INVOKES_FUNCTION: 'INVOKES_FUNCTION',
|
|
96
106
|
// Abstract -> Concrete (tool provenance)
|
|
97
107
|
PROVISIONED_BY: 'PROVISIONED_BY',
|
|
108
|
+
// Redis
|
|
109
|
+
PERFORMS_REDIS: 'PERFORMS_REDIS',
|
|
98
110
|
// Unknown/fallback
|
|
99
111
|
UNKNOWN: 'UNKNOWN',
|
|
100
112
|
};
|
package/dist/edges.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAqB;AACrB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY;IACZ,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IAEtB,YAAY;IACZ,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAE1B,aAAa;IACb,QAAQ,EAAE,UAAU,EAAY,qBAAqB;IACrD,aAAa,EAAE,eAAe,EAAE,8CAA8C;IAC9E,QAAQ,EAAE,UAAU,EAAY,0CAA0C;IAC1E,UAAU,EAAE,YAAY,EAAQ,wCAAwC;IAExE,qBAAqB;IACrB,cAAc,EAAE,gBAAgB,EAAE,uBAAuB;IACzD,aAAa,EAAE,eAAe,EAAI,uBAAuB;IAEzD,0BAA0B;IAC1B,SAAS,EAAE,WAAW,EAAM,2BAA2B;IACvD,WAAW,EAAE,aAAa,EAAE,6BAA6B;IAEzD,QAAQ;IACR,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAE5B,cAAc;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAE1B,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const NODE_TYPE: {
|
|
|
15
15
|
readonly EXPORT: "EXPORT";
|
|
16
16
|
readonly CALL: "CALL";
|
|
17
17
|
readonly PROPERTY_ACCESS: "PROPERTY_ACCESS";
|
|
18
|
+
readonly PROPERTY_ASSIGNMENT: "PROPERTY_ASSIGNMENT";
|
|
18
19
|
readonly PROJECT: "PROJECT";
|
|
19
20
|
readonly SERVICE: "SERVICE";
|
|
20
21
|
readonly FILE: "FILE";
|
|
@@ -41,6 +42,13 @@ export declare const NAMESPACED_TYPE: {
|
|
|
41
42
|
readonly SOCKETIO_NAMESPACE: "socketio:namespace";
|
|
42
43
|
readonly DB_QUERY: "db:query";
|
|
43
44
|
readonly DB_CONNECTION: "db:connection";
|
|
45
|
+
readonly REDIS_READ: "redis:read";
|
|
46
|
+
readonly REDIS_WRITE: "redis:write";
|
|
47
|
+
readonly REDIS_DELETE: "redis:delete";
|
|
48
|
+
readonly REDIS_PUBLISH: "redis:publish";
|
|
49
|
+
readonly REDIS_SUBSCRIBE: "redis:subscribe";
|
|
50
|
+
readonly REDIS_TRANSACTION: "redis:transaction";
|
|
51
|
+
readonly REDIS_CONNECTION: "redis:connection";
|
|
44
52
|
readonly FS_READ: "fs:read";
|
|
45
53
|
readonly FS_WRITE: "fs:write";
|
|
46
54
|
readonly FS_OPERATION: "fs:operation";
|
|
@@ -140,6 +148,12 @@ export interface PropertyAccessNodeRecord extends BaseNodeRecord {
|
|
|
140
148
|
optional?: boolean;
|
|
141
149
|
computed?: boolean;
|
|
142
150
|
}
|
|
151
|
+
export interface PropertyAssignmentNodeRecord extends BaseNodeRecord {
|
|
152
|
+
type: 'PROPERTY_ASSIGNMENT';
|
|
153
|
+
objectName: string;
|
|
154
|
+
className?: string;
|
|
155
|
+
computed?: boolean;
|
|
156
|
+
}
|
|
143
157
|
export interface ServiceNodeRecord extends BaseNodeRecord {
|
|
144
158
|
type: 'SERVICE';
|
|
145
159
|
projectPath: string;
|
|
@@ -248,7 +262,15 @@ export interface NetTcpServerNodeRecord extends BaseNodeRecord {
|
|
|
248
262
|
port: number;
|
|
249
263
|
backlog?: number;
|
|
250
264
|
}
|
|
251
|
-
export
|
|
265
|
+
export interface RedisOperationNodeRecord extends BaseNodeRecord {
|
|
266
|
+
type: 'redis:read' | 'redis:write' | 'redis:delete' | 'redis:publish' | 'redis:subscribe' | 'redis:transaction' | 'redis:connection';
|
|
267
|
+
method: string;
|
|
268
|
+
object?: string;
|
|
269
|
+
key?: string;
|
|
270
|
+
operation: string;
|
|
271
|
+
package: string;
|
|
272
|
+
}
|
|
273
|
+
export type NodeRecord = FunctionNodeRecord | ClassNodeRecord | MethodNodeRecord | ModuleNodeRecord | ImportNodeRecord | ExportNodeRecord | VariableNodeRecord | CallNodeRecord | PropertyAccessNodeRecord | PropertyAssignmentNodeRecord | ServiceNodeRecord | ScopeNodeRecord | BranchNodeRecord | CaseNodeRecord | LoopNodeRecord | TryBlockNodeRecord | CatchBlockNodeRecord | FinallyBlockNodeRecord | HttpRouteNodeRecord | DbQueryNodeRecord | EventListenerNodeRecord | GuaranteeNodeRecord | PluginNodeRecord | OsUnixSocketNodeRecord | OsUnixServerNodeRecord | NetTcpConnectionNodeRecord | NetTcpServerNodeRecord | RedisOperationNodeRecord | BaseNodeRecord;
|
|
252
274
|
export declare function isNamespacedType(nodeType: string): boolean;
|
|
253
275
|
export declare function getNamespace(nodeType: string): string | null;
|
|
254
276
|
export declare function getBaseName(nodeType: string): string;
|
package/dist/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.js
CHANGED
|
@@ -19,6 +19,7 @@ export const NODE_TYPE = {
|
|
|
19
19
|
// Call graph
|
|
20
20
|
CALL: 'CALL',
|
|
21
21
|
PROPERTY_ACCESS: 'PROPERTY_ACCESS',
|
|
22
|
+
PROPERTY_ASSIGNMENT: 'PROPERTY_ASSIGNMENT',
|
|
22
23
|
// Project structure
|
|
23
24
|
PROJECT: 'PROJECT',
|
|
24
25
|
SERVICE: 'SERVICE',
|
|
@@ -54,6 +55,14 @@ export const NAMESPACED_TYPE = {
|
|
|
54
55
|
// Database
|
|
55
56
|
DB_QUERY: 'db:query',
|
|
56
57
|
DB_CONNECTION: 'db:connection',
|
|
58
|
+
// Redis
|
|
59
|
+
REDIS_READ: 'redis:read',
|
|
60
|
+
REDIS_WRITE: 'redis:write',
|
|
61
|
+
REDIS_DELETE: 'redis:delete',
|
|
62
|
+
REDIS_PUBLISH: 'redis:publish',
|
|
63
|
+
REDIS_SUBSCRIBE: 'redis:subscribe',
|
|
64
|
+
REDIS_TRANSACTION: 'redis:transaction',
|
|
65
|
+
REDIS_CONNECTION: 'redis:connection',
|
|
57
66
|
// Filesystem
|
|
58
67
|
FS_READ: 'fs:read',
|
|
59
68
|
FS_WRITE: 'fs:write',
|
|
@@ -96,6 +105,6 @@ export function isSideEffectType(nodeType) {
|
|
|
96
105
|
if (nodeType === NODE_TYPE.SIDE_EFFECT)
|
|
97
106
|
return true;
|
|
98
107
|
const ns = getNamespace(nodeType);
|
|
99
|
-
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os';
|
|
108
|
+
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os' || ns === 'redis';
|
|
100
109
|
}
|
|
101
110
|
//# sourceMappingURL=nodes.js.map
|
package/dist/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,qBAAqB;IACrB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IAExB,gBAAgB;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAEhB,aAAa;IACb,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins.d.ts
CHANGED
|
@@ -126,6 +126,36 @@ export interface PluginContext {
|
|
|
126
126
|
* Available in all phases. Created by Orchestrator at run start.
|
|
127
127
|
*/
|
|
128
128
|
resources?: ResourceRegistry;
|
|
129
|
+
/**
|
|
130
|
+
* Graph write factory with non-restricted method names (REG-541).
|
|
131
|
+
* Plugins should use factory.store/link/storeMany/linkMany/update
|
|
132
|
+
* instead of graph.addNode/addEdge to satisfy guarantee rules.
|
|
133
|
+
* Also exposes read methods (getNode, queryNodes, etc.) so plugins
|
|
134
|
+
* can read from the graph through the factory.
|
|
135
|
+
* Injected by PhaseRunner when GraphFactory is available.
|
|
136
|
+
*/
|
|
137
|
+
factory?: {
|
|
138
|
+
store(node: AnyBrandedNode): Promise<void>;
|
|
139
|
+
storeMany(nodes: AnyBrandedNode[]): Promise<void>;
|
|
140
|
+
link(edge: InputEdge): Promise<void>;
|
|
141
|
+
linkMany(edges: InputEdge[], skipValidation?: boolean): Promise<void>;
|
|
142
|
+
update(node: NodeRecord): Promise<void>;
|
|
143
|
+
getNode(id: string): Promise<NodeRecord | null>;
|
|
144
|
+
queryNodes(filter: NodeFilter): AsyncIterable<NodeRecord> | AsyncGenerator<NodeRecord>;
|
|
145
|
+
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
146
|
+
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
147
|
+
nodeCount(): Promise<number>;
|
|
148
|
+
edgeCount(): Promise<number>;
|
|
149
|
+
countNodesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
150
|
+
countEdgesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
151
|
+
clear(): Promise<void>;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* When true, commitBatch should defer index rebuilding (REG-487).
|
|
155
|
+
* Used during initial/full analysis for O(1) per-commit cost.
|
|
156
|
+
* Caller must send rebuildIndexes() after all deferred commits complete.
|
|
157
|
+
*/
|
|
158
|
+
deferIndexing?: boolean;
|
|
129
159
|
}
|
|
130
160
|
export interface PluginResult {
|
|
131
161
|
success: boolean;
|
|
@@ -241,15 +271,13 @@ export interface GraphBackend {
|
|
|
241
271
|
addNode(node: AnyBrandedNode): Promise<void> | void;
|
|
242
272
|
addEdge(edge: InputEdge): Promise<void> | void;
|
|
243
273
|
addNodes(nodes: AnyBrandedNode[]): Promise<void> | void;
|
|
244
|
-
addEdges(edges: InputEdge[]): Promise<void> | void;
|
|
274
|
+
addEdges(edges: InputEdge[], skipValidation?: boolean): Promise<void> | void;
|
|
245
275
|
getNode(id: string): Promise<NodeRecord | null>;
|
|
246
276
|
queryNodes(filter: NodeFilter): AsyncIterable<NodeRecord> | AsyncGenerator<NodeRecord>;
|
|
247
|
-
getAllNodes(filter?: NodeFilter): Promise<NodeRecord[]>;
|
|
248
277
|
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
249
278
|
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
250
279
|
nodeCount(): Promise<number>;
|
|
251
280
|
edgeCount(): Promise<number>;
|
|
252
|
-
getAllEdges?(): Promise<EdgeRecord[]>;
|
|
253
281
|
countNodesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
254
282
|
countEdgesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
255
283
|
findByType?(type: string): Promise<string[]>;
|
|
@@ -263,10 +291,13 @@ export interface GraphBackend {
|
|
|
263
291
|
close?(): Promise<void>;
|
|
264
292
|
declareFields?(fields: FieldDeclaration[]): Promise<number>;
|
|
265
293
|
beginBatch?(): void;
|
|
266
|
-
commitBatch?(tags?: string[]): Promise<CommitDelta>;
|
|
294
|
+
commitBatch?(tags?: string[], deferIndex?: boolean, protectedTypes?: string[], changedFiles?: string[]): Promise<CommitDelta>;
|
|
267
295
|
abortBatch?(): void;
|
|
296
|
+
rebuildIndexes?(): Promise<void>;
|
|
297
|
+
createBatch?(): unknown;
|
|
268
298
|
batchNode?(node: AnyBrandedNode): void;
|
|
269
299
|
batchEdge?(edge: InputEdge): void;
|
|
300
|
+
updateNode?(node: NodeRecord): Promise<void>;
|
|
270
301
|
}
|
|
271
302
|
export interface NodeFilter {
|
|
272
303
|
type?: NodeType;
|
package/dist/plugins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH,wBAAwB;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH,wBAAwB;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAC;AAmVX,2BAA2B;AAC3B,MAAM,UAAU,mBAAmB,CACjC,UAA4C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAClE,WAAoC,EAAE,EACtC,SAAkB,EAAE;IAEpB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,EAAE;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAY,EACZ,UAA4C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;IAElE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,OAAO;QACP,MAAM,EAAE,CAAC,KAAK,CAAC;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
|
package/dist/rfdb.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { NodeType } from './nodes.js';
|
|
5
5
|
import type { EdgeType } from './edges.js';
|
|
6
|
-
export type RFDBCommand = 'addNodes' | 'addEdges' | 'deleteNode' | 'deleteEdge' | 'clear' | 'updateNodeVersion' | 'getNode' | 'nodeExists' | 'findByType' | 'findByAttr' | 'queryNodes' | 'getAllNodes' | 'getAllEdges' | 'isEndpoint' | 'getNodeIdentifier' | 'neighbors' | 'bfs' | 'dfs' | 'reachability' | 'getOutgoingEdges' | 'getIncomingEdges' | 'nodeCount' | 'edgeCount' | 'countNodesByType' | 'countEdgesByType' | 'flush' | 'compact' | 'ping' | 'shutdown' | 'datalogLoadRules' | 'datalogClearRules' | 'datalogQuery' | 'checkGuarantee' | 'executeDatalog' | 'hello' | 'createDatabase' | 'openDatabase' | 'closeDatabase' | 'dropDatabase' | 'listDatabases' | 'currentDatabase' | 'declareFields' | 'diffSnapshots' | 'tagSnapshot' | 'findSnapshot' | 'listSnapshots' | 'commitBatch';
|
|
6
|
+
export type RFDBCommand = 'addNodes' | 'addEdges' | 'deleteNode' | 'deleteEdge' | 'clear' | 'updateNodeVersion' | 'getNode' | 'nodeExists' | 'findByType' | 'findByAttr' | 'queryNodes' | 'getAllNodes' | 'getAllEdges' | 'isEndpoint' | 'getNodeIdentifier' | 'neighbors' | 'bfs' | 'dfs' | 'reachability' | 'getOutgoingEdges' | 'getIncomingEdges' | 'nodeCount' | 'edgeCount' | 'countNodesByType' | 'countEdgesByType' | 'getStats' | 'flush' | 'compact' | 'ping' | 'shutdown' | 'datalogLoadRules' | 'datalogClearRules' | 'datalogQuery' | 'checkGuarantee' | 'executeDatalog' | 'cypherQuery' | 'hello' | 'createDatabase' | 'openDatabase' | 'closeDatabase' | 'dropDatabase' | 'listDatabases' | 'currentDatabase' | 'declareFields' | 'diffSnapshots' | 'tagSnapshot' | 'findSnapshot' | 'listSnapshots' | 'commitBatch' | 'rebuildIndexes';
|
|
7
7
|
export interface WireNode {
|
|
8
8
|
id: string;
|
|
9
9
|
nodeType: NodeType;
|
|
@@ -216,6 +216,8 @@ export interface AttrQuery {
|
|
|
216
216
|
name?: string;
|
|
217
217
|
file?: string;
|
|
218
218
|
exported?: boolean;
|
|
219
|
+
/** When true, name and file filters use substring (contains) matching instead of exact match */
|
|
220
|
+
substringMatch?: boolean;
|
|
219
221
|
/** @deprecated Node-level version filter is legacy. In v2, use snapshot/tag APIs for history. */
|
|
220
222
|
version?: string;
|
|
221
223
|
/** Extra fields are matched against node metadata JSON (e.g. object, method, async) */
|
|
@@ -236,6 +238,47 @@ export interface DatalogBinding {
|
|
|
236
238
|
export interface DatalogResult {
|
|
237
239
|
bindings: DatalogBinding;
|
|
238
240
|
}
|
|
241
|
+
export interface QueryStats {
|
|
242
|
+
nodesVisited: number;
|
|
243
|
+
edgesTraversed: number;
|
|
244
|
+
findByTypeCalls: number;
|
|
245
|
+
getNodeCalls: number;
|
|
246
|
+
outgoingEdgeCalls: number;
|
|
247
|
+
incomingEdgeCalls: number;
|
|
248
|
+
allEdgesCalls: number;
|
|
249
|
+
bfsCalls: number;
|
|
250
|
+
totalResults: number;
|
|
251
|
+
ruleEvaluations: number;
|
|
252
|
+
intermediateCounts: number[];
|
|
253
|
+
}
|
|
254
|
+
export interface QueryProfile {
|
|
255
|
+
totalDurationUs: number;
|
|
256
|
+
predicateTimes: Record<string, number>;
|
|
257
|
+
ruleEvalTimeUs: number;
|
|
258
|
+
projectionTimeUs: number;
|
|
259
|
+
}
|
|
260
|
+
export interface ExplainStep {
|
|
261
|
+
step: number;
|
|
262
|
+
operation: string;
|
|
263
|
+
predicate: string;
|
|
264
|
+
args: string[];
|
|
265
|
+
resultCount: number;
|
|
266
|
+
durationUs: number;
|
|
267
|
+
details: string | null;
|
|
268
|
+
}
|
|
269
|
+
/** Full explain result -- single object per query (not per row) */
|
|
270
|
+
export interface DatalogExplainResult {
|
|
271
|
+
bindings: DatalogBinding[];
|
|
272
|
+
stats: QueryStats;
|
|
273
|
+
profile: QueryProfile;
|
|
274
|
+
explainSteps: ExplainStep[];
|
|
275
|
+
warnings: string[];
|
|
276
|
+
}
|
|
277
|
+
export interface CypherResult {
|
|
278
|
+
columns: string[];
|
|
279
|
+
rows: unknown[][];
|
|
280
|
+
rowCount: number;
|
|
281
|
+
}
|
|
239
282
|
/**
|
|
240
283
|
* Reference to a snapshot — either by version number or by tag key/value pair.
|
|
241
284
|
*
|
|
@@ -310,8 +353,56 @@ export interface FindSnapshotResponse extends RFDBResponse {
|
|
|
310
353
|
export interface ListSnapshotsResponse extends RFDBResponse {
|
|
311
354
|
snapshots: SnapshotInfo[];
|
|
312
355
|
}
|
|
356
|
+
/** Per-shard lifecycle diagnostics from GetStats. */
|
|
357
|
+
export interface ShardDiagnostics {
|
|
358
|
+
shardId: number;
|
|
359
|
+
nodeCount: number;
|
|
360
|
+
edgeCount: number;
|
|
361
|
+
writeBufferNodes: number;
|
|
362
|
+
writeBufferEdges: number;
|
|
363
|
+
compacted: boolean;
|
|
364
|
+
l0NodeSegmentCount: number;
|
|
365
|
+
l0EdgeSegmentCount: number;
|
|
366
|
+
l1NodeRecords: number;
|
|
367
|
+
l1EdgeRecords: number;
|
|
368
|
+
tombstoneNodeCount: number;
|
|
369
|
+
tombstoneEdgeCount: number;
|
|
370
|
+
hasL1ByType: boolean;
|
|
371
|
+
hasL1ByFile: boolean;
|
|
372
|
+
hasL1ByName: boolean;
|
|
373
|
+
l1ByTypeKeys: number;
|
|
374
|
+
l1ByFileKeys: number;
|
|
375
|
+
l1ByNameKeys: number;
|
|
376
|
+
hasEdgeTypeIndex: boolean;
|
|
377
|
+
}
|
|
378
|
+
/** Full server statistics from GetStats wire command. */
|
|
379
|
+
export interface ServerStats {
|
|
380
|
+
nodeCount: number;
|
|
381
|
+
edgeCount: number;
|
|
382
|
+
deltaSize: number;
|
|
383
|
+
memoryPercent: number;
|
|
384
|
+
queryCount: number;
|
|
385
|
+
slowQueryCount: number;
|
|
386
|
+
queryP50Ms: number;
|
|
387
|
+
queryP95Ms: number;
|
|
388
|
+
queryP99Ms: number;
|
|
389
|
+
flushCount: number;
|
|
390
|
+
lastFlushMs: number;
|
|
391
|
+
lastFlushNodes: number;
|
|
392
|
+
lastFlushEdges: number;
|
|
393
|
+
topSlowQueries: Array<{
|
|
394
|
+
operation: string;
|
|
395
|
+
durationMs: number;
|
|
396
|
+
timestampMs: number;
|
|
397
|
+
}>;
|
|
398
|
+
timedOutCount: number;
|
|
399
|
+
cancelledCount: number;
|
|
400
|
+
uptimeSecs: number;
|
|
401
|
+
shardDiagnostics: ShardDiagnostics[];
|
|
402
|
+
}
|
|
313
403
|
export interface IRFDBClient {
|
|
314
404
|
readonly socketPath: string;
|
|
405
|
+
readonly clientName: string;
|
|
315
406
|
readonly connected: boolean;
|
|
316
407
|
readonly supportsStreaming: boolean;
|
|
317
408
|
connect(): Promise<void>;
|
|
@@ -345,15 +436,23 @@ export interface IRFDBClient {
|
|
|
345
436
|
edgeCount(): Promise<number>;
|
|
346
437
|
countNodesByType(types?: NodeType[] | null): Promise<Record<string, number>>;
|
|
347
438
|
countEdgesByType(edgeTypes?: EdgeType[] | null): Promise<Record<string, number>>;
|
|
439
|
+
getStats(): Promise<ServerStats>;
|
|
348
440
|
flush(): Promise<RFDBResponse>;
|
|
349
441
|
compact(): Promise<RFDBResponse>;
|
|
350
442
|
datalogLoadRules(source: string): Promise<number>;
|
|
351
443
|
datalogClearRules(): Promise<RFDBResponse>;
|
|
352
444
|
datalogQuery(query: string): Promise<DatalogResult[]>;
|
|
445
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
446
|
+
datalogQuery(query: string, explain: true): Promise<DatalogExplainResult>;
|
|
353
447
|
checkGuarantee(ruleSource: string): Promise<DatalogResult[]>;
|
|
448
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
449
|
+
checkGuarantee(ruleSource: string, explain: true): Promise<DatalogExplainResult>;
|
|
354
450
|
executeDatalog(source: string): Promise<DatalogResult[]>;
|
|
451
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
452
|
+
executeDatalog(source: string, explain: true): Promise<DatalogExplainResult>;
|
|
453
|
+
cypherQuery(query: string): Promise<CypherResult>;
|
|
355
454
|
beginBatch(): void;
|
|
356
|
-
commitBatch(tags?: string[]): Promise<CommitDelta>;
|
|
455
|
+
commitBatch(tags?: string[], deferIndex?: boolean, protectedTypes?: string[], changedFiles?: string[]): Promise<CommitDelta>;
|
|
357
456
|
abortBatch(): void;
|
|
358
457
|
isBatching(): boolean;
|
|
359
458
|
findDependentFiles(changedFiles: string[]): Promise<string[]>;
|
package/dist/rfdb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rfdb.d.ts","sourceRoot":"","sources":["../src/rfdb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rfdb.d.ts","sourceRoot":"","sources":["../src/rfdb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/edges.ts
CHANGED
|
@@ -34,9 +34,13 @@ export const EDGE_TYPE = {
|
|
|
34
34
|
PASSES_ARGUMENT: 'PASSES_ARGUMENT',
|
|
35
35
|
RECEIVES_ARGUMENT: 'RECEIVES_ARGUMENT',
|
|
36
36
|
RETURNS: 'RETURNS',
|
|
37
|
+
CALL_RETURNS: 'CALL_RETURNS',
|
|
37
38
|
YIELDS: 'YIELDS',
|
|
38
39
|
DELEGATES_TO: 'DELEGATES_TO',
|
|
39
40
|
|
|
41
|
+
// Class members
|
|
42
|
+
HAS_MEMBER: 'HAS_MEMBER', // CLASS -> METHOD / PROPERTY / STATIC_BLOCK
|
|
43
|
+
|
|
40
44
|
// Inheritance
|
|
41
45
|
EXTENDS: 'EXTENDS',
|
|
42
46
|
IMPLEMENTS: 'IMPLEMENTS',
|
|
@@ -46,7 +50,6 @@ export const EDGE_TYPE = {
|
|
|
46
50
|
IMPORTS: 'IMPORTS',
|
|
47
51
|
EXPORTS: 'EXPORTS',
|
|
48
52
|
IMPORTS_FROM: 'IMPORTS_FROM',
|
|
49
|
-
EXPORTS_TO: 'EXPORTS_TO',
|
|
50
53
|
|
|
51
54
|
// Variables/Data flow
|
|
52
55
|
DEFINES: 'DEFINES',
|
|
@@ -59,11 +62,20 @@ export const EDGE_TYPE = {
|
|
|
59
62
|
WRITES_TO: 'WRITES_TO',
|
|
60
63
|
DERIVES_FROM: 'DERIVES_FROM',
|
|
61
64
|
FLOWS_INTO: 'FLOWS_INTO',
|
|
65
|
+
SPREADS_FROM: 'SPREADS_FROM', // SpreadElement → source being spread
|
|
66
|
+
ELEMENT_OF: 'ELEMENT_OF', // X is an element/value of collection Y (for-of, destructuring, array methods)
|
|
67
|
+
KEY_OF: 'KEY_OF', // X is a key of collection Y (for-in)
|
|
68
|
+
DESTRUCTURED_FROM: 'DESTRUCTURED_FROM', // VARIABLE → source it was destructured from, metadata.property = key
|
|
62
69
|
|
|
63
70
|
// Object/Array structure
|
|
64
71
|
HAS_PROPERTY: 'HAS_PROPERTY', // OBJECT_LITERAL -> property value
|
|
65
72
|
HAS_ELEMENT: 'HAS_ELEMENT', // ARRAY_LITERAL -> element
|
|
66
73
|
|
|
74
|
+
// Property assignment structure
|
|
75
|
+
PROPERTY_KEY: 'PROPERTY_KEY', // PROPERTY_ASSIGNMENT -> key literal
|
|
76
|
+
PROPERTY_VALUE: 'PROPERTY_VALUE', // PROPERTY_ASSIGNMENT -> value expression
|
|
77
|
+
ASSIGNS_TO: 'ASSIGNS_TO', // PROPERTY_ASSIGNMENT -> target PROPERTY/VARIABLE
|
|
78
|
+
|
|
67
79
|
// HTTP/Routing
|
|
68
80
|
ROUTES_TO: 'ROUTES_TO',
|
|
69
81
|
HANDLED_BY: 'HANDLED_BY',
|
|
@@ -115,6 +127,9 @@ export const EDGE_TYPE = {
|
|
|
115
127
|
// Abstract -> Concrete (tool provenance)
|
|
116
128
|
PROVISIONED_BY: 'PROVISIONED_BY',
|
|
117
129
|
|
|
130
|
+
// Redis
|
|
131
|
+
PERFORMS_REDIS: 'PERFORMS_REDIS',
|
|
132
|
+
|
|
118
133
|
// Unknown/fallback
|
|
119
134
|
UNKNOWN: 'UNKNOWN',
|
|
120
135
|
} as const;
|
|
@@ -146,9 +161,9 @@ export interface ImportsEdge extends EdgeRecord {
|
|
|
146
161
|
isDefault?: boolean;
|
|
147
162
|
}
|
|
148
163
|
|
|
164
|
+
/** EXPORT node → entity it exports (FUNCTION, VARIABLE, CLASS, etc.) or re-export target */
|
|
149
165
|
export interface ExportsEdge extends EdgeRecord {
|
|
150
166
|
type: 'EXPORTS';
|
|
151
|
-
exportedName?: string;
|
|
152
167
|
}
|
|
153
168
|
|
|
154
169
|
export interface DataFlowEdge extends EdgeRecord {
|
|
@@ -156,6 +171,30 @@ export interface DataFlowEdge extends EdgeRecord {
|
|
|
156
171
|
dataType?: string;
|
|
157
172
|
}
|
|
158
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Edge representing an element/value relationship with a collection.
|
|
176
|
+
* Source: the element (VARIABLE, PARAMETER, CALL)
|
|
177
|
+
* Destination: the collection (VARIABLE, PARAMETER)
|
|
178
|
+
*
|
|
179
|
+
* Example: `for (const item of arr)` → item --ELEMENT_OF--> arr
|
|
180
|
+
*/
|
|
181
|
+
export interface ElementOfEdge extends EdgeRecord {
|
|
182
|
+
type: 'ELEMENT_OF';
|
|
183
|
+
metadata?: { via: 'for-of' | 'for-in' | 'destructuring' | 'method-callback' | 'method-return' | 'computed-access' | 'Object.values' | 'Object.entries' };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Edge representing a key relationship with a collection.
|
|
188
|
+
* Source: the key (VARIABLE, PARAMETER, CALL)
|
|
189
|
+
* Destination: the collection (VARIABLE, PARAMETER)
|
|
190
|
+
*
|
|
191
|
+
* Example: `for (const key in obj)` → key --KEY_OF--> obj
|
|
192
|
+
*/
|
|
193
|
+
export interface KeyOfEdge extends EdgeRecord {
|
|
194
|
+
type: 'KEY_OF';
|
|
195
|
+
metadata?: { via: 'for-in' | 'Object.keys' | 'Object.entries' };
|
|
196
|
+
}
|
|
197
|
+
|
|
159
198
|
/**
|
|
160
199
|
* Edge representing data flowing INTO a container (array, collection)
|
|
161
200
|
* Source: the value being added
|
package/src/nodes.ts
CHANGED
|
@@ -22,6 +22,7 @@ export const NODE_TYPE = {
|
|
|
22
22
|
// Call graph
|
|
23
23
|
CALL: 'CALL',
|
|
24
24
|
PROPERTY_ACCESS: 'PROPERTY_ACCESS',
|
|
25
|
+
PROPERTY_ASSIGNMENT: 'PROPERTY_ASSIGNMENT',
|
|
25
26
|
|
|
26
27
|
// Project structure
|
|
27
28
|
PROJECT: 'PROJECT',
|
|
@@ -69,6 +70,15 @@ export const NAMESPACED_TYPE = {
|
|
|
69
70
|
DB_QUERY: 'db:query',
|
|
70
71
|
DB_CONNECTION: 'db:connection',
|
|
71
72
|
|
|
73
|
+
// Redis
|
|
74
|
+
REDIS_READ: 'redis:read',
|
|
75
|
+
REDIS_WRITE: 'redis:write',
|
|
76
|
+
REDIS_DELETE: 'redis:delete',
|
|
77
|
+
REDIS_PUBLISH: 'redis:publish',
|
|
78
|
+
REDIS_SUBSCRIBE: 'redis:subscribe',
|
|
79
|
+
REDIS_TRANSACTION: 'redis:transaction',
|
|
80
|
+
REDIS_CONNECTION: 'redis:connection',
|
|
81
|
+
|
|
72
82
|
// Filesystem
|
|
73
83
|
FS_READ: 'fs:read',
|
|
74
84
|
FS_WRITE: 'fs:write',
|
|
@@ -204,6 +214,14 @@ export interface PropertyAccessNodeRecord extends BaseNodeRecord {
|
|
|
204
214
|
computed?: boolean;
|
|
205
215
|
}
|
|
206
216
|
|
|
217
|
+
// Property assignment node (this.prop = value, obj.prop = value)
|
|
218
|
+
export interface PropertyAssignmentNodeRecord extends BaseNodeRecord {
|
|
219
|
+
type: 'PROPERTY_ASSIGNMENT';
|
|
220
|
+
objectName: string; // 'this' or the object variable name
|
|
221
|
+
className?: string; // enclosing class name when objectName === 'this'
|
|
222
|
+
computed?: boolean; // true for obj[x] = value patterns
|
|
223
|
+
}
|
|
224
|
+
|
|
207
225
|
// Service node (project-level)
|
|
208
226
|
export interface ServiceNodeRecord extends BaseNodeRecord {
|
|
209
227
|
type: 'SERVICE';
|
|
@@ -350,6 +368,16 @@ export interface NetTcpServerNodeRecord extends BaseNodeRecord {
|
|
|
350
368
|
backlog?: number;
|
|
351
369
|
}
|
|
352
370
|
|
|
371
|
+
// Redis operation node
|
|
372
|
+
export interface RedisOperationNodeRecord extends BaseNodeRecord {
|
|
373
|
+
type: 'redis:read' | 'redis:write' | 'redis:delete' | 'redis:publish' | 'redis:subscribe' | 'redis:transaction' | 'redis:connection';
|
|
374
|
+
method: string;
|
|
375
|
+
object?: string;
|
|
376
|
+
key?: string;
|
|
377
|
+
operation: string;
|
|
378
|
+
package: string;
|
|
379
|
+
}
|
|
380
|
+
|
|
353
381
|
// Union of all node types
|
|
354
382
|
export type NodeRecord =
|
|
355
383
|
| FunctionNodeRecord
|
|
@@ -361,6 +389,7 @@ export type NodeRecord =
|
|
|
361
389
|
| VariableNodeRecord
|
|
362
390
|
| CallNodeRecord
|
|
363
391
|
| PropertyAccessNodeRecord
|
|
392
|
+
| PropertyAssignmentNodeRecord
|
|
364
393
|
| ServiceNodeRecord
|
|
365
394
|
| ScopeNodeRecord
|
|
366
395
|
| BranchNodeRecord
|
|
@@ -378,6 +407,7 @@ export type NodeRecord =
|
|
|
378
407
|
| OsUnixServerNodeRecord
|
|
379
408
|
| NetTcpConnectionNodeRecord
|
|
380
409
|
| NetTcpServerNodeRecord
|
|
410
|
+
| RedisOperationNodeRecord
|
|
381
411
|
| BaseNodeRecord; // fallback for custom types
|
|
382
412
|
|
|
383
413
|
// === HELPER FUNCTIONS ===
|
|
@@ -404,5 +434,5 @@ export function isEndpointType(nodeType: string): boolean {
|
|
|
404
434
|
export function isSideEffectType(nodeType: string): boolean {
|
|
405
435
|
if (nodeType === NODE_TYPE.SIDE_EFFECT) return true;
|
|
406
436
|
const ns = getNamespace(nodeType);
|
|
407
|
-
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os';
|
|
437
|
+
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os' || ns === 'redis';
|
|
408
438
|
}
|
package/src/plugins.ts
CHANGED
|
@@ -144,6 +144,38 @@ export interface PluginContext {
|
|
|
144
144
|
* Available in all phases. Created by Orchestrator at run start.
|
|
145
145
|
*/
|
|
146
146
|
resources?: ResourceRegistry;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Graph write factory with non-restricted method names (REG-541).
|
|
150
|
+
* Plugins should use factory.store/link/storeMany/linkMany/update
|
|
151
|
+
* instead of graph.addNode/addEdge to satisfy guarantee rules.
|
|
152
|
+
* Also exposes read methods (getNode, queryNodes, etc.) so plugins
|
|
153
|
+
* can read from the graph through the factory.
|
|
154
|
+
* Injected by PhaseRunner when GraphFactory is available.
|
|
155
|
+
*/
|
|
156
|
+
factory?: {
|
|
157
|
+
store(node: AnyBrandedNode): Promise<void>;
|
|
158
|
+
storeMany(nodes: AnyBrandedNode[]): Promise<void>;
|
|
159
|
+
link(edge: InputEdge): Promise<void>;
|
|
160
|
+
linkMany(edges: InputEdge[], skipValidation?: boolean): Promise<void>;
|
|
161
|
+
update(node: NodeRecord): Promise<void>;
|
|
162
|
+
getNode(id: string): Promise<NodeRecord | null>;
|
|
163
|
+
queryNodes(filter: NodeFilter): AsyncIterable<NodeRecord> | AsyncGenerator<NodeRecord>;
|
|
164
|
+
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
165
|
+
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
166
|
+
nodeCount(): Promise<number>;
|
|
167
|
+
edgeCount(): Promise<number>;
|
|
168
|
+
countNodesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
169
|
+
countEdgesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
170
|
+
clear(): Promise<void>;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* When true, commitBatch should defer index rebuilding (REG-487).
|
|
175
|
+
* Used during initial/full analysis for O(1) per-commit cost.
|
|
176
|
+
* Caller must send rebuildIndexes() after all deferred commits complete.
|
|
177
|
+
*/
|
|
178
|
+
deferIndexing?: boolean;
|
|
147
179
|
}
|
|
148
180
|
|
|
149
181
|
// === PLUGIN RESULT ===
|
|
@@ -279,11 +311,10 @@ export interface GraphBackend {
|
|
|
279
311
|
addNode(node: AnyBrandedNode): Promise<void> | void;
|
|
280
312
|
addEdge(edge: InputEdge): Promise<void> | void;
|
|
281
313
|
addNodes(nodes: AnyBrandedNode[]): Promise<void> | void;
|
|
282
|
-
addEdges(edges: InputEdge[]): Promise<void> | void;
|
|
314
|
+
addEdges(edges: InputEdge[], skipValidation?: boolean): Promise<void> | void;
|
|
283
315
|
|
|
284
316
|
getNode(id: string): Promise<NodeRecord | null>;
|
|
285
317
|
queryNodes(filter: NodeFilter): AsyncIterable<NodeRecord> | AsyncGenerator<NodeRecord>;
|
|
286
|
-
getAllNodes(filter?: NodeFilter): Promise<NodeRecord[]>;
|
|
287
318
|
|
|
288
319
|
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
289
320
|
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<EdgeRecord[]>;
|
|
@@ -291,9 +322,6 @@ export interface GraphBackend {
|
|
|
291
322
|
nodeCount(): Promise<number>;
|
|
292
323
|
edgeCount(): Promise<number>;
|
|
293
324
|
|
|
294
|
-
// For GUI/export - use with caution on large graphs
|
|
295
|
-
getAllEdges?(): Promise<EdgeRecord[]>;
|
|
296
|
-
|
|
297
325
|
// Extended query methods
|
|
298
326
|
countNodesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
299
327
|
countEdgesByType(types?: string[] | null): Promise<Record<string, number>>;
|
|
@@ -316,12 +344,19 @@ export interface GraphBackend {
|
|
|
316
344
|
|
|
317
345
|
// Batch operations (RFD-16: CommitBatch protocol)
|
|
318
346
|
beginBatch?(): void;
|
|
319
|
-
commitBatch?(tags?: string[]): Promise<CommitDelta>;
|
|
347
|
+
commitBatch?(tags?: string[], deferIndex?: boolean, protectedTypes?: string[], changedFiles?: string[]): Promise<CommitDelta>;
|
|
320
348
|
abortBatch?(): void;
|
|
321
349
|
|
|
350
|
+
// Deferred indexing (REG-487: bulk load optimization)
|
|
351
|
+
rebuildIndexes?(): Promise<void>;
|
|
352
|
+
createBatch?(): unknown;
|
|
353
|
+
|
|
322
354
|
// Synchronous batch operations (REG-483: direct batch insertion)
|
|
323
355
|
batchNode?(node: AnyBrandedNode): void;
|
|
324
356
|
batchEdge?(edge: InputEdge): void;
|
|
357
|
+
|
|
358
|
+
// Enrichment mutation (REG-541: re-brand and upsert existing node)
|
|
359
|
+
updateNode?(node: NodeRecord): Promise<void>;
|
|
325
360
|
}
|
|
326
361
|
|
|
327
362
|
export interface NodeFilter {
|
package/src/rfdb.ts
CHANGED
|
@@ -36,6 +36,7 @@ export type RFDBCommand =
|
|
|
36
36
|
| 'edgeCount'
|
|
37
37
|
| 'countNodesByType'
|
|
38
38
|
| 'countEdgesByType'
|
|
39
|
+
| 'getStats'
|
|
39
40
|
// Control
|
|
40
41
|
| 'flush'
|
|
41
42
|
| 'compact'
|
|
@@ -47,6 +48,8 @@ export type RFDBCommand =
|
|
|
47
48
|
| 'datalogQuery'
|
|
48
49
|
| 'checkGuarantee'
|
|
49
50
|
| 'executeDatalog'
|
|
51
|
+
// Cypher
|
|
52
|
+
| 'cypherQuery'
|
|
50
53
|
// Protocol v2 - Multi-Database Commands
|
|
51
54
|
| 'hello'
|
|
52
55
|
| 'createDatabase'
|
|
@@ -63,7 +66,9 @@ export type RFDBCommand =
|
|
|
63
66
|
| 'findSnapshot'
|
|
64
67
|
| 'listSnapshots'
|
|
65
68
|
// Batch operations
|
|
66
|
-
| 'commitBatch'
|
|
69
|
+
| 'commitBatch'
|
|
70
|
+
// Index management (REG-487: deferred indexing)
|
|
71
|
+
| 'rebuildIndexes';
|
|
67
72
|
|
|
68
73
|
// === WIRE FORMAT ===
|
|
69
74
|
// Nodes as sent over the wire
|
|
@@ -331,6 +336,8 @@ export interface AttrQuery {
|
|
|
331
336
|
name?: string;
|
|
332
337
|
file?: string;
|
|
333
338
|
exported?: boolean;
|
|
339
|
+
/** When true, name and file filters use substring (contains) matching instead of exact match */
|
|
340
|
+
substringMatch?: boolean;
|
|
334
341
|
/** @deprecated Node-level version filter is legacy. In v2, use snapshot/tag APIs for history. */
|
|
335
342
|
version?: string;
|
|
336
343
|
/** Extra fields are matched against node metadata JSON (e.g. object, method, async) */
|
|
@@ -357,6 +364,53 @@ export interface DatalogResult {
|
|
|
357
364
|
bindings: DatalogBinding;
|
|
358
365
|
}
|
|
359
366
|
|
|
367
|
+
export interface QueryStats {
|
|
368
|
+
nodesVisited: number;
|
|
369
|
+
edgesTraversed: number;
|
|
370
|
+
findByTypeCalls: number;
|
|
371
|
+
getNodeCalls: number;
|
|
372
|
+
outgoingEdgeCalls: number;
|
|
373
|
+
incomingEdgeCalls: number;
|
|
374
|
+
allEdgesCalls: number;
|
|
375
|
+
bfsCalls: number;
|
|
376
|
+
totalResults: number;
|
|
377
|
+
ruleEvaluations: number;
|
|
378
|
+
intermediateCounts: number[];
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
export interface QueryProfile {
|
|
382
|
+
totalDurationUs: number;
|
|
383
|
+
predicateTimes: Record<string, number>;
|
|
384
|
+
ruleEvalTimeUs: number;
|
|
385
|
+
projectionTimeUs: number;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
export interface ExplainStep {
|
|
389
|
+
step: number;
|
|
390
|
+
operation: string;
|
|
391
|
+
predicate: string;
|
|
392
|
+
args: string[];
|
|
393
|
+
resultCount: number;
|
|
394
|
+
durationUs: number;
|
|
395
|
+
details: string | null;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/** Full explain result -- single object per query (not per row) */
|
|
399
|
+
export interface DatalogExplainResult {
|
|
400
|
+
bindings: DatalogBinding[];
|
|
401
|
+
stats: QueryStats;
|
|
402
|
+
profile: QueryProfile;
|
|
403
|
+
explainSteps: ExplainStep[];
|
|
404
|
+
warnings: string[];
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// === CYPHER TYPES ===
|
|
408
|
+
export interface CypherResult {
|
|
409
|
+
columns: string[];
|
|
410
|
+
rows: unknown[][];
|
|
411
|
+
rowCount: number;
|
|
412
|
+
}
|
|
413
|
+
|
|
360
414
|
// === SNAPSHOT TYPES ===
|
|
361
415
|
|
|
362
416
|
/**
|
|
@@ -440,9 +494,57 @@ export interface ListSnapshotsResponse extends RFDBResponse {
|
|
|
440
494
|
snapshots: SnapshotInfo[];
|
|
441
495
|
}
|
|
442
496
|
|
|
497
|
+
// === SERVER STATS ===
|
|
498
|
+
|
|
499
|
+
/** Per-shard lifecycle diagnostics from GetStats. */
|
|
500
|
+
export interface ShardDiagnostics {
|
|
501
|
+
shardId: number;
|
|
502
|
+
nodeCount: number;
|
|
503
|
+
edgeCount: number;
|
|
504
|
+
writeBufferNodes: number;
|
|
505
|
+
writeBufferEdges: number;
|
|
506
|
+
compacted: boolean;
|
|
507
|
+
l0NodeSegmentCount: number;
|
|
508
|
+
l0EdgeSegmentCount: number;
|
|
509
|
+
l1NodeRecords: number;
|
|
510
|
+
l1EdgeRecords: number;
|
|
511
|
+
tombstoneNodeCount: number;
|
|
512
|
+
tombstoneEdgeCount: number;
|
|
513
|
+
hasL1ByType: boolean;
|
|
514
|
+
hasL1ByFile: boolean;
|
|
515
|
+
hasL1ByName: boolean;
|
|
516
|
+
l1ByTypeKeys: number;
|
|
517
|
+
l1ByFileKeys: number;
|
|
518
|
+
l1ByNameKeys: number;
|
|
519
|
+
hasEdgeTypeIndex: boolean;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/** Full server statistics from GetStats wire command. */
|
|
523
|
+
export interface ServerStats {
|
|
524
|
+
nodeCount: number;
|
|
525
|
+
edgeCount: number;
|
|
526
|
+
deltaSize: number;
|
|
527
|
+
memoryPercent: number;
|
|
528
|
+
queryCount: number;
|
|
529
|
+
slowQueryCount: number;
|
|
530
|
+
queryP50Ms: number;
|
|
531
|
+
queryP95Ms: number;
|
|
532
|
+
queryP99Ms: number;
|
|
533
|
+
flushCount: number;
|
|
534
|
+
lastFlushMs: number;
|
|
535
|
+
lastFlushNodes: number;
|
|
536
|
+
lastFlushEdges: number;
|
|
537
|
+
topSlowQueries: Array<{ operation: string; durationMs: number; timestampMs: number }>;
|
|
538
|
+
timedOutCount: number;
|
|
539
|
+
cancelledCount: number;
|
|
540
|
+
uptimeSecs: number;
|
|
541
|
+
shardDiagnostics: ShardDiagnostics[];
|
|
542
|
+
}
|
|
543
|
+
|
|
443
544
|
// === CLIENT INTERFACE ===
|
|
444
545
|
export interface IRFDBClient {
|
|
445
546
|
readonly socketPath: string;
|
|
547
|
+
readonly clientName: string;
|
|
446
548
|
readonly connected: boolean;
|
|
447
549
|
readonly supportsStreaming: boolean;
|
|
448
550
|
|
|
@@ -486,6 +588,7 @@ export interface IRFDBClient {
|
|
|
486
588
|
edgeCount(): Promise<number>;
|
|
487
589
|
countNodesByType(types?: NodeType[] | null): Promise<Record<string, number>>;
|
|
488
590
|
countEdgesByType(edgeTypes?: EdgeType[] | null): Promise<Record<string, number>>;
|
|
591
|
+
getStats(): Promise<ServerStats>;
|
|
489
592
|
|
|
490
593
|
// Control
|
|
491
594
|
flush(): Promise<RFDBResponse>;
|
|
@@ -495,12 +598,21 @@ export interface IRFDBClient {
|
|
|
495
598
|
datalogLoadRules(source: string): Promise<number>;
|
|
496
599
|
datalogClearRules(): Promise<RFDBResponse>;
|
|
497
600
|
datalogQuery(query: string): Promise<DatalogResult[]>;
|
|
601
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
602
|
+
datalogQuery(query: string, explain: true): Promise<DatalogExplainResult>;
|
|
498
603
|
checkGuarantee(ruleSource: string): Promise<DatalogResult[]>;
|
|
604
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
605
|
+
checkGuarantee(ruleSource: string, explain: true): Promise<DatalogExplainResult>;
|
|
499
606
|
executeDatalog(source: string): Promise<DatalogResult[]>;
|
|
607
|
+
/** Pass literal `true` for explain -- a boolean variable won't narrow the return type. */
|
|
608
|
+
executeDatalog(source: string, explain: true): Promise<DatalogExplainResult>;
|
|
609
|
+
|
|
610
|
+
// Cypher
|
|
611
|
+
cypherQuery(query: string): Promise<CypherResult>;
|
|
500
612
|
|
|
501
613
|
// Batch operations
|
|
502
614
|
beginBatch(): void;
|
|
503
|
-
commitBatch(tags?: string[]): Promise<CommitDelta>;
|
|
615
|
+
commitBatch(tags?: string[], deferIndex?: boolean, protectedTypes?: string[], changedFiles?: string[]): Promise<CommitDelta>;
|
|
504
616
|
abortBatch(): void;
|
|
505
617
|
isBatching(): boolean;
|
|
506
618
|
findDependentFiles(changedFiles: string[]): Promise<string[]>;
|