@opencodehub/ingestion 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +69 -0
- package/dist/extract/index.d.ts +8 -0
- package/dist/extract/index.d.ts.map +1 -0
- package/dist/extract/index.js +6 -0
- package/dist/extract/index.js.map +1 -0
- package/dist/extract/orm-detector.d.ts +19 -0
- package/dist/extract/orm-detector.d.ts.map +1 -0
- package/dist/extract/orm-detector.js +209 -0
- package/dist/extract/orm-detector.js.map +1 -0
- package/dist/extract/property-access.d.ts +76 -0
- package/dist/extract/property-access.d.ts.map +1 -0
- package/dist/extract/property-access.js +260 -0
- package/dist/extract/property-access.js.map +1 -0
- package/dist/extract/receiver-resolver.d.ts +86 -0
- package/dist/extract/receiver-resolver.d.ts.map +1 -0
- package/dist/extract/receiver-resolver.js +77 -0
- package/dist/extract/receiver-resolver.js.map +1 -0
- package/dist/extract/route-detector-java.d.ts +29 -0
- package/dist/extract/route-detector-java.d.ts.map +1 -0
- package/dist/extract/route-detector-java.js +190 -0
- package/dist/extract/route-detector-java.js.map +1 -0
- package/dist/extract/route-detector-nestjs.d.ts +30 -0
- package/dist/extract/route-detector-nestjs.d.ts.map +1 -0
- package/dist/extract/route-detector-nestjs.js +134 -0
- package/dist/extract/route-detector-nestjs.js.map +1 -0
- package/dist/extract/route-detector-python.d.ts +28 -0
- package/dist/extract/route-detector-python.d.ts.map +1 -0
- package/dist/extract/route-detector-python.js +100 -0
- package/dist/extract/route-detector-python.js.map +1 -0
- package/dist/extract/route-detector-rails.d.ts +28 -0
- package/dist/extract/route-detector-rails.d.ts.map +1 -0
- package/dist/extract/route-detector-rails.js +162 -0
- package/dist/extract/route-detector-rails.js.map +1 -0
- package/dist/extract/route-detector.d.ts +45 -0
- package/dist/extract/route-detector.d.ts.map +1 -0
- package/dist/extract/route-detector.js +467 -0
- package/dist/extract/route-detector.js.map +1 -0
- package/dist/extract/tool-detector.d.ts +26 -0
- package/dist/extract/tool-detector.d.ts.map +1 -0
- package/dist/extract/tool-detector.js +364 -0
- package/dist/extract/tool-detector.js.map +1 -0
- package/dist/extract/types.d.ts +89 -0
- package/dist/extract/types.d.ts.map +1 -0
- package/dist/extract/types.js +11 -0
- package/dist/extract/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/parse/cobol-regex.d.ts +85 -0
- package/dist/parse/cobol-regex.d.ts.map +1 -0
- package/dist/parse/cobol-regex.js +355 -0
- package/dist/parse/cobol-regex.js.map +1 -0
- package/dist/parse/grammar-registry.d.ts +115 -0
- package/dist/parse/grammar-registry.d.ts.map +1 -0
- package/dist/parse/grammar-registry.js +278 -0
- package/dist/parse/grammar-registry.js.map +1 -0
- package/dist/parse/index.d.ts +14 -0
- package/dist/parse/index.d.ts.map +1 -0
- package/dist/parse/index.js +10 -0
- package/dist/parse/index.js.map +1 -0
- package/dist/parse/language-detector.d.ts +17 -0
- package/dist/parse/language-detector.d.ts.map +1 -0
- package/dist/parse/language-detector.js +104 -0
- package/dist/parse/language-detector.js.map +1 -0
- package/dist/parse/parse-worker.d.ts +24 -0
- package/dist/parse/parse-worker.d.ts.map +1 -0
- package/dist/parse/parse-worker.js +230 -0
- package/dist/parse/parse-worker.js.map +1 -0
- package/dist/parse/types.d.ts +49 -0
- package/dist/parse/types.d.ts.map +1 -0
- package/dist/parse/types.js +11 -0
- package/dist/parse/types.js.map +1 -0
- package/dist/parse/unified-queries.d.ts +37 -0
- package/dist/parse/unified-queries.d.ts.map +1 -0
- package/dist/parse/unified-queries.js +623 -0
- package/dist/parse/unified-queries.js.map +1 -0
- package/dist/parse/wasm-fallback.d.ts +88 -0
- package/dist/parse/wasm-fallback.d.ts.map +1 -0
- package/dist/parse/wasm-fallback.js +258 -0
- package/dist/parse/wasm-fallback.js.map +1 -0
- package/dist/parse/worker-pool.d.ts +48 -0
- package/dist/parse/worker-pool.d.ts.map +1 -0
- package/dist/parse/worker-pool.js +97 -0
- package/dist/parse/worker-pool.js.map +1 -0
- package/dist/pipeline/dep-parsers/go.d.ts +25 -0
- package/dist/pipeline/dep-parsers/go.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/go.js +146 -0
- package/dist/pipeline/dep-parsers/go.js.map +1 -0
- package/dist/pipeline/dep-parsers/index.d.ts +17 -0
- package/dist/pipeline/dep-parsers/index.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/index.js +16 -0
- package/dist/pipeline/dep-parsers/index.js.map +1 -0
- package/dist/pipeline/dep-parsers/maven.d.ts +24 -0
- package/dist/pipeline/dep-parsers/maven.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/maven.js +131 -0
- package/dist/pipeline/dep-parsers/maven.js.map +1 -0
- package/dist/pipeline/dep-parsers/npm.d.ts +30 -0
- package/dist/pipeline/dep-parsers/npm.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/npm.js +309 -0
- package/dist/pipeline/dep-parsers/npm.js.map +1 -0
- package/dist/pipeline/dep-parsers/nuget.d.ts +24 -0
- package/dist/pipeline/dep-parsers/nuget.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/nuget.js +178 -0
- package/dist/pipeline/dep-parsers/nuget.js.map +1 -0
- package/dist/pipeline/dep-parsers/python.d.ts +21 -0
- package/dist/pipeline/dep-parsers/python.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/python.js +369 -0
- package/dist/pipeline/dep-parsers/python.js.map +1 -0
- package/dist/pipeline/dep-parsers/rust.d.ts +18 -0
- package/dist/pipeline/dep-parsers/rust.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/rust.js +134 -0
- package/dist/pipeline/dep-parsers/rust.js.map +1 -0
- package/dist/pipeline/dep-parsers/spdx-normalize.d.ts +15 -0
- package/dist/pipeline/dep-parsers/spdx-normalize.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/spdx-normalize.js +31 -0
- package/dist/pipeline/dep-parsers/spdx-normalize.js.map +1 -0
- package/dist/pipeline/dep-parsers/types.d.ts +63 -0
- package/dist/pipeline/dep-parsers/types.d.ts.map +1 -0
- package/dist/pipeline/dep-parsers/types.js +56 -0
- package/dist/pipeline/dep-parsers/types.js.map +1 -0
- package/dist/pipeline/gitignore-stack.d.ts +44 -0
- package/dist/pipeline/gitignore-stack.d.ts.map +1 -0
- package/dist/pipeline/gitignore-stack.js +69 -0
- package/dist/pipeline/gitignore-stack.js.map +1 -0
- package/dist/pipeline/gitignore.d.ts +67 -0
- package/dist/pipeline/gitignore.d.ts.map +1 -0
- package/dist/pipeline/gitignore.js +210 -0
- package/dist/pipeline/gitignore.js.map +1 -0
- package/dist/pipeline/index.d.ts +53 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +29 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/orchestrator.d.ts +105 -0
- package/dist/pipeline/orchestrator.d.ts.map +1 -0
- package/dist/pipeline/orchestrator.js +175 -0
- package/dist/pipeline/orchestrator.js.map +1 -0
- package/dist/pipeline/ownership-helpers/drift.d.ts +41 -0
- package/dist/pipeline/ownership-helpers/drift.d.ts.map +1 -0
- package/dist/pipeline/ownership-helpers/drift.js +122 -0
- package/dist/pipeline/ownership-helpers/drift.js.map +1 -0
- package/dist/pipeline/ownership-helpers/gini-community.d.ts +24 -0
- package/dist/pipeline/ownership-helpers/gini-community.d.ts.map +1 -0
- package/dist/pipeline/ownership-helpers/gini-community.js +32 -0
- package/dist/pipeline/ownership-helpers/gini-community.js.map +1 -0
- package/dist/pipeline/ownership-helpers/git-blame-batcher.d.ts +71 -0
- package/dist/pipeline/ownership-helpers/git-blame-batcher.d.ts.map +1 -0
- package/dist/pipeline/ownership-helpers/git-blame-batcher.js +178 -0
- package/dist/pipeline/ownership-helpers/git-blame-batcher.js.map +1 -0
- package/dist/pipeline/ownership-helpers/line-overlap.d.ts +35 -0
- package/dist/pipeline/ownership-helpers/line-overlap.d.ts.map +1 -0
- package/dist/pipeline/ownership-helpers/line-overlap.js +62 -0
- package/dist/pipeline/ownership-helpers/line-overlap.js.map +1 -0
- package/dist/pipeline/ownership-helpers/orphan.d.ts +73 -0
- package/dist/pipeline/ownership-helpers/orphan.d.ts.map +1 -0
- package/dist/pipeline/ownership-helpers/orphan.js +117 -0
- package/dist/pipeline/ownership-helpers/orphan.js.map +1 -0
- package/dist/pipeline/phases/accesses.d.ts +44 -0
- package/dist/pipeline/phases/accesses.d.ts.map +1 -0
- package/dist/pipeline/phases/accesses.js +194 -0
- package/dist/pipeline/phases/accesses.js.map +1 -0
- package/dist/pipeline/phases/annotate.d.ts +28 -0
- package/dist/pipeline/phases/annotate.d.ts.map +1 -0
- package/dist/pipeline/phases/annotate.js +60 -0
- package/dist/pipeline/phases/annotate.js.map +1 -0
- package/dist/pipeline/phases/cochange.d.ts +42 -0
- package/dist/pipeline/phases/cochange.d.ts.map +1 -0
- package/dist/pipeline/phases/cochange.js +0 -0
- package/dist/pipeline/phases/cochange.js.map +1 -0
- package/dist/pipeline/phases/communities.d.ts +34 -0
- package/dist/pipeline/phases/communities.d.ts.map +1 -0
- package/dist/pipeline/phases/communities.js +412 -0
- package/dist/pipeline/phases/communities.js.map +1 -0
- package/dist/pipeline/phases/complexity.d.ts +50 -0
- package/dist/pipeline/phases/complexity.d.ts.map +1 -0
- package/dist/pipeline/phases/complexity.js +794 -0
- package/dist/pipeline/phases/complexity.js.map +1 -0
- package/dist/pipeline/phases/confidence-demote.d.ts +23 -0
- package/dist/pipeline/phases/confidence-demote.d.ts.map +1 -0
- package/dist/pipeline/phases/confidence-demote.js +113 -0
- package/dist/pipeline/phases/confidence-demote.js.map +1 -0
- package/dist/pipeline/phases/content-cache.d.ts +166 -0
- package/dist/pipeline/phases/content-cache.d.ts.map +1 -0
- package/dist/pipeline/phases/content-cache.js +323 -0
- package/dist/pipeline/phases/content-cache.js.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/cobertura.d.ts +25 -0
- package/dist/pipeline/phases/coverage-parsers/cobertura.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/cobertura.js +139 -0
- package/dist/pipeline/phases/coverage-parsers/cobertura.js.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/coverage-py.d.ts +25 -0
- package/dist/pipeline/phases/coverage-parsers/coverage-py.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/coverage-py.js +51 -0
- package/dist/pipeline/phases/coverage-parsers/coverage-py.js.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/jacoco.d.ts +32 -0
- package/dist/pipeline/phases/coverage-parsers/jacoco.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/jacoco.js +98 -0
- package/dist/pipeline/phases/coverage-parsers/jacoco.js.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/lcov.d.ts +21 -0
- package/dist/pipeline/phases/coverage-parsers/lcov.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/lcov.js +104 -0
- package/dist/pipeline/phases/coverage-parsers/lcov.js.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/types.d.ts +27 -0
- package/dist/pipeline/phases/coverage-parsers/types.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage-parsers/types.js +39 -0
- package/dist/pipeline/phases/coverage-parsers/types.js.map +1 -0
- package/dist/pipeline/phases/coverage.d.ts +39 -0
- package/dist/pipeline/phases/coverage.d.ts.map +1 -0
- package/dist/pipeline/phases/coverage.js +154 -0
- package/dist/pipeline/phases/coverage.js.map +1 -0
- package/dist/pipeline/phases/cross-file.d.ts +40 -0
- package/dist/pipeline/phases/cross-file.d.ts.map +1 -0
- package/dist/pipeline/phases/cross-file.js +411 -0
- package/dist/pipeline/phases/cross-file.js.map +1 -0
- package/dist/pipeline/phases/dead-code.d.ts +28 -0
- package/dist/pipeline/phases/dead-code.d.ts.map +1 -0
- package/dist/pipeline/phases/dead-code.js +157 -0
- package/dist/pipeline/phases/dead-code.js.map +1 -0
- package/dist/pipeline/phases/default-set.d.ts +24 -0
- package/dist/pipeline/phases/default-set.d.ts.map +1 -0
- package/dist/pipeline/phases/default-set.js +133 -0
- package/dist/pipeline/phases/default-set.js.map +1 -0
- package/dist/pipeline/phases/dependencies.d.ts +59 -0
- package/dist/pipeline/phases/dependencies.d.ts.map +1 -0
- package/dist/pipeline/phases/dependencies.js +281 -0
- package/dist/pipeline/phases/dependencies.js.map +1 -0
- package/dist/pipeline/phases/embedder-pool.d.ts +31 -0
- package/dist/pipeline/phases/embedder-pool.d.ts.map +1 -0
- package/dist/pipeline/phases/embedder-pool.js +79 -0
- package/dist/pipeline/phases/embedder-pool.js.map +1 -0
- package/dist/pipeline/phases/embedder-worker.d.ts +28 -0
- package/dist/pipeline/phases/embedder-worker.d.ts.map +1 -0
- package/dist/pipeline/phases/embedder-worker.js +43 -0
- package/dist/pipeline/phases/embedder-worker.js.map +1 -0
- package/dist/pipeline/phases/embeddings.d.ts +117 -0
- package/dist/pipeline/phases/embeddings.d.ts.map +1 -0
- package/dist/pipeline/phases/embeddings.js +697 -0
- package/dist/pipeline/phases/embeddings.js.map +1 -0
- package/dist/pipeline/phases/fetches.d.ts +47 -0
- package/dist/pipeline/phases/fetches.d.ts.map +1 -0
- package/dist/pipeline/phases/fetches.js +207 -0
- package/dist/pipeline/phases/fetches.js.map +1 -0
- package/dist/pipeline/phases/incremental-helper.d.ts +96 -0
- package/dist/pipeline/phases/incremental-helper.d.ts.map +1 -0
- package/dist/pipeline/phases/incremental-helper.js +125 -0
- package/dist/pipeline/phases/incremental-helper.js.map +1 -0
- package/dist/pipeline/phases/incremental-scope.d.ts +67 -0
- package/dist/pipeline/phases/incremental-scope.d.ts.map +1 -0
- package/dist/pipeline/phases/incremental-scope.js +225 -0
- package/dist/pipeline/phases/incremental-scope.js.map +1 -0
- package/dist/pipeline/phases/markdown.d.ts +29 -0
- package/dist/pipeline/phases/markdown.d.ts.map +1 -0
- package/dist/pipeline/phases/markdown.js +298 -0
- package/dist/pipeline/phases/markdown.js.map +1 -0
- package/dist/pipeline/phases/mro.d.ts +24 -0
- package/dist/pipeline/phases/mro.d.ts.map +1 -0
- package/dist/pipeline/phases/mro.js +303 -0
- package/dist/pipeline/phases/mro.js.map +1 -0
- package/dist/pipeline/phases/openapi.d.ts +52 -0
- package/dist/pipeline/phases/openapi.d.ts.map +1 -0
- package/dist/pipeline/phases/openapi.js +285 -0
- package/dist/pipeline/phases/openapi.js.map +1 -0
- package/dist/pipeline/phases/orm.d.ts +26 -0
- package/dist/pipeline/phases/orm.d.ts.map +1 -0
- package/dist/pipeline/phases/orm.js +183 -0
- package/dist/pipeline/phases/orm.js.map +1 -0
- package/dist/pipeline/phases/ownership.d.ts +88 -0
- package/dist/pipeline/phases/ownership.d.ts.map +1 -0
- package/dist/pipeline/phases/ownership.js +479 -0
- package/dist/pipeline/phases/ownership.js.map +1 -0
- package/dist/pipeline/phases/parse.d.ts +63 -0
- package/dist/pipeline/phases/parse.d.ts.map +1 -0
- package/dist/pipeline/phases/parse.js +994 -0
- package/dist/pipeline/phases/parse.js.map +1 -0
- package/dist/pipeline/phases/processes.d.ts +47 -0
- package/dist/pipeline/phases/processes.d.ts.map +1 -0
- package/dist/pipeline/phases/processes.js +620 -0
- package/dist/pipeline/phases/processes.js.map +1 -0
- package/dist/pipeline/phases/profile.d.ts +33 -0
- package/dist/pipeline/phases/profile.d.ts.map +1 -0
- package/dist/pipeline/phases/profile.js +91 -0
- package/dist/pipeline/phases/profile.js.map +1 -0
- package/dist/pipeline/phases/repo-node.d.ts +112 -0
- package/dist/pipeline/phases/repo-node.d.ts.map +1 -0
- package/dist/pipeline/phases/repo-node.js +272 -0
- package/dist/pipeline/phases/repo-node.js.map +1 -0
- package/dist/pipeline/phases/risk-snapshot.d.ts +34 -0
- package/dist/pipeline/phases/risk-snapshot.d.ts.map +1 -0
- package/dist/pipeline/phases/risk-snapshot.js +63 -0
- package/dist/pipeline/phases/risk-snapshot.js.map +1 -0
- package/dist/pipeline/phases/routes.d.ts +31 -0
- package/dist/pipeline/phases/routes.d.ts.map +1 -0
- package/dist/pipeline/phases/routes.js +262 -0
- package/dist/pipeline/phases/routes.js.map +1 -0
- package/dist/pipeline/phases/sbom.d.ts +45 -0
- package/dist/pipeline/phases/sbom.d.ts.map +1 -0
- package/dist/pipeline/phases/sbom.js +289 -0
- package/dist/pipeline/phases/sbom.js.map +1 -0
- package/dist/pipeline/phases/scan.d.ts +54 -0
- package/dist/pipeline/phases/scan.d.ts.map +1 -0
- package/dist/pipeline/phases/scan.js +340 -0
- package/dist/pipeline/phases/scan.js.map +1 -0
- package/dist/pipeline/phases/scip-index.d.ts +54 -0
- package/dist/pipeline/phases/scip-index.d.ts.map +1 -0
- package/dist/pipeline/phases/scip-index.js +469 -0
- package/dist/pipeline/phases/scip-index.js.map +1 -0
- package/dist/pipeline/phases/structure.d.ts +21 -0
- package/dist/pipeline/phases/structure.d.ts.map +1 -0
- package/dist/pipeline/phases/structure.js +115 -0
- package/dist/pipeline/phases/structure.js.map +1 -0
- package/dist/pipeline/phases/summarize.d.ts +126 -0
- package/dist/pipeline/phases/summarize.d.ts.map +1 -0
- package/dist/pipeline/phases/summarize.js +401 -0
- package/dist/pipeline/phases/summarize.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/branch-divergence.d.ts +42 -0
- package/dist/pipeline/phases/temporal-helpers/branch-divergence.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/branch-divergence.js +96 -0
- package/dist/pipeline/phases/temporal-helpers/branch-divergence.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/churn-decay.d.ts +22 -0
- package/dist/pipeline/phases/temporal-helpers/churn-decay.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/churn-decay.js +32 -0
- package/dist/pipeline/phases/temporal-helpers/churn-decay.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/conventional-commits.d.ts +21 -0
- package/dist/pipeline/phases/temporal-helpers/conventional-commits.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/conventional-commits.js +37 -0
- package/dist/pipeline/phases/temporal-helpers/conventional-commits.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/gini.d.ts +32 -0
- package/dist/pipeline/phases/temporal-helpers/gini.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/gini.js +78 -0
- package/dist/pipeline/phases/temporal-helpers/gini.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/revert-detect.d.ts +14 -0
- package/dist/pipeline/phases/temporal-helpers/revert-detect.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/revert-detect.js +25 -0
- package/dist/pipeline/phases/temporal-helpers/revert-detect.js.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/test-pair.d.ts +18 -0
- package/dist/pipeline/phases/temporal-helpers/test-pair.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal-helpers/test-pair.js +119 -0
- package/dist/pipeline/phases/temporal-helpers/test-pair.js.map +1 -0
- package/dist/pipeline/phases/temporal.d.ts +65 -0
- package/dist/pipeline/phases/temporal.d.ts.map +1 -0
- package/dist/pipeline/phases/temporal.js +621 -0
- package/dist/pipeline/phases/temporal.js.map +1 -0
- package/dist/pipeline/phases/tools.d.ts +21 -0
- package/dist/pipeline/phases/tools.d.ts.map +1 -0
- package/dist/pipeline/phases/tools.js +118 -0
- package/dist/pipeline/phases/tools.js.map +1 -0
- package/dist/pipeline/profile-detectors/api-contracts.d.ts +18 -0
- package/dist/pipeline/profile-detectors/api-contracts.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/api-contracts.js +78 -0
- package/dist/pipeline/profile-detectors/api-contracts.js.map +1 -0
- package/dist/pipeline/profile-detectors/framework-detector.d.ts +11 -0
- package/dist/pipeline/profile-detectors/framework-detector.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/framework-detector.js +11 -0
- package/dist/pipeline/profile-detectors/framework-detector.js.map +1 -0
- package/dist/pipeline/profile-detectors/frameworks-catalog.d.ts +7 -0
- package/dist/pipeline/profile-detectors/frameworks-catalog.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/frameworks-catalog.js +7 -0
- package/dist/pipeline/profile-detectors/frameworks-catalog.js.map +1 -0
- package/dist/pipeline/profile-detectors/frameworks.d.ts +7 -0
- package/dist/pipeline/profile-detectors/frameworks.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/frameworks.js +7 -0
- package/dist/pipeline/profile-detectors/frameworks.js.map +1 -0
- package/dist/pipeline/profile-detectors/iac.d.ts +22 -0
- package/dist/pipeline/profile-detectors/iac.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/iac.js +97 -0
- package/dist/pipeline/profile-detectors/iac.js.map +1 -0
- package/dist/pipeline/profile-detectors/languages.d.ts +18 -0
- package/dist/pipeline/profile-detectors/languages.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/languages.js +60 -0
- package/dist/pipeline/profile-detectors/languages.js.map +1 -0
- package/dist/pipeline/profile-detectors/manifests.d.ts +7 -0
- package/dist/pipeline/profile-detectors/manifests.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/manifests.js +7 -0
- package/dist/pipeline/profile-detectors/manifests.js.map +1 -0
- package/dist/pipeline/profile-detectors/src-dirs.d.ts +17 -0
- package/dist/pipeline/profile-detectors/src-dirs.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/src-dirs.js +89 -0
- package/dist/pipeline/profile-detectors/src-dirs.js.map +1 -0
- package/dist/pipeline/profile-detectors/variant-detectors.d.ts +7 -0
- package/dist/pipeline/profile-detectors/variant-detectors.d.ts.map +1 -0
- package/dist/pipeline/profile-detectors/variant-detectors.js +7 -0
- package/dist/pipeline/profile-detectors/variant-detectors.js.map +1 -0
- package/dist/pipeline/runner.d.ts +54 -0
- package/dist/pipeline/runner.d.ts.map +1 -0
- package/dist/pipeline/runner.js +247 -0
- package/dist/pipeline/runner.js.map +1 -0
- package/dist/pipeline/types.d.ts +235 -0
- package/dist/pipeline/types.d.ts.map +1 -0
- package/dist/pipeline/types.js +15 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/providers/c.d.ts +3 -0
- package/dist/providers/c.d.ts.map +1 -0
- package/dist/providers/c.js +162 -0
- package/dist/providers/c.js.map +1 -0
- package/dist/providers/cobol.d.ts +19 -0
- package/dist/providers/cobol.d.ts.map +1 -0
- package/dist/providers/cobol.js +44 -0
- package/dist/providers/cobol.js.map +1 -0
- package/dist/providers/cpp.d.ts +3 -0
- package/dist/providers/cpp.d.ts.map +1 -0
- package/dist/providers/cpp.js +200 -0
- package/dist/providers/cpp.js.map +1 -0
- package/dist/providers/csharp.d.ts +3 -0
- package/dist/providers/csharp.d.ts.map +1 -0
- package/dist/providers/csharp.js +292 -0
- package/dist/providers/csharp.js.map +1 -0
- package/dist/providers/dart.d.ts +3 -0
- package/dist/providers/dart.d.ts.map +1 -0
- package/dist/providers/dart.js +214 -0
- package/dist/providers/dart.js.map +1 -0
- package/dist/providers/definition-ids.d.ts +18 -0
- package/dist/providers/definition-ids.d.ts.map +1 -0
- package/dist/providers/definition-ids.js +23 -0
- package/dist/providers/definition-ids.js.map +1 -0
- package/dist/providers/extract-helpers.d.ts +60 -0
- package/dist/providers/extract-helpers.d.ts.map +1 -0
- package/dist/providers/extract-helpers.js +296 -0
- package/dist/providers/extract-helpers.js.map +1 -0
- package/dist/providers/extraction-types.d.ts +85 -0
- package/dist/providers/extraction-types.d.ts.map +1 -0
- package/dist/providers/extraction-types.js +13 -0
- package/dist/providers/extraction-types.js.map +1 -0
- package/dist/providers/go.d.ts +3 -0
- package/dist/providers/go.d.ts.map +1 -0
- package/dist/providers/go.js +359 -0
- package/dist/providers/go.js.map +1 -0
- package/dist/providers/http-detect.d.ts +44 -0
- package/dist/providers/http-detect.d.ts.map +1 -0
- package/dist/providers/http-detect.js +307 -0
- package/dist/providers/http-detect.js.map +1 -0
- package/dist/providers/index.d.ts +38 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +33 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/java.d.ts +3 -0
- package/dist/providers/java.d.ts.map +1 -0
- package/dist/providers/java.js +259 -0
- package/dist/providers/java.js.map +1 -0
- package/dist/providers/javascript.d.ts +3 -0
- package/dist/providers/javascript.d.ts.map +1 -0
- package/dist/providers/javascript.js +139 -0
- package/dist/providers/javascript.js.map +1 -0
- package/dist/providers/kotlin.d.ts +3 -0
- package/dist/providers/kotlin.d.ts.map +1 -0
- package/dist/providers/kotlin.js +175 -0
- package/dist/providers/kotlin.js.map +1 -0
- package/dist/providers/php.d.ts +3 -0
- package/dist/providers/php.d.ts.map +1 -0
- package/dist/providers/php.js +218 -0
- package/dist/providers/php.js.map +1 -0
- package/dist/providers/python-accesses.d.ts +9 -0
- package/dist/providers/python-accesses.d.ts.map +1 -0
- package/dist/providers/python-accesses.js +22 -0
- package/dist/providers/python-accesses.js.map +1 -0
- package/dist/providers/python.d.ts +3 -0
- package/dist/providers/python.d.ts.map +1 -0
- package/dist/providers/python.js +323 -0
- package/dist/providers/python.js.map +1 -0
- package/dist/providers/registry.d.ts +4 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +46 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/resolution/c3.d.ts +6 -0
- package/dist/providers/resolution/c3.d.ts.map +1 -0
- package/dist/providers/resolution/c3.js +76 -0
- package/dist/providers/resolution/c3.js.map +1 -0
- package/dist/providers/resolution/context.d.ts +38 -0
- package/dist/providers/resolution/context.d.ts.map +1 -0
- package/dist/providers/resolution/context.js +45 -0
- package/dist/providers/resolution/context.js.map +1 -0
- package/dist/providers/resolution/first-wins.d.ts +3 -0
- package/dist/providers/resolution/first-wins.d.ts.map +1 -0
- package/dist/providers/resolution/first-wins.js +27 -0
- package/dist/providers/resolution/first-wins.js.map +1 -0
- package/dist/providers/resolution/mro.d.ts +16 -0
- package/dist/providers/resolution/mro.d.ts.map +1 -0
- package/dist/providers/resolution/mro.js +14 -0
- package/dist/providers/resolution/mro.js.map +1 -0
- package/dist/providers/resolution/none.d.ts +3 -0
- package/dist/providers/resolution/none.d.ts.map +1 -0
- package/dist/providers/resolution/none.js +11 -0
- package/dist/providers/resolution/none.js.map +1 -0
- package/dist/providers/resolution/python-all-filter.d.ts +25 -0
- package/dist/providers/resolution/python-all-filter.d.ts.map +1 -0
- package/dist/providers/resolution/python-all-filter.js +64 -0
- package/dist/providers/resolution/python-all-filter.js.map +1 -0
- package/dist/providers/resolution/resolver-strategy.d.ts +42 -0
- package/dist/providers/resolution/resolver-strategy.d.ts.map +1 -0
- package/dist/providers/resolution/resolver-strategy.js +50 -0
- package/dist/providers/resolution/resolver-strategy.js.map +1 -0
- package/dist/providers/resolution/single-inheritance.d.ts +3 -0
- package/dist/providers/resolution/single-inheritance.d.ts.map +1 -0
- package/dist/providers/resolution/single-inheritance.js +21 -0
- package/dist/providers/resolution/single-inheritance.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.d.ts +16 -0
- package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.js +50 -0
- package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/glue.d.ts +15 -0
- package/dist/providers/resolution/stack-graphs/glue.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/glue.js +44 -0
- package/dist/providers/resolution/stack-graphs/glue.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/node-edge-builder.d.ts +30 -0
- package/dist/providers/resolution/stack-graphs/node-edge-builder.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/node-edge-builder.js +366 -0
- package/dist/providers/resolution/stack-graphs/node-edge-builder.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/partial-path-engine.d.ts +9 -0
- package/dist/providers/resolution/stack-graphs/partial-path-engine.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/partial-path-engine.js +152 -0
- package/dist/providers/resolution/stack-graphs/partial-path-engine.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/rule-parser.d.ts +11 -0
- package/dist/providers/resolution/stack-graphs/rule-parser.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/rule-parser.js +247 -0
- package/dist/providers/resolution/stack-graphs/rule-parser.js.map +1 -0
- package/dist/providers/resolution/stack-graphs/types.d.ts +93 -0
- package/dist/providers/resolution/stack-graphs/types.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs/types.js +11 -0
- package/dist/providers/resolution/stack-graphs/types.js.map +1 -0
- package/dist/providers/resolution/stack-graphs-python.d.ts +27 -0
- package/dist/providers/resolution/stack-graphs-python.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs-python.js +104 -0
- package/dist/providers/resolution/stack-graphs-python.js.map +1 -0
- package/dist/providers/resolution/stack-graphs-ts.d.ts +134 -0
- package/dist/providers/resolution/stack-graphs-ts.d.ts.map +1 -0
- package/dist/providers/resolution/stack-graphs-ts.js +372 -0
- package/dist/providers/resolution/stack-graphs-ts.js.map +1 -0
- package/dist/providers/ruby.d.ts +3 -0
- package/dist/providers/ruby.d.ts.map +1 -0
- package/dist/providers/ruby.js +259 -0
- package/dist/providers/ruby.js.map +1 -0
- package/dist/providers/rust.d.ts +3 -0
- package/dist/providers/rust.d.ts.map +1 -0
- package/dist/providers/rust.js +318 -0
- package/dist/providers/rust.js.map +1 -0
- package/dist/providers/swift.d.ts +3 -0
- package/dist/providers/swift.d.ts.map +1 -0
- package/dist/providers/swift.js +177 -0
- package/dist/providers/swift.js.map +1 -0
- package/dist/providers/test-helpers.d.ts +24 -0
- package/dist/providers/test-helpers.d.ts.map +1 -0
- package/dist/providers/test-helpers.js +33 -0
- package/dist/providers/test-helpers.js.map +1 -0
- package/dist/providers/ts-shared.d.ts +30 -0
- package/dist/providers/ts-shared.d.ts.map +1 -0
- package/dist/providers/ts-shared.js +328 -0
- package/dist/providers/ts-shared.js.map +1 -0
- package/dist/providers/tsx.d.ts +7 -0
- package/dist/providers/tsx.d.ts.map +1 -0
- package/dist/providers/tsx.js +79 -0
- package/dist/providers/tsx.js.map +1 -0
- package/dist/providers/types.d.ts +166 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +7 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/typescript-family-accesses.d.ts +14 -0
- package/dist/providers/typescript-family-accesses.d.ts.map +1 -0
- package/dist/providers/typescript-family-accesses.js +27 -0
- package/dist/providers/typescript-family-accesses.js.map +1 -0
- package/dist/providers/typescript.d.ts +9 -0
- package/dist/providers/typescript.d.ts.map +1 -0
- package/dist/providers/typescript.js +84 -0
- package/dist/providers/typescript.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { innermostEnclosingContainer, innermostEnclosingDef, isInside, pairDefinitionsWithNames, stripComments, } from "./extract-helpers.js";
|
|
2
|
+
/**
|
|
3
|
+
* Dart provider.
|
|
4
|
+
*
|
|
5
|
+
* Definitions: classes, mixins, extensions, functions, methods, enums.
|
|
6
|
+
* Dart's grammar uses `class_definition`, `mixin_declaration`,
|
|
7
|
+
* `extension_declaration`, `function_signature`, `method_signature`.
|
|
8
|
+
*
|
|
9
|
+
* Heritage: `class Foo extends Parent with M1 implements I1, I2` — the
|
|
10
|
+
* three forms surface as:
|
|
11
|
+
* - `superclass` → @reference.class (EXTENDS)
|
|
12
|
+
* - `mixins` → @reference.mixin (IMPLEMENTS, for MRO linearization)
|
|
13
|
+
* - `interfaces` → @reference.interface (IMPLEMENTS)
|
|
14
|
+
*
|
|
15
|
+
* Imports: `import 'package:…' as foo show a, b;` — one import per `import`
|
|
16
|
+
* directive. Also `part of …` and `export …`, but those are ignored at MVP
|
|
17
|
+
* since they do not participate in the dependency graph the same way.
|
|
18
|
+
*
|
|
19
|
+
* Exports: Dart uses a leading-underscore convention for library-private
|
|
20
|
+
* symbols. We treat `_foo` as not exported, everything else as exported.
|
|
21
|
+
*/
|
|
22
|
+
const DART_DEF_KIND_MAP = {
|
|
23
|
+
"definition.class": "Class",
|
|
24
|
+
"definition.interface": "Interface",
|
|
25
|
+
"definition.mixin": "Trait",
|
|
26
|
+
"definition.function": "Function",
|
|
27
|
+
"definition.method": "Method",
|
|
28
|
+
"definition.constructor": "Constructor",
|
|
29
|
+
"definition.module": "Module",
|
|
30
|
+
"definition.enum": "Enum",
|
|
31
|
+
"definition.constant": "Const",
|
|
32
|
+
"definition.property": "Property",
|
|
33
|
+
};
|
|
34
|
+
function extractDartDefinitions(input) {
|
|
35
|
+
const { filePath, captures } = input;
|
|
36
|
+
const paired = pairDefinitionsWithNames(captures);
|
|
37
|
+
const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
|
|
38
|
+
const out = [];
|
|
39
|
+
for (const { def, name } of paired) {
|
|
40
|
+
let kind = DART_DEF_KIND_MAP[def.tag];
|
|
41
|
+
if (kind === undefined)
|
|
42
|
+
continue;
|
|
43
|
+
let owner;
|
|
44
|
+
const ownerDef = innermostEnclosingDef(def, defCaptures);
|
|
45
|
+
if (ownerDef !== undefined) {
|
|
46
|
+
const ownerPaired = paired.find((p) => p.def === ownerDef);
|
|
47
|
+
if (ownerPaired !== undefined)
|
|
48
|
+
owner = ownerPaired.name.text;
|
|
49
|
+
}
|
|
50
|
+
if (def.tag === "definition.function" &&
|
|
51
|
+
(ownerDef?.tag === "definition.class" ||
|
|
52
|
+
ownerDef?.tag === "definition.interface" ||
|
|
53
|
+
ownerDef?.tag === "definition.mixin")) {
|
|
54
|
+
kind = "Method";
|
|
55
|
+
}
|
|
56
|
+
const qualifiedName = owner !== undefined ? `${owner}.${name.text}` : name.text;
|
|
57
|
+
const isExported = !name.text.startsWith("_");
|
|
58
|
+
out.push({
|
|
59
|
+
kind,
|
|
60
|
+
name: name.text,
|
|
61
|
+
qualifiedName,
|
|
62
|
+
filePath,
|
|
63
|
+
startLine: def.startLine,
|
|
64
|
+
endLine: def.endLine,
|
|
65
|
+
isExported,
|
|
66
|
+
...(owner !== undefined ? { owner } : {}),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
function extractDartCalls(input) {
|
|
72
|
+
const { filePath, captures, definitions } = input;
|
|
73
|
+
const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
|
|
74
|
+
const callRefs = captures.filter((c) => c.tag === "reference.call");
|
|
75
|
+
const out = [];
|
|
76
|
+
for (const ref of callRefs) {
|
|
77
|
+
const innerName = findNameInside(captures, ref);
|
|
78
|
+
const calleeName = innerName?.text ?? ref.text;
|
|
79
|
+
const enclosingDef = innermostEnclosingDef(ref, defCaptures);
|
|
80
|
+
const callerQualifiedName = enclosingDef
|
|
81
|
+
? qualifiedForCapture(enclosingDef, definitions)
|
|
82
|
+
: "<module>";
|
|
83
|
+
let receiver;
|
|
84
|
+
if (innerName !== undefined) {
|
|
85
|
+
const idx = ref.text.lastIndexOf(`.${innerName.text}`);
|
|
86
|
+
if (idx > 0) {
|
|
87
|
+
const prefix = ref.text.slice(0, idx).trim();
|
|
88
|
+
if (prefix !== "" && /^[A-Za-z_][\w.]*$/.test(prefix))
|
|
89
|
+
receiver = prefix;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
out.push({
|
|
93
|
+
callerQualifiedName,
|
|
94
|
+
calleeName,
|
|
95
|
+
filePath,
|
|
96
|
+
startLine: ref.startLine,
|
|
97
|
+
...(receiver !== undefined ? { calleeOwner: receiver } : {}),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
function findNameInside(captures, outer) {
|
|
103
|
+
let best;
|
|
104
|
+
for (const c of captures) {
|
|
105
|
+
if (c.tag !== "name")
|
|
106
|
+
continue;
|
|
107
|
+
if (!isInside(c, outer))
|
|
108
|
+
continue;
|
|
109
|
+
if (best === undefined || c.startLine < best.startLine)
|
|
110
|
+
best = c;
|
|
111
|
+
}
|
|
112
|
+
return best;
|
|
113
|
+
}
|
|
114
|
+
function qualifiedForCapture(def, definitions) {
|
|
115
|
+
for (const d of definitions) {
|
|
116
|
+
if (d.startLine === def.startLine)
|
|
117
|
+
return d.qualifiedName;
|
|
118
|
+
}
|
|
119
|
+
return "<module>";
|
|
120
|
+
}
|
|
121
|
+
function extractDartImports(input) {
|
|
122
|
+
const { filePath, sourceText } = input;
|
|
123
|
+
const stripped = stripComments(sourceText);
|
|
124
|
+
const out = [];
|
|
125
|
+
// `import 'package:foo/bar.dart' as foo show A, B hide C;`
|
|
126
|
+
const re = /^\s*import\s+['"]([^'"]+)['"](?:\s+as\s+([A-Za-z_][\w]*))?(?:\s+(?:show|hide)\s+[\w, ]+)?\s*;/gm;
|
|
127
|
+
for (const m of stripped.matchAll(re)) {
|
|
128
|
+
const source = m[1];
|
|
129
|
+
const alias = m[2];
|
|
130
|
+
out.push({
|
|
131
|
+
filePath,
|
|
132
|
+
source,
|
|
133
|
+
kind: "namespace",
|
|
134
|
+
...(alias !== undefined ? { localAlias: alias } : {}),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return out;
|
|
138
|
+
}
|
|
139
|
+
function extractDartHeritage(input) {
|
|
140
|
+
const { filePath, captures, definitions } = input;
|
|
141
|
+
const out = [];
|
|
142
|
+
const classDefs = captures.filter((c) => c.tag === "definition.class" ||
|
|
143
|
+
c.tag === "definition.interface" ||
|
|
144
|
+
c.tag === "definition.mixin");
|
|
145
|
+
// superclass: `extends Parent`
|
|
146
|
+
const extendsRefs = captures.filter((c) => c.tag === "reference.class");
|
|
147
|
+
for (const ref of extendsRefs) {
|
|
148
|
+
const enclosing = innermostEnclosingContainer(ref, classDefs);
|
|
149
|
+
if (enclosing === undefined)
|
|
150
|
+
continue;
|
|
151
|
+
const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Interface" || d.kind === "Trait") &&
|
|
152
|
+
d.startLine === enclosing.startLine);
|
|
153
|
+
if (child === undefined)
|
|
154
|
+
continue;
|
|
155
|
+
out.push({
|
|
156
|
+
childQualifiedName: child.qualifiedName,
|
|
157
|
+
parentName: ref.text,
|
|
158
|
+
filePath,
|
|
159
|
+
relation: "EXTENDS",
|
|
160
|
+
startLine: ref.startLine,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
// implements: `implements I1, I2`
|
|
164
|
+
const implementsRefs = captures.filter((c) => c.tag === "reference.interface");
|
|
165
|
+
for (const ref of implementsRefs) {
|
|
166
|
+
const enclosing = innermostEnclosingContainer(ref, classDefs);
|
|
167
|
+
if (enclosing === undefined)
|
|
168
|
+
continue;
|
|
169
|
+
const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Interface") && d.startLine === enclosing.startLine);
|
|
170
|
+
if (child === undefined)
|
|
171
|
+
continue;
|
|
172
|
+
out.push({
|
|
173
|
+
childQualifiedName: child.qualifiedName,
|
|
174
|
+
parentName: ref.text,
|
|
175
|
+
filePath,
|
|
176
|
+
relation: "IMPLEMENTS",
|
|
177
|
+
startLine: ref.startLine,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// mixins: `with M1, M2`
|
|
181
|
+
const mixinRefs = captures.filter((c) => c.tag === "reference.mixin");
|
|
182
|
+
for (const ref of mixinRefs) {
|
|
183
|
+
const enclosing = innermostEnclosingContainer(ref, classDefs);
|
|
184
|
+
if (enclosing === undefined)
|
|
185
|
+
continue;
|
|
186
|
+
const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Trait") && d.startLine === enclosing.startLine);
|
|
187
|
+
if (child === undefined)
|
|
188
|
+
continue;
|
|
189
|
+
out.push({
|
|
190
|
+
childQualifiedName: child.qualifiedName,
|
|
191
|
+
parentName: ref.text,
|
|
192
|
+
filePath,
|
|
193
|
+
relation: "IMPLEMENTS",
|
|
194
|
+
startLine: ref.startLine,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return out;
|
|
198
|
+
}
|
|
199
|
+
export const dartProvider = {
|
|
200
|
+
id: "dart",
|
|
201
|
+
extensions: [".dart"],
|
|
202
|
+
importSemantics: "package-wildcard",
|
|
203
|
+
mroStrategy: "c3",
|
|
204
|
+
typeConfig: { structural: false, nominal: true, generics: true },
|
|
205
|
+
heritageEdge: "EXTENDS",
|
|
206
|
+
inferImplicitReceiver: () => "this",
|
|
207
|
+
isExportedIdentifier: (name) => !name.startsWith("_"),
|
|
208
|
+
extractDefinitions: extractDartDefinitions,
|
|
209
|
+
extractCalls: extractDartCalls,
|
|
210
|
+
extractImports: extractDartImports,
|
|
211
|
+
isExported: (def) => def.isExported,
|
|
212
|
+
extractHeritage: extractDartHeritage,
|
|
213
|
+
};
|
|
214
|
+
//# sourceMappingURL=dart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dart.js","sourceRoot":"","sources":["../../src/providers/dart.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable NodeId derivation for extracted symbol definitions.
|
|
3
|
+
*
|
|
4
|
+
* Kept in the providers directory (not pipeline/phases) so every provider
|
|
5
|
+
* that needs an enclosing-symbol id can import it without dragging in the
|
|
6
|
+
* parse-phase's full transitive graph. The phase-level consumer
|
|
7
|
+
* (`pipeline/phases/parse.ts`) re-exports this for backward compatibility.
|
|
8
|
+
*/
|
|
9
|
+
import { type NodeId } from "@opencodehub/core-types";
|
|
10
|
+
import type { ExtractedDefinition } from "./extraction-types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Deterministic NodeId for an extracted definition. Mirrors the encoding
|
|
13
|
+
* the parse phase uses when emitting graph nodes, so downstream extractors
|
|
14
|
+
* that never see the graph can still produce matching ids for `from` /
|
|
15
|
+
* `to` endpoints on derived edges (e.g. ACCESSES, QUERIES).
|
|
16
|
+
*/
|
|
17
|
+
export declare function idForDefinition(d: ExtractedDefinition): NodeId;
|
|
18
|
+
//# sourceMappingURL=definition-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-ids.d.ts","sourceRoot":"","sources":["../../src/providers/definition-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAM9D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable NodeId derivation for extracted symbol definitions.
|
|
3
|
+
*
|
|
4
|
+
* Kept in the providers directory (not pipeline/phases) so every provider
|
|
5
|
+
* that needs an enclosing-symbol id can import it without dragging in the
|
|
6
|
+
* parse-phase's full transitive graph. The phase-level consumer
|
|
7
|
+
* (`pipeline/phases/parse.ts`) re-exports this for backward compatibility.
|
|
8
|
+
*/
|
|
9
|
+
import { makeNodeId } from "@opencodehub/core-types";
|
|
10
|
+
/**
|
|
11
|
+
* Deterministic NodeId for an extracted definition. Mirrors the encoding
|
|
12
|
+
* the parse phase uses when emitting graph nodes, so downstream extractors
|
|
13
|
+
* that never see the graph can still produce matching ids for `from` /
|
|
14
|
+
* `to` endpoints on derived edges (e.g. ACCESSES, QUERIES).
|
|
15
|
+
*/
|
|
16
|
+
export function idForDefinition(d) {
|
|
17
|
+
return makeNodeId(d.kind, d.filePath, d.qualifiedName, {
|
|
18
|
+
...(d.parameterCount !== undefined ? { parameterCount: d.parameterCount } : {}),
|
|
19
|
+
...(d.parameterTypes !== undefined ? { parameterTypes: d.parameterTypes } : {}),
|
|
20
|
+
...(d.isConst !== undefined ? { isConst: d.isConst } : {}),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=definition-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-ids.js","sourceRoot":"","sources":["../../src/providers/definition-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAe,MAAM,yBAAyB,CAAC;AAGlE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,CAAsB;IACpD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa,EAAE;QACrD,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers used by per-language extractors.
|
|
3
|
+
*
|
|
4
|
+
* Kept intentionally generic: none of these functions know about a specific
|
|
5
|
+
* language's grammar. Per-language providers feed them filtered subsets of
|
|
6
|
+
* {@link ParseCapture} and receive back plain records.
|
|
7
|
+
*/
|
|
8
|
+
import type { ParseCapture } from "../parse/types.js";
|
|
9
|
+
/** One definition capture plus its inner `@name` capture (resolved by range). */
|
|
10
|
+
export interface PairedDefinition {
|
|
11
|
+
readonly def: ParseCapture;
|
|
12
|
+
readonly name: ParseCapture;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pair every `@definition.*` capture with the `@name` capture that lies
|
|
16
|
+
* within its source range. Robust against match reordering: we use
|
|
17
|
+
* positional containment rather than list adjacency.
|
|
18
|
+
*
|
|
19
|
+
* When multiple `@name` captures fall inside a single definition range
|
|
20
|
+
* (e.g. a class body with methods), we pick the earliest `@name` whose
|
|
21
|
+
* start line matches the definition's start line. Falls back to the
|
|
22
|
+
* first inner `@name`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function pairDefinitionsWithNames(captures: readonly ParseCapture[], defTagPrefix?: string): readonly PairedDefinition[];
|
|
25
|
+
/** True if `inner`'s range is inside `outer`'s range. */
|
|
26
|
+
export declare function isInside(inner: ParseCapture, outer: ParseCapture): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Return the tightest-span capture from `containers` that contains `inner`.
|
|
29
|
+
* Used by heritage extraction to attribute a base-class / interface
|
|
30
|
+
* reference to the innermost enclosing class/struct/interface definition
|
|
31
|
+
* rather than the outermost one. Without this, a nested class's base is
|
|
32
|
+
* attributed to its enclosing parent, producing spurious MRO conflicts
|
|
33
|
+
* (see strands-agents/sdk-python `LiteLLMModel.LiteLLMConfig`).
|
|
34
|
+
*/
|
|
35
|
+
export declare function innermostEnclosingContainer(inner: ParseCapture, containers: readonly ParseCapture[]): ParseCapture | undefined;
|
|
36
|
+
export declare function innermostEnclosingDef(inner: ParseCapture, defs: readonly ParseCapture[]): ParseCapture | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Read a single 1-indexed line from `sourceText`. Returns `""` when the
|
|
39
|
+
* line is out of range (defensive against stale captures).
|
|
40
|
+
*/
|
|
41
|
+
export declare function getLine(sourceText: string, line1Indexed: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* Strip line + block comments from a source string. Used by import scanners
|
|
44
|
+
* where a commented-out import would otherwise produce a spurious edge.
|
|
45
|
+
*
|
|
46
|
+
* Language-neutral implementation: understands `//` line comments, `/* ...`
|
|
47
|
+
* block comments, and `#` line comments. Leaves string contents alone
|
|
48
|
+
* (tracks single/double/backtick quotes).
|
|
49
|
+
*/
|
|
50
|
+
export declare function stripComments(src: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Split a `foo, bar as baz, qux` list into per-entry records.
|
|
53
|
+
* Used by TS/JS named-import parsing.
|
|
54
|
+
*/
|
|
55
|
+
export interface NamedImportEntry {
|
|
56
|
+
readonly name: string;
|
|
57
|
+
readonly alias?: string;
|
|
58
|
+
}
|
|
59
|
+
export declare function splitNamedImports(body: string): readonly NamedImportEntry[];
|
|
60
|
+
//# sourceMappingURL=extract-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-helpers.d.ts","sourceRoot":"","sources":["../../src/providers/extract-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,YAAY,SAAgB,GAC3B,SAAS,gBAAgB,EAAE,CA0D7B;AA6CD,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAW1E;AA8BD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,YAAY,EAAE,GAClC,YAAY,GAAG,SAAS,CAa1B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,SAAS,YAAY,EAAE,GAC5B,YAAY,GAAG,SAAS,CAsB1B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoDjD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAc3E"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers used by per-language extractors.
|
|
3
|
+
*
|
|
4
|
+
* Kept intentionally generic: none of these functions know about a specific
|
|
5
|
+
* language's grammar. Per-language providers feed them filtered subsets of
|
|
6
|
+
* {@link ParseCapture} and receive back plain records.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Pair every `@definition.*` capture with the `@name` capture that lies
|
|
10
|
+
* within its source range. Robust against match reordering: we use
|
|
11
|
+
* positional containment rather than list adjacency.
|
|
12
|
+
*
|
|
13
|
+
* When multiple `@name` captures fall inside a single definition range
|
|
14
|
+
* (e.g. a class body with methods), we pick the earliest `@name` whose
|
|
15
|
+
* start line matches the definition's start line. Falls back to the
|
|
16
|
+
* first inner `@name`.
|
|
17
|
+
*/
|
|
18
|
+
export function pairDefinitionsWithNames(captures, defTagPrefix = "definition.") {
|
|
19
|
+
const defs = captures.filter((c) => c.tag.startsWith(defTagPrefix));
|
|
20
|
+
// Build the set of source positions that are ALSO tagged as a reference.
|
|
21
|
+
// A `@name` that coincides with a `@reference.*` capture is almost always
|
|
22
|
+
// a referenced type identifier (e.g. the receiver type in a Go method)
|
|
23
|
+
// rather than the identifier we want to bind to the definition.
|
|
24
|
+
const referencePositions = new Set();
|
|
25
|
+
for (const c of captures) {
|
|
26
|
+
if (c.tag.startsWith("reference.")) {
|
|
27
|
+
referencePositions.add(positionKey(c));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Deduplicate `@name` captures at the same source position — tree-sitter
|
|
31
|
+
// can emit the same node under multiple patterns.
|
|
32
|
+
const uniqueNames = dedupeByPosition(captures.filter((c) => c.tag === "name"));
|
|
33
|
+
const declarationNames = uniqueNames.filter((c) => !referencePositions.has(positionKey(c)));
|
|
34
|
+
const paired = [];
|
|
35
|
+
for (const def of defs) {
|
|
36
|
+
// Priority 1: a declaration name (not coinciding with a reference) on
|
|
37
|
+
// the def's header line. This correctly picks `Greet` out of
|
|
38
|
+
// `func (g *Greeter) Greet(...)` — `Greeter` is a reference-typed
|
|
39
|
+
// identifier, `Greet` is the declaration.
|
|
40
|
+
const headerDecls = declarationNames.filter((n) => n.startLine === def.startLine && isInside(n, def));
|
|
41
|
+
if (headerDecls.length > 0) {
|
|
42
|
+
// Earliest column — definitions tend to have their name earlier than
|
|
43
|
+
// any trailing parameter identifiers on the same line.
|
|
44
|
+
const sorted = [...headerDecls].sort((a, b) => a.startCol - b.startCol);
|
|
45
|
+
paired.push({ def, name: sorted[0] });
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// Priority 2: any name on the header line (recovers class/interface
|
|
49
|
+
// declarations whose name is tagged with a `@reference.type` overlay).
|
|
50
|
+
const headerNames = uniqueNames.filter((n) => n.startLine === def.startLine && isInside(n, def));
|
|
51
|
+
if (headerNames.length > 0) {
|
|
52
|
+
const sorted = [...headerNames].sort((a, b) => a.startCol - b.startCol);
|
|
53
|
+
paired.push({ def, name: sorted[0] });
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Priority 3: declaration names anywhere inside the def range. Handles
|
|
57
|
+
// module-scope `@definition.*` captures that span the whole file.
|
|
58
|
+
let best = pickBestName(def, declarationNames);
|
|
59
|
+
// Priority 4: fall back to any name at all.
|
|
60
|
+
if (best === undefined) {
|
|
61
|
+
best = pickBestName(def, uniqueNames);
|
|
62
|
+
}
|
|
63
|
+
if (best !== undefined) {
|
|
64
|
+
paired.push({ def, name: best });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return paired;
|
|
68
|
+
}
|
|
69
|
+
function pickBestName(def, candidates) {
|
|
70
|
+
let best;
|
|
71
|
+
for (const n of candidates) {
|
|
72
|
+
if (!isInside(n, def))
|
|
73
|
+
continue;
|
|
74
|
+
if (best === undefined) {
|
|
75
|
+
best = n;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const bestAtHeader = best.startLine === def.startLine;
|
|
79
|
+
const candAtHeader = n.startLine === def.startLine;
|
|
80
|
+
if (candAtHeader && !bestAtHeader) {
|
|
81
|
+
best = n;
|
|
82
|
+
}
|
|
83
|
+
else if (candAtHeader === bestAtHeader) {
|
|
84
|
+
if (n.startLine < best.startLine ||
|
|
85
|
+
(n.startLine === best.startLine && n.startCol < best.startCol)) {
|
|
86
|
+
best = n;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return best;
|
|
91
|
+
}
|
|
92
|
+
function dedupeByPosition(captures) {
|
|
93
|
+
const seen = new Set();
|
|
94
|
+
const out = [];
|
|
95
|
+
for (const c of captures) {
|
|
96
|
+
const k = positionKey(c);
|
|
97
|
+
if (seen.has(k))
|
|
98
|
+
continue;
|
|
99
|
+
seen.add(k);
|
|
100
|
+
out.push(c);
|
|
101
|
+
}
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
function positionKey(c) {
|
|
105
|
+
return `${c.startLine}:${c.startCol}:${c.endLine}:${c.endCol}`;
|
|
106
|
+
}
|
|
107
|
+
/** True if `inner`'s range is inside `outer`'s range. */
|
|
108
|
+
export function isInside(inner, outer) {
|
|
109
|
+
if (inner.startLine < outer.startLine || inner.endLine > outer.endLine) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (inner.startLine === outer.startLine && inner.startCol < outer.startCol) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (inner.endLine === outer.endLine && inner.endCol > outer.endCol) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Return the innermost (smallest enclosing) definition that contains `inner`.
|
|
122
|
+
*
|
|
123
|
+
* Skips:
|
|
124
|
+
* - `inner` itself.
|
|
125
|
+
* - Any `@definition.module` capture — module/file-scoped defs are logical
|
|
126
|
+
* containers, not semantic owners.
|
|
127
|
+
* - Captures with an identical source range to `inner`. A grammar query
|
|
128
|
+
* can attach multiple `@definition.*` tags to the same node (e.g. a Go
|
|
129
|
+
* `type_declaration` hitting both `@definition.type` and
|
|
130
|
+
* `@definition.class`). Those are sibling records, not parent/child.
|
|
131
|
+
*/
|
|
132
|
+
// Tags that CAN be call-edge endpoints. `definition.property`,
|
|
133
|
+
// `definition.variable`, and `definition.constant` are deliberately excluded:
|
|
134
|
+
// attributing a call like `x = foo()` inside a class body to the assignment
|
|
135
|
+
// target `x` (which would tightly wrap the call site) instead of the
|
|
136
|
+
// enclosing method is almost never what callers of impact/context analysis
|
|
137
|
+
// want. The enclosing scope is what owns the call.
|
|
138
|
+
const CALLABLE_SCOPE_TAGS = new Set([
|
|
139
|
+
"definition.class",
|
|
140
|
+
"definition.function",
|
|
141
|
+
"definition.method",
|
|
142
|
+
"definition.constructor",
|
|
143
|
+
"definition.interface",
|
|
144
|
+
"definition.type",
|
|
145
|
+
"definition.trait",
|
|
146
|
+
]);
|
|
147
|
+
/**
|
|
148
|
+
* Return the tightest-span capture from `containers` that contains `inner`.
|
|
149
|
+
* Used by heritage extraction to attribute a base-class / interface
|
|
150
|
+
* reference to the innermost enclosing class/struct/interface definition
|
|
151
|
+
* rather than the outermost one. Without this, a nested class's base is
|
|
152
|
+
* attributed to its enclosing parent, producing spurious MRO conflicts
|
|
153
|
+
* (see strands-agents/sdk-python `LiteLLMModel.LiteLLMConfig`).
|
|
154
|
+
*/
|
|
155
|
+
export function innermostEnclosingContainer(inner, containers) {
|
|
156
|
+
let best;
|
|
157
|
+
let bestSpan = Number.POSITIVE_INFINITY;
|
|
158
|
+
for (const c of containers) {
|
|
159
|
+
if (c === inner)
|
|
160
|
+
continue;
|
|
161
|
+
if (inner.startLine < c.startLine || inner.endLine > c.endLine)
|
|
162
|
+
continue;
|
|
163
|
+
const span = (c.endLine - c.startLine) * 1_000_000 + (c.endCol - c.startCol);
|
|
164
|
+
if (span < bestSpan) {
|
|
165
|
+
best = c;
|
|
166
|
+
bestSpan = span;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return best;
|
|
170
|
+
}
|
|
171
|
+
export function innermostEnclosingDef(inner, defs) {
|
|
172
|
+
let best;
|
|
173
|
+
let bestSpan = Infinity;
|
|
174
|
+
for (const d of defs) {
|
|
175
|
+
if (d === inner)
|
|
176
|
+
continue;
|
|
177
|
+
if (!CALLABLE_SCOPE_TAGS.has(d.tag))
|
|
178
|
+
continue;
|
|
179
|
+
if (d.startLine === inner.startLine &&
|
|
180
|
+
d.endLine === inner.endLine &&
|
|
181
|
+
d.startCol === inner.startCol &&
|
|
182
|
+
d.endCol === inner.endCol) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (!isInside(inner, d))
|
|
186
|
+
continue;
|
|
187
|
+
const span = (d.endLine - d.startLine) * 1_000_000 + (d.endCol - d.startCol);
|
|
188
|
+
if (span < bestSpan) {
|
|
189
|
+
best = d;
|
|
190
|
+
bestSpan = span;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return best;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Read a single 1-indexed line from `sourceText`. Returns `""` when the
|
|
197
|
+
* line is out of range (defensive against stale captures).
|
|
198
|
+
*/
|
|
199
|
+
export function getLine(sourceText, line1Indexed) {
|
|
200
|
+
if (line1Indexed <= 0)
|
|
201
|
+
return "";
|
|
202
|
+
// Split lazily: we only call this per-capture, usually small N.
|
|
203
|
+
let current = 1;
|
|
204
|
+
let start = 0;
|
|
205
|
+
for (let i = 0; i < sourceText.length; i += 1) {
|
|
206
|
+
if (sourceText.charCodeAt(i) === 10) {
|
|
207
|
+
if (current === line1Indexed) {
|
|
208
|
+
return sourceText.slice(start, i);
|
|
209
|
+
}
|
|
210
|
+
current += 1;
|
|
211
|
+
start = i + 1;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (current === line1Indexed) {
|
|
215
|
+
return sourceText.slice(start);
|
|
216
|
+
}
|
|
217
|
+
return "";
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Strip line + block comments from a source string. Used by import scanners
|
|
221
|
+
* where a commented-out import would otherwise produce a spurious edge.
|
|
222
|
+
*
|
|
223
|
+
* Language-neutral implementation: understands `//` line comments, `/* ...`
|
|
224
|
+
* block comments, and `#` line comments. Leaves string contents alone
|
|
225
|
+
* (tracks single/double/backtick quotes).
|
|
226
|
+
*/
|
|
227
|
+
export function stripComments(src) {
|
|
228
|
+
const out = [];
|
|
229
|
+
let i = 0;
|
|
230
|
+
const n = src.length;
|
|
231
|
+
while (i < n) {
|
|
232
|
+
const c = src[i];
|
|
233
|
+
const next = src[i + 1];
|
|
234
|
+
// Block comment
|
|
235
|
+
if (c === "/" && next === "*") {
|
|
236
|
+
const end = src.indexOf("*/", i + 2);
|
|
237
|
+
if (end === -1)
|
|
238
|
+
break;
|
|
239
|
+
// Preserve newlines so line numbers in later extracts are stable.
|
|
240
|
+
for (let j = i; j < end + 2; j += 1) {
|
|
241
|
+
if (src.charCodeAt(j) === 10)
|
|
242
|
+
out.push("\n");
|
|
243
|
+
}
|
|
244
|
+
i = end + 2;
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
// Line comment (`//` or `#`). For `#`, only treat as comment when not
|
|
248
|
+
// part of a `#!` shebang at file start — caller passes stripped text
|
|
249
|
+
// otherwise. We keep the rule simple: both begin a line comment here.
|
|
250
|
+
if ((c === "/" && next === "/") || c === "#") {
|
|
251
|
+
while (i < n && src.charCodeAt(i) !== 10)
|
|
252
|
+
i += 1;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
// Strings: skip the body verbatim, honoring escape sequences.
|
|
256
|
+
if (c === '"' || c === "'" || c === "`") {
|
|
257
|
+
const quote = c;
|
|
258
|
+
out.push(c);
|
|
259
|
+
i += 1;
|
|
260
|
+
while (i < n) {
|
|
261
|
+
const ch = src[i];
|
|
262
|
+
out.push(ch);
|
|
263
|
+
if (ch === "\\" && i + 1 < n) {
|
|
264
|
+
// Preserve the escaped char.
|
|
265
|
+
out.push(src[i + 1]);
|
|
266
|
+
i += 2;
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
i += 1;
|
|
270
|
+
if (ch === quote)
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
out.push(c);
|
|
276
|
+
i += 1;
|
|
277
|
+
}
|
|
278
|
+
return out.join("");
|
|
279
|
+
}
|
|
280
|
+
export function splitNamedImports(body) {
|
|
281
|
+
const parts = body
|
|
282
|
+
.split(",")
|
|
283
|
+
.map((p) => p.trim())
|
|
284
|
+
.filter((p) => p.length > 0);
|
|
285
|
+
const out = [];
|
|
286
|
+
for (const p of parts) {
|
|
287
|
+
const m = /^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/.exec(p);
|
|
288
|
+
if (m === null)
|
|
289
|
+
continue;
|
|
290
|
+
const name = m[1];
|
|
291
|
+
const alias = m[2];
|
|
292
|
+
out.push(alias !== undefined ? { name, alias } : { name });
|
|
293
|
+
}
|
|
294
|
+
return out;
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=extract-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-helpers.js","sourceRoot":"","sources":["../../src/providers/extract-helpers.ts"],"names":[],"mappings":"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"}
|