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.
Files changed (186) hide show
  1. package/README.md +28 -0
  2. package/dist/src/cli/program.d.ts.map +1 -1
  3. package/dist/src/cli/program.js +4 -1
  4. package/dist/src/cli/program.js.map +1 -1
  5. package/dist/src/cli/run.d.ts.map +1 -1
  6. package/dist/src/cli/run.js +42 -31
  7. package/dist/src/cli/run.js.map +1 -1
  8. package/dist/src/commands/compare.d.ts +2 -20
  9. package/dist/src/commands/compare.d.ts.map +1 -1
  10. package/dist/src/commands/compare.js +107 -173
  11. package/dist/src/commands/compare.js.map +1 -1
  12. package/dist/src/commands/init.d.ts +3 -15
  13. package/dist/src/commands/init.d.ts.map +1 -1
  14. package/dist/src/commands/init.js +17 -66
  15. package/dist/src/commands/init.js.map +1 -1
  16. package/dist/src/commands/scanUsage.d.ts.map +1 -1
  17. package/dist/src/commands/scanUsage.js +87 -173
  18. package/dist/src/commands/scanUsage.js.map +1 -1
  19. package/dist/src/config/loadConfig.d.ts +9 -1
  20. package/dist/src/config/loadConfig.d.ts.map +1 -1
  21. package/dist/src/config/loadConfig.js +31 -0
  22. package/dist/src/config/loadConfig.js.map +1 -0
  23. package/dist/src/config/options.d.ts.map +1 -1
  24. package/dist/src/config/options.js +46 -32
  25. package/dist/src/config/options.js.map +1 -1
  26. package/dist/src/config/types.d.ts +65 -0
  27. package/dist/src/config/types.d.ts.map +1 -1
  28. package/dist/src/core/determineComparisonFile.d.ts.map +1 -1
  29. package/dist/src/core/determineComparisonFile.js +3 -0
  30. package/dist/src/core/determineComparisonFile.js.map +1 -1
  31. package/dist/src/core/entropy.js +1 -1
  32. package/dist/src/core/entropy.js.map +1 -1
  33. package/dist/src/core/fixEnv.d.ts +24 -15
  34. package/dist/src/core/fixEnv.d.ts.map +1 -1
  35. package/dist/src/core/fixEnv.js +70 -11
  36. package/dist/src/core/fixEnv.js.map +1 -1
  37. package/dist/src/core/helpers/isAllOk.d.ts +8 -0
  38. package/dist/src/core/helpers/isAllOk.d.ts.map +1 -0
  39. package/dist/src/core/helpers/isAllOk.js +15 -0
  40. package/dist/src/core/helpers/isAllOk.js.map +1 -0
  41. package/dist/src/core/helpers/resolveFromCwd.d.ts.map +1 -1
  42. package/dist/src/core/helpers/resolveFromCwd.js.map +1 -1
  43. package/dist/src/core/helpers/updateTotals.d.ts +20 -0
  44. package/dist/src/core/helpers/updateTotals.d.ts.map +1 -0
  45. package/dist/src/core/helpers/updateTotals.js +37 -0
  46. package/dist/src/core/helpers/updateTotals.js.map +1 -0
  47. package/dist/src/core/processComparisonFile.d.ts +36 -0
  48. package/dist/src/core/processComparisonFile.d.ts.map +1 -0
  49. package/dist/src/core/processComparisonFile.js +124 -0
  50. package/dist/src/core/processComparisonFile.js.map +1 -0
  51. package/dist/src/core/secretDetectors.d.ts +10 -1
  52. package/dist/src/core/secretDetectors.d.ts.map +1 -1
  53. package/dist/src/core/secretDetectors.js +35 -4
  54. package/dist/src/core/secretDetectors.js.map +1 -1
  55. package/dist/src/index.js +1 -0
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/services/codeBaseScanner.js +1 -1
  58. package/dist/src/services/codeBaseScanner.js.map +1 -1
  59. package/dist/src/services/ensureFilesOrPrompt.d.ts.map +1 -1
  60. package/dist/src/services/ensureFilesOrPrompt.js +10 -11
  61. package/dist/src/services/ensureFilesOrPrompt.js.map +1 -1
  62. package/dist/src/services/git.d.ts +9 -0
  63. package/dist/src/services/git.d.ts.map +1 -1
  64. package/dist/src/services/git.js +46 -3
  65. package/dist/src/services/git.js.map +1 -1
  66. package/dist/src/services/scanOutputToConsole.d.ts +6 -1
  67. package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
  68. package/dist/src/services/scanOutputToConsole.js +67 -140
  69. package/dist/src/services/scanOutputToConsole.js.map +1 -1
  70. package/dist/src/ui/compare/printAutoFix.d.ts +16 -0
  71. package/dist/src/ui/compare/printAutoFix.d.ts.map +1 -0
  72. package/dist/src/ui/compare/printAutoFix.js +34 -0
  73. package/dist/src/ui/compare/printAutoFix.js.map +1 -0
  74. package/dist/src/ui/compare/printAutoFixApplied.d.ts +7 -0
  75. package/dist/src/ui/compare/printAutoFixApplied.d.ts.map +1 -0
  76. package/dist/src/ui/compare/printAutoFixApplied.js +22 -0
  77. package/dist/src/ui/compare/printAutoFixApplied.js.map +1 -0
  78. package/dist/src/ui/compare/printDuplicates.d.ts +17 -0
  79. package/dist/src/ui/compare/printDuplicates.d.ts.map +1 -0
  80. package/dist/src/ui/compare/printDuplicates.js +25 -0
  81. package/dist/src/ui/compare/printDuplicates.js.map +1 -0
  82. package/dist/src/ui/compare/printErrorNotFound.d.ts +9 -0
  83. package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -0
  84. package/dist/src/ui/compare/printErrorNotFound.js +18 -0
  85. package/dist/src/ui/compare/printErrorNotFound.js.map +1 -0
  86. package/dist/src/ui/compare/printFixTips.d.ts +11 -0
  87. package/dist/src/ui/compare/printFixTips.d.ts.map +1 -0
  88. package/dist/src/ui/compare/printFixTips.js +46 -0
  89. package/dist/src/ui/compare/printFixTips.js.map +1 -0
  90. package/dist/src/ui/compare/printHeader.d.ts +10 -0
  91. package/dist/src/ui/compare/printHeader.d.ts.map +1 -0
  92. package/dist/src/ui/compare/printHeader.js +20 -0
  93. package/dist/src/ui/compare/printHeader.js.map +1 -0
  94. package/dist/src/ui/compare/printIssues.d.ts +9 -0
  95. package/dist/src/ui/compare/printIssues.d.ts.map +1 -0
  96. package/dist/src/ui/compare/printIssues.js +34 -0
  97. package/dist/src/ui/compare/printIssues.js.map +1 -0
  98. package/dist/src/ui/compare/printPrompt.d.ts +11 -0
  99. package/dist/src/ui/compare/printPrompt.d.ts.map +1 -0
  100. package/dist/src/ui/compare/printPrompt.js +24 -0
  101. package/dist/src/ui/compare/printPrompt.js.map +1 -0
  102. package/dist/src/ui/compare/printStats.d.ts +19 -0
  103. package/dist/src/ui/compare/printStats.d.ts.map +1 -0
  104. package/dist/src/ui/compare/printStats.js +30 -0
  105. package/dist/src/ui/compare/printStats.js.map +1 -0
  106. package/dist/src/ui/compare/printSuccess.d.ts +11 -0
  107. package/dist/src/ui/compare/printSuccess.d.ts.map +1 -0
  108. package/dist/src/ui/compare/printSuccess.js +27 -0
  109. package/dist/src/ui/compare/printSuccess.js.map +1 -0
  110. package/dist/src/ui/scan/printComparisonError.d.ts +11 -0
  111. package/dist/src/ui/scan/printComparisonError.d.ts.map +1 -0
  112. package/dist/src/ui/scan/printComparisonError.js +20 -0
  113. package/dist/src/ui/scan/printComparisonError.js.map +1 -0
  114. package/dist/src/ui/scan/printHeader.d.ts +7 -0
  115. package/dist/src/ui/scan/printHeader.d.ts.map +1 -0
  116. package/dist/src/ui/scan/printHeader.js +16 -0
  117. package/dist/src/ui/scan/printHeader.js.map +1 -0
  118. package/dist/src/ui/scan/printMissing.d.ts +13 -0
  119. package/dist/src/ui/scan/printMissing.d.ts.map +1 -0
  120. package/dist/src/ui/scan/printMissing.js +43 -0
  121. package/dist/src/ui/scan/printMissing.js.map +1 -0
  122. package/dist/src/ui/scan/printMissingExample.d.ts +9 -0
  123. package/dist/src/ui/scan/printMissingExample.d.ts.map +1 -0
  124. package/dist/src/ui/scan/printMissingExample.js +27 -0
  125. package/dist/src/ui/scan/printMissingExample.js.map +1 -0
  126. package/dist/src/ui/scan/printSecrets.d.ts +14 -0
  127. package/dist/src/ui/scan/printSecrets.d.ts.map +1 -0
  128. package/dist/src/ui/scan/printSecrets.js +29 -0
  129. package/dist/src/ui/scan/printSecrets.js.map +1 -0
  130. package/dist/src/ui/scan/printStats.d.ts +13 -0
  131. package/dist/src/ui/scan/printStats.d.ts.map +1 -0
  132. package/dist/src/ui/scan/printStats.js +17 -0
  133. package/dist/src/ui/scan/printStats.js.map +1 -0
  134. package/dist/src/ui/scan/printUniqueVariables.d.ts +7 -0
  135. package/dist/src/ui/scan/printUniqueVariables.d.ts.map +1 -0
  136. package/dist/src/ui/scan/printUniqueVariables.js +14 -0
  137. package/dist/src/ui/scan/printUniqueVariables.js.map +1 -0
  138. package/dist/src/ui/scan/printUnused.d.ts +10 -0
  139. package/dist/src/ui/scan/printUnused.d.ts.map +1 -0
  140. package/dist/src/ui/scan/printUnused.js +22 -0
  141. package/dist/src/ui/scan/printUnused.js.map +1 -0
  142. package/dist/src/ui/scan/printVariables.d.ts +10 -0
  143. package/dist/src/ui/scan/printVariables.d.ts.map +1 -0
  144. package/dist/src/ui/scan/printVariables.js +37 -0
  145. package/dist/src/ui/scan/printVariables.js.map +1 -0
  146. package/dist/src/ui/shared/printAutoFix.d.ts +16 -0
  147. package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -0
  148. package/dist/src/ui/shared/printAutoFix.js +34 -0
  149. package/dist/src/ui/shared/printAutoFix.js.map +1 -0
  150. package/dist/src/ui/shared/printConfigStatus.d.ts +11 -0
  151. package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -0
  152. package/dist/src/ui/shared/printConfigStatus.js +23 -0
  153. package/dist/src/ui/shared/printConfigStatus.js.map +1 -0
  154. package/dist/src/ui/shared/printDuplicates.d.ts +17 -0
  155. package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -0
  156. package/dist/src/ui/shared/printDuplicates.js +25 -0
  157. package/dist/src/ui/shared/printDuplicates.js.map +1 -0
  158. package/dist/src/ui/shared/printFixTips.d.ts +11 -0
  159. package/dist/src/ui/shared/printFixTips.d.ts.map +1 -0
  160. package/dist/src/ui/shared/printFixTips.js +46 -0
  161. package/dist/src/ui/shared/printFixTips.js.map +1 -0
  162. package/dist/src/ui/shared/printGitignore.d.ts +13 -0
  163. package/dist/src/ui/shared/printGitignore.d.ts.map +1 -0
  164. package/dist/src/ui/shared/printGitignore.js +20 -0
  165. package/dist/src/ui/shared/printGitignore.js.map +1 -0
  166. package/dist/src/ui/shared/printInitStatus.d.ts +9 -0
  167. package/dist/src/ui/shared/printInitStatus.d.ts.map +1 -0
  168. package/dist/src/ui/shared/printInitStatus.js +20 -0
  169. package/dist/src/ui/shared/printInitStatus.js.map +1 -0
  170. package/dist/src/ui/shared/printOptionErrors.d.ts +17 -0
  171. package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -0
  172. package/dist/src/ui/shared/printOptionErrors.js +27 -0
  173. package/dist/src/ui/shared/printOptionErrors.js.map +1 -0
  174. package/dist/src/ui/shared/printStrictModeError.d.ts +16 -0
  175. package/dist/src/ui/shared/printStrictModeError.d.ts.map +1 -0
  176. package/dist/src/ui/shared/printStrictModeError.js +29 -0
  177. package/dist/src/ui/shared/printStrictModeError.js.map +1 -0
  178. package/dist/src/ui/shared/printSuccess.d.ts +11 -0
  179. package/dist/src/ui/shared/printSuccess.d.ts.map +1 -0
  180. package/dist/src/ui/shared/printSuccess.js +27 -0
  181. package/dist/src/ui/shared/printSuccess.js.map +1 -0
  182. package/dist/src/ui/shared/setupGlobalConfig.d.ts +7 -0
  183. package/dist/src/ui/shared/setupGlobalConfig.d.ts.map +1 -0
  184. package/dist/src/ui/shared/setupGlobalConfig.js +12 -0
  185. package/dist/src/ui/shared/setupGlobalConfig.js.map +1 -0
  186. 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
- console.error(chalk.red(`❌ Error: invalid ${flagName} value(s): ${bad.join(', ')}. Allowed: ${ALLOWED_CATEGORIES.join(', ')}`));
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 ?? false;
38
- const isCiMode = Boolean(raw.ci);
39
- const isYesMode = Boolean(raw.yes);
40
- const allowDuplicates = Boolean(raw.allowDuplicates);
41
- const fix = Boolean(raw.fix);
42
- const json = Boolean(raw.json);
43
- const onlyParsed = parseCategories(raw.only, '--only');
44
- const only = onlyParsed.length ? onlyParsed : [];
45
- const noColor = Boolean(raw.noColor);
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 secrets = raw.secrets === false ? false : true;
54
- const strict = Boolean(raw.strict);
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":"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"}
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":"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"}
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,CA0B5C"}
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;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"}
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"}
@@ -16,7 +16,7 @@ export function shannonEntropyNormalized(s) {
16
16
  const p = c / len;
17
17
  H += -p * Math.log2(p);
18
18
  }
19
- // Antag alfabet ~72 tegn (A-Za-z0-9+/_- mv.)
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,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
+ {"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":"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"}
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"}
@@ -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
- * @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.
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({ envPath, examplePath, missingKeys, duplicateKeys, }) {
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; // skip duplicate
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; // save all dupe keys
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; // save all missing keys
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; // save all keys actually added
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":"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"}
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,WACN,CAAC"}
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,EAAE,EAAE,CACvD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC"}
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"}