codesift-mcp 0.13.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/cli/commands-admin.d.ts +18 -0
- package/dist/cli/commands-admin.d.ts.map +1 -0
- package/dist/cli/commands-admin.js +187 -0
- package/dist/cli/commands-admin.js.map +1 -0
- package/dist/cli/commands-daemon.d.ts +42 -0
- package/dist/cli/commands-daemon.d.ts.map +1 -0
- package/dist/cli/commands-daemon.js +163 -0
- package/dist/cli/commands-daemon.js.map +1 -0
- package/dist/cli/commands-index.d.ts +12 -0
- package/dist/cli/commands-index.d.ts.map +1 -0
- package/dist/cli/commands-index.js +133 -0
- package/dist/cli/commands-index.js.map +1 -0
- package/dist/cli/commands-maintenance.d.ts +12 -0
- package/dist/cli/commands-maintenance.d.ts.map +1 -0
- package/dist/cli/commands-maintenance.js +409 -0
- package/dist/cli/commands-maintenance.js.map +1 -0
- package/dist/cli/commands-query.d.ts +21 -0
- package/dist/cli/commands-query.d.ts.map +1 -0
- package/dist/cli/commands-query.js +270 -0
- package/dist/cli/commands-query.js.map +1 -0
- package/dist/cli/commands.d.ts +2 -36
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +8 -854
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/embed-child.js +13 -2
- package/dist/cli/embed-child.js.map +1 -1
- package/dist/cli/hooks/pre-tool-use.d.ts +1 -0
- package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
- package/dist/cli/hooks/pre-tool-use.js +11 -2
- package/dist/cli/hooks/pre-tool-use.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/formatters-core.d.ts +7 -0
- package/dist/formatters-core.d.ts.map +1 -1
- package/dist/formatters-core.js +14 -3
- package/dist/formatters-core.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +5 -2
- package/dist/instructions.js.map +1 -1
- package/dist/parser/extractors/hono-inline-analyzer.js +2 -2
- package/dist/parser/extractors/hono-inline-analyzer.js.map +1 -1
- package/dist/parser/extractors/php-class-metadata.d.ts +10 -0
- package/dist/parser/extractors/php-class-metadata.d.ts.map +1 -0
- package/dist/parser/extractors/php-class-metadata.js +65 -0
- package/dist/parser/extractors/php-class-metadata.js.map +1 -0
- package/dist/parser/extractors/php-doc.d.ts +13 -0
- package/dist/parser/extractors/php-doc.d.ts.map +1 -0
- package/dist/parser/extractors/php-doc.js +39 -0
- package/dist/parser/extractors/php-doc.js.map +1 -0
- package/dist/parser/extractors/php-node-metadata.d.ts +26 -0
- package/dist/parser/extractors/php-node-metadata.d.ts.map +1 -0
- package/dist/parser/extractors/php-node-metadata.js +132 -0
- package/dist/parser/extractors/php-node-metadata.js.map +1 -0
- package/dist/parser/extractors/php-symbol-builders.d.ts +13 -0
- package/dist/parser/extractors/php-symbol-builders.d.ts.map +1 -0
- package/dist/parser/extractors/php-symbol-builders.js +58 -0
- package/dist/parser/extractors/php-symbol-builders.js.map +1 -0
- package/dist/parser/extractors/php-walker.d.ts +4 -0
- package/dist/parser/extractors/php-walker.d.ts.map +1 -0
- package/dist/parser/extractors/php-walker.js +238 -0
- package/dist/parser/extractors/php-walker.js.map +1 -0
- package/dist/parser/extractors/php.d.ts +2 -33
- package/dist/parser/extractors/php.d.ts.map +1 -1
- package/dist/parser/extractors/php.js +2 -747
- package/dist/parser/extractors/php.js.map +1 -1
- package/dist/register-tool-groups/core/search.d.ts.map +1 -1
- package/dist/register-tool-groups/core/search.js +14 -0
- package/dist/register-tool-groups/core/search.js.map +1 -1
- package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
- package/dist/register-tool-groups/core/symbols.js +50 -5
- package/dist/register-tool-groups/core/symbols.js.map +1 -1
- package/dist/register-tool-loaders.d.ts +11 -11
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tools/runtime.d.ts +11 -0
- package/dist/register-tools/runtime.d.ts.map +1 -1
- package/dist/register-tools/runtime.js +40 -0
- package/dist/register-tools/runtime.js.map +1 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +5 -1
- package/dist/register-tools.js.map +1 -1
- package/dist/retrieval/semantic-handlers.d.ts.map +1 -1
- package/dist/retrieval/semantic-handlers.js +10 -3
- package/dist/retrieval/semantic-handlers.js.map +1 -1
- package/dist/search/semantic.d.ts +2 -0
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +41 -9
- package/dist/search/semantic.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +54 -2
- package/dist/server.js.map +1 -1
- package/dist/storage/_shared.d.ts +21 -0
- package/dist/storage/_shared.d.ts.map +1 -1
- package/dist/storage/_shared.js +36 -0
- package/dist/storage/_shared.js.map +1 -1
- package/dist/storage/chunk-store.d.ts +14 -2
- package/dist/storage/chunk-store.d.ts.map +1 -1
- package/dist/storage/chunk-store.js +214 -34
- package/dist/storage/chunk-store.js.map +1 -1
- package/dist/storage/embedding-store.d.ts +0 -12
- package/dist/storage/embedding-store.d.ts.map +1 -1
- package/dist/storage/embedding-store.js +69 -9
- package/dist/storage/embedding-store.js.map +1 -1
- package/dist/storage/index-cache.d.ts +12 -0
- package/dist/storage/index-cache.d.ts.map +1 -0
- package/dist/storage/index-cache.js +89 -0
- package/dist/storage/index-cache.js.map +1 -0
- package/dist/storage/index-footprint.d.ts +12 -0
- package/dist/storage/index-footprint.d.ts.map +1 -0
- package/dist/storage/index-footprint.js +41 -0
- package/dist/storage/index-footprint.js.map +1 -0
- package/dist/storage/index-json-mutations.d.ts +11 -0
- package/dist/storage/index-json-mutations.d.ts.map +1 -0
- package/dist/storage/index-json-mutations.js +93 -0
- package/dist/storage/index-json-mutations.js.map +1 -0
- package/dist/storage/index-migration.d.ts +22 -0
- package/dist/storage/index-migration.d.ts.map +1 -0
- package/dist/storage/index-migration.js +80 -0
- package/dist/storage/index-migration.js.map +1 -0
- package/dist/storage/index-store.d.ts +26 -55
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +82 -350
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/index-version.d.ts +39 -0
- package/dist/storage/index-version.d.ts.map +1 -0
- package/dist/storage/index-version.js +87 -0
- package/dist/storage/index-version.js.map +1 -0
- package/dist/storage/registry.d.ts +9 -1
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +233 -9
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/shared-embedding-cache.d.ts +23 -3
- package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
- package/dist/storage/shared-embedding-cache.js +300 -45
- package/dist/storage/shared-embedding-cache.js.map +1 -1
- package/dist/storage/sqlite/accessors.d.ts +34 -0
- package/dist/storage/sqlite/accessors.d.ts.map +1 -0
- package/dist/storage/sqlite/accessors.js +178 -0
- package/dist/storage/sqlite/accessors.js.map +1 -0
- package/dist/storage/sqlite/connection.d.ts +43 -0
- package/dist/storage/sqlite/connection.d.ts.map +1 -0
- package/dist/storage/sqlite/connection.js +241 -0
- package/dist/storage/sqlite/connection.js.map +1 -0
- package/dist/storage/sqlite/errors.d.ts +38 -0
- package/dist/storage/sqlite/errors.d.ts.map +1 -0
- package/dist/storage/sqlite/errors.js +150 -0
- package/dist/storage/sqlite/errors.js.map +1 -0
- package/dist/storage/sqlite/index-io.d.ts +49 -0
- package/dist/storage/sqlite/index-io.d.ts.map +1 -0
- package/dist/storage/sqlite/index-io.js +268 -0
- package/dist/storage/sqlite/index-io.js.map +1 -0
- package/dist/storage/sqlite/meta.d.ts +41 -0
- package/dist/storage/sqlite/meta.d.ts.map +1 -0
- package/dist/storage/sqlite/meta.js +28 -0
- package/dist/storage/sqlite/meta.js.map +1 -0
- package/dist/storage/sqlite/rows.d.ts +64 -0
- package/dist/storage/sqlite/rows.d.ts.map +1 -0
- package/dist/storage/sqlite/rows.js +186 -0
- package/dist/storage/sqlite/rows.js.map +1 -0
- package/dist/storage/sqlite/runtime.d.ts +6 -0
- package/dist/storage/sqlite/runtime.d.ts.map +1 -0
- package/dist/storage/sqlite/runtime.js +31 -0
- package/dist/storage/sqlite/runtime.js.map +1 -0
- package/dist/storage/sqlite/schema.d.ts +34 -0
- package/dist/storage/sqlite/schema.d.ts.map +1 -0
- package/dist/storage/sqlite/schema.js +98 -0
- package/dist/storage/sqlite/schema.js.map +1 -0
- package/dist/storage/sqlite-index-store.d.ts +40 -80
- package/dist/storage/sqlite-index-store.d.ts.map +1 -1
- package/dist/storage/sqlite-index-store.js +32 -577
- package/dist/storage/sqlite-index-store.js.map +1 -1
- package/dist/storage/telemetry/config.d.ts.map +1 -1
- package/dist/storage/telemetry/config.js +15 -3
- package/dist/storage/telemetry/config.js.map +1 -1
- package/dist/storage/telemetry/payload.d.ts.map +1 -1
- package/dist/storage/telemetry/payload.js +4 -1
- package/dist/storage/telemetry/payload.js.map +1 -1
- package/dist/storage/telemetry/retro-aggregator.d.ts +48 -0
- package/dist/storage/telemetry/retro-aggregator.d.ts.map +1 -0
- package/dist/storage/telemetry/retro-aggregator.js +221 -0
- package/dist/storage/telemetry/retro-aggregator.js.map +1 -0
- package/dist/storage/telemetry/sanitizer.d.ts +46 -0
- package/dist/storage/telemetry/sanitizer.d.ts.map +1 -1
- package/dist/storage/telemetry/sanitizer.js +25 -0
- package/dist/storage/telemetry/sanitizer.js.map +1 -1
- package/dist/storage/telemetry/uploader.d.ts +3 -1
- package/dist/storage/telemetry/uploader.d.ts.map +1 -1
- package/dist/storage/telemetry/uploader.js +161 -18
- package/dist/storage/telemetry/uploader.js.map +1 -1
- package/dist/storage/workspace-resolver.js +1 -1
- package/dist/storage/workspace-resolver.js.map +1 -1
- package/dist/tools/cross-repo-contract-adapters.d.ts +39 -0
- package/dist/tools/cross-repo-contract-adapters.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-adapters.js +70 -0
- package/dist/tools/cross-repo-contract-adapters.js.map +1 -0
- package/dist/tools/cross-repo-contract-group.d.ts +17 -0
- package/dist/tools/cross-repo-contract-group.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-group.js +89 -0
- package/dist/tools/cross-repo-contract-group.js.map +1 -0
- package/dist/tools/cross-repo-contract-matcher.d.ts +24 -0
- package/dist/tools/cross-repo-contract-matcher.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-matcher.js +134 -0
- package/dist/tools/cross-repo-contract-matcher.js.map +1 -0
- package/dist/tools/cross-repo-contract-resolver.d.ts +9 -0
- package/dist/tools/cross-repo-contract-resolver.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-resolver.js +86 -0
- package/dist/tools/cross-repo-contract-resolver.js.map +1 -0
- package/dist/tools/cross-repo-contract-tools.d.ts +12 -135
- package/dist/tools/cross-repo-contract-tools.d.ts.map +1 -1
- package/dist/tools/cross-repo-contract-tools.js +8 -589
- package/dist/tools/cross-repo-contract-tools.js.map +1 -1
- package/dist/tools/cross-repo-contract-types.d.ts +30 -0
- package/dist/tools/cross-repo-contract-types.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-types.js +3 -0
- package/dist/tools/cross-repo-contract-types.js.map +1 -0
- package/dist/tools/cross-repo-outbound-calls.d.ts +28 -0
- package/dist/tools/cross-repo-outbound-calls.d.ts.map +1 -0
- package/dist/tools/cross-repo-outbound-calls.js +347 -0
- package/dist/tools/cross-repo-outbound-calls.js.map +1 -0
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts.map +1 -1
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.js +2 -0
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.js.map +1 -1
- package/dist/tools/cross-repo-outbound-lexer/types.d.ts +2 -0
- package/dist/tools/cross-repo-outbound-lexer/types.d.ts.map +1 -1
- package/dist/tools/index-tools/file-indexer.js +3 -3
- package/dist/tools/index-tools/file-indexer.js.map +1 -1
- package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/folder-indexer.js +51 -3
- package/dist/tools/index-tools/folder-indexer.js.map +1 -1
- package/dist/tools/index-tools/parse.d.ts +12 -3
- package/dist/tools/index-tools/parse.d.ts.map +1 -1
- package/dist/tools/index-tools/parse.js +33 -8
- package/dist/tools/index-tools/parse.js.map +1 -1
- package/dist/tools/index-tools/registry.d.ts +35 -0
- package/dist/tools/index-tools/registry.d.ts.map +1 -1
- package/dist/tools/index-tools/registry.js +167 -3
- package/dist/tools/index-tools/registry.js.map +1 -1
- package/dist/tools/index-tools/state.d.ts +31 -0
- package/dist/tools/index-tools/state.d.ts.map +1 -1
- package/dist/tools/index-tools/state.js +53 -0
- package/dist/tools/index-tools/state.js.map +1 -1
- package/dist/tools/index-tools/types.d.ts +9 -0
- package/dist/tools/index-tools/types.d.ts.map +1 -1
- package/dist/tools/index-tools/watcher.js +3 -3
- package/dist/tools/index-tools/watcher.js.map +1 -1
- package/dist/tools/index-tools/worktree-seed.d.ts +44 -0
- package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -0
- package/dist/tools/index-tools/worktree-seed.js +302 -0
- package/dist/tools/index-tools/worktree-seed.js.map +1 -0
- package/dist/tools/index-tools.d.ts +2 -2
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +5 -3
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/nest-ext-tools/graphql.d.ts +17 -0
- package/dist/tools/nest-ext-tools/graphql.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/graphql.js +54 -0
- package/dist/tools/nest-ext-tools/graphql.js.map +1 -0
- package/dist/tools/nest-ext-tools/microservice.d.ts +17 -0
- package/dist/tools/nest-ext-tools/microservice.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/microservice.js +51 -0
- package/dist/tools/nest-ext-tools/microservice.js.map +1 -0
- package/dist/tools/nest-ext-tools/openapi.d.ts +81 -0
- package/dist/tools/nest-ext-tools/openapi.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/openapi.js +254 -0
- package/dist/tools/nest-ext-tools/openapi.js.map +1 -0
- package/dist/tools/nest-ext-tools/queue.d.ts +27 -0
- package/dist/tools/nest-ext-tools/queue.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/queue.js +95 -0
- package/dist/tools/nest-ext-tools/queue.js.map +1 -0
- package/dist/tools/nest-ext-tools/schedule.d.ts +19 -0
- package/dist/tools/nest-ext-tools/schedule.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/schedule.js +89 -0
- package/dist/tools/nest-ext-tools/schedule.js.map +1 -0
- package/dist/tools/nest-ext-tools/scope.d.ts +19 -0
- package/dist/tools/nest-ext-tools/scope.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/scope.js +151 -0
- package/dist/tools/nest-ext-tools/scope.js.map +1 -0
- package/dist/tools/nest-ext-tools/shared.d.ts +33 -0
- package/dist/tools/nest-ext-tools/shared.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/shared.js +279 -0
- package/dist/tools/nest-ext-tools/shared.js.map +1 -0
- package/dist/tools/nest-ext-tools/typeorm.d.ts +22 -0
- package/dist/tools/nest-ext-tools/typeorm.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/typeorm.js +59 -0
- package/dist/tools/nest-ext-tools/typeorm.js.map +1 -0
- package/dist/tools/nest-ext-tools/websocket.d.ts +21 -0
- package/dist/tools/nest-ext-tools/websocket.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/websocket.js +70 -0
- package/dist/tools/nest-ext-tools/websocket.js.map +1 -0
- package/dist/tools/nest-ext-tools.d.ts +10 -204
- package/dist/tools/nest-ext-tools.d.ts.map +1 -1
- package/dist/tools/nest-ext-tools.js +10 -749
- package/dist/tools/nest-ext-tools.js.map +1 -1
- package/dist/tools/perf-tools.js +2 -2
- package/dist/tools/plan-turn/stale-index.d.ts +32 -0
- package/dist/tools/plan-turn/stale-index.d.ts.map +1 -1
- package/dist/tools/plan-turn/stale-index.js +42 -5
- package/dist/tools/plan-turn/stale-index.js.map +1 -1
- package/dist/tools/python-audit/checks/dead-code.d.ts +1 -1
- package/dist/tools/python-audit/checks/dead-code.d.ts.map +1 -1
- package/dist/tools/python-constants/constant-match.d.ts +5 -0
- package/dist/tools/python-constants/constant-match.d.ts.map +1 -0
- package/dist/tools/python-constants/constant-match.js +24 -0
- package/dist/tools/python-constants/constant-match.js.map +1 -0
- package/dist/tools/python-constants/file-context.d.ts +5 -0
- package/dist/tools/python-constants/file-context.d.ts.map +1 -0
- package/dist/tools/python-constants/file-context.js +91 -0
- package/dist/tools/python-constants/file-context.js.map +1 -0
- package/dist/tools/python-constants/function-defaults.d.ts +5 -0
- package/dist/tools/python-constants/function-defaults.d.ts.map +1 -0
- package/dist/tools/python-constants/function-defaults.js +98 -0
- package/dist/tools/python-constants/function-defaults.js.map +1 -0
- package/dist/tools/python-constants/model.d.ts +78 -0
- package/dist/tools/python-constants/model.d.ts.map +1 -0
- package/dist/tools/python-constants/model.js +2 -0
- package/dist/tools/python-constants/model.js.map +1 -0
- package/dist/tools/python-constants/syntax.d.ts +22 -0
- package/dist/tools/python-constants/syntax.d.ts.map +1 -0
- package/dist/tools/python-constants/syntax.js +93 -0
- package/dist/tools/python-constants/syntax.js.map +1 -0
- package/dist/tools/python-constants/value-resolver.d.ts +6 -0
- package/dist/tools/python-constants/value-resolver.d.ts.map +1 -0
- package/dist/tools/python-constants/value-resolver.js +320 -0
- package/dist/tools/python-constants/value-resolver.js.map +1 -0
- package/dist/tools/python-constants-tools.d.ts +3 -45
- package/dist/tools/python-constants-tools.d.ts.map +1 -1
- package/dist/tools/python-constants-tools.js +2 -505
- package/dist/tools/python-constants-tools.js.map +1 -1
- package/dist/tools/route-tools/django.d.ts +8 -0
- package/dist/tools/route-tools/django.d.ts.map +1 -0
- package/dist/tools/route-tools/django.js +52 -0
- package/dist/tools/route-tools/django.js.map +1 -0
- package/dist/tools/route-tools/express.d.ts +5 -0
- package/dist/tools/route-tools/express.d.ts.map +1 -0
- package/dist/tools/route-tools/express.js +33 -0
- package/dist/tools/route-tools/express.js.map +1 -0
- package/dist/tools/route-tools/file-sources.d.ts +7 -0
- package/dist/tools/route-tools/file-sources.d.ts.map +1 -0
- package/dist/tools/route-tools/file-sources.js +15 -0
- package/dist/tools/route-tools/file-sources.js.map +1 -0
- package/dist/tools/route-tools/handler-discovery.d.ts +4 -0
- package/dist/tools/route-tools/handler-discovery.d.ts.map +1 -0
- package/dist/tools/route-tools/handler-discovery.js +38 -0
- package/dist/tools/route-tools/handler-discovery.js.map +1 -0
- package/dist/tools/route-tools/hono.d.ts +5 -0
- package/dist/tools/route-tools/hono.d.ts.map +1 -0
- package/dist/tools/route-tools/hono.js +61 -0
- package/dist/tools/route-tools/hono.js.map +1 -0
- package/dist/tools/route-tools/ktor.d.ts +5 -0
- package/dist/tools/route-tools/ktor.d.ts.map +1 -0
- package/dist/tools/route-tools/ktor.js +76 -0
- package/dist/tools/route-tools/ktor.js.map +1 -0
- package/dist/tools/route-tools/laravel.d.ts +5 -0
- package/dist/tools/route-tools/laravel.d.ts.map +1 -0
- package/dist/tools/route-tools/laravel.js +45 -0
- package/dist/tools/route-tools/laravel.js.map +1 -0
- package/dist/tools/route-tools/mermaid-call-chain.d.ts +3 -0
- package/dist/tools/route-tools/mermaid-call-chain.d.ts.map +1 -0
- package/dist/tools/route-tools/mermaid-call-chain.js +50 -0
- package/dist/tools/route-tools/mermaid-call-chain.js.map +1 -0
- package/dist/tools/route-tools/nest.d.ts +5 -0
- package/dist/tools/route-tools/nest.d.ts.map +1 -0
- package/dist/tools/route-tools/nest.js +75 -0
- package/dist/tools/route-tools/nest.js.map +1 -0
- package/dist/tools/route-tools/next-trace.d.ts +4 -0
- package/dist/tools/route-tools/next-trace.d.ts.map +1 -0
- package/dist/tools/route-tools/next-trace.js +48 -0
- package/dist/tools/route-tools/next-trace.js.map +1 -0
- package/dist/tools/route-tools/next.d.ts +7 -0
- package/dist/tools/route-tools/next.d.ts.map +1 -0
- package/dist/tools/route-tools/next.js +77 -0
- package/dist/tools/route-tools/next.js.map +1 -0
- package/dist/tools/route-tools/python-decorators.d.ts +7 -0
- package/dist/tools/route-tools/python-decorators.d.ts.map +1 -0
- package/dist/tools/route-tools/python-decorators.js +53 -0
- package/dist/tools/route-tools/python-decorators.js.map +1 -0
- package/dist/tools/route-tools/route-mermaid.d.ts +4 -0
- package/dist/tools/route-tools/route-mermaid.d.ts.map +1 -0
- package/dist/tools/route-tools/route-mermaid.js +53 -0
- package/dist/tools/route-tools/route-mermaid.js.map +1 -0
- package/dist/tools/route-tools/spring-kotlin.d.ts +5 -0
- package/dist/tools/route-tools/spring-kotlin.d.ts.map +1 -0
- package/dist/tools/route-tools/spring-kotlin.js +52 -0
- package/dist/tools/route-tools/spring-kotlin.js.map +1 -0
- package/dist/tools/route-tools/trace-analysis.d.ts +4 -0
- package/dist/tools/route-tools/trace-analysis.d.ts.map +1 -0
- package/dist/tools/route-tools/trace-analysis.js +37 -0
- package/dist/tools/route-tools/trace-analysis.js.map +1 -0
- package/dist/tools/route-tools/trace-route.d.ts +6 -0
- package/dist/tools/route-tools/trace-route.d.ts.map +1 -0
- package/dist/tools/route-tools/trace-route.js +53 -0
- package/dist/tools/route-tools/trace-route.js.map +1 -0
- package/dist/tools/route-tools/types.d.ts +35 -0
- package/dist/tools/route-tools/types.d.ts.map +1 -0
- package/dist/tools/route-tools/types.js +2 -0
- package/dist/tools/route-tools/types.js.map +1 -0
- package/dist/tools/route-tools/yii2.d.ts +5 -0
- package/dist/tools/route-tools/yii2.d.ts.map +1 -0
- package/dist/tools/route-tools/yii2.js +73 -0
- package/dist/tools/route-tools/yii2.js.map +1 -0
- package/dist/tools/route-tools.d.ts +7 -49
- package/dist/tools/route-tools.d.ts.map +1 -1
- package/dist/tools/route-tools.js +5 -978
- package/dist/tools/route-tools.js.map +1 -1
- package/dist/tools/search-tools/types.d.ts +20 -0
- package/dist/tools/search-tools/types.d.ts.map +1 -1
- package/dist/tools/search-tools/zero-hit.d.ts.map +1 -1
- package/dist/tools/search-tools/zero-hit.js +0 -0
- package/dist/tools/search-tools/zero-hit.js.map +1 -1
- package/dist/tools/status-tools.d.ts +10 -0
- package/dist/tools/status-tools.d.ts.map +1 -1
- package/dist/tools/status-tools.js +14 -4
- package/dist/tools/status-tools.js.map +1 -1
- package/dist/tools/symbol-analysis-tools.d.ts +81 -0
- package/dist/tools/symbol-analysis-tools.d.ts.map +1 -0
- package/dist/tools/symbol-analysis-tools.js +327 -0
- package/dist/tools/symbol-analysis-tools.js.map +1 -0
- package/dist/tools/symbol-context-tools.d.ts +68 -0
- package/dist/tools/symbol-context-tools.d.ts.map +1 -0
- package/dist/tools/symbol-context-tools.js +232 -0
- package/dist/tools/symbol-context-tools.js.map +1 -0
- package/dist/tools/symbol-lookup-tools.d.ts +77 -0
- package/dist/tools/symbol-lookup-tools.d.ts.map +1 -0
- package/dist/tools/symbol-lookup-tools.js +305 -0
- package/dist/tools/symbol-lookup-tools.js.map +1 -0
- package/dist/tools/symbol-reference-tools.d.ts +38 -0
- package/dist/tools/symbol-reference-tools.d.ts.map +1 -0
- package/dist/tools/symbol-reference-tools.js +253 -0
- package/dist/tools/symbol-reference-tools.js.map +1 -0
- package/dist/tools/symbol-tool-internals.d.ts +9 -0
- package/dist/tools/symbol-tool-internals.d.ts.map +1 -0
- package/dist/tools/symbol-tool-internals.js +47 -0
- package/dist/tools/symbol-tool-internals.js.map +1 -0
- package/dist/tools/symbol-tools.d.ts +11 -176
- package/dist/tools/symbol-tools.d.ts.map +1 -1
- package/dist/tools/symbol-tools.js +7 -975
- package/dist/tools/symbol-tools.js.map +1 -1
- package/dist/tools/taint/python-context.d.ts +10 -0
- package/dist/tools/taint/python-context.d.ts.map +1 -0
- package/dist/tools/taint/python-context.js +150 -0
- package/dist/tools/taint/python-context.js.map +1 -0
- package/dist/tools/taint/taint-analyzer.d.ts +2 -0
- package/dist/tools/taint/taint-analyzer.d.ts.map +1 -0
- package/dist/tools/taint/taint-analyzer.js +2 -0
- package/dist/tools/taint/taint-analyzer.js.map +1 -0
- package/dist/tools/taint/taint-expression.d.ts +18 -0
- package/dist/tools/taint/taint-expression.d.ts.map +1 -0
- package/dist/tools/taint/taint-expression.js +265 -0
- package/dist/tools/taint/taint-expression.js.map +1 -0
- package/dist/tools/taint/taint-flow.d.ts +10 -0
- package/dist/tools/taint/taint-flow.d.ts.map +1 -0
- package/dist/tools/taint/taint-flow.js +178 -0
- package/dist/tools/taint/taint-flow.js.map +1 -0
- package/dist/tools/taint/taint-model.d.ts +113 -0
- package/dist/tools/taint/taint-model.d.ts.map +1 -0
- package/dist/tools/taint/taint-model.js +277 -0
- package/dist/tools/taint/taint-model.js.map +1 -0
- package/dist/tools/taint-tools.d.ts +2 -34
- package/dist/tools/taint-tools.d.ts.map +1 -1
- package/dist/tools/taint-tools.js +2 -852
- package/dist/tools/taint-tools.js.map +1 -1
- package/dist/tools/typescript-constants/file-context.d.ts +7 -0
- package/dist/tools/typescript-constants/file-context.d.ts.map +1 -0
- package/dist/tools/typescript-constants/file-context.js +219 -0
- package/dist/tools/typescript-constants/file-context.js.map +1 -0
- package/dist/tools/typescript-constants/symbol-resolver.d.ts +7 -0
- package/dist/tools/typescript-constants/symbol-resolver.d.ts.map +1 -0
- package/dist/tools/typescript-constants/symbol-resolver.js +165 -0
- package/dist/tools/typescript-constants/symbol-resolver.js.map +1 -0
- package/dist/tools/typescript-constants/types.d.ts +44 -0
- package/dist/tools/typescript-constants/types.d.ts.map +1 -0
- package/dist/tools/typescript-constants/types.js +2 -0
- package/dist/tools/typescript-constants/types.js.map +1 -0
- package/dist/tools/typescript-constants/value-evaluator.d.ts +8 -0
- package/dist/tools/typescript-constants/value-evaluator.d.ts.map +1 -0
- package/dist/tools/typescript-constants/value-evaluator.js +404 -0
- package/dist/tools/typescript-constants/value-evaluator.js.map +1 -0
- package/dist/tools/typescript-constants-tools.d.ts.map +1 -1
- package/dist/tools/typescript-constants-tools.js +19 -709
- package/dist/tools/typescript-constants-tools.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/git-head.d.ts +12 -0
- package/dist/utils/git-head.d.ts.map +1 -1
- package/dist/utils/git-head.js +25 -0
- package/dist/utils/git-head.js.map +1 -1
- package/dist/utils/import-graph/collect.d.ts +5 -0
- package/dist/utils/import-graph/collect.d.ts.map +1 -0
- package/dist/utils/import-graph/collect.js +47 -0
- package/dist/utils/import-graph/collect.js.map +1 -0
- package/dist/utils/import-graph/edge-accumulator.d.ts +7 -0
- package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -0
- package/dist/utils/import-graph/edge-accumulator.js +47 -0
- package/dist/utils/import-graph/edge-accumulator.js.map +1 -0
- package/dist/utils/import-graph/language-imports.d.ts +6 -0
- package/dist/utils/import-graph/language-imports.d.ts.map +1 -0
- package/dist/utils/import-graph/language-imports.js +84 -0
- package/dist/utils/import-graph/language-imports.js.map +1 -0
- package/dist/utils/import-graph/metrics.d.ts +6 -0
- package/dist/utils/import-graph/metrics.d.ts.map +1 -0
- package/dist/utils/import-graph/metrics.js +51 -0
- package/dist/utils/import-graph/metrics.js.map +1 -0
- package/dist/utils/import-graph/path-map.d.ts +7 -0
- package/dist/utils/import-graph/path-map.d.ts.map +1 -0
- package/dist/utils/import-graph/path-map.js +56 -0
- package/dist/utils/import-graph/path-map.js.map +1 -0
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts +5 -0
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -0
- package/dist/utils/import-graph/python-php-edge-collectors.js +56 -0
- package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -0
- package/dist/utils/import-graph/source-edge-collector.d.ts +13 -0
- package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -0
- package/dist/utils/import-graph/source-edge-collector.js +42 -0
- package/dist/utils/import-graph/source-edge-collector.js.map +1 -0
- package/dist/utils/import-graph/source-imports.d.ts +5 -0
- package/dist/utils/import-graph/source-imports.d.ts.map +1 -0
- package/dist/utils/import-graph/source-imports.js +33 -0
- package/dist/utils/import-graph/source-imports.js.map +1 -0
- package/dist/utils/import-graph/types.d.ts +15 -0
- package/dist/utils/import-graph/types.d.ts.map +1 -0
- package/dist/utils/import-graph/types.js +2 -0
- package/dist/utils/import-graph/types.js.map +1 -0
- package/dist/utils/import-graph/typescript-edge-collector.d.ts +7 -0
- package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -0
- package/dist/utils/import-graph/typescript-edge-collector.js +58 -0
- package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -0
- package/dist/utils/import-graph/workspace-alias.d.ts +7 -0
- package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -0
- package/dist/utils/import-graph/workspace-alias.js +95 -0
- package/dist/utils/import-graph/workspace-alias.js.map +1 -0
- package/dist/utils/import-graph/workspace-entry.d.ts +3 -0
- package/dist/utils/import-graph/workspace-entry.d.ts.map +1 -0
- package/dist/utils/import-graph/workspace-entry.js +81 -0
- package/dist/utils/import-graph/workspace-entry.js.map +1 -0
- package/dist/utils/import-graph.d.ts +10 -94
- package/dist/utils/import-graph.d.ts.map +1 -1
- package/dist/utils/import-graph.js +6 -702
- package/dist/utils/import-graph.js.map +1 -1
- package/package.json +6 -4
- package/rules/codesift.md +11 -2
- package/rules/codesift.mdc +11 -2
- package/rules/codex.md +11 -2
- package/rules/gemini.md +11 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-php-edge-collectors.js","sourceRoot":"","sources":["../../../src/utils/import-graph/python-php-edge-collectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CodeIndex } from "../../types.js";
|
|
2
|
+
import type { AddImportEdge, PythonImportContext } from "./types.js";
|
|
3
|
+
import { type WorkspaceAliasResolver } from "./workspace-alias.js";
|
|
4
|
+
export interface SourceEdgeContext {
|
|
5
|
+
index: CodeIndex;
|
|
6
|
+
normalizedPaths: Map<string, string>;
|
|
7
|
+
kotlinFilesByBasename: Map<string, string[]>;
|
|
8
|
+
workspaceResolver: WorkspaceAliasResolver;
|
|
9
|
+
python: PythonImportContext;
|
|
10
|
+
addEdge: AddImportEdge;
|
|
11
|
+
}
|
|
12
|
+
export declare function collectSourceEdges(filePath: string, source: string, context: SourceEdgeContext): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=source-edge-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-edge-collector.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;CACxB;AAwCD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { extractKotlinImports, resolveKotlinImport } from "./language-imports.js";
|
|
2
|
+
import { resolveImportPath } from "./path-map.js";
|
|
3
|
+
import { collectPhpEdges, collectPythonEdges } from "./python-php-edge-collectors.js";
|
|
4
|
+
import { extractBareImports, extractImports } from "./source-imports.js";
|
|
5
|
+
import { collectTypeScriptEdges } from "./typescript-edge-collector.js";
|
|
6
|
+
import { NULL_RESOLVER } from "./workspace-alias.js";
|
|
7
|
+
function collectRegexEdges(filePath, source, normalizedPaths, addEdge) {
|
|
8
|
+
for (const importPath of extractImports(source)) {
|
|
9
|
+
const targetFile = normalizedPaths.get(resolveImportPath(filePath, importPath));
|
|
10
|
+
if (targetFile)
|
|
11
|
+
addEdge(filePath, targetFile);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function collectWorkspaceEdges(filePath, source, resolver, addEdge) {
|
|
15
|
+
if (resolver === NULL_RESOLVER || !/\.(astro|ts|tsx|js|jsx|mjs|cjs)$/.test(filePath))
|
|
16
|
+
return;
|
|
17
|
+
for (const importPath of extractBareImports(source)) {
|
|
18
|
+
const targetFile = resolver.resolve(importPath, filePath);
|
|
19
|
+
if (targetFile)
|
|
20
|
+
addEdge(filePath, targetFile);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function collectKotlinEdges(filePath, source, filesByBasename, addEdge) {
|
|
24
|
+
if (!/\.kts?$/.test(filePath))
|
|
25
|
+
return;
|
|
26
|
+
for (const fqName of extractKotlinImports(source)) {
|
|
27
|
+
const targetFile = resolveKotlinImport(fqName, filesByBasename);
|
|
28
|
+
if (targetFile)
|
|
29
|
+
addEdge(filePath, targetFile);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function collectSourceEdges(filePath, source, context) {
|
|
33
|
+
const typescript = await collectTypeScriptEdges(context.index, filePath, source, context.normalizedPaths, context.addEdge);
|
|
34
|
+
if (!typescript.astHandled) {
|
|
35
|
+
collectRegexEdges(filePath, source, context.normalizedPaths, context.addEdge);
|
|
36
|
+
}
|
|
37
|
+
collectWorkspaceEdges(filePath, source, context.workspaceResolver, context.addEdge);
|
|
38
|
+
collectKotlinEdges(filePath, source, context.kotlinFilesByBasename, context.addEdge);
|
|
39
|
+
await collectPhpEdges(context.index, filePath, source, context.normalizedPaths, context.addEdge);
|
|
40
|
+
await collectPythonEdges(filePath, source, context.python, context.addEdge);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=source-edge-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-edge-collector.js","sourceRoot":"","sources":["../../../src/utils/import-graph/source-edge-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,aAAa,EAA+B,MAAM,sBAAsB,CAAC;AAWlF,SAAS,iBAAiB,CACxB,QAAgB,EAChB,MAAc,EACd,eAAoC,EACpC,OAAsB;IAEtB,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAChF,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,MAAc,EACd,QAAgC,EAChC,OAAsB;IAEtB,IAAI,QAAQ,KAAK,aAAa,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC7F,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,MAAc,EACd,eAAsC,EACtC,OAAsB;IAEtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IACtC,KAAK,MAAM,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,MAAc,EACd,OAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAC7C,OAAO,CAAC,KAAK,EACb,QAAQ,EACR,MAAM,EACN,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Extract relative import paths from a source string. */
|
|
2
|
+
export declare function extractImports(source: string): string[];
|
|
3
|
+
/** Extract bare-specifier imports for workspace and tsconfig resolution. */
|
|
4
|
+
export declare function extractBareImports(source: string): string[];
|
|
5
|
+
//# sourceMappingURL=source-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-imports.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/source-imports.ts"],"names":[],"mappings":"AAyBA,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const IMPORT_PATTERNS = [
|
|
2
|
+
/import\s+.*?\s+from\s+['"]([^'"]+)['"]/g,
|
|
3
|
+
/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
|
|
4
|
+
/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
|
|
5
|
+
/(?:require|include)(?:_once)?\s*\(?\s*(?:__DIR__\s*\.\s*)?['"](\.\.?\/[^'"]+\.php)['"]/g,
|
|
6
|
+
];
|
|
7
|
+
function collectImports(source, includeBare) {
|
|
8
|
+
const imports = new Set();
|
|
9
|
+
for (const pattern of IMPORT_PATTERNS) {
|
|
10
|
+
pattern.lastIndex = 0;
|
|
11
|
+
let match;
|
|
12
|
+
while ((match = pattern.exec(source)) !== null) {
|
|
13
|
+
const importPath = match[1];
|
|
14
|
+
if (!importPath)
|
|
15
|
+
continue;
|
|
16
|
+
const isRelative = importPath.startsWith(".");
|
|
17
|
+
if ((includeBare && !isRelative && !importPath.startsWith("/")) ||
|
|
18
|
+
(!includeBare && isRelative)) {
|
|
19
|
+
imports.add(importPath);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return [...imports];
|
|
24
|
+
}
|
|
25
|
+
/** Extract relative import paths from a source string. */
|
|
26
|
+
export function extractImports(source) {
|
|
27
|
+
return collectImports(source, false);
|
|
28
|
+
}
|
|
29
|
+
/** Extract bare-specifier imports for workspace and tsconfig resolution. */
|
|
30
|
+
export function extractBareImports(source) {
|
|
31
|
+
return collectImports(source, true);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=source-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-imports.js","sourceRoot":"","sources":["../../../src/utils/import-graph/source-imports.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG;IACtB,yCAAyC;IACzC,sCAAsC;IACtC,uCAAuC;IACvC,yFAAyF;CAC1F,CAAC;AAEF,SAAS,cAAc,CAAC,MAAc,EAAE,WAAoB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ImportEdge {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string;
|
|
4
|
+
type_only?: boolean;
|
|
5
|
+
star_import?: boolean;
|
|
6
|
+
raw?: string;
|
|
7
|
+
}
|
|
8
|
+
export type ImportEdgeExtras = Pick<ImportEdge, "type_only" | "star_import" | "raw">;
|
|
9
|
+
export type AddImportEdge = (from: string, to: string, extras?: ImportEdgeExtras) => void;
|
|
10
|
+
export interface PythonImportContext {
|
|
11
|
+
disabled: boolean;
|
|
12
|
+
indexedFiles: Set<string>;
|
|
13
|
+
srcLayout: string | null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;AAErF,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,gBAAgB,KACtB,IAAI,CAAC;AAEV,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/import-graph/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CodeIndex } from "../../types.js";
|
|
2
|
+
import type { AddImportEdge } from "./types.js";
|
|
3
|
+
export interface TsCollectionOutcome {
|
|
4
|
+
astHandled: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function collectTypeScriptEdges(index: CodeIndex, filePath: string, source: string, normalizedPaths: Map<string, string>, addEdge: AddImportEdge): Promise<TsCollectionOutcome>;
|
|
7
|
+
//# sourceMappingURL=typescript-edge-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-edge-collector.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/typescript-edge-collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;CACrB;AA6BD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,CAAC,CA6B9B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
2
|
+
import { getCachedParse, setCachedParse } from "../../parser/parse-cache.js";
|
|
3
|
+
import { getParser } from "../../parser/parser-manager.js";
|
|
4
|
+
import { extractTypeScriptImports } from "../ts-imports.js";
|
|
5
|
+
import { resolveTsAliasedImport } from "../tsconfig-paths.js";
|
|
6
|
+
import { resolveImportPath } from "./path-map.js";
|
|
7
|
+
function resolveRelativeImport(importerFile, importPath, normalizedPaths) {
|
|
8
|
+
let normalized = resolveImportPath(importerFile, importPath);
|
|
9
|
+
if (normalized.startsWith("./"))
|
|
10
|
+
normalized = normalized.slice(2);
|
|
11
|
+
return normalizedPaths.get(normalized) ?? null;
|
|
12
|
+
}
|
|
13
|
+
function resolveAliasedImport(index, importerFile, importPath, normalizedPaths) {
|
|
14
|
+
const aliased = resolveTsAliasedImport(join(index.root, importerFile), importPath, index.root);
|
|
15
|
+
if (!aliased)
|
|
16
|
+
return null;
|
|
17
|
+
const relativePath = relative(resolve(index.root), resolve(aliased));
|
|
18
|
+
const insideRoot = relativePath !== "" && !isAbsolute(relativePath) && !relativePath.startsWith("..");
|
|
19
|
+
if (!insideRoot)
|
|
20
|
+
return null;
|
|
21
|
+
const normalizedRelativePath = relativePath.split(sep).join("/");
|
|
22
|
+
const indexed = normalizedPaths.has(normalizedRelativePath.replace(/\.[^./]+$/, "")) ||
|
|
23
|
+
index.files.some((file) => file.path === normalizedRelativePath);
|
|
24
|
+
return indexed ? normalizedRelativePath : null;
|
|
25
|
+
}
|
|
26
|
+
export async function collectTypeScriptEdges(index, filePath, source, normalizedPaths, addEdge) {
|
|
27
|
+
if (!/\.tsx?$/.test(filePath))
|
|
28
|
+
return { astHandled: false };
|
|
29
|
+
try {
|
|
30
|
+
const language = filePath.endsWith(".tsx") ? "tsx" : "typescript";
|
|
31
|
+
const parser = await getParser(language);
|
|
32
|
+
if (!parser)
|
|
33
|
+
return { astHandled: false };
|
|
34
|
+
let tree = getCachedParse(language, source);
|
|
35
|
+
if (!tree) {
|
|
36
|
+
tree = parser.parse(source);
|
|
37
|
+
if (!tree) {
|
|
38
|
+
console.warn(`[import-graph] TS parser returned null for ${filePath}; falling back to regex`);
|
|
39
|
+
return { astHandled: false };
|
|
40
|
+
}
|
|
41
|
+
setCachedParse(language, source, tree);
|
|
42
|
+
}
|
|
43
|
+
for (const imported of extractTypeScriptImports(tree)) {
|
|
44
|
+
const resolved = imported.path.startsWith(".")
|
|
45
|
+
? resolveRelativeImport(filePath, imported.path, normalizedPaths)
|
|
46
|
+
: resolveAliasedImport(index, filePath, imported.path, normalizedPaths);
|
|
47
|
+
if (resolved)
|
|
48
|
+
addEdge(filePath, resolved, { type_only: imported.is_type_only });
|
|
49
|
+
}
|
|
50
|
+
return { astHandled: true };
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
54
|
+
console.warn(`[import-graph] TS AST extraction failed for ${filePath}; falling back to regex: ${message}`);
|
|
55
|
+
return { astHandled: false };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=typescript-edge-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-edge-collector.js","sourceRoot":"","sources":["../../../src/utils/import-graph/typescript-edge-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CodeIndex } from "../../types.js";
|
|
2
|
+
export interface WorkspaceAliasResolver {
|
|
3
|
+
resolve: (importPath: string, importerFile: string) => string | null;
|
|
4
|
+
}
|
|
5
|
+
export declare const NULL_RESOLVER: WorkspaceAliasResolver;
|
|
6
|
+
export declare function buildWorkspaceAliasResolver(index: CodeIndex): WorkspaceAliasResolver;
|
|
7
|
+
//# sourceMappingURL=workspace-alias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-alias.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,gBAAgB,CAAC;AAO3D,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAED,eAAO,MAAM,aAAa,EAAE,sBAAgD,CAAC;AAwE7E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,sBAAsB,CAiCpF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { buildNormalizedPathMap } from "./path-map.js";
|
|
2
|
+
import { relativeWorkspaceRoot, resolveWorkspaceEntry } from "./workspace-entry.js";
|
|
3
|
+
const INDEX_SUFFIXES = ["/index.ts", "/index.tsx", "/index.js", "/index.jsx"];
|
|
4
|
+
const WORKSPACE_SOURCE_EXTENSION = /\.(astro|ts|tsx|js|jsx|mjs|cjs)$/;
|
|
5
|
+
export const NULL_RESOLVER = { resolve: () => null };
|
|
6
|
+
function lookupFile(candidate, lookup) {
|
|
7
|
+
if (lookup.fileSet.has(candidate))
|
|
8
|
+
return candidate;
|
|
9
|
+
const normalized = lookup.normalizedPaths.get(candidate.replace(WORKSPACE_SOURCE_EXTENSION, ""));
|
|
10
|
+
if (normalized)
|
|
11
|
+
return normalized;
|
|
12
|
+
for (const suffix of INDEX_SUFFIXES) {
|
|
13
|
+
const indexedCandidate = candidate + suffix;
|
|
14
|
+
if (lookup.fileSet.has(indexedCandidate))
|
|
15
|
+
return indexedCandidate;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
function findOriginatingWorkspace(importerFile, workspacesByPath) {
|
|
20
|
+
for (const { rel, workspace } of workspacesByPath) {
|
|
21
|
+
if (rel === "" || importerFile === rel || importerFile.startsWith(rel + "/")) {
|
|
22
|
+
return workspace;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
function resolveWorkspaceSubpath(importPath, rootsByName, lookup) {
|
|
28
|
+
for (const [workspaceName, workspaceRoot] of rootsByName) {
|
|
29
|
+
if (!importPath.startsWith(workspaceName + "/"))
|
|
30
|
+
continue;
|
|
31
|
+
const subpath = importPath.slice(workspaceName.length + 1);
|
|
32
|
+
for (const candidate of [`${workspaceRoot}/${subpath}`, `${workspaceRoot}/src/${subpath}`]) {
|
|
33
|
+
const found = lookupFile(candidate, lookup);
|
|
34
|
+
if (found)
|
|
35
|
+
return found;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
function resolveTsconfigPath(importPath, importerFile, index, workspacesByPath, lookup) {
|
|
41
|
+
const workspace = findOriginatingWorkspace(importerFile, workspacesByPath);
|
|
42
|
+
if (!workspace)
|
|
43
|
+
return null;
|
|
44
|
+
const workspaceRoot = relativeWorkspaceRoot(workspace.root, index.root) ?? "";
|
|
45
|
+
for (const mapping of workspace.tsconfig_paths) {
|
|
46
|
+
const wildcard = mapping.from_pattern.endsWith("/*");
|
|
47
|
+
const prefix = wildcard ? mapping.from_pattern.slice(0, -1) : mapping.from_pattern;
|
|
48
|
+
if ((wildcard && !importPath.startsWith(prefix)) || (!wildcard && prefix !== importPath))
|
|
49
|
+
continue;
|
|
50
|
+
const captured = wildcard ? importPath.slice(prefix.length) : "";
|
|
51
|
+
for (const target of mapping.to_paths) {
|
|
52
|
+
const expanded = wildcard ? target.replaceAll("*", captured) : target;
|
|
53
|
+
for (const candidate of [expanded, ...(workspaceRoot ? [`${workspaceRoot}/${expanded}`] : [])]) {
|
|
54
|
+
const found = lookupFile(candidate, lookup);
|
|
55
|
+
if (found)
|
|
56
|
+
return found;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
export function buildWorkspaceAliasResolver(index) {
|
|
63
|
+
if (!index.workspaces || index.workspaces.length === 0)
|
|
64
|
+
return NULL_RESOLVER;
|
|
65
|
+
const lookup = {
|
|
66
|
+
fileSet: new Set(index.files.map((file) => file.path)),
|
|
67
|
+
normalizedPaths: buildNormalizedPathMap(index),
|
|
68
|
+
};
|
|
69
|
+
const rootsByName = new Map();
|
|
70
|
+
const entriesByName = new Map();
|
|
71
|
+
const workspacesByPath = [];
|
|
72
|
+
for (const workspace of index.workspaces) {
|
|
73
|
+
const rel = relativeWorkspaceRoot(workspace.root, index.root);
|
|
74
|
+
if (rel === null)
|
|
75
|
+
continue;
|
|
76
|
+
workspacesByPath.push({ rel, workspace });
|
|
77
|
+
if (workspace.name) {
|
|
78
|
+
rootsByName.set(workspace.name, rel);
|
|
79
|
+
entriesByName.set(workspace.name, resolveWorkspaceEntry(workspace.root, rel, lookup.fileSet, lookup.normalizedPaths));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
workspacesByPath.sort((left, right) => right.rel.length - left.rel.length);
|
|
83
|
+
return {
|
|
84
|
+
resolve: (importPath, importerFile) => {
|
|
85
|
+
const directEntry = entriesByName.get(importPath);
|
|
86
|
+
if (directEntry)
|
|
87
|
+
return directEntry;
|
|
88
|
+
const subpath = resolveWorkspaceSubpath(importPath, rootsByName, lookup);
|
|
89
|
+
if (subpath)
|
|
90
|
+
return subpath;
|
|
91
|
+
return resolveTsconfigPath(importPath, importerFile, index, workspacesByPath, lookup);
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=workspace-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-alias.js","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function relativeWorkspaceRoot(absPath: string, indexRoot: string): string | null;
|
|
2
|
+
export declare function resolveWorkspaceEntry(workspaceRoot: string, relativeRoot: string, fileSet: Set<string>, normalizedPaths: Map<string, string>): string | null;
|
|
3
|
+
//# sourceMappingURL=workspace-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-entry.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-entry.ts"],"names":[],"mappings":"AAoBA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvF;AAyCD,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,GAAG,IAAI,CAcf"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { isAbsolute, relative, sep } from "node:path";
|
|
3
|
+
const DEFAULT_WORKSPACE_ENTRIES = [
|
|
4
|
+
"src/index.ts", "src/index.tsx", "src/index.js",
|
|
5
|
+
"index.ts", "index.tsx", "index.js",
|
|
6
|
+
];
|
|
7
|
+
const WORKSPACE_SOURCE_EXTENSION = /\.(astro|ts|tsx|js|jsx|mjs|cjs)$/;
|
|
8
|
+
const RUNTIME_EXPORT_CONDITIONS = [
|
|
9
|
+
"import", "default", "require", "node",
|
|
10
|
+
];
|
|
11
|
+
export function relativeWorkspaceRoot(absPath, indexRoot) {
|
|
12
|
+
const rel = relative(indexRoot, absPath);
|
|
13
|
+
if (isAbsolute(rel) || rel === ".." || rel.startsWith(`..${sep}`)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return rel.replaceAll("\\", "/");
|
|
17
|
+
}
|
|
18
|
+
function readWorkspacePackageJson(absRoot) {
|
|
19
|
+
try {
|
|
20
|
+
return JSON.parse(readFileSync(`${absRoot}/package.json`, "utf-8"));
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function pickConditionalEntry(root, depth = 0) {
|
|
27
|
+
if (depth > 8 || Array.isArray(root))
|
|
28
|
+
return null;
|
|
29
|
+
if (typeof root === "string")
|
|
30
|
+
return root;
|
|
31
|
+
if (!root || typeof root !== "object")
|
|
32
|
+
return null;
|
|
33
|
+
const conditional = root;
|
|
34
|
+
for (const key of RUNTIME_EXPORT_CONDITIONS) {
|
|
35
|
+
const entry = pickConditionalEntry(conditional[key], depth + 1);
|
|
36
|
+
if (entry)
|
|
37
|
+
return entry;
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
function pickEntry(pkg) {
|
|
42
|
+
if (!pkg)
|
|
43
|
+
return undefined;
|
|
44
|
+
if (typeof pkg.source === "string")
|
|
45
|
+
return pkg.source;
|
|
46
|
+
if (typeof pkg.exports === "string") {
|
|
47
|
+
return pkg.exports.trim() ? pkg.exports : null;
|
|
48
|
+
}
|
|
49
|
+
if (pkg.exports && typeof pkg.exports === "object") {
|
|
50
|
+
const exportsMap = pkg.exports;
|
|
51
|
+
const rootExport = exportsMap["."]
|
|
52
|
+
?? (Object.keys(exportsMap).some((key) => key.startsWith(".")) ? null : exportsMap);
|
|
53
|
+
const exportedEntry = pickConditionalEntry(rootExport);
|
|
54
|
+
if (exportedEntry)
|
|
55
|
+
return exportedEntry;
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (typeof pkg.module === "string")
|
|
59
|
+
return pkg.module;
|
|
60
|
+
if (typeof pkg.main === "string")
|
|
61
|
+
return pkg.main;
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
export function resolveWorkspaceEntry(workspaceRoot, relativeRoot, fileSet, normalizedPaths) {
|
|
65
|
+
const configuredEntry = pickEntry(readWorkspacePackageJson(workspaceRoot));
|
|
66
|
+
if (configuredEntry === null)
|
|
67
|
+
return null;
|
|
68
|
+
const relativeEntries = configuredEntry
|
|
69
|
+
? [configuredEntry.replace(/^\.?\/+/, ""), ...DEFAULT_WORKSPACE_ENTRIES]
|
|
70
|
+
: [...DEFAULT_WORKSPACE_ENTRIES];
|
|
71
|
+
for (const entry of relativeEntries) {
|
|
72
|
+
const candidate = relativeRoot ? `${relativeRoot}/${entry}` : entry;
|
|
73
|
+
if (fileSet.has(candidate))
|
|
74
|
+
return candidate;
|
|
75
|
+
const normalized = normalizedPaths.get(candidate.replace(WORKSPACE_SOURCE_EXTENSION, ""));
|
|
76
|
+
if (normalized)
|
|
77
|
+
return normalized;
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=workspace-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-entry.js","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,98 +1,14 @@
|
|
|
1
|
-
import type { CodeIndex } from "../types.js";
|
|
2
|
-
export interface ImportEdge {
|
|
3
|
-
from: string;
|
|
4
|
-
to: string;
|
|
5
|
-
type_only?: boolean;
|
|
6
|
-
star_import?: boolean;
|
|
7
|
-
raw?: string;
|
|
8
|
-
}
|
|
9
1
|
/**
|
|
10
|
-
*
|
|
11
|
-
* Returns relative paths only (skips node_modules / bare specifiers).
|
|
12
|
-
*/
|
|
13
|
-
export declare function extractImports(source: string): string[];
|
|
14
|
-
/**
|
|
15
|
-
* Extract bare-specifier imports (e.g. `@org/shared`, `@/utils`).
|
|
16
|
-
* Only used by the workspace-alias / tsconfig-paths resolvers when
|
|
17
|
-
* `index.workspaces` is present. Skips relative paths and skips imports
|
|
18
|
-
* that look like absolute file URLs.
|
|
19
|
-
*
|
|
20
|
-
* Task 6 of monorepo workspace intelligence plan.
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractBareImports(source: string): string[];
|
|
23
|
-
/**
|
|
24
|
-
* Normalize an import path relative to the importing file.
|
|
25
|
-
* Resolves "./foo" and "../bar" relative to the importer's directory.
|
|
26
|
-
*/
|
|
27
|
-
export declare function resolveImportPath(importerFile: string, importPath: string): string;
|
|
28
|
-
/**
|
|
29
|
-
* Extract PHP `use` statements (FQCN imports).
|
|
30
|
-
* Returns fully-qualified class/namespace names without the leading backslash.
|
|
31
|
-
* These are NOT file paths — they require PSR-4 resolution against composer.json.
|
|
32
|
-
*
|
|
33
|
-
* Handles both single-FQCN and grouped forms:
|
|
34
|
-
* `use App\Models\User;`
|
|
35
|
-
* `use App\Models\User as U;`
|
|
36
|
-
* `use App\Models\{User, Post, Comment};`
|
|
37
|
-
* `use App\{Models\User, Services\Auth as A};`
|
|
38
|
-
*/
|
|
39
|
-
export declare function extractPhpUseStatements(source: string): string[];
|
|
40
|
-
/**
|
|
41
|
-
* Extract Kotlin `import` statements (fully-qualified names).
|
|
42
|
-
* Returns dot-separated package + class names. Wildcards (`com.example.*`) are
|
|
43
|
-
* preserved as-is. These are NOT file paths — they require heuristic resolution
|
|
44
|
-
* against the source root (usually `src/main/kotlin`, `src/commonMain/kotlin`, etc.).
|
|
45
|
-
*/
|
|
46
|
-
export declare function extractKotlinImports(source: string): string[];
|
|
47
|
-
/**
|
|
48
|
-
* Heuristically resolve a Kotlin fully-qualified import to an indexed file.
|
|
49
|
-
* Strategy: match the last segment of the FQN (the simple class name) against
|
|
50
|
-
* file basenames. For `com.example.service.UserService`, tries to find a file
|
|
51
|
-
* whose basename (without .kt/.kts) is `UserService` AND whose path contains
|
|
52
|
-
* the package path `com/example/service`.
|
|
2
|
+
* Stable public facade for import-graph utilities.
|
|
53
3
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* Limitations: single-repo heuristic. Doesn't handle wildcard imports
|
|
57
|
-
* (`com.example.*`) or multi-module setups with complex source roots.
|
|
58
|
-
*/
|
|
59
|
-
export declare function resolveKotlinImport(fqName: string, kotlinFilesByBasename: Map<string, string[]>): string | null;
|
|
60
|
-
/**
|
|
61
|
-
* Build a lookup map from Kotlin file basenames (without extension) to file paths.
|
|
62
|
-
* Used by resolveKotlinImport for heuristic FQN resolution.
|
|
63
|
-
*/
|
|
64
|
-
export declare function buildKotlinFilesByBasename(index: CodeIndex): Map<string, string[]>;
|
|
65
|
-
interface WorkspaceAliasResolver {
|
|
66
|
-
resolve: (importPath: string, importerFile: string) => string | null;
|
|
67
|
-
}
|
|
68
|
-
/** Build a workspace-alias resolver for the given index. Reads each
|
|
69
|
-
* workspace's package.json once at construction time to discover entry
|
|
70
|
-
* points; never reads disk afterwards. Returns a no-op resolver on flat
|
|
71
|
-
* repos. */
|
|
72
|
-
export declare function buildWorkspaceAliasResolver(index: CodeIndex): WorkspaceAliasResolver;
|
|
73
|
-
/**
|
|
74
|
-
* Build normalized path map for matching imports to indexed files.
|
|
75
|
-
*/
|
|
76
|
-
export declare function buildNormalizedPathMap(index: CodeIndex): Map<string, string>;
|
|
77
|
-
/**
|
|
78
|
-
* Collect all import edges between files in the index.
|
|
79
|
-
* Reads file source from disk to extract import statements.
|
|
80
|
-
* Handles JS/TS/PHP relative imports AND Kotlin fully-qualified imports
|
|
81
|
-
* (via heuristic basename + package-path matching).
|
|
82
|
-
*/
|
|
83
|
-
export declare function collectImportEdges(index: CodeIndex, fileFilter?: Set<string>): Promise<ImportEdge[]>;
|
|
84
|
-
/**
|
|
85
|
-
* Compute file-level PageRank from import edges.
|
|
86
|
-
*
|
|
87
|
-
* Returns a Map of file path → PageRank score (sums to ~1). Isolated nodes
|
|
88
|
-
* (files with neither incoming nor outgoing edges) are pre-filtered. On
|
|
89
|
-
* empty input or a graphology/pagerank failure, returns an empty Map.
|
|
90
|
-
* Used by wiki-hub-ranker (spec D4 Layer 2).
|
|
91
|
-
*/
|
|
92
|
-
export declare function buildFilePageRank(edges: ImportEdge[]): Map<string, number>;
|
|
93
|
-
/**
|
|
94
|
-
* Build adjacency lists (bidirectional) from import edges.
|
|
4
|
+
* Keep consumers on this module while implementations remain split by
|
|
5
|
+
* responsibility under ./import-graph/.
|
|
95
6
|
*/
|
|
96
|
-
export
|
|
97
|
-
export {};
|
|
7
|
+
export type { ImportEdge } from "./import-graph/types.js";
|
|
8
|
+
export { extractImports, extractBareImports } from "./import-graph/source-imports.js";
|
|
9
|
+
export { buildNormalizedPathMap, resolveImportPath } from "./import-graph/path-map.js";
|
|
10
|
+
export { buildKotlinFilesByBasename, extractKotlinImports, extractPhpUseStatements, resolveKotlinImport, } from "./import-graph/language-imports.js";
|
|
11
|
+
export { buildWorkspaceAliasResolver } from "./import-graph/workspace-alias.js";
|
|
12
|
+
export { collectImportEdges } from "./import-graph/collect.js";
|
|
13
|
+
export { buildFilePageRank, buildImportAdjacency } from "./import-graph/metrics.js";
|
|
98
14
|
//# sourceMappingURL=import-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-graph.d.ts","sourceRoot":"","sources":["../../src/utils/import-graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"import-graph.d.ts","sourceRoot":"","sources":["../../src/utils/import-graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|