@kevinrabun/judges 3.18.2 → 3.19.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 +37 -0
- package/dist/evaluators/accessibility.js +7 -7
- package/dist/evaluators/accessibility.js.map +1 -1
- package/dist/evaluators/ai-code-safety.d.ts.map +1 -1
- package/dist/evaluators/ai-code-safety.js +15 -9
- package/dist/evaluators/ai-code-safety.js.map +1 -1
- package/dist/evaluators/api-design.js +7 -7
- package/dist/evaluators/api-design.js.map +1 -1
- package/dist/evaluators/authentication.d.ts.map +1 -1
- package/dist/evaluators/authentication.js +15 -15
- package/dist/evaluators/authentication.js.map +1 -1
- package/dist/evaluators/backwards-compatibility.js +5 -5
- package/dist/evaluators/backwards-compatibility.js.map +1 -1
- package/dist/evaluators/caching.d.ts.map +1 -1
- package/dist/evaluators/caching.js +7 -7
- package/dist/evaluators/caching.js.map +1 -1
- package/dist/evaluators/ci-cd.js +14 -14
- package/dist/evaluators/ci-cd.js.map +1 -1
- package/dist/evaluators/cloud-readiness.d.ts.map +1 -1
- package/dist/evaluators/cloud-readiness.js +11 -5
- package/dist/evaluators/cloud-readiness.js.map +1 -1
- package/dist/evaluators/compliance.d.ts.map +1 -1
- package/dist/evaluators/compliance.js +5 -5
- package/dist/evaluators/compliance.js.map +1 -1
- package/dist/evaluators/concurrency.d.ts.map +1 -1
- package/dist/evaluators/concurrency.js +3 -3
- package/dist/evaluators/concurrency.js.map +1 -1
- package/dist/evaluators/configuration-management.d.ts.map +1 -1
- package/dist/evaluators/configuration-management.js +14 -9
- package/dist/evaluators/configuration-management.js.map +1 -1
- package/dist/evaluators/cost-effectiveness.d.ts.map +1 -1
- package/dist/evaluators/cost-effectiveness.js +3 -3
- package/dist/evaluators/cost-effectiveness.js.map +1 -1
- package/dist/evaluators/cybersecurity.d.ts.map +1 -1
- package/dist/evaluators/cybersecurity.js +8 -8
- package/dist/evaluators/cybersecurity.js.map +1 -1
- package/dist/evaluators/data-security.d.ts.map +1 -1
- package/dist/evaluators/data-security.js +16 -10
- package/dist/evaluators/data-security.js.map +1 -1
- package/dist/evaluators/data-sovereignty.d.ts.map +1 -1
- package/dist/evaluators/data-sovereignty.js +10 -10
- package/dist/evaluators/data-sovereignty.js.map +1 -1
- package/dist/evaluators/database.js +7 -7
- package/dist/evaluators/database.js.map +1 -1
- package/dist/evaluators/dependency-health.js +2 -2
- package/dist/evaluators/dependency-health.js.map +1 -1
- package/dist/evaluators/documentation.d.ts.map +1 -1
- package/dist/evaluators/documentation.js +22 -4
- package/dist/evaluators/documentation.js.map +1 -1
- package/dist/evaluators/error-handling.d.ts.map +1 -1
- package/dist/evaluators/error-handling.js +10 -10
- package/dist/evaluators/error-handling.js.map +1 -1
- package/dist/evaluators/framework-safety.d.ts.map +1 -1
- package/dist/evaluators/framework-safety.js +10 -10
- package/dist/evaluators/framework-safety.js.map +1 -1
- package/dist/evaluators/iac-security.js +6 -6
- package/dist/evaluators/iac-security.js.map +1 -1
- package/dist/evaluators/internationalization.js +3 -3
- package/dist/evaluators/internationalization.js.map +1 -1
- package/dist/evaluators/logging-privacy.js +2 -2
- package/dist/evaluators/logging-privacy.js.map +1 -1
- package/dist/evaluators/observability.js +5 -5
- package/dist/evaluators/observability.js.map +1 -1
- package/dist/evaluators/performance.d.ts.map +1 -1
- package/dist/evaluators/performance.js +4 -4
- package/dist/evaluators/performance.js.map +1 -1
- package/dist/evaluators/portability.d.ts.map +1 -1
- package/dist/evaluators/portability.js +14 -8
- package/dist/evaluators/portability.js.map +1 -1
- package/dist/evaluators/project.d.ts.map +1 -1
- package/dist/evaluators/project.js +84 -1
- package/dist/evaluators/project.js.map +1 -1
- package/dist/evaluators/rate-limiting.d.ts.map +1 -1
- package/dist/evaluators/rate-limiting.js +9 -9
- package/dist/evaluators/rate-limiting.js.map +1 -1
- package/dist/evaluators/reliability.js +4 -4
- package/dist/evaluators/reliability.js.map +1 -1
- package/dist/evaluators/scalability.d.ts.map +1 -1
- package/dist/evaluators/scalability.js +10 -10
- package/dist/evaluators/scalability.js.map +1 -1
- package/dist/evaluators/shared.d.ts +48 -0
- package/dist/evaluators/shared.d.ts.map +1 -1
- package/dist/evaluators/shared.js +197 -0
- package/dist/evaluators/shared.js.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.map +1 -1
- package/dist/evaluators/testing.js +6 -5
- package/dist/evaluators/testing.js.map +1 -1
- package/dist/evaluators/ux.d.ts.map +1 -1
- package/dist/evaluators/ux.js +19 -19
- package/dist/evaluators/ux.js.map +1 -1
- package/dist/language-patterns.d.ts +0 -1
- package/dist/language-patterns.d.ts.map +1 -1
- package/dist/language-patterns.js +1 -1
- package/dist/language-patterns.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **@kevinrabun/judges** are documented here.
|
|
4
4
|
|
|
5
|
+
## [3.19.0] — 2026-03-04
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Strategy 1 — Comment-stripping before pattern matching** — New `testCode(code, pattern)` utility replaces raw `pattern.test(code)` calls across 31 evaluators (184 conversions). Strips `//`, `/* */`, `#`, and Python `"""`/`'''` docstrings before testing, so patterns mentioned only in comments no longer trigger false positives. String literals are preserved so import paths, require() arguments, and route strings remain matchable.
|
|
9
|
+
- **Strategy 2 — Multi-line context windows** — New `getContextWindow(lines, lineNum, radius)` utility enables post-match filters to check adjacent lines. Applied to 5 high-value evaluators:
|
|
10
|
+
- **cloud-readiness** — Hardcoded host/port fallback (`??`, `||`, `getenv`) detected across ±2 lines
|
|
11
|
+
- **portability** — Same fallback pattern for localhost/IP addresses
|
|
12
|
+
- **data-security** — JWT `algorithms=` parameter detected on adjacent lines in multi-line Python calls
|
|
13
|
+
- **scalability** — `await` on blocking calls detected ±1 line
|
|
14
|
+
- **ai-code-safety** — Auth-check patterns detected ±2 lines from wildcard permissions
|
|
15
|
+
- **Strategy 3 — Project-mode absence resolution** — New `scanProjectWideSecurityPatterns()` scans all project files for security patterns regardless of import relationships. `applyProjectWideAbsenceResolution()` reduces confidence of absence-based findings when the security category exists anywhere in the project (halved reduction vs direct-import). 5 new security categories added: health-check, graceful-shutdown, CORS, secrets-management, environment-config (total: 12).
|
|
16
|
+
|
|
17
|
+
### Tests
|
|
18
|
+
- 22 new tests covering all three FP reduction strategies (15 subsystem unit tests + 7 negative integration tests)
|
|
19
|
+
- All 1,365 tests pass (963 judges + 193 negative + 209 subsystems)
|
|
20
|
+
|
|
21
|
+
## [3.18.3] — 2026-03-03
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- **FP reduction round 5 — cross-language sweep** — Ran all 36 evaluators against clean idiomatic code in 6 languages (Python/FastAPI, Rust/Actix-web, C#/ASP.NET Core, Java/Spring Boot, Go/stdlib, C++/REST), eliminating 21 false positives across 10 source files:
|
|
25
|
+
- **CLOUD-001 / PORTA-001** — Configurable defaults (`unwrap_or_else`, `os.Getenv`, `??`, `||`, `environ.get`) no longer flagged as hardcoded hosts
|
|
26
|
+
- **AICS-013** — Auth-check post-filter excludes `hasRole`, `@PreAuthorize`, `[Authorize]`, `claims.role`, CORS headers
|
|
27
|
+
- **AICS-016** — `ActionResult` (C#) no longer matched as unsafe action usage; requires explicit `_` or `.` separator
|
|
28
|
+
- **A11Y** — `spring` no longer matched inside words (e.g. `springframework`); form-error rule uses specific HTML element list instead of broad regex
|
|
29
|
+
- **DATA-001** — Python `jwt.decode` with `algorithms=` parameter (verified decode) no longer flagged
|
|
30
|
+
- **SWDEV-002** — Go `if err != nil` no longer flagged as bare exception catch
|
|
31
|
+
- **CONC-001** — Go graceful-shutdown goroutines (`signal.Notify`, `Shutdown`, `SIGTERM`) recognized as managed workers
|
|
32
|
+
- **CFG-001** — Go multi-line `os.Getenv` + `== ""` validation detection
|
|
33
|
+
- **DOC-001** — Backward-walk now recognizes Go `//` comments, Rust `///` with `#[attr]` traversal, C# `///` with `[Attr]` traversal, Python body docstrings
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
- **Undefined `lines` variable in 4 evaluators** — `cloud-readiness.ts`, `portability.ts`, `ai-code-safety.ts`, and `data-security.ts` referenced `lines[ln - 1]` where `lines` was either undefined, scoped inside an if-block, or was a line-number array instead of text lines. Post-filter logic silently failed, producing incorrect results. Each file now defines a properly scoped `code.split("\n")` variable.
|
|
37
|
+
|
|
38
|
+
### Tests
|
|
39
|
+
- 30+ new negative FP regression tests with true-positive preservation checks
|
|
40
|
+
- All 1,343 tests pass (963 judges + 186 negative + 194 subsystems)
|
|
41
|
+
|
|
5
42
|
## [3.18.2] — 2026-03-03
|
|
6
43
|
|
|
7
44
|
### Fixed
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLangFamily, isCommentLine } from "./shared.js";
|
|
1
|
+
import { getLangFamily, isCommentLine, testCode } from "./shared.js";
|
|
2
2
|
export function analyzeAccessibility(code, language) {
|
|
3
3
|
const findings = [];
|
|
4
4
|
const lines = code.split("\n");
|
|
@@ -196,8 +196,8 @@ export function analyzeAccessibility(code, language) {
|
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
198
|
// Skip navigation link missing
|
|
199
|
-
const hasNav = /<nav\b|role\s*=\s*["']navigation/i
|
|
200
|
-
const hasSkipLink = /skip.*nav|skip.*content|skipToContent|#main-content/i
|
|
199
|
+
const hasNav = testCode(code, /<nav\b|role\s*=\s*["']navigation/i);
|
|
200
|
+
const hasSkipLink = testCode(code, /skip.*nav|skip.*content|skipToContent|#main-content/i);
|
|
201
201
|
if (hasNav && !hasSkipLink) {
|
|
202
202
|
findings.push({
|
|
203
203
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -249,7 +249,7 @@ export function analyzeAccessibility(code, language) {
|
|
|
249
249
|
dynamicUpdateLines.push(i + 1);
|
|
250
250
|
}
|
|
251
251
|
});
|
|
252
|
-
const hasAriaLive = /aria-live|role\s*=\s*["'](?:alert|status|log)/i
|
|
252
|
+
const hasAriaLive = testCode(code, /aria-live|role\s*=\s*["'](?:alert|status|log)/i);
|
|
253
253
|
if (dynamicUpdateLines.length > 0 && !hasAriaLive) {
|
|
254
254
|
findings.push({
|
|
255
255
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -320,11 +320,11 @@ export function analyzeAccessibility(code, language) {
|
|
|
320
320
|
lines.forEach((line, i) => {
|
|
321
321
|
if (isCommentLine(line))
|
|
322
322
|
return;
|
|
323
|
-
if (/animation\s*:|transition\s*:|@keyframes|animate\s*\(|gsap|framer-motion
|
|
323
|
+
if (/animation\s*:|transition\s*:|@keyframes|animate\s*\(|gsap|framer-motion|\bspring\b/i.test(line)) {
|
|
324
324
|
animationLines.push(i + 1);
|
|
325
325
|
}
|
|
326
326
|
});
|
|
327
|
-
const hasReducedMotion = /prefers-reduced-motion|prefersReducedMotion|reducedMotion/i
|
|
327
|
+
const hasReducedMotion = testCode(code, /prefers-reduced-motion|prefersReducedMotion|reducedMotion/i);
|
|
328
328
|
if (animationLines.length > 0 && !hasReducedMotion) {
|
|
329
329
|
findings.push({
|
|
330
330
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -365,7 +365,7 @@ export function analyzeAccessibility(code, language) {
|
|
|
365
365
|
}
|
|
366
366
|
// Form error messages not associated with inputs
|
|
367
367
|
// Only apply to files that contain HTML/JSX rendering patterns — skip backend-only code
|
|
368
|
-
const hasRenderingPatterns =
|
|
368
|
+
const hasRenderingPatterns = /jsx|tsx|render\s*\(|createElement|dangerouslySetInnerHTML|className\s*=|htmlFor|aria-|role\s*=|<input|<form|<select|<textarea|<button|<div[\s>]|<span[\s>]|<p[\s>]|<h[1-6][\s>]|<img[\s>]|<table[\s>]|<label[\s>]/i.test(code);
|
|
369
369
|
const errorMsgLines = [];
|
|
370
370
|
if (hasRenderingPatterns) {
|
|
371
371
|
lines.forEach((line, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/evaluators/accessibility.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/evaluators/accessibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-code-safety.d.ts","sourceRoot":"","sources":["../../src/evaluators/ai-code-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-code-safety.d.ts","sourceRoot":"","sources":["../../src/evaluators/ai-code-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAW3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CA2lB7E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLineNumbers, getLangLineNumbers, getLangFamily, isIaCTemplate } from "./shared.js";
|
|
1
|
+
import { getLineNumbers, getLangLineNumbers, getLangFamily, isIaCTemplate, testCode, getContextWindow, } from "./shared.js";
|
|
2
2
|
import * as LP from "../language-patterns.js";
|
|
3
3
|
/**
|
|
4
4
|
* Evaluates code for security and quality risks that are specifically
|
|
@@ -17,7 +17,7 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
17
17
|
const llmCallPattern = /(?:openai|anthropic|cohere|azure.*openai|bedrock|gemini|palm|groq|ollama|mistral|replicate|together|chat\.completions|messages\.create|generate|invoke)\s*[.(]/gi;
|
|
18
18
|
const promptConcatLines = getLineNumbers(code, promptConcatPattern);
|
|
19
19
|
const promptTemplateLines = getLineNumbers(code, promptTemplatePattern);
|
|
20
|
-
const hasLlmCall =
|
|
20
|
+
const hasLlmCall = testCode(code, llmCallPattern);
|
|
21
21
|
const allPromptInjectionLines = [...new Set([...promptConcatLines, ...promptTemplateLines])].sort((a, b) => a - b);
|
|
22
22
|
if (allPromptInjectionLines.length > 0 && hasLlmCall) {
|
|
23
23
|
findings.push({
|
|
@@ -239,7 +239,7 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
239
239
|
const requestHandlerPattern = /(?:app|router)\.\s*(?:get|post|put|patch|delete)\s*\(\s*["'`]|@(?:Get|Post|Put|Patch|Delete|RequestMapping|ApiOperation)|def\s+\w+\s*\(\s*(?:request|req)|func\s+\w+\s*\(\s*(?:w\s+http\.ResponseWriter|c\s+\*gin\.Context)/gi;
|
|
240
240
|
const inputValidationPattern = /(?:validate|sanitize|schema|zod|joi|yup|class-validator|express-validator|pydantic|wtforms|marshmallow|cerberus|jsonschema|ajv|superstruct|io-ts|typia|@Valid|@NotNull|@NotBlank|@NotEmpty|javax\.validation|jakarta\.validation|hibernate[.-]validator|Bean\s*Validation)\b/gi;
|
|
241
241
|
const handlerLines = getLineNumbers(code, requestHandlerPattern);
|
|
242
|
-
const hasValidation =
|
|
242
|
+
const hasValidation = testCode(code, inputValidationPattern);
|
|
243
243
|
if (handlerLines.length >= 2 && !hasValidation) {
|
|
244
244
|
findings.push({
|
|
245
245
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -260,7 +260,7 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
260
260
|
if (hasLlmCall) {
|
|
261
261
|
const llmCallLines = getLineNumbers(code, llmCallPattern);
|
|
262
262
|
const hasTimeout = /timeout|signal|AbortController|asyncio\.wait_for|context\.WithTimeout|CancellationToken/gi.test(code);
|
|
263
|
-
const hasRetry = /retry|retries|backoff|tenacity|polly|resilience|Circuit/gi
|
|
263
|
+
const hasRetry = testCode(code, /retry|retries|backoff|tenacity|polly|resilience|Circuit/gi);
|
|
264
264
|
if (!hasTimeout && !hasRetry && llmCallLines.length > 0) {
|
|
265
265
|
findings.push({
|
|
266
266
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -284,7 +284,7 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
284
284
|
// ── AICS-012 No output guardrails on LLM responses ────────────────────────
|
|
285
285
|
if (hasLlmCall) {
|
|
286
286
|
const outputGuardrailPattern = /(?:guardrail|content.?filter|moderation|safety|toxicity|output.?valid|response.?valid|schema.?valid|json.?parse|structured.?output|function.?call|tool.?use)/gi;
|
|
287
|
-
const hasOutputGuardrails =
|
|
287
|
+
const hasOutputGuardrails = testCode(code, outputGuardrailPattern);
|
|
288
288
|
if (!hasOutputGuardrails && llmResponseLines.length > 0) {
|
|
289
289
|
findings.push({
|
|
290
290
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -307,7 +307,13 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
307
307
|
}
|
|
308
308
|
// ── AICS-013 Excessive permissions or wildcard resource access ─────────────
|
|
309
309
|
const wildcardPermPattern = /["'`]\*["'`]\s*(?:,|\]|\})|Action["']?\s*:\s*["'`]\*["'`]|Resource["']?\s*:\s*["'`]\*["'`]|grant\s+all|GRANT\s+ALL|role.*admin|ALL\s+PRIVILEGES|permissions?\s*[:=]\s*\[?\s*["'`]\*["'`]/gi;
|
|
310
|
-
|
|
310
|
+
// Post-filter: exclude authorization CHECK lines — these verify roles, not grant them
|
|
311
|
+
const authCheckPattern = /hasRole|isInRole|require_role|PreAuthorize|Authorize\s*\(|role\s*[!=]=|claims\.role|current_user\.role|allow_headers|allow_methods/i;
|
|
312
|
+
const aicsCodeLines = code.split("\n");
|
|
313
|
+
const wildcardPermLines = getLineNumbers(code, wildcardPermPattern).filter((ln) => {
|
|
314
|
+
const ctx = getContextWindow(aicsCodeLines, ln, 2);
|
|
315
|
+
return !authCheckPattern.test(ctx);
|
|
316
|
+
});
|
|
311
317
|
if (wildcardPermLines.length > 0) {
|
|
312
318
|
findings.push({
|
|
313
319
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -327,7 +333,7 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
327
333
|
// ── AICS-014 Missing rate limiting on AI/LLM endpoints ────────────────────
|
|
328
334
|
if (hasLlmCall) {
|
|
329
335
|
const rateLimitPattern = /rate.?limit|throttle|limiter|token.?bucket|sliding.?window|rateLimit/gi;
|
|
330
|
-
const hasRateLimit =
|
|
336
|
+
const hasRateLimit = testCode(code, rateLimitPattern);
|
|
331
337
|
const handlerCount = getLineNumbers(code, requestHandlerPattern).length;
|
|
332
338
|
if (!hasRateLimit && handlerCount > 0) {
|
|
333
339
|
findings.push({
|
|
@@ -374,9 +380,9 @@ export function analyzeAiCodeSafety(code, language) {
|
|
|
374
380
|
ruleNum++;
|
|
375
381
|
}
|
|
376
382
|
// ── AICS-016 Tool-call results used without validation ────────────────────
|
|
377
|
-
const toolResultPattern = /tool[_.]?(?:result|output|response|call)|function[_.]?(?:result|output|response|call)|action[_.]
|
|
383
|
+
const toolResultPattern = /tool[_.]?(?:result|output|response|call)|function[_.]?(?:result|output|response|call)|action[_.]result|tool_use|tool_calls/gi;
|
|
378
384
|
const toolResultLines = getLineNumbers(code, toolResultPattern);
|
|
379
|
-
const hasResultValidation = /(?:validate|sanitize|parse|check|verify|filter|schema|zod|joi|yup|JSON\.parse|try\s*\{[^}]*JSON)/gi
|
|
385
|
+
const hasResultValidation = testCode(code, /(?:validate|sanitize|parse|check|verify|filter|schema|zod|joi|yup|JSON\.parse|try\s*\{[^}]*JSON)/gi);
|
|
380
386
|
if (toolResultLines.length > 0 && !hasResultValidation) {
|
|
381
387
|
findings.push({
|
|
382
388
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-code-safety.js","sourceRoot":"","sources":["../../src/evaluators/ai-code-safety.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-code-safety.js","sourceRoot":"","sources":["../../src/evaluators/ai-code-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLangLineNumbers, getLangFamily, isCommentLine } from "./shared.js";
|
|
1
|
+
import { getLangLineNumbers, getLangFamily, isCommentLine, testCode } from "./shared.js";
|
|
2
2
|
import * as LP from "../language-patterns.js";
|
|
3
3
|
export function analyzeApiDesign(code, language) {
|
|
4
4
|
const findings = [];
|
|
@@ -104,7 +104,7 @@ export function analyzeApiDesign(code, language) {
|
|
|
104
104
|
}
|
|
105
105
|
// Detect missing API versioning (multi-language route detection)
|
|
106
106
|
const routeRegLines = getLangLineNumbers(code, language, LP.HTTP_ROUTE);
|
|
107
|
-
const hasVersioning = /\/v\d+\//i.test(code) || /api-version|x-api-version/i
|
|
107
|
+
const hasVersioning = /\/v\d+\//i.test(code) || testCode(code, /api-version|x-api-version/i);
|
|
108
108
|
if (routeRegLines.length > 2 && !hasVersioning) {
|
|
109
109
|
findings.push({
|
|
110
110
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -156,7 +156,7 @@ export function analyzeApiDesign(code, language) {
|
|
|
156
156
|
bodyParsingLines.push(i + 1);
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
|
-
const hasContentTypeCheck = /content-type|content_type|contentType|express\.json|bodyParser/i
|
|
159
|
+
const hasContentTypeCheck = testCode(code, /content-type|content_type|contentType|express\.json|bodyParser/i);
|
|
160
160
|
if (bodyParsingLines.length > 0 && !hasContentTypeCheck) {
|
|
161
161
|
findings.push({
|
|
162
162
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -212,8 +212,8 @@ export function analyzeApiDesign(code, language) {
|
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
// GraphQL: no query depth/complexity limiting
|
|
215
|
-
const hasGraphQL = /graphql|typeDefs|resolvers|gql`/i
|
|
216
|
-
const hasDepthLimit = /depthLimit|complexity|maxDepth|queryComplexity/i
|
|
215
|
+
const hasGraphQL = testCode(code, /graphql|typeDefs|resolvers|gql`/i);
|
|
216
|
+
const hasDepthLimit = testCode(code, /depthLimit|complexity|maxDepth|queryComplexity/i);
|
|
217
217
|
if (hasGraphQL && !hasDepthLimit) {
|
|
218
218
|
findings.push({
|
|
219
219
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -227,7 +227,7 @@ export function analyzeApiDesign(code, language) {
|
|
|
227
227
|
});
|
|
228
228
|
}
|
|
229
229
|
// Missing CORS configuration
|
|
230
|
-
const hasCors = /cors|Access-Control-Allow-Origin|allowedOrigins/i
|
|
230
|
+
const hasCors = testCode(code, /cors|Access-Control-Allow-Origin|allowedOrigins/i);
|
|
231
231
|
if (hasRoutes2 && !hasCors && routeRegLines.length > 2) {
|
|
232
232
|
findings.push({
|
|
233
233
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -242,7 +242,7 @@ export function analyzeApiDesign(code, language) {
|
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
// Missing request ID in responses
|
|
245
|
-
const hasRequestId = /x-request-id|requestId|correlationId|traceId/i
|
|
245
|
+
const hasRequestId = testCode(code, /x-request-id|requestId|correlationId|traceId/i);
|
|
246
246
|
if (hasRoutes2 && !hasRequestId && routeRegLines.length > 3) {
|
|
247
247
|
findings.push({
|
|
248
248
|
ruleId: `${prefix}-${String(ruleNum).padStart(3, "0")}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-design.js","sourceRoot":"","sources":["../../src/evaluators/api-design.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"api-design.js","sourceRoot":"","sources":["../../src/evaluators/api-design.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IAC7D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEtC,mCAAmC;IACnC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,0EAA0E,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1F,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,2FAA2F;YACxG,WAAW,EAAE,cAAc;YAC3B,cAAc,EACZ,0GAA0G;YAC5G,SAAS,EAAE,gCAAgC;YAC3C,YAAY,EACV,qJAAqJ;YACvJ,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,kDAAkD;YAClD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1F,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxF,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,gDAAgD;YACvD,WAAW,EACT,8GAA8G;YAChH,WAAW,EAAE,oBAAoB;YACjC,cAAc,EACZ,mIAAmI;YACrI,SAAS,EAAE,2CAA2C;YACtD,YAAY,EACV,0HAA0H;YAC5H,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IACE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC7F,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,yBAAyB;YAChC,WAAW,EACT,+GAA+G;YACjH,WAAW,EAAE,cAAc;YAC3B,cAAc,EACZ,6GAA6G;YAC/G,SAAS,EAAE,6BAA6B;YACxC,YAAY,EACV,wIAAwI;YAC1I,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,uDAAuD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1E,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,kCAAkC;YACzC,WAAW,EAAE,iGAAiG;YAC9G,WAAW,EAAE,iBAAiB;YAC9B,cAAc,EACZ,4HAA4H;YAC9H,SAAS,EAAE,6BAA6B;YACxC,YAAY,EACV,6JAA6J;YAC/J,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IAC7F,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,kEAAkE;YAC/E,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACtC,cAAc,EAAE,6FAA6F;YAC7G,SAAS,EAAE,+BAA+B;YAC1C,YAAY,EACV,gHAAgH;YAClH,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAA4D,EAAE,CAAC;IAChF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,qCAAqC;YAC5C,WAAW,EACT,qIAAqI;YACvI,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,cAAc,EAAE,2FAA2F;YAC3G,SAAS,EAAE,iDAAiD;YAC5D,YAAY,EACV,kJAAkJ;YACpJ,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,EAAE,iEAAiE,CAAC,CAAC;IAC9G,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,mDAAmD;YAC1D,WAAW,EACT,wGAAwG;YAC1G,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,cAAc,EACZ,gIAAgI;YAClI,SAAS,EAAE,uCAAuC;YAClD,YAAY,EACV,gJAAgJ;YAClJ,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,mFAAmF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,0DAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,wCAAwC;YAC/C,WAAW,EACT,mIAAmI;YACrI,WAAW,EAAE,mBAAmB;YAChC,cAAc,EACZ,4GAA4G;YAC9G,SAAS,EAAE,qCAAqC;YAChD,YAAY,EACV,0IAA0I;YAC5I,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,YAAY,GAChB,0HAA0H,CAAC,IAAI,CAC7H,IAAI,CACL,CAAC;IACJ,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,kCAAkC;YACzC,WAAW,EACT,oHAAoH;YACtH,cAAc,EACZ,sIAAsI;YACxI,SAAS,EAAE,uDAAuD;YAClE,YAAY,EACV,0HAA0H;YAC5H,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,iDAAiD,CAAC,CAAC;IACxF,IAAI,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,+CAA+C;YACtD,WAAW,EACT,6HAA6H;YAC/H,cAAc,EACZ,sHAAsH;YACxH,SAAS,EAAE,6CAA6C;YACxD,YAAY,EACV,sHAAsH;YACxH,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC;IACnF,IAAI,UAAU,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACzD,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,gCAAgC;YACvC,WAAW,EACT,0GAA0G;YAC5G,cAAc,EACZ,2GAA2G;YAC7G,SAAS,EAAE,2CAA2C;YACtD,YAAY,EACV,kIAAkI;YACpI,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;IACrF,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACvD,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,gCAAgC;YACvC,WAAW,EACT,iHAAiH;YACnH,cAAc,EACZ,kHAAkH;YACpH,SAAS,EAAE,wCAAwC;YACnD,YAAY,EACV,iKAAiK;YACnK,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/evaluators/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/evaluators/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA8E3C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CA8V/E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLineNumbers, getLangLineNumbers, getLangFamily, looksLikeRealCredentialValue, isCommentLine, } from "./shared.js";
|
|
1
|
+
import { getLineNumbers, getLangLineNumbers, getLangFamily, looksLikeRealCredentialValue, isCommentLine, testCode, } from "./shared.js";
|
|
2
2
|
import * as LP from "../language-patterns.js";
|
|
3
3
|
function getHardcodedCredentialLinesWithoutPlaceholders(code) {
|
|
4
4
|
const lines = code.split("\n");
|
|
@@ -150,7 +150,7 @@ export function analyzeAuthentication(code, language) {
|
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
152
|
// No RBAC / authorization checks
|
|
153
|
-
const hasRoleCheck = /role|permission|isAdmin|isOwner|canAccess|authorize|requiredRole|hasPermission|checkPermission/gi
|
|
153
|
+
const hasRoleCheck = testCode(code, /role|permission|isAdmin|isOwner|canAccess|authorize|requiredRole|hasPermission|checkPermission/gi);
|
|
154
154
|
if (hasRoutes && !hasRoleCheck && code.split("\n").length > 40) {
|
|
155
155
|
findings.push({
|
|
156
156
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -167,9 +167,9 @@ export function analyzeAuthentication(code, language) {
|
|
|
167
167
|
// JWT without verification
|
|
168
168
|
// This is absence-based in single-file mode: verification middleware often
|
|
169
169
|
// lives in a separate file from the login/sign endpoint.
|
|
170
|
-
const hasJwt = /jwt|jsonwebtoken|jose/gi
|
|
171
|
-
const hasJwtVerify = /jwt\.verify|jwtVerify|verifyToken|jose\.jwtVerify/gi
|
|
172
|
-
const hasJwtSign = /jwt\.sign|jwtSign|signToken/gi
|
|
170
|
+
const hasJwt = testCode(code, /jwt|jsonwebtoken|jose/gi);
|
|
171
|
+
const hasJwtVerify = testCode(code, /jwt\.verify|jwtVerify|verifyToken|jose\.jwtVerify/gi);
|
|
172
|
+
const hasJwtSign = testCode(code, /jwt\.sign|jwtSign|signToken/gi);
|
|
173
173
|
if (hasJwt && hasJwtSign && !hasJwtVerify) {
|
|
174
174
|
findings.push({
|
|
175
175
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -200,8 +200,8 @@ export function analyzeAuthentication(code, language) {
|
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
// No session expiration / no token expiry
|
|
203
|
-
const hasSession = /session|express-session|cookie-session|SessionMiddleware/gi
|
|
204
|
-
const hasExpiry = /maxAge|expires|expiresIn|exp:|ttl|timeout.*session|cookie.*max/gi
|
|
203
|
+
const hasSession = testCode(code, /session|express-session|cookie-session|SessionMiddleware/gi);
|
|
204
|
+
const hasExpiry = testCode(code, /maxAge|expires|expiresIn|exp:|ttl|timeout.*session|cookie.*max/gi);
|
|
205
205
|
if (hasSession && !hasExpiry) {
|
|
206
206
|
findings.push({
|
|
207
207
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -216,7 +216,7 @@ export function analyzeAuthentication(code, language) {
|
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
// Weak password policy — no complexity enforcement
|
|
219
|
-
const hasUserRegistration = /register|signup|sign.?up|createUser|create.*user|new.*user/gi
|
|
219
|
+
const hasUserRegistration = testCode(code, /register|signup|sign.?up|createUser|create.*user|new.*user/gi);
|
|
220
220
|
const hasPasswordPolicy = /minLength|minimum.*length|password.*length|complexity|strongPassword|zxcvbn|password.*policy|password.*require/gi.test(code);
|
|
221
221
|
if (hasUserRegistration && !hasPasswordPolicy) {
|
|
222
222
|
findings.push({
|
|
@@ -232,8 +232,8 @@ export function analyzeAuthentication(code, language) {
|
|
|
232
232
|
});
|
|
233
233
|
}
|
|
234
234
|
// No account lockout after failed attempts
|
|
235
|
-
const hasLogin = /login|signin|sign.?in|authenticate|verifyPassword|checkPassword/gi
|
|
236
|
-
const hasLockout = /lockout|lock.*out|attempt|maxAttempt|failedAttempt|rateLimitLogin|brute.?force|account.*lock/gi
|
|
235
|
+
const hasLogin = testCode(code, /login|signin|sign.?in|authenticate|verifyPassword|checkPassword/gi);
|
|
236
|
+
const hasLockout = testCode(code, /lockout|lock.*out|attempt|maxAttempt|failedAttempt|rateLimitLogin|brute.?force|account.*lock/gi);
|
|
237
237
|
if (hasLogin && !hasLockout) {
|
|
238
238
|
findings.push({
|
|
239
239
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -250,7 +250,7 @@ export function analyzeAuthentication(code, language) {
|
|
|
250
250
|
// Cookie without Secure and HttpOnly flags
|
|
251
251
|
const cookiePattern = /(?:cookie|Cookie|set-cookie|setCookie|res\.cookie)\s*\(/gi;
|
|
252
252
|
const cookieLines = getLineNumbers(code, cookiePattern);
|
|
253
|
-
const hasSecureFlags = /secure\s*:\s*true|httpOnly\s*:\s*true|HttpOnly|Secure/g
|
|
253
|
+
const hasSecureFlags = testCode(code, /secure\s*:\s*true|httpOnly\s*:\s*true|HttpOnly|Secure/g);
|
|
254
254
|
if (cookieLines.length > 0 && !hasSecureFlags) {
|
|
255
255
|
findings.push({
|
|
256
256
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -265,8 +265,8 @@ export function analyzeAuthentication(code, language) {
|
|
|
265
265
|
});
|
|
266
266
|
}
|
|
267
267
|
// No CSRF protection
|
|
268
|
-
const hasFormPost = /app\.post\s*\(|method\s*=\s*["']POST/gi
|
|
269
|
-
const hasCsrf = /csrf|csurf|xsrf|_token|csrfToken|antiForgery|X-CSRF|X-XSRF/gi
|
|
268
|
+
const hasFormPost = testCode(code, /app\.post\s*\(|method\s*=\s*["']POST/gi);
|
|
269
|
+
const hasCsrf = testCode(code, /csrf|csurf|xsrf|_token|csrfToken|antiForgery|X-CSRF|X-XSRF/gi);
|
|
270
270
|
if (hasFormPost && !hasCsrf && hasSession) {
|
|
271
271
|
findings.push({
|
|
272
272
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -282,8 +282,8 @@ export function analyzeAuthentication(code, language) {
|
|
|
282
282
|
}
|
|
283
283
|
// Session fixation — no session regeneration after login
|
|
284
284
|
const hasLoginHandler = /(?:login|signin|sign.?in|authenticate)\s*(?:=|=>|\(|async)|(?:\.post|\.get|\.put)\s*\(\s*["'][^"']*(?:login|signin|sign.?in|auth)["']/gi.test(code);
|
|
285
|
-
const hasSessionUsage = /req\.session|session\[|session\./gi
|
|
286
|
-
const hasSessionRegen = /session\.regenerate|regenerateSession|session\.cycle|rotate.*session|new.*session|session\.create/gi
|
|
285
|
+
const hasSessionUsage = testCode(code, /req\.session|session\[|session\./gi);
|
|
286
|
+
const hasSessionRegen = testCode(code, /session\.regenerate|regenerateSession|session\.cycle|rotate.*session|new.*session|session\.create/gi);
|
|
287
287
|
if (hasLoginHandler && hasSessionUsage && !hasSessionRegen && code.split("\n").length > 10) {
|
|
288
288
|
findings.push({
|
|
289
289
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/evaluators/authentication.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/evaluators/authentication.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLineNumbers, getLangLineNumbers, getLangFamily } from "./shared.js";
|
|
1
|
+
import { getLineNumbers, getLangLineNumbers, getLangFamily, testCode } from "./shared.js";
|
|
2
2
|
import * as LP from "../language-patterns.js";
|
|
3
3
|
export function analyzeBackwardsCompatibility(code, language) {
|
|
4
4
|
const findings = [];
|
|
@@ -8,7 +8,7 @@ export function analyzeBackwardsCompatibility(code, language) {
|
|
|
8
8
|
// No API versioning (multi-language route detection)
|
|
9
9
|
const routeLines = getLangLineNumbers(code, language, LP.HTTP_ROUTE);
|
|
10
10
|
const hasApiRoutes = routeLines.length > 0 && /\/api\//i.test(code);
|
|
11
|
-
const hasVersioning = /\/api\/v\d|\/v\d\/|api-version|x-api-version|accept-version/gi
|
|
11
|
+
const hasVersioning = testCode(code, /\/api\/v\d|\/v\d\/|api-version|x-api-version|accept-version/gi);
|
|
12
12
|
if (hasApiRoutes && !hasVersioning) {
|
|
13
13
|
findings.push({
|
|
14
14
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -22,8 +22,8 @@ export function analyzeBackwardsCompatibility(code, language) {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
// Deprecated API indicators without deprecation headers
|
|
25
|
-
const hasDeprecated = /deprecated|@deprecated|obsolete|legacy/gi
|
|
26
|
-
const hasDeprecationHeader = /Deprecation|Sunset|X-Deprecated/gi
|
|
25
|
+
const hasDeprecated = testCode(code, /deprecated|@deprecated|obsolete|legacy/gi);
|
|
26
|
+
const hasDeprecationHeader = testCode(code, /Deprecation|Sunset|X-Deprecated/gi);
|
|
27
27
|
if (hasDeprecated && !hasDeprecationHeader) {
|
|
28
28
|
findings.push({
|
|
29
29
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
@@ -119,7 +119,7 @@ export function analyzeBackwardsCompatibility(code, language) {
|
|
|
119
119
|
// Enum/union type removals
|
|
120
120
|
const enumPattern = /enum\s+\w+\s*\{[^}]*\}/g;
|
|
121
121
|
const enumMatches = code.match(enumPattern) || [];
|
|
122
|
-
const hasDeprecatedEnumComment = /\/\/.*deprecated.*enum
|
|
122
|
+
const hasDeprecatedEnumComment = testCode(code, /\/\/.*deprecated.*enum|\/\*.*removed.*value/gi);
|
|
123
123
|
if (enumMatches.length > 0 && hasDeprecatedEnumComment) {
|
|
124
124
|
findings.push({
|
|
125
125
|
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|