@vyuhlabs/dxkit 2.5.2 → 2.7.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/CHANGELOG.md +218 -13
- package/README.md +220 -369
- package/dist/allowlist/categories.d.ts +120 -0
- package/dist/allowlist/categories.d.ts.map +1 -0
- package/dist/allowlist/categories.js +194 -0
- package/dist/allowlist/categories.js.map +1 -0
- package/dist/allowlist/cli.d.ts +95 -0
- package/dist/allowlist/cli.d.ts.map +1 -0
- package/dist/allowlist/cli.js +454 -0
- package/dist/allowlist/cli.js.map +1 -0
- package/dist/allowlist/diff.d.ts +67 -0
- package/dist/allowlist/diff.d.ts.map +1 -0
- package/dist/allowlist/diff.js +147 -0
- package/dist/allowlist/diff.js.map +1 -0
- package/dist/allowlist/file.d.ts +249 -0
- package/dist/allowlist/file.d.ts.map +1 -0
- package/dist/allowlist/file.js +497 -0
- package/dist/allowlist/file.js.map +1 -0
- package/dist/allowlist/gather.d.ts +61 -0
- package/dist/allowlist/gather.d.ts.map +1 -0
- package/dist/allowlist/gather.js +143 -0
- package/dist/allowlist/gather.js.map +1 -0
- package/dist/allowlist/hint.d.ts +80 -0
- package/dist/allowlist/hint.d.ts.map +1 -0
- package/dist/allowlist/hint.js +271 -0
- package/dist/allowlist/hint.js.map +1 -0
- package/dist/allowlist/inline.d.ts +149 -0
- package/dist/allowlist/inline.d.ts.map +1 -0
- package/dist/allowlist/inline.js +306 -0
- package/dist/allowlist/inline.js.map +1 -0
- package/dist/analyzers/bom/discovery.d.ts +3 -4
- package/dist/analyzers/bom/discovery.d.ts.map +1 -1
- package/dist/analyzers/bom/discovery.js +3 -4
- package/dist/analyzers/bom/discovery.js.map +1 -1
- package/dist/analyzers/bom/types.d.ts +1 -1
- package/dist/analyzers/dashboard/index.d.ts.map +1 -1
- package/dist/analyzers/dashboard/index.js +42 -5
- package/dist/analyzers/dashboard/index.js.map +1 -1
- package/dist/analyzers/quality/detailed.d.ts +8 -1
- package/dist/analyzers/quality/detailed.d.ts.map +1 -1
- package/dist/analyzers/quality/detailed.js +43 -10
- package/dist/analyzers/quality/detailed.js.map +1 -1
- package/dist/analyzers/security/detailed.d.ts +8 -1
- package/dist/analyzers/security/detailed.d.ts.map +1 -1
- package/dist/analyzers/security/detailed.js +14 -1
- package/dist/analyzers/security/detailed.js.map +1 -1
- package/dist/analyzers/tests/detailed.d.ts +8 -1
- package/dist/analyzers/tests/detailed.d.ts.map +1 -1
- package/dist/analyzers/tests/detailed.js +26 -7
- package/dist/analyzers/tests/detailed.js.map +1 -1
- package/dist/analyzers/tools/cloc.js +3 -3
- package/dist/analyzers/tools/cloc.js.map +1 -1
- package/dist/analyzers/tools/exclusions.d.ts +12 -12
- package/dist/analyzers/tools/exclusions.d.ts.map +1 -1
- package/dist/analyzers/tools/exclusions.js +27 -13
- package/dist/analyzers/tools/exclusions.js.map +1 -1
- package/dist/analyzers/tools/graphify.d.ts +39 -5
- package/dist/analyzers/tools/graphify.d.ts.map +1 -1
- package/dist/analyzers/tools/graphify.js +609 -45
- package/dist/analyzers/tools/graphify.js.map +1 -1
- package/dist/analyzers/tools/nuget-package-reference.d.ts +4 -4
- package/dist/analyzers/tools/nuget-package-reference.js +4 -4
- package/dist/analyzers/tools/osv-scanner-fix.d.ts +4 -5
- package/dist/analyzers/tools/osv-scanner-fix.d.ts.map +1 -1
- package/dist/analyzers/tools/osv-scanner-fix.js +4 -5
- package/dist/analyzers/tools/osv-scanner-fix.js.map +1 -1
- package/dist/analyzers/tools/parallel.d.ts.map +1 -1
- package/dist/analyzers/tools/parallel.js +7 -0
- package/dist/analyzers/tools/parallel.js.map +1 -1
- package/dist/analyzers/tools/vendored-advisor.d.ts.map +1 -1
- package/dist/analyzers/tools/vendored-advisor.js +3 -4
- package/dist/analyzers/tools/vendored-advisor.js.map +1 -1
- package/dist/analyzers/xlsx/licenses.d.ts +7 -7
- package/dist/analyzers/xlsx/licenses.js +7 -7
- package/dist/baseline/baseline-file.d.ts +7 -0
- package/dist/baseline/baseline-file.d.ts.map +1 -1
- package/dist/baseline/baseline-file.js +22 -1
- package/dist/baseline/baseline-file.js.map +1 -1
- package/dist/baseline/check-renderers.d.ts +13 -1
- package/dist/baseline/check-renderers.d.ts.map +1 -1
- package/dist/baseline/check-renderers.js +67 -1
- package/dist/baseline/check-renderers.js.map +1 -1
- package/dist/baseline/check.d.ts +33 -7
- package/dist/baseline/check.d.ts.map +1 -1
- package/dist/baseline/check.js +90 -64
- package/dist/baseline/check.js.map +1 -1
- package/dist/baseline/create.d.ts +35 -7
- package/dist/baseline/create.d.ts.map +1 -1
- package/dist/baseline/create.js +43 -5
- package/dist/baseline/create.js.map +1 -1
- package/dist/baseline/entry-to-located.d.ts +6 -1
- package/dist/baseline/entry-to-located.d.ts.map +1 -1
- package/dist/baseline/entry-to-located.js +20 -2
- package/dist/baseline/entry-to-located.js.map +1 -1
- package/dist/baseline/finding-identity.d.ts.map +1 -1
- package/dist/baseline/finding-identity.js +15 -13
- package/dist/baseline/finding-identity.js.map +1 -1
- package/dist/baseline/modes.d.ts +140 -0
- package/dist/baseline/modes.d.ts.map +1 -0
- package/dist/baseline/modes.js +179 -0
- package/dist/baseline/modes.js.map +1 -0
- package/dist/baseline/policy.d.ts +64 -0
- package/dist/baseline/policy.d.ts.map +1 -1
- package/dist/baseline/policy.js +102 -1
- package/dist/baseline/policy.js.map +1 -1
- package/dist/baseline/producers/health.d.ts +2 -2
- package/dist/baseline/producers/health.d.ts.map +1 -1
- package/dist/baseline/producers/health.js.map +1 -1
- package/dist/baseline/producers/index.d.ts +11 -5
- package/dist/baseline/producers/index.d.ts.map +1 -1
- package/dist/baseline/producers/index.js +12 -9
- package/dist/baseline/producers/index.js.map +1 -1
- package/dist/baseline/producers/quality.d.ts +3 -3
- package/dist/baseline/producers/quality.d.ts.map +1 -1
- package/dist/baseline/producers/quality.js.map +1 -1
- package/dist/baseline/producers/secret-hmac.d.ts +2 -2
- package/dist/baseline/producers/secret-hmac.d.ts.map +1 -1
- package/dist/baseline/producers/secret-hmac.js.map +1 -1
- package/dist/baseline/producers/security.d.ts +2 -2
- package/dist/baseline/producers/security.d.ts.map +1 -1
- package/dist/baseline/producers/security.js.map +1 -1
- package/dist/baseline/producers/stale-allow.d.ts +70 -0
- package/dist/baseline/producers/stale-allow.d.ts.map +1 -0
- package/dist/baseline/producers/stale-allow.js +111 -0
- package/dist/baseline/producers/stale-allow.js.map +1 -0
- package/dist/baseline/producers/tests.d.ts +2 -2
- package/dist/baseline/producers/tests.d.ts.map +1 -1
- package/dist/baseline/producers/tests.js.map +1 -1
- package/dist/baseline/ref-baseline.d.ts +114 -0
- package/dist/baseline/ref-baseline.d.ts.map +1 -0
- package/dist/baseline/ref-baseline.js +260 -0
- package/dist/baseline/ref-baseline.js.map +1 -0
- package/dist/baseline/sanitize.d.ts +80 -0
- package/dist/baseline/sanitize.d.ts.map +1 -0
- package/dist/baseline/sanitize.js +91 -0
- package/dist/baseline/sanitize.js.map +1 -0
- package/dist/baseline/show.d.ts.map +1 -1
- package/dist/baseline/show.js +9 -3
- package/dist/baseline/show.js.map +1 -1
- package/dist/baseline/types.d.ts +73 -26
- package/dist/baseline/types.d.ts.map +1 -1
- package/dist/baseline/types.js +7 -1
- package/dist/baseline/types.js.map +1 -1
- package/dist/baseline/visibility.d.ts +61 -0
- package/dist/baseline/visibility.d.ts.map +1 -0
- package/dist/baseline/visibility.js +121 -0
- package/dist/baseline/visibility.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +168 -6
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/graph-adapter.d.ts +151 -0
- package/dist/dashboard/graph-adapter.d.ts.map +1 -0
- package/dist/dashboard/graph-adapter.js +415 -0
- package/dist/dashboard/graph-adapter.js.map +1 -0
- package/dist/dashboard/graph-tab.d.ts +109 -0
- package/dist/dashboard/graph-tab.d.ts.map +1 -0
- package/dist/dashboard/graph-tab.js +297 -0
- package/dist/dashboard/graph-tab.js.map +1 -0
- package/dist/dashboard/vendor/vis-network.min.js +34 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +106 -16
- package/dist/doctor.js.map +1 -1
- package/dist/explore/cli/api-surface.d.ts +12 -0
- package/dist/explore/cli/api-surface.d.ts.map +1 -0
- package/dist/explore/cli/api-surface.js +57 -0
- package/dist/explore/cli/api-surface.js.map +1 -0
- package/dist/explore/cli/communities.d.ts +10 -0
- package/dist/explore/cli/communities.d.ts.map +1 -0
- package/dist/explore/cli/communities.js +47 -0
- package/dist/explore/cli/communities.js.map +1 -0
- package/dist/explore/cli/context.d.ts +16 -0
- package/dist/explore/cli/context.d.ts.map +1 -0
- package/dist/explore/cli/context.js +118 -0
- package/dist/explore/cli/context.js.map +1 -0
- package/dist/explore/cli/entry-points.d.ts +12 -0
- package/dist/explore/cli/entry-points.d.ts.map +1 -0
- package/dist/explore/cli/entry-points.js +85 -0
- package/dist/explore/cli/entry-points.js.map +1 -0
- package/dist/explore/cli/feature.d.ts +16 -0
- package/dist/explore/cli/feature.d.ts.map +1 -0
- package/dist/explore/cli/feature.js +89 -0
- package/dist/explore/cli/feature.js.map +1 -0
- package/dist/explore/cli/file.d.ts +12 -0
- package/dist/explore/cli/file.d.ts.map +1 -0
- package/dist/explore/cli/file.js +139 -0
- package/dist/explore/cli/file.js.map +1 -0
- package/dist/explore/cli/hot-files.d.ts +11 -0
- package/dist/explore/cli/hot-files.d.ts.map +1 -0
- package/dist/explore/cli/hot-files.js +63 -0
- package/dist/explore/cli/hot-files.js.map +1 -0
- package/dist/explore/context-hook.d.ts +42 -0
- package/dist/explore/context-hook.d.ts.map +1 -0
- package/dist/explore/context-hook.js +131 -0
- package/dist/explore/context-hook.js.map +1 -0
- package/dist/explore/finding-context.d.ts +69 -0
- package/dist/explore/finding-context.d.ts.map +1 -0
- package/dist/explore/finding-context.js +102 -0
- package/dist/explore/finding-context.js.map +1 -0
- package/dist/explore/format.d.ts +64 -0
- package/dist/explore/format.d.ts.map +1 -0
- package/dist/explore/format.js +99 -0
- package/dist/explore/format.js.map +1 -0
- package/dist/explore/load.d.ts +50 -0
- package/dist/explore/load.d.ts.map +1 -0
- package/dist/explore/load.js +197 -0
- package/dist/explore/load.js.map +1 -0
- package/dist/explore/queries.d.ts +413 -0
- package/dist/explore/queries.d.ts.map +1 -0
- package/dist/explore/queries.js +855 -0
- package/dist/explore/queries.js.map +1 -0
- package/dist/explore/types.d.ts +130 -0
- package/dist/explore/types.d.ts.map +1 -0
- package/dist/explore/types.js +28 -0
- package/dist/explore/types.js.map +1 -0
- package/dist/explore-cli.d.ts +45 -0
- package/dist/explore-cli.d.ts.map +1 -0
- package/dist/explore-cli.js +213 -0
- package/dist/explore-cli.js.map +1 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +19 -0
- package/dist/generator.js.map +1 -1
- package/dist/issue-cli.d.ts +62 -0
- package/dist/issue-cli.d.ts.map +1 -0
- package/dist/issue-cli.js +252 -0
- package/dist/issue-cli.js.map +1 -0
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +32 -11
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +5 -0
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +27 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +35 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +5 -0
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +5 -0
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +5 -0
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +5 -0
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +5 -0
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +79 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +6 -1
- package/dist/languages/typescript.js.map +1 -1
- package/package.json +2 -1
- package/templates/.claude/skills/dxkit-action/SKILL.md +126 -12
- package/templates/.claude/skills/dxkit-onboard/SKILL.md +31 -3
- package/templates/.claude/skills/dxkit-reports/SKILL.md +3 -1
- package/templates/AGENTS.md.template +8 -1
- package/dist/baseline/producers/licenses.d.ts +0 -23
- package/dist/baseline/producers/licenses.d.ts.map +0 -1
- package/dist/baseline/producers/licenses.js +0 -46
- package/dist/baseline/producers/licenses.js.map +0 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Inline allowlist annotations.
|
|
4
|
+
*
|
|
5
|
+
* Grammar:
|
|
6
|
+
*
|
|
7
|
+
* <lineComment> dxkit-allow:<category> reason="<text>"
|
|
8
|
+
*
|
|
9
|
+
* Examples:
|
|
10
|
+
*
|
|
11
|
+
* # dxkit-allow:test-fixture reason="placeholder in unit test"
|
|
12
|
+
* // dxkit-allow:false-positive reason="regex matches our intentional placeholder"
|
|
13
|
+
*
|
|
14
|
+
* Two positions:
|
|
15
|
+
*
|
|
16
|
+
* - **Same-line** — annotation appears on the same source line as
|
|
17
|
+
* the finding, separated by at least one space:
|
|
18
|
+
*
|
|
19
|
+
* api_key = "sk_test_xxxx" # dxkit-allow:test-fixture reason="..."
|
|
20
|
+
*
|
|
21
|
+
* - **Above-line** — annotation occupies its own line, immediately
|
|
22
|
+
* preceding the finding (matching its indentation):
|
|
23
|
+
*
|
|
24
|
+
* # dxkit-allow:test-fixture reason="..."
|
|
25
|
+
* api_key = "sk_test_xxxx"
|
|
26
|
+
*
|
|
27
|
+
* The position is chosen at insert time by `insertAnnotation`: short
|
|
28
|
+
* source lines (under the configurable threshold) get same-line
|
|
29
|
+
* annotation; longer lines get above-line so the result stays
|
|
30
|
+
* readable.
|
|
31
|
+
*
|
|
32
|
+
* The grammar applies uniformly across every language; only the
|
|
33
|
+
* `<lineComment>` token varies (`#` for python/ruby, `//` for
|
|
34
|
+
* typescript/go/rust/csharp/kotlin/java). Each language pack
|
|
35
|
+
* declares its token via `LanguageSupport.commentSyntax`.
|
|
36
|
+
*
|
|
37
|
+
* # Quoting + escaping
|
|
38
|
+
*
|
|
39
|
+
* The reason is a JSON-style string. To embed a literal `"`, escape
|
|
40
|
+
* as `\"`; to embed a literal `\`, escape as `\\`. The parser
|
|
41
|
+
* un-escapes both on read; the writer escapes both on insert. No
|
|
42
|
+
* other escape sequences are supported (no `\n`, `\t`, etc.) — keep
|
|
43
|
+
* the reason single-line for human review.
|
|
44
|
+
*/
|
|
45
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
46
|
+
if (k2 === undefined) k2 = k;
|
|
47
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
48
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
49
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
50
|
+
}
|
|
51
|
+
Object.defineProperty(o, k2, desc);
|
|
52
|
+
}) : (function(o, m, k, k2) {
|
|
53
|
+
if (k2 === undefined) k2 = k;
|
|
54
|
+
o[k2] = m[k];
|
|
55
|
+
}));
|
|
56
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
57
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
58
|
+
}) : function(o, v) {
|
|
59
|
+
o["default"] = v;
|
|
60
|
+
});
|
|
61
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
62
|
+
var ownKeys = function(o) {
|
|
63
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
64
|
+
var ar = [];
|
|
65
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
66
|
+
return ar;
|
|
67
|
+
};
|
|
68
|
+
return ownKeys(o);
|
|
69
|
+
};
|
|
70
|
+
return function (mod) {
|
|
71
|
+
if (mod && mod.__esModule) return mod;
|
|
72
|
+
var result = {};
|
|
73
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
74
|
+
__setModuleDefault(result, mod);
|
|
75
|
+
return result;
|
|
76
|
+
};
|
|
77
|
+
})();
|
|
78
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
79
|
+
exports.renderAnnotation = renderAnnotation;
|
|
80
|
+
exports.parseAnnotation = parseAnnotation;
|
|
81
|
+
exports.findAnnotationAt = findAnnotationAt;
|
|
82
|
+
exports.insertAnnotation = insertAnnotation;
|
|
83
|
+
exports.isStandaloneAnnotationLine = isStandaloneAnnotationLine;
|
|
84
|
+
const fs = __importStar(require("fs"));
|
|
85
|
+
const categories_1 = require("./categories");
|
|
86
|
+
/**
|
|
87
|
+
* Annotation prefix. Single source of truth — every consumer
|
|
88
|
+
* (renderer, parser, standalone-line detector) reads from here so
|
|
89
|
+
* changing the convention is a one-line edit.
|
|
90
|
+
*/
|
|
91
|
+
const ANNOTATION_PREFIX = 'dxkit-allow:';
|
|
92
|
+
const DEFAULT_SAME_LINE_THRESHOLD = 60;
|
|
93
|
+
/**
|
|
94
|
+
* Build the annotation comment body (no leading whitespace, no
|
|
95
|
+
* comment marker). The caller composes the full comment by
|
|
96
|
+
* prepending the language's `lineComment` token.
|
|
97
|
+
*/
|
|
98
|
+
function annotationBody(annotation) {
|
|
99
|
+
let body = `${ANNOTATION_PREFIX}${annotation.category}`;
|
|
100
|
+
if (annotation.reason !== undefined) {
|
|
101
|
+
body += ` reason="${escapeReason(annotation.reason)}"`;
|
|
102
|
+
}
|
|
103
|
+
return body;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Render a complete annotation comment for a given language.
|
|
107
|
+
* Exposed so callers (the CLI, the block-time hint formatter) can
|
|
108
|
+
* surface the exact string a developer would paste, without going
|
|
109
|
+
* through the file-mutation path.
|
|
110
|
+
*/
|
|
111
|
+
function renderAnnotation(annotation, lang) {
|
|
112
|
+
const marker = lang.commentSyntax?.lineComment;
|
|
113
|
+
if (!marker) {
|
|
114
|
+
throw new Error(`language ${lang.id} has no commentSyntax.lineComment; inline annotations unsupported`);
|
|
115
|
+
}
|
|
116
|
+
return `${marker} ${annotationBody(annotation)}`;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Parse a single line for an allowlist annotation. Returns `null`
|
|
120
|
+
* when no annotation marker is found OR when the category isn't
|
|
121
|
+
* one of the canonical values.
|
|
122
|
+
*
|
|
123
|
+
* Tolerates the `reason="..."` clause being absent — callers decide
|
|
124
|
+
* whether a missing reason invalidates the suppression.
|
|
125
|
+
*
|
|
126
|
+
* False-positive surface: a string literal containing the literal
|
|
127
|
+
* substring `<lineComment> dxkit-allow:<category>` would match.
|
|
128
|
+
* Discriminating "is this inside a string" requires real language
|
|
129
|
+
* parsing and isn't worth the complexity — the worst case is a
|
|
130
|
+
* legitimate finding gets suppressed when a developer wrote the
|
|
131
|
+
* grammar literally inside a string. Vanishingly rare in practice.
|
|
132
|
+
*/
|
|
133
|
+
function parseAnnotation(line, lang) {
|
|
134
|
+
const marker = lang.commentSyntax?.lineComment;
|
|
135
|
+
if (!marker)
|
|
136
|
+
return null;
|
|
137
|
+
const escapedMarker = escapeForRegex(marker);
|
|
138
|
+
const escapedPrefix = escapeForRegex(ANNOTATION_PREFIX);
|
|
139
|
+
// The annotation prefix may appear at the start of the line
|
|
140
|
+
// (above-line case) or after at least one whitespace following
|
|
141
|
+
// the source code (same-line case). Trailing whitespace after the
|
|
142
|
+
// prefix is tolerated.
|
|
143
|
+
const re = new RegExp(`(?:^|\\s)${escapedMarker}\\s*${escapedPrefix}(\\S+?)(?:\\s+reason="((?:[^"\\\\]|\\\\.)*)")?(?:\\s|$)`);
|
|
144
|
+
const match = re.exec(line);
|
|
145
|
+
if (!match)
|
|
146
|
+
return null;
|
|
147
|
+
const category = match[1];
|
|
148
|
+
if (!isCanonicalCategory(category))
|
|
149
|
+
return null;
|
|
150
|
+
const reasonRaw = match[2];
|
|
151
|
+
return {
|
|
152
|
+
category: category,
|
|
153
|
+
reason: reasonRaw !== undefined ? unescapeReason(reasonRaw) : undefined,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Look for an annotation matching a finding at `filePath:lineNumber`
|
|
158
|
+
* (1-indexed). Checks two positions:
|
|
159
|
+
*
|
|
160
|
+
* 1. Same-line: the finding's line itself carries the annotation.
|
|
161
|
+
* 2. Above-line: the immediately-preceding line is a standalone
|
|
162
|
+
* annotation comment.
|
|
163
|
+
*
|
|
164
|
+
* Returns `null` when neither position has a parseable annotation.
|
|
165
|
+
* Throws when the file doesn't exist or `lineNumber` is out of
|
|
166
|
+
* range — callers are typically operating on findings whose line
|
|
167
|
+
* numbers came from a fresh scan, so an out-of-range value
|
|
168
|
+
* indicates a bug worth surfacing.
|
|
169
|
+
*/
|
|
170
|
+
function findAnnotationAt(filePath, lineNumber, lang) {
|
|
171
|
+
if (lineNumber < 1) {
|
|
172
|
+
throw new Error(`lineNumber must be >= 1, got ${lineNumber}`);
|
|
173
|
+
}
|
|
174
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
175
|
+
const lines = content.split('\n');
|
|
176
|
+
if (lineNumber > lines.length) {
|
|
177
|
+
throw new Error(`lineNumber ${lineNumber} exceeds file length ${lines.length} (${filePath})`);
|
|
178
|
+
}
|
|
179
|
+
// 1. Same-line check
|
|
180
|
+
const targetLine = lines[lineNumber - 1];
|
|
181
|
+
const sameLine = parseAnnotation(targetLine, lang);
|
|
182
|
+
if (sameLine) {
|
|
183
|
+
return { annotation: sameLine, position: 'same-line', annotationLine: lineNumber };
|
|
184
|
+
}
|
|
185
|
+
// 2. Above-line check — only when a previous line exists
|
|
186
|
+
if (lineNumber > 1) {
|
|
187
|
+
const prev = lines[lineNumber - 2];
|
|
188
|
+
if (isStandaloneAnnotationLine(prev, lang)) {
|
|
189
|
+
const above = parseAnnotation(prev, lang);
|
|
190
|
+
if (above) {
|
|
191
|
+
return { annotation: above, position: 'above', annotationLine: lineNumber - 1 };
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Insert an allowlist annotation at `filePath:lineNumber`. Chooses
|
|
199
|
+
* same-line vs above-line based on the target line's length:
|
|
200
|
+
*
|
|
201
|
+
* - Target shorter than `sameLineThreshold` → append to target.
|
|
202
|
+
* - Target longer than threshold → prepend a new comment line
|
|
203
|
+
* above target, copying its indentation.
|
|
204
|
+
*
|
|
205
|
+
* Returns the chosen position + the 1-indexed line where the
|
|
206
|
+
* annotation comment ended up (useful for the CLI to print "added
|
|
207
|
+
* at file:line").
|
|
208
|
+
*
|
|
209
|
+
* Refuses to insert when the category is not inline-compatible —
|
|
210
|
+
* the caller should route accepted-risk + deferred suppressions
|
|
211
|
+
* through the file-level allowlist instead.
|
|
212
|
+
*
|
|
213
|
+
* Preserves CRLF vs LF line endings: the file is read, split, and
|
|
214
|
+
* re-joined using the detected style. Files without a trailing
|
|
215
|
+
* newline keep that property.
|
|
216
|
+
*/
|
|
217
|
+
function insertAnnotation(filePath, lineNumber, annotation, lang, options = {}) {
|
|
218
|
+
if (!categories_1.INLINE_COMPATIBLE_CATEGORIES.has(annotation.category)) {
|
|
219
|
+
throw new Error(`category ${JSON.stringify(annotation.category)} is file-only — ` +
|
|
220
|
+
`use the file-level allowlist via 'vyuh-dxkit allowlist add'`);
|
|
221
|
+
}
|
|
222
|
+
const marker = lang.commentSyntax?.lineComment;
|
|
223
|
+
if (!marker) {
|
|
224
|
+
throw new Error(`language ${lang.id} has no commentSyntax.lineComment; cannot render inline annotation`);
|
|
225
|
+
}
|
|
226
|
+
if (lineNumber < 1) {
|
|
227
|
+
throw new Error(`lineNumber must be >= 1, got ${lineNumber}`);
|
|
228
|
+
}
|
|
229
|
+
const raw = fs.readFileSync(filePath, 'utf8');
|
|
230
|
+
const eol = raw.includes('\r\n') ? '\r\n' : '\n';
|
|
231
|
+
const hadTrailingNewline = raw.endsWith(eol);
|
|
232
|
+
const lines = raw.split(/\r?\n/);
|
|
233
|
+
// `split('\n')` on a trailing newline produces an empty final
|
|
234
|
+
// element; track and preserve it.
|
|
235
|
+
if (hadTrailingNewline && lines[lines.length - 1] === '') {
|
|
236
|
+
lines.pop();
|
|
237
|
+
}
|
|
238
|
+
if (lineNumber > lines.length) {
|
|
239
|
+
throw new Error(`lineNumber ${lineNumber} exceeds file length ${lines.length} (${filePath})`);
|
|
240
|
+
}
|
|
241
|
+
const threshold = options.sameLineThreshold ?? DEFAULT_SAME_LINE_THRESHOLD;
|
|
242
|
+
const targetLine = lines[lineNumber - 1];
|
|
243
|
+
const commentText = `${marker} ${annotationBody(annotation)}`;
|
|
244
|
+
let position;
|
|
245
|
+
let resultLine;
|
|
246
|
+
if (targetLine.length < threshold) {
|
|
247
|
+
// Same-line: append with two-space separator
|
|
248
|
+
lines[lineNumber - 1] = `${targetLine} ${commentText}`;
|
|
249
|
+
position = 'same-line';
|
|
250
|
+
resultLine = lineNumber;
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
// Above-line: insert a new line BEFORE target with matching indent
|
|
254
|
+
const indent = (targetLine.match(/^[\t ]*/) ?? [''])[0];
|
|
255
|
+
lines.splice(lineNumber - 1, 0, `${indent}${commentText}`);
|
|
256
|
+
position = 'above';
|
|
257
|
+
resultLine = lineNumber;
|
|
258
|
+
}
|
|
259
|
+
const out = lines.join(eol) + (hadTrailingNewline ? eol : '');
|
|
260
|
+
fs.writeFileSync(filePath, out, 'utf8');
|
|
261
|
+
return { position, annotationLine: resultLine };
|
|
262
|
+
}
|
|
263
|
+
// ─── Internals ───────────────────────────────────────────────────────────
|
|
264
|
+
function isCanonicalCategory(category) {
|
|
265
|
+
return categories_1.ALL_CATEGORIES.includes(category);
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Whether a line is a "standalone annotation comment" — meaning it
|
|
269
|
+
* contains nothing but leading whitespace + the comment marker +
|
|
270
|
+
* the annotation body. Used to distinguish an above-line annotation
|
|
271
|
+
* from a same-line annotation on a different finding's line.
|
|
272
|
+
*
|
|
273
|
+
* Exported because the gather pass (`src/allowlist/gather.ts`) needs
|
|
274
|
+
* the same predicate to label per-occurrence `position`. Single
|
|
275
|
+
* source of truth for the "what counts as standalone" rule.
|
|
276
|
+
*
|
|
277
|
+
* Example (python):
|
|
278
|
+
* ` # dxkit-allow:test-fixture reason="..."` ← standalone
|
|
279
|
+
* `x = 1 # dxkit-allow:test-fixture reason="..."` ← NOT standalone
|
|
280
|
+
*/
|
|
281
|
+
function isStandaloneAnnotationLine(line, lang) {
|
|
282
|
+
const marker = lang.commentSyntax?.lineComment;
|
|
283
|
+
if (!marker)
|
|
284
|
+
return false;
|
|
285
|
+
const escapedMarker = escapeForRegex(marker);
|
|
286
|
+
const escapedPrefix = escapeForRegex(ANNOTATION_PREFIX);
|
|
287
|
+
const re = new RegExp(`^\\s*${escapedMarker}\\s*${escapedPrefix}`);
|
|
288
|
+
return re.test(line);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Escape regex metacharacters in a string so it can be embedded
|
|
292
|
+
* literally inside a `RegExp` source. Shared helper so the
|
|
293
|
+
* escape pattern lives in one place — changing it (e.g., to handle
|
|
294
|
+
* a new metacharacter class) is a one-line edit.
|
|
295
|
+
*/
|
|
296
|
+
function escapeForRegex(s) {
|
|
297
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
298
|
+
}
|
|
299
|
+
function escapeReason(text) {
|
|
300
|
+
return text.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
301
|
+
}
|
|
302
|
+
function unescapeReason(text) {
|
|
303
|
+
// Process left-to-right: each `\<x>` collapses to `<x>`.
|
|
304
|
+
return text.replace(/\\(.)/g, '$1');
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/allowlist/inline.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Project-root discovery for nested BOM aggregation.
|
|
3
3
|
*
|
|
4
4
|
* `vyuh-dxkit bom <path>` historically scanned `<path>` as a single
|
|
5
|
-
* project root.
|
|
6
|
-
*
|
|
5
|
+
* project root. Monorepos with root devtools plus a product
|
|
6
|
+
* subdirectory fell through the cracks — the scanner saw
|
|
7
7
|
* only whichever `package.json`/lockfile lived at `<path>`, missing
|
|
8
|
-
* every sibling or nested sub-project.
|
|
9
|
-
* defect log for the incident write-up.
|
|
8
|
+
* every sibling or nested sub-project.
|
|
10
9
|
*
|
|
11
10
|
* This module walks the filesystem starting at cwd and returns every
|
|
12
11
|
* directory that looks like an independent project root (i.e. has any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/analyzers/bom/discovery.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/analyzers/bom/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA2DH;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA0B,GAAG,MAAM,EAAE,CAIhG"}
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
* Project-root discovery for nested BOM aggregation.
|
|
4
4
|
*
|
|
5
5
|
* `vyuh-dxkit bom <path>` historically scanned `<path>` as a single
|
|
6
|
-
* project root.
|
|
7
|
-
*
|
|
6
|
+
* project root. Monorepos with root devtools plus a product
|
|
7
|
+
* subdirectory fell through the cracks — the scanner saw
|
|
8
8
|
* only whichever `package.json`/lockfile lived at `<path>`, missing
|
|
9
|
-
* every sibling or nested sub-project.
|
|
10
|
-
* defect log for the incident write-up.
|
|
9
|
+
* every sibling or nested sub-project.
|
|
11
10
|
*
|
|
12
11
|
* This module walks the filesystem starting at cwd and returns every
|
|
13
12
|
* directory that looks like an independent project root (i.e. has any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/analyzers/bom/discovery.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/analyzers/bom/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,7 +107,7 @@ export interface BomReport {
|
|
|
107
107
|
* (filter=top-level)." */
|
|
108
108
|
unfilteredTotalPackages: number;
|
|
109
109
|
/** Cwd-relative paths of every project root discovered under the
|
|
110
|
-
* scan target (e.g. `["."]` or `[".", "
|
|
110
|
+
* scan target (e.g. `["."]` or `[".", "api-server"]`). Sorted,
|
|
111
111
|
* distinct. Always at least `["."]` so consumers can treat it
|
|
112
112
|
* uniformly. Informational only — the package universe comes
|
|
113
113
|
* from the canonical cached license inventory regardless of how
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/dashboard/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/dashboard/index.ts"],"names":[],"mappings":"AAsEA,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA0S7F"}
|
|
@@ -60,6 +60,7 @@ exports.analyzeDashboard = analyzeDashboard;
|
|
|
60
60
|
const fs = __importStar(require("fs"));
|
|
61
61
|
const path = __importStar(require("path"));
|
|
62
62
|
const report_date_1 = require("../tools/report-date");
|
|
63
|
+
const graph_tab_1 = require("../../dashboard/graph-tab");
|
|
63
64
|
/** Known report stems → display config. Order here = sidebar order. */
|
|
64
65
|
const REPORT_STEMS = [
|
|
65
66
|
{ key: 'health', stem: 'health-audit', icon: '🏥', label: 'Health Audit', color: '#3fb950' },
|
|
@@ -82,6 +83,18 @@ const REPORT_STEMS = [
|
|
|
82
83
|
{ key: 'licenses', stem: 'licenses', icon: '📜', label: 'Licenses', color: '#39d2c0' },
|
|
83
84
|
{ key: 'bom', stem: 'bom', icon: '📦', label: 'Bill of Materials', color: '#39d2c0' },
|
|
84
85
|
];
|
|
86
|
+
/**
|
|
87
|
+
* Graph tab nav config. Always rendered (even when graph data is
|
|
88
|
+
* missing — the tab's empty-state explains the regeneration command),
|
|
89
|
+
* so the feature is discoverable without prior knowledge.
|
|
90
|
+
*/
|
|
91
|
+
const GRAPH_NAV_CONFIG = {
|
|
92
|
+
key: 'graph',
|
|
93
|
+
reportKey: 'graph',
|
|
94
|
+
icon: '🗺️',
|
|
95
|
+
label: 'Graph',
|
|
96
|
+
color: '#58a6ff',
|
|
97
|
+
};
|
|
85
98
|
function analyzeDashboard(cwd, options = {}) {
|
|
86
99
|
const reportsDir = options.reportsDir ?? path.join(cwd, '.dxkit', 'reports');
|
|
87
100
|
const jsonDir = options.jsonDir ?? reportsDir;
|
|
@@ -259,6 +272,16 @@ function analyzeDashboard(cwd, options = {}) {
|
|
|
259
272
|
}
|
|
260
273
|
const overviewBadge = healthScore !== null ? `${healthScore}/100 (${healthGrade ?? '?'})` : '';
|
|
261
274
|
const generationDate = (0, report_date_1.getReportDate)();
|
|
275
|
+
// Graph viz tab. The renderer is best-effort — missing graph
|
|
276
|
+
// artifact + missing vendor bundle each surface a distinct
|
|
277
|
+
// empty-state inside the tab without blocking the rest of the
|
|
278
|
+
// dashboard. Rule 12 compliance lives inside renderGraphTab itself
|
|
279
|
+
// (it routes through loadGraph for the existence check).
|
|
280
|
+
const graphTab = (0, graph_tab_1.renderGraphTab)({ cwd });
|
|
281
|
+
navEntries.push({
|
|
282
|
+
...GRAPH_NAV_CONFIG,
|
|
283
|
+
badge: graphTab.navBadge,
|
|
284
|
+
});
|
|
262
285
|
const html = renderHtml({
|
|
263
286
|
projectName,
|
|
264
287
|
generationDate,
|
|
@@ -283,6 +306,7 @@ function analyzeDashboard(cwd, options = {}) {
|
|
|
283
306
|
criticalIssuesTotal,
|
|
284
307
|
reports,
|
|
285
308
|
navEntries,
|
|
309
|
+
graphTabHtml: graphTab.html,
|
|
286
310
|
});
|
|
287
311
|
return {
|
|
288
312
|
html,
|
|
@@ -506,6 +530,7 @@ function renderHtml(a) {
|
|
|
506
530
|
::-webkit-scrollbar-thumb:hover { background: var(--border); }
|
|
507
531
|
.main-inner { animation: fadeIn 0.2s ease; }
|
|
508
532
|
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
|
|
533
|
+
${graph_tab_1.GRAPH_TAB_CSS}
|
|
509
534
|
</style>
|
|
510
535
|
</head>
|
|
511
536
|
<body>
|
|
@@ -626,6 +651,8 @@ function renderHtml(a) {
|
|
|
626
651
|
</div>
|
|
627
652
|
</main>
|
|
628
653
|
|
|
654
|
+
${a.graphTabHtml}
|
|
655
|
+
|
|
629
656
|
<script id="reports-data" type="application/json">${reportsJson.replace(/</g, '\\u003c')}</script>
|
|
630
657
|
<script id="nav-data" type="application/json">${navJson.replace(/</g, '\\u003c')}</script>
|
|
631
658
|
<script>
|
|
@@ -633,6 +660,8 @@ function renderHtml(a) {
|
|
|
633
660
|
const navEntries = JSON.parse(document.getElementById('nav-data').textContent);
|
|
634
661
|
const nav = document.getElementById('nav');
|
|
635
662
|
const content = document.getElementById('content');
|
|
663
|
+
const mainEl = document.querySelector('.main');
|
|
664
|
+
const graphPane = document.getElementById('graph-tab-pane');
|
|
636
665
|
const overviewHtml = document.getElementById('overview-content').outerHTML;
|
|
637
666
|
|
|
638
667
|
navEntries.forEach((cfg) => {
|
|
@@ -647,11 +676,19 @@ function renderHtml(a) {
|
|
|
647
676
|
document.querySelectorAll('.nav-item').forEach((b) => b.classList.remove('active'));
|
|
648
677
|
const btn = document.querySelector('[data-target="' + target + '"]');
|
|
649
678
|
if (btn) btn.classList.add('active');
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
679
|
+
|
|
680
|
+
if (target === 'graph') {
|
|
681
|
+
if (mainEl) mainEl.style.display = 'none';
|
|
682
|
+
if (graphPane) graphPane.style.display = 'flex';
|
|
683
|
+
} else {
|
|
684
|
+
if (graphPane) graphPane.style.display = 'none';
|
|
685
|
+
if (mainEl) mainEl.style.display = '';
|
|
686
|
+
if (target === 'overview') {
|
|
687
|
+
content.innerHTML = overviewHtml;
|
|
688
|
+
} else if (reports[target]) {
|
|
689
|
+
const md = typeof marked !== 'undefined' ? marked.parse(reports[target]) : '<pre>' + reports[target].replace(/</g, '<') + '</pre>';
|
|
690
|
+
content.innerHTML = '<div class="main-inner" style="animation:fadeIn 0.2s ease">' + md + '</div>';
|
|
691
|
+
}
|
|
655
692
|
}
|
|
656
693
|
document.querySelector('.sidebar').classList.remove('open');
|
|
657
694
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/dashboard/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/dashboard/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,19 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { QualityReport, QualityMetrics } from './types';
|
|
8
8
|
import { RankedAction } from '../remediation';
|
|
9
|
+
import { type DetailedGraphContext } from '../../explore/finding-context';
|
|
9
10
|
export interface QualityDetailedReport extends QualityReport {
|
|
10
11
|
/** Schema version for agent consumers. Bump on breaking shape changes. */
|
|
11
12
|
schemaVersion: string;
|
|
12
13
|
/** Ranked remediation actions with simulated score deltas. */
|
|
13
14
|
actions: Array<RankedAction<QualityMetrics>>;
|
|
15
|
+
/**
|
|
16
|
+
* Per-offender-file graph context (module + blast radius), keyed by
|
|
17
|
+
* file path. Present only when `--graph-context` ran AND a graph
|
|
18
|
+
* loaded.
|
|
19
|
+
*/
|
|
20
|
+
graphContext?: DetailedGraphContext;
|
|
14
21
|
}
|
|
15
|
-
export declare function buildQualityDetailed(report: QualityReport): QualityDetailedReport;
|
|
22
|
+
export declare function buildQualityDetailed(report: QualityReport, graphContext?: DetailedGraphContext): QualityDetailedReport;
|
|
16
23
|
export declare function formatQualityDetailedMarkdown(detailed: QualityDetailedReport, elapsed: string): string;
|
|
17
24
|
//# sourceMappingURL=detailed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/quality/detailed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/quality/detailed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAC;AAKpD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7C;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,oBAAoB,GAClC,qBAAqB,CAUvB;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,GACd,MAAM,CAiJR"}
|