dotenv-diff 2.2.7 → 2.2.8

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 (154) hide show
  1. package/dist/src/cli/run.d.ts.map +1 -1
  2. package/dist/src/cli/run.js +19 -31
  3. package/dist/src/cli/run.js.map +1 -1
  4. package/dist/src/commands/compare.d.ts +2 -20
  5. package/dist/src/commands/compare.d.ts.map +1 -1
  6. package/dist/src/commands/compare.js +107 -173
  7. package/dist/src/commands/compare.js.map +1 -1
  8. package/dist/src/commands/scanUsage.d.ts.map +1 -1
  9. package/dist/src/commands/scanUsage.js +60 -173
  10. package/dist/src/commands/scanUsage.js.map +1 -1
  11. package/dist/src/config/options.d.ts.map +1 -1
  12. package/dist/src/config/options.js +42 -32
  13. package/dist/src/config/options.js.map +1 -1
  14. package/dist/src/config/types.d.ts +58 -0
  15. package/dist/src/config/types.d.ts.map +1 -1
  16. package/dist/src/core/fixEnv.d.ts +23 -15
  17. package/dist/src/core/fixEnv.d.ts.map +1 -1
  18. package/dist/src/core/fixEnv.js +70 -11
  19. package/dist/src/core/fixEnv.js.map +1 -1
  20. package/dist/src/core/helpers/isAllOk.d.ts +8 -0
  21. package/dist/src/core/helpers/isAllOk.d.ts.map +1 -0
  22. package/dist/src/core/helpers/isAllOk.js +15 -0
  23. package/dist/src/core/helpers/isAllOk.js.map +1 -0
  24. package/dist/src/core/helpers/updateTotals.d.ts +20 -0
  25. package/dist/src/core/helpers/updateTotals.d.ts.map +1 -0
  26. package/dist/src/core/helpers/updateTotals.js +37 -0
  27. package/dist/src/core/helpers/updateTotals.js.map +1 -0
  28. package/dist/src/core/processComparisonFile.d.ts +36 -0
  29. package/dist/src/core/processComparisonFile.d.ts.map +1 -0
  30. package/dist/src/core/processComparisonFile.js +124 -0
  31. package/dist/src/core/processComparisonFile.js.map +1 -0
  32. package/dist/src/core/secretDetectors.d.ts.map +1 -1
  33. package/dist/src/core/secretDetectors.js +1 -0
  34. package/dist/src/core/secretDetectors.js.map +1 -1
  35. package/dist/src/services/ensureFilesOrPrompt.d.ts.map +1 -1
  36. package/dist/src/services/ensureFilesOrPrompt.js +10 -11
  37. package/dist/src/services/ensureFilesOrPrompt.js.map +1 -1
  38. package/dist/src/services/git.d.ts +9 -0
  39. package/dist/src/services/git.d.ts.map +1 -1
  40. package/dist/src/services/git.js +46 -3
  41. package/dist/src/services/git.js.map +1 -1
  42. package/dist/src/services/scanOutputToConsole.d.ts +6 -1
  43. package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
  44. package/dist/src/services/scanOutputToConsole.js +67 -140
  45. package/dist/src/services/scanOutputToConsole.js.map +1 -1
  46. package/dist/src/ui/compare/printAutoFix.d.ts +16 -0
  47. package/dist/src/ui/compare/printAutoFix.d.ts.map +1 -0
  48. package/dist/src/ui/compare/printAutoFix.js +34 -0
  49. package/dist/src/ui/compare/printAutoFix.js.map +1 -0
  50. package/dist/src/ui/compare/printAutoFixApplied.d.ts +7 -0
  51. package/dist/src/ui/compare/printAutoFixApplied.d.ts.map +1 -0
  52. package/dist/src/ui/compare/printAutoFixApplied.js +22 -0
  53. package/dist/src/ui/compare/printAutoFixApplied.js.map +1 -0
  54. package/dist/src/ui/compare/printDuplicates.d.ts +17 -0
  55. package/dist/src/ui/compare/printDuplicates.d.ts.map +1 -0
  56. package/dist/src/ui/compare/printDuplicates.js +25 -0
  57. package/dist/src/ui/compare/printDuplicates.js.map +1 -0
  58. package/dist/src/ui/compare/printErrorNotFound.d.ts +9 -0
  59. package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -0
  60. package/dist/src/ui/compare/printErrorNotFound.js +18 -0
  61. package/dist/src/ui/compare/printErrorNotFound.js.map +1 -0
  62. package/dist/src/ui/compare/printFixTips.d.ts +11 -0
  63. package/dist/src/ui/compare/printFixTips.d.ts.map +1 -0
  64. package/dist/src/ui/compare/printFixTips.js +46 -0
  65. package/dist/src/ui/compare/printFixTips.js.map +1 -0
  66. package/dist/src/ui/compare/printHeader.d.ts +10 -0
  67. package/dist/src/ui/compare/printHeader.d.ts.map +1 -0
  68. package/dist/src/ui/compare/printHeader.js +20 -0
  69. package/dist/src/ui/compare/printHeader.js.map +1 -0
  70. package/dist/src/ui/compare/printIssues.d.ts +9 -0
  71. package/dist/src/ui/compare/printIssues.d.ts.map +1 -0
  72. package/dist/src/ui/compare/printIssues.js +34 -0
  73. package/dist/src/ui/compare/printIssues.js.map +1 -0
  74. package/dist/src/ui/compare/printPrompt.d.ts +11 -0
  75. package/dist/src/ui/compare/printPrompt.d.ts.map +1 -0
  76. package/dist/src/ui/compare/printPrompt.js +24 -0
  77. package/dist/src/ui/compare/printPrompt.js.map +1 -0
  78. package/dist/src/ui/compare/printStats.d.ts +19 -0
  79. package/dist/src/ui/compare/printStats.d.ts.map +1 -0
  80. package/dist/src/ui/compare/printStats.js +30 -0
  81. package/dist/src/ui/compare/printStats.js.map +1 -0
  82. package/dist/src/ui/compare/printSuccess.d.ts +11 -0
  83. package/dist/src/ui/compare/printSuccess.d.ts.map +1 -0
  84. package/dist/src/ui/compare/printSuccess.js +27 -0
  85. package/dist/src/ui/compare/printSuccess.js.map +1 -0
  86. package/dist/src/ui/scan/printComparisonError.d.ts +11 -0
  87. package/dist/src/ui/scan/printComparisonError.d.ts.map +1 -0
  88. package/dist/src/ui/scan/printComparisonError.js +20 -0
  89. package/dist/src/ui/scan/printComparisonError.js.map +1 -0
  90. package/dist/src/ui/scan/printHeader.d.ts +7 -0
  91. package/dist/src/ui/scan/printHeader.d.ts.map +1 -0
  92. package/dist/src/ui/scan/printHeader.js +16 -0
  93. package/dist/src/ui/scan/printHeader.js.map +1 -0
  94. package/dist/src/ui/scan/printMissing.d.ts +13 -0
  95. package/dist/src/ui/scan/printMissing.d.ts.map +1 -0
  96. package/dist/src/ui/scan/printMissing.js +43 -0
  97. package/dist/src/ui/scan/printMissing.js.map +1 -0
  98. package/dist/src/ui/scan/printMissingExample.d.ts +9 -0
  99. package/dist/src/ui/scan/printMissingExample.d.ts.map +1 -0
  100. package/dist/src/ui/scan/printMissingExample.js +27 -0
  101. package/dist/src/ui/scan/printMissingExample.js.map +1 -0
  102. package/dist/src/ui/scan/printSecrets.d.ts +14 -0
  103. package/dist/src/ui/scan/printSecrets.d.ts.map +1 -0
  104. package/dist/src/ui/scan/printSecrets.js +29 -0
  105. package/dist/src/ui/scan/printSecrets.js.map +1 -0
  106. package/dist/src/ui/scan/printStats.d.ts +13 -0
  107. package/dist/src/ui/scan/printStats.d.ts.map +1 -0
  108. package/dist/src/ui/scan/printStats.js +17 -0
  109. package/dist/src/ui/scan/printStats.js.map +1 -0
  110. package/dist/src/ui/scan/printUniqueVariables.d.ts +7 -0
  111. package/dist/src/ui/scan/printUniqueVariables.d.ts.map +1 -0
  112. package/dist/src/ui/scan/printUniqueVariables.js +14 -0
  113. package/dist/src/ui/scan/printUniqueVariables.js.map +1 -0
  114. package/dist/src/ui/scan/printUnused.d.ts +10 -0
  115. package/dist/src/ui/scan/printUnused.d.ts.map +1 -0
  116. package/dist/src/ui/scan/printUnused.js +22 -0
  117. package/dist/src/ui/scan/printUnused.js.map +1 -0
  118. package/dist/src/ui/scan/printVariables.d.ts +10 -0
  119. package/dist/src/ui/scan/printVariables.d.ts.map +1 -0
  120. package/dist/src/ui/scan/printVariables.js +37 -0
  121. package/dist/src/ui/scan/printVariables.js.map +1 -0
  122. package/dist/src/ui/shared/printAutoFix.d.ts +16 -0
  123. package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -0
  124. package/dist/src/ui/shared/printAutoFix.js +34 -0
  125. package/dist/src/ui/shared/printAutoFix.js.map +1 -0
  126. package/dist/src/ui/shared/printDuplicates.d.ts +17 -0
  127. package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -0
  128. package/dist/src/ui/shared/printDuplicates.js +25 -0
  129. package/dist/src/ui/shared/printDuplicates.js.map +1 -0
  130. package/dist/src/ui/shared/printFixTips.d.ts +11 -0
  131. package/dist/src/ui/shared/printFixTips.d.ts.map +1 -0
  132. package/dist/src/ui/shared/printFixTips.js +46 -0
  133. package/dist/src/ui/shared/printFixTips.js.map +1 -0
  134. package/dist/src/ui/shared/printGitignore.d.ts +13 -0
  135. package/dist/src/ui/shared/printGitignore.d.ts.map +1 -0
  136. package/dist/src/ui/shared/printGitignore.js +22 -0
  137. package/dist/src/ui/shared/printGitignore.js.map +1 -0
  138. package/dist/src/ui/shared/printOptionErrors.d.ts +17 -0
  139. package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -0
  140. package/dist/src/ui/shared/printOptionErrors.js +27 -0
  141. package/dist/src/ui/shared/printOptionErrors.js.map +1 -0
  142. package/dist/src/ui/shared/printStrictModeError.d.ts +16 -0
  143. package/dist/src/ui/shared/printStrictModeError.d.ts.map +1 -0
  144. package/dist/src/ui/shared/printStrictModeError.js +29 -0
  145. package/dist/src/ui/shared/printStrictModeError.js.map +1 -0
  146. package/dist/src/ui/shared/printSuccess.d.ts +11 -0
  147. package/dist/src/ui/shared/printSuccess.d.ts.map +1 -0
  148. package/dist/src/ui/shared/printSuccess.js +27 -0
  149. package/dist/src/ui/shared/printSuccess.js.map +1 -0
  150. package/dist/src/ui/shared/setupGlobalConfig.d.ts +7 -0
  151. package/dist/src/ui/shared/setupGlobalConfig.d.ts.map +1 -0
  152. package/dist/src/ui/shared/setupGlobalConfig.js +12 -0
  153. package/dist/src/ui/shared/setupGlobalConfig.js.map +1 -0
  154. package/package.json +1 -1
@@ -1,16 +1,37 @@
1
- import chalk from 'chalk';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import { parseEnvFile } from '../core/parseEnv.js';
5
1
  import { scanCodebase } from '../services/codeBaseScanner.js';
6
- import { filterIgnoredKeys } from '../core/filterIgnoredKeys.js';
7
- import { resolveFromCwd } from '../core/helpers/resolveFromCwd.js';
8
2
  import { determineComparisonFile } from '../core/determineComparisonFile.js';
9
3
  import { outputToConsole } from '../services/scanOutputToConsole.js';
10
4
  import { createJsonOutput } from '../core/scanJsonOutput.js';
11
- import { findDuplicateKeys } from '../services/duplicates.js';
12
- import { compareWithEnvFiles } from '../core/compareScan.js';
13
- import { applyFixes } from '../core/fixEnv.js';
5
+ import { printMissingExample } from '../ui/scan/printMissingExample.js';
6
+ import { processComparisonFile } from '../core/processComparisonFile.js';
7
+ import { printComparisonError } from '../ui/scan/printComparisonError.js';
8
+ /**
9
+ * Filters out commented usages from the list.
10
+ * Skipping comments:
11
+ * // process.env.API_URL
12
+ * # process.env.API_URL
13
+ * /* process.env.API_URL
14
+ * * process.env.API_URL
15
+ * @param usages - List of environment variable usages
16
+ * @returns Filtered list of environment variable usages
17
+ */
18
+ function skipCommentedUsages(usages) {
19
+ return usages.filter((u) => u.context && !/^\s*(\/\/|#|\/\*|\*)/.test(u.context.trim()));
20
+ }
21
+ /**
22
+ * Recalculates statistics for a scan result after filtering usages.
23
+ * @param scanResult The current scan result
24
+ * @returns Updated scanResult with recalculated stats
25
+ */
26
+ function calculateStats(scanResult) {
27
+ const uniqueVariables = new Set(scanResult.used.map((u) => u.variable)).size;
28
+ scanResult.stats = {
29
+ filesScanned: scanResult.stats.filesScanned,
30
+ totalUsages: scanResult.used.length,
31
+ uniqueVariables,
32
+ };
33
+ return scanResult;
34
+ }
14
35
  /**
15
36
  * Scans codebase for environment variable usage and compares with .env file
16
37
  * @param {ScanUsageOptions} opts - Scan configuration options
@@ -24,150 +45,47 @@ import { applyFixes } from '../core/fixEnv.js';
24
45
  * @returns {Promise<{exitWithError: boolean}>} Returns true if missing variables found
25
46
  */
26
47
  export async function scanUsage(opts) {
27
- if (!opts.json) {
28
- console.log();
29
- console.log(chalk.blue('🔍 Scanning codebase for environment variable usage...'));
30
- console.log();
31
- }
32
48
  // Scan the codebase
33
49
  let scanResult = await scanCodebase(opts);
34
- scanResult.used = scanResult.used.filter((u) => u.context && !/^\s*(\/\/|#)/.test(u.context.trim()));
35
- // Recalculate stats after filtering out commented usages
36
- const uniqueVariables = new Set(scanResult.used.map((u) => u.variable)).size;
37
- scanResult.stats = {
38
- filesScanned: scanResult.stats.filesScanned, // Keep original files scanned count
39
- totalUsages: scanResult.used.length,
40
- uniqueVariables: uniqueVariables,
41
- };
42
- // If user explicitly passed --example but the file doesn't exist:
43
- if (opts.examplePath) {
44
- const exampleAbs = resolveFromCwd(opts.cwd, opts.examplePath);
45
- const missing = !fs.existsSync(exampleAbs);
46
- if (missing) {
47
- const msg = `❌ Missing specified example file: ${opts.examplePath}`;
48
- if (opts.isCiMode) {
49
- // IMPORTANT: stdout (console.log), not stderr, to satisfy the test
50
- console.log(chalk.red(msg));
51
- return { exitWithError: true };
52
- }
53
- else if (!opts.json) {
54
- console.log(chalk.yellow(msg.replace('❌', '⚠️')));
55
- }
56
- // Non-CI: continue without comparison
57
- }
50
+ // Filter out commented usages
51
+ scanResult.used = skipCommentedUsages(scanResult.used);
52
+ // Recalculate stats after filtering
53
+ calculateStats(scanResult);
54
+ // If user explicitly passed --example flag, but the file doesn't exist:
55
+ if (printMissingExample(opts)) {
56
+ return { exitWithError: true };
58
57
  }
59
58
  // Determine which file to compare against
60
59
  const compareFile = determineComparisonFile(opts);
61
60
  let envVariables = {};
62
61
  let comparedAgainst = '';
63
62
  let duplicatesFound = false;
64
- let dupsEnv = [];
65
- let dupsExample = [];
66
63
  // Store fix information for consolidated display
67
64
  let fixApplied = false;
68
65
  let fixedKeys = [];
69
66
  let removedDuplicates = [];
67
+ let gitignoreUpdated = false;
68
+ // If comparing against a file, process it
69
+ // fx: if the scan is comparing against .env.example, it will check for missing keys there
70
70
  if (compareFile) {
71
- try {
72
- const envFull = parseEnvFile(compareFile.path);
73
- const envKeys = filterIgnoredKeys(Object.keys(envFull), opts.ignore, opts.ignoreRegex);
74
- envVariables = Object.fromEntries(envKeys.map((k) => [k, envFull[k]]));
75
- scanResult = compareWithEnvFiles(scanResult, envVariables);
76
- comparedAgainst = compareFile.name;
77
- // Check for duplicates in the env file
78
- if (!opts.allowDuplicates) {
79
- dupsEnv = findDuplicateKeys(compareFile.path).filter(({ key }) => !opts.ignore.includes(key) &&
80
- !opts.ignoreRegex.some((rx) => rx.test(key)));
81
- // Also check for duplicates in example file if it exists AND is different from compareFile
82
- if (opts.examplePath) {
83
- const examplePath = resolveFromCwd(opts.cwd, opts.examplePath);
84
- // Only check example file if it exists and is NOT the same as the comparison file
85
- if (fs.existsSync(examplePath) && examplePath !== compareFile.path) {
86
- dupsExample = findDuplicateKeys(examplePath).filter(({ key }) => !opts.ignore.includes(key) &&
87
- !opts.ignoreRegex.some((rx) => rx.test(key)));
88
- }
89
- }
90
- duplicatesFound = dupsEnv.length > 0 || dupsExample.length > 0;
91
- // Apply duplicate fixes if --fix is enabled (but don't show message yet)
92
- if (opts.fix && (dupsEnv.length > 0 || dupsExample.length > 0)) {
93
- const { changed, result } = applyFixes({
94
- envPath: compareFile.path,
95
- examplePath: opts.examplePath
96
- ? resolveFromCwd(opts.cwd, opts.examplePath)
97
- : '',
98
- missingKeys: [],
99
- duplicateKeys: dupsEnv.map((d) => d.key),
100
- });
101
- if (changed) {
102
- fixApplied = true;
103
- removedDuplicates = result.removedDuplicates;
104
- // Clear duplicates after fix
105
- duplicatesFound = false;
106
- dupsEnv = [];
107
- dupsExample = [];
108
- }
109
- }
110
- // Add to scan result for both JSON and console output (only if not fixed)
111
- if ((dupsEnv.length > 0 || dupsExample.length > 0) &&
112
- (!opts.fix || !fixApplied)) {
113
- if (!scanResult.duplicates)
114
- scanResult.duplicates = {};
115
- if (dupsEnv.length > 0)
116
- scanResult.duplicates.env = dupsEnv;
117
- if (dupsExample.length > 0)
118
- scanResult.duplicates.example = dupsExample;
119
- }
120
- }
121
- }
122
- catch (error) {
123
- const errorMessage = `⚠️ Could not read ${compareFile.name}: ${compareFile.path} - ${error}`;
124
- if (opts.isCiMode) {
125
- // In CI mode, exit with error if file doesn't exist
126
- console.log(chalk.red(`❌ ${errorMessage}`));
71
+ const result = processComparisonFile(scanResult, compareFile, opts);
72
+ if (result.error) {
73
+ const { exit } = printComparisonError(result.error.message, result.error.shouldExit, opts.json ?? false);
74
+ if (exit)
127
75
  return { exitWithError: true };
128
- }
129
- if (!opts.json) {
130
- console.log(chalk.yellow(errorMessage));
131
- }
132
76
  }
133
- }
134
- // Apply missing keys fix if --fix is enabled (but don't show message yet)
135
- if (opts.fix && compareFile) {
136
- const missingKeys = scanResult.missing;
137
- if (missingKeys.length > 0) {
138
- const envFilePath = compareFile.path;
139
- const exampleFilePath = opts.examplePath
140
- ? resolveFromCwd(opts.cwd, opts.examplePath)
141
- : null;
142
- // Append missing keys to .env
143
- const content = fs.readFileSync(envFilePath, 'utf-8');
144
- const newContent = content +
145
- (content.endsWith('\n') ? '' : '\n') +
146
- missingKeys.map((k) => `${k}=`).join('\n') +
147
- '\n';
148
- fs.writeFileSync(envFilePath, newContent);
149
- // Append to .env.example if it exists
150
- if (exampleFilePath && fs.existsSync(exampleFilePath)) {
151
- const exContent = fs.readFileSync(exampleFilePath, 'utf-8');
152
- const existingExKeys = new Set(exContent
153
- .split('\n')
154
- .map((l) => l.trim().split('=')[0])
155
- .filter(Boolean));
156
- const newKeys = missingKeys.filter((k) => !existingExKeys.has(k));
157
- if (newKeys.length) {
158
- const newExContent = exContent +
159
- (exContent.endsWith('\n') ? '' : '\n') +
160
- newKeys.join('\n') +
161
- '\n';
162
- fs.writeFileSync(exampleFilePath, newExContent);
163
- }
164
- }
165
- fixApplied = true;
166
- fixedKeys = missingKeys;
167
- scanResult.missing = [];
77
+ else {
78
+ scanResult = result.scanResult;
79
+ envVariables = result.envVariables;
80
+ comparedAgainst = result.comparedAgainst;
81
+ duplicatesFound = result.duplicatesFound;
82
+ fixApplied = result.fixApplied;
83
+ removedDuplicates = result.removedDuplicates;
84
+ fixedKeys = result.addedEnv;
85
+ gitignoreUpdated = result.gitignoreUpdated;
168
86
  }
169
87
  }
170
- // Prepare JSON output
88
+ // JSON output
171
89
  if (opts.json) {
172
90
  const jsonOutput = createJsonOutput(scanResult, opts, comparedAgainst, Object.keys(envVariables).length);
173
91
  console.log(JSON.stringify(jsonOutput, null, 2));
@@ -182,43 +100,12 @@ export async function scanUsage(opts) {
182
100
  };
183
101
  }
184
102
  // Console output
185
- const result = outputToConsole(scanResult, opts, comparedAgainst);
186
- // Show consolidated fix message at the bottom (after all other output)
187
- if (opts.fix && !opts.json) {
188
- if (fixApplied) {
189
- console.log(chalk.green('✅ Auto-fix applied:'));
190
- // Show removed duplicates
191
- if (removedDuplicates.length > 0) {
192
- console.log(chalk.green(` - Removed ${removedDuplicates.length} duplicate keys from ${comparedAgainst}: ${removedDuplicates.join(', ')}`));
193
- }
194
- // Show added missing keys
195
- if (fixedKeys.length > 0) {
196
- console.log(chalk.green(` - Added ${fixedKeys.length} missing keys to ${comparedAgainst}: ${fixedKeys.join(', ')}`));
197
- if (opts.examplePath) {
198
- console.log(chalk.green(` - Synced ${fixedKeys.length} keys to ${path.basename(opts.examplePath)}`));
199
- }
200
- }
201
- console.log();
202
- }
203
- else {
204
- console.log(chalk.green('✅ Auto-fix applied: no changes needed.'));
205
- console.log();
206
- }
207
- }
208
- if (!opts.json && !opts.fix) {
209
- if (scanResult.missing.length > 0 && duplicatesFound) {
210
- console.log(chalk.gray('💡 Tip: Run with `--fix` to add missing keys and remove duplicates'));
211
- console.log();
212
- }
213
- else if (scanResult.missing.length > 0) {
214
- console.log(chalk.gray('💡 Tip: Run with `--fix` to add missing keys'));
215
- console.log();
216
- }
217
- else if (duplicatesFound) {
218
- console.log(chalk.gray('💡 Tip: Run with `--fix` to remove duplicate keys'));
219
- console.log();
220
- }
221
- }
103
+ const result = outputToConsole(scanResult, opts, comparedAgainst, {
104
+ fixApplied,
105
+ removedDuplicates,
106
+ addedEnv: fixedKeys,
107
+ gitignoreUpdated,
108
+ });
222
109
  return { exitWithError: result.exitWithError || duplicatesFound };
223
110
  }
224
111
  //# sourceMappingURL=scanUsage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAmCpB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAwEzD"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AA4DpB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CA2DzD"}
@@ -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,68 @@ 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
- }
69
76
  const cwd = process.cwd();
70
77
  const envFlag = typeof raw.env === 'string' ? path.resolve(cwd, raw.env) : undefined;
71
78
  const exampleFlag = typeof raw.example === 'string'
72
79
  ? path.resolve(cwd, raw.example)
73
80
  : undefined;
81
+ if (isCiMode && isYesMode) {
82
+ printCiYesWarning();
83
+ }
74
84
  return {
75
85
  checkValues,
76
86
  isCiMode,
@@ -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":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,kBAAkB,GAInB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAE3C;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAuB;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,GAAG;SACP,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,GAAuB,EACvB,QAAQ,GAAG,QAAQ;IAEnB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAa,CAAC,CAAC,CAAC;IAC3E,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAuB;IAC7C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC;IAE5C,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;IAEtC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC1B,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,OAAO;QACL,WAAW;QACX,QAAQ;QACR,SAAS;QACT,eAAe;QACf,GAAG;QACH,IAAI;QACJ,OAAO;QACP,WAAW;QACX,MAAM;QACN,WAAW;QACX,GAAG;QACH,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,SAAS;QACT,KAAK;QACL,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -183,4 +183,62 @@ export interface ScanJsonEntry {
183
183
  export interface VariableUsages {
184
184
  [variable: string]: EnvUsage[];
185
185
  }
186
+ export interface ComparisonOptions {
187
+ checkValues: boolean;
188
+ cwd: string;
189
+ allowDuplicates?: boolean;
190
+ fix?: boolean;
191
+ json?: boolean;
192
+ ignore: string[];
193
+ ignoreRegex: RegExp[];
194
+ collect?: (entry: CompareJsonEntry) => void;
195
+ only?: Category[];
196
+ showStats?: boolean;
197
+ strict?: boolean;
198
+ }
199
+ export interface FilePair {
200
+ envName: string;
201
+ envPath: string;
202
+ examplePath: string;
203
+ }
204
+ export interface ComparisonResult {
205
+ exitWithError: boolean;
206
+ }
207
+ export type PairContext = {
208
+ envName: string;
209
+ envPath: string;
210
+ exampleName: string;
211
+ examplePath: string;
212
+ exists: {
213
+ env: boolean;
214
+ example: boolean;
215
+ };
216
+ currentFull?: Record<string, string>;
217
+ exampleFull?: Record<string, string>;
218
+ currentKeys?: string[];
219
+ exampleKeys?: string[];
220
+ current?: Record<string, string>;
221
+ example?: Record<string, string>;
222
+ };
223
+ export type Filtered = {
224
+ missing: string[];
225
+ extra?: string[];
226
+ empty?: string[];
227
+ mismatches?: Array<{
228
+ key: string;
229
+ expected: string;
230
+ actual: string;
231
+ }>;
232
+ duplicatesEnv: Array<{
233
+ key: string;
234
+ count: number;
235
+ }>;
236
+ duplicatesEx: Array<{
237
+ key: string;
238
+ count: number;
239
+ }>;
240
+ gitignoreIssue: {
241
+ reason: 'no-gitignore' | 'not-ignored';
242
+ } | null;
243
+ };
186
244
  //# 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,22 +1,30 @@
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
+ export type ApplyFixesOptions = {
10
2
  envPath: string;
11
3
  examplePath: string;
12
4
  missingKeys: string[];
13
5
  duplicateKeys: string[];
14
- }): {
6
+ ensureGitignore?: boolean;
7
+ };
8
+ export type 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
  };
22
30
  //# 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,MAAM,MAAM,iBAAiB,GAAG;IAC9B,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,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAmFA"}