codeslick-cli 1.0.4 → 1.1.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 +31 -13
- package/bin/codeslick.cjs +19 -1
- package/dist/packages/cli/src/commands/scan.d.ts +3 -0
- package/dist/packages/cli/src/commands/scan.d.ts.map +1 -1
- package/dist/packages/cli/src/commands/scan.js +103 -24
- package/dist/packages/cli/src/commands/scan.js.map +1 -1
- package/dist/packages/cli/src/reporters/cli-reporter.d.ts +28 -2
- package/dist/packages/cli/src/reporters/cli-reporter.d.ts.map +1 -1
- package/dist/packages/cli/src/reporters/cli-reporter.js +393 -4
- package/dist/packages/cli/src/reporters/cli-reporter.js.map +1 -1
- package/dist/packages/cli/src/scanner/local-scanner.d.ts +5 -1
- package/dist/packages/cli/src/scanner/local-scanner.d.ts.map +1 -1
- package/dist/packages/cli/src/scanner/local-scanner.js +110 -16
- package/dist/packages/cli/src/scanner/local-scanner.js.map +1 -1
- package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.d.ts.map +1 -1
- package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.js +24 -16
- package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.js.map +1 -1
- package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.d.ts.map +1 -1
- package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.js +4 -12
- package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.js.map +1 -1
- package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.d.ts.map +1 -1
- package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.js +22 -9
- package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.js.map +1 -1
- package/dist/src/lib/analyzers/javascript-analyzer.d.ts.map +1 -1
- package/dist/src/lib/analyzers/javascript-analyzer.js +28 -13
- package/dist/src/lib/analyzers/javascript-analyzer.js.map +1 -1
- package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.d.ts.map +1 -1
- package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.js +44 -18
- package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.js.map +1 -1
- package/dist/src/lib/analyzers/python-analyzer.d.ts.map +1 -1
- package/dist/src/lib/analyzers/python-analyzer.js +21 -13
- package/dist/src/lib/analyzers/python-analyzer.js.map +1 -1
- package/dist/src/lib/analyzers/secrets/validators/context-checker.d.ts.map +1 -1
- package/dist/src/lib/analyzers/secrets/validators/context-checker.js +21 -0
- package/dist/src/lib/analyzers/secrets/validators/context-checker.js.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.d.ts.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.js +4 -12
- package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.js.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.d.ts.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.js +25 -9
- package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.js.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.d.ts.map +1 -1
- package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.js +14 -4
- package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.js.map +1 -1
- package/dist/src/lib/analyzers/typescript/type-checker.d.ts +32 -0
- package/dist/src/lib/analyzers/typescript/type-checker.d.ts.map +1 -1
- package/dist/src/lib/analyzers/typescript/type-checker.js +264 -22
- package/dist/src/lib/analyzers/typescript/type-checker.js.map +1 -1
- package/dist/src/lib/analyzers/typescript-analyzer.d.ts.map +1 -1
- package/dist/src/lib/analyzers/typescript-analyzer.js +27 -23
- package/dist/src/lib/analyzers/typescript-analyzer.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/scan.ts +77 -25
- package/src/reporters/cli-reporter.ts +449 -4
- package/src/scanner/local-scanner.ts +132 -19
|
@@ -30,9 +30,16 @@ exports.printWarning = printWarning;
|
|
|
30
30
|
exports.printSuccess = printSuccess;
|
|
31
31
|
exports.printCommitBlocked = printCommitBlocked;
|
|
32
32
|
exports.printCommitAllowed = printCommitAllowed;
|
|
33
|
+
exports.printLanguageSummary = printLanguageSummary;
|
|
34
|
+
exports.printUnsupportedFiles = printUnsupportedFiles;
|
|
35
|
+
exports.printTop10Critical = printTop10Critical;
|
|
33
36
|
exports.printJSONResults = printJSONResults;
|
|
37
|
+
exports.generateMarkdownReport = generateMarkdownReport;
|
|
38
|
+
exports.printBriefSummary = printBriefSummary;
|
|
34
39
|
const chalk_1 = __importDefault(require("chalk"));
|
|
35
40
|
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
42
|
+
const path_1 = require("path");
|
|
36
43
|
/**
|
|
37
44
|
* Get severity color for terminal output
|
|
38
45
|
*/
|
|
@@ -95,14 +102,21 @@ function printSummaryTable(results) {
|
|
|
95
102
|
/**
|
|
96
103
|
* Print detailed vulnerabilities for a file
|
|
97
104
|
*/
|
|
98
|
-
function printFileVulnerabilities(result) {
|
|
105
|
+
function printFileVulnerabilities(result, showAll = false) {
|
|
99
106
|
const vulnerabilities = result.result.security?.vulnerabilities || [];
|
|
100
107
|
if (vulnerabilities.length === 0) {
|
|
101
108
|
return;
|
|
102
109
|
}
|
|
110
|
+
// Filter to only HIGH and CRITICAL by default (unless showAll is true)
|
|
111
|
+
const importantVulns = showAll
|
|
112
|
+
? vulnerabilities
|
|
113
|
+
: vulnerabilities.filter((v) => v.severity.toLowerCase() === 'critical' || v.severity.toLowerCase() === 'high');
|
|
114
|
+
if (importantVulns.length === 0) {
|
|
115
|
+
return; // Skip file if no important vulnerabilities
|
|
116
|
+
}
|
|
103
117
|
console.log('');
|
|
104
118
|
console.log(chalk_1.default.bold(`📄 ${result.relativePath}`) + chalk_1.default.gray(` (${result.language})`));
|
|
105
|
-
|
|
119
|
+
importantVulns.forEach((vuln) => {
|
|
106
120
|
const colorFn = getSeverityColor(vuln.severity);
|
|
107
121
|
const symbol = getSeveritySymbol(vuln.severity);
|
|
108
122
|
console.log('');
|
|
@@ -124,8 +138,10 @@ function printFileVulnerabilities(result) {
|
|
|
124
138
|
}
|
|
125
139
|
/**
|
|
126
140
|
* Print all scan results with details
|
|
141
|
+
* @param results - Scan results
|
|
142
|
+
* @param verbose - If true, show all severities; if false, only HIGH and CRITICAL
|
|
127
143
|
*/
|
|
128
|
-
function printDetailedResults(results) {
|
|
144
|
+
function printDetailedResults(results, verbose = false) {
|
|
129
145
|
console.log('');
|
|
130
146
|
console.log(chalk_1.default.bold.underline('Detailed Results'));
|
|
131
147
|
const resultsWithIssues = results.filter((r) => r.critical > 0 || r.high > 0 || r.medium > 0 || r.low > 0);
|
|
@@ -135,9 +151,19 @@ function printDetailedResults(results) {
|
|
|
135
151
|
console.log('');
|
|
136
152
|
return;
|
|
137
153
|
}
|
|
154
|
+
// Count total issues by severity
|
|
155
|
+
const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
|
|
156
|
+
const totalLow = results.reduce((sum, r) => sum + r.low, 0);
|
|
138
157
|
resultsWithIssues.forEach((result) => {
|
|
139
|
-
printFileVulnerabilities(result);
|
|
158
|
+
printFileVulnerabilities(result, verbose);
|
|
140
159
|
});
|
|
160
|
+
// Show note about hidden issues if not verbose
|
|
161
|
+
if (!verbose && (totalMedium > 0 || totalLow > 0)) {
|
|
162
|
+
console.log('');
|
|
163
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
164
|
+
console.log(chalk_1.default.gray(` Also found: ${totalMedium} MEDIUM, ${totalLow} LOW issues`));
|
|
165
|
+
console.log(chalk_1.default.gray(` Use ${chalk_1.default.white('--verbose')} to see all issues`));
|
|
166
|
+
}
|
|
141
167
|
}
|
|
142
168
|
/**
|
|
143
169
|
* Print scan start message
|
|
@@ -213,6 +239,173 @@ function printCommitAllowed() {
|
|
|
213
239
|
console.log(chalk_1.default.green('No vulnerabilities meet the configured severity threshold.'));
|
|
214
240
|
console.log('');
|
|
215
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Print summary table grouped by language
|
|
244
|
+
* Shows files scanned, issues found, and critical count per language
|
|
245
|
+
*/
|
|
246
|
+
function printLanguageSummary(results) {
|
|
247
|
+
// Group results by language
|
|
248
|
+
const byLanguage = new Map();
|
|
249
|
+
for (const result of results) {
|
|
250
|
+
const lang = result.language;
|
|
251
|
+
const existing = byLanguage.get(lang) || { files: 0, issues: 0, critical: 0, high: 0, medium: 0, low: 0 };
|
|
252
|
+
existing.files++;
|
|
253
|
+
existing.critical += result.critical;
|
|
254
|
+
existing.high += result.high;
|
|
255
|
+
existing.medium += result.medium;
|
|
256
|
+
existing.low += result.low;
|
|
257
|
+
existing.issues += result.critical + result.high + result.medium + result.low;
|
|
258
|
+
byLanguage.set(lang, existing);
|
|
259
|
+
}
|
|
260
|
+
if (byLanguage.size === 0) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
console.log('');
|
|
264
|
+
console.log(chalk_1.default.bold('Language Breakdown'));
|
|
265
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
266
|
+
const table = new cli_table3_1.default({
|
|
267
|
+
head: [
|
|
268
|
+
chalk_1.default.bold('Language'),
|
|
269
|
+
chalk_1.default.bold('Files'),
|
|
270
|
+
chalk_1.default.bold('Issues'),
|
|
271
|
+
chalk_1.default.bold.red('Critical'),
|
|
272
|
+
chalk_1.default.bold.red('High'),
|
|
273
|
+
chalk_1.default.bold.yellow('Medium')
|
|
274
|
+
],
|
|
275
|
+
colWidths: [14, 8, 10, 10, 8, 9],
|
|
276
|
+
style: {
|
|
277
|
+
head: [],
|
|
278
|
+
border: ['gray'],
|
|
279
|
+
},
|
|
280
|
+
});
|
|
281
|
+
// Sort by critical count (highest first)
|
|
282
|
+
const sorted = Array.from(byLanguage.entries()).sort((a, b) => b[1].critical - a[1].critical);
|
|
283
|
+
for (const [lang, stats] of sorted) {
|
|
284
|
+
const langDisplay = lang.charAt(0).toUpperCase() + lang.slice(1);
|
|
285
|
+
table.push([
|
|
286
|
+
chalk_1.default.white(langDisplay),
|
|
287
|
+
chalk_1.default.white(stats.files.toString()),
|
|
288
|
+
stats.issues > 0 ? chalk_1.default.yellow(stats.issues.toString()) : chalk_1.default.gray('0'),
|
|
289
|
+
stats.critical > 0 ? chalk_1.default.red.bold(stats.critical.toString()) : chalk_1.default.gray('0'),
|
|
290
|
+
stats.high > 0 ? chalk_1.default.red(stats.high.toString()) : chalk_1.default.gray('0'),
|
|
291
|
+
stats.medium > 0 ? chalk_1.default.yellow(stats.medium.toString()) : chalk_1.default.gray('0')
|
|
292
|
+
]);
|
|
293
|
+
}
|
|
294
|
+
console.log(table.toString());
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Print unsupported/skipped files summary
|
|
298
|
+
* Groups by extension and shows counts
|
|
299
|
+
*/
|
|
300
|
+
function printUnsupportedFiles(skippedFiles) {
|
|
301
|
+
if (skippedFiles.length === 0) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
// Group by extension
|
|
305
|
+
const byExtension = new Map();
|
|
306
|
+
for (const file of skippedFiles) {
|
|
307
|
+
const ext = file.includes('.') ? '.' + file.split('.').pop()?.toLowerCase() : '(no ext)';
|
|
308
|
+
byExtension.set(ext, (byExtension.get(ext) || 0) + 1);
|
|
309
|
+
}
|
|
310
|
+
console.log('');
|
|
311
|
+
console.log(chalk_1.default.bold('Skipped Files') + chalk_1.default.gray(` (${skippedFiles.length} total)`));
|
|
312
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
313
|
+
// Sort by count (highest first)
|
|
314
|
+
const sorted = Array.from(byExtension.entries()).sort((a, b) => b[1] - a[1]);
|
|
315
|
+
// Show top 5 extensions
|
|
316
|
+
const top5 = sorted.slice(0, 5);
|
|
317
|
+
for (const [ext, count] of top5) {
|
|
318
|
+
const description = getExtensionDescription(ext);
|
|
319
|
+
console.log(chalk_1.default.gray(` ${ext.padEnd(10)} ${count.toString().padStart(4)} files`) + chalk_1.default.gray.dim(` (${description})`));
|
|
320
|
+
}
|
|
321
|
+
if (sorted.length > 5) {
|
|
322
|
+
const remaining = sorted.slice(5).reduce((sum, [, count]) => sum + count, 0);
|
|
323
|
+
console.log(chalk_1.default.gray(` ... ${remaining.toString().padStart(4)} files (other)`));
|
|
324
|
+
}
|
|
325
|
+
console.log('');
|
|
326
|
+
console.log(chalk_1.default.gray.dim(' Supported: .js, .jsx, .ts, .tsx, .py, .java'));
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Get description for file extension
|
|
330
|
+
*/
|
|
331
|
+
function getExtensionDescription(ext) {
|
|
332
|
+
const descriptions = {
|
|
333
|
+
'.md': 'documentation',
|
|
334
|
+
'.json': 'config',
|
|
335
|
+
'.css': 'styles',
|
|
336
|
+
'.scss': 'styles',
|
|
337
|
+
'.html': 'markup',
|
|
338
|
+
'.yml': 'config',
|
|
339
|
+
'.yaml': 'config',
|
|
340
|
+
'.lock': 'lockfile',
|
|
341
|
+
'.svg': 'image',
|
|
342
|
+
'.png': 'image',
|
|
343
|
+
'.jpg': 'image',
|
|
344
|
+
'.gif': 'image',
|
|
345
|
+
'.txt': 'text',
|
|
346
|
+
'.sh': 'shell script',
|
|
347
|
+
'.env': 'environment',
|
|
348
|
+
'.gitignore': 'git config',
|
|
349
|
+
'(no ext)': 'no extension',
|
|
350
|
+
};
|
|
351
|
+
return descriptions[ext] || 'other';
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Print Top 10 most critical issues
|
|
355
|
+
* Shows the highest priority issues that should be fixed first
|
|
356
|
+
*/
|
|
357
|
+
function printTop10Critical(results) {
|
|
358
|
+
// Collect all vulnerabilities with file info
|
|
359
|
+
const allVulns = [];
|
|
360
|
+
for (const result of results) {
|
|
361
|
+
const vulns = result.result.security?.vulnerabilities || [];
|
|
362
|
+
for (const vuln of vulns) {
|
|
363
|
+
allVulns.push({ file: result.relativePath, vuln });
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (allVulns.length === 0) {
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
// Sort by severity (critical > high > medium > low) then by CVSS score
|
|
370
|
+
const severityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
371
|
+
allVulns.sort((a, b) => {
|
|
372
|
+
const severityDiff = (severityOrder[a.vuln.severity.toLowerCase()] || 4) - (severityOrder[b.vuln.severity.toLowerCase()] || 4);
|
|
373
|
+
if (severityDiff !== 0)
|
|
374
|
+
return severityDiff;
|
|
375
|
+
return (b.vuln.cvssScore || 0) - (a.vuln.cvssScore || 0);
|
|
376
|
+
});
|
|
377
|
+
// Take top 10
|
|
378
|
+
const top10 = allVulns.slice(0, 10);
|
|
379
|
+
console.log('');
|
|
380
|
+
console.log(chalk_1.default.bold('Top 10 Critical Issues') + chalk_1.default.gray(' (Fix These First)'));
|
|
381
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
382
|
+
top10.forEach((item, index) => {
|
|
383
|
+
const colorFn = getSeverityColor(item.vuln.severity);
|
|
384
|
+
const symbol = getSeveritySymbol(item.vuln.severity);
|
|
385
|
+
const cvss = item.vuln.cvssScore ? chalk_1.default.gray(` CVSS ${item.vuln.cvssScore}`) : '';
|
|
386
|
+
console.log('');
|
|
387
|
+
console.log(chalk_1.default.white.bold(`${(index + 1).toString().padStart(2)}.`) +
|
|
388
|
+
` ${colorFn(symbol)} ${colorFn(item.vuln.severity.toUpperCase())}` +
|
|
389
|
+
cvss);
|
|
390
|
+
console.log(chalk_1.default.cyan(` ${item.file}:${item.vuln.line}`));
|
|
391
|
+
console.log(chalk_1.default.white(` ${truncateMessage(item.vuln.message, 60)}`));
|
|
392
|
+
if (item.vuln.suggestion) {
|
|
393
|
+
console.log(chalk_1.default.green(` Fix: ${truncateMessage(item.vuln.suggestion, 55)}`));
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
if (allVulns.length > 10) {
|
|
397
|
+
console.log('');
|
|
398
|
+
console.log(chalk_1.default.gray(` ... and ${allVulns.length - 10} more issues`));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Truncate message to max length
|
|
403
|
+
*/
|
|
404
|
+
function truncateMessage(message, maxLength) {
|
|
405
|
+
if (message.length <= maxLength)
|
|
406
|
+
return message;
|
|
407
|
+
return message.substring(0, maxLength - 3) + '...';
|
|
408
|
+
}
|
|
216
409
|
/**
|
|
217
410
|
* Output results as JSON
|
|
218
411
|
*/
|
|
@@ -241,4 +434,200 @@ function printJSONResults(results) {
|
|
|
241
434
|
};
|
|
242
435
|
console.log(JSON.stringify(output, null, 2));
|
|
243
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* Generate Markdown report file
|
|
439
|
+
* Returns the path to the generated report
|
|
440
|
+
*/
|
|
441
|
+
function generateMarkdownReport(results, skippedFiles, duration) {
|
|
442
|
+
const now = new Date();
|
|
443
|
+
const timestamp = now.toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
444
|
+
const filename = `codeslick-report-${timestamp}.md`;
|
|
445
|
+
const filepath = (0, path_1.join)(process.cwd(), filename);
|
|
446
|
+
// Calculate totals
|
|
447
|
+
const totalFiles = results.length;
|
|
448
|
+
const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
|
|
449
|
+
const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
|
|
450
|
+
const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
|
|
451
|
+
const totalLow = results.reduce((sum, r) => sum + r.low, 0);
|
|
452
|
+
const totalVulns = totalCritical + totalHigh + totalMedium + totalLow;
|
|
453
|
+
const filesWithIssues = results.filter(r => r.critical + r.high + r.medium + r.low > 0).length;
|
|
454
|
+
// Group by language
|
|
455
|
+
const byLanguage = new Map();
|
|
456
|
+
for (const result of results) {
|
|
457
|
+
const lang = result.language;
|
|
458
|
+
const existing = byLanguage.get(lang) || { files: 0, critical: 0, high: 0, medium: 0, low: 0 };
|
|
459
|
+
existing.files++;
|
|
460
|
+
existing.critical += result.critical;
|
|
461
|
+
existing.high += result.high;
|
|
462
|
+
existing.medium += result.medium;
|
|
463
|
+
existing.low += result.low;
|
|
464
|
+
byLanguage.set(lang, existing);
|
|
465
|
+
}
|
|
466
|
+
// Collect all vulnerabilities for Top 10
|
|
467
|
+
const allVulns = [];
|
|
468
|
+
for (const result of results) {
|
|
469
|
+
const vulns = result.result.security?.vulnerabilities || [];
|
|
470
|
+
for (const vuln of vulns) {
|
|
471
|
+
allVulns.push({ file: result.relativePath, line: vuln.line || 0, vuln });
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
// Sort by severity
|
|
475
|
+
const severityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
476
|
+
allVulns.sort((a, b) => {
|
|
477
|
+
const diff = (severityOrder[a.vuln.severity.toLowerCase()] || 4) - (severityOrder[b.vuln.severity.toLowerCase()] || 4);
|
|
478
|
+
if (diff !== 0)
|
|
479
|
+
return diff;
|
|
480
|
+
return (b.vuln.cvssScore || 0) - (a.vuln.cvssScore || 0);
|
|
481
|
+
});
|
|
482
|
+
// Build markdown content
|
|
483
|
+
let md = `# CodeSlick Security Report
|
|
484
|
+
|
|
485
|
+
**Date:** ${now.toLocaleDateString()} ${now.toLocaleTimeString()}
|
|
486
|
+
**Repository:** ${process.cwd()}
|
|
487
|
+
**Scan Duration:** ${(duration / 1000).toFixed(1)}s
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
## Summary
|
|
492
|
+
|
|
493
|
+
| Metric | Count |
|
|
494
|
+
|--------|-------|
|
|
495
|
+
| Files Scanned | ${totalFiles} |
|
|
496
|
+
| Files with Issues | ${filesWithIssues} |
|
|
497
|
+
| Total Vulnerabilities | ${totalVulns} |
|
|
498
|
+
| **CRITICAL** | ${totalCritical} |
|
|
499
|
+
| **HIGH** | ${totalHigh} |
|
|
500
|
+
| MEDIUM | ${totalMedium} |
|
|
501
|
+
| LOW | ${totalLow} |
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
## By Language
|
|
506
|
+
|
|
507
|
+
| Language | Files | Critical | High | Medium | Low |
|
|
508
|
+
|----------|-------|----------|------|--------|-----|
|
|
509
|
+
`;
|
|
510
|
+
// Add language rows
|
|
511
|
+
const sortedLangs = Array.from(byLanguage.entries()).sort((a, b) => b[1].critical - a[1].critical);
|
|
512
|
+
for (const [lang, stats] of sortedLangs) {
|
|
513
|
+
md += `| ${lang.charAt(0).toUpperCase() + lang.slice(1)} | ${stats.files} | ${stats.critical} | ${stats.high} | ${stats.medium} | ${stats.low} |\n`;
|
|
514
|
+
}
|
|
515
|
+
// Top 10 Critical Issues
|
|
516
|
+
md += `
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## Top 10 Critical Issues (Fix These First)
|
|
520
|
+
|
|
521
|
+
`;
|
|
522
|
+
const top10 = allVulns.slice(0, 10);
|
|
523
|
+
if (top10.length === 0) {
|
|
524
|
+
md += `No critical issues found.\n`;
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
for (let i = 0; i < top10.length; i++) {
|
|
528
|
+
const item = top10[i];
|
|
529
|
+
const cvss = item.vuln.cvssScore ? ` (CVSS ${item.vuln.cvssScore})` : '';
|
|
530
|
+
md += `### ${i + 1}. ${item.vuln.severity.toUpperCase()}${cvss}
|
|
531
|
+
|
|
532
|
+
**File:** \`${item.file}:${item.line}\`
|
|
533
|
+
|
|
534
|
+
**Issue:** ${item.vuln.message}
|
|
535
|
+
|
|
536
|
+
`;
|
|
537
|
+
if (item.vuln.suggestion) {
|
|
538
|
+
md += `**Fix:** ${item.vuln.suggestion}\n\n`;
|
|
539
|
+
}
|
|
540
|
+
if (item.vuln.owasp && item.vuln.owasp !== 'N/A') {
|
|
541
|
+
md += `**OWASP:** ${item.vuln.owasp}\n\n`;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
if (allVulns.length > 10) {
|
|
546
|
+
md += `\n*...and ${allVulns.length - 10} more issues*\n`;
|
|
547
|
+
}
|
|
548
|
+
// Skipped files
|
|
549
|
+
if (skippedFiles.length > 0) {
|
|
550
|
+
const byExt = new Map();
|
|
551
|
+
for (const file of skippedFiles) {
|
|
552
|
+
const ext = file.includes('.') ? '.' + file.split('.').pop()?.toLowerCase() : '(no ext)';
|
|
553
|
+
byExt.set(ext, (byExt.get(ext) || 0) + 1);
|
|
554
|
+
}
|
|
555
|
+
md += `
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
## Skipped Files (${skippedFiles.length} total)
|
|
559
|
+
|
|
560
|
+
| Extension | Count |
|
|
561
|
+
|-----------|-------|
|
|
562
|
+
`;
|
|
563
|
+
const sortedExts = Array.from(byExt.entries()).sort((a, b) => b[1] - a[1]);
|
|
564
|
+
for (const [ext, count] of sortedExts.slice(0, 10)) {
|
|
565
|
+
md += `| ${ext} | ${count} |\n`;
|
|
566
|
+
}
|
|
567
|
+
md += `\n*Supported: .js, .jsx, .ts, .tsx, .py, .java*\n`;
|
|
568
|
+
}
|
|
569
|
+
// Files with issues (detailed)
|
|
570
|
+
const filesWithProblems = results.filter(r => r.critical + r.high + r.medium + r.low > 0);
|
|
571
|
+
if (filesWithProblems.length > 0) {
|
|
572
|
+
md += `
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## Files with Issues (${filesWithProblems.length} files)
|
|
576
|
+
|
|
577
|
+
<details>
|
|
578
|
+
<summary>Click to expand full file list</summary>
|
|
579
|
+
|
|
580
|
+
| File | Critical | High | Medium | Low |
|
|
581
|
+
|------|----------|------|--------|-----|
|
|
582
|
+
`;
|
|
583
|
+
// Sort by critical count
|
|
584
|
+
filesWithProblems.sort((a, b) => b.critical - a.critical || b.high - a.high);
|
|
585
|
+
for (const f of filesWithProblems) {
|
|
586
|
+
md += `| ${f.relativePath} | ${f.critical} | ${f.high} | ${f.medium} | ${f.low} |\n`;
|
|
587
|
+
}
|
|
588
|
+
md += `\n</details>\n`;
|
|
589
|
+
}
|
|
590
|
+
// Footer
|
|
591
|
+
md += `
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
*Generated by [CodeSlick](https://codeslick.dev) Security Scanner*
|
|
595
|
+
`;
|
|
596
|
+
// Write file
|
|
597
|
+
(0, fs_1.writeFileSync)(filepath, md, 'utf-8');
|
|
598
|
+
return filename;
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* Print brief summary for screen (when report is generated)
|
|
602
|
+
*/
|
|
603
|
+
function printBriefSummary(results, reportPath, duration) {
|
|
604
|
+
const totalCritical = results.reduce((sum, r) => sum + r.critical, 0);
|
|
605
|
+
const totalHigh = results.reduce((sum, r) => sum + r.high, 0);
|
|
606
|
+
const totalMedium = results.reduce((sum, r) => sum + r.medium, 0);
|
|
607
|
+
const totalLow = results.reduce((sum, r) => sum + r.low, 0);
|
|
608
|
+
const totalVulns = totalCritical + totalHigh + totalMedium + totalLow;
|
|
609
|
+
console.log('');
|
|
610
|
+
console.log(chalk_1.default.bold('Scan Complete') + chalk_1.default.gray(` (${(duration / 1000).toFixed(1)}s)`));
|
|
611
|
+
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
612
|
+
console.log('');
|
|
613
|
+
console.log(` Files scanned: ${chalk_1.default.white(results.length.toString())}`);
|
|
614
|
+
console.log(` Vulnerabilities: ${totalVulns > 0 ? chalk_1.default.red(totalVulns.toString()) : chalk_1.default.green('0')}`);
|
|
615
|
+
console.log('');
|
|
616
|
+
if (totalCritical > 0) {
|
|
617
|
+
console.log(chalk_1.default.red.bold(` ✖ ${totalCritical} CRITICAL`));
|
|
618
|
+
}
|
|
619
|
+
if (totalHigh > 0) {
|
|
620
|
+
console.log(chalk_1.default.red(` ⚠ ${totalHigh} HIGH`));
|
|
621
|
+
}
|
|
622
|
+
if (totalMedium > 0) {
|
|
623
|
+
console.log(chalk_1.default.yellow(` ◆ ${totalMedium} MEDIUM`));
|
|
624
|
+
}
|
|
625
|
+
if (totalLow > 0) {
|
|
626
|
+
console.log(chalk_1.default.blue(` ○ ${totalLow} LOW`));
|
|
627
|
+
}
|
|
628
|
+
console.log('');
|
|
629
|
+
console.log(chalk_1.default.green.bold(` Report: ${reportPath}`));
|
|
630
|
+
console.log(chalk_1.default.gray(` Open: code ${reportPath}`));
|
|
631
|
+
console.log('');
|
|
632
|
+
}
|
|
244
633
|
//# sourceMappingURL=cli-reporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-reporter.js","sourceRoot":"","sources":["../../../../../src/reporters/cli-reporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-reporter.js","sourceRoot":"","sources":["../../../../../src/reporters/cli-reporter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAYH,4CAaC;AAKD,8CAaC;AAKD,8CAqCC;AAKD,4DAgDC;AAOD,oDA8BC;AAKD,wCAIC;AAKD,8CAGC;AAKD,gCAIC;AAKD,oCAIC;AAKD,oCAIC;AAKD,gDA8BC;AAKD,gDAKC;AAMD,oDAwDC;AAMD,sDAkCC;AAgCD,gDAqDC;AAaD,4CAyBC;AAMD,wDAgLC;AAKD,8CAoCC;AAtsBD,kDAA0B;AAC1B,4DAA+B;AAC/B,2BAAmC;AACnC,+BAA4B;AAI5B;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,eAAK,CAAC,GAAG,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,MAAM,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,IAAI,CAAC;QACpB;YACE,OAAO,eAAK,CAAC,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAyB;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEtE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CACjE,CAAC,MAAM,CAAC;IAET,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,IAAI,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACnB,KAAK,EAAE;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,MAAM,CAAC;SACjB;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CACR,CAAC,eAAe,EAAE,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,EACrD,CAAC,mBAAmB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACxG,CAAC,uBAAuB,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC/F,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACzG,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACxF,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACpG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACxF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,MAAsB,EAAE,OAAO,GAAG,KAAK;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;IAEtE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,MAAM,cAAc,GAAG,OAAO;QAC5B,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAwB,EAAE,EAAE,CAClD,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAC/E,CAAC;IAEN,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,4CAA4C;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAE3F,cAAc,CAAC,OAAO,CAAC,CAAC,IAA2B,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9C,eAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC;YAClC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,OAAyB,EAAE,OAAO,GAAG,KAAK;IAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CACjE,CAAC;IAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAE5D,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACnC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,YAAY,QAAQ,aAAa,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,SAAS,aAAa,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,SAAiB,EACjB,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,GAAW;IAEX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2DAA2D,SAAS,cAAc,CAAC,CAAC,CAAC;IAC3G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,aAAa,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,MAAM,WAAW,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,4BAA4B;IAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0G,CAAC;IAErI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1G,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACrC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;QAC7B,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QAC3B,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;QAC9E,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,IAAI,EAAE;YACJ,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YACnB,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpB,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAC1B,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YACtB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC5B;QACD,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,KAAK,EAAE;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,MAAM,CAAC;SACjB;KACF,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE9F,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC;YACT,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YACxB,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1E,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAChF,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,YAAsB;IAC1D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACzF,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,gCAAgC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,wBAAwB;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,GAAW;IAC1C,MAAM,YAAY,GAA2B;QAC3C,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,cAAc;KAC3B,CAAC;IACF,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,OAAyB;IAC1D,6CAA6C;IAC7C,MAAM,QAAQ,GAAyD,EAAE,CAAC;IAE1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,MAAM,aAAa,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC1F,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/H,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC;QAC5C,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,cAAc;IACd,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YAClE,IAAI,CACL,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,SAAiB;IACzD,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAyB;IACxD,MAAM,MAAM,GAAG;QACb,OAAO,EAAE;YACP,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM;YACxG,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;YACjG,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;SAChD;QACD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,CAAC,CAAC,YAAY;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE;YACzD,MAAM,EAAE;gBACN,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,GAAG,EAAE,CAAC,CAAC,GAAG;aACX;SACF,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,OAAyB,EACzB,YAAsB,EACtB,QAAgB;IAEhB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,oBAAoB,SAAS,KAAK,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/C,mBAAmB;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/F,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0F,CAAC;IACrH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/F,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACrC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;QAC7B,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QAC3B,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,yCAAyC;IACzC,MAAM,QAAQ,GAAuE,EAAE,CAAC;IACxF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,aAAa,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC1F,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACvH,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,EAAE,GAAG;;YAEC,GAAG,CAAC,kBAAkB,EAAE,IAAI,GAAG,CAAC,kBAAkB,EAAE;kBAC9C,OAAO,CAAC,GAAG,EAAE;qBACV,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;;;oBAQ7B,UAAU;wBACN,eAAe;4BACX,UAAU;mBACnB,aAAa;eACjB,SAAS;aACX,WAAW;UACd,QAAQ;;;;;;;;CAQjB,CAAC;IAEA,oBAAoB;IACpB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnG,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACxC,EAAE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC;IACtJ,CAAC;IAED,yBAAyB;IACzB,EAAE,IAAI;;;;;CAKP,CAAC;IAEA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,EAAE,IAAI,6BAA6B,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,IAAI;;cAEtD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;;aAEvB,IAAI,CAAC,IAAI,CAAC,OAAO;;CAE7B,CAAC;YACI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzB,EAAE,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC;YAC/C,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACjD,EAAE,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACzB,EAAE,IAAI,aAAa,QAAQ,CAAC,MAAM,GAAG,EAAE,iBAAiB,CAAC;IAC3D,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YACzF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,EAAE,IAAI;;;oBAGU,YAAY,CAAC,MAAM;;;;CAItC,CAAC;QACE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,EAAE,IAAI,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC;QAClC,CAAC;QAED,EAAE,IAAI,mDAAmD,CAAC;IAC5D,CAAC;IAED,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,EAAE,IAAI;;;wBAGc,iBAAiB,CAAC,MAAM;;;;;;;CAO/C,CAAC;QACE,yBAAyB;QACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7E,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,EAAE,IAAI,KAAK,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;QACvF,CAAC;QACD,EAAE,IAAI,gBAAgB,CAAC;IACzB,CAAC;IAED,SAAS;IACT,EAAE,IAAI;;;;CAIP,CAAC;IAEA,aAAa;IACb,IAAA,kBAAa,EAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,OAAyB,EACzB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,aAAa,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -37,6 +37,7 @@ export interface ScannerConfig {
|
|
|
37
37
|
severityThreshold?: 'critical' | 'high' | 'medium' | 'low';
|
|
38
38
|
exclude?: string[];
|
|
39
39
|
autofix?: boolean;
|
|
40
|
+
quickMode?: boolean;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Detect programming language from file extension
|
|
@@ -44,6 +45,7 @@ export interface ScannerConfig {
|
|
|
44
45
|
export declare function detectLanguage(filePath: string): SupportedLanguage | null;
|
|
45
46
|
/**
|
|
46
47
|
* Check if file should be excluded based on patterns
|
|
48
|
+
* Uses fast regex-based pattern matching (no filesystem scanning)
|
|
47
49
|
*/
|
|
48
50
|
export declare function shouldExclude(filePath: string, excludePatterns: string[]): boolean;
|
|
49
51
|
/**
|
|
@@ -72,7 +74,9 @@ export declare function scanFile(filePath: string, config?: ScannerConfig): Prom
|
|
|
72
74
|
/**
|
|
73
75
|
* Scan multiple files for security vulnerabilities
|
|
74
76
|
*
|
|
75
|
-
*
|
|
77
|
+
* OPTIMIZED (Jan 15, 2026): Uses batch TypeScript compilation for 17x speedup
|
|
78
|
+
* - TypeScript files: Batch processed together (single ts.createProgram)
|
|
79
|
+
* - Other files: Processed in parallel as before
|
|
76
80
|
*
|
|
77
81
|
* @param filePaths - Array of absolute file paths
|
|
78
82
|
* @param config - Scanner configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-scanner.d.ts","sourceRoot":"","sources":["../../../../../src/scanner/local-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"local-scanner.d.ts","sourceRoot":"","sources":["../../../../../src/scanner/local-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAwBlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc;;;;;EAS1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAyEhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CAoC3B;AA0ED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAChD,OAAO,CAkBT"}
|