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.
Files changed (55) hide show
  1. package/README.md +31 -13
  2. package/bin/codeslick.cjs +19 -1
  3. package/dist/packages/cli/src/commands/scan.d.ts +3 -0
  4. package/dist/packages/cli/src/commands/scan.d.ts.map +1 -1
  5. package/dist/packages/cli/src/commands/scan.js +103 -24
  6. package/dist/packages/cli/src/commands/scan.js.map +1 -1
  7. package/dist/packages/cli/src/reporters/cli-reporter.d.ts +28 -2
  8. package/dist/packages/cli/src/reporters/cli-reporter.d.ts.map +1 -1
  9. package/dist/packages/cli/src/reporters/cli-reporter.js +393 -4
  10. package/dist/packages/cli/src/reporters/cli-reporter.js.map +1 -1
  11. package/dist/packages/cli/src/scanner/local-scanner.d.ts +5 -1
  12. package/dist/packages/cli/src/scanner/local-scanner.d.ts.map +1 -1
  13. package/dist/packages/cli/src/scanner/local-scanner.js +110 -16
  14. package/dist/packages/cli/src/scanner/local-scanner.js.map +1 -1
  15. package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.d.ts.map +1 -1
  16. package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.js +24 -16
  17. package/dist/src/lib/analyzers/java/security-checks/hardcoded-credentials.js.map +1 -1
  18. package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.d.ts.map +1 -1
  19. package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.js +4 -12
  20. package/dist/src/lib/analyzers/javascript/security-checks/ai-generated-code.js.map +1 -1
  21. package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.d.ts.map +1 -1
  22. package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.js +22 -9
  23. package/dist/src/lib/analyzers/javascript/security-checks/credential-crypto.js.map +1 -1
  24. package/dist/src/lib/analyzers/javascript-analyzer.d.ts.map +1 -1
  25. package/dist/src/lib/analyzers/javascript-analyzer.js +28 -13
  26. package/dist/src/lib/analyzers/javascript-analyzer.js.map +1 -1
  27. package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.d.ts.map +1 -1
  28. package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.js +44 -18
  29. package/dist/src/lib/analyzers/python/security-checks/credentials-crypto.js.map +1 -1
  30. package/dist/src/lib/analyzers/python-analyzer.d.ts.map +1 -1
  31. package/dist/src/lib/analyzers/python-analyzer.js +21 -13
  32. package/dist/src/lib/analyzers/python-analyzer.js.map +1 -1
  33. package/dist/src/lib/analyzers/secrets/validators/context-checker.d.ts.map +1 -1
  34. package/dist/src/lib/analyzers/secrets/validators/context-checker.js +21 -0
  35. package/dist/src/lib/analyzers/secrets/validators/context-checker.js.map +1 -1
  36. package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.d.ts.map +1 -1
  37. package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.js +4 -12
  38. package/dist/src/lib/analyzers/typescript/security-checks/ai-generated-code.js.map +1 -1
  39. package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.d.ts.map +1 -1
  40. package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.js +25 -9
  41. package/dist/src/lib/analyzers/typescript/security-checks/credentials-crypto.js.map +1 -1
  42. package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.d.ts.map +1 -1
  43. package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.js +14 -4
  44. package/dist/src/lib/analyzers/typescript/security-checks/security-misconfiguration.js.map +1 -1
  45. package/dist/src/lib/analyzers/typescript/type-checker.d.ts +32 -0
  46. package/dist/src/lib/analyzers/typescript/type-checker.d.ts.map +1 -1
  47. package/dist/src/lib/analyzers/typescript/type-checker.js +264 -22
  48. package/dist/src/lib/analyzers/typescript/type-checker.js.map +1 -1
  49. package/dist/src/lib/analyzers/typescript-analyzer.d.ts.map +1 -1
  50. package/dist/src/lib/analyzers/typescript-analyzer.js +27 -23
  51. package/dist/src/lib/analyzers/typescript-analyzer.js.map +1 -1
  52. package/package.json +1 -1
  53. package/src/commands/scan.ts +77 -25
  54. package/src/reporters/cli-reporter.ts +449 -4
  55. 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
- vulnerabilities.forEach((vuln, index) => {
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":"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"}
@@ -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
- * This function scans multiple files in parallel for better performance.
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;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAmBlF;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,CAuEhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CAM3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAChD,OAAO,CAkBT"}
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"}