@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signalers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Signalers config barrel export
|
|
3
|
+
*
|
|
4
|
+
* Public API for opensip-cli.config.yml:
|
|
5
|
+
* - loadSignalersConfig() — Load and validate signalers config
|
|
6
|
+
*/
|
|
7
|
+
// Loader
|
|
8
|
+
export { loadSignalersConfig } from './loader.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signalers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Load and cache opensip-cli.config.yml
|
|
3
|
+
*
|
|
4
|
+
* Reads the signalers config file (path resolved via config-resolution),
|
|
5
|
+
* validates with Zod, and returns a frozen SignalersConfig. Throws when
|
|
6
|
+
* the config file is missing — silent no-op would mask a broken scan.
|
|
7
|
+
*/
|
|
8
|
+
import type { SignalersConfig } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Load and validate opensip-cli.config.yml from the given root directory.
|
|
11
|
+
*
|
|
12
|
+
* SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
|
|
13
|
+
* host-validated config document (`scope.configDocument`, attached by the CLI
|
|
14
|
+
* pre-action hook after its single `readYamlFile`), this loader projects the
|
|
15
|
+
* fitness shape from THAT document — no second file read, no chance of the
|
|
16
|
+
* tool resolving a different file than the host did. The file-read fallback
|
|
17
|
+
* below serves scope-less callers only (programmatic use, unit tests).
|
|
18
|
+
*
|
|
19
|
+
* Fallback resolution: --config (explicit) → package.json#opensip-cli.configPath
|
|
20
|
+
* → <rootDir>/opensip-cli.config.yml. See resolveProjectConfigPath().
|
|
21
|
+
* Results are cached per resolved file path.
|
|
22
|
+
*
|
|
23
|
+
* @param rootDir - Absolute path to the project root directory
|
|
24
|
+
* @param explicitPath - Optional config path from --config CLI flag
|
|
25
|
+
* @throws {ValidationError} When no config is found, YAML is invalid, or
|
|
26
|
+
* schema validation fails. Intentionally loud: a missing config means
|
|
27
|
+
* the scan would otherwise silently produce zero findings.
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadSignalersConfig(rootDir: string, explicitPath?: string): SignalersConfig;
|
|
30
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/signalers/loader.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA+ElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,CA8B3F"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// @fitness-ignore-file toctou-race-condition -- cache check + populate is synchronous (sync file I/O + Map.set); no async gap, safe in single-threaded Node.js
|
|
2
|
+
// @fitness-ignore-file batch-operation-limits -- iterates bounded collection (signaler entries listed in opensip-cli.config.yml)
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Load and cache opensip-cli.config.yml
|
|
5
|
+
*
|
|
6
|
+
* Reads the signalers config file (path resolved via config-resolution),
|
|
7
|
+
* validates with Zod, and returns a frozen SignalersConfig. Throws when
|
|
8
|
+
* the config file is missing — silent no-op would mask a broken scan.
|
|
9
|
+
*/
|
|
10
|
+
import { PROJECT_CONFIG_FILENAME, ValidationError, currentScope, readYamlFileOrThrow, resolveProjectConfigPath, logger, } from '@opensip-cli/core';
|
|
11
|
+
import { SignalersConfigSchema } from './schema.js';
|
|
12
|
+
/**
|
|
13
|
+
* Recursively freeze every nested object so the `DeepReadonly` claim
|
|
14
|
+
* on `SignalersConfig` is honoured at runtime, not just at the type
|
|
15
|
+
* level. The previous implementation aliased `structuredClone` under
|
|
16
|
+
* the name `deepFreeze` — it copied without freezing, so the
|
|
17
|
+
* `SignalersConfig` readonly type was a lie at runtime. Audit-round-2
|
|
18
|
+
* Finding E.
|
|
19
|
+
*/
|
|
20
|
+
function deepFreeze(value) {
|
|
21
|
+
if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {
|
|
22
|
+
for (const key of Object.keys(value)) {
|
|
23
|
+
deepFreeze(value[key]);
|
|
24
|
+
}
|
|
25
|
+
Object.freeze(value);
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
/** TTL for cached signalers config entries in milliseconds (30 seconds) */
|
|
30
|
+
const SIGNALERS_CACHE_TTL_MS = 30_000;
|
|
31
|
+
/** Cache keyed by resolved absolute file path, not rootDir — avoids
|
|
32
|
+
* stale hits when the same rootDir resolves to different files over
|
|
33
|
+
* time (e.g. --config flag changes between invocations in tests). */
|
|
34
|
+
const cache = new Map();
|
|
35
|
+
/** Per-document memo for the scope-first path: one projection per validated
|
|
36
|
+
* document object (the host builds one document per run, so this is a
|
|
37
|
+
* per-run cache with no TTL/invalidation concerns — the key IS the run's
|
|
38
|
+
* document identity). */
|
|
39
|
+
const scopeDocumentCache = new WeakMap();
|
|
40
|
+
/**
|
|
41
|
+
* Validate an already-parsed config document and project it into the frozen
|
|
42
|
+
* `SignalersConfig` shape. Shared by the scope-first and file-read paths —
|
|
43
|
+
* the fitness-specific projection/validation lives here exactly once.
|
|
44
|
+
*
|
|
45
|
+
* @throws {ValidationError} When the document fails fitness's schema.
|
|
46
|
+
*/
|
|
47
|
+
function projectSignalersConfig(parsed, sourceLabel) {
|
|
48
|
+
const result = SignalersConfigSchema.safeParse(parsed);
|
|
49
|
+
if (!result.success) {
|
|
50
|
+
const issues = result.error.issues
|
|
51
|
+
.map((i) => ` ${i.path.join('.')}: ${i.message} (expected: ${i.code})`)
|
|
52
|
+
.join('\n');
|
|
53
|
+
// @fitness-ignore-next-line result-pattern-consistency -- user config error surfaced as a thrown ValidationError (mapped to an exit code by the loader's caller); a malformed signalers config is fail-loud at load time, not an expected-failure Result flow.
|
|
54
|
+
throw new ValidationError(`${sourceLabel} validation failed:\n${issues}`, {
|
|
55
|
+
operation: 'load',
|
|
56
|
+
loader: 'signalers',
|
|
57
|
+
filePath: sourceLabel,
|
|
58
|
+
code: 'ERRORS.SIGNALERS.VALIDATION_FAILED',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
const data = result.data;
|
|
62
|
+
logger.info({
|
|
63
|
+
evt: 'core.signalers.config.loaded',
|
|
64
|
+
module: 'core:signalers',
|
|
65
|
+
file: sourceLabel,
|
|
66
|
+
hasFitness: data.fitness !== undefined,
|
|
67
|
+
hasSimulation: data.simulation !== undefined,
|
|
68
|
+
targetCount: Object.keys(data.targets).length,
|
|
69
|
+
});
|
|
70
|
+
// `data` is typed `z.infer<typeof SignalersConfigSchema>` (mutable).
|
|
71
|
+
// After deepFreeze it's structurally read-only end-to-end; the single
|
|
72
|
+
// cast adds the `DeepReadonly` wrapper that defines `SignalersConfig`.
|
|
73
|
+
return deepFreeze(data);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Load and validate opensip-cli.config.yml from the given root directory.
|
|
77
|
+
*
|
|
78
|
+
* SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
|
|
79
|
+
* host-validated config document (`scope.configDocument`, attached by the CLI
|
|
80
|
+
* pre-action hook after its single `readYamlFile`), this loader projects the
|
|
81
|
+
* fitness shape from THAT document — no second file read, no chance of the
|
|
82
|
+
* tool resolving a different file than the host did. The file-read fallback
|
|
83
|
+
* below serves scope-less callers only (programmatic use, unit tests).
|
|
84
|
+
*
|
|
85
|
+
* Fallback resolution: --config (explicit) → package.json#opensip-cli.configPath
|
|
86
|
+
* → <rootDir>/opensip-cli.config.yml. See resolveProjectConfigPath().
|
|
87
|
+
* Results are cached per resolved file path.
|
|
88
|
+
*
|
|
89
|
+
* @param rootDir - Absolute path to the project root directory
|
|
90
|
+
* @param explicitPath - Optional config path from --config CLI flag
|
|
91
|
+
* @throws {ValidationError} When no config is found, YAML is invalid, or
|
|
92
|
+
* schema validation fails. Intentionally loud: a missing config means
|
|
93
|
+
* the scan would otherwise silently produce zero findings.
|
|
94
|
+
*/
|
|
95
|
+
export function loadSignalersConfig(rootDir, explicitPath) {
|
|
96
|
+
const scope = currentScope();
|
|
97
|
+
const scopeDocument = scope?.configDocument;
|
|
98
|
+
if (scopeDocument !== undefined) {
|
|
99
|
+
const memo = scopeDocumentCache.get(scopeDocument);
|
|
100
|
+
if (memo)
|
|
101
|
+
return memo;
|
|
102
|
+
const config = projectSignalersConfig(scopeDocument, scope?.projectContext?.configPath ?? PROJECT_CONFIG_FILENAME);
|
|
103
|
+
scopeDocumentCache.set(scopeDocument, config);
|
|
104
|
+
return config;
|
|
105
|
+
}
|
|
106
|
+
const filePath = resolveProjectConfigPath(rootDir, explicitPath);
|
|
107
|
+
const cached = cache.get(filePath);
|
|
108
|
+
if (cached && Date.now() - cached.cachedAt < SIGNALERS_CACHE_TTL_MS) {
|
|
109
|
+
return cached.config;
|
|
110
|
+
}
|
|
111
|
+
// Strict YAML read + parse via the shared core helper (audit-round-2
|
|
112
|
+
// Finding F). Raises `SystemError` if the file is larger than the
|
|
113
|
+
// default 10 MB cap, `ValidationError` for missing / unreadable /
|
|
114
|
+
// malformed YAML — same shape this loader used to throw inline.
|
|
115
|
+
const parsed = readYamlFileOrThrow(filePath, { loader: 'signalers' });
|
|
116
|
+
const frozen = projectSignalersConfig(parsed, filePath);
|
|
117
|
+
cache.set(filePath, { config: frozen, cachedAt: Date.now(), filePath });
|
|
118
|
+
return frozen;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/signalers/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Zod validation schema for opensip-cli.config.yml
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for signal producer configuration (fitness,
|
|
5
|
+
* simulation) and file targeting. These settings live alongside the target
|
|
6
|
+
* definitions in opensip-cli.config.yml.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
/** Root schema for opensip-cli.config.yml validation */
|
|
10
|
+
export declare const SignalersConfigSchema: z.ZodObject<{
|
|
11
|
+
schemaVersion: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
globalExcludes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
13
|
+
targets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
14
|
+
description: z.ZodString;
|
|
15
|
+
include: z.ZodArray<z.ZodString>;
|
|
16
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
|
+
concerns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
20
|
+
}, z.core.$strip>>>;
|
|
21
|
+
checkOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
22
|
+
fitness: z.ZodPreprocess<z.ZodObject<{
|
|
23
|
+
defaultTarget: z.ZodOptional<z.ZodString>;
|
|
24
|
+
maxParallel: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
recipe: z.ZodOptional<z.ZodString>;
|
|
27
|
+
failOnErrors: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
28
|
+
failOnWarnings: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
29
|
+
disabledChecks: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
simulation: z.ZodPreprocess<z.ZodObject<{
|
|
32
|
+
recipe: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
cli: z.ZodPreprocess<z.ZodObject<{
|
|
35
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
|
+
verbose: z.ZodOptional<z.ZodBoolean>;
|
|
37
|
+
json: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
+
reportTo: z.ZodOptional<z.ZodURL>;
|
|
39
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
40
|
+
fileTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
41
|
+
ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
42
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
ui: z.ZodOptional<z.ZodObject<{
|
|
44
|
+
banner: z.ZodOptional<z.ZodEnum<{
|
|
45
|
+
lg: "lg";
|
|
46
|
+
md: "md";
|
|
47
|
+
sm: "sm";
|
|
48
|
+
mini: "mini";
|
|
49
|
+
}>>;
|
|
50
|
+
}, z.core.$strip>>;
|
|
51
|
+
cloud: z.ZodOptional<z.ZodObject<{
|
|
52
|
+
sync: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
}, z.core.$strip>>;
|
|
56
|
+
dashboard: z.ZodPreprocess<z.ZodObject<{
|
|
57
|
+
editor: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>>;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/signalers/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoExB,wDAAwD;AACxD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAahC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Zod validation schema for opensip-cli.config.yml
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for signal producer configuration (fitness,
|
|
5
|
+
* simulation) and file targeting. These settings live alongside the target
|
|
6
|
+
* definitions in opensip-cli.config.yml.
|
|
7
|
+
*/
|
|
8
|
+
import { checkOverridesSchema, cliConfigSchema, dashboardConfigSchema, globalExcludesSchema, targetsRecordSchema, } from '@opensip-cli/config';
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { FITNESS_CONFIG_DEFAULTS, FitnessNamespaceSchema, } from '../config/fitness-config-schema.js';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Target Definition Schema — owned by @opensip-cli/config (2.10.1, ADR-0023)
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// `targets` / `globalExcludes` / `checkOverrides` are the shared two-layer scope
|
|
15
|
+
// model; their schemas live in the config layer and the host registers them as
|
|
16
|
+
// document-level declarations. This whole-document loader still validates them
|
|
17
|
+
// because the fit hot path consumes targeting through `loadSignalersConfig`.
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Producer Schemas
|
|
20
|
+
// =============================================================================
|
|
21
|
+
/** Fitness config parser: one field definition, parser defaults for this loader. */
|
|
22
|
+
const FitnessSchema = FitnessNamespaceSchema.extend({
|
|
23
|
+
failOnErrors: FitnessNamespaceSchema.shape.failOnErrors.default(FITNESS_CONFIG_DEFAULTS.failOnErrors),
|
|
24
|
+
failOnWarnings: FitnessNamespaceSchema.shape.failOnWarnings.default(FITNESS_CONFIG_DEFAULTS.failOnWarnings),
|
|
25
|
+
disabledChecks: FitnessNamespaceSchema.shape.disabledChecks.default([
|
|
26
|
+
...FITNESS_CONFIG_DEFAULTS.disabledChecks,
|
|
27
|
+
]),
|
|
28
|
+
});
|
|
29
|
+
/** Schema for simulation engine configuration. */
|
|
30
|
+
const SimulationSchema = z.object({
|
|
31
|
+
// Default recipe for `sim` runs when no `--recipe` flag is given (ADR-0022).
|
|
32
|
+
// Tool-scoped: distinct from `fitness.recipe` / `graph.recipe`. An unknown
|
|
33
|
+
// name here tolerantly falls back to the built-in `default` recipe; an
|
|
34
|
+
// explicit `--recipe` typo still hard-fails.
|
|
35
|
+
recipe: z.string().min(1).max(128).optional(),
|
|
36
|
+
});
|
|
37
|
+
// =============================================================================
|
|
38
|
+
// CLI Defaults + Dashboard — now owned by @opensip-cli/config (2.10.1)
|
|
39
|
+
// =============================================================================
|
|
40
|
+
// The `cli:` and `dashboard:` blocks are tool-agnostic document-level config;
|
|
41
|
+
// their schemas moved to `@opensip-cli/config` in 2.10.1 (ADR-0023) and the
|
|
42
|
+
// host registers them as document-level declarations for the composed STRICT
|
|
43
|
+
// validation. This loader imports the schemas rather than re-defining them, so
|
|
44
|
+
// there is one definition of each.
|
|
45
|
+
const CliDefaultsSchema = cliConfigSchema;
|
|
46
|
+
const DashboardSchema = dashboardConfigSchema;
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Root Schema
|
|
49
|
+
// =============================================================================
|
|
50
|
+
/** Wrap a section schema so YAML `null` or missing keys are treated as `{}` (all defaults). */
|
|
51
|
+
function section(schema) {
|
|
52
|
+
// Zod 4 change: `.default(...)` no longer re-parses the supplied default through
|
|
53
|
+
// the inner schema, so a literal `{}` default would skip every nested
|
|
54
|
+
// `.default(...)` declaration on the section's fields. Instead, coerce
|
|
55
|
+
// undefined / null inputs to `{}` *before* delegating to the section schema —
|
|
56
|
+
// that way the inner schema parses `{}` and its per-field defaults apply.
|
|
57
|
+
return z.preprocess((v) => v ?? {}, schema);
|
|
58
|
+
}
|
|
59
|
+
/** Root schema for opensip-cli.config.yml validation */
|
|
60
|
+
export const SignalersConfigSchema = z.object({
|
|
61
|
+
// Top-level config schema version. The CLI checks this in pre-action-hook
|
|
62
|
+
// (via readConfigSchemaVersion + checkSchemaCompat in core) BEFORE this
|
|
63
|
+
// strict loader runs. Default 1 keeps existing configs (written before
|
|
64
|
+
// the field existed) valid.
|
|
65
|
+
schemaVersion: z.number().int().min(1).default(1),
|
|
66
|
+
globalExcludes: globalExcludesSchema.default([]),
|
|
67
|
+
targets: targetsRecordSchema.default({}),
|
|
68
|
+
checkOverrides: checkOverridesSchema.optional(),
|
|
69
|
+
fitness: section(FitnessSchema),
|
|
70
|
+
simulation: section(SimulationSchema),
|
|
71
|
+
cli: section(CliDefaultsSchema),
|
|
72
|
+
dashboard: section(DashboardSchema),
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/signalers/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAEhF,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAE7E,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,oFAAoF;AACpF,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAClD,YAAY,EAAE,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAC7D,uBAAuB,CAAC,YAAY,CACrC;IACD,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CACjE,uBAAuB,CAAC,cAAc,CACvC;IACD,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;QAClE,GAAG,uBAAuB,CAAC,cAAc;KAC1C,CAAC;CACH,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,6EAA6E;IAC7E,2EAA2E;IAC3E,uEAAuE;IACvE,6CAA6C;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAEhF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,+FAA+F;AAC/F,SAAS,OAAO,CAAsB,MAAS;IAC7C,iFAAiF;IACjF,sEAAsE;IACtE,uEAAuE;IACvE,8EAA8E;IAC9E,0EAA0E;IAC1E,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,4BAA4B;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC;IACrC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Signalers configuration types — derived from Zod schemas
|
|
3
|
+
*/
|
|
4
|
+
import type { SignalersConfigSchema } from './schema.js';
|
|
5
|
+
import type { z } from 'zod';
|
|
6
|
+
/** Recursively marks all properties as readonly. */
|
|
7
|
+
type DeepReadonly<T> = {
|
|
8
|
+
readonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K];
|
|
9
|
+
};
|
|
10
|
+
/** Top-level signalers configuration. */
|
|
11
|
+
export type SignalersConfig = DeepReadonly<z.infer<typeof SignalersConfigSchema>>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/signalers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,oDAAoD;AACpD,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/signalers/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview violation → core `Signal` mapping (ADR-0011, Phase 6).
|
|
3
|
+
*
|
|
4
|
+
* Fitness is NOT signal-native: a check produces `RecipeViolation`s
|
|
5
|
+
* (`{ file, line, column?, message, severity, suggestion? }`) which the
|
|
6
|
+
* legacy `buildCliOutput` flattened straight into the retired
|
|
7
|
+
* `CheckOutput`/`FindingOutput` husk. This module is the new seam — it maps
|
|
8
|
+
* each violation to a core {@link Signal} (the universal output currency), so
|
|
9
|
+
* the run can be assembled into the one {@link SignalEnvelope} the composition
|
|
10
|
+
* root renders, emits, and delivers.
|
|
11
|
+
*
|
|
12
|
+
* `source === ruleId === checkSlug`: a fitness unit's slug IS its check slug,
|
|
13
|
+
* and the terminal table groups signals by `signal.source` into one row per
|
|
14
|
+
* check, so both fields carry the slug (parity with the prior
|
|
15
|
+
* `FindingOutput.ruleId = cr.checkSlug`).
|
|
16
|
+
*
|
|
17
|
+
* Severity: `RecipeViolation.severity` is the 2-level legacy `error|warning`.
|
|
18
|
+
* Per ADR-0011 we PRESERVE the 4-level `SignalSeverity` on the wire, mapping
|
|
19
|
+
* the legacy levels UP (never collapsing): `error → high`, `warning → medium`.
|
|
20
|
+
* That keeps the envelope's error/warning bucketing (`critical|high → error`,
|
|
21
|
+
* `medium|low → warning`) numerically identical to the old check counts, so
|
|
22
|
+
* the gate, verdict, and dashboard all agree.
|
|
23
|
+
*/
|
|
24
|
+
import type { RecipeCheckResult } from '../recipes/types.js';
|
|
25
|
+
import type { Signal } from '@opensip-cli/core';
|
|
26
|
+
/** A single fitness violation, as carried on {@link RecipeCheckResult.violations}. */
|
|
27
|
+
type RecipeViolation = NonNullable<RecipeCheckResult['violations']>[number];
|
|
28
|
+
/**
|
|
29
|
+
* Map a single check violation to a core {@link Signal}.
|
|
30
|
+
*
|
|
31
|
+
* Release 2.13.0 (§5.9): delegates to the shared `createSignalFromViolation`, which
|
|
32
|
+
* STAMPS identity — `source`/`ruleId` both carry `checkSlug` (the fitness unit
|
|
33
|
+
* slug) and the wire `severity` is lifted by `SeverityPolicy` (`error → high`,
|
|
34
|
+
* `warning → medium`). Byte-identical to the former hand-mapping.
|
|
35
|
+
*/
|
|
36
|
+
export declare function violationToSignal(checkSlug: string, violation: RecipeViolation): Signal;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=violation-to-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"violation-to-signal.d.ts","sourceRoot":"","sources":["../../src/signalers/violation-to-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sFAAsF;AACtF,KAAK,eAAe,GAAG,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CASvF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview violation → core `Signal` mapping (ADR-0011, Phase 6).
|
|
3
|
+
*
|
|
4
|
+
* Fitness is NOT signal-native: a check produces `RecipeViolation`s
|
|
5
|
+
* (`{ file, line, column?, message, severity, suggestion? }`) which the
|
|
6
|
+
* legacy `buildCliOutput` flattened straight into the retired
|
|
7
|
+
* `CheckOutput`/`FindingOutput` husk. This module is the new seam — it maps
|
|
8
|
+
* each violation to a core {@link Signal} (the universal output currency), so
|
|
9
|
+
* the run can be assembled into the one {@link SignalEnvelope} the composition
|
|
10
|
+
* root renders, emits, and delivers.
|
|
11
|
+
*
|
|
12
|
+
* `source === ruleId === checkSlug`: a fitness unit's slug IS its check slug,
|
|
13
|
+
* and the terminal table groups signals by `signal.source` into one row per
|
|
14
|
+
* check, so both fields carry the slug (parity with the prior
|
|
15
|
+
* `FindingOutput.ruleId = cr.checkSlug`).
|
|
16
|
+
*
|
|
17
|
+
* Severity: `RecipeViolation.severity` is the 2-level legacy `error|warning`.
|
|
18
|
+
* Per ADR-0011 we PRESERVE the 4-level `SignalSeverity` on the wire, mapping
|
|
19
|
+
* the legacy levels UP (never collapsing): `error → high`, `warning → medium`.
|
|
20
|
+
* That keeps the envelope's error/warning bucketing (`critical|high → error`,
|
|
21
|
+
* `medium|low → warning`) numerically identical to the old check counts, so
|
|
22
|
+
* the gate, verdict, and dashboard all agree.
|
|
23
|
+
*/
|
|
24
|
+
import { createSignalFromViolation } from '@opensip-cli/core';
|
|
25
|
+
/**
|
|
26
|
+
* Map a single check violation to a core {@link Signal}.
|
|
27
|
+
*
|
|
28
|
+
* Release 2.13.0 (§5.9): delegates to the shared `createSignalFromViolation`, which
|
|
29
|
+
* STAMPS identity — `source`/`ruleId` both carry `checkSlug` (the fitness unit
|
|
30
|
+
* slug) and the wire `severity` is lifted by `SeverityPolicy` (`error → high`,
|
|
31
|
+
* `warning → medium`). Byte-identical to the former hand-mapping.
|
|
32
|
+
*/
|
|
33
|
+
export function violationToSignal(checkSlug, violation) {
|
|
34
|
+
return createSignalFromViolation(checkSlug, checkSlug, {
|
|
35
|
+
message: violation.message,
|
|
36
|
+
severity: violation.severity,
|
|
37
|
+
suggestion: violation.suggestion,
|
|
38
|
+
file: violation.file,
|
|
39
|
+
line: violation.line,
|
|
40
|
+
column: violation.column,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=violation-to-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"violation-to-signal.js","sourceRoot":"","sources":["../../src/signalers/violation-to-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAQ9D;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,SAA0B;IAC7E,OAAO,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE;QACrD,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.test.d.ts","sourceRoot":"","sources":["../../../src/targets/__tests__/loader.test.ts"],"names":[],"mappings":""}
|