@nahisaho/musubix-security 1.8.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 (116) hide show
  1. package/README.md +105 -0
  2. package/bin/musubix-security-mcp.js +12 -0
  3. package/bin/musubix-security.js +12 -0
  4. package/dist/analysis/dependency-auditor.d.ts +30 -0
  5. package/dist/analysis/dependency-auditor.d.ts.map +1 -0
  6. package/dist/analysis/dependency-auditor.js +325 -0
  7. package/dist/analysis/dependency-auditor.js.map +1 -0
  8. package/dist/analysis/index.d.ts +9 -0
  9. package/dist/analysis/index.d.ts.map +1 -0
  10. package/dist/analysis/index.js +9 -0
  11. package/dist/analysis/index.js.map +1 -0
  12. package/dist/analysis/secret-detector.d.ts +44 -0
  13. package/dist/analysis/secret-detector.d.ts.map +1 -0
  14. package/dist/analysis/secret-detector.js +465 -0
  15. package/dist/analysis/secret-detector.js.map +1 -0
  16. package/dist/analysis/taint-analyzer.d.ts +62 -0
  17. package/dist/analysis/taint-analyzer.d.ts.map +1 -0
  18. package/dist/analysis/taint-analyzer.js +519 -0
  19. package/dist/analysis/taint-analyzer.js.map +1 -0
  20. package/dist/analysis/vulnerability-scanner.d.ts +58 -0
  21. package/dist/analysis/vulnerability-scanner.d.ts.map +1 -0
  22. package/dist/analysis/vulnerability-scanner.js +417 -0
  23. package/dist/analysis/vulnerability-scanner.js.map +1 -0
  24. package/dist/cli/commands.d.ts +15 -0
  25. package/dist/cli/commands.d.ts.map +1 -0
  26. package/dist/cli/commands.js +405 -0
  27. package/dist/cli/commands.js.map +1 -0
  28. package/dist/cli/index.d.ts +6 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +6 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/index.d.ts +42 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +66 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/infrastructure/ast-parser.d.ts +87 -0
  37. package/dist/infrastructure/ast-parser.d.ts.map +1 -0
  38. package/dist/infrastructure/ast-parser.js +273 -0
  39. package/dist/infrastructure/ast-parser.js.map +1 -0
  40. package/dist/infrastructure/cache.d.ts +100 -0
  41. package/dist/infrastructure/cache.d.ts.map +1 -0
  42. package/dist/infrastructure/cache.js +288 -0
  43. package/dist/infrastructure/cache.js.map +1 -0
  44. package/dist/infrastructure/config-loader.d.ts +35 -0
  45. package/dist/infrastructure/config-loader.d.ts.map +1 -0
  46. package/dist/infrastructure/config-loader.js +358 -0
  47. package/dist/infrastructure/config-loader.js.map +1 -0
  48. package/dist/infrastructure/file-scanner.d.ts +94 -0
  49. package/dist/infrastructure/file-scanner.d.ts.map +1 -0
  50. package/dist/infrastructure/file-scanner.js +189 -0
  51. package/dist/infrastructure/file-scanner.js.map +1 -0
  52. package/dist/infrastructure/index.d.ts +9 -0
  53. package/dist/infrastructure/index.d.ts.map +1 -0
  54. package/dist/infrastructure/index.js +9 -0
  55. package/dist/infrastructure/index.js.map +1 -0
  56. package/dist/mcp/index.d.ts +7 -0
  57. package/dist/mcp/index.d.ts.map +1 -0
  58. package/dist/mcp/index.js +7 -0
  59. package/dist/mcp/index.js.map +1 -0
  60. package/dist/mcp/server.d.ts +34 -0
  61. package/dist/mcp/server.d.ts.map +1 -0
  62. package/dist/mcp/server.js +88 -0
  63. package/dist/mcp/server.js.map +1 -0
  64. package/dist/mcp/tools.d.ts +88 -0
  65. package/dist/mcp/tools.d.ts.map +1 -0
  66. package/dist/mcp/tools.js +443 -0
  67. package/dist/mcp/tools.js.map +1 -0
  68. package/dist/services/fix-generator.d.ts +56 -0
  69. package/dist/services/fix-generator.d.ts.map +1 -0
  70. package/dist/services/fix-generator.js +346 -0
  71. package/dist/services/fix-generator.js.map +1 -0
  72. package/dist/services/fix-verifier.d.ts +62 -0
  73. package/dist/services/fix-verifier.d.ts.map +1 -0
  74. package/dist/services/fix-verifier.js +224 -0
  75. package/dist/services/fix-verifier.js.map +1 -0
  76. package/dist/services/index.d.ts +9 -0
  77. package/dist/services/index.d.ts.map +1 -0
  78. package/dist/services/index.js +13 -0
  79. package/dist/services/index.js.map +1 -0
  80. package/dist/services/report-generator.d.ts +87 -0
  81. package/dist/services/report-generator.d.ts.map +1 -0
  82. package/dist/services/report-generator.js +463 -0
  83. package/dist/services/report-generator.js.map +1 -0
  84. package/dist/services/security-service.d.ts +151 -0
  85. package/dist/services/security-service.d.ts.map +1 -0
  86. package/dist/services/security-service.js +279 -0
  87. package/dist/services/security-service.js.map +1 -0
  88. package/dist/types/config.d.ts +188 -0
  89. package/dist/types/config.d.ts.map +1 -0
  90. package/dist/types/config.js +89 -0
  91. package/dist/types/config.js.map +1 -0
  92. package/dist/types/dependency.d.ts +266 -0
  93. package/dist/types/dependency.d.ts.map +1 -0
  94. package/dist/types/dependency.js +7 -0
  95. package/dist/types/dependency.js.map +1 -0
  96. package/dist/types/fix.d.ts +213 -0
  97. package/dist/types/fix.d.ts.map +1 -0
  98. package/dist/types/fix.js +7 -0
  99. package/dist/types/fix.js.map +1 -0
  100. package/dist/types/index.d.ts +14 -0
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/index.js +8 -0
  103. package/dist/types/index.js.map +1 -0
  104. package/dist/types/secret.d.ts +151 -0
  105. package/dist/types/secret.d.ts.map +1 -0
  106. package/dist/types/secret.js +91 -0
  107. package/dist/types/secret.js.map +1 -0
  108. package/dist/types/taint.d.ts +182 -0
  109. package/dist/types/taint.d.ts.map +1 -0
  110. package/dist/types/taint.js +24 -0
  111. package/dist/types/taint.js.map +1 -0
  112. package/dist/types/vulnerability.d.ts +136 -0
  113. package/dist/types/vulnerability.d.ts.map +1 -0
  114. package/dist/types/vulnerability.js +7 -0
  115. package/dist/types/vulnerability.js.map +1 -0
  116. package/package.json +87 -0
@@ -0,0 +1,405 @@
1
+ /**
2
+ * @fileoverview Security CLI commands
3
+ * @module @nahisaho/musubix-security/cli
4
+ * @trace REQ-SEC-CLI-001
5
+ */
6
+ import { Command } from 'commander';
7
+ import * as path from 'node:path';
8
+ import { createSecurityService, } from '../services/index.js';
9
+ /**
10
+ * CLI output formatter
11
+ */
12
+ class CLIFormatter {
13
+ useColors;
14
+ colors = {
15
+ critical: '\x1b[31m', // red
16
+ high: '\x1b[91m', // light red
17
+ medium: '\x1b[33m', // yellow
18
+ low: '\x1b[36m', // cyan
19
+ info: '\x1b[34m', // blue
20
+ reset: '\x1b[0m',
21
+ bold: '\x1b[1m',
22
+ dim: '\x1b[2m',
23
+ green: '\x1b[32m',
24
+ red: '\x1b[31m',
25
+ };
26
+ constructor(useColors = true) {
27
+ this.useColors = useColors;
28
+ if (!process.stdout.isTTY) {
29
+ this.useColors = false;
30
+ }
31
+ }
32
+ color(name, text) {
33
+ if (!this.useColors)
34
+ return text;
35
+ return `${this.colors[name]}${text}${this.colors.reset}`;
36
+ }
37
+ bold(text) {
38
+ return this.color('bold', text);
39
+ }
40
+ formatSeverity(severity) {
41
+ const severityColors = {
42
+ critical: 'critical',
43
+ high: 'high',
44
+ medium: 'medium',
45
+ low: 'low',
46
+ info: 'info',
47
+ };
48
+ const color = severityColors[severity] ?? 'info';
49
+ return this.color(color, severity.toUpperCase().padEnd(8));
50
+ }
51
+ formatSummary(result) {
52
+ const s = result.summary;
53
+ const lines = [];
54
+ lines.push('');
55
+ lines.push(this.bold('═══════════════════════════════════════════════════════════════'));
56
+ lines.push(this.bold(' 🔒 Security Scan Results'));
57
+ lines.push(this.bold('═══════════════════════════════════════════════════════════════'));
58
+ lines.push('');
59
+ lines.push(` ${this.color('dim', 'Target:')} ${result.metadata.target}`);
60
+ lines.push(` ${this.color('dim', 'Duration:')} ${result.metadata.duration}ms`);
61
+ lines.push(` ${this.color('dim', 'Files:')} ${result.metadata.filesScanned}`);
62
+ lines.push('');
63
+ lines.push(this.bold(' Vulnerability Summary:'));
64
+ lines.push(` ${this.formatSeverity('critical')} ${s.bySeverity.critical}`);
65
+ lines.push(` ${this.formatSeverity('high')} ${s.bySeverity.high}`);
66
+ lines.push(` ${this.formatSeverity('medium')} ${s.bySeverity.medium}`);
67
+ lines.push(` ${this.formatSeverity('low')} ${s.bySeverity.low}`);
68
+ lines.push(` ${this.formatSeverity('info')} ${s.bySeverity.info}`);
69
+ lines.push(` ────────────────────`);
70
+ lines.push(` ${this.bold('Total:')} ${s.totalVulnerabilities}`);
71
+ lines.push('');
72
+ if (s.taintedPaths > 0) {
73
+ lines.push(` ${this.color('dim', 'Tainted Paths:')} ${s.taintedPaths}`);
74
+ }
75
+ if (s.secretsFound > 0) {
76
+ lines.push(` ${this.color('red', '⚠ Secrets Found:')} ${s.secretsFound}`);
77
+ }
78
+ if (s.vulnerableDependencies > 0) {
79
+ lines.push(` ${this.color('dim', 'Vulnerable Deps:')} ${s.vulnerableDependencies}`);
80
+ }
81
+ if (s.fixesGenerated > 0) {
82
+ lines.push(` ${this.color('green', '✓ Fixes Generated:')} ${s.fixesGenerated}`);
83
+ }
84
+ lines.push('');
85
+ lines.push(this.bold('═══════════════════════════════════════════════════════════════'));
86
+ lines.push('');
87
+ return lines.join('\n');
88
+ }
89
+ formatVulnerabilities(result) {
90
+ if (!result.vulnerabilities || result.vulnerabilities.vulnerabilities.length === 0) {
91
+ return this.color('green', ' ✓ No vulnerabilities found\n');
92
+ }
93
+ const lines = [];
94
+ const vulns = result.vulnerabilities.vulnerabilities;
95
+ lines.push(this.bold('\n Vulnerabilities:\n'));
96
+ for (const vuln of vulns) {
97
+ lines.push(` ${this.formatSeverity(vuln.severity)} ${vuln.type}`);
98
+ lines.push(` ${this.color('dim', vuln.location.file)}:${vuln.location.startLine}`);
99
+ lines.push(` ${vuln.description}`);
100
+ if (vuln.cwes[0]) {
101
+ lines.push(` ${this.color('dim', `CWE: ${vuln.cwes[0]}`)}`);
102
+ }
103
+ lines.push('');
104
+ }
105
+ return lines.join('\n');
106
+ }
107
+ formatSecrets(result) {
108
+ if (!result.secrets || result.secrets.summary.total === 0) {
109
+ return '';
110
+ }
111
+ const lines = [];
112
+ lines.push(this.bold('\n ⚠ Secrets Detected:\n'));
113
+ for (const secret of result.secrets.secrets) {
114
+ lines.push(` ${this.color('red', '•')} ${secret.type}`);
115
+ lines.push(` ${this.color('dim', secret.location.file)}:${secret.location.startLine}`);
116
+ lines.push(` Value: ${secret.maskedValue}`);
117
+ lines.push('');
118
+ }
119
+ return lines.join('\n');
120
+ }
121
+ formatFixes(result) {
122
+ if (!result.fixes || result.fixes.length === 0) {
123
+ return '';
124
+ }
125
+ const lines = [];
126
+ lines.push(this.bold('\n Suggested Fixes:\n'));
127
+ for (const fix of result.fixes.slice(0, 5)) { // Show top 5
128
+ lines.push(` ${this.color('green', '✓')} ${fix.description}`);
129
+ lines.push(` ${this.color('dim', 'Strategy:')} ${fix.strategy}`);
130
+ lines.push(` ${this.color('dim', 'File:')} ${fix.edits[0]?.location.file ?? 'N/A'}`);
131
+ lines.push('');
132
+ }
133
+ if (result.fixes.length > 5) {
134
+ lines.push(` ${this.color('dim', `... and ${result.fixes.length - 5} more`)}`);
135
+ }
136
+ return lines.join('\n');
137
+ }
138
+ }
139
+ /**
140
+ * Create security CLI command
141
+ */
142
+ export function createSecurityCLI() {
143
+ const program = new Command();
144
+ const formatter = new CLIFormatter();
145
+ program
146
+ .name('musubix-security')
147
+ .description('MUSUBIX Security Scanner - Static Analysis & Vulnerability Detection')
148
+ .version('1.8.0');
149
+ // Scan command
150
+ program
151
+ .command('scan [target]')
152
+ .description('Scan target for security vulnerabilities')
153
+ .option('-o, --output <file>', 'Output file for report')
154
+ .option('-f, --format <format>', 'Report format (json|sarif|markdown|html)', 'json')
155
+ .option('--no-vulnerabilities', 'Skip vulnerability scanning')
156
+ .option('--no-taint', 'Skip taint analysis')
157
+ .option('--no-secrets', 'Skip secret detection')
158
+ .option('--no-deps', 'Skip dependency audit')
159
+ .option('--no-fixes', 'Skip fix generation')
160
+ .option('--verify', 'Verify generated fixes')
161
+ .option('-q, --quiet', 'Quiet mode - only output report')
162
+ .option('--json', 'Output JSON to stdout')
163
+ .action(async (target = '.', options) => {
164
+ try {
165
+ const service = createSecurityService();
166
+ const targetPath = path.resolve(target);
167
+ if (!options.quiet) {
168
+ console.log(`\n Scanning ${targetPath}...\n`);
169
+ }
170
+ const result = await service.scan({
171
+ target: targetPath,
172
+ vulnerabilities: options.vulnerabilities,
173
+ taint: options.taint,
174
+ secrets: options.secrets,
175
+ dependencies: options.deps,
176
+ generateFixes: options.fixes,
177
+ verifyFixes: options.verify,
178
+ });
179
+ if (options.json) {
180
+ console.log(JSON.stringify(result, null, 2));
181
+ return;
182
+ }
183
+ if (!options.quiet) {
184
+ console.log(formatter.formatSummary(result));
185
+ console.log(formatter.formatVulnerabilities(result));
186
+ console.log(formatter.formatSecrets(result));
187
+ console.log(formatter.formatFixes(result));
188
+ }
189
+ if (options.output) {
190
+ const report = await service.generateReport(result, options.format);
191
+ const fs = await import('node:fs/promises');
192
+ await fs.writeFile(options.output, report, 'utf-8');
193
+ console.log(` Report saved to: ${options.output}\n`);
194
+ }
195
+ // Exit with error code if critical/high vulnerabilities found
196
+ if (result.summary.bySeverity.critical > 0 ||
197
+ result.summary.bySeverity.high > 0) {
198
+ process.exitCode = 1;
199
+ }
200
+ }
201
+ catch (error) {
202
+ console.error(`Error: ${error.message}`);
203
+ process.exitCode = 1;
204
+ }
205
+ });
206
+ // Quick scan command
207
+ program
208
+ .command('quick [target]')
209
+ .description('Quick vulnerability scan (no taint/secrets/deps)')
210
+ .option('--json', 'Output JSON')
211
+ .action(async (target = '.', options) => {
212
+ try {
213
+ const service = createSecurityService();
214
+ const result = await service.quickScan(path.resolve(target));
215
+ if (options.json) {
216
+ console.log(JSON.stringify(result, null, 2));
217
+ }
218
+ else {
219
+ console.log(`\n Found ${result.vulnerabilities.length} vulnerabilities\n`);
220
+ for (const vuln of result.vulnerabilities.slice(0, 10)) {
221
+ console.log(` ${formatter.formatSeverity(vuln.severity)} ${vuln.type}`);
222
+ console.log(` ${vuln.location.file}:${vuln.location.startLine}\n`);
223
+ }
224
+ }
225
+ }
226
+ catch (error) {
227
+ console.error(`Error: ${error.message}`);
228
+ process.exitCode = 1;
229
+ }
230
+ });
231
+ // Taint analysis command
232
+ program
233
+ .command('taint [target]')
234
+ .description('Run taint analysis')
235
+ .option('--json', 'Output JSON')
236
+ .action(async (target = '.', options) => {
237
+ try {
238
+ const service = createSecurityService();
239
+ const result = await service.analyzeTaint(path.resolve(target));
240
+ if (options.json) {
241
+ console.log(JSON.stringify(result, null, 2));
242
+ }
243
+ else {
244
+ console.log(`\n Sources: ${result.sources.length}`);
245
+ console.log(` Sinks: ${result.sinks.length}`);
246
+ console.log(` Tainted Paths: ${result.unsafePaths.length}\n`);
247
+ for (const taintPath of result.unsafePaths.slice(0, 5)) {
248
+ console.log(` Source: ${taintPath.source.variableName ?? taintPath.source.expression} (${taintPath.source.location.file}:${taintPath.source.location.startLine})`);
249
+ console.log(` → Sink: ${taintPath.sink.functionName} (${taintPath.sink.location.file}:${taintPath.sink.location.startLine})`);
250
+ console.log(` Sanitized: ${taintPath.sanitized ? 'Yes' : 'No'}\n`);
251
+ }
252
+ }
253
+ }
254
+ catch (error) {
255
+ console.error(`Error: ${error.message}`);
256
+ process.exitCode = 1;
257
+ }
258
+ });
259
+ // Secrets detection command
260
+ program
261
+ .command('secrets [target]')
262
+ .description('Detect hardcoded secrets')
263
+ .option('--json', 'Output JSON')
264
+ .action(async (target = '.', options) => {
265
+ try {
266
+ const service = createSecurityService();
267
+ const result = await service.detectSecrets(path.resolve(target));
268
+ if (options.json) {
269
+ console.log(JSON.stringify(result, null, 2));
270
+ }
271
+ else {
272
+ console.log(`\n Secrets Found: ${result.summary.total}\n`);
273
+ for (const secret of result.secrets) {
274
+ console.log(` ⚠ ${secret.type}`);
275
+ console.log(` ${secret.location.file}:${secret.location.startLine}`);
276
+ console.log(` ${secret.maskedValue}\n`);
277
+ }
278
+ }
279
+ }
280
+ catch (error) {
281
+ console.error(`Error: ${error.message}`);
282
+ process.exitCode = 1;
283
+ }
284
+ });
285
+ // Dependency audit command
286
+ program
287
+ .command('audit [target]')
288
+ .description('Audit dependencies for vulnerabilities')
289
+ .option('--json', 'Output JSON')
290
+ .option('--sbom', 'Generate SBOM')
291
+ .action(async (target = '.', options) => {
292
+ try {
293
+ const service = createSecurityService();
294
+ const targetPath = path.resolve(target);
295
+ if (options.sbom) {
296
+ const auditor = new (await import('../analysis/index.js')).DependencyAuditor();
297
+ const sbom = await auditor.generateSBOM(targetPath);
298
+ console.log(JSON.stringify(sbom, null, 2));
299
+ return;
300
+ }
301
+ const result = await service.auditDependencies(targetPath);
302
+ if (options.json) {
303
+ console.log(JSON.stringify(result, null, 2));
304
+ }
305
+ else {
306
+ console.log(`\n Vulnerable Dependencies: ${result.vulnerableDependencies.length}\n`);
307
+ for (const dep of result.vulnerableDependencies) {
308
+ console.log(` ${formatter.formatSeverity(dep.highestSeverity)} ${dep.name}@${dep.installedVersion}`);
309
+ console.log(` ${dep.vulnerabilities[0]?.title ?? 'N/A'}`);
310
+ if (dep.vulnerabilities[0]?.patchedVersion) {
311
+ console.log(` Fix: ${dep.vulnerabilities[0].patchedVersion}\n`);
312
+ }
313
+ else {
314
+ console.log('');
315
+ }
316
+ }
317
+ }
318
+ }
319
+ catch (error) {
320
+ console.error(`Error: ${error.message}`);
321
+ process.exitCode = 1;
322
+ }
323
+ });
324
+ // Fix generation command
325
+ program
326
+ .command('fix [target]')
327
+ .description('Generate fixes for vulnerabilities')
328
+ .option('--verify', 'Verify generated fixes')
329
+ .option('--apply', 'Apply fixes (use with caution)')
330
+ .option('--json', 'Output JSON')
331
+ .action(async (target = '.', options) => {
332
+ try {
333
+ const service = createSecurityService();
334
+ const targetPath = path.resolve(target);
335
+ const scanResult = await service.scan({
336
+ target: targetPath,
337
+ generateFixes: true,
338
+ verifyFixes: options.verify,
339
+ });
340
+ if (!scanResult.fixes || scanResult.fixes.length === 0) {
341
+ console.log('\n No fixes to generate\n');
342
+ return;
343
+ }
344
+ if (options.json) {
345
+ console.log(JSON.stringify(scanResult.fixes, null, 2));
346
+ return;
347
+ }
348
+ console.log(`\n Generated ${scanResult.fixes.length} fixes\n`);
349
+ for (const fix of scanResult.fixes) {
350
+ console.log(` ${fix.description}`);
351
+ console.log(` Strategy: ${fix.strategy}`);
352
+ if (scanResult.verifications) {
353
+ const verification = scanResult.verifications.find(v => v.fixId === fix.id);
354
+ if (verification) {
355
+ const status = verification.status === 'verified' ? '✓' : '✗';
356
+ console.log(` Verified: ${status} ${verification.status}`);
357
+ }
358
+ }
359
+ console.log('');
360
+ }
361
+ if (options.apply) {
362
+ console.log(' ⚠ Apply mode not yet implemented');
363
+ console.log(' Please review fixes and apply manually\n');
364
+ }
365
+ }
366
+ catch (error) {
367
+ console.error(`Error: ${error.message}`);
368
+ process.exitCode = 1;
369
+ }
370
+ });
371
+ // Report generation command
372
+ program
373
+ .command('report [target]')
374
+ .description('Generate security report')
375
+ .option('-o, --output <file>', 'Output file (required)')
376
+ .option('-f, --format <format>', 'Format (json|sarif|markdown|html)', 'json')
377
+ .action(async (target = '.', options) => {
378
+ try {
379
+ if (!options.output) {
380
+ console.error('Error: --output is required');
381
+ process.exitCode = 1;
382
+ return;
383
+ }
384
+ const service = createSecurityService();
385
+ const result = await service.scan({ target: path.resolve(target) });
386
+ const report = await service.generateReport(result, options.format);
387
+ const fs = await import('node:fs/promises');
388
+ await fs.writeFile(options.output, report, 'utf-8');
389
+ console.log(` Report saved to: ${options.output}`);
390
+ }
391
+ catch (error) {
392
+ console.error(`Error: ${error.message}`);
393
+ process.exitCode = 1;
394
+ }
395
+ });
396
+ return program;
397
+ }
398
+ /**
399
+ * Run CLI
400
+ */
401
+ export async function runCLI(args = process.argv) {
402
+ const program = createSecurityCLI();
403
+ await program.parseAsync(args);
404
+ }
405
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview CLI module entry point
3
+ * @module @nahisaho/musubix-security/cli
4
+ */
5
+ export { createSecurityCLI, runCLI } from './commands.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview CLI module entry point
3
+ * @module @nahisaho/musubix-security/cli
4
+ */
5
+ export { createSecurityCLI, runCLI } from './commands.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview MUSUBIX Security Package - Main Entry Point
3
+ * @module @nahisaho/musubix-security
4
+ * @version 1.8.0
5
+ *
6
+ * Static analysis and vulnerability detection for TypeScript/JavaScript applications.
7
+ *
8
+ * Features:
9
+ * - Vulnerability scanning (SQL Injection, XSS, Command Injection, etc.)
10
+ * - Taint analysis (data flow tracking)
11
+ * - Secret detection (API keys, passwords, tokens)
12
+ * - Dependency auditing (npm audit integration)
13
+ * - Fix generation and verification
14
+ * - Multiple report formats (JSON, SARIF, Markdown, HTML)
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { runSecurityScan, createSecurityService } from '@nahisaho/musubix-security';
19
+ *
20
+ * // Quick scan
21
+ * const result = await runSecurityScan('./src');
22
+ * console.log(`Found ${result.summary.totalVulnerabilities} vulnerabilities`);
23
+ *
24
+ * // Full service usage
25
+ * const service = createSecurityService();
26
+ * const scanResult = await service.scan({
27
+ * target: './src',
28
+ * vulnerabilities: true,
29
+ * taint: true,
30
+ * secrets: true,
31
+ * dependencies: true,
32
+ * generateFixes: true,
33
+ * });
34
+ * ```
35
+ */
36
+ export { type Vulnerability, type SourceLocation, type ScanResult, type SecurityRule, type Severity, type OWASPCategory, type TaintSource, type TaintSink, type TaintPath, type TaintResult, type SanitizerDefinition, BUILTIN_SANITIZERS, type Fix, type CodeEdit, type ImportEdit, type VerificationResult, type VerificationStatus, type ApplyResult, type FixBatch, type FixStrategy, type Secret, type SecretPattern, type SecretScanResult, BUILTIN_SECRET_PATTERNS, type AuditResult, type VulnerableDependency, type DependencyVulnerability, type SBOM, type SBOMEntry, type LicensePolicy, type SecurityConfig, type ReportConfig, type CacheConfig, type CIConfig, DEFAULT_CONFIG, } from './types/index.js';
37
+ export { VulnerabilityScanner, TaintAnalyzer, SecretDetector, DependencyAuditor, } from './analysis/index.js';
38
+ export { ASTParser, FileScanner, loadConfig, loadConfigSync, MemoryCache, FileCache, NoopCache, cacheKey, contentHash, type ICache, } from './infrastructure/index.js';
39
+ export { SecurityService, createSecurityService, scanForVulnerabilities, runSecurityScan, type ScanOptions, type CompleteScanResult, FixGenerator, createFixGenerator, FixVerifier, createFixVerifier, type VerificationOptions, ReportGenerator, createReportGenerator, type ReportFormat, type CombinedResults, type ReportMetadata, } from './services/index.js';
40
+ export { createSecurityCLI, runCLI } from './cli/index.js';
41
+ export { SecurityMCPServer, startMCPServer, runMCPServer, SecurityToolHandler, createToolHandler, getToolSchemas, SECURITY_TOOLS, type ToolSchema, type ToolResult, } from './mcp/index.js';
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,aAAa,EAGlB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,kBAAkB,EAGlB,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAGhB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,uBAAuB,EAGvB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,aAAa,EAGlB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,cAAc,GACf,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,KAAK,MAAM,GACZ,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EAGvB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,KAAK,mBAAmB,EAGxB,eAAe,EACf,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM3D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @fileoverview MUSUBIX Security Package - Main Entry Point
3
+ * @module @nahisaho/musubix-security
4
+ * @version 1.8.0
5
+ *
6
+ * Static analysis and vulnerability detection for TypeScript/JavaScript applications.
7
+ *
8
+ * Features:
9
+ * - Vulnerability scanning (SQL Injection, XSS, Command Injection, etc.)
10
+ * - Taint analysis (data flow tracking)
11
+ * - Secret detection (API keys, passwords, tokens)
12
+ * - Dependency auditing (npm audit integration)
13
+ * - Fix generation and verification
14
+ * - Multiple report formats (JSON, SARIF, Markdown, HTML)
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { runSecurityScan, createSecurityService } from '@nahisaho/musubix-security';
19
+ *
20
+ * // Quick scan
21
+ * const result = await runSecurityScan('./src');
22
+ * console.log(`Found ${result.summary.totalVulnerabilities} vulnerabilities`);
23
+ *
24
+ * // Full service usage
25
+ * const service = createSecurityService();
26
+ * const scanResult = await service.scan({
27
+ * target: './src',
28
+ * vulnerabilities: true,
29
+ * taint: true,
30
+ * secrets: true,
31
+ * dependencies: true,
32
+ * generateFixes: true,
33
+ * });
34
+ * ```
35
+ */
36
+ // ============================================================================
37
+ // Types
38
+ // ============================================================================
39
+ export { BUILTIN_SANITIZERS, BUILTIN_SECRET_PATTERNS, DEFAULT_CONFIG, } from './types/index.js';
40
+ // ============================================================================
41
+ // Analysis
42
+ // ============================================================================
43
+ export { VulnerabilityScanner, TaintAnalyzer, SecretDetector, DependencyAuditor, } from './analysis/index.js';
44
+ // ============================================================================
45
+ // Infrastructure
46
+ // ============================================================================
47
+ export { ASTParser, FileScanner, loadConfig, loadConfigSync, MemoryCache, FileCache, NoopCache, cacheKey, contentHash, } from './infrastructure/index.js';
48
+ // ============================================================================
49
+ // Services
50
+ // ============================================================================
51
+ export {
52
+ // Main service
53
+ SecurityService, createSecurityService, scanForVulnerabilities, runSecurityScan,
54
+ // Fix services
55
+ FixGenerator, createFixGenerator, FixVerifier, createFixVerifier,
56
+ // Report services
57
+ ReportGenerator, createReportGenerator, } from './services/index.js';
58
+ // ============================================================================
59
+ // CLI
60
+ // ============================================================================
61
+ export { createSecurityCLI, runCLI } from './cli/index.js';
62
+ // ============================================================================
63
+ // MCP
64
+ // ============================================================================
65
+ export { SecurityMCPServer, startMCPServer, runMCPServer, SecurityToolHandler, createToolHandler, getToolSchemas, SECURITY_TOOLS, } from './mcp/index.js';
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,OAAO,EAeL,kBAAkB,EAgBlB,uBAAuB,EAevB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,GAEZ,MAAM,2BAA2B,CAAC;AAEnC,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO;AACL,eAAe;AACf,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,eAAe;AAIf,eAAe;AACf,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,iBAAiB;AAGjB,kBAAkB;AAClB,eAAe,EACf,qBAAqB,GAItB,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,MAAM;AACN,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE3D,+EAA+E;AAC/E,MAAM;AACN,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,GAGf,MAAM,gBAAgB,CAAC"}