@grafema/types 0.1.1-alpha → 0.2.1-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 +25 -0
- package/dist/edges.d.ts.map +1 -1
- package/dist/edges.js +17 -0
- package/dist/nodes.d.ts +42 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +8 -0
- package/dist/plugins.d.ts +27 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +2 -2
- package/package.json +1 -1
- package/src/edges.ts +34 -0
- package/src/nodes.ts +63 -0
- package/src/plugins.ts +31 -2
package/dist/edges.d.ts
CHANGED
|
@@ -5,6 +5,17 @@ export declare const EDGE_TYPE: {
|
|
|
5
5
|
readonly CONTAINS: "CONTAINS";
|
|
6
6
|
readonly DEPENDS_ON: "DEPENDS_ON";
|
|
7
7
|
readonly HAS_SCOPE: "HAS_SCOPE";
|
|
8
|
+
readonly HAS_CONDITION: "HAS_CONDITION";
|
|
9
|
+
readonly HAS_CASE: "HAS_CASE";
|
|
10
|
+
readonly HAS_DEFAULT: "HAS_DEFAULT";
|
|
11
|
+
readonly HAS_BODY: "HAS_BODY";
|
|
12
|
+
readonly ITERATES_OVER: "ITERATES_OVER";
|
|
13
|
+
readonly HAS_INIT: "HAS_INIT";
|
|
14
|
+
readonly HAS_UPDATE: "HAS_UPDATE";
|
|
15
|
+
readonly HAS_CONSEQUENT: "HAS_CONSEQUENT";
|
|
16
|
+
readonly HAS_ALTERNATE: "HAS_ALTERNATE";
|
|
17
|
+
readonly HAS_CATCH: "HAS_CATCH";
|
|
18
|
+
readonly HAS_FINALLY: "HAS_FINALLY";
|
|
8
19
|
readonly CALLS: "CALLS";
|
|
9
20
|
readonly HAS_CALLBACK: "HAS_CALLBACK";
|
|
10
21
|
readonly PASSES_ARGUMENT: "PASSES_ARGUMENT";
|
|
@@ -34,11 +45,13 @@ export declare const EDGE_TYPE: {
|
|
|
34
45
|
readonly MAKES_REQUEST: "MAKES_REQUEST";
|
|
35
46
|
readonly MOUNTS: "MOUNTS";
|
|
36
47
|
readonly EXPOSES: "EXPOSES";
|
|
48
|
+
readonly RESPONDS_WITH: "RESPONDS_WITH";
|
|
37
49
|
readonly LISTENS_TO: "LISTENS_TO";
|
|
38
50
|
readonly EMITS_EVENT: "EMITS_EVENT";
|
|
39
51
|
readonly JOINS_ROOM: "JOINS_ROOM";
|
|
40
52
|
readonly CALLS_API: "CALLS_API";
|
|
41
53
|
readonly INTERACTS_WITH: "INTERACTS_WITH";
|
|
54
|
+
readonly HTTP_RECEIVES: "HTTP_RECEIVES";
|
|
42
55
|
readonly REGISTERS_VIEW: "REGISTERS_VIEW";
|
|
43
56
|
readonly THROWS: "THROWS";
|
|
44
57
|
readonly GOVERNS: "GOVERNS";
|
|
@@ -97,4 +110,16 @@ export interface RouteEdge extends EdgeRecord {
|
|
|
97
110
|
method?: string;
|
|
98
111
|
path?: string;
|
|
99
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Edge from LOOP to iterated collection (for-in/for-of loops)
|
|
115
|
+
* Source: LOOP node
|
|
116
|
+
* Destination: VARIABLE or PARAMETER being iterated
|
|
117
|
+
*/
|
|
118
|
+
export interface IteratesOverEdge extends EdgeRecord {
|
|
119
|
+
type: 'ITERATES_OVER';
|
|
120
|
+
metadata?: {
|
|
121
|
+
/** What the loop iterates over: 'keys' for for-in, 'values' for for-of */
|
|
122
|
+
iterates: 'keys' | 'values';
|
|
123
|
+
};
|
|
124
|
+
}
|
|
100
125
|
//# sourceMappingURL=edges.d.ts.map
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FZ,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,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;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,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
|
@@ -7,6 +7,21 @@ export const EDGE_TYPE = {
|
|
|
7
7
|
CONTAINS: 'CONTAINS',
|
|
8
8
|
DEPENDS_ON: 'DEPENDS_ON',
|
|
9
9
|
HAS_SCOPE: 'HAS_SCOPE',
|
|
10
|
+
// Branching
|
|
11
|
+
HAS_CONDITION: 'HAS_CONDITION',
|
|
12
|
+
HAS_CASE: 'HAS_CASE',
|
|
13
|
+
HAS_DEFAULT: 'HAS_DEFAULT',
|
|
14
|
+
// Loop edges
|
|
15
|
+
HAS_BODY: 'HAS_BODY', // LOOP -> body SCOPE
|
|
16
|
+
ITERATES_OVER: 'ITERATES_OVER', // LOOP -> collection VARIABLE (for-in/for-of)
|
|
17
|
+
HAS_INIT: 'HAS_INIT', // LOOP (for) -> init VARIABLE (let i = 0)
|
|
18
|
+
HAS_UPDATE: 'HAS_UPDATE', // LOOP (for) -> update EXPRESSION (i++)
|
|
19
|
+
// If statement edges
|
|
20
|
+
HAS_CONSEQUENT: 'HAS_CONSEQUENT', // BRANCH -> then SCOPE
|
|
21
|
+
HAS_ALTERNATE: 'HAS_ALTERNATE', // BRANCH -> else SCOPE
|
|
22
|
+
// Try/catch/finally edges
|
|
23
|
+
HAS_CATCH: 'HAS_CATCH', // TRY_BLOCK -> CATCH_BLOCK
|
|
24
|
+
HAS_FINALLY: 'HAS_FINALLY', // TRY_BLOCK -> FINALLY_BLOCK
|
|
10
25
|
// Calls
|
|
11
26
|
CALLS: 'CALLS',
|
|
12
27
|
HAS_CALLBACK: 'HAS_CALLBACK',
|
|
@@ -42,6 +57,7 @@ export const EDGE_TYPE = {
|
|
|
42
57
|
MAKES_REQUEST: 'MAKES_REQUEST',
|
|
43
58
|
MOUNTS: 'MOUNTS',
|
|
44
59
|
EXPOSES: 'EXPOSES',
|
|
60
|
+
RESPONDS_WITH: 'RESPONDS_WITH',
|
|
45
61
|
// Events/Sockets
|
|
46
62
|
LISTENS_TO: 'LISTENS_TO',
|
|
47
63
|
EMITS_EVENT: 'EMITS_EVENT',
|
|
@@ -49,6 +65,7 @@ export const EDGE_TYPE = {
|
|
|
49
65
|
// External
|
|
50
66
|
CALLS_API: 'CALLS_API',
|
|
51
67
|
INTERACTS_WITH: 'INTERACTS_WITH',
|
|
68
|
+
HTTP_RECEIVES: 'HTTP_RECEIVES',
|
|
52
69
|
// Views
|
|
53
70
|
REGISTERS_VIEW: 'REGISTERS_VIEW',
|
|
54
71
|
// Errors
|
package/dist/nodes.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ export declare const NODE_TYPE: {
|
|
|
18
18
|
readonly SERVICE: "SERVICE";
|
|
19
19
|
readonly FILE: "FILE";
|
|
20
20
|
readonly SCOPE: "SCOPE";
|
|
21
|
+
readonly BRANCH: "BRANCH";
|
|
22
|
+
readonly CASE: "CASE";
|
|
23
|
+
readonly LOOP: "LOOP";
|
|
24
|
+
readonly TRY_BLOCK: "TRY_BLOCK";
|
|
25
|
+
readonly CATCH_BLOCK: "CATCH_BLOCK";
|
|
26
|
+
readonly FINALLY_BLOCK: "FINALLY_BLOCK";
|
|
21
27
|
readonly EXTERNAL: "EXTERNAL";
|
|
22
28
|
readonly EXTERNAL_MODULE: "EXTERNAL_MODULE";
|
|
23
29
|
readonly SIDE_EFFECT: "SIDE_EFFECT";
|
|
@@ -128,6 +134,41 @@ export interface ScopeNodeRecord extends BaseNodeRecord {
|
|
|
128
134
|
scopeType: 'function' | 'block' | 'class' | 'module' | 'global';
|
|
129
135
|
parentScopeId?: string;
|
|
130
136
|
}
|
|
137
|
+
export interface BranchNodeRecord extends BaseNodeRecord {
|
|
138
|
+
type: 'BRANCH';
|
|
139
|
+
branchType: 'switch' | 'if' | 'ternary';
|
|
140
|
+
parentScopeId?: string;
|
|
141
|
+
}
|
|
142
|
+
export interface CaseNodeRecord extends BaseNodeRecord {
|
|
143
|
+
type: 'CASE';
|
|
144
|
+
value: unknown;
|
|
145
|
+
isDefault: boolean;
|
|
146
|
+
fallsThrough: boolean;
|
|
147
|
+
isEmpty: boolean;
|
|
148
|
+
}
|
|
149
|
+
export interface LoopNodeRecord extends BaseNodeRecord {
|
|
150
|
+
type: 'LOOP';
|
|
151
|
+
loopType: 'for' | 'for-in' | 'for-of' | 'while' | 'do-while';
|
|
152
|
+
parentScopeId?: string;
|
|
153
|
+
bodyScopeId?: string;
|
|
154
|
+
async?: boolean;
|
|
155
|
+
}
|
|
156
|
+
export interface TryBlockNodeRecord extends BaseNodeRecord {
|
|
157
|
+
type: 'TRY_BLOCK';
|
|
158
|
+
parentScopeId?: string;
|
|
159
|
+
bodyScopeId?: string;
|
|
160
|
+
}
|
|
161
|
+
export interface CatchBlockNodeRecord extends BaseNodeRecord {
|
|
162
|
+
type: 'CATCH_BLOCK';
|
|
163
|
+
parentScopeId?: string;
|
|
164
|
+
parameterName?: string;
|
|
165
|
+
bodyScopeId?: string;
|
|
166
|
+
}
|
|
167
|
+
export interface FinallyBlockNodeRecord extends BaseNodeRecord {
|
|
168
|
+
type: 'FINALLY_BLOCK';
|
|
169
|
+
parentScopeId?: string;
|
|
170
|
+
bodyScopeId?: string;
|
|
171
|
+
}
|
|
131
172
|
export interface HttpRouteNodeRecord extends BaseNodeRecord {
|
|
132
173
|
type: 'http:route';
|
|
133
174
|
method: string;
|
|
@@ -157,7 +198,7 @@ export interface GuaranteeNodeRecord extends BaseNodeRecord {
|
|
|
157
198
|
createdAt?: number;
|
|
158
199
|
updatedAt?: number;
|
|
159
200
|
}
|
|
160
|
-
export type NodeRecord = FunctionNodeRecord | ClassNodeRecord | MethodNodeRecord | ModuleNodeRecord | ImportNodeRecord | ExportNodeRecord | VariableNodeRecord | CallNodeRecord | ServiceNodeRecord | ScopeNodeRecord | HttpRouteNodeRecord | DbQueryNodeRecord | EventListenerNodeRecord | GuaranteeNodeRecord | BaseNodeRecord;
|
|
201
|
+
export type NodeRecord = FunctionNodeRecord | ClassNodeRecord | MethodNodeRecord | ModuleNodeRecord | ImportNodeRecord | ExportNodeRecord | VariableNodeRecord | CallNodeRecord | ServiceNodeRecord | ScopeNodeRecord | BranchNodeRecord | CaseNodeRecord | LoopNodeRecord | TryBlockNodeRecord | CatchBlockNodeRecord | FinallyBlockNodeRecord | HttpRouteNodeRecord | DbQueryNodeRecord | EventListenerNodeRecord | GuaranteeNodeRecord | BaseNodeRecord;
|
|
161
202
|
export declare function isNamespacedType(nodeType: string): boolean;
|
|
162
203
|
export declare function getNamespace(nodeType: string): string | null;
|
|
163
204
|
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":"AAAA;;GAEG;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAGpE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CA+BlB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAGtF,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAIlE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC;CAChD;AAGD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;CACzC;AAGD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAClE;AAGD,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAGlF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAG/F,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,EAAE,iBAAiB,GAAG,eAAe,GAAG,sBAAsB,CAAC;IACnE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,uBAAuB,GACvB,mBAAmB,GACnB,cAAc,CAAC;AAGnB,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI1D"}
|
package/dist/nodes.js
CHANGED
|
@@ -23,6 +23,14 @@ export const NODE_TYPE = {
|
|
|
23
23
|
SERVICE: 'SERVICE',
|
|
24
24
|
FILE: 'FILE',
|
|
25
25
|
SCOPE: 'SCOPE',
|
|
26
|
+
// Branching
|
|
27
|
+
BRANCH: 'BRANCH',
|
|
28
|
+
CASE: 'CASE',
|
|
29
|
+
// Control flow
|
|
30
|
+
LOOP: 'LOOP',
|
|
31
|
+
TRY_BLOCK: 'TRY_BLOCK',
|
|
32
|
+
CATCH_BLOCK: 'CATCH_BLOCK',
|
|
33
|
+
FINALLY_BLOCK: 'FINALLY_BLOCK',
|
|
26
34
|
// External dependencies
|
|
27
35
|
EXTERNAL: 'EXTERNAL',
|
|
28
36
|
EXTERNAL_MODULE: 'EXTERNAL_MODULE',
|
package/dist/plugins.d.ts
CHANGED
|
@@ -85,6 +85,12 @@ export interface PluginContext {
|
|
|
85
85
|
* @returns The ID of the created issue node
|
|
86
86
|
*/
|
|
87
87
|
reportIssue?(issue: IssueSpec): Promise<string>;
|
|
88
|
+
/**
|
|
89
|
+
* Strict mode flag. When true, enrichers should report unresolved
|
|
90
|
+
* references as fatal errors instead of silently continuing.
|
|
91
|
+
* Default: false (graceful degradation).
|
|
92
|
+
*/
|
|
93
|
+
strictMode?: boolean;
|
|
88
94
|
}
|
|
89
95
|
export interface PluginResult {
|
|
90
96
|
success: boolean;
|
|
@@ -132,6 +138,26 @@ export interface OrchestratorConfig {
|
|
|
132
138
|
* Services are resolved relative to projectPath.
|
|
133
139
|
*/
|
|
134
140
|
services?: ServiceDefinition[];
|
|
141
|
+
/**
|
|
142
|
+
* Glob patterns for files to include during indexing.
|
|
143
|
+
* If specified, only files matching at least one pattern are processed.
|
|
144
|
+
* Patterns are matched against relative paths from project root.
|
|
145
|
+
* Uses minimatch syntax (e.g., "src/**.ts", "lib/**.js").
|
|
146
|
+
*
|
|
147
|
+
* Default: undefined (process all files reachable from entrypoint)
|
|
148
|
+
*/
|
|
149
|
+
include?: string[];
|
|
150
|
+
/**
|
|
151
|
+
* Glob patterns for files to exclude during indexing.
|
|
152
|
+
* Files matching any pattern are skipped (not processed, imports not followed).
|
|
153
|
+
* Patterns are matched against relative paths from project root.
|
|
154
|
+
* Uses minimatch syntax.
|
|
155
|
+
*
|
|
156
|
+
* Default: undefined (no exclusions beyond npm packages)
|
|
157
|
+
*
|
|
158
|
+
* Note: node_modules is already excluded by default in JSModuleIndexer.
|
|
159
|
+
*/
|
|
160
|
+
exclude?: string[];
|
|
135
161
|
}
|
|
136
162
|
/**
|
|
137
163
|
* Explicit service definition for configuration.
|
|
@@ -213,7 +239,7 @@ export interface IPlugin {
|
|
|
213
239
|
export declare function createSuccessResult(created?: {
|
|
214
240
|
nodes: number;
|
|
215
241
|
edges: number;
|
|
216
|
-
}, metadata?: Record<string, unknown
|
|
242
|
+
}, metadata?: Record<string, unknown>, errors?: Error[]): PluginResult;
|
|
217
243
|
export declare function createErrorResult(error: Error, created?: {
|
|
218
244
|
nodes: number;
|
|
219
245
|
edges: number;
|
package/dist/plugins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAG3E;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjE;AAGD,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAGzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAGD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAKD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins.js
CHANGED
|
@@ -10,11 +10,11 @@ export const PLUGIN_PHASE = {
|
|
|
10
10
|
VALIDATION: 'VALIDATION',
|
|
11
11
|
};
|
|
12
12
|
// === HELPER FUNCTIONS ===
|
|
13
|
-
export function createSuccessResult(created = { nodes: 0, edges: 0 }, metadata = {}) {
|
|
13
|
+
export function createSuccessResult(created = { nodes: 0, edges: 0 }, metadata = {}, errors = []) {
|
|
14
14
|
return {
|
|
15
15
|
success: true,
|
|
16
16
|
created,
|
|
17
|
-
errors
|
|
17
|
+
errors,
|
|
18
18
|
warnings: [],
|
|
19
19
|
metadata,
|
|
20
20
|
};
|
package/package.json
CHANGED
package/src/edges.ts
CHANGED
|
@@ -9,6 +9,25 @@ export const EDGE_TYPE = {
|
|
|
9
9
|
DEPENDS_ON: 'DEPENDS_ON',
|
|
10
10
|
HAS_SCOPE: 'HAS_SCOPE',
|
|
11
11
|
|
|
12
|
+
// Branching
|
|
13
|
+
HAS_CONDITION: 'HAS_CONDITION',
|
|
14
|
+
HAS_CASE: 'HAS_CASE',
|
|
15
|
+
HAS_DEFAULT: 'HAS_DEFAULT',
|
|
16
|
+
|
|
17
|
+
// Loop edges
|
|
18
|
+
HAS_BODY: 'HAS_BODY', // LOOP -> body SCOPE
|
|
19
|
+
ITERATES_OVER: 'ITERATES_OVER', // LOOP -> collection VARIABLE (for-in/for-of)
|
|
20
|
+
HAS_INIT: 'HAS_INIT', // LOOP (for) -> init VARIABLE (let i = 0)
|
|
21
|
+
HAS_UPDATE: 'HAS_UPDATE', // LOOP (for) -> update EXPRESSION (i++)
|
|
22
|
+
|
|
23
|
+
// If statement edges
|
|
24
|
+
HAS_CONSEQUENT: 'HAS_CONSEQUENT', // BRANCH -> then SCOPE
|
|
25
|
+
HAS_ALTERNATE: 'HAS_ALTERNATE', // BRANCH -> else SCOPE
|
|
26
|
+
|
|
27
|
+
// Try/catch/finally edges
|
|
28
|
+
HAS_CATCH: 'HAS_CATCH', // TRY_BLOCK -> CATCH_BLOCK
|
|
29
|
+
HAS_FINALLY: 'HAS_FINALLY', // TRY_BLOCK -> FINALLY_BLOCK
|
|
30
|
+
|
|
12
31
|
// Calls
|
|
13
32
|
CALLS: 'CALLS',
|
|
14
33
|
HAS_CALLBACK: 'HAS_CALLBACK',
|
|
@@ -49,6 +68,7 @@ export const EDGE_TYPE = {
|
|
|
49
68
|
MAKES_REQUEST: 'MAKES_REQUEST',
|
|
50
69
|
MOUNTS: 'MOUNTS',
|
|
51
70
|
EXPOSES: 'EXPOSES',
|
|
71
|
+
RESPONDS_WITH: 'RESPONDS_WITH',
|
|
52
72
|
|
|
53
73
|
// Events/Sockets
|
|
54
74
|
LISTENS_TO: 'LISTENS_TO',
|
|
@@ -58,6 +78,7 @@ export const EDGE_TYPE = {
|
|
|
58
78
|
// External
|
|
59
79
|
CALLS_API: 'CALLS_API',
|
|
60
80
|
INTERACTS_WITH: 'INTERACTS_WITH',
|
|
81
|
+
HTTP_RECEIVES: 'HTTP_RECEIVES',
|
|
61
82
|
|
|
62
83
|
// Views
|
|
63
84
|
REGISTERS_VIEW: 'REGISTERS_VIEW',
|
|
@@ -138,3 +159,16 @@ export interface RouteEdge extends EdgeRecord {
|
|
|
138
159
|
method?: string;
|
|
139
160
|
path?: string;
|
|
140
161
|
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Edge from LOOP to iterated collection (for-in/for-of loops)
|
|
165
|
+
* Source: LOOP node
|
|
166
|
+
* Destination: VARIABLE or PARAMETER being iterated
|
|
167
|
+
*/
|
|
168
|
+
export interface IteratesOverEdge extends EdgeRecord {
|
|
169
|
+
type: 'ITERATES_OVER';
|
|
170
|
+
metadata?: {
|
|
171
|
+
/** What the loop iterates over: 'keys' for for-in, 'values' for for-of */
|
|
172
|
+
iterates: 'keys' | 'values';
|
|
173
|
+
};
|
|
174
|
+
}
|
package/src/nodes.ts
CHANGED
|
@@ -28,6 +28,16 @@ export const NODE_TYPE = {
|
|
|
28
28
|
FILE: 'FILE',
|
|
29
29
|
SCOPE: 'SCOPE',
|
|
30
30
|
|
|
31
|
+
// Branching
|
|
32
|
+
BRANCH: 'BRANCH',
|
|
33
|
+
CASE: 'CASE',
|
|
34
|
+
|
|
35
|
+
// Control flow
|
|
36
|
+
LOOP: 'LOOP',
|
|
37
|
+
TRY_BLOCK: 'TRY_BLOCK',
|
|
38
|
+
CATCH_BLOCK: 'CATCH_BLOCK',
|
|
39
|
+
FINALLY_BLOCK: 'FINALLY_BLOCK',
|
|
40
|
+
|
|
31
41
|
// External dependencies
|
|
32
42
|
EXTERNAL: 'EXTERNAL',
|
|
33
43
|
EXTERNAL_MODULE: 'EXTERNAL_MODULE',
|
|
@@ -186,6 +196,53 @@ export interface ScopeNodeRecord extends BaseNodeRecord {
|
|
|
186
196
|
parentScopeId?: string;
|
|
187
197
|
}
|
|
188
198
|
|
|
199
|
+
// Branch node (switch, future: if/ternary)
|
|
200
|
+
export interface BranchNodeRecord extends BaseNodeRecord {
|
|
201
|
+
type: 'BRANCH';
|
|
202
|
+
branchType: 'switch' | 'if' | 'ternary'; // For future expansion
|
|
203
|
+
parentScopeId?: string;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Case node (switch case clause)
|
|
207
|
+
export interface CaseNodeRecord extends BaseNodeRecord {
|
|
208
|
+
type: 'CASE';
|
|
209
|
+
value: unknown; // Case test value ('ADD', 1, etc.) or null for default
|
|
210
|
+
isDefault: boolean; // true for default case
|
|
211
|
+
fallsThrough: boolean; // true if no break/return
|
|
212
|
+
isEmpty: boolean; // true if case has no statements (intentional fall-through)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Loop node (for, for-in, for-of, while, do-while)
|
|
216
|
+
export interface LoopNodeRecord extends BaseNodeRecord {
|
|
217
|
+
type: 'LOOP';
|
|
218
|
+
loopType: 'for' | 'for-in' | 'for-of' | 'while' | 'do-while';
|
|
219
|
+
parentScopeId?: string;
|
|
220
|
+
bodyScopeId?: string; // ID of SCOPE node containing loop body
|
|
221
|
+
async?: boolean; // true for for-await-of loops
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Try block node
|
|
225
|
+
export interface TryBlockNodeRecord extends BaseNodeRecord {
|
|
226
|
+
type: 'TRY_BLOCK';
|
|
227
|
+
parentScopeId?: string;
|
|
228
|
+
bodyScopeId?: string; // ID of SCOPE node containing try body
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Catch block node
|
|
232
|
+
export interface CatchBlockNodeRecord extends BaseNodeRecord {
|
|
233
|
+
type: 'CATCH_BLOCK';
|
|
234
|
+
parentScopeId?: string;
|
|
235
|
+
parameterName?: string; // Error parameter name (e.g., 'e' in catch(e))
|
|
236
|
+
bodyScopeId?: string; // ID of SCOPE node containing catch body
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Finally block node
|
|
240
|
+
export interface FinallyBlockNodeRecord extends BaseNodeRecord {
|
|
241
|
+
type: 'FINALLY_BLOCK';
|
|
242
|
+
parentScopeId?: string;
|
|
243
|
+
bodyScopeId?: string; // ID of SCOPE node containing finally body
|
|
244
|
+
}
|
|
245
|
+
|
|
189
246
|
// HTTP Route node
|
|
190
247
|
export interface HttpRouteNodeRecord extends BaseNodeRecord {
|
|
191
248
|
type: 'http:route';
|
|
@@ -239,6 +296,12 @@ export type NodeRecord =
|
|
|
239
296
|
| CallNodeRecord
|
|
240
297
|
| ServiceNodeRecord
|
|
241
298
|
| ScopeNodeRecord
|
|
299
|
+
| BranchNodeRecord
|
|
300
|
+
| CaseNodeRecord
|
|
301
|
+
| LoopNodeRecord
|
|
302
|
+
| TryBlockNodeRecord
|
|
303
|
+
| CatchBlockNodeRecord
|
|
304
|
+
| FinallyBlockNodeRecord
|
|
242
305
|
| HttpRouteNodeRecord
|
|
243
306
|
| DbQueryNodeRecord
|
|
244
307
|
| EventListenerNodeRecord
|
package/src/plugins.ts
CHANGED
|
@@ -101,6 +101,12 @@ export interface PluginContext {
|
|
|
101
101
|
* @returns The ID of the created issue node
|
|
102
102
|
*/
|
|
103
103
|
reportIssue?(issue: IssueSpec): Promise<string>;
|
|
104
|
+
/**
|
|
105
|
+
* Strict mode flag. When true, enrichers should report unresolved
|
|
106
|
+
* references as fatal errors instead of silently continuing.
|
|
107
|
+
* Default: false (graceful degradation).
|
|
108
|
+
*/
|
|
109
|
+
strictMode?: boolean;
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
// === PLUGIN RESULT ===
|
|
@@ -156,6 +162,28 @@ export interface OrchestratorConfig {
|
|
|
156
162
|
* Services are resolved relative to projectPath.
|
|
157
163
|
*/
|
|
158
164
|
services?: ServiceDefinition[];
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Glob patterns for files to include during indexing.
|
|
168
|
+
* If specified, only files matching at least one pattern are processed.
|
|
169
|
+
* Patterns are matched against relative paths from project root.
|
|
170
|
+
* Uses minimatch syntax (e.g., "src/**.ts", "lib/**.js").
|
|
171
|
+
*
|
|
172
|
+
* Default: undefined (process all files reachable from entrypoint)
|
|
173
|
+
*/
|
|
174
|
+
include?: string[];
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Glob patterns for files to exclude during indexing.
|
|
178
|
+
* Files matching any pattern are skipped (not processed, imports not followed).
|
|
179
|
+
* Patterns are matched against relative paths from project root.
|
|
180
|
+
* Uses minimatch syntax.
|
|
181
|
+
*
|
|
182
|
+
* Default: undefined (no exclusions beyond npm packages)
|
|
183
|
+
*
|
|
184
|
+
* Note: node_modules is already excluded by default in JSModuleIndexer.
|
|
185
|
+
*/
|
|
186
|
+
exclude?: string[];
|
|
159
187
|
}
|
|
160
188
|
|
|
161
189
|
/**
|
|
@@ -261,12 +289,13 @@ export interface IPlugin {
|
|
|
261
289
|
// === HELPER FUNCTIONS ===
|
|
262
290
|
export function createSuccessResult(
|
|
263
291
|
created: { nodes: number; edges: number } = { nodes: 0, edges: 0 },
|
|
264
|
-
metadata: Record<string, unknown> = {}
|
|
292
|
+
metadata: Record<string, unknown> = {},
|
|
293
|
+
errors: Error[] = []
|
|
265
294
|
): PluginResult {
|
|
266
295
|
return {
|
|
267
296
|
success: true,
|
|
268
297
|
created,
|
|
269
|
-
errors
|
|
298
|
+
errors,
|
|
270
299
|
warnings: [],
|
|
271
300
|
metadata,
|
|
272
301
|
};
|