dotenv-diff 2.1.7 → 2.2.1
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 +46 -77
- package/dist/bin/dotenv-diff.d.ts +1 -0
- package/dist/bin/dotenv-diff.d.ts.map +1 -0
- package/dist/bin/dotenv-diff.js +1 -0
- package/dist/bin/dotenv-diff.js.map +1 -0
- package/dist/src/cli/program.d.ts +1 -0
- package/dist/src/cli/program.d.ts.map +1 -0
- package/dist/src/cli/program.js +8 -5
- package/dist/src/cli/program.js.map +1 -0
- package/dist/src/cli/run.d.ts +5 -0
- package/dist/src/cli/run.d.ts.map +1 -0
- package/dist/src/cli/run.js +14 -8
- package/dist/src/cli/run.js.map +1 -0
- package/dist/src/commands/compare.d.ts +7 -0
- package/dist/src/commands/compare.d.ts.map +1 -0
- package/dist/src/commands/compare.js +9 -5
- package/dist/src/commands/compare.js.map +1 -0
- package/dist/src/commands/init.d.ts +6 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +6 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/scanUsage.d.ts +11 -2
- package/dist/src/commands/scanUsage.d.ts.map +1 -0
- package/dist/src/commands/scanUsage.js +58 -14
- package/dist/src/commands/scanUsage.js.map +1 -0
- package/dist/src/config/options.d.ts +7 -1
- package/dist/src/config/options.d.ts.map +1 -0
- package/dist/src/config/options.js +29 -6
- package/dist/src/config/options.js.map +1 -0
- package/dist/src/config/types.d.ts +18 -2
- package/dist/src/config/types.d.ts.map +1 -0
- package/dist/src/config/types.js +2 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/core/entropy.d.ts +8 -0
- package/dist/src/core/entropy.d.ts.map +1 -0
- package/dist/src/core/entropy.js +23 -0
- package/dist/src/core/entropy.js.map +1 -0
- package/dist/src/core/filterIgnoredKeys.d.ts +8 -0
- package/dist/src/core/filterIgnoredKeys.d.ts.map +1 -0
- package/dist/src/core/filterIgnoredKeys.js +8 -0
- package/dist/src/core/filterIgnoredKeys.js.map +1 -0
- package/dist/src/core/fixEnv.d.ts +9 -0
- package/dist/src/core/fixEnv.d.ts.map +1 -0
- package/dist/src/core/fixEnv.js +12 -1
- package/dist/src/core/fixEnv.js.map +1 -0
- package/dist/src/core/secretDetectors.d.ts +15 -0
- package/dist/src/core/secretDetectors.d.ts.map +1 -0
- package/dist/src/core/secretDetectors.js +90 -0
- package/dist/src/core/secretDetectors.js.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/diffEnv.d.ts +1 -0
- package/dist/src/lib/diffEnv.d.ts.map +1 -0
- package/dist/src/lib/diffEnv.js +4 -2
- package/dist/src/lib/diffEnv.js.map +1 -0
- package/dist/src/lib/parseEnv.d.ts +1 -0
- package/dist/src/lib/parseEnv.d.ts.map +1 -0
- package/dist/src/lib/parseEnv.js +1 -0
- package/dist/src/lib/parseEnv.js.map +1 -0
- package/dist/src/services/codeBaseScanner.d.ts +4 -0
- package/dist/src/services/codeBaseScanner.d.ts.map +1 -0
- package/dist/src/services/codeBaseScanner.js +20 -2
- package/dist/src/services/codeBaseScanner.js.map +1 -0
- package/dist/src/services/duplicates.d.ts +3 -0
- package/dist/src/services/duplicates.d.ts.map +1 -0
- package/dist/src/services/duplicates.js +3 -0
- package/dist/src/services/duplicates.js.map +1 -0
- package/dist/src/services/envDiscovery.d.ts +13 -0
- package/dist/src/services/envDiscovery.d.ts.map +1 -0
- package/dist/src/services/envDiscovery.js +8 -0
- package/dist/src/services/envDiscovery.js.map +1 -0
- package/dist/src/services/envPairing.d.ts +6 -0
- package/dist/src/services/envPairing.d.ts.map +1 -0
- package/dist/src/services/envPairing.js +6 -0
- package/dist/src/services/envPairing.js.map +1 -0
- package/dist/src/services/git.d.ts +5 -0
- package/dist/src/services/git.d.ts.map +1 -0
- package/dist/src/services/git.js +5 -0
- package/dist/src/services/git.js.map +1 -0
- package/dist/src/ui/prompts.d.ts +12 -0
- package/dist/src/ui/prompts.d.ts.map +1 -0
- package/dist/src/ui/prompts.js +12 -0
- package/dist/src/ui/prompts.js.map +1 -0
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@ import path from 'path';
|
|
|
4
4
|
import { parseEnvFile } from '../lib/parseEnv.js';
|
|
5
5
|
import { scanCodebase, compareWithEnvFiles, } from '../services/codeBaseScanner.js';
|
|
6
6
|
import { filterIgnoredKeys } from '../core/filterIgnoredKeys.js';
|
|
7
|
+
// Helper to resolve paths relative to cwd
|
|
7
8
|
const resolveFromCwd = (cwd, p) => path.isAbsolute(p) ? p : path.resolve(cwd, p);
|
|
8
9
|
/**
|
|
9
10
|
* Scans codebase for environment variable usage and compares with .env file
|
|
@@ -18,7 +19,8 @@ const resolveFromCwd = (cwd, p) => path.isAbsolute(p) ? p : path.resolve(cwd, p)
|
|
|
18
19
|
*/
|
|
19
20
|
export async function scanUsage(opts) {
|
|
20
21
|
if (!opts.json) {
|
|
21
|
-
console.log(
|
|
22
|
+
console.log();
|
|
23
|
+
console.log(chalk.blue('🔍 Scanning codebase for environment variable usage...'));
|
|
22
24
|
console.log();
|
|
23
25
|
}
|
|
24
26
|
// Scan the codebase
|
|
@@ -125,10 +127,16 @@ export async function scanUsage(opts) {
|
|
|
125
127
|
console.log(chalk.green('✅ Auto-fix applied: no changes needed.'));
|
|
126
128
|
console.log();
|
|
127
129
|
}
|
|
130
|
+
if (scanResult.missing.length > 0 && !opts.json && !opts.fix) {
|
|
131
|
+
console.log(chalk.gray('💡 Tip: Run with `--fix` to add missing keys'));
|
|
132
|
+
console.log();
|
|
133
|
+
}
|
|
128
134
|
return result;
|
|
129
135
|
}
|
|
130
136
|
/**
|
|
131
137
|
* Determines which file to use for comparison based on provided options
|
|
138
|
+
* @param {ScanUsageOptions} opts - Scan configuration options
|
|
139
|
+
* @returns {Object|null} - The comparison file information or undefined if not found
|
|
132
140
|
*/
|
|
133
141
|
function determineComparisonFile(opts) {
|
|
134
142
|
// Priority: explicit flags first, then auto-discovery
|
|
@@ -152,8 +160,16 @@ function determineComparisonFile(opts) {
|
|
|
152
160
|
return { path: fullPath, name: candidate };
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
|
-
return
|
|
163
|
+
return undefined;
|
|
156
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Creates a JSON output for the scan results.
|
|
167
|
+
* @param scanResult - The result of the scan.
|
|
168
|
+
* @param opts - The scan options.
|
|
169
|
+
* @param comparedAgainst - The file being compared against.
|
|
170
|
+
* @param totalEnvVariables - The total number of environment variables.
|
|
171
|
+
* @returns The JSON output.
|
|
172
|
+
*/
|
|
157
173
|
function createJsonOutput(scanResult, opts, comparedAgainst, totalEnvVariables) {
|
|
158
174
|
// Group usages by variable for missing variables
|
|
159
175
|
const missingGrouped = scanResult.missing.map((variable) => ({
|
|
@@ -172,6 +188,14 @@ function createJsonOutput(scanResult, opts, comparedAgainst, totalEnvVariables)
|
|
|
172
188
|
missing: missingGrouped,
|
|
173
189
|
unused: scanResult.unused,
|
|
174
190
|
};
|
|
191
|
+
if (scanResult.secrets?.length) {
|
|
192
|
+
output.secrets = scanResult.secrets.map((s) => ({
|
|
193
|
+
file: s.file,
|
|
194
|
+
line: s.line,
|
|
195
|
+
message: s.message,
|
|
196
|
+
snippet: s.snippet,
|
|
197
|
+
}));
|
|
198
|
+
}
|
|
175
199
|
// Add comparison info if we compared against a file
|
|
176
200
|
if (comparedAgainst) {
|
|
177
201
|
output.comparedAgainst = comparedAgainst;
|
|
@@ -189,24 +213,31 @@ function createJsonOutput(scanResult, opts, comparedAgainst, totalEnvVariables)
|
|
|
189
213
|
}
|
|
190
214
|
return output;
|
|
191
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Outputs the scan results to the console.
|
|
218
|
+
* @param scanResult - The result of the scan.
|
|
219
|
+
* @param opts - The scan options.
|
|
220
|
+
* @param comparedAgainst - The file being compared against.
|
|
221
|
+
* @returns An object indicating whether to exit with an error.
|
|
222
|
+
*/
|
|
192
223
|
function outputToConsole(scanResult, opts, comparedAgainst) {
|
|
193
224
|
let exitWithError = false;
|
|
194
225
|
// Show what we're comparing against
|
|
195
226
|
if (comparedAgainst) {
|
|
196
|
-
console.log(chalk.
|
|
227
|
+
console.log(chalk.magenta(`📋 Comparing codebase usage against: ${comparedAgainst}`));
|
|
197
228
|
console.log();
|
|
198
229
|
}
|
|
199
230
|
// Show stats if requested
|
|
200
231
|
if (opts.showStats) {
|
|
201
|
-
console.log(chalk.
|
|
202
|
-
console.log(chalk.
|
|
203
|
-
console.log(chalk.
|
|
204
|
-
console.log(chalk.
|
|
232
|
+
console.log(chalk.magenta('📊 Scan Statistics:'));
|
|
233
|
+
console.log(chalk.magenta.dim(` Files scanned: ${scanResult.stats.filesScanned}`));
|
|
234
|
+
console.log(chalk.magenta.dim(` Total usages found: ${scanResult.stats.totalUsages}`));
|
|
235
|
+
console.log(chalk.magenta.dim(` Unique variables: ${scanResult.stats.uniqueVariables}`));
|
|
205
236
|
console.log();
|
|
206
237
|
}
|
|
207
238
|
// Always show found variables when not comparing or when no missing variables
|
|
208
239
|
if (!comparedAgainst || scanResult.missing.length === 0) {
|
|
209
|
-
console.log(chalk.
|
|
240
|
+
console.log(chalk.blue(`🌐 Found ${scanResult.stats.uniqueVariables} unique environment variables in use`));
|
|
210
241
|
console.log();
|
|
211
242
|
// List all variables found (if any)
|
|
212
243
|
if (scanResult.stats.uniqueVariables > 0) {
|
|
@@ -225,7 +256,7 @@ function outputToConsole(scanResult, opts, comparedAgainst) {
|
|
|
225
256
|
if (opts.showStats) {
|
|
226
257
|
const displayUsages = usages.slice(0, 2);
|
|
227
258
|
displayUsages.forEach((usage) => {
|
|
228
|
-
console.log(chalk.
|
|
259
|
+
console.log(chalk.blue.dim(` Used in: ${usage.file}:${usage.line} (${usage.pattern})`));
|
|
229
260
|
});
|
|
230
261
|
if (usages.length > 2) {
|
|
231
262
|
console.log(chalk.gray(` ... and ${usages.length - 2} more locations`));
|
|
@@ -250,7 +281,7 @@ function outputToConsole(scanResult, opts, comparedAgainst) {
|
|
|
250
281
|
// Show first few usages
|
|
251
282
|
const maxShow = 3;
|
|
252
283
|
usages.slice(0, maxShow).forEach((usage) => {
|
|
253
|
-
console.log(chalk.
|
|
284
|
+
console.log(chalk.red.dim(` Used in: ${usage.file}:${usage.line} (${usage.pattern})`));
|
|
254
285
|
});
|
|
255
286
|
if (usages.length > maxShow) {
|
|
256
287
|
console.log(chalk.gray(` ... and ${usages.length - maxShow} more locations`));
|
|
@@ -273,6 +304,22 @@ function outputToConsole(scanResult, opts, comparedAgainst) {
|
|
|
273
304
|
});
|
|
274
305
|
console.log();
|
|
275
306
|
}
|
|
307
|
+
if (scanResult.secrets && scanResult.secrets.length > 0) {
|
|
308
|
+
console.log(chalk.yellow('🔒 Potential secrets detected in codebase:'));
|
|
309
|
+
const byFile = new Map();
|
|
310
|
+
for (const f of scanResult.secrets) {
|
|
311
|
+
if (!byFile.has(f.file))
|
|
312
|
+
byFile.set(f.file, []);
|
|
313
|
+
byFile.get(f.file).push(f);
|
|
314
|
+
}
|
|
315
|
+
for (const [file, findings] of byFile) {
|
|
316
|
+
console.log(chalk.bold(` ${file}`));
|
|
317
|
+
for (const f of findings) {
|
|
318
|
+
console.log(chalk.yellow(` - Line ${f.line}: ${f.message}\n ${chalk.dim(f.snippet)}`));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
console.log();
|
|
322
|
+
}
|
|
276
323
|
// Success message for env file comparison
|
|
277
324
|
if (comparedAgainst && scanResult.missing.length === 0) {
|
|
278
325
|
console.log(chalk.green(`✅ All used environment variables are defined in ${comparedAgainst}`));
|
|
@@ -281,9 +328,6 @@ function outputToConsole(scanResult, opts, comparedAgainst) {
|
|
|
281
328
|
}
|
|
282
329
|
console.log();
|
|
283
330
|
}
|
|
284
|
-
if (scanResult.missing.length > 0 && !opts.json && !opts.fix) {
|
|
285
|
-
console.log(chalk.gray('💡 Tip: Run with `--fix` to add these missing keys to your .env file automatically.'));
|
|
286
|
-
console.log();
|
|
287
|
-
}
|
|
288
331
|
return { exitWithError };
|
|
289
332
|
}
|
|
333
|
+
//# sourceMappingURL=scanUsage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,mBAAmB,GAIpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,CAAS,EAAE,EAAE,CAChD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAsDhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAsB;IAEtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CACrE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1C,kEAAkE;IAClE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,qCAAqC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,mEAAmE;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,YAAY,GAAuC,EAAE,CAAC;IAC1D,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,iBAAiB,CAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EACpB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,UAAU,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC3D,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,sBAAsB,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC;YAE9F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,oDAAoD;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC5C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,SAAS,GAAa,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;QAEvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW;gBACtC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC;YAET,8BAA8B;YAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,UAAU,GACd,OAAO;gBACP,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC;YACP,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAE1C,sCAAsC;YACtC,IAAI,eAAe,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,SAAS;qBACN,KAAK,CAAC,IAAI,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;gBACF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,YAAY,GAChB,SAAS;wBACT,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBAClB,IAAI,CAAC;oBACP,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS,GAAG,WAAW,CAAC;YACxB,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,gBAAgB,CACjC,UAAU,EACV,IAAI,EACJ,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CACjC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAElE,0DAA0D;IAC1D,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC5D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,cAAc,SAAS,CAAC,MAAM,oBAAoB,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9F,CACF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,eAAe,SAAS,CAAC,MAAM,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAC7E,CACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,IAAsB;IAEtB,sDAAsD;IACtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC7E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,UAAsB,EACtB,IAAsB,EACtB,eAAuB,EACvB,iBAAyB;IAEzB,iDAAiD;IACjD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC;QACnE,QAAQ;QACR,MAAM,EAAE,UAAU,CAAC,IAAI;aACpB,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAChD,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;KACN,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAkB;QAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAwB,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oDAAoD;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;QACzC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,UAAsB,EACtB,IAAsB,EACtB,eAAuB;IAEvB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,oCAAoC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,wCAAwC,eAAe,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CACxE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC5E,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAC9E,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,YAAY,UAAU,CAAC,KAAK,CAAC,eAAe,sCAAsC,CACnF,CACF,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,oCAAoC;QACpC,IAAI,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YACzC,uCAAuC;YACvC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAC3C,CAAC,GAAmB,EAAE,KAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAE,CACH,CAAC;YAEF,+BAA+B;YAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAE1C,0CAA0C;gBAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAe,EAAE,EAAE;wBACxC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,GAAG,CACZ,iBAAiB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAC/D,CACF,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAC/D,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,aAAa,GAAG,IAAI,CAAC;QACrB,MAAM,QAAQ,GAAG,eAAe,IAAI,kBAAkB,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CACvC,CAAC,GAAmB,EAAE,QAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CACnC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CACzC,CAAC;YACF,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE3C,wBAAwB;YACxB,MAAM,OAAO,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAe,EAAE,EAAE;gBACnD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,GAAG,CACX,iBAAiB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAC/D,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,GAAG,OAAO,iBAAiB,CAAC,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,2BAA2B;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,YAAY,UAAU,CAAC,OAAO,CAAC,MAAM,mCAAmC,CACzE,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,6BAA6B,eAAe,IAAI,uBAAuB,qBAAqB,CAC7F,CACF,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,eAAe,IAAI,kBAAkB,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,sCAAsC,QAAQ,IAAI,CAAC,CACjE,CAAC;QACF,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAClE,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,0CAA0C;IAC1C,IAAI,eAAe,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,mDAAmD,eAAe,EAAE,CACrE,CACF,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import { Options, RawOptions } from './types.js';
|
|
1
|
+
import { type Options, type RawOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes the raw options by providing default values and parsing specific fields.
|
|
4
|
+
* @param raw - The raw options to normalize.
|
|
5
|
+
* @returns The normalized options.
|
|
6
|
+
*/
|
|
2
7
|
export declare function normalizeOptions(raw: RawOptions): Options;
|
|
8
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAmC9F;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAoEzD"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { ALLOWED_CATEGORIES } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parses a comma-separated list of strings into an array of strings.
|
|
6
|
+
* @param val - The input value, which can be a string, an array of strings, or undefined.
|
|
7
|
+
* @returns An array of strings.
|
|
8
|
+
*/
|
|
4
9
|
function parseList(val) {
|
|
5
10
|
const arr = Array.isArray(val) ? val : val ? [val] : [];
|
|
6
11
|
return arr
|
|
@@ -8,6 +13,12 @@ function parseList(val) {
|
|
|
8
13
|
.map((s) => s.trim())
|
|
9
14
|
.filter(Boolean);
|
|
10
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Parses a comma-separated list of strings into an array of strings.
|
|
18
|
+
* @param val - The input value, which can be a string, an array of strings, or undefined.
|
|
19
|
+
* @param flagName - The name of the flag being parsed (for error messages).
|
|
20
|
+
* @returns An array of categories.
|
|
21
|
+
*/
|
|
11
22
|
function parseCategories(val, flagName = '') {
|
|
12
23
|
const raw = parseList(val);
|
|
13
24
|
const bad = raw.filter((c) => !ALLOWED_CATEGORIES.includes(c));
|
|
@@ -17,6 +28,11 @@ function parseCategories(val, flagName = '') {
|
|
|
17
28
|
}
|
|
18
29
|
return raw;
|
|
19
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Normalizes the raw options by providing default values and parsing specific fields.
|
|
33
|
+
* @param raw - The raw options to normalize.
|
|
34
|
+
* @returns The normalized options.
|
|
35
|
+
*/
|
|
20
36
|
export function normalizeOptions(raw) {
|
|
21
37
|
const checkValues = raw.checkValues ?? false;
|
|
22
38
|
const isCiMode = Boolean(raw.ci);
|
|
@@ -25,13 +41,16 @@ export function normalizeOptions(raw) {
|
|
|
25
41
|
const fix = Boolean(raw.fix);
|
|
26
42
|
const json = Boolean(raw.json);
|
|
27
43
|
const onlyParsed = parseCategories(raw.only, '--only');
|
|
28
|
-
const only = onlyParsed.length ? onlyParsed :
|
|
29
|
-
const
|
|
44
|
+
const only = onlyParsed.length ? onlyParsed : [];
|
|
45
|
+
const noColor = Boolean(raw.noColor);
|
|
46
|
+
const compare = Boolean(raw.compare);
|
|
47
|
+
const scanUsage = raw.scanUsage ?? !compare;
|
|
30
48
|
const includeFiles = parseList(raw.includeFiles);
|
|
31
49
|
const excludeFiles = parseList(raw.excludeFiles);
|
|
32
|
-
const showUnused =
|
|
33
|
-
const showStats =
|
|
50
|
+
const showUnused = raw.showUnused === false ? false : true;
|
|
51
|
+
const showStats = raw.showStats === false ? false : true;
|
|
34
52
|
const files = parseList(raw.files);
|
|
53
|
+
const secrets = raw.secrets === false ? false : true;
|
|
35
54
|
const ignore = parseList(raw.ignore);
|
|
36
55
|
const ignoreRegex = [];
|
|
37
56
|
for (const pattern of parseList(raw.ignoreRegex)) {
|
|
@@ -47,8 +66,8 @@ export function normalizeOptions(raw) {
|
|
|
47
66
|
console.log(chalk.yellow('⚠️ Both --ci and --yes provided; proceeding with --yes.'));
|
|
48
67
|
}
|
|
49
68
|
const cwd = process.cwd();
|
|
50
|
-
const envFlag = typeof raw.env === 'string' ? path.resolve(cwd, raw.env) :
|
|
51
|
-
const exampleFlag = typeof raw.example === 'string' ? path.resolve(cwd, raw.example) :
|
|
69
|
+
const envFlag = typeof raw.env === 'string' ? path.resolve(cwd, raw.env) : undefined;
|
|
70
|
+
const exampleFlag = typeof raw.example === 'string' ? path.resolve(cwd, raw.example) : undefined;
|
|
52
71
|
return {
|
|
53
72
|
checkValues,
|
|
54
73
|
isCiMode,
|
|
@@ -62,11 +81,15 @@ export function normalizeOptions(raw) {
|
|
|
62
81
|
ignoreRegex,
|
|
63
82
|
cwd,
|
|
64
83
|
only,
|
|
84
|
+
compare,
|
|
85
|
+
noColor,
|
|
65
86
|
scanUsage,
|
|
66
87
|
includeFiles,
|
|
67
88
|
excludeFiles,
|
|
68
89
|
showUnused,
|
|
69
90
|
showStats,
|
|
70
91
|
files,
|
|
92
|
+
secrets,
|
|
71
93
|
};
|
|
72
94
|
}
|
|
95
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export declare const ALLOWED_CATEGORIES: readonly ["missing", "extra", "empty", "mismatch", "duplicate", "gitignore"];
|
|
2
2
|
export type Category = (typeof ALLOWED_CATEGORIES)[number];
|
|
3
|
+
/** Type representing the options for the comparison
|
|
4
|
+
* These are the options that are processed and validated before being used in the comparison.
|
|
5
|
+
*/
|
|
3
6
|
export type Options = {
|
|
4
7
|
checkValues: boolean;
|
|
5
8
|
isCiMode: boolean;
|
|
@@ -7,12 +10,13 @@ export type Options = {
|
|
|
7
10
|
allowDuplicates: boolean;
|
|
8
11
|
fix: boolean;
|
|
9
12
|
json: boolean;
|
|
10
|
-
envFlag: string |
|
|
11
|
-
exampleFlag: string |
|
|
13
|
+
envFlag: string | undefined;
|
|
14
|
+
exampleFlag: string | undefined;
|
|
12
15
|
ignore: string[];
|
|
13
16
|
ignoreRegex: RegExp[];
|
|
14
17
|
cwd: string;
|
|
15
18
|
only?: Category[];
|
|
19
|
+
compare: boolean;
|
|
16
20
|
scanUsage: boolean;
|
|
17
21
|
includeFiles: string[];
|
|
18
22
|
excludeFiles: string[];
|
|
@@ -20,7 +24,11 @@ export type Options = {
|
|
|
20
24
|
showStats: boolean;
|
|
21
25
|
files?: string[];
|
|
22
26
|
noColor?: boolean;
|
|
27
|
+
secrets: boolean;
|
|
23
28
|
};
|
|
29
|
+
/** Type representing the raw options for the comparison
|
|
30
|
+
* These are the options that are directly passed to the comparison function without any processing or validation.
|
|
31
|
+
*/
|
|
24
32
|
export type RawOptions = {
|
|
25
33
|
checkValues?: boolean;
|
|
26
34
|
ci?: boolean;
|
|
@@ -33,13 +41,20 @@ export type RawOptions = {
|
|
|
33
41
|
ignore?: string | string[];
|
|
34
42
|
ignoreRegex?: string | string[];
|
|
35
43
|
only?: string | string[];
|
|
44
|
+
compare?: boolean;
|
|
45
|
+
noColor?: boolean;
|
|
36
46
|
scanUsage?: boolean;
|
|
37
47
|
includeFiles?: string | string[];
|
|
38
48
|
excludeFiles?: string | string[];
|
|
39
49
|
showUnused?: boolean;
|
|
40
50
|
showStats?: boolean;
|
|
41
51
|
files?: string | string[];
|
|
52
|
+
secrets?: boolean;
|
|
42
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Type representing a single entry in the comparison results
|
|
56
|
+
* This entry contains the environment variable and its example value.
|
|
57
|
+
*/
|
|
43
58
|
export type CompareJsonEntry = {
|
|
44
59
|
env: string;
|
|
45
60
|
example: string;
|
|
@@ -66,3 +81,4 @@ export type CompareJsonEntry = {
|
|
|
66
81
|
}>;
|
|
67
82
|
ok?: boolean;
|
|
68
83
|
};
|
|
84
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,OAAO;IACP,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;CACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the normalized Shannon entropy of a string.
|
|
3
|
+
* Shannon entropy is a measure of the unpredictability or randomness of a string.
|
|
4
|
+
* @param s - The input string.
|
|
5
|
+
* @returns The normalized Shannon entropy (between 0 and 1).
|
|
6
|
+
*/
|
|
7
|
+
export declare function shannonEntropyNormalized(s: string): number;
|
|
8
|
+
//# sourceMappingURL=entropy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropy.d.ts","sourceRoot":"","sources":["../../../src/core/entropy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAa1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the normalized Shannon entropy of a string.
|
|
3
|
+
* Shannon entropy is a measure of the unpredictability or randomness of a string.
|
|
4
|
+
* @param s - The input string.
|
|
5
|
+
* @returns The normalized Shannon entropy (between 0 and 1).
|
|
6
|
+
*/
|
|
7
|
+
export function shannonEntropyNormalized(s) {
|
|
8
|
+
if (!s)
|
|
9
|
+
return 0;
|
|
10
|
+
const freq = new Map();
|
|
11
|
+
for (const ch of s)
|
|
12
|
+
freq.set(ch, (freq.get(ch) ?? 0) + 1);
|
|
13
|
+
const len = s.length;
|
|
14
|
+
let H = 0;
|
|
15
|
+
for (const [, c] of freq) {
|
|
16
|
+
const p = c / len;
|
|
17
|
+
H += -p * Math.log2(p);
|
|
18
|
+
}
|
|
19
|
+
// Antag alfabet ~72 tegn (A-Za-z0-9+/_- mv.)
|
|
20
|
+
const maxH = Math.log2(72);
|
|
21
|
+
return Math.min(1, H / maxH);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=entropy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropy.js","sourceRoot":"","sources":["../../../src/core/entropy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,CAAS;IAChD,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAClB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,6CAA6C;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filters out keys that are in the ignore list or match any of the ignore regex patterns.
|
|
3
|
+
* @param keys - The list of keys to filter.
|
|
4
|
+
* @param ignore - The list of keys to ignore.
|
|
5
|
+
* @param ignoreRegex - The list of regex patterns to ignore.
|
|
6
|
+
* @returns The filtered list of keys.
|
|
7
|
+
*/
|
|
1
8
|
export declare function filterIgnoredKeys(keys: string[], ignore: string[], ignoreRegex: RegExp[]): string[];
|
|
9
|
+
//# sourceMappingURL=filterIgnoredKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterIgnoredKeys.d.ts","sourceRoot":"","sources":["../../../src/core/filterIgnoredKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAIV"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filters out keys that are in the ignore list or match any of the ignore regex patterns.
|
|
3
|
+
* @param keys - The list of keys to filter.
|
|
4
|
+
* @param ignore - The list of keys to ignore.
|
|
5
|
+
* @param ignoreRegex - The list of regex patterns to ignore.
|
|
6
|
+
* @returns The filtered list of keys.
|
|
7
|
+
*/
|
|
1
8
|
export function filterIgnoredKeys(keys, ignore, ignoreRegex) {
|
|
2
9
|
return keys.filter((k) => !ignore.includes(k) && !ignoreRegex.some((rx) => rx.test(k)));
|
|
3
10
|
}
|
|
11
|
+
//# sourceMappingURL=filterIgnoredKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterIgnoredKeys.js","sourceRoot":"","sources":["../../../src/core/filterIgnoredKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAc,EACd,MAAgB,EAChB,WAAqB;IAErB,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies fixes to the .env and .env.example files based on the detected issues.
|
|
3
|
+
* @param envPath - The path to the .env file.
|
|
4
|
+
* @param examplePath - The path to the .env.example file.
|
|
5
|
+
* @param missingKeys - The list of missing keys to add.
|
|
6
|
+
* @param duplicateKeys - The list of duplicate keys to remove.
|
|
7
|
+
* @returns An object indicating whether changes were made and details of the changes.
|
|
8
|
+
*/
|
|
1
9
|
export declare function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }: {
|
|
2
10
|
envPath: string;
|
|
3
11
|
examplePath: string;
|
|
@@ -11,3 +19,4 @@ export declare function applyFixes({ envPath, examplePath, missingKeys, duplicat
|
|
|
11
19
|
addedExample: string[];
|
|
12
20
|
};
|
|
13
21
|
};
|
|
22
|
+
//# sourceMappingURL=fixEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixEnv.d.ts","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,WAAW,EACX,WAAW,EACX,aAAa,GACd,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;;;2BAE4B,MAAM,EAAE;kBACjB,MAAM,EAAE;sBACJ,MAAM,EAAE;;EAgE/B"}
|
package/dist/src/core/fixEnv.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* Applies fixes to the .env and .env.example files based on the detected issues.
|
|
4
|
+
* @param envPath - The path to the .env file.
|
|
5
|
+
* @param examplePath - The path to the .env.example file.
|
|
6
|
+
* @param missingKeys - The list of missing keys to add.
|
|
7
|
+
* @param duplicateKeys - The list of duplicate keys to remove.
|
|
8
|
+
* @returns An object indicating whether changes were made and details of the changes.
|
|
9
|
+
*/
|
|
2
10
|
export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }) {
|
|
3
11
|
const result = {
|
|
4
12
|
removedDuplicates: [],
|
|
@@ -12,9 +20,11 @@ export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }
|
|
|
12
20
|
const newLines = [];
|
|
13
21
|
for (let i = lines.length - 1; i >= 0; i--) {
|
|
14
22
|
const line = lines[i];
|
|
23
|
+
if (line === undefined)
|
|
24
|
+
continue;
|
|
15
25
|
const match = line.match(/^\s*([\w.-]+)\s*=/);
|
|
16
26
|
if (match) {
|
|
17
|
-
const key = match[1];
|
|
27
|
+
const key = match[1] || '';
|
|
18
28
|
if (duplicateKeys.includes(key)) {
|
|
19
29
|
if (seen.has(key))
|
|
20
30
|
continue; // skip duplicate
|
|
@@ -58,3 +68,4 @@ export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }
|
|
|
58
68
|
result.addedExample.length > 0;
|
|
59
69
|
return { changed, result };
|
|
60
70
|
}
|
|
71
|
+
//# sourceMappingURL=fixEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixEnv.js","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type SecretFinding = {
|
|
2
|
+
file: string;
|
|
3
|
+
line: number;
|
|
4
|
+
kind: 'pattern' | 'entropy';
|
|
5
|
+
message: string;
|
|
6
|
+
snippet: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Detects secrets in the source code of a file.
|
|
10
|
+
* @param file - The file path to check.
|
|
11
|
+
* @param source - The source code to scan for secrets.
|
|
12
|
+
* @returns An array of secret findings.
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectSecretsInSource(file: string, source: string): SecretFinding[];
|
|
15
|
+
//# sourceMappingURL=secretDetectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretDetectors.d.ts","sourceRoot":"","sources":["../../../src/core/secretDetectors.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAsCF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,aAAa,EAAE,CAyDjB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { shannonEntropyNormalized } from './entropy.js';
|
|
2
|
+
// Regular expressions for detecting suspicious keys and provider patterns
|
|
3
|
+
const SUSPICIOUS_KEYS = /\b(pass(word)?|secret|token|apikey|api_key|key|auth|bearer|private|client_secret|access[_-]?token)\b/i;
|
|
4
|
+
// Regular expressions for detecting provider patterns
|
|
5
|
+
const PROVIDER_PATTERNS = [
|
|
6
|
+
/\bAKIA[0-9A-Z]{16}\b/, // AWS access key id
|
|
7
|
+
/\bASIA[0-9A-Z]{16}\b/, // AWS temp key
|
|
8
|
+
/\bghp_[0-9A-Za-z]{30,}\b/, // GitHub token
|
|
9
|
+
/\bsk_live_[0-9a-zA-Z]{24,}\b/, // Stripe live secret
|
|
10
|
+
/\bsk_test_[0-9a-zA-Z]{24,}\b/, // Stripe test secret
|
|
11
|
+
/\bAIza[0-9A-Za-z\-_]{20,}\b/, // Google API key
|
|
12
|
+
];
|
|
13
|
+
const LONG_LITERAL = /["'`]{1}([A-Za-z0-9+/_\-]{24,})["'`]{1}/g;
|
|
14
|
+
function looksHarmlessLiteral(s) {
|
|
15
|
+
return /^https?:\/\//i.test(s) || /\S+@\S+/.test(s);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a file path is probably a test path.
|
|
19
|
+
* This is determined by looking for common test folder names and file extensions.
|
|
20
|
+
* @param p - The file path to check.
|
|
21
|
+
* @returns True if the file path is probably a test path, false otherwise.
|
|
22
|
+
*/
|
|
23
|
+
function isProbablyTestPath(p) {
|
|
24
|
+
return (/\b(__tests__|__mocks__|fixtures|sandbox|samples)\b/i.test(p) ||
|
|
25
|
+
/\.(spec|test)\.[jt]sx?$/.test(p));
|
|
26
|
+
}
|
|
27
|
+
// Threshold is the value between 0 and 1 that determines the sensitivity of the detection.
|
|
28
|
+
const DEFAULT_SECRET_THRESHOLD = 0.9;
|
|
29
|
+
/**
|
|
30
|
+
* Detects secrets in the source code of a file.
|
|
31
|
+
* @param file - The file path to check.
|
|
32
|
+
* @param source - The source code to scan for secrets.
|
|
33
|
+
* @returns An array of secret findings.
|
|
34
|
+
*/
|
|
35
|
+
export function detectSecretsInSource(file, source) {
|
|
36
|
+
const threshold = isProbablyTestPath(file) ? 0.95 : DEFAULT_SECRET_THRESHOLD;
|
|
37
|
+
const findings = [];
|
|
38
|
+
const lines = source.split(/\r?\n/);
|
|
39
|
+
for (let i = 0; i < lines.length; i++) {
|
|
40
|
+
const lineNo = i + 1;
|
|
41
|
+
const line = lines[i] || '';
|
|
42
|
+
// 1) Suspicious key literal assignments
|
|
43
|
+
if (SUSPICIOUS_KEYS.test(line)) {
|
|
44
|
+
const m = line.match(/=\s*["'`](.+?)["'`]/);
|
|
45
|
+
if (m && m[1] && !looksHarmlessLiteral(m[1]) && m[1].length >= 12) {
|
|
46
|
+
findings.push({
|
|
47
|
+
file,
|
|
48
|
+
line: lineNo,
|
|
49
|
+
kind: 'pattern',
|
|
50
|
+
message: 'matches password/secret/token-like literal assignment',
|
|
51
|
+
snippet: line.trim().slice(0, 180),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// 2) Provider patterns
|
|
56
|
+
for (const rx of PROVIDER_PATTERNS) {
|
|
57
|
+
if (rx.test(line)) {
|
|
58
|
+
findings.push({
|
|
59
|
+
file,
|
|
60
|
+
line: lineNo,
|
|
61
|
+
kind: 'pattern',
|
|
62
|
+
message: 'matches known provider key pattern',
|
|
63
|
+
snippet: line.trim().slice(0, 180),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// 3) High-entropy long literals
|
|
68
|
+
LONG_LITERAL.lastIndex = 0;
|
|
69
|
+
let lm;
|
|
70
|
+
while ((lm = LONG_LITERAL.exec(line))) {
|
|
71
|
+
const literal = lm[1] || '';
|
|
72
|
+
if (looksHarmlessLiteral(literal))
|
|
73
|
+
continue;
|
|
74
|
+
if (literal.length < 32)
|
|
75
|
+
continue; // ekstra støjfilter
|
|
76
|
+
const ent = shannonEntropyNormalized(literal);
|
|
77
|
+
if (ent >= threshold) {
|
|
78
|
+
findings.push({
|
|
79
|
+
file,
|
|
80
|
+
line: lineNo,
|
|
81
|
+
kind: 'entropy',
|
|
82
|
+
message: `found high-entropy string (len ${literal.length}, H≈${ent.toFixed(2)})`,
|
|
83
|
+
snippet: line.trim().slice(0, 180),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return findings;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=secretDetectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretDetectors.js","sourceRoot":"","sources":["../../../src/core/secretDetectors.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|