@grafema/types 0.2.5-beta → 0.2.6-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/README.md +13 -9
- package/dist/branded.d.ts +0 -7
- package/dist/branded.d.ts.map +1 -1
- package/dist/branded.js +0 -9
- package/dist/branded.js.map +1 -1
- package/dist/edges.d.ts +12 -0
- package/dist/edges.d.ts.map +1 -1
- package/dist/edges.js +15 -0
- package/dist/edges.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure.d.ts +169 -0
- package/dist/infrastructure.d.ts.map +1 -0
- package/dist/infrastructure.js +17 -0
- package/dist/infrastructure.js.map +1 -0
- package/dist/nodes.d.ts +33 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +6 -1
- package/dist/nodes.js.map +1 -1
- package/dist/plugins.d.ts +40 -12
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/resources.d.ts +54 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +17 -0
- package/dist/resources.js.map +1 -0
- package/dist/rfdb.d.ts +129 -1
- package/dist/rfdb.d.ts.map +1 -1
- package/dist/routing.d.ts +85 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +10 -0
- package/dist/routing.js.map +1 -0
- package/package.json +1 -1
- package/src/branded.ts +1 -11
- package/src/edges.ts +16 -0
- package/src/index.ts +12 -1
- package/src/infrastructure.ts +262 -0
- package/src/nodes.ts +47 -1
- package/src/plugins.ts +46 -14
- package/src/resources.ts +58 -0
- package/src/rfdb.ts +158 -1
- package/src/routing.ts +96 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Type definitions for Grafema code analysis toolkit
|
|
4
4
|
|
|
5
|
-
**Warning: This package is in
|
|
5
|
+
**Warning: This package is in beta stage and the API may change between minor versions.**
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -14,25 +14,29 @@ npm install @grafema/types
|
|
|
14
14
|
|
|
15
15
|
This package provides TypeScript type definitions used across the Grafema ecosystem:
|
|
16
16
|
|
|
17
|
-
- **Node types**
|
|
18
|
-
- **Edge types**
|
|
19
|
-
- **Plugin types**
|
|
20
|
-
- **RFDB types**
|
|
17
|
+
- **Node types** — Graph node definitions (functions, variables, calls, parameters, etc.)
|
|
18
|
+
- **Edge types** — Relationship definitions (CALLS, IMPORTS, ASSIGNED_FROM, FLOWS_INTO, etc.)
|
|
19
|
+
- **Plugin types** — Plugin system interfaces (phases, metadata, context)
|
|
20
|
+
- **RFDB types** — Wire protocol types for RFDB graph database
|
|
21
|
+
- **Infrastructure types** — USG (Unified Service Graph) types for infrastructure-as-code analysis
|
|
21
22
|
|
|
22
23
|
## Usage
|
|
23
24
|
|
|
24
25
|
```typescript
|
|
25
26
|
import type { NodeType, EdgeType, WireNode, WireEdge } from '@grafema/types';
|
|
27
|
+
import type { PluginMetadata, PluginPhase } from '@grafema/types';
|
|
28
|
+
import type { InfraNodeType, InfraEdgeType } from '@grafema/types';
|
|
26
29
|
```
|
|
27
30
|
|
|
28
31
|
## Exports
|
|
29
32
|
|
|
30
33
|
| Module | Description |
|
|
31
34
|
|--------|-------------|
|
|
32
|
-
| `nodes` | Node type definitions |
|
|
33
|
-
| `edges` | Edge type definitions |
|
|
34
|
-
| `plugins` | Plugin interface types |
|
|
35
|
-
| `rfdb` | RFDB protocol types |
|
|
35
|
+
| `nodes` | Node type definitions (FUNCTION, VARIABLE, CALL, MODULE, etc.) |
|
|
36
|
+
| `edges` | Edge type definitions (CALLS, IMPORTS, ASSIGNED_FROM, etc.) |
|
|
37
|
+
| `plugins` | Plugin interface types and phase definitions |
|
|
38
|
+
| `rfdb` | RFDB wire protocol types |
|
|
39
|
+
| `infra` | USG infrastructure types (Kubernetes, Terraform, Docker) |
|
|
36
40
|
|
|
37
41
|
## License
|
|
38
42
|
|
package/dist/branded.d.ts
CHANGED
|
@@ -50,12 +50,5 @@ export type UnbrandedNode<T> = T extends BrandedNode<infer U> ? U : never;
|
|
|
50
50
|
* It's useful for type narrowing in conditional logic.
|
|
51
51
|
*/
|
|
52
52
|
export declare function isBrandedNode<T extends BaseNodeRecord>(node: T | BrandedNode<T>): node is BrandedNode<T>;
|
|
53
|
-
/**
|
|
54
|
-
* Internal helper for NodeFactory to brand a node.
|
|
55
|
-
* This should ONLY be used inside NodeFactory methods.
|
|
56
|
-
*
|
|
57
|
-
* @internal
|
|
58
|
-
*/
|
|
59
|
-
export declare function brandNode<T extends BaseNodeRecord>(node: T): BrandedNode<T>;
|
|
60
53
|
export {};
|
|
61
54
|
//# sourceMappingURL=branded.d.ts.map
|
package/dist/branded.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branded.d.ts","sourceRoot":"","sources":["../src/branded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;;GAGG;AACH,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,GAAG;IACtD,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EACpD,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAIxB
|
|
1
|
+
{"version":3,"file":"branded.d.ts","sourceRoot":"","sources":["../src/branded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;;GAGG;AACH,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,GAAG;IACtD,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,cAAc,EACpD,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GACvB,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAIxB"}
|
package/dist/branded.js
CHANGED
|
@@ -23,13 +23,4 @@ export function isBrandedNode(node) {
|
|
|
23
23
|
// The actual enforcement happens at compile time.
|
|
24
24
|
return true;
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Internal helper for NodeFactory to brand a node.
|
|
28
|
-
* This should ONLY be used inside NodeFactory methods.
|
|
29
|
-
*
|
|
30
|
-
* @internal
|
|
31
|
-
*/
|
|
32
|
-
export function brandNode(node) {
|
|
33
|
-
return node;
|
|
34
|
-
}
|
|
35
26
|
//# sourceMappingURL=branded.js.map
|
package/dist/branded.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branded.js","sourceRoot":"","sources":["../src/branded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsCH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAwB;IAExB,iEAAiE;IACjE,kDAAkD;IAClD,OAAO,IAAI,CAAC;AACd,CAAC
|
|
1
|
+
{"version":3,"file":"branded.js","sourceRoot":"","sources":["../src/branded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsCH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAwB;IAExB,iEAAiE;IACjE,kDAAkD;IAClD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/edges.d.ts
CHANGED
|
@@ -61,6 +61,18 @@ export declare const EDGE_TYPE: {
|
|
|
61
61
|
readonly GOVERNS: "GOVERNS";
|
|
62
62
|
readonly VIOLATES: "VIOLATES";
|
|
63
63
|
readonly AFFECTS: "AFFECTS";
|
|
64
|
+
readonly DEPLOYED_TO: "DEPLOYED_TO";
|
|
65
|
+
readonly SCHEDULED_BY: "SCHEDULED_BY";
|
|
66
|
+
readonly EXPOSED_VIA: "EXPOSED_VIA";
|
|
67
|
+
readonly USES_CONFIG: "USES_CONFIG";
|
|
68
|
+
readonly USES_SECRET: "USES_SECRET";
|
|
69
|
+
readonly PUBLISHES_TO: "PUBLISHES_TO";
|
|
70
|
+
readonly SUBSCRIBES_TO: "SUBSCRIBES_TO";
|
|
71
|
+
readonly MONITORED_BY: "MONITORED_BY";
|
|
72
|
+
readonly MEASURED_BY: "MEASURED_BY";
|
|
73
|
+
readonly LOGS_TO: "LOGS_TO";
|
|
74
|
+
readonly INVOKES_FUNCTION: "INVOKES_FUNCTION";
|
|
75
|
+
readonly PROVISIONED_BY: "PROVISIONED_BY";
|
|
64
76
|
readonly UNKNOWN: "UNKNOWN";
|
|
65
77
|
};
|
|
66
78
|
export type EdgeType = typeof EDGE_TYPE[keyof typeof EDGE_TYPE] | string;
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHZ,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
|
@@ -80,6 +80,21 @@ export const EDGE_TYPE = {
|
|
|
80
80
|
VIOLATES: 'VIOLATES',
|
|
81
81
|
// Issues
|
|
82
82
|
AFFECTS: 'AFFECTS',
|
|
83
|
+
// === Cross-Layer Edges (USG) ===
|
|
84
|
+
// Code -> Abstract Resources
|
|
85
|
+
DEPLOYED_TO: 'DEPLOYED_TO',
|
|
86
|
+
SCHEDULED_BY: 'SCHEDULED_BY',
|
|
87
|
+
EXPOSED_VIA: 'EXPOSED_VIA',
|
|
88
|
+
USES_CONFIG: 'USES_CONFIG',
|
|
89
|
+
USES_SECRET: 'USES_SECRET',
|
|
90
|
+
PUBLISHES_TO: 'PUBLISHES_TO',
|
|
91
|
+
SUBSCRIBES_TO: 'SUBSCRIBES_TO',
|
|
92
|
+
MONITORED_BY: 'MONITORED_BY',
|
|
93
|
+
MEASURED_BY: 'MEASURED_BY',
|
|
94
|
+
LOGS_TO: 'LOGS_TO',
|
|
95
|
+
INVOKES_FUNCTION: 'INVOKES_FUNCTION',
|
|
96
|
+
// Abstract -> Concrete (tool provenance)
|
|
97
|
+
PROVISIONED_BY: 'PROVISIONED_BY',
|
|
83
98
|
// Unknown/fallback
|
|
84
99
|
UNKNOWN: 'UNKNOWN',
|
|
85
100
|
};
|
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;IAC5B,UAAU,EAAE,YAAY;IAExB,sBAAsB;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IAExB,yBAAyB;IACzB,YAAY,EAAE,cAAc,EAAI,mCAAmC;IACnE,WAAW,EAAE,aAAa,EAAM,2BAA2B;IAE3D,eAAe;IACf,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAE9B,iBAAiB;IACjB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IAExB,WAAW;IACX,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAE9B,QAAQ;IACR,cAAc,EAAE,gBAAgB;IAEhC,SAAS;IACT,MAAM,EAAE,QAAQ;IAEhB,4BAA4B;IAC5B,OAAO,EAAE,SAAS,EAAY,gDAAgD;IAC9E,YAAY,EAAE,cAAc,EAAE,4CAA4C;IAE1E,wBAAwB;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IAEpB,SAAS;IACT,OAAO,EAAE,SAAS;IAElB,mBAAmB;IACnB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
|
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;IAC5B,UAAU,EAAE,YAAY;IAExB,sBAAsB;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IAExB,yBAAyB;IACzB,YAAY,EAAE,cAAc,EAAI,mCAAmC;IACnE,WAAW,EAAE,aAAa,EAAM,2BAA2B;IAE3D,eAAe;IACf,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAE9B,iBAAiB;IACjB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IAExB,WAAW;IACX,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAE9B,QAAQ;IACR,cAAc,EAAE,gBAAgB;IAEhC,SAAS;IACT,MAAM,EAAE,QAAQ;IAEhB,4BAA4B;IAC5B,OAAO,EAAE,SAAS,EAAY,gDAAgD;IAC9E,YAAY,EAAE,cAAc,EAAE,4CAA4C;IAE1E,wBAAwB;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IAEpB,SAAS;IACT,OAAO,EAAE,SAAS;IAElB,kCAAkC;IAClC,6BAA6B;IAC7B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,yCAAyC;IACzC,cAAc,EAAE,gBAAgB;IAEhC,mBAAmB;IACnB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
* @grafema/types - Type definitions for GraphDD code analysis toolkit
|
|
3
3
|
*/
|
|
4
4
|
export * from './nodes.js';
|
|
5
|
-
export
|
|
5
|
+
export type { BrandedNode, AnyBrandedNode, UnbrandedNode } from './branded.js';
|
|
6
|
+
export { isBrandedNode } from './branded.js';
|
|
6
7
|
export * from './edges.js';
|
|
7
8
|
export * from './plugins.js';
|
|
8
9
|
export * from './rfdb.js';
|
|
10
|
+
export * from './resources.js';
|
|
11
|
+
export * from './routing.js';
|
|
12
|
+
export * from './infrastructure.js';
|
|
9
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAI3B,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,12 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
// Node types
|
|
5
5
|
export * from './nodes.js';
|
|
6
|
-
|
|
7
|
-
export * from './branded.js';
|
|
6
|
+
export { isBrandedNode } from './branded.js';
|
|
8
7
|
// Edge types
|
|
9
8
|
export * from './edges.js';
|
|
10
9
|
// Plugin types
|
|
11
10
|
export * from './plugins.js';
|
|
12
11
|
// RFDB protocol types
|
|
13
12
|
export * from './rfdb.js';
|
|
13
|
+
// Resource types (REG-256)
|
|
14
|
+
export * from './resources.js';
|
|
15
|
+
// Routing types (REG-256)
|
|
16
|
+
export * from './routing.js';
|
|
17
|
+
// Infrastructure types (USG Phase 1)
|
|
18
|
+
export * from './infrastructure.js';
|
|
14
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,aAAa;AACb,cAAc,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,aAAa;AACb,cAAc,YAAY,CAAC;AAK3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,aAAa;AACb,cAAc,YAAY,CAAC;AAE3B,eAAe;AACf,cAAc,cAAc,CAAC;AAE7B,sBAAsB;AACtB,cAAc,WAAW,CAAC;AAE1B,2BAA2B;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,0BAA0B;AAC1B,cAAc,cAAc,CAAC;AAE7B,qCAAqC;AACrC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure Types — abstract resource taxonomy and cross-layer mapping.
|
|
3
|
+
*
|
|
4
|
+
* USG (Universal System Graph) extends Grafema from code-only to multi-layer:
|
|
5
|
+
* Code → Abstract Resources → Concrete Infrastructure
|
|
6
|
+
*
|
|
7
|
+
* This module defines:
|
|
8
|
+
* - Abstract resource types (tool-agnostic: compute:service, storage:database:sql)
|
|
9
|
+
* - InfraResourceMap interface (like RoutingMap but for infra identity resolution)
|
|
10
|
+
* - Supporting types for analyzers and cross-layer linking
|
|
11
|
+
*/
|
|
12
|
+
import type { Resource } from './resources.js';
|
|
13
|
+
import type { EdgeType } from './edges.js';
|
|
14
|
+
/**
|
|
15
|
+
* Known abstract resource types, organized by category.
|
|
16
|
+
* These are tool-agnostic — K8s Deployment, Docker service, EC2 all map
|
|
17
|
+
* to the same abstract type (compute:service).
|
|
18
|
+
*
|
|
19
|
+
* Convention: category:subcategory[:detail]
|
|
20
|
+
*/
|
|
21
|
+
type KnownResourceType = 'compute:service' | 'compute:serverless' | 'compute:container' | 'compute:container:orchestration' | 'compute:job' | 'compute:vm' | 'networking:ingress' | 'networking:service' | 'networking:gateway' | 'networking:vpc' | 'networking:dns' | 'networking:cdn' | 'networking:firewall' | 'networking:vpn' | 'storage:object' | 'storage:volume' | 'storage:file' | 'storage:cache' | 'storage:database:sql' | 'storage:database:nosql' | 'storage:database:graph' | 'storage:database:timeseries' | 'storage:database:warehouse' | 'messaging:queue' | 'messaging:stream' | 'messaging:topic' | 'messaging:event_bus' | 'messaging:workflow' | 'config:map' | 'config:secret' | 'security:iam' | 'security:certificate' | 'security:dlp' | 'security:threat_detection' | 'observability:alert' | 'observability:dashboard' | 'observability:slo' | 'observability:log_target' | 'observability:tracing' | 'observability:apm' | 'devops:pipeline' | 'devops:registry:container' | 'devops:iac' | 'ai:platform' | 'ai:vision' | 'ai:nlp' | 'ai:speech' | 'communication:email' | 'communication:sms' | 'communication:push' | 'iot:platform' | 'iot:edge';
|
|
22
|
+
/**
|
|
23
|
+
* Abstract resource type — known types for autocomplete + extensible via string.
|
|
24
|
+
* Any 'category:subcategory' string is valid.
|
|
25
|
+
*/
|
|
26
|
+
export type AbstractResourceType = KnownResourceType | `${string}:${string}`;
|
|
27
|
+
/** Well-known Resource ID for InfraResourceMap */
|
|
28
|
+
export declare const INFRA_RESOURCE_MAP_ID: "infra:resource:map";
|
|
29
|
+
/**
|
|
30
|
+
* Parsed infrastructure resource from a concrete analyzer.
|
|
31
|
+
* Generic representation before graph node creation.
|
|
32
|
+
*/
|
|
33
|
+
export interface InfraResource {
|
|
34
|
+
/** Unique resource ID (e.g., 'infra:k8s:deployment:user-api') */
|
|
35
|
+
id: string;
|
|
36
|
+
/** Concrete tool-specific type (e.g., 'infra:k8s:deployment') */
|
|
37
|
+
type: string;
|
|
38
|
+
/** Human-readable name */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Source file where resource is defined */
|
|
41
|
+
file: string;
|
|
42
|
+
/** Line number in file (if available) */
|
|
43
|
+
line?: number;
|
|
44
|
+
/** Environment(s) this resource belongs to (undefined = all) */
|
|
45
|
+
env?: string | string[];
|
|
46
|
+
/** Tool that created this resource (e.g., 'kubernetes', 'terraform') */
|
|
47
|
+
tool: string;
|
|
48
|
+
/** Raw resource data */
|
|
49
|
+
metadata?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Mapping from concrete resource to abstract type.
|
|
53
|
+
* Created by InfraAnalyzer.mapToAbstract(), stored in InfraResourceMap.
|
|
54
|
+
*/
|
|
55
|
+
export interface ResourceMapping {
|
|
56
|
+
/** Concrete graph node ID */
|
|
57
|
+
concreteId: string;
|
|
58
|
+
/** Concrete type (e.g., 'infra:k8s:deployment') */
|
|
59
|
+
concreteType: string;
|
|
60
|
+
/** Abstract type this maps to */
|
|
61
|
+
abstractType: AbstractResourceType;
|
|
62
|
+
/** Abstract resource ID (e.g., 'compute:service:user-api') */
|
|
63
|
+
abstractId: string;
|
|
64
|
+
/** Human-readable name */
|
|
65
|
+
name: string;
|
|
66
|
+
/** Normalized tool-agnostic metadata */
|
|
67
|
+
metadata: Record<string, unknown>;
|
|
68
|
+
/** Environment */
|
|
69
|
+
env?: string | string[];
|
|
70
|
+
/** Source file */
|
|
71
|
+
sourceFile: string;
|
|
72
|
+
/** Tool name */
|
|
73
|
+
sourceTool: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Cross-layer link between code and infrastructure.
|
|
77
|
+
*/
|
|
78
|
+
export interface CrossLayerLink {
|
|
79
|
+
type: EdgeType;
|
|
80
|
+
src: string;
|
|
81
|
+
dst: string;
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Abstract resource — tool-agnostic representation.
|
|
86
|
+
* Created from one or more concrete resources via InfraResourceMap.
|
|
87
|
+
*/
|
|
88
|
+
export interface AbstractResource {
|
|
89
|
+
/** Abstract ID (e.g., 'compute:service:user-api') */
|
|
90
|
+
id: string;
|
|
91
|
+
/** Abstract type */
|
|
92
|
+
type: AbstractResourceType;
|
|
93
|
+
/** Human-readable name */
|
|
94
|
+
name: string;
|
|
95
|
+
/** Environment */
|
|
96
|
+
env?: string | string[];
|
|
97
|
+
/** Normalized metadata */
|
|
98
|
+
metadata: Record<string, unknown>;
|
|
99
|
+
/** Concrete resources that provide this abstract resource */
|
|
100
|
+
providers: ConcreteResourceRef[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Reference to a concrete resource that provides an abstract resource.
|
|
104
|
+
*/
|
|
105
|
+
export interface ConcreteResourceRef {
|
|
106
|
+
/** Concrete graph node ID */
|
|
107
|
+
id: string;
|
|
108
|
+
/** Tool-specific type */
|
|
109
|
+
type: string;
|
|
110
|
+
/** Tool name */
|
|
111
|
+
tool: string;
|
|
112
|
+
/** Source file */
|
|
113
|
+
file: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* InfraResourceMap — maps concrete infrastructure to abstract types.
|
|
117
|
+
* Like RoutingMap but for infrastructure identity resolution.
|
|
118
|
+
*
|
|
119
|
+
* Resource ID: 'infra:resource:map'
|
|
120
|
+
*
|
|
121
|
+
* Lifecycle:
|
|
122
|
+
* 1. Concrete analyzers (K8s, Terraform) call register() during ANALYSIS
|
|
123
|
+
* 2. Enrichers call find*() during ENRICHMENT to create abstract nodes + edges
|
|
124
|
+
*/
|
|
125
|
+
export interface InfraResourceMap extends Resource {
|
|
126
|
+
readonly id: typeof INFRA_RESOURCE_MAP_ID;
|
|
127
|
+
/** Register a concrete->abstract mapping. Called by analyzers. */
|
|
128
|
+
register(mapping: ResourceMapping): void;
|
|
129
|
+
/** Find abstract resource by name and type. Returns null if not registered. */
|
|
130
|
+
findAbstract(name: string, type: AbstractResourceType): AbstractResource | null;
|
|
131
|
+
/** Find all concrete resources for an abstract resource ID. */
|
|
132
|
+
findConcrete(abstractId: string): ConcreteResourceRef[];
|
|
133
|
+
/** Get all abstract resources of a given type. */
|
|
134
|
+
findByType(type: AbstractResourceType): AbstractResource[];
|
|
135
|
+
/** Filter abstract resources by environment. */
|
|
136
|
+
findByEnv(env: string): AbstractResource[];
|
|
137
|
+
/** Get all registered abstract resources. */
|
|
138
|
+
getAll(): AbstractResource[];
|
|
139
|
+
/** Get count of abstract resources (for metrics). */
|
|
140
|
+
get resourceCount(): number;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Infrastructure configuration section in grafema.config.yaml.
|
|
144
|
+
*
|
|
145
|
+
* ```yaml
|
|
146
|
+
* infrastructure:
|
|
147
|
+
* enabled: true
|
|
148
|
+
* kubernetes:
|
|
149
|
+
* enabled: true
|
|
150
|
+
* paths: ['k8s/**.yaml']
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export interface InfrastructureConfig {
|
|
154
|
+
enabled: boolean;
|
|
155
|
+
kubernetes?: InfraToolConfig;
|
|
156
|
+
terraform?: InfraToolConfig;
|
|
157
|
+
dockerCompose?: InfraToolConfig;
|
|
158
|
+
custom?: CustomAnalyzerConfig;
|
|
159
|
+
}
|
|
160
|
+
export interface InfraToolConfig {
|
|
161
|
+
enabled: boolean;
|
|
162
|
+
paths: string[];
|
|
163
|
+
mappings?: Record<string, string>;
|
|
164
|
+
}
|
|
165
|
+
export interface CustomAnalyzerConfig {
|
|
166
|
+
analyzerPath: string;
|
|
167
|
+
}
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=infrastructure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infrastructure.d.ts","sourceRoot":"","sources":["../src/infrastructure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infrastructure Types — abstract resource taxonomy and cross-layer mapping.
|
|
3
|
+
*
|
|
4
|
+
* USG (Universal System Graph) extends Grafema from code-only to multi-layer:
|
|
5
|
+
* Code → Abstract Resources → Concrete Infrastructure
|
|
6
|
+
*
|
|
7
|
+
* This module defines:
|
|
8
|
+
* - Abstract resource types (tool-agnostic: compute:service, storage:database:sql)
|
|
9
|
+
* - InfraResourceMap interface (like RoutingMap but for infra identity resolution)
|
|
10
|
+
* - Supporting types for analyzers and cross-layer linking
|
|
11
|
+
*/
|
|
12
|
+
// ============================================================
|
|
13
|
+
// INFRA RESOURCE MAP
|
|
14
|
+
// ============================================================
|
|
15
|
+
/** Well-known Resource ID for InfraResourceMap */
|
|
16
|
+
export const INFRA_RESOURCE_MAP_ID = 'infra:resource:map';
|
|
17
|
+
//# sourceMappingURL=infrastructure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infrastructure.js","sourceRoot":"","sources":["../src/infrastructure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuFH,+DAA+D;AAC/D,qBAAqB;AACrB,+DAA+D;AAE/D,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAA6B,CAAC"}
|
package/dist/nodes.d.ts
CHANGED
|
@@ -46,6 +46,10 @@ export declare const NAMESPACED_TYPE: {
|
|
|
46
46
|
readonly FS_OPERATION: "fs:operation";
|
|
47
47
|
readonly NET_REQUEST: "net:request";
|
|
48
48
|
readonly NET_STDIO: "net:stdio";
|
|
49
|
+
readonly NET_TCP_CONNECTION: "net:tcp-connection";
|
|
50
|
+
readonly NET_TCP_SERVER: "net:tcp-server";
|
|
51
|
+
readonly OS_UNIX_SOCKET: "os:unix-socket";
|
|
52
|
+
readonly OS_UNIX_SERVER: "os:unix-server";
|
|
49
53
|
readonly EVENT_LISTENER: "event:listener";
|
|
50
54
|
readonly EVENT_EMIT: "event:emit";
|
|
51
55
|
readonly GRAFEMA_PLUGIN: "grafema:plugin";
|
|
@@ -96,6 +100,8 @@ export interface ModuleNodeRecord extends BaseNodeRecord {
|
|
|
96
100
|
relativePath: string;
|
|
97
101
|
contentHash: string;
|
|
98
102
|
language?: string;
|
|
103
|
+
/** REG-297: true if module uses top-level await */
|
|
104
|
+
hasTopLevelAwait?: boolean;
|
|
99
105
|
}
|
|
100
106
|
export interface ImportNodeRecord extends BaseNodeRecord {
|
|
101
107
|
type: 'IMPORT';
|
|
@@ -216,7 +222,33 @@ export interface PluginNodeRecord extends BaseNodeRecord {
|
|
|
216
222
|
createsEdges: string[];
|
|
217
223
|
dependencies: string[];
|
|
218
224
|
}
|
|
219
|
-
export
|
|
225
|
+
export interface OsUnixSocketNodeRecord extends BaseNodeRecord {
|
|
226
|
+
type: 'os:unix-socket';
|
|
227
|
+
protocol: 'unix';
|
|
228
|
+
path: string;
|
|
229
|
+
library: string;
|
|
230
|
+
}
|
|
231
|
+
export interface OsUnixServerNodeRecord extends BaseNodeRecord {
|
|
232
|
+
type: 'os:unix-server';
|
|
233
|
+
protocol: 'unix';
|
|
234
|
+
path: string;
|
|
235
|
+
backlog?: number;
|
|
236
|
+
}
|
|
237
|
+
export interface NetTcpConnectionNodeRecord extends BaseNodeRecord {
|
|
238
|
+
type: 'net:tcp-connection';
|
|
239
|
+
protocol: 'tcp';
|
|
240
|
+
host?: string;
|
|
241
|
+
port: number;
|
|
242
|
+
library: string;
|
|
243
|
+
}
|
|
244
|
+
export interface NetTcpServerNodeRecord extends BaseNodeRecord {
|
|
245
|
+
type: 'net:tcp-server';
|
|
246
|
+
protocol: 'tcp';
|
|
247
|
+
host?: string;
|
|
248
|
+
port: number;
|
|
249
|
+
backlog?: number;
|
|
250
|
+
}
|
|
251
|
+
export type NodeRecord = FunctionNodeRecord | ClassNodeRecord | MethodNodeRecord | ModuleNodeRecord | ImportNodeRecord | ExportNodeRecord | VariableNodeRecord | CallNodeRecord | PropertyAccessNodeRecord | ServiceNodeRecord | ScopeNodeRecord | BranchNodeRecord | CaseNodeRecord | LoopNodeRecord | TryBlockNodeRecord | CatchBlockNodeRecord | FinallyBlockNodeRecord | HttpRouteNodeRecord | DbQueryNodeRecord | EventListenerNodeRecord | GuaranteeNodeRecord | PluginNodeRecord | OsUnixSocketNodeRecord | OsUnixServerNodeRecord | NetTcpConnectionNodeRecord | NetTcpServerNodeRecord | BaseNodeRecord;
|
|
220
252
|
export declare function isNamespacedType(nodeType: string): boolean;
|
|
221
253
|
export declare function getNamespace(nodeType: string): string | null;
|
|
222
254
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAGpE,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.js
CHANGED
|
@@ -61,6 +61,11 @@ export const NAMESPACED_TYPE = {
|
|
|
61
61
|
// Network
|
|
62
62
|
NET_REQUEST: 'net:request',
|
|
63
63
|
NET_STDIO: 'net:stdio',
|
|
64
|
+
NET_TCP_CONNECTION: 'net:tcp-connection',
|
|
65
|
+
NET_TCP_SERVER: 'net:tcp-server',
|
|
66
|
+
// OS-level IPC (Unix domain sockets)
|
|
67
|
+
OS_UNIX_SOCKET: 'os:unix-socket',
|
|
68
|
+
OS_UNIX_SERVER: 'os:unix-server',
|
|
64
69
|
// Events
|
|
65
70
|
EVENT_LISTENER: 'event:listener',
|
|
66
71
|
EVENT_EMIT: 'event:emit',
|
|
@@ -91,6 +96,6 @@ export function isSideEffectType(nodeType) {
|
|
|
91
96
|
if (nodeType === NODE_TYPE.SIDE_EFFECT)
|
|
92
97
|
return true;
|
|
93
98
|
const ns = getNamespace(nodeType);
|
|
94
|
-
return ns === 'db' || ns === 'fs' || ns === 'net';
|
|
99
|
+
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os';
|
|
95
100
|
}
|
|
96
101
|
//# 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;IAElC,oBAAoB;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IAEd,YAAY;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IAEZ,eAAe;IACf,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAE9B,wBAAwB;IACxB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,iBAAiB;IAElC,uBAAuB;IACvB,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX,gCAAgC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,iBAAiB;IACjB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAE5B,aAAa;IACb,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAE9B,YAAY;IACZ,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,oBAAoB;IAExC,WAAW;IACX,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAE9B,aAAa;IACb,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAE5B,UAAU;IACV,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins.d.ts
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { NodeType, NodeRecord } from './nodes.js';
|
|
5
5
|
import type { EdgeType, EdgeRecord } from './edges.js';
|
|
6
|
-
import type {
|
|
6
|
+
import type { AnyBrandedNode } from './branded.js';
|
|
7
|
+
import type { FieldDeclaration, CommitDelta } from './rfdb.js';
|
|
8
|
+
import type { ResourceRegistry } from './resources.js';
|
|
9
|
+
import type { RoutingRule } from './routing.js';
|
|
10
|
+
import type { InfrastructureConfig } from './infrastructure.js';
|
|
7
11
|
/**
|
|
8
12
|
* Log level for controlling verbosity.
|
|
9
13
|
* Levels are ordered by verbosity: silent < errors < warnings < info < debug
|
|
@@ -38,6 +42,16 @@ export interface PluginMetadata {
|
|
|
38
42
|
dependencies?: string[];
|
|
39
43
|
/** Metadata fields this plugin writes. Used for RFDB server-side indexing. */
|
|
40
44
|
fields?: FieldDeclaration[];
|
|
45
|
+
/**
|
|
46
|
+
* Package names this analyzer covers (for coverage tracking).
|
|
47
|
+
* Only used by package-specific analyzers.
|
|
48
|
+
* Examples: ['sqlite3'], ['@prisma/client'], ['lodash']
|
|
49
|
+
*/
|
|
50
|
+
covers?: string[];
|
|
51
|
+
/** Edge types this plugin reads from the graph (RFD-2). Used for automatic dependency inference. */
|
|
52
|
+
consumes?: EdgeType[];
|
|
53
|
+
/** Edge types this plugin creates/modifies (RFD-2). Used for automatic dependency inference. */
|
|
54
|
+
produces?: EdgeType[];
|
|
41
55
|
}
|
|
42
56
|
/**
|
|
43
57
|
* Specification for creating an issue node via reportIssue().
|
|
@@ -104,6 +118,12 @@ export interface PluginContext {
|
|
|
104
118
|
* - Multi root ("backend"): "backend/src/utils.js->global->FUNCTION->foo"
|
|
105
119
|
*/
|
|
106
120
|
rootPrefix?: string;
|
|
121
|
+
/**
|
|
122
|
+
* Resource registry for shared data between plugins (REG-256).
|
|
123
|
+
* Plugins can read/write typed Resources through this registry.
|
|
124
|
+
* Available in all phases. Created by Orchestrator at run start.
|
|
125
|
+
*/
|
|
126
|
+
resources?: ResourceRegistry;
|
|
107
127
|
}
|
|
108
128
|
export interface PluginResult {
|
|
109
129
|
success: boolean;
|
|
@@ -171,6 +191,13 @@ export interface OrchestratorConfig {
|
|
|
171
191
|
* Note: node_modules is already excluded by default in JSModuleIndexer.
|
|
172
192
|
*/
|
|
173
193
|
exclude?: string[];
|
|
194
|
+
/**
|
|
195
|
+
* Routing rules from config for cross-service URL mapping (REG-256).
|
|
196
|
+
* Passed through to plugins via PluginContext.config.
|
|
197
|
+
*/
|
|
198
|
+
routing?: RoutingRule[];
|
|
199
|
+
/** Infrastructure analysis configuration (USG Phase 1) */
|
|
200
|
+
infrastructure?: InfrastructureConfig;
|
|
174
201
|
}
|
|
175
202
|
/**
|
|
176
203
|
* Explicit service definition for configuration.
|
|
@@ -194,15 +221,13 @@ export interface ServiceDefinition {
|
|
|
194
221
|
* If omitted, auto-detected via resolveSourceEntrypoint() or package.json.main
|
|
195
222
|
*/
|
|
196
223
|
entryPoint?: string;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
line?: number;
|
|
205
|
-
[key: string]: unknown;
|
|
224
|
+
/**
|
|
225
|
+
* Mark this service as customer-facing (REG-256).
|
|
226
|
+
* Routes in customer-facing services are expected to have frontend consumers.
|
|
227
|
+
* Unconnected routes in customer-facing services raise issue:connectivity warnings.
|
|
228
|
+
* Default: false (no issues for unconnected routes).
|
|
229
|
+
*/
|
|
230
|
+
customerFacing?: boolean;
|
|
206
231
|
}
|
|
207
232
|
export interface InputEdge {
|
|
208
233
|
src: string;
|
|
@@ -211,9 +236,9 @@ export interface InputEdge {
|
|
|
211
236
|
[key: string]: unknown;
|
|
212
237
|
}
|
|
213
238
|
export interface GraphBackend {
|
|
214
|
-
addNode(node:
|
|
239
|
+
addNode(node: AnyBrandedNode): Promise<void> | void;
|
|
215
240
|
addEdge(edge: InputEdge): Promise<void> | void;
|
|
216
|
-
addNodes(nodes:
|
|
241
|
+
addNodes(nodes: AnyBrandedNode[]): Promise<void> | void;
|
|
217
242
|
addEdges(edges: InputEdge[]): Promise<void> | void;
|
|
218
243
|
getNode(id: string): Promise<NodeRecord | null>;
|
|
219
244
|
queryNodes(filter: NodeFilter): AsyncIterable<NodeRecord> | AsyncGenerator<NodeRecord>;
|
|
@@ -235,6 +260,9 @@ export interface GraphBackend {
|
|
|
235
260
|
flush?(): Promise<void>;
|
|
236
261
|
close?(): Promise<void>;
|
|
237
262
|
declareFields?(fields: FieldDeclaration[]): Promise<number>;
|
|
263
|
+
beginBatch?(): void;
|
|
264
|
+
commitBatch?(tags?: string[]): Promise<CommitDelta>;
|
|
265
|
+
abortBatch?(): void;
|
|
238
266
|
}
|
|
239
267
|
export interface NodeFilter {
|
|
240
268
|
type?: NodeType;
|