dotenv-diff 2.2.7 → 2.3.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 +28 -0
- package/dist/src/cli/program.d.ts.map +1 -1
- package/dist/src/cli/program.js +4 -1
- package/dist/src/cli/program.js.map +1 -1
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +42 -31
- package/dist/src/cli/run.js.map +1 -1
- package/dist/src/commands/compare.d.ts +2 -20
- package/dist/src/commands/compare.d.ts.map +1 -1
- package/dist/src/commands/compare.js +107 -173
- package/dist/src/commands/compare.js.map +1 -1
- package/dist/src/commands/init.d.ts +3 -15
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +17 -66
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/scanUsage.d.ts.map +1 -1
- package/dist/src/commands/scanUsage.js +87 -173
- package/dist/src/commands/scanUsage.js.map +1 -1
- package/dist/src/config/loadConfig.d.ts +9 -1
- package/dist/src/config/loadConfig.d.ts.map +1 -1
- package/dist/src/config/loadConfig.js +31 -0
- package/dist/src/config/loadConfig.js.map +1 -0
- package/dist/src/config/options.d.ts.map +1 -1
- package/dist/src/config/options.js +46 -32
- package/dist/src/config/options.js.map +1 -1
- package/dist/src/config/types.d.ts +65 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/determineComparisonFile.d.ts.map +1 -1
- package/dist/src/core/determineComparisonFile.js +3 -0
- package/dist/src/core/determineComparisonFile.js.map +1 -1
- package/dist/src/core/entropy.js +1 -1
- package/dist/src/core/entropy.js.map +1 -1
- package/dist/src/core/fixEnv.d.ts +24 -15
- package/dist/src/core/fixEnv.d.ts.map +1 -1
- package/dist/src/core/fixEnv.js +70 -11
- package/dist/src/core/fixEnv.js.map +1 -1
- package/dist/src/core/helpers/isAllOk.d.ts +8 -0
- package/dist/src/core/helpers/isAllOk.d.ts.map +1 -0
- package/dist/src/core/helpers/isAllOk.js +15 -0
- package/dist/src/core/helpers/isAllOk.js.map +1 -0
- package/dist/src/core/helpers/resolveFromCwd.d.ts.map +1 -1
- package/dist/src/core/helpers/resolveFromCwd.js.map +1 -1
- package/dist/src/core/helpers/updateTotals.d.ts +20 -0
- package/dist/src/core/helpers/updateTotals.d.ts.map +1 -0
- package/dist/src/core/helpers/updateTotals.js +37 -0
- package/dist/src/core/helpers/updateTotals.js.map +1 -0
- package/dist/src/core/processComparisonFile.d.ts +36 -0
- package/dist/src/core/processComparisonFile.d.ts.map +1 -0
- package/dist/src/core/processComparisonFile.js +124 -0
- package/dist/src/core/processComparisonFile.js.map +1 -0
- package/dist/src/core/secretDetectors.d.ts +10 -1
- package/dist/src/core/secretDetectors.d.ts.map +1 -1
- package/dist/src/core/secretDetectors.js +35 -4
- package/dist/src/core/secretDetectors.js.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/codeBaseScanner.js +1 -1
- package/dist/src/services/codeBaseScanner.js.map +1 -1
- package/dist/src/services/ensureFilesOrPrompt.d.ts.map +1 -1
- package/dist/src/services/ensureFilesOrPrompt.js +10 -11
- package/dist/src/services/ensureFilesOrPrompt.js.map +1 -1
- package/dist/src/services/git.d.ts +9 -0
- package/dist/src/services/git.d.ts.map +1 -1
- package/dist/src/services/git.js +46 -3
- package/dist/src/services/git.js.map +1 -1
- package/dist/src/services/scanOutputToConsole.d.ts +6 -1
- package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
- package/dist/src/services/scanOutputToConsole.js +67 -140
- package/dist/src/services/scanOutputToConsole.js.map +1 -1
- package/dist/src/ui/compare/printAutoFix.d.ts +16 -0
- package/dist/src/ui/compare/printAutoFix.d.ts.map +1 -0
- package/dist/src/ui/compare/printAutoFix.js +34 -0
- package/dist/src/ui/compare/printAutoFix.js.map +1 -0
- package/dist/src/ui/compare/printAutoFixApplied.d.ts +7 -0
- package/dist/src/ui/compare/printAutoFixApplied.d.ts.map +1 -0
- package/dist/src/ui/compare/printAutoFixApplied.js +22 -0
- package/dist/src/ui/compare/printAutoFixApplied.js.map +1 -0
- package/dist/src/ui/compare/printDuplicates.d.ts +17 -0
- package/dist/src/ui/compare/printDuplicates.d.ts.map +1 -0
- package/dist/src/ui/compare/printDuplicates.js +25 -0
- package/dist/src/ui/compare/printDuplicates.js.map +1 -0
- package/dist/src/ui/compare/printErrorNotFound.d.ts +9 -0
- package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -0
- package/dist/src/ui/compare/printErrorNotFound.js +18 -0
- package/dist/src/ui/compare/printErrorNotFound.js.map +1 -0
- package/dist/src/ui/compare/printFixTips.d.ts +11 -0
- package/dist/src/ui/compare/printFixTips.d.ts.map +1 -0
- package/dist/src/ui/compare/printFixTips.js +46 -0
- package/dist/src/ui/compare/printFixTips.js.map +1 -0
- package/dist/src/ui/compare/printHeader.d.ts +10 -0
- package/dist/src/ui/compare/printHeader.d.ts.map +1 -0
- package/dist/src/ui/compare/printHeader.js +20 -0
- package/dist/src/ui/compare/printHeader.js.map +1 -0
- package/dist/src/ui/compare/printIssues.d.ts +9 -0
- package/dist/src/ui/compare/printIssues.d.ts.map +1 -0
- package/dist/src/ui/compare/printIssues.js +34 -0
- package/dist/src/ui/compare/printIssues.js.map +1 -0
- package/dist/src/ui/compare/printPrompt.d.ts +11 -0
- package/dist/src/ui/compare/printPrompt.d.ts.map +1 -0
- package/dist/src/ui/compare/printPrompt.js +24 -0
- package/dist/src/ui/compare/printPrompt.js.map +1 -0
- package/dist/src/ui/compare/printStats.d.ts +19 -0
- package/dist/src/ui/compare/printStats.d.ts.map +1 -0
- package/dist/src/ui/compare/printStats.js +30 -0
- package/dist/src/ui/compare/printStats.js.map +1 -0
- package/dist/src/ui/compare/printSuccess.d.ts +11 -0
- package/dist/src/ui/compare/printSuccess.d.ts.map +1 -0
- package/dist/src/ui/compare/printSuccess.js +27 -0
- package/dist/src/ui/compare/printSuccess.js.map +1 -0
- package/dist/src/ui/scan/printComparisonError.d.ts +11 -0
- package/dist/src/ui/scan/printComparisonError.d.ts.map +1 -0
- package/dist/src/ui/scan/printComparisonError.js +20 -0
- package/dist/src/ui/scan/printComparisonError.js.map +1 -0
- package/dist/src/ui/scan/printHeader.d.ts +7 -0
- package/dist/src/ui/scan/printHeader.d.ts.map +1 -0
- package/dist/src/ui/scan/printHeader.js +16 -0
- package/dist/src/ui/scan/printHeader.js.map +1 -0
- package/dist/src/ui/scan/printMissing.d.ts +13 -0
- package/dist/src/ui/scan/printMissing.d.ts.map +1 -0
- package/dist/src/ui/scan/printMissing.js +43 -0
- package/dist/src/ui/scan/printMissing.js.map +1 -0
- package/dist/src/ui/scan/printMissingExample.d.ts +9 -0
- package/dist/src/ui/scan/printMissingExample.d.ts.map +1 -0
- package/dist/src/ui/scan/printMissingExample.js +27 -0
- package/dist/src/ui/scan/printMissingExample.js.map +1 -0
- package/dist/src/ui/scan/printSecrets.d.ts +14 -0
- package/dist/src/ui/scan/printSecrets.d.ts.map +1 -0
- package/dist/src/ui/scan/printSecrets.js +29 -0
- package/dist/src/ui/scan/printSecrets.js.map +1 -0
- package/dist/src/ui/scan/printStats.d.ts +13 -0
- package/dist/src/ui/scan/printStats.d.ts.map +1 -0
- package/dist/src/ui/scan/printStats.js +17 -0
- package/dist/src/ui/scan/printStats.js.map +1 -0
- package/dist/src/ui/scan/printUniqueVariables.d.ts +7 -0
- package/dist/src/ui/scan/printUniqueVariables.d.ts.map +1 -0
- package/dist/src/ui/scan/printUniqueVariables.js +14 -0
- package/dist/src/ui/scan/printUniqueVariables.js.map +1 -0
- package/dist/src/ui/scan/printUnused.d.ts +10 -0
- package/dist/src/ui/scan/printUnused.d.ts.map +1 -0
- package/dist/src/ui/scan/printUnused.js +22 -0
- package/dist/src/ui/scan/printUnused.js.map +1 -0
- package/dist/src/ui/scan/printVariables.d.ts +10 -0
- package/dist/src/ui/scan/printVariables.d.ts.map +1 -0
- package/dist/src/ui/scan/printVariables.js +37 -0
- package/dist/src/ui/scan/printVariables.js.map +1 -0
- package/dist/src/ui/shared/printAutoFix.d.ts +16 -0
- package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -0
- package/dist/src/ui/shared/printAutoFix.js +34 -0
- package/dist/src/ui/shared/printAutoFix.js.map +1 -0
- package/dist/src/ui/shared/printConfigStatus.d.ts +11 -0
- package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -0
- package/dist/src/ui/shared/printConfigStatus.js +23 -0
- package/dist/src/ui/shared/printConfigStatus.js.map +1 -0
- package/dist/src/ui/shared/printDuplicates.d.ts +17 -0
- package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -0
- package/dist/src/ui/shared/printDuplicates.js +25 -0
- package/dist/src/ui/shared/printDuplicates.js.map +1 -0
- package/dist/src/ui/shared/printFixTips.d.ts +11 -0
- package/dist/src/ui/shared/printFixTips.d.ts.map +1 -0
- package/dist/src/ui/shared/printFixTips.js +46 -0
- package/dist/src/ui/shared/printFixTips.js.map +1 -0
- package/dist/src/ui/shared/printGitignore.d.ts +13 -0
- package/dist/src/ui/shared/printGitignore.d.ts.map +1 -0
- package/dist/src/ui/shared/printGitignore.js +20 -0
- package/dist/src/ui/shared/printGitignore.js.map +1 -0
- package/dist/src/ui/shared/printInitStatus.d.ts +9 -0
- package/dist/src/ui/shared/printInitStatus.d.ts.map +1 -0
- package/dist/src/ui/shared/printInitStatus.js +20 -0
- package/dist/src/ui/shared/printInitStatus.js.map +1 -0
- package/dist/src/ui/shared/printOptionErrors.d.ts +17 -0
- package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -0
- package/dist/src/ui/shared/printOptionErrors.js +27 -0
- package/dist/src/ui/shared/printOptionErrors.js.map +1 -0
- package/dist/src/ui/shared/printStrictModeError.d.ts +16 -0
- package/dist/src/ui/shared/printStrictModeError.d.ts.map +1 -0
- package/dist/src/ui/shared/printStrictModeError.js +29 -0
- package/dist/src/ui/shared/printStrictModeError.js.map +1 -0
- package/dist/src/ui/shared/printSuccess.d.ts +11 -0
- package/dist/src/ui/shared/printSuccess.d.ts.map +1 -0
- package/dist/src/ui/shared/printSuccess.js +27 -0
- package/dist/src/ui/shared/printSuccess.js.map +1 -0
- package/dist/src/ui/shared/setupGlobalConfig.d.ts +7 -0
- package/dist/src/ui/shared/setupGlobalConfig.d.ts.map +1 -0
- package/dist/src/ui/shared/setupGlobalConfig.js +12 -0
- package/dist/src/ui/shared/setupGlobalConfig.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
1
|
import path from 'path';
|
|
3
2
|
import { ALLOWED_CATEGORIES, } from './types.js';
|
|
3
|
+
import { printInvalidCategory, printInvalidRegex, printCiYesWarning, } from '../ui/shared/printOptionErrors.js';
|
|
4
4
|
/**
|
|
5
5
|
* Parses a comma-separated list of strings into an array of strings.
|
|
6
6
|
* @param val - The input value, which can be a string, an array of strings, or undefined.
|
|
@@ -19,58 +19,70 @@ function parseList(val) {
|
|
|
19
19
|
* @param flagName - The name of the flag being parsed (for error messages).
|
|
20
20
|
* @returns An array of categories.
|
|
21
21
|
*/
|
|
22
|
-
function parseCategories(val, flagName = '') {
|
|
22
|
+
function parseCategories(val, flagName = '--only') {
|
|
23
23
|
const raw = parseList(val);
|
|
24
24
|
const bad = raw.filter((c) => !ALLOWED_CATEGORIES.includes(c));
|
|
25
25
|
if (bad.length) {
|
|
26
|
-
|
|
27
|
-
process.exit(1);
|
|
26
|
+
printInvalidCategory(flagName, bad, ALLOWED_CATEGORIES);
|
|
28
27
|
}
|
|
29
28
|
return raw;
|
|
30
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Parses regex patterns safely, exiting on invalid syntax.
|
|
32
|
+
*/
|
|
33
|
+
function parseRegexList(val) {
|
|
34
|
+
const regexList = [];
|
|
35
|
+
for (const pattern of parseList(val)) {
|
|
36
|
+
try {
|
|
37
|
+
regexList.push(new RegExp(pattern));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
printInvalidRegex(pattern);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return regexList;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Converts flag value to boolean.
|
|
47
|
+
*/
|
|
48
|
+
function toBool(value) {
|
|
49
|
+
return value === true || value === 'true';
|
|
50
|
+
}
|
|
31
51
|
/**
|
|
32
52
|
* Normalizes the raw options by providing default values and parsing specific fields.
|
|
33
53
|
* @param raw - The raw options to normalize.
|
|
34
54
|
* @returns The normalized options.
|
|
35
55
|
*/
|
|
36
56
|
export function normalizeOptions(raw) {
|
|
37
|
-
const checkValues = raw.checkValues
|
|
38
|
-
const isCiMode =
|
|
39
|
-
const isYesMode =
|
|
40
|
-
const allowDuplicates =
|
|
41
|
-
const fix =
|
|
42
|
-
const json =
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const compare = Boolean(raw.compare);
|
|
57
|
+
const checkValues = toBool(raw.checkValues);
|
|
58
|
+
const isCiMode = toBool(raw.ci);
|
|
59
|
+
const isYesMode = toBool(raw.yes);
|
|
60
|
+
const allowDuplicates = toBool(raw.allowDuplicates);
|
|
61
|
+
const fix = toBool(raw.fix);
|
|
62
|
+
const json = toBool(raw.json);
|
|
63
|
+
const noColor = toBool(raw.noColor);
|
|
64
|
+
const compare = toBool(raw.compare);
|
|
65
|
+
const strict = toBool(raw.strict);
|
|
47
66
|
const scanUsage = raw.scanUsage ?? !compare;
|
|
67
|
+
const showUnused = raw.showUnused !== false;
|
|
68
|
+
const showStats = raw.showStats !== false;
|
|
69
|
+
const secrets = raw.secrets !== false;
|
|
70
|
+
const only = parseCategories(raw.only);
|
|
71
|
+
const ignore = parseList(raw.ignore);
|
|
72
|
+
const ignoreRegex = parseRegexList(raw.ignoreRegex);
|
|
48
73
|
const includeFiles = parseList(raw.includeFiles);
|
|
49
74
|
const excludeFiles = parseList(raw.excludeFiles);
|
|
50
|
-
const showUnused = raw.showUnused === false ? false : true;
|
|
51
|
-
const showStats = raw.showStats === false ? false : true;
|
|
52
75
|
const files = parseList(raw.files);
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const ignore = parseList(raw.ignore);
|
|
56
|
-
const ignoreRegex = [];
|
|
57
|
-
for (const pattern of parseList(raw.ignoreRegex)) {
|
|
58
|
-
try {
|
|
59
|
-
ignoreRegex.push(new RegExp(pattern));
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
console.error(chalk.red(`❌ Error: invalid --ignore-regex pattern: ${pattern}`));
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (isCiMode && isYesMode) {
|
|
67
|
-
console.log(chalk.yellow('⚠️ Both --ci and --yes provided; proceeding with --yes.'));
|
|
68
|
-
}
|
|
76
|
+
const noCompare = toBool(raw.noCompare);
|
|
77
|
+
const ignoreUrls = parseList(raw.ignoreUrls);
|
|
69
78
|
const cwd = process.cwd();
|
|
70
79
|
const envFlag = typeof raw.env === 'string' ? path.resolve(cwd, raw.env) : undefined;
|
|
71
80
|
const exampleFlag = typeof raw.example === 'string'
|
|
72
81
|
? path.resolve(cwd, raw.example)
|
|
73
82
|
: undefined;
|
|
83
|
+
if (isCiMode && isYesMode) {
|
|
84
|
+
printCiYesWarning();
|
|
85
|
+
}
|
|
74
86
|
return {
|
|
75
87
|
checkValues,
|
|
76
88
|
isCiMode,
|
|
@@ -94,6 +106,8 @@ export function normalizeOptions(raw) {
|
|
|
94
106
|
files,
|
|
95
107
|
secrets,
|
|
96
108
|
strict,
|
|
109
|
+
ignoreUrls,
|
|
110
|
+
noCompare
|
|
97
111
|
};
|
|
98
112
|
}
|
|
99
113
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export type Options = {
|
|
|
27
27
|
noColor?: boolean;
|
|
28
28
|
secrets: boolean;
|
|
29
29
|
strict: boolean | undefined;
|
|
30
|
+
ignoreUrls?: string[];
|
|
31
|
+
noCompare: boolean;
|
|
30
32
|
};
|
|
31
33
|
/** Type representing the raw options for the comparison
|
|
32
34
|
* These are the options that are directly passed to the comparison function without any processing or validation.
|
|
@@ -53,6 +55,9 @@ export type RawOptions = {
|
|
|
53
55
|
files?: string | string[];
|
|
54
56
|
secrets?: boolean;
|
|
55
57
|
strict?: boolean;
|
|
58
|
+
ignoreUrls?: string[];
|
|
59
|
+
noCompare?: boolean;
|
|
60
|
+
init?: boolean;
|
|
56
61
|
};
|
|
57
62
|
/**
|
|
58
63
|
* Type representing a single entry in the comparison results
|
|
@@ -103,6 +108,8 @@ export interface ScanOptions {
|
|
|
103
108
|
ignoreRegex: RegExp[];
|
|
104
109
|
files?: string[];
|
|
105
110
|
secrets?: boolean;
|
|
111
|
+
ignoreUrls?: string[];
|
|
112
|
+
noCompare?: boolean;
|
|
106
113
|
}
|
|
107
114
|
export interface ScanResult {
|
|
108
115
|
used: EnvUsage[];
|
|
@@ -183,4 +190,62 @@ export interface ScanJsonEntry {
|
|
|
183
190
|
export interface VariableUsages {
|
|
184
191
|
[variable: string]: EnvUsage[];
|
|
185
192
|
}
|
|
193
|
+
export interface ComparisonOptions {
|
|
194
|
+
checkValues: boolean;
|
|
195
|
+
cwd: string;
|
|
196
|
+
allowDuplicates?: boolean;
|
|
197
|
+
fix?: boolean;
|
|
198
|
+
json?: boolean;
|
|
199
|
+
ignore: string[];
|
|
200
|
+
ignoreRegex: RegExp[];
|
|
201
|
+
collect?: (entry: CompareJsonEntry) => void;
|
|
202
|
+
only?: Category[];
|
|
203
|
+
showStats?: boolean;
|
|
204
|
+
strict?: boolean;
|
|
205
|
+
}
|
|
206
|
+
export interface FilePair {
|
|
207
|
+
envName: string;
|
|
208
|
+
envPath: string;
|
|
209
|
+
examplePath: string;
|
|
210
|
+
}
|
|
211
|
+
export interface ComparisonResult {
|
|
212
|
+
exitWithError: boolean;
|
|
213
|
+
}
|
|
214
|
+
export type PairContext = {
|
|
215
|
+
envName: string;
|
|
216
|
+
envPath: string;
|
|
217
|
+
exampleName: string;
|
|
218
|
+
examplePath: string;
|
|
219
|
+
exists: {
|
|
220
|
+
env: boolean;
|
|
221
|
+
example: boolean;
|
|
222
|
+
};
|
|
223
|
+
currentFull?: Record<string, string>;
|
|
224
|
+
exampleFull?: Record<string, string>;
|
|
225
|
+
currentKeys?: string[];
|
|
226
|
+
exampleKeys?: string[];
|
|
227
|
+
current?: Record<string, string>;
|
|
228
|
+
example?: Record<string, string>;
|
|
229
|
+
};
|
|
230
|
+
export type Filtered = {
|
|
231
|
+
missing: string[];
|
|
232
|
+
extra?: string[];
|
|
233
|
+
empty?: string[];
|
|
234
|
+
mismatches?: Array<{
|
|
235
|
+
key: string;
|
|
236
|
+
expected: string;
|
|
237
|
+
actual: string;
|
|
238
|
+
}>;
|
|
239
|
+
duplicatesEnv: Array<{
|
|
240
|
+
key: string;
|
|
241
|
+
count: number;
|
|
242
|
+
}>;
|
|
243
|
+
duplicatesEx: Array<{
|
|
244
|
+
key: string;
|
|
245
|
+
count: number;
|
|
246
|
+
}>;
|
|
247
|
+
gitignoreIssue: {
|
|
248
|
+
reason: 'no-gitignore' | 'not-ignored';
|
|
249
|
+
} | null;
|
|
250
|
+
};
|
|
186
251
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,eAAO,MAAM,kBAAkB,8EAOrB,CAAC;AAGX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"determineComparisonFile.d.ts","sourceRoot":"","sources":["../../../src/core/determineComparisonFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,gBAAgB,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"determineComparisonFile.d.ts","sourceRoot":"","sources":["../../../src/core/determineComparisonFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,gBAAgB,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA8B5C"}
|
|
@@ -9,6 +9,9 @@ import { resolveFromCwd } from './helpers/resolveFromCwd.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export function determineComparisonFile(opts) {
|
|
11
11
|
// Priority: explicit flags first, then auto-discovery
|
|
12
|
+
if (opts.noCompare) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
12
15
|
if (opts.examplePath) {
|
|
13
16
|
const p = resolveFromCwd(opts.cwd, opts.examplePath);
|
|
14
17
|
if (fs.existsSync(p)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"determineComparisonFile.js","sourceRoot":"","sources":["../../../src/core/determineComparisonFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAyB,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAsB;IAEtB,sDAAsD;
|
|
1
|
+
{"version":3,"file":"determineComparisonFile.js","sourceRoot":"","sources":["../../../src/core/determineComparisonFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAyB,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAsB;IAEtB,sDAAsD;IAEtD,IAAI,IAAI,CAAC,SAAS,EAAG,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,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"}
|
package/dist/src/core/entropy.js
CHANGED
|
@@ -16,7 +16,7 @@ export function shannonEntropyNormalized(s) {
|
|
|
16
16
|
const p = c / len;
|
|
17
17
|
H += -p * Math.log2(p);
|
|
18
18
|
}
|
|
19
|
-
//
|
|
19
|
+
// Normalize by the maximum possible entropy for the character set (assuming 72 possible characters)
|
|
20
20
|
const maxH = Math.log2(72);
|
|
21
21
|
return Math.min(1, H / maxH);
|
|
22
22
|
}
|
|
@@ -1 +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,
|
|
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,oGAAoG;IACpG,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,22 +1,31 @@
|
|
|
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
|
-
*/
|
|
9
|
-
export declare function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }: {
|
|
1
|
+
interface ApplyFixesOptions {
|
|
10
2
|
envPath: string;
|
|
11
3
|
examplePath: string;
|
|
12
4
|
missingKeys: string[];
|
|
13
5
|
duplicateKeys: string[];
|
|
14
|
-
|
|
6
|
+
ensureGitignore?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface FixResult {
|
|
9
|
+
removedDuplicates: string[];
|
|
10
|
+
addedEnv: string[];
|
|
11
|
+
addedExample: string[];
|
|
12
|
+
gitignoreUpdated: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Applies fixes to the .env and .env.example files based on the detected issues.
|
|
16
|
+
*
|
|
17
|
+
* This function will:
|
|
18
|
+
* - Remove duplicate keys from .env (keeping the last occurrence)
|
|
19
|
+
* - Add missing keys to .env with empty values
|
|
20
|
+
* - Add missing keys to .env.example (if not already present)
|
|
21
|
+
* - Ensure .env is ignored in .gitignore (if in a git repo and ensureGitignore is true)
|
|
22
|
+
*
|
|
23
|
+
* @param options - Fix options including file paths and keys to fix
|
|
24
|
+
* @returns An object indicating whether changes were made and details of the changes
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyFixes(options: ApplyFixesOptions): {
|
|
15
27
|
changed: boolean;
|
|
16
|
-
result:
|
|
17
|
-
removedDuplicates: string[];
|
|
18
|
-
addedEnv: string[];
|
|
19
|
-
addedExample: string[];
|
|
20
|
-
};
|
|
28
|
+
result: FixResult;
|
|
21
29
|
};
|
|
30
|
+
export {};
|
|
22
31
|
//# sourceMappingURL=fixEnv.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixEnv.d.ts","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixEnv.d.ts","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,SAAS;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAmFA"}
|
package/dist/src/core/fixEnv.js
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { isEnvIgnoredByGit, isGitRepo, findGitRoot } from '../services/git.js';
|
|
2
4
|
/**
|
|
3
5
|
* Applies fixes to the .env and .env.example files based on the detected issues.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* This function will:
|
|
8
|
+
* - Remove duplicate keys from .env (keeping the last occurrence)
|
|
9
|
+
* - Add missing keys to .env with empty values
|
|
10
|
+
* - Add missing keys to .env.example (if not already present)
|
|
11
|
+
* - Ensure .env is ignored in .gitignore (if in a git repo and ensureGitignore is true)
|
|
12
|
+
*
|
|
13
|
+
* @param options - Fix options including file paths and keys to fix
|
|
14
|
+
* @returns An object indicating whether changes were made and details of the changes
|
|
9
15
|
*/
|
|
10
|
-
export function applyFixes(
|
|
16
|
+
export function applyFixes(options) {
|
|
17
|
+
const { envPath, examplePath, missingKeys = [], duplicateKeys = [], ensureGitignore = false } = options;
|
|
11
18
|
const result = {
|
|
12
19
|
removedDuplicates: [],
|
|
13
20
|
addedEnv: [],
|
|
14
21
|
addedExample: [],
|
|
22
|
+
gitignoreUpdated: false,
|
|
15
23
|
};
|
|
16
24
|
// --- Remove duplicates ---
|
|
17
25
|
if (duplicateKeys.length) {
|
|
18
26
|
const lines = fs.readFileSync(envPath, 'utf-8').split('\n');
|
|
19
27
|
const seen = new Set();
|
|
20
28
|
const newLines = [];
|
|
29
|
+
// Process from bottom to top, keeping last occurrence
|
|
21
30
|
for (let i = lines.length - 1; i >= 0; i--) {
|
|
22
31
|
const line = lines[i];
|
|
23
32
|
if (line === undefined)
|
|
@@ -27,14 +36,14 @@ export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }
|
|
|
27
36
|
const key = match[1] || '';
|
|
28
37
|
if (duplicateKeys.includes(key)) {
|
|
29
38
|
if (seen.has(key))
|
|
30
|
-
continue; //
|
|
39
|
+
continue; // Skip duplicate
|
|
31
40
|
seen.add(key);
|
|
32
41
|
}
|
|
33
42
|
}
|
|
34
43
|
newLines.unshift(line);
|
|
35
44
|
}
|
|
36
45
|
fs.writeFileSync(envPath, newLines.join('\n'));
|
|
37
|
-
result.removedDuplicates = duplicateKeys;
|
|
46
|
+
result.removedDuplicates = duplicateKeys;
|
|
38
47
|
}
|
|
39
48
|
// --- Add missing keys to .env ---
|
|
40
49
|
if (missingKeys.length) {
|
|
@@ -44,7 +53,7 @@ export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }
|
|
|
44
53
|
missingKeys.map((k) => `${k}=`).join('\n') +
|
|
45
54
|
'\n';
|
|
46
55
|
fs.writeFileSync(envPath, newContent);
|
|
47
|
-
result.addedEnv = missingKeys;
|
|
56
|
+
result.addedEnv = missingKeys;
|
|
48
57
|
}
|
|
49
58
|
// --- Add missing keys to .env.example ---
|
|
50
59
|
if (examplePath && missingKeys.length) {
|
|
@@ -60,12 +69,62 @@ export function applyFixes({ envPath, examplePath, missingKeys, duplicateKeys, }
|
|
|
60
69
|
newExampleKeys.join('\n') +
|
|
61
70
|
'\n';
|
|
62
71
|
fs.writeFileSync(examplePath, newExContent);
|
|
63
|
-
result.addedExample = newExampleKeys;
|
|
72
|
+
result.addedExample = newExampleKeys;
|
|
64
73
|
}
|
|
65
74
|
}
|
|
75
|
+
// --- Ensure .env is ignored in .gitignore ---
|
|
76
|
+
if (ensureGitignore) {
|
|
77
|
+
result.gitignoreUpdated = updateGitignoreForEnv(envPath);
|
|
78
|
+
}
|
|
66
79
|
const changed = result.removedDuplicates.length > 0 ||
|
|
67
80
|
result.addedEnv.length > 0 ||
|
|
68
|
-
result.addedExample.length > 0
|
|
81
|
+
result.addedExample.length > 0 ||
|
|
82
|
+
result.gitignoreUpdated;
|
|
69
83
|
return { changed, result };
|
|
70
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Ensures .env patterns are present in .gitignore at the git repository root.
|
|
87
|
+
* This is a best-effort operation and will not throw errors.
|
|
88
|
+
*
|
|
89
|
+
* @param envPath - Path to the .env file to check gitignore for
|
|
90
|
+
* @returns true if .gitignore was updated, false otherwise
|
|
91
|
+
*/
|
|
92
|
+
function updateGitignoreForEnv(envPath) {
|
|
93
|
+
try {
|
|
94
|
+
const startDir = path.dirname(envPath);
|
|
95
|
+
const gitRoot = findGitRoot(startDir);
|
|
96
|
+
if (!gitRoot || !isGitRepo(gitRoot)) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
const gitignorePath = path.join(gitRoot, '.gitignore');
|
|
100
|
+
const envFileName = path.basename(envPath);
|
|
101
|
+
const ignored = isEnvIgnoredByGit({ cwd: gitRoot, envFile: envFileName });
|
|
102
|
+
// Already properly ignored
|
|
103
|
+
if (ignored === true) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
// Need to add patterns
|
|
107
|
+
const patterns = ['.env'];
|
|
108
|
+
if (fs.existsSync(gitignorePath)) {
|
|
109
|
+
const current = fs.readFileSync(gitignorePath, 'utf8');
|
|
110
|
+
const existingLines = current.split(/\r?\n/).map((l) => l.trim());
|
|
111
|
+
const missingPatterns = patterns.filter((pattern) => !existingLines.includes(pattern));
|
|
112
|
+
if (missingPatterns.length) {
|
|
113
|
+
const toAppend = `${current.endsWith('\n') ? '' : '\n'}${missingPatterns.join('\n')}\n`;
|
|
114
|
+
fs.appendFileSync(gitignorePath, toAppend);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Create new .gitignore
|
|
120
|
+
fs.writeFileSync(gitignorePath, patterns.join('\n') + '\n');
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Non-blocking: ignore errors
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
71
130
|
//# sourceMappingURL=fixEnv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixEnv.js","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fixEnv.js","sourceRoot":"","sources":["../../../src/core/fixEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Filtered } from '../../config/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if all filtered comparison results are okay (i.e., no issues found).
|
|
4
|
+
* @param filtered - The filtered comparison results.
|
|
5
|
+
* @returns True if all checks pass, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isAllOk(filtered: Filtered): boolean;
|
|
8
|
+
//# sourceMappingURL=isAllOk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAllOk.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/isAllOk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAUnD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if all filtered comparison results are okay (i.e., no issues found).
|
|
3
|
+
* @param filtered - The filtered comparison results.
|
|
4
|
+
* @returns True if all checks pass, false otherwise.
|
|
5
|
+
*/
|
|
6
|
+
export function isAllOk(filtered) {
|
|
7
|
+
return (filtered.missing.length === 0 &&
|
|
8
|
+
filtered.extra?.length === 0 &&
|
|
9
|
+
filtered.empty?.length === 0 &&
|
|
10
|
+
filtered.duplicatesEnv.length === 0 &&
|
|
11
|
+
filtered.duplicatesEx.length === 0 &&
|
|
12
|
+
filtered.mismatches?.length === 0 &&
|
|
13
|
+
!filtered.gitignoreIssue);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=isAllOk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAllOk.js","sourceRoot":"","sources":["../../../../src/core/helpers/isAllOk.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,QAAkB;IACxC,OAAO,CACL,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QACnC,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC;QACjC,CAAC,QAAQ,CAAC,cAAc,CACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveFromCwd.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/resolveFromCwd.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"resolveFromCwd.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/resolveFromCwd.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,GAAG,MAAM,KAAG,MACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveFromCwd.js","sourceRoot":"","sources":["../../../../src/core/helpers/resolveFromCwd.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,CAAS,
|
|
1
|
+
{"version":3,"file":"resolveFromCwd.js","sourceRoot":"","sources":["../../../../src/core/helpers/resolveFromCwd.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,CAAS,EAAU,EAAE,CAC/D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CompareJsonEntry } from '../../config/types.js';
|
|
2
|
+
import type { Filtered } from '../../config/types.js';
|
|
3
|
+
export interface Totals {
|
|
4
|
+
missing: number;
|
|
5
|
+
extra: number;
|
|
6
|
+
empty: number;
|
|
7
|
+
mismatch: number;
|
|
8
|
+
duplicate: number;
|
|
9
|
+
gitignore: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Update totals and entry fields based on filtered issues.
|
|
13
|
+
* Returns true if any issue requires exitWithError.
|
|
14
|
+
* @param filtered filtered issues
|
|
15
|
+
* @param totals overall totals
|
|
16
|
+
* @param entry current entry to update
|
|
17
|
+
* @returns exitWithError
|
|
18
|
+
*/
|
|
19
|
+
export declare function updateTotals(filtered: Filtered, totals: Totals, entry: CompareJsonEntry): boolean;
|
|
20
|
+
//# sourceMappingURL=updateTotals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateTotals.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/updateTotals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAkCT"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update totals and entry fields based on filtered issues.
|
|
3
|
+
* Returns true if any issue requires exitWithError.
|
|
4
|
+
* @param filtered filtered issues
|
|
5
|
+
* @param totals overall totals
|
|
6
|
+
* @param entry current entry to update
|
|
7
|
+
* @returns exitWithError
|
|
8
|
+
*/
|
|
9
|
+
export function updateTotals(filtered, totals, entry) {
|
|
10
|
+
let exitWithError = false;
|
|
11
|
+
if (filtered.missing.length) {
|
|
12
|
+
entry.missing = filtered.missing;
|
|
13
|
+
totals.missing += filtered.missing.length;
|
|
14
|
+
exitWithError = true;
|
|
15
|
+
}
|
|
16
|
+
if (filtered.extra?.length) {
|
|
17
|
+
entry.extra = filtered.extra;
|
|
18
|
+
totals.extra += filtered.extra.length;
|
|
19
|
+
}
|
|
20
|
+
if (filtered.empty?.length) {
|
|
21
|
+
entry.empty = filtered.empty;
|
|
22
|
+
totals.empty += filtered.empty.length;
|
|
23
|
+
}
|
|
24
|
+
if (filtered.mismatches?.length) {
|
|
25
|
+
entry.valueMismatches = filtered.mismatches;
|
|
26
|
+
totals.mismatch += filtered.mismatches.length;
|
|
27
|
+
}
|
|
28
|
+
if (filtered.duplicatesEnv.length || filtered.duplicatesEx.length) {
|
|
29
|
+
totals.duplicate +=
|
|
30
|
+
filtered.duplicatesEnv.length + filtered.duplicatesEx.length;
|
|
31
|
+
}
|
|
32
|
+
if (filtered.gitignoreIssue) {
|
|
33
|
+
totals.gitignore += 1;
|
|
34
|
+
}
|
|
35
|
+
return exitWithError;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=updateTotals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateTotals.js","sourceRoot":"","sources":["../../../../src/core/helpers/updateTotals.ts"],"names":[],"mappings":"AAYA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,MAAc,EACd,KAAuB;IAEvB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1C,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC5C,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAClE,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|