dotenv-diff 2.3.11 → 2.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +138 -5
- package/README.md +112 -205
- package/dist/src/cli/run.js +6 -2
- package/dist/src/cli/run.js.map +1 -1
- package/dist/src/commands/compare.d.ts +1 -1
- package/dist/src/commands/compare.d.ts.map +1 -1
- package/dist/src/commands/compare.js.map +1 -1
- package/dist/src/commands/scanUsage.js +15 -2
- package/dist/src/commands/scanUsage.js.map +1 -1
- package/dist/src/config/types.d.ts +3 -1
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/determineComparisonFile.d.ts +7 -5
- package/dist/src/core/determineComparisonFile.d.ts.map +1 -1
- package/dist/src/core/determineComparisonFile.js +8 -3
- package/dist/src/core/determineComparisonFile.js.map +1 -1
- package/dist/src/core/envPairing.d.ts +9 -0
- package/dist/src/core/envPairing.d.ts.map +1 -0
- package/dist/src/core/envPairing.js +33 -0
- package/dist/src/core/envPairing.js.map +1 -0
- package/dist/src/core/helpers/resolveFromCwd.d.ts +11 -4
- package/dist/src/core/helpers/resolveFromCwd.d.ts.map +1 -1
- package/dist/src/core/helpers/resolveFromCwd.js +11 -4
- package/dist/src/core/helpers/resolveFromCwd.js.map +1 -1
- package/dist/src/core/scanJsonOutput.d.ts.map +1 -1
- package/dist/src/core/scanJsonOutput.js +1 -11
- package/dist/src/core/scanJsonOutput.js.map +1 -1
- package/dist/src/core/secretDetectors.d.ts.map +1 -1
- package/dist/src/core/secretDetectors.js +5 -0
- package/dist/src/core/secretDetectors.js.map +1 -1
- package/dist/src/index.js +5 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/codeBaseScanner.d.ts.map +1 -1
- package/dist/src/services/codeBaseScanner.js +1 -0
- package/dist/src/services/codeBaseScanner.js.map +1 -1
- package/dist/src/services/duplicates.d.ts +2 -4
- package/dist/src/services/duplicates.d.ts.map +1 -1
- package/dist/src/services/duplicates.js.map +1 -1
- package/dist/src/services/fileWalker.d.ts +7 -5
- package/dist/src/services/fileWalker.d.ts.map +1 -1
- package/dist/src/services/fileWalker.js +2 -2
- package/dist/src/services/fileWalker.js.map +1 -1
- package/dist/src/services/scanOutputToConsole.d.ts +8 -6
- package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
- package/dist/src/services/scanOutputToConsole.js +3 -11
- package/dist/src/services/scanOutputToConsole.js.map +1 -1
- package/dist/src/ui/scan/printHeader.d.ts.map +1 -1
- package/dist/src/ui/scan/printHeader.js +0 -3
- package/dist/src/ui/scan/printHeader.js.map +1 -1
- package/dist/src/ui/scan/printStats.d.ts +1 -0
- package/dist/src/ui/scan/printStats.d.ts.map +1 -1
- package/dist/src/ui/scan/printStats.js +2 -0
- package/dist/src/ui/scan/printStats.js.map +1 -1
- package/dist/src/ui/shared/printAutoFix.js +1 -1
- package/dist/src/ui/shared/printAutoFix.js.map +1 -1
- package/dist/src/ui/shared/printConfigStatus.d.ts +2 -2
- package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -1
- package/dist/src/ui/shared/printConfigStatus.js +5 -3
- package/dist/src/ui/shared/printConfigStatus.js.map +1 -1
- package/package.json +18 -12
package/README.md
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# dotenv-diff
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`dotenv-diff` scans your codebase to detect which environment variables are used
|
|
6
|
+
and compares them against your `.env` or `.env.example` files.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
Also works well in modern JavaScript/TypeScript projects and frameworks like Node.js, Nuxt, and Vue — or any other setup where you want reliable .env file comparison / scanning.
|
|
8
|
+
It helps you catch missing, unused, or misconfigured environment variables **before deployment**.
|
|
9
9
|
|
|
10
|
+
Optimized for **SvelteKit** and **Next.js**, but works well with modern
|
|
11
|
+
JavaScript and TypeScript projects such as **Node.js, Nuxt, and Vue**.
|
|
12
|
+
|
|
13
|
+

|
|
10
14
|
[](https://www.npmjs.com/package/dotenv-diff)
|
|
11
15
|
[](https://www.npmjs.com/package/dotenv-diff)
|
|
12
16
|
|
|
@@ -14,38 +18,42 @@ Also works well in modern JavaScript/TypeScript projects and frameworks like Nod
|
|
|
14
18
|
|
|
15
19
|
## Why dotenv-diff?
|
|
16
20
|
|
|
17
|
-
- Ensure all required environment variables are defined before deploying
|
|
18
|
-
- Catch missing or misconfigured variables early in development
|
|
19
|
-
- Improve collaboration
|
|
20
|
-
-
|
|
21
|
-
- Scale
|
|
21
|
+
- Ensure all required environment variables are defined before deploying
|
|
22
|
+
- Catch missing or misconfigured variables early in development
|
|
23
|
+
- Improve collaboration by keeping teams aligned on required variables
|
|
24
|
+
- Reduce the risk of committing sensitive data
|
|
25
|
+
- Scale easily for monorepos and multi-environment setups
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## GitHub Actions Example
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
Run `dotenv-diff` in CI to validate environment variables automatically:
|
|
24
32
|
|
|
25
33
|
```yaml
|
|
26
34
|
- name: Check environment variables
|
|
27
35
|
run: dotenv-diff --example .env.example
|
|
28
36
|
```
|
|
29
37
|
|
|
30
|
-
|
|
38
|
+
To compare against a different example file:
|
|
31
39
|
|
|
32
40
|
```bash
|
|
33
41
|
dotenv-diff --example .env.example.staging
|
|
34
42
|
```
|
|
35
43
|
|
|
36
|
-
If
|
|
37
|
-
It will scan your codebase for environment variable usage, but won’t compare against an example file.
|
|
44
|
+
If no `.env.example` file exists, run:
|
|
38
45
|
|
|
39
46
|
```bash
|
|
40
47
|
dotenv-diff
|
|
41
48
|
```
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
This scans the codebase but skips comparison.
|
|
51
|
+
|
|
52
|
+
---
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
You can run dotenv-diff from one app and still include files from your packages folder.
|
|
54
|
+
## Monorepo (Turborepo) Usage
|
|
47
55
|
|
|
48
|
-
|
|
56
|
+
In monorepos with multiple apps and packages, you can include shared folders:
|
|
49
57
|
|
|
50
58
|
```json
|
|
51
59
|
{
|
|
@@ -56,303 +64,202 @@ For example, if you want to scan from the apps/app1 folder and also include code
|
|
|
56
64
|
```
|
|
57
65
|
|
|
58
66
|
This will:
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
- Ignore variables
|
|
67
|
+
- Scan the current app
|
|
68
|
+
- Include shared packages
|
|
69
|
+
- Ignore variables used only in specific environments
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Automatic Fixes (`--fix`)
|
|
64
74
|
|
|
65
|
-
|
|
75
|
+
Automatically add missing variables to your `.env` file:
|
|
66
76
|
|
|
67
77
|
```bash
|
|
68
78
|
dotenv-diff --fix
|
|
69
79
|
```
|
|
70
80
|
|
|
71
|
-
### Example
|
|
81
|
+
### Example
|
|
82
|
+
|
|
83
|
+
1. Code uses `process.env.NEW_API_KEY`
|
|
84
|
+
2. Run `dotenv-diff --fix`
|
|
85
|
+
3. Tool adds `NEW_API_KEY=` to `.env`
|
|
72
86
|
|
|
73
|
-
|
|
74
|
-
2. You run `dotenv-diff --fix`.
|
|
75
|
-
3. The tool automatically adds `NEW_API_KEY=` to your `.env` file.
|
|
87
|
+
---
|
|
76
88
|
|
|
77
|
-
## Strict
|
|
89
|
+
## Strict Mode
|
|
78
90
|
|
|
79
|
-
|
|
91
|
+
Treat warnings as errors (useful for CI):
|
|
80
92
|
|
|
81
93
|
```bash
|
|
82
94
|
dotenv-diff --strict
|
|
83
95
|
```
|
|
84
96
|
|
|
85
|
-
|
|
97
|
+
---
|
|
86
98
|
|
|
87
|
-
|
|
99
|
+
## Framework-Specific Warnings
|
|
88
100
|
|
|
89
|
-
|
|
101
|
+
When using **SvelteKit** or **Next.js**, `dotenv-diff` warns about incorrect usage.
|
|
90
102
|
|
|
91
|
-
|
|
103
|
+
Example warning:
|
|
92
104
|
|
|
93
105
|
```bash
|
|
94
106
|
Environment variable usage issues:
|
|
95
|
-
|
|
107
|
+
- PUBLIC_URL (src/routes/+page.ts:1)
|
|
108
|
+
→ Variables accessed through import.meta.env must start with "VITE_"
|
|
96
109
|
```
|
|
97
110
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
## Detect potential secrets in your .env.example file
|
|
111
|
+
---
|
|
101
112
|
|
|
102
|
-
|
|
113
|
+
## Detect Secrets in `.env.example`
|
|
103
114
|
|
|
104
|
-
for
|
|
115
|
+
`dotenv-diff` scans example files for potential secrets:
|
|
105
116
|
|
|
106
117
|
```bash
|
|
107
118
|
Potential real secrets found in .env.example:
|
|
108
|
-
|
|
119
|
+
- API_KEY = "sk_test_..." → Matches known provider pattern [high]
|
|
109
120
|
```
|
|
110
121
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
## Accidentally logging environment variables to console?
|
|
122
|
+
---
|
|
114
123
|
|
|
115
|
-
|
|
124
|
+
## Logging Environment Variables
|
|
116
125
|
|
|
117
|
-
|
|
126
|
+
Detect accidental logging of sensitive values:
|
|
118
127
|
|
|
119
128
|
```js
|
|
120
129
|
console.log(process.env.API_KEY);
|
|
121
130
|
```
|
|
122
131
|
|
|
123
|
-
This
|
|
132
|
+
This triggers a warning.
|
|
124
133
|
|
|
125
|
-
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Ignore Specific Warnings
|
|
126
137
|
|
|
127
|
-
|
|
138
|
+
Ignore specific lines using comments:
|
|
128
139
|
|
|
129
140
|
```js
|
|
130
|
-
const secret ="https://
|
|
131
|
-
const ignoredEntropy = "AIzaSyA-1234567890abcdefgHIJKLMNOpqrstuv" // dotenv-diff-ignore;
|
|
141
|
+
const secret = "https://example.com"; // dotenv-diff-ignore
|
|
132
142
|
```
|
|
133
143
|
|
|
134
|
-
|
|
144
|
+
---
|
|
135
145
|
|
|
136
|
-
##
|
|
146
|
+
## Health Score
|
|
137
147
|
|
|
138
|
-
|
|
148
|
+
Provides an overall score based on:
|
|
149
|
+
- Missing variables
|
|
150
|
+
- Potential secrets
|
|
151
|
+
- Naming conventions
|
|
152
|
+
- Logged variables
|
|
153
|
+
- Unused variables
|
|
154
|
+
- Framework-specific rules
|
|
139
155
|
|
|
140
|
-
|
|
141
|
-
- The number of missing environment variables.
|
|
142
|
-
- The presence of potential secrets exposed in your codebase.
|
|
143
|
-
- The use of uppercase naming conventions for environment variable keys.
|
|
144
|
-
- Logged environment variables in the codebase.
|
|
145
|
-
- Unused variables in your `.env` or `.env.example` file.
|
|
146
|
-
- Framework specific warning for SvelteKit or Next.js (depending on detected framework).
|
|
156
|
+
---
|
|
147
157
|
|
|
148
|
-
## Expiration
|
|
158
|
+
## Expiration Warnings
|
|
149
159
|
|
|
150
|
-
|
|
151
|
-
To specify an expiration date for an environment variable, add a comment in the following format on the same line this an example of a .env.example file:
|
|
160
|
+
Add expiration metadata to variables:
|
|
152
161
|
|
|
153
162
|
```bash
|
|
154
|
-
# @expire
|
|
163
|
+
# @expire 2025-12-31
|
|
155
164
|
API_TOKEN=
|
|
156
165
|
```
|
|
157
166
|
|
|
158
|
-
|
|
167
|
+
---
|
|
159
168
|
|
|
160
|
-
## Inconsistent
|
|
169
|
+
## Inconsistent Naming Warnings
|
|
161
170
|
|
|
162
|
-
|
|
163
|
-
To disable this behavior, use the `--no-inconsistent-naming-warnings` flags respectively, or set it to false in the config file:
|
|
171
|
+
Warns about inconsistent keys like `APIKEY` vs `API_KEY`.
|
|
164
172
|
|
|
165
|
-
|
|
166
|
-
"inconsistentNamingWarnings": false
|
|
167
|
-
```
|
|
173
|
+
Disable via config:
|
|
168
174
|
|
|
169
|
-
|
|
175
|
+
```json
|
|
176
|
+
"inconsistentNamingWarnings": false
|
|
177
|
+
```
|
|
170
178
|
|
|
171
|
-
|
|
179
|
+
---
|
|
172
180
|
|
|
173
|
-
|
|
181
|
+
## t3-env Integration
|
|
174
182
|
|
|
175
|
-
|
|
176
|
-
- API_URL (src\index.ts:25) → Variable "API_URL" is not defined in t3-env schema. Add it to either server or client schema.
|
|
177
|
-
```
|
|
183
|
+
Validates usage against t3-env schemas.
|
|
178
184
|
|
|
179
|
-
|
|
185
|
+
Disable if needed:
|
|
180
186
|
|
|
181
|
-
```
|
|
187
|
+
```json
|
|
182
188
|
"t3env": false
|
|
183
189
|
```
|
|
184
190
|
|
|
185
|
-
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Show / Hide Output Options
|
|
186
194
|
|
|
187
|
-
|
|
195
|
+
Disable unused variables list:
|
|
188
196
|
|
|
189
|
-
To disable this behavior, use the `--no-show-unused` flag:
|
|
190
197
|
```bash
|
|
191
198
|
dotenv-diff --no-show-unused
|
|
192
199
|
```
|
|
193
|
-
This will prevent the tool from listing variables that are defined in `.env` but not used in your codebase.
|
|
194
|
-
|
|
195
|
-
## Show statistics
|
|
196
200
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
To disable this behavior, use the `--no-show-stats` flag:
|
|
201
|
+
Disable statistics:
|
|
200
202
|
|
|
201
203
|
```bash
|
|
202
204
|
dotenv-diff --no-show-stats
|
|
203
205
|
```
|
|
204
|
-
This will prevent the tool from displaying statistics about the scan.
|
|
205
206
|
|
|
206
|
-
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## File Scanning Options
|
|
207
210
|
|
|
208
|
-
|
|
211
|
+
Include or exclude files:
|
|
209
212
|
|
|
210
213
|
```bash
|
|
211
214
|
dotenv-diff --include-files '**/*.js,**/*.ts' --exclude-files '**/*.spec.ts'
|
|
212
215
|
```
|
|
213
216
|
|
|
214
|
-
|
|
215
|
-
The --include-files and --exclude-files options let you refine this list to focus on specific file types or directories.
|
|
216
|
-
|
|
217
|
-
### Override with `--files`
|
|
217
|
+
Override defaults:
|
|
218
218
|
|
|
219
|
-
If you want to completely override the default include/exclude logic (for example, to only include specific files), you can use --files:
|
|
220
219
|
```bash
|
|
221
220
|
dotenv-diff --files '**/*.js'
|
|
222
221
|
```
|
|
223
222
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
dotenv-diff --check-values --compare
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
When using the `--check-values` option together with `--compare`, the tool will also compare the actual values of the variables in `.env` and `.env.example`. It will report any mismatches found and it also compares values if .env.example defines a non-empty expected value.
|
|
231
|
-
|
|
232
|
-
## Ignore specific keys
|
|
233
|
-
|
|
234
|
-
Exclude certain keys from the comparison using `--ignore` for exact names or `--ignore-regex` for patterns:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
dotenv-diff --ignore API_KEY,SESSION_ID
|
|
238
|
-
dotenv-diff --ignore-regex '^SECRET_'
|
|
239
|
-
dotenv-diff --ignore API_KEY --ignore-regex '^SECRET_'
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
Ignored keys are removed from all warnings and do not affect the exit code.
|
|
243
|
-
|
|
244
|
-
## Uppercase environment variable keys
|
|
245
|
-
|
|
246
|
-
`dotenv-diff` can detect environment variable keys that are not in uppercase format, which is a common convention for environment variables.
|
|
247
|
-
|
|
248
|
-
If any non-uppercase keys are found, a warning will be displayed showing the suggested uppercase version.
|
|
249
|
-
You can disable this check using the `--no-uppercase-keys` flag (enabled by default):
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
dotenv-diff --no-uppercase-keys
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## Create a sample config file with --init
|
|
256
|
-
|
|
257
|
-
You can create a sample `dotenv-diff.config.json` file in your current directory using the `--init` flag:
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
dotenv-diff --init
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
This will generate a `dotenv-diff.config.json` file with default settings. If the file already exists, it will notify you and do nothing.
|
|
264
|
-
|
|
265
|
-
The generated config file could look like this:
|
|
266
|
-
|
|
267
|
-
```json
|
|
268
|
-
{
|
|
269
|
-
"strict": false,
|
|
270
|
-
"example": ".env.example",
|
|
271
|
-
"ignore": [
|
|
272
|
-
"NODE_ENV",
|
|
273
|
-
"VITE_MODE"
|
|
274
|
-
],
|
|
275
|
-
"ignoreUrls": [
|
|
276
|
-
"https://example.com"
|
|
277
|
-
]
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
This allows you to customize the behavior of `dotenv-diff` without needing to pass all options via the command line.
|
|
282
|
-
|
|
283
|
-
## Output format in JSON
|
|
284
|
-
|
|
285
|
-
You can output the results in JSON format using the `--json` option:
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
dotenv-diff --json
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Disable colored output
|
|
292
|
-
|
|
293
|
-
By default, `dotenv-diff` uses colored output to enhance readability.
|
|
223
|
+
---
|
|
294
224
|
|
|
295
|
-
|
|
225
|
+
## Compare Environment Files
|
|
296
226
|
|
|
297
227
|
```bash
|
|
298
|
-
dotenv-diff --
|
|
228
|
+
dotenv-diff --compare
|
|
299
229
|
```
|
|
300
230
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
The `--compare` flag will compare all matching .env* files in your project against .env.example, including:
|
|
304
|
-
- `.env`
|
|
305
|
-
- `.env.local`
|
|
306
|
-
- `.env.production`
|
|
307
|
-
- Any other .env.* file
|
|
308
|
-
|
|
309
|
-
Override the autoscan and compare exactly two files:
|
|
231
|
+
Compare specific files:
|
|
310
232
|
|
|
311
233
|
```bash
|
|
312
234
|
dotenv-diff --compare --env .env.local --example .env.example.local
|
|
313
235
|
```
|
|
314
236
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
When using the `--compare` flag, `dotenv-diff` warns when a `.env*` file contains the same key multiple times. The last occurrence wins. Suppress these warnings with `--allow-duplicates`.
|
|
318
|
-
|
|
319
|
-
Use the `--only` flag to restrict the comparison to specific categories. For example:
|
|
320
|
-
|
|
321
|
-
```bash
|
|
322
|
-
dotenv-diff --only missing,extra
|
|
323
|
-
```
|
|
324
|
-
This will only show missing and extra keys, ignoring empty, mismatched, duplicate keys and so on.
|
|
325
|
-
|
|
326
|
-
## Automatically create missing files
|
|
237
|
+
---
|
|
327
238
|
|
|
328
|
-
|
|
239
|
+
## Automatically Create Missing Files
|
|
329
240
|
|
|
330
241
|
```bash
|
|
331
|
-
dotenv-diff --compare --yes
|
|
242
|
+
dotenv-diff --compare --yes
|
|
332
243
|
```
|
|
333
244
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
### Automatic file creation prompts
|
|
337
|
-
|
|
338
|
-
If one of the files is missing, `dotenv-diff` will ask if you want to create it from the other:
|
|
339
|
-
|
|
340
|
-
- **`.env` missing** → prompts to create it from `.env.example`
|
|
341
|
-
- **`.env.example` missing** → prompts to create it from `.env` *(keys only, no values)*
|
|
245
|
+
---
|
|
342
246
|
|
|
343
|
-
|
|
247
|
+
## Exit Codes
|
|
344
248
|
|
|
345
|
-
|
|
249
|
+
- `0` → No errors
|
|
250
|
+
- `1` → Errors found (or warnings in strict mode)
|
|
346
251
|
|
|
347
|
-
|
|
348
|
-
This helps prevent accidentally committing sensitive environment variables.
|
|
252
|
+
---
|
|
349
253
|
|
|
350
254
|
## 🤝 Contributing
|
|
351
255
|
|
|
352
|
-
|
|
256
|
+
Issues and pull requests are welcome.
|
|
257
|
+
For large changes, please open an issue first.
|
|
258
|
+
|
|
259
|
+
---
|
|
353
260
|
|
|
354
261
|
## License
|
|
355
262
|
|
|
356
|
-
MIT
|
|
263
|
+
Licensed under the [MIT](LICENSE) license.
|
|
357
264
|
|
|
358
|
-
|
|
265
|
+
Created by [chrilleweb](https://github.com/chrilleweb)
|
package/dist/src/cli/run.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { normalizeOptions } from '../config/options.js';
|
|
4
4
|
import { discoverEnvFiles } from '../services/envDiscovery.js';
|
|
5
|
-
import { pairWithExample } from '../
|
|
5
|
+
import { pairWithExample } from '../core/envPairing.js';
|
|
6
6
|
import { ensureFilesOrPrompt } from '../services/ensureFilesOrPrompt.js';
|
|
7
7
|
import { compareMany } from '../commands/compare.js';
|
|
8
8
|
import {} from '../config/types.js';
|
|
@@ -41,7 +41,11 @@ export async function run(program) {
|
|
|
41
41
|
* @returns void
|
|
42
42
|
*/
|
|
43
43
|
async function runScanMode(opts) {
|
|
44
|
-
const envPath = opts.envFlag
|
|
44
|
+
const envPath = typeof opts.envFlag === 'string'
|
|
45
|
+
? opts.envFlag
|
|
46
|
+
: fs.existsSync('.env')
|
|
47
|
+
? '.env'
|
|
48
|
+
: undefined;
|
|
45
49
|
const { exitWithError } = await scanUsage({
|
|
46
50
|
cwd: opts.cwd,
|
|
47
51
|
include: opts.includeFiles,
|
package/dist/src/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ import type { ComparisonOptions, FilePair, ComparisonResult } from '../config/ty
|
|
|
5
5
|
* @param opts - The comparison options.
|
|
6
6
|
* @returns An object indicating the overall comparison results.
|
|
7
7
|
*/
|
|
8
|
-
export declare function compareMany(pairs: FilePair[], opts: ComparisonOptions): Promise<ComparisonResult>;
|
|
8
|
+
export declare function compareMany(pairs: FilePair[], opts: Readonly<ComparisonOptions>): Promise<ComparisonResult>;
|
|
9
9
|
//# sourceMappingURL=compare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AA2G5B;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAoK3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAUjE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,IAAuB;IAEvB,MAAM,OAAO,GAA8B,IAAI,CAAC,IAAI,EAAE,MAAM;QAC1D,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnE,CAAC;
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,8 +37,6 @@ export async function scanUsage(opts) {
|
|
|
37
37
|
// Measure duration
|
|
38
38
|
const endTime = performance.now();
|
|
39
39
|
scanResult.stats.duration = (endTime - startTime) / 1000; // Convert to seconds
|
|
40
|
-
// Recalculate stats after filtering
|
|
41
|
-
calculateStats(scanResult);
|
|
42
40
|
// If user explicitly passed --example flag, but the file doesn't exist:
|
|
43
41
|
if (printMissingExample(opts)) {
|
|
44
42
|
return { exitWithError: true };
|
|
@@ -103,6 +101,8 @@ export async function scanUsage(opts) {
|
|
|
103
101
|
}
|
|
104
102
|
}
|
|
105
103
|
}
|
|
104
|
+
// Recalculate stats after filtering
|
|
105
|
+
calculateStats(scanResult);
|
|
106
106
|
// JSON output
|
|
107
107
|
if (opts.json) {
|
|
108
108
|
const jsonOutput = createJsonOutput(scanResult, opts, comparedAgainst, Object.keys(envVariables).length);
|
|
@@ -185,10 +185,23 @@ function skipCommentedUsages(usages) {
|
|
|
185
185
|
*/
|
|
186
186
|
function calculateStats(scanResult) {
|
|
187
187
|
const uniqueVariables = new Set(scanResult.used.map((u) => u.variable)).size;
|
|
188
|
+
const warningsCount = (scanResult.frameworkWarnings?.length ?? 0) +
|
|
189
|
+
(scanResult.exampleWarnings?.length ?? 0) +
|
|
190
|
+
(scanResult.t3EnvWarnings?.length ?? 0) +
|
|
191
|
+
(scanResult.logged?.length ?? 0) +
|
|
192
|
+
(scanResult.uppercaseWarnings?.length ?? 0) +
|
|
193
|
+
(scanResult.expireWarnings?.length ?? 0) +
|
|
194
|
+
(scanResult.inconsistentNamingWarnings?.length ?? 0) +
|
|
195
|
+
(scanResult.secrets?.length ?? 0) +
|
|
196
|
+
(scanResult.missing.length ?? 0) +
|
|
197
|
+
(scanResult.unused.length ?? 0) +
|
|
198
|
+
(scanResult.duplicates?.env?.length ?? 0) +
|
|
199
|
+
(scanResult.duplicates?.example?.length ?? 0);
|
|
188
200
|
scanResult.stats = {
|
|
189
201
|
filesScanned: scanResult.stats.filesScanned,
|
|
190
202
|
totalUsages: scanResult.used.length,
|
|
191
203
|
uniqueVariables,
|
|
204
|
+
warningsCount: warningsCount,
|
|
192
205
|
duration: scanResult.stats.duration,
|
|
193
206
|
};
|
|
194
207
|
return scanResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAO9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAsB;IAEtB,wBAAwB;IACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,oBAAoB;IACpB,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1C,8BAA8B;IAC9B,UAAU,CAAC,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEvD,mBAAmB;IACnB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,qBAAqB;IAE/E,
|
|
1
|
+
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"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"}
|