@grafema/util 0.3.16 → 0.3.18
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/core/FileOverview.d.ts +12 -0
- package/dist/core/FileOverview.d.ts.map +1 -1
- package/dist/core/FileOverview.js +98 -2
- package/dist/core/FileOverview.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest/generator.d.ts +67 -0
- package/dist/manifest/generator.d.ts.map +1 -0
- package/dist/manifest/generator.js +390 -0
- package/dist/manifest/generator.js.map +1 -0
- package/dist/manifest/index.d.ts +5 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/resolver.d.ts +111 -0
- package/dist/manifest/resolver.d.ts.map +1 -0
- package/dist/manifest/resolver.js +210 -0
- package/dist/manifest/resolver.js.map +1 -0
- package/dist/manifest/types.d.ts +66 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +12 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/notation/archetypes.d.ts.map +1 -1
- package/dist/notation/archetypes.js +1 -0
- package/dist/notation/archetypes.js.map +1 -1
- package/package.json +3 -3
- package/src/core/FileOverview.ts +104 -2
- package/src/index.ts +14 -0
- package/src/manifest/generator.ts +479 -0
- package/src/manifest/index.ts +16 -0
- package/src/manifest/resolver.ts +248 -0
- package/src/manifest/types.ts +101 -0
- package/src/notation/archetypes.ts +1 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ManifestResolver — resolves cross-package imports via manifest.yaml files.
|
|
3
|
+
*
|
|
4
|
+
* Given an import like `import { GraphBackend } from '@grafema/util'`,
|
|
5
|
+
* the resolver loads @grafema/util's manifest.yaml and returns the
|
|
6
|
+
* ManifestExport entry for GraphBackend (kind, effects, semanticId).
|
|
7
|
+
*
|
|
8
|
+
* This is the read-side complement to ManifestGenerator (write-side).
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* const resolver = new ManifestResolver();
|
|
12
|
+
* resolver.loadFromWorkspace('/project', ['packages/util', 'packages/types']);
|
|
13
|
+
* resolver.loadFromNodeModules('/project/node_modules');
|
|
14
|
+
*
|
|
15
|
+
* const result = resolver.resolve('@grafema/util', 'GraphBackend');
|
|
16
|
+
* // → { name: 'GraphBackend', kind: 'CLASS', effects: ['PURE'], semanticId: '...' }
|
|
17
|
+
*/
|
|
18
|
+
import { readFileSync, existsSync } from 'fs';
|
|
19
|
+
import { join } from 'path';
|
|
20
|
+
import { parse as parseYaml } from 'yaml';
|
|
21
|
+
export class ManifestResolver {
|
|
22
|
+
/** package name → loaded Manifest */
|
|
23
|
+
manifests = new Map();
|
|
24
|
+
/** package name → Map<export name → ManifestExport> (index for O(1) lookup) */
|
|
25
|
+
exportIndex = new Map();
|
|
26
|
+
/** Number of loaded manifests */
|
|
27
|
+
get size() {
|
|
28
|
+
return this.manifests.size;
|
|
29
|
+
}
|
|
30
|
+
/** All loaded package names */
|
|
31
|
+
get packages() {
|
|
32
|
+
return [...this.manifests.keys()];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Load a single manifest from a YAML file path.
|
|
36
|
+
* The package name is extracted from the manifest's purl field.
|
|
37
|
+
*/
|
|
38
|
+
loadFromFile(filePath) {
|
|
39
|
+
if (!existsSync(filePath))
|
|
40
|
+
return null;
|
|
41
|
+
try {
|
|
42
|
+
const raw = readFileSync(filePath, 'utf-8');
|
|
43
|
+
const manifest = parseYaml(raw);
|
|
44
|
+
if (!manifest?.package?.purl || !manifest.exports)
|
|
45
|
+
return null;
|
|
46
|
+
const pkgName = purlToPackageName(manifest.package.purl);
|
|
47
|
+
this.register(pkgName, manifest);
|
|
48
|
+
return manifest;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Load manifests from workspace packages.
|
|
56
|
+
* Scans each directory for manifest.yaml.
|
|
57
|
+
*
|
|
58
|
+
* @param rootDir Project root directory
|
|
59
|
+
* @param packageDirs Relative paths to package directories (e.g., ['packages/util', 'packages/types'])
|
|
60
|
+
*/
|
|
61
|
+
loadFromWorkspace(rootDir, packageDirs) {
|
|
62
|
+
let loaded = 0;
|
|
63
|
+
for (const dir of packageDirs) {
|
|
64
|
+
const manifestPath = join(rootDir, dir, 'manifest.yaml');
|
|
65
|
+
if (this.loadFromFile(manifestPath))
|
|
66
|
+
loaded++;
|
|
67
|
+
}
|
|
68
|
+
return loaded;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Auto-discover and load manifests from node_modules.
|
|
72
|
+
* Scans node_modules for packages containing manifest.yaml.
|
|
73
|
+
* Optionally scoped to specific package names.
|
|
74
|
+
*
|
|
75
|
+
* @param nodeModulesDir Path to node_modules directory
|
|
76
|
+
* @param packageNames Optional list of package names to load (e.g., ['@grafema/util']). If omitted, scans all.
|
|
77
|
+
*/
|
|
78
|
+
loadFromNodeModules(nodeModulesDir, packageNames) {
|
|
79
|
+
if (!existsSync(nodeModulesDir))
|
|
80
|
+
return 0;
|
|
81
|
+
let loaded = 0;
|
|
82
|
+
if (packageNames) {
|
|
83
|
+
for (const name of packageNames) {
|
|
84
|
+
const manifestPath = join(nodeModulesDir, name, 'manifest.yaml');
|
|
85
|
+
if (this.loadFromFile(manifestPath))
|
|
86
|
+
loaded++;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return loaded;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Register a manifest directly (e.g., from in-memory generation).
|
|
93
|
+
*/
|
|
94
|
+
register(packageName, manifest) {
|
|
95
|
+
this.manifests.set(packageName, manifest);
|
|
96
|
+
// Build export index
|
|
97
|
+
const index = new Map();
|
|
98
|
+
for (const exp of manifest.exports) {
|
|
99
|
+
index.set(exp.name, exp);
|
|
100
|
+
}
|
|
101
|
+
this.exportIndex.set(packageName, index);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Resolve an import: given package name and symbol, return the export info.
|
|
105
|
+
*
|
|
106
|
+
* @param source Import source (e.g., '@grafema/util', 'graphql-yoga')
|
|
107
|
+
* @param symbolName Exported symbol name (e.g., 'GraphBackend')
|
|
108
|
+
* @returns ResolveResult or null if not found
|
|
109
|
+
*/
|
|
110
|
+
resolve(source, symbolName) {
|
|
111
|
+
const index = this.exportIndex.get(source);
|
|
112
|
+
if (!index)
|
|
113
|
+
return null;
|
|
114
|
+
const exp = index.get(symbolName);
|
|
115
|
+
if (!exp)
|
|
116
|
+
return null;
|
|
117
|
+
const manifest = this.manifests.get(source);
|
|
118
|
+
return {
|
|
119
|
+
export: exp,
|
|
120
|
+
packagePurl: manifest.package.purl,
|
|
121
|
+
confidence: manifest.confidence,
|
|
122
|
+
hasGraph: manifest.capabilities.has_graph,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Resolve all symbols from a specific import source.
|
|
127
|
+
* Returns a map of symbol name → ManifestExport for all known exports.
|
|
128
|
+
*
|
|
129
|
+
* Useful for: `import * as utils from '@grafema/util'`
|
|
130
|
+
*/
|
|
131
|
+
resolveAll(source) {
|
|
132
|
+
return this.exportIndex.get(source) ?? null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the full manifest for a package.
|
|
136
|
+
*/
|
|
137
|
+
getManifest(packageName) {
|
|
138
|
+
return this.manifests.get(packageName) ?? null;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Check if a package has a loaded manifest.
|
|
142
|
+
*/
|
|
143
|
+
has(packageName) {
|
|
144
|
+
return this.manifests.has(packageName);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get the effects for an imported symbol.
|
|
148
|
+
* Shorthand for resolve() when you only need effects.
|
|
149
|
+
*/
|
|
150
|
+
getEffects(source, symbolName) {
|
|
151
|
+
return this.resolve(source, symbolName)?.export.effects ?? null;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Build a dependency graph from loaded manifests.
|
|
155
|
+
* Returns: Map<packageName → Set<dependencyPackageName>>
|
|
156
|
+
*/
|
|
157
|
+
buildDependencyGraph() {
|
|
158
|
+
const deps = new Map();
|
|
159
|
+
for (const [name, manifest] of this.manifests) {
|
|
160
|
+
const pkgDeps = new Set();
|
|
161
|
+
for (const imp of manifest.imports) {
|
|
162
|
+
const depName = purlToPackageName(imp.purl);
|
|
163
|
+
if (depName && this.manifests.has(depName)) {
|
|
164
|
+
pkgDeps.add(depName);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
deps.set(name, pkgDeps);
|
|
168
|
+
}
|
|
169
|
+
return deps;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get summary stats for all loaded manifests.
|
|
173
|
+
*/
|
|
174
|
+
getSummary() {
|
|
175
|
+
const summaries = [];
|
|
176
|
+
for (const [name, manifest] of this.manifests) {
|
|
177
|
+
summaries.push({
|
|
178
|
+
packageName: name,
|
|
179
|
+
purl: manifest.package.purl,
|
|
180
|
+
totalExports: manifest.exports.length,
|
|
181
|
+
totalImports: manifest.imports.length,
|
|
182
|
+
confidence: manifest.confidence,
|
|
183
|
+
hasGraph: manifest.capabilities.has_graph,
|
|
184
|
+
exportsByKind: countByKind(manifest.exports),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
return summaries.sort((a, b) => a.packageName.localeCompare(b.packageName));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// ── Helpers ──────────────────────────────────────────────
|
|
191
|
+
/** Extract npm package name from a purl like "pkg:npm/@grafema/util@0.2.0" */
|
|
192
|
+
function purlToPackageName(purl) {
|
|
193
|
+
// pkg:npm/@scope/name@version or pkg:npm/name@version
|
|
194
|
+
const match = purl.match(/^pkg:npm\/(.+?)(?:@[\d.]+.*)?$/);
|
|
195
|
+
if (!match)
|
|
196
|
+
return purl;
|
|
197
|
+
const name = match[1];
|
|
198
|
+
// For node builtins like "pkg:npm/node@*#fs", skip
|
|
199
|
+
if (name === 'node')
|
|
200
|
+
return '';
|
|
201
|
+
return name;
|
|
202
|
+
}
|
|
203
|
+
function countByKind(exports) {
|
|
204
|
+
const counts = {};
|
|
205
|
+
for (const e of exports) {
|
|
206
|
+
counts[e.kind] = (counts[e.kind] || 0) + 1;
|
|
207
|
+
}
|
|
208
|
+
return counts;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/manifest/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest format types for Grafema federation.
|
|
3
|
+
*
|
|
4
|
+
* A manifest describes a package's export surface: what it exports,
|
|
5
|
+
* what effects each export has, and what it imports.
|
|
6
|
+
*
|
|
7
|
+
* Manifest is the boundary contract between analyzed packages.
|
|
8
|
+
* It's polyglot (purl URIs), versioned (schema + analyzer),
|
|
9
|
+
* and layered (CDN < auto-generated < developer-authored).
|
|
10
|
+
*/
|
|
11
|
+
export type EffectType = 'PURE' | 'MUTATION' | 'IO' | 'THROW' | 'ASYNC' | 'NONDETERMINISTIC' | 'UNKNOWN';
|
|
12
|
+
export type FlowType = 'IN' | 'OUT' | 'PIPE' | 'SINK';
|
|
13
|
+
export type ExportKind = 'FUNCTION' | 'CLASS' | 'VARIABLE' | 'TYPE' | 'CONSTANT' | 'INTERFACE';
|
|
14
|
+
export interface ManifestParam {
|
|
15
|
+
name: string;
|
|
16
|
+
flow: FlowType;
|
|
17
|
+
}
|
|
18
|
+
export interface ManifestExport {
|
|
19
|
+
name: string;
|
|
20
|
+
kind: ExportKind;
|
|
21
|
+
semanticId: string;
|
|
22
|
+
effects: EffectType[];
|
|
23
|
+
params?: ManifestParam[];
|
|
24
|
+
returns?: {
|
|
25
|
+
flow: FlowType;
|
|
26
|
+
};
|
|
27
|
+
fields?: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface ManifestImport {
|
|
30
|
+
purl: string;
|
|
31
|
+
symbols: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface ManifestCapabilities {
|
|
34
|
+
total_exports: number;
|
|
35
|
+
total_internal_symbols: number;
|
|
36
|
+
has_graph: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface ManifestPackage {
|
|
39
|
+
purl: string;
|
|
40
|
+
checksum?: string;
|
|
41
|
+
source_type: 'source' | 'compiled_js' | 'minified' | 'dts_only';
|
|
42
|
+
}
|
|
43
|
+
export interface ManifestAccess {
|
|
44
|
+
local?: string;
|
|
45
|
+
remote?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ManifestLanguageSpecific {
|
|
48
|
+
module_system: 'esm' | 'cjs' | 'dual';
|
|
49
|
+
entry_points?: Record<string, string>;
|
|
50
|
+
typescript_declarations?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface Manifest {
|
|
53
|
+
schema_version: number;
|
|
54
|
+
analyzer_version: string;
|
|
55
|
+
authored: boolean;
|
|
56
|
+
confidence: number;
|
|
57
|
+
generated: string;
|
|
58
|
+
package: ManifestPackage;
|
|
59
|
+
exports: ManifestExport[];
|
|
60
|
+
imports: ManifestImport[];
|
|
61
|
+
capabilities: ManifestCapabilities;
|
|
62
|
+
access?: ManifestAccess;
|
|
63
|
+
language?: string;
|
|
64
|
+
language_specific?: ManifestLanguageSpecific;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manifest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,UAAU,GACV,IAAI,GACJ,OAAO,GACP,OAAO,GACP,kBAAkB,GAClB,SAAS,CAAC;AAId,MAAM,MAAM,QAAQ,GAChB,IAAI,GACJ,KAAK,GACL,MAAM,GACN,MAAM,CAAC;AAIX,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,OAAO,GACP,UAAU,GACV,MAAM,GACN,UAAU,GACV,WAAW,CAAC;AAIhB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;CACjE;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest format types for Grafema federation.
|
|
3
|
+
*
|
|
4
|
+
* A manifest describes a package's export surface: what it exports,
|
|
5
|
+
* what effects each export has, and what it imports.
|
|
6
|
+
*
|
|
7
|
+
* Manifest is the boundary contract between analyzed packages.
|
|
8
|
+
* It's polyglot (purl URIs), versioned (schema + analyzer),
|
|
9
|
+
* and layered (CDN < auto-generated < developer-authored).
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/manifest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archetypes.d.ts","sourceRoot":"","sources":["../../src/notation/archetypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,YAAY,CAAC;AAuBzD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"archetypes.d.ts","sourceRoot":"","sources":["../../src/notation/archetypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,YAAY,CAAC;AAuBzD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAsG1D,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAOxD;AAoBD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC"}
|
|
@@ -128,6 +128,7 @@ export const EDGE_ARCHETYPE_MAP = {
|
|
|
128
128
|
AFFECTS: m('governs', '|=', 'affects'),
|
|
129
129
|
MONITORED_BY: m('governs', '|=', 'monitored by'),
|
|
130
130
|
MEASURED_BY: m('governs', '|=', 'measured by'),
|
|
131
|
+
OBSERVES: m('governs', '|=', 'observes'),
|
|
131
132
|
PROVISIONED_BY: m('governs', '|=', 'provisioned by'),
|
|
132
133
|
REGISTERS_VIEW: m('governs', '|=', 'registers view'),
|
|
133
134
|
// === Fallback ===
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archetypes.js","sourceRoot":"","sources":["../../src/notation/archetypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"archetypes.js","sourceRoot":"","sources":["../../src/notation/archetypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafema/util",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.18",
|
|
4
4
|
"description": "Query, config, and guarantee utilities for Grafema",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"ajv": "^8.17.1",
|
|
36
36
|
"minimatch": "^10.1.1",
|
|
37
37
|
"yaml": "^2.8.2",
|
|
38
|
-
"@grafema/rfdb-client": "0.3.
|
|
39
|
-
"@grafema/types": "0.3.
|
|
38
|
+
"@grafema/rfdb-client": "0.3.18",
|
|
39
|
+
"@grafema/types": "0.3.18"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "^25.0.8",
|
package/src/core/FileOverview.ts
CHANGED
|
@@ -144,12 +144,45 @@ export class FileOverview {
|
|
|
144
144
|
functions.push(await this.buildFunctionOverview(child, includeEdges));
|
|
145
145
|
break;
|
|
146
146
|
case 'VARIABLE':
|
|
147
|
-
case 'CONSTANT':
|
|
148
|
-
|
|
147
|
+
case 'CONSTANT': {
|
|
148
|
+
// Check if this is a const-bound function (const foo = () => {})
|
|
149
|
+
if (includeEdges) {
|
|
150
|
+
const assignedEdges = await this.graph.getOutgoingEdges(child.id, ['ASSIGNED_FROM']);
|
|
151
|
+
let isFunctionBinding = false;
|
|
152
|
+
for (const edge of assignedEdges) {
|
|
153
|
+
const target = await this.graph.getNode(edge.dst);
|
|
154
|
+
if (target && (target.type === 'FUNCTION' || target.type === 'METHOD')) {
|
|
155
|
+
// Build function overview using the target function but with the const name
|
|
156
|
+
const fnOverview = await this.buildFunctionOverview(target, includeEdges);
|
|
157
|
+
fnOverview.name = child.name ?? '<anonymous>';
|
|
158
|
+
fnOverview.line = child.line as number | undefined;
|
|
159
|
+
fnOverview.id = child.id;
|
|
160
|
+
functions.push(fnOverview);
|
|
161
|
+
isFunctionBinding = true;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!isFunctionBinding) {
|
|
166
|
+
variables.push(await this.buildVariableOverview(child, includeEdges));
|
|
167
|
+
}
|
|
168
|
+
} else {
|
|
169
|
+
variables.push(await this.buildVariableOverview(child, includeEdges));
|
|
170
|
+
}
|
|
149
171
|
break;
|
|
172
|
+
}
|
|
150
173
|
}
|
|
151
174
|
}
|
|
152
175
|
|
|
176
|
+
// CJS fallback: if no ESM imports/exports found, try CommonJS patterns
|
|
177
|
+
if (imports.length === 0) {
|
|
178
|
+
const cjsImports = await this.detectCjsImports(moduleNode.id);
|
|
179
|
+
imports.push(...cjsImports);
|
|
180
|
+
}
|
|
181
|
+
if (exports.length === 0) {
|
|
182
|
+
const cjsExports = await this.detectCjsExports(moduleNode.id);
|
|
183
|
+
exports.push(...cjsExports);
|
|
184
|
+
}
|
|
185
|
+
|
|
153
186
|
const byLine = (a: { line?: number }, b: { line?: number }) =>
|
|
154
187
|
(a.line ?? 0) - (b.line ?? 0);
|
|
155
188
|
|
|
@@ -364,6 +397,75 @@ export class FileOverview {
|
|
|
364
397
|
return overview;
|
|
365
398
|
}
|
|
366
399
|
|
|
400
|
+
/**
|
|
401
|
+
* Detect CommonJS require() calls as imports.
|
|
402
|
+
* Pattern: CALL(name="require") with PASSES_ARGUMENT -> LITERAL(value="module-path")
|
|
403
|
+
* Complexity: O(C * A) where C = CONTAINS edges, A = PASSES_ARGUMENT edges per CALL
|
|
404
|
+
*/
|
|
405
|
+
private async detectCjsImports(moduleId: string): Promise<ImportInfo[]> {
|
|
406
|
+
const imports: ImportInfo[] = [];
|
|
407
|
+
const containsEdges = await this.graph.getOutgoingEdges(moduleId, ['CONTAINS']);
|
|
408
|
+
|
|
409
|
+
for (const edge of containsEdges) {
|
|
410
|
+
const child = await this.graph.getNode(edge.dst);
|
|
411
|
+
if (!child || child.type !== 'CALL') continue;
|
|
412
|
+
if (child.name !== 'require' && !child.name?.endsWith('.require')) continue;
|
|
413
|
+
|
|
414
|
+
// Find the first argument (module path)
|
|
415
|
+
const argEdges = await this.graph.getOutgoingEdges(child.id, ['PASSES_ARGUMENT']);
|
|
416
|
+
let source = '<unknown>';
|
|
417
|
+
for (const argEdge of argEdges) {
|
|
418
|
+
// Check metadata for index=0
|
|
419
|
+
const meta = argEdge.metadata;
|
|
420
|
+
const idx = typeof meta === 'object' && meta !== null ? (meta as Record<string, unknown>).index : undefined;
|
|
421
|
+
if (idx !== undefined && idx !== 0) continue;
|
|
422
|
+
|
|
423
|
+
const argNode = await this.graph.getNode(argEdge.dst);
|
|
424
|
+
if (argNode) {
|
|
425
|
+
source = (argNode.value as string) ?? argNode.name ?? '<unknown>';
|
|
426
|
+
break;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
imports.push({ id: child.id, source, specifiers: [] });
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
return imports;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Detect CommonJS module.exports/exports assignments as exports.
|
|
438
|
+
* Pattern: PROPERTY_ACCESS with name containing "exports"
|
|
439
|
+
* Complexity: O(C) where C = CONTAINS edges from MODULE
|
|
440
|
+
*/
|
|
441
|
+
private async detectCjsExports(moduleId: string): Promise<ExportInfo[]> {
|
|
442
|
+
const exports: ExportInfo[] = [];
|
|
443
|
+
const containsEdges = await this.graph.getOutgoingEdges(moduleId, ['CONTAINS']);
|
|
444
|
+
|
|
445
|
+
for (const edge of containsEdges) {
|
|
446
|
+
const child = await this.graph.getNode(edge.dst);
|
|
447
|
+
if (!child) continue;
|
|
448
|
+
|
|
449
|
+
if (child.type === 'PROPERTY_ACCESS') {
|
|
450
|
+
const name = child.name ?? '';
|
|
451
|
+
// Match patterns like "module.exports", "exports.foo"
|
|
452
|
+
if (name === 'module.exports' || name === 'exports' ||
|
|
453
|
+
name.startsWith('exports.') || name.startsWith('module.exports.')) {
|
|
454
|
+
const exportName = name.includes('.exports.')
|
|
455
|
+
? name.split('.exports.').pop() ?? 'default'
|
|
456
|
+
: 'default';
|
|
457
|
+
exports.push({
|
|
458
|
+
id: child.id,
|
|
459
|
+
name: exportName,
|
|
460
|
+
isDefault: exportName === 'default',
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
return exports;
|
|
467
|
+
}
|
|
468
|
+
|
|
367
469
|
/**
|
|
368
470
|
* Build VariableOverview from a VARIABLE or CONSTANT node.
|
|
369
471
|
* Complexity: Without edges O(1), with edges O(1)
|
package/src/index.ts
CHANGED
|
@@ -257,5 +257,19 @@ export type {
|
|
|
257
257
|
TraceNarrativeOptions,
|
|
258
258
|
} from './notation/index.js';
|
|
259
259
|
|
|
260
|
+
// Manifest generation & resolution (federation)
|
|
261
|
+
export { ManifestGenerator, ManifestResolver } from './manifest/index.js';
|
|
262
|
+
export type {
|
|
263
|
+
Manifest,
|
|
264
|
+
ManifestExport,
|
|
265
|
+
ManifestImport,
|
|
266
|
+
ManifestParam,
|
|
267
|
+
EffectType,
|
|
268
|
+
FlowType,
|
|
269
|
+
ExportKind,
|
|
270
|
+
ResolveResult,
|
|
271
|
+
ManifestSummary,
|
|
272
|
+
} from './manifest/index.js';
|
|
273
|
+
|
|
260
274
|
// Re-export types for convenience
|
|
261
275
|
export type * from '@grafema/types';
|