dotenv-diff 2.4.5 → 2.4.7

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 (138) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +34 -131
  3. package/dist/src/cli/run.d.ts.map +1 -1
  4. package/dist/src/cli/run.js +53 -41
  5. package/dist/src/cli/run.js.map +1 -1
  6. package/dist/src/commands/compare.d.ts +2 -2
  7. package/dist/src/commands/compare.d.ts.map +1 -1
  8. package/dist/src/commands/compare.js +64 -50
  9. package/dist/src/commands/compare.js.map +1 -1
  10. package/dist/src/commands/scanUsage.d.ts +3 -5
  11. package/dist/src/commands/scanUsage.d.ts.map +1 -1
  12. package/dist/src/commands/scanUsage.js +2 -4
  13. package/dist/src/commands/scanUsage.js.map +1 -1
  14. package/dist/src/config/constants.d.ts +42 -0
  15. package/dist/src/config/constants.d.ts.map +1 -0
  16. package/dist/src/config/constants.js +54 -0
  17. package/dist/src/config/constants.js.map +1 -0
  18. package/dist/src/config/loadConfig.d.ts.map +1 -1
  19. package/dist/src/config/loadConfig.js +6 -2
  20. package/dist/src/config/loadConfig.js.map +1 -1
  21. package/dist/src/config/options.d.ts +21 -4
  22. package/dist/src/config/options.d.ts.map +1 -1
  23. package/dist/src/config/options.js +72 -55
  24. package/dist/src/config/options.js.map +1 -1
  25. package/dist/src/config/types.d.ts +172 -197
  26. package/dist/src/config/types.d.ts.map +1 -1
  27. package/dist/src/config/types.js +1 -10
  28. package/dist/src/config/types.js.map +1 -1
  29. package/dist/src/core/compareScan.d.ts +1 -0
  30. package/dist/src/core/compareScan.d.ts.map +1 -1
  31. package/dist/src/core/compareScan.js +1 -0
  32. package/dist/src/core/compareScan.js.map +1 -1
  33. package/dist/src/core/determineComparisonFile.d.ts +1 -1
  34. package/dist/src/core/determineComparisonFile.d.ts.map +1 -1
  35. package/dist/src/core/determineComparisonFile.js +2 -8
  36. package/dist/src/core/determineComparisonFile.js.map +1 -1
  37. package/dist/src/core/envPairing.d.ts +1 -2
  38. package/dist/src/core/envPairing.d.ts.map +1 -1
  39. package/dist/src/core/envPairing.js +5 -2
  40. package/dist/src/core/envPairing.js.map +1 -1
  41. package/dist/src/core/fixEnv.d.ts.map +1 -1
  42. package/dist/src/core/fixEnv.js +4 -2
  43. package/dist/src/core/fixEnv.js.map +1 -1
  44. package/dist/src/core/frameworkDetector.d.ts +4 -3
  45. package/dist/src/core/frameworkDetector.d.ts.map +1 -1
  46. package/dist/src/core/frameworkDetector.js.map +1 -1
  47. package/dist/src/core/frameworkValidator.d.ts +2 -10
  48. package/dist/src/core/frameworkValidator.d.ts.map +1 -1
  49. package/dist/src/core/frameworkValidator.js.map +1 -1
  50. package/dist/src/core/frameworks/nextJsRules.d.ts +2 -3
  51. package/dist/src/core/frameworks/nextJsRules.d.ts.map +1 -1
  52. package/dist/src/core/frameworks/nextJsRules.js +18 -20
  53. package/dist/src/core/frameworks/nextJsRules.js.map +1 -1
  54. package/dist/src/core/frameworks/sveltekitRules.d.ts +2 -3
  55. package/dist/src/core/frameworks/sveltekitRules.d.ts.map +1 -1
  56. package/dist/src/core/frameworks/sveltekitRules.js +41 -29
  57. package/dist/src/core/frameworks/sveltekitRules.js.map +1 -1
  58. package/dist/src/core/helpers/normalizePath.d.ts +6 -0
  59. package/dist/src/core/helpers/normalizePath.d.ts.map +1 -0
  60. package/dist/src/core/helpers/normalizePath.js +8 -0
  61. package/dist/src/core/helpers/normalizePath.js.map +1 -0
  62. package/dist/src/core/helpers/updateTotals.d.ts +1 -2
  63. package/dist/src/core/helpers/updateTotals.d.ts.map +1 -1
  64. package/dist/src/core/helpers/updateTotals.js.map +1 -1
  65. package/dist/src/core/patterns.d.ts +0 -15
  66. package/dist/src/core/patterns.d.ts.map +1 -1
  67. package/dist/src/core/patterns.js +0 -18
  68. package/dist/src/core/patterns.js.map +1 -1
  69. package/dist/src/core/processComparisonFile.d.ts +6 -14
  70. package/dist/src/core/processComparisonFile.d.ts.map +1 -1
  71. package/dist/src/core/processComparisonFile.js.map +1 -1
  72. package/dist/src/core/scanFile.d.ts +1 -1
  73. package/dist/src/core/scanFile.d.ts.map +1 -1
  74. package/dist/src/core/scanFile.js +7 -5
  75. package/dist/src/core/scanFile.js.map +1 -1
  76. package/dist/src/core/scanJsonOutput.d.ts +78 -4
  77. package/dist/src/core/scanJsonOutput.d.ts.map +1 -1
  78. package/dist/src/core/scanJsonOutput.js +39 -32
  79. package/dist/src/core/scanJsonOutput.js.map +1 -1
  80. package/dist/src/index.js +7 -0
  81. package/dist/src/index.js.map +1 -1
  82. package/dist/src/services/codeBaseScanner.d.ts.map +1 -1
  83. package/dist/src/services/codeBaseScanner.js +59 -22
  84. package/dist/src/services/codeBaseScanner.js.map +1 -1
  85. package/dist/src/services/duplicates.js +2 -2
  86. package/dist/src/services/duplicates.js.map +1 -1
  87. package/dist/src/services/ensureFilesOrPrompt.d.ts.map +1 -1
  88. package/dist/src/services/ensureFilesOrPrompt.js +5 -2
  89. package/dist/src/services/ensureFilesOrPrompt.js.map +1 -1
  90. package/dist/src/services/envDiscovery.d.ts +1 -14
  91. package/dist/src/services/envDiscovery.d.ts.map +1 -1
  92. package/dist/src/services/envDiscovery.js +22 -9
  93. package/dist/src/services/envDiscovery.js.map +1 -1
  94. package/dist/src/services/git.d.ts.map +1 -1
  95. package/dist/src/services/git.js +10 -9
  96. package/dist/src/services/git.js.map +1 -1
  97. package/dist/src/services/scanOutputToConsole.d.ts +2 -4
  98. package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
  99. package/dist/src/services/scanOutputToConsole.js +5 -4
  100. package/dist/src/services/scanOutputToConsole.js.map +1 -1
  101. package/dist/src/ui/compare/printIssues.d.ts +1 -1
  102. package/dist/src/ui/compare/printIssues.d.ts.map +1 -1
  103. package/dist/src/ui/compare/printIssues.js +0 -1
  104. package/dist/src/ui/compare/printIssues.js.map +1 -1
  105. package/dist/src/ui/compare/printStats.d.ts +1 -1
  106. package/dist/src/ui/compare/printStats.d.ts.map +1 -1
  107. package/dist/src/ui/compare/printStats.js +0 -1
  108. package/dist/src/ui/compare/printStats.js.map +1 -1
  109. package/dist/src/ui/scan/printConsolelogWarning.d.ts.map +1 -1
  110. package/dist/src/ui/scan/printConsolelogWarning.js +3 -1
  111. package/dist/src/ui/scan/printConsolelogWarning.js.map +1 -1
  112. package/dist/src/ui/scan/printFrameworkWarnings.d.ts +2 -2
  113. package/dist/src/ui/scan/printFrameworkWarnings.d.ts.map +1 -1
  114. package/dist/src/ui/scan/printFrameworkWarnings.js.map +1 -1
  115. package/dist/src/ui/scan/printMissing.d.ts.map +1 -1
  116. package/dist/src/ui/scan/printMissing.js +3 -1
  117. package/dist/src/ui/scan/printMissing.js.map +1 -1
  118. package/dist/src/ui/scan/printProgress.d.ts +15 -0
  119. package/dist/src/ui/scan/printProgress.d.ts.map +1 -0
  120. package/dist/src/ui/scan/printProgress.js +35 -0
  121. package/dist/src/ui/scan/printProgress.js.map +1 -0
  122. package/dist/src/ui/scan/printSecrets.d.ts +1 -1
  123. package/dist/src/ui/scan/printSecrets.d.ts.map +1 -1
  124. package/dist/src/ui/scan/printSecrets.js +3 -2
  125. package/dist/src/ui/scan/printSecrets.js.map +1 -1
  126. package/dist/src/ui/shared/printFixTips.d.ts +1 -1
  127. package/dist/src/ui/shared/printFixTips.d.ts.map +1 -1
  128. package/dist/src/ui/shared/printFixTips.js +0 -1
  129. package/dist/src/ui/shared/printFixTips.js.map +1 -1
  130. package/dist/src/ui/shared/printProgress.d.ts +24 -0
  131. package/dist/src/ui/shared/printProgress.d.ts.map +1 -0
  132. package/dist/src/ui/shared/printProgress.js +43 -0
  133. package/dist/src/ui/shared/printProgress.js.map +1 -0
  134. package/dist/src/ui/shared/setupGlobalConfig.d.ts +1 -1
  135. package/dist/src/ui/shared/setupGlobalConfig.d.ts.map +1 -1
  136. package/dist/src/ui/shared/setupGlobalConfig.js +0 -1
  137. package/dist/src/ui/shared/setupGlobalConfig.js.map +1 -1
  138. package/package.json +1 -1
@@ -1,6 +1,19 @@
1
+ import { ALLOWED_CATEGORIES } from './constants.js';
1
2
  import { type SecretFinding } from '../core/secretDetectors.js';
2
- import { type frameworkWarning } from '../core/frameworkValidator.js';
3
3
  import { type ExampleSecretWarning } from '../core/exampleSecretDetector.js';
4
+ export type SupportedFramework = 'sveltekit' | 'nextjs';
5
+ export type DetectedFramework = SupportedFramework | 'unknown';
6
+ /**
7
+ * Framework-specific warning about environment variable usage
8
+ * From rules defined for each supported framework (SvelteKit, Next.js)
9
+ */
10
+ export interface FrameworkWarning {
11
+ variable: string;
12
+ reason: string;
13
+ file: string;
14
+ line: number;
15
+ framework: SupportedFramework;
16
+ }
4
17
  export type Duplicate = {
5
18
  key: string;
6
19
  count: number;
@@ -9,43 +22,21 @@ export interface DuplicateResult {
9
22
  dupsEnv: Duplicate[];
10
23
  dupsEx: Duplicate[];
11
24
  }
12
- export declare const ALLOWED_CATEGORIES: readonly ["missing", "extra", "empty", "mismatch", "duplicate", "gitignore"];
13
25
  export type Category = (typeof ALLOWED_CATEGORIES)[number];
14
- /** Type representing the options for the comparison
15
- * These are the options that are processed and validated before being used in the comparison.
16
- */
17
- export type Options = {
18
- checkValues: boolean;
19
- isCiMode: boolean;
20
- isYesMode: boolean;
21
- allowDuplicates: boolean;
22
- fix: boolean;
23
- json: boolean;
24
- envFlag: string | undefined;
25
- exampleFlag: string | undefined;
26
- ignore: string[];
27
- ignoreRegex: RegExp[];
28
- cwd: string;
29
- only?: Category[];
30
- compare: boolean;
31
- scanUsage: boolean;
32
- includeFiles: string[];
33
- excludeFiles: string[];
34
- showUnused: boolean;
35
- showStats: boolean;
36
- files?: string[];
37
- noColor?: boolean;
38
- secrets: boolean;
39
- strict: boolean | undefined;
40
- ignoreUrls?: string[];
41
- uppercaseKeys: boolean;
42
- expireWarnings: boolean;
43
- inconsistentNamingWarnings: boolean;
44
- };
45
- /** Type representing the raw options for the comparison
46
- * These are the options that are directly passed to the comparison function without any processing or validation.
26
+ /**
27
+ * Raw options as received directly from the CLI argument parser.
28
+ *
29
+ * These values are intentionally loose and reflect how flags are actually
30
+ * provided by the user:
31
+ * - Values may be missing
32
+ * - Lists may be strings or string arrays
33
+ * - No defaults are applied
34
+ * - No validation or normalization has happened yet
35
+ *
36
+ * This type should only be used at the CLI boundary and passed into the
37
+ * normalization step that produces {@link Options}.
47
38
  */
48
- export type RawOptions = {
39
+ export interface RawOptions {
49
40
  checkValues?: boolean;
50
41
  ci?: boolean;
51
42
  yes?: boolean;
@@ -72,37 +63,48 @@ export type RawOptions = {
72
63
  uppercaseKeys?: boolean;
73
64
  expireWarnings?: boolean;
74
65
  inconsistentNamingWarnings?: boolean;
75
- };
66
+ }
76
67
  /**
77
- * Type representing a single entry in the comparison results
78
- * This entry contains the environment variable and its example value.
68
+ * Normalized and validated options used internally by the application.
69
+ *
70
+ * These options represent the final, safe configuration that the rest of the
71
+ * codebase can rely on. All values are:
72
+ * - Fully normalized (no string | string[] unions)
73
+ * - Resolved to absolute paths where applicable
74
+ * - Filled with defaults for omitted flags
75
+ * - Validated and ready for use
76
+ *
77
+ * This type should be used everywhere outside of CLI parsing and option
78
+ * normalization logic.
79
79
  */
80
- export type CompareJsonEntry = {
81
- env: string;
82
- example: string;
83
- skipped?: {
84
- reason: string;
85
- };
86
- duplicates?: {
87
- env?: Array<{
88
- key: string;
89
- count: number;
90
- }>;
91
- example?: Array<{
92
- key: string;
93
- count: number;
94
- }>;
95
- };
96
- missing?: string[];
97
- extra?: string[];
98
- empty?: string[];
99
- valueMismatches?: Array<{
100
- key: string;
101
- expected: string;
102
- actual: string;
103
- }>;
104
- ok?: boolean;
105
- };
80
+ export interface Options {
81
+ checkValues: boolean;
82
+ isCiMode: boolean;
83
+ isYesMode: boolean;
84
+ allowDuplicates: boolean;
85
+ fix: boolean;
86
+ json: boolean;
87
+ envFlag: string | undefined;
88
+ exampleFlag: string | undefined;
89
+ ignore: string[];
90
+ ignoreRegex: RegExp[];
91
+ cwd: string;
92
+ only: Category[];
93
+ compare: boolean;
94
+ scanUsage: boolean;
95
+ includeFiles: string[];
96
+ excludeFiles: string[];
97
+ showUnused: boolean;
98
+ showStats: boolean;
99
+ files: string[];
100
+ noColor: boolean;
101
+ secrets: boolean;
102
+ strict: boolean;
103
+ ignoreUrls: string[];
104
+ uppercaseKeys: boolean;
105
+ expireWarnings: boolean;
106
+ inconsistentNamingWarnings: boolean;
107
+ }
106
108
  /**
107
109
  * Represents a single usage of an environment variable in the codebase.
108
110
  */
@@ -111,20 +113,45 @@ export interface EnvUsage {
111
113
  file: string;
112
114
  line: number;
113
115
  column: number;
114
- pattern: 'process.env' | 'import.meta.env' | 'sveltekit' | 'angular' | 'deno' | 'next' | 'nuxt' | 'php';
116
+ pattern: 'process.env' | 'import.meta.env' | 'sveltekit';
115
117
  context: string;
116
118
  isLogged?: boolean;
117
119
  }
120
+ export type VariableUsages = Record<string, EnvUsage[]>;
121
+ /**
122
+ * Options for scanning the codebase
123
+ */
118
124
  export interface ScanOptions {
119
125
  cwd: string;
120
126
  include: string[];
121
127
  exclude: string[];
122
128
  ignore: string[];
123
129
  ignoreRegex: RegExp[];
124
- files?: string[];
125
- secrets?: boolean;
126
- ignoreUrls?: string[];
130
+ files: string[];
131
+ secrets: boolean;
132
+ ignoreUrls: string[];
133
+ json: boolean;
127
134
  }
135
+ /**
136
+ * Extends the basic ScanOptions with additional parameters.
137
+ * All of these options are optional, as they may not be needed for every scan.
138
+ */
139
+ export interface ScanUsageOptions extends ScanOptions {
140
+ envPath?: string | undefined;
141
+ examplePath?: string | undefined;
142
+ fix?: boolean;
143
+ showUnused?: boolean;
144
+ showStats?: boolean;
145
+ isCiMode?: boolean;
146
+ allowDuplicates?: boolean;
147
+ strict?: boolean;
148
+ uppercaseKeys?: boolean;
149
+ expireWarnings?: boolean;
150
+ inconsistentNamingWarnings?: boolean;
151
+ }
152
+ /**
153
+ * Result of scanning the codebase for environment variable usages.
154
+ */
128
155
  export interface ScanResult {
129
156
  used: EnvUsage[];
130
157
  missing: string[];
@@ -138,16 +165,10 @@ export interface ScanResult {
138
165
  };
139
166
  secrets: SecretFinding[];
140
167
  duplicates: {
141
- env?: Array<{
142
- key: string;
143
- count: number;
144
- }>;
145
- example?: Array<{
146
- key: string;
147
- count: number;
148
- }>;
168
+ env?: Duplicate[];
169
+ example?: Duplicate[];
149
170
  };
150
- frameworkWarnings?: frameworkWarning[];
171
+ frameworkWarnings?: FrameworkWarning[];
151
172
  exampleWarnings?: ExampleSecretWarning[];
152
173
  logged: EnvUsage[];
153
174
  uppercaseWarnings?: UppercaseWarning[];
@@ -155,103 +176,33 @@ export interface ScanResult {
155
176
  inconsistentNamingWarnings?: InconsistentNamingWarning[];
156
177
  fileContentMap?: Map<string, string>;
157
178
  }
158
- /** Options for scanning the codebase for environment variable usage. */
159
- export interface ScanUsageOptions extends ScanOptions {
160
- envPath?: string | undefined;
161
- examplePath?: string | undefined;
162
- fix?: boolean;
163
- json: boolean;
164
- showUnused: boolean;
165
- showStats: boolean;
166
- isCiMode?: boolean;
167
- files?: string[];
168
- allowDuplicates?: boolean;
169
- strict?: boolean;
170
- uppercaseKeys?: boolean;
171
- expireWarnings?: boolean;
172
- inconsistentNamingWarnings?: boolean;
173
- }
174
- export interface ScanJsonEntry {
175
- stats: {
176
- filesScanned: number;
177
- totalUsages: number;
178
- uniqueVariables: number;
179
- warningsCount: number;
180
- duration: number;
179
+ /**
180
+ * Type representing a single entry in the comparison results
181
+ * This entry contains the environment variable and its example value.
182
+ */
183
+ export type CompareJsonEntry = {
184
+ env: string;
185
+ example: string;
186
+ skipped?: {
187
+ reason: string;
181
188
  };
182
- missing: Array<{
183
- variable: string;
184
- usages: Array<{
185
- file: string;
186
- line: number;
187
- pattern: string;
188
- context: string;
189
- }>;
190
- }>;
191
- unused: string[];
192
- allUsages?: Array<{
193
- variable: string;
194
- file: string;
195
- line: number;
196
- pattern: string;
197
- context: string;
198
- }>;
199
- comparedAgainst?: string;
200
- totalEnvVariables?: number;
201
- secrets?: Array<{
202
- file: string;
203
- line: number;
204
- message: string;
205
- snippet: string;
206
- }>;
207
189
  duplicates?: {
208
- env?: Array<{
209
- key: string;
210
- count: number;
211
- }>;
212
- example?: Array<{
213
- key: string;
214
- count: number;
215
- }>;
190
+ env?: Duplicate[];
191
+ example?: Duplicate[];
216
192
  };
217
- logged?: Array<{
218
- variable: string;
219
- file: string;
220
- line: number;
221
- context: string;
222
- }>;
223
- expireWarnings?: Array<{
224
- key: string;
225
- date: string;
226
- daysLeft: number;
227
- }>;
228
- uppercaseWarnings?: Array<{
229
- key: string;
230
- suggestion: string;
231
- }>;
232
- inconsistentNamingWarnings?: Array<{
233
- key1: string;
234
- key2: string;
235
- suggestion: string;
236
- }>;
237
- frameworkWarnings?: Array<{
238
- variable: string;
239
- reason: string;
240
- file: string;
241
- line: number;
242
- framework: string;
243
- }>;
244
- exampleWarnings?: Array<{
193
+ missing?: string[];
194
+ extra?: string[];
195
+ empty?: string[];
196
+ valueMismatches?: Array<{
245
197
  key: string;
246
- value: string;
247
- reason: string;
248
- severity: string;
198
+ expected: string;
199
+ actual: string;
249
200
  }>;
250
- healthScore?: number;
251
- }
252
- export interface VariableUsages {
253
- [variable: string]: EnvUsage[];
254
- }
201
+ ok?: boolean;
202
+ };
203
+ /**
204
+ * Options for comparing environment files (--compare flag).
205
+ */
255
206
  export interface ComparisonOptions {
256
207
  checkValues: boolean;
257
208
  cwd: string;
@@ -268,30 +219,24 @@ export interface ComparisonOptions {
268
219
  expireWarnings?: boolean;
269
220
  inconsistentNamingWarnings?: boolean;
270
221
  }
222
+ /**
223
+ * Represents a resolved pair of environment files used for comparison.
224
+ *
225
+ * A FilePair describes one concrete comparison unit consisting of:
226
+ * - an environment file (e.g. `.env`, `.env.production`)
227
+ * - the example file it should be compared against
228
+ */
271
229
  export interface FilePair {
230
+ /** The name of the environment file (e.g. ".env", ".env.production") */
272
231
  envName: string;
232
+ /** Absolute path to the environment file */
273
233
  envPath: string;
234
+ /** Absolute path to the example file this env file is compared against */
274
235
  examplePath: string;
275
236
  }
276
- export interface ComparisonResult {
277
- exitWithError: boolean;
278
- }
279
- export type PairContext = {
280
- envName: string;
281
- envPath: string;
282
- exampleName: string;
283
- examplePath: string;
284
- exists: {
285
- env: boolean;
286
- example: boolean;
287
- };
288
- currentFull?: Record<string, string>;
289
- exampleFull?: Record<string, string>;
290
- currentKeys?: string[];
291
- exampleKeys?: string[];
292
- current?: Record<string, string>;
293
- example?: Record<string, string>;
294
- };
237
+ /**
238
+ * Result of filtering comparison results based on categories
239
+ */
295
240
  export type Filtered = {
296
241
  missing: string[];
297
242
  extra?: string[];
@@ -301,30 +246,60 @@ export type Filtered = {
301
246
  expected: string;
302
247
  actual: string;
303
248
  }>;
304
- duplicatesEnv: Array<{
305
- key: string;
306
- count: number;
307
- }>;
308
- duplicatesEx: Array<{
309
- key: string;
310
- count: number;
311
- }>;
249
+ duplicatesEnv: Duplicate[];
250
+ duplicatesEx: Duplicate[];
312
251
  gitignoreIssue: {
313
252
  reason: 'no-gitignore' | 'not-ignored';
314
253
  } | null;
315
254
  };
255
+ /**
256
+ * Result of the exit code determination after scanning or comparing.
257
+ */
258
+ export interface ExitResult {
259
+ exitWithError: boolean;
260
+ }
261
+ /**
262
+ * Warning about environment variable keys that are not uppercase.
263
+ */
316
264
  export interface UppercaseWarning {
317
265
  key: string;
318
266
  suggestion: string;
319
267
  }
268
+ /**
269
+ * Warning about environment variable keys that have expiration dates.
270
+ * fx:
271
+ *
272
+ * # @expire 2025-12-31
273
+ * API_KEY=
274
+ *
275
+ * This will generate a warning that API_KEY expires on 2025-12-31.
276
+ */
320
277
  export interface ExpireWarning {
321
278
  key: string;
322
279
  date: string;
323
280
  daysLeft: number;
324
281
  }
282
+ /**
283
+ * Warning about inconsistent naming of environment variable keys.
284
+ * fx: If you have both SECRET_KEY and SECRETKEY (inconsistent naming)
285
+ */
325
286
  export interface InconsistentNamingWarning {
326
287
  key1: string;
327
288
  key2: string;
328
289
  suggestion: string;
329
290
  }
291
+ /**
292
+ * Represents the discovery of environment files in a project.
293
+ * Contains information about the current working directory, found environment files,
294
+ * and the primary environment and example files.
295
+ */
296
+ export interface Discovery {
297
+ cwd: string;
298
+ envFiles: string[];
299
+ primaryEnv: string;
300
+ primaryExample: string;
301
+ envFlag: string | null;
302
+ exampleFlag: string | null;
303
+ alreadyWarnedMissingEnv: boolean;
304
+ }
330
305
  //# 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,13 +1,4 @@
1
+ import { ALLOWED_CATEGORIES } from './constants.js';
1
2
  import {} from '../core/secretDetectors.js';
2
- import {} from '../core/frameworkValidator.js';
3
3
  import {} from '../core/exampleSecretDetector.js';
4
- // Allowed categories for comparison
5
- export const ALLOWED_CATEGORIES = [
6
- 'missing',
7
- 'extra',
8
- 'empty',
9
- 'mismatch',
10
- 'duplicate',
11
- 'gitignore',
12
- ];
13
4
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAyB,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAA6B,MAAM,kCAAkC,CAAC;AAW7E,oCAAoC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,OAAO;IACP,OAAO;IACP,UAAU;IACV,WAAW;IACX,WAAW;CACH,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAsB,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAA6B,MAAM,kCAAkC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ScanResult } from '../config/types.js';
2
2
  /**
3
3
  * Compares the scan result with the environment variables.
4
+ * This function identifies missing and unused environment variables.
4
5
  * @param scanResult - The result of the scan.
5
6
  * @param envVariables - The environment variables to compare against.
6
7
  * @returns The comparison result.
@@ -1 +1 @@
1
- {"version":3,"file":"compareScan.d.ts","sourceRoot":"","sources":["../../../src/core/compareScan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC/C,UAAU,CAYZ"}
1
+ {"version":3,"file":"compareScan.d.ts","sourceRoot":"","sources":["../../../src/core/compareScan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC/C,UAAU,CAYZ"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Compares the scan result with the environment variables.
3
+ * This function identifies missing and unused environment variables.
3
4
  * @param scanResult - The result of the scan.
4
5
  * @param envVariables - The environment variables to compare against.
5
6
  * @returns The comparison result.
@@ -1 +1 @@
1
- {"version":3,"file":"compareScan.js","sourceRoot":"","sources":["../../../src/core/compareScan.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsB,EACtB,YAAgD;IAEhD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,OAAO;QACL,GAAG,UAAU;QACb,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compareScan.js","sourceRoot":"","sources":["../../../src/core/compareScan.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsB,EACtB,YAAgD;IAEhD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,OAAO;QACL,GAAG,UAAU;QACb,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ScanUsageOptions } from '../config/types.js';
1
+ import type { ScanUsageOptions } from '../config/types.js';
2
2
  type ComparisonFile = {
3
3
  path: string;
4
4
  name: string;
@@ -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,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AASF;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,gBAAgB,GACrB,cAAc,GAAG,SAAS,CA0B5B"}
1
+ {"version":3,"file":"determineComparisonFile.d.ts","sourceRoot":"","sources":["../../../src/core/determineComparisonFile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,gBAAgB,GACrB,cAAc,GAAG,SAAS,CA0B5B"}
@@ -1,13 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import {} from '../config/types.js';
4
3
  import { resolveFromCwd } from './helpers/resolveFromCwd.js';
5
- const DEFAULT_ENV_FILES = [
6
- '.env',
7
- '.env.example',
8
- '.env.local',
9
- '.env.production',
10
- ];
4
+ import { DEFAULT_ENV_CANDIDATES } from '../config/constants.js';
11
5
  /**
12
6
  * Determines which file to use for comparison based on provided options
13
7
  * @param {ScanUsageOptions} opts - Scan configuration options
@@ -28,7 +22,7 @@ export function determineComparisonFile(opts) {
28
22
  }
29
23
  }
30
24
  // Auto-discovery: look for common env files relative to cwd
31
- for (const candidate of DEFAULT_ENV_FILES) {
25
+ for (const candidate of DEFAULT_ENV_CANDIDATES) {
32
26
  const fullPath = path.resolve(opts.cwd, candidate);
33
27
  if (fs.existsSync(fullPath)) {
34
28
  return { path: fullPath, name: candidate };
@@ -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;AAO7D,MAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,cAAc;IACd,YAAY;IACZ,iBAAiB;CACT,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAsB;IAEtB,sDAAsD;IAEtD,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,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,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;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAOhE;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAsB;IAEtB,sDAAsD;IAEtD,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,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAC/C,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,5 +1,4 @@
1
- import type { Discovery } from '../services/envDiscovery.js';
2
- import type { FilePair } from '../config/types.js';
1
+ import type { FilePair, Discovery } from '../config/types.js';
3
2
  /**
4
3
  * Pairs each environment file with its corresponding example file.
5
4
  * @param d - The discovery object containing environment and example file information.
@@ -1 +1 @@
1
- {"version":3,"file":"envPairing.d.ts","sourceRoot":"","sources":["../../../src/core/envPairing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CA6B7D"}
1
+ {"version":3,"file":"envPairing.d.ts","sourceRoot":"","sources":["../../../src/core/envPairing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAgC7D"}
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import { DEFAULT_ENV_FILE, DEFAULT_EXAMPLE_FILE } from '../config/constants.js';
3
4
  /**
4
5
  * Pairs each environment file with its corresponding example file.
5
6
  * @param d - The discovery object containing environment and example file information.
@@ -14,8 +15,10 @@ export function pairWithExample(d) {
14
15
  if (envAbs === path.resolve(d.cwd, d.primaryExample))
15
16
  continue;
16
17
  }
17
- const suffix = envName === '.env' ? '' : envName.replace('.env', '');
18
- const exampleName = suffix ? `.env.example${suffix}` : d.primaryExample;
18
+ const suffix = envName === DEFAULT_ENV_FILE ? '' : envName.replace(DEFAULT_ENV_FILE, '');
19
+ const exampleName = suffix
20
+ ? `${DEFAULT_EXAMPLE_FILE}${suffix}`
21
+ : d.primaryExample;
19
22
  const envPathCurrent = path.resolve(d.cwd, envName);
20
23
  const examplePathCurrent = d.exampleFlag && !d.envFlag
21
24
  ? path.resolve(d.cwd, d.primaryExample)