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,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* How the JSON API answers — success, refusal, and every failure in between.
|
|
4
|
+
*
|
|
5
|
+
* The viewer is the only client, and it runs on the same machine as the index,
|
|
6
|
+
* so an error here is a message to a developer looking at their own project,
|
|
7
|
+
* not information to withhold from a prober. Every failure therefore says what
|
|
8
|
+
* went wrong and — where there is one — what to do about it, exactly the way
|
|
9
|
+
* the CLI and the MCP tools do. What it never does is leak a stack trace.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MAX_QUERY_LENGTH = exports.MAX_BODY_BYTES = exports.ApiError = void 0;
|
|
13
|
+
exports.badRequest = badRequest;
|
|
14
|
+
exports.notFound = notFound;
|
|
15
|
+
exports.ok = ok;
|
|
16
|
+
exports.fail = fail;
|
|
17
|
+
exports.readJsonBody = readJsonBody;
|
|
18
|
+
exports.requiredParam = requiredParam;
|
|
19
|
+
exports.intParam = intParam;
|
|
20
|
+
exports.textParam = textParam;
|
|
21
|
+
exports.optionalTextParam = optionalTextParam;
|
|
22
|
+
const static_1 = require("../static");
|
|
23
|
+
const STATUS = {
|
|
24
|
+
'bad-request': 400,
|
|
25
|
+
'not-found': 404,
|
|
26
|
+
// A path refusal, not an authentication failure — the request asked for
|
|
27
|
+
// something outside the project (traversal, an absolute path, a sensitive
|
|
28
|
+
// directory) and there is no version of it we would serve.
|
|
29
|
+
refused: 403,
|
|
30
|
+
// The index is missing or unusable. 503 rather than 404: the endpoint is
|
|
31
|
+
// real, the data behind it is not there *yet* — `cg init` fixes it.
|
|
32
|
+
'no-index': 503,
|
|
33
|
+
'index-unusable': 503,
|
|
34
|
+
internal: 500,
|
|
35
|
+
};
|
|
36
|
+
/** An error that already carries a user-facing message and a status. */
|
|
37
|
+
class ApiError extends Error {
|
|
38
|
+
code;
|
|
39
|
+
/** Optional second line: what the user can do about it. */
|
|
40
|
+
hint;
|
|
41
|
+
constructor(code, message, hint) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'ApiError';
|
|
44
|
+
this.code = code;
|
|
45
|
+
this.hint = hint;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.ApiError = ApiError;
|
|
49
|
+
function badRequest(message, hint) {
|
|
50
|
+
return new ApiError('bad-request', message, hint);
|
|
51
|
+
}
|
|
52
|
+
function notFound(message, hint) {
|
|
53
|
+
return new ApiError('not-found', message, hint);
|
|
54
|
+
}
|
|
55
|
+
/** Send a successful payload. */
|
|
56
|
+
function ok(res, payload, method) {
|
|
57
|
+
(0, static_1.sendJson)(res, 200, payload, method);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
/** Send a failure. Anything that is not an {@link ApiError} becomes a 500. */
|
|
61
|
+
function fail(res, err, method) {
|
|
62
|
+
if (err instanceof ApiError) {
|
|
63
|
+
const body = {
|
|
64
|
+
error: err.message,
|
|
65
|
+
code: err.code,
|
|
66
|
+
};
|
|
67
|
+
if (err.hint)
|
|
68
|
+
body.hint = err.hint;
|
|
69
|
+
(0, static_1.sendJson)(res, STATUS[err.code], body, method);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
(0, static_1.sendJson)(res, 500, {
|
|
73
|
+
error: err instanceof Error ? err.message : String(err),
|
|
74
|
+
code: 'internal',
|
|
75
|
+
}, method);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
// =============================================================================
|
|
79
|
+
// Request bodies
|
|
80
|
+
// =============================================================================
|
|
81
|
+
/**
|
|
82
|
+
* Bytes a request body may carry.
|
|
83
|
+
*
|
|
84
|
+
* The only body this server reads is a saved trail: a name and up to 64 node
|
|
85
|
+
* ids. 64 KB is generous for that and small enough that a runaway client cannot
|
|
86
|
+
* make the process hold a megabyte per socket.
|
|
87
|
+
*/
|
|
88
|
+
exports.MAX_BODY_BYTES = 64 * 1024;
|
|
89
|
+
/**
|
|
90
|
+
* Read a request body as JSON.
|
|
91
|
+
*
|
|
92
|
+
* Counts BYTES, not characters, and stops at the cap by destroying the socket
|
|
93
|
+
* rather than draining a body nobody is going to parse — a `Content-Length`
|
|
94
|
+
* header is a claim, and the only limit that holds is the one applied to what
|
|
95
|
+
* actually arrives.
|
|
96
|
+
*
|
|
97
|
+
* @throws {ApiError} `bad-request` for a body that is too large or is not JSON.
|
|
98
|
+
*/
|
|
99
|
+
async function readJsonBody(req) {
|
|
100
|
+
const chunks = [];
|
|
101
|
+
let size = 0;
|
|
102
|
+
try {
|
|
103
|
+
for await (const chunk of req) {
|
|
104
|
+
const buf = chunk;
|
|
105
|
+
size += buf.length;
|
|
106
|
+
if (size > exports.MAX_BODY_BYTES) {
|
|
107
|
+
req.destroy();
|
|
108
|
+
throw badRequest(`That request body is too large (max ${exports.MAX_BODY_BYTES} bytes).`);
|
|
109
|
+
}
|
|
110
|
+
chunks.push(buf);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
if (err instanceof ApiError)
|
|
115
|
+
throw err;
|
|
116
|
+
throw badRequest('That request body could not be read.');
|
|
117
|
+
}
|
|
118
|
+
if (size === 0)
|
|
119
|
+
throw badRequest('That request needs a JSON body.');
|
|
120
|
+
try {
|
|
121
|
+
return JSON.parse(Buffer.concat(chunks).toString('utf-8'));
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
throw badRequest('That request body is not valid JSON.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// =============================================================================
|
|
128
|
+
// Query parameters
|
|
129
|
+
// =============================================================================
|
|
130
|
+
/** A required, non-empty string parameter. */
|
|
131
|
+
function requiredParam(query, name) {
|
|
132
|
+
const raw = query.get(name);
|
|
133
|
+
if (raw === null || raw.trim() === '') {
|
|
134
|
+
throw badRequest(`Missing required parameter "${name}".`);
|
|
135
|
+
}
|
|
136
|
+
return raw;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* A bounded integer parameter.
|
|
140
|
+
*
|
|
141
|
+
* Out-of-range values are an error rather than silently clamped: a viewer
|
|
142
|
+
* asking for line 10 000 000 of a 200-line file has a bug, and answering it
|
|
143
|
+
* with line 200 would hide that.
|
|
144
|
+
*/
|
|
145
|
+
function intParam(query, name, opts) {
|
|
146
|
+
const raw = query.get(name);
|
|
147
|
+
if (raw === null || raw.trim() === '') {
|
|
148
|
+
if (opts.default !== undefined)
|
|
149
|
+
return opts.default;
|
|
150
|
+
throw badRequest(`Missing required parameter "${name}".`);
|
|
151
|
+
}
|
|
152
|
+
const value = Number(raw);
|
|
153
|
+
if (!Number.isInteger(value) || value < opts.min || value > opts.max) {
|
|
154
|
+
throw badRequest(`Parameter "${name}" must be a whole number between ${opts.min} and ${opts.max} (got "${raw}").`);
|
|
155
|
+
}
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Free-form text input, bounded.
|
|
160
|
+
*
|
|
161
|
+
* The same reasoning as the MCP tools' input ceiling: a huge string is never a
|
|
162
|
+
* real query, and letting one through means a full-table LIKE scan or an FTS5
|
|
163
|
+
* parse over megabytes.
|
|
164
|
+
*/
|
|
165
|
+
exports.MAX_QUERY_LENGTH = 2_000;
|
|
166
|
+
function textParam(query, name) {
|
|
167
|
+
const raw = requiredParam(query, name);
|
|
168
|
+
return boundLength(raw, name);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Text that must be PRESENT but may be empty — a search box the user has
|
|
172
|
+
* cleared. Absent is still an error; empty is a legitimate state.
|
|
173
|
+
*/
|
|
174
|
+
function optionalTextParam(query, name) {
|
|
175
|
+
const raw = query.get(name);
|
|
176
|
+
if (raw === null)
|
|
177
|
+
throw badRequest(`Missing required parameter "${name}".`);
|
|
178
|
+
return boundLength(raw, name);
|
|
179
|
+
}
|
|
180
|
+
function boundLength(raw, name) {
|
|
181
|
+
if (raw.length > exports.MAX_QUERY_LENGTH) {
|
|
182
|
+
throw badRequest(`Parameter "${name}" is too long (max ${exports.MAX_QUERY_LENGTH} characters).`);
|
|
183
|
+
}
|
|
184
|
+
return raw;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=respond.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond.js","sourceRoot":"","sources":["../../../src/ui-server/api/respond.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a route's code starts — the symbol that runs when a request arrives
|
|
3
|
+
* at `POST /users`, or when a navigation lands on `/capture/review`.
|
|
4
|
+
*
|
|
5
|
+
* Every framework resolver binds a route node to what serves it, but not with
|
|
6
|
+
* the same edge: Expo Router and the React page routers draw a `calls` edge
|
|
7
|
+
* to the component the screen file exports; Express (named handler), NestJS,
|
|
8
|
+
* Spring, FastAPI / Flask / Django, ASP.NET, Vapor, Gin and the React Router
|
|
9
|
+
* draw a `references` edge to the handler; an Express route whose handler is
|
|
10
|
+
* an inline arrow has no handler node at all — the resolver attributes the
|
|
11
|
+
* body's calls to the route itself. The Steps and Screens pictures need ONE
|
|
12
|
+
* answer per route, so this is it, in order of evidence:
|
|
13
|
+
*
|
|
14
|
+
* 1. the target of a `references` edge that is a function, a method, or a
|
|
15
|
+
* class (a DRF ViewSet, a class-based view) — the handler the resolver
|
|
16
|
+
* named at the registration site;
|
|
17
|
+
* 2. the target of a `calls` / `instantiates` edge that is a component — the
|
|
18
|
+
* page a file-routed screen exports;
|
|
19
|
+
* 3. the route itself, when it carries `calls` edges and nothing else — the
|
|
20
|
+
* inline handler, walked as if the route were the function;
|
|
21
|
+
* 4. nothing: the route is drawn alone, and the picture says so.
|
|
22
|
+
*
|
|
23
|
+
* A route whose handler is a DIFFERENT symbol from what the routing manifest
|
|
24
|
+
* names would be a resolver bug, not a case to arbitrate here — both read the
|
|
25
|
+
* same edges.
|
|
26
|
+
*/
|
|
27
|
+
import type CodeGraph from '../../index';
|
|
28
|
+
import type { Node } from '../../types';
|
|
29
|
+
export interface RouteRoot {
|
|
30
|
+
/** The symbol a walk from the route starts at; the route itself for an inline handler. */
|
|
31
|
+
node: Node;
|
|
32
|
+
/** The route's handler is an anonymous function at the registration site — the route node stands in for it. */
|
|
33
|
+
inline: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** A React component, by the convention that names one: a PascalCase function in a JS-family file. */
|
|
36
|
+
export declare function looksLikeComponent(node: Node): boolean;
|
|
37
|
+
/** Route id → where its code starts, for every route that has an answer. */
|
|
38
|
+
export declare function routeRoots(cg: CodeGraph, routes: readonly Node[]): Map<string, RouteRoot>;
|
|
39
|
+
//# sourceMappingURL=route-roots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-roots.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/route-roots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,0FAA0F;IAC1F,IAAI,EAAE,IAAI,CAAC;IACX,+GAA+G;IAC/G,MAAM,EAAE,OAAO,CAAC;CACjB;AAYD,sGAAsG;AACtG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAItD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CA2CzF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Where a route's code starts — the symbol that runs when a request arrives
|
|
4
|
+
* at `POST /users`, or when a navigation lands on `/capture/review`.
|
|
5
|
+
*
|
|
6
|
+
* Every framework resolver binds a route node to what serves it, but not with
|
|
7
|
+
* the same edge: Expo Router and the React page routers draw a `calls` edge
|
|
8
|
+
* to the component the screen file exports; Express (named handler), NestJS,
|
|
9
|
+
* Spring, FastAPI / Flask / Django, ASP.NET, Vapor, Gin and the React Router
|
|
10
|
+
* draw a `references` edge to the handler; an Express route whose handler is
|
|
11
|
+
* an inline arrow has no handler node at all — the resolver attributes the
|
|
12
|
+
* body's calls to the route itself. The Steps and Screens pictures need ONE
|
|
13
|
+
* answer per route, so this is it, in order of evidence:
|
|
14
|
+
*
|
|
15
|
+
* 1. the target of a `references` edge that is a function, a method, or a
|
|
16
|
+
* class (a DRF ViewSet, a class-based view) — the handler the resolver
|
|
17
|
+
* named at the registration site;
|
|
18
|
+
* 2. the target of a `calls` / `instantiates` edge that is a component — the
|
|
19
|
+
* page a file-routed screen exports;
|
|
20
|
+
* 3. the route itself, when it carries `calls` edges and nothing else — the
|
|
21
|
+
* inline handler, walked as if the route were the function;
|
|
22
|
+
* 4. nothing: the route is drawn alone, and the picture says so.
|
|
23
|
+
*
|
|
24
|
+
* A route whose handler is a DIFFERENT symbol from what the routing manifest
|
|
25
|
+
* names would be a resolver bug, not a case to arbitrate here — both read the
|
|
26
|
+
* same edges.
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.looksLikeComponent = looksLikeComponent;
|
|
30
|
+
exports.routeRoots = routeRoots;
|
|
31
|
+
/**
|
|
32
|
+
* What a resolver's `references` edge may name as the handler. A constant or
|
|
33
|
+
* a variable counts: `const authUser = asyncHandler(async (req, res) => …)` is
|
|
34
|
+
* how an Express handler is written with a wrapper, and the registration site
|
|
35
|
+
* named it — the arrow inside has no node of its own, so the binding is the
|
|
36
|
+
* handler, and the walk lends it the file-scope calls within its lines.
|
|
37
|
+
*/
|
|
38
|
+
const HANDLER_KINDS = new Set(['function', 'method', 'class', 'component', 'constant', 'variable']);
|
|
39
|
+
const JS_FAMILY = new Set(['javascript', 'typescript', 'tsx', 'jsx']);
|
|
40
|
+
/** A React component, by the convention that names one: a PascalCase function in a JS-family file. */
|
|
41
|
+
function looksLikeComponent(node) {
|
|
42
|
+
if (node.kind === 'component')
|
|
43
|
+
return true;
|
|
44
|
+
if (node.kind !== 'function')
|
|
45
|
+
return false;
|
|
46
|
+
return JS_FAMILY.has(node.language) && /^[A-Z]/.test(node.name);
|
|
47
|
+
}
|
|
48
|
+
/** Route id → where its code starts, for every route that has an answer. */
|
|
49
|
+
function routeRoots(cg, routes) {
|
|
50
|
+
const out = new Map();
|
|
51
|
+
if (routes.length === 0)
|
|
52
|
+
return out;
|
|
53
|
+
const ids = routes.map((r) => r.id);
|
|
54
|
+
const edges = cg.getOutgoingEdgesFrom(ids, ['references', 'calls', 'instantiates']);
|
|
55
|
+
if (edges.length === 0)
|
|
56
|
+
return out;
|
|
57
|
+
const targets = cg.getNodesByIds(edges.map((e) => e.target));
|
|
58
|
+
const byRoute = new Map();
|
|
59
|
+
for (const e of edges) {
|
|
60
|
+
const list = byRoute.get(e.source) ?? [];
|
|
61
|
+
list.push(e);
|
|
62
|
+
byRoute.set(e.source, list);
|
|
63
|
+
}
|
|
64
|
+
const rank = (n) => (n.kind === 'function' || n.kind === 'method' ? 0 : n.kind === 'component' ? 1 : n.kind === 'class' ? 2 : 3);
|
|
65
|
+
for (const route of routes) {
|
|
66
|
+
const list = byRoute.get(route.id);
|
|
67
|
+
if (!list || list.length === 0)
|
|
68
|
+
continue;
|
|
69
|
+
// 1. The handler the resolver named.
|
|
70
|
+
const named = list
|
|
71
|
+
.filter((e) => e.kind === 'references')
|
|
72
|
+
.map((e) => targets.get(e.target))
|
|
73
|
+
.filter((n) => !!n && HANDLER_KINDS.has(n.kind) && n.id !== route.id)
|
|
74
|
+
.sort((a, b) => rank(a) - rank(b) || a.startLine - b.startLine);
|
|
75
|
+
if (named[0]) {
|
|
76
|
+
out.set(route.id, { node: named[0], inline: false });
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
// 2. The component a screen file exports.
|
|
80
|
+
const rendered = list
|
|
81
|
+
.filter((e) => e.kind === 'calls' || e.kind === 'instantiates')
|
|
82
|
+
.map((e) => targets.get(e.target))
|
|
83
|
+
.filter((n) => !!n && looksLikeComponent(n) && n.id !== route.id)
|
|
84
|
+
.sort((a, b) => a.startLine - b.startLine);
|
|
85
|
+
if (rendered[0]) {
|
|
86
|
+
out.set(route.id, { node: rendered[0], inline: false });
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
// 3. The inline handler: the route's own calls are the body's.
|
|
90
|
+
if (list.some((e) => e.kind === 'calls' && targets.get(e.target)?.kind !== 'file')) {
|
|
91
|
+
out.set(route.id, { node: route, inline: true });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=route-roots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-roots.js","sourceRoot":"","sources":["../../../src/ui-server/api/route-roots.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;AAuBH,gDAIC;AAGD,gCA2CC;AA7DD;;;;;;GAMG;AACH,MAAM,aAAa,GAA8B,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/H,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3F,sGAAsG;AACtG,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,4EAA4E;AAC5E,SAAgB,UAAU,CAAC,EAAa,EAAE,MAAuB;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqB,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/I,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACzC,qCAAqC;QACrC,MAAM,KAAK,GAAG,IAAI;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;aAC/E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,IAAI;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;aAC3E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/routes` — the URL to handler map, when the project has one.
|
|
3
|
+
*
|
|
4
|
+
* The engine's routing manifest is a flat list of (url, handler, file, line)
|
|
5
|
+
* rows; it deliberately carries no node ids, because its own consumer (the MCP
|
|
6
|
+
* context builder) renders text. A reader needs to *navigate*, so each entry is
|
|
7
|
+
* matched back to its handler's node id here — batched by file, never a lookup
|
|
8
|
+
* per route.
|
|
9
|
+
*
|
|
10
|
+
* `null` from the engine means "fewer than three real routes", i.e. this
|
|
11
|
+
* project is not a routed app. That is reported as an empty manifest with
|
|
12
|
+
* `routed: false` rather than as an error: "this isn't a web app" is an
|
|
13
|
+
* answer, not a failure.
|
|
14
|
+
*
|
|
15
|
+
* Two things about the manifest shape the numbers here have to work around.
|
|
16
|
+
* Its `limit` is applied in SQL *before* the three-route test, so asking for
|
|
17
|
+
* fewer than three would make every routed project look unrouted — hence the
|
|
18
|
+
* floor on the parameter. And its own `totalRoutes` counts only the rows inside
|
|
19
|
+
* that window, so the headline count comes from the graph's `route` nodes
|
|
20
|
+
* instead, which is the number a reader means by "how many routes are there".
|
|
21
|
+
*/
|
|
22
|
+
import type { CodeGraph } from '../../index';
|
|
23
|
+
/** One row of the URL → handler map. */
|
|
24
|
+
export interface WireRoute {
|
|
25
|
+
/** The route node's name, verbatim: "POST /v1/users/{id}". */
|
|
26
|
+
url: string;
|
|
27
|
+
/** The verb, when the name leads with one. Null for file-routed pages. */
|
|
28
|
+
method: string | null;
|
|
29
|
+
/** The URL without the verb — the same string as `url` when there is none. */
|
|
30
|
+
path: string;
|
|
31
|
+
handler: string;
|
|
32
|
+
handlerKind: string;
|
|
33
|
+
/** Where the request is SERVED. */
|
|
34
|
+
file: string;
|
|
35
|
+
line: number;
|
|
36
|
+
handlerId: string | null;
|
|
37
|
+
/** Where the URL is REGISTERED — the router file, which is how routes group. */
|
|
38
|
+
routeFile: string;
|
|
39
|
+
routeLine: number;
|
|
40
|
+
routeId: string;
|
|
41
|
+
}
|
|
42
|
+
export interface WireRoutes {
|
|
43
|
+
routed: boolean;
|
|
44
|
+
/** Every URL the index holds, whether or not its handler resolved. */
|
|
45
|
+
routeCount: number;
|
|
46
|
+
/** Rows in `entries` — the ones whose handler the manifest could name. */
|
|
47
|
+
shown: number;
|
|
48
|
+
truncated: boolean;
|
|
49
|
+
topHandlerFile: string | null;
|
|
50
|
+
topHandlerFileCount: number;
|
|
51
|
+
entries: WireRoute[];
|
|
52
|
+
}
|
|
53
|
+
/** "POST /v1/users" -> { method: 'POST', path: '/v1/users' }. */
|
|
54
|
+
export declare function splitRouteName(url: string): {
|
|
55
|
+
method: string | null;
|
|
56
|
+
path: string;
|
|
57
|
+
};
|
|
58
|
+
export declare function buildRoutes(cg: CodeGraph, query: URLSearchParams): WireRoutes;
|
|
59
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkB7C,wCAAwC;AACxC,MAAM,WAAW,SAAS;IACxB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMnF;AAYD,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CA2D7E"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `GET /api/routes` — the URL to handler map, when the project has one.
|
|
4
|
+
*
|
|
5
|
+
* The engine's routing manifest is a flat list of (url, handler, file, line)
|
|
6
|
+
* rows; it deliberately carries no node ids, because its own consumer (the MCP
|
|
7
|
+
* context builder) renders text. A reader needs to *navigate*, so each entry is
|
|
8
|
+
* matched back to its handler's node id here — batched by file, never a lookup
|
|
9
|
+
* per route.
|
|
10
|
+
*
|
|
11
|
+
* `null` from the engine means "fewer than three real routes", i.e. this
|
|
12
|
+
* project is not a routed app. That is reported as an empty manifest with
|
|
13
|
+
* `routed: false` rather than as an error: "this isn't a web app" is an
|
|
14
|
+
* answer, not a failure.
|
|
15
|
+
*
|
|
16
|
+
* Two things about the manifest shape the numbers here have to work around.
|
|
17
|
+
* Its `limit` is applied in SQL *before* the three-route test, so asking for
|
|
18
|
+
* fewer than three would make every routed project look unrouted — hence the
|
|
19
|
+
* floor on the parameter. And its own `totalRoutes` counts only the rows inside
|
|
20
|
+
* that window, so the headline count comes from the graph's `route` nodes
|
|
21
|
+
* instead, which is the number a reader means by "how many routes are there".
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.splitRouteName = splitRouteName;
|
|
25
|
+
exports.buildRoutes = buildRoutes;
|
|
26
|
+
const respond_1 = require("./respond");
|
|
27
|
+
const wire_1 = require("./wire");
|
|
28
|
+
/**
|
|
29
|
+
* HTTP verbs a route name may lead with, plus the two stand-ins the resolvers
|
|
30
|
+
* emit when the registration names no verb (`mux.Handle`, `app.use`).
|
|
31
|
+
*
|
|
32
|
+
* The split is done against this list rather than against "the first word" so
|
|
33
|
+
* a file-routed page (`/blog/[slug]`) or a message-bus subscription keeps its
|
|
34
|
+
* whole name in the URL column instead of losing its first segment to a
|
|
35
|
+
* method column that was never there.
|
|
36
|
+
*/
|
|
37
|
+
const HTTP_METHODS = new Set([
|
|
38
|
+
'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT',
|
|
39
|
+
'ANY', 'ALL', 'USE',
|
|
40
|
+
]);
|
|
41
|
+
/** "POST /v1/users" -> { method: 'POST', path: '/v1/users' }. */
|
|
42
|
+
function splitRouteName(url) {
|
|
43
|
+
const space = url.indexOf(' ');
|
|
44
|
+
if (space <= 0)
|
|
45
|
+
return { method: null, path: url };
|
|
46
|
+
const head = url.slice(0, space);
|
|
47
|
+
if (!HTTP_METHODS.has(head.toUpperCase()))
|
|
48
|
+
return { method: null, path: url };
|
|
49
|
+
return { method: head.toUpperCase(), path: url.slice(space + 1).trimStart() };
|
|
50
|
+
}
|
|
51
|
+
/** Distinct handler files we will resolve node ids for. */
|
|
52
|
+
const MAX_HANDLER_FILES = 60;
|
|
53
|
+
/**
|
|
54
|
+
* The engine needs three surviving rows to call a project routed, and applies
|
|
55
|
+
* `limit` before that test — so anything below three is a question that cannot
|
|
56
|
+
* be answered truthfully rather than a small page.
|
|
57
|
+
*/
|
|
58
|
+
const MIN_LIMIT = 3;
|
|
59
|
+
function buildRoutes(cg, query) {
|
|
60
|
+
const limit = (0, respond_1.intParam)(query, 'limit', { min: MIN_LIMIT, max: 500, default: 200 });
|
|
61
|
+
// One row over the limit, purely to learn whether there were more.
|
|
62
|
+
const manifest = cg.getRoutingManifest(limit + 1);
|
|
63
|
+
const routeCount = cg.getStats().nodesByKind.route ?? 0;
|
|
64
|
+
if (!manifest) {
|
|
65
|
+
return {
|
|
66
|
+
routed: false,
|
|
67
|
+
routeCount,
|
|
68
|
+
shown: 0,
|
|
69
|
+
truncated: false,
|
|
70
|
+
topHandlerFile: null,
|
|
71
|
+
topHandlerFileCount: 0,
|
|
72
|
+
entries: [],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const truncated = manifest.entries.length > limit;
|
|
76
|
+
const rows = manifest.entries.slice(0, limit);
|
|
77
|
+
// One `getNodesInFile` per distinct handler file — typically one or two, and
|
|
78
|
+
// capped so a project that scatters handlers across hundreds of files cannot
|
|
79
|
+
// turn one request into hundreds of queries.
|
|
80
|
+
const handlerFiles = [...new Set(rows.map((e) => e.handlerFile))].slice(0, MAX_HANDLER_FILES);
|
|
81
|
+
const byFileLineName = new Map();
|
|
82
|
+
for (const file of handlerFiles) {
|
|
83
|
+
for (const node of cg.getNodesInFile(file)) {
|
|
84
|
+
// Keyed on what the manifest actually knows: file, line and name. Two
|
|
85
|
+
// symbols can share a line (a decorator and its method); the name breaks
|
|
86
|
+
// the tie, and a miss simply leaves that entry unlinked.
|
|
87
|
+
byFileLineName.set(`${node.filePath} ${node.startLine} ${node.name}`, node.id);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const entries = rows.map((entry) => ({
|
|
91
|
+
url: entry.url,
|
|
92
|
+
...splitRouteName(entry.url),
|
|
93
|
+
handler: entry.handler,
|
|
94
|
+
handlerKind: entry.handlerKind,
|
|
95
|
+
file: (0, wire_1.toPosixPath)(entry.handlerFile),
|
|
96
|
+
line: entry.handlerLine,
|
|
97
|
+
handlerId: byFileLineName.get(`${entry.handlerFile} ${entry.handlerLine} ${entry.handler}`) ?? null,
|
|
98
|
+
routeFile: (0, wire_1.toPosixPath)(entry.routeFile),
|
|
99
|
+
routeLine: entry.routeLine,
|
|
100
|
+
routeId: entry.routeId,
|
|
101
|
+
}));
|
|
102
|
+
return {
|
|
103
|
+
routed: true,
|
|
104
|
+
routeCount,
|
|
105
|
+
shown: entries.length,
|
|
106
|
+
truncated,
|
|
107
|
+
topHandlerFile: manifest.topHandlerFile ? (0, wire_1.toPosixPath)(manifest.topHandlerFile) : null,
|
|
108
|
+
topHandlerFileCount: manifest.topHandlerFileCount,
|
|
109
|
+
entries,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/ui-server/api/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/screens` — the app as a reader experiences it: screens, and the
|
|
3
|
+
* transitions between them, each labelled with what has to be true for it to
|
|
4
|
+
* happen.
|
|
5
|
+
*
|
|
6
|
+
* The graph already holds the pieces: a `route` node per screen file (Expo
|
|
7
|
+
* Router, and any framework that binds a route to the component that renders
|
|
8
|
+
* it), and a `navigates` edge from the function that pushes a path to the
|
|
9
|
+
* route it names. What a reader wants is neither of those nodes — it is
|
|
10
|
+
* "from the Home screen, tapping an object card opens Object Detail, but only
|
|
11
|
+
* for a collected object". That sentence is three hops away from the edge:
|
|
12
|
+
*
|
|
13
|
+
* HomeScreen ─renders→ ItemsGrid ─renders→ ItemCard ─calls→ openObjectDetail ─navigates→ /object-detail
|
|
14
|
+
*
|
|
15
|
+
* So for every `navigates` edge this walks BACKWARDS from its source through
|
|
16
|
+
* `calls` edges (the JSX-render synthesizer's edges among them) until it
|
|
17
|
+
* reaches a component that a route renders. That component's screen is where
|
|
18
|
+
* the transition starts; the nodes passed on the way are the `via` chain, and
|
|
19
|
+
* the branch conditions at each call site along it (`graph/branch-guards.ts`)
|
|
20
|
+
* are joined into the link's `when`. A navigation whose walk reaches no screen
|
|
21
|
+
* within the hop cap — a store action, a service that runs after login — is
|
|
22
|
+
* kept as an `origin` rather than dropped: it is a real transition with a real
|
|
23
|
+
* trigger, just not a screen.
|
|
24
|
+
*
|
|
25
|
+
* Read from the graph at request time, never cached: the `when` labels are
|
|
26
|
+
* read from the source as it stands. Seventy-odd transitions and a few
|
|
27
|
+
* hundred guarded call sites resolve in tens of milliseconds.
|
|
28
|
+
*/
|
|
29
|
+
import type CodeGraph from '../../index';
|
|
30
|
+
import { type WireNodeRef } from './wire';
|
|
31
|
+
export interface WireScreen {
|
|
32
|
+
/** The route node's id — what a link's `from`/`to` name. */
|
|
33
|
+
id: string;
|
|
34
|
+
/** The screen's path: `/object-detail`, `/item/[id]`. */
|
|
35
|
+
path: string;
|
|
36
|
+
file: string;
|
|
37
|
+
line: number;
|
|
38
|
+
/** The component the route renders, when the graph bound one. */
|
|
39
|
+
component: WireNodeRef | null;
|
|
40
|
+
/** Transitions into and out of this screen. */
|
|
41
|
+
incoming: number;
|
|
42
|
+
outgoing: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A navigation whose start is not one screen: a function no screen reaches
|
|
46
|
+
* (a store action after login), or a component so many screens render (a
|
|
47
|
+
* top bar) that attributing its navigation to each of them would draw the
|
|
48
|
+
* same three arrows from every box.
|
|
49
|
+
*/
|
|
50
|
+
export interface WireScreenOrigin {
|
|
51
|
+
id: string;
|
|
52
|
+
node: WireNodeRef;
|
|
53
|
+
outgoing: number;
|
|
54
|
+
/** For shared chrome: how many screens render it. */
|
|
55
|
+
sharedBy?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface WireScreenSite {
|
|
58
|
+
file: string;
|
|
59
|
+
line: number;
|
|
60
|
+
/** The href as written at the call, `${…}` for interpolations. */
|
|
61
|
+
href: string;
|
|
62
|
+
/** `push`, `replace`, `navigate`, or `return` for a helper's return value. */
|
|
63
|
+
method: string;
|
|
64
|
+
/**
|
|
65
|
+
* The conditions THIS site runs under — the whole chain's plus its own,
|
|
66
|
+
* joined; '' when unconditional. A link with several sites is several
|
|
67
|
+
* scenarios; the link's `when` is only their summary.
|
|
68
|
+
*/
|
|
69
|
+
when: string;
|
|
70
|
+
}
|
|
71
|
+
export interface WireScreenLink {
|
|
72
|
+
id: string;
|
|
73
|
+
/** A screen id, or an origin id. */
|
|
74
|
+
from: string;
|
|
75
|
+
/** Always a screen id. */
|
|
76
|
+
to: string;
|
|
77
|
+
/** True when `from` is an origin, not a screen. */
|
|
78
|
+
fromOrigin: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* The symbols the transition passes through, from just below the screen's
|
|
81
|
+
* component down to the one that holds the navigation call. Empty when the
|
|
82
|
+
* screen's own component navigates.
|
|
83
|
+
*/
|
|
84
|
+
via: WireNodeRef[];
|
|
85
|
+
/** Conditions along the whole chain, joined; '' when unconditional. */
|
|
86
|
+
when: string;
|
|
87
|
+
/** Every call site behind this link (same screen, same chain end). */
|
|
88
|
+
sites: WireScreenSite[];
|
|
89
|
+
/**
|
|
90
|
+
* The destination was inferred, not written at the call: it came back from
|
|
91
|
+
* a helper's return value. (A synthesized render hop on the way — every
|
|
92
|
+
* parent → child component step is one — does not count: that would dash
|
|
93
|
+
* nearly every arrow.)
|
|
94
|
+
*/
|
|
95
|
+
synthesized: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface WireScreensPayload {
|
|
98
|
+
/** False when the graph holds no screen navigation at all. */
|
|
99
|
+
routed: boolean;
|
|
100
|
+
/** The route named `/`, when there is one. */
|
|
101
|
+
entry: string | null;
|
|
102
|
+
screens: WireScreen[];
|
|
103
|
+
origins: WireScreenOrigin[];
|
|
104
|
+
links: WireScreenLink[];
|
|
105
|
+
/** Navigations dropped because the backwards walk hit a cap. */
|
|
106
|
+
dropped: number;
|
|
107
|
+
index: {
|
|
108
|
+
lastIndexedAt: number | null;
|
|
109
|
+
edges: number;
|
|
110
|
+
files: number;
|
|
111
|
+
};
|
|
112
|
+
timing: {
|
|
113
|
+
elapsedMs: number;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export declare function buildScreens(cg: CodeGraph, projectRoot: string): Promise<WireScreensPayload>;
|
|
117
|
+
//# sourceMappingURL=screens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/screens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAMzC,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMrD,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,GAAG,EAAE,WAAW,EAAE,CAAC;IACnB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAgGD,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoMlG"}
|