codeslick-cli 1.0.3 → 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 +73 -21
- package/bin/codeslick.cjs +21 -2
- 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
|
@@ -35,11 +35,17 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.getTypeScriptDiagnostics = getTypeScriptDiagnostics;
|
|
37
37
|
exports.convertDiagnosticsToIssues = convertDiagnosticsToIssues;
|
|
38
|
+
exports.getBatchTypeScriptDiagnostics = getBatchTypeScriptDiagnostics;
|
|
39
|
+
exports.getBatchTypeScriptDiagnosticsChunked = getBatchTypeScriptDiagnosticsChunked;
|
|
38
40
|
const ts = __importStar(require("typescript"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
39
42
|
/**
|
|
40
43
|
* TypeScript Compiler API Integration
|
|
41
44
|
* Purpose: Detect actual TypeScript type errors (95%+ coverage)
|
|
42
45
|
* Created: 2025-12-02 to address critical detection gap (5% → 95%+)
|
|
46
|
+
*
|
|
47
|
+
* OPTIMIZATION (Jan 15, 2026): For CLI batch scanning, use getBatchTypeScriptDiagnostics
|
|
48
|
+
* instead to avoid creating a new program for each file (17x speedup).
|
|
43
49
|
*/
|
|
44
50
|
function getTypeScriptDiagnostics(code, fileName = 'temp.ts', options) {
|
|
45
51
|
const compilerOptions = {
|
|
@@ -101,6 +107,7 @@ function getTypeScriptDiagnostics(code, fileName = 'temp.ts', options) {
|
|
|
101
107
|
2300, // Duplicate identifier (caused by multiple test files)
|
|
102
108
|
// 2304, // Cannot find name - Using smart filtering instead (see below)
|
|
103
109
|
2580, // Cannot find name 'process' (Node.js global without @types/node)
|
|
110
|
+
2583, // Cannot find name 'X'. Do you need to change target library? (ES2015+ built-ins without lib)
|
|
104
111
|
2584, // Cannot find name (variant - globals like console, fetch, etc.)
|
|
105
112
|
// 2339, // Property does not exist on type - Using smart filtering for test files only
|
|
106
113
|
2551, // Property does not exist (did you mean X?)
|
|
@@ -138,6 +145,13 @@ function getTypeScriptDiagnostics(code, fileName = 'temp.ts', options) {
|
|
|
138
145
|
'encodeURI', 'decodeURI', 'encodeURIComponent', 'decodeURIComponent',
|
|
139
146
|
'JSON', 'Math', 'Date', 'RegExp', 'Error', 'Map', 'Set', 'WeakMap', 'WeakSet',
|
|
140
147
|
'Symbol', 'Proxy', 'Reflect', 'Int8Array', 'Uint8Array', 'Float32Array',
|
|
148
|
+
// TypeScript utility types (built-in, no import needed)
|
|
149
|
+
'Partial', 'Required', 'Readonly', 'Record', 'Pick', 'Omit', 'Exclude', 'Extract',
|
|
150
|
+
'NonNullable', 'Parameters', 'ConstructorParameters', 'ReturnType', 'InstanceType',
|
|
151
|
+
'ThisParameterType', 'OmitThisParameter', 'ThisType', 'Awaited', 'Uppercase',
|
|
152
|
+
'Lowercase', 'Capitalize', 'Uncapitalize', 'PropertyKey', 'Iterable', 'Iterator',
|
|
153
|
+
'IterableIterator', 'Generator', 'GeneratorFunction', 'AsyncGenerator',
|
|
154
|
+
'AsyncGeneratorFunction', 'AsyncIterable', 'AsyncIterableIterator',
|
|
141
155
|
// JSX element names (HTML tags used in JSX)
|
|
142
156
|
'div', 'span', 'input', 'button', 'form', 'a', 'p', 'h1', 'h2', 'h3',
|
|
143
157
|
'ul', 'li', 'table', 'tr', 'td', 'th', 'img', 'label', 'select', 'option',
|
|
@@ -200,37 +214,56 @@ function getTypeScriptDiagnostics(code, fileName = 'temp.ts', options) {
|
|
|
200
214
|
}
|
|
201
215
|
// Keep the error - likely a type typo (strng, numbr, boolen, etc.)
|
|
202
216
|
}
|
|
203
|
-
// SMART FILTERING FOR 2339: Property access
|
|
217
|
+
// SMART FILTERING FOR 2339: Property access errors
|
|
204
218
|
// Error 2339: Property 'X' does not exist on type 'Y'
|
|
205
|
-
|
|
206
|
-
if (diagnostic.code === 2339 && isTestFile) {
|
|
219
|
+
if (diagnostic.code === 2339) {
|
|
207
220
|
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
|
208
|
-
//
|
|
209
|
-
// Example: "Property '
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (isTestVariableAccess) {
|
|
214
|
-
return false; // Filter test file property access patterns
|
|
221
|
+
// GLOBAL FIX: Filter false positives where type is '{}' (compiler artifact from missing lib types)
|
|
222
|
+
// Example: "Property 'filter' does not exist on type '{}'." - arrays inferred as {} without lib
|
|
223
|
+
// This is NOT a real code issue - it's because our in-memory compiler doesn't have full lib.d.ts
|
|
224
|
+
if (message.includes("type '{}'")) {
|
|
225
|
+
return false; // Filter compiler artifacts from missing lib types
|
|
215
226
|
}
|
|
216
|
-
// FIX: Filter
|
|
217
|
-
//
|
|
218
|
-
//
|
|
227
|
+
// GLOBAL FIX: Filter false positives where built-in methods don't exist on primitive types
|
|
228
|
+
// This happens because our in-memory compiler doesn't have full lib.d.ts loaded
|
|
229
|
+
// Example: "Property 'split' does not exist on type 'string'" (FALSE POSITIVE!)
|
|
219
230
|
const builtInStringMethods = [
|
|
220
|
-
'toUpperCase', 'toLowerCase', 'trim', 'split', 'slice', 'substring',
|
|
221
|
-
'charAt', '
|
|
222
|
-
'
|
|
231
|
+
'toUpperCase', 'toLowerCase', 'trim', 'trimStart', 'trimEnd', 'split', 'slice', 'substring',
|
|
232
|
+
'charAt', 'charCodeAt', 'codePointAt', 'indexOf', 'lastIndexOf', 'includes',
|
|
233
|
+
'startsWith', 'endsWith', 'replace', 'replaceAll', 'match', 'matchAll', 'search',
|
|
234
|
+
'concat', 'repeat', 'padStart', 'padEnd', 'normalize', 'localeCompare',
|
|
235
|
+
'toString', 'valueOf', 'at', 'length'
|
|
223
236
|
];
|
|
224
237
|
const builtInArrayMethods = [
|
|
225
238
|
'push', 'pop', 'shift', 'unshift', 'slice', 'splice', 'concat',
|
|
226
|
-
'join', 'reverse', 'sort', 'filter', 'map', 'reduce', 'forEach',
|
|
227
|
-
'find', 'findIndex', 'some', 'every', 'includes'
|
|
239
|
+
'join', 'reverse', 'sort', 'filter', 'map', 'reduce', 'reduceRight', 'forEach',
|
|
240
|
+
'find', 'findIndex', 'findLast', 'findLastIndex', 'some', 'every', 'includes',
|
|
241
|
+
'indexOf', 'lastIndexOf', 'flat', 'flatMap', 'fill', 'copyWithin',
|
|
242
|
+
'entries', 'keys', 'values', 'at', 'toReversed', 'toSorted', 'toSpliced', 'with',
|
|
243
|
+
'toString', 'toLocaleString', 'length'
|
|
244
|
+
];
|
|
245
|
+
const builtInNumberMethods = [
|
|
246
|
+
'toFixed', 'toExponential', 'toPrecision', 'toString', 'valueOf', 'toLocaleString'
|
|
228
247
|
];
|
|
229
|
-
// Check if this is a false positive about built-in methods
|
|
230
|
-
|
|
231
|
-
|
|
248
|
+
// Check if this is a false positive about built-in methods on primitive types
|
|
249
|
+
// FIX (Jan 15, 2026): Also match string literal types like '"─"' or '"hello"'
|
|
250
|
+
const isStringLiteralType = /type '["'][^"']*["']'/.test(message);
|
|
251
|
+
const isBuiltInMethodFalsePositive = builtInStringMethods.some(method => message.includes(`'${method}'`) && (message.includes("type 'string'") || isStringLiteralType)) ||
|
|
252
|
+
builtInArrayMethods.some(method => message.includes(`'${method}'`) && (message.includes("type 'any[]'") || message.includes("type 'never[]'"))) ||
|
|
253
|
+
builtInNumberMethods.some(method => message.includes(`'${method}'`) && message.includes("type 'number'"));
|
|
232
254
|
if (isBuiltInMethodFalsePositive) {
|
|
233
|
-
return false; // Filter
|
|
255
|
+
return false; // Filter compiler artifacts from missing lib types
|
|
256
|
+
}
|
|
257
|
+
// Test file specific filtering
|
|
258
|
+
if (isTestFile) {
|
|
259
|
+
// Check if this is accessing a property on a test variable pattern
|
|
260
|
+
// Example: "Property 'name' does not exist on type 'typeof userData'"
|
|
261
|
+
const isTestVariableAccess = testFileVariablePatterns.some(pattern => message.includes(`typeof ${pattern}`) ||
|
|
262
|
+
message.includes(`'${pattern}'`) ||
|
|
263
|
+
message.includes(`"${pattern}"`));
|
|
264
|
+
if (isTestVariableAccess) {
|
|
265
|
+
return false; // Filter test file property access patterns
|
|
266
|
+
}
|
|
234
267
|
}
|
|
235
268
|
// Keep the error - legitimate property type mismatch
|
|
236
269
|
}
|
|
@@ -512,4 +545,213 @@ function getSuggestionForDiagnostic(code, message) {
|
|
|
512
545
|
};
|
|
513
546
|
return suggestions[code] || 'Review TypeScript documentation for this error code: https://typescript-error-translator.vercel.app/';
|
|
514
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Batch TypeScript Compiler API Integration
|
|
550
|
+
* Purpose: Analyze multiple TypeScript files in a single pass (17x faster)
|
|
551
|
+
* Created: Jan 15, 2026 for CLI performance optimization
|
|
552
|
+
*
|
|
553
|
+
* Instead of creating a new ts.Program for each file, this function:
|
|
554
|
+
* 1. Reads all files into memory
|
|
555
|
+
* 2. Creates ONE shared ts.Program with all files
|
|
556
|
+
* 3. Gets diagnostics for each file from the shared program
|
|
557
|
+
*
|
|
558
|
+
* Performance: 490 files in ~1-5 seconds instead of 3+ minutes
|
|
559
|
+
*/
|
|
560
|
+
function getBatchTypeScriptDiagnostics(filePaths, options) {
|
|
561
|
+
const startTime = performance.now();
|
|
562
|
+
if (filePaths.length === 0) {
|
|
563
|
+
return {
|
|
564
|
+
diagnostics: new Map(),
|
|
565
|
+
duration: 0,
|
|
566
|
+
fileCount: 0
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
// Read all files and create source files
|
|
570
|
+
const sourceFiles = new Map();
|
|
571
|
+
const fileContents = new Map();
|
|
572
|
+
for (const filePath of filePaths) {
|
|
573
|
+
try {
|
|
574
|
+
const code = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
575
|
+
fileContents.set(filePath, code);
|
|
576
|
+
sourceFiles.set(filePath, ts.createSourceFile(filePath, code, ts.ScriptTarget.ES2020, true));
|
|
577
|
+
}
|
|
578
|
+
catch (error) {
|
|
579
|
+
// Skip files that can't be read
|
|
580
|
+
console.error(`Failed to read file: ${filePath}`, error);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
const compilerOptions = {
|
|
584
|
+
strict: options?.strict ?? true,
|
|
585
|
+
noImplicitAny: options?.noImplicitAny ?? true,
|
|
586
|
+
strictNullChecks: options?.strictNullChecks ?? true,
|
|
587
|
+
strictFunctionTypes: options?.strictFunctionTypes ?? true,
|
|
588
|
+
strictPropertyInitialization: options?.strictPropertyInitialization ?? true,
|
|
589
|
+
noUnusedLocals: true,
|
|
590
|
+
noUnusedParameters: true,
|
|
591
|
+
noImplicitReturns: true,
|
|
592
|
+
noFallthroughCasesInSwitch: true,
|
|
593
|
+
target: ts.ScriptTarget.ES2020,
|
|
594
|
+
module: ts.ModuleKind.ESNext,
|
|
595
|
+
lib: ['lib.es2020.d.ts', 'lib.dom.d.ts'],
|
|
596
|
+
jsx: ts.JsxEmit.React,
|
|
597
|
+
moduleResolution: ts.ModuleResolutionKind.NodeJs,
|
|
598
|
+
allowJs: false,
|
|
599
|
+
declaration: false,
|
|
600
|
+
outDir: undefined,
|
|
601
|
+
skipLibCheck: true,
|
|
602
|
+
forceConsistentCasingInFileNames: true
|
|
603
|
+
};
|
|
604
|
+
// Create a shared compiler host for ALL files
|
|
605
|
+
const host = {
|
|
606
|
+
getSourceFile: (name, languageVersion) => {
|
|
607
|
+
// Return file from our batch if it exists
|
|
608
|
+
if (sourceFiles.has(name)) {
|
|
609
|
+
return sourceFiles.get(name);
|
|
610
|
+
}
|
|
611
|
+
// Handle library files - return empty to avoid errors
|
|
612
|
+
if (name.includes('lib.') || name.includes('node_modules') || name.endsWith('.d.ts')) {
|
|
613
|
+
return ts.createSourceFile(name, '', languageVersion, true);
|
|
614
|
+
}
|
|
615
|
+
return undefined;
|
|
616
|
+
},
|
|
617
|
+
writeFile: () => { },
|
|
618
|
+
getCurrentDirectory: () => process.cwd(),
|
|
619
|
+
getDirectories: () => [],
|
|
620
|
+
fileExists: (name) => {
|
|
621
|
+
return sourceFiles.has(name) ||
|
|
622
|
+
name.includes('lib.') ||
|
|
623
|
+
name.includes('node_modules') ||
|
|
624
|
+
name.endsWith('.d.ts');
|
|
625
|
+
},
|
|
626
|
+
readFile: (name) => {
|
|
627
|
+
return fileContents.get(name) || '';
|
|
628
|
+
},
|
|
629
|
+
getCanonicalFileName: (name) => name,
|
|
630
|
+
useCaseSensitiveFileNames: () => true,
|
|
631
|
+
getNewLine: () => '\n',
|
|
632
|
+
getDefaultLibFileName: () => 'lib.d.ts'
|
|
633
|
+
};
|
|
634
|
+
// CREATE ONE PROGRAM WITH ALL FILES
|
|
635
|
+
const allFilePaths = Array.from(sourceFiles.keys());
|
|
636
|
+
const program = ts.createProgram(allFilePaths, compilerOptions, host);
|
|
637
|
+
// Benign error codes to filter out (same as single-file version)
|
|
638
|
+
const benignErrorCodes = new Set([
|
|
639
|
+
2307, 2300, 2580, 2583, 2584, 2551, 2571, 2769, 2802,
|
|
640
|
+
6192, 6137, 1110, 1109, 1434, 1435, 2451, 7005, 7006,
|
|
641
|
+
2305, 2503, 2711, 18046
|
|
642
|
+
]);
|
|
643
|
+
// Known library/global names
|
|
644
|
+
const knownLibraryNames = new Set([
|
|
645
|
+
'console', 'fetch', 'window', 'document', 'process', 'Buffer', 'global',
|
|
646
|
+
'require', 'module', 'exports', '__dirname', '__filename',
|
|
647
|
+
'React', 'Component', 'useState', 'useEffect', 'useCallback', 'useMemo',
|
|
648
|
+
'describe', 'it', 'expect', 'test', 'beforeEach', 'afterEach',
|
|
649
|
+
'Request', 'Response', 'Headers', 'FormData', 'Blob',
|
|
650
|
+
'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval',
|
|
651
|
+
'Promise', 'Array', 'Object', 'String', 'Number', 'Boolean',
|
|
652
|
+
'eval', 'parseInt', 'parseFloat', 'isNaN', 'isFinite',
|
|
653
|
+
'JSON', 'Math', 'Date', 'RegExp', 'Error', 'Map', 'Set',
|
|
654
|
+
'Partial', 'Required', 'Readonly', 'Record', 'Pick', 'Omit',
|
|
655
|
+
'div', 'span', 'input', 'button', 'form', 'a', 'p', 'h1', 'h2', 'h3'
|
|
656
|
+
]);
|
|
657
|
+
// Built-in string methods for false positive filtering
|
|
658
|
+
const builtInStringMethods = [
|
|
659
|
+
'toUpperCase', 'toLowerCase', 'trim', 'trimStart', 'trimEnd', 'split', 'slice', 'substring',
|
|
660
|
+
'charAt', 'charCodeAt', 'indexOf', 'lastIndexOf', 'includes', 'startsWith', 'endsWith',
|
|
661
|
+
'replace', 'replaceAll', 'match', 'search', 'concat', 'repeat', 'padStart', 'padEnd',
|
|
662
|
+
'toString', 'valueOf', 'at', 'length'
|
|
663
|
+
];
|
|
664
|
+
// Built-in number methods for false positive filtering
|
|
665
|
+
const builtInNumberMethods = [
|
|
666
|
+
'toFixed', 'toExponential', 'toPrecision', 'toString', 'valueOf', 'toLocaleString'
|
|
667
|
+
];
|
|
668
|
+
// Built-in array methods for false positive filtering
|
|
669
|
+
const builtInArrayMethods = [
|
|
670
|
+
'push', 'pop', 'shift', 'unshift', 'slice', 'splice', 'concat', 'join', 'reverse', 'sort',
|
|
671
|
+
'filter', 'map', 'reduce', 'reduceRight', 'forEach', 'find', 'findIndex', 'some', 'every',
|
|
672
|
+
'includes', 'indexOf', 'lastIndexOf', 'flat', 'flatMap', 'fill', 'copyWithin', 'entries',
|
|
673
|
+
'keys', 'values', 'at', 'toString', 'toLocaleString', 'length'
|
|
674
|
+
];
|
|
675
|
+
// Get diagnostics for each file
|
|
676
|
+
const diagnostics = new Map();
|
|
677
|
+
sourceFiles.forEach((sourceFile, filePath) => {
|
|
678
|
+
const syntacticDiagnostics = program.getSyntacticDiagnostics(sourceFile);
|
|
679
|
+
const semanticDiagnostics = program.getSemanticDiagnostics(sourceFile);
|
|
680
|
+
// Filter diagnostics (same logic as single-file version)
|
|
681
|
+
const filtered = [...syntacticDiagnostics, ...semanticDiagnostics]
|
|
682
|
+
.filter(diagnostic => {
|
|
683
|
+
// Only include diagnostics for this source file
|
|
684
|
+
if (diagnostic.file !== sourceFile) {
|
|
685
|
+
return false;
|
|
686
|
+
}
|
|
687
|
+
// Filter benign error codes
|
|
688
|
+
if (benignErrorCodes.has(diagnostic.code)) {
|
|
689
|
+
return false;
|
|
690
|
+
}
|
|
691
|
+
// Smart filtering for "Cannot find name" errors
|
|
692
|
+
if (diagnostic.code === 2304 || diagnostic.code === 2552) {
|
|
693
|
+
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
|
694
|
+
const isKnownLibrary = Array.from(knownLibraryNames).some(name => message.includes(`'${name}'`) || message.includes(`"${name}"`));
|
|
695
|
+
if (isKnownLibrary) {
|
|
696
|
+
return false;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
// Filter property access on empty type and built-in method false positives
|
|
700
|
+
if (diagnostic.code === 2339) {
|
|
701
|
+
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
|
702
|
+
if (message.includes("type '{}'")) {
|
|
703
|
+
return false;
|
|
704
|
+
}
|
|
705
|
+
// Filter string literal type false positives
|
|
706
|
+
const isStringLiteralType = /type '["'][^"']*["']'/.test(message);
|
|
707
|
+
const isStringMethodFalsePositive = builtInStringMethods.some(method => message.includes(`'${method}'`) && (message.includes("type 'string'") || isStringLiteralType));
|
|
708
|
+
// Filter number method false positives (e.g., .toFixed() on number)
|
|
709
|
+
const isNumberMethodFalsePositive = builtInNumberMethods.some(method => message.includes(`'${method}'`) && message.includes("type 'number'"));
|
|
710
|
+
// Filter array method false positives
|
|
711
|
+
const isArrayMethodFalsePositive = builtInArrayMethods.some(method => message.includes(`'${method}'`) && (message.includes("type 'any[]'") || message.includes("type 'never[]'") || message.includes("[]'")));
|
|
712
|
+
if (isStringMethodFalsePositive || isNumberMethodFalsePositive || isArrayMethodFalsePositive) {
|
|
713
|
+
return false;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
// Filter Express.js route handler false positives
|
|
717
|
+
if (diagnostic.code === 2697) {
|
|
718
|
+
const code = fileContents.get(filePath) || '';
|
|
719
|
+
const isExpressRoute = code.includes('app.get(') || code.includes('app.post(') ||
|
|
720
|
+
code.includes('router.get(') || code.includes('router.post(');
|
|
721
|
+
if (isExpressRoute) {
|
|
722
|
+
return false;
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
return true;
|
|
726
|
+
});
|
|
727
|
+
diagnostics.set(filePath, filtered);
|
|
728
|
+
});
|
|
729
|
+
return {
|
|
730
|
+
diagnostics,
|
|
731
|
+
duration: performance.now() - startTime,
|
|
732
|
+
fileCount: sourceFiles.size
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Chunked batch processing for memory-constrained environments
|
|
737
|
+
* Processes files in chunks to stay under memory limits
|
|
738
|
+
*/
|
|
739
|
+
async function getBatchTypeScriptDiagnosticsChunked(filePaths, chunkSize = 50) {
|
|
740
|
+
const allDiagnostics = new Map();
|
|
741
|
+
let totalDuration = 0;
|
|
742
|
+
for (let i = 0; i < filePaths.length; i += chunkSize) {
|
|
743
|
+
const chunk = filePaths.slice(i, i + chunkSize);
|
|
744
|
+
const result = getBatchTypeScriptDiagnostics(chunk);
|
|
745
|
+
// Merge diagnostics
|
|
746
|
+
result.diagnostics.forEach((diags, filePath) => {
|
|
747
|
+
allDiagnostics.set(filePath, diags);
|
|
748
|
+
});
|
|
749
|
+
totalDuration += result.duration;
|
|
750
|
+
}
|
|
751
|
+
return {
|
|
752
|
+
diagnostics: allDiagnostics,
|
|
753
|
+
duration: totalDuration,
|
|
754
|
+
fileCount: filePaths.length
|
|
755
|
+
};
|
|
756
|
+
}
|
|
515
757
|
//# sourceMappingURL=type-checker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-checker.js","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/typescript/type-checker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-checker.js","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/typescript/type-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-analyzer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/analyzers/typescript-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAkD,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAuB7C,qBAAa,kBAAmB,YAAW,aAAa;IACtD,SAAgB,QAAQ,EAAE,iBAAiB,CAAgB;IAE3D;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAgDtB,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAmCtD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD,eAAe;;;;;IAQf,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+JxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwH5B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAgCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IA2DrC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAiEhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAkDpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsDlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+C/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0D/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiDjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiFnC,OAAO,CAAC,mBAAmB;IA2K3B,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"typescript-analyzer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/analyzers/typescript-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAkD,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAuB7C,qBAAa,kBAAmB,YAAW,aAAa;IACtD,SAAgB,QAAQ,EAAE,iBAAiB,CAAgB;IAE3D;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAgDtB,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAmCtD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD,eAAe;;;;;IAQf,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+JxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwH5B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAgCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IA2DrC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAiEhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAkDpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsDlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+C/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0D/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiDjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiFnC,OAAO,CAAC,mBAAmB;IA2K3B,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,eAAe;IAmFvB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAkDlC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,0BAA0B;IA2IlC,OAAO,CAAC,gBAAgB;CAqBzB"}
|
|
@@ -94,7 +94,7 @@ class TypeScriptAnalyzer {
|
|
|
94
94
|
this.analyzeQuality(input.code, result);
|
|
95
95
|
this.analyzePerformance(input.code, result);
|
|
96
96
|
// ALWAYS run security analysis, regardless of syntax/type errors
|
|
97
|
-
this.analyzeSecurity(input.code, result);
|
|
97
|
+
this.analyzeSecurity(input.code, result, input.options);
|
|
98
98
|
this.calculateMetrics(input.code, result);
|
|
99
99
|
// AI-Generated Code Detection (Phase 1.5, Week 5-7)
|
|
100
100
|
const lines = input.code.split('\n');
|
|
@@ -1361,7 +1361,7 @@ class TypeScriptAnalyzer {
|
|
|
1361
1361
|
result.performance.suggestions = suggestions;
|
|
1362
1362
|
result.performance.score = Math.max(0, result.performance.score);
|
|
1363
1363
|
}
|
|
1364
|
-
analyzeSecurity(code, result) {
|
|
1364
|
+
analyzeSecurity(code, result, options) {
|
|
1365
1365
|
const lines = code.split('\n');
|
|
1366
1366
|
const vulnerabilities = [];
|
|
1367
1367
|
// MODULAR SECURITY CHECKS (2025-12-01)
|
|
@@ -1392,27 +1392,31 @@ class TypeScriptAnalyzer {
|
|
|
1392
1392
|
vulnerabilities.push(...(0, logging_failures_1.checkLoggingFailures)(lines));
|
|
1393
1393
|
// NEW: TypeScript Compiler API Type Checking (2025-12-02)
|
|
1394
1394
|
// This adds comprehensive type error detection (95%+ coverage)
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1395
|
+
// PERFORMANCE: Skip in quick mode (--quick flag) for faster CLI scans (Jan 15, 2026)
|
|
1396
|
+
const quickMode = options?.quickMode === true;
|
|
1397
|
+
if (!quickMode) {
|
|
1398
|
+
try {
|
|
1399
|
+
const diagnostics = (0, type_checker_1.getTypeScriptDiagnostics)(code, 'temp.ts');
|
|
1400
|
+
const typeIssues = (0, type_checker_1.convertDiagnosticsToIssues)(diagnostics);
|
|
1401
|
+
// Convert SecurityIssue[] to SecurityVulnerability[]
|
|
1402
|
+
const typeVulnerabilities = typeIssues.map(issue => ({
|
|
1403
|
+
severity: issue.severity,
|
|
1404
|
+
message: issue.message,
|
|
1405
|
+
line: issue.line,
|
|
1406
|
+
suggestion: issue.suggestion,
|
|
1407
|
+
category: 'type-checking',
|
|
1408
|
+
cvssScore: issue.cvssScore,
|
|
1409
|
+
exploitLikelihood: issue.exploitLikelihood,
|
|
1410
|
+
impact: issue.impact,
|
|
1411
|
+
owasp: issue.owasp,
|
|
1412
|
+
cwe: issue.cwe
|
|
1413
|
+
}));
|
|
1414
|
+
vulnerabilities.push(...typeVulnerabilities);
|
|
1415
|
+
}
|
|
1416
|
+
catch (error) {
|
|
1417
|
+
// Gracefully degrade - if type checking fails, continue with pattern-based checks
|
|
1418
|
+
console.error('TypeScript type checking error:', error);
|
|
1419
|
+
}
|
|
1416
1420
|
}
|
|
1417
1421
|
// Secrets Detection (Phase 1.5, Week 1)
|
|
1418
1422
|
const secretsAnalyzer = (0, secrets_analyzer_1.createSecretsAnalyzer)();
|