@optave/codegraph 3.9.0 → 3.9.2
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 +12 -13
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +78 -48
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.js +15 -18
- package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
- package/dist/cli/commands/batch.d.ts.map +1 -1
- package/dist/cli/commands/batch.js +5 -17
- package/dist/cli/commands/batch.js.map +1 -1
- package/dist/cli/commands/structure.d.ts.map +1 -1
- package/dist/cli/commands/structure.js +18 -1
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/db/connection.d.ts +3 -0
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +24 -6
- package/dist/db/connection.js.map +1 -1
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/repository/base.d.ts +35 -0
- package/dist/db/repository/base.d.ts.map +1 -1
- package/dist/db/repository/base.js +8 -0
- package/dist/db/repository/base.js.map +1 -1
- package/dist/db/repository/index.d.ts +1 -0
- package/dist/db/repository/index.d.ts.map +1 -1
- package/dist/db/repository/index.js.map +1 -1
- package/dist/db/repository/native-repository.d.ts +7 -1
- package/dist/db/repository/native-repository.d.ts.map +1 -1
- package/dist/db/repository/native-repository.js +46 -1
- package/dist/db/repository/native-repository.js.map +1 -1
- package/dist/domain/analysis/context.d.ts.map +1 -1
- package/dist/domain/analysis/context.js +5 -15
- package/dist/domain/analysis/context.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts +6 -33
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +18 -16
- package/dist/domain/analysis/dependencies.js.map +1 -1
- package/dist/domain/analysis/fn-impact.js +2 -2
- package/dist/domain/analysis/fn-impact.js.map +1 -1
- package/dist/domain/analysis/implementations.d.ts.map +1 -1
- package/dist/domain/analysis/implementations.js +3 -13
- package/dist/domain/analysis/implementations.js.map +1 -1
- package/dist/domain/graph/builder/context.d.ts +4 -0
- package/dist/domain/graph/builder/context.d.ts.map +1 -1
- package/dist/domain/graph/builder/context.js +4 -0
- package/dist/domain/graph/builder/context.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
- package/dist/domain/graph/builder/incremental.js +18 -0
- package/dist/domain/graph/builder/incremental.js.map +1 -1
- package/dist/domain/graph/builder/native-db-proxy.d.ts +24 -0
- package/dist/domain/graph/builder/native-db-proxy.d.ts.map +1 -0
- package/dist/domain/graph/builder/native-db-proxy.js +87 -0
- package/dist/domain/graph/builder/native-db-proxy.js.map +1 -0
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +410 -349
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +44 -4
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.js +2 -2
- package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +6 -28
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +1 -1
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.js +16 -12
- package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +21 -26
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +99 -95
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +7 -2
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/queries.d.ts +1 -1
- package/dist/domain/queries.d.ts.map +1 -1
- package/dist/domain/queries.js +1 -1
- package/dist/domain/queries.js.map +1 -1
- package/dist/extractors/go.js +53 -35
- package/dist/extractors/go.js.map +1 -1
- package/dist/extractors/javascript.js +66 -27
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/features/audit.d.ts.map +1 -1
- package/dist/features/audit.js +3 -2
- package/dist/features/audit.js.map +1 -1
- package/dist/features/boundaries.d.ts.map +1 -1
- package/dist/features/boundaries.js +3 -5
- package/dist/features/boundaries.js.map +1 -1
- package/dist/features/branch-compare.d.ts.map +1 -1
- package/dist/features/branch-compare.js +2 -1
- package/dist/features/branch-compare.js.map +1 -1
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +78 -58
- package/dist/features/complexity.js.map +1 -1
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +109 -118
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/flow.d.ts.map +1 -1
- package/dist/features/flow.js +2 -1
- package/dist/features/flow.js.map +1 -1
- package/dist/features/manifesto.d.ts.map +1 -1
- package/dist/features/manifesto.js +15 -1
- package/dist/features/manifesto.js.map +1 -1
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +147 -97
- package/dist/features/structure.js.map +1 -1
- package/dist/graph/algorithms/louvain.d.ts.map +1 -1
- package/dist/graph/algorithms/louvain.js +4 -2
- package/dist/graph/algorithms/louvain.js.map +1 -1
- package/dist/graph/classifiers/roles.d.ts +2 -0
- package/dist/graph/classifiers/roles.d.ts.map +1 -1
- package/dist/graph/classifiers/roles.js +13 -5
- package/dist/graph/classifiers/roles.js.map +1 -1
- package/dist/infrastructure/config.d.ts +1 -0
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +1 -0
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/presentation/batch.d.ts.map +1 -1
- package/dist/presentation/batch.js +1 -0
- package/dist/presentation/batch.js.map +1 -1
- package/dist/presentation/communities.d.ts.map +1 -1
- package/dist/presentation/communities.js +38 -34
- package/dist/presentation/communities.js.map +1 -1
- package/dist/presentation/manifesto.d.ts.map +1 -1
- package/dist/presentation/manifesto.js +31 -33
- package/dist/presentation/manifesto.js.map +1 -1
- package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
- package/dist/presentation/queries-cli/inspect.js +47 -46
- package/dist/presentation/queries-cli/inspect.js.map +1 -1
- package/dist/presentation/structure.d.ts +1 -1
- package/dist/presentation/structure.d.ts.map +1 -1
- package/dist/presentation/structure.js +1 -1
- package/dist/presentation/structure.js.map +1 -1
- package/dist/shared/file-utils.d.ts.map +1 -1
- package/dist/shared/file-utils.js +94 -72
- package/dist/shared/file-utils.js.map +1 -1
- package/dist/shared/normalize.d.ts +12 -0
- package/dist/shared/normalize.d.ts.map +1 -1
- package/dist/shared/normalize.js +4 -0
- package/dist/shared/normalize.js.map +1 -1
- package/dist/types.d.ts +82 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/ast-analysis/engine.ts +99 -55
- package/src/ast-analysis/visitors/ast-store-visitor.ts +19 -21
- package/src/cli/commands/batch.ts +5 -26
- package/src/cli/commands/structure.ts +21 -1
- package/src/db/connection.ts +26 -7
- package/src/db/index.ts +2 -0
- package/src/db/repository/base.ts +43 -0
- package/src/db/repository/index.ts +1 -0
- package/src/db/repository/native-repository.ts +67 -1
- package/src/domain/analysis/context.ts +5 -15
- package/src/domain/analysis/dependencies.ts +19 -16
- package/src/domain/analysis/fn-impact.ts +2 -2
- package/src/domain/analysis/implementations.ts +3 -13
- package/src/domain/graph/builder/context.ts +4 -0
- package/src/domain/graph/builder/incremental.ts +21 -0
- package/src/domain/graph/builder/native-db-proxy.ts +98 -0
- package/src/domain/graph/builder/pipeline.ts +514 -416
- package/src/domain/graph/builder/stages/build-edges.ts +45 -3
- package/src/domain/graph/builder/stages/build-structure.ts +2 -2
- package/src/domain/graph/builder/stages/detect-changes.ts +11 -33
- package/src/domain/graph/builder/stages/finalize.ts +1 -1
- package/src/domain/graph/builder/stages/insert-nodes.ts +17 -14
- package/src/domain/graph/builder/stages/resolve-imports.ts +22 -23
- package/src/domain/graph/watcher.ts +118 -98
- package/src/domain/parser.ts +8 -2
- package/src/domain/queries.ts +1 -1
- package/src/extractors/go.ts +57 -32
- package/src/extractors/javascript.ts +67 -27
- package/src/features/audit.ts +3 -2
- package/src/features/boundaries.ts +3 -5
- package/src/features/branch-compare.ts +2 -3
- package/src/features/complexity.ts +94 -58
- package/src/features/dataflow.ts +153 -132
- package/src/features/flow.ts +2 -1
- package/src/features/manifesto.ts +15 -1
- package/src/features/structure.ts +167 -95
- package/src/graph/algorithms/louvain.ts +5 -2
- package/src/graph/classifiers/roles.ts +14 -5
- package/src/infrastructure/config.ts +1 -0
- package/src/presentation/batch.ts +1 -0
- package/src/presentation/communities.ts +44 -39
- package/src/presentation/manifesto.ts +35 -38
- package/src/presentation/queries-cli/inspect.ts +48 -46
- package/src/presentation/structure.ts +2 -2
- package/src/shared/file-utils.ts +116 -77
- package/src/shared/normalize.ts +10 -0
- package/src/types.ts +86 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/presentation/structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;AAE7D,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAsB7D;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAe3D;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/presentation/structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;AAE7D,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAsB7D;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAe3D;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAiB3E"}
|
|
@@ -38,7 +38,7 @@ export function formatModuleBoundaries(data) {
|
|
|
38
38
|
return `No modules found with cohesion >= ${data.threshold}.`;
|
|
39
39
|
const lines = [`\nModule boundaries (cohesion >= ${data.threshold}, ${data.count} modules):\n`];
|
|
40
40
|
for (const m of data.modules) {
|
|
41
|
-
lines.push(` ${m.directory}/ cohesion=${m.cohesion.toFixed(2)} (${m.fileCount} files, ${m.symbolCount} symbols)`);
|
|
41
|
+
lines.push(` ${m.directory}/ cohesion=${m.cohesion !== null ? m.cohesion.toFixed(2) : 'n/a'} (${m.fileCount} files, ${m.symbolCount} symbols)`);
|
|
42
42
|
lines.push(` Incoming: ${m.fanIn} edges Outgoing: ${m.fanOut} edges`);
|
|
43
43
|
if (m.files.length > 0) {
|
|
44
44
|
lines.push(` Files: ${m.files.slice(0, 5).join(', ')}${m.files.length > 5 ? ` ... +${m.files.length - 5}` : ''}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/presentation/structure.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/presentation/structure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/shared/file-utils.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE;AAED,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,GAAE,mBAAwB,GAC7B,MAAM,GAAG,IAAI,CAcf;AAED,UAAU,kBAAkB;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/shared/file-utils.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE;AAED,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,GAAE,mBAAwB,GAC7B,MAAM,GAAG,IAAI,CAcf;AAED,UAAU,kBAAkB;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,GAAG,IAAI,CAkBf;AAED,UAAU,oBAAoB;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAkCD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE,oBAAyB,GAC9B,SAAS,GAAG,IAAI,CAkBlB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAmBzF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQxD"}
|
|
@@ -29,101 +29,123 @@ export function readSourceRange(repoRoot, file, startLine, endLine, opts = {}) {
|
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Scan up for JSDoc or comment
|
|
40
|
-
let jsdocEnd = -1;
|
|
41
|
-
for (let i = idx; i >= Math.max(0, idx - jsdocEndScanLines); i--) {
|
|
32
|
+
/** Truncate text to maxChars, appending "..." if truncated. */
|
|
33
|
+
function truncate(text, maxChars) {
|
|
34
|
+
return text.length > maxChars ? `${text.slice(0, maxChars)}...` : text;
|
|
35
|
+
}
|
|
36
|
+
/** Try to extract a single-line comment (// or #) above the definition. */
|
|
37
|
+
function extractSingleLineComment(fileLines, idx, scanLines, maxChars) {
|
|
38
|
+
for (let i = idx; i >= Math.max(0, idx - scanLines); i--) {
|
|
42
39
|
const trimmed = fileLines[i].trim();
|
|
43
|
-
if (trimmed.endsWith('*/'))
|
|
44
|
-
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
40
|
+
if (trimmed.endsWith('*/'))
|
|
41
|
+
return null; // hit a block comment — defer to JSDoc extractor
|
|
47
42
|
if (trimmed.startsWith('//') || trimmed.startsWith('#')) {
|
|
48
|
-
// Single-line comment immediately above
|
|
49
43
|
const text = trimmed
|
|
50
44
|
.replace(/^\/\/\s*/, '')
|
|
51
45
|
.replace(/^#\s*/, '')
|
|
52
46
|
.trim();
|
|
53
|
-
return text
|
|
47
|
+
return truncate(text, maxChars);
|
|
54
48
|
}
|
|
55
49
|
if (trimmed !== '' && !trimmed.startsWith('*') && !trimmed.startsWith('/*'))
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/** Find the line index where a block comment (*/) ends, scanning upward from idx. */
|
|
55
|
+
function findJsdocEndLine(fileLines, idx, scanLines) {
|
|
56
|
+
for (let i = idx; i >= Math.max(0, idx - scanLines); i--) {
|
|
57
|
+
const trimmed = fileLines[i].trim();
|
|
58
|
+
if (trimmed.endsWith('*/'))
|
|
59
|
+
return i;
|
|
60
|
+
if (trimmed !== '' &&
|
|
61
|
+
!trimmed.startsWith('*') &&
|
|
62
|
+
!trimmed.startsWith('/*') &&
|
|
63
|
+
!trimmed.startsWith('//') &&
|
|
64
|
+
!trimmed.startsWith('#')) {
|
|
56
65
|
break;
|
|
66
|
+
}
|
|
57
67
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
break;
|
|
68
|
+
return -1;
|
|
69
|
+
}
|
|
70
|
+
/** Extract the first description line from a JSDoc block ending at jsdocEnd. */
|
|
71
|
+
function extractJsdocDescription(fileLines, jsdocEnd, openScanLines, maxChars) {
|
|
72
|
+
for (let i = jsdocEnd; i >= Math.max(0, jsdocEnd - openScanLines); i--) {
|
|
73
|
+
if (!fileLines[i].trim().startsWith('/**'))
|
|
74
|
+
continue;
|
|
75
|
+
for (let j = i + 1; j <= jsdocEnd; j++) {
|
|
76
|
+
const docLine = fileLines[j].trim()
|
|
77
|
+
.replace(/^\*\s?/, '')
|
|
78
|
+
.trim();
|
|
79
|
+
if (docLine && !docLine.startsWith('@') && docLine !== '/' && docLine !== '*/') {
|
|
80
|
+
return truncate(docLine, maxChars);
|
|
74
81
|
}
|
|
75
82
|
}
|
|
83
|
+
break;
|
|
76
84
|
}
|
|
77
85
|
return null;
|
|
78
86
|
}
|
|
87
|
+
export function extractSummary(fileLines, line, opts = {}) {
|
|
88
|
+
if (!fileLines || !line || line <= 1)
|
|
89
|
+
return null;
|
|
90
|
+
const idx = line - 2; // line above the definition (0-indexed)
|
|
91
|
+
const jsdocEndScanLines = opts.jsdocEndScanLines ?? 10;
|
|
92
|
+
const jsdocOpenScanLines = opts.jsdocOpenScanLines ?? 20;
|
|
93
|
+
const summaryMaxChars = opts.summaryMaxChars ?? 100;
|
|
94
|
+
// Try single-line comment first
|
|
95
|
+
const singleLine = extractSingleLineComment(fileLines, idx, jsdocEndScanLines, summaryMaxChars);
|
|
96
|
+
if (singleLine)
|
|
97
|
+
return singleLine;
|
|
98
|
+
// Try JSDoc block comment
|
|
99
|
+
const jsdocEnd = findJsdocEndLine(fileLines, idx, jsdocEndScanLines);
|
|
100
|
+
if (jsdocEnd >= 0) {
|
|
101
|
+
return extractJsdocDescription(fileLines, jsdocEnd, jsdocOpenScanLines, summaryMaxChars);
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
/** Per-language signature patterns. Each entry has a regex and an extractor for return type. */
|
|
106
|
+
const SIGNATURE_PATTERNS = [
|
|
107
|
+
// JS/TS: function name(params) or async function
|
|
108
|
+
{
|
|
109
|
+
regex: /(?:export\s+)?(?:async\s+)?function\s*\*?\s*\w*\s*\(([^)]*)\)\s*(?::\s*([^\n{]+))?/,
|
|
110
|
+
returnType: (m) => (m[2] ? m[2].trim().replace(/\s*\{$/, '') : null),
|
|
111
|
+
},
|
|
112
|
+
// Arrow: const name = (params) => or (params):ReturnType =>
|
|
113
|
+
{
|
|
114
|
+
regex: /=\s*(?:async\s+)?\(([^)]*)\)\s*(?::\s*([^=>\n{]+))?\s*=>/,
|
|
115
|
+
returnType: (m) => (m[2] ? m[2].trim() : null),
|
|
116
|
+
},
|
|
117
|
+
// Python: def name(params) -> return:
|
|
118
|
+
{
|
|
119
|
+
regex: /def\s+\w+\s*\(([^)]*)\)\s*(?:->\s*([^:\n]+))?/,
|
|
120
|
+
returnType: (m) => (m[2] ? m[2].trim() : null),
|
|
121
|
+
},
|
|
122
|
+
// Go: func (recv) name(params) (returns)
|
|
123
|
+
{
|
|
124
|
+
regex: /func\s+(?:\([^)]*\)\s+)?\w+\s*\(([^)]*)\)\s*(?:\(([^)]+)\)|(\w[^\n{]*))?/,
|
|
125
|
+
returnType: (m) => (m[2] || m[3] || '').trim() || null,
|
|
126
|
+
},
|
|
127
|
+
// Rust: fn name(params) -> ReturnType
|
|
128
|
+
{
|
|
129
|
+
regex: /fn\s+\w+\s*\(([^)]*)\)\s*(?:->\s*([^\n{]+))?/,
|
|
130
|
+
returnType: (m) => (m[2] ? m[2].trim() : null),
|
|
131
|
+
},
|
|
132
|
+
];
|
|
79
133
|
export function extractSignature(fileLines, line, opts = {}) {
|
|
80
134
|
if (!fileLines || !line)
|
|
81
135
|
return null;
|
|
82
136
|
const idx = line - 1;
|
|
83
137
|
const signatureGatherLines = opts.signatureGatherLines ?? 5;
|
|
84
|
-
// Gather lines to handle multi-line params
|
|
85
138
|
const chunk = fileLines
|
|
86
139
|
.slice(idx, Math.min(fileLines.length, idx + signatureGatherLines))
|
|
87
140
|
.join('\n');
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// Arrow: const name = (params) => or (params):ReturnType =>
|
|
97
|
-
m = chunk.match(/=\s*(?:async\s+)?\(([^)]*)\)\s*(?::\s*([^=>\n{]+))?\s*=>/);
|
|
98
|
-
if (m) {
|
|
99
|
-
return {
|
|
100
|
-
params: m[1].trim() || null,
|
|
101
|
-
returnType: m[2] ? m[2].trim() : null,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
// Python: def name(params) -> return:
|
|
105
|
-
m = chunk.match(/def\s+\w+\s*\(([^)]*)\)\s*(?:->\s*([^:\n]+))?/);
|
|
106
|
-
if (m) {
|
|
107
|
-
return {
|
|
108
|
-
params: m[1].trim() || null,
|
|
109
|
-
returnType: m[2] ? m[2].trim() : null,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
// Go: func (recv) name(params) (returns)
|
|
113
|
-
m = chunk.match(/func\s+(?:\([^)]*\)\s+)?\w+\s*\(([^)]*)\)\s*(?:\(([^)]+)\)|(\w[^\n{]*))?/);
|
|
114
|
-
if (m) {
|
|
115
|
-
return {
|
|
116
|
-
params: m[1].trim() || null,
|
|
117
|
-
returnType: (m[2] || m[3] || '').trim() || null,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
// Rust: fn name(params) -> ReturnType
|
|
121
|
-
m = chunk.match(/fn\s+\w+\s*\(([^)]*)\)\s*(?:->\s*([^\n{]+))?/);
|
|
122
|
-
if (m) {
|
|
123
|
-
return {
|
|
124
|
-
params: m[1].trim() || null,
|
|
125
|
-
returnType: m[2] ? m[2].trim() : null,
|
|
126
|
-
};
|
|
141
|
+
for (const pattern of SIGNATURE_PATTERNS) {
|
|
142
|
+
const m = chunk.match(pattern.regex);
|
|
143
|
+
if (m) {
|
|
144
|
+
return {
|
|
145
|
+
params: m[1].trim() || null,
|
|
146
|
+
returnType: pattern.returnType(m),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
127
149
|
}
|
|
128
150
|
return null;
|
|
129
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/shared/file-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,IAAY;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAMD,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,IAAY,EACZ,SAA6B,EAC7B,OAA2B,EAC3B,OAA4B,EAAE;IAE9B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC,8BAA8B,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/shared/file-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,18 @@ interface HashSource {
|
|
|
9
9
|
getFileHash(file: string): string | null;
|
|
10
10
|
}
|
|
11
11
|
export declare function getFileHash(db: DbHandle, file: string): string | null;
|
|
12
|
+
/** Pick the 4-field symbol reference from any row that carries at least {name, kind, file, line}. */
|
|
13
|
+
export declare function toSymbolRef(row: {
|
|
14
|
+
name: string;
|
|
15
|
+
kind: string;
|
|
16
|
+
file: string;
|
|
17
|
+
line: number;
|
|
18
|
+
}): {
|
|
19
|
+
name: string;
|
|
20
|
+
kind: string;
|
|
21
|
+
file: string;
|
|
22
|
+
line: number;
|
|
23
|
+
};
|
|
12
24
|
export declare function kindIcon(kind: string): string;
|
|
13
25
|
export interface NormalizedSymbol {
|
|
14
26
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,+EAA+E;AAC/E,UAAU,UAAU;IAClB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAqBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EACjB,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACrC,gBAAgB,CAWlB"}
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,+EAA+E;AAC/E,UAAU,UAAU;IAClB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAEA;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAqBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EACjB,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACrC,gBAAgB,CAWlB"}
|
package/dist/shared/normalize.js
CHANGED
|
@@ -5,6 +5,10 @@ export function getFileHash(db, file) {
|
|
|
5
5
|
const row = db.prepare('SELECT hash FROM file_hashes WHERE file = ?').get(file);
|
|
6
6
|
return row ? row.hash : null;
|
|
7
7
|
}
|
|
8
|
+
/** Pick the 4-field symbol reference from any row that carries at least {name, kind, file, line}. */
|
|
9
|
+
export function toSymbolRef(row) {
|
|
10
|
+
return { name: row.name, kind: row.kind, file: row.file, line: row.line };
|
|
11
|
+
}
|
|
8
12
|
export function kindIcon(kind) {
|
|
9
13
|
switch (kind) {
|
|
10
14
|
case 'function':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAUA,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAgB,CAAC,WAAW,KAAK,UAAU,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEjE,CAAC;IACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAsBD;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAyB,EACzB,IAAY,EACZ,SAAsC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,EAAc,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAiC,EACjC,SAAsC;IAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAUA,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAgB,CAAC,WAAW,KAAK,UAAU,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEjE,CAAC;IACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,WAAW,CAAC,GAA+D;IAMzF,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAsBD;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAyB,EACzB,IAAY,EACZ,SAAsC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,EAAc,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAiC,EACjC,SAAsC;IAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -225,6 +225,42 @@ export interface Repository {
|
|
|
225
225
|
getFileHash(file: string): string | null;
|
|
226
226
|
hasImplementsEdges(): boolean;
|
|
227
227
|
hasCoChangesTable(): boolean;
|
|
228
|
+
fnDeps(name: string, opts?: {
|
|
229
|
+
depth?: number;
|
|
230
|
+
noTests?: boolean;
|
|
231
|
+
file?: string;
|
|
232
|
+
kind?: string;
|
|
233
|
+
}): {
|
|
234
|
+
name: string;
|
|
235
|
+
results: Array<{
|
|
236
|
+
name: string;
|
|
237
|
+
kind: string;
|
|
238
|
+
file: string;
|
|
239
|
+
line: number | null;
|
|
240
|
+
endLine: number | null;
|
|
241
|
+
role: string | null;
|
|
242
|
+
fileHash: string | null;
|
|
243
|
+
callees: Array<{
|
|
244
|
+
name: string;
|
|
245
|
+
kind: string;
|
|
246
|
+
file: string;
|
|
247
|
+
line: number | null;
|
|
248
|
+
}>;
|
|
249
|
+
callers: Array<{
|
|
250
|
+
name: string;
|
|
251
|
+
kind: string;
|
|
252
|
+
file: string;
|
|
253
|
+
line: number | null;
|
|
254
|
+
viaHierarchy?: string;
|
|
255
|
+
}>;
|
|
256
|
+
transitiveCallers: Record<number, Array<{
|
|
257
|
+
name: string;
|
|
258
|
+
kind: string;
|
|
259
|
+
file: string;
|
|
260
|
+
line: number | null;
|
|
261
|
+
}>>;
|
|
262
|
+
}>;
|
|
263
|
+
} | null;
|
|
228
264
|
}
|
|
229
265
|
/**
|
|
230
266
|
* In-memory repository — mutable, used for testing and incremental builds.
|
|
@@ -502,6 +538,12 @@ export interface AnalysisTiming {
|
|
|
502
538
|
complexityMs: number;
|
|
503
539
|
cfgMs: number;
|
|
504
540
|
dataflowMs: number;
|
|
541
|
+
/**
|
|
542
|
+
* Diagnostic: total wall-clock time for the unified walk loop (includes
|
|
543
|
+
* setupVisitors overhead). Walk time is already distributed equally into
|
|
544
|
+
* the per-phase timers above, so this overlaps — it is not an additive
|
|
545
|
+
* bucket. Useful for cross-checking that Σ phase timers ≈ this value.
|
|
546
|
+
*/
|
|
505
547
|
_unifiedWalkMs?: number;
|
|
506
548
|
}
|
|
507
549
|
/** An AST node row stored in the database. */
|
|
@@ -836,6 +878,7 @@ export interface CodegraphConfig {
|
|
|
836
878
|
incremental: boolean;
|
|
837
879
|
dbPath: string;
|
|
838
880
|
driftThreshold: number;
|
|
881
|
+
smallFilesThreshold: number;
|
|
839
882
|
};
|
|
840
883
|
query: {
|
|
841
884
|
defaultDepth: number;
|
|
@@ -1557,7 +1600,11 @@ export interface NativeAddon {
|
|
|
1557
1600
|
modularity: number;
|
|
1558
1601
|
};
|
|
1559
1602
|
buildCallEdges(files: unknown[], nodes: unknown[], builtinReceivers: string[]): unknown[];
|
|
1560
|
-
buildImportEdges?(files: unknown[], resolvedImports: unknown[], fileReexports: unknown[], fileNodeIds: unknown[], barrelFiles: string[], rootDir: string
|
|
1603
|
+
buildImportEdges?(files: unknown[], resolvedImports: unknown[], fileReexports: unknown[], fileNodeIds: unknown[], barrelFiles: string[], rootDir: string, symbolNodes?: Array<{
|
|
1604
|
+
name: string;
|
|
1605
|
+
file: string;
|
|
1606
|
+
nodeId: number;
|
|
1607
|
+
}>): unknown[];
|
|
1561
1608
|
engineVersion(): string;
|
|
1562
1609
|
analyzeComplexity(source: string, filePath: string, langId?: string | null): NativeFunctionComplexityResult[];
|
|
1563
1610
|
buildCfgAnalysis(source: string, filePath: string, langId?: string | null): NativeFunctionCfgResult[];
|
|
@@ -1705,6 +1752,39 @@ export interface NativeComplexityMetrics {
|
|
|
1705
1752
|
maintainabilityIndex: number | null;
|
|
1706
1753
|
halsteadVolume: number | null;
|
|
1707
1754
|
}
|
|
1755
|
+
export interface NativeFnDepsNode {
|
|
1756
|
+
name: string;
|
|
1757
|
+
kind: string;
|
|
1758
|
+
file: string;
|
|
1759
|
+
line: number | null;
|
|
1760
|
+
}
|
|
1761
|
+
export interface NativeFnDepsCallerNode {
|
|
1762
|
+
name: string;
|
|
1763
|
+
kind: string;
|
|
1764
|
+
file: string;
|
|
1765
|
+
line: number | null;
|
|
1766
|
+
viaHierarchy: string | null;
|
|
1767
|
+
}
|
|
1768
|
+
export interface NativeFnDepsTransitiveGroup {
|
|
1769
|
+
depth: number;
|
|
1770
|
+
callers: NativeFnDepsNode[];
|
|
1771
|
+
}
|
|
1772
|
+
export interface NativeFnDepsEntry {
|
|
1773
|
+
name: string;
|
|
1774
|
+
kind: string;
|
|
1775
|
+
file: string;
|
|
1776
|
+
line: number | null;
|
|
1777
|
+
endLine: number | null;
|
|
1778
|
+
role: string | null;
|
|
1779
|
+
fileHash: string | null;
|
|
1780
|
+
callees: NativeFnDepsNode[];
|
|
1781
|
+
callers: NativeFnDepsCallerNode[];
|
|
1782
|
+
transitiveCallers: NativeFnDepsTransitiveGroup[];
|
|
1783
|
+
}
|
|
1784
|
+
export interface NativeFnDepsResult {
|
|
1785
|
+
name: string;
|
|
1786
|
+
results: NativeFnDepsEntry[];
|
|
1787
|
+
}
|
|
1708
1788
|
/** Native rusqlite database wrapper instance (Phase 6.13 + 6.14 + 6.15). */
|
|
1709
1789
|
export interface NativeDatabase {
|
|
1710
1790
|
initSchema(): void;
|
|
@@ -1761,6 +1841,7 @@ export interface NativeDatabase {
|
|
|
1761
1841
|
hasCoChangesTable(): boolean;
|
|
1762
1842
|
getComplexityForNode(nodeId: number): NativeComplexityMetrics | null;
|
|
1763
1843
|
getFileHash(file: string): string | null;
|
|
1844
|
+
fnDeps(name: string, depth: number | null | undefined, noTests: boolean | null | undefined, file: string | null | undefined, kind: string | null | undefined): NativeFnDepsResult;
|
|
1764
1845
|
bulkInsertNodes(batches: Array<{
|
|
1765
1846
|
file: string;
|
|
1766
1847
|
definitions: Array<{
|