@quolu/lattice 0.70.0 → 0.71.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/package.json +1 -1
- package/sensor/dist/bin/lattice-sensor.js +746 -323
- package/sensor/dist/bin/viewer-gate.d.ts +17 -0
- package/sensor/dist/bin/viewer-gate.d.ts.map +1 -0
- package/sensor/dist/bin/viewer-gate.js +31 -0
- package/sensor/dist/bin/viewer-gate.js.map +1 -0
- package/sensor/dist/context/formatter.d.ts +7 -1
- package/sensor/dist/context/formatter.d.ts.map +1 -1
- package/sensor/dist/context/formatter.js +12 -6
- package/sensor/dist/context/formatter.js.map +1 -1
- package/sensor/dist/context/index.d.ts +12 -0
- package/sensor/dist/context/index.d.ts.map +1 -1
- package/sensor/dist/context/index.js +103 -16
- package/sensor/dist/context/index.js.map +1 -1
- package/sensor/dist/db/index.d.ts +23 -2
- package/sensor/dist/db/index.d.ts.map +1 -1
- package/sensor/dist/db/index.js +109 -31
- package/sensor/dist/db/index.js.map +1 -1
- package/sensor/dist/db/migrations.d.ts +1 -1
- package/sensor/dist/db/migrations.d.ts.map +1 -1
- package/sensor/dist/db/migrations.js +68 -1
- package/sensor/dist/db/migrations.js.map +1 -1
- package/sensor/dist/db/queries.d.ts +583 -6
- package/sensor/dist/db/queries.d.ts.map +1 -1
- package/sensor/dist/db/queries.js +1425 -57
- package/sensor/dist/db/queries.js.map +1 -1
- package/sensor/dist/db/schema.sql +27 -4
- package/sensor/dist/db/sqlite-adapter.d.ts +2 -0
- package/sensor/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/sensor/dist/db/sqlite-adapter.js +56 -7
- package/sensor/dist/db/sqlite-adapter.js.map +1 -1
- package/sensor/dist/db/synthesis-stage.d.ts +12 -0
- package/sensor/dist/db/synthesis-stage.d.ts.map +1 -0
- package/sensor/dist/db/synthesis-stage.js +93 -0
- package/sensor/dist/db/synthesis-stage.js.map +1 -0
- package/sensor/dist/db/wal-valve.d.ts +32 -12
- package/sensor/dist/db/wal-valve.d.ts.map +1 -1
- package/sensor/dist/db/wal-valve.js +65 -22
- package/sensor/dist/db/wal-valve.js.map +1 -1
- package/sensor/dist/db/wsl-shared-index.d.ts +53 -0
- package/sensor/dist/db/wsl-shared-index.d.ts.map +1 -0
- package/sensor/dist/db/wsl-shared-index.js +121 -0
- package/sensor/dist/db/wsl-shared-index.js.map +1 -0
- package/sensor/dist/directory.d.ts +126 -2
- package/sensor/dist/directory.d.ts.map +1 -1
- package/sensor/dist/directory.js +285 -16
- package/sensor/dist/directory.js.map +1 -1
- package/sensor/dist/errors.d.ts +14 -0
- package/sensor/dist/errors.d.ts.map +1 -1
- package/sensor/dist/errors.js +16 -1
- package/sensor/dist/errors.js.map +1 -1
- package/sensor/dist/extraction/cfml-extractor.d.ts +1 -0
- package/sensor/dist/extraction/cfml-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/cfml-extractor.js +15 -3
- package/sensor/dist/extraction/cfml-extractor.js.map +1 -1
- package/sensor/dist/extraction/dfm-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/dfm-extractor.js +14 -10
- package/sensor/dist/extraction/dfm-extractor.js.map +1 -1
- package/sensor/dist/extraction/extraction-version.d.ts +1 -1
- package/sensor/dist/extraction/extraction-version.d.ts.map +1 -1
- package/sensor/dist/extraction/extraction-version.js +3 -1
- package/sensor/dist/extraction/extraction-version.js.map +1 -1
- package/sensor/dist/extraction/function-ref.d.ts +6 -4
- package/sensor/dist/extraction/function-ref.d.ts.map +1 -1
- package/sensor/dist/extraction/function-ref.js +35 -14
- package/sensor/dist/extraction/function-ref.js.map +1 -1
- package/sensor/dist/extraction/generated-detection.d.ts +48 -12
- package/sensor/dist/extraction/generated-detection.d.ts.map +1 -1
- package/sensor/dist/extraction/generated-detection.js +176 -11
- package/sensor/dist/extraction/generated-detection.js.map +1 -1
- package/sensor/dist/extraction/grammars.d.ts +38 -0
- package/sensor/dist/extraction/grammars.d.ts.map +1 -1
- package/sensor/dist/extraction/grammars.js +115 -3
- package/sensor/dist/extraction/grammars.js.map +1 -1
- package/sensor/dist/extraction/index.d.ts +218 -14
- package/sensor/dist/extraction/index.d.ts.map +1 -1
- package/sensor/dist/extraction/index.js +887 -175
- package/sensor/dist/extraction/index.js.map +1 -1
- package/sensor/dist/extraction/languages/c-cpp.d.ts +58 -0
- package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/c-cpp.js +310 -19
- package/sensor/dist/extraction/languages/c-cpp.js.map +1 -1
- package/sensor/dist/extraction/languages/dart.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/dart.js +8 -3
- package/sensor/dist/extraction/languages/dart.js.map +1 -1
- package/sensor/dist/extraction/languages/erlang.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/erlang.js +58 -22
- package/sensor/dist/extraction/languages/erlang.js.map +1 -1
- package/sensor/dist/extraction/languages/javascript.js +1 -1
- package/sensor/dist/extraction/languages/javascript.js.map +1 -1
- package/sensor/dist/extraction/languages/kotlin.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/kotlin.js +169 -36
- package/sensor/dist/extraction/languages/kotlin.js.map +1 -1
- package/sensor/dist/extraction/languages/lua.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/lua.js +4 -1
- package/sensor/dist/extraction/languages/lua.js.map +1 -1
- package/sensor/dist/extraction/languages/objc.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/objc.js +4 -0
- package/sensor/dist/extraction/languages/objc.js.map +1 -1
- package/sensor/dist/extraction/languages/python.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/python.js +71 -0
- package/sensor/dist/extraction/languages/python.js.map +1 -1
- package/sensor/dist/extraction/languages/rust.d.ts +20 -0
- package/sensor/dist/extraction/languages/rust.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/rust.js +50 -20
- package/sensor/dist/extraction/languages/rust.js.map +1 -1
- package/sensor/dist/extraction/languages/scala.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/scala.js +18 -3
- package/sensor/dist/extraction/languages/scala.js.map +1 -1
- package/sensor/dist/extraction/languages/swift.d.ts +15 -0
- package/sensor/dist/extraction/languages/swift.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/swift.js +50 -0
- package/sensor/dist/extraction/languages/swift.js.map +1 -1
- package/sensor/dist/extraction/languages/typescript.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/typescript.js +9 -2
- package/sensor/dist/extraction/languages/typescript.js.map +1 -1
- package/sensor/dist/extraction/liquid-extractor.d.ts +18 -0
- package/sensor/dist/extraction/liquid-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/liquid-extractor.js +98 -22
- package/sensor/dist/extraction/liquid-extractor.js.map +1 -1
- package/sensor/dist/extraction/mybatis-extractor.d.ts.map +1 -1
- package/sensor/dist/extraction/mybatis-extractor.js +6 -4
- package/sensor/dist/extraction/mybatis-extractor.js.map +1 -1
- package/sensor/dist/extraction/parse-pool.d.ts +7 -0
- package/sensor/dist/extraction/parse-pool.d.ts.map +1 -1
- package/sensor/dist/extraction/parse-pool.js +20 -1
- package/sensor/dist/extraction/parse-pool.js.map +1 -1
- package/sensor/dist/extraction/syntax-tokens.d.ts +103 -0
- package/sensor/dist/extraction/syntax-tokens.d.ts.map +1 -0
- package/sensor/dist/extraction/syntax-tokens.js +381 -0
- package/sensor/dist/extraction/syntax-tokens.js.map +1 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts +5 -0
- package/sensor/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter-helpers.js +17 -0
- package/sensor/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/sensor/dist/extraction/tree-sitter-types.d.ts +31 -3
- package/sensor/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter.d.ts +101 -18
- package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter.js +928 -134
- package/sensor/dist/extraction/tree-sitter.js.map +1 -1
- package/sensor/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/sensor/dist/file-limits.d.ts +40 -0
- package/sensor/dist/file-limits.d.ts.map +1 -0
- package/sensor/dist/file-limits.js +147 -0
- package/sensor/dist/file-limits.js.map +1 -0
- package/sensor/dist/graph/branch-guards.d.ts +265 -0
- package/sensor/dist/graph/branch-guards.d.ts.map +1 -0
- package/sensor/dist/graph/branch-guards.js +2325 -0
- package/sensor/dist/graph/branch-guards.js.map +1 -0
- package/sensor/dist/graph/dead-code.d.ts +251 -0
- package/sensor/dist/graph/dead-code.d.ts.map +1 -0
- package/sensor/dist/graph/dead-code.js +776 -0
- package/sensor/dist/graph/dead-code.js.map +1 -0
- package/sensor/dist/graph/dynamic-boundary-report.d.ts +121 -0
- package/sensor/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
- package/sensor/dist/graph/dynamic-boundary-report.js +283 -0
- package/sensor/dist/graph/dynamic-boundary-report.js.map +1 -0
- package/sensor/dist/graph/index.d.ts +4 -0
- package/sensor/dist/graph/index.d.ts.map +1 -1
- package/sensor/dist/graph/index.js +16 -1
- package/sensor/dist/graph/index.js.map +1 -1
- package/sensor/dist/graph/named-symbol-flow.d.ts +125 -0
- package/sensor/dist/graph/named-symbol-flow.d.ts.map +1 -0
- package/sensor/dist/graph/named-symbol-flow.js +552 -0
- package/sensor/dist/graph/named-symbol-flow.js.map +1 -0
- package/sensor/dist/graph/queries.d.ts.map +1 -1
- package/sensor/dist/graph/queries.js +2 -0
- package/sensor/dist/graph/queries.js.map +1 -1
- package/sensor/dist/graph/symbol-lookup.d.ts +83 -0
- package/sensor/dist/graph/symbol-lookup.d.ts.map +1 -0
- package/sensor/dist/graph/symbol-lookup.js +181 -0
- package/sensor/dist/graph/symbol-lookup.js.map +1 -0
- package/sensor/dist/graph/traversal.d.ts +9 -0
- package/sensor/dist/graph/traversal.d.ts.map +1 -1
- package/sensor/dist/graph/traversal.js +62 -36
- package/sensor/dist/graph/traversal.js.map +1 -1
- package/sensor/dist/graph/type-hierarchy.d.ts +155 -0
- package/sensor/dist/graph/type-hierarchy.d.ts.map +1 -0
- package/sensor/dist/graph/type-hierarchy.js +382 -0
- package/sensor/dist/graph/type-hierarchy.js.map +1 -0
- package/sensor/dist/index.d.ts +272 -10
- package/sensor/dist/index.d.ts.map +1 -1
- package/sensor/dist/index.js +510 -34
- package/sensor/dist/index.js.map +1 -1
- package/sensor/dist/mcp/answer-freshness.d.ts +10 -0
- package/sensor/dist/mcp/answer-freshness.d.ts.map +1 -0
- package/sensor/dist/mcp/answer-freshness.js +68 -0
- package/sensor/dist/mcp/answer-freshness.js.map +1 -0
- package/sensor/dist/mcp/daemon-manager.d.ts +1 -1
- package/sensor/dist/mcp/daemon-manager.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-manager.js +17 -1
- package/sensor/dist/mcp/daemon-manager.js.map +1 -1
- package/sensor/dist/mcp/daemon-paths.d.ts +8 -0
- package/sensor/dist/mcp/daemon-paths.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-paths.js +65 -2
- package/sensor/dist/mcp/daemon-paths.js.map +1 -1
- package/sensor/dist/mcp/daemon-registry.d.ts +17 -4
- package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon-registry.js +133 -23
- package/sensor/dist/mcp/daemon-registry.js.map +1 -1
- package/sensor/dist/mcp/daemon.d.ts +26 -13
- package/sensor/dist/mcp/daemon.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon.js +126 -32
- package/sensor/dist/mcp/daemon.js.map +1 -1
- package/sensor/dist/mcp/dynamic-boundaries.d.ts +1 -10
- package/sensor/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
- package/sensor/dist/mcp/dynamic-boundaries.js +46 -42
- package/sensor/dist/mcp/dynamic-boundaries.js.map +1 -1
- package/sensor/dist/mcp/engine.d.ts +31 -9
- package/sensor/dist/mcp/engine.d.ts.map +1 -1
- package/sensor/dist/mcp/engine.js +190 -79
- package/sensor/dist/mcp/engine.js.map +1 -1
- package/sensor/dist/mcp/explore-dedup.d.ts +140 -0
- package/sensor/dist/mcp/explore-dedup.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-dedup.js +239 -0
- package/sensor/dist/mcp/explore-dedup.js.map +1 -0
- package/sensor/dist/mcp/explore-diagnostics.d.ts +289 -0
- package/sensor/dist/mcp/explore-diagnostics.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-diagnostics.js +558 -0
- package/sensor/dist/mcp/explore-diagnostics.js.map +1 -0
- package/sensor/dist/mcp/explore-session-state.d.ts +217 -0
- package/sensor/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/sensor/dist/mcp/explore-session-state.js +322 -0
- package/sensor/dist/mcp/explore-session-state.js.map +1 -0
- package/sensor/dist/mcp/index-freshness-worker.d.ts +2 -0
- package/sensor/dist/mcp/index-freshness-worker.d.ts.map +1 -0
- package/sensor/dist/mcp/index-freshness-worker.js +30 -0
- package/sensor/dist/mcp/index-freshness-worker.js.map +1 -0
- package/sensor/dist/mcp/index-freshness.d.ts +7 -0
- package/sensor/dist/mcp/index-freshness.d.ts.map +1 -0
- package/sensor/dist/mcp/index-freshness.js +94 -0
- package/sensor/dist/mcp/index-freshness.js.map +1 -0
- package/sensor/dist/mcp/index.d.ts +3 -1
- package/sensor/dist/mcp/index.d.ts.map +1 -1
- package/sensor/dist/mcp/index.js +109 -12
- package/sensor/dist/mcp/index.js.map +1 -1
- package/sensor/dist/mcp/liveness-watchdog.d.ts +4 -1
- package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -1
- package/sensor/dist/mcp/liveness-watchdog.js +11 -2
- package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
- package/sensor/dist/mcp/project-lifecycle.d.ts +9 -0
- package/sensor/dist/mcp/project-lifecycle.d.ts.map +1 -0
- package/sensor/dist/mcp/project-lifecycle.js +182 -0
- package/sensor/dist/mcp/project-lifecycle.js.map +1 -0
- package/sensor/dist/mcp/proxy.d.ts.map +1 -1
- package/sensor/dist/mcp/proxy.js +15 -1
- package/sensor/dist/mcp/proxy.js.map +1 -1
- package/sensor/dist/mcp/query-pool.d.ts +2 -2
- package/sensor/dist/mcp/query-pool.d.ts.map +1 -1
- package/sensor/dist/mcp/query-pool.js +9 -7
- package/sensor/dist/mcp/query-pool.js.map +1 -1
- package/sensor/dist/mcp/query-worker.js +2 -2
- package/sensor/dist/mcp/query-worker.js.map +1 -1
- package/sensor/dist/mcp/server-instructions.d.ts +2 -2
- package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
- package/sensor/dist/mcp/server-instructions.js +13 -6
- package/sensor/dist/mcp/server-instructions.js.map +1 -1
- package/sensor/dist/mcp/session.d.ts +16 -0
- package/sensor/dist/mcp/session.d.ts.map +1 -1
- package/sensor/dist/mcp/session.js +36 -13
- package/sensor/dist/mcp/session.js.map +1 -1
- package/sensor/dist/mcp/startup-handshake.d.ts +3 -1
- package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -1
- package/sensor/dist/mcp/startup-handshake.js +10 -2
- package/sensor/dist/mcp/startup-handshake.js.map +1 -1
- package/sensor/dist/mcp/tools.d.ts +496 -38
- package/sensor/dist/mcp/tools.d.ts.map +1 -1
- package/sensor/dist/mcp/tools.js +4021 -772
- package/sensor/dist/mcp/tools.js.map +1 -1
- package/sensor/dist/mcp/writer-lock.d.ts +61 -0
- package/sensor/dist/mcp/writer-lock.d.ts.map +1 -0
- package/sensor/dist/mcp/writer-lock.js +260 -0
- package/sensor/dist/mcp/writer-lock.js.map +1 -0
- package/sensor/dist/project-config.d.ts +23 -0
- package/sensor/dist/project-config.d.ts.map +1 -1
- package/sensor/dist/project-config.js +39 -2
- package/sensor/dist/project-config.js.map +1 -1
- package/sensor/dist/resolution/alias-binding.d.ts +56 -0
- package/sensor/dist/resolution/alias-binding.d.ts.map +1 -0
- package/sensor/dist/resolution/alias-binding.js +127 -0
- package/sensor/dist/resolution/alias-binding.js.map +1 -0
- package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/sensor/dist/resolution/c-fnptr-synthesizer.js +21 -19
- package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/sensor/dist/resolution/callback-synthesizer.d.ts +23 -1
- package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/sensor/dist/resolution/callback-synthesizer.js +356 -155
- package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
- package/sensor/dist/resolution/cpp-constructor.d.ts +4 -0
- package/sensor/dist/resolution/cpp-constructor.d.ts.map +1 -0
- package/sensor/dist/resolution/cpp-constructor.js +123 -0
- package/sensor/dist/resolution/cpp-constructor.js.map +1 -0
- package/sensor/dist/resolution/cpp-macro-visibility.d.ts +12 -0
- package/sensor/dist/resolution/cpp-macro-visibility.d.ts.map +1 -0
- package/sensor/dist/resolution/cpp-macro-visibility.js +342 -0
- package/sensor/dist/resolution/cpp-macro-visibility.js.map +1 -0
- package/sensor/dist/resolution/expo-router-synthesizer.d.ts +32 -0
- package/sensor/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/expo-router-synthesizer.js +189 -0
- package/sensor/dist/resolution/expo-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/frameworks/csharp.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/csharp.js +96 -2
- package/sensor/dist/resolution/frameworks/csharp.js.map +1 -1
- package/sensor/dist/resolution/frameworks/expo-router.d.ts +189 -0
- package/sensor/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/expo-router.js +785 -0
- package/sensor/dist/resolution/frameworks/expo-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/express.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/express.js +251 -16
- package/sensor/dist/resolution/frameworks/express.js.map +1 -1
- package/sensor/dist/resolution/frameworks/index.d.ts +5 -0
- package/sensor/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/index.js +29 -1
- package/sensor/dist/resolution/frameworks/index.js.map +1 -1
- package/sensor/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/java.js +79 -47
- package/sensor/dist/resolution/frameworks/java.js.map +1 -1
- package/sensor/dist/resolution/frameworks/laravel.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/laravel.js +294 -4
- package/sensor/dist/resolution/frameworks/laravel.js.map +1 -1
- package/sensor/dist/resolution/frameworks/nestjs.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/nestjs.js +6 -14
- package/sensor/dist/resolution/frameworks/nestjs.js.map +1 -1
- package/sensor/dist/resolution/frameworks/nextjs.d.ts +76 -0
- package/sensor/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/nextjs.js +328 -0
- package/sensor/dist/resolution/frameworks/nextjs.js.map +1 -0
- package/sensor/dist/resolution/frameworks/object-literal.d.ts +32 -0
- package/sensor/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/object-literal.js +139 -0
- package/sensor/dist/resolution/frameworks/object-literal.js.map +1 -0
- package/sensor/dist/resolution/frameworks/package-deps.d.ts +14 -0
- package/sensor/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/package-deps.js +78 -0
- package/sensor/dist/resolution/frameworks/package-deps.js.map +1 -0
- package/sensor/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/python.js +166 -0
- package/sensor/dist/resolution/frameworks/python.js.map +1 -1
- package/sensor/dist/resolution/frameworks/react-native.d.ts +26 -0
- package/sensor/dist/resolution/frameworks/react-native.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/react-native.js +153 -14
- package/sensor/dist/resolution/frameworks/react-native.js.map +1 -1
- package/sensor/dist/resolution/frameworks/react-router.d.ts +46 -0
- package/sensor/dist/resolution/frameworks/react-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/react-router.js +187 -0
- package/sensor/dist/resolution/frameworks/react-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/react.d.ts +2 -1
- package/sensor/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/react.js +188 -139
- package/sensor/dist/resolution/frameworks/react.js.map +1 -1
- package/sensor/dist/resolution/frameworks/svelte.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/svelte.js +6 -1
- package/sensor/dist/resolution/frameworks/svelte.js.map +1 -1
- package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.js +156 -0
- package/sensor/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/swift.d.ts.map +1 -1
- package/sensor/dist/resolution/frameworks/swift.js +140 -99
- package/sensor/dist/resolution/frameworks/swift.js.map +1 -1
- package/sensor/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.js +437 -0
- package/sensor/dist/resolution/frameworks/tanstack-router.js.map +1 -0
- package/sensor/dist/resolution/frameworks/vue-router.d.ts +82 -0
- package/sensor/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
- package/sensor/dist/resolution/frameworks/vue-router.js +377 -0
- package/sensor/dist/resolution/frameworks/vue-router.js.map +1 -0
- package/sensor/dist/resolution/import-resolver.d.ts +38 -0
- package/sensor/dist/resolution/import-resolver.d.ts.map +1 -1
- package/sensor/dist/resolution/import-resolver.js +394 -28
- package/sensor/dist/resolution/import-resolver.js.map +1 -1
- package/sensor/dist/resolution/index.d.ts +89 -25
- package/sensor/dist/resolution/index.d.ts.map +1 -1
- package/sensor/dist/resolution/index.js +573 -148
- package/sensor/dist/resolution/index.js.map +1 -1
- package/sensor/dist/resolution/js-builtins.d.ts +13 -0
- package/sensor/dist/resolution/js-builtins.d.ts.map +1 -0
- package/sensor/dist/resolution/js-builtins.js +46 -0
- package/sensor/dist/resolution/js-builtins.js.map +1 -0
- package/sensor/dist/resolution/name-matcher.d.ts +99 -22
- package/sensor/dist/resolution/name-matcher.d.ts.map +1 -1
- package/sensor/dist/resolution/name-matcher.js +2220 -86
- package/sensor/dist/resolution/name-matcher.js.map +1 -1
- package/sensor/dist/resolution/next-router-synthesizer.d.ts +27 -0
- package/sensor/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/next-router-synthesizer.js +113 -0
- package/sensor/dist/resolution/next-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/path-aliases.d.ts +6 -4
- package/sensor/dist/resolution/path-aliases.d.ts.map +1 -1
- package/sensor/dist/resolution/path-aliases.js +125 -17
- package/sensor/dist/resolution/path-aliases.js.map +1 -1
- package/sensor/dist/resolution/react-router-synthesizer.d.ts +33 -0
- package/sensor/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/react-router-synthesizer.js +126 -0
- package/sensor/dist/resolution/react-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/resolver-pool.d.ts +2 -0
- package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -1
- package/sensor/dist/resolution/resolver-pool.js +4 -0
- package/sensor/dist/resolution/resolver-pool.js.map +1 -1
- package/sensor/dist/resolution/strip-comments.d.ts +6 -0
- package/sensor/dist/resolution/strip-comments.d.ts.map +1 -1
- package/sensor/dist/resolution/strip-comments.js +58 -0
- package/sensor/dist/resolution/strip-comments.js.map +1 -1
- package/sensor/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.js +173 -0
- package/sensor/dist/resolution/sveltekit-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/swift-type-visibility.d.ts +52 -0
- package/sensor/dist/resolution/swift-type-visibility.d.ts.map +1 -0
- package/sensor/dist/resolution/swift-type-visibility.js +328 -0
- package/sensor/dist/resolution/swift-type-visibility.js.map +1 -0
- package/sensor/dist/resolution/synth-utils.d.ts +26 -0
- package/sensor/dist/resolution/synth-utils.d.ts.map +1 -0
- package/sensor/dist/resolution/synth-utils.js +75 -0
- package/sensor/dist/resolution/synth-utils.js.map +1 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.js +114 -0
- package/sensor/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/tier-synthesizer.d.ts +54 -0
- package/sensor/dist/resolution/tier-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/tier-synthesizer.js +1294 -0
- package/sensor/dist/resolution/tier-synthesizer.js.map +1 -0
- package/sensor/dist/resolution/types.d.ts +78 -2
- package/sensor/dist/resolution/types.d.ts.map +1 -1
- package/sensor/dist/resolution/types.js +64 -0
- package/sensor/dist/resolution/types.js.map +1 -1
- package/sensor/dist/resolution/vue-router-synthesizer.d.ts +30 -0
- package/sensor/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
- package/sensor/dist/resolution/vue-router-synthesizer.js +115 -0
- package/sensor/dist/resolution/vue-router-synthesizer.js.map +1 -0
- package/sensor/dist/search/identifier-segments.d.ts +10 -0
- package/sensor/dist/search/identifier-segments.d.ts.map +1 -1
- package/sensor/dist/search/identifier-segments.js +29 -0
- package/sensor/dist/search/identifier-segments.js.map +1 -1
- package/sensor/dist/search/query-paths.d.ts +106 -0
- package/sensor/dist/search/query-paths.d.ts.map +1 -0
- package/sensor/dist/search/query-paths.js +513 -0
- package/sensor/dist/search/query-paths.js.map +1 -0
- package/sensor/dist/search/query-utils.d.ts +22 -2
- package/sensor/dist/search/query-utils.d.ts.map +1 -1
- package/sensor/dist/search/query-utils.js +56 -16
- package/sensor/dist/search/query-utils.js.map +1 -1
- package/sensor/dist/sync/watch-policy.d.ts +14 -0
- package/sensor/dist/sync/watch-policy.d.ts.map +1 -1
- package/sensor/dist/sync/watch-policy.js +19 -0
- package/sensor/dist/sync/watch-policy.js.map +1 -1
- package/sensor/dist/sync/watcher.d.ts +74 -35
- package/sensor/dist/sync/watcher.d.ts.map +1 -1
- package/sensor/dist/sync/watcher.js +281 -99
- package/sensor/dist/sync/watcher.js.map +1 -1
- package/sensor/dist/telemetry/index.d.ts +4 -2
- package/sensor/dist/telemetry/index.d.ts.map +1 -1
- package/sensor/dist/telemetry/index.js +92 -41
- package/sensor/dist/telemetry/index.js.map +1 -1
- package/sensor/dist/types.d.ts +18 -2
- package/sensor/dist/types.d.ts.map +1 -1
- package/sensor/dist/types.js +2 -0
- package/sensor/dist/types.js.map +1 -1
- package/sensor/dist/ui-server/api/deadcode.d.ts +84 -0
- package/sensor/dist/ui-server/api/deadcode.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/deadcode.js +136 -0
- package/sensor/dist/ui-server/api/deadcode.js.map +1 -0
- package/sensor/dist/ui-server/api/effects.d.ts +94 -0
- package/sensor/dist/ui-server/api/effects.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/effects.js +527 -0
- package/sensor/dist/ui-server/api/effects.js.map +1 -0
- package/sensor/dist/ui-server/api/entrypoints.d.ts +92 -0
- package/sensor/dist/ui-server/api/entrypoints.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/entrypoints.js +361 -0
- package/sensor/dist/ui-server/api/entrypoints.js.map +1 -0
- package/sensor/dist/ui-server/api/events.d.ts +183 -0
- package/sensor/dist/ui-server/api/events.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/events.js +430 -0
- package/sensor/dist/ui-server/api/events.js.map +1 -0
- package/sensor/dist/ui-server/api/file.d.ts +66 -0
- package/sensor/dist/ui-server/api/file.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/file.js +235 -0
- package/sensor/dist/ui-server/api/file.js.map +1 -0
- package/sensor/dist/ui-server/api/filecode.d.ts +126 -0
- package/sensor/dist/ui-server/api/filecode.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/filecode.js +205 -0
- package/sensor/dist/ui-server/api/filecode.js.map +1 -0
- package/sensor/dist/ui-server/api/flow.d.ts +226 -0
- package/sensor/dist/ui-server/api/flow.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/flow.js +612 -0
- package/sensor/dist/ui-server/api/flow.js.map +1 -0
- package/sensor/dist/ui-server/api/hierarchy.d.ts +81 -0
- package/sensor/dist/ui-server/api/hierarchy.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/hierarchy.js +92 -0
- package/sensor/dist/ui-server/api/hierarchy.js.map +1 -0
- package/sensor/dist/ui-server/api/index.d.ts +90 -0
- package/sensor/dist/ui-server/api/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/index.js +332 -0
- package/sensor/dist/ui-server/api/index.js.map +1 -0
- package/sensor/dist/ui-server/api/map.d.ts +256 -0
- package/sensor/dist/ui-server/api/map.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/map.js +760 -0
- package/sensor/dist/ui-server/api/map.js.map +1 -0
- package/sensor/dist/ui-server/api/node.d.ts +81 -0
- package/sensor/dist/ui-server/api/node.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/node.js +388 -0
- package/sensor/dist/ui-server/api/node.js.map +1 -0
- package/sensor/dist/ui-server/api/nodes.d.ts +25 -0
- package/sensor/dist/ui-server/api/nodes.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/nodes.js +45 -0
- package/sensor/dist/ui-server/api/nodes.js.map +1 -0
- package/sensor/dist/ui-server/api/program.d.ts +139 -0
- package/sensor/dist/ui-server/api/program.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/program.js +315 -0
- package/sensor/dist/ui-server/api/program.js.map +1 -0
- package/sensor/dist/ui-server/api/respond.d.ts +76 -0
- package/sensor/dist/ui-server/api/respond.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/respond.js +186 -0
- package/sensor/dist/ui-server/api/respond.js.map +1 -0
- package/sensor/dist/ui-server/api/route-roots.d.ts +39 -0
- package/sensor/dist/ui-server/api/route-roots.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/route-roots.js +96 -0
- package/sensor/dist/ui-server/api/route-roots.js.map +1 -0
- package/sensor/dist/ui-server/api/routes.d.ts +59 -0
- package/sensor/dist/ui-server/api/routes.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/routes.js +108 -0
- package/sensor/dist/ui-server/api/routes.js.map +1 -0
- package/sensor/dist/ui-server/api/screens.d.ts +117 -0
- package/sensor/dist/ui-server/api/screens.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/screens.js +611 -0
- package/sensor/dist/ui-server/api/screens.js.map +1 -0
- package/sensor/dist/ui-server/api/search.d.ts +29 -0
- package/sensor/dist/ui-server/api/search.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/search.js +232 -0
- package/sensor/dist/ui-server/api/search.js.map +1 -0
- package/sensor/dist/ui-server/api/session.d.ts +52 -0
- package/sensor/dist/ui-server/api/session.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/session.js +196 -0
- package/sensor/dist/ui-server/api/session.js.map +1 -0
- package/sensor/dist/ui-server/api/source.d.ts +200 -0
- package/sensor/dist/ui-server/api/source.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/source.js +422 -0
- package/sensor/dist/ui-server/api/source.js.map +1 -0
- package/sensor/dist/ui-server/api/stats.d.ts +27 -0
- package/sensor/dist/ui-server/api/stats.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/stats.js +164 -0
- package/sensor/dist/ui-server/api/stats.js.map +1 -0
- package/sensor/dist/ui-server/api/steps.d.ts +274 -0
- package/sensor/dist/ui-server/api/steps.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/steps.js +1544 -0
- package/sensor/dist/ui-server/api/steps.js.map +1 -0
- package/sensor/dist/ui-server/api/trail-store.d.ts +142 -0
- package/sensor/dist/ui-server/api/trail-store.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/trail-store.js +325 -0
- package/sensor/dist/ui-server/api/trail-store.js.map +1 -0
- package/sensor/dist/ui-server/api/trails.d.ts +163 -0
- package/sensor/dist/ui-server/api/trails.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/trails.js +369 -0
- package/sensor/dist/ui-server/api/trails.js.map +1 -0
- package/sensor/dist/ui-server/api/when.d.ts +133 -0
- package/sensor/dist/ui-server/api/when.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/when.js +275 -0
- package/sensor/dist/ui-server/api/when.js.map +1 -0
- package/sensor/dist/ui-server/api/wire.d.ts +179 -0
- package/sensor/dist/ui-server/api/wire.d.ts.map +1 -0
- package/sensor/dist/ui-server/api/wire.js +231 -0
- package/sensor/dist/ui-server/api/wire.js.map +1 -0
- package/sensor/dist/ui-server/assets.d.ts +40 -0
- package/sensor/dist/ui-server/assets.d.ts.map +1 -0
- package/sensor/dist/ui-server/assets.js +110 -0
- package/sensor/dist/ui-server/assets.js.map +1 -0
- package/sensor/dist/ui-server/constants.d.ts +32 -0
- package/sensor/dist/ui-server/constants.d.ts.map +1 -0
- package/sensor/dist/ui-server/constants.js +35 -0
- package/sensor/dist/ui-server/constants.js.map +1 -0
- package/sensor/dist/ui-server/highlight/index.d.ts +113 -0
- package/sensor/dist/ui-server/highlight/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/highlight/index.js +307 -0
- package/sensor/dist/ui-server/highlight/index.js.map +1 -0
- package/sensor/dist/ui-server/highlight/languages.d.ts +36 -0
- package/sensor/dist/ui-server/highlight/languages.d.ts.map +1 -0
- package/sensor/dist/ui-server/highlight/languages.js +50 -0
- package/sensor/dist/ui-server/highlight/languages.js.map +1 -0
- package/sensor/dist/ui-server/index.d.ts +92 -0
- package/sensor/dist/ui-server/index.d.ts.map +1 -0
- package/sensor/dist/ui-server/index.js +399 -0
- package/sensor/dist/ui-server/index.js.map +1 -0
- package/sensor/dist/ui-server/open-browser.d.ts +31 -0
- package/sensor/dist/ui-server/open-browser.d.ts.map +1 -0
- package/sensor/dist/ui-server/open-browser.js +79 -0
- package/sensor/dist/ui-server/open-browser.js.map +1 -0
- package/sensor/dist/ui-server/security.d.ts +127 -0
- package/sensor/dist/ui-server/security.d.ts.map +1 -0
- package/sensor/dist/ui-server/security.js +332 -0
- package/sensor/dist/ui-server/security.js.map +1 -0
- package/sensor/dist/ui-server/static.d.ts +45 -0
- package/sensor/dist/ui-server/static.d.ts.map +1 -0
- package/sensor/dist/ui-server/static.js +165 -0
- package/sensor/dist/ui-server/static.js.map +1 -0
- package/sensor/dist/utils.d.ts +14 -2
- package/sensor/dist/utils.d.ts.map +1 -1
- package/sensor/dist/utils.js +25 -10
- package/sensor/dist/utils.js.map +1 -1
- package/src/sensor-adapter.mjs +5 -1
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TanStack Router — the path is a literal, and so is the destination.
|
|
4
|
+
*
|
|
5
|
+
* Routes are declared two ways, and this reads both:
|
|
6
|
+
*
|
|
7
|
+
* // file-based (the plugin's default): the full path is the argument
|
|
8
|
+
* export const Route = createFileRoute('/dashboard/invoices/$invoiceId')({
|
|
9
|
+
* component: InvoiceComponent,
|
|
10
|
+
* })
|
|
11
|
+
*
|
|
12
|
+
* // code-based: a path per route, composed through its parent
|
|
13
|
+
* const postsRoute = createRoute({ getParentRoute: () => rootRoute, path: 'posts' })
|
|
14
|
+
* const postRoute = createRoute({ getParentRoute: () => postsRoute, path: '$postId' })
|
|
15
|
+
*
|
|
16
|
+
* Three things are TanStack's own, and each one decides whether the picture is
|
|
17
|
+
* right:
|
|
18
|
+
*
|
|
19
|
+
* 1. **A parameter is `$id`, not `:id`.** Route names are normalised to the
|
|
20
|
+
* `:id` every other framework here uses, so one matcher serves them all.
|
|
21
|
+
* 2. **`to` is the route PATTERN, not a filled URL.** `<Link to="/posts/$postId"
|
|
22
|
+
* params={{ postId }}>` names the route and passes the values beside it —
|
|
23
|
+
* where React Router would write `/posts/5`. So a destination is normalised
|
|
24
|
+
* the same way a route name is, and then matches it exactly.
|
|
25
|
+
* 3. **A destination is an object.** `navigate({ to: '/' })`,
|
|
26
|
+
* `throw redirect({ to: '/login' })` — the path is under a `to` key, and a
|
|
27
|
+
* `navigate({ search: … })` with no `to` stays on the page it is on.
|
|
28
|
+
*
|
|
29
|
+
* Not every route file is a page. A segment written `_auth` is a pathless
|
|
30
|
+
* layout — it does not appear in the URL, and the file that declares it renders
|
|
31
|
+
* an outlet rather than a screen; a `(group)` segment is likewise invisible; a
|
|
32
|
+
* `dashboard.route.tsx` is the layout for the `/dashboard` subtree while
|
|
33
|
+
* `dashboard.index.tsx` — whose literal carries a trailing slash — is the page
|
|
34
|
+
* AT `/dashboard`. Drawing both would put one address on the map twice.
|
|
35
|
+
*
|
|
36
|
+
* Left unresolved rather than guessed: a computed `to`, a path no route serves,
|
|
37
|
+
* and a code-based route whose parent is declared in another file (the chain is
|
|
38
|
+
* composed within a file, which is where a route tree is written).
|
|
39
|
+
*/
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.tanstackRouterResolver = void 0;
|
|
42
|
+
exports.tanstackPath = tanstackPath;
|
|
43
|
+
exports.parseTanstackRoutes = parseTanstackRoutes;
|
|
44
|
+
exports.tanstackTable = tanstackTable;
|
|
45
|
+
exports.tanstackNavVerb = tanstackNavVerb;
|
|
46
|
+
exports.tanstackDestination = tanstackDestination;
|
|
47
|
+
const strip_comments_1 = require("../strip-comments");
|
|
48
|
+
const package_deps_1 = require("./package-deps");
|
|
49
|
+
const object_literal_1 = require("./object-literal");
|
|
50
|
+
const expo_router_1 = require("./expo-router");
|
|
51
|
+
const nextjs_1 = require("./nextjs");
|
|
52
|
+
const ROUTE_LANGUAGES = ['typescript', 'javascript', 'tsx', 'jsx'];
|
|
53
|
+
// =============================================================================
|
|
54
|
+
// Paths
|
|
55
|
+
// =============================================================================
|
|
56
|
+
/**
|
|
57
|
+
* A TanStack path in the form every other framework's routes take.
|
|
58
|
+
*
|
|
59
|
+
* `$invoiceId` is `:invoiceId` and a bare `$` is a splat; a `_auth` segment is
|
|
60
|
+
* a pathless layout and a `(group)` segment is a route group, neither of which
|
|
61
|
+
* appears in the URL; a trailing `_` un-nests without changing the segment.
|
|
62
|
+
* Returns null for a path that names no address at all.
|
|
63
|
+
*/
|
|
64
|
+
function tanstackPath(raw) {
|
|
65
|
+
if (!raw.startsWith('/'))
|
|
66
|
+
return null;
|
|
67
|
+
const segs = [];
|
|
68
|
+
for (const seg of raw.split('/')) {
|
|
69
|
+
if (seg.length === 0)
|
|
70
|
+
continue;
|
|
71
|
+
if (seg.startsWith('_'))
|
|
72
|
+
continue; // pathless layout
|
|
73
|
+
if (seg.startsWith('(') && seg.endsWith(')'))
|
|
74
|
+
continue; // route group
|
|
75
|
+
const bare = seg.endsWith('_') ? seg.slice(0, -1) : seg;
|
|
76
|
+
if (bare === '$') {
|
|
77
|
+
segs.push(':splat*');
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
segs.push(bare.startsWith('$') ? ':' + bare.slice(1) : bare);
|
|
81
|
+
}
|
|
82
|
+
return '/' + segs.join('/');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* True when the literal names a pathless layout rather than a page.
|
|
86
|
+
*
|
|
87
|
+
* `'/_auth'` is the layout file itself — it renders an outlet, at no address
|
|
88
|
+
* of its own. `'/_auth/'` is the INDEX route inside that layout, and its
|
|
89
|
+
* address is whatever the layout sits at: `_layout/index.tsx` is a project's
|
|
90
|
+
* home page, and reading it as a layout dropped `/` from the map entirely.
|
|
91
|
+
*/
|
|
92
|
+
function isPathlessLayout(raw) {
|
|
93
|
+
if (raw.length > 1 && raw.endsWith('/'))
|
|
94
|
+
return false; // an index route, not the layout
|
|
95
|
+
const segs = raw.split('/').filter((s) => s.length > 0);
|
|
96
|
+
const last = segs[segs.length - 1];
|
|
97
|
+
return last !== undefined && last.startsWith('_');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* True for a file that wraps a subtree rather than rendering a page at its own
|
|
101
|
+
* address.
|
|
102
|
+
*
|
|
103
|
+
* `<Outlet />` is where children render, so a route file that has one is the
|
|
104
|
+
* layout AROUND an address and the index route beside it is the page AT it —
|
|
105
|
+
* `_auth.invoices.tsx` and `_auth.invoices.index.tsx` both say `/invoices`,
|
|
106
|
+
* and drawing both puts one address on the map twice. The name `route.tsx`
|
|
107
|
+
* declares the same thing by convention, whether or not it draws an outlet.
|
|
108
|
+
*
|
|
109
|
+
* This is per-file on purpose: the alternative — a path that is a prefix of
|
|
110
|
+
* another route's — is only knowable once every file has been read, and by
|
|
111
|
+
* then the extra screen is already in the index.
|
|
112
|
+
*/
|
|
113
|
+
function isLayoutFile(filePath, content) {
|
|
114
|
+
const base = filePath.slice(filePath.lastIndexOf('/') + 1);
|
|
115
|
+
if (/(?:^|\.)route\.(?:tsx|ts|jsx|js)$/.test(base))
|
|
116
|
+
return true;
|
|
117
|
+
return /<Outlet\b/.test(content);
|
|
118
|
+
}
|
|
119
|
+
function languageForFile(filePath) {
|
|
120
|
+
if (filePath.endsWith('.tsx'))
|
|
121
|
+
return 'tsx';
|
|
122
|
+
if (filePath.endsWith('.jsx'))
|
|
123
|
+
return 'jsx';
|
|
124
|
+
if (/\.(?:ts|mts|cts)$/.test(filePath))
|
|
125
|
+
return 'typescript';
|
|
126
|
+
return 'javascript';
|
|
127
|
+
}
|
|
128
|
+
/** The calls that declare a route — the cheap gate before parsing anything. */
|
|
129
|
+
const ROUTE_FACTORY = /\bcreate(?:File|Lazy(?:File)?|Root)?Route\s*\(/;
|
|
130
|
+
/**
|
|
131
|
+
* Every route a file declares, file-based and code-based alike.
|
|
132
|
+
*
|
|
133
|
+
* A code-based route's own `path` is a fragment (`posts`, `$postId`, `/`), so
|
|
134
|
+
* the chain of `getParentRoute: () => parent` is followed to compose the full
|
|
135
|
+
* address — within the file, which is where a route tree is written. A route
|
|
136
|
+
* that is another route's parent is the layout for that subtree, and the
|
|
137
|
+
* address belongs to the index route under it.
|
|
138
|
+
*/
|
|
139
|
+
function parseTanstackRoutes(content) {
|
|
140
|
+
if (!ROUTE_FACTORY.test(content))
|
|
141
|
+
return [];
|
|
142
|
+
const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'typescript');
|
|
143
|
+
const out = [];
|
|
144
|
+
const lineOf = (index) => safe.slice(0, index).split('\n').length;
|
|
145
|
+
// ---- file-based: the path is the first argument, the options follow ----
|
|
146
|
+
const fileRoutes = /\bcreate(?:Lazy)?FileRoute\s*\(/g;
|
|
147
|
+
let f;
|
|
148
|
+
while ((f = fileRoutes.exec(safe)) !== null) {
|
|
149
|
+
const open = f.index + f[0].length - 1;
|
|
150
|
+
const close = (0, object_literal_1.matchBracket)(safe, open);
|
|
151
|
+
if (close < 0)
|
|
152
|
+
continue;
|
|
153
|
+
const raw = (0, expo_router_1.readStringAt)(safe.slice(open + 1, close).trimStart(), 0);
|
|
154
|
+
if (raw === null)
|
|
155
|
+
continue;
|
|
156
|
+
const path = tanstackPath(raw);
|
|
157
|
+
if (path === null || isPathlessLayout(raw))
|
|
158
|
+
continue;
|
|
159
|
+
out.push({
|
|
160
|
+
path,
|
|
161
|
+
component: componentIn(chainAfter(safe, close + 1)),
|
|
162
|
+
// `createFileRoute('/dashboard/')` is the index page AT `/dashboard`;
|
|
163
|
+
// `createFileRoute('/dashboard')` is the layout around it.
|
|
164
|
+
index: raw.length > 1 && raw.endsWith('/'),
|
|
165
|
+
fileBased: true,
|
|
166
|
+
line: lineOf(f.index),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// ---- code-based: a fragment per route, composed through its parent ----
|
|
170
|
+
const decls = new Map();
|
|
171
|
+
const named = /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]*?)?=\s*create(Root)?Route\s*\(\s*\{/g;
|
|
172
|
+
let d;
|
|
173
|
+
while ((d = named.exec(safe)) !== null) {
|
|
174
|
+
const brace = safe.indexOf('{', d.index + d[0].length - 1);
|
|
175
|
+
const end = (0, object_literal_1.matchBracket)(safe, brace);
|
|
176
|
+
if (end < 0)
|
|
177
|
+
continue;
|
|
178
|
+
const fields = (0, object_literal_1.readFields)(safe, brace, end);
|
|
179
|
+
const pathField = fields.get('path');
|
|
180
|
+
const path = d[2] ? '/' : pathField ? (0, expo_router_1.readStringAt)(pathField.text.trimStart(), 0) : null;
|
|
181
|
+
const parentField = fields.get('getParentRoute');
|
|
182
|
+
const parent = parentField ? (/=>\s*([A-Za-z_$][\w$]*)/.exec(parentField.text)?.[1] ?? null) : null;
|
|
183
|
+
const componentField = fields.get('component');
|
|
184
|
+
decls.set(d[1], {
|
|
185
|
+
path,
|
|
186
|
+
parent,
|
|
187
|
+
component: componentField ? componentIn(componentField.text) : null,
|
|
188
|
+
root: d[2] !== undefined,
|
|
189
|
+
index: d.index,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
// A route with an index child is the LAYOUT around that address; the child
|
|
193
|
+
// with `path: '/'` is what renders there. A parent with no index child still
|
|
194
|
+
// is the page at its own address — its outlet is simply empty.
|
|
195
|
+
const wrapsAnIndex = new Set([...decls.values()].filter((r) => r.path === '/' && r.parent !== null).map((r) => r.parent));
|
|
196
|
+
for (const [name, decl] of decls) {
|
|
197
|
+
if (decl.path === null)
|
|
198
|
+
continue; // a pathless layout contributes no address
|
|
199
|
+
// `createRootRoute` is the outermost layout — every page renders inside it,
|
|
200
|
+
// and the index route beside it is what renders at `/`. A `__root.tsx` that
|
|
201
|
+
// counted as a page put a second `/` on every file-based project's map.
|
|
202
|
+
if (decl.root)
|
|
203
|
+
continue;
|
|
204
|
+
if (wrapsAnIndex.has(name))
|
|
205
|
+
continue;
|
|
206
|
+
const full = composePath(name, decls);
|
|
207
|
+
if (full === null)
|
|
208
|
+
continue;
|
|
209
|
+
const path = tanstackPath(full);
|
|
210
|
+
if (path === null)
|
|
211
|
+
continue;
|
|
212
|
+
out.push({ path, component: decl.component, index: decl.path === '/', fileBased: false, line: lineOf(decl.index) });
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
215
|
+
}
|
|
216
|
+
/** The address a code-based route sits at, following `getParentRoute` up. */
|
|
217
|
+
function composePath(name, decls) {
|
|
218
|
+
const segs = [];
|
|
219
|
+
let cur = name;
|
|
220
|
+
for (let hops = 0; cur !== null && hops < 24; hops++) {
|
|
221
|
+
const decl = decls.get(cur);
|
|
222
|
+
if (!decl)
|
|
223
|
+
return null; // a parent declared in another file — not composed
|
|
224
|
+
if (decl.path !== null) {
|
|
225
|
+
const own = decl.path.split('/').filter((s) => s.length > 0);
|
|
226
|
+
segs.unshift(...own);
|
|
227
|
+
}
|
|
228
|
+
cur = decl.parent;
|
|
229
|
+
}
|
|
230
|
+
return '/' + segs.join('/');
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The text of the call chain starting at `at` — `({ … })`, and any `.update({ … })`
|
|
234
|
+
* or `.lazy(…)` after it, which is where a route's component may be written.
|
|
235
|
+
*/
|
|
236
|
+
function chainAfter(s, at) {
|
|
237
|
+
let i = at;
|
|
238
|
+
const start = i;
|
|
239
|
+
for (let steps = 0; steps < 8; steps++) {
|
|
240
|
+
while (i < s.length && /\s/.test(s[i]))
|
|
241
|
+
i++;
|
|
242
|
+
if (s[i] === '.') {
|
|
243
|
+
i++;
|
|
244
|
+
while (i < s.length && /[\w$]/.test(s[i]))
|
|
245
|
+
i++;
|
|
246
|
+
while (i < s.length && /\s/.test(s[i]))
|
|
247
|
+
i++;
|
|
248
|
+
}
|
|
249
|
+
if (s[i] !== '(')
|
|
250
|
+
break;
|
|
251
|
+
const close = (0, object_literal_1.matchBracket)(s, i);
|
|
252
|
+
if (close < 0)
|
|
253
|
+
break;
|
|
254
|
+
i = close + 1;
|
|
255
|
+
}
|
|
256
|
+
return s.slice(start, i);
|
|
257
|
+
}
|
|
258
|
+
/** The component a route names: an identifier, or the file a lazy import names. */
|
|
259
|
+
function componentIn(text) {
|
|
260
|
+
const lazy = /\bimport\s*\(\s*['"`]([^'"`]+)['"`]/.exec(text);
|
|
261
|
+
if (lazy)
|
|
262
|
+
return (lazy[1].split('/').pop() ?? '').replace(/\.\w+$/, '') || null;
|
|
263
|
+
return /(?:^|[^\w$])component\s*:\s*([A-Z][A-Za-z0-9_]*)/.exec(text)?.[1] ?? /^\s*([A-Z][A-Za-z0-9_]*)\s*$/.exec(text)?.[1] ?? null;
|
|
264
|
+
}
|
|
265
|
+
/** The id a TanStack route carries — a verbatim reconstruction, so the table can recognise its own. */
|
|
266
|
+
function routeId(filePath, line, path) {
|
|
267
|
+
return `route:${filePath}:${line}:${path}:tanstack`;
|
|
268
|
+
}
|
|
269
|
+
/** True for a route node this resolver emitted, and no other. */
|
|
270
|
+
function isTanstackRoute(node) {
|
|
271
|
+
return node.id === routeId(node.filePath, node.startLine, node.name);
|
|
272
|
+
}
|
|
273
|
+
const tables = new WeakMap();
|
|
274
|
+
function tanstackTable(context) {
|
|
275
|
+
const all = context.getNodesByKind('route');
|
|
276
|
+
const cached = tables.get(context);
|
|
277
|
+
if (cached && cached.source === all)
|
|
278
|
+
return cached;
|
|
279
|
+
const byRoot = new Map();
|
|
280
|
+
for (const node of all) {
|
|
281
|
+
if (!isTanstackRoute(node))
|
|
282
|
+
continue;
|
|
283
|
+
const root = (0, expo_router_1.appRootFor)(node.filePath);
|
|
284
|
+
let t = byRoot.get(root);
|
|
285
|
+
if (!t)
|
|
286
|
+
byRoot.set(root, (t = { source: all, exact: new Map(), dynamic: [] }));
|
|
287
|
+
(0, expo_router_1.addRouteTo)(t, node.name, node);
|
|
288
|
+
}
|
|
289
|
+
const table = { source: all, byRoot };
|
|
290
|
+
tables.set(context, table);
|
|
291
|
+
return table;
|
|
292
|
+
}
|
|
293
|
+
// =============================================================================
|
|
294
|
+
// Navigation calls
|
|
295
|
+
// =============================================================================
|
|
296
|
+
/** `navigate({ to })` from `useNavigate`, `router.navigate({ to })`, and a thrown `redirect({ to })`. */
|
|
297
|
+
const NAV_CALL = /^(?:navigate|redirect)$|^(?:router|Route)\.navigate$/;
|
|
298
|
+
/** The verb a navigation call name stands for, or null. */
|
|
299
|
+
function tanstackNavVerb(name) {
|
|
300
|
+
if (!NAV_CALL.test(name))
|
|
301
|
+
return null;
|
|
302
|
+
const dot = name.lastIndexOf('.');
|
|
303
|
+
return dot < 0 ? name : name.slice(dot + 1);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* The destination in a TanStack navigation: `{ to: '/posts/$postId' }`.
|
|
307
|
+
*
|
|
308
|
+
* `to` is the route pattern, so it is normalised exactly as a route name is
|
|
309
|
+
* and then names that route. A `navigate({ search: … })` with no `to` is a
|
|
310
|
+
* change of search parameters on the page the user is already on.
|
|
311
|
+
*/
|
|
312
|
+
function tanstackDestination(expr) {
|
|
313
|
+
const args = expr.trim();
|
|
314
|
+
const literal = args[0] === '{' ? toKeyOf(args) : (0, expo_router_1.readStringAt)(args, 0);
|
|
315
|
+
if (literal === null)
|
|
316
|
+
return null;
|
|
317
|
+
const path = tanstackPath(literal);
|
|
318
|
+
return path === null ? (0, expo_router_1.parseHrefExpression)(args) : (0, expo_router_1.toHref)(path);
|
|
319
|
+
}
|
|
320
|
+
/** The `to:` value of an object destination, or null when it has none or it is computed. */
|
|
321
|
+
function toKeyOf(args) {
|
|
322
|
+
const end = (0, object_literal_1.matchBracket)(args, 0);
|
|
323
|
+
if (end < 0)
|
|
324
|
+
return null;
|
|
325
|
+
const field = (0, object_literal_1.readFields)(args, 0, end).get('to');
|
|
326
|
+
return field ? (0, expo_router_1.readStringAt)(field.text.trimStart(), 0) : null;
|
|
327
|
+
}
|
|
328
|
+
// =============================================================================
|
|
329
|
+
// The resolver
|
|
330
|
+
// =============================================================================
|
|
331
|
+
exports.tanstackRouterResolver = {
|
|
332
|
+
name: 'tanstack-router',
|
|
333
|
+
languages: [...ROUTE_LANGUAGES],
|
|
334
|
+
detect(context) {
|
|
335
|
+
return (0, package_deps_1.dependsOn)(context, '@tanstack/react-router', '@tanstack/solid-router', '@tanstack/router', '@tanstack/react-start', '@tanstack/start');
|
|
336
|
+
},
|
|
337
|
+
claimsReference(name) {
|
|
338
|
+
return NAV_CALL.test(name);
|
|
339
|
+
},
|
|
340
|
+
extract(filePath, content) {
|
|
341
|
+
// A file-based route file describes ONE route, so the file's own shape says
|
|
342
|
+
// whether that route is a page. A file holding a code-based route TREE
|
|
343
|
+
// describes many, and its root component draws the outlet they render into
|
|
344
|
+
// — judging that file by the same rule would drop every route in it.
|
|
345
|
+
const layout = isLayoutFile(filePath, content);
|
|
346
|
+
const entries = parseTanstackRoutes(content).filter((e) => !(e.fileBased && layout));
|
|
347
|
+
if (entries.length === 0)
|
|
348
|
+
return { nodes: [], references: [] };
|
|
349
|
+
const language = languageForFile(filePath);
|
|
350
|
+
const now = Date.now();
|
|
351
|
+
const nodes = [];
|
|
352
|
+
const references = [];
|
|
353
|
+
// An index route is the page AT its address; a layout at the same address
|
|
354
|
+
// wraps it. One address, one screen — the index wins it.
|
|
355
|
+
const byPath = new Map();
|
|
356
|
+
for (const entry of entries) {
|
|
357
|
+
const held = byPath.get(entry.path);
|
|
358
|
+
if (!held || (entry.index && !held.index))
|
|
359
|
+
byPath.set(entry.path, entry);
|
|
360
|
+
}
|
|
361
|
+
for (const entry of byPath.values()) {
|
|
362
|
+
const node = {
|
|
363
|
+
id: routeId(filePath, entry.line, entry.path),
|
|
364
|
+
kind: 'route',
|
|
365
|
+
name: entry.path,
|
|
366
|
+
qualifiedName: `${filePath}::route:${entry.path}`,
|
|
367
|
+
filePath,
|
|
368
|
+
startLine: entry.line,
|
|
369
|
+
endLine: entry.line,
|
|
370
|
+
startColumn: 0,
|
|
371
|
+
endColumn: 0,
|
|
372
|
+
language,
|
|
373
|
+
updatedAt: now,
|
|
374
|
+
};
|
|
375
|
+
nodes.push(node);
|
|
376
|
+
if (entry.component) {
|
|
377
|
+
// `calls`, as every component-backed screen binds: a `references`
|
|
378
|
+
// candidate list is filtered to the ref's own language family.
|
|
379
|
+
references.push({
|
|
380
|
+
fromNodeId: node.id,
|
|
381
|
+
referenceName: entry.component,
|
|
382
|
+
referenceKind: 'calls',
|
|
383
|
+
line: entry.line,
|
|
384
|
+
column: 0,
|
|
385
|
+
filePath,
|
|
386
|
+
language,
|
|
387
|
+
candidates: [entry.component],
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return { nodes, references };
|
|
392
|
+
},
|
|
393
|
+
resolve(ref, context) {
|
|
394
|
+
if (ref.referenceKind !== 'calls')
|
|
395
|
+
return null;
|
|
396
|
+
const verb = tanstackNavVerb(ref.referenceName);
|
|
397
|
+
if (!verb)
|
|
398
|
+
return null;
|
|
399
|
+
if (!ROUTE_LANGUAGES.includes(ref.language))
|
|
400
|
+
return null;
|
|
401
|
+
const routes = (0, expo_router_1.routesForFile)(tanstackTable(context), ref.filePath);
|
|
402
|
+
if (!routes || routes.exact.size === 0)
|
|
403
|
+
return null;
|
|
404
|
+
const lines = context.getFileLines?.(ref.filePath) ?? context.readFile(ref.filePath)?.split(/\r?\n/) ?? null;
|
|
405
|
+
if (!lines)
|
|
406
|
+
return null;
|
|
407
|
+
const arg = (0, expo_router_1.firstArgumentText)(lines, ref.line, ref.column, verb);
|
|
408
|
+
if (arg === null)
|
|
409
|
+
return null;
|
|
410
|
+
let href = tanstackDestination(arg);
|
|
411
|
+
if (!href) {
|
|
412
|
+
const enclosing = context.getNodeById?.(ref.fromNodeId);
|
|
413
|
+
const start = enclosing && enclosing.filePath === ref.filePath ? enclosing.startLine : Math.max(1, ref.line - 40);
|
|
414
|
+
href = (0, expo_router_1.readHrefViaLocal)(lines, ref.line, ref.column, verb, start);
|
|
415
|
+
}
|
|
416
|
+
if (!href)
|
|
417
|
+
return null;
|
|
418
|
+
// Every arm of a conditional destination is somewhere this call goes; the
|
|
419
|
+
// first is this reference's resolution and the rest ride as `alsoTargets`.
|
|
420
|
+
const targets = (0, nextjs_1.destinationsForHref)(href, routes);
|
|
421
|
+
const target = targets[0];
|
|
422
|
+
if (!target)
|
|
423
|
+
return null;
|
|
424
|
+
return {
|
|
425
|
+
original: ref,
|
|
426
|
+
targetNodeId: target.node.id,
|
|
427
|
+
...(targets.length > 1
|
|
428
|
+
? { alsoTargets: targets.slice(1).map((t) => ({ targetNodeId: t.node.id, metadata: { href: t.href.display, navMethod: verb } })) }
|
|
429
|
+
: {}),
|
|
430
|
+
confidence: 0.95,
|
|
431
|
+
resolvedBy: 'framework',
|
|
432
|
+
edgeKind: 'navigates',
|
|
433
|
+
metadata: { href: target.href.display, navMethod: verb },
|
|
434
|
+
};
|
|
435
|
+
},
|
|
436
|
+
};
|
|
437
|
+
//# sourceMappingURL=tanstack-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tanstack-router.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/tanstack-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vue Router — routes declared in a config object, navigation often by NAME.
|
|
3
|
+
*
|
|
4
|
+
* `frameworks/vue.ts` reads Nuxt's file convention (`pages/about.vue` is
|
|
5
|
+
* `/about`), which is half the Vue world. The other half — every plain Vue 3
|
|
6
|
+
* app — declares its routes in one object:
|
|
7
|
+
*
|
|
8
|
+
* const router = createRouter({
|
|
9
|
+
* history: createWebHistory(),
|
|
10
|
+
* routes: [
|
|
11
|
+
* { name: 'login', path: '/login', component: () => import('@/views/Login') },
|
|
12
|
+
* { name: 'profile', path: '/profile/:username', component: Profile },
|
|
13
|
+
* ],
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* `extract()` reads that array into one `route` node per entry, named by its
|
|
17
|
+
* path the way every other framework's routes are, bound to the component it
|
|
18
|
+
* names — an identifier, or the last segment of a lazy `() => import(…)`,
|
|
19
|
+
* which is the `.vue` file's own name.
|
|
20
|
+
*
|
|
21
|
+
* **Navigation is usually a name, not a path.** This is what makes Vue
|
|
22
|
+
* different from React Router and Next.js, where the destination is always a
|
|
23
|
+
* URL:
|
|
24
|
+
*
|
|
25
|
+
* router.push({ name: 'login' }) // by name — the common idiom
|
|
26
|
+
* router.push('/') // by path
|
|
27
|
+
* router.push({ path: '/', query }) // by path, with extras
|
|
28
|
+
* navigateTo('/dashboard') // Nuxt
|
|
29
|
+
*
|
|
30
|
+
* So `resolve()` reads the argument as a name FIRST and falls back to the
|
|
31
|
+
* path readers every other framework shares. A route's name lives only in the
|
|
32
|
+
* source — node metadata is not persisted — so the table re-reads the config
|
|
33
|
+
* files its own route nodes came from, with the same parser `extract` used.
|
|
34
|
+
* `<router-link to>` / `<RouterLink to>` / `<NuxtLink to>` are markup rather
|
|
35
|
+
* than calls, so a synthesizer reads them (`vue-router-synthesizer.ts`).
|
|
36
|
+
*
|
|
37
|
+
* Left unresolved rather than guessed: a computed destination
|
|
38
|
+
* (`router.push(postAuthRoute.value)`), a name or path nothing declares, and
|
|
39
|
+
* a nested `children:` route, whose path is relative to its parent.
|
|
40
|
+
*/
|
|
41
|
+
import type { Node } from '../../types';
|
|
42
|
+
import type { FrameworkResolver, ResolutionContext } from '../types';
|
|
43
|
+
import { type HrefLiteral, type RootedRouteTable, type RouteTable } from './expo-router';
|
|
44
|
+
export interface VueRouteEntry {
|
|
45
|
+
/** `/profile/:username` — the path, in the form every other framework's routes use. */
|
|
46
|
+
path: string;
|
|
47
|
+
/** `profile` — what `router.push({ name })` names, when the entry has one. */
|
|
48
|
+
name: string | null;
|
|
49
|
+
/** The component the entry names, by identifier or by the tail of its lazy import. */
|
|
50
|
+
component: string | null;
|
|
51
|
+
line: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Every top-level entry of a `routes: [...]` array.
|
|
55
|
+
*
|
|
56
|
+
* The array is walked, not pattern-matched: a `name` is written ABOVE the
|
|
57
|
+
* `path` it belongs to, so reading fields out of a window around each `path`
|
|
58
|
+
* hands an entry its PREDECESSOR's name — vue-realworld's `login` came out as
|
|
59
|
+
* `/register`, silently, for every route in the file. So each top-level `{…}`
|
|
60
|
+
* is matched as a unit and only its own depth-1 fields are read; a nested
|
|
61
|
+
* `children:` array, a `meta: {…}` and a lazy `component: () => import(…)`
|
|
62
|
+
* are stepped over rather than searched.
|
|
63
|
+
*
|
|
64
|
+
* An entry whose path does not start with `/` is a child route, relative to a
|
|
65
|
+
* parent this does not compose, and is not a destination on its own.
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseVueRoutes(content: string): VueRouteEntry[];
|
|
68
|
+
/** One app's routes, by path and — Vue's own idiom — by name. */
|
|
69
|
+
export interface VueAppRoutes extends RouteTable {
|
|
70
|
+
/** `login` → the route node, for `router.push({ name: 'login' })`. */
|
|
71
|
+
byName: Map<string, Node>;
|
|
72
|
+
}
|
|
73
|
+
export type VueRouteTable = RootedRouteTable<VueAppRoutes>;
|
|
74
|
+
export declare function vueRouteTable(context: ResolutionContext): VueRouteTable;
|
|
75
|
+
/** The verb a navigation call name stands for, or null. */
|
|
76
|
+
export declare function vueNavVerb(name: string): string | null;
|
|
77
|
+
/** The route name in a `{ name: 'login' }` destination, or null for anything else. */
|
|
78
|
+
export declare function routeNameInExpression(expr: string): string | null;
|
|
79
|
+
/** `{ path: '/', query }` — Vue's object destination, whose key is `path`, not `pathname`. */
|
|
80
|
+
export declare function parseVuePathObject(expr: string): HrefLiteral | null;
|
|
81
|
+
export declare const vueRouterResolver: FrameworkResolver;
|
|
82
|
+
//# sourceMappingURL=vue-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-router.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/vue-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAY,IAAI,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAIlB,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AASvB,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,sFAAsF;IACtF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAgC/D;AAyBD,iEAAiE;AACjE,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,sEAAsE;IACtE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAkB3D,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAuCvE;AAeD,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItD;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAMnE;AA2BD,eAAO,MAAM,iBAAiB,EAAE,iBA0H/B,CAAC"}
|