@kevinrabun/judges 2.3.0 → 3.0.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/README.md +177 -12
- package/dist/api.d.ts +40 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +56 -0
- package/dist/api.js.map +1 -0
- package/dist/ast/cross-file-taint.d.ts +43 -0
- package/dist/ast/cross-file-taint.d.ts.map +1 -0
- package/dist/ast/cross-file-taint.js +713 -0
- package/dist/ast/cross-file-taint.js.map +1 -0
- package/dist/ast/index.d.ts +4 -0
- package/dist/ast/index.d.ts.map +1 -1
- package/dist/ast/index.js +5 -0
- package/dist/ast/index.js.map +1 -1
- package/dist/ast/structural-parser.d.ts.map +1 -1
- package/dist/ast/structural-parser.js +66 -11
- package/dist/ast/structural-parser.js.map +1 -1
- package/dist/ast/taint-tracker.d.ts +35 -0
- package/dist/ast/taint-tracker.d.ts.map +1 -0
- package/dist/ast/taint-tracker.js +518 -0
- package/dist/ast/taint-tracker.js.map +1 -0
- package/dist/ast/types.d.ts +2 -0
- package/dist/ast/types.d.ts.map +1 -1
- package/dist/ast/typescript-ast.d.ts.map +1 -1
- package/dist/ast/typescript-ast.js +25 -5
- package/dist/ast/typescript-ast.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -9
- package/dist/config.js.map +1 -1
- package/dist/dedup.d.ts +19 -0
- package/dist/dedup.d.ts.map +1 -0
- package/dist/dedup.js +222 -0
- package/dist/dedup.js.map +1 -0
- package/dist/errors.d.ts +37 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +57 -0
- package/dist/errors.js.map +1 -0
- package/dist/evaluators/accessibility.d.ts +1 -1
- package/dist/evaluators/accessibility.d.ts.map +1 -1
- package/dist/evaluators/accessibility.js +22 -16
- package/dist/evaluators/accessibility.js.map +1 -1
- package/dist/evaluators/agent-instructions.d.ts +1 -1
- package/dist/evaluators/agent-instructions.d.ts.map +1 -1
- package/dist/evaluators/agent-instructions.js +1 -2
- package/dist/evaluators/agent-instructions.js.map +1 -1
- package/dist/evaluators/ai-code-safety.d.ts +1 -1
- package/dist/evaluators/ai-code-safety.d.ts.map +1 -1
- package/dist/evaluators/ai-code-safety.js +2 -6
- package/dist/evaluators/ai-code-safety.js.map +1 -1
- package/dist/evaluators/api-design.d.ts +1 -1
- package/dist/evaluators/api-design.d.ts.map +1 -1
- package/dist/evaluators/api-design.js +2 -1
- package/dist/evaluators/api-design.js.map +1 -1
- package/dist/evaluators/app-builder.d.ts +34 -0
- package/dist/evaluators/app-builder.d.ts.map +1 -0
- package/dist/evaluators/app-builder.js +156 -0
- package/dist/evaluators/app-builder.js.map +1 -0
- package/dist/evaluators/authentication.d.ts +1 -1
- package/dist/evaluators/authentication.d.ts.map +1 -1
- package/dist/evaluators/authentication.js +2 -66
- package/dist/evaluators/authentication.js.map +1 -1
- package/dist/evaluators/backwards-compatibility.d.ts +1 -1
- package/dist/evaluators/backwards-compatibility.d.ts.map +1 -1
- package/dist/evaluators/backwards-compatibility.js.map +1 -1
- package/dist/evaluators/caching.d.ts +1 -1
- package/dist/evaluators/caching.d.ts.map +1 -1
- package/dist/evaluators/caching.js.map +1 -1
- package/dist/evaluators/ci-cd.d.ts +1 -1
- package/dist/evaluators/ci-cd.d.ts.map +1 -1
- package/dist/evaluators/ci-cd.js +4 -4
- package/dist/evaluators/ci-cd.js.map +1 -1
- package/dist/evaluators/cloud-readiness.d.ts +1 -1
- package/dist/evaluators/cloud-readiness.d.ts.map +1 -1
- package/dist/evaluators/cloud-readiness.js.map +1 -1
- package/dist/evaluators/code-structure.d.ts +1 -1
- package/dist/evaluators/code-structure.d.ts.map +1 -1
- package/dist/evaluators/code-structure.js +2 -6
- package/dist/evaluators/code-structure.js.map +1 -1
- package/dist/evaluators/compliance.d.ts +1 -1
- package/dist/evaluators/compliance.d.ts.map +1 -1
- package/dist/evaluators/compliance.js +15 -6
- package/dist/evaluators/compliance.js.map +1 -1
- package/dist/evaluators/concurrency.d.ts +1 -1
- package/dist/evaluators/concurrency.d.ts.map +1 -1
- package/dist/evaluators/concurrency.js +9 -4
- package/dist/evaluators/concurrency.js.map +1 -1
- package/dist/evaluators/configuration-management.d.ts +1 -1
- package/dist/evaluators/configuration-management.d.ts.map +1 -1
- package/dist/evaluators/configuration-management.js +7 -2
- package/dist/evaluators/configuration-management.js.map +1 -1
- package/dist/evaluators/cost-effectiveness.d.ts +1 -1
- package/dist/evaluators/cost-effectiveness.d.ts.map +1 -1
- package/dist/evaluators/cost-effectiveness.js +1 -3
- package/dist/evaluators/cost-effectiveness.js.map +1 -1
- package/dist/evaluators/cybersecurity.d.ts +1 -1
- package/dist/evaluators/cybersecurity.d.ts.map +1 -1
- package/dist/evaluators/cybersecurity.js +50 -1
- package/dist/evaluators/cybersecurity.js.map +1 -1
- package/dist/evaluators/data-security.d.ts +1 -1
- package/dist/evaluators/data-security.d.ts.map +1 -1
- package/dist/evaluators/data-security.js +9 -66
- package/dist/evaluators/data-security.js.map +1 -1
- package/dist/evaluators/data-sovereignty.d.ts +1 -1
- package/dist/evaluators/data-sovereignty.d.ts.map +1 -1
- package/dist/evaluators/data-sovereignty.js +4 -2
- package/dist/evaluators/data-sovereignty.js.map +1 -1
- package/dist/evaluators/database.d.ts +1 -1
- package/dist/evaluators/database.d.ts.map +1 -1
- package/dist/evaluators/database.js +3 -1
- package/dist/evaluators/database.js.map +1 -1
- package/dist/evaluators/dependencies.d.ts +6 -0
- package/dist/evaluators/dependencies.d.ts.map +1 -0
- package/dist/evaluators/dependencies.js +204 -0
- package/dist/evaluators/dependencies.js.map +1 -0
- package/dist/evaluators/dependency-health.d.ts +1 -1
- package/dist/evaluators/dependency-health.d.ts.map +1 -1
- package/dist/evaluators/dependency-health.js +198 -6
- package/dist/evaluators/dependency-health.js.map +1 -1
- package/dist/evaluators/documentation.d.ts +1 -1
- package/dist/evaluators/documentation.d.ts.map +1 -1
- package/dist/evaluators/documentation.js +5 -2
- package/dist/evaluators/documentation.js.map +1 -1
- package/dist/evaluators/error-handling.d.ts +1 -1
- package/dist/evaluators/error-handling.d.ts.map +1 -1
- package/dist/evaluators/error-handling.js.map +1 -1
- package/dist/evaluators/ethics-bias.d.ts +1 -1
- package/dist/evaluators/ethics-bias.d.ts.map +1 -1
- package/dist/evaluators/ethics-bias.js +10 -5
- package/dist/evaluators/ethics-bias.js.map +1 -1
- package/dist/evaluators/framework-safety.d.ts +13 -0
- package/dist/evaluators/framework-safety.d.ts.map +1 -0
- package/dist/evaluators/framework-safety.js +424 -0
- package/dist/evaluators/framework-safety.js.map +1 -0
- package/dist/evaluators/index.d.ts +20 -24
- package/dist/evaluators/index.d.ts.map +1 -1
- package/dist/evaluators/index.js +294 -728
- package/dist/evaluators/index.js.map +1 -1
- package/dist/evaluators/internationalization.d.ts +1 -1
- package/dist/evaluators/internationalization.d.ts.map +1 -1
- package/dist/evaluators/internationalization.js +14 -6
- package/dist/evaluators/internationalization.js.map +1 -1
- package/dist/evaluators/logging-privacy.d.ts +1 -1
- package/dist/evaluators/logging-privacy.d.ts.map +1 -1
- package/dist/evaluators/logging-privacy.js +3 -1
- package/dist/evaluators/logging-privacy.js.map +1 -1
- package/dist/evaluators/maintainability.d.ts +1 -1
- package/dist/evaluators/maintainability.d.ts.map +1 -1
- package/dist/evaluators/maintainability.js +15 -9
- package/dist/evaluators/maintainability.js.map +1 -1
- package/dist/evaluators/observability.d.ts +1 -1
- package/dist/evaluators/observability.d.ts.map +1 -1
- package/dist/evaluators/observability.js +2 -1
- package/dist/evaluators/observability.js.map +1 -1
- package/dist/evaluators/performance.d.ts +1 -1
- package/dist/evaluators/performance.d.ts.map +1 -1
- package/dist/evaluators/performance.js +181 -4
- package/dist/evaluators/performance.js.map +1 -1
- package/dist/evaluators/portability.d.ts +1 -1
- package/dist/evaluators/portability.d.ts.map +1 -1
- package/dist/evaluators/portability.js +2 -1
- package/dist/evaluators/portability.js.map +1 -1
- package/dist/evaluators/project.d.ts +16 -0
- package/dist/evaluators/project.d.ts.map +1 -0
- package/dist/evaluators/project.js +353 -0
- package/dist/evaluators/project.js.map +1 -0
- package/dist/evaluators/rate-limiting.d.ts +1 -1
- package/dist/evaluators/rate-limiting.d.ts.map +1 -1
- package/dist/evaluators/rate-limiting.js.map +1 -1
- package/dist/evaluators/reliability.d.ts +1 -1
- package/dist/evaluators/reliability.d.ts.map +1 -1
- package/dist/evaluators/reliability.js.map +1 -1
- package/dist/evaluators/scalability.d.ts +1 -1
- package/dist/evaluators/scalability.d.ts.map +1 -1
- package/dist/evaluators/scalability.js +3 -1
- package/dist/evaluators/scalability.js.map +1 -1
- package/dist/evaluators/shared.d.ts +24 -2
- package/dist/evaluators/shared.d.ts.map +1 -1
- package/dist/evaluators/shared.js +190 -2
- package/dist/evaluators/shared.js.map +1 -1
- package/dist/evaluators/software-practices.d.ts +1 -1
- package/dist/evaluators/software-practices.d.ts.map +1 -1
- package/dist/evaluators/software-practices.js +3 -3
- package/dist/evaluators/software-practices.js.map +1 -1
- package/dist/evaluators/testing.d.ts +1 -1
- package/dist/evaluators/testing.d.ts.map +1 -1
- package/dist/evaluators/testing.js +12 -4
- package/dist/evaluators/testing.js.map +1 -1
- package/dist/evaluators/ux.d.ts +1 -1
- package/dist/evaluators/ux.d.ts.map +1 -1
- package/dist/evaluators/ux.js.map +1 -1
- package/dist/evaluators/v2.d.ts +1 -1
- package/dist/evaluators/v2.d.ts.map +1 -1
- package/dist/evaluators/v2.js +13 -35
- package/dist/evaluators/v2.js.map +1 -1
- package/dist/formatters/sarif.d.ts +75 -0
- package/dist/formatters/sarif.d.ts.map +1 -0
- package/dist/formatters/sarif.js +93 -0
- package/dist/formatters/sarif.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -806
- package/dist/index.js.map +1 -1
- package/dist/judges/accessibility.d.ts +1 -1
- package/dist/judges/accessibility.d.ts.map +1 -1
- package/dist/judges/agent-instructions.d.ts +1 -1
- package/dist/judges/agent-instructions.d.ts.map +1 -1
- package/dist/judges/ai-code-safety.d.ts +1 -1
- package/dist/judges/ai-code-safety.d.ts.map +1 -1
- package/dist/judges/api-design.d.ts +1 -1
- package/dist/judges/api-design.d.ts.map +1 -1
- package/dist/judges/authentication.d.ts +1 -1
- package/dist/judges/authentication.d.ts.map +1 -1
- package/dist/judges/backwards-compatibility.d.ts +1 -1
- package/dist/judges/backwards-compatibility.d.ts.map +1 -1
- package/dist/judges/caching.d.ts +1 -1
- package/dist/judges/caching.d.ts.map +1 -1
- package/dist/judges/ci-cd.d.ts +1 -1
- package/dist/judges/ci-cd.d.ts.map +1 -1
- package/dist/judges/cloud-readiness.d.ts +1 -1
- package/dist/judges/cloud-readiness.d.ts.map +1 -1
- package/dist/judges/code-structure.d.ts +1 -1
- package/dist/judges/code-structure.d.ts.map +1 -1
- package/dist/judges/compliance.d.ts +1 -1
- package/dist/judges/compliance.d.ts.map +1 -1
- package/dist/judges/concurrency.d.ts +1 -1
- package/dist/judges/concurrency.d.ts.map +1 -1
- package/dist/judges/configuration-management.d.ts +1 -1
- package/dist/judges/configuration-management.d.ts.map +1 -1
- package/dist/judges/cost-effectiveness.d.ts +1 -1
- package/dist/judges/cost-effectiveness.d.ts.map +1 -1
- package/dist/judges/cybersecurity.d.ts +1 -1
- package/dist/judges/cybersecurity.d.ts.map +1 -1
- package/dist/judges/data-security.d.ts +1 -1
- package/dist/judges/data-security.d.ts.map +1 -1
- package/dist/judges/data-sovereignty.d.ts +1 -1
- package/dist/judges/data-sovereignty.d.ts.map +1 -1
- package/dist/judges/database.d.ts +1 -1
- package/dist/judges/database.d.ts.map +1 -1
- package/dist/judges/dependency-health.d.ts +1 -1
- package/dist/judges/dependency-health.d.ts.map +1 -1
- package/dist/judges/documentation.d.ts +1 -1
- package/dist/judges/documentation.d.ts.map +1 -1
- package/dist/judges/error-handling.d.ts +1 -1
- package/dist/judges/error-handling.d.ts.map +1 -1
- package/dist/judges/ethics-bias.d.ts +1 -1
- package/dist/judges/ethics-bias.d.ts.map +1 -1
- package/dist/judges/framework-safety.d.ts +3 -0
- package/dist/judges/framework-safety.d.ts.map +1 -0
- package/dist/judges/framework-safety.js +25 -0
- package/dist/judges/framework-safety.js.map +1 -0
- package/dist/judges/index.d.ts +1 -1
- package/dist/judges/index.d.ts.map +1 -1
- package/dist/judges/index.js +74 -0
- package/dist/judges/index.js.map +1 -1
- package/dist/judges/internationalization.d.ts +1 -1
- package/dist/judges/internationalization.d.ts.map +1 -1
- package/dist/judges/logging-privacy.d.ts +1 -1
- package/dist/judges/logging-privacy.d.ts.map +1 -1
- package/dist/judges/maintainability.d.ts +1 -1
- package/dist/judges/maintainability.d.ts.map +1 -1
- package/dist/judges/observability.d.ts +1 -1
- package/dist/judges/observability.d.ts.map +1 -1
- package/dist/judges/performance.d.ts +1 -1
- package/dist/judges/performance.d.ts.map +1 -1
- package/dist/judges/portability.d.ts +1 -1
- package/dist/judges/portability.d.ts.map +1 -1
- package/dist/judges/rate-limiting.d.ts +1 -1
- package/dist/judges/rate-limiting.d.ts.map +1 -1
- package/dist/judges/reliability.d.ts +1 -1
- package/dist/judges/reliability.d.ts.map +1 -1
- package/dist/judges/scalability.d.ts +1 -1
- package/dist/judges/scalability.d.ts.map +1 -1
- package/dist/judges/software-practices.d.ts +1 -1
- package/dist/judges/software-practices.d.ts.map +1 -1
- package/dist/judges/testing.d.ts +1 -1
- package/dist/judges/testing.d.ts.map +1 -1
- package/dist/judges/ux.d.ts +1 -1
- package/dist/judges/ux.d.ts.map +1 -1
- package/dist/language-patterns.d.ts +37 -0
- package/dist/language-patterns.d.ts.map +1 -1
- package/dist/language-patterns.js +58 -3
- package/dist/language-patterns.js.map +1 -1
- package/dist/patches/index.d.ts +10 -0
- package/dist/patches/index.d.ts.map +1 -0
- package/dist/patches/index.js +533 -0
- package/dist/patches/index.js.map +1 -0
- package/dist/reports/public-repo-report.d.ts +1 -1
- package/dist/reports/public-repo-report.d.ts.map +1 -1
- package/dist/scoring.d.ts +18 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +178 -0
- package/dist/scoring.js.map +1 -0
- package/dist/tools/deep-review.d.ts +4 -0
- package/dist/tools/deep-review.d.ts.map +1 -0
- package/dist/tools/deep-review.js +56 -0
- package/dist/tools/deep-review.js.map +1 -0
- package/dist/tools/prompts.d.ts +8 -0
- package/dist/tools/prompts.d.ts.map +1 -0
- package/dist/tools/prompts.js +66 -0
- package/dist/tools/prompts.js.map +1 -0
- package/dist/tools/register-evaluation.d.ts +7 -0
- package/dist/tools/register-evaluation.d.ts.map +1 -0
- package/dist/tools/register-evaluation.js +303 -0
- package/dist/tools/register-evaluation.js.map +1 -0
- package/dist/tools/register-workflow.d.ts +7 -0
- package/dist/tools/register-workflow.d.ts.map +1 -0
- package/dist/tools/register-workflow.js +395 -0
- package/dist/tools/register-workflow.js.map +1 -0
- package/dist/tools/register.d.ts +7 -0
- package/dist/tools/register.d.ts.map +1 -0
- package/dist/tools/register.js +14 -0
- package/dist/tools/register.js.map +1 -0
- package/dist/tools/schemas.d.ts +26 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +42 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/types.d.ts +29 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +42 -3
- package/server.json +51 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-ast.js","sourceRoot":"","sources":["../../src/ast/typescript-ast.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,oEAAoE;AACpE,gFAAgF;AAEhF,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,
|
|
1
|
+
{"version":3,"file":"typescript-ast.js","sourceRoot":"","sources":["../../src/ast/typescript-ast.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAKzD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA0EzD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAE5C"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// ─── Configuration Module ────────────────────────────────────────────────────
|
|
2
2
|
// Loads and validates .judgesrc / .judgesrc.json project configuration.
|
|
3
3
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
import { ConfigError } from "./errors.js";
|
|
4
5
|
const VALID_SEVERITIES = new Set(["critical", "high", "medium", "low", "info"]);
|
|
5
6
|
/**
|
|
6
7
|
* Parse a JSON string into a JudgesConfig, with validation.
|
|
@@ -11,50 +12,50 @@ export function parseConfig(jsonStr) {
|
|
|
11
12
|
raw = JSON.parse(jsonStr);
|
|
12
13
|
}
|
|
13
14
|
catch {
|
|
14
|
-
throw new
|
|
15
|
+
throw new ConfigError("Invalid .judgesrc: not valid JSON");
|
|
15
16
|
}
|
|
16
17
|
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
17
|
-
throw new
|
|
18
|
+
throw new ConfigError("Invalid .judgesrc: root must be a JSON object");
|
|
18
19
|
}
|
|
19
20
|
const obj = raw;
|
|
20
21
|
const config = {};
|
|
21
22
|
// disabledRules
|
|
22
23
|
if (obj.disabledRules !== undefined) {
|
|
23
24
|
if (!Array.isArray(obj.disabledRules) || !obj.disabledRules.every((r) => typeof r === "string")) {
|
|
24
|
-
throw new
|
|
25
|
+
throw new ConfigError('Invalid .judgesrc: "disabledRules" must be an array of strings');
|
|
25
26
|
}
|
|
26
27
|
config.disabledRules = obj.disabledRules;
|
|
27
28
|
}
|
|
28
29
|
// disabledJudges
|
|
29
30
|
if (obj.disabledJudges !== undefined) {
|
|
30
31
|
if (!Array.isArray(obj.disabledJudges) || !obj.disabledJudges.every((r) => typeof r === "string")) {
|
|
31
|
-
throw new
|
|
32
|
+
throw new ConfigError('Invalid .judgesrc: "disabledJudges" must be an array of strings');
|
|
32
33
|
}
|
|
33
34
|
config.disabledJudges = obj.disabledJudges;
|
|
34
35
|
}
|
|
35
36
|
// minSeverity
|
|
36
37
|
if (obj.minSeverity !== undefined) {
|
|
37
38
|
if (typeof obj.minSeverity !== "string" || !VALID_SEVERITIES.has(obj.minSeverity)) {
|
|
38
|
-
throw new
|
|
39
|
+
throw new ConfigError('Invalid .judgesrc: "minSeverity" must be one of critical, high, medium, low, info');
|
|
39
40
|
}
|
|
40
41
|
config.minSeverity = obj.minSeverity;
|
|
41
42
|
}
|
|
42
43
|
// languages
|
|
43
44
|
if (obj.languages !== undefined) {
|
|
44
45
|
if (!Array.isArray(obj.languages) || !obj.languages.every((l) => typeof l === "string")) {
|
|
45
|
-
throw new
|
|
46
|
+
throw new ConfigError('Invalid .judgesrc: "languages" must be an array of strings');
|
|
46
47
|
}
|
|
47
48
|
config.languages = obj.languages;
|
|
48
49
|
}
|
|
49
50
|
// ruleOverrides
|
|
50
51
|
if (obj.ruleOverrides !== undefined) {
|
|
51
52
|
if (typeof obj.ruleOverrides !== "object" || obj.ruleOverrides === null || Array.isArray(obj.ruleOverrides)) {
|
|
52
|
-
throw new
|
|
53
|
+
throw new ConfigError('Invalid .judgesrc: "ruleOverrides" must be an object');
|
|
53
54
|
}
|
|
54
55
|
const overrides = {};
|
|
55
56
|
for (const [key, val] of Object.entries(obj.ruleOverrides)) {
|
|
56
57
|
if (typeof val !== "object" || val === null) {
|
|
57
|
-
throw new
|
|
58
|
+
throw new ConfigError(`Invalid .judgesrc: ruleOverrides["${key}"] must be an object`);
|
|
58
59
|
}
|
|
59
60
|
const entry = val;
|
|
60
61
|
const override = {};
|
|
@@ -63,7 +64,7 @@ export function parseConfig(jsonStr) {
|
|
|
63
64
|
}
|
|
64
65
|
if (entry.severity !== undefined) {
|
|
65
66
|
if (typeof entry.severity !== "string" || !VALID_SEVERITIES.has(entry.severity)) {
|
|
66
|
-
throw new
|
|
67
|
+
throw new ConfigError(`Invalid .judgesrc: ruleOverrides["${key}"].severity must be a valid severity`);
|
|
67
68
|
}
|
|
68
69
|
override.severity = entry.severity;
|
|
69
70
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wEAAwE;AACxE,iFAAiF;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/dedup.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Evaluator Deduplication
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the evaluators monolith. Uses union-find to cluster findings
|
|
5
|
+
* from different evaluators that flag the same line(s) for the same root cause,
|
|
6
|
+
* keeping the highest-severity instance and annotating cross-references.
|
|
7
|
+
*/
|
|
8
|
+
import type { Finding, Severity } from "./types.js";
|
|
9
|
+
export declare function severityRank(severity: Severity): number;
|
|
10
|
+
/**
|
|
11
|
+
* Deduplicate findings across evaluators. When different judges flag the same
|
|
12
|
+
* line(s) for the same root cause, keeps the highest-severity instance and
|
|
13
|
+
* annotates it with cross-references to the other rule IDs.
|
|
14
|
+
*
|
|
15
|
+
* Uses union-find to cluster findings that share any (topic, lineNumber) pair,
|
|
16
|
+
* then picks the best finding from each cluster.
|
|
17
|
+
*/
|
|
18
|
+
export declare function crossEvaluatorDedup(findings: Finding[]): Finding[];
|
|
19
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAevD;AAqGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAkGlE"}
|
package/dist/dedup.js
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Evaluator Deduplication
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the evaluators monolith. Uses union-find to cluster findings
|
|
5
|
+
* from different evaluators that flag the same line(s) for the same root cause,
|
|
6
|
+
* keeping the highest-severity instance and annotating cross-references.
|
|
7
|
+
*/
|
|
8
|
+
// ─── Severity Ranking (shared with app-builder flow) ─────────────────────────
|
|
9
|
+
export function severityRank(severity) {
|
|
10
|
+
switch (severity) {
|
|
11
|
+
case "critical":
|
|
12
|
+
return 5;
|
|
13
|
+
case "high":
|
|
14
|
+
return 4;
|
|
15
|
+
case "medium":
|
|
16
|
+
return 3;
|
|
17
|
+
case "low":
|
|
18
|
+
return 2;
|
|
19
|
+
case "info":
|
|
20
|
+
return 1;
|
|
21
|
+
default:
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// ─── Topic Detection ─────────────────────────────────────────────────────────
|
|
26
|
+
/**
|
|
27
|
+
* Known semantic topic patterns for cross-evaluator deduplication.
|
|
28
|
+
* When multiple evaluators flag the same line(s) for the same root cause,
|
|
29
|
+
* these patterns identify the canonical topic so duplicates can be merged.
|
|
30
|
+
*/
|
|
31
|
+
const DEDUP_TOPIC_PATTERNS = [
|
|
32
|
+
[/sql\s*inject|inject.*sql|query.*concat.*input|unsanitized.*query/i, "sql-injection"],
|
|
33
|
+
[/cross.?site\s*script|\bxss\b|unsanitized.*html|\.innerHTML/i, "xss"],
|
|
34
|
+
[/command\s*inject|shell\s*inject|os\s*command|exec.*inject/i, "cmd-injection"],
|
|
35
|
+
[/path\s*travers|directory\s*travers/i, "path-traversal"],
|
|
36
|
+
[/empty\s*catch|catch.*(?:empty|block)|error.*(?:swallow|silent|suppress|ignor)/i, "empty-catch"],
|
|
37
|
+
[
|
|
38
|
+
/hardcod.*(?:secret|cred|password|key|token)|(?:secret|cred|password|api.?key|token).*(?:hardcod|plain|literal|embed)/i,
|
|
39
|
+
"hardcoded-secret",
|
|
40
|
+
],
|
|
41
|
+
[/magic\s*(?:number|value)|unnamed\s*constant/i, "magic-number"],
|
|
42
|
+
[/\bn\s*\+\s*1\b|loop.*(?:query|request|fetch)|(?:query|request|fetch).*(?:inside|within|in)\s*loop/i, "n-plus-one"],
|
|
43
|
+
[/rate\s*limit|throttl/i, "rate-limiting"],
|
|
44
|
+
[/input\s*(?:valid|sanitiz)|(?:valid|sanitiz).*input/i, "input-validation"],
|
|
45
|
+
[/timeout/i, "timeout"],
|
|
46
|
+
[/synchronous.*(?:i\/o|io|call)|blocking\s*(?:i\/o|io|call)|Sync\s*\(/i, "sync-io"],
|
|
47
|
+
[/(?:insecure|weak)\s*(?:hash|crypto|algorithm|cipher)/i, "weak-crypto"],
|
|
48
|
+
[/prototype\s*pollut/i, "prototype-pollution"],
|
|
49
|
+
[/open\s*redirect/i, "open-redirect"],
|
|
50
|
+
[/csrf|cross.?site\s*request\s*forg/i, "csrf"],
|
|
51
|
+
[/(?:eval|dynamic\s*code\s*exec)/i, "code-injection"],
|
|
52
|
+
];
|
|
53
|
+
const TOPIC_STOP_WORDS = new Set([
|
|
54
|
+
"a",
|
|
55
|
+
"an",
|
|
56
|
+
"the",
|
|
57
|
+
"is",
|
|
58
|
+
"are",
|
|
59
|
+
"was",
|
|
60
|
+
"be",
|
|
61
|
+
"in",
|
|
62
|
+
"on",
|
|
63
|
+
"at",
|
|
64
|
+
"to",
|
|
65
|
+
"for",
|
|
66
|
+
"of",
|
|
67
|
+
"with",
|
|
68
|
+
"by",
|
|
69
|
+
"from",
|
|
70
|
+
"as",
|
|
71
|
+
"no",
|
|
72
|
+
"not",
|
|
73
|
+
"but",
|
|
74
|
+
"or",
|
|
75
|
+
"and",
|
|
76
|
+
"if",
|
|
77
|
+
"it",
|
|
78
|
+
"its",
|
|
79
|
+
"has",
|
|
80
|
+
"have",
|
|
81
|
+
"had",
|
|
82
|
+
"do",
|
|
83
|
+
"does",
|
|
84
|
+
"may",
|
|
85
|
+
"can",
|
|
86
|
+
"could",
|
|
87
|
+
"should",
|
|
88
|
+
"will",
|
|
89
|
+
"use",
|
|
90
|
+
"used",
|
|
91
|
+
"using",
|
|
92
|
+
"without",
|
|
93
|
+
"missing",
|
|
94
|
+
"detected",
|
|
95
|
+
"found",
|
|
96
|
+
"via",
|
|
97
|
+
"into",
|
|
98
|
+
"that",
|
|
99
|
+
]);
|
|
100
|
+
/**
|
|
101
|
+
* Extract a semantic topic string from a finding's title.
|
|
102
|
+
* First checks known topic patterns, then falls back to normalized title words.
|
|
103
|
+
*/
|
|
104
|
+
function extractFindingTopic(finding) {
|
|
105
|
+
const title = finding.title;
|
|
106
|
+
for (const [pattern, topic] of DEDUP_TOPIC_PATTERNS) {
|
|
107
|
+
if (pattern.test(title))
|
|
108
|
+
return topic;
|
|
109
|
+
}
|
|
110
|
+
// Fallback: normalize title to sorted core words
|
|
111
|
+
return title
|
|
112
|
+
.toLowerCase()
|
|
113
|
+
.replace(/[^a-z0-9\s]/g, " ")
|
|
114
|
+
.split(/\s+/)
|
|
115
|
+
.filter((w) => w.length > 2 && !TOPIC_STOP_WORDS.has(w))
|
|
116
|
+
.sort()
|
|
117
|
+
.join("-");
|
|
118
|
+
}
|
|
119
|
+
// ─── Union-Find Deduplication ────────────────────────────────────────────────
|
|
120
|
+
/**
|
|
121
|
+
* Deduplicate findings across evaluators. When different judges flag the same
|
|
122
|
+
* line(s) for the same root cause, keeps the highest-severity instance and
|
|
123
|
+
* annotates it with cross-references to the other rule IDs.
|
|
124
|
+
*
|
|
125
|
+
* Uses union-find to cluster findings that share any (topic, lineNumber) pair,
|
|
126
|
+
* then picks the best finding from each cluster.
|
|
127
|
+
*/
|
|
128
|
+
export function crossEvaluatorDedup(findings) {
|
|
129
|
+
if (findings.length <= 1)
|
|
130
|
+
return findings;
|
|
131
|
+
// Map each finding to (topic, line) keys
|
|
132
|
+
const groups = new Map();
|
|
133
|
+
for (let i = 0; i < findings.length; i++) {
|
|
134
|
+
const f = findings[i];
|
|
135
|
+
const topic = extractFindingTopic(f);
|
|
136
|
+
if (f.lineNumbers && f.lineNumbers.length > 0) {
|
|
137
|
+
const seen = new Set();
|
|
138
|
+
for (const line of f.lineNumbers) {
|
|
139
|
+
const key = `${topic}:L${line}`;
|
|
140
|
+
if (!seen.has(key)) {
|
|
141
|
+
const group = groups.get(key) ?? [];
|
|
142
|
+
group.push(i);
|
|
143
|
+
groups.set(key, group);
|
|
144
|
+
seen.add(key);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const key = `${topic}:noLine`;
|
|
150
|
+
const group = groups.get(key) ?? [];
|
|
151
|
+
group.push(i);
|
|
152
|
+
groups.set(key, group);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Union-Find to merge findings sharing any (topic, line) key
|
|
156
|
+
const parent = Array.from({ length: findings.length }, (_, i) => i);
|
|
157
|
+
function find(x) {
|
|
158
|
+
while (parent[x] !== x) {
|
|
159
|
+
parent[x] = parent[parent[x]];
|
|
160
|
+
x = parent[x];
|
|
161
|
+
}
|
|
162
|
+
return x;
|
|
163
|
+
}
|
|
164
|
+
function union(a, b) {
|
|
165
|
+
const ra = find(a);
|
|
166
|
+
const rb = find(b);
|
|
167
|
+
if (ra !== rb)
|
|
168
|
+
parent[ra] = rb;
|
|
169
|
+
}
|
|
170
|
+
for (const indices of groups.values()) {
|
|
171
|
+
for (let j = 1; j < indices.length; j++) {
|
|
172
|
+
union(indices[0], indices[j]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Collect connected components
|
|
176
|
+
const components = new Map();
|
|
177
|
+
for (let i = 0; i < findings.length; i++) {
|
|
178
|
+
const root = find(i);
|
|
179
|
+
const comp = components.get(root) ?? [];
|
|
180
|
+
comp.push(i);
|
|
181
|
+
components.set(root, comp);
|
|
182
|
+
}
|
|
183
|
+
// Pick the best finding from each component
|
|
184
|
+
const result = [];
|
|
185
|
+
for (const indices of components.values()) {
|
|
186
|
+
if (indices.length === 1) {
|
|
187
|
+
result.push(findings[indices[0]]);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
// Sort: severity desc → suggestedFix → confidence → description length
|
|
191
|
+
const sorted = indices
|
|
192
|
+
.map((i) => findings[i])
|
|
193
|
+
.sort((a, b) => {
|
|
194
|
+
const sevDiff = severityRank(b.severity) - severityRank(a.severity);
|
|
195
|
+
if (sevDiff !== 0)
|
|
196
|
+
return sevDiff;
|
|
197
|
+
const fixDiff = (b.suggestedFix ? 1 : 0) - (a.suggestedFix ? 1 : 0);
|
|
198
|
+
if (fixDiff !== 0)
|
|
199
|
+
return fixDiff;
|
|
200
|
+
const confDiff = (b.confidence ?? 0) - (a.confidence ?? 0);
|
|
201
|
+
if (confDiff !== 0)
|
|
202
|
+
return confDiff;
|
|
203
|
+
return b.description.length - a.description.length;
|
|
204
|
+
});
|
|
205
|
+
const best = { ...sorted[0] };
|
|
206
|
+
// Annotate with cross-references
|
|
207
|
+
const otherRuleIds = sorted.slice(1).map((f) => f.ruleId);
|
|
208
|
+
best.description += `\n\n_Also identified by: ${otherRuleIds.join(", ")}_`;
|
|
209
|
+
// Merge line numbers from all findings in the cluster
|
|
210
|
+
const allLines = new Set();
|
|
211
|
+
for (const f of sorted) {
|
|
212
|
+
for (const l of f.lineNumbers ?? [])
|
|
213
|
+
allLines.add(l);
|
|
214
|
+
}
|
|
215
|
+
if (allLines.size > 0) {
|
|
216
|
+
best.lineNumbers = [...allLines].sort((a, b) => a - b);
|
|
217
|
+
}
|
|
218
|
+
result.push(best);
|
|
219
|
+
}
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=dedup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error hierarchy for the Judges Panel.
|
|
3
|
+
*
|
|
4
|
+
* Provides typed error classes so consumers can catch and handle
|
|
5
|
+
* specific failure modes (config validation, evaluation, parsing)
|
|
6
|
+
* instead of relying on untyped `Error` messages.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Base error class for all judges errors.
|
|
10
|
+
* Carries a machine-readable `code` for programmatic matching.
|
|
11
|
+
*/
|
|
12
|
+
export declare class JudgesError extends Error {
|
|
13
|
+
/** Machine-readable error code, e.g. "JUDGES_CONFIG_INVALID". */
|
|
14
|
+
readonly code: string;
|
|
15
|
+
constructor(message: string, code: string, options?: ErrorOptions);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Thrown when a `.judgesrc` / inline config is malformed or invalid.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ConfigError extends JudgesError {
|
|
21
|
+
constructor(message: string, options?: ErrorOptions);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Thrown when an evaluation fails (unknown judge, analyzer crash, etc.).
|
|
25
|
+
*/
|
|
26
|
+
export declare class EvaluationError extends JudgesError {
|
|
27
|
+
/** ID of the judge that failed, if applicable. */
|
|
28
|
+
readonly judgeId?: string;
|
|
29
|
+
constructor(message: string, judgeId?: string, options?: ErrorOptions);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Thrown when source code or input data cannot be parsed.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ParseError extends JudgesError {
|
|
35
|
+
constructor(message: string, options?: ErrorOptions);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAOlE;AAID;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAID;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAKtE;AAID;;GAEG;AACH,qBAAa,UAAW,SAAQ,WAAW;gBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error hierarchy for the Judges Panel.
|
|
3
|
+
*
|
|
4
|
+
* Provides typed error classes so consumers can catch and handle
|
|
5
|
+
* specific failure modes (config validation, evaluation, parsing)
|
|
6
|
+
* instead of relying on untyped `Error` messages.
|
|
7
|
+
*/
|
|
8
|
+
// ─── Base Error ──────────────────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Base error class for all judges errors.
|
|
11
|
+
* Carries a machine-readable `code` for programmatic matching.
|
|
12
|
+
*/
|
|
13
|
+
export class JudgesError extends Error {
|
|
14
|
+
/** Machine-readable error code, e.g. "JUDGES_CONFIG_INVALID". */
|
|
15
|
+
code;
|
|
16
|
+
constructor(message, code, options) {
|
|
17
|
+
super(message, options);
|
|
18
|
+
this.name = "JudgesError";
|
|
19
|
+
this.code = code;
|
|
20
|
+
// Fix prototype chain for instanceof checks in transpiled code
|
|
21
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// ─── Config Errors ───────────────────────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Thrown when a `.judgesrc` / inline config is malformed or invalid.
|
|
27
|
+
*/
|
|
28
|
+
export class ConfigError extends JudgesError {
|
|
29
|
+
constructor(message, options) {
|
|
30
|
+
super(message, "JUDGES_CONFIG_INVALID", options);
|
|
31
|
+
this.name = "ConfigError";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ─── Evaluation Errors ───────────────────────────────────────────────────────
|
|
35
|
+
/**
|
|
36
|
+
* Thrown when an evaluation fails (unknown judge, analyzer crash, etc.).
|
|
37
|
+
*/
|
|
38
|
+
export class EvaluationError extends JudgesError {
|
|
39
|
+
/** ID of the judge that failed, if applicable. */
|
|
40
|
+
judgeId;
|
|
41
|
+
constructor(message, judgeId, options) {
|
|
42
|
+
super(message, "JUDGES_EVALUATION_FAILED", options);
|
|
43
|
+
this.name = "EvaluationError";
|
|
44
|
+
this.judgeId = judgeId;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// ─── Parse Errors ────────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Thrown when source code or input data cannot be parsed.
|
|
50
|
+
*/
|
|
51
|
+
export class ParseError extends JudgesError {
|
|
52
|
+
constructor(message, options) {
|
|
53
|
+
super(message, "JUDGES_PARSE_FAILED", options);
|
|
54
|
+
this.name = "ParseError";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,iEAAiE;IACxD,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,IAAY,EAAE,OAAsB;QAC/D,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,+DAA+D;QAC/D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,kDAAkD;IACzC,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAAgB,EAAE,OAAsB;QACnE,KAAK,CAAC,OAAO,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/evaluators/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/evaluators/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAyZ9E"}
|