@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,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the per-ecosystem manifest / lockfile parsers that the
|
|
3
|
+
* `dependencies` pipeline phase invokes.
|
|
4
|
+
*
|
|
5
|
+
* Each parser is a pure async function: given a repository-relative
|
|
6
|
+
* manifest or lockfile path and the absolute filesystem path, it returns
|
|
7
|
+
* a de-duplicated list of parsed dependencies. Parsers never throw on
|
|
8
|
+
* malformed input — they log via `onWarn` and return `[]` instead.
|
|
9
|
+
*
|
|
10
|
+
* License detection: each parser populates `ParsedDependency.license`
|
|
11
|
+
* directly from the manifest field when one is present (SPDX identifier
|
|
12
|
+
* or a free-form string — the `dependencies` phase normalises through
|
|
13
|
+
* `spdx-correct` before storage). The value is `undefined` when the
|
|
14
|
+
* manifest does not carry license metadata; the phase converts that to
|
|
15
|
+
* the canonical `"UNKNOWN"` sentinel on the DependencyNode.
|
|
16
|
+
*/
|
|
17
|
+
import type { DependencyNode } from "@opencodehub/core-types";
|
|
18
|
+
export type Ecosystem = DependencyNode["ecosystem"];
|
|
19
|
+
/**
|
|
20
|
+
* Minimal parsed dependency record. The `dependencies` phase promotes
|
|
21
|
+
* these into full `DependencyNode` entries once all parsers have run.
|
|
22
|
+
*/
|
|
23
|
+
export interface ParsedDependency {
|
|
24
|
+
readonly ecosystem: Ecosystem;
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly version: string;
|
|
27
|
+
/** Repo-relative POSIX path to the manifest / lockfile. */
|
|
28
|
+
readonly lockfileSource: string;
|
|
29
|
+
/**
|
|
30
|
+
* License declaration as it appears in the manifest (SPDX id or a
|
|
31
|
+
* free-form expression). `undefined` when the manifest entry did not
|
|
32
|
+
* carry a license; the `dependencies` phase maps that to the
|
|
33
|
+
* `"UNKNOWN"` sentinel on the DependencyNode.
|
|
34
|
+
*/
|
|
35
|
+
readonly license?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Warning sink threaded through every parser for best-effort logging. */
|
|
38
|
+
export type WarnFn = (message: string) => void;
|
|
39
|
+
/** Input shape accepted by every parser. */
|
|
40
|
+
export interface ParseDepsInput {
|
|
41
|
+
/** Absolute filesystem path to the manifest / lockfile. */
|
|
42
|
+
readonly absPath: string;
|
|
43
|
+
/** Repo-relative POSIX path (what goes into `lockfileSource`). */
|
|
44
|
+
readonly relPath: string;
|
|
45
|
+
/** Absolute repo root (needed by parsers that must locate sibling files). */
|
|
46
|
+
readonly repoRoot: string;
|
|
47
|
+
/** Warning hook. Errors must not propagate out of the parser. */
|
|
48
|
+
readonly onWarn: WarnFn;
|
|
49
|
+
}
|
|
50
|
+
export type ParseDepsFn = (input: ParseDepsInput) => Promise<readonly ParsedDependency[]>;
|
|
51
|
+
/** Canonical comparison for stable `ParsedDependency[]` ordering. */
|
|
52
|
+
export declare function compareParsedDependency(a: ParsedDependency, b: ParsedDependency): number;
|
|
53
|
+
/**
|
|
54
|
+
* De-duplicate a list of `ParsedDependency` on
|
|
55
|
+
* `(ecosystem, name, version, lockfileSource)`. When two records collide,
|
|
56
|
+
* we keep the first occurrence but prefer a defined `license` over an
|
|
57
|
+
* undefined one — a lockfile with no license + a sibling manifest that
|
|
58
|
+
* carries one should surface as "has license" after dedup. Callers rely
|
|
59
|
+
* on the returned array being sorted canonically so graph output is
|
|
60
|
+
* byte-stable.
|
|
61
|
+
*/
|
|
62
|
+
export declare function dedupAndSort(deps: readonly ParsedDependency[]): readonly ParsedDependency[];
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pipeline/dep-parsers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;AAE1F,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAMxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAiB3F"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the per-ecosystem manifest / lockfile parsers that the
|
|
3
|
+
* `dependencies` pipeline phase invokes.
|
|
4
|
+
*
|
|
5
|
+
* Each parser is a pure async function: given a repository-relative
|
|
6
|
+
* manifest or lockfile path and the absolute filesystem path, it returns
|
|
7
|
+
* a de-duplicated list of parsed dependencies. Parsers never throw on
|
|
8
|
+
* malformed input — they log via `onWarn` and return `[]` instead.
|
|
9
|
+
*
|
|
10
|
+
* License detection: each parser populates `ParsedDependency.license`
|
|
11
|
+
* directly from the manifest field when one is present (SPDX identifier
|
|
12
|
+
* or a free-form string — the `dependencies` phase normalises through
|
|
13
|
+
* `spdx-correct` before storage). The value is `undefined` when the
|
|
14
|
+
* manifest does not carry license metadata; the phase converts that to
|
|
15
|
+
* the canonical `"UNKNOWN"` sentinel on the DependencyNode.
|
|
16
|
+
*/
|
|
17
|
+
/** Canonical comparison for stable `ParsedDependency[]` ordering. */
|
|
18
|
+
export function compareParsedDependency(a, b) {
|
|
19
|
+
if (a.ecosystem !== b.ecosystem)
|
|
20
|
+
return a.ecosystem < b.ecosystem ? -1 : 1;
|
|
21
|
+
if (a.name !== b.name)
|
|
22
|
+
return a.name < b.name ? -1 : 1;
|
|
23
|
+
if (a.version !== b.version)
|
|
24
|
+
return a.version < b.version ? -1 : 1;
|
|
25
|
+
if (a.lockfileSource !== b.lockfileSource)
|
|
26
|
+
return a.lockfileSource < b.lockfileSource ? -1 : 1;
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* De-duplicate a list of `ParsedDependency` on
|
|
31
|
+
* `(ecosystem, name, version, lockfileSource)`. When two records collide,
|
|
32
|
+
* we keep the first occurrence but prefer a defined `license` over an
|
|
33
|
+
* undefined one — a lockfile with no license + a sibling manifest that
|
|
34
|
+
* carries one should surface as "has license" after dedup. Callers rely
|
|
35
|
+
* on the returned array being sorted canonically so graph output is
|
|
36
|
+
* byte-stable.
|
|
37
|
+
*/
|
|
38
|
+
export function dedupAndSort(deps) {
|
|
39
|
+
const byKey = new Map();
|
|
40
|
+
for (const d of deps) {
|
|
41
|
+
const key = `${d.ecosystem}\x00${d.name}\x00${d.version}\x00${d.lockfileSource}`;
|
|
42
|
+
const existing = byKey.get(key);
|
|
43
|
+
if (existing === undefined) {
|
|
44
|
+
byKey.set(key, d);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
// Prefer an entry carrying a license over one that doesn't.
|
|
48
|
+
if (existing.license === undefined && d.license !== undefined) {
|
|
49
|
+
byKey.set(key, d);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const out = [...byKey.values()];
|
|
53
|
+
out.sort(compareParsedDependency);
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pipeline/dep-parsers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0CH,qEAAqE;AACrE,MAAM,UAAU,uBAAuB,CAAC,CAAmB,EAAE,CAAmB;IAC9E,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;QAAE,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAiC;IAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,4DAA4D;QAC5D,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gitignore rule stacking helper — encapsulates the "layered rule set"
|
|
3
|
+
* semantics git itself honours when nested `.gitignore` files are present.
|
|
4
|
+
*
|
|
5
|
+
* Git's rules (see `man gitignore`):
|
|
6
|
+
* - A `.gitignore` in a subdirectory shadows and extends the rules from
|
|
7
|
+
* its parents. Rules are evaluated from the repo root downward.
|
|
8
|
+
* - A negation (`!pat`) at a deeper layer can re-include a path that a
|
|
9
|
+
* parent layer excluded (and vice versa).
|
|
10
|
+
* - For a given path, evaluation walks the chain top-down; later matches
|
|
11
|
+
* override earlier ones. The final state (ignored / not-ignored) wins.
|
|
12
|
+
*
|
|
13
|
+
* This module does NOT scan the filesystem; it takes a pre-loaded
|
|
14
|
+
* {@link GitignoreChain} (directory-relative paths → parsed rules) and
|
|
15
|
+
* resolves the effective ignored state for a given path. The scan-time
|
|
16
|
+
* walker in `gitignore.ts` handles the actual filesystem recursion.
|
|
17
|
+
*/
|
|
18
|
+
import type { IgnoreRule } from "./gitignore.js";
|
|
19
|
+
/**
|
|
20
|
+
* Map from repo-relative directory path (POSIX, no leading slash; empty
|
|
21
|
+
* string for the repo root) to that directory's parsed `.gitignore`
|
|
22
|
+
* rules. A directory with no `.gitignore` is simply absent from the map.
|
|
23
|
+
*/
|
|
24
|
+
export type GitignoreChain = ReadonlyMap<string, readonly IgnoreRule[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Walk every parent directory of `relPath` from the repo root downward,
|
|
27
|
+
* returning the sequence of layered rule sets that apply to it. Each
|
|
28
|
+
* returned entry carries the owning directory (so rule paths can be made
|
|
29
|
+
* relative to it) plus its rules.
|
|
30
|
+
*/
|
|
31
|
+
export declare function layersFor(relPath: string, chain: GitignoreChain): readonly {
|
|
32
|
+
readonly dir: string;
|
|
33
|
+
readonly rules: readonly IgnoreRule[];
|
|
34
|
+
}[];
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate `relPath` against the layered chain. Rules at deeper layers
|
|
37
|
+
* override rules at shallower layers; within a layer, the last-matching
|
|
38
|
+
* rule wins (same as git). Returns `true` when the path should be
|
|
39
|
+
* ignored.
|
|
40
|
+
*/
|
|
41
|
+
export declare function shouldIgnoreLayered(relPath: string, chain: GitignoreChain, opts?: {
|
|
42
|
+
readonly isDirectory?: boolean;
|
|
43
|
+
}): boolean;
|
|
44
|
+
//# sourceMappingURL=gitignore-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore-stack.d.ts","sourceRoot":"","sources":["../../src/pipeline/gitignore-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GACpB,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,EAAE,CAoB5E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,EACrB,IAAI,GAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,OAAO,CAgBT"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gitignore rule stacking helper — encapsulates the "layered rule set"
|
|
3
|
+
* semantics git itself honours when nested `.gitignore` files are present.
|
|
4
|
+
*
|
|
5
|
+
* Git's rules (see `man gitignore`):
|
|
6
|
+
* - A `.gitignore` in a subdirectory shadows and extends the rules from
|
|
7
|
+
* its parents. Rules are evaluated from the repo root downward.
|
|
8
|
+
* - A negation (`!pat`) at a deeper layer can re-include a path that a
|
|
9
|
+
* parent layer excluded (and vice versa).
|
|
10
|
+
* - For a given path, evaluation walks the chain top-down; later matches
|
|
11
|
+
* override earlier ones. The final state (ignored / not-ignored) wins.
|
|
12
|
+
*
|
|
13
|
+
* This module does NOT scan the filesystem; it takes a pre-loaded
|
|
14
|
+
* {@link GitignoreChain} (directory-relative paths → parsed rules) and
|
|
15
|
+
* resolves the effective ignored state for a given path. The scan-time
|
|
16
|
+
* walker in `gitignore.ts` handles the actual filesystem recursion.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Walk every parent directory of `relPath` from the repo root downward,
|
|
20
|
+
* returning the sequence of layered rule sets that apply to it. Each
|
|
21
|
+
* returned entry carries the owning directory (so rule paths can be made
|
|
22
|
+
* relative to it) plus its rules.
|
|
23
|
+
*/
|
|
24
|
+
export function layersFor(relPath, chain) {
|
|
25
|
+
// Build the sequence of ancestor directories, root first.
|
|
26
|
+
const out = [];
|
|
27
|
+
const rootRules = chain.get("");
|
|
28
|
+
if (rootRules !== undefined && rootRules.length > 0) {
|
|
29
|
+
out.push({ dir: "", rules: rootRules });
|
|
30
|
+
}
|
|
31
|
+
if (relPath === "" || !relPath.includes("/"))
|
|
32
|
+
return out;
|
|
33
|
+
const parts = relPath.split("/");
|
|
34
|
+
// Walk ancestors excluding the file's own name (parts[0..-1)).
|
|
35
|
+
let cur = "";
|
|
36
|
+
for (let i = 0; i < parts.length - 1; i += 1) {
|
|
37
|
+
cur = cur === "" ? parts[i] : `${cur}/${parts[i]}`;
|
|
38
|
+
const rules = chain.get(cur);
|
|
39
|
+
if (rules !== undefined && rules.length > 0) {
|
|
40
|
+
out.push({ dir: cur, rules });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Evaluate `relPath` against the layered chain. Rules at deeper layers
|
|
47
|
+
* override rules at shallower layers; within a layer, the last-matching
|
|
48
|
+
* rule wins (same as git). Returns `true` when the path should be
|
|
49
|
+
* ignored.
|
|
50
|
+
*/
|
|
51
|
+
export function shouldIgnoreLayered(relPath, chain, opts = {}) {
|
|
52
|
+
const isDir = opts.isDirectory === true;
|
|
53
|
+
let ignored = false;
|
|
54
|
+
for (const layer of layersFor(relPath, chain)) {
|
|
55
|
+
// Paths inside a `.gitignore` are interpreted relative to the
|
|
56
|
+
// directory that owns the file. Strip the ancestor prefix so the
|
|
57
|
+
// layer's rules match against the correct sub-path.
|
|
58
|
+
const pathUnderLayer = layer.dir === "" ? relPath : relPath.slice(layer.dir.length + 1);
|
|
59
|
+
for (const rule of layer.rules) {
|
|
60
|
+
if (rule.directoryOnly && !isDir)
|
|
61
|
+
continue;
|
|
62
|
+
if (rule.regex.test(pathUnderLayer)) {
|
|
63
|
+
ignored = !rule.negate;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return ignored;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=gitignore-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore-stack.js","sourceRoot":"","sources":["../../src/pipeline/gitignore-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,KAAqB;IAErB,0DAA0D;IAC1D,MAAM,GAAG,GAAoD,EAAE,CAAC;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,+DAA+D;IAC/D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,KAAqB,EACrB,OAA2C,EAAE;IAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9C,8DAA8D;QAC9D,iEAAiE;QACjE,oDAAoD;QACpD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK;gBAAE,SAAS;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACpC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal gitignore evaluator.
|
|
3
|
+
*
|
|
4
|
+
* Supports the subset of `.gitignore` syntax used in practice:
|
|
5
|
+
* - Comments (`#`) and blank lines.
|
|
6
|
+
* - Trailing-slash directory-only matches.
|
|
7
|
+
* - Leading-slash anchored-to-root matches.
|
|
8
|
+
* - Negation (`!`) re-includes a previously excluded path.
|
|
9
|
+
* - `*` (single segment), `?` (single char), `**` (any number of segments).
|
|
10
|
+
* - Nested `.gitignore` files with layered negation. Rules stack from
|
|
11
|
+
* repo root downward; deeper layers override shallower ones so
|
|
12
|
+
* `docs/.gitignore` can negate rules set by the repo-root file.
|
|
13
|
+
*
|
|
14
|
+
* Not supported today: character classes (`[abc]`), escaped metacharacters
|
|
15
|
+
* (`\*`). We surface them as warnings when the operator enables verbose
|
|
16
|
+
* mode.
|
|
17
|
+
*/
|
|
18
|
+
import type { GitignoreChain } from "./gitignore-stack.js";
|
|
19
|
+
export type { GitignoreChain } from "./gitignore-stack.js";
|
|
20
|
+
export { shouldIgnoreLayered } from "./gitignore-stack.js";
|
|
21
|
+
/** Parsed gitignore rule — order matters; later rules win. */
|
|
22
|
+
export interface IgnoreRule {
|
|
23
|
+
/** Original source line, for debugging. */
|
|
24
|
+
readonly raw: string;
|
|
25
|
+
/** `true` if the rule re-includes (was prefixed with `!`). */
|
|
26
|
+
readonly negate: boolean;
|
|
27
|
+
/** `true` if the rule only matches directories (trailing `/`). */
|
|
28
|
+
readonly directoryOnly: boolean;
|
|
29
|
+
/** `true` if the pattern is anchored to the directory that declared it. */
|
|
30
|
+
readonly anchored: boolean;
|
|
31
|
+
/** RegExp derived from the glob pattern. */
|
|
32
|
+
readonly regex: RegExp;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse a `.gitignore` file's contents into a list of rules.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseGitignore(content: string): IgnoreRule[];
|
|
38
|
+
/**
|
|
39
|
+
* Evaluate a path against a rule set or a layered chain. Two calling
|
|
40
|
+
* shapes are supported to preserve binary-compat with pre-P06 callers:
|
|
41
|
+
*
|
|
42
|
+
* - Legacy: `shouldIgnore(relPath, rules[], opts)` treats the second
|
|
43
|
+
* argument as a flat rule list. Later rules win.
|
|
44
|
+
* - Layered: `shouldIgnore(relPath, chain, opts)` treats a `Map` or
|
|
45
|
+
* {@link GitignoreChain}-style object as a layered rule stack.
|
|
46
|
+
* Deeper layers override shallower ones (git's actual semantics).
|
|
47
|
+
*
|
|
48
|
+
* `relPath` must use forward slashes and be relative to the repo root.
|
|
49
|
+
*/
|
|
50
|
+
export declare function shouldIgnore(relPath: string, rulesOrChain: readonly IgnoreRule[] | GitignoreChain, opts?: {
|
|
51
|
+
readonly isDirectory?: boolean;
|
|
52
|
+
}): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Recursively load every `.gitignore` under `repoPath` into a single chain
|
|
55
|
+
* keyed by repo-relative directory path (POSIX, no leading slash; `""` is
|
|
56
|
+
* the repo root).
|
|
57
|
+
*
|
|
58
|
+
* The walker stops at hardcoded ignores (`node_modules`, `.git`, etc.)
|
|
59
|
+
* plus any directory whose own parent-layered rule set marks it as
|
|
60
|
+
* ignored — i.e. it does not recurse into a directory that the existing
|
|
61
|
+
* rules already ignore. This mirrors git's own behaviour and avoids
|
|
62
|
+
* expanding the ignore tree into `node_modules` subtrees.
|
|
63
|
+
*/
|
|
64
|
+
export declare function loadGitignoreChain(repoPath: string): Promise<Map<string, IgnoreRule[]>>;
|
|
65
|
+
/** Hardcoded directory names we always skip, even absent a `.gitignore`. */
|
|
66
|
+
export declare const HARDCODED_IGNORES: readonly string[];
|
|
67
|
+
//# sourceMappingURL=gitignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/pipeline/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAmC5D;AAuDD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,EACpD,IAAI,GAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,OAAO,CAaT;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAQ7F;AAuCD,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAe9C,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal gitignore evaluator.
|
|
3
|
+
*
|
|
4
|
+
* Supports the subset of `.gitignore` syntax used in practice:
|
|
5
|
+
* - Comments (`#`) and blank lines.
|
|
6
|
+
* - Trailing-slash directory-only matches.
|
|
7
|
+
* - Leading-slash anchored-to-root matches.
|
|
8
|
+
* - Negation (`!`) re-includes a previously excluded path.
|
|
9
|
+
* - `*` (single segment), `?` (single char), `**` (any number of segments).
|
|
10
|
+
* - Nested `.gitignore` files with layered negation. Rules stack from
|
|
11
|
+
* repo root downward; deeper layers override shallower ones so
|
|
12
|
+
* `docs/.gitignore` can negate rules set by the repo-root file.
|
|
13
|
+
*
|
|
14
|
+
* Not supported today: character classes (`[abc]`), escaped metacharacters
|
|
15
|
+
* (`\*`). We surface them as warnings when the operator enables verbose
|
|
16
|
+
* mode.
|
|
17
|
+
*/
|
|
18
|
+
import { promises as fs } from "node:fs";
|
|
19
|
+
import path from "node:path";
|
|
20
|
+
import { META_DIR_NAME } from "@opencodehub/storage";
|
|
21
|
+
import { shouldIgnoreLayered } from "./gitignore-stack.js";
|
|
22
|
+
export { shouldIgnoreLayered } from "./gitignore-stack.js";
|
|
23
|
+
/**
|
|
24
|
+
* Parse a `.gitignore` file's contents into a list of rules.
|
|
25
|
+
*/
|
|
26
|
+
export function parseGitignore(content) {
|
|
27
|
+
const rules = [];
|
|
28
|
+
const lines = content.split(/\r?\n/);
|
|
29
|
+
for (const raw of lines) {
|
|
30
|
+
// Strip trailing whitespace; gitignore treats trailing spaces as part
|
|
31
|
+
// of the pattern only when escaped. We don't support escaped spaces.
|
|
32
|
+
const trimmed = raw.replace(/\s+$/, "");
|
|
33
|
+
if (trimmed === "" || trimmed.startsWith("#"))
|
|
34
|
+
continue;
|
|
35
|
+
let pattern = trimmed;
|
|
36
|
+
let negate = false;
|
|
37
|
+
if (pattern.startsWith("!")) {
|
|
38
|
+
negate = true;
|
|
39
|
+
pattern = pattern.slice(1);
|
|
40
|
+
}
|
|
41
|
+
let directoryOnly = false;
|
|
42
|
+
if (pattern.endsWith("/")) {
|
|
43
|
+
directoryOnly = true;
|
|
44
|
+
pattern = pattern.slice(0, -1);
|
|
45
|
+
}
|
|
46
|
+
let anchored = false;
|
|
47
|
+
if (pattern.startsWith("/")) {
|
|
48
|
+
anchored = true;
|
|
49
|
+
pattern = pattern.slice(1);
|
|
50
|
+
}
|
|
51
|
+
else if (pattern.includes("/")) {
|
|
52
|
+
// Middle-slash patterns are implicitly anchored per git's rules.
|
|
53
|
+
anchored = true;
|
|
54
|
+
}
|
|
55
|
+
const regex = globToRegex(pattern, anchored);
|
|
56
|
+
rules.push({ raw, negate, directoryOnly, anchored, regex });
|
|
57
|
+
}
|
|
58
|
+
return rules;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Translate a gitignore glob into a RegExp matching the relative path
|
|
62
|
+
* below the declaring directory. Paths are normalized to forward slashes
|
|
63
|
+
* by the caller before matching.
|
|
64
|
+
*/
|
|
65
|
+
function globToRegex(glob, anchored) {
|
|
66
|
+
// Walk character by character so we can handle `**` as a special token.
|
|
67
|
+
let out = "";
|
|
68
|
+
let i = 0;
|
|
69
|
+
while (i < glob.length) {
|
|
70
|
+
const c = glob[i];
|
|
71
|
+
if (c === "*") {
|
|
72
|
+
if (glob[i + 1] === "*") {
|
|
73
|
+
// `**` — zero or more path segments.
|
|
74
|
+
// `**/x` -> match `x` at any depth; `x/**` -> match anything under x.
|
|
75
|
+
const next = glob[i + 2];
|
|
76
|
+
if (next === "/") {
|
|
77
|
+
out += "(?:.*/)?";
|
|
78
|
+
i += 3;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
// Trailing `**` — match any remaining suffix.
|
|
82
|
+
out += ".*";
|
|
83
|
+
i += 2;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
// Single `*` — match within a single path segment.
|
|
87
|
+
out += "[^/]*";
|
|
88
|
+
i += 1;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (c === "?") {
|
|
92
|
+
out += "[^/]";
|
|
93
|
+
i += 1;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
// Escape regex metacharacters.
|
|
97
|
+
if (/[.+^${}()|[\]\\]/.test(c)) {
|
|
98
|
+
out += `\\${c}`;
|
|
99
|
+
i += 1;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
out += c;
|
|
103
|
+
i += 1;
|
|
104
|
+
}
|
|
105
|
+
const anchorPrefix = anchored ? "^" : "(?:^|.*/)";
|
|
106
|
+
// Allow the pattern to match either the full path or a path prefix that
|
|
107
|
+
// ends on a `/` (so `build` matches `build/foo.ts`).
|
|
108
|
+
const suffix = "(?:/|$)";
|
|
109
|
+
return new RegExp(`${anchorPrefix}${out}${suffix}`);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Evaluate a path against a rule set or a layered chain. Two calling
|
|
113
|
+
* shapes are supported to preserve binary-compat with pre-P06 callers:
|
|
114
|
+
*
|
|
115
|
+
* - Legacy: `shouldIgnore(relPath, rules[], opts)` treats the second
|
|
116
|
+
* argument as a flat rule list. Later rules win.
|
|
117
|
+
* - Layered: `shouldIgnore(relPath, chain, opts)` treats a `Map` or
|
|
118
|
+
* {@link GitignoreChain}-style object as a layered rule stack.
|
|
119
|
+
* Deeper layers override shallower ones (git's actual semantics).
|
|
120
|
+
*
|
|
121
|
+
* `relPath` must use forward slashes and be relative to the repo root.
|
|
122
|
+
*/
|
|
123
|
+
export function shouldIgnore(relPath, rulesOrChain, opts = {}) {
|
|
124
|
+
if (rulesOrChain instanceof Map) {
|
|
125
|
+
return shouldIgnoreLayered(relPath, rulesOrChain, opts);
|
|
126
|
+
}
|
|
127
|
+
const isDir = opts.isDirectory === true;
|
|
128
|
+
let ignored = false;
|
|
129
|
+
for (const rule of rulesOrChain) {
|
|
130
|
+
if (rule.directoryOnly && !isDir)
|
|
131
|
+
continue;
|
|
132
|
+
if (rule.regex.test(relPath)) {
|
|
133
|
+
ignored = !rule.negate;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return ignored;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Recursively load every `.gitignore` under `repoPath` into a single chain
|
|
140
|
+
* keyed by repo-relative directory path (POSIX, no leading slash; `""` is
|
|
141
|
+
* the repo root).
|
|
142
|
+
*
|
|
143
|
+
* The walker stops at hardcoded ignores (`node_modules`, `.git`, etc.)
|
|
144
|
+
* plus any directory whose own parent-layered rule set marks it as
|
|
145
|
+
* ignored — i.e. it does not recurse into a directory that the existing
|
|
146
|
+
* rules already ignore. This mirrors git's own behaviour and avoids
|
|
147
|
+
* expanding the ignore tree into `node_modules` subtrees.
|
|
148
|
+
*/
|
|
149
|
+
export async function loadGitignoreChain(repoPath) {
|
|
150
|
+
const chain = new Map();
|
|
151
|
+
const hardcoded = new Set(HARDCODED_IGNORES);
|
|
152
|
+
await loadDir(repoPath, "", chain, hardcoded);
|
|
153
|
+
// Always return a `""` entry — scan.ts and other callers rely on its
|
|
154
|
+
// presence (empty array is fine when no root .gitignore exists).
|
|
155
|
+
if (!chain.has(""))
|
|
156
|
+
chain.set("", []);
|
|
157
|
+
return chain;
|
|
158
|
+
}
|
|
159
|
+
async function loadDir(repoPath, relDir, chain, hardcoded) {
|
|
160
|
+
const absDir = path.join(repoPath, relDir);
|
|
161
|
+
const ignoreFile = path.join(absDir, ".gitignore");
|
|
162
|
+
try {
|
|
163
|
+
const content = await fs.readFile(ignoreFile, "utf8");
|
|
164
|
+
chain.set(relDir, parseGitignore(content));
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
// No .gitignore here — nothing to stack for this layer. Deeper
|
|
168
|
+
// layers may still contribute rules.
|
|
169
|
+
}
|
|
170
|
+
let entries;
|
|
171
|
+
try {
|
|
172
|
+
entries = await fs.readdir(absDir, { withFileTypes: true });
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
for (const entry of entries) {
|
|
178
|
+
if (!entry.isDirectory())
|
|
179
|
+
continue;
|
|
180
|
+
if (hardcoded.has(entry.name))
|
|
181
|
+
continue;
|
|
182
|
+
const childRel = relDir === "" ? entry.name : `${relDir}/${entry.name}`;
|
|
183
|
+
// Respect the chain we've built up so far so we don't descend into a
|
|
184
|
+
// subtree the parent layer already excluded. A directory ignored at
|
|
185
|
+
// layer N is still ignored at layer N+1 unless a deeper .gitignore
|
|
186
|
+
// re-includes it via a negation — and in that case we need to walk
|
|
187
|
+
// in anyway. The conservative win here is to recurse: the extra
|
|
188
|
+
// .gitignore reads are cheap and we match git's behaviour more
|
|
189
|
+
// exactly.
|
|
190
|
+
await loadDir(repoPath, childRel, chain, hardcoded);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** Hardcoded directory names we always skip, even absent a `.gitignore`. */
|
|
194
|
+
export const HARDCODED_IGNORES = [
|
|
195
|
+
"node_modules",
|
|
196
|
+
".git",
|
|
197
|
+
".svn",
|
|
198
|
+
".hg",
|
|
199
|
+
"dist",
|
|
200
|
+
"build",
|
|
201
|
+
"target",
|
|
202
|
+
META_DIR_NAME,
|
|
203
|
+
".venv",
|
|
204
|
+
"__pycache__",
|
|
205
|
+
".next",
|
|
206
|
+
".nuxt",
|
|
207
|
+
".turbo",
|
|
208
|
+
"coverage",
|
|
209
|
+
];
|
|
210
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/pipeline/gitignore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Barrel exports for the pipeline subsystem.
|
|
3
|
+
*/
|
|
4
|
+
export type { IgnoreRule } from "./gitignore.js";
|
|
5
|
+
export { HARDCODED_IGNORES, loadGitignoreChain, parseGitignore, shouldIgnore, } from "./gitignore.js";
|
|
6
|
+
export type { RunIngestionOptions, RunPipelineResult } from "./orchestrator.js";
|
|
7
|
+
export { runIngestion } from "./orchestrator.js";
|
|
8
|
+
export type { CochangeOptions, CochangeOutput } from "./phases/cochange.js";
|
|
9
|
+
export { COCHANGE_PHASE_NAME, cochangePhase, DEFAULT_MAX_FILES_PER_COMMIT, } from "./phases/cochange.js";
|
|
10
|
+
export type { ComplexityOutput } from "./phases/complexity.js";
|
|
11
|
+
export { COMPLEXITY_PHASE_NAME, complexityPhase } from "./phases/complexity.js";
|
|
12
|
+
export type { CachedCapture, CachedExtractions, CacheEntry, CacheKey, } from "./phases/content-cache.js";
|
|
13
|
+
export { CACHE_VERSION, cacheFilePath, computeCacheSize, deriveCacheKey, readCacheEntry, writeCacheEntry, } from "./phases/content-cache.js";
|
|
14
|
+
export { DEFAULT_PHASES } from "./phases/default-set.js";
|
|
15
|
+
export type { EmbedderPhaseOutput, EmbeddingHashCacheAdapter } from "./phases/embeddings.js";
|
|
16
|
+
export { EMBEDDER_PHASE_NAME, EMBEDDING_HASH_CACHE_OPTIONS_KEY, embeddingsPhase, } from "./phases/embeddings.js";
|
|
17
|
+
export type { FetchesOutput } from "./phases/fetches.js";
|
|
18
|
+
export { FETCHES_PHASE_NAME, fetchesPhase, UNRESOLVED_FETCH_TARGET_PREFIX, } from "./phases/fetches.js";
|
|
19
|
+
export type { IncrementalScopeOutput } from "./phases/incremental-scope.js";
|
|
20
|
+
export { INCREMENTAL_SCOPE_PHASE_NAME, incrementalScopePhase, } from "./phases/incremental-scope.js";
|
|
21
|
+
export type { MarkdownOutput } from "./phases/markdown.js";
|
|
22
|
+
export { MARKDOWN_PHASE_NAME, markdownPhase } from "./phases/markdown.js";
|
|
23
|
+
export type { OpenApiOutput } from "./phases/openapi.js";
|
|
24
|
+
export { OPENAPI_PHASE_NAME, openapiPhase } from "./phases/openapi.js";
|
|
25
|
+
export type { OrmOutput } from "./phases/orm.js";
|
|
26
|
+
export { ORM_EXTERNAL_PATH, ORM_PHASE_NAME, ormPhase } from "./phases/orm.js";
|
|
27
|
+
export type { OwnershipOptions, OwnershipOutput } from "./phases/ownership.js";
|
|
28
|
+
export { OWNERSHIP_PHASE_NAME, ownershipPhase } from "./phases/ownership.js";
|
|
29
|
+
export type { ParseOutput } from "./phases/parse.js";
|
|
30
|
+
export { PARSE_PHASE_NAME, parsePhase } from "./phases/parse.js";
|
|
31
|
+
export type { ProfileOutput } from "./phases/profile.js";
|
|
32
|
+
export { PROFILE_PHASE_NAME, profilePhase } from "./phases/profile.js";
|
|
33
|
+
export type { GitProbe, RepoNodePhaseInput, RepoNodePhaseOutput, } from "./phases/repo-node.js";
|
|
34
|
+
export { defaultGitProbe, deriveLanguageStats, deriveLocalRepoUri, deriveRepoUri, REPO_NODE_PHASE_NAME, repoNodePhase, runRepoNodePhase, } from "./phases/repo-node.js";
|
|
35
|
+
export type { RiskSnapshotOptions, RiskSnapshotOutput } from "./phases/risk-snapshot.js";
|
|
36
|
+
export { RISK_SNAPSHOT_PHASE_NAME, riskSnapshotPhase, } from "./phases/risk-snapshot.js";
|
|
37
|
+
export type { RoutesOutput } from "./phases/routes.js";
|
|
38
|
+
export { ROUTES_PHASE_NAME, routesPhase } from "./phases/routes.js";
|
|
39
|
+
export type { SbomOutput } from "./phases/sbom.js";
|
|
40
|
+
export { SBOM_PHASE_NAME, sbomPhase } from "./phases/sbom.js";
|
|
41
|
+
export type { ScannedFile, ScanOutput } from "./phases/scan.js";
|
|
42
|
+
export { SCAN_PHASE_NAME, scanPhase } from "./phases/scan.js";
|
|
43
|
+
export type { StructureOutput } from "./phases/structure.js";
|
|
44
|
+
export { STRUCTURE_PHASE_NAME, structurePhase } from "./phases/structure.js";
|
|
45
|
+
export type { SummarizePhaseOutput, SummarizerAdapter, SummaryCacheAdapter, } from "./phases/summarize.js";
|
|
46
|
+
export { __setSummarizePhaseTestHooks__, SUMMARIZE_PHASE_NAME, SUMMARY_CACHE_OPTIONS_KEY, summarizePhase, } from "./phases/summarize.js";
|
|
47
|
+
export type { TemporalCommitManifest, TemporalOptions, TemporalOutput, } from "./phases/temporal.js";
|
|
48
|
+
export { TEMPORAL_PHASE_NAME, temporalPhase } from "./phases/temporal.js";
|
|
49
|
+
export type { ToolsOutput } from "./phases/tools.js";
|
|
50
|
+
export { TOOLS_PHASE_NAME, toolsPhase } from "./phases/tools.js";
|
|
51
|
+
export { PipelineGraphError, runPipeline, topologicalSort, validatePipeline, } from "./runner.js";
|
|
52
|
+
export type { PhaseResult, PipelineContext, PipelineOptions, PipelinePhase, PreviousGraph, ProgressEvent, } from "./types.js";
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Barrel exports for the pipeline subsystem.
|
|
3
|
+
*/
|
|
4
|
+
export { HARDCODED_IGNORES, loadGitignoreChain, parseGitignore, shouldIgnore, } from "./gitignore.js";
|
|
5
|
+
export { runIngestion } from "./orchestrator.js";
|
|
6
|
+
export { COCHANGE_PHASE_NAME, cochangePhase, DEFAULT_MAX_FILES_PER_COMMIT, } from "./phases/cochange.js";
|
|
7
|
+
export { COMPLEXITY_PHASE_NAME, complexityPhase } from "./phases/complexity.js";
|
|
8
|
+
export { CACHE_VERSION, cacheFilePath, computeCacheSize, deriveCacheKey, readCacheEntry, writeCacheEntry, } from "./phases/content-cache.js";
|
|
9
|
+
export { DEFAULT_PHASES } from "./phases/default-set.js";
|
|
10
|
+
export { EMBEDDER_PHASE_NAME, EMBEDDING_HASH_CACHE_OPTIONS_KEY, embeddingsPhase, } from "./phases/embeddings.js";
|
|
11
|
+
export { FETCHES_PHASE_NAME, fetchesPhase, UNRESOLVED_FETCH_TARGET_PREFIX, } from "./phases/fetches.js";
|
|
12
|
+
export { INCREMENTAL_SCOPE_PHASE_NAME, incrementalScopePhase, } from "./phases/incremental-scope.js";
|
|
13
|
+
export { MARKDOWN_PHASE_NAME, markdownPhase } from "./phases/markdown.js";
|
|
14
|
+
export { OPENAPI_PHASE_NAME, openapiPhase } from "./phases/openapi.js";
|
|
15
|
+
export { ORM_EXTERNAL_PATH, ORM_PHASE_NAME, ormPhase } from "./phases/orm.js";
|
|
16
|
+
export { OWNERSHIP_PHASE_NAME, ownershipPhase } from "./phases/ownership.js";
|
|
17
|
+
export { PARSE_PHASE_NAME, parsePhase } from "./phases/parse.js";
|
|
18
|
+
export { PROFILE_PHASE_NAME, profilePhase } from "./phases/profile.js";
|
|
19
|
+
export { defaultGitProbe, deriveLanguageStats, deriveLocalRepoUri, deriveRepoUri, REPO_NODE_PHASE_NAME, repoNodePhase, runRepoNodePhase, } from "./phases/repo-node.js";
|
|
20
|
+
export { RISK_SNAPSHOT_PHASE_NAME, riskSnapshotPhase, } from "./phases/risk-snapshot.js";
|
|
21
|
+
export { ROUTES_PHASE_NAME, routesPhase } from "./phases/routes.js";
|
|
22
|
+
export { SBOM_PHASE_NAME, sbomPhase } from "./phases/sbom.js";
|
|
23
|
+
export { SCAN_PHASE_NAME, scanPhase } from "./phases/scan.js";
|
|
24
|
+
export { STRUCTURE_PHASE_NAME, structurePhase } from "./phases/structure.js";
|
|
25
|
+
export { __setSummarizePhaseTestHooks__, SUMMARIZE_PHASE_NAME, SUMMARY_CACHE_OPTIONS_KEY, summarizePhase, } from "./phases/summarize.js";
|
|
26
|
+
export { TEMPORAL_PHASE_NAME, temporalPhase } from "./phases/temporal.js";
|
|
27
|
+
export { TOOLS_PHASE_NAME, toolsPhase } from "./phases/tools.js";
|
|
28
|
+
export { PipelineGraphError, runPipeline, topologicalSort, validatePipeline, } from "./runner.js";
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOhF,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMvE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM7E,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
|