codegraph-java 0.1.0
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 +131 -0
- package/dist/base-graph/index.d.ts +57 -0
- package/dist/base-graph/index.d.ts.map +1 -0
- package/dist/base-graph/index.js +175 -0
- package/dist/base-graph/index.js.map +1 -0
- package/dist/bin/codegraph.d.ts +28 -0
- package/dist/bin/codegraph.d.ts.map +1 -0
- package/dist/bin/codegraph.js +2615 -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 +45 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +98 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/bin/uninstall.d.ts +14 -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 +36 -0
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +269 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +131 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +1378 -0
- 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 +380 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +854 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +44 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +255 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +1060 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +3191 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +209 -0
- package/dist/db/sqlite-adapter.d.ts +55 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +135 -0
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/db/wal-valve.d.ts +119 -0
- package/dist/db/wal-valve.d.ts.map +1 -0
- package/dist/db/wal-valve.js +290 -0
- package/dist/db/wal-valve.js.map +1 -0
- package/dist/directory.d.ts +213 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +781 -0
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +150 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +234 -0
- package/dist/errors.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 +746 -0
- package/dist/extraction/function-ref.js.map +1 -0
- package/dist/extraction/generated-detection.d.ts +66 -0
- package/dist/extraction/generated-detection.d.ts.map +1 -0
- package/dist/extraction/generated-detection.js +248 -0
- package/dist/extraction/generated-detection.js.map +1 -0
- package/dist/extraction/grammars.d.ts +148 -0
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +558 -0
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +367 -0
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +2833 -0
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/kernel/decode.d.ts +9 -0
- package/dist/extraction/kernel/decode.d.ts.map +1 -0
- package/dist/extraction/kernel/decode.js +162 -0
- package/dist/extraction/kernel/decode.js.map +1 -0
- package/dist/extraction/kernel/index.d.ts +64 -0
- package/dist/extraction/kernel/index.d.ts.map +1 -0
- package/dist/extraction/kernel/index.js +204 -0
- package/dist/extraction/kernel/index.js.map +1 -0
- package/dist/extraction/kernel/layout.d.ts +101 -0
- package/dist/extraction/kernel/layout.d.ts.map +1 -0
- package/dist/extraction/kernel/layout.js +104 -0
- package/dist/extraction/kernel/layout.js.map +1 -0
- package/dist/extraction/kernel/loader.d.ts +103 -0
- package/dist/extraction/kernel/loader.d.ts.map +1 -0
- package/dist/extraction/kernel/loader.js +146 -0
- package/dist/extraction/kernel/loader.js.map +1 -0
- package/dist/extraction/languages/c-cpp.d.ts +124 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +1689 -0
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +11 -0
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +15 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -0
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +315 -0
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +23 -0
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +169 -0
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/parse-pool.d.ts +167 -0
- package/dist/extraction/parse-pool.d.ts.map +1 -0
- package/dist/extraction/parse-pool.js +421 -0
- package/dist/extraction/parse-pool.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +8 -0
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +138 -0
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/store-worker.d.ts +24 -0
- package/dist/extraction/store-worker.d.ts.map +1 -0
- package/dist/extraction/store-worker.js +139 -0
- package/dist/extraction/store-worker.js.map +1 -0
- package/dist/extraction/store-writer.d.ts +63 -0
- package/dist/extraction/store-writer.d.ts.map +1 -0
- package/dist/extraction/store-writer.js +174 -0
- package/dist/extraction/store-writer.js.map +1 -0
- package/dist/extraction/syntax-tokens.d.ts +103 -0
- package/dist/extraction/syntax-tokens.d.ts.map +1 -0
- package/dist/extraction/syntax-tokens.js +381 -0
- package/dist/extraction/syntax-tokens.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +153 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +260 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js +10 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +745 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +6725 -0
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +53 -0
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/dist/extraction/wasm-runtime-flags.js +130 -0
- package/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/dist/graph/branch-guards.d.ts +248 -0
- package/dist/graph/branch-guards.d.ts.map +1 -0
- package/dist/graph/branch-guards.js +2231 -0
- package/dist/graph/branch-guards.js.map +1 -0
- package/dist/graph/dead-code.d.ts +251 -0
- package/dist/graph/dead-code.d.ts.map +1 -0
- package/dist/graph/dead-code.js +756 -0
- package/dist/graph/dead-code.js.map +1 -0
- package/dist/graph/dynamic-boundary-report.d.ts +121 -0
- package/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
- package/dist/graph/dynamic-boundary-report.js +283 -0
- package/dist/graph/dynamic-boundary-report.js.map +1 -0
- package/dist/graph/index.d.ts +12 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +28 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/named-symbol-flow.d.ts +153 -0
- package/dist/graph/named-symbol-flow.d.ts.map +1 -0
- package/dist/graph/named-symbol-flow.js +609 -0
- package/dist/graph/named-symbol-flow.js.map +1 -0
- package/dist/graph/queries.d.ts +106 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +341 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +127 -0
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +599 -0
- package/dist/graph/traversal.js.map +1 -0
- package/dist/graph/type-hierarchy.d.ts +155 -0
- package/dist/graph/type-hierarchy.d.ts.map +1 -0
- package/dist/graph/type-hierarchy.js +382 -0
- package/dist/graph/type-hierarchy.js.map +1 -0
- package/dist/index.d.ts +886 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2019 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/beta-signup.d.ts +54 -0
- package/dist/installer/beta-signup.d.ts.map +1 -0
- package/dist/installer/beta-signup.js +178 -0
- package/dist/installer/beta-signup.js.map +1 -0
- package/dist/installer/config-writer.d.ts +28 -0
- 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 +143 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +632 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/instructions-template.d.ts +41 -0
- 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 +62 -0
- package/dist/installer/targets/claude.d.ts.map +1 -0
- package/dist/installer/targets/claude.js +486 -0
- package/dist/installer/targets/claude.js.map +1 -0
- package/dist/installer/targets/codex.d.ts +32 -0
- package/dist/installer/targets/codex.d.ts.map +1 -0
- package/dist/installer/targets/codex.js +202 -0
- package/dist/installer/targets/codex.js.map +1 -0
- package/dist/installer/targets/copilot-cli.d.ts +32 -0
- package/dist/installer/targets/copilot-cli.d.ts.map +1 -0
- package/dist/installer/targets/copilot-cli.js +209 -0
- package/dist/installer/targets/copilot-cli.js.map +1 -0
- package/dist/installer/targets/copilot-jetbrains.d.ts +42 -0
- package/dist/installer/targets/copilot-jetbrains.d.ts.map +1 -0
- package/dist/installer/targets/copilot-jetbrains.js +238 -0
- package/dist/installer/targets/copilot-jetbrains.js.map +1 -0
- package/dist/installer/targets/copilot-vscode.d.ts +47 -0
- package/dist/installer/targets/copilot-vscode.d.ts.map +1 -0
- package/dist/installer/targets/copilot-vscode.js +219 -0
- package/dist/installer/targets/copilot-vscode.js.map +1 -0
- package/dist/installer/targets/cursor.d.ts +35 -0
- 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 +18 -0
- 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 +38 -0
- 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 +35 -0
- package/dist/installer/targets/registry.d.ts.map +1 -0
- package/dist/installer/targets/registry.js +101 -0
- package/dist/installer/targets/registry.js.map +1 -0
- package/dist/installer/targets/shared.d.ts +101 -0
- 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 +53 -0
- package/dist/installer/targets/toml.d.ts.map +1 -0
- package/dist/installer/targets/toml.js +226 -0
- package/dist/installer/targets/toml.js.map +1 -0
- package/dist/installer/targets/trae.d.ts +30 -0
- package/dist/installer/targets/trae.d.ts.map +1 -0
- package/dist/installer/targets/trae.js +164 -0
- package/dist/installer/targets/trae.js.map +1 -0
- package/dist/installer/targets/types.d.ts +108 -0
- 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/installer/targets/workbuddy.d.ts +29 -0
- package/dist/installer/targets/workbuddy.d.ts.map +1 -0
- package/dist/installer/targets/workbuddy.js +163 -0
- package/dist/installer/targets/workbuddy.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 +79 -0
- package/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/dist/mcp/daemon-paths.js +219 -0
- package/dist/mcp/daemon-paths.js.map +1 -0
- package/dist/mcp/daemon-registry.d.ts +57 -0
- package/dist/mcp/daemon-registry.d.ts.map +1 -0
- package/dist/mcp/daemon-registry.js +281 -0
- package/dist/mcp/daemon-registry.js.map +1 -0
- package/dist/mcp/daemon.d.ts +293 -0
- package/dist/mcp/daemon.d.ts.map +1 -0
- package/dist/mcp/daemon.js +864 -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 +125 -0
- package/dist/mcp/engine.d.ts.map +1 -0
- package/dist/mcp/engine.js +392 -0
- package/dist/mcp/engine.js.map +1 -0
- package/dist/mcp/explore-dedup.d.ts +137 -0
- package/dist/mcp/explore-dedup.d.ts.map +1 -0
- package/dist/mcp/explore-dedup.js +236 -0
- package/dist/mcp/explore-dedup.js.map +1 -0
- package/dist/mcp/explore-diagnostics.d.ts +289 -0
- package/dist/mcp/explore-diagnostics.d.ts.map +1 -0
- package/dist/mcp/explore-diagnostics.js +558 -0
- package/dist/mcp/explore-diagnostics.js.map +1 -0
- package/dist/mcp/explore-session-state.d.ts +217 -0
- package/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/dist/mcp/explore-session-state.js +322 -0
- package/dist/mcp/explore-session-state.js.map +1 -0
- package/dist/mcp/index.d.ts +137 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +567 -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 +269 -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 +672 -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 +34 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +111 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/session.d.ts +109 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +380 -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 +877 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +6371 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +188 -0
- 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 +158 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +489 -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 +1506 -0
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
- package/dist/resolution/callback-synthesizer.d.ts +59 -0
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/resolution/callback-synthesizer.js +4066 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -0
- package/dist/resolution/cooperative-yield.d.ts +40 -0
- package/dist/resolution/cooperative-yield.d.ts.map +1 -0
- package/dist/resolution/cooperative-yield.js +44 -0
- package/dist/resolution/cooperative-yield.js.map +1 -0
- package/dist/resolution/expo-router-synthesizer.d.ts +32 -0
- package/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/expo-router-synthesizer.js +189 -0
- package/dist/resolution/expo-router-synthesizer.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 +18 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.js +225 -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 +8 -0
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +335 -0
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/drupal.d.ts +51 -0
- package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/dist/resolution/frameworks/drupal.js +367 -0
- 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/expo-router.d.ts +189 -0
- package/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-router.js +785 -0
- package/dist/resolution/frameworks/expo-router.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +8 -0
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +540 -0
- 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 +8 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +184 -0
- 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 +30 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +72 -0
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +8 -0
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +517 -0
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +257 -0
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/nestjs.d.ts +26 -0
- package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nestjs.js +690 -0
- package/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/dist/resolution/frameworks/nextjs.d.ts +76 -0
- package/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nextjs.js +328 -0
- package/dist/resolution/frameworks/nextjs.js.map +1 -0
- package/dist/resolution/frameworks/object-literal.d.ts +32 -0
- package/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
- package/dist/resolution/frameworks/object-literal.js +139 -0
- package/dist/resolution/frameworks/object-literal.js.map +1 -0
- package/dist/resolution/frameworks/package-deps.d.ts +14 -0
- package/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
- package/dist/resolution/frameworks/package-deps.js +78 -0
- package/dist/resolution/frameworks/package-deps.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 +10 -0
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +566 -0
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react-native.d.ts +29 -0
- package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-native.js +549 -0
- package/dist/resolution/frameworks/react-native.js.map +1 -0
- package/dist/resolution/frameworks/react-router.d.ts +46 -0
- package/dist/resolution/frameworks/react-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-router.js +187 -0
- package/dist/resolution/frameworks/react-router.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +9 -0
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +257 -0
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +302 -0
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +8 -0
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +304 -0
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +258 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
- package/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/sveltekit-router.js +156 -0
- package/dist/resolution/frameworks/sveltekit-router.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 +10 -0
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +410 -0
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
- package/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/tanstack-router.js +437 -0
- package/dist/resolution/frameworks/tanstack-router.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-router.d.ts +82 -0
- package/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue-router.js +377 -0
- package/dist/resolution/frameworks/vue-router.js.map +1 -0
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +303 -0
- 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 +84 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +2240 -0
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +343 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +2352 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/lru-cache.d.ts +24 -0
- package/dist/resolution/lru-cache.d.ts.map +1 -0
- package/dist/resolution/lru-cache.js +62 -0
- package/dist/resolution/lru-cache.js.map +1 -0
- package/dist/resolution/memory-budget.d.ts +48 -0
- package/dist/resolution/memory-budget.d.ts.map +1 -0
- package/dist/resolution/memory-budget.js +162 -0
- package/dist/resolution/memory-budget.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +153 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +2412 -0
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/next-router-synthesizer.d.ts +27 -0
- package/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/next-router-synthesizer.js +113 -0
- package/dist/resolution/next-router-synthesizer.js.map +1 -0
- package/dist/resolution/path-aliases.d.ts +70 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +346 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/react-router-synthesizer.d.ts +33 -0
- package/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/react-router-synthesizer.js +126 -0
- package/dist/resolution/react-router-synthesizer.js.map +1 -0
- package/dist/resolution/resolver-pool.d.ts +106 -0
- package/dist/resolution/resolver-pool.d.ts.map +1 -0
- package/dist/resolution/resolver-pool.js +344 -0
- package/dist/resolution/resolver-pool.js.map +1 -0
- package/dist/resolution/resolver-worker.d.ts +17 -0
- package/dist/resolution/resolver-worker.d.ts.map +1 -0
- package/dist/resolution/resolver-worker.js +141 -0
- package/dist/resolution/resolver-worker.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +492 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
- package/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
- package/dist/resolution/sveltekit-synthesizer.js +173 -0
- package/dist/resolution/sveltekit-synthesizer.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/synth-utils.d.ts +26 -0
- package/dist/resolution/synth-utils.d.ts.map +1 -0
- package/dist/resolution/synth-utils.js +75 -0
- package/dist/resolution/synth-utils.js.map +1 -0
- package/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
- package/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/tanstack-router-synthesizer.js +114 -0
- package/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
- package/dist/resolution/tier-synthesizer.d.ts +48 -0
- package/dist/resolution/tier-synthesizer.d.ts.map +1 -0
- package/dist/resolution/tier-synthesizer.js +907 -0
- package/dist/resolution/tier-synthesizer.js.map +1 -0
- package/dist/resolution/types.d.ts +290 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +8 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/vue-router-synthesizer.d.ts +30 -0
- package/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
- package/dist/resolution/vue-router-synthesizer.js +115 -0
- package/dist/resolution/vue-router-synthesizer.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 +70 -0
- package/dist/search/identifier-segments.d.ts.map +1 -0
- package/dist/search/identifier-segments.js +205 -0
- package/dist/search/identifier-segments.js.map +1 -0
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/search/query-paths.d.ts +57 -0
- package/dist/search/query-paths.d.ts.map +1 -0
- package/dist/search/query-paths.js +298 -0
- package/dist/search/query-paths.js.map +1 -0
- package/dist/search/query-utils.d.ts +102 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +487 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sync/git-hooks.d.ts +45 -0
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +227 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +19 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +35 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/watch-policy.d.ts +48 -0
- package/dist/sync/watch-policy.d.ts.map +1 -0
- package/dist/sync/watch-policy.js +124 -0
- package/dist/sync/watch-policy.js.map +1 -0
- package/dist/sync/watcher.d.ts +401 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +967 -0
- 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 +486 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +118 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/color.d.ts +21 -0
- package/dist/ui/color.d.ts.map +1 -0
- package/dist/ui/color.js +42 -0
- package/dist/ui/color.js.map +1 -0
- package/dist/ui/glyphs.d.ts +67 -0
- package/dist/ui/glyphs.d.ts.map +1 -0
- package/dist/ui/glyphs.js +125 -0
- package/dist/ui/glyphs.js.map +1 -0
- package/dist/ui/shimmer-progress.d.ts +11 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +164 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -0
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +126 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +15 -0
- 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/ui-server/api/deadcode.d.ts +84 -0
- package/dist/ui-server/api/deadcode.d.ts.map +1 -0
- package/dist/ui-server/api/deadcode.js +136 -0
- package/dist/ui-server/api/deadcode.js.map +1 -0
- package/dist/ui-server/api/effects.d.ts +87 -0
- package/dist/ui-server/api/effects.d.ts.map +1 -0
- package/dist/ui-server/api/effects.js +499 -0
- package/dist/ui-server/api/effects.js.map +1 -0
- package/dist/ui-server/api/entrypoints.d.ts +86 -0
- package/dist/ui-server/api/entrypoints.d.ts.map +1 -0
- package/dist/ui-server/api/entrypoints.js +279 -0
- package/dist/ui-server/api/entrypoints.js.map +1 -0
- package/dist/ui-server/api/events.d.ts +183 -0
- package/dist/ui-server/api/events.d.ts.map +1 -0
- package/dist/ui-server/api/events.js +430 -0
- package/dist/ui-server/api/events.js.map +1 -0
- package/dist/ui-server/api/file.d.ts +66 -0
- package/dist/ui-server/api/file.d.ts.map +1 -0
- package/dist/ui-server/api/file.js +222 -0
- package/dist/ui-server/api/file.js.map +1 -0
- package/dist/ui-server/api/filecode.d.ts +126 -0
- package/dist/ui-server/api/filecode.d.ts.map +1 -0
- package/dist/ui-server/api/filecode.js +205 -0
- package/dist/ui-server/api/filecode.js.map +1 -0
- package/dist/ui-server/api/flow.d.ts +226 -0
- package/dist/ui-server/api/flow.d.ts.map +1 -0
- package/dist/ui-server/api/flow.js +611 -0
- package/dist/ui-server/api/flow.js.map +1 -0
- package/dist/ui-server/api/hierarchy.d.ts +81 -0
- package/dist/ui-server/api/hierarchy.d.ts.map +1 -0
- package/dist/ui-server/api/hierarchy.js +92 -0
- package/dist/ui-server/api/hierarchy.js.map +1 -0
- package/dist/ui-server/api/index.d.ts +90 -0
- package/dist/ui-server/api/index.d.ts.map +1 -0
- package/dist/ui-server/api/index.js +332 -0
- package/dist/ui-server/api/index.js.map +1 -0
- package/dist/ui-server/api/map.d.ts +187 -0
- package/dist/ui-server/api/map.d.ts.map +1 -0
- package/dist/ui-server/api/map.js +498 -0
- package/dist/ui-server/api/map.js.map +1 -0
- package/dist/ui-server/api/node.d.ts +81 -0
- package/dist/ui-server/api/node.d.ts.map +1 -0
- package/dist/ui-server/api/node.js +388 -0
- package/dist/ui-server/api/node.js.map +1 -0
- package/dist/ui-server/api/nodes.d.ts +25 -0
- package/dist/ui-server/api/nodes.d.ts.map +1 -0
- package/dist/ui-server/api/nodes.js +45 -0
- package/dist/ui-server/api/nodes.js.map +1 -0
- package/dist/ui-server/api/program.d.ts +139 -0
- package/dist/ui-server/api/program.d.ts.map +1 -0
- package/dist/ui-server/api/program.js +315 -0
- package/dist/ui-server/api/program.js.map +1 -0
- package/dist/ui-server/api/respond.d.ts +76 -0
- package/dist/ui-server/api/respond.d.ts.map +1 -0
- package/dist/ui-server/api/respond.js +186 -0
- package/dist/ui-server/api/respond.js.map +1 -0
- package/dist/ui-server/api/route-roots.d.ts +39 -0
- package/dist/ui-server/api/route-roots.d.ts.map +1 -0
- package/dist/ui-server/api/route-roots.js +96 -0
- package/dist/ui-server/api/route-roots.js.map +1 -0
- package/dist/ui-server/api/routes.d.ts +59 -0
- package/dist/ui-server/api/routes.d.ts.map +1 -0
- package/dist/ui-server/api/routes.js +112 -0
- package/dist/ui-server/api/routes.js.map +1 -0
- package/dist/ui-server/api/screens.d.ts +117 -0
- package/dist/ui-server/api/screens.d.ts.map +1 -0
- package/dist/ui-server/api/screens.js +611 -0
- package/dist/ui-server/api/screens.js.map +1 -0
- package/dist/ui-server/api/search.d.ts +29 -0
- package/dist/ui-server/api/search.d.ts.map +1 -0
- package/dist/ui-server/api/search.js +232 -0
- package/dist/ui-server/api/search.js.map +1 -0
- package/dist/ui-server/api/session.d.ts +52 -0
- package/dist/ui-server/api/session.d.ts.map +1 -0
- package/dist/ui-server/api/session.js +196 -0
- package/dist/ui-server/api/session.js.map +1 -0
- package/dist/ui-server/api/source.d.ts +200 -0
- package/dist/ui-server/api/source.d.ts.map +1 -0
- package/dist/ui-server/api/source.js +419 -0
- package/dist/ui-server/api/source.js.map +1 -0
- package/dist/ui-server/api/stats.d.ts +27 -0
- package/dist/ui-server/api/stats.d.ts.map +1 -0
- package/dist/ui-server/api/stats.js +164 -0
- package/dist/ui-server/api/stats.js.map +1 -0
- package/dist/ui-server/api/steps.d.ts +274 -0
- package/dist/ui-server/api/steps.d.ts.map +1 -0
- package/dist/ui-server/api/steps.js +1446 -0
- package/dist/ui-server/api/steps.js.map +1 -0
- package/dist/ui-server/api/trail-store.d.ts +142 -0
- package/dist/ui-server/api/trail-store.d.ts.map +1 -0
- package/dist/ui-server/api/trail-store.js +323 -0
- package/dist/ui-server/api/trail-store.js.map +1 -0
- package/dist/ui-server/api/trails.d.ts +163 -0
- package/dist/ui-server/api/trails.d.ts.map +1 -0
- package/dist/ui-server/api/trails.js +369 -0
- package/dist/ui-server/api/trails.js.map +1 -0
- package/dist/ui-server/api/when.d.ts +125 -0
- package/dist/ui-server/api/when.d.ts.map +1 -0
- package/dist/ui-server/api/when.js +251 -0
- package/dist/ui-server/api/when.js.map +1 -0
- package/dist/ui-server/api/wire.d.ts +179 -0
- package/dist/ui-server/api/wire.d.ts.map +1 -0
- package/dist/ui-server/api/wire.js +231 -0
- package/dist/ui-server/api/wire.js.map +1 -0
- package/dist/ui-server/assets.d.ts +40 -0
- package/dist/ui-server/assets.d.ts.map +1 -0
- package/dist/ui-server/assets.js +110 -0
- package/dist/ui-server/assets.js.map +1 -0
- package/dist/ui-server/constants.d.ts +32 -0
- package/dist/ui-server/constants.d.ts.map +1 -0
- package/dist/ui-server/constants.js +35 -0
- package/dist/ui-server/constants.js.map +1 -0
- package/dist/ui-server/highlight/index.d.ts +113 -0
- package/dist/ui-server/highlight/index.d.ts.map +1 -0
- package/dist/ui-server/highlight/index.js +307 -0
- package/dist/ui-server/highlight/index.js.map +1 -0
- package/dist/ui-server/highlight/languages.d.ts +36 -0
- package/dist/ui-server/highlight/languages.d.ts.map +1 -0
- package/dist/ui-server/highlight/languages.js +50 -0
- package/dist/ui-server/highlight/languages.js.map +1 -0
- package/dist/ui-server/index.d.ts +92 -0
- package/dist/ui-server/index.d.ts.map +1 -0
- package/dist/ui-server/index.js +399 -0
- package/dist/ui-server/index.js.map +1 -0
- package/dist/ui-server/open-browser.d.ts +31 -0
- package/dist/ui-server/open-browser.d.ts.map +1 -0
- package/dist/ui-server/open-browser.js +79 -0
- package/dist/ui-server/open-browser.js.map +1 -0
- package/dist/ui-server/security.d.ts +127 -0
- package/dist/ui-server/security.d.ts.map +1 -0
- package/dist/ui-server/security.js +332 -0
- package/dist/ui-server/security.js.map +1 -0
- package/dist/ui-server/static.d.ts +45 -0
- package/dist/ui-server/static.d.ts.map +1 -0
- package/dist/ui-server/static.js +165 -0
- package/dist/ui-server/static.js.map +1 -0
- package/dist/upgrade/index.d.ts +177 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +665 -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 +224 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +583 -0
- package/dist/utils.js.map +1 -0
- package/dist/viewer/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
- package/dist/viewer/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
- package/dist/viewer/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-2syK4fUT.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-CBJ8pzag.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-B4oTjJdl.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-CBjNughH.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-66oory27.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-BqAiT5Ww.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-B7_fu1kp.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-Bg0ZHwF4.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-D6eaYXMU.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-DRuN92E5.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
- package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
- package/dist/viewer/assets/index-2IPslW5t.js +13 -0
- package/dist/viewer/assets/index-DSwi2Seu.css +1 -0
- package/dist/viewer/index.html +16 -0
- package/package.json +67 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/entrypoints` — where to start reading a project you have never
|
|
3
|
+
* opened, and where a flow starts.
|
|
4
|
+
*
|
|
5
|
+
* The empty state, the resting search palette and the entry-points panel all
|
|
6
|
+
* have the same problem: a graph of thirteen thousand symbols and no obvious
|
|
7
|
+
* door. Four answers, every one of them derived from the graph rather than
|
|
8
|
+
* from a filename convention:
|
|
9
|
+
*
|
|
10
|
+
* - **Routes** — a request arriving from outside is the most literal entry a
|
|
11
|
+
* codebase has. Straight from the routing manifest (`/api/routes`), and
|
|
12
|
+
* absent for a project that is not a routed app. Carried with the file the
|
|
13
|
+
* URL is REGISTERED in as well as the one that serves it, because a router
|
|
14
|
+
* file is how a reader groups routes and the two are rarely the same file.
|
|
15
|
+
* - **Files that run something** — the engine records a statement at the top
|
|
16
|
+
* level of a file as an edge out of the *file* node, so a CLI, a worker
|
|
17
|
+
* entry or a build script has `calls` where a library module has none. That
|
|
18
|
+
* is what makes `src/bin/codegraph.ts` the root of this repo's CLI flow.
|
|
19
|
+
* Ranked by calls x how many other files they reach, so the file that both
|
|
20
|
+
* runs and wires the project together outranks a registration table that
|
|
21
|
+
* makes a hundred module-level calls into itself.
|
|
22
|
+
* - **Tests** — the other direction: not where the project starts, but what
|
|
23
|
+
* already exercises it. Ranked by how many other files a test reaches, so
|
|
24
|
+
* the suites that cross the most of the codebase come first.
|
|
25
|
+
* - **Hubs** — the most depended-on symbols. Not an entry in the "runs first"
|
|
26
|
+
* sense; an entry in the sense that reading one tells you the most about
|
|
27
|
+
* what the project is made of, and a change to one radiates furthest.
|
|
28
|
+
*
|
|
29
|
+
* Tests and fixtures are excluded from the two *reading* lists — "where do I
|
|
30
|
+
* start reading" never means a test — and the Tests list is built from the
|
|
31
|
+
* narrow {@link isTestPath}, not from {@link isTestFile}: an example, a
|
|
32
|
+
* benchmark or a fixture is not a test, and a heading that says "Tests" must
|
|
33
|
+
* not be quietly counting them.
|
|
34
|
+
*/
|
|
35
|
+
import type { CodeGraph } from '../../index';
|
|
36
|
+
import { type WireRoute } from './routes';
|
|
37
|
+
import { type WireList, type WireNodeRef } from './wire';
|
|
38
|
+
export interface WireEntryFile extends WireNodeRef {
|
|
39
|
+
/** Calls and instantiations made at the top level of the file. */
|
|
40
|
+
calls: number;
|
|
41
|
+
/** Distinct other files this one's symbols reach. */
|
|
42
|
+
reaches: number;
|
|
43
|
+
/** Other files reaching into this one. Zero means nothing imports it. */
|
|
44
|
+
dependents: number;
|
|
45
|
+
}
|
|
46
|
+
export interface WireEntryTest extends WireNodeRef {
|
|
47
|
+
/** Distinct other files this test reaches — what it exercises. */
|
|
48
|
+
reaches: number;
|
|
49
|
+
/** References behind that reach. */
|
|
50
|
+
refs: number;
|
|
51
|
+
}
|
|
52
|
+
export interface WireEntryHub extends WireNodeRef {
|
|
53
|
+
/** Distinct symbols that depend on this one. */
|
|
54
|
+
dependents: number;
|
|
55
|
+
}
|
|
56
|
+
export interface WireEntryPoints {
|
|
57
|
+
/**
|
|
58
|
+
* Frameworks the resolver detected, e.g. `["go"]`, `["express"]`.
|
|
59
|
+
*
|
|
60
|
+
* The Routes section's header names them: a route list is a claim about a
|
|
61
|
+
* framework's conventions, and saying which one produced it is the
|
|
62
|
+
* difference between a fact and an assertion.
|
|
63
|
+
*/
|
|
64
|
+
frameworks: string[];
|
|
65
|
+
routes: {
|
|
66
|
+
routed: boolean;
|
|
67
|
+
/** Every `route` node in the graph, resolved handler or not. */
|
|
68
|
+
routeCount: number;
|
|
69
|
+
items: WireList<WireRoute>;
|
|
70
|
+
};
|
|
71
|
+
/** `total` is a floor on these three — the server counts what its scan saw. */
|
|
72
|
+
files: WireList<WireEntryFile>;
|
|
73
|
+
tests: WireList<WireEntryTest>;
|
|
74
|
+
hubs: WireList<WireEntryHub>;
|
|
75
|
+
index: {
|
|
76
|
+
lastIndexedAt: number | null;
|
|
77
|
+
files: number;
|
|
78
|
+
};
|
|
79
|
+
timing: {
|
|
80
|
+
elapsedMs: number;
|
|
81
|
+
cached: boolean;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export declare function resetEntryPointsCache(): void;
|
|
85
|
+
export declare function buildEntryPoints(cg: CodeGraph, query: URLSearchParams): WireEntryPoints;
|
|
86
|
+
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/entrypoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAoC,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAwD3F,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,gEAAgE;QAChE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC5B,CAAC;IACF,+EAA+E;IAC/E,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAkBD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,CA0CvF"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `GET /api/entrypoints` — where to start reading a project you have never
|
|
4
|
+
* opened, and where a flow starts.
|
|
5
|
+
*
|
|
6
|
+
* The empty state, the resting search palette and the entry-points panel all
|
|
7
|
+
* have the same problem: a graph of thirteen thousand symbols and no obvious
|
|
8
|
+
* door. Four answers, every one of them derived from the graph rather than
|
|
9
|
+
* from a filename convention:
|
|
10
|
+
*
|
|
11
|
+
* - **Routes** — a request arriving from outside is the most literal entry a
|
|
12
|
+
* codebase has. Straight from the routing manifest (`/api/routes`), and
|
|
13
|
+
* absent for a project that is not a routed app. Carried with the file the
|
|
14
|
+
* URL is REGISTERED in as well as the one that serves it, because a router
|
|
15
|
+
* file is how a reader groups routes and the two are rarely the same file.
|
|
16
|
+
* - **Files that run something** — the engine records a statement at the top
|
|
17
|
+
* level of a file as an edge out of the *file* node, so a CLI, a worker
|
|
18
|
+
* entry or a build script has `calls` where a library module has none. That
|
|
19
|
+
* is what makes `src/bin/codegraph.ts` the root of this repo's CLI flow.
|
|
20
|
+
* Ranked by calls x how many other files they reach, so the file that both
|
|
21
|
+
* runs and wires the project together outranks a registration table that
|
|
22
|
+
* makes a hundred module-level calls into itself.
|
|
23
|
+
* - **Tests** — the other direction: not where the project starts, but what
|
|
24
|
+
* already exercises it. Ranked by how many other files a test reaches, so
|
|
25
|
+
* the suites that cross the most of the codebase come first.
|
|
26
|
+
* - **Hubs** — the most depended-on symbols. Not an entry in the "runs first"
|
|
27
|
+
* sense; an entry in the sense that reading one tells you the most about
|
|
28
|
+
* what the project is made of, and a change to one radiates furthest.
|
|
29
|
+
*
|
|
30
|
+
* Tests and fixtures are excluded from the two *reading* lists — "where do I
|
|
31
|
+
* start reading" never means a test — and the Tests list is built from the
|
|
32
|
+
* narrow {@link isTestPath}, not from {@link isTestFile}: an example, a
|
|
33
|
+
* benchmark or a fixture is not a test, and a heading that says "Tests" must
|
|
34
|
+
* not be quietly counting them.
|
|
35
|
+
*/
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.resetEntryPointsCache = resetEntryPointsCache;
|
|
38
|
+
exports.buildEntryPoints = buildEntryPoints;
|
|
39
|
+
const respond_1 = require("./respond");
|
|
40
|
+
const routes_1 = require("./routes");
|
|
41
|
+
const query_utils_1 = require("../../search/query-utils");
|
|
42
|
+
const wire_1 = require("./wire");
|
|
43
|
+
/** Rows per derived list, and the default for `limit`. */
|
|
44
|
+
const DEFAULT_LIMIT = 12;
|
|
45
|
+
/**
|
|
46
|
+
* Route rows, and the default for `routes`.
|
|
47
|
+
*
|
|
48
|
+
* Separate from `limit` because routes are the one list whose useful length is
|
|
49
|
+
* set by the project rather than by the reader: a panel that groups 60 routes
|
|
50
|
+
* under four router files is legible, while 60 rows of "most depended on" is
|
|
51
|
+
* a wall. Both are honest — every list carries the real total.
|
|
52
|
+
*/
|
|
53
|
+
const DEFAULT_ROUTE_LIMIT = 60;
|
|
54
|
+
const MAX_ROUTE_LIMIT = 300;
|
|
55
|
+
/**
|
|
56
|
+
* Ranked rows examined before the test filter and the per-directory cap run.
|
|
57
|
+
*
|
|
58
|
+
* Fixed rather than a multiple of `limit` so the same project answers with the
|
|
59
|
+
* same rows whatever the caller asks for. It also means the `total` on the two
|
|
60
|
+
* derived lists is a FLOOR — "at least this many" — because the tests it skips
|
|
61
|
+
* are only recognisable in JavaScript (`isTestFile` reads directory shapes and
|
|
62
|
+
* CamelCase suffixes that do not survive translation into SQL). That is the
|
|
63
|
+
* honest reading, and the viewer prints the rows rather than the count.
|
|
64
|
+
*/
|
|
65
|
+
const SCAN_ROWS = 400;
|
|
66
|
+
/**
|
|
67
|
+
* At most this many executable files from any one directory.
|
|
68
|
+
*
|
|
69
|
+
* Without it a repo with twenty one-off scripts in `scripts/` answers "where do
|
|
70
|
+
* I start" with twenty scripts, and the CLI everybody actually wants falls off
|
|
71
|
+
* the end. Two keeps a directory represented without letting it own the list.
|
|
72
|
+
*/
|
|
73
|
+
const MAX_FILES_PER_DIR = 2;
|
|
74
|
+
/**
|
|
75
|
+
* Test files asked about per reach query.
|
|
76
|
+
*
|
|
77
|
+
* The reach query is driven from `nodes` by file path, so its cost is
|
|
78
|
+
* proportional to the files in the chunk rather than to the edge table — but a
|
|
79
|
+
* repo with ten thousand test files would still put ten thousand paths into
|
|
80
|
+
* one `json_each`. Chunking keeps every statement bounded WITHOUT capping the
|
|
81
|
+
* candidate list, which would silently drop test files from the ranking.
|
|
82
|
+
*/
|
|
83
|
+
const TEST_CHUNK = 500;
|
|
84
|
+
/** Kinds that are never a useful hub row: a mention, a container, or a name. */
|
|
85
|
+
const NON_HUB_KINDS = new Set([
|
|
86
|
+
'file',
|
|
87
|
+
'import',
|
|
88
|
+
'export',
|
|
89
|
+
'parameter',
|
|
90
|
+
]);
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// Cache
|
|
93
|
+
// =============================================================================
|
|
94
|
+
/**
|
|
95
|
+
* One answer per (project, index build, limits).
|
|
96
|
+
*
|
|
97
|
+
* Unlike `/api/source` and everything downstream of it, nothing here is read
|
|
98
|
+
* from disk: every field comes out of the index, so an answer is exactly as
|
|
99
|
+
* fresh as the index build it was keyed on. The Tests list is the reason it is
|
|
100
|
+
* worth caching at all — it asks a reach query per chunk of test files, and
|
|
101
|
+
* every screen in the viewer refetches this payload when the index moves.
|
|
102
|
+
*/
|
|
103
|
+
const CACHE_LIMIT = 8;
|
|
104
|
+
const cache = new Map();
|
|
105
|
+
function resetEntryPointsCache() {
|
|
106
|
+
cache.clear();
|
|
107
|
+
}
|
|
108
|
+
// =============================================================================
|
|
109
|
+
// Build
|
|
110
|
+
// =============================================================================
|
|
111
|
+
function buildEntryPoints(cg, query) {
|
|
112
|
+
const started = Date.now();
|
|
113
|
+
const limit = (0, respond_1.intParam)(query, 'limit', { min: 1, max: 50, default: DEFAULT_LIMIT });
|
|
114
|
+
const routeLimit = (0, respond_1.intParam)(query, 'routes', {
|
|
115
|
+
min: 3,
|
|
116
|
+
max: MAX_ROUTE_LIMIT,
|
|
117
|
+
default: DEFAULT_ROUTE_LIMIT,
|
|
118
|
+
});
|
|
119
|
+
const stats = cg.getStats();
|
|
120
|
+
// JSON rather than a joined string: a project root can contain any character
|
|
121
|
+
// a separator might have picked, and this key is compared for equality only.
|
|
122
|
+
const key = JSON.stringify([
|
|
123
|
+
cg.getProjectRoot(),
|
|
124
|
+
cg.getLastIndexedAt() ?? 0,
|
|
125
|
+
stats.edgeCount,
|
|
126
|
+
stats.fileCount,
|
|
127
|
+
limit,
|
|
128
|
+
routeLimit,
|
|
129
|
+
]);
|
|
130
|
+
const hit = cache.get(key);
|
|
131
|
+
if (hit) {
|
|
132
|
+
// Re-stamp rather than mutate: the body is shared with the next caller.
|
|
133
|
+
return { ...hit, timing: { elapsedMs: Date.now() - started, cached: true } };
|
|
134
|
+
}
|
|
135
|
+
const payload = {
|
|
136
|
+
frameworks: cg.getDetectedFrameworks(),
|
|
137
|
+
routes: routeEntries(cg, routeLimit),
|
|
138
|
+
files: executableFiles(cg, limit),
|
|
139
|
+
tests: testFiles(cg, limit),
|
|
140
|
+
hubs: hubs(cg, limit),
|
|
141
|
+
index: { lastIndexedAt: cg.getLastIndexedAt() ?? null, files: stats.fileCount },
|
|
142
|
+
timing: { elapsedMs: Date.now() - started, cached: false },
|
|
143
|
+
};
|
|
144
|
+
if (cache.size >= CACHE_LIMIT) {
|
|
145
|
+
const oldest = cache.keys().next();
|
|
146
|
+
if (!oldest.done)
|
|
147
|
+
cache.delete(oldest.value);
|
|
148
|
+
}
|
|
149
|
+
cache.set(key, payload);
|
|
150
|
+
return payload;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The routing manifest, trimmed to a starting-points list.
|
|
154
|
+
*
|
|
155
|
+
* `buildRoutes` is reused rather than re-derived so a route row means exactly
|
|
156
|
+
* the same thing here as on the routes endpoint — including its handler id and
|
|
157
|
+
* its registration site, which are what make the row navigable and groupable.
|
|
158
|
+
*/
|
|
159
|
+
function routeEntries(cg, limit) {
|
|
160
|
+
const manifest = (0, routes_1.buildRoutes)(cg, new URLSearchParams([['limit', String(limit)]]));
|
|
161
|
+
return {
|
|
162
|
+
routed: manifest.routed,
|
|
163
|
+
routeCount: manifest.routeCount,
|
|
164
|
+
// `shown` counts the rows; `truncated` is the manifest's own verdict on
|
|
165
|
+
// whether the window cut anything, and it is more trustworthy than
|
|
166
|
+
// comparing against `routeCount` (which counts URLs whose handler never
|
|
167
|
+
// resolved as well).
|
|
168
|
+
items: {
|
|
169
|
+
total: manifest.truncated ? Math.max(manifest.shown + 1, manifest.routeCount) : manifest.shown,
|
|
170
|
+
shown: manifest.shown,
|
|
171
|
+
truncated: manifest.truncated,
|
|
172
|
+
items: manifest.entries,
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Files that do something on the way down, most first.
|
|
178
|
+
*
|
|
179
|
+
* Over-fetched before filtering, because the two things that shrink the list —
|
|
180
|
+
* tests and the per-directory cap — are only knowable after the rows come back,
|
|
181
|
+
* and a project whose noisiest module-level callers are all test files would
|
|
182
|
+
* otherwise answer with an empty list.
|
|
183
|
+
*/
|
|
184
|
+
function executableFiles(cg, limit) {
|
|
185
|
+
const ranked = cg.getTopCallingFiles(SCAN_ROWS);
|
|
186
|
+
const kept = [];
|
|
187
|
+
const perDir = new Map();
|
|
188
|
+
let eligible = 0;
|
|
189
|
+
for (const row of ranked) {
|
|
190
|
+
if ((0, query_utils_1.isTestFile)(row.filePath))
|
|
191
|
+
continue;
|
|
192
|
+
eligible += 1;
|
|
193
|
+
if (kept.length >= limit)
|
|
194
|
+
continue;
|
|
195
|
+
const dir = directoryOf(row.filePath);
|
|
196
|
+
const taken = perDir.get(dir) ?? 0;
|
|
197
|
+
if (taken >= MAX_FILES_PER_DIR)
|
|
198
|
+
continue;
|
|
199
|
+
const node = cg.getNode(row.nodeId);
|
|
200
|
+
if (!node)
|
|
201
|
+
continue;
|
|
202
|
+
perDir.set(dir, taken + 1);
|
|
203
|
+
kept.push({ node, calls: row.calls, reaches: row.reaches });
|
|
204
|
+
}
|
|
205
|
+
const dependents = cg.getFileDependentCounts(kept.map((k) => k.node.filePath));
|
|
206
|
+
const items = kept.map(({ node, calls, reaches }) => ({
|
|
207
|
+
...(0, wire_1.toNodeRef)(node),
|
|
208
|
+
calls,
|
|
209
|
+
reaches,
|
|
210
|
+
dependents: dependents.get(node.filePath) ?? 0,
|
|
211
|
+
}));
|
|
212
|
+
// `eligible` counts every non-test file the scan saw: a floor, never an
|
|
213
|
+
// overstatement.
|
|
214
|
+
return (0, wire_1.wireList)(items, Math.max(eligible, items.length));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* The suites that exercise the most of the project, widest first.
|
|
218
|
+
*
|
|
219
|
+
* Ranked by reach rather than by size or by module-level calls: a test's
|
|
220
|
+
* useful property is how much of the codebase runs when it does, and only Go,
|
|
221
|
+
* Rust and Java put that work inside functions where a "runs something at
|
|
222
|
+
* module level" ranking cannot see it at all.
|
|
223
|
+
*
|
|
224
|
+
* `total` is exact here — the candidate list is every test file in the index,
|
|
225
|
+
* decided in JavaScript before any query runs — which is why it is the one
|
|
226
|
+
* derived list whose count is not a floor. A test file that reaches nothing
|
|
227
|
+
* outside itself is left out on purpose: it exercises nothing this graph can
|
|
228
|
+
* name.
|
|
229
|
+
*/
|
|
230
|
+
function testFiles(cg, limit) {
|
|
231
|
+
const candidates = cg
|
|
232
|
+
.getFiles()
|
|
233
|
+
.map((file) => (0, wire_1.toPosixPath)(file.path))
|
|
234
|
+
.filter((path) => (0, query_utils_1.isTestPath)(path));
|
|
235
|
+
if (candidates.length === 0)
|
|
236
|
+
return (0, wire_1.wireList)([], 0);
|
|
237
|
+
const reach = new Map();
|
|
238
|
+
for (let i = 0; i < candidates.length; i += TEST_CHUNK) {
|
|
239
|
+
for (const [path, counts] of cg.getFileReachCounts(candidates.slice(i, i + TEST_CHUNK))) {
|
|
240
|
+
reach.set((0, wire_1.toPosixPath)(path), counts);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const ranked = [...reach.entries()]
|
|
244
|
+
.map(([path, counts]) => ({ path, ...counts }))
|
|
245
|
+
.sort((a, b) => b.reaches - a.reaches || b.refs - a.refs || a.path.localeCompare(b.path));
|
|
246
|
+
const top = ranked.slice(0, limit);
|
|
247
|
+
const nodes = new Map(cg.getFileNodes(top.map((row) => row.path)).map((n) => [(0, wire_1.toPosixPath)(n.filePath), n]));
|
|
248
|
+
const items = [];
|
|
249
|
+
for (const row of top) {
|
|
250
|
+
const node = nodes.get(row.path);
|
|
251
|
+
if (!node)
|
|
252
|
+
continue;
|
|
253
|
+
items.push({ ...(0, wire_1.toNodeRef)(node), reaches: row.reaches, refs: row.refs });
|
|
254
|
+
}
|
|
255
|
+
return (0, wire_1.wireList)(items, Math.max(ranked.length, items.length));
|
|
256
|
+
}
|
|
257
|
+
/** The most depended-on symbols, tests and non-navigable kinds removed. */
|
|
258
|
+
function hubs(cg, limit) {
|
|
259
|
+
const ranked = cg.getTopDependedOn(SCAN_ROWS);
|
|
260
|
+
const items = [];
|
|
261
|
+
let eligible = 0;
|
|
262
|
+
for (const row of ranked) {
|
|
263
|
+
const node = cg.getNode(row.nodeId);
|
|
264
|
+
if (!node || NON_HUB_KINDS.has(node.kind) || (0, query_utils_1.isTestFile)(node.filePath))
|
|
265
|
+
continue;
|
|
266
|
+
eligible += 1;
|
|
267
|
+
if (items.length >= limit)
|
|
268
|
+
continue;
|
|
269
|
+
items.push({ ...(0, wire_1.toNodeRef)(node), dependents: row.dependents });
|
|
270
|
+
}
|
|
271
|
+
return (0, wire_1.wireList)(items, Math.max(eligible, items.length));
|
|
272
|
+
}
|
|
273
|
+
/** `src/bin/codegraph.ts` -> `src/bin`; a root file -> `.`. */
|
|
274
|
+
function directoryOf(filePath) {
|
|
275
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
276
|
+
const cut = normalized.lastIndexOf('/');
|
|
277
|
+
return cut < 0 ? '.' : normalized.slice(0, cut);
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../../src/ui-server/api/entrypoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/events` — the viewer's live channel (server-sent events).
|
|
3
|
+
*
|
|
4
|
+
* Two questions the open browser cannot answer for itself, and one stream that
|
|
5
|
+
* answers both:
|
|
6
|
+
*
|
|
7
|
+
* - **"has the file I'm looking at changed on disk?"** — the drift banner. The
|
|
8
|
+
* verdict itself comes from `/api/source` (it hashes the bytes); this stream
|
|
9
|
+
* only says *when to ask again*, so the banner appears about a third of a
|
|
10
|
+
* second after a save instead of on the next navigation.
|
|
11
|
+
* - **"has the index moved?"** — the live refresh. Something else (an agent's
|
|
12
|
+
* MCP daemon, `cg sync`, a git hook) writes the graph; when it does,
|
|
13
|
+
* every screen the viewer is showing is one round-trip out of date.
|
|
14
|
+
*
|
|
15
|
+
* ## This server watches. It never syncs.
|
|
16
|
+
*
|
|
17
|
+
* `cg ui` is read-only in every sense — the banner it prints says so —
|
|
18
|
+
* so the obvious implementation (run the engine's watcher, let it sync) is out.
|
|
19
|
+
* What is left is *observation*, from two independent directions:
|
|
20
|
+
*
|
|
21
|
+
* - the project tree, through the engine's own {@link FileWatcher} with a
|
|
22
|
+
* notify-only `syncFn`. It never writes: the callback that would have run a
|
|
23
|
+
* sync fans the changed paths out to the browser instead. Everything else
|
|
24
|
+
* about it — the per-platform watch strategy, the indexer's ignore scope, the
|
|
25
|
+
* adaptive debounce, the degrade latch — is behaviour we would otherwise have
|
|
26
|
+
* had to write again, worse.
|
|
27
|
+
* - the index itself, through one non-recursive `fs.watch` on the data
|
|
28
|
+
* directory. That is the only cross-process signal there is: the writer is a
|
|
29
|
+
* different process, and the thing it changes is a file. A settled write is
|
|
30
|
+
* followed by ONE cheap query (`getIndexRevision`), and only a revision that
|
|
31
|
+
* actually moved becomes an event.
|
|
32
|
+
*
|
|
33
|
+
* **Nothing polls.** Both watchers are edge-triggered, and both start on the
|
|
34
|
+
* first subscriber and stop with the last one — a viewer nobody has open costs
|
|
35
|
+
* no watch descriptors, which matters on Linux where the strategy is
|
|
36
|
+
* per-directory.
|
|
37
|
+
*
|
|
38
|
+
* ## Boundary
|
|
39
|
+
*
|
|
40
|
+
* A long-lived response sits inside the loopback boundary exactly like every
|
|
41
|
+
* other route: `Host`, `Origin` and the GET-only rule are already enforced by
|
|
42
|
+
* `startUiServer` before this module is reached, and nothing here reads the
|
|
43
|
+
* repository — the paths it names came from the watcher and the index, and the
|
|
44
|
+
* viewer has to go back through `/api/source` (and therefore through
|
|
45
|
+
* `resolveProjectFile`) to see a byte of any of them.
|
|
46
|
+
*/
|
|
47
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
48
|
+
import type { GraphSession } from './session';
|
|
49
|
+
/**
|
|
50
|
+
* Paths carried in one event. `total` is always the real number — a burst of
|
|
51
|
+
* two thousand files still says two thousand, it just does not list them.
|
|
52
|
+
*/
|
|
53
|
+
export declare const MAX_EVENT_FILES = 200;
|
|
54
|
+
/** Comment frame keeping the connection (and the client's idea of it) alive. */
|
|
55
|
+
export declare const HEARTBEAT_MS = 25000;
|
|
56
|
+
export interface WireIndexRevision {
|
|
57
|
+
lastIndexedAt: number | null;
|
|
58
|
+
files: number;
|
|
59
|
+
}
|
|
60
|
+
/** Sent once, immediately, so a client knows what it is synchronised against. */
|
|
61
|
+
export interface WireEventHello {
|
|
62
|
+
type: 'hello';
|
|
63
|
+
index: WireIndexRevision | null;
|
|
64
|
+
/** Which of the two observers actually came up. */
|
|
65
|
+
watching: {
|
|
66
|
+
source: boolean;
|
|
67
|
+
index: boolean;
|
|
68
|
+
};
|
|
69
|
+
/** Non-null when live watching has given up; the client must NOT start polling. */
|
|
70
|
+
degraded: string | null;
|
|
71
|
+
heartbeatMs: number;
|
|
72
|
+
at: number;
|
|
73
|
+
}
|
|
74
|
+
/** Source files changed on disk. The index has NOT caught up yet. */
|
|
75
|
+
export interface WireEventChanged {
|
|
76
|
+
type: 'changed';
|
|
77
|
+
files: string[];
|
|
78
|
+
total: number;
|
|
79
|
+
truncated: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* True when the change could not be described file by file (a directory
|
|
82
|
+
* removal, or a burst past the watcher's scoped ceiling). Treat any open file
|
|
83
|
+
* as possibly affected.
|
|
84
|
+
*/
|
|
85
|
+
scan: boolean;
|
|
86
|
+
at: number;
|
|
87
|
+
}
|
|
88
|
+
/** The index moved: some other process finished writing the graph. */
|
|
89
|
+
export interface WireEventIndex {
|
|
90
|
+
type: 'index';
|
|
91
|
+
index: WireIndexRevision;
|
|
92
|
+
/** Files this sync re-indexed, newest first. Empty when it only deleted. */
|
|
93
|
+
files: string[];
|
|
94
|
+
total: number;
|
|
95
|
+
truncated: boolean;
|
|
96
|
+
at: number;
|
|
97
|
+
}
|
|
98
|
+
/** Live watching has stopped for good. Sent once; the stream stays open. */
|
|
99
|
+
export interface WireEventDegraded {
|
|
100
|
+
type: 'degraded';
|
|
101
|
+
reason: string;
|
|
102
|
+
at: number;
|
|
103
|
+
}
|
|
104
|
+
export type WireEvent = WireEventHello | WireEventChanged | WireEventIndex | WireEventDegraded;
|
|
105
|
+
/**
|
|
106
|
+
* Fans filesystem and index changes out to every open viewer.
|
|
107
|
+
*
|
|
108
|
+
* One hub per server. It owns the watchers, and owns them lazily: they exist
|
|
109
|
+
* only while somebody is listening.
|
|
110
|
+
*/
|
|
111
|
+
export declare class EventHub {
|
|
112
|
+
private readonly projectRoot;
|
|
113
|
+
private readonly session;
|
|
114
|
+
private readonly clients;
|
|
115
|
+
private sourceWatcher;
|
|
116
|
+
private indexWatcher;
|
|
117
|
+
private indexTimer;
|
|
118
|
+
/** When the current settle window started, for the {@link INDEX_SETTLE_MAX_MS} cap. */
|
|
119
|
+
private indexPendingSince;
|
|
120
|
+
private revision;
|
|
121
|
+
private sourceUp;
|
|
122
|
+
private indexUp;
|
|
123
|
+
private degraded;
|
|
124
|
+
private closed;
|
|
125
|
+
constructor(projectRoot: string, session: GraphSession);
|
|
126
|
+
/**
|
|
127
|
+
* Attach one browser to the stream.
|
|
128
|
+
*
|
|
129
|
+
* Returns `true` in every case — the response is answered here, streaming or
|
|
130
|
+
* not — so it slots into the API's `switch` like any other endpoint.
|
|
131
|
+
*/
|
|
132
|
+
subscribe(req: IncomingMessage, res: ServerResponse, method: string): true;
|
|
133
|
+
/** Number of attached clients — for tests and for the watchers' lifetime. */
|
|
134
|
+
get size(): number;
|
|
135
|
+
/** Stop watching and end every open stream. Idempotent. */
|
|
136
|
+
close(): void;
|
|
137
|
+
private drop;
|
|
138
|
+
private send;
|
|
139
|
+
private broadcast;
|
|
140
|
+
private ensureWatching;
|
|
141
|
+
private stopWatching;
|
|
142
|
+
/**
|
|
143
|
+
* The project tree, through the engine's watcher with the sync taken out.
|
|
144
|
+
*
|
|
145
|
+
* The `syncFn` is the whole trick: the watcher calls it with exactly the
|
|
146
|
+
* paths it would have handed to a scoped sync (or `undefined` when the events
|
|
147
|
+
* could not describe the change), we announce them and report zero files
|
|
148
|
+
* changed. It succeeds every time, so the watcher's failure ladder — lock
|
|
149
|
+
* retries, backoff, the degrade latch — is only ever reached by the watch
|
|
150
|
+
* layer itself, which is precisely the part we do want.
|
|
151
|
+
*/
|
|
152
|
+
private startSourceWatcher;
|
|
153
|
+
private announceChanged;
|
|
154
|
+
/**
|
|
155
|
+
* The index, through one watch on the data directory.
|
|
156
|
+
*
|
|
157
|
+
* Non-recursive and on the directory rather than the database file: SQLite
|
|
158
|
+
* writes land in `codegraph.db-wal`, and a full re-index REPLACES
|
|
159
|
+
* `codegraph.db` outright (a watch on the file itself would follow the
|
|
160
|
+
* unlinked inode and never fire again).
|
|
161
|
+
*/
|
|
162
|
+
private startIndexWatcher;
|
|
163
|
+
/**
|
|
164
|
+
* Wait for the writing to stop, then look once.
|
|
165
|
+
*
|
|
166
|
+
* Re-armed by every write, so a sync that takes four seconds produces one
|
|
167
|
+
* probe at its end — except that {@link INDEX_SETTLE_MAX_MS} caps how long
|
|
168
|
+
* the first probe can be deferred, so a continuously-writing full index still
|
|
169
|
+
* refreshes the viewer while it runs.
|
|
170
|
+
*/
|
|
171
|
+
private scheduleProbe;
|
|
172
|
+
/** One query. An unmoved revision is not an event. */
|
|
173
|
+
private checkIndex;
|
|
174
|
+
/**
|
|
175
|
+
* The current revision, or null when there is no readable index.
|
|
176
|
+
*
|
|
177
|
+
* A missing index is not an error here: `cg ui` refuses to start
|
|
178
|
+
* without one, but a user can delete `.codegraph/` with the viewer open, and
|
|
179
|
+
* every endpoint already says so in its own words when asked.
|
|
180
|
+
*/
|
|
181
|
+
private probe;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/events.ts"],"names":[],"mappings":"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"}
|