@grafema/types 0.2.4-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 +1 -9
- package/dist/branded.js.map +1 -0
- package/dist/edges.d.ts +16 -0
- package/dist/edges.d.ts.map +1 -1
- package/dist/edges.js +21 -0
- package/dist/edges.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -0
- 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 +53 -3
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +10 -1
- package/dist/nodes.js.map +1 -0
- package/dist/plugins.d.ts +54 -12
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +1 -0
- package/dist/plugins.js.map +1 -0
- 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 +179 -1
- package/dist/rfdb.d.ts.map +1 -1
- package/dist/rfdb.js +1 -0
- package/dist/rfdb.js.map +1 -0
- 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 +22 -0
- package/src/index.ts +12 -1
- package/src/infrastructure.ts +262 -0
- package/src/nodes.ts +75 -3
- package/src/plugins.ts +63 -14
- package/src/resources.ts +58 -0
- package/src/rfdb.ts +230 -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,12 +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
|
-
}
|
|
26
|
+
//# sourceMappingURL=branded.js.map
|
|
@@ -0,0 +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"}
|
package/dist/edges.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ 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 YIELDS: "YIELDS";
|
|
25
|
+
readonly DELEGATES_TO: "DELEGATES_TO";
|
|
24
26
|
readonly EXTENDS: "EXTENDS";
|
|
25
27
|
readonly IMPLEMENTS: "IMPLEMENTS";
|
|
26
28
|
readonly INSTANCE_OF: "INSTANCE_OF";
|
|
@@ -54,9 +56,23 @@ export declare const EDGE_TYPE: {
|
|
|
54
56
|
readonly HTTP_RECEIVES: "HTTP_RECEIVES";
|
|
55
57
|
readonly REGISTERS_VIEW: "REGISTERS_VIEW";
|
|
56
58
|
readonly THROWS: "THROWS";
|
|
59
|
+
readonly REJECTS: "REJECTS";
|
|
60
|
+
readonly CATCHES_FROM: "CATCHES_FROM";
|
|
57
61
|
readonly GOVERNS: "GOVERNS";
|
|
58
62
|
readonly VIOLATES: "VIOLATES";
|
|
59
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";
|
|
60
76
|
readonly UNKNOWN: "UNKNOWN";
|
|
61
77
|
};
|
|
62
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
|
@@ -28,6 +28,8 @@ export const EDGE_TYPE = {
|
|
|
28
28
|
PASSES_ARGUMENT: 'PASSES_ARGUMENT',
|
|
29
29
|
RECEIVES_ARGUMENT: 'RECEIVES_ARGUMENT',
|
|
30
30
|
RETURNS: 'RETURNS',
|
|
31
|
+
YIELDS: 'YIELDS',
|
|
32
|
+
DELEGATES_TO: 'DELEGATES_TO',
|
|
31
33
|
// Inheritance
|
|
32
34
|
EXTENDS: 'EXTENDS',
|
|
33
35
|
IMPLEMENTS: 'IMPLEMENTS',
|
|
@@ -70,11 +72,30 @@ export const EDGE_TYPE = {
|
|
|
70
72
|
REGISTERS_VIEW: 'REGISTERS_VIEW',
|
|
71
73
|
// Errors
|
|
72
74
|
THROWS: 'THROWS',
|
|
75
|
+
// REG-311: Async error flow
|
|
76
|
+
REJECTS: 'REJECTS', // FUNCTION -> CLASS (error class it can reject)
|
|
77
|
+
CATCHES_FROM: 'CATCHES_FROM', // CATCH_BLOCK -> error sources in TRY_BLOCK
|
|
73
78
|
// Guarantees/Invariants
|
|
74
79
|
GOVERNS: 'GOVERNS',
|
|
75
80
|
VIOLATES: 'VIOLATES',
|
|
76
81
|
// Issues
|
|
77
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',
|
|
78
98
|
// Unknown/fallback
|
|
79
99
|
UNKNOWN: 'UNKNOWN',
|
|
80
100
|
};
|
|
101
|
+
//# sourceMappingURL=edges.js.map
|
|
@@ -0,0 +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,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,11 +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';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
|
@@ -14,6 +14,7 @@ export declare const NODE_TYPE: {
|
|
|
14
14
|
readonly IMPORT: "IMPORT";
|
|
15
15
|
readonly EXPORT: "EXPORT";
|
|
16
16
|
readonly CALL: "CALL";
|
|
17
|
+
readonly PROPERTY_ACCESS: "PROPERTY_ACCESS";
|
|
17
18
|
readonly PROJECT: "PROJECT";
|
|
18
19
|
readonly SERVICE: "SERVICE";
|
|
19
20
|
readonly FILE: "FILE";
|
|
@@ -45,16 +46,21 @@ export declare const NAMESPACED_TYPE: {
|
|
|
45
46
|
readonly FS_OPERATION: "fs:operation";
|
|
46
47
|
readonly NET_REQUEST: "net:request";
|
|
47
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";
|
|
48
53
|
readonly EVENT_LISTENER: "event:listener";
|
|
49
54
|
readonly EVENT_EMIT: "event:emit";
|
|
55
|
+
readonly GRAFEMA_PLUGIN: "grafema:plugin";
|
|
50
56
|
};
|
|
51
57
|
export type NamespacedNodeType = typeof NAMESPACED_TYPE[keyof typeof NAMESPACED_TYPE];
|
|
52
58
|
export type NodeType = BaseNodeType | NamespacedNodeType | string;
|
|
53
59
|
export interface BaseNodeRecord {
|
|
54
60
|
id: string;
|
|
55
61
|
type: NodeType;
|
|
56
|
-
name
|
|
57
|
-
file
|
|
62
|
+
name?: string;
|
|
63
|
+
file?: string;
|
|
58
64
|
exported?: boolean;
|
|
59
65
|
line?: number;
|
|
60
66
|
column?: number;
|
|
@@ -75,6 +81,7 @@ export interface FunctionNodeRecord extends BaseNodeRecord {
|
|
|
75
81
|
returnType?: string;
|
|
76
82
|
signature?: string;
|
|
77
83
|
jsdocSummary?: string;
|
|
84
|
+
start?: number;
|
|
78
85
|
}
|
|
79
86
|
export interface ClassNodeRecord extends BaseNodeRecord {
|
|
80
87
|
type: 'CLASS';
|
|
@@ -93,6 +100,8 @@ export interface ModuleNodeRecord extends BaseNodeRecord {
|
|
|
93
100
|
relativePath: string;
|
|
94
101
|
contentHash: string;
|
|
95
102
|
language?: string;
|
|
103
|
+
/** REG-297: true if module uses top-level await */
|
|
104
|
+
hasTopLevelAwait?: boolean;
|
|
96
105
|
}
|
|
97
106
|
export interface ImportNodeRecord extends BaseNodeRecord {
|
|
98
107
|
type: 'IMPORT';
|
|
@@ -125,6 +134,12 @@ export interface CallNodeRecord extends BaseNodeRecord {
|
|
|
125
134
|
isMethodCall?: boolean;
|
|
126
135
|
objectName?: string;
|
|
127
136
|
}
|
|
137
|
+
export interface PropertyAccessNodeRecord extends BaseNodeRecord {
|
|
138
|
+
type: 'PROPERTY_ACCESS';
|
|
139
|
+
objectName: string;
|
|
140
|
+
optional?: boolean;
|
|
141
|
+
computed?: boolean;
|
|
142
|
+
}
|
|
128
143
|
export interface ServiceNodeRecord extends BaseNodeRecord {
|
|
129
144
|
type: 'SERVICE';
|
|
130
145
|
projectPath: string;
|
|
@@ -198,7 +213,42 @@ export interface GuaranteeNodeRecord extends BaseNodeRecord {
|
|
|
198
213
|
createdAt?: number;
|
|
199
214
|
updatedAt?: number;
|
|
200
215
|
}
|
|
201
|
-
export
|
|
216
|
+
export interface PluginNodeRecord extends BaseNodeRecord {
|
|
217
|
+
type: 'grafema:plugin';
|
|
218
|
+
phase: string;
|
|
219
|
+
priority: number;
|
|
220
|
+
builtin: boolean;
|
|
221
|
+
createsNodes: string[];
|
|
222
|
+
createsEdges: string[];
|
|
223
|
+
dependencies: string[];
|
|
224
|
+
}
|
|
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;
|
|
202
252
|
export declare function isNamespacedType(nodeType: string): boolean;
|
|
203
253
|
export declare function getNamespace(nodeType: string): string | null;
|
|
204
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
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.js
CHANGED
|
@@ -18,6 +18,7 @@ export const NODE_TYPE = {
|
|
|
18
18
|
EXPORT: 'EXPORT',
|
|
19
19
|
// Call graph
|
|
20
20
|
CALL: 'CALL',
|
|
21
|
+
PROPERTY_ACCESS: 'PROPERTY_ACCESS',
|
|
21
22
|
// Project structure
|
|
22
23
|
PROJECT: 'PROJECT',
|
|
23
24
|
SERVICE: 'SERVICE',
|
|
@@ -60,9 +61,16 @@ export const NAMESPACED_TYPE = {
|
|
|
60
61
|
// Network
|
|
61
62
|
NET_REQUEST: 'net:request',
|
|
62
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',
|
|
63
69
|
// Events
|
|
64
70
|
EVENT_LISTENER: 'event:listener',
|
|
65
71
|
EVENT_EMIT: 'event:emit',
|
|
72
|
+
// Grafema internal (self-describing pipeline)
|
|
73
|
+
GRAFEMA_PLUGIN: 'grafema:plugin',
|
|
66
74
|
};
|
|
67
75
|
// === HELPER FUNCTIONS ===
|
|
68
76
|
export function isNamespacedType(nodeType) {
|
|
@@ -88,5 +96,6 @@ export function isSideEffectType(nodeType) {
|
|
|
88
96
|
if (nodeType === NODE_TYPE.SIDE_EFFECT)
|
|
89
97
|
return true;
|
|
90
98
|
const ns = getNamespace(nodeType);
|
|
91
|
-
return ns === 'db' || ns === 'fs' || ns === 'net';
|
|
99
|
+
return ns === 'db' || ns === 'fs' || ns === 'net' || ns === 'os';
|
|
92
100
|
}
|
|
101
|
+
//# sourceMappingURL=nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|