dotenv-diff 2.3.6 → 2.3.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.
- package/README.md +35 -0
- package/dist/src/cli/program.d.ts.map +1 -1
- package/dist/src/cli/program.js +6 -1
- package/dist/src/cli/program.js.map +1 -1
- package/dist/src/cli/run.d.ts +1 -0
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +22 -0
- package/dist/src/cli/run.js.map +1 -1
- package/dist/src/commands/compare.d.ts.map +1 -1
- package/dist/src/commands/compare.js +3 -1
- package/dist/src/commands/compare.js.map +1 -1
- package/dist/src/commands/init.d.ts +2 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +11 -6
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/scanUsage.d.ts +14 -9
- package/dist/src/commands/scanUsage.d.ts.map +1 -1
- package/dist/src/commands/scanUsage.js +24 -10
- package/dist/src/commands/scanUsage.js.map +1 -1
- package/dist/src/config/loadConfig.d.ts +1 -1
- package/dist/src/config/loadConfig.d.ts.map +1 -1
- package/dist/src/config/loadConfig.js +5 -5
- package/dist/src/config/loadConfig.js.map +1 -1
- package/dist/src/config/options.d.ts.map +1 -1
- package/dist/src/config/options.js +7 -1
- package/dist/src/config/options.js.map +1 -1
- package/dist/src/config/types.d.ts +26 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/config/types.js.map +1 -1
- package/dist/src/core/computeHealthScore.d.ts +8 -0
- package/dist/src/core/computeHealthScore.d.ts.map +1 -0
- package/dist/src/core/computeHealthScore.js +28 -0
- package/dist/src/core/computeHealthScore.js.map +1 -0
- package/dist/src/core/detectUppercaseKeys.d.ts +9 -0
- package/dist/src/core/detectUppercaseKeys.d.ts.map +1 -0
- package/dist/src/core/detectUppercaseKeys.js +28 -0
- package/dist/src/core/detectUppercaseKeys.js.map +1 -0
- package/dist/src/core/determineComparisonFile.js.map +1 -1
- package/dist/src/core/exampleSecretDetector.d.ts +6 -1
- package/dist/src/core/exampleSecretDetector.d.ts.map +1 -1
- package/dist/src/core/exampleSecretDetector.js +19 -14
- package/dist/src/core/exampleSecretDetector.js.map +1 -1
- package/dist/src/core/fixEnv.d.ts.map +1 -1
- package/dist/src/core/fixEnv.js +1 -1
- package/dist/src/core/fixEnv.js.map +1 -1
- package/dist/src/core/frameworkDetector.d.ts +2 -0
- package/dist/src/core/frameworkDetector.d.ts.map +1 -1
- package/dist/src/core/frameworkDetector.js +3 -1
- package/dist/src/core/frameworkDetector.js.map +1 -1
- package/dist/src/core/frameworkValidator.d.ts +6 -0
- package/dist/src/core/frameworkValidator.d.ts.map +1 -1
- package/dist/src/core/frameworkValidator.js +7 -1
- package/dist/src/core/frameworkValidator.js.map +1 -1
- package/dist/src/core/frameworks/index.d.ts +2 -2
- package/dist/src/core/frameworks/index.js +2 -2
- package/dist/src/core/frameworks/nextJsRules.d.ts +2 -2
- package/dist/src/core/frameworks/nextJsRules.d.ts.map +1 -1
- package/dist/src/core/frameworks/nextJsRules.js +17 -17
- package/dist/src/core/frameworks/nextJsRules.js.map +1 -1
- package/dist/src/core/frameworks/sveltekitRules.d.ts.map +1 -1
- package/dist/src/core/frameworks/sveltekitRules.js.map +1 -1
- package/dist/src/core/processComparisonFile.d.ts +5 -1
- package/dist/src/core/processComparisonFile.d.ts.map +1 -1
- package/dist/src/core/processComparisonFile.js +32 -16
- package/dist/src/core/processComparisonFile.js.map +1 -1
- package/dist/src/core/scanFile.d.ts.map +1 -1
- package/dist/src/core/scanFile.js +10 -0
- package/dist/src/core/scanFile.js.map +1 -1
- package/dist/src/core/scanJsonOutput.d.ts.map +1 -1
- package/dist/src/core/scanJsonOutput.js +3 -0
- 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.map +1 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/codeBaseScanner.d.ts.map +1 -1
- package/dist/src/services/codeBaseScanner.js +2 -0
- package/dist/src/services/codeBaseScanner.js.map +1 -1
- package/dist/src/services/ensureFilesOrPrompt.d.ts +15 -12
- package/dist/src/services/ensureFilesOrPrompt.d.ts.map +1 -1
- package/dist/src/services/ensureFilesOrPrompt.js.map +1 -1
- package/dist/src/services/envDiscovery.d.ts +12 -7
- package/dist/src/services/envDiscovery.d.ts.map +1 -1
- package/dist/src/services/envDiscovery.js.map +1 -1
- package/dist/src/services/fileWalker.d.ts.map +1 -1
- package/dist/src/services/fileWalker.js +5 -0
- package/dist/src/services/fileWalker.js.map +1 -1
- package/dist/src/services/git.d.ts +9 -3
- package/dist/src/services/git.d.ts.map +1 -1
- package/dist/src/services/git.js +17 -3
- package/dist/src/services/git.js.map +1 -1
- package/dist/src/services/scanOutputToConsole.d.ts.map +1 -1
- package/dist/src/services/scanOutputToConsole.js +13 -0
- package/dist/src/services/scanOutputToConsole.js.map +1 -1
- package/dist/src/ui/compare/printHeader.d.ts.map +1 -1
- package/dist/src/ui/compare/printIssues.d.ts.map +1 -1
- package/dist/src/ui/compare/printStats.d.ts +2 -1
- package/dist/src/ui/compare/printStats.d.ts.map +1 -1
- package/dist/src/ui/scan/printConsolelogWarning.d.ts +10 -0
- package/dist/src/ui/scan/printConsolelogWarning.d.ts.map +1 -0
- package/dist/src/ui/scan/printConsolelogWarning.js +36 -0
- package/dist/src/ui/scan/printConsolelogWarning.js.map +1 -0
- package/dist/src/ui/scan/printCspWarning.d.ts +3 -0
- package/dist/src/ui/scan/printCspWarning.d.ts.map +1 -1
- package/dist/src/ui/scan/printCspWarning.js +3 -0
- package/dist/src/ui/scan/printCspWarning.js.map +1 -1
- package/dist/src/ui/scan/printExampleWarnings.d.ts.map +1 -1
- package/dist/src/ui/scan/printExampleWarnings.js.map +1 -1
- package/dist/src/ui/scan/printFrameworkWarnings.d.ts.map +1 -1
- package/dist/src/ui/scan/printHealthScore.d.ts +8 -0
- package/dist/src/ui/scan/printHealthScore.d.ts.map +1 -0
- package/dist/src/ui/scan/printHealthScore.js +30 -0
- package/dist/src/ui/scan/printHealthScore.js.map +1 -0
- package/dist/src/ui/scan/printMissing.d.ts.map +1 -1
- package/dist/src/ui/scan/printMissing.js +2 -1
- package/dist/src/ui/scan/printMissing.js.map +1 -1
- package/dist/src/ui/scan/printSecrets.d.ts +3 -0
- package/dist/src/ui/scan/printSecrets.d.ts.map +1 -1
- package/dist/src/ui/scan/printSecrets.js +15 -13
- package/dist/src/ui/scan/printSecrets.js.map +1 -1
- package/dist/src/ui/scan/printStats.d.ts +2 -1
- package/dist/src/ui/scan/printStats.d.ts.map +1 -1
- package/dist/src/ui/scan/printStats.js.map +1 -1
- package/dist/src/ui/scan/printUppercaseWarning.d.ts +10 -0
- package/dist/src/ui/scan/printUppercaseWarning.d.ts.map +1 -0
- package/dist/src/ui/scan/printUppercaseWarning.js +19 -0
- package/dist/src/ui/scan/printUppercaseWarning.js.map +1 -0
- package/dist/src/ui/shared/printAutoFix.d.ts +2 -1
- package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -1
- package/dist/src/ui/shared/printConfigStatus.d.ts +2 -0
- package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -1
- package/dist/src/ui/shared/printConfigStatus.js +2 -0
- package/dist/src/ui/shared/printConfigStatus.js.map +1 -1
- package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -1
- package/dist/src/ui/shared/printFixTips.d.ts.map +1 -1
- package/dist/src/ui/shared/printInitStatus.d.ts +4 -0
- package/dist/src/ui/shared/printInitStatus.d.ts.map +1 -1
- package/dist/src/ui/shared/printInitStatus.js +4 -0
- package/dist/src/ui/shared/printInitStatus.js.map +1 -1
- package/dist/src/ui/shared/printOptionErrors.d.ts +1 -0
- package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -1
- package/dist/src/ui/shared/printOptionErrors.js +1 -0
- package/dist/src/ui/shared/printOptionErrors.js.map +1 -1
- package/dist/src/ui/shared/printStrictModeError.d.ts +4 -1
- package/dist/src/ui/shared/printStrictModeError.d.ts.map +1 -1
- package/dist/src/ui/shared/printStrictModeError.js +4 -0
- package/dist/src/ui/shared/printStrictModeError.js.map +1 -1
- package/dist/src/ui/shared/setupGlobalConfig.d.ts.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -110,6 +110,18 @@ Potential real secrets found in .env.example:
|
|
|
110
110
|
|
|
111
111
|
This helps you avoid accidentally committing sensitive information through your example files.
|
|
112
112
|
|
|
113
|
+
## Accidentally logging environment variables to console?
|
|
114
|
+
|
|
115
|
+
`dotenv-diff` can also detect when environment variables are being logged to the console in your codebase.
|
|
116
|
+
|
|
117
|
+
For example, if you have code like this:
|
|
118
|
+
|
|
119
|
+
```js
|
|
120
|
+
console.log(process.env.API_KEY);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This will trigger a warning.
|
|
124
|
+
|
|
113
125
|
## ignore specific warnings
|
|
114
126
|
|
|
115
127
|
You can use the `dotenv-diff-ignore` comment to ignore specific lines from secret detection. For example:
|
|
@@ -121,6 +133,18 @@ const ignoredEntropy = "AIzaSyA-1234567890abcdefgHIJKLMNOpqrstuv" // dotenv-diff
|
|
|
121
133
|
|
|
122
134
|
This will prevent `dotenv-diff` from flagging the line as a potential secret.
|
|
123
135
|
|
|
136
|
+
## Healthscore
|
|
137
|
+
|
|
138
|
+
`dotenv-diff` includes by default a health score feature that provides an overall assessment of your project's environment variable management.
|
|
139
|
+
|
|
140
|
+
The health score is calculated based on several factors, including:
|
|
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).
|
|
147
|
+
|
|
124
148
|
## Show unused variables
|
|
125
149
|
|
|
126
150
|
As default, `dotenv-diff` will list variables that are defined in `.env` but never used in your codebase.
|
|
@@ -180,6 +204,17 @@ dotenv-diff --ignore API_KEY --ignore-regex '^SECRET_'
|
|
|
180
204
|
|
|
181
205
|
Ignored keys are removed from all warnings and do not affect the exit code.
|
|
182
206
|
|
|
207
|
+
## Uppercase environment variable keys
|
|
208
|
+
|
|
209
|
+
`dotenv-diff` can detect environment variable keys that are not in uppercase format, which is a common convention for environment variables.
|
|
210
|
+
|
|
211
|
+
If any non-uppercase keys are found, a warning will be displayed showing the suggested uppercase version.
|
|
212
|
+
You can disable this check using the `--no-uppercase-keys` flag (enabled by default):
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
dotenv-diff --no-uppercase-keys
|
|
216
|
+
```
|
|
217
|
+
|
|
183
218
|
## Create a sample config file with --init
|
|
184
219
|
|
|
185
220
|
You can create a sample `dotenv-diff.config.json` file in your current directory using the `--init` flag:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,aAAa,YAqE5B"}
|
package/dist/src/cli/program.js
CHANGED
|
@@ -17,6 +17,7 @@ export function createProgram() {
|
|
|
17
17
|
.option('--ignore-regex <pattern>', 'Regex pattern to ignore matching keys')
|
|
18
18
|
.option('--fix', 'Automatically fix common issues: remove duplicates, add missing keys')
|
|
19
19
|
.option('--json', 'Output results in JSON format')
|
|
20
|
+
.option('--color', 'Enable colored output')
|
|
20
21
|
.option('--no-color', 'Disable colored output')
|
|
21
22
|
.option('--only <list>', 'Comma-separated categories to only run (missing,extra,empty,mismatch,duplicate,gitignore)')
|
|
22
23
|
.option('--scan-usage', 'Scan codebase for environment variable usage')
|
|
@@ -24,12 +25,16 @@ export function createProgram() {
|
|
|
24
25
|
.option('--include-files <patterns>', 'Comma-separated file patterns to ADD to default scan patterns (extends default)')
|
|
25
26
|
.option('--files <patterns>', 'Comma-separated file patterns to scan (completely replaces default patterns)')
|
|
26
27
|
.option('--exclude-files <patterns>', 'Comma-separated file patterns to exclude from scan')
|
|
28
|
+
.option('--show-unused', 'List variables that are defined in .env but not used in code')
|
|
27
29
|
.option('--no-show-unused', 'Do not list variables that are defined in .env but not used in code')
|
|
30
|
+
.option('--show-stats', 'Show statistics')
|
|
28
31
|
.option('--no-show-stats', 'Do not show statistics')
|
|
29
32
|
.option('--strict', 'Enable fail on warnings')
|
|
33
|
+
.option('--secrets', 'Enable secret detection during scan (enabled by default)')
|
|
30
34
|
.option('--no-secrets', 'Disable secret detection during scan (enabled by default)')
|
|
31
35
|
.option('--ignore-urls <list>', 'Comma-separated URLs to ignore in secret scan')
|
|
32
|
-
.option('--
|
|
36
|
+
.option('--uppercase-keys', 'Enable uppercase key validation (enabled by default)')
|
|
37
|
+
.option('--no-uppercase-keys', 'Disable uppercase key validation')
|
|
33
38
|
.option('--init', 'Create a sample dotenv-diff.config.json file');
|
|
34
39
|
}
|
|
35
40
|
//# sourceMappingURL=program.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,EAAE;SACjB,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,MAAM,EAAE,8CAA8C,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;SACtE,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CACL,oBAAoB,EACpB,iDAAiD,CAClD;SACA,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;SACnE,MAAM,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;SAC3E,MAAM,CACL,OAAO,EACP,sEAAsE,CACvE;SACA,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC;SAC9C,MAAM,CACL,eAAe,EACf,2FAA2F,CAC5F;SACA,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;SACtE,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;SAC1D,MAAM,CACL,4BAA4B,EAC5B,iFAAiF,CAClF;SACA,MAAM,CACL,oBAAoB,EACpB,8EAA8E,CAC/E;SACA,MAAM,CACL,4BAA4B,EAC5B,oDAAoD,CACrD;SACA,MAAM,CACL,kBAAkB,EAClB,qEAAqE,CACtE;SACA,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CACL,cAAc,EACd,2DAA2D,CAC5D;SACA,MAAM,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,EAAE;SACjB,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,MAAM,EAAE,8CAA8C,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;SACtE,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CACL,oBAAoB,EACpB,iDAAiD,CAClD;SACA,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;SACnE,MAAM,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;SAC3E,MAAM,CACL,OAAO,EACP,sEAAsE,CACvE;SACA,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC;SAC1C,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC;SAC9C,MAAM,CACL,eAAe,EACf,2FAA2F,CAC5F;SACA,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;SACtE,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;SAC1D,MAAM,CACL,4BAA4B,EAC5B,iFAAiF,CAClF;SACA,MAAM,CACL,oBAAoB,EACpB,8EAA8E,CAC/E;SACA,MAAM,CACL,4BAA4B,EAC5B,oDAAoD,CACrD;SACA,MAAM,CACL,eAAe,EACf,8DAA8D,CAC/D;SACA,MAAM,CACL,kBAAkB,EAClB,qEAAqE,CACtE;SACA,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CACL,WAAW,EACX,0DAA0D,CAC3D;SACA,MAAM,CACL,cAAc,EACd,2DAA2D,CAC5D;SACA,MAAM,CACL,sBAAsB,EACtB,+CAA+C,CAChD;SACA,MAAM,CACL,kBAAkB,EAClB,sDAAsD,CACvD;SACA,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC,CAAC;AACtE,CAAC"}
|
package/dist/src/cli/run.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4OzC;;;;GAIG;AACH,wBAAsB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzD"}
|
package/dist/src/cli/run.js
CHANGED
|
@@ -12,6 +12,8 @@ import { setupGlobalConfig } from '../ui/shared/setupGlobalConfig.js';
|
|
|
12
12
|
import { loadConfig } from '../config/loadConfig.js';
|
|
13
13
|
/**
|
|
14
14
|
* Run scan-usage mode (default behavior)
|
|
15
|
+
* @param opts - Normalized options
|
|
16
|
+
* @returns void
|
|
15
17
|
*/
|
|
16
18
|
async function runScanMode(opts) {
|
|
17
19
|
const envPath = opts.envFlag || (fs.existsSync('.env') ? '.env' : undefined);
|
|
@@ -32,12 +34,15 @@ async function runScanMode(opts) {
|
|
|
32
34
|
strict: opts.strict ?? false,
|
|
33
35
|
ignoreUrls: opts.ignoreUrls ?? [],
|
|
34
36
|
noCompare: opts.noCompare ?? false,
|
|
37
|
+
uppercaseKeys: opts.uppercaseKeys ?? true,
|
|
35
38
|
...(opts.files ? { files: opts.files } : {}),
|
|
36
39
|
});
|
|
37
40
|
process.exit(exitWithError ? 1 : 0);
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Run compare mode
|
|
44
|
+
* @param opts - Normalized options
|
|
45
|
+
* @returns void
|
|
41
46
|
*/
|
|
42
47
|
async function runCompareMode(opts) {
|
|
43
48
|
// Handle direct file comparison (both --env and --example specified)
|
|
@@ -50,6 +55,8 @@ async function runCompareMode(opts) {
|
|
|
50
55
|
}
|
|
51
56
|
/**
|
|
52
57
|
* Compare two specific files directly
|
|
58
|
+
* @param opts - Normalized options
|
|
59
|
+
* @returns void
|
|
53
60
|
*/
|
|
54
61
|
async function runDirectFileComparison(opts) {
|
|
55
62
|
const envExists = fs.existsSync(opts.envFlag);
|
|
@@ -73,6 +80,8 @@ async function runDirectFileComparison(opts) {
|
|
|
73
80
|
}
|
|
74
81
|
/**
|
|
75
82
|
* Compare using auto-discovery
|
|
83
|
+
* @param opts - Normalized options
|
|
84
|
+
* @returns void
|
|
76
85
|
*/
|
|
77
86
|
async function runAutoDiscoveryComparison(opts) {
|
|
78
87
|
// Discover available env files
|
|
@@ -102,6 +111,10 @@ async function runAutoDiscoveryComparison(opts) {
|
|
|
102
111
|
}
|
|
103
112
|
/**
|
|
104
113
|
* Handle missing files in CI vs interactive mode
|
|
114
|
+
* @param opts - Normalized options
|
|
115
|
+
* @param envFlag - Path to the .env file
|
|
116
|
+
* @param exampleFlag - Path to the example file
|
|
117
|
+
* @returns Whether the process should exit after handling missing files
|
|
105
118
|
*/
|
|
106
119
|
async function handleMissingFiles(opts, envFlag, exampleFlag) {
|
|
107
120
|
const envExists = fs.existsSync(envFlag);
|
|
@@ -130,6 +143,9 @@ async function handleMissingFiles(opts, envFlag, exampleFlag) {
|
|
|
130
143
|
}
|
|
131
144
|
/**
|
|
132
145
|
* Build options object for compareMany function
|
|
146
|
+
* @param opts - Normalized options
|
|
147
|
+
* @param report - Array to collect JSON report entries
|
|
148
|
+
* @returns ComparisonOptions object
|
|
133
149
|
*/
|
|
134
150
|
function buildCompareOptions(opts, report) {
|
|
135
151
|
return {
|
|
@@ -141,6 +157,7 @@ function buildCompareOptions(opts, report) {
|
|
|
141
157
|
ignore: opts.ignore,
|
|
142
158
|
ignoreRegex: opts.ignoreRegex,
|
|
143
159
|
showStats: opts.showStats,
|
|
160
|
+
uppercaseKeys: opts.uppercaseKeys,
|
|
144
161
|
collect: (e) => report.push(e),
|
|
145
162
|
...(opts.only ? { only: opts.only } : {}),
|
|
146
163
|
};
|
|
@@ -148,6 +165,7 @@ function buildCompareOptions(opts, report) {
|
|
|
148
165
|
/**
|
|
149
166
|
* Handle the --init flag to create a sample config file
|
|
150
167
|
* @param cliOptions - The CLI options parsed by commander
|
|
168
|
+
* @returns Whether the init process was handled
|
|
151
169
|
*/
|
|
152
170
|
async function handleInitFlag(cliOptions) {
|
|
153
171
|
if (cliOptions.init) {
|
|
@@ -159,6 +177,9 @@ async function handleInitFlag(cliOptions) {
|
|
|
159
177
|
}
|
|
160
178
|
/**
|
|
161
179
|
* Output results and exit with appropriate code
|
|
180
|
+
* @param report - The comparison report entries
|
|
181
|
+
* @param opts - Normalized options
|
|
182
|
+
* @param exitWithError - Whether to exit with an error code
|
|
162
183
|
*/
|
|
163
184
|
function outputResults(report, opts, exitWithError) {
|
|
164
185
|
if (opts.json) {
|
|
@@ -169,6 +190,7 @@ function outputResults(report, opts, exitWithError) {
|
|
|
169
190
|
/**
|
|
170
191
|
* Run the CLI program
|
|
171
192
|
* @param program The commander program instance
|
|
193
|
+
* @returns void
|
|
172
194
|
*/
|
|
173
195
|
export async function run(program) {
|
|
174
196
|
program.parse(process.argv);
|
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,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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;AAoG5B;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoK3B"}
|
|
@@ -58,7 +58,9 @@ function parseAndFilter(envPath, examplePath, opts) {
|
|
|
58
58
|
function findDuplicates(envPath, examplePath, opts, run) {
|
|
59
59
|
if (opts.allowDuplicates || !run('duplicate'))
|
|
60
60
|
return { dupsEnv: [], dupsEx: [] };
|
|
61
|
-
const
|
|
61
|
+
const ignoreSet = new Set(opts.ignore);
|
|
62
|
+
const regexList = opts.ignoreRegex;
|
|
63
|
+
const filterKey = (key) => !ignoreSet.has(key) && !regexList.some((rx) => rx.test(key));
|
|
62
64
|
const dupsEnv = findDuplicateKeys(envPath).filter(({ key }) => filterKey(key));
|
|
63
65
|
const dupsEx = findDuplicateKeys(examplePath).filter(({ key }) => filterKey(key));
|
|
64
66
|
return { dupsEnv, dupsEx };
|
|
@@ -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;
|
|
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;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,OAAe,EACf,WAAmB,EACnB,IAAuB;IAEvB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,iBAAiB,CACnC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CACnC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAClD;QACD,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAClD;QACD,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CACrB,OAAe,EACf,WAAmB,EACnB,IAAuB,EACvB,GAA+B;IAE/B,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;IAEnC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAChC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC5D,SAAS,CAAC,GAAG,CAAC,CACf,CAAC;IACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/D,SAAS,CAAC,GAAG,CAAC,CACf,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAA4B,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAiB,EACjB,IAAuB;IAEvB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,uBAAuB;IACvB,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,MAAM,MAAM,GAA6B;QACvC,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAEvE,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAExE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,6BAA6B;QAC7B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc,CACnE,OAAO,EACP,WAAW,EACX,IAAI,CACL,CAAC;QAEF,aAAa;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnB,kBAAkB;QAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAE5E,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC;YACrC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC;QAET,2BAA2B;QAC3B,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3C,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACrC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACpC,UAAU,EACR,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;YACjE,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9C,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC5C,cAAc;SACf,CAAC;QAEF,2BAA2B;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;YACpC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;YACxC,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC,IAAI,CAAC;YAEP,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAChD,CAAC,CACF,CAAC;YAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW;gBACzC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC,CAAC;YAEN,UAAU,CACR,OAAO,EACP,WAAW,EACX;gBACE,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,cAAc;gBACd,kBAAkB;aACnB,EACD,QAAQ,EACR,IAAI,CAAC,IAAI,IAAI,KAAK,EAClB,IAAI,CAAC,SAAS,IAAI,IAAI,CACvB,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;YAChB,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,mBAAmB;QACnB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAE3E,iCAAiC;QACjC,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,mBAAmB;QACnB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1C,qBAAqB,CAAC;gBACpB,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM;aACvC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,iBAAiB,GAAY,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC;QAEpE,YAAY,CACV,QAAQ,EACR,iBAAiB,EACjB,IAAI,CAAC,IAAI,IAAI,KAAK,EAClB,IAAI,CAAC,GAAG,IAAI,KAAK,CAClB,CAAC;QAEF,8BAA8B;QAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;gBACrC,OAAO;gBACP,WAAW;gBACX,WAAW,EAAE,QAAQ,CAAC,OAAO;gBAC7B,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxC,eAAe,EAAE,iBAAiB;aACnC,CAAC,CAAC;YAEH,YAAY,CACV,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,IAAI,CAAC,IAAI,IAAI,KAAK,EAClB,iBAAiB,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAEtB,qEAAqE;QACrE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Creates a default dotenv-diff.config.json in the current directory if it doesn't exist.
|
|
3
|
-
|
|
3
|
+
* If the file already exists, it notifies the user and does nothing.
|
|
4
|
+
* @returns void
|
|
4
5
|
*/
|
|
5
6
|
export declare function runInit(): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7C"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { printInitSuccess, printInitExists } from '../ui/shared/printInitStatus.js';
|
|
3
|
+
import { printInitSuccess, printInitExists, } from '../ui/shared/printInitStatus.js';
|
|
4
4
|
/**
|
|
5
5
|
* Creates a default dotenv-diff.config.json in the current directory if it doesn't exist.
|
|
6
|
-
|
|
6
|
+
* If the file already exists, it notifies the user and does nothing.
|
|
7
|
+
* @returns void
|
|
7
8
|
*/
|
|
8
9
|
export async function runInit() {
|
|
9
|
-
const
|
|
10
|
-
const configPath = path.join(cwd, 'dotenv-diff.config.json');
|
|
10
|
+
const configPath = path.resolve('dotenv-diff.config.json');
|
|
11
11
|
if (fs.existsSync(configPath)) {
|
|
12
12
|
printInitExists(configPath);
|
|
13
13
|
return;
|
|
@@ -18,7 +18,12 @@ export async function runInit() {
|
|
|
18
18
|
ignore: ['NODE_ENV', 'VITE_MODE'],
|
|
19
19
|
ignoreUrls: ['https://example.com'],
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
try {
|
|
22
|
+
await fs.promises.writeFile(configPath, JSON.stringify(defaultConfig, null, 2), 'utf8');
|
|
23
|
+
printInitSuccess(configPath);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
console.error('Failed to create dotenv-diff.config.json:', err);
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE3D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,eAAe,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QACjC,UAAU,EAAE,CAAC,qBAAqB,CAAC;KACpC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EACtC,MAAM,CACP,CAAC;QAEF,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { ScanUsageOptions } from '../config/types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Scans codebase for environment variable usage and compares with
|
|
3
|
+
* Scans the codebase for environment variable usage and compares it with
|
|
4
|
+
* the selected environment file (.env or .env.example).
|
|
5
|
+
*
|
|
6
|
+
* This function performs the following:
|
|
7
|
+
* - Scans the codebase for used environment variables
|
|
8
|
+
* - Strips out usages found in commented code
|
|
9
|
+
* - Detects missing variables, unused variables, duplicates, and secrets
|
|
10
|
+
* - Determines which file to compare against based on CLI flags and config
|
|
11
|
+
* - Optionally auto-fixes missing keys, duplicate keys, and .gitignore entries
|
|
12
|
+
* - Validates usage patterns for specific frameworks (Next.js, Vite, etc.)
|
|
13
|
+
* - Outputs results in JSON or console format
|
|
14
|
+
* - Returns a boolean indicating whether the process should exit with an error
|
|
15
|
+
*
|
|
4
16
|
* @param {ScanUsageOptions} opts - Scan configuration options
|
|
5
|
-
* @
|
|
6
|
-
* @param {string} [opts.examplePath] - Path to .env.example file for comparison
|
|
7
|
-
* @param {boolean} opts.json - Output as JSON instead of console
|
|
8
|
-
* @param {boolean} opts.showUnused - Show unused variables from .env
|
|
9
|
-
* @param {boolean} opts.showStats - Show detailed statistics
|
|
10
|
-
* @param {boolean} [opts.isCiMode] - Run in CI mode (exit with error code)
|
|
11
|
-
* @param {boolean} [opts.allowDuplicates] - Allow duplicate keys without warning
|
|
12
|
-
* @returns {Promise<{exitWithError: boolean}>} Returns true if missing variables found
|
|
17
|
+
* @returns {Promise<{exitWithError: boolean}>} Whether the caller should exit with a non-zero code.
|
|
13
18
|
*/
|
|
14
19
|
export declare function scanUsage(opts: ScanUsageOptions): Promise<{
|
|
15
20
|
exitWithError: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanUsage.d.ts","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"scanUsage.d.ts","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,oBAAoB,CAAC;AA6E5B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC,CA0HrC"}
|
|
@@ -8,6 +8,7 @@ import { printComparisonError } from '../ui/scan/printComparisonError.js';
|
|
|
8
8
|
import { hasIgnoreComment } from '../core/secretDetectors.js';
|
|
9
9
|
import { frameworkValidator } from '../core/frameworkValidator.js';
|
|
10
10
|
import { detectSecretsInExample } from '../core/exampleSecretDetector.js';
|
|
11
|
+
import { detectUppercaseKeys } from '../core/detectUppercaseKeys.js';
|
|
11
12
|
/**
|
|
12
13
|
* Filters out commented usages from the list.
|
|
13
14
|
* Skipping comments:
|
|
@@ -63,16 +64,21 @@ function calculateStats(scanResult) {
|
|
|
63
64
|
return scanResult;
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
|
-
* Scans codebase for environment variable usage and compares with
|
|
67
|
+
* Scans the codebase for environment variable usage and compares it with
|
|
68
|
+
* the selected environment file (.env or .env.example).
|
|
69
|
+
*
|
|
70
|
+
* This function performs the following:
|
|
71
|
+
* - Scans the codebase for used environment variables
|
|
72
|
+
* - Strips out usages found in commented code
|
|
73
|
+
* - Detects missing variables, unused variables, duplicates, and secrets
|
|
74
|
+
* - Determines which file to compare against based on CLI flags and config
|
|
75
|
+
* - Optionally auto-fixes missing keys, duplicate keys, and .gitignore entries
|
|
76
|
+
* - Validates usage patterns for specific frameworks (Next.js, Vite, etc.)
|
|
77
|
+
* - Outputs results in JSON or console format
|
|
78
|
+
* - Returns a boolean indicating whether the process should exit with an error
|
|
79
|
+
*
|
|
67
80
|
* @param {ScanUsageOptions} opts - Scan configuration options
|
|
68
|
-
* @
|
|
69
|
-
* @param {string} [opts.examplePath] - Path to .env.example file for comparison
|
|
70
|
-
* @param {boolean} opts.json - Output as JSON instead of console
|
|
71
|
-
* @param {boolean} opts.showUnused - Show unused variables from .env
|
|
72
|
-
* @param {boolean} opts.showStats - Show detailed statistics
|
|
73
|
-
* @param {boolean} [opts.isCiMode] - Run in CI mode (exit with error code)
|
|
74
|
-
* @param {boolean} [opts.allowDuplicates] - Allow duplicate keys without warning
|
|
75
|
-
* @returns {Promise<{exitWithError: boolean}>} Returns true if missing variables found
|
|
81
|
+
* @returns {Promise<{exitWithError: boolean}>} Whether the caller should exit with a non-zero code.
|
|
76
82
|
*/
|
|
77
83
|
export async function scanUsage(opts) {
|
|
78
84
|
// Start timing the scan
|
|
@@ -94,6 +100,9 @@ export async function scanUsage(opts) {
|
|
|
94
100
|
if (frameworkWarnings.length > 0) {
|
|
95
101
|
scanResult.frameworkWarnings = frameworkWarnings;
|
|
96
102
|
}
|
|
103
|
+
if (opts.uppercaseKeys) {
|
|
104
|
+
scanResult.uppercaseWarnings = detectUppercaseKeys(scanResult.used);
|
|
105
|
+
}
|
|
97
106
|
// Determine which file to compare against
|
|
98
107
|
const compareFile = determineComparisonFile(opts);
|
|
99
108
|
let envVariables = {};
|
|
@@ -122,6 +131,9 @@ export async function scanUsage(opts) {
|
|
|
122
131
|
removedDuplicates = result.removedDuplicates;
|
|
123
132
|
fixedKeys = result.addedEnv;
|
|
124
133
|
gitignoreUpdated = result.gitignoreUpdated;
|
|
134
|
+
if (result.uppercaseWarnings) {
|
|
135
|
+
scanResult.uppercaseWarnings = result.uppercaseWarnings;
|
|
136
|
+
}
|
|
125
137
|
if (result.exampleFull && result.comparedAgainst === '.env.example') {
|
|
126
138
|
scanResult.exampleWarnings = detectSecretsInExample(result.exampleFull);
|
|
127
139
|
}
|
|
@@ -146,7 +158,9 @@ export async function scanUsage(opts) {
|
|
|
146
158
|
(scanResult.duplicates?.example?.length ?? 0) > 0 ||
|
|
147
159
|
(scanResult.secrets?.length ?? 0) > 0)) ||
|
|
148
160
|
(scanResult.exampleWarnings?.length ?? 0) > 0 ||
|
|
149
|
-
(scanResult.frameworkWarnings?.length ?? 0) > 0
|
|
161
|
+
(scanResult.frameworkWarnings?.length ?? 0) > 0 ||
|
|
162
|
+
(scanResult.logged?.length ?? 0) > 0 ||
|
|
163
|
+
(scanResult.uppercaseWarnings?.length ?? 0) > 0),
|
|
150
164
|
};
|
|
151
165
|
}
|
|
152
166
|
// Console output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAM9D,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;
|
|
1
|
+
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../../src/config/loadConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../../src/config/loadConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAgCtE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import fs from
|
|
2
|
-
import path from
|
|
3
|
-
import { printConfigLoaded, printConfigLoadError } from
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { printConfigLoaded, printConfigLoadError, } from '../ui/shared/printConfigStatus.js';
|
|
4
4
|
/**
|
|
5
5
|
* Loads dotenv-diff.config.json (if present)
|
|
6
6
|
* Searches upward for config
|
|
@@ -13,7 +13,7 @@ export function loadConfig(cliOptions) {
|
|
|
13
13
|
const cwd = process.cwd();
|
|
14
14
|
// Recursive search upwards for dotenv-diff.config.json
|
|
15
15
|
function findConfigFile(dir) {
|
|
16
|
-
const configPath = path.
|
|
16
|
+
const configPath = path.resolve(dir, 'dotenv-diff.config.json');
|
|
17
17
|
if (fs.existsSync(configPath))
|
|
18
18
|
return configPath;
|
|
19
19
|
const parent = path.dirname(dir);
|
|
@@ -25,7 +25,7 @@ export function loadConfig(cliOptions) {
|
|
|
25
25
|
let fileConfig = {};
|
|
26
26
|
if (foundPath) {
|
|
27
27
|
try {
|
|
28
|
-
const raw = fs.readFileSync(foundPath,
|
|
28
|
+
const raw = fs.readFileSync(foundPath, 'utf8');
|
|
29
29
|
fileConfig = JSON.parse(raw);
|
|
30
30
|
printConfigLoaded(foundPath);
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/config/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/config/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,UAA+B;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,uDAAuD;IACvD,SAAS,cAAc,CAAC,GAAW;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,UAAU,GAAwB,EAAE,CAAC;IAEzC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+B,CAAC;YAC3D,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,OAAO;QACL,GAAG,UAAU;QACb,GAAG,UAAU;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAgEpB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAmEzD"}
|
|
@@ -29,6 +29,8 @@ function parseCategories(val, flagName = '--only') {
|
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Parses regex patterns safely, exiting on invalid syntax.
|
|
32
|
+
* @param val - The input value, which can be a string, an array of strings, or undefined.
|
|
33
|
+
* @returns An array of RegExp objects.
|
|
32
34
|
*/
|
|
33
35
|
function parseRegexList(val) {
|
|
34
36
|
const regexList = [];
|
|
@@ -44,6 +46,8 @@ function parseRegexList(val) {
|
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
46
48
|
* Converts flag value to boolean.
|
|
49
|
+
* @param value - The input value.
|
|
50
|
+
* @returns The boolean representation.
|
|
47
51
|
*/
|
|
48
52
|
function toBool(value) {
|
|
49
53
|
return value === true || value === 'true';
|
|
@@ -75,6 +79,7 @@ export function normalizeOptions(raw) {
|
|
|
75
79
|
const files = parseList(raw.files);
|
|
76
80
|
const noCompare = toBool(raw.noCompare);
|
|
77
81
|
const ignoreUrls = parseList(raw.ignoreUrls);
|
|
82
|
+
const uppercaseKeys = raw.uppercaseKeys !== false;
|
|
78
83
|
const cwd = process.cwd();
|
|
79
84
|
const envFlag = typeof raw.env === 'string' ? path.resolve(cwd, raw.env) : undefined;
|
|
80
85
|
const exampleFlag = typeof raw.example === 'string'
|
|
@@ -107,7 +112,8 @@ export function normalizeOptions(raw) {
|
|
|
107
112
|
secrets,
|
|
108
113
|
strict,
|
|
109
114
|
ignoreUrls,
|
|
110
|
-
noCompare
|
|
115
|
+
noCompare,
|
|
116
|
+
uppercaseKeys,
|
|
111
117
|
};
|
|
112
118
|
}
|
|
113
119
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
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
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/config/options.ts"],"names":[],"mappings":"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"}
|