@opensip-cli/fitness 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/NOTICE +8 -0
- package/README.md +31 -0
- package/dist/__tests__/baseline-plane.test.d.ts +12 -0
- package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
- package/dist/__tests__/baseline-plane.test.js +63 -0
- package/dist/__tests__/baseline-plane.test.js.map +1 -0
- package/dist/__tests__/check-utils.test.d.ts +10 -0
- package/dist/__tests__/check-utils.test.d.ts.map +1 -0
- package/dist/__tests__/check-utils.test.js +193 -0
- package/dist/__tests__/check-utils.test.js.map +1 -0
- package/dist/__tests__/fingerprint-parity.test.d.ts +14 -0
- package/dist/__tests__/fingerprint-parity.test.d.ts.map +1 -0
- package/dist/__tests__/fingerprint-parity.test.js +59 -0
- package/dist/__tests__/fingerprint-parity.test.js.map +1 -0
- package/dist/__tests__/fit-execute-opts.test.d.ts +15 -0
- package/dist/__tests__/fit-execute-opts.test.d.ts.map +1 -0
- package/dist/__tests__/fit-execute-opts.test.js +124 -0
- package/dist/__tests__/fit-execute-opts.test.js.map +1 -0
- package/dist/__tests__/public-api.test.d.ts +19 -0
- package/dist/__tests__/public-api.test.d.ts.map +1 -0
- package/dist/__tests__/public-api.test.js +85 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/tool.test.d.ts +10 -0
- package/dist/__tests__/tool.test.d.ts.map +1 -0
- package/dist/__tests__/tool.test.js +57 -0
- package/dist/__tests__/tool.test.js.map +1 -0
- package/dist/baseline-strategy.d.ts +21 -0
- package/dist/baseline-strategy.d.ts.map +1 -0
- package/dist/baseline-strategy.js +21 -0
- package/dist/baseline-strategy.js.map +1 -0
- package/dist/check-utils/display.d.ts +52 -0
- package/dist/check-utils/display.d.ts.map +1 -0
- package/dist/check-utils/display.js +66 -0
- package/dist/check-utils/display.js.map +1 -0
- package/dist/check-utils/index.d.ts +17 -0
- package/dist/check-utils/index.d.ts.map +1 -0
- package/dist/check-utils/index.js +13 -0
- package/dist/check-utils/index.js.map +1 -0
- package/dist/check-utils/path-matching.d.ts +40 -0
- package/dist/check-utils/path-matching.d.ts.map +1 -0
- package/dist/check-utils/path-matching.js +38 -0
- package/dist/check-utils/path-matching.js.map +1 -0
- package/dist/check-utils/source-analysis.d.ts +36 -0
- package/dist/check-utils/source-analysis.d.ts.map +1 -0
- package/dist/check-utils/source-analysis.js +44 -0
- package/dist/check-utils/source-analysis.js.map +1 -0
- package/dist/check-utils/test-helpers.d.ts +57 -0
- package/dist/check-utils/test-helpers.d.ts.map +1 -0
- package/dist/check-utils/test-helpers.js +71 -0
- package/dist/check-utils/test-helpers.js.map +1 -0
- package/dist/cli/__tests__/fit-gate-mode.test.d.ts +14 -0
- package/dist/cli/__tests__/fit-gate-mode.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-gate-mode.test.js +110 -0
- package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -0
- package/dist/cli/__tests__/fit-modes-live.test.d.ts +13 -0
- package/dist/cli/__tests__/fit-modes-live.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-modes-live.test.js +182 -0
- package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -0
- package/dist/cli/__tests__/report-data.test.d.ts +12 -0
- package/dist/cli/__tests__/report-data.test.d.ts.map +1 -0
- package/dist/cli/__tests__/report-data.test.js +113 -0
- package/dist/cli/__tests__/report-data.test.js.map +1 -0
- package/dist/cli/fit/__tests__/display-fold.test.d.ts +8 -0
- package/dist/cli/fit/__tests__/display-fold.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/display-fold.test.js +87 -0
- package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts +16 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js +62 -0
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js.map +1 -0
- package/dist/cli/fit/check-loader.d.ts +37 -0
- package/dist/cli/fit/check-loader.d.ts.map +1 -0
- package/dist/cli/fit/check-loader.js +154 -0
- package/dist/cli/fit/check-loader.js.map +1 -0
- package/dist/cli/fit/config-loader.d.ts +55 -0
- package/dist/cli/fit/config-loader.d.ts.map +1 -0
- package/dist/cli/fit/config-loader.js +107 -0
- package/dist/cli/fit/config-loader.js.map +1 -0
- package/dist/cli/fit/display-registry.d.ts +19 -0
- package/dist/cli/fit/display-registry.d.ts.map +1 -0
- package/dist/cli/fit/display-registry.js +33 -0
- package/dist/cli/fit/display-registry.js.map +1 -0
- package/dist/cli/fit/envelope-view.d.ts +49 -0
- package/dist/cli/fit/envelope-view.d.ts.map +1 -0
- package/dist/cli/fit/envelope-view.js +85 -0
- package/dist/cli/fit/envelope-view.js.map +1 -0
- package/dist/cli/fit/fit-aux-command-specs.d.ts +35 -0
- package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -0
- package/dist/cli/fit/fit-aux-command-specs.js +110 -0
- package/dist/cli/fit/fit-aux-command-specs.js.map +1 -0
- package/dist/cli/fit/fit-command-spec.d.ts +24 -0
- package/dist/cli/fit/fit-command-spec.d.ts.map +1 -0
- package/dist/cli/fit/fit-command-spec.js +131 -0
- package/dist/cli/fit/fit-command-spec.js.map +1 -0
- package/dist/cli/fit/gate-compare-render.d.ts +13 -0
- package/dist/cli/fit/gate-compare-render.d.ts.map +1 -0
- package/dist/cli/fit/gate-compare-render.js +87 -0
- package/dist/cli/fit/gate-compare-render.js.map +1 -0
- package/dist/cli/fit/recipe-selector.d.ts +53 -0
- package/dist/cli/fit/recipe-selector.d.ts.map +1 -0
- package/dist/cli/fit/recipe-selector.js +106 -0
- package/dist/cli/fit/recipe-selector.js.map +1 -0
- package/dist/cli/fit/recipe-selector.test.d.ts +2 -0
- package/dist/cli/fit/recipe-selector.test.d.ts.map +1 -0
- package/dist/cli/fit/recipe-selector.test.js +69 -0
- package/dist/cli/fit/recipe-selector.test.js.map +1 -0
- package/dist/cli/fit/resolved-fitness-config.d.ts +48 -0
- package/dist/cli/fit/resolved-fitness-config.d.ts.map +1 -0
- package/dist/cli/fit/resolved-fitness-config.js +46 -0
- package/dist/cli/fit/resolved-fitness-config.js.map +1 -0
- package/dist/cli/fit/result-builders.d.ts +91 -0
- package/dist/cli/fit/result-builders.d.ts.map +1 -0
- package/dist/cli/fit/result-builders.js +206 -0
- package/dist/cli/fit/result-builders.js.map +1 -0
- package/dist/cli/fit-list.d.ts +7 -0
- package/dist/cli/fit-list.d.ts.map +1 -0
- package/dist/cli/fit-list.js +24 -0
- package/dist/cli/fit-list.js.map +1 -0
- package/dist/cli/fit-modes.d.ts +42 -0
- package/dist/cli/fit-modes.d.ts.map +1 -0
- package/dist/cli/fit-modes.js +322 -0
- package/dist/cli/fit-modes.js.map +1 -0
- package/dist/cli/fit-recipes.d.ts +7 -0
- package/dist/cli/fit-recipes.d.ts.map +1 -0
- package/dist/cli/fit-recipes.js +34 -0
- package/dist/cli/fit-recipes.js.map +1 -0
- package/dist/cli/fit-runner-views.d.ts +33 -0
- package/dist/cli/fit-runner-views.d.ts.map +1 -0
- package/dist/cli/fit-runner-views.js +92 -0
- package/dist/cli/fit-runner-views.js.map +1 -0
- package/dist/cli/fit-runner.d.ts +44 -0
- package/dist/cli/fit-runner.d.ts.map +1 -0
- package/dist/cli/fit-runner.js +250 -0
- package/dist/cli/fit-runner.js.map +1 -0
- package/dist/cli/fit-worker.d.ts +26 -0
- package/dist/cli/fit-worker.d.ts.map +1 -0
- package/dist/cli/fit-worker.js +67 -0
- package/dist/cli/fit-worker.js.map +1 -0
- package/dist/cli/fit.d.ts +74 -0
- package/dist/cli/fit.d.ts.map +1 -0
- package/dist/cli/fit.js +149 -0
- package/dist/cli/fit.js.map +1 -0
- package/dist/cli/report-data.d.ts +44 -0
- package/dist/cli/report-data.d.ts.map +1 -0
- package/dist/cli/report-data.js +89 -0
- package/dist/cli/report-data.js.map +1 -0
- package/dist/config/__tests__/fitness-config-schema.test.d.ts +6 -0
- package/dist/config/__tests__/fitness-config-schema.test.d.ts.map +1 -0
- package/dist/config/__tests__/fitness-config-schema.test.js +37 -0
- package/dist/config/__tests__/fitness-config-schema.test.js.map +1 -0
- package/dist/config/fitness-config-schema.d.ts +48 -0
- package/dist/config/fitness-config-schema.d.ts.map +1 -0
- package/dist/config/fitness-config-schema.js +62 -0
- package/dist/config/fitness-config-schema.js.map +1 -0
- package/dist/framework/__tests__/abortable-exec.test.d.ts +9 -0
- package/dist/framework/__tests__/abortable-exec.test.d.ts.map +1 -0
- package/dist/framework/__tests__/abortable-exec.test.js +102 -0
- package/dist/framework/__tests__/abortable-exec.test.js.map +1 -0
- package/dist/framework/__tests__/check-config.test.d.ts +2 -0
- package/dist/framework/__tests__/check-config.test.d.ts.map +1 -0
- package/dist/framework/__tests__/check-config.test.js +56 -0
- package/dist/framework/__tests__/check-config.test.js.map +1 -0
- package/dist/framework/__tests__/check-types.test.d.ts +2 -0
- package/dist/framework/__tests__/check-types.test.d.ts.map +1 -0
- package/dist/framework/__tests__/check-types.test.js +76 -0
- package/dist/framework/__tests__/check-types.test.js.map +1 -0
- package/dist/framework/__tests__/command-executor.test.d.ts +2 -0
- package/dist/framework/__tests__/command-executor.test.d.ts.map +1 -0
- package/dist/framework/__tests__/command-executor.test.js +110 -0
- package/dist/framework/__tests__/command-executor.test.js.map +1 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.d.ts +2 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.d.ts.map +1 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.js +122 -0
- package/dist/framework/__tests__/content-filter-dispatch.test.js.map +1 -0
- package/dist/framework/__tests__/define-check.test.d.ts +2 -0
- package/dist/framework/__tests__/define-check.test.d.ts.map +1 -0
- package/dist/framework/__tests__/define-check.test.js +402 -0
- package/dist/framework/__tests__/define-check.test.js.map +1 -0
- package/dist/framework/__tests__/define-regex-list-check.test.d.ts +15 -0
- package/dist/framework/__tests__/define-regex-list-check.test.d.ts.map +1 -0
- package/dist/framework/__tests__/define-regex-list-check.test.js +299 -0
- package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -0
- package/dist/framework/__tests__/directive-inventory.test.d.ts +2 -0
- package/dist/framework/__tests__/directive-inventory.test.d.ts.map +1 -0
- package/dist/framework/__tests__/directive-inventory.test.js +111 -0
- package/dist/framework/__tests__/directive-inventory.test.js.map +1 -0
- package/dist/framework/__tests__/directive-parsing.test.d.ts +13 -0
- package/dist/framework/__tests__/directive-parsing.test.d.ts.map +1 -0
- package/dist/framework/__tests__/directive-parsing.test.js +86 -0
- package/dist/framework/__tests__/directive-parsing.test.js.map +1 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts +2 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts.map +1 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +56 -0
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -0
- package/dist/framework/__tests__/execution-context.test.d.ts +2 -0
- package/dist/framework/__tests__/execution-context.test.d.ts.map +1 -0
- package/dist/framework/__tests__/execution-context.test.js +140 -0
- package/dist/framework/__tests__/execution-context.test.js.map +1 -0
- package/dist/framework/__tests__/file-accessor.test.d.ts +2 -0
- package/dist/framework/__tests__/file-accessor.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-accessor.test.js +106 -0
- package/dist/framework/__tests__/file-accessor.test.js.map +1 -0
- package/dist/framework/__tests__/file-cache.test.d.ts +2 -0
- package/dist/framework/__tests__/file-cache.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-cache.test.js +122 -0
- package/dist/framework/__tests__/file-cache.test.js.map +1 -0
- package/dist/framework/__tests__/file-type-filter.test.d.ts +9 -0
- package/dist/framework/__tests__/file-type-filter.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-type-filter.test.js +39 -0
- package/dist/framework/__tests__/file-type-filter.test.js.map +1 -0
- package/dist/framework/__tests__/ignore-processing.test.d.ts +11 -0
- package/dist/framework/__tests__/ignore-processing.test.d.ts.map +1 -0
- package/dist/framework/__tests__/ignore-processing.test.js +175 -0
- package/dist/framework/__tests__/ignore-processing.test.js.map +1 -0
- package/dist/framework/__tests__/import-graph.test.d.ts +15 -0
- package/dist/framework/__tests__/import-graph.test.d.ts.map +1 -0
- package/dist/framework/__tests__/import-graph.test.js +164 -0
- package/dist/framework/__tests__/import-graph.test.js.map +1 -0
- package/dist/framework/__tests__/memory-profiler.test.d.ts +9 -0
- package/dist/framework/__tests__/memory-profiler.test.d.ts.map +1 -0
- package/dist/framework/__tests__/memory-profiler.test.js +108 -0
- package/dist/framework/__tests__/memory-profiler.test.js.map +1 -0
- package/dist/framework/__tests__/parse-cache.test.d.ts +9 -0
- package/dist/framework/__tests__/parse-cache.test.d.ts.map +1 -0
- package/dist/framework/__tests__/parse-cache.test.js +51 -0
- package/dist/framework/__tests__/parse-cache.test.js.map +1 -0
- package/dist/framework/__tests__/path-matcher.test.d.ts +2 -0
- package/dist/framework/__tests__/path-matcher.test.d.ts.map +1 -0
- package/dist/framework/__tests__/path-matcher.test.js +113 -0
- package/dist/framework/__tests__/path-matcher.test.js.map +1 -0
- package/dist/framework/__tests__/register-helpers.test.d.ts +2 -0
- package/dist/framework/__tests__/register-helpers.test.d.ts.map +1 -0
- package/dist/framework/__tests__/register-helpers.test.js +51 -0
- package/dist/framework/__tests__/register-helpers.test.js.map +1 -0
- package/dist/framework/__tests__/registry.test.d.ts +2 -0
- package/dist/framework/__tests__/registry.test.d.ts.map +1 -0
- package/dist/framework/__tests__/registry.test.js +211 -0
- package/dist/framework/__tests__/registry.test.js.map +1 -0
- package/dist/framework/__tests__/result-builder.test.d.ts +2 -0
- package/dist/framework/__tests__/result-builder.test.d.ts.map +1 -0
- package/dist/framework/__tests__/result-builder.test.js +153 -0
- package/dist/framework/__tests__/result-builder.test.js.map +1 -0
- package/dist/framework/__tests__/scope-registry.test.d.ts +8 -0
- package/dist/framework/__tests__/scope-registry.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-registry.test.js +156 -0
- package/dist/framework/__tests__/scope-registry.test.js.map +1 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.d.ts +2 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.js +105 -0
- package/dist/framework/__tests__/scope-resolver.golden.test.js.map +1 -0
- package/dist/framework/__tests__/scope-resolver.test.d.ts +2 -0
- package/dist/framework/__tests__/scope-resolver.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scope-resolver.test.js +150 -0
- package/dist/framework/__tests__/scope-resolver.test.js.map +1 -0
- package/dist/framework/__tests__/severity-mapping.test.d.ts +2 -0
- package/dist/framework/__tests__/severity-mapping.test.d.ts.map +1 -0
- package/dist/framework/__tests__/severity-mapping.test.js +74 -0
- package/dist/framework/__tests__/severity-mapping.test.js.map +1 -0
- package/dist/framework/__tests__/strip-literals.test.d.ts +2 -0
- package/dist/framework/__tests__/strip-literals.test.d.ts.map +1 -0
- package/dist/framework/__tests__/strip-literals.test.js +87 -0
- package/dist/framework/__tests__/strip-literals.test.js.map +1 -0
- package/dist/framework/abortable-exec.d.ts +34 -0
- package/dist/framework/abortable-exec.d.ts.map +1 -0
- package/dist/framework/abortable-exec.js +143 -0
- package/dist/framework/abortable-exec.js.map +1 -0
- package/dist/framework/check-config.d.ts +175 -0
- package/dist/framework/check-config.d.ts.map +1 -0
- package/dist/framework/check-config.js +115 -0
- package/dist/framework/check-config.js.map +1 -0
- package/dist/framework/check-types.d.ts +82 -0
- package/dist/framework/check-types.d.ts.map +1 -0
- package/dist/framework/check-types.js +63 -0
- package/dist/framework/check-types.js.map +1 -0
- package/dist/framework/command-executor.d.ts +25 -0
- package/dist/framework/command-executor.d.ts.map +1 -0
- package/dist/framework/command-executor.js +63 -0
- package/dist/framework/command-executor.js.map +1 -0
- package/dist/framework/comment-openers.d.ts +11 -0
- package/dist/framework/comment-openers.d.ts.map +1 -0
- package/dist/framework/comment-openers.js +11 -0
- package/dist/framework/comment-openers.js.map +1 -0
- package/dist/framework/constants.d.ts +9 -0
- package/dist/framework/constants.d.ts.map +1 -0
- package/dist/framework/constants.js +16 -0
- package/dist/framework/constants.js.map +1 -0
- package/dist/framework/define-check.d.ts +38 -0
- package/dist/framework/define-check.d.ts.map +1 -0
- package/dist/framework/define-check.js +296 -0
- package/dist/framework/define-check.js.map +1 -0
- package/dist/framework/define-regex-list-check.d.ts +160 -0
- package/dist/framework/define-regex-list-check.d.ts.map +1 -0
- package/dist/framework/define-regex-list-check.js +177 -0
- package/dist/framework/define-regex-list-check.js.map +1 -0
- package/dist/framework/directive-inventory.d.ts +37 -0
- package/dist/framework/directive-inventory.d.ts.map +1 -0
- package/dist/framework/directive-inventory.js +82 -0
- package/dist/framework/directive-inventory.js.map +1 -0
- package/dist/framework/directive-parsing.d.ts +23 -0
- package/dist/framework/directive-parsing.d.ts.map +1 -0
- package/dist/framework/directive-parsing.js +39 -0
- package/dist/framework/directive-parsing.js.map +1 -0
- package/dist/framework/execution-context.d.ts +98 -0
- package/dist/framework/execution-context.d.ts.map +1 -0
- package/dist/framework/execution-context.js +145 -0
- package/dist/framework/execution-context.js.map +1 -0
- package/dist/framework/file-accessor.d.ts +20 -0
- package/dist/framework/file-accessor.d.ts.map +1 -0
- package/dist/framework/file-accessor.js +122 -0
- package/dist/framework/file-accessor.js.map +1 -0
- package/dist/framework/file-cache.d.ts +70 -0
- package/dist/framework/file-cache.d.ts.map +1 -0
- package/dist/framework/file-cache.js +199 -0
- package/dist/framework/file-cache.js.map +1 -0
- package/dist/framework/file-type-filter.d.ts +11 -0
- package/dist/framework/file-type-filter.d.ts.map +1 -0
- package/dist/framework/file-type-filter.js +21 -0
- package/dist/framework/file-type-filter.js.map +1 -0
- package/dist/framework/ignore-processing.d.ts +36 -0
- package/dist/framework/ignore-processing.d.ts.map +1 -0
- package/dist/framework/ignore-processing.js +172 -0
- package/dist/framework/ignore-processing.js.map +1 -0
- package/dist/framework/import-graph.d.ts +51 -0
- package/dist/framework/import-graph.d.ts.map +1 -0
- package/dist/framework/import-graph.js +217 -0
- package/dist/framework/import-graph.js.map +1 -0
- package/dist/framework/memory-profiler.d.ts +53 -0
- package/dist/framework/memory-profiler.d.ts.map +1 -0
- package/dist/framework/memory-profiler.js +92 -0
- package/dist/framework/memory-profiler.js.map +1 -0
- package/dist/framework/parse-cache.d.ts +24 -0
- package/dist/framework/parse-cache.d.ts.map +1 -0
- package/dist/framework/parse-cache.js +41 -0
- package/dist/framework/parse-cache.js.map +1 -0
- package/dist/framework/path-matcher.d.ts +86 -0
- package/dist/framework/path-matcher.d.ts.map +1 -0
- package/dist/framework/path-matcher.js +138 -0
- package/dist/framework/path-matcher.js.map +1 -0
- package/dist/framework/register-helpers.d.ts +11 -0
- package/dist/framework/register-helpers.d.ts.map +1 -0
- package/dist/framework/register-helpers.js +19 -0
- package/dist/framework/register-helpers.js.map +1 -0
- package/dist/framework/registry.d.ts +51 -0
- package/dist/framework/registry.d.ts.map +1 -0
- package/dist/framework/registry.js +131 -0
- package/dist/framework/registry.js.map +1 -0
- package/dist/framework/result-builder.d.ts +74 -0
- package/dist/framework/result-builder.d.ts.map +1 -0
- package/dist/framework/result-builder.js +154 -0
- package/dist/framework/result-builder.js.map +1 -0
- package/dist/framework/scope-registry.d.ts +38 -0
- package/dist/framework/scope-registry.d.ts.map +1 -0
- package/dist/framework/scope-registry.js +77 -0
- package/dist/framework/scope-registry.js.map +1 -0
- package/dist/framework/scope-resolver.d.ts +23 -0
- package/dist/framework/scope-resolver.d.ts.map +1 -0
- package/dist/framework/scope-resolver.js +102 -0
- package/dist/framework/scope-resolver.js.map +1 -0
- package/dist/framework/severity-mapping.d.ts +17 -0
- package/dist/framework/severity-mapping.d.ts.map +1 -0
- package/dist/framework/severity-mapping.js +71 -0
- package/dist/framework/severity-mapping.js.map +1 -0
- package/dist/framework/strip-literals.d.ts +73 -0
- package/dist/framework/strip-literals.d.ts.map +1 -0
- package/dist/framework/strip-literals.js +213 -0
- package/dist/framework/strip-literals.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +17 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +17 -0
- package/dist/internal.js.map +1 -0
- package/dist/persistence/session-payload.d.ts +68 -0
- package/dist/persistence/session-payload.d.ts.map +1 -0
- package/dist/persistence/session-payload.js +78 -0
- package/dist/persistence/session-payload.js.map +1 -0
- package/dist/persistence/session-payload.test.d.ts +11 -0
- package/dist/persistence/session-payload.test.d.ts.map +1 -0
- package/dist/persistence/session-payload.test.js +80 -0
- package/dist/persistence/session-payload.test.js.map +1 -0
- package/dist/persistence/session-replay.d.ts +14 -0
- package/dist/persistence/session-replay.d.ts.map +1 -0
- package/dist/persistence/session-replay.js +85 -0
- package/dist/persistence/session-replay.js.map +1 -0
- package/dist/persistence/session-replay.test.d.ts +10 -0
- package/dist/persistence/session-replay.test.d.ts.map +1 -0
- package/dist/persistence/session-replay.test.js +171 -0
- package/dist/persistence/session-replay.test.js.map +1 -0
- package/dist/plugins/__tests__/check-package-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/check-package-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/check-package-discovery.test.js +48 -0
- package/dist/plugins/__tests__/check-package-discovery.test.js.map +1 -0
- package/dist/plugins/__tests__/lang-domain.test.d.ts +2 -0
- package/dist/plugins/__tests__/lang-domain.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/lang-domain.test.js +192 -0
- package/dist/plugins/__tests__/lang-domain.test.js.map +1 -0
- package/dist/plugins/__tests__/loader.test.d.ts +2 -0
- package/dist/plugins/__tests__/loader.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/loader.test.js +271 -0
- package/dist/plugins/__tests__/loader.test.js.map +1 -0
- package/dist/plugins/check-package-discovery.d.ts +19 -0
- package/dist/plugins/check-package-discovery.d.ts.map +1 -0
- package/dist/plugins/check-package-discovery.js +34 -0
- package/dist/plugins/check-package-discovery.js.map +1 -0
- package/dist/plugins/loader.d.ts +32 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +198 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/types.d.ts +29 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +9 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts +2 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js +93 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
- package/dist/recipes/__tests__/check-config.test.d.ts +12 -0
- package/dist/recipes/__tests__/check-config.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/check-config.test.js +90 -0
- package/dist/recipes/__tests__/check-config.test.js.map +1 -0
- package/dist/recipes/__tests__/check-resolution.test.d.ts +2 -0
- package/dist/recipes/__tests__/check-resolution.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/check-resolution.test.js +160 -0
- package/dist/recipes/__tests__/check-resolution.test.js.map +1 -0
- package/dist/recipes/__tests__/execution-branches.test.d.ts +10 -0
- package/dist/recipes/__tests__/execution-branches.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/execution-branches.test.js +612 -0
- package/dist/recipes/__tests__/execution-branches.test.js.map +1 -0
- package/dist/recipes/__tests__/execution-paths.test.d.ts +10 -0
- package/dist/recipes/__tests__/execution-paths.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/execution-paths.test.js +280 -0
- package/dist/recipes/__tests__/execution-paths.test.js.map +1 -0
- package/dist/recipes/__tests__/registry.test.d.ts +2 -0
- package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/registry.test.js +89 -0
- package/dist/recipes/__tests__/registry.test.js.map +1 -0
- package/dist/recipes/__tests__/retry.test.d.ts +2 -0
- package/dist/recipes/__tests__/retry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/retry.test.js +75 -0
- package/dist/recipes/__tests__/retry.test.js.map +1 -0
- package/dist/recipes/__tests__/run-one-check.test.d.ts +14 -0
- package/dist/recipes/__tests__/run-one-check.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/run-one-check.test.js +182 -0
- package/dist/recipes/__tests__/run-one-check.test.js.map +1 -0
- package/dist/recipes/__tests__/service.test.d.ts +11 -0
- package/dist/recipes/__tests__/service.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/service.test.js +572 -0
- package/dist/recipes/__tests__/service.test.js.map +1 -0
- package/dist/recipes/built-in-recipes.d.ts +14 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -0
- package/dist/recipes/built-in-recipes.js +241 -0
- package/dist/recipes/built-in-recipes.js.map +1 -0
- package/dist/recipes/check-config.d.ts +56 -0
- package/dist/recipes/check-config.d.ts.map +1 -0
- package/dist/recipes/check-config.js +61 -0
- package/dist/recipes/check-config.js.map +1 -0
- package/dist/recipes/check-resolution.d.ts +36 -0
- package/dist/recipes/check-resolution.d.ts.map +1 -0
- package/dist/recipes/check-resolution.js +81 -0
- package/dist/recipes/check-resolution.js.map +1 -0
- package/dist/recipes/check-result-processor.d.ts +51 -0
- package/dist/recipes/check-result-processor.d.ts.map +1 -0
- package/dist/recipes/check-result-processor.js +197 -0
- package/dist/recipes/check-result-processor.js.map +1 -0
- package/dist/recipes/parallel-execution.d.ts +38 -0
- package/dist/recipes/parallel-execution.d.ts.map +1 -0
- package/dist/recipes/parallel-execution.js +61 -0
- package/dist/recipes/parallel-execution.js.map +1 -0
- package/dist/recipes/registry.d.ts +47 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +70 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/retry.d.ts +29 -0
- package/dist/recipes/retry.d.ts.map +1 -0
- package/dist/recipes/retry.js +23 -0
- package/dist/recipes/retry.js.map +1 -0
- package/dist/recipes/run-one-check.d.ts +59 -0
- package/dist/recipes/run-one-check.d.ts.map +1 -0
- package/dist/recipes/run-one-check.js +174 -0
- package/dist/recipes/run-one-check.js.map +1 -0
- package/dist/recipes/sequential-execution.d.ts +12 -0
- package/dist/recipes/sequential-execution.d.ts.map +1 -0
- package/dist/recipes/sequential-execution.js +48 -0
- package/dist/recipes/sequential-execution.js.map +1 -0
- package/dist/recipes/service-types.d.ts +87 -0
- package/dist/recipes/service-types.d.ts.map +1 -0
- package/dist/recipes/service-types.js +8 -0
- package/dist/recipes/service-types.js.map +1 -0
- package/dist/recipes/service.d.ts +73 -0
- package/dist/recipes/service.d.ts.map +1 -0
- package/dist/recipes/service.js +438 -0
- package/dist/recipes/service.js.map +1 -0
- package/dist/recipes/types.d.ts +155 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +56 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/scaffold/config-block.d.ts +17 -0
- package/dist/scaffold/config-block.d.ts.map +1 -0
- package/dist/scaffold/config-block.js +30 -0
- package/dist/scaffold/config-block.js.map +1 -0
- package/dist/scaffold/examples.d.ts +30 -0
- package/dist/scaffold/examples.d.ts.map +1 -0
- package/dist/scaffold/examples.js +129 -0
- package/dist/scaffold/examples.js.map +1 -0
- package/dist/scope-augmentation.d.ts +77 -0
- package/dist/scope-augmentation.d.ts.map +1 -0
- package/dist/scope-augmentation.js +31 -0
- package/dist/scope-augmentation.js.map +1 -0
- package/dist/signalers/__tests__/loader.test.d.ts +2 -0
- package/dist/signalers/__tests__/loader.test.d.ts.map +1 -0
- package/dist/signalers/__tests__/loader.test.js +141 -0
- package/dist/signalers/__tests__/loader.test.js.map +1 -0
- package/dist/signalers/__tests__/violation-to-signal.test.d.ts +2 -0
- package/dist/signalers/__tests__/violation-to-signal.test.d.ts.map +1 -0
- package/dist/signalers/__tests__/violation-to-signal.test.js +59 -0
- package/dist/signalers/__tests__/violation-to-signal.test.js.map +1 -0
- package/dist/signalers/index.d.ts +8 -0
- package/dist/signalers/index.d.ts.map +1 -0
- package/dist/signalers/index.js +9 -0
- package/dist/signalers/index.js.map +1 -0
- package/dist/signalers/loader.d.ts +30 -0
- package/dist/signalers/loader.d.ts.map +1 -0
- package/dist/signalers/loader.js +120 -0
- package/dist/signalers/loader.js.map +1 -0
- package/dist/signalers/schema.d.ts +60 -0
- package/dist/signalers/schema.d.ts.map +1 -0
- package/dist/signalers/schema.js +74 -0
- package/dist/signalers/schema.js.map +1 -0
- package/dist/signalers/types.d.ts +13 -0
- package/dist/signalers/types.d.ts.map +1 -0
- package/dist/signalers/types.js +5 -0
- package/dist/signalers/types.js.map +1 -0
- package/dist/signalers/violation-to-signal.d.ts +38 -0
- package/dist/signalers/violation-to-signal.d.ts.map +1 -0
- package/dist/signalers/violation-to-signal.js +43 -0
- package/dist/signalers/violation-to-signal.js.map +1 -0
- package/dist/targets/__tests__/loader.test.d.ts +2 -0
- package/dist/targets/__tests__/loader.test.d.ts.map +1 -0
- package/dist/targets/__tests__/loader.test.js +190 -0
- package/dist/targets/__tests__/loader.test.js.map +1 -0
- package/dist/targets/__tests__/target-registry.test.d.ts +2 -0
- package/dist/targets/__tests__/target-registry.test.d.ts.map +1 -0
- package/dist/targets/__tests__/target-registry.test.js +182 -0
- package/dist/targets/__tests__/target-registry.test.js.map +1 -0
- package/dist/targets/index.d.ts +18 -0
- package/dist/targets/index.d.ts.map +1 -0
- package/dist/targets/index.js +21 -0
- package/dist/targets/index.js.map +1 -0
- package/dist/targets/loader.d.ts +27 -0
- package/dist/targets/loader.d.ts.map +1 -0
- package/dist/targets/loader.js +178 -0
- package/dist/targets/loader.js.map +1 -0
- package/dist/targets/target-registry.d.ts +41 -0
- package/dist/targets/target-registry.d.ts.map +1 -0
- package/dist/targets/target-registry.js +71 -0
- package/dist/targets/target-registry.js.map +1 -0
- package/dist/targets/types.d.ts +14 -0
- package/dist/targets/types.d.ts.map +1 -0
- package/dist/targets/types.js +14 -0
- package/dist/targets/types.js.map +1 -0
- package/dist/tool.d.ts +61 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +260 -0
- package/dist/tool.js.map +1 -0
- package/dist/types/findings.d.ts +113 -0
- package/dist/types/findings.d.ts.map +1 -0
- package/dist/types/findings.js +89 -0
- package/dist/types/findings.js.map +1 -0
- package/dist/types/severity.d.ts +15 -0
- package/dist/types/severity.d.ts.map +1 -0
- package/dist/types/severity.js +33 -0
- package/dist/types/severity.js.map +1 -0
- package/package.json +137 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// @fitness-ignore-file batch-operation-limits -- iterates bounded collections (config entries, registry items, or small analysis results)
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Target config loader
|
|
4
|
+
*
|
|
5
|
+
* Loads target configuration from opensip-cli.config.yml in the project root.
|
|
6
|
+
* Validates with Zod and populates a TargetRegistry.
|
|
7
|
+
*/
|
|
8
|
+
import { checkOverridesSchema, globalExcludesSchema, pluginsConfigSchema, targetsRecordSchema, } from '@opensip-cli/config';
|
|
9
|
+
import { PROJECT_CONFIG_FILENAME, ValidationError, currentScope, readYamlFileOrThrow, resolveProjectConfigPath, } from '@opensip-cli/core';
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { TargetRegistry } from './target-registry.js';
|
|
12
|
+
const YAML_FILENAME = PROJECT_CONFIG_FILENAME;
|
|
13
|
+
const DEFAULT_EXCLUDES = ['**/node_modules/**', '**/dist/**'];
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// YAML schemas
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// The targets / globalExcludes / checkOverrides / plugins shapes are owned by
|
|
18
|
+
// @opensip-cli/config (2.10.1, ADR-0023) — the same schemas the host
|
|
19
|
+
// registers as document-level declarations. This loader adds the registry build
|
|
20
|
+
// + cross-validation runtime below.
|
|
21
|
+
const TargetsFileSchema = z.object({
|
|
22
|
+
targets: targetsRecordSchema,
|
|
23
|
+
globalExcludes: globalExcludesSchema.optional(),
|
|
24
|
+
checkOverrides: checkOverridesSchema.optional(),
|
|
25
|
+
plugins: pluginsConfigSchema.optional(),
|
|
26
|
+
});
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// Build registry + config from parsed data
|
|
29
|
+
// =============================================================================
|
|
30
|
+
/** @throws {ValidationError} When checkOverrides references an unknown target */
|
|
31
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity -- inherent complexity: registry population + cross-validation
|
|
32
|
+
function buildFromParsed(targets, rawGlobalExcludes, rawCheckOverrides, sourceLabel, rawPlugins) {
|
|
33
|
+
const registry = new TargetRegistry();
|
|
34
|
+
// ADR-0037 cutover: the host already parsed `targets:` from the single
|
|
35
|
+
// validated config document into `scope.targets` (Phase 1). When that host
|
|
36
|
+
// set is present, fitness CONSUMES it — mirroring the same frozen `Target`
|
|
37
|
+
// references into a fitness registry so the check-domain `findByScope` can run
|
|
38
|
+
// over them — rather than re-deriving its own generic target set. The fitness
|
|
39
|
+
// `toTarget` normalization (build-targets.ts) is byte-identical to the
|
|
40
|
+
// fallback below, so this is a reference copy, not a re-parse.
|
|
41
|
+
const scopeTargets = currentScope()?.targets;
|
|
42
|
+
if (scopeTargets) {
|
|
43
|
+
for (const target of scopeTargets.getAll()) {
|
|
44
|
+
registry.register(target);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Fallback: no host `scope.targets` (a config-less/agnostic run, or a unit
|
|
49
|
+
// test that doesn't wire a scope) — build the registry from the parsed
|
|
50
|
+
// `targets:` block directly. Same normalization the host applies.
|
|
51
|
+
for (const [name, entry] of Object.entries(targets)) {
|
|
52
|
+
const config = Object.freeze({
|
|
53
|
+
name,
|
|
54
|
+
description: entry.description,
|
|
55
|
+
include: Object.freeze([...entry.include]),
|
|
56
|
+
exclude: Object.freeze([...(entry.exclude ?? DEFAULT_EXCLUDES)]),
|
|
57
|
+
...(entry.tags && { tags: Object.freeze([...entry.tags]) }),
|
|
58
|
+
...(entry.languages && { languages: Object.freeze([...entry.languages]) }),
|
|
59
|
+
...(entry.concerns && { concerns: Object.freeze([...entry.concerns]) }),
|
|
60
|
+
});
|
|
61
|
+
registry.register(Object.freeze({ config }));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// checkOverrides is fitness-namespaced config the host does NOT semantically
|
|
65
|
+
// cross-validate (only fitness knows check slugs). Each referenced target name
|
|
66
|
+
// is validated against `registry` — which now mirrors `scope.targets` (the
|
|
67
|
+
// host-owned set) when present, exactly the cross-reference ADR-0037 requires.
|
|
68
|
+
const checkOverrides = {};
|
|
69
|
+
if (rawCheckOverrides) {
|
|
70
|
+
for (const [checkSlug, targetRef] of Object.entries(rawCheckOverrides)) {
|
|
71
|
+
const targetNames = typeof targetRef === 'string' ? [targetRef] : targetRef;
|
|
72
|
+
for (const name of targetNames) {
|
|
73
|
+
if (!registry.has(name)) {
|
|
74
|
+
// @fitness-ignore-next-line result-pattern-consistency -- infrastructure boundary, throw is appropriate
|
|
75
|
+
throw new ValidationError(`${sourceLabel}: checkOverrides['${checkSlug}'] references unknown target '${name}'. ` +
|
|
76
|
+
`Available targets: ${registry
|
|
77
|
+
.getAll()
|
|
78
|
+
.map((t) => t.config.name)
|
|
79
|
+
.join(', ')}`, { code: 'ERRORS.TARGETS.UNKNOWN_TARGET' });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
checkOverrides[checkSlug] =
|
|
83
|
+
typeof targetRef === 'string' ? targetRef : Object.freeze([...targetRef]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const plugins = rawPlugins
|
|
87
|
+
? Object.freeze({
|
|
88
|
+
...(rawPlugins.fit && { fit: Object.freeze([...rawPlugins.fit]) }),
|
|
89
|
+
...(rawPlugins.sim && { sim: Object.freeze([...rawPlugins.sim]) }),
|
|
90
|
+
...(rawPlugins.checkPackages && {
|
|
91
|
+
checkPackages: Object.freeze([...rawPlugins.checkPackages]),
|
|
92
|
+
}),
|
|
93
|
+
...(rawPlugins.scenarioPackages && {
|
|
94
|
+
scenarioPackages: Object.freeze([...rawPlugins.scenarioPackages]),
|
|
95
|
+
}),
|
|
96
|
+
...(rawPlugins.autoDiscoverScenarios === undefined
|
|
97
|
+
? {}
|
|
98
|
+
: { autoDiscoverScenarios: rawPlugins.autoDiscoverScenarios }),
|
|
99
|
+
...(rawPlugins.packageScopes && {
|
|
100
|
+
packageScopes: Object.freeze([...rawPlugins.packageScopes]),
|
|
101
|
+
}),
|
|
102
|
+
...(rawPlugins.graphAdapters && {
|
|
103
|
+
graphAdapters: Object.freeze([...rawPlugins.graphAdapters]),
|
|
104
|
+
}),
|
|
105
|
+
...(rawPlugins.autoDiscoverGraphAdapters === undefined
|
|
106
|
+
? {}
|
|
107
|
+
: { autoDiscoverGraphAdapters: rawPlugins.autoDiscoverGraphAdapters }),
|
|
108
|
+
})
|
|
109
|
+
: undefined;
|
|
110
|
+
const config = Object.freeze({
|
|
111
|
+
globalExcludes: Object.freeze(rawGlobalExcludes ? [...rawGlobalExcludes] : []),
|
|
112
|
+
checkOverrides: Object.freeze(checkOverrides),
|
|
113
|
+
...(plugins && { plugins }),
|
|
114
|
+
});
|
|
115
|
+
return { registry, config };
|
|
116
|
+
}
|
|
117
|
+
// =============================================================================
|
|
118
|
+
// YAML config loader
|
|
119
|
+
// =============================================================================
|
|
120
|
+
/**
|
|
121
|
+
* Validate an already-parsed config document and build the fitness target
|
|
122
|
+
* registry + config from it. Shared by the scope-first and file-read paths —
|
|
123
|
+
* the fitness-specific projection (targets shape) and cross-validation
|
|
124
|
+
* (`checkOverrides` ↔ registry) live here exactly once.
|
|
125
|
+
*
|
|
126
|
+
* @throws {ValidationError} When the document fails schema validation or
|
|
127
|
+
* `checkOverrides` references an unknown target.
|
|
128
|
+
*/
|
|
129
|
+
function projectTargetsConfig(parsed, sourceLabel) {
|
|
130
|
+
const result = TargetsFileSchema.safeParse(parsed);
|
|
131
|
+
if (!result.success) {
|
|
132
|
+
const issues = result.error.issues.map((i) => ` ${i.path.join('.')}: ${i.message}`).join('\n');
|
|
133
|
+
// @fitness-ignore-next-line result-pattern-consistency -- infrastructure boundary, throw is appropriate
|
|
134
|
+
throw new ValidationError(`${sourceLabel} validation failed:\n${issues}`, {
|
|
135
|
+
code: 'ERRORS.TARGETS.VALIDATION_FAILED',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return buildFromParsed(result.data.targets, result.data.globalExcludes, result.data.checkOverrides, sourceLabel, result.data.plugins);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @throws {SystemError} When the file exceeds the shared default 10 MB cap.
|
|
142
|
+
* @throws {ValidationError} When the file is missing, unreadable, contains
|
|
143
|
+
* invalid YAML, or fails schema validation.
|
|
144
|
+
*/
|
|
145
|
+
function loadYamlConfig(filePath) {
|
|
146
|
+
// Strict YAML read + parse via the shared core helper (audit-round-3
|
|
147
|
+
// Finding G — completes the round-2 migration that signalers/loader
|
|
148
|
+
// already adopted). Raises `SystemError` for oversized files and
|
|
149
|
+
// `ValidationError` for missing / unreadable / malformed YAML.
|
|
150
|
+
const parsed = readYamlFileOrThrow(filePath, { loader: 'targets' });
|
|
151
|
+
return projectTargetsConfig(parsed, YAML_FILENAME);
|
|
152
|
+
}
|
|
153
|
+
// =============================================================================
|
|
154
|
+
// Public API
|
|
155
|
+
// =============================================================================
|
|
156
|
+
/**
|
|
157
|
+
* Load full targets config including per-check target overrides.
|
|
158
|
+
*
|
|
159
|
+
* SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
|
|
160
|
+
* host-validated config document (`scope.configDocument`), the fitness shapes
|
|
161
|
+
* are projected from THAT document — no second file read. The registry build
|
|
162
|
+
* inside `buildFromParsed` additionally mirrors `scope.targets` (ADR-0037)
|
|
163
|
+
* when the host built it. The file read below serves scope-less callers only
|
|
164
|
+
* (programmatic use, unit tests); it resolves via the shared project-config
|
|
165
|
+
* resolver.
|
|
166
|
+
*
|
|
167
|
+
* @throws {ValidationError} When no targets config file is found or it cannot be loaded
|
|
168
|
+
* @throws {ValidationError} When the config file fails schema validation
|
|
169
|
+
*/
|
|
170
|
+
export function loadTargetsConfig(rootDir, explicitPath) {
|
|
171
|
+
const scopeDocument = currentScope()?.configDocument;
|
|
172
|
+
if (scopeDocument !== undefined) {
|
|
173
|
+
return projectTargetsConfig(scopeDocument, YAML_FILENAME);
|
|
174
|
+
}
|
|
175
|
+
const yamlPath = resolveProjectConfigPath(rootDir, explicitPath);
|
|
176
|
+
return loadYamlConfig(yamlPath);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/targets/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Fitness Target Registry
|
|
3
|
+
*
|
|
4
|
+
* The generic register/get/byTag/has substrate moved to
|
|
5
|
+
* `@opensip-cli/targeting` (ADR-0037, Phase 0). This fitness registry is a
|
|
6
|
+
* thin **subclass** that adds only the check-domain `findByScope` (languages +
|
|
7
|
+
* concerns intersection) — `concerns` is a check-scope concept, so it stays in
|
|
8
|
+
* fitness, not the host substrate.
|
|
9
|
+
*
|
|
10
|
+
* Subclassing keeps every fitness call site (`registry.getByName`,
|
|
11
|
+
* `registry.has`, `registry.getAll`, `registry.findByScope`) working unchanged
|
|
12
|
+
* while the generic surface lives once, in the substrate.
|
|
13
|
+
*/
|
|
14
|
+
import { TargetRegistry as SubstrateTargetRegistry } from '@opensip-cli/targeting';
|
|
15
|
+
import type { Target } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Fitness target registry: the substrate registry plus the check-domain
|
|
18
|
+
* scope-matching `findByScope`. IS-A {@link SubstrateTargetRegistry}, so every
|
|
19
|
+
* generic lookup (`register`/`getByName`/`getAll`/`getByTag`/`has`/`size`/
|
|
20
|
+
* `clear`) is inherited unchanged.
|
|
21
|
+
*/
|
|
22
|
+
export declare class TargetRegistry extends SubstrateTargetRegistry {
|
|
23
|
+
/**
|
|
24
|
+
* Find targets whose languages and concerns intersect with the given scope.
|
|
25
|
+
*
|
|
26
|
+
* Both dimensions must match (AND logic):
|
|
27
|
+
* - A target matches languages if the intersection is non-empty (or either side is empty/undefined)
|
|
28
|
+
* - A target matches concerns if the intersection is non-empty (or either side is empty/undefined)
|
|
29
|
+
*
|
|
30
|
+
* Language strings are canonicalised on both sides through
|
|
31
|
+
* the scope's `languages.canonicalize`, so a target written
|
|
32
|
+
* with `languages: ['c']` matches a check scoped to `cpp`, and a
|
|
33
|
+
* target with `languages: ['rs']` matches `rust`-scoped checks.
|
|
34
|
+
*
|
|
35
|
+
* @param languages - Languages the check is designed for
|
|
36
|
+
* @param concerns - Semantic concerns the check targets
|
|
37
|
+
* @returns Targets that match both dimensions
|
|
38
|
+
*/
|
|
39
|
+
findByScope(languages: readonly string[], concerns: readonly string[]): readonly Target[];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=target-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-registry.d.ts","sourceRoot":"","sources":["../../src/targets/target-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAczC;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,uBAAuB;IACzD;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;CAwB1F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// @fitness-ignore-file batch-operation-limits -- findByScope's this.getAll() iterates the project's declared target set (a handful of named file-sets per config document), bounded like core's tool registry getAll.
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Fitness Target Registry
|
|
4
|
+
*
|
|
5
|
+
* The generic register/get/byTag/has substrate moved to
|
|
6
|
+
* `@opensip-cli/targeting` (ADR-0037, Phase 0). This fitness registry is a
|
|
7
|
+
* thin **subclass** that adds only the check-domain `findByScope` (languages +
|
|
8
|
+
* concerns intersection) — `concerns` is a check-scope concept, so it stays in
|
|
9
|
+
* fitness, not the host substrate.
|
|
10
|
+
*
|
|
11
|
+
* Subclassing keeps every fitness call site (`registry.getByName`,
|
|
12
|
+
* `registry.has`, `registry.getAll`, `registry.findByScope`) working unchanged
|
|
13
|
+
* while the generic surface lives once, in the substrate.
|
|
14
|
+
*/
|
|
15
|
+
import { currentScope } from '@opensip-cli/core';
|
|
16
|
+
import { TargetRegistry as SubstrateTargetRegistry } from '@opensip-cli/targeting';
|
|
17
|
+
/**
|
|
18
|
+
* Map a language string (canonical id or alias) to its canonical adapter id.
|
|
19
|
+
* Falls back to a lowercased copy when the language isn't registered, so
|
|
20
|
+
* scope-matching still treats unknown ids as themselves rather than
|
|
21
|
+
* losing them entirely. Falls back to lowercase also when no scope is
|
|
22
|
+
* bound (test contexts that don't wire a scope) — preserves prior behaviour
|
|
23
|
+
* of treating unknown adapters as themselves.
|
|
24
|
+
*/
|
|
25
|
+
function toCanonical(lang) {
|
|
26
|
+
return currentScope()?.languages.canonicalize(lang) ?? lang.toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fitness target registry: the substrate registry plus the check-domain
|
|
30
|
+
* scope-matching `findByScope`. IS-A {@link SubstrateTargetRegistry}, so every
|
|
31
|
+
* generic lookup (`register`/`getByName`/`getAll`/`getByTag`/`has`/`size`/
|
|
32
|
+
* `clear`) is inherited unchanged.
|
|
33
|
+
*/
|
|
34
|
+
export class TargetRegistry extends SubstrateTargetRegistry {
|
|
35
|
+
/**
|
|
36
|
+
* Find targets whose languages and concerns intersect with the given scope.
|
|
37
|
+
*
|
|
38
|
+
* Both dimensions must match (AND logic):
|
|
39
|
+
* - A target matches languages if the intersection is non-empty (or either side is empty/undefined)
|
|
40
|
+
* - A target matches concerns if the intersection is non-empty (or either side is empty/undefined)
|
|
41
|
+
*
|
|
42
|
+
* Language strings are canonicalised on both sides through
|
|
43
|
+
* the scope's `languages.canonicalize`, so a target written
|
|
44
|
+
* with `languages: ['c']` matches a check scoped to `cpp`, and a
|
|
45
|
+
* target with `languages: ['rs']` matches `rust`-scoped checks.
|
|
46
|
+
*
|
|
47
|
+
* @param languages - Languages the check is designed for
|
|
48
|
+
* @param concerns - Semantic concerns the check targets
|
|
49
|
+
* @returns Targets that match both dimensions
|
|
50
|
+
*/
|
|
51
|
+
findByScope(languages, concerns) {
|
|
52
|
+
const scopeLangs = languages.map(toCanonical);
|
|
53
|
+
return this.getAll().filter((target) => {
|
|
54
|
+
const targetLangs = target.config.languages;
|
|
55
|
+
const targetConcerns = target.config.concerns;
|
|
56
|
+
const targetLangsCanonical = targetLangs?.map(toCanonical);
|
|
57
|
+
// Language matching: if either side has no languages, treat as "matches any"
|
|
58
|
+
const languageMatch = scopeLangs.length === 0 ||
|
|
59
|
+
!targetLangsCanonical ||
|
|
60
|
+
targetLangsCanonical.length === 0 ||
|
|
61
|
+
scopeLangs.some((lang) => targetLangsCanonical.includes(lang));
|
|
62
|
+
// Concern matching: if either side has no concerns, treat as "matches any"
|
|
63
|
+
const concernMatch = concerns.length === 0 ||
|
|
64
|
+
!targetConcerns ||
|
|
65
|
+
targetConcerns.length === 0 ||
|
|
66
|
+
concerns.some((concern) => targetConcerns.includes(concern));
|
|
67
|
+
return languageMatch && concernMatch;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=target-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-registry.js","sourceRoot":"","sources":["../../src/targets/target-registry.ts"],"names":[],"mappings":"AAAA,sNAAsN;AACtN;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAInF;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,YAAY,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,uBAAuB;IACzD;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,SAA4B,EAAE,QAA2B;QACnE,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9C,MAAM,oBAAoB,GAAG,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAE3D,6EAA6E;YAC7E,MAAM,aAAa,GACjB,UAAU,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,oBAAoB;gBACrB,oBAAoB,CAAC,MAAM,KAAK,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjE,2EAA2E;YAC3E,MAAM,YAAY,GAChB,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACrB,CAAC,cAAc;gBACf,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAE/D,OAAO,aAAa,IAAI,YAAY,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Target type definitions for shared targeting.
|
|
3
|
+
*
|
|
4
|
+
* The targeting document shape (these types) is owned by `@opensip-cli/config`
|
|
5
|
+
* as of 2.10.1 (ADR-0023) — targeting is cross-tool, not a fitness concern. The
|
|
6
|
+
* generic targeting runtime (register/get/byTag, glob expansion, globalExcludes)
|
|
7
|
+
* now lives in `@opensip-cli/targeting` and is consumed via the host-built
|
|
8
|
+
* `scope.targets` (ADR-0037). Fitness keeps only the check-domain layer:
|
|
9
|
+
* `findByScope`, the `checkOverrides` cross-validation, `resolveFilesForCheck`'s
|
|
10
|
+
* 3-tier precedence, and the content `fileCache`. Re-exported here so the
|
|
11
|
+
* engine's existing `./types.js` importers stay stable.
|
|
12
|
+
*/
|
|
13
|
+
export type { TargetConfig, Target, CheckTargetMap, PluginsConfig, TargetsConfig, } from '@opensip-cli/config';
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,YAAY,EACZ,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Target type definitions for shared targeting.
|
|
3
|
+
*
|
|
4
|
+
* The targeting document shape (these types) is owned by `@opensip-cli/config`
|
|
5
|
+
* as of 2.10.1 (ADR-0023) — targeting is cross-tool, not a fitness concern. The
|
|
6
|
+
* generic targeting runtime (register/get/byTag, glob expansion, globalExcludes)
|
|
7
|
+
* now lives in `@opensip-cli/targeting` and is consumed via the host-built
|
|
8
|
+
* `scope.targets` (ADR-0037). Fitness keeps only the check-domain layer:
|
|
9
|
+
* `findByScope`, the `checkOverrides` cross-validation, `resolveFilesForCheck`'s
|
|
10
|
+
* 3-tier precedence, and the content `fileCache`. Re-exported here so the
|
|
11
|
+
* engine's existing `./types.js` importers stay stable.
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
package/dist/tool.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fitnessTool — fitness as a Tool plugin.
|
|
3
|
+
*
|
|
4
|
+
* Owns the `fit`, `fit-list`, `fit-recipes`, and `fit-baseline-export`
|
|
5
|
+
* subcommands. Since release 2.11.0 (Phase 4) the Commander wiring is no longer
|
|
6
|
+
* hand-rolled: the tool exports declarative {@link CommandSpec}s
|
|
7
|
+
* (`commandSpecs`) and the host's `mountCommandSpec` mounts them
|
|
8
|
+
* (name/description/aliases, the ADR-0021 common flags, each command's options)
|
|
9
|
+
* and owns the parse→handler→error→exit pipeline. This file owns only the
|
|
10
|
+
* fitness command-spec assembly + the live-view renderer wiring; the spec
|
|
11
|
+
* modules under `cli/fit/` own the option declarations and handler bodies. (The
|
|
12
|
+
* standalone `report` subcommand is owned by the CLI, which composes it from
|
|
13
|
+
* every tool's contributed data — see
|
|
14
|
+
* packages/cli/src/commands/host-command-specs.ts — and migrates with the host
|
|
15
|
+
* commands in Phase 6.)
|
|
16
|
+
*
|
|
17
|
+
* Two-key registration invariant
|
|
18
|
+
* ------------------------------
|
|
19
|
+
* Fitness contributes TWO distinct identifiers to the CLI's registries
|
|
20
|
+
* and the mismatch is intentional — do not collapse them:
|
|
21
|
+
*
|
|
22
|
+
* - `metadata.id = 'fitness'` is the package-wide tool identifier
|
|
23
|
+
* (conflict-detection key in the CLI-managed tool registry).
|
|
24
|
+
*
|
|
25
|
+
* - `FIT_LIVE_VIEW_KEY = 'fit'` is the live-view key. Used to call
|
|
26
|
+
* `cli.registerLiveView('fit', renderer)` and consumed by
|
|
27
|
+
* `cli.renderLive('fit', args)` in `runLiveMode`. The key matches
|
|
28
|
+
* the `fit` subcommand name so the dispatcher's `renderLive(key)`
|
|
29
|
+
* reads naturally next to the command that triggers it.
|
|
30
|
+
*
|
|
31
|
+
* Layer 5 Phase 3 (closes audit 2026-05-23 F3): fitness now ships its
|
|
32
|
+
* own Ink/React renderer (`renderFitLive` in `cli/fit-runner.tsx`)
|
|
33
|
+
* and registers it directly via `cli.registerLiveView`. The prior
|
|
34
|
+
* `cli.builtinLiveViews` self-lookup handshake is gone.
|
|
35
|
+
*
|
|
36
|
+
* In the spec-mounted world there is no `register()` mount hook, so the live-view
|
|
37
|
+
* renderer is registered lazily on the host context (via {@link setUpFitLiveView})
|
|
38
|
+
* the first time a live `fit` run needs it. `registerLiveView` is an idempotent
|
|
39
|
+
* map write, so doing this once per run — only on the interactive path that needs
|
|
40
|
+
* it — is equivalent to the old mount-time registration.
|
|
41
|
+
*
|
|
42
|
+
* Module layout
|
|
43
|
+
* -------------
|
|
44
|
+
* - This file owns the command-spec assembly + the tool descriptor.
|
|
45
|
+
* - `cli/fit/fit-command-spec.ts` owns the primary `fit` command spec + handler.
|
|
46
|
+
* - `cli/fit/fit-aux-command-specs.ts` owns the aux command specs.
|
|
47
|
+
* - `cli/fit-modes.ts` owns the dispatch branches (gate/list/recipes/json/live).
|
|
48
|
+
*/
|
|
49
|
+
import './scope-augmentation.js';
|
|
50
|
+
import type { Tool } from '@opensip-cli/core';
|
|
51
|
+
/**
|
|
52
|
+
* Per-tool contract version for the fitness-specific surface
|
|
53
|
+
* (defineCheck, analysis modes, check packs, recipes, etc.).
|
|
54
|
+
* Independent of the core TOOL_CONTRACT_VERSION (the generic Tool bus).
|
|
55
|
+
* Bumped only on actual changes to this surface; value = major.minor of the
|
|
56
|
+
* CLI release shipping the change (see ADR-0047).
|
|
57
|
+
*/
|
|
58
|
+
export declare const FITNESS_CONTRACT_VERSION = "1.0.0";
|
|
59
|
+
export declare const FITNESS_STABLE_ID = "afd68bd3-ff3c-4935-a5b6-76d8fc7a5224";
|
|
60
|
+
export declare const fitnessTool: Tool;
|
|
61
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AA4BH,OAAO,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAIV,IAAI,EAGL,MAAM,mBAAmB,CAAC;AA6I3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAMhD,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,eAAO,MAAM,WAAW,EAAE,IAwDzB,CAAC"}
|