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,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SvelteKit — navigation written as markup.
|
|
4
|
+
*
|
|
5
|
+
* <a href="/login">Sign in</a>
|
|
6
|
+
* <a href="/profile/@{user.username}">…</a>
|
|
7
|
+
* <a href={`/article/${slug}`}>…</a>
|
|
8
|
+
*
|
|
9
|
+
* SvelteKit has no link component: an ordinary `<a href>` IS the navigation,
|
|
10
|
+
* intercepted by the router. So a page's outgoing links are plain markup, the
|
|
11
|
+
* extractor records no reference for them, and the resolver in
|
|
12
|
+
* `frameworks/sveltekit-router.ts` — which binds `goto` and `redirect` —
|
|
13
|
+
* never sees them. This pass reads every internal `<a href>` out of the
|
|
14
|
+
* source, attributes it to the component (the innermost function) it is
|
|
15
|
+
* written in, matches it against the SvelteKit route table, and synthesizes
|
|
16
|
+
* one `navigates` edge from the component to the page.
|
|
17
|
+
*
|
|
18
|
+
* Edges are `provenance:'heuristic'`, `synthesizedBy:'sveltekit-link'`, with
|
|
19
|
+
* the href as written and `registeredAt` = the markup site. An external href
|
|
20
|
+
* is a link out of the site, not a transition; a computed one is nothing; a
|
|
21
|
+
* path no page serves is nothing. Nothing here runs on a project with no
|
|
22
|
+
* SvelteKit pages.
|
|
23
|
+
*
|
|
24
|
+
* This is `next-router-synthesizer.ts`'s twin over `<a href>` alone — Next
|
|
25
|
+
* reads `<Link href>` too, and Svelte has no such component.
|
|
26
|
+
*
|
|
27
|
+
* A second pass here binds a route to the `+page.svelte` that serves it
|
|
28
|
+
* (`svelteKitPageComponentEdges`): the route node and the component sit in the
|
|
29
|
+
* same file, but nothing joined them, so a SvelteKit page had no body for the
|
|
30
|
+
* Steps picture to walk and opened as a lone box.
|
|
31
|
+
*
|
|
32
|
+
* The other half of the join — a page and the `+page.server.js` beside it — is
|
|
33
|
+
* `callback-synthesizer.ts`'s `svelteKitLoadEdges`, which already existed: a
|
|
34
|
+
* SvelteKit page and its loader are two halves of one route joined by the file
|
|
35
|
+
* system rather than by a call, and without that join a page's own auth guard
|
|
36
|
+
* (`redirect(302, '/login')` in its loader) belongs to no screen at all.
|
|
37
|
+
*/
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.svelteKitLinkEdges = svelteKitLinkEdges;
|
|
40
|
+
exports.svelteKitPageComponentEdges = svelteKitPageComponentEdges;
|
|
41
|
+
const query_utils_1 = require("../search/query-utils");
|
|
42
|
+
const expo_router_1 = require("./frameworks/expo-router");
|
|
43
|
+
const nextjs_1 = require("./frameworks/nextjs");
|
|
44
|
+
const sveltekit_router_1 = require("./frameworks/sveltekit-router");
|
|
45
|
+
const synth_utils_1 = require("./synth-utils");
|
|
46
|
+
const MARKUP_FILE = /\.svelte$/;
|
|
47
|
+
/** `<a … href=…`, the attribute anywhere in the tag, quoted or bound. */
|
|
48
|
+
const LINK_TAG = /<a\b([^>]*?)\bhref\s*=\s*(?:"([^"]*)"|'([^']*)'|\{\s*)/g;
|
|
49
|
+
/** Links a single component may carry before it is a navigation menu, not a decision. */
|
|
50
|
+
const MAX_LINKS_PER_COMPONENT = 24;
|
|
51
|
+
async function svelteKitLinkEdges(ctx, onYield) {
|
|
52
|
+
const table = (0, sveltekit_router_1.svelteKitTable)(ctx);
|
|
53
|
+
if (table.byRoot.size === 0)
|
|
54
|
+
return [];
|
|
55
|
+
const edges = [];
|
|
56
|
+
const seen = new Set();
|
|
57
|
+
const perComponent = new Map();
|
|
58
|
+
let scanned = 0;
|
|
59
|
+
for (const file of ctx.getAllFiles()) {
|
|
60
|
+
if (!MARKUP_FILE.test(file) || (0, query_utils_1.isTestPath)(file))
|
|
61
|
+
continue;
|
|
62
|
+
const routes = (0, expo_router_1.routesForFile)(table, file);
|
|
63
|
+
if (!routes || routes.exact.size === 0)
|
|
64
|
+
continue;
|
|
65
|
+
if ((++scanned & 63) === 0)
|
|
66
|
+
await onYield();
|
|
67
|
+
const source = ctx.readFile(file);
|
|
68
|
+
if (!source || !source.includes('href'))
|
|
69
|
+
continue;
|
|
70
|
+
const nodes = ctx.getNodesInFile(file);
|
|
71
|
+
const lineOf = (0, synth_utils_1.makeLineAt)(source, 1);
|
|
72
|
+
LINK_TAG.lastIndex = 0;
|
|
73
|
+
let m;
|
|
74
|
+
while ((m = LINK_TAG.exec(source)) !== null) {
|
|
75
|
+
let literal = m[2] ?? m[3] ?? null;
|
|
76
|
+
if (literal === null) {
|
|
77
|
+
// `href={…}`: a string or a template with holes.
|
|
78
|
+
const at = m.index + m[0].length;
|
|
79
|
+
const ch = source[at];
|
|
80
|
+
if (ch === '"' || ch === "'" || ch === '`')
|
|
81
|
+
literal = (0, expo_router_1.readStringAt)(source, at);
|
|
82
|
+
}
|
|
83
|
+
if (literal === null)
|
|
84
|
+
continue;
|
|
85
|
+
// An external href is a link out of the site, not a transition. A
|
|
86
|
+
// Svelte `{expr}` inside a quoted attribute is an interpolation, so it
|
|
87
|
+
// becomes the same hole a template literal's `${…}` does — which is how
|
|
88
|
+
// `/profile/@{user.username}` reaches the `/profile/@:user` page.
|
|
89
|
+
if (!literal.startsWith('/'))
|
|
90
|
+
continue;
|
|
91
|
+
const href = (0, expo_router_1.toHref)(literal.replace(/\{[^}]*\}/g, expo_router_1.HOLE));
|
|
92
|
+
if (!href)
|
|
93
|
+
continue;
|
|
94
|
+
const line = lineOf(m.index);
|
|
95
|
+
const component = (0, synth_utils_1.enclosingFn)(nodes, line);
|
|
96
|
+
if (!component)
|
|
97
|
+
continue;
|
|
98
|
+
// A destination written as a choice names one route per arm, and the
|
|
99
|
+
// user reaches every one of them — each is drawn.
|
|
100
|
+
for (const { node: page, href: arm } of (0, nextjs_1.destinationsForHref)(href, routes)) {
|
|
101
|
+
const key = `${component.id}>${page.id}`;
|
|
102
|
+
if (seen.has(key))
|
|
103
|
+
continue;
|
|
104
|
+
const count = (perComponent.get(component.id) ?? 0) + 1;
|
|
105
|
+
perComponent.set(component.id, count);
|
|
106
|
+
if (count > MAX_LINKS_PER_COMPONENT)
|
|
107
|
+
continue;
|
|
108
|
+
seen.add(key);
|
|
109
|
+
edges.push({
|
|
110
|
+
source: component.id,
|
|
111
|
+
target: page.id,
|
|
112
|
+
kind: 'navigates',
|
|
113
|
+
line,
|
|
114
|
+
provenance: 'heuristic',
|
|
115
|
+
metadata: {
|
|
116
|
+
synthesizedBy: 'sveltekit-link',
|
|
117
|
+
href: arm.display,
|
|
118
|
+
navMethod: 'a',
|
|
119
|
+
registeredAt: `${file}:${line}`,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return edges;
|
|
126
|
+
}
|
|
127
|
+
// =============================================================================
|
|
128
|
+
// A route and the page that serves it
|
|
129
|
+
// =============================================================================
|
|
130
|
+
/**
|
|
131
|
+
* One `calls` edge from each `+page.svelte` route to the component in its own
|
|
132
|
+
* file — the page that renders when a navigation lands there.
|
|
133
|
+
*
|
|
134
|
+
* Every other framework's resolver names this at extraction: a Next page route
|
|
135
|
+
* points at the file's default export, a React Router route at the component
|
|
136
|
+
* the markup named. SvelteKit's route is derived from the file's PATH, and its
|
|
137
|
+
* component has no name of its own to reference (every page file's component
|
|
138
|
+
* is called `+page`), so the two are joined here, where both are already in
|
|
139
|
+
* hand and the match is the file itself rather than a name.
|
|
140
|
+
*
|
|
141
|
+
* With it, `route-roots.ts` reads the page as the route's root: the Steps
|
|
142
|
+
* picture starts at the page instead of at an empty box, and the Screens walk
|
|
143
|
+
* attributes a navigation to the screen whose component holds it rather than
|
|
144
|
+
* falling back to the file it was written in.
|
|
145
|
+
*/
|
|
146
|
+
async function svelteKitPageComponentEdges(ctx, onYield) {
|
|
147
|
+
const table = (0, sveltekit_router_1.svelteKitTable)(ctx);
|
|
148
|
+
if (table.byRoot.size === 0)
|
|
149
|
+
return [];
|
|
150
|
+
const edges = [];
|
|
151
|
+
let scanned = 0;
|
|
152
|
+
const pages = new Set();
|
|
153
|
+
for (const routes of table.byRoot.values())
|
|
154
|
+
for (const page of routes.exact.values())
|
|
155
|
+
pages.add(page);
|
|
156
|
+
for (const page of pages) {
|
|
157
|
+
if ((++scanned & 31) === 0)
|
|
158
|
+
await onYield();
|
|
159
|
+
const component = ctx.getNodesInFile(page.filePath).find((n) => n.kind === 'component');
|
|
160
|
+
if (!component)
|
|
161
|
+
continue;
|
|
162
|
+
edges.push({
|
|
163
|
+
source: page.id,
|
|
164
|
+
target: component.id,
|
|
165
|
+
kind: 'calls',
|
|
166
|
+
line: component.startLine,
|
|
167
|
+
provenance: 'heuristic',
|
|
168
|
+
metadata: { synthesizedBy: 'sveltekit-page', registeredAt: page.filePath },
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
return edges;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=sveltekit-synthesizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sveltekit-synthesizer.js","sourceRoot":"","sources":["../../src/resolution/sveltekit-synthesizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swift ↔ Objective-C bridging rules.
|
|
3
|
+
*
|
|
4
|
+
* Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
|
|
5
|
+
* runtime under a deterministic selector name. The full rule set:
|
|
6
|
+
* https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
|
|
7
|
+
*
|
|
8
|
+
* This module is **pure name math** — given a Swift declaration's base name
|
|
9
|
+
* + parameter external labels (or the raw signature text), produce the
|
|
10
|
+
* bridged ObjC selector(s); given an ObjC selector, produce the
|
|
11
|
+
* candidate Swift base names. No graph/DB access here.
|
|
12
|
+
*
|
|
13
|
+
* Used by `frameworks/swift-objc.ts` (the framework resolver that wires
|
|
14
|
+
* the rules into the resolution pipeline) and by its tests.
|
|
15
|
+
*
|
|
16
|
+
* ─── Bridging cheat sheet ───────────────────────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* Swift declaration ObjC selector
|
|
19
|
+
* ───────────────────────────────────────── ─────────────────────────
|
|
20
|
+
* func play() play
|
|
21
|
+
* func play(_ song: String) play:
|
|
22
|
+
* func play(song: String) playWithSong:
|
|
23
|
+
* func play(_ song: String, by artist: String) play:by:
|
|
24
|
+
* func play(song: String, by artist: String) playWithSong:by:
|
|
25
|
+
* init(name: String) initWithName:
|
|
26
|
+
* init(name: String, age: Int) initWithName:age:
|
|
27
|
+
* var name: String (getter / setter) name / setName:
|
|
28
|
+
* @objc(custom:) func f(_ x: Int) custom: (literal override)
|
|
29
|
+
*
|
|
30
|
+
* The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
|
|
31
|
+
* site for `play(song:)` reaches us as the bare base name `play` (Swift's
|
|
32
|
+
* tree-sitter call_expression strips parameter labels from the callee
|
|
33
|
+
* name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
|
|
34
|
+
* `['play']` — the resolver looks up Swift methods named `play`.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Compute the auto-bridged ObjC selector for a Swift method declaration.
|
|
38
|
+
*
|
|
39
|
+
* @param baseName The Swift method's base name (e.g. `play`).
|
|
40
|
+
* @param externalLabels Parameter EXTERNAL labels in declaration order;
|
|
41
|
+
* `null` for a `_` (unlabeled) parameter.
|
|
42
|
+
* `[]` for a no-parameter method.
|
|
43
|
+
* @param explicitObjcName If `@objc(customSel:)` was specified, the
|
|
44
|
+
* literal selector — short-circuits the rule
|
|
45
|
+
* and is returned as-is.
|
|
46
|
+
* @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
|
|
47
|
+
* can't be determined.
|
|
48
|
+
*
|
|
49
|
+
* **Method rules:**
|
|
50
|
+
* - No params → base name (no colons)
|
|
51
|
+
* - Single param, `_` label → `baseName:`
|
|
52
|
+
* - Single param, explicit label `L` → `baseNameWithL:`
|
|
53
|
+
* - Multi-param, `_` first label → `baseName:label2:label3:`
|
|
54
|
+
* - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
|
|
55
|
+
*
|
|
56
|
+
* Initializer rules are handled by `objcSelectorForSwiftInit`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function objcSelectorForSwiftMethod(baseName: string, externalLabels: (string | null)[], explicitObjcName?: string | null): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Compute the bridged ObjC selector for a Swift `init(...)` declaration.
|
|
61
|
+
*
|
|
62
|
+
* **Init rules** (different from regular methods — Apple always uses
|
|
63
|
+
* `initWith` regardless of whether the first label is `_`):
|
|
64
|
+
* - `init()` → `init`
|
|
65
|
+
* - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
|
|
66
|
+
* name when external is `_`, per Apple's
|
|
67
|
+
* bridging conventions)
|
|
68
|
+
* - `init(name: String)` → `initWithName:`
|
|
69
|
+
* - `init(name: String, age: Int)` → `initWithName:age:`
|
|
70
|
+
*
|
|
71
|
+
* For the `_` case we need the internal (second identifier) name —
|
|
72
|
+
* passed via `internalNames`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function objcSelectorForSwiftInit(externalLabels: (string | null)[], internalNames: string[], explicitObjcName?: string | null): string | null;
|
|
75
|
+
/**
|
|
76
|
+
* Compute the bridged ObjC getter + setter for a Swift `@objc` property.
|
|
77
|
+
*
|
|
78
|
+
* - `var name: String` → getter `name`, setter `setName:`
|
|
79
|
+
* - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
|
|
80
|
+
* (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
|
|
81
|
+
* `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
|
|
82
|
+
* `setReady:` pairing is needed — that's the responsibility of the
|
|
83
|
+
* declaration's `@objc(customGetter)` annotation, which we surface via
|
|
84
|
+
* `explicitObjcName`.)
|
|
85
|
+
*/
|
|
86
|
+
export declare function objcAccessorsForSwiftProperty(swiftName: string, explicitObjcName?: string | null): {
|
|
87
|
+
getter: string;
|
|
88
|
+
setter: string;
|
|
89
|
+
} | null;
|
|
90
|
+
/**
|
|
91
|
+
* Reverse: from an ObjC selector, return the candidate Swift base names
|
|
92
|
+
* the resolver should try when looking for the bridged Swift declaration.
|
|
93
|
+
*
|
|
94
|
+
* Examples:
|
|
95
|
+
* `play` → ['play']
|
|
96
|
+
* `play:` → ['play']
|
|
97
|
+
* `playWithSong:` → ['play', 'playWithSong']
|
|
98
|
+
* `play:by:` → ['play']
|
|
99
|
+
* `playWithSong:by:` → ['play', 'playWithSong']
|
|
100
|
+
* `initWithName:` → ['init'] (init is its own base name)
|
|
101
|
+
* `initWithName:age:` → ['init']
|
|
102
|
+
* `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
|
|
103
|
+
* `tableView:didSel…:` → ['tableView']
|
|
104
|
+
*
|
|
105
|
+
* Returns multiple candidates because the bare base name is ambiguous —
|
|
106
|
+
* `playWithSong:` could correspond to either `func play(song:)` or
|
|
107
|
+
* `func playWithSong(_ x:)` (a Swift method literally named that with a
|
|
108
|
+
* `_` first label). The resolver tries each.
|
|
109
|
+
*/
|
|
110
|
+
export declare function swiftBaseNamesForObjcSelector(selector: string): string[];
|
|
111
|
+
/**
|
|
112
|
+
* Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
|
|
113
|
+
* override form, returning the literal selector when present.
|
|
114
|
+
*
|
|
115
|
+
* Regex-based scan over the small chunk of source preceding the declaration —
|
|
116
|
+
* tree-sitter would be more precise but this is only consulted as a fallback
|
|
117
|
+
* when the structured AST isn't available (e.g. resolver-time lookups
|
|
118
|
+
* via `context.readFile`).
|
|
119
|
+
*
|
|
120
|
+
* Returns `null` when the declaration is plain `@objc` (no override) or has
|
|
121
|
+
* no `@objc` attribute at all.
|
|
122
|
+
*/
|
|
123
|
+
export declare function detectExplicitObjcName(sourceSlice: string): string | null;
|
|
124
|
+
/**
|
|
125
|
+
* Detect whether a Swift declaration is `@objc`-exposed by scanning the
|
|
126
|
+
* source slice that precedes it. Returns true for explicit `@objc`,
|
|
127
|
+
* `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
|
|
128
|
+
* responsibility to pass class-level context if relevant).
|
|
129
|
+
*
|
|
130
|
+
* `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
|
|
131
|
+
* that `@nonobjc` opts out of class-level `@objcMembers`).
|
|
132
|
+
*/
|
|
133
|
+
export declare function isObjcExposed(sourceSlice: string): boolean;
|
|
134
|
+
//# sourceMappingURL=swift-objc-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift-objc-bridge.d.ts","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAmBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CA0Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAW3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG1D"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Swift ↔ Objective-C bridging rules.
|
|
4
|
+
*
|
|
5
|
+
* Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
|
|
6
|
+
* runtime under a deterministic selector name. The full rule set:
|
|
7
|
+
* https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
|
|
8
|
+
*
|
|
9
|
+
* This module is **pure name math** — given a Swift declaration's base name
|
|
10
|
+
* + parameter external labels (or the raw signature text), produce the
|
|
11
|
+
* bridged ObjC selector(s); given an ObjC selector, produce the
|
|
12
|
+
* candidate Swift base names. No graph/DB access here.
|
|
13
|
+
*
|
|
14
|
+
* Used by `frameworks/swift-objc.ts` (the framework resolver that wires
|
|
15
|
+
* the rules into the resolution pipeline) and by its tests.
|
|
16
|
+
*
|
|
17
|
+
* ─── Bridging cheat sheet ───────────────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* Swift declaration ObjC selector
|
|
20
|
+
* ───────────────────────────────────────── ─────────────────────────
|
|
21
|
+
* func play() play
|
|
22
|
+
* func play(_ song: String) play:
|
|
23
|
+
* func play(song: String) playWithSong:
|
|
24
|
+
* func play(_ song: String, by artist: String) play:by:
|
|
25
|
+
* func play(song: String, by artist: String) playWithSong:by:
|
|
26
|
+
* init(name: String) initWithName:
|
|
27
|
+
* init(name: String, age: Int) initWithName:age:
|
|
28
|
+
* var name: String (getter / setter) name / setName:
|
|
29
|
+
* @objc(custom:) func f(_ x: Int) custom: (literal override)
|
|
30
|
+
*
|
|
31
|
+
* The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
|
|
32
|
+
* site for `play(song:)` reaches us as the bare base name `play` (Swift's
|
|
33
|
+
* tree-sitter call_expression strips parameter labels from the callee
|
|
34
|
+
* name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
|
|
35
|
+
* `['play']` — the resolver looks up Swift methods named `play`.
|
|
36
|
+
*/
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.objcSelectorForSwiftMethod = objcSelectorForSwiftMethod;
|
|
39
|
+
exports.objcSelectorForSwiftInit = objcSelectorForSwiftInit;
|
|
40
|
+
exports.objcAccessorsForSwiftProperty = objcAccessorsForSwiftProperty;
|
|
41
|
+
exports.swiftBaseNamesForObjcSelector = swiftBaseNamesForObjcSelector;
|
|
42
|
+
exports.detectExplicitObjcName = detectExplicitObjcName;
|
|
43
|
+
exports.isObjcExposed = isObjcExposed;
|
|
44
|
+
/**
|
|
45
|
+
* Capitalize the first character of a string. Used for the "With"-prefix
|
|
46
|
+
* form on the first selector keyword when the Swift declaration has an
|
|
47
|
+
* explicit first-parameter label (e.g. `func play(song:)` → `playWithSong:`).
|
|
48
|
+
*/
|
|
49
|
+
function capFirst(s) {
|
|
50
|
+
return s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Lowercase the first character. Used in reverse: `setName:` setter ↔
|
|
54
|
+
* Swift property `name`.
|
|
55
|
+
*/
|
|
56
|
+
function lowerFirst(s) {
|
|
57
|
+
return s.length > 0 ? s.charAt(0).toLowerCase() + s.slice(1) : s;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Compute the auto-bridged ObjC selector for a Swift method declaration.
|
|
61
|
+
*
|
|
62
|
+
* @param baseName The Swift method's base name (e.g. `play`).
|
|
63
|
+
* @param externalLabels Parameter EXTERNAL labels in declaration order;
|
|
64
|
+
* `null` for a `_` (unlabeled) parameter.
|
|
65
|
+
* `[]` for a no-parameter method.
|
|
66
|
+
* @param explicitObjcName If `@objc(customSel:)` was specified, the
|
|
67
|
+
* literal selector — short-circuits the rule
|
|
68
|
+
* and is returned as-is.
|
|
69
|
+
* @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
|
|
70
|
+
* can't be determined.
|
|
71
|
+
*
|
|
72
|
+
* **Method rules:**
|
|
73
|
+
* - No params → base name (no colons)
|
|
74
|
+
* - Single param, `_` label → `baseName:`
|
|
75
|
+
* - Single param, explicit label `L` → `baseNameWithL:`
|
|
76
|
+
* - Multi-param, `_` first label → `baseName:label2:label3:`
|
|
77
|
+
* - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
|
|
78
|
+
*
|
|
79
|
+
* Initializer rules are handled by `objcSelectorForSwiftInit`.
|
|
80
|
+
*/
|
|
81
|
+
function objcSelectorForSwiftMethod(baseName, externalLabels, explicitObjcName) {
|
|
82
|
+
if (!baseName)
|
|
83
|
+
return null;
|
|
84
|
+
if (explicitObjcName)
|
|
85
|
+
return explicitObjcName;
|
|
86
|
+
if (externalLabels.length === 0) {
|
|
87
|
+
return baseName;
|
|
88
|
+
}
|
|
89
|
+
const [first, ...rest] = externalLabels;
|
|
90
|
+
// Single param: "_" → "base:" ; "label" → "baseWithLabel:"
|
|
91
|
+
// Multi-param mirrors the same first-keyword formation, then appends each
|
|
92
|
+
// subsequent label as its own keyword. A `null` later label is invalid
|
|
93
|
+
// ObjC (no way to express unlabeled middle params) — keep as `:` to be safe.
|
|
94
|
+
const firstKeyword = first === null || first === undefined || first === '_' || first === ''
|
|
95
|
+
? `${baseName}:`
|
|
96
|
+
: `${baseName}With${capFirst(first)}:`;
|
|
97
|
+
const restKeywords = rest.map((l) => `${l ?? ''}:`).join('');
|
|
98
|
+
return firstKeyword + restKeywords;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Compute the bridged ObjC selector for a Swift `init(...)` declaration.
|
|
102
|
+
*
|
|
103
|
+
* **Init rules** (different from regular methods — Apple always uses
|
|
104
|
+
* `initWith` regardless of whether the first label is `_`):
|
|
105
|
+
* - `init()` → `init`
|
|
106
|
+
* - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
|
|
107
|
+
* name when external is `_`, per Apple's
|
|
108
|
+
* bridging conventions)
|
|
109
|
+
* - `init(name: String)` → `initWithName:`
|
|
110
|
+
* - `init(name: String, age: Int)` → `initWithName:age:`
|
|
111
|
+
*
|
|
112
|
+
* For the `_` case we need the internal (second identifier) name —
|
|
113
|
+
* passed via `internalNames`.
|
|
114
|
+
*/
|
|
115
|
+
function objcSelectorForSwiftInit(externalLabels, internalNames, explicitObjcName) {
|
|
116
|
+
if (explicitObjcName)
|
|
117
|
+
return explicitObjcName;
|
|
118
|
+
if (externalLabels.length === 0) {
|
|
119
|
+
return 'init';
|
|
120
|
+
}
|
|
121
|
+
const [firstExt, ...restExt] = externalLabels;
|
|
122
|
+
const [firstInt] = internalNames;
|
|
123
|
+
// Use the internal name when external is "_"; ObjC needs *some* keyword,
|
|
124
|
+
// and Swift's auto-bridger uses the parameter's local name in this case.
|
|
125
|
+
const firstLabel = firstExt === null || firstExt === '_' || firstExt === ''
|
|
126
|
+
? firstInt
|
|
127
|
+
: firstExt;
|
|
128
|
+
if (!firstLabel)
|
|
129
|
+
return null;
|
|
130
|
+
const firstKeyword = `initWith${capFirst(firstLabel)}:`;
|
|
131
|
+
const restKeywords = restExt
|
|
132
|
+
.map((label, idx) => {
|
|
133
|
+
const internal = internalNames[idx + 1];
|
|
134
|
+
const name = label && label !== '_' ? label : internal ?? '';
|
|
135
|
+
return `${name}:`;
|
|
136
|
+
})
|
|
137
|
+
.join('');
|
|
138
|
+
return firstKeyword + restKeywords;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Compute the bridged ObjC getter + setter for a Swift `@objc` property.
|
|
142
|
+
*
|
|
143
|
+
* - `var name: String` → getter `name`, setter `setName:`
|
|
144
|
+
* - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
|
|
145
|
+
* (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
|
|
146
|
+
* `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
|
|
147
|
+
* `setReady:` pairing is needed — that's the responsibility of the
|
|
148
|
+
* declaration's `@objc(customGetter)` annotation, which we surface via
|
|
149
|
+
* `explicitObjcName`.)
|
|
150
|
+
*/
|
|
151
|
+
function objcAccessorsForSwiftProperty(swiftName, explicitObjcName) {
|
|
152
|
+
if (!swiftName)
|
|
153
|
+
return null;
|
|
154
|
+
// The override syntax `@objc(customGetterName)` re-points the GETTER only;
|
|
155
|
+
// the setter still follows the `setX:` rule but is keyed off the override.
|
|
156
|
+
// (`@objc(getX:setY:)` is not currently supported — that's a rarer
|
|
157
|
+
// shape; can extend later if a real codebase needs it.)
|
|
158
|
+
const getter = explicitObjcName ?? swiftName;
|
|
159
|
+
return {
|
|
160
|
+
getter,
|
|
161
|
+
setter: `set${capFirst(getter)}:`,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Reverse: from an ObjC selector, return the candidate Swift base names
|
|
166
|
+
* the resolver should try when looking for the bridged Swift declaration.
|
|
167
|
+
*
|
|
168
|
+
* Examples:
|
|
169
|
+
* `play` → ['play']
|
|
170
|
+
* `play:` → ['play']
|
|
171
|
+
* `playWithSong:` → ['play', 'playWithSong']
|
|
172
|
+
* `play:by:` → ['play']
|
|
173
|
+
* `playWithSong:by:` → ['play', 'playWithSong']
|
|
174
|
+
* `initWithName:` → ['init'] (init is its own base name)
|
|
175
|
+
* `initWithName:age:` → ['init']
|
|
176
|
+
* `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
|
|
177
|
+
* `tableView:didSel…:` → ['tableView']
|
|
178
|
+
*
|
|
179
|
+
* Returns multiple candidates because the bare base name is ambiguous —
|
|
180
|
+
* `playWithSong:` could correspond to either `func play(song:)` or
|
|
181
|
+
* `func playWithSong(_ x:)` (a Swift method literally named that with a
|
|
182
|
+
* `_` first label). The resolver tries each.
|
|
183
|
+
*/
|
|
184
|
+
function swiftBaseNamesForObjcSelector(selector) {
|
|
185
|
+
if (!selector)
|
|
186
|
+
return [];
|
|
187
|
+
// Strip trailing colons and split into keywords.
|
|
188
|
+
const keywords = selector.replace(/:+$/g, '').split(':');
|
|
189
|
+
const firstKeyword = keywords[0];
|
|
190
|
+
if (!firstKeyword)
|
|
191
|
+
return [];
|
|
192
|
+
const candidates = new Set();
|
|
193
|
+
// Always a candidate: the raw first keyword. Covers
|
|
194
|
+
// `play:` → `play`
|
|
195
|
+
// `play:by:` → `play`
|
|
196
|
+
// `playWithSong:` → `playWithSong` (a literal Swift name)
|
|
197
|
+
// `tableView:...:` → `tableView`
|
|
198
|
+
candidates.add(firstKeyword);
|
|
199
|
+
// `initWith<X>:` and `initWith<X>:<more>:` always reduce to `init`.
|
|
200
|
+
if (firstKeyword.startsWith('initWith')) {
|
|
201
|
+
candidates.add('init');
|
|
202
|
+
}
|
|
203
|
+
// Preposition-prefix patterns: `<base>(With|For|By|In|On|At|From|To|Of|As)<Cap>:`
|
|
204
|
+
// covers both Swift's @objc EXPORT rule (always "With") and Cocoa's
|
|
205
|
+
// IMPORTED selectors which use other prepositions natively (e.g.
|
|
206
|
+
// `objectForKey:`, `stringWithFormat:`, `compareTo:`,
|
|
207
|
+
// `imageNamed:inBundle:`). Strip to recover the Swift base name a caller
|
|
208
|
+
// would use (e.g. `object`, `string`, `compare`, `image`).
|
|
209
|
+
const prepositionMatch = firstKeyword.match(/^([a-z][a-zA-Z0-9]*?)(?:With|For|By|In|On|At|From|To|Of|As)[A-Z]/);
|
|
210
|
+
if (prepositionMatch && prepositionMatch[1]) {
|
|
211
|
+
candidates.add(prepositionMatch[1]);
|
|
212
|
+
}
|
|
213
|
+
// `setX:` could be a property setter — the Swift property is `x` (lowercase).
|
|
214
|
+
// Only fires for the obvious shape: `set` + capital letter + ':' (one param).
|
|
215
|
+
if (keywords.length === 1 &&
|
|
216
|
+
/^set[A-Z]/.test(firstKeyword) &&
|
|
217
|
+
selector.endsWith(':')) {
|
|
218
|
+
const propName = lowerFirst(firstKeyword.slice(3));
|
|
219
|
+
if (propName)
|
|
220
|
+
candidates.add(propName);
|
|
221
|
+
}
|
|
222
|
+
return Array.from(candidates);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
|
|
226
|
+
* override form, returning the literal selector when present.
|
|
227
|
+
*
|
|
228
|
+
* Regex-based scan over the small chunk of source preceding the declaration —
|
|
229
|
+
* tree-sitter would be more precise but this is only consulted as a fallback
|
|
230
|
+
* when the structured AST isn't available (e.g. resolver-time lookups
|
|
231
|
+
* via `context.readFile`).
|
|
232
|
+
*
|
|
233
|
+
* Returns `null` when the declaration is plain `@objc` (no override) or has
|
|
234
|
+
* no `@objc` attribute at all.
|
|
235
|
+
*/
|
|
236
|
+
function detectExplicitObjcName(sourceSlice) {
|
|
237
|
+
// `@objc(customName:)` or `@objc(custom:name:)` — the parens contents are
|
|
238
|
+
// the literal ObjC selector. Whitespace permitted.
|
|
239
|
+
const m = sourceSlice.match(/@objc\s*\(\s*([^)\s]+)\s*\)/);
|
|
240
|
+
return m && m[1] ? m[1] : null;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Detect whether a Swift declaration is `@objc`-exposed by scanning the
|
|
244
|
+
* source slice that precedes it. Returns true for explicit `@objc`,
|
|
245
|
+
* `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
|
|
246
|
+
* responsibility to pass class-level context if relevant).
|
|
247
|
+
*
|
|
248
|
+
* `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
|
|
249
|
+
* that `@nonobjc` opts out of class-level `@objcMembers`).
|
|
250
|
+
*/
|
|
251
|
+
function isObjcExposed(sourceSlice) {
|
|
252
|
+
if (/@nonobjc\b/.test(sourceSlice))
|
|
253
|
+
return false;
|
|
254
|
+
return /@objc\b/.test(sourceSlice);
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=swift-objc-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift-objc-bridge.js","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;AAyCH,gEAwBC;AAiBD,4DA8BC;AAaD,sEAcC;AAsBD,sEA+CC;AAcD,wDAKC;AAWD,sCAGC;AA/OD;;;;GAIG;AACH,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,0BAA0B,CACxC,QAAgB,EAChB,cAAiC,EACjC,gBAAgC;IAEhC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC;IACxC,2DAA2D;IAC3D,0EAA0E;IAC1E,uEAAuE;IACvE,6EAA6E;IAC7E,MAAM,YAAY,GAChB,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;QACpE,CAAC,CAAC,GAAG,QAAQ,GAAG;QAChB,CAAC,CAAC,GAAG,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,wBAAwB,CACtC,cAAiC,EACjC,aAAuB,EACvB,gBAAgC;IAEhC,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,cAAc,CAAC;IAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;IACjC,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,UAAU,GACd,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,EAAE;QACtD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC;IACf,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,YAAY,GAAG,WAAW,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO;SACzB,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7D,OAAO,GAAG,IAAI,GAAG,CAAC;IACpB,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,6BAA6B,CAC3C,SAAiB,EACjB,gBAAgC;IAEhC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,2EAA2E;IAC3E,2EAA2E;IAC3E,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,MAAM,GAAG,gBAAgB,IAAI,SAAS,CAAC;IAC7C,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,6BAA6B,CAAC,QAAgB;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,iDAAiD;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE1C,oDAAoD;IACpD,+BAA+B;IAC/B,+BAA+B;IAC/B,8DAA8D;IAC9D,oCAAoC;IACpC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE7B,oEAAoE;IACpE,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,kFAAkF;IAClF,oEAAoE;IACpE,iEAAiE;IACjE,sDAAsD;IACtD,yEAAyE;IACzE,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CACzC,kEAAkE,CACnE,CAAC;IACF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EACtB,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ;YAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,sBAAsB,CAAC,WAAmB;IACxD,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,WAAmB;IAC/C,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small helpers the dynamic-edge synthesizers share: a per-match line
|
|
3
|
+
* resolver over one source string, and "the function this line is in".
|
|
4
|
+
*/
|
|
5
|
+
import type { Node } from '../types';
|
|
6
|
+
/** The kinds a call site can be attributed to. */
|
|
7
|
+
export declare const FN_KINDS: ReadonlySet<string>;
|
|
8
|
+
/**
|
|
9
|
+
* Per-match line resolver over `src`, 1-based at `baseLine`. The inline
|
|
10
|
+
* `src.slice(0, idx).split('\n').length` idiom is O(source-length) PER MATCH,
|
|
11
|
+
* which goes quadratic on a match-dense source (a generated function full of
|
|
12
|
+
* `.push(` calls re-scanned tens of thousands of times was most of the #1235
|
|
13
|
+
* indexing wedge). Builds the newline index once — lazily, since most sources
|
|
14
|
+
* never produce a match — then answers each call with a binary search.
|
|
15
|
+
*/
|
|
16
|
+
export declare function makeLineAt(src: string, baseLine: number): (idx: number) => number;
|
|
17
|
+
/** Innermost function/method node whose line range contains `line`. */
|
|
18
|
+
export declare function enclosingFn(nodesInFile: readonly Node[], line: number): Node | null;
|
|
19
|
+
/**
|
|
20
|
+
* The smallest `constant` / `variable` node whose lines contain `line` — the
|
|
21
|
+
* value a top-level registration is written inside (`const worker = new
|
|
22
|
+
* Worker('q', async (job) => …)`): what a caller imports and a walk can start
|
|
23
|
+
* from when no function encloses the site.
|
|
24
|
+
*/
|
|
25
|
+
export declare function enclosingValue(nodesInFile: readonly Node[], line: number): Node | null;
|
|
26
|
+
//# sourceMappingURL=synth-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synth-utils.d.ts","sourceRoot":"","sources":["../../src/resolution/synth-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,kDAAkD;AAClD,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAgD,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAiBjF;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAUnF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAUtF"}
|