@saluzi/codegraph 0.1.0 → 0.2.1
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/LICENSE +21 -0
- package/README.md +885 -0
- package/dist/bin/codegraph.d.ts +2 -1
- package/dist/bin/codegraph.d.ts.map +1 -0
- package/dist/bin/codegraph.js +2248 -0
- package/dist/bin/codegraph.js.map +1 -0
- package/dist/bin/command-supervision.d.ts +49 -0
- package/dist/bin/command-supervision.d.ts.map +1 -0
- package/dist/bin/command-supervision.js +95 -0
- package/dist/bin/command-supervision.js.map +1 -0
- package/dist/bin/fatal-handler.d.ts +20 -0
- package/dist/bin/fatal-handler.d.ts.map +1 -0
- package/dist/bin/fatal-handler.js +118 -0
- package/dist/bin/fatal-handler.js.map +1 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +79 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/bin/uninstall.d.ts.map +1 -0
- package/dist/bin/uninstall.js +36 -0
- package/dist/bin/uninstall.js.map +1 -0
- package/dist/context/formatter.d.ts +6 -9
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +25 -6
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +102 -100
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +252 -6
- package/dist/context/index.js.map +1 -0
- package/dist/context/markers.d.ts +19 -0
- package/dist/context/markers.d.ts.map +1 -0
- package/dist/context/markers.js +22 -0
- package/dist/context/markers.js.map +1 -0
- package/dist/db/index.d.ts +185 -85
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +257 -14
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +15 -18
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +82 -1
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +503 -281
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +644 -107
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +69 -26
- package/dist/db/sqlite-adapter.d.ts +26 -22
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +11 -35
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/db/wal-valve.d.ts +106 -0
- package/dist/db/wal-valve.d.ts.map +1 -0
- package/dist/db/wal-valve.js +208 -0
- package/dist/db/wal-valve.js.map +1 -0
- package/dist/directory.d.ts +140 -19
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +568 -35
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +32 -45
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction/astro-extractor.d.ts +79 -0
- package/dist/extraction/astro-extractor.d.ts.map +1 -0
- package/dist/extraction/astro-extractor.js +320 -0
- package/dist/extraction/astro-extractor.js.map +1 -0
- package/dist/extraction/cfml-extractor.d.ts +107 -0
- package/dist/extraction/cfml-extractor.d.ts.map +1 -0
- package/dist/extraction/cfml-extractor.js +494 -0
- package/dist/extraction/cfml-extractor.js.map +1 -0
- package/dist/extraction/dfm-extractor.d.ts +17 -17
- package/dist/extraction/dfm-extractor.d.ts.map +1 -0
- package/dist/extraction/dfm-extractor.js.map +1 -0
- package/dist/extraction/extraction-version.d.ts +25 -0
- package/dist/extraction/extraction-version.d.ts.map +1 -0
- package/dist/extraction/extraction-version.js +28 -0
- package/dist/extraction/extraction-version.js.map +1 -0
- package/dist/extraction/function-ref.d.ts +118 -0
- package/dist/extraction/function-ref.d.ts.map +1 -0
- package/dist/extraction/function-ref.js +727 -0
- package/dist/extraction/function-ref.js.map +1 -0
- package/dist/extraction/generated-detection.d.ts +30 -0
- package/dist/extraction/generated-detection.d.ts.map +1 -0
- package/dist/extraction/generated-detection.js +83 -0
- package/dist/extraction/generated-detection.js.map +1 -0
- package/dist/extraction/grammars.d.ts +74 -30
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +289 -15
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +193 -109
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +1485 -362
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/languages/arkts.d.ts +3 -0
- package/dist/extraction/languages/arkts.d.ts.map +1 -0
- package/dist/extraction/languages/arkts.js +127 -0
- package/dist/extraction/languages/arkts.js.map +1 -0
- package/dist/extraction/languages/c-cpp.d.ts +110 -4
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +713 -2
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/cfquery.d.ts +12 -0
- package/dist/extraction/languages/cfquery.d.ts.map +1 -0
- package/dist/extraction/languages/cfquery.js +28 -0
- package/dist/extraction/languages/cfquery.js.map +1 -0
- package/dist/extraction/languages/cfscript.d.ts +3 -0
- package/dist/extraction/languages/cfscript.d.ts.map +1 -0
- package/dist/extraction/languages/cfscript.js +73 -0
- package/dist/extraction/languages/cfscript.js.map +1 -0
- package/dist/extraction/languages/cobol.d.ts +33 -0
- package/dist/extraction/languages/cobol.d.ts.map +1 -0
- package/dist/extraction/languages/cobol.js +499 -0
- package/dist/extraction/languages/cobol.js.map +1 -0
- package/dist/extraction/languages/csharp.d.ts +25 -3
- package/dist/extraction/languages/csharp.d.ts.map +1 -0
- package/dist/extraction/languages/csharp.js +106 -3
- package/dist/extraction/languages/csharp.js.map +1 -0
- package/dist/extraction/languages/dart.d.ts +3 -3
- package/dist/extraction/languages/dart.d.ts.map +1 -0
- package/dist/extraction/languages/dart.js +183 -1
- package/dist/extraction/languages/dart.js.map +1 -0
- package/dist/extraction/languages/erlang.d.ts +3 -0
- package/dist/extraction/languages/erlang.d.ts.map +1 -0
- package/dist/extraction/languages/erlang.js +350 -0
- package/dist/extraction/languages/erlang.js.map +1 -0
- package/dist/extraction/languages/go.d.ts +3 -3
- package/dist/extraction/languages/go.d.ts.map +1 -0
- package/dist/extraction/languages/go.js +55 -2
- package/dist/extraction/languages/go.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +4 -4
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +22 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -3
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +252 -1
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/javascript.d.ts +3 -3
- package/dist/extraction/languages/javascript.d.ts.map +1 -0
- package/dist/extraction/languages/javascript.js +16 -0
- package/dist/extraction/languages/javascript.js.map +1 -0
- package/dist/extraction/languages/kotlin.d.ts +3 -3
- package/dist/extraction/languages/kotlin.d.ts.map +1 -0
- package/dist/extraction/languages/kotlin.js +126 -0
- package/dist/extraction/languages/kotlin.js.map +1 -0
- package/dist/extraction/languages/lua.d.ts +3 -3
- package/dist/extraction/languages/lua.d.ts.map +1 -0
- package/dist/extraction/languages/lua.js.map +1 -0
- package/dist/extraction/languages/luau.d.ts +3 -3
- package/dist/extraction/languages/luau.d.ts.map +1 -0
- package/dist/extraction/languages/luau.js.map +1 -0
- package/dist/extraction/languages/nix.d.ts +3 -0
- package/dist/extraction/languages/nix.d.ts.map +1 -0
- package/dist/extraction/languages/nix.js +294 -0
- package/dist/extraction/languages/nix.js.map +1 -0
- package/dist/extraction/languages/objc.d.ts +3 -0
- package/dist/extraction/languages/objc.d.ts.map +1 -0
- package/dist/extraction/languages/objc.js +175 -0
- package/dist/extraction/languages/objc.js.map +1 -0
- package/dist/extraction/languages/pascal.d.ts +3 -3
- package/dist/extraction/languages/pascal.d.ts.map +1 -0
- package/dist/extraction/languages/pascal.js +11 -0
- package/dist/extraction/languages/pascal.js.map +1 -0
- package/dist/extraction/languages/php.d.ts +3 -3
- package/dist/extraction/languages/php.d.ts.map +1 -0
- package/dist/extraction/languages/php.js +90 -1
- package/dist/extraction/languages/php.js.map +1 -0
- package/dist/extraction/languages/python.d.ts +3 -3
- package/dist/extraction/languages/python.d.ts.map +1 -0
- package/dist/extraction/languages/python.js.map +1 -0
- package/dist/extraction/languages/r.d.ts +3 -0
- package/dist/extraction/languages/r.d.ts.map +1 -0
- package/dist/extraction/languages/r.js +314 -0
- package/dist/extraction/languages/r.js.map +1 -0
- package/dist/extraction/languages/ruby.d.ts +3 -3
- package/dist/extraction/languages/ruby.d.ts.map +1 -0
- package/dist/extraction/languages/ruby.js +35 -0
- package/dist/extraction/languages/ruby.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +3 -3
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +35 -2
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/languages/scala.d.ts +3 -3
- package/dist/extraction/languages/scala.d.ts.map +1 -0
- package/dist/extraction/languages/scala.js +80 -10
- package/dist/extraction/languages/scala.js.map +1 -0
- package/dist/extraction/languages/solidity.d.ts +3 -0
- package/dist/extraction/languages/solidity.d.ts.map +1 -0
- package/dist/extraction/languages/solidity.js +293 -0
- package/dist/extraction/languages/solidity.js.map +1 -0
- package/dist/extraction/languages/swift.d.ts +3 -3
- package/dist/extraction/languages/swift.d.ts.map +1 -0
- package/dist/extraction/languages/swift.js +61 -0
- package/dist/extraction/languages/swift.js.map +1 -0
- package/dist/extraction/languages/terraform.d.ts +3 -0
- package/dist/extraction/languages/terraform.d.ts.map +1 -0
- package/dist/extraction/languages/terraform.js +641 -0
- package/dist/extraction/languages/terraform.js.map +1 -0
- package/dist/extraction/languages/typescript.d.ts +16 -3
- package/dist/extraction/languages/typescript.d.ts.map +1 -0
- package/dist/extraction/languages/typescript.js +38 -0
- package/dist/extraction/languages/typescript.js.map +1 -0
- package/dist/extraction/languages/vbnet.d.ts +11 -0
- package/dist/extraction/languages/vbnet.d.ts.map +1 -0
- package/dist/extraction/languages/vbnet.js +141 -0
- package/dist/extraction/languages/vbnet.js.map +1 -0
- package/dist/extraction/liquid-extractor.d.ts +48 -41
- package/dist/extraction/liquid-extractor.d.ts.map +1 -0
- package/dist/extraction/liquid-extractor.js +53 -9
- package/dist/extraction/liquid-extractor.js.map +1 -0
- package/dist/extraction/mybatis-extractor.d.ts +68 -0
- package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
- package/dist/extraction/mybatis-extractor.js +300 -0
- package/dist/extraction/mybatis-extractor.js.map +1 -0
- package/dist/extraction/parse-pool.d.ts +152 -0
- package/dist/extraction/parse-pool.d.ts.map +1 -0
- package/dist/extraction/parse-pool.js +387 -0
- package/dist/extraction/parse-pool.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +2 -2
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +13 -3
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/razor-extractor.d.ts +42 -0
- package/dist/extraction/razor-extractor.d.ts.map +1 -0
- package/dist/extraction/razor-extractor.js +285 -0
- package/dist/extraction/razor-extractor.js.map +1 -0
- package/dist/extraction/svelte-extractor.d.ts +42 -42
- package/dist/extraction/svelte-extractor.d.ts.map +1 -0
- package/dist/extraction/svelte-extractor.js +6 -3
- package/dist/extraction/svelte-extractor.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +7 -18
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +60 -10
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +224 -157
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +689 -221
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +4193 -117
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/extraction/vue-extractor.d.ts +40 -25
- package/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/dist/extraction/vue-extractor.js +94 -3
- package/dist/extraction/vue-extractor.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +6 -14
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/dist/extraction/wasm-runtime-flags.js +1 -0
- package/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/dist/graph/index.d.ts +3 -3
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/queries.d.ts +96 -99
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +13 -40
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +117 -127
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +92 -21
- package/dist/graph/traversal.js.map +1 -0
- package/dist/index.d.ts +615 -481
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +709 -18
- package/dist/index.js.map +1 -0
- package/dist/installer/config-writer.d.ts +13 -14
- package/dist/installer/config-writer.d.ts.map +1 -0
- package/dist/installer/config-writer.js +91 -0
- package/dist/installer/config-writer.js.map +1 -0
- package/dist/installer/index.d.ts +84 -82
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +619 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/instructions-template.d.ts +35 -24
- package/dist/installer/instructions-template.d.ts.map +1 -0
- package/dist/installer/instructions-template.js +53 -0
- package/dist/installer/instructions-template.js.map +1 -0
- package/dist/installer/targets/antigravity.d.ts +57 -0
- package/dist/installer/targets/antigravity.d.ts.map +1 -0
- package/dist/installer/targets/antigravity.js +308 -0
- package/dist/installer/targets/antigravity.js.map +1 -0
- package/dist/installer/targets/claude.d.ts +34 -27
- package/dist/installer/targets/claude.d.ts.map +1 -0
- package/dist/installer/targets/claude.js +454 -0
- package/dist/installer/targets/claude.js.map +1 -0
- package/dist/installer/targets/codex.d.ts +3 -3
- package/dist/installer/targets/codex.d.ts.map +1 -0
- package/dist/installer/targets/codex.js +185 -0
- package/dist/installer/targets/codex.js.map +1 -0
- package/dist/installer/targets/cursor.d.ts +3 -3
- package/dist/installer/targets/cursor.d.ts.map +1 -0
- package/dist/installer/targets/cursor.js +254 -0
- package/dist/installer/targets/cursor.js.map +1 -0
- package/dist/installer/targets/gemini.d.ts +26 -0
- package/dist/installer/targets/gemini.d.ts.map +1 -0
- package/dist/installer/targets/gemini.js +165 -0
- package/dist/installer/targets/gemini.js.map +1 -0
- package/dist/installer/targets/hermes.d.ts +3 -3
- package/dist/installer/targets/hermes.d.ts.map +1 -0
- package/dist/installer/targets/hermes.js +359 -0
- package/dist/installer/targets/hermes.js.map +1 -0
- package/dist/installer/targets/kiro.d.ts +27 -0
- package/dist/installer/targets/kiro.d.ts.map +1 -0
- package/dist/installer/targets/kiro.js +178 -0
- package/dist/installer/targets/kiro.js.map +1 -0
- package/dist/installer/targets/opencode.d.ts +12 -4
- package/dist/installer/targets/opencode.d.ts.map +1 -0
- package/dist/installer/targets/opencode.js +288 -0
- package/dist/installer/targets/opencode.js.map +1 -0
- package/dist/installer/targets/registry.d.ts +9 -12
- package/dist/installer/targets/registry.d.ts.map +1 -0
- package/dist/installer/targets/registry.js +91 -0
- package/dist/installer/targets/registry.js.map +1 -0
- package/dist/installer/targets/shared.d.ts +38 -29
- package/dist/installer/targets/shared.d.ts.map +1 -0
- package/dist/installer/targets/shared.js +264 -0
- package/dist/installer/targets/shared.js.map +1 -0
- package/dist/installer/targets/toml.d.ts +11 -23
- package/dist/installer/targets/toml.d.ts.map +1 -0
- package/dist/installer/targets/toml.js +147 -0
- package/dist/installer/targets/toml.js.map +1 -0
- package/dist/installer/targets/types.d.ts +62 -76
- package/dist/installer/targets/types.d.ts.map +1 -0
- package/dist/installer/targets/types.js +16 -0
- package/dist/installer/targets/types.js.map +1 -0
- package/dist/mcp/daemon-manager.d.ts +42 -0
- package/dist/mcp/daemon-manager.d.ts.map +1 -0
- package/dist/mcp/daemon-manager.js +129 -0
- package/dist/mcp/daemon-manager.js.map +1 -0
- package/dist/mcp/daemon-paths.d.ts +73 -0
- package/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/dist/mcp/daemon-paths.js +165 -0
- package/dist/mcp/daemon-paths.js.map +1 -0
- package/dist/mcp/daemon-registry.d.ts +47 -0
- package/dist/mcp/daemon-registry.d.ts.map +1 -0
- package/dist/mcp/daemon-registry.js +233 -0
- package/dist/mcp/daemon-registry.js.map +1 -0
- package/dist/mcp/daemon.d.ts +290 -0
- package/dist/mcp/daemon.d.ts.map +1 -0
- package/dist/mcp/daemon.js +862 -0
- package/dist/mcp/daemon.js.map +1 -0
- package/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/dist/mcp/dynamic-boundaries.js +360 -0
- package/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/dist/mcp/early-ppid.d.ts +26 -0
- package/dist/mcp/early-ppid.d.ts.map +1 -0
- package/dist/mcp/early-ppid.js +29 -0
- package/dist/mcp/early-ppid.js.map +1 -0
- package/dist/mcp/engine.d.ts +122 -0
- package/dist/mcp/engine.d.ts.map +1 -0
- package/dist/mcp/engine.js +350 -0
- package/dist/mcp/engine.js.map +1 -0
- package/dist/mcp/index.d.ts +89 -74
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +506 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/liveness-watchdog.d.ts +35 -0
- package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
- package/dist/mcp/liveness-watchdog.js +267 -0
- package/dist/mcp/liveness-watchdog.js.map +1 -0
- package/dist/mcp/ppid-watchdog.d.ts +62 -0
- package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/dist/mcp/ppid-watchdog.js +64 -0
- package/dist/mcp/ppid-watchdog.js.map +1 -0
- package/dist/mcp/proxy.d.ts +87 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +667 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/query-pool.d.ts +108 -0
- package/dist/mcp/query-pool.d.ts.map +1 -0
- package/dist/mcp/query-pool.js +315 -0
- package/dist/mcp/query-pool.js.map +1 -0
- package/dist/mcp/query-worker.d.ts +24 -0
- package/dist/mcp/query-worker.d.ts.map +1 -0
- package/dist/mcp/query-worker.js +87 -0
- package/dist/mcp/query-worker.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +22 -8
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +106 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/session.d.ts +93 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +357 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/startup-handshake.d.ts +44 -0
- package/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/dist/mcp/startup-handshake.js +73 -0
- package/dist/mcp/startup-handshake.js.map +1 -0
- package/dist/mcp/stdin-teardown.d.ts +27 -0
- package/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/dist/mcp/stdin-teardown.js +49 -0
- package/dist/mcp/stdin-teardown.js.map +1 -0
- package/dist/mcp/tools.d.ts +557 -213
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +4477 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +158 -87
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +377 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/version.d.ts +19 -0
- package/dist/mcp/version.d.ts.map +1 -0
- package/dist/mcp/version.js +71 -0
- package/dist/mcp/version.js.map +1 -0
- package/dist/project-config.d.ts +94 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +374 -0
- package/dist/project-config.js.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.js +1062 -0
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
- package/dist/resolution/callback-synthesizer.d.ts +15 -0
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/resolution/callback-synthesizer.js +3938 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -0
- package/dist/resolution/cooperative-yield.d.ts +32 -0
- package/dist/resolution/cooperative-yield.d.ts.map +1 -0
- package/dist/resolution/cooperative-yield.js +42 -0
- package/dist/resolution/cooperative-yield.js.map +1 -0
- package/dist/resolution/frameworks/astro.d.ts +9 -0
- package/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/dist/resolution/frameworks/astro.js +169 -0
- package/dist/resolution/frameworks/astro.js.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts +3 -5
- package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
- package/dist/resolution/frameworks/cics.d.ts +20 -0
- package/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/dist/resolution/frameworks/cics.js +90 -0
- package/dist/resolution/frameworks/cics.js.map +1 -0
- package/dist/resolution/frameworks/csharp.d.ts +3 -3
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +36 -8
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/drupal.d.ts +3 -3
- package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/dist/resolution/frameworks/drupal.js +44 -12
- package/dist/resolution/frameworks/drupal.js.map +1 -0
- package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-modules.js +148 -0
- package/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +3 -3
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +102 -19
- package/dist/resolution/frameworks/express.js.map +1 -0
- package/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/dist/resolution/frameworks/fabric.js +354 -0
- package/dist/resolution/frameworks/fabric.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts +3 -3
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +6 -3
- package/dist/resolution/frameworks/go.js.map +1 -0
- package/dist/resolution/frameworks/goframe.d.ts +41 -0
- package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
- package/dist/resolution/frameworks/goframe.js +112 -0
- package/dist/resolution/frameworks/goframe.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts +29 -31
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +39 -1
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +3 -3
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +352 -12
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +4 -4
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +17 -8
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/nestjs.d.ts +3 -3
- package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nestjs.js +324 -0
- package/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/dist/resolution/frameworks/play.d.ts +19 -0
- package/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/dist/resolution/frameworks/play.js +111 -0
- package/dist/resolution/frameworks/play.js.map +1 -0
- package/dist/resolution/frameworks/python.d.ts +5 -5
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +138 -16
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react-native.d.ts +3 -0
- package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-native.js +410 -0
- package/dist/resolution/frameworks/react-native.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +3 -3
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +122 -60
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +3 -3
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +106 -2
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +3 -3
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +102 -5
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/svelte.d.ts +3 -3
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +5 -1
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift-objc.js +252 -0
- package/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/dist/resolution/frameworks/swift.d.ts +5 -5
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +30 -6
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/dist/resolution/frameworks/terraform.js +277 -0
- package/dist/resolution/frameworks/terraform.js.map +1 -0
- package/dist/resolution/frameworks/vue.d.ts +3 -3
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +24 -27
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/go-module.d.ts +26 -0
- package/dist/resolution/go-module.d.ts.map +1 -0
- package/dist/resolution/go-module.js +78 -0
- package/dist/resolution/go-module.js.map +1 -0
- package/dist/resolution/goframe-synthesizer.d.ts +29 -0
- package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
- package/dist/resolution/goframe-synthesizer.js +163 -0
- package/dist/resolution/goframe-synthesizer.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +53 -29
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +1319 -8
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +243 -103
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +1055 -53
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/lru-cache.d.ts +9 -9
- package/dist/resolution/lru-cache.d.ts.map +1 -0
- package/dist/resolution/lru-cache.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +91 -29
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +1478 -32
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/path-aliases.d.ts +23 -27
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +3 -16
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +51 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/dist/resolution/swift-objc-bridge.js +256 -0
- package/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/dist/resolution/types.d.ts +217 -136
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/workspace-packages.d.ts +58 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/dist/resolution/workspace-packages.js +346 -0
- package/dist/resolution/workspace-packages.js.map +1 -0
- package/dist/search/identifier-segments.d.ts +60 -0
- package/dist/search/identifier-segments.d.ts.map +1 -0
- package/dist/search/identifier-segments.js +176 -0
- package/dist/search/identifier-segments.js.map +1 -0
- package/dist/search/query-parser.d.ts +14 -18
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/search/query-utils.d.ts +45 -17
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +113 -47
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sync/git-hooks.d.ts +13 -22
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +4 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +6 -12
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +8 -1
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/watch-policy.d.ts +8 -11
- package/dist/sync/watch-policy.d.ts.map +1 -0
- package/dist/sync/watch-policy.js.map +1 -0
- package/dist/sync/watcher.d.ts +335 -63
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +709 -53
- package/dist/sync/watcher.js.map +1 -0
- package/dist/sync/worktree.d.ts +63 -0
- package/dist/sync/worktree.d.ts.map +1 -0
- package/dist/sync/worktree.js +182 -0
- package/dist/sync/worktree.js.map +1 -0
- package/dist/telemetry/index.d.ts +143 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +541 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/types.d.ts +308 -326
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/glyphs.d.ts +20 -20
- package/dist/ui/glyphs.d.ts.map +1 -0
- package/dist/ui/glyphs.js +78 -0
- package/dist/ui/glyphs.js.map +1 -0
- package/dist/ui/shimmer-progress.d.ts +7 -7
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +90 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -2
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +118 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +14 -17
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/upgrade/index.d.ts +164 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +646 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/upgrade/remove-binary.d.ts +87 -0
- package/dist/upgrade/remove-binary.d.ts.map +1 -0
- package/dist/upgrade/remove-binary.js +289 -0
- package/dist/upgrade/remove-binary.js.map +1 -0
- package/dist/upgrade/update-check.d.ts +92 -0
- package/dist/upgrade/update-check.d.ts.map +1 -0
- package/dist/upgrade/update-check.js +258 -0
- package/dist/upgrade/update-check.js.map +1 -0
- package/dist/utils.d.ts +116 -123
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +83 -49
- package/dist/utils.js.map +1 -0
- package/package.json +42 -10
- package/scripts/add-lang/bench.sh +60 -0
- package/scripts/add-lang/check-grammar.mjs +75 -0
- package/scripts/add-lang/dump-ast.mjs +103 -0
- package/scripts/add-lang/verify-extraction.mjs +70 -0
- package/scripts/agent-eval/ab-adoption.sh +91 -0
- package/scripts/agent-eval/ab-hook.sh +86 -0
- package/scripts/agent-eval/ab-impl.sh +78 -0
- package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -0
- package/scripts/agent-eval/ab-sufficiency.sh +78 -0
- package/scripts/agent-eval/arms-F.sh +21 -0
- package/scripts/agent-eval/arms-matrix.sh +37 -0
- package/scripts/agent-eval/audit.sh +68 -0
- package/scripts/agent-eval/bench-readme.sh +28 -0
- package/scripts/agent-eval/bench-why-repo.sh +22 -0
- package/scripts/agent-eval/block-read-hook.sh +19 -0
- package/scripts/agent-eval/hook-settings.json +15 -0
- package/scripts/agent-eval/itrun.sh +120 -0
- package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
- package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
- package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
- package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
- package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
- package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
- package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
- package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
- package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
- package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
- package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
- package/scripts/agent-eval/offload-eval-setup.sh +24 -0
- package/scripts/agent-eval/offload-eval-styles.sh +72 -0
- package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
- package/scripts/agent-eval/offload-eval.md +76 -0
- package/scripts/agent-eval/parse-arms.mjs +116 -0
- package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
- package/scripts/agent-eval/parse-run.mjs +45 -0
- package/scripts/agent-eval/parse-session.mjs +93 -0
- package/scripts/agent-eval/probe-context.mjs +21 -0
- package/scripts/agent-eval/probe-explore.mjs +40 -0
- package/scripts/agent-eval/probe-node.mjs +20 -0
- package/scripts/agent-eval/probe-sweep.mjs +119 -0
- package/scripts/agent-eval/probe-trace.mjs +20 -0
- package/scripts/agent-eval/redirect-read-hook.sh +38 -0
- package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
- package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
- package/scripts/agent-eval/run-agent.sh +34 -0
- package/scripts/agent-eval/run-all.sh +75 -0
- package/scripts/agent-eval/run-arms.sh +56 -0
- package/scripts/agent-eval/seq-matrix.mjs +137 -0
- package/scripts/build-bundle.sh +123 -0
- package/scripts/extract-release-notes.mjs +130 -0
- package/scripts/local-install.sh +41 -0
- package/scripts/npm-sdk.js +75 -0
- package/scripts/npm-shim.js +275 -0
- package/scripts/pack-npm.sh +119 -0
- package/scripts/prepare-release.mjs +270 -0
- package/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
- package/dist/installer/claude-md-template.d.ts +0 -19
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terraform Framework Resolver
|
|
3
|
+
*
|
|
4
|
+
* Terraform's scoping rule is narrow and directory-shaped: `var.X`,
|
|
5
|
+
* `local.X`, `module.M`, and resource/data references resolve ONLY inside
|
|
6
|
+
* the same module directory as the reference site. The generic name matcher
|
|
7
|
+
* resolves by qualified-name alone, so a reference to `var.project_id` from
|
|
8
|
+
* `modules/net-vpc/main.tf` could bind to a `variable "project_id"` declared
|
|
9
|
+
* in an unrelated module — a wrong cross-module edge that poisons impact
|
|
10
|
+
* analysis. This resolver enforces the real semantics:
|
|
11
|
+
*
|
|
12
|
+
* 1. Same directory as the reference site → resolve (highest confidence).
|
|
13
|
+
* 2. `.tfvars` files additionally walk UP to the nearest ancestor
|
|
14
|
+
* directory declaring the variable (`terraform apply -var-file=envs/prod.tfvars`
|
|
15
|
+
* sets ROOT module variables from a subdirectory).
|
|
16
|
+
* 3. Otherwise: no edge. Terraform cannot reference across sibling module
|
|
17
|
+
* directories, so a non-local candidate is never a correct target.
|
|
18
|
+
*
|
|
19
|
+
* It also bridges the module boundary through `:`-scoped references that
|
|
20
|
+
* only this resolver understands (see the extractor's emitModuleWiring):
|
|
21
|
+
*
|
|
22
|
+
* - `module.M:file` → the entry file of the module's local source
|
|
23
|
+
* directory (an `imports` edge, so a module call connects to the code
|
|
24
|
+
* it instantiates).
|
|
25
|
+
* - `module.M:var.<in>` → the child module's `variable "<in>"` node —
|
|
26
|
+
* the module block sets that variable, so "what depends on the child's
|
|
27
|
+
* var.cidr" reaches every caller.
|
|
28
|
+
* - `module.M:output.<o>` → the child module's `output "<o>"` node —
|
|
29
|
+
* `module.M.o` uses flow through to the output's definition instead of
|
|
30
|
+
* dead-ending at the module declaration.
|
|
31
|
+
*
|
|
32
|
+
* The module's `source` is re-read from the declaration's file (cached
|
|
33
|
+
* lines); only local `./`/`../` sources bridge. Registry/git sources stay
|
|
34
|
+
* unresolved — an out-of-repo module is a visible boundary, never a guess.
|
|
35
|
+
*/
|
|
36
|
+
import type { FrameworkResolver } from '../types';
|
|
37
|
+
export declare const terraformResolver: FrameworkResolver;
|
|
38
|
+
//# sourceMappingURL=terraform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/terraform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAKjG,eAAO,MAAM,iBAAiB,EAAE,iBAqE/B,CAAC"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Terraform Framework Resolver
|
|
4
|
+
*
|
|
5
|
+
* Terraform's scoping rule is narrow and directory-shaped: `var.X`,
|
|
6
|
+
* `local.X`, `module.M`, and resource/data references resolve ONLY inside
|
|
7
|
+
* the same module directory as the reference site. The generic name matcher
|
|
8
|
+
* resolves by qualified-name alone, so a reference to `var.project_id` from
|
|
9
|
+
* `modules/net-vpc/main.tf` could bind to a `variable "project_id"` declared
|
|
10
|
+
* in an unrelated module — a wrong cross-module edge that poisons impact
|
|
11
|
+
* analysis. This resolver enforces the real semantics:
|
|
12
|
+
*
|
|
13
|
+
* 1. Same directory as the reference site → resolve (highest confidence).
|
|
14
|
+
* 2. `.tfvars` files additionally walk UP to the nearest ancestor
|
|
15
|
+
* directory declaring the variable (`terraform apply -var-file=envs/prod.tfvars`
|
|
16
|
+
* sets ROOT module variables from a subdirectory).
|
|
17
|
+
* 3. Otherwise: no edge. Terraform cannot reference across sibling module
|
|
18
|
+
* directories, so a non-local candidate is never a correct target.
|
|
19
|
+
*
|
|
20
|
+
* It also bridges the module boundary through `:`-scoped references that
|
|
21
|
+
* only this resolver understands (see the extractor's emitModuleWiring):
|
|
22
|
+
*
|
|
23
|
+
* - `module.M:file` → the entry file of the module's local source
|
|
24
|
+
* directory (an `imports` edge, so a module call connects to the code
|
|
25
|
+
* it instantiates).
|
|
26
|
+
* - `module.M:var.<in>` → the child module's `variable "<in>"` node —
|
|
27
|
+
* the module block sets that variable, so "what depends on the child's
|
|
28
|
+
* var.cidr" reaches every caller.
|
|
29
|
+
* - `module.M:output.<o>` → the child module's `output "<o>"` node —
|
|
30
|
+
* `module.M.o` uses flow through to the output's definition instead of
|
|
31
|
+
* dead-ending at the module declaration.
|
|
32
|
+
*
|
|
33
|
+
* The module's `source` is re-read from the declaration's file (cached
|
|
34
|
+
* lines); only local `./`/`../` sources bridge. Registry/git sources stay
|
|
35
|
+
* unresolved — an out-of-repo module is a visible boundary, never a guess.
|
|
36
|
+
*/
|
|
37
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
38
|
+
if (k2 === undefined) k2 = k;
|
|
39
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
40
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
41
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
42
|
+
}
|
|
43
|
+
Object.defineProperty(o, k2, desc);
|
|
44
|
+
}) : (function(o, m, k, k2) {
|
|
45
|
+
if (k2 === undefined) k2 = k;
|
|
46
|
+
o[k2] = m[k];
|
|
47
|
+
}));
|
|
48
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
49
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
50
|
+
}) : function(o, v) {
|
|
51
|
+
o["default"] = v;
|
|
52
|
+
});
|
|
53
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
54
|
+
var ownKeys = function(o) {
|
|
55
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
56
|
+
var ar = [];
|
|
57
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
58
|
+
return ar;
|
|
59
|
+
};
|
|
60
|
+
return ownKeys(o);
|
|
61
|
+
};
|
|
62
|
+
return function (mod) {
|
|
63
|
+
if (mod && mod.__esModule) return mod;
|
|
64
|
+
var result = {};
|
|
65
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
66
|
+
__setModuleDefault(result, mod);
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
})();
|
|
70
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
71
|
+
exports.terraformResolver = void 0;
|
|
72
|
+
const path = __importStar(require("path"));
|
|
73
|
+
/** `module.M:file` / `module.M:var.X` / `module.M:output.X` / `module.M:remote-output.X` — extractor-emitted scoped refs. */
|
|
74
|
+
const SCOPED_REF = /^module\.([^.:\s]+):(file$|var\.|output\.|remote-output\.)/;
|
|
75
|
+
exports.terraformResolver = {
|
|
76
|
+
name: 'terraform',
|
|
77
|
+
languages: ['terraform'],
|
|
78
|
+
detect(context) {
|
|
79
|
+
return context.getAllFiles().some((f) => f.endsWith('.tf') || f.endsWith('.tfvars') || f.endsWith('.tofu'));
|
|
80
|
+
},
|
|
81
|
+
// Scoped refs name no declared symbol; opt them through the resolver's
|
|
82
|
+
// name-exists pre-filter so they reach resolve() at all.
|
|
83
|
+
claimsReference(name) {
|
|
84
|
+
return SCOPED_REF.test(name);
|
|
85
|
+
},
|
|
86
|
+
resolve(ref, context) {
|
|
87
|
+
if (ref.language !== 'terraform')
|
|
88
|
+
return null;
|
|
89
|
+
const qname = ref.referenceName;
|
|
90
|
+
const refDir = dirOf(ref.filePath);
|
|
91
|
+
// --- module-boundary bridge: module.M:file / module.M:var.X / module.M:output.X ---
|
|
92
|
+
const scoped = qname.match(/^module\.([^.:\s]+):(.+)$/);
|
|
93
|
+
if (scoped) {
|
|
94
|
+
return resolveScopedModuleRef(ref, scoped[1], scoped[2], refDir, context);
|
|
95
|
+
}
|
|
96
|
+
const candidates = context.getNodesByQualifiedName(qname);
|
|
97
|
+
if (candidates.length === 0)
|
|
98
|
+
return null;
|
|
99
|
+
// 1. Same directory — the only scope Terraform can actually reference.
|
|
100
|
+
const sameDir = candidates.filter((c) => dirOf(c.filePath) === refDir);
|
|
101
|
+
if (sameDir.length > 0) {
|
|
102
|
+
return {
|
|
103
|
+
original: ref,
|
|
104
|
+
targetNodeId: sameDir[0].id,
|
|
105
|
+
confidence: 0.95,
|
|
106
|
+
resolvedBy: 'framework',
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// 2. `.tfvars` assignments set ROOT module variables, and var-files are
|
|
110
|
+
// routinely kept in a subdirectory (`envs/prod.tfvars`). Walk up to
|
|
111
|
+
// the nearest ancestor directory that declares the variable.
|
|
112
|
+
if (ref.filePath.endsWith('.tfvars') && qname.startsWith('var.')) {
|
|
113
|
+
const up = nearestAncestorMatch(candidates, refDir);
|
|
114
|
+
if (up) {
|
|
115
|
+
return { original: ref, targetNodeId: up.id, confidence: 0.9, resolvedBy: 'framework' };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// 2b. Provider configurations are the one construct Terraform inherits
|
|
119
|
+
// across the module tree: they're declared in the root (or a parent)
|
|
120
|
+
// module and passed down, so `provider = aws.east` inside a child
|
|
121
|
+
// module legitimately names a configuration declared above it.
|
|
122
|
+
if (qname.startsWith('provider.')) {
|
|
123
|
+
const configs = candidates.filter((c) => c.kind === 'namespace');
|
|
124
|
+
const up = nearestAncestorMatch(configs, refDir);
|
|
125
|
+
if (up) {
|
|
126
|
+
return { original: ref, targetNodeId: up.id, confidence: 0.9, resolvedBy: 'framework' };
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
// 3. No same-directory declaration → no edge. A candidate in another
|
|
131
|
+
// module directory is never the real target (cross-module access only
|
|
132
|
+
// exists through module.M inputs/outputs, bridged above), and a wrong
|
|
133
|
+
// edge is worse than none.
|
|
134
|
+
return null;
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
/** Nearest candidate walking UP the directory tree from refDir (exclusive). */
|
|
138
|
+
function nearestAncestorMatch(candidates, refDir) {
|
|
139
|
+
for (let dir = parentOf(refDir); dir !== null; dir = parentOf(dir)) {
|
|
140
|
+
const inDir = candidates.filter((c) => dirOf(c.filePath) === dir);
|
|
141
|
+
if (inDir.length > 0)
|
|
142
|
+
return inDir[0];
|
|
143
|
+
}
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Resolve `module.M:<child>` by locating the `module "M"` declaration in the
|
|
148
|
+
* reference's own directory, reading its `source` attribute, and looking the
|
|
149
|
+
* child symbol up inside that directory.
|
|
150
|
+
*/
|
|
151
|
+
function resolveScopedModuleRef(ref, moduleName, child, refDir, context) {
|
|
152
|
+
const decls = context
|
|
153
|
+
.getNodesByQualifiedName(`module.${moduleName}`)
|
|
154
|
+
.filter((n) => n.kind === 'module');
|
|
155
|
+
if (decls.length === 0)
|
|
156
|
+
return null;
|
|
157
|
+
// Terraform scoping: the declaration lives in the reference's directory.
|
|
158
|
+
const decl = decls.find((d) => dirOf(d.filePath) === refDir) ?? (decls.length === 1 ? decls[0] : null);
|
|
159
|
+
if (!decl)
|
|
160
|
+
return null;
|
|
161
|
+
const source = readModuleAttr(decl, 'source', context);
|
|
162
|
+
if (!source)
|
|
163
|
+
return null;
|
|
164
|
+
// --- cloudposse/atmos remote-state: module.M.outputs.X where M is the
|
|
165
|
+
// stack-config remote-state module reading another COMPONENT's state. The
|
|
166
|
+
// component name is static in the monorepo case (`component = "vpc"` or
|
|
167
|
+
// "eks/cluster"), so bridge to that component directory's own
|
|
168
|
+
// `output "X"` — but only when every gate holds: the module source is the
|
|
169
|
+
// remote-state module, the component is a string literal, and exactly ONE
|
|
170
|
+
// directory in the repo matches the component name and declares that
|
|
171
|
+
// output. Anything dynamic or ambiguous stays a visible boundary.
|
|
172
|
+
if (child.startsWith('remote-output.')) {
|
|
173
|
+
if (!/\/remote-state(\/|$)/.test(source))
|
|
174
|
+
return null;
|
|
175
|
+
let component = readModuleAttr(decl, 'component', context);
|
|
176
|
+
if (!component) {
|
|
177
|
+
// The other half of real-world declarations indirect through a
|
|
178
|
+
// variable with a literal default in the same directory
|
|
179
|
+
// (`component = var.vpc_component_name` + `default = "vpc"`) — the
|
|
180
|
+
// component's declared static wiring. One hop, same literal gate.
|
|
181
|
+
const viaVar = readNodeSpanMatch(decl, /^\s*component\s*=\s*var\.([A-Za-z0-9_-]+)\s*$/, context);
|
|
182
|
+
if (viaVar) {
|
|
183
|
+
const declared = context
|
|
184
|
+
.getNodesByQualifiedName(`var.${viaVar}`)
|
|
185
|
+
.filter((n) => dirOf(n.filePath) === dirOf(decl.filePath));
|
|
186
|
+
if (declared.length === 1) {
|
|
187
|
+
component = readNodeSpanMatch(declared[0], /^\s*default\s*=\s*"([^"]+)"/, context);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (!component)
|
|
192
|
+
return null;
|
|
193
|
+
const outName = child.slice('remote-output.'.length);
|
|
194
|
+
const outs = context
|
|
195
|
+
.getNodesByQualifiedName(`output.${outName}`)
|
|
196
|
+
.filter((o) => {
|
|
197
|
+
const d = dirOf(o.filePath);
|
|
198
|
+
return d === component || d.endsWith('/' + component);
|
|
199
|
+
});
|
|
200
|
+
if (outs.length === 0)
|
|
201
|
+
return null;
|
|
202
|
+
const dirs = new Set(outs.map((o) => dirOf(o.filePath)));
|
|
203
|
+
if (dirs.size > 1)
|
|
204
|
+
return null; // two directories claim this component name — never guess
|
|
205
|
+
return { original: ref, targetNodeId: outs[0].id, confidence: 0.9, resolvedBy: 'framework' };
|
|
206
|
+
}
|
|
207
|
+
if (!(source.startsWith('./') || source.startsWith('../'))) {
|
|
208
|
+
// Registry / git / absolute sources are out-of-repo: stay unresolved.
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
const targetDir = normalizeRel(joinDirs(dirOf(decl.filePath), source));
|
|
212
|
+
if (child === 'file') {
|
|
213
|
+
const tfFiles = context
|
|
214
|
+
.getAllFiles()
|
|
215
|
+
.filter((f) => dirOf(f) === targetDir && (f.endsWith('.tf') || f.endsWith('.tofu')))
|
|
216
|
+
.sort();
|
|
217
|
+
if (tfFiles.length === 0)
|
|
218
|
+
return null;
|
|
219
|
+
const entry = tfFiles.find((f) => f.endsWith('/main.tf') || f === 'main.tf') ?? tfFiles[0];
|
|
220
|
+
const fileNode = context.getNodesInFile(entry).find((n) => n.kind === 'file');
|
|
221
|
+
if (!fileNode)
|
|
222
|
+
return null;
|
|
223
|
+
return { original: ref, targetNodeId: fileNode.id, confidence: 0.95, resolvedBy: 'framework' };
|
|
224
|
+
}
|
|
225
|
+
// child is `var.X` or `output.X` — the child module's own qualified names.
|
|
226
|
+
const target = context
|
|
227
|
+
.getNodesByQualifiedName(child)
|
|
228
|
+
.filter((c) => dirOf(c.filePath) === targetDir);
|
|
229
|
+
if (target.length === 0)
|
|
230
|
+
return null;
|
|
231
|
+
return { original: ref, targetNodeId: target[0].id, confidence: 0.95, resolvedBy: 'framework' };
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* A direct string-literal attribute (`source = "…"`, `component = "…"`) of a
|
|
235
|
+
* module declaration, re-read from its file (project paths are stored
|
|
236
|
+
* relative; node metadata isn't persisted, so the declaration's line span +
|
|
237
|
+
* cached file lines are the durable carrier). Non-literal values (variables,
|
|
238
|
+
* expressions) return null — dynamic wiring is never guessed.
|
|
239
|
+
*/
|
|
240
|
+
function readModuleAttr(decl, name, context) {
|
|
241
|
+
return readNodeSpanMatch(decl, new RegExp(`^\\s*${name}\\s*=\\s*"([^"]+)"`), context);
|
|
242
|
+
}
|
|
243
|
+
/** First capture of `re` across the node's line span, or null. */
|
|
244
|
+
function readNodeSpanMatch(node, re, context) {
|
|
245
|
+
const lines = context.getFileLines?.(node.filePath) ?? context.readFile(node.filePath)?.split('\n') ?? null;
|
|
246
|
+
if (!lines)
|
|
247
|
+
return null;
|
|
248
|
+
const end = Math.min(node.endLine, lines.length);
|
|
249
|
+
for (let i = Math.max(node.startLine - 1, 0); i < end; i++) {
|
|
250
|
+
const m = lines[i].match(re);
|
|
251
|
+
if (m)
|
|
252
|
+
return m[1];
|
|
253
|
+
}
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
/** Directory of a stored (forward-slash, project-relative) path. */
|
|
257
|
+
function dirOf(p) {
|
|
258
|
+
const d = path.dirname(p);
|
|
259
|
+
return d === '' ? '.' : d;
|
|
260
|
+
}
|
|
261
|
+
/** Parent directory, or null above the project root. */
|
|
262
|
+
function parentOf(dir) {
|
|
263
|
+
if (dir === '.' || dir === '')
|
|
264
|
+
return null;
|
|
265
|
+
const parent = path.dirname(dir);
|
|
266
|
+
return parent === dir ? null : parent;
|
|
267
|
+
}
|
|
268
|
+
/** Join a base directory with a `./`/`../` relative source path. */
|
|
269
|
+
function joinDirs(base, rel) {
|
|
270
|
+
return path.join(base === '.' ? '' : base, rel);
|
|
271
|
+
}
|
|
272
|
+
/** Normalize to the stored path shape: forward slashes, '.' for the root. */
|
|
273
|
+
function normalizeRel(p) {
|
|
274
|
+
const n = path.normalize(p).replace(/\\/g, '/').replace(/\/+$/, '');
|
|
275
|
+
return n === '' ? '.' : n;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=terraform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/terraform.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Handles Vue component references, compiler macros (defineProps, etc.),
|
|
5
5
|
* Nuxt auto-imports, and Nuxt file-based routing patterns.
|
|
6
6
|
*/
|
|
7
|
-
import { FrameworkResolver } from '../types'
|
|
8
|
-
export declare const vueResolver: FrameworkResolver
|
|
9
|
-
//# sourceMappingURL=vue.d.ts.map
|
|
7
|
+
import { FrameworkResolver } from '../types';
|
|
8
|
+
export declare const vueResolver: FrameworkResolver;
|
|
9
|
+
//# sourceMappingURL=vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/vue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAuE5F,eAAO,MAAM,WAAW,EAAE,iBAyLzB,CAAC"}
|
|
@@ -253,36 +253,33 @@ function isPascalCase(str) {
|
|
|
253
253
|
* Resolve a Vue component reference to its .vue file
|
|
254
254
|
*/
|
|
255
255
|
function resolveComponent(name, fromFile, context) {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
//
|
|
259
|
-
|
|
256
|
+
// Collect ALL basename matches first. The previous version returned the
|
|
257
|
+
// FIRST `Button.vue` found anywhere in the tree (its same-directory pass
|
|
258
|
+
// below was unreachable), so a multi-app monorepo with one `Button.vue`
|
|
259
|
+
// per app resolved to an arbitrary one (#764).
|
|
260
|
+
const matches = [];
|
|
261
|
+
for (const file of context.getAllFiles()) {
|
|
262
|
+
if (!file.endsWith('.vue'))
|
|
263
|
+
continue;
|
|
260
264
|
const fileName = file.split(/[/\\]/).pop() || '';
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const nodes = context.getNodesInFile(file);
|
|
264
|
-
const component = nodes.find((n) => n.kind === 'component' && n.name === name);
|
|
265
|
-
if (component) {
|
|
266
|
-
return component.id;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
265
|
+
if (fileName.replace(/\.vue$/, '') === name)
|
|
266
|
+
matches.push(file);
|
|
269
267
|
}
|
|
270
|
-
|
|
268
|
+
if (matches.length === 0)
|
|
269
|
+
return null;
|
|
270
|
+
const componentIn = (file) => {
|
|
271
|
+
const nodes = context.getNodesInFile(file);
|
|
272
|
+
const component = nodes.find((n) => n.kind === 'component' && n.name === name);
|
|
273
|
+
return component ? component.id : null;
|
|
274
|
+
};
|
|
275
|
+
// Same directory first for specificity
|
|
271
276
|
const fromDir = fromFile.substring(0, fromFile.lastIndexOf('/'));
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const component = nodes.find((n) => n.kind === 'component');
|
|
279
|
-
if (component) {
|
|
280
|
-
return component.id;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
return null;
|
|
277
|
+
const sameDir = matches.filter((f) => f.startsWith(fromDir));
|
|
278
|
+
if (sameDir.length > 0)
|
|
279
|
+
return componentIn(sameDir[0]);
|
|
280
|
+
// No positional signal: only an UNAMBIGUOUS basename may resolve;
|
|
281
|
+
// ambiguity falls through to the name-matcher's proximity scoring.
|
|
282
|
+
return matches.length === 1 ? componentIn(matches[0]) : null;
|
|
286
283
|
}
|
|
287
284
|
/**
|
|
288
285
|
* Convert a file path to a Nuxt route path
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/vue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go module path detection.
|
|
3
|
+
*
|
|
4
|
+
* A Go monorepo's cross-package calls (`pkga.FuncX(...)`) only resolve when
|
|
5
|
+
* the resolver knows the project's module path (the `module ...` directive
|
|
6
|
+
* in `go.mod`). Without it, `isExternalImport` treats every in-module import
|
|
7
|
+
* — `github.com/example/myproject/pkga` — as a third-party package, so
|
|
8
|
+
* resolution falls through to name-matching with path proximity and returns
|
|
9
|
+
* a tiny fraction of the real call sites. See issue #388.
|
|
10
|
+
*/
|
|
11
|
+
export interface GoModule {
|
|
12
|
+
/** The module path declared in `go.mod`, e.g. `github.com/example/myproject` */
|
|
13
|
+
modulePath: string;
|
|
14
|
+
/** Absolute path to the directory containing the `go.mod` file. */
|
|
15
|
+
rootDir: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Read the `go.mod` file at the project root and extract the module path.
|
|
19
|
+
* Returns `null` if no `go.mod` exists or it has no `module` directive.
|
|
20
|
+
*
|
|
21
|
+
* Limitation: only the project-root `go.mod` is read. Nested `go.mod` files
|
|
22
|
+
* (Go workspaces, monorepos with multiple modules) are not yet resolved —
|
|
23
|
+
* a follow-up if a real repro shows up.
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadGoModule(projectRoot: string): GoModule | null;
|
|
26
|
+
//# sourceMappingURL=go-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-module.d.ts","sourceRoot":"","sources":["../../src/resolution/go-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,QAAQ;IACvB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAiBjE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Go module path detection.
|
|
4
|
+
*
|
|
5
|
+
* A Go monorepo's cross-package calls (`pkga.FuncX(...)`) only resolve when
|
|
6
|
+
* the resolver knows the project's module path (the `module ...` directive
|
|
7
|
+
* in `go.mod`). Without it, `isExternalImport` treats every in-module import
|
|
8
|
+
* — `github.com/example/myproject/pkga` — as a third-party package, so
|
|
9
|
+
* resolution falls through to name-matching with path proximity and returns
|
|
10
|
+
* a tiny fraction of the real call sites. See issue #388.
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.loadGoModule = loadGoModule;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
/**
|
|
50
|
+
* Read the `go.mod` file at the project root and extract the module path.
|
|
51
|
+
* Returns `null` if no `go.mod` exists or it has no `module` directive.
|
|
52
|
+
*
|
|
53
|
+
* Limitation: only the project-root `go.mod` is read. Nested `go.mod` files
|
|
54
|
+
* (Go workspaces, monorepos with multiple modules) are not yet resolved —
|
|
55
|
+
* a follow-up if a real repro shows up.
|
|
56
|
+
*/
|
|
57
|
+
function loadGoModule(projectRoot) {
|
|
58
|
+
const goModPath = path.join(projectRoot, 'go.mod');
|
|
59
|
+
let content;
|
|
60
|
+
try {
|
|
61
|
+
content = fs.readFileSync(goModPath, 'utf-8');
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
// `module <path>` is the first non-comment directive in any valid go.mod.
|
|
67
|
+
// Strip line comments so a `// module foo` doesn't false-match.
|
|
68
|
+
const stripped = content.replace(/\/\/[^\n]*/g, '');
|
|
69
|
+
const match = stripped.match(/^\s*module\s+(\S+)\s*$/m);
|
|
70
|
+
if (!match)
|
|
71
|
+
return null;
|
|
72
|
+
// Strip optional quoting around the module path.
|
|
73
|
+
const modulePath = match[1].replace(/^["']|["']$/g, '');
|
|
74
|
+
if (!modulePath)
|
|
75
|
+
return null;
|
|
76
|
+
return { modulePath, rootDir: projectRoot };
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=go-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-module.js","sourceRoot":"","sources":["../../src/resolution/go-module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,oCAiBC;AAnCD,uCAAyB;AACzB,2CAA6B;AAS7B;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,WAAmB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,iDAAiD;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoFrame route → controller-method dispatch synthesis (#747).
|
|
3
|
+
*
|
|
4
|
+
* GoFrame binds routes reflectively (`group.Bind(user.NewV1())`), so the route
|
|
5
|
+
* declared in a request type's `g.Meta` tag has no static edge to the method
|
|
6
|
+
* that serves it. The `goframeResolver` extract pass turns each `g.Meta` into a
|
|
7
|
+
* `route` node carrying its request type in the qualifiedName; this whole-graph
|
|
8
|
+
* pass closes the loop by joining each route to its handler.
|
|
9
|
+
*
|
|
10
|
+
* The join key is the REQUEST TYPE, not the method name — GoFrame method names
|
|
11
|
+
* are free (`DeptSearchReq` is served by `List`, `DeptAddReq` by `Add`), so the
|
|
12
|
+
* only reliable link is the request type appearing in the handler's parameter
|
|
13
|
+
* signature:
|
|
14
|
+
*
|
|
15
|
+
* func (c *sysDeptController) Add(ctx context.Context, req *system.DeptAddReq) (…)
|
|
16
|
+
* ^^^^^^^^^^^^^^^^ the join
|
|
17
|
+
*
|
|
18
|
+
* Go method nodes already carry that signature, so no source re-read is needed.
|
|
19
|
+
* Each synthesized edge is `kind:'calls'`, `provenance:'heuristic'`,
|
|
20
|
+
* `metadata.synthesizedBy:'goframe-route'` — a reflective-dispatch bridge, so
|
|
21
|
+
* `codegraph_explore` surfaces it as a dynamic hop rather than a literal call,
|
|
22
|
+
* and the handler's callers list the route that reaches it. A project with no
|
|
23
|
+
* GoFrame routes is a no-op.
|
|
24
|
+
*/
|
|
25
|
+
import type { Edge } from '../types';
|
|
26
|
+
import type { ResolutionContext } from './types';
|
|
27
|
+
import type { MaybeYield } from './cooperative-yield';
|
|
28
|
+
export declare function goframeRouteEdges(ctx: ResolutionContext, onYield: MaybeYield): Promise<Edge[]>;
|
|
29
|
+
//# sourceMappingURL=goframe-synthesizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goframe-synthesizer.d.ts","sourceRoot":"","sources":["../../src/resolution/goframe-synthesizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAiDtD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAuEpG"}
|