@kernlang/review 3.1.5 → 3.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +17 -0
- package/dist/cache.d.ts +1 -1
- package/dist/cache.js +5 -3
- package/dist/cache.js.map +1 -1
- package/dist/call-graph.d.ts +63 -0
- package/dist/call-graph.js +380 -0
- package/dist/call-graph.js.map +1 -0
- package/dist/concept-rules/boundary-mutation.d.ts +1 -1
- package/dist/concept-rules/boundary-mutation.js.map +1 -1
- package/dist/concept-rules/ignored-error.d.ts +1 -1
- package/dist/concept-rules/ignored-error.js.map +1 -1
- package/dist/concept-rules/illegal-dependency.d.ts +1 -1
- package/dist/concept-rules/illegal-dependency.js.map +1 -1
- package/dist/concept-rules/index.js +1 -6
- package/dist/concept-rules/index.js.map +1 -1
- package/dist/concept-rules/unguarded-effect.d.ts +1 -1
- package/dist/concept-rules/unguarded-effect.js.map +1 -1
- package/dist/concept-rules/unrecovered-effect.d.ts +1 -1
- package/dist/concept-rules/unrecovered-effect.js +2 -1
- package/dist/concept-rules/unrecovered-effect.js.map +1 -1
- package/dist/confidence.js +12 -8
- package/dist/confidence.js.map +1 -1
- package/dist/differ.js +3 -7
- package/dist/differ.js.map +1 -1
- package/dist/external-tools.js +5 -6
- package/dist/external-tools.js.map +1 -1
- package/dist/file-context.d.ts +21 -0
- package/dist/file-context.js +234 -0
- package/dist/file-context.js.map +1 -0
- package/dist/file-role.js +14 -7
- package/dist/file-role.js.map +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/graph.js +24 -16
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +44 -35
- package/dist/index.js +221 -68
- package/dist/index.js.map +1 -1
- package/dist/inferrer.d.ts +8 -2
- package/dist/inferrer.js +80 -47
- package/dist/inferrer.js.map +1 -1
- package/dist/kern-lint.d.ts +3 -4
- package/dist/kern-lint.js +7 -5
- package/dist/kern-lint.js.map +1 -1
- package/dist/llm-bridge.d.ts +23 -7
- package/dist/llm-bridge.js +267 -31
- package/dist/llm-bridge.js.map +1 -1
- package/dist/llm-review.d.ts +16 -2
- package/dist/llm-review.js +240 -35
- package/dist/llm-review.js.map +1 -1
- package/dist/mappers/ts-concepts.d.ts +1 -1
- package/dist/mappers/ts-concepts.js +303 -32
- package/dist/mappers/ts-concepts.js.map +1 -1
- package/dist/norm-miner.d.ts +31 -0
- package/dist/norm-miner.js +119 -0
- package/dist/norm-miner.js.map +1 -0
- package/dist/obligations.d.ts +63 -0
- package/dist/obligations.js +158 -0
- package/dist/obligations.js.map +1 -0
- package/dist/quality-rules.d.ts +3 -3
- package/dist/quality-rules.js +4 -2
- package/dist/quality-rules.js.map +1 -1
- package/dist/reporter.d.ts +7 -2
- package/dist/reporter.js +82 -51
- package/dist/reporter.js.map +1 -1
- package/dist/rule-eval.d.ts +1 -2
- package/dist/rule-eval.js +5 -9
- package/dist/rule-eval.js.map +1 -1
- package/dist/rule-loader.js +16 -14
- package/dist/rule-loader.js.map +1 -1
- package/dist/rules/base.js +153 -69
- package/dist/rules/base.js.map +1 -1
- package/dist/rules/cli.d.ts +7 -0
- package/dist/rules/cli.js +99 -0
- package/dist/rules/cli.js.map +1 -0
- package/dist/rules/confidence.d.ts +1 -1
- package/dist/rules/confidence.js +5 -5
- package/dist/rules/confidence.js.map +1 -1
- package/dist/rules/dead-code.d.ts +10 -0
- package/dist/rules/dead-code.js +75 -0
- package/dist/rules/dead-code.js.map +1 -0
- package/dist/rules/dead-logic.js +35 -31
- package/dist/rules/dead-logic.js.map +1 -1
- package/dist/rules/express.d.ts +2 -1
- package/dist/rules/express.js +380 -126
- package/dist/rules/express.js.map +1 -1
- package/dist/rules/fastapi.d.ts +10 -0
- package/dist/rules/fastapi.js +183 -0
- package/dist/rules/fastapi.js.map +1 -0
- package/dist/rules/ground-layer.js +3 -3
- package/dist/rules/ground-layer.js.map +1 -1
- package/dist/rules/index.d.ts +5 -1
- package/dist/rules/index.js +602 -84
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/ink.d.ts +8 -0
- package/dist/rules/ink.js +88 -0
- package/dist/rules/ink.js.map +1 -0
- package/dist/rules/kern-source.js +202 -63
- package/dist/rules/kern-source.js.map +1 -1
- package/dist/rules/nextjs.js +88 -33
- package/dist/rules/nextjs.js.map +1 -1
- package/dist/rules/null-safety.js +52 -26
- package/dist/rules/null-safety.js.map +1 -1
- package/dist/rules/nuxt.js +24 -29
- package/dist/rules/nuxt.js.map +1 -1
- package/dist/rules/react.js +355 -69
- package/dist/rules/react.js.map +1 -1
- package/dist/rules/security-v2.js +71 -57
- package/dist/rules/security-v2.js.map +1 -1
- package/dist/rules/security-v3.js.map +1 -1
- package/dist/rules/security-v4.js +54 -27
- package/dist/rules/security-v4.js.map +1 -1
- package/dist/rules/security.js +35 -5
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/terminal.d.ts +8 -0
- package/dist/rules/terminal.js +139 -0
- package/dist/rules/terminal.js.map +1 -0
- package/dist/rules/vue.js +162 -107
- package/dist/rules/vue.js.map +1 -1
- package/dist/semantic-diff.d.ts +52 -0
- package/dist/semantic-diff.js +342 -0
- package/dist/semantic-diff.js.map +1 -0
- package/dist/spec-checker.js +11 -10
- package/dist/spec-checker.js.map +1 -1
- package/dist/suppression/apply-suppression.d.ts +2 -3
- package/dist/suppression/apply-suppression.js +3 -3
- package/dist/suppression/apply-suppression.js.map +1 -1
- package/dist/suppression/index.d.ts +2 -2
- package/dist/suppression/index.js +1 -1
- package/dist/suppression/index.js.map +1 -1
- package/dist/suppression/parse-directives.d.ts +1 -1
- package/dist/suppression/parse-directives.js +9 -4
- package/dist/suppression/parse-directives.js.map +1 -1
- package/dist/taint-ast.d.ts +20 -0
- package/dist/taint-ast.js +427 -0
- package/dist/taint-ast.js.map +1 -0
- package/dist/taint-crossfile.d.ts +28 -0
- package/dist/taint-crossfile.js +174 -0
- package/dist/taint-crossfile.js.map +1 -0
- package/dist/taint-findings.d.ts +17 -0
- package/dist/taint-findings.js +131 -0
- package/dist/taint-findings.js.map +1 -0
- package/dist/taint-regex.d.ts +61 -0
- package/dist/taint-regex.js +379 -0
- package/dist/taint-regex.js.map +1 -0
- package/dist/taint-types.d.ts +128 -0
- package/dist/taint-types.js +174 -0
- package/dist/taint-types.js.map +1 -0
- package/dist/taint.d.ts +13 -107
- package/dist/taint.js +16 -1067
- package/dist/taint.js.map +1 -1
- package/dist/template-detector.d.ts +2 -2
- package/dist/template-detector.js +11 -16
- package/dist/template-detector.js.map +1 -1
- package/dist/types.d.ts +35 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -89,7 +89,9 @@ function indirectPromptInjection(ctx) {
|
|
|
89
89
|
const sanitizeBefore = new RegExp(`(?:sanitize\\w*|escape\\w*|cleanForPrompt)\\s*\\(\\s*${ev}`).test(bodyText);
|
|
90
90
|
if (sanitizeWraps || sanitizeBefore)
|
|
91
91
|
continue;
|
|
92
|
-
findings.push(finding('indirect-prompt-injection', 'warning', 'bug', `DB result '${varName}' from ${callText.substring(0, 40)} used in LLM prompt without sanitization — indirect injection risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
92
|
+
findings.push(finding('indirect-prompt-injection', 'warning', 'bug', `DB result '${varName}' from ${callText.substring(0, 40)} used in LLM prompt without sanitization — indirect injection risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
93
|
+
suggestion: 'Sanitize DB-sourced content before embedding in LLM prompts — stored data may contain injection payloads',
|
|
94
|
+
}));
|
|
93
95
|
}
|
|
94
96
|
return findings;
|
|
95
97
|
}
|
|
@@ -136,12 +138,17 @@ function llmOutputExecution(ctx) {
|
|
|
136
138
|
// Check call expressions that are exec sinks
|
|
137
139
|
for (const call of ctx.sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression)) {
|
|
138
140
|
const calleeText = call.getExpression().getText();
|
|
139
|
-
if (!EXEC_SINKS.test(calleeText
|
|
141
|
+
if (!EXEC_SINKS.test(`${calleeText}(`))
|
|
140
142
|
continue;
|
|
141
|
-
const argsText = call
|
|
143
|
+
const argsText = call
|
|
144
|
+
.getArguments()
|
|
145
|
+
.map((a) => a.getText())
|
|
146
|
+
.join(' ');
|
|
142
147
|
for (const v of llmVars) {
|
|
143
148
|
if (new RegExp(`\\b${v}\\b`).test(argsText)) {
|
|
144
|
-
findings.push(finding('llm-output-execution', 'error', 'bug', `LLM output '${v}' passed to ${calleeText}() — arbitrary code execution risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
149
|
+
findings.push(finding('llm-output-execution', 'error', 'bug', `LLM output '${v}' passed to ${calleeText}() — arbitrary code execution risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
150
|
+
suggestion: 'Never execute LLM output directly. Validate against an allowlist or use a sandboxed interpreter',
|
|
151
|
+
}));
|
|
145
152
|
break;
|
|
146
153
|
}
|
|
147
154
|
}
|
|
@@ -150,7 +157,10 @@ function llmOutputExecution(ctx) {
|
|
|
150
157
|
for (const newExpr of ctx.sourceFile.getDescendantsOfKind(SyntaxKind.NewExpression)) {
|
|
151
158
|
if (newExpr.getExpression().getText() !== 'Function')
|
|
152
159
|
continue;
|
|
153
|
-
const argsText = newExpr
|
|
160
|
+
const argsText = newExpr
|
|
161
|
+
.getArguments()
|
|
162
|
+
.map((a) => a.getText())
|
|
163
|
+
.join(' ');
|
|
154
164
|
for (const v of llmVars) {
|
|
155
165
|
if (new RegExp(`\\b${v}\\b`).test(argsText)) {
|
|
156
166
|
findings.push(finding('llm-output-execution', 'error', 'bug', `LLM output '${v}' passed to new Function() — arbitrary code execution risk`, ctx.filePath, newExpr.getStartLineNumber(), { suggestion: 'Never execute LLM output. Use a sandboxed interpreter or validate against an allowlist' }));
|
|
@@ -189,7 +199,7 @@ function systemPromptLeakage(ctx) {
|
|
|
189
199
|
const args = call.getArguments();
|
|
190
200
|
if (args.length === 0)
|
|
191
201
|
continue;
|
|
192
|
-
const argText = args.map(a => a.getText()).join(' ');
|
|
202
|
+
const argText = args.map((a) => a.getText()).join(' ');
|
|
193
203
|
if (!SYSTEM_PROMPT_VARS.test(argText))
|
|
194
204
|
continue;
|
|
195
205
|
if (isRes) {
|
|
@@ -290,7 +300,9 @@ function ragPoisoning(ctx) {
|
|
|
290
300
|
}
|
|
291
301
|
if (sanitized)
|
|
292
302
|
continue;
|
|
293
|
-
findings.push(finding('rag-poisoning', 'warning', 'bug', `Retrieval result '${varName}' from ${callText.substring(0, 40)} embedded in prompt without sanitization — RAG poisoning risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
303
|
+
findings.push(finding('rag-poisoning', 'warning', 'bug', `Retrieval result '${varName}' from ${callText.substring(0, 40)} embedded in prompt without sanitization — RAG poisoning risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
304
|
+
suggestion: 'Sanitize retrieved content before embedding in prompts — indexed documents may contain injection payloads',
|
|
305
|
+
}));
|
|
294
306
|
}
|
|
295
307
|
return findings;
|
|
296
308
|
}
|
|
@@ -322,8 +334,7 @@ function toolCallingManipulation(ctx) {
|
|
|
322
334
|
continue;
|
|
323
335
|
const valueText = pa.getInitializer()?.getText() || '';
|
|
324
336
|
// Check direct user input OR aliased user input (const tool = req.body.tool → tool)
|
|
325
|
-
const isUserInput = USER_INPUT_PATTERNS.test(valueText) ||
|
|
326
|
-
/\b(userInput|input|query|message)\b/.test(valueText);
|
|
337
|
+
const isUserInput = USER_INPUT_PATTERNS.test(valueText) || /\b(userInput|input|query|message)\b/.test(valueText);
|
|
327
338
|
// Also check if value is a variable that was assigned from user input
|
|
328
339
|
let isAliasedInput = false;
|
|
329
340
|
if (!isUserInput) {
|
|
@@ -360,8 +371,7 @@ function toolCallingManipulation(ctx) {
|
|
|
360
371
|
continue;
|
|
361
372
|
const forBody = forOf.getStatement().getText();
|
|
362
373
|
// Is there an execute/call pattern using the loop variable's .name?
|
|
363
|
-
if (/\b(execute|call|invoke|run|dispatch)\w*\s?\(/i.test(forBody) &&
|
|
364
|
-
/\.name\b|\.function\b/.test(forBody)) {
|
|
374
|
+
if (/\b(execute|call|invoke|run|dispatch)\w*\s?\(/i.test(forBody) && /\.name\b|\.function\b/.test(forBody)) {
|
|
365
375
|
// Check if there's an allowlist/validation on the tool NAME before execution
|
|
366
376
|
if (!/allowlist\w*\.has\s?\(\s?\w+\.name|whitelist\w*\.has\s?\(\s?\w+\.name|allowed\w*\.includes\s?\(\s?\w+\.name|validTools\w*\.has\s?\(\s?\w+\.name/.test(forBody)) {
|
|
367
377
|
findings.push(finding('tool-calling-manipulation', 'error', 'bug', `LLM-returned tool calls executed without allowlist validation — attacker can invoke arbitrary tools via prompt injection`, ctx.filePath, forOf.getStartLineNumber(), { suggestion: 'Validate tool names against a fixed allowlist before executing LLM-returned tool_calls' }));
|
|
@@ -373,9 +383,11 @@ function toolCallingManipulation(ctx) {
|
|
|
373
383
|
const calleeText = call.getExpression().getText();
|
|
374
384
|
if (!/tool_calls\.forEach|toolCalls\.forEach|function_calls\.forEach/.test(calleeText))
|
|
375
385
|
continue;
|
|
376
|
-
const argsText = call
|
|
377
|
-
|
|
378
|
-
|
|
386
|
+
const argsText = call
|
|
387
|
+
.getArguments()
|
|
388
|
+
.map((a) => a.getText())
|
|
389
|
+
.join(' ');
|
|
390
|
+
if (/\b(execute|call|invoke|run|dispatch)\w*\s?\(/i.test(argsText) && /\.name\b|\.function\b/.test(argsText)) {
|
|
379
391
|
if (!/allowlist\w*\.has\s?\(\s?\w+\.name|whitelist\w*\.has\s?\(\s?\w+\.name|allowed\w*\.includes\s?\(\s?\w+\.name|validTools\w*\.has\s?\(\s?\w+\.name/.test(argsText)) {
|
|
380
392
|
findings.push(finding('tool-calling-manipulation', 'error', 'bug', `LLM-returned tool calls executed without allowlist validation — attacker can invoke arbitrary tools via prompt injection`, ctx.filePath, call.getStartLineNumber(), { suggestion: 'Validate tool names against a fixed allowlist before executing LLM-returned tool_calls' }));
|
|
381
393
|
}
|
|
@@ -400,7 +412,7 @@ function encodingBypass(ctx) {
|
|
|
400
412
|
continue;
|
|
401
413
|
// Find what variable it's assigned to
|
|
402
414
|
let varName = '';
|
|
403
|
-
|
|
415
|
+
const parent = call.getParent();
|
|
404
416
|
if (parent?.getKind() === SyntaxKind.VariableDeclaration) {
|
|
405
417
|
varName = parent.getName();
|
|
406
418
|
}
|
|
@@ -420,9 +432,14 @@ function encodingBypass(ctx) {
|
|
|
420
432
|
// Re-sanitized after decode?
|
|
421
433
|
if (new RegExp(`sanitize\\w*\\s*\\(\\s*${varName}|escape\\w*\\s*\\(\\s*${varName}`).test(bodyText))
|
|
422
434
|
continue;
|
|
423
|
-
const decodeFn = callText.includes('atob')
|
|
424
|
-
|
|
425
|
-
|
|
435
|
+
const decodeFn = callText.includes('atob')
|
|
436
|
+
? 'atob()'
|
|
437
|
+
: callText.includes('Buffer.from')
|
|
438
|
+
? 'Buffer.from()'
|
|
439
|
+
: 'decodeURIComponent()';
|
|
440
|
+
findings.push(finding('encoding-bypass', 'warning', 'bug', `Decoded content '${varName}' from ${decodeFn} used in prompt without re-sanitization — encoding bypass risk`, ctx.filePath, call.getStartLineNumber(), {
|
|
441
|
+
suggestion: 'Sanitize decoded content before embedding in prompts — base64/hex encoding can bypass input filters',
|
|
442
|
+
}));
|
|
426
443
|
}
|
|
427
444
|
return findings;
|
|
428
445
|
}
|
|
@@ -461,7 +478,9 @@ function delimiterInjection(ctx) {
|
|
|
461
478
|
const isUserControlled = USER_INPUT_PATTERNS.test(exprText) ||
|
|
462
479
|
/^(question|userInput|userMessage|message|input|query|caption|instruction)\b/.test(exprText);
|
|
463
480
|
if (isUserControlled) {
|
|
464
|
-
findings.push(finding('delimiter-injection', 'warning', 'bug', `User input '${exprText.substring(0, 50)}' in delimiter-structured prompt without stripping — delimiter injection risk`, ctx.filePath, template.getStartLineNumber(), {
|
|
481
|
+
findings.push(finding('delimiter-injection', 'warning', 'bug', `User input '${exprText.substring(0, 50)}' in delimiter-structured prompt without stripping — delimiter injection risk`, ctx.filePath, template.getStartLineNumber(), {
|
|
482
|
+
suggestion: 'Strip or escape delimiters (```, ---, ###, XML tags) from user input before embedding in structured prompts',
|
|
483
|
+
}));
|
|
465
484
|
break;
|
|
466
485
|
}
|
|
467
486
|
}
|
|
@@ -605,20 +624,24 @@ function jsonOutputManipulation(ctx) {
|
|
|
605
624
|
continue;
|
|
606
625
|
// Find what variable the parsed result is assigned to
|
|
607
626
|
let parsedVar = '';
|
|
608
|
-
|
|
627
|
+
const parent = call.getParent();
|
|
609
628
|
if (parent?.getKind() === SyntaxKind.VariableDeclaration) {
|
|
610
629
|
parsedVar = parent.getName();
|
|
611
630
|
}
|
|
612
|
-
// Check if schema validation follows
|
|
631
|
+
// Check if schema validation follows THIS specific JSON.parse call
|
|
613
632
|
const fnBody = call.getFirstAncestorByKind(SyntaxKind.Block);
|
|
614
633
|
if (!fnBody)
|
|
615
634
|
continue;
|
|
616
|
-
|
|
617
|
-
const
|
|
635
|
+
// Use the call's position relative to the block, not indexOf (which finds the first occurrence)
|
|
636
|
+
const callOffset = call.getStart() - fnBody.getStart();
|
|
637
|
+
const bodyAfterParse = fnBody.getText().slice(callOffset);
|
|
618
638
|
// Remove the JSON.parse call itself to avoid false positive on .parse()
|
|
619
639
|
const bodyAfterParseCall = bodyAfterParse.replace(/JSON\.parse\s*\([^)]*\)/, '');
|
|
620
|
-
|
|
621
|
-
|
|
640
|
+
// Only suppress if parsedVar is known AND validated — empty parsedVar means we can't
|
|
641
|
+
// verify which variable is being validated, so don't assume validation
|
|
642
|
+
const hasValidation = parsedVar !== '' &&
|
|
643
|
+
VALIDATION_CALL.test(bodyAfterParseCall) &&
|
|
644
|
+
new RegExp(`\\b${parsedVar}\\b`).test(bodyAfterParseCall);
|
|
622
645
|
if (hasValidation)
|
|
623
646
|
continue;
|
|
624
647
|
findings.push(finding('json-output-manipulation', 'warning', 'bug', `JSON.parse on LLM output '${matchedVar}' without schema validation — output may contain injected keys`, ctx.filePath, call.getStartLineNumber(), { suggestion: 'Validate parsed LLM output with zod/joi/.parse() before using in application logic' }));
|
|
@@ -648,7 +671,9 @@ function missingOutputValidation(ctx) {
|
|
|
648
671
|
return findings;
|
|
649
672
|
for (const [varName, declLine] of llmVars) {
|
|
650
673
|
// Check if this variable is validated before use
|
|
651
|
-
const fnBody = ctx.sourceFile
|
|
674
|
+
const fnBody = ctx.sourceFile
|
|
675
|
+
.getDescendantsOfKind(SyntaxKind.Block)
|
|
676
|
+
.find((b) => b.getStartLineNumber() <= declLine && b.getEndLineNumber() >= declLine);
|
|
652
677
|
if (!fnBody)
|
|
653
678
|
continue;
|
|
654
679
|
const bodyText = fnBody.getText();
|
|
@@ -668,7 +693,9 @@ function missingOutputValidation(ctx) {
|
|
|
668
693
|
continue;
|
|
669
694
|
if (!usedInCondition && !usedInReturn && !usedAsArg)
|
|
670
695
|
continue;
|
|
671
|
-
findings.push(finding('missing-output-validation', 'warning', 'bug', `LLM response '${varName}' used in application logic without validation`, ctx.filePath, declLine, {
|
|
696
|
+
findings.push(finding('missing-output-validation', 'warning', 'bug', `LLM response '${varName}' used in application logic without validation`, ctx.filePath, declLine, {
|
|
697
|
+
suggestion: 'Validate LLM output with a schema before using in conditionals, returns, or function arguments',
|
|
698
|
+
}));
|
|
672
699
|
}
|
|
673
700
|
return findings;
|
|
674
701
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-v4.js","sourceRoot":"","sources":["../../src/rules/security-v4.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-v4.js","sourceRoot":"","sources":["../../src/rules/security-v4.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/security.js
CHANGED
|
@@ -83,13 +83,43 @@ function hardcodedSecret(ctx) {
|
|
|
83
83
|
// Skip if it's clearly an env reference placeholder
|
|
84
84
|
if (value.startsWith('process.env') || value === '' || value === 'TODO' || value === 'CHANGE_ME')
|
|
85
85
|
continue;
|
|
86
|
-
|
|
86
|
+
const envVar = varName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
|
|
87
|
+
findings.push(finding('hardcoded-secret', 'error', 'bug', `Hardcoded secret in '${varName}' — use environment variables`, ctx.filePath, stmt.getStartLineNumber(), {
|
|
88
|
+
suggestion: `Replace with process.env.${envVar} or a secret manager`,
|
|
89
|
+
autofix: {
|
|
90
|
+
type: 'replace',
|
|
91
|
+
span: {
|
|
92
|
+
file: ctx.filePath,
|
|
93
|
+
startLine: init.getStartLineNumber(),
|
|
94
|
+
startCol: init.getStart() - ctx.sourceFile.getFullText().lastIndexOf('\n', init.getStart()),
|
|
95
|
+
endLine: init.getEndLineNumber(),
|
|
96
|
+
endCol: init.getEnd() - ctx.sourceFile.getFullText().lastIndexOf('\n', init.getEnd() - 1),
|
|
97
|
+
},
|
|
98
|
+
replacement: `process.env.${envVar}`,
|
|
99
|
+
description: `Replace hardcoded secret with process.env.${envVar}`,
|
|
100
|
+
},
|
|
101
|
+
}));
|
|
87
102
|
continue;
|
|
88
103
|
}
|
|
89
104
|
// Check if value matches known secret patterns
|
|
90
105
|
for (const { pattern, label } of SECRET_PATTERNS) {
|
|
91
106
|
if (pattern.test(value)) {
|
|
92
|
-
|
|
107
|
+
const envKey = varName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
|
|
108
|
+
findings.push(finding('hardcoded-secret', 'error', 'bug', `Hardcoded ${label} detected in '${varName}' — use environment variables`, ctx.filePath, stmt.getStartLineNumber(), {
|
|
109
|
+
suggestion: `Move to .env file and use process.env.${envKey}`,
|
|
110
|
+
autofix: {
|
|
111
|
+
type: 'replace',
|
|
112
|
+
span: {
|
|
113
|
+
file: ctx.filePath,
|
|
114
|
+
startLine: init.getStartLineNumber(),
|
|
115
|
+
startCol: init.getStart() - ctx.sourceFile.getFullText().lastIndexOf('\n', init.getStart()),
|
|
116
|
+
endLine: init.getEndLineNumber(),
|
|
117
|
+
endCol: init.getEnd() - ctx.sourceFile.getFullText().lastIndexOf('\n', init.getEnd() - 1),
|
|
118
|
+
},
|
|
119
|
+
replacement: `process.env.${envKey}`,
|
|
120
|
+
description: `Replace hardcoded ${label} with process.env.${envKey}`,
|
|
121
|
+
},
|
|
122
|
+
}));
|
|
93
123
|
break;
|
|
94
124
|
}
|
|
95
125
|
}
|
|
@@ -207,11 +237,11 @@ function corsWildcard(ctx) {
|
|
|
207
237
|
const init = pa.getInitializer();
|
|
208
238
|
if (init && init.getKind() === SyntaxKind.StringLiteral) {
|
|
209
239
|
if (init.getLiteralValue() === '*') {
|
|
210
|
-
findings.push(finding('cors-wildcard', 'warning', 'bug', "cors origin: '*' allows any domain — restrict in production", ctx.filePath, call.getStartLineNumber(), { suggestion:
|
|
240
|
+
findings.push(finding('cors-wildcard', 'warning', 'bug', "cors origin: '*' allows any domain — restrict in production", ctx.filePath, call.getStartLineNumber(), { suggestion: 'Set origin to specific domains or a validation function' }));
|
|
211
241
|
}
|
|
212
242
|
}
|
|
213
243
|
if (init && init.getKind() === SyntaxKind.TrueKeyword) {
|
|
214
|
-
findings.push(finding('cors-wildcard', 'warning', 'bug', 'cors origin: true reflects any origin — restrict in production', ctx.filePath, call.getStartLineNumber(), { suggestion:
|
|
244
|
+
findings.push(finding('cors-wildcard', 'warning', 'bug', 'cors origin: true reflects any origin — restrict in production', ctx.filePath, call.getStartLineNumber(), { suggestion: 'Set origin to specific domains or a validation function' }));
|
|
215
245
|
}
|
|
216
246
|
}
|
|
217
247
|
}
|
|
@@ -245,7 +275,7 @@ function helmetMissing(ctx) {
|
|
|
245
275
|
}
|
|
246
276
|
}
|
|
247
277
|
if (!hasHelmet) {
|
|
248
|
-
findings.push(finding('helmet-missing', 'warning', 'bug', 'Express app without helmet — missing security headers (CSP, HSTS, X-Frame-Options)', ctx.filePath, appLine, { suggestion:
|
|
278
|
+
findings.push(finding('helmet-missing', 'warning', 'bug', 'Express app without helmet — missing security headers (CSP, HSTS, X-Frame-Options)', ctx.filePath, appLine, { suggestion: 'npm install helmet && app.use(helmet())' }));
|
|
249
279
|
}
|
|
250
280
|
return findings;
|
|
251
281
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/rules/security.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/rules/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal review rules — active when target = terminal.
|
|
3
|
+
*
|
|
4
|
+
* Focused on interactive ANSI / readline terminal apps.
|
|
5
|
+
* Codex base rules + Claude extras (signal-handler, cursor-restore, unthrottled-render).
|
|
6
|
+
*/
|
|
7
|
+
import type { ReviewRule } from '../types.js';
|
|
8
|
+
export declare const terminalRules: ReviewRule[];
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal review rules — active when target = terminal.
|
|
3
|
+
*
|
|
4
|
+
* Focused on interactive ANSI / readline terminal apps.
|
|
5
|
+
* Codex base rules + Claude extras (signal-handler, cursor-restore, unthrottled-render).
|
|
6
|
+
*/
|
|
7
|
+
import { finding } from './utils.js';
|
|
8
|
+
function lineForIndex(text, index) {
|
|
9
|
+
return text.slice(0, index).split('\n').length;
|
|
10
|
+
}
|
|
11
|
+
function matchLine(text, pattern) {
|
|
12
|
+
const match = pattern.exec(text);
|
|
13
|
+
return match ? lineForIndex(text, match.index) : null;
|
|
14
|
+
}
|
|
15
|
+
// ── Rule: terminal-missing-tty-guard (Codex) ────────────────────────────
|
|
16
|
+
function missingTtyGuard(ctx) {
|
|
17
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
18
|
+
const interactivePattern = /\b(?:readline\.)?createInterface\s*\(|\b(?:process\.)?stdin\.setRawMode\s*\(\s*true|\b(?:process\.)?stdout\.(?:write|clearLine|cursorTo|clearScreenDown)\s*\(|\?1049h|\x1b\[|\u001b\[/;
|
|
19
|
+
if (!interactivePattern.test(fullText))
|
|
20
|
+
return [];
|
|
21
|
+
if (/\b(?:process\.)?(?:stdout|stdin)\.isTTY\b|\btty\.isatty\s*\(/.test(fullText))
|
|
22
|
+
return [];
|
|
23
|
+
const line = matchLine(fullText, interactivePattern) ?? 1;
|
|
24
|
+
return [
|
|
25
|
+
finding('terminal-missing-tty-guard', 'warning', 'bug', 'Interactive terminal code runs without a TTY guard — pipes and non-interactive shells will render incorrectly', ctx.filePath, line, 1, {
|
|
26
|
+
suggestion: 'Guard interactive paths with process.stdout.isTTY / process.stdin.isTTY before enabling ANSI UI features',
|
|
27
|
+
}),
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
// ── Rule: terminal-raw-mode-no-restore (Codex) ──────────────────────────
|
|
31
|
+
function rawModeNoRestore(ctx) {
|
|
32
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
33
|
+
const enable = /\.setRawMode\s*\(\s*true\s*\)/g;
|
|
34
|
+
if (!enable.test(fullText))
|
|
35
|
+
return [];
|
|
36
|
+
if (/\.setRawMode\s*\(\s*false\s*\)/.test(fullText))
|
|
37
|
+
return [];
|
|
38
|
+
enable.lastIndex = 0;
|
|
39
|
+
const match = enable.exec(fullText);
|
|
40
|
+
const line = match ? lineForIndex(fullText, match.index) : 1;
|
|
41
|
+
return [
|
|
42
|
+
finding('terminal-raw-mode-no-restore', 'error', 'bug', 'stdin raw mode is enabled without restoring it — the shell can be left in a broken state after exit', ctx.filePath, line, 1, { suggestion: 'Restore raw mode in cleanup handlers with process.stdin.setRawMode(false)' }),
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
// ── Rule: terminal-readline-no-close (Codex) ────────────────────────────
|
|
46
|
+
function readlineNoClose(ctx) {
|
|
47
|
+
const findings = [];
|
|
48
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
49
|
+
const decl = /\b(?:const|let|var)\s+(\w+)\s*=\s*(?:readline\.)?createInterface\s*\(/g;
|
|
50
|
+
let match;
|
|
51
|
+
while ((match = decl.exec(fullText)) !== null) {
|
|
52
|
+
const name = match[1];
|
|
53
|
+
const closePattern = new RegExp(`\\b${name}\\.close\\s*\\(`);
|
|
54
|
+
if (closePattern.test(fullText))
|
|
55
|
+
continue;
|
|
56
|
+
findings.push(finding('terminal-readline-no-close', 'warning', 'bug', `Readline interface '${name}' is never closed — stdin can remain open and keep the process hanging`, ctx.filePath, lineForIndex(fullText, match.index), 1, { suggestion: `Call ${name}.close() in completion and shutdown paths` }));
|
|
57
|
+
}
|
|
58
|
+
return findings;
|
|
59
|
+
}
|
|
60
|
+
// ── Rule: terminal-alt-screen-no-restore (Codex) ────────────────────────
|
|
61
|
+
function altScreenNoRestore(ctx) {
|
|
62
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
63
|
+
const enter = /\?1049h|\?47h/g;
|
|
64
|
+
if (!enter.test(fullText))
|
|
65
|
+
return [];
|
|
66
|
+
if (/\?1049l|\?47l/.test(fullText))
|
|
67
|
+
return [];
|
|
68
|
+
enter.lastIndex = 0;
|
|
69
|
+
const match = enter.exec(fullText);
|
|
70
|
+
const line = match ? lineForIndex(fullText, match.index) : 1;
|
|
71
|
+
return [
|
|
72
|
+
finding('terminal-alt-screen-no-restore', 'warning', 'bug', 'Terminal app enters the alternate screen without restoring it on exit — users can be left in a blank session', ctx.filePath, line, 1, { suggestion: 'Emit the matching ?1049l / ?47l escape sequence during shutdown and signal cleanup' }),
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
// ── Rule: terminal-missing-signal-handler (Claude) ──────────────────────
|
|
76
|
+
function missingSignalHandler(ctx) {
|
|
77
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
78
|
+
// Only check files that do terminal-specific work
|
|
79
|
+
const isTerminal = /\b(setRawMode|cursorTo|clearLine|moveCursor|createInterface|blessed|inquirer|ora|chalk\.)\b/.test(fullText);
|
|
80
|
+
if (!isTerminal)
|
|
81
|
+
return [];
|
|
82
|
+
const hasSigint = /process\.on\s*\(\s*['"`]SIGINT['"`]/.test(fullText);
|
|
83
|
+
const hasSigterm = /process\.on\s*\(\s*['"`]SIGTERM['"`]/.test(fullText);
|
|
84
|
+
if (!hasSigint && !hasSigterm) {
|
|
85
|
+
const termMatch = fullText.match(/\b(setRawMode|cursorTo|clearLine|moveCursor|createInterface)\b/);
|
|
86
|
+
const line = termMatch ? lineForIndex(fullText, termMatch.index) : 1;
|
|
87
|
+
return [
|
|
88
|
+
finding('terminal-missing-signal-handler', 'warning', 'pattern', 'Terminal app has no SIGINT/SIGTERM handler — cleanup code may not run on Ctrl+C', ctx.filePath, line, 1, { suggestion: 'Add process.on("SIGINT", () => { cleanup(); process.exit(130); })' }),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
// ── Rule: terminal-cursor-not-restored (Claude) ─────────────────────────
|
|
94
|
+
function cursorNotRestored(ctx) {
|
|
95
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
96
|
+
const hidesCursor = /\\(?:x1[Bb]|u001[Bb]|e|033)\[\?25l/.test(fullText) ||
|
|
97
|
+
fullText.includes('cursor(false)') ||
|
|
98
|
+
fullText.includes('hideCursor') ||
|
|
99
|
+
fullText.includes('cursor.hide');
|
|
100
|
+
if (!hidesCursor)
|
|
101
|
+
return [];
|
|
102
|
+
const restoresCursor = /\\(?:x1[Bb]|u001[Bb]|e|033)\[\?25h/.test(fullText) ||
|
|
103
|
+
fullText.includes('cursor(true)') ||
|
|
104
|
+
fullText.includes('showCursor') ||
|
|
105
|
+
fullText.includes('cursor.show');
|
|
106
|
+
if (!restoresCursor) {
|
|
107
|
+
const match = fullText.match(/(?:hideCursor|cursor\.hide|cursor\(false\)|\?\s*25\s*l)/);
|
|
108
|
+
const line = match ? lineForIndex(fullText, match.index) : 1;
|
|
109
|
+
return [
|
|
110
|
+
finding('terminal-cursor-not-restored', 'warning', 'bug', 'Cursor hidden without restore — cursor will stay invisible after exit', ctx.filePath, line, 1, { suggestion: 'Add process.on("exit", () => process.stdout.write("\\x1B[?25h"))' }),
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
// ── Rule: terminal-unthrottled-render (Claude) ──────────────────────────
|
|
116
|
+
function unthrottledRender(ctx) {
|
|
117
|
+
const findings = [];
|
|
118
|
+
const fullText = ctx.sourceFile.getFullText();
|
|
119
|
+
const intervalRegex = /setInterval\s*\([^,]+,\s*(\d+)\s*\)/g;
|
|
120
|
+
let match;
|
|
121
|
+
while ((match = intervalRegex.exec(fullText)) !== null) {
|
|
122
|
+
const ms = parseInt(match[1], 10);
|
|
123
|
+
if (ms < 16) {
|
|
124
|
+
const line = lineForIndex(fullText, match.index);
|
|
125
|
+
findings.push(finding('terminal-unthrottled-render', 'warning', 'pattern', `setInterval at ${ms}ms (>${Math.round(1000 / ms)}fps) — excessive terminal redraws cause flicker`, ctx.filePath, line, 1, { suggestion: 'Use ≥16ms (60fps) for smooth terminal rendering without excess CPU' }));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return findings;
|
|
129
|
+
}
|
|
130
|
+
export const terminalRules = [
|
|
131
|
+
missingTtyGuard,
|
|
132
|
+
rawModeNoRestore,
|
|
133
|
+
readlineNoClose,
|
|
134
|
+
altScreenNoRestore,
|
|
135
|
+
missingSignalHandler,
|
|
136
|
+
cursorNotRestored,
|
|
137
|
+
unthrottledRender,
|
|
138
|
+
];
|
|
139
|
+
//# sourceMappingURL=terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/rules/terminal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,2EAA2E;AAE3E,SAAS,eAAe,CAAC,GAAgB;IACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,kBAAkB,GACtB,uLAAuL,CAAC;IAC1L,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,IAAI,8DAA8D,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7F,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO;QACL,OAAO,CACL,4BAA4B,EAC5B,SAAS,EACT,KAAK,EACL,+GAA+G,EAC/G,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD;YACE,UAAU,EACR,0GAA0G;SAC7G,CACF;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E,SAAS,gBAAgB,CAAC,GAAgB;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,gCAAgC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,CACL,8BAA8B,EAC9B,OAAO,EACP,KAAK,EACL,qGAAqG,EACrG,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD,EAAE,UAAU,EAAE,2EAA2E,EAAE,CAC5F;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E,SAAS,eAAe,CAAC,GAAgB;IACvC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,wEAAwE,CAAC;IACtF,IAAI,KAA6B,CAAC;IAElC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE1C,QAAQ,CAAC,IAAI,CACX,OAAO,CACL,4BAA4B,EAC5B,SAAS,EACT,KAAK,EACL,uBAAuB,IAAI,wEAAwE,EACnG,GAAG,CAAC,QAAQ,EACZ,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EACnC,CAAC,EACD,EAAE,UAAU,EAAE,QAAQ,IAAI,2CAA2C,EAAE,CACxE,CACF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2EAA2E;AAE3E,SAAS,kBAAkB,CAAC,GAAgB;IAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,CACL,gCAAgC,EAChC,SAAS,EACT,KAAK,EACL,8GAA8G,EAC9G,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD,EAAE,UAAU,EAAE,oFAAoF,EAAE,CACrG;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E,SAAS,oBAAoB,CAAC,GAAgB;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAE9C,kDAAkD;IAClD,MAAM,UAAU,GAAG,6FAA6F,CAAC,IAAI,CACnH,QAAQ,CACT,CAAC;IACF,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,SAAS,GAAG,qCAAqC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO;YACL,OAAO,CACL,iCAAiC,EACjC,SAAS,EACT,SAAS,EACT,iFAAiF,EACjF,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD,EAAE,UAAU,EAAE,mEAAmE,EAAE,CACpF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2EAA2E;AAE3E,SAAS,iBAAiB,CAAC,GAAgB;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAE9C,MAAM,WAAW,GACf,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACnC,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,cAAc,GAClB,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,CACL,8BAA8B,EAC9B,SAAS,EACT,KAAK,EACL,uEAAuE,EACvE,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD,EAAE,UAAU,EAAE,kEAAkE,EAAE,CACnF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2EAA2E;AAE3E,SAAS,iBAAiB,CAAC,GAAgB;IACzC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,sCAAsC,CAAC;IAC7D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,QAAQ,CAAC,IAAI,CACX,OAAO,CACL,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACT,kBAAkB,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,iDAAiD,EAClG,GAAG,CAAC,QAAQ,EACZ,IAAI,EACJ,CAAC,EACD,EAAE,UAAU,EAAE,oEAAoE,EAAE,CACrF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC"}
|