@quolu/lattice 0.69.5 → 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/README.ja.md +5 -1
- 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/cli-help.mjs +4 -2
- package/src/sensor-adapter.mjs +5 -1
- package/src/todo-cli.mjs +88 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/ui-server/api/effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/entrypoints` — where to start reading a project you have never
|
|
3
|
+
* opened, and where a flow starts.
|
|
4
|
+
*
|
|
5
|
+
* The empty state, the resting search palette and the entry-points panel all
|
|
6
|
+
* have the same problem: a graph of thirteen thousand symbols and no obvious
|
|
7
|
+
* door. Four answers, every one of them derived from the graph rather than
|
|
8
|
+
* from a filename convention:
|
|
9
|
+
*
|
|
10
|
+
* - **Routes** — a request arriving from outside is the most literal entry a
|
|
11
|
+
* codebase has. Straight from the routing manifest (`/api/routes`), and
|
|
12
|
+
* absent for a project that is not a routed app. Carried with the file the
|
|
13
|
+
* URL is REGISTERED in as well as the one that serves it, because a router
|
|
14
|
+
* file is how a reader groups routes and the two are rarely the same file.
|
|
15
|
+
* - **Files that run something** — the engine records a statement at the top
|
|
16
|
+
* level of a file as an edge out of the *file* node, so a CLI, a worker
|
|
17
|
+
* entry or a build script has `calls` where a library module has none. That
|
|
18
|
+
* is what makes `src/bin/lattice-sensor.ts` the root of this repo's CLI flow.
|
|
19
|
+
* Ranked by calls x how many other files they reach, so the file that both
|
|
20
|
+
* runs and wires the project together outranks a registration table that
|
|
21
|
+
* makes a hundred module-level calls into itself.
|
|
22
|
+
* - **Tests** — the other direction: not where the project starts, but what
|
|
23
|
+
* already exercises it. Ranked by how many other files a test reaches, so
|
|
24
|
+
* the suites that cross the most of the codebase come first.
|
|
25
|
+
* - **Hubs** — the most depended-on symbols. Not an entry in the "runs first"
|
|
26
|
+
* sense; an entry in the sense that reading one tells you the most about
|
|
27
|
+
* what the project is made of, and a change to one radiates furthest.
|
|
28
|
+
*
|
|
29
|
+
* Tests and fixtures are excluded from the two *reading* lists — "where do I
|
|
30
|
+
* start reading" never means a test — and the Tests list is built from the
|
|
31
|
+
* narrow {@link isTestPath}, not from {@link isTestFile}: an example, a
|
|
32
|
+
* benchmark or a fixture is not a test, and a heading that says "Tests" must
|
|
33
|
+
* not be quietly counting them.
|
|
34
|
+
*/
|
|
35
|
+
import type { LatticeSensor } from '../../index';
|
|
36
|
+
import { type WireRoute } from './routes';
|
|
37
|
+
import { type WireList, type WireNodeRef } from './wire';
|
|
38
|
+
export interface WireEntryFile extends WireNodeRef {
|
|
39
|
+
/** Calls and instantiations made at the top level of the file. */
|
|
40
|
+
calls: number;
|
|
41
|
+
/** Distinct other files this one's symbols reach. */
|
|
42
|
+
reaches: number;
|
|
43
|
+
/** Other files reaching into this one. Zero means nothing imports it. */
|
|
44
|
+
dependents: number;
|
|
45
|
+
}
|
|
46
|
+
export interface WireEntryTest extends WireNodeRef {
|
|
47
|
+
/** Distinct other files this test reaches — what it exercises. */
|
|
48
|
+
reaches: number;
|
|
49
|
+
/** References behind that reach. */
|
|
50
|
+
refs: number;
|
|
51
|
+
}
|
|
52
|
+
export interface WireEntryHub extends WireNodeRef {
|
|
53
|
+
/** Distinct symbols that depend on this one. */
|
|
54
|
+
dependents: number;
|
|
55
|
+
}
|
|
56
|
+
export interface WireEntryPoints {
|
|
57
|
+
/**
|
|
58
|
+
* Frameworks the resolver detected, e.g. `["go"]`, `["express"]`.
|
|
59
|
+
*
|
|
60
|
+
* The Routes section's header names them: a route list is a claim about a
|
|
61
|
+
* framework's conventions, and saying which one produced it is the
|
|
62
|
+
* difference between a fact and an assertion.
|
|
63
|
+
*/
|
|
64
|
+
frameworks: string[];
|
|
65
|
+
routes: {
|
|
66
|
+
routed: boolean;
|
|
67
|
+
/** Every `route` node in the graph, resolved handler or not. */
|
|
68
|
+
routeCount: number;
|
|
69
|
+
items: WireList<WireRoute>;
|
|
70
|
+
};
|
|
71
|
+
/** `total` is a floor on these three — the server counts what its scan saw. */
|
|
72
|
+
files: WireList<WireEntryFile>;
|
|
73
|
+
tests: WireList<WireEntryTest>;
|
|
74
|
+
hubs: WireList<WireEntryHub>;
|
|
75
|
+
index: {
|
|
76
|
+
lastIndexedAt: number | null;
|
|
77
|
+
files: number;
|
|
78
|
+
};
|
|
79
|
+
timing: {
|
|
80
|
+
elapsedMs: number;
|
|
81
|
+
cached: boolean;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export declare function resetEntryPointsCache(): void;
|
|
85
|
+
export declare function buildEntryPoints(cg: LatticeSensor, query: URLSearchParams): WireEntryPoints;
|
|
86
|
+
/**
|
|
87
|
+
* The line spans (1-based, inclusive) of a Swift file's top-level
|
|
88
|
+
* `#Preview { … }` macros, trailing closures included — WidgetKit's
|
|
89
|
+
* `#Preview(as: .systemSmall) { … } timeline: { … }` is one preview.
|
|
90
|
+
*/
|
|
91
|
+
export declare function swiftPreviewSpans(text: string): Array<[number, number]>;
|
|
92
|
+
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../../../src/ui-server/api/entrypoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAoC,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyD3F,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,gEAAgE;QAChE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC5B,CAAC;IACF,+EAA+E;IAC/E,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAkBD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAMD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,CA0C3F;AA6GD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8BvE"}
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `GET /api/entrypoints` — where to start reading a project you have never
|
|
4
|
+
* opened, and where a flow starts.
|
|
5
|
+
*
|
|
6
|
+
* The empty state, the resting search palette and the entry-points panel all
|
|
7
|
+
* have the same problem: a graph of thirteen thousand symbols and no obvious
|
|
8
|
+
* door. Four answers, every one of them derived from the graph rather than
|
|
9
|
+
* from a filename convention:
|
|
10
|
+
*
|
|
11
|
+
* - **Routes** — a request arriving from outside is the most literal entry a
|
|
12
|
+
* codebase has. Straight from the routing manifest (`/api/routes`), and
|
|
13
|
+
* absent for a project that is not a routed app. Carried with the file the
|
|
14
|
+
* URL is REGISTERED in as well as the one that serves it, because a router
|
|
15
|
+
* file is how a reader groups routes and the two are rarely the same file.
|
|
16
|
+
* - **Files that run something** — the engine records a statement at the top
|
|
17
|
+
* level of a file as an edge out of the *file* node, so a CLI, a worker
|
|
18
|
+
* entry or a build script has `calls` where a library module has none. That
|
|
19
|
+
* is what makes `src/bin/lattice-sensor.ts` the root of this repo's CLI flow.
|
|
20
|
+
* Ranked by calls x how many other files they reach, so the file that both
|
|
21
|
+
* runs and wires the project together outranks a registration table that
|
|
22
|
+
* makes a hundred module-level calls into itself.
|
|
23
|
+
* - **Tests** — the other direction: not where the project starts, but what
|
|
24
|
+
* already exercises it. Ranked by how many other files a test reaches, so
|
|
25
|
+
* the suites that cross the most of the codebase come first.
|
|
26
|
+
* - **Hubs** — the most depended-on symbols. Not an entry in the "runs first"
|
|
27
|
+
* sense; an entry in the sense that reading one tells you the most about
|
|
28
|
+
* what the project is made of, and a change to one radiates furthest.
|
|
29
|
+
*
|
|
30
|
+
* Tests and fixtures are excluded from the two *reading* lists — "where do I
|
|
31
|
+
* start reading" never means a test — and the Tests list is built from the
|
|
32
|
+
* narrow {@link isTestPath}, not from {@link isTestFile}: an example, a
|
|
33
|
+
* benchmark or a fixture is not a test, and a heading that says "Tests" must
|
|
34
|
+
* not be quietly counting them.
|
|
35
|
+
*/
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.resetEntryPointsCache = resetEntryPointsCache;
|
|
38
|
+
exports.buildEntryPoints = buildEntryPoints;
|
|
39
|
+
exports.swiftPreviewSpans = swiftPreviewSpans;
|
|
40
|
+
const respond_1 = require("./respond");
|
|
41
|
+
const routes_1 = require("./routes");
|
|
42
|
+
const query_utils_1 = require("../../search/query-utils");
|
|
43
|
+
const wire_1 = require("./wire");
|
|
44
|
+
const source_1 = require("./source");
|
|
45
|
+
/** Rows per derived list, and the default for `limit`. */
|
|
46
|
+
const DEFAULT_LIMIT = 12;
|
|
47
|
+
/**
|
|
48
|
+
* Route rows, and the default for `routes`.
|
|
49
|
+
*
|
|
50
|
+
* Separate from `limit` because routes are the one list whose useful length is
|
|
51
|
+
* set by the project rather than by the reader: a panel that groups 60 routes
|
|
52
|
+
* under four router files is legible, while 60 rows of "most depended on" is
|
|
53
|
+
* a wall. Both are honest — every list carries the real total.
|
|
54
|
+
*/
|
|
55
|
+
const DEFAULT_ROUTE_LIMIT = 60;
|
|
56
|
+
const MAX_ROUTE_LIMIT = 300;
|
|
57
|
+
/**
|
|
58
|
+
* Ranked rows examined before the test filter and the per-directory cap run.
|
|
59
|
+
*
|
|
60
|
+
* Fixed rather than a multiple of `limit` so the same project answers with the
|
|
61
|
+
* same rows whatever the caller asks for. It also means the `total` on the two
|
|
62
|
+
* derived lists is a FLOOR — "at least this many" — because the tests it skips
|
|
63
|
+
* are only recognisable in JavaScript (`isTestFile` reads directory shapes and
|
|
64
|
+
* CamelCase suffixes that do not survive translation into SQL). That is the
|
|
65
|
+
* honest reading, and the viewer prints the rows rather than the count.
|
|
66
|
+
*/
|
|
67
|
+
const SCAN_ROWS = 400;
|
|
68
|
+
/**
|
|
69
|
+
* At most this many executable files from any one directory.
|
|
70
|
+
*
|
|
71
|
+
* Without it a repo with twenty one-off scripts in `scripts/` answers "where do
|
|
72
|
+
* I start" with twenty scripts, and the CLI everybody actually wants falls off
|
|
73
|
+
* the end. Two keeps a directory represented without letting it own the list.
|
|
74
|
+
*/
|
|
75
|
+
const MAX_FILES_PER_DIR = 2;
|
|
76
|
+
/**
|
|
77
|
+
* Test files asked about per reach query.
|
|
78
|
+
*
|
|
79
|
+
* The reach query is driven from `nodes` by file path, so its cost is
|
|
80
|
+
* proportional to the files in the chunk rather than to the edge table — but a
|
|
81
|
+
* repo with ten thousand test files would still put ten thousand paths into
|
|
82
|
+
* one `json_each`. Chunking keeps every statement bounded WITHOUT capping the
|
|
83
|
+
* candidate list, which would silently drop test files from the ranking.
|
|
84
|
+
*/
|
|
85
|
+
const TEST_CHUNK = 500;
|
|
86
|
+
/** Kinds that are never a useful hub row: a mention, a container, or a name. */
|
|
87
|
+
const NON_HUB_KINDS = new Set([
|
|
88
|
+
'file',
|
|
89
|
+
'import',
|
|
90
|
+
'export',
|
|
91
|
+
'parameter',
|
|
92
|
+
]);
|
|
93
|
+
// =============================================================================
|
|
94
|
+
// Cache
|
|
95
|
+
// =============================================================================
|
|
96
|
+
/**
|
|
97
|
+
* One answer per (project, index build, limits).
|
|
98
|
+
*
|
|
99
|
+
* Unlike `/api/source` and everything downstream of it, nothing here is read
|
|
100
|
+
* from disk: every field comes out of the index, so an answer is exactly as
|
|
101
|
+
* fresh as the index build it was keyed on. The Tests list is the reason it is
|
|
102
|
+
* worth caching at all — it asks a reach query per chunk of test files, and
|
|
103
|
+
* every screen in the viewer refetches this payload when the index moves.
|
|
104
|
+
*/
|
|
105
|
+
const CACHE_LIMIT = 8;
|
|
106
|
+
const cache = new Map();
|
|
107
|
+
function resetEntryPointsCache() {
|
|
108
|
+
cache.clear();
|
|
109
|
+
}
|
|
110
|
+
// =============================================================================
|
|
111
|
+
// Build
|
|
112
|
+
// =============================================================================
|
|
113
|
+
function buildEntryPoints(cg, query) {
|
|
114
|
+
const started = Date.now();
|
|
115
|
+
const limit = (0, respond_1.intParam)(query, 'limit', { min: 1, max: 50, default: DEFAULT_LIMIT });
|
|
116
|
+
const routeLimit = (0, respond_1.intParam)(query, 'routes', {
|
|
117
|
+
min: 3,
|
|
118
|
+
max: MAX_ROUTE_LIMIT,
|
|
119
|
+
default: DEFAULT_ROUTE_LIMIT,
|
|
120
|
+
});
|
|
121
|
+
const stats = cg.getStats();
|
|
122
|
+
// JSON rather than a joined string: a project root can contain any character
|
|
123
|
+
// a separator might have picked, and this key is compared for equality only.
|
|
124
|
+
const key = JSON.stringify([
|
|
125
|
+
cg.getProjectRoot(),
|
|
126
|
+
cg.getLastIndexedAt() ?? 0,
|
|
127
|
+
stats.edgeCount,
|
|
128
|
+
stats.fileCount,
|
|
129
|
+
limit,
|
|
130
|
+
routeLimit,
|
|
131
|
+
]);
|
|
132
|
+
const hit = cache.get(key);
|
|
133
|
+
if (hit) {
|
|
134
|
+
// Re-stamp rather than mutate: the body is shared with the next caller.
|
|
135
|
+
return { ...hit, timing: { elapsedMs: Date.now() - started, cached: true } };
|
|
136
|
+
}
|
|
137
|
+
const payload = {
|
|
138
|
+
frameworks: cg.getDetectedFrameworks(),
|
|
139
|
+
routes: routeEntries(cg, routeLimit),
|
|
140
|
+
files: executableFiles(cg, limit),
|
|
141
|
+
tests: testFiles(cg, limit),
|
|
142
|
+
hubs: hubs(cg, limit),
|
|
143
|
+
index: { lastIndexedAt: cg.getLastIndexedAt() ?? null, files: stats.fileCount },
|
|
144
|
+
timing: { elapsedMs: Date.now() - started, cached: false },
|
|
145
|
+
};
|
|
146
|
+
if (cache.size >= CACHE_LIMIT) {
|
|
147
|
+
const oldest = cache.keys().next();
|
|
148
|
+
if (!oldest.done)
|
|
149
|
+
cache.delete(oldest.value);
|
|
150
|
+
}
|
|
151
|
+
cache.set(key, payload);
|
|
152
|
+
return payload;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The routing manifest, trimmed to a starting-points list.
|
|
156
|
+
*
|
|
157
|
+
* `buildRoutes` is reused rather than re-derived so a route row means exactly
|
|
158
|
+
* the same thing here as on the routes endpoint — including its handler id and
|
|
159
|
+
* its registration site, which are what make the row navigable and groupable.
|
|
160
|
+
*/
|
|
161
|
+
function routeEntries(cg, limit) {
|
|
162
|
+
const manifest = (0, routes_1.buildRoutes)(cg, new URLSearchParams([['limit', String(limit)]]));
|
|
163
|
+
return {
|
|
164
|
+
routed: manifest.routed,
|
|
165
|
+
routeCount: manifest.routeCount,
|
|
166
|
+
// `shown` counts the rows; `truncated` is the manifest's own verdict on
|
|
167
|
+
// whether the window cut anything, and it is more trustworthy than
|
|
168
|
+
// comparing against `routeCount` (which counts URLs whose handler never
|
|
169
|
+
// resolved as well).
|
|
170
|
+
items: {
|
|
171
|
+
total: manifest.truncated ? Math.max(manifest.shown + 1, manifest.routeCount) : manifest.shown,
|
|
172
|
+
shown: manifest.shown,
|
|
173
|
+
truncated: manifest.truncated,
|
|
174
|
+
items: manifest.entries,
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Files that do something on the way down, most first.
|
|
180
|
+
*
|
|
181
|
+
* Over-fetched before filtering, because the two things that shrink the list —
|
|
182
|
+
* tests and the per-directory cap — are only knowable after the rows come back,
|
|
183
|
+
* and a project whose noisiest module-level callers are all test files would
|
|
184
|
+
* otherwise answer with an empty list.
|
|
185
|
+
*/
|
|
186
|
+
function executableFiles(cg, limit) {
|
|
187
|
+
const ranked = withoutPreviews(cg, cg.getTopCallingFiles(SCAN_ROWS));
|
|
188
|
+
const kept = [];
|
|
189
|
+
const perDir = new Map();
|
|
190
|
+
let eligible = 0;
|
|
191
|
+
for (const row of ranked) {
|
|
192
|
+
if ((0, query_utils_1.isTestFile)(row.filePath))
|
|
193
|
+
continue;
|
|
194
|
+
eligible += 1;
|
|
195
|
+
if (kept.length >= limit)
|
|
196
|
+
continue;
|
|
197
|
+
const dir = directoryOf(row.filePath);
|
|
198
|
+
const taken = perDir.get(dir) ?? 0;
|
|
199
|
+
if (taken >= MAX_FILES_PER_DIR)
|
|
200
|
+
continue;
|
|
201
|
+
const node = cg.getNode(row.nodeId);
|
|
202
|
+
if (!node)
|
|
203
|
+
continue;
|
|
204
|
+
perDir.set(dir, taken + 1);
|
|
205
|
+
kept.push({ node, calls: row.calls, reaches: row.reaches });
|
|
206
|
+
}
|
|
207
|
+
const dependents = cg.getFileDependentCounts(kept.map((k) => k.node.filePath));
|
|
208
|
+
const items = kept.map(({ node, calls, reaches }) => ({
|
|
209
|
+
...(0, wire_1.toNodeRef)(node),
|
|
210
|
+
calls,
|
|
211
|
+
reaches,
|
|
212
|
+
dependents: dependents.get(node.filePath) ?? 0,
|
|
213
|
+
}));
|
|
214
|
+
// `eligible` counts every non-test file the scan saw: a floor, never an
|
|
215
|
+
// overstatement.
|
|
216
|
+
return (0, wire_1.wireList)(items, Math.max(eligible, items.length));
|
|
217
|
+
}
|
|
218
|
+
/** A Swift file read for its `#Preview` blocks, at most. */
|
|
219
|
+
const MAX_PREVIEW_SCAN = 1024 * 1024;
|
|
220
|
+
/**
|
|
221
|
+
* The ranking with a Swift file's `#Preview { … }` calls taken out.
|
|
222
|
+
*
|
|
223
|
+
* A preview sits at the top level of a SwiftUI view's file, so its body's
|
|
224
|
+
* constructions are module-level edges out of the file — and every view with
|
|
225
|
+
* a preview ranked as "a file that runs something". A preview is Xcode's
|
|
226
|
+
* canvas, never code the app runs. A file whose only module-level calls are
|
|
227
|
+
* previews leaves the list; the rest are re-ranked on what is left.
|
|
228
|
+
*/
|
|
229
|
+
function withoutPreviews(cg, rows) {
|
|
230
|
+
let adjusted = false;
|
|
231
|
+
const out = [];
|
|
232
|
+
for (const row of rows) {
|
|
233
|
+
if (!row.filePath.endsWith('.swift')) {
|
|
234
|
+
out.push(row);
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
const text = (0, source_1.readIndexedFileText)(cg, cg.getProjectRoot(), row.filePath, MAX_PREVIEW_SCAN);
|
|
238
|
+
const spans = text && text.includes('#Preview') ? swiftPreviewSpans(text) : [];
|
|
239
|
+
if (spans.length === 0) {
|
|
240
|
+
out.push(row);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
const inPreview = cg
|
|
244
|
+
.getOutgoingEdges(row.nodeId)
|
|
245
|
+
.filter((e) => (e.kind === 'calls' || e.kind === 'instantiates') && e.line != null && spans.some(([from, to]) => e.line >= from && e.line <= to)).length;
|
|
246
|
+
if (inPreview === 0) {
|
|
247
|
+
out.push(row);
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
adjusted = true;
|
|
251
|
+
const calls = row.calls - inPreview;
|
|
252
|
+
if (calls > 0)
|
|
253
|
+
out.push({ ...row, calls, score: calls * (1 + row.reaches) });
|
|
254
|
+
}
|
|
255
|
+
if (adjusted)
|
|
256
|
+
out.sort((a, b) => b.score - a.score || b.calls - a.calls || (a.filePath < b.filePath ? -1 : a.filePath > b.filePath ? 1 : 0));
|
|
257
|
+
return out;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* The line spans (1-based, inclusive) of a Swift file's top-level
|
|
261
|
+
* `#Preview { … }` macros, trailing closures included — WidgetKit's
|
|
262
|
+
* `#Preview(as: .systemSmall) { … } timeline: { … }` is one preview.
|
|
263
|
+
*/
|
|
264
|
+
function swiftPreviewSpans(text) {
|
|
265
|
+
const lines = text.split(/\r?\n/);
|
|
266
|
+
const spans = [];
|
|
267
|
+
for (let i = 0; i < lines.length; i++) {
|
|
268
|
+
if (!/^#Preview\b/.test(lines[i]))
|
|
269
|
+
continue;
|
|
270
|
+
let depth = 0;
|
|
271
|
+
let opened = false;
|
|
272
|
+
let end = -1;
|
|
273
|
+
for (let j = i; j < lines.length && end < 0; j++) {
|
|
274
|
+
const line = lines[j];
|
|
275
|
+
for (let c = 0; c < line.length; c++) {
|
|
276
|
+
const ch = line[c];
|
|
277
|
+
if (ch === '{') {
|
|
278
|
+
depth++;
|
|
279
|
+
opened = true;
|
|
280
|
+
}
|
|
281
|
+
else if (ch === '}' && opened && --depth === 0) {
|
|
282
|
+
// Another trailing closure (`} timeline: {`) continues the macro.
|
|
283
|
+
const rest = `${line.slice(c + 1)} ${lines[j + 1] ?? ''}`;
|
|
284
|
+
if (!/^\s*\w+\s*:\s*\{/.test(rest)) {
|
|
285
|
+
end = j;
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (end < 0)
|
|
292
|
+
break;
|
|
293
|
+
spans.push([i + 1, end + 1]);
|
|
294
|
+
i = end;
|
|
295
|
+
}
|
|
296
|
+
return spans;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* The suites that exercise the most of the project, widest first.
|
|
300
|
+
*
|
|
301
|
+
* Ranked by reach rather than by size or by module-level calls: a test's
|
|
302
|
+
* useful property is how much of the codebase runs when it does, and only Go,
|
|
303
|
+
* Rust and Java put that work inside functions where a "runs something at
|
|
304
|
+
* module level" ranking cannot see it at all.
|
|
305
|
+
*
|
|
306
|
+
* `total` is exact here — the candidate list is every test file in the index,
|
|
307
|
+
* decided in JavaScript before any query runs — which is why it is the one
|
|
308
|
+
* derived list whose count is not a floor. A test file that reaches nothing
|
|
309
|
+
* outside itself is left out on purpose: it exercises nothing this graph can
|
|
310
|
+
* name.
|
|
311
|
+
*/
|
|
312
|
+
function testFiles(cg, limit) {
|
|
313
|
+
const candidates = cg
|
|
314
|
+
.getFiles()
|
|
315
|
+
.map((file) => (0, wire_1.toPosixPath)(file.path))
|
|
316
|
+
.filter((path) => (0, query_utils_1.isTestPath)(path));
|
|
317
|
+
if (candidates.length === 0)
|
|
318
|
+
return (0, wire_1.wireList)([], 0);
|
|
319
|
+
const reach = new Map();
|
|
320
|
+
for (let i = 0; i < candidates.length; i += TEST_CHUNK) {
|
|
321
|
+
for (const [path, counts] of cg.getFileReachCounts(candidates.slice(i, i + TEST_CHUNK))) {
|
|
322
|
+
reach.set((0, wire_1.toPosixPath)(path), counts);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
const ranked = [...reach.entries()]
|
|
326
|
+
.map(([path, counts]) => ({ path, ...counts }))
|
|
327
|
+
.sort((a, b) => b.reaches - a.reaches || b.refs - a.refs || a.path.localeCompare(b.path));
|
|
328
|
+
const top = ranked.slice(0, limit);
|
|
329
|
+
const nodes = new Map(cg.getFileNodes(top.map((row) => row.path)).map((n) => [(0, wire_1.toPosixPath)(n.filePath), n]));
|
|
330
|
+
const items = [];
|
|
331
|
+
for (const row of top) {
|
|
332
|
+
const node = nodes.get(row.path);
|
|
333
|
+
if (!node)
|
|
334
|
+
continue;
|
|
335
|
+
items.push({ ...(0, wire_1.toNodeRef)(node), reaches: row.reaches, refs: row.refs });
|
|
336
|
+
}
|
|
337
|
+
return (0, wire_1.wireList)(items, Math.max(ranked.length, items.length));
|
|
338
|
+
}
|
|
339
|
+
/** The most depended-on symbols, tests and non-navigable kinds removed. */
|
|
340
|
+
function hubs(cg, limit) {
|
|
341
|
+
const ranked = cg.getTopDependedOn(SCAN_ROWS);
|
|
342
|
+
const items = [];
|
|
343
|
+
let eligible = 0;
|
|
344
|
+
for (const row of ranked) {
|
|
345
|
+
const node = cg.getNode(row.nodeId);
|
|
346
|
+
if (!node || NON_HUB_KINDS.has(node.kind) || (0, query_utils_1.isTestFile)(node.filePath))
|
|
347
|
+
continue;
|
|
348
|
+
eligible += 1;
|
|
349
|
+
if (items.length >= limit)
|
|
350
|
+
continue;
|
|
351
|
+
items.push({ ...(0, wire_1.toNodeRef)(node), dependents: row.dependents });
|
|
352
|
+
}
|
|
353
|
+
return (0, wire_1.wireList)(items, Math.max(eligible, items.length));
|
|
354
|
+
}
|
|
355
|
+
/** `src/bin/lattice-sensor.ts` -> `src/bin`; a root file -> `.`. */
|
|
356
|
+
function directoryOf(filePath) {
|
|
357
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
358
|
+
const cut = normalized.lastIndexOf('/');
|
|
359
|
+
return cut < 0 ? '.' : normalized.slice(0, cut);
|
|
360
|
+
}
|
|
361
|
+
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../../src/ui-server/api/entrypoints.ts"],"names":[],"mappings":"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"}
|