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
package/README.md CHANGED
@@ -149,15 +149,21 @@ codeslick scan [files...] [options]
149
149
  ```
150
150
 
151
151
  **Options:**
152
- - `--staged` - Scan only staged files (for pre-commit hooks)
152
+ - `--all, -a` - Scan all files in repository (overrides default staged-only behavior)
153
+ - `--quick, -q` - Quick scan - skip deep TypeScript type checking for speed
154
+ - `--verbose, -v` - Show all issues including MEDIUM and LOW (default: HIGH+ only)
153
155
  - `--severity, -s <level>` - Override severity threshold (critical|high|medium|low)
154
156
  - `--fix` - Auto-apply fixes where possible (experimental)
155
157
  - `--json` - Output results as JSON (for CI/CD)
156
158
 
159
+ **Default Behavior:** Scans only **staged files** for fast pre-commit feedback.
160
+
157
161
  **Examples:**
158
162
  ```bash
159
- codeslick scan # Scan all files
160
- codeslick scan --staged # Scan staged files only
163
+ codeslick scan # Scan staged files (default)
164
+ codeslick scan --all # Scan entire repository
165
+ codeslick scan --quick # Fast scan (skip TypeScript type checking)
166
+ codeslick scan --verbose # Show all issues (including MEDIUM/LOW)
161
167
  codeslick scan src/**/*.js # Scan specific files/patterns
162
168
  codeslick scan --json # JSON output (for CI/CD)
163
169
  codeslick scan --severity high # Temporarily override threshold
@@ -390,14 +396,23 @@ npx codeslick-cli init
390
396
 
391
397
  **Note**: You do NOT need GitHub or any remote repository. CodeSlick works with local git repositories.
392
398
 
393
- ### "No staged files found" error
399
+ ### "No staged files to scan" message
400
+
401
+ **Problem**: Running `codeslick scan` with no staged files.
394
402
 
395
- **Problem**: Running `codeslick scan --staged` with no staged files.
403
+ **Why this happens**: By default, CodeSlick scans only staged files for fast pre-commit feedback.
396
404
 
397
- **Solution**: Stage files first:
405
+ **Solutions**:
398
406
  ```bash
407
+ # Option 1: Stage files first
399
408
  git add <files>
400
- codeslick scan --staged
409
+ codeslick scan
410
+
411
+ # Option 2: Scan entire repository
412
+ codeslick scan --all
413
+
414
+ # Option 3: Scan specific path
415
+ codeslick scan src/
401
416
  ```
402
417
 
403
418
  ### Pre-commit hook not running
@@ -517,6 +532,14 @@ MIT License - see [LICENSE](../../LICENSE) for details.
517
532
  - **Issues**: https://github.com/VitorLourenco/codeslick2/issues
518
533
  - **Email**: support@codeslick.dev
519
534
 
535
+ ## What's New in v1.0
536
+
537
+ - **Staged Files by Default** - Fast pre-commit scans (<1s for most commits)
538
+ - **Quick Mode** - Skip TypeScript type checking with `--quick` for even faster scans
539
+ - **Smart Output** - Only shows CRITICAL and HIGH issues by default (use `--verbose` for all)
540
+ - **Markdown Reports** - Auto-generates detailed reports for large scans (>20 files or >30 issues)
541
+ - **268 Security Checks** - OWASP Top 10:2025 compliant
542
+
520
543
  ## Roadmap
521
544
 
522
545
  ### v1.1 (Q2 2026)
@@ -524,12 +547,7 @@ MIT License - see [LICENSE](../../LICENSE) for details.
524
547
  - Custom rule configuration
525
548
  - IDE integration (VS Code extension)
526
549
 
527
- ### v1.2 (Q3 2026)
528
- - SBOM generation
529
- - SARIF output format
530
- - Team collaboration features
531
-
532
550
  ---
533
551
 
534
- **Made with ❤️ by CodeSlick**
552
+ **Made with security in mind by CodeSlick**
535
553
  https://codeslick.dev
package/bin/codeslick.cjs CHANGED
@@ -67,7 +67,25 @@ yargs(hideBin(process.argv))
67
67
  })
68
68
  .option('staged', {
69
69
  type: 'boolean',
70
- description: 'Scan only staged files (git)',
70
+ description: 'Scan only staged files (git) - this is the default',
71
+ default: true,
72
+ })
73
+ .option('all', {
74
+ alias: 'a',
75
+ type: 'boolean',
76
+ description: 'Scan all files in repository (overrides --staged)',
77
+ default: false,
78
+ })
79
+ .option('quick', {
80
+ alias: 'q',
81
+ type: 'boolean',
82
+ description: 'Quick scan - skip deep TypeScript type checking for speed',
83
+ default: false,
84
+ })
85
+ .option('verbose', {
86
+ alias: 'v',
87
+ type: 'boolean',
88
+ description: 'Show detailed results for all files (default: top 10 only)',
71
89
  default: false,
72
90
  })
73
91
  .option('severity', {
@@ -21,6 +21,9 @@
21
21
  interface ScanArgs {
22
22
  files?: string[];
23
23
  staged?: boolean;
24
+ all?: boolean;
25
+ quick?: boolean;
26
+ verbose?: boolean;
24
27
  severity?: 'critical' | 'high' | 'medium' | 'low';
25
28
  fix?: boolean;
26
29
  json?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuBH;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAqCD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA8I/D"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAyBH;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwCD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA0L/D"}
@@ -16,6 +16,39 @@
16
16
  *
17
17
  * @module packages/cli/src/commands/scan
18
18
  */
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
19
52
  var __importDefault = (this && this.__importDefault) || function (mod) {
20
53
  return (mod && mod.__esModule) ? mod : { "default": mod };
21
54
  };
@@ -49,14 +82,17 @@ async function getStagedFiles() {
49
82
  }
50
83
  /**
51
84
  * Expand glob patterns to file paths
85
+ * @param patterns - Glob patterns to match
86
+ * @param exclude - Patterns to exclude (optional)
52
87
  */
53
- async function expandGlobPatterns(patterns) {
88
+ async function expandGlobPatterns(patterns, exclude) {
54
89
  const allFiles = [];
55
90
  for (const pattern of patterns) {
56
91
  const files = await (0, glob_1.glob)(pattern, {
57
92
  cwd: process.cwd(),
58
93
  absolute: true,
59
94
  nodir: true,
95
+ ignore: exclude || [], // Apply exclusions during glob expansion
60
96
  });
61
97
  allFiles.push(...files);
62
98
  }
@@ -83,27 +119,21 @@ async function scanCommand(args) {
83
119
  severityThreshold: args.severity || config.severity || 'critical',
84
120
  exclude: config.exclude || [],
85
121
  autofix: args.fix || config.autofix || false,
122
+ quickMode: args.quick || false,
86
123
  };
87
124
  // Determine which files to scan
125
+ // Priority: specific files > --all > --staged (default)
88
126
  let filePaths = [];
89
- if (args.staged) {
90
- // Scan staged files
91
- filePaths = await getStagedFiles();
92
- if (filePaths.length === 0) {
93
- (0, cli_reporter_1.printError)('No staged files found. Stage files with: git add <files>');
94
- process.exit(0);
95
- }
96
- }
97
- else if (args.files && args.files.length > 0) {
98
- // Scan specific files/patterns
99
- filePaths = await expandGlobPatterns(args.files);
127
+ if (args.files && args.files.length > 0) {
128
+ // Priority 1: Scan specific files/patterns provided by user
129
+ filePaths = await expandGlobPatterns(args.files, config.exclude);
100
130
  if (filePaths.length === 0) {
101
131
  (0, cli_reporter_1.printError)(`No files matched patterns: ${args.files.join(', ')}`);
102
132
  process.exit(1);
103
133
  }
104
134
  }
105
- else {
106
- // Scan all files (default patterns from config)
135
+ else if (args.all) {
136
+ // Priority 2: Scan all files in repository (--all flag)
107
137
  const defaultPatterns = config.languages?.map((lang) => {
108
138
  switch (lang) {
109
139
  case 'javascript':
@@ -118,45 +148,94 @@ async function scanCommand(args) {
118
148
  return '';
119
149
  }
120
150
  }).filter(Boolean) || ['**/*.{js,jsx,ts,tsx,py,java}'];
121
- filePaths = await expandGlobPatterns(defaultPatterns);
151
+ filePaths = await expandGlobPatterns(defaultPatterns, config.exclude);
122
152
  if (filePaths.length === 0) {
123
153
  (0, cli_reporter_1.printError)('No files found to scan.');
124
154
  process.exit(0);
125
155
  }
126
156
  }
127
- // Print scan start
157
+ else {
158
+ // Priority 3 (Default): Scan staged files only
159
+ const stagedFiles = await getStagedFiles();
160
+ // Apply exclusions to staged files
161
+ if (config.exclude && config.exclude.length > 0) {
162
+ const { shouldExclude } = await Promise.resolve().then(() => __importStar(require('../scanner/local-scanner')));
163
+ filePaths = stagedFiles.filter(file => !shouldExclude(file, config.exclude));
164
+ }
165
+ else {
166
+ filePaths = stagedFiles;
167
+ }
168
+ if (filePaths.length === 0) {
169
+ // Friendly message for no staged files (this is the default behavior)
170
+ console.log('');
171
+ console.log(chalk_1.default.cyan(' No staged files to scan.'));
172
+ console.log('');
173
+ console.log(chalk_1.default.gray(' CodeSlick scans staged files by default for fast feedback.'));
174
+ console.log('');
175
+ console.log(chalk_1.default.white(' Options:'));
176
+ console.log(chalk_1.default.green(' git add <files>') + chalk_1.default.gray(' Stage files, then run cs scan'));
177
+ console.log(chalk_1.default.green(' cs scan --all') + chalk_1.default.gray(' Scan entire repository'));
178
+ console.log(chalk_1.default.green(' cs scan src/') + chalk_1.default.gray(' Scan specific path'));
179
+ console.log('');
180
+ process.exit(0);
181
+ }
182
+ }
183
+ // Print scan start with file count info
128
184
  if (!args.json) {
129
185
  (0, cli_reporter_1.printScanStart)(filePaths.length);
186
+ // Warn user about large scans
187
+ if (filePaths.length > 50) {
188
+ console.log('');
189
+ console.log(chalk_1.default.yellow(` Large scan detected (${filePaths.length} files)`));
190
+ if (!args.quick) {
191
+ console.log(chalk_1.default.gray(' TypeScript files require deep type analysis - this may take 1-3 minutes'));
192
+ console.log(chalk_1.default.gray(' Tip: Use --quick for faster scans (skips type checking)'));
193
+ }
194
+ console.log('');
195
+ }
130
196
  }
131
197
  // Show progress spinner
132
- const spinner = !args.json ? (0, ora_1.default)('Scanning files...').start() : null;
198
+ const spinner = !args.json ? (0, ora_1.default)({
199
+ text: `Analyzing ${filePaths.length} files...`,
200
+ spinner: 'dots'
201
+ }).start() : null;
133
202
  // Scan all files
134
203
  const results = await (0, local_scanner_1.scanFiles)(filePaths, scannerConfig);
135
- // Stop spinner
204
+ // Stop spinner with success
136
205
  if (spinner) {
137
- spinner.stop();
206
+ spinner.succeed(`Analyzed ${results.length} files`);
138
207
  }
139
208
  const duration = Date.now() - startTime;
209
+ // Track unsupported files (files that were in the glob but not scanned)
210
+ const scannedPaths = new Set(results.map(r => r.filePath));
211
+ const skippedFiles = filePaths.filter(fp => !scannedPaths.has(fp));
212
+ // Calculate total vulnerabilities for output decision
213
+ const totalVulnerabilities = results.reduce((sum, r) => sum + r.critical + r.high + r.medium + r.low, 0);
140
214
  // Output results
141
215
  if (args.json) {
142
216
  // JSON output mode (for CI/CD)
143
217
  (0, cli_reporter_1.printJSONResults)(results);
144
218
  }
219
+ else if (results.length > 20 || totalVulnerabilities > 30) {
220
+ // For large outputs: Generate report, show brief summary on screen
221
+ // Triggers when: >20 files OR >30 total vulnerabilities
222
+ const reportPath = (0, cli_reporter_1.generateMarkdownReport)(results, skippedFiles, duration);
223
+ (0, cli_reporter_1.printBriefSummary)(results, reportPath, duration);
224
+ }
145
225
  else {
146
- // Human-readable output
226
+ // For small outputs: Show full details on screen
147
227
  (0, cli_reporter_1.printScanComplete)(duration);
148
- (0, cli_reporter_1.printDetailedResults)(results);
149
228
  (0, cli_reporter_1.printSummaryTable)(results);
229
+ (0, cli_reporter_1.printDetailedResults)(results, args.verbose);
150
230
  }
151
231
  // Show AI-Fix availability message if --fix flag was used
152
232
  if (args.fix && !args.json) {
153
- const totalVulns = results.reduce((sum, r) => sum + r.critical + r.high + r.medium + r.low, 0);
154
- if (totalVulns > 0) {
233
+ if (totalVulnerabilities > 0) {
155
234
  console.log('');
156
235
  console.log(chalk_1.default.cyan.bold('🤖 AI-Powered Auto-Fix Available'));
157
236
  console.log(chalk_1.default.gray('─'.repeat(50)));
158
237
  console.log('');
159
- console.log(chalk_1.default.white(`Found ${totalVulns} ${totalVulns === 1 ? 'vulnerability' : 'vulnerabilities'} that can be fixed with AI.`));
238
+ console.log(chalk_1.default.white(`Found ${totalVulnerabilities} ${totalVulnerabilities === 1 ? 'vulnerability' : 'vulnerabilities'} that can be fixed with AI.`));
160
239
  console.log('');
161
240
  console.log(chalk_1.default.yellow('Auto-fix is available through:'));
162
241
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,13 @@ export declare function printSummaryTable(results: FileScanResult[]): void;
29
29
  /**
30
30
  * Print detailed vulnerabilities for a file
31
31
  */
32
- export declare function printFileVulnerabilities(result: FileScanResult): void;
32
+ export declare function printFileVulnerabilities(result: FileScanResult, showAll?: boolean): void;
33
33
  /**
34
34
  * Print all scan results with details
35
+ * @param results - Scan results
36
+ * @param verbose - If true, show all severities; if false, only HIGH and CRITICAL
35
37
  */
36
- export declare function printDetailedResults(results: FileScanResult[]): void;
38
+ export declare function printDetailedResults(results: FileScanResult[], verbose?: boolean): void;
37
39
  /**
38
40
  * Print scan start message
39
41
  */
@@ -62,8 +64,32 @@ export declare function printCommitBlocked(threshold: string, critical: number,
62
64
  * Print commit allowed message
63
65
  */
64
66
  export declare function printCommitAllowed(): void;
67
+ /**
68
+ * Print summary table grouped by language
69
+ * Shows files scanned, issues found, and critical count per language
70
+ */
71
+ export declare function printLanguageSummary(results: FileScanResult[]): void;
72
+ /**
73
+ * Print unsupported/skipped files summary
74
+ * Groups by extension and shows counts
75
+ */
76
+ export declare function printUnsupportedFiles(skippedFiles: string[]): void;
77
+ /**
78
+ * Print Top 10 most critical issues
79
+ * Shows the highest priority issues that should be fixed first
80
+ */
81
+ export declare function printTop10Critical(results: FileScanResult[]): void;
65
82
  /**
66
83
  * Output results as JSON
67
84
  */
68
85
  export declare function printJSONResults(results: FileScanResult[]): void;
86
+ /**
87
+ * Generate Markdown report file
88
+ * Returns the path to the generated report
89
+ */
90
+ export declare function generateMarkdownReport(results: FileScanResult[], skippedFiles: string[], duration: number): string;
91
+ /**
92
+ * Print brief summary for screen (when report is generated)
93
+ */
94
+ export declare function printBriefSummary(results: FileScanResult[], reportPath: string, duration: number): void;
69
95
  //# sourceMappingURL=cli-reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-reporter.d.ts","sourceRoot":"","sources":["../../../../../src/reporters/cli-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAa3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAqCjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAqCrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAkBpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,IAAI,CAwBN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAyBhE"}
1
+ {"version":3,"file":"cli-reporter.d.ts","sourceRoot":"","sources":["../../../../../src/reporters/cli-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAa3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAqCjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,UAAQ,GAAG,IAAI,CAgDtF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,UAAQ,GAAG,IAAI,CA8BrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,IAAI,CAwBN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAwDpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAkClE;AA4BD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAqDlE;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAyBhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,MAAM,GACf,MAAM,CA4KR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAgCN"}