@vyuhlabs/dxkit 2.4.6 → 2.4.7
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/CHANGELOG.md +885 -0
- package/README.md +131 -26
- package/dist/analysis-result.d.ts +112 -0
- package/dist/analysis-result.d.ts.map +1 -0
- package/dist/analysis-result.js +52 -0
- package/dist/analysis-result.js.map +1 -0
- package/dist/analyzers/bom/detailed.d.ts.map +1 -1
- package/dist/analyzers/bom/detailed.js +19 -0
- package/dist/analyzers/bom/detailed.js.map +1 -1
- package/dist/analyzers/bom/gather.d.ts +27 -26
- package/dist/analyzers/bom/gather.d.ts.map +1 -1
- package/dist/analyzers/bom/gather.js +26 -87
- package/dist/analyzers/bom/gather.js.map +1 -1
- package/dist/analyzers/bom/index.d.ts +0 -7
- package/dist/analyzers/bom/index.d.ts.map +1 -1
- package/dist/analyzers/bom/index.js +98 -48
- package/dist/analyzers/bom/index.js.map +1 -1
- package/dist/analyzers/bom/types.d.ts +11 -13
- package/dist/analyzers/bom/types.d.ts.map +1 -1
- package/dist/analyzers/cache.d.ts +95 -0
- package/dist/analyzers/cache.d.ts.map +1 -0
- package/dist/analyzers/cache.js +309 -0
- package/dist/analyzers/cache.js.map +1 -0
- package/dist/analyzers/coverage-runner.d.ts +56 -0
- package/dist/analyzers/coverage-runner.d.ts.map +1 -0
- package/dist/analyzers/coverage-runner.js +72 -0
- package/dist/analyzers/coverage-runner.js.map +1 -0
- package/dist/analyzers/dashboard/index.d.ts +24 -0
- package/dist/analyzers/dashboard/index.d.ts.map +1 -0
- package/dist/analyzers/dashboard/index.js +666 -0
- package/dist/analyzers/dashboard/index.js.map +1 -0
- package/dist/analyzers/developer/gather.d.ts.map +1 -1
- package/dist/analyzers/developer/gather.js +205 -37
- package/dist/analyzers/developer/gather.js.map +1 -1
- package/dist/analyzers/developer/index.d.ts +1 -1
- package/dist/analyzers/developer/index.d.ts.map +1 -1
- package/dist/analyzers/developer/index.js +19 -8
- package/dist/analyzers/developer/index.js.map +1 -1
- package/dist/analyzers/dispatcher.d.ts +37 -0
- package/dist/analyzers/dispatcher.d.ts.map +1 -1
- package/dist/analyzers/dispatcher.js +56 -9
- package/dist/analyzers/dispatcher.js.map +1 -1
- package/dist/analyzers/docs/shallow.d.ts +17 -5
- package/dist/analyzers/docs/shallow.d.ts.map +1 -1
- package/dist/analyzers/docs/shallow.js +65 -2
- package/dist/analyzers/docs/shallow.js.map +1 -1
- package/dist/analyzers/dx/shallow.d.ts +17 -5
- package/dist/analyzers/dx/shallow.d.ts.map +1 -1
- package/dist/analyzers/dx/shallow.js +66 -2
- package/dist/analyzers/dx/shallow.js.map +1 -1
- package/dist/analyzers/health/actions.d.ts +1 -1
- package/dist/analyzers/health/actions.d.ts.map +1 -1
- package/dist/analyzers/health/actions.js +27 -9
- package/dist/analyzers/health/actions.js.map +1 -1
- package/dist/analyzers/health/detailed.d.ts +2 -1
- package/dist/analyzers/health/detailed.d.ts.map +1 -1
- package/dist/analyzers/health/detailed.js +11 -7
- package/dist/analyzers/health/detailed.js.map +1 -1
- package/dist/analyzers/health.d.ts +27 -0
- package/dist/analyzers/health.d.ts.map +1 -1
- package/dist/analyzers/health.js +271 -33
- package/dist/analyzers/health.js.map +1 -1
- package/dist/analyzers/licenses/gather.d.ts +35 -8
- package/dist/analyzers/licenses/gather.d.ts.map +1 -1
- package/dist/analyzers/licenses/gather.js +70 -13
- package/dist/analyzers/licenses/gather.js.map +1 -1
- package/dist/analyzers/licenses/index.d.ts +1 -1
- package/dist/analyzers/licenses/index.d.ts.map +1 -1
- package/dist/analyzers/licenses/index.js +52 -11
- package/dist/analyzers/licenses/index.js.map +1 -1
- package/dist/analyzers/licenses/types.d.ts +15 -0
- package/dist/analyzers/licenses/types.d.ts.map +1 -1
- package/dist/analyzers/maintainability/shallow.d.ts +17 -5
- package/dist/analyzers/maintainability/shallow.d.ts.map +1 -1
- package/dist/analyzers/maintainability/shallow.js +80 -2
- package/dist/analyzers/maintainability/shallow.js.map +1 -1
- package/dist/analyzers/quality/detailed.d.ts.map +1 -1
- package/dist/analyzers/quality/detailed.js +4 -6
- package/dist/analyzers/quality/detailed.js.map +1 -1
- package/dist/analyzers/quality/gather.d.ts +1 -14
- package/dist/analyzers/quality/gather.d.ts.map +1 -1
- package/dist/analyzers/quality/gather.js +48 -137
- package/dist/analyzers/quality/gather.js.map +1 -1
- package/dist/analyzers/quality/index.d.ts +9 -2
- package/dist/analyzers/quality/index.d.ts.map +1 -1
- package/dist/analyzers/quality/index.js +189 -117
- package/dist/analyzers/quality/index.js.map +1 -1
- package/dist/analyzers/quality/shallow.d.ts +50 -5
- package/dist/analyzers/quality/shallow.d.ts.map +1 -1
- package/dist/analyzers/quality/shallow.js +155 -2
- package/dist/analyzers/quality/shallow.js.map +1 -1
- package/dist/analyzers/quality/types.d.ts +14 -0
- package/dist/analyzers/quality/types.d.ts.map +1 -1
- package/dist/analyzers/security/actions.d.ts +11 -4
- package/dist/analyzers/security/actions.d.ts.map +1 -1
- package/dist/analyzers/security/actions.js +87 -37
- package/dist/analyzers/security/actions.js.map +1 -1
- package/dist/analyzers/security/aggregator.d.ts +236 -0
- package/dist/analyzers/security/aggregator.d.ts.map +1 -0
- package/dist/analyzers/security/aggregator.js +347 -0
- package/dist/analyzers/security/aggregator.js.map +1 -0
- package/dist/analyzers/security/detailed.d.ts +2 -2
- package/dist/analyzers/security/detailed.d.ts.map +1 -1
- package/dist/analyzers/security/detailed.js +10 -9
- package/dist/analyzers/security/detailed.js.map +1 -1
- package/dist/analyzers/security/gather.d.ts +103 -1
- package/dist/analyzers/security/gather.d.ts.map +1 -1
- package/dist/analyzers/security/gather.js +281 -9
- package/dist/analyzers/security/gather.js.map +1 -1
- package/dist/analyzers/security/index.d.ts +15 -0
- package/dist/analyzers/security/index.d.ts.map +1 -1
- package/dist/analyzers/security/index.js +463 -50
- package/dist/analyzers/security/index.js.map +1 -1
- package/dist/analyzers/security/shallow.d.ts +50 -6
- package/dist/analyzers/security/shallow.d.ts.map +1 -1
- package/dist/analyzers/security/shallow.js +154 -2
- package/dist/analyzers/security/shallow.js.map +1 -1
- package/dist/analyzers/security/types.d.ts +51 -0
- package/dist/analyzers/security/types.d.ts.map +1 -1
- package/dist/analyzers/tests/detailed.d.ts.map +1 -1
- package/dist/analyzers/tests/detailed.js +2 -3
- package/dist/analyzers/tests/detailed.js.map +1 -1
- package/dist/analyzers/tests/gather.d.ts +2 -1
- package/dist/analyzers/tests/gather.d.ts.map +1 -1
- package/dist/analyzers/tests/gather.js +98 -69
- package/dist/analyzers/tests/gather.js.map +1 -1
- package/dist/analyzers/tests/index.d.ts +11 -2
- package/dist/analyzers/tests/index.d.ts.map +1 -1
- package/dist/analyzers/tests/index.js +83 -18
- package/dist/analyzers/tests/index.js.map +1 -1
- package/dist/analyzers/tests/shallow.d.ts +19 -5
- package/dist/analyzers/tests/shallow.d.ts.map +1 -1
- package/dist/analyzers/tests/shallow.js +89 -2
- package/dist/analyzers/tests/shallow.js.map +1 -1
- package/dist/analyzers/tests/types.d.ts +41 -1
- package/dist/analyzers/tests/types.d.ts.map +1 -1
- package/dist/analyzers/tools/autogen-header.d.ts +8 -0
- package/dist/analyzers/tools/autogen-header.d.ts.map +1 -0
- package/dist/analyzers/tools/autogen-header.js +107 -0
- package/dist/analyzers/tools/autogen-header.js.map +1 -0
- package/dist/analyzers/tools/cloc.d.ts.map +1 -1
- package/dist/analyzers/tools/cloc.js +36 -5
- package/dist/analyzers/tools/cloc.js.map +1 -1
- package/dist/analyzers/tools/debug-statements.d.ts +17 -0
- package/dist/analyzers/tools/debug-statements.d.ts.map +1 -0
- package/dist/analyzers/tools/debug-statements.js +58 -0
- package/dist/analyzers/tools/debug-statements.js.map +1 -0
- package/dist/analyzers/tools/default-exclusions.gitignore +28 -0
- package/dist/analyzers/tools/exclusions.d.ts +33 -6
- package/dist/analyzers/tools/exclusions.d.ts.map +1 -1
- package/dist/analyzers/tools/exclusions.js +95 -26
- package/dist/analyzers/tools/exclusions.js.map +1 -1
- package/dist/analyzers/tools/generic.d.ts +17 -2
- package/dist/analyzers/tools/generic.d.ts.map +1 -1
- package/dist/analyzers/tools/generic.js +206 -109
- package/dist/analyzers/tools/generic.js.map +1 -1
- package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
- package/dist/analyzers/tools/gitleaks.js +48 -1
- package/dist/analyzers/tools/gitleaks.js.map +1 -1
- package/dist/analyzers/tools/graphify.d.ts +30 -2
- package/dist/analyzers/tools/graphify.d.ts.map +1 -1
- package/dist/analyzers/tools/graphify.js +131 -15
- package/dist/analyzers/tools/graphify.js.map +1 -1
- package/dist/analyzers/tools/jscpd.d.ts +12 -2
- package/dist/analyzers/tools/jscpd.d.ts.map +1 -1
- package/dist/analyzers/tools/jscpd.js +129 -6
- package/dist/analyzers/tools/jscpd.js.map +1 -1
- package/dist/analyzers/tools/minified-detection.d.ts +9 -0
- package/dist/analyzers/tools/minified-detection.d.ts.map +1 -0
- package/dist/analyzers/tools/minified-detection.js +147 -0
- package/dist/analyzers/tools/minified-detection.js.map +1 -0
- package/dist/analyzers/tools/nuget-package-reference.d.ts +131 -0
- package/dist/analyzers/tools/nuget-package-reference.d.ts.map +1 -0
- package/dist/analyzers/tools/nuget-package-reference.js +175 -0
- package/dist/analyzers/tools/nuget-package-reference.js.map +1 -0
- package/dist/analyzers/tools/osv-scanner-deps.d.ts +3 -2
- package/dist/analyzers/tools/osv-scanner-deps.d.ts.map +1 -1
- package/dist/analyzers/tools/osv-scanner-deps.js +32 -14
- package/dist/analyzers/tools/osv-scanner-deps.js.map +1 -1
- package/dist/analyzers/tools/osv.d.ts +36 -0
- package/dist/analyzers/tools/osv.d.ts.map +1 -1
- package/dist/analyzers/tools/osv.js +26 -0
- package/dist/analyzers/tools/osv.js.map +1 -1
- package/dist/analyzers/tools/parallel.d.ts +1 -1
- package/dist/analyzers/tools/parallel.d.ts.map +1 -1
- package/dist/analyzers/tools/parallel.js +2 -2
- package/dist/analyzers/tools/parallel.js.map +1 -1
- package/dist/analyzers/tools/risk-score.d.ts +7 -0
- package/dist/analyzers/tools/risk-score.d.ts.map +1 -1
- package/dist/analyzers/tools/risk-score.js +9 -2
- package/dist/analyzers/tools/risk-score.js.map +1 -1
- package/dist/analyzers/tools/run-tests-helper.d.ts +43 -0
- package/dist/analyzers/tools/run-tests-helper.d.ts.map +1 -0
- package/dist/analyzers/tools/run-tests-helper.js +156 -0
- package/dist/analyzers/tools/run-tests-helper.js.map +1 -0
- package/dist/analyzers/tools/runner.d.ts.map +1 -1
- package/dist/analyzers/tools/runner.js +75 -12
- package/dist/analyzers/tools/runner.js.map +1 -1
- package/dist/analyzers/tools/semgrep.d.ts +39 -2
- package/dist/analyzers/tools/semgrep.d.ts.map +1 -1
- package/dist/analyzers/tools/semgrep.js +131 -9
- package/dist/analyzers/tools/semgrep.js.map +1 -1
- package/dist/analyzers/tools/timing.d.ts +17 -3
- package/dist/analyzers/tools/timing.d.ts.map +1 -1
- package/dist/analyzers/tools/timing.js +36 -14
- package/dist/analyzers/tools/timing.js.map +1 -1
- package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
- package/dist/analyzers/tools/tool-registry.js +11 -1
- package/dist/analyzers/tools/tool-registry.js.map +1 -1
- package/dist/analyzers/tools/tools-unavailable-prose.d.ts +18 -0
- package/dist/analyzers/tools/tools-unavailable-prose.d.ts.map +1 -0
- package/dist/analyzers/tools/tools-unavailable-prose.js +69 -0
- package/dist/analyzers/tools/tools-unavailable-prose.js.map +1 -0
- package/dist/analyzers/tools/upgrade-plan-resolver.d.ts.map +1 -1
- package/dist/analyzers/tools/upgrade-plan-resolver.js +7 -0
- package/dist/analyzers/tools/upgrade-plan-resolver.js.map +1 -1
- package/dist/analyzers/tools/vendored-advisor.d.ts +43 -0
- package/dist/analyzers/tools/vendored-advisor.d.ts.map +1 -0
- package/dist/analyzers/tools/vendored-advisor.js +107 -0
- package/dist/analyzers/tools/vendored-advisor.js.map +1 -0
- package/dist/analyzers/tools/walk-paths.d.ts +78 -0
- package/dist/analyzers/tools/walk-paths.d.ts.map +1 -0
- package/dist/analyzers/tools/walk-paths.js +150 -0
- package/dist/analyzers/tools/walk-paths.js.map +1 -0
- package/dist/analyzers/tools/walk-source-files.d.ts +70 -0
- package/dist/analyzers/tools/walk-source-files.d.ts.map +1 -0
- package/dist/analyzers/tools/walk-source-files.js +369 -0
- package/dist/analyzers/tools/walk-source-files.js.map +1 -0
- package/dist/analyzers/types.d.ts +204 -4
- package/dist/analyzers/types.d.ts.map +1 -1
- package/dist/analyzers/xlsx/bom.d.ts.map +1 -1
- package/dist/analyzers/xlsx/bom.js +8 -1
- package/dist/analyzers/xlsx/bom.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +557 -189
- package/dist/cli.js.map +1 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +24 -7
- package/dist/detect.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +103 -53
- package/dist/doctor.js.map +1 -1
- package/dist/languages/capabilities/provider.d.ts +130 -1
- package/dist/languages/capabilities/provider.d.ts.map +1 -1
- package/dist/languages/capabilities/types.d.ts +68 -7
- package/dist/languages/capabilities/types.d.ts.map +1 -1
- package/dist/languages/csharp.d.ts +15 -1
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +624 -146
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +89 -11
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +131 -2
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +206 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +113 -26
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +132 -26
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +149 -44
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts +39 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +178 -44
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +103 -16
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +228 -5
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +201 -14
- package/dist/languages/typescript.js.map +1 -1
- package/dist/scoring/dimensions/documentation.d.ts +53 -0
- package/dist/scoring/dimensions/documentation.d.ts.map +1 -0
- package/dist/scoring/dimensions/documentation.js +106 -0
- package/dist/scoring/dimensions/documentation.js.map +1 -0
- package/dist/scoring/dimensions/dx.d.ts +53 -0
- package/dist/scoring/dimensions/dx.d.ts.map +1 -0
- package/dist/scoring/dimensions/dx.js +105 -0
- package/dist/scoring/dimensions/dx.js.map +1 -0
- package/dist/scoring/dimensions/maintainability.d.ts +53 -0
- package/dist/scoring/dimensions/maintainability.d.ts.map +1 -0
- package/dist/scoring/dimensions/maintainability.js +101 -0
- package/dist/scoring/dimensions/maintainability.js.map +1 -0
- package/dist/scoring/dimensions/quality.d.ts +108 -0
- package/dist/scoring/dimensions/quality.d.ts.map +1 -0
- package/dist/scoring/dimensions/quality.js +174 -0
- package/dist/scoring/dimensions/quality.js.map +1 -0
- package/dist/scoring/dimensions/security.d.ts +84 -0
- package/dist/scoring/dimensions/security.d.ts.map +1 -0
- package/dist/scoring/dimensions/security.js +135 -0
- package/dist/scoring/dimensions/security.js.map +1 -0
- package/dist/scoring/dimensions/testing.d.ts +56 -0
- package/dist/scoring/dimensions/testing.d.ts.map +1 -0
- package/dist/scoring/dimensions/testing.js +98 -0
- package/dist/scoring/dimensions/testing.js.map +1 -0
- package/dist/scoring/evaluator.d.ts +27 -0
- package/dist/scoring/evaluator.d.ts.map +1 -0
- package/dist/scoring/evaluator.js +124 -0
- package/dist/scoring/evaluator.js.map +1 -0
- package/dist/scoring/format.d.ts +34 -0
- package/dist/scoring/format.d.ts.map +1 -0
- package/dist/scoring/format.js +63 -0
- package/dist/scoring/format.js.map +1 -0
- package/dist/scoring/index.d.ts +37 -0
- package/dist/scoring/index.d.ts.map +1 -0
- package/dist/scoring/index.js +57 -0
- package/dist/scoring/index.js.map +1 -0
- package/dist/scoring/overall.d.ts +54 -0
- package/dist/scoring/overall.d.ts.map +1 -0
- package/dist/scoring/overall.js +76 -0
- package/dist/scoring/overall.js.map +1 -0
- package/dist/scoring/result.d.ts +111 -0
- package/dist/scoring/result.d.ts.map +1 -0
- package/dist/scoring/result.js +14 -0
- package/dist/scoring/result.js.map +1 -0
- package/dist/scoring/spec.d.ts +76 -0
- package/dist/scoring/spec.d.ts.map +1 -0
- package/dist/scoring/spec.js +22 -0
- package/dist/scoring/spec.js.map +1 -0
- package/dist/scoring/thresholds.d.ts +56 -0
- package/dist/scoring/thresholds.d.ts.map +1 -0
- package/dist/scoring/thresholds.js +75 -0
- package/dist/scoring/thresholds.js.map +1 -0
- package/dist/tools-cli.d.ts.map +1 -1
- package/dist/tools-cli.js +21 -2
- package/dist/tools-cli.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.claude/commands/dashboard.md +17 -9
- package/dist/analyzers/scoring.d.ts +0 -49
- package/dist/analyzers/scoring.d.ts.map +0 -1
- package/dist/analyzers/scoring.js +0 -422
- package/dist/analyzers/scoring.js.map +0 -1
- package/dist/analyzers/security/scoring.d.ts +0 -29
- package/dist/analyzers/security/scoring.d.ts.map +0 -1
- package/dist/analyzers/security/scoring.js +0 -40
- package/dist/analyzers/security/scoring.js.map +0 -1
|
@@ -7,10 +7,139 @@
|
|
|
7
7
|
* has nothing to contribute for this cwd" (e.g. the Python pack on a
|
|
8
8
|
* Go-only repo); the dispatcher filters nulls before aggregating.
|
|
9
9
|
*/
|
|
10
|
-
import type { CapabilityEnvelope } from './types';
|
|
10
|
+
import type { CapabilityEnvelope, DepVulnGatherOutcome, DepVulnResult, LicensesGatherOutcome, LicensesResult, LintGatherOutcome, LintResult } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Outcome of a side-effecting `runTests()` invocation (D021).
|
|
13
|
+
*
|
|
14
|
+
* Discriminated so the CLI can render per-pack status (success/skip/fail)
|
|
15
|
+
* AND so the report orchestrator can decide whether downstream consumers
|
|
16
|
+
* (health, test-gaps) will find a usable coverage artifact afterwards.
|
|
17
|
+
*
|
|
18
|
+
* - `success` — the test runner exited cleanly AND the expected
|
|
19
|
+
* coverage artifact is on disk. `artifact` is the
|
|
20
|
+
* relative path so the CLI summary can name it.
|
|
21
|
+
* - `unavailable` — the pack can't run tests in this repo (test runner
|
|
22
|
+
* missing, project config absent, no `.cov` setup).
|
|
23
|
+
* `reason` is the human-readable explanation. Not a
|
|
24
|
+
* failure — the user just doesn't have the prereqs.
|
|
25
|
+
* - `failed` — the test runner ran but exited non-zero (tests
|
|
26
|
+
* failed) OR exited zero but produced no artifact.
|
|
27
|
+
* `reason` carries the exit message; `durationMs`
|
|
28
|
+
* records wall-clock so the CLI can surface the
|
|
29
|
+
* "tests ran for 8 min then failed" framing.
|
|
30
|
+
*/
|
|
31
|
+
export type RunTestsOutcome = {
|
|
32
|
+
kind: 'success';
|
|
33
|
+
artifact: string;
|
|
34
|
+
durationMs: number;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'unavailable';
|
|
37
|
+
reason: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'failed';
|
|
40
|
+
reason: string;
|
|
41
|
+
durationMs: number;
|
|
42
|
+
};
|
|
11
43
|
export interface CapabilityProvider<T extends CapabilityEnvelope> {
|
|
12
44
|
/** Source name for attribution in logs and errors (usually the language id). */
|
|
13
45
|
readonly source: string;
|
|
14
46
|
gather(cwd: string): Promise<T | null>;
|
|
47
|
+
/**
|
|
48
|
+
* Optional side-effecting hook that materializes the artifact this
|
|
49
|
+
* provider's `gather()` later reads. Only meaningful on coverage
|
|
50
|
+
* providers today (D021's `vyuh-dxkit coverage` subcommand iterates
|
|
51
|
+
* every active pack's coverage capability and calls `runTests()` if
|
|
52
|
+
* defined). Other capabilities can adopt the same shape if a similar
|
|
53
|
+
* "run the upstream tool to produce input" need arises.
|
|
54
|
+
*
|
|
55
|
+
* Implementations should be idempotent: re-invoking on an already-
|
|
56
|
+
* populated repo should produce the same outcome (rerunning the test
|
|
57
|
+
* suite is fine; the upstream tool typically truncates+rewrites its
|
|
58
|
+
* output file).
|
|
59
|
+
*/
|
|
60
|
+
runTests?(cwd: string): Promise<RunTestsOutcome>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Specialized provider for dependency-vulnerability gathering. Extends
|
|
64
|
+
* `CapabilityProvider<DepVulnResult>` with a required `gatherOutcome`
|
|
65
|
+
* method that exposes the underlying `DepVulnGatherOutcome` discriminant
|
|
66
|
+
* (success / unavailable / no-manifest) to availability-aware analyzers.
|
|
67
|
+
*
|
|
68
|
+
* D025b (2.4.7): the dispatcher-routed `gather()` method collapses every
|
|
69
|
+
* non-success outcome to `null`, which makes the security scorer blind
|
|
70
|
+
* to the difference between "tool ran cleanly with zero findings" and
|
|
71
|
+
* "tool wasn't available / no manifest" — the dpl-studio F4 baseline
|
|
72
|
+
* (Security 100/100 on 133 unscanned NuGet refs). `gatherOutcome` is
|
|
73
|
+
* the channel by which `gatherDepVulns` in `analyzers/security/gather.ts`
|
|
74
|
+
* computes `DepVulnSummary.available`, which the security scorer reads
|
|
75
|
+
* via `SecurityScoreInput.depVulnsAvailable` to cap the dimension at
|
|
76
|
+
* 65/100 when false.
|
|
77
|
+
*
|
|
78
|
+
* Both methods on this interface delegate to the same underlying pack
|
|
79
|
+
* helper (e.g. `gatherCsharpDepVulnsResult`); implementations should NOT
|
|
80
|
+
* duplicate work between them — call the helper once and unwrap for
|
|
81
|
+
* `gather()`, return the full outcome for `gatherOutcome()`. In practice
|
|
82
|
+
* `gatherDepVulns` only calls `gatherOutcome` (and unwraps locally), so
|
|
83
|
+
* `gather()` is preserved for legacy/dispatcher consumers and isn't
|
|
84
|
+
* invoked on the hot path.
|
|
85
|
+
*/
|
|
86
|
+
export interface DepVulnsProvider extends CapabilityProvider<DepVulnResult> {
|
|
87
|
+
gatherOutcome(cwd: string): Promise<DepVulnGatherOutcome>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Specialized provider for license inventory gathering. D031 (2.4.7):
|
|
91
|
+
* extends `CapabilityProvider<LicensesResult>` with a required
|
|
92
|
+
* `gatherOutcome` method exposing the underlying
|
|
93
|
+
* `LicensesGatherOutcome` discriminant. Same architectural shape as
|
|
94
|
+
* `DepVulnsProvider` (D025b) — solves the same customer-credibility
|
|
95
|
+
* lie (the licenses report rendering "0 packages" on dpl-studio when
|
|
96
|
+
* `nuget-license` is absent, indistinguishable from a repo with
|
|
97
|
+
* legitimately zero third-party deps).
|
|
98
|
+
*
|
|
99
|
+
* `gatherOutcome` channels the discriminant to `gatherLicensesWith
|
|
100
|
+
* Availability` in `analyzers/licenses/gather.ts`, which feeds it
|
|
101
|
+
* into the licenses report's framing block (success → full
|
|
102
|
+
* inventory; unavailable → ⚠ notice + degraded fallback path;
|
|
103
|
+
* no-manifest → "no packages to license" honest framing). The
|
|
104
|
+
* dispatcher-routed `gather()` continues to collapse non-success
|
|
105
|
+
* outcomes to null for legacy consumers.
|
|
106
|
+
*
|
|
107
|
+
* Both methods on this interface delegate to the same underlying
|
|
108
|
+
* pack helper (e.g. `gatherCsharpLicensesResult`); implementations
|
|
109
|
+
* should NOT duplicate work — call the helper once, unwrap for
|
|
110
|
+
* `gather()`, return the full outcome for `gatherOutcome()`.
|
|
111
|
+
*/
|
|
112
|
+
export interface LicensesProvider extends CapabilityProvider<LicensesResult> {
|
|
113
|
+
gatherOutcome(cwd: string): Promise<LicensesGatherOutcome>;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Specialized provider for lint gathering. Extends
|
|
117
|
+
* `CapabilityProvider<LintResult>` with an optional `gatherOutcome`
|
|
118
|
+
* exposing the underlying `LintGatherOutcome` discriminant
|
|
119
|
+
* (success / unavailable). The dispatcher collapses non-success to
|
|
120
|
+
* `null` for legacy consumers, but availability-aware reporting
|
|
121
|
+
* (Quality dimension's "Linter coverage gap" callout, the
|
|
122
|
+
* `tools used` row, the standalone Quality report) needs the
|
|
123
|
+
* per-pack reason so the customer can act on it ("TypeScript lint
|
|
124
|
+
* skipped: no eslint config found" beats "TypeScript lint skipped:
|
|
125
|
+
* <silence>").
|
|
126
|
+
*
|
|
127
|
+
* The reason carried in `LintGatherOutcome.unavailable.reason` is
|
|
128
|
+
* already produced inside every pack's `gather<Lang>LintResult`
|
|
129
|
+
* helper today — `gatherOutcome` just exposes it through the
|
|
130
|
+
* provider boundary so the dispatcher can capture it alongside the
|
|
131
|
+
* pack id.
|
|
132
|
+
*
|
|
133
|
+
* Optional rather than required: legacy lint providers (packs that
|
|
134
|
+
* haven't been refactored to expose outcomes) continue to work; the
|
|
135
|
+
* dispatcher falls back to the existing `null`-collapse channel and
|
|
136
|
+
* surfaces the pack id only.
|
|
137
|
+
*
|
|
138
|
+
* Both methods delegate to the same underlying pack helper —
|
|
139
|
+
* implementations should NOT duplicate work; call the helper once,
|
|
140
|
+
* unwrap for `gather()`, return the full outcome for `gatherOutcome()`.
|
|
141
|
+
*/
|
|
142
|
+
export interface LintProvider extends CapabilityProvider<LintResult> {
|
|
143
|
+
gatherOutcome?(cwd: string): Promise<LintGatherOutcome>;
|
|
15
144
|
}
|
|
16
145
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/languages/capabilities/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/languages/capabilities/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,kBAAkB;IAC9D,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB,CAAC,aAAa,CAAC;IACzE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IAC1E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,YAAa,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAClE,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzD"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* ...) land in Phase 10e.B.6+.
|
|
20
20
|
*/
|
|
21
21
|
import type { Coverage } from '../../analyzers/tools/coverage';
|
|
22
|
+
import type { LanguageId } from '../../types';
|
|
22
23
|
/** Four-tier severity counts, the project-wide convention. */
|
|
23
24
|
export interface SeverityCounts {
|
|
24
25
|
critical: number;
|
|
@@ -99,6 +100,7 @@ export interface DepVulnFinding {
|
|
|
99
100
|
package: string;
|
|
100
101
|
installedVersion?: string;
|
|
101
102
|
tool: string;
|
|
103
|
+
packId?: LanguageId;
|
|
102
104
|
severity: keyof SeverityCounts;
|
|
103
105
|
cvssScore?: number;
|
|
104
106
|
fixedVersion?: string;
|
|
@@ -303,19 +305,40 @@ export interface StructuralResult extends CapabilityEnvelope {
|
|
|
303
305
|
* Internal outcome shape used by language packs' `gatherDepVulnsResult`
|
|
304
306
|
* helpers. The pack's `capabilities.depVulns` provider unwraps the
|
|
305
307
|
* envelope (returning null for every non-success kind) so the dispatcher
|
|
306
|
-
* surface stays `T | null`; keeping the richer outcome here lets
|
|
307
|
-
*
|
|
308
|
-
*
|
|
308
|
+
* surface stays `T | null`; keeping the richer outcome here lets
|
|
309
|
+
* availability-aware analyzers (health-audit security scorer, standalone
|
|
310
|
+
* vulnerability scan) distinguish "tool absent / scan didn't run" from
|
|
311
|
+
* "scan ran cleanly, no findings."
|
|
312
|
+
*
|
|
313
|
+
* D025a (2.4.7): the pre-2.4.7 enum had four variants (`success`,
|
|
314
|
+
* `tool-missing`, `no-output`, `parse-error`) that lumped together two
|
|
315
|
+
* semantically distinct cases:
|
|
316
|
+
*
|
|
317
|
+
* 1. **The dep-vuln scan was infrastructurally unavailable** — tool
|
|
318
|
+
* not installed, tool produced no output, output unparseable. From
|
|
319
|
+
* the user's perspective: "dxkit couldn't tell me if my deps are
|
|
320
|
+
* safe." This is the F4 baseline customer-credibility case
|
|
321
|
+
* (Security 100/100 on an unscannable repo). Maps to `unavailable`.
|
|
322
|
+
*
|
|
323
|
+
* 2. **There's nothing in this stack to scan** — no `.csproj` in a
|
|
324
|
+
* csharp pack run, no `Cargo.lock` in a rust pack run, no
|
|
325
|
+
* `requirements.txt` in a python pack run. Legitimate state for
|
|
326
|
+
* polyglot repos where one pack activates but contributes no
|
|
327
|
+
* manifests. Maps to `no-manifest`.
|
|
328
|
+
*
|
|
329
|
+
* The split lets downstream scorers cap on (1) without penalizing (2).
|
|
330
|
+
* Pre-2.4.7 they both collapsed to `tool-missing` and the security
|
|
331
|
+
* scorer had no way to differentiate.
|
|
309
332
|
*/
|
|
310
333
|
export type DepVulnGatherOutcome = {
|
|
311
334
|
kind: 'success';
|
|
312
335
|
envelope: DepVulnResult;
|
|
313
336
|
} | {
|
|
314
|
-
kind: '
|
|
315
|
-
|
|
316
|
-
kind: 'parse-error';
|
|
337
|
+
kind: 'unavailable';
|
|
338
|
+
reason: string;
|
|
317
339
|
} | {
|
|
318
|
-
kind: 'no-
|
|
340
|
+
kind: 'no-manifest';
|
|
341
|
+
reason: string;
|
|
319
342
|
};
|
|
320
343
|
/**
|
|
321
344
|
* Internal outcome shape for the lint capability. Simpler than depVulns:
|
|
@@ -330,4 +353,42 @@ export type LintGatherOutcome = {
|
|
|
330
353
|
kind: 'unavailable';
|
|
331
354
|
reason: string;
|
|
332
355
|
};
|
|
356
|
+
/**
|
|
357
|
+
* Internal outcome shape for the licenses capability. D031 (2.4.7):
|
|
358
|
+
* mirrors `DepVulnGatherOutcome`'s three-state discriminant so the
|
|
359
|
+
* licenses report can differentiate three distinct customer-facing
|
|
360
|
+
* states:
|
|
361
|
+
*
|
|
362
|
+
* - **success**: the canonical license extraction tool ran
|
|
363
|
+
* cleanly (e.g. `nuget-license` for csharp, `pip-licenses` for
|
|
364
|
+
* python, `cargo-license` for rust, etc.). Envelope carries the
|
|
365
|
+
* per-package license inventory.
|
|
366
|
+
*
|
|
367
|
+
* - **unavailable**: tool isn't installed OR the gather failed
|
|
368
|
+
* mid-run. F12 in dpl-studio's baseline was exactly this:
|
|
369
|
+
* `nuget-license` absent → pre-D031 the licenses report rendered
|
|
370
|
+
* "0 packages" with no caveat, indistinguishable from a repo
|
|
371
|
+
* that legitimately has no third-party deps.
|
|
372
|
+
*
|
|
373
|
+
* - **no-manifest**: pack is active but the repo has no dep
|
|
374
|
+
* manifest in scope (no `.csproj` for csharp, no `package.json`
|
|
375
|
+
* for ts, no `Cargo.toml` for rust, no `requirements.txt`/
|
|
376
|
+
* `pyproject.toml` for python). Legitimate "nothing to license."
|
|
377
|
+
*
|
|
378
|
+
* The provider's `gather()` method continues to collapse non-success
|
|
379
|
+
* to null for dispatcher consumers; availability-aware analyzers
|
|
380
|
+
* (the licenses report + standalone scan) read the discriminant via
|
|
381
|
+
* `LicensesProvider.gatherOutcome` directly. Same architectural
|
|
382
|
+
* shape D025b established for DepVulnsProvider.
|
|
383
|
+
*/
|
|
384
|
+
export type LicensesGatherOutcome = {
|
|
385
|
+
kind: 'success';
|
|
386
|
+
envelope: LicensesResult;
|
|
387
|
+
} | {
|
|
388
|
+
kind: 'unavailable';
|
|
389
|
+
reason: string;
|
|
390
|
+
} | {
|
|
391
|
+
kind: 'no-manifest';
|
|
392
|
+
reason: string;
|
|
393
|
+
};
|
|
333
394
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/languages/capabilities/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/languages/capabilities/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,21 @@ export declare function buildCsharpTopLevelDepIndex(parsed: {
|
|
|
64
64
|
*
|
|
65
65
|
* Exported for test coverage.
|
|
66
66
|
*/
|
|
67
|
-
export declare function findAllProjectAssetsJson(cwd: string
|
|
67
|
+
export declare function findAllProjectAssetsJson(cwd: string): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Locate every `.csproj` reachable from cwd within `maxDepth` levels.
|
|
70
|
+
* D025f (2.4.7): the direct-parsing fallback iterates this list when
|
|
71
|
+
* `dotnet list package` can't produce output (D036: cwd is a parent
|
|
72
|
+
* of the actual project files, dotnet has no way to pick one).
|
|
73
|
+
*
|
|
74
|
+
* Skips standard non-source dirs (node_modules / bin / obj /
|
|
75
|
+
* TestResults / packages). Unlike `findAllProjectAssetsJson` (which
|
|
76
|
+
* needs `obj/`), this walk's targets sit in project root directories
|
|
77
|
+
* so the obj-skip is fine.
|
|
78
|
+
*
|
|
79
|
+
* Exported for test coverage.
|
|
80
|
+
*/
|
|
81
|
+
export declare function findAllCsprojFiles(cwd: string): string[];
|
|
68
82
|
/**
|
|
69
83
|
* Merge multiple `project.assets.json` parse results into a single
|
|
70
84
|
* graph. `topLevels` unions across projects; `edges` unions the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/languages/csharp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/languages/csharp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAmB1E,OAAO,KAAK,EAEV,cAAc,EASd,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuC/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAoC/F;AA8GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CA2D/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GACV;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,IAAI,CAqCjE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACjD,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAe9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC,GAC9E;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAY1D;AAggBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjE;AAoSD,eAAO,MAAM,MAAM,EAAE,eAgKpB,CAAC"}
|