@grafema/util 0.3.17 → 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.
@@ -115,6 +115,18 @@ export declare class FileOverview {
115
115
  * Complexity: Without edges O(M), with edges O(M * (S + C))
116
116
  */
117
117
  private buildClassOverview;
118
+ /**
119
+ * Detect CommonJS require() calls as imports.
120
+ * Pattern: CALL(name="require") with PASSES_ARGUMENT -> LITERAL(value="module-path")
121
+ * Complexity: O(C * A) where C = CONTAINS edges, A = PASSES_ARGUMENT edges per CALL
122
+ */
123
+ private detectCjsImports;
124
+ /**
125
+ * Detect CommonJS module.exports/exports assignments as exports.
126
+ * Pattern: PROPERTY_ACCESS with name containing "exports"
127
+ * Complexity: O(C) where C = CONTAINS edges from MODULE
128
+ */
129
+ private detectCjsExports;
118
130
  /**
119
131
  * Build VariableOverview from a VARIABLE or CONSTANT node.
120
132
  * Complexity: Without edges O(1), with edges O(1)
@@ -1 +1 @@
1
- {"version":3,"file":"FileOverview.d.ts","sourceRoot":"","sources":["../../src/core/FileOverview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,gBAAgB,CAAC;AAM/E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAaD,qBAAa,YAAY;IACX,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAEvC;;;;;;OAMG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GACvC,OAAO,CAAC,kBAAkB,CAAC;IAgE9B;;;OAGG;YACW,cAAc;IAY5B;;;OAGG;YACW,mBAAmB;IAkBjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;YACW,qBAAqB;IA2DnC;;;;OAIG;YACW,kBAAkB;IAoDhC;;;OAGG;YACW,qBAAqB;CA0BpC"}
1
+ {"version":3,"file":"FileOverview.d.ts","sourceRoot":"","sources":["../../src/core/FileOverview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,gBAAgB,CAAC;AAM/E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAaD,qBAAa,YAAY;IACX,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAEvC;;;;;;OAMG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GACvC,OAAO,CAAC,kBAAkB,CAAC;IAiG9B;;;OAGG;YACW,cAAc;IAY5B;;;OAGG;YACW,mBAAmB;IAkBjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;YACW,qBAAqB;IA2DnC;;;;OAIG;YACW,kBAAkB;IAoDhC;;;;OAIG;YACW,gBAAgB;IA+B9B;;;;OAIG;YACW,gBAAgB;IA4B9B;;;OAGG;YACW,qBAAqB;CA0BpC"}
@@ -82,11 +82,44 @@ export class FileOverview {
82
82
  functions.push(await this.buildFunctionOverview(child, includeEdges));
83
83
  break;
84
84
  case 'VARIABLE':
85
- case 'CONSTANT':
86
- variables.push(await this.buildVariableOverview(child, includeEdges));
85
+ case 'CONSTANT': {
86
+ // Check if this is a const-bound function (const foo = () => {})
87
+ if (includeEdges) {
88
+ const assignedEdges = await this.graph.getOutgoingEdges(child.id, ['ASSIGNED_FROM']);
89
+ let isFunctionBinding = false;
90
+ for (const edge of assignedEdges) {
91
+ const target = await this.graph.getNode(edge.dst);
92
+ if (target && (target.type === 'FUNCTION' || target.type === 'METHOD')) {
93
+ // Build function overview using the target function but with the const name
94
+ const fnOverview = await this.buildFunctionOverview(target, includeEdges);
95
+ fnOverview.name = child.name ?? '<anonymous>';
96
+ fnOverview.line = child.line;
97
+ fnOverview.id = child.id;
98
+ functions.push(fnOverview);
99
+ isFunctionBinding = true;
100
+ break;
101
+ }
102
+ }
103
+ if (!isFunctionBinding) {
104
+ variables.push(await this.buildVariableOverview(child, includeEdges));
105
+ }
106
+ }
107
+ else {
108
+ variables.push(await this.buildVariableOverview(child, includeEdges));
109
+ }
87
110
  break;
111
+ }
88
112
  }
89
113
  }
114
+ // CJS fallback: if no ESM imports/exports found, try CommonJS patterns
115
+ if (imports.length === 0) {
116
+ const cjsImports = await this.detectCjsImports(moduleNode.id);
117
+ imports.push(...cjsImports);
118
+ }
119
+ if (exports.length === 0) {
120
+ const cjsExports = await this.detectCjsExports(moduleNode.id);
121
+ exports.push(...cjsExports);
122
+ }
90
123
  const byLine = (a, b) => (a.line ?? 0) - (b.line ?? 0);
91
124
  classes.sort(byLine);
92
125
  functions.sort(byLine);
@@ -253,6 +286,69 @@ export class FileOverview {
253
286
  overview.methods.sort((a, b) => (a.line ?? 0) - (b.line ?? 0));
254
287
  return overview;
255
288
  }
289
+ /**
290
+ * Detect CommonJS require() calls as imports.
291
+ * Pattern: CALL(name="require") with PASSES_ARGUMENT -> LITERAL(value="module-path")
292
+ * Complexity: O(C * A) where C = CONTAINS edges, A = PASSES_ARGUMENT edges per CALL
293
+ */
294
+ async detectCjsImports(moduleId) {
295
+ const imports = [];
296
+ const containsEdges = await this.graph.getOutgoingEdges(moduleId, ['CONTAINS']);
297
+ for (const edge of containsEdges) {
298
+ const child = await this.graph.getNode(edge.dst);
299
+ if (!child || child.type !== 'CALL')
300
+ continue;
301
+ if (child.name !== 'require' && !child.name?.endsWith('.require'))
302
+ continue;
303
+ // Find the first argument (module path)
304
+ const argEdges = await this.graph.getOutgoingEdges(child.id, ['PASSES_ARGUMENT']);
305
+ let source = '<unknown>';
306
+ for (const argEdge of argEdges) {
307
+ // Check metadata for index=0
308
+ const meta = argEdge.metadata;
309
+ const idx = typeof meta === 'object' && meta !== null ? meta.index : undefined;
310
+ if (idx !== undefined && idx !== 0)
311
+ continue;
312
+ const argNode = await this.graph.getNode(argEdge.dst);
313
+ if (argNode) {
314
+ source = argNode.value ?? argNode.name ?? '<unknown>';
315
+ break;
316
+ }
317
+ }
318
+ imports.push({ id: child.id, source, specifiers: [] });
319
+ }
320
+ return imports;
321
+ }
322
+ /**
323
+ * Detect CommonJS module.exports/exports assignments as exports.
324
+ * Pattern: PROPERTY_ACCESS with name containing "exports"
325
+ * Complexity: O(C) where C = CONTAINS edges from MODULE
326
+ */
327
+ async detectCjsExports(moduleId) {
328
+ const exports = [];
329
+ const containsEdges = await this.graph.getOutgoingEdges(moduleId, ['CONTAINS']);
330
+ for (const edge of containsEdges) {
331
+ const child = await this.graph.getNode(edge.dst);
332
+ if (!child)
333
+ continue;
334
+ if (child.type === 'PROPERTY_ACCESS') {
335
+ const name = child.name ?? '';
336
+ // Match patterns like "module.exports", "exports.foo"
337
+ if (name === 'module.exports' || name === 'exports' ||
338
+ name.startsWith('exports.') || name.startsWith('module.exports.')) {
339
+ const exportName = name.includes('.exports.')
340
+ ? name.split('.exports.').pop() ?? 'default'
341
+ : 'default';
342
+ exports.push({
343
+ id: child.id,
344
+ name: exportName,
345
+ isDefault: exportName === 'default',
346
+ });
347
+ }
348
+ }
349
+ }
350
+ return exports;
351
+ }
256
352
  /**
257
353
  * Build VariableOverview from a VARIABLE or CONSTANT node.
258
354
  * Complexity: Without edges O(1), with edges O(1)
@@ -1 +1 @@
1
- {"version":3,"file":"FileOverview.js","sourceRoot":"","sources":["../../src/core/FileOverview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileOverview.js","sourceRoot":"","sources":["../../src/core/FileOverview.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.17",
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/types": "0.3.17",
39
- "@grafema/rfdb-client": "0.3.17"
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",
@@ -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
- variables.push(await this.buildVariableOverview(child, includeEdges));
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)