secure-scan 1.2.4 → 1.2.5
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 +85 -317
- package/aur/.SRCINFO +11 -0
- package/aur/PKGBUILD +28 -0
- package/debian/changelog +10 -0
- package/debian/compat +1 -0
- package/debian/control +16 -0
- package/debian/rules +17 -0
- package/docs/V1.2.1-IA_Performances.md +2 -2
- package/package.json +2 -2
- package/dist/core/engine/index.d.ts +0 -5
- package/dist/core/engine/index.d.ts.map +0 -1
- package/dist/core/engine/index.js +0 -21
- package/dist/core/engine/index.js.map +0 -1
- package/dist/core/engine/ruleEngine.d.ts +0 -46
- package/dist/core/engine/ruleEngine.d.ts.map +0 -1
- package/dist/core/engine/ruleEngine.js +0 -173
- package/dist/core/engine/ruleEngine.js.map +0 -1
- package/dist/core/index.d.ts +0 -8
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -24
- package/dist/core/index.js.map +0 -1
- package/dist/core/scanner/fileScanner.d.ts +0 -31
- package/dist/core/scanner/fileScanner.d.ts.map +0 -1
- package/dist/core/scanner/fileScanner.js +0 -199
- package/dist/core/scanner/fileScanner.js.map +0 -1
- package/dist/core/scanner/index.d.ts +0 -5
- package/dist/core/scanner/index.d.ts.map +0 -1
- package/dist/core/scanner/index.js +0 -21
- package/dist/core/scanner/index.js.map +0 -1
- package/dist/core/scoring/index.d.ts +0 -5
- package/dist/core/scoring/index.d.ts.map +0 -1
- package/dist/core/scoring/index.js +0 -21
- package/dist/core/scoring/index.js.map +0 -1
- package/dist/core/scoring/riskScoring.d.ts +0 -49
- package/dist/core/scoring/riskScoring.d.ts.map +0 -1
- package/dist/core/scoring/riskScoring.js +0 -180
- package/dist/core/scoring/riskScoring.js.map +0 -1
- package/dist/core/securityScanner.d.ts +0 -47
- package/dist/core/securityScanner.d.ts.map +0 -1
- package/dist/core/securityScanner.js +0 -298
- package/dist/core/securityScanner.js.map +0 -1
- package/src/analyzers/javascript/PROMPT_JS_ANALYZER.md +0 -267
- package/src/rules/malware/INFO.md +0 -287
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/engine/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Engine Module Exports
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./ruleEngine"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/engine/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,+CAA6B"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule Engine
|
|
3
|
-
* Core engine for running security rules against code
|
|
4
|
-
*/
|
|
5
|
-
import { Rule, Finding, ScannedFile } from '../../types';
|
|
6
|
-
/**
|
|
7
|
-
* Rule Engine Class
|
|
8
|
-
*/
|
|
9
|
-
export declare class RuleEngine {
|
|
10
|
-
private rules;
|
|
11
|
-
constructor();
|
|
12
|
-
/**
|
|
13
|
-
* Load rules for analysis
|
|
14
|
-
*/
|
|
15
|
-
loadRules(rules: Rule[]): void;
|
|
16
|
-
/**
|
|
17
|
-
* Get rules for a specific language
|
|
18
|
-
*/
|
|
19
|
-
getRulesForLanguage(language: string): Rule[];
|
|
20
|
-
/**
|
|
21
|
-
* Run rules against a file
|
|
22
|
-
*/
|
|
23
|
-
analyzeFile(file: ScannedFile, rules?: Rule[]): Promise<Finding[]>;
|
|
24
|
-
/**
|
|
25
|
-
* Run a single rule against a file
|
|
26
|
-
*/
|
|
27
|
-
private runRule;
|
|
28
|
-
/**
|
|
29
|
-
* Match regex pattern against content
|
|
30
|
-
*/
|
|
31
|
-
private matchRegex;
|
|
32
|
-
/**
|
|
33
|
-
* Create a finding from a rule match
|
|
34
|
-
*/
|
|
35
|
-
private createFinding;
|
|
36
|
-
/**
|
|
37
|
-
* Deduplicate findings
|
|
38
|
-
*/
|
|
39
|
-
deduplicateFindings(findings: Finding[]): Finding[];
|
|
40
|
-
/**
|
|
41
|
-
* Sort findings by severity
|
|
42
|
-
*/
|
|
43
|
-
sortBySeverity(findings: Finding[]): Finding[];
|
|
44
|
-
}
|
|
45
|
-
export default RuleEngine;
|
|
46
|
-
//# sourceMappingURL=ruleEngine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleEngine.d.ts","sourceRoot":"","sources":["../../../src/core/engine/ruleEngine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EAMZ,MAAM,aAAa,CAAC;AAgBrB;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAS;;IAMtB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAK9B;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IAO7C;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAgBxE;;OAEG;YACW,OAAO;IAiBrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAuClB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyCrB;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAgBnD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;CAa/C;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Rule Engine
|
|
4
|
-
* Core engine for running security rules against code
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.RuleEngine = void 0;
|
|
8
|
-
const types_1 = require("../../types");
|
|
9
|
-
const utils_1 = require("../../utils");
|
|
10
|
-
const standards_1 = require("../../rules/standards");
|
|
11
|
-
const logger_1 = require("../../utils/logger");
|
|
12
|
-
/**
|
|
13
|
-
* Rule Engine Class
|
|
14
|
-
*/
|
|
15
|
-
class RuleEngine {
|
|
16
|
-
rules;
|
|
17
|
-
constructor() {
|
|
18
|
-
this.rules = [];
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Load rules for analysis
|
|
22
|
-
*/
|
|
23
|
-
loadRules(rules) {
|
|
24
|
-
this.rules = rules.filter(r => r.enabled);
|
|
25
|
-
logger_1.logger.info(`📋 Loaded ${this.rules.length} active rules`);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get rules for a specific language
|
|
29
|
-
*/
|
|
30
|
-
getRulesForLanguage(language) {
|
|
31
|
-
return this.rules.filter(rule => rule.languages.includes(language) ||
|
|
32
|
-
rule.languages.includes('*'));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Run rules against a file
|
|
36
|
-
*/
|
|
37
|
-
async analyzeFile(file, rules) {
|
|
38
|
-
const findings = [];
|
|
39
|
-
const applicableRules = rules || this.getRulesForLanguage(file.language || '');
|
|
40
|
-
for (const rule of applicableRules) {
|
|
41
|
-
try {
|
|
42
|
-
const ruleFindings = await this.runRule(rule, file);
|
|
43
|
-
findings.push(...ruleFindings);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
logger_1.logger.debug(`Error running rule ${rule.id}: ${error}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return findings;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Run a single rule against a file
|
|
53
|
-
*/
|
|
54
|
-
async runRule(rule, file) {
|
|
55
|
-
const findings = [];
|
|
56
|
-
for (const pattern of rule.patterns) {
|
|
57
|
-
if (pattern.type === 'regex') {
|
|
58
|
-
const matches = this.matchRegex(file.content, pattern.pattern, pattern.flags);
|
|
59
|
-
for (const match of matches) {
|
|
60
|
-
const finding = this.createFinding(rule, file, match);
|
|
61
|
-
findings.push(finding);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return findings;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Match regex pattern against content
|
|
69
|
-
*/
|
|
70
|
-
matchRegex(content, pattern, flags = 'gim') {
|
|
71
|
-
const matches = [];
|
|
72
|
-
const lines = content.split('\n');
|
|
73
|
-
try {
|
|
74
|
-
const regex = new RegExp(pattern, flags);
|
|
75
|
-
let lineOffset = 0;
|
|
76
|
-
for (let lineNum = 0; lineNum < lines.length; lineNum++) {
|
|
77
|
-
const line = lines[lineNum];
|
|
78
|
-
let match;
|
|
79
|
-
// Reset regex for each line
|
|
80
|
-
const lineRegex = new RegExp(pattern, flags.replace('g', '') + 'g');
|
|
81
|
-
while ((match = lineRegex.exec(line)) !== null) {
|
|
82
|
-
matches.push({
|
|
83
|
-
matched: true,
|
|
84
|
-
line: lineNum + 1, // 1-indexed
|
|
85
|
-
column: match.index + 1,
|
|
86
|
-
matchedText: match[0],
|
|
87
|
-
groups: match.groups
|
|
88
|
-
});
|
|
89
|
-
// Prevent infinite loop on zero-width matches
|
|
90
|
-
if (match[0].length === 0) {
|
|
91
|
-
lineRegex.lastIndex++;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
lineOffset += line.length + 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
logger_1.logger.debug(`Invalid regex pattern: ${pattern}`);
|
|
99
|
-
}
|
|
100
|
-
return matches;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Create a finding from a rule match
|
|
104
|
-
*/
|
|
105
|
-
createFinding(rule, file, match) {
|
|
106
|
-
const context = (0, utils_1.extractCodeContext)(file.content, match.line, 3);
|
|
107
|
-
const location = {
|
|
108
|
-
file: file.relativePath,
|
|
109
|
-
startLine: match.line,
|
|
110
|
-
endLine: match.line,
|
|
111
|
-
startColumn: match.column,
|
|
112
|
-
endColumn: match.column + match.matchedText.length
|
|
113
|
-
};
|
|
114
|
-
const snippet = {
|
|
115
|
-
code: context.code,
|
|
116
|
-
contextBefore: context.contextBefore,
|
|
117
|
-
contextAfter: context.contextAfter,
|
|
118
|
-
highlight: {
|
|
119
|
-
start: match.column - 1,
|
|
120
|
-
end: match.column - 1 + match.matchedText.length
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
return {
|
|
124
|
-
id: (0, utils_1.generateId)(),
|
|
125
|
-
title: rule.name,
|
|
126
|
-
description: rule.description,
|
|
127
|
-
severity: rule.severity,
|
|
128
|
-
threatType: rule.threatType,
|
|
129
|
-
category: rule.category,
|
|
130
|
-
location,
|
|
131
|
-
snippet,
|
|
132
|
-
standards: rule.standards.length > 0
|
|
133
|
-
? rule.standards
|
|
134
|
-
: (0, standards_1.getStandardsForThreat)(rule.threatType),
|
|
135
|
-
remediation: rule.remediation,
|
|
136
|
-
confidence: 85, // Default confidence for regex matches
|
|
137
|
-
analyzer: 'rule-engine',
|
|
138
|
-
timestamp: new Date(),
|
|
139
|
-
tags: rule.tags
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Deduplicate findings
|
|
144
|
-
*/
|
|
145
|
-
deduplicateFindings(findings) {
|
|
146
|
-
const seen = new Set();
|
|
147
|
-
const unique = [];
|
|
148
|
-
for (const finding of findings) {
|
|
149
|
-
const key = `${finding.location.file}:${finding.location.startLine}:${finding.threatType}`;
|
|
150
|
-
if (!seen.has(key)) {
|
|
151
|
-
seen.add(key);
|
|
152
|
-
unique.push(finding);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return unique;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Sort findings by severity
|
|
159
|
-
*/
|
|
160
|
-
sortBySeverity(findings) {
|
|
161
|
-
const severityOrder = {
|
|
162
|
-
[types_1.Severity.CRITICAL]: 0,
|
|
163
|
-
[types_1.Severity.HIGH]: 1,
|
|
164
|
-
[types_1.Severity.MEDIUM]: 2,
|
|
165
|
-
[types_1.Severity.LOW]: 3,
|
|
166
|
-
[types_1.Severity.INFO]: 4
|
|
167
|
-
};
|
|
168
|
-
return [...findings].sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
exports.RuleEngine = RuleEngine;
|
|
172
|
-
exports.default = RuleEngine;
|
|
173
|
-
//# sourceMappingURL=ruleEngine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleEngine.js","sourceRoot":"","sources":["../../../src/core/engine/ruleEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
DELETED
package/dist/core/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
|
package/dist/core/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Core Module Exports
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./scanner"), exports);
|
|
21
|
-
__exportStar(require("./engine"), exports);
|
|
22
|
-
__exportStar(require("./scoring"), exports);
|
|
23
|
-
__exportStar(require("./securityScanner"), exports);
|
|
24
|
-
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,2CAAyB;AACzB,4CAA0B;AAC1B,oDAAkC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File Scanner Module
|
|
3
|
-
* Scans directories and collects files for analysis
|
|
4
|
-
*/
|
|
5
|
-
import { ScannedFile, ScanConfig } from '../../types';
|
|
6
|
-
/**
|
|
7
|
-
* File Scanner Class
|
|
8
|
-
*/
|
|
9
|
-
export declare class FileScanner {
|
|
10
|
-
private config;
|
|
11
|
-
private extensions;
|
|
12
|
-
constructor(config: ScanConfig);
|
|
13
|
-
/**
|
|
14
|
-
* Scan project directory for files
|
|
15
|
-
*/
|
|
16
|
-
scan(): Promise<ScannedFile[]>;
|
|
17
|
-
/**
|
|
18
|
-
* Process a single file
|
|
19
|
-
*/
|
|
20
|
-
private processFile;
|
|
21
|
-
/**
|
|
22
|
-
* Get ignore patterns for glob
|
|
23
|
-
*/
|
|
24
|
-
private getIgnorePatterns;
|
|
25
|
-
/**
|
|
26
|
-
* Get file statistics
|
|
27
|
-
*/
|
|
28
|
-
getFileStats(files: ScannedFile[]): Record<string, number>;
|
|
29
|
-
}
|
|
30
|
-
export default FileScanner;
|
|
31
|
-
//# sourceMappingURL=fileScanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileScanner.d.ts","sourceRoot":"","sources":["../../../src/core/scanner/fileScanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,WAAW,EAAqB,UAAU,EAAE,MAAM,aAAa,CAAC;AA8BzE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAW;gBAEjB,MAAM,EAAE,UAAU;IAK9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAqEpC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAU3D;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* File Scanner Module
|
|
4
|
-
* Scans directories and collects files for analysis
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.FileScanner = void 0;
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const glob_1 = require("glob");
|
|
44
|
-
const utils_1 = require("../../utils");
|
|
45
|
-
const logger_1 = require("../../utils/logger");
|
|
46
|
-
/**
|
|
47
|
-
* Default file extensions to scan
|
|
48
|
-
*/
|
|
49
|
-
const DEFAULT_EXTENSIONS = [
|
|
50
|
-
'.js', '.jsx', '.mjs', '.cjs',
|
|
51
|
-
'.ts', '.tsx',
|
|
52
|
-
'.py', '.pyw',
|
|
53
|
-
'.php', '.phtml',
|
|
54
|
-
'.java',
|
|
55
|
-
'.c', '.h', '.cpp', '.cc', '.cxx', '.hpp',
|
|
56
|
-
'.cs',
|
|
57
|
-
'.yaml', '.yml',
|
|
58
|
-
'.tf', '.tfvars'
|
|
59
|
-
];
|
|
60
|
-
/**
|
|
61
|
-
* Default max file size (5MB)
|
|
62
|
-
*/
|
|
63
|
-
const DEFAULT_MAX_FILE_SIZE = 5 * 1024 * 1024;
|
|
64
|
-
/**
|
|
65
|
-
* File Scanner Class
|
|
66
|
-
*/
|
|
67
|
-
class FileScanner {
|
|
68
|
-
config;
|
|
69
|
-
extensions;
|
|
70
|
-
constructor(config) {
|
|
71
|
-
this.config = config;
|
|
72
|
-
this.extensions = DEFAULT_EXTENSIONS;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Scan project directory for files
|
|
76
|
-
*/
|
|
77
|
-
async scan() {
|
|
78
|
-
const projectPath = path.resolve(this.config.projectPath);
|
|
79
|
-
if (!fs.existsSync(projectPath)) {
|
|
80
|
-
throw new Error(`Project path does not exist: ${projectPath}`);
|
|
81
|
-
}
|
|
82
|
-
const stats = fs.statSync(projectPath);
|
|
83
|
-
if (!stats.isDirectory()) {
|
|
84
|
-
throw new Error(`Project path is not a directory: ${projectPath}`);
|
|
85
|
-
}
|
|
86
|
-
logger_1.logger.info(`🔍 Starting file scan in: ${projectPath}`);
|
|
87
|
-
// Build glob pattern
|
|
88
|
-
const patterns = this.extensions.map(ext => `**/*${ext}`);
|
|
89
|
-
patterns.push('**/Dockerfile');
|
|
90
|
-
patterns.push('**/.github/**/*.yml');
|
|
91
|
-
patterns.push('**/.github/**/*.yaml');
|
|
92
|
-
patterns.push('**/.gitlab-ci.yml');
|
|
93
|
-
const files = [];
|
|
94
|
-
for (const pattern of patterns) {
|
|
95
|
-
const matches = await (0, glob_1.glob)(pattern, {
|
|
96
|
-
cwd: projectPath,
|
|
97
|
-
nodir: true,
|
|
98
|
-
absolute: false,
|
|
99
|
-
ignore: this.getIgnorePatterns()
|
|
100
|
-
});
|
|
101
|
-
for (const match of matches) {
|
|
102
|
-
const absolutePath = path.join(projectPath, match);
|
|
103
|
-
// Skip if already processed
|
|
104
|
-
if (files.some(f => f.absolutePath === absolutePath)) {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
// Skip excluded paths
|
|
108
|
-
if ((0, utils_1.shouldExclude)(match, this.config.exclude || [])) {
|
|
109
|
-
logger_1.logger.debug(`Skipping excluded file: ${match}`);
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
try {
|
|
113
|
-
const scannedFile = await this.processFile(absolutePath, match, projectPath);
|
|
114
|
-
if (scannedFile) {
|
|
115
|
-
files.push(scannedFile);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
logger_1.logger.warn(`Failed to process file: ${match} - ${error}`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// Filter by language if specified
|
|
124
|
-
let filteredFiles = files;
|
|
125
|
-
if (this.config.languages && this.config.languages.length > 0) {
|
|
126
|
-
filteredFiles = files.filter(f => f.language && this.config.languages.includes(f.language));
|
|
127
|
-
}
|
|
128
|
-
logger_1.logger.info(`📂 Found ${filteredFiles.length} files to analyze`);
|
|
129
|
-
return filteredFiles;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Process a single file
|
|
133
|
-
*/
|
|
134
|
-
async processFile(absolutePath, relativePath, projectPath) {
|
|
135
|
-
const stats = fs.statSync(absolutePath);
|
|
136
|
-
const maxSize = this.config.maxFileSize || DEFAULT_MAX_FILE_SIZE;
|
|
137
|
-
// Skip files that are too large
|
|
138
|
-
if (stats.size > maxSize) {
|
|
139
|
-
logger_1.logger.debug(`Skipping large file: ${relativePath} (${stats.size} bytes)`);
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
|
-
// Read file content
|
|
143
|
-
const content = fs.readFileSync(absolutePath, 'utf-8');
|
|
144
|
-
// Detect language
|
|
145
|
-
const language = (0, utils_1.getLanguageFromExtension)(absolutePath);
|
|
146
|
-
return {
|
|
147
|
-
absolutePath,
|
|
148
|
-
relativePath,
|
|
149
|
-
extension: path.extname(absolutePath).toLowerCase(),
|
|
150
|
-
language,
|
|
151
|
-
size: stats.size,
|
|
152
|
-
content,
|
|
153
|
-
lineCount: (0, utils_1.countLines)(content),
|
|
154
|
-
hash: (0, utils_1.calculateHash)(content)
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Get ignore patterns for glob
|
|
159
|
-
*/
|
|
160
|
-
getIgnorePatterns() {
|
|
161
|
-
const defaultIgnore = [
|
|
162
|
-
'**/node_modules/**',
|
|
163
|
-
'**/vendor/**',
|
|
164
|
-
'**/.git/**',
|
|
165
|
-
'**/dist/**',
|
|
166
|
-
'**/build/**',
|
|
167
|
-
'**/out/**',
|
|
168
|
-
'**/__pycache__/**',
|
|
169
|
-
'**/.venv/**',
|
|
170
|
-
'**/venv/**',
|
|
171
|
-
'**/coverage/**',
|
|
172
|
-
'**/.nyc_output/**',
|
|
173
|
-
'**/.next/**',
|
|
174
|
-
'**/.nuxt/**',
|
|
175
|
-
'**/target/**',
|
|
176
|
-
'**/bin/**',
|
|
177
|
-
'**/obj/**',
|
|
178
|
-
'**/*.min.js',
|
|
179
|
-
'**/*.bundle.js',
|
|
180
|
-
'**/*.map'
|
|
181
|
-
];
|
|
182
|
-
const customIgnore = (this.config.exclude || []).map((p) => `**/${p}/**`);
|
|
183
|
-
return [...defaultIgnore, ...customIgnore];
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Get file statistics
|
|
187
|
-
*/
|
|
188
|
-
getFileStats(files) {
|
|
189
|
-
const stats = {};
|
|
190
|
-
for (const file of files) {
|
|
191
|
-
const lang = file.language || 'unknown';
|
|
192
|
-
stats[lang] = (stats[lang] || 0) + 1;
|
|
193
|
-
}
|
|
194
|
-
return stats;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
exports.FileScanner = FileScanner;
|
|
198
|
-
exports.default = FileScanner;
|
|
199
|
-
//# sourceMappingURL=fileScanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileScanner.js","sourceRoot":"","sources":["../../../src/core/scanner/fileScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/scanner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Scanner Module Exports
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./fileScanner"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/scanner/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,gDAA8B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Scoring Module Exports
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./riskScoring"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/scoring/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,gDAA8B"}
|