dotenv-diff 2.4.11 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -3
- package/README.md +2 -2
- package/dist/src/cli/run.js +2 -1
- 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 +8 -22
- package/dist/src/commands/compare.js.map +1 -1
- package/dist/src/commands/ensureFilesOrPrompt.d.ts +6 -0
- package/dist/src/commands/ensureFilesOrPrompt.d.ts.map +1 -1
- package/dist/src/commands/ensureFilesOrPrompt.js +1 -1
- package/dist/src/commands/ensureFilesOrPrompt.js.map +1 -1
- package/dist/src/commands/scanUsage.js +1 -1
- package/dist/src/commands/scanUsage.js.map +1 -1
- package/dist/src/config/types.d.ts +18 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/compare/calculateStats.d.ts +19 -0
- package/dist/src/core/compare/calculateStats.d.ts.map +1 -0
- package/dist/src/core/compare/calculateStats.js +27 -0
- package/dist/src/core/compare/calculateStats.js.map +1 -0
- package/dist/src/core/compare/parseAndFilterEnv.d.ts +20 -0
- package/dist/src/core/compare/parseAndFilterEnv.d.ts.map +1 -0
- package/dist/src/core/compare/parseAndFilterEnv.js +22 -0
- package/dist/src/core/compare/parseAndFilterEnv.js.map +1 -0
- package/dist/src/core/compare/updateTotals.d.ts +22 -0
- package/dist/src/core/compare/updateTotals.d.ts.map +1 -0
- package/dist/src/core/compare/updateTotals.js +37 -0
- package/dist/src/core/compare/updateTotals.js.map +1 -0
- package/dist/src/core/defaultExcludeKeys.d.ts +7 -0
- package/dist/src/core/defaultExcludeKeys.d.ts.map +1 -0
- package/dist/src/core/diffEnv.d.ts +9 -0
- package/dist/src/core/diffEnv.d.ts.map +1 -1
- package/dist/src/core/diffEnv.js +2 -2
- package/dist/src/core/diffEnv.js.map +1 -1
- package/dist/src/core/filterIgnoredKeys.d.ts +5 -0
- package/dist/src/core/filterIgnoredKeys.d.ts.map +1 -1
- package/dist/src/core/filterIgnoredKeys.js +14 -1
- package/dist/src/core/filterIgnoredKeys.js.map +1 -1
- package/dist/src/core/fixEnv.d.ts +6 -0
- package/dist/src/core/fixEnv.d.ts.map +1 -1
- package/dist/src/core/fixEnv.js.map +1 -1
- package/dist/src/core/frameworks/nextJsRules.js +2 -2
- 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 +12 -0
- package/dist/src/core/frameworks/sveltekitRules.js.map +1 -1
- package/dist/src/core/patterns.d.ts +4 -5
- package/dist/src/core/patterns.d.ts.map +1 -1
- package/dist/src/core/patterns.js +4 -13
- package/dist/src/core/patterns.js.map +1 -1
- package/dist/src/core/scan/compareScan.d.ts +10 -0
- package/dist/src/core/scan/compareScan.d.ts.map +1 -0
- package/dist/src/core/scan/compareScan.js +19 -0
- package/dist/src/core/scan/compareScan.js.map +1 -0
- package/dist/src/core/scan/computeHealthScore.d.ts +8 -0
- package/dist/src/core/scan/computeHealthScore.d.ts.map +1 -0
- package/dist/src/core/scan/computeHealthScore.js +35 -0
- package/dist/src/core/scan/computeHealthScore.js.map +1 -0
- package/dist/src/core/scan/determineComparisonFile.d.ts +13 -0
- package/dist/src/core/scan/determineComparisonFile.d.ts.map +1 -0
- package/dist/src/core/scan/determineComparisonFile.js +33 -0
- package/dist/src/core/scan/determineComparisonFile.js.map +1 -0
- package/dist/src/core/scan/scanFile.d.ts +10 -0
- package/dist/src/core/scan/scanFile.d.ts.map +1 -0
- package/dist/src/core/scan/scanFile.js +65 -0
- package/dist/src/core/scan/scanFile.js.map +1 -0
- package/dist/src/core/security/secretDetectors.d.ts +3 -0
- package/dist/src/core/security/secretDetectors.d.ts.map +1 -1
- package/dist/src/core/security/secretDetectors.js +14 -36
- package/dist/src/core/security/secretDetectors.js.map +1 -1
- package/dist/src/services/envDiscovery.d.ts.map +1 -1
- package/dist/src/services/envDiscovery.js +9 -1
- package/dist/src/services/envDiscovery.js.map +1 -1
- package/dist/src/services/printScanResult.js +1 -1
- package/dist/src/services/printScanResult.js.map +1 -1
- package/dist/src/services/processComparisonFile.d.ts +3 -0
- package/dist/src/services/processComparisonFile.d.ts.map +1 -1
- package/dist/src/services/processComparisonFile.js +1 -1
- package/dist/src/services/processComparisonFile.js.map +1 -1
- package/dist/src/services/scanCodebase.js +1 -1
- package/dist/src/services/scanCodebase.js.map +1 -1
- package/dist/src/ui/scan/printHeader.js +1 -1
- package/dist/src/ui/scan/printHeader.js.map +1 -1
- package/dist/src/ui/scan/scanJsonOutput.js +1 -1
- package/dist/src/ui/scan/scanJsonOutput.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,15 +7,31 @@ This project follows [Keep a Changelog](https://keepachangelog.com/) and [Semant
|
|
|
7
7
|
|
|
8
8
|
### Added
|
|
9
9
|
|
|
10
|
-
-
|
|
10
|
+
- Added default excluded keys to filterIgnoredKeys (e.g. NODE_ENV, VITE_MODE, etc).
|
|
11
|
+
- Added Warn if PUBLIC_ or VITE_ contains sensitive keywords in sveltekit framework rules.
|
|
11
12
|
|
|
12
13
|
### Changed
|
|
13
14
|
|
|
14
|
-
-
|
|
15
|
+
- Changed text to 'Scanning environment variable usage against:' in scan usage header.
|
|
15
16
|
|
|
16
17
|
### Fixed
|
|
17
18
|
|
|
18
|
-
-
|
|
19
|
+
- Fixed `.env.example` creation prompt not appearing for variant `.env` files (e.g. `.env.local`).
|
|
20
|
+
|
|
21
|
+
## [2.5.0] - 2026-01-24
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- Added default excluded keys to filterIgnoredKeys (e.g. NODE_ENV, VITE_MODE, etc).
|
|
26
|
+
- Added Warn if PUBLIC_ or VITE_ contains sensitive keywords in sveltekit framework rules.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Changed text to 'Scanning environment variable usage against:' in scan usage header.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Fixed `.env.example` creation prompt not appearing for variant `.env` files (e.g. `.env.local`).
|
|
19
35
|
|
|
20
36
|
## [2.4.11] - 2026-01-20
|
|
21
37
|
|
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Scan your entire codebase to detect every environment variable reference. It helps you catch missing, unused, duplicated, and misused variables early, before they cause runtime errors.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
First-class support for SvelteKit and Next.js. 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.
|
|
6
6
|
|
|
7
|
-
](https://codecov.io/gh/Chrilleweb/dotenv-diff)
|
|
8
8
|
[](https://www.npmjs.com/package/dotenv-diff)
|
|
9
9
|
[](https://www.npmjs.com/package/dotenv-diff)
|
|
10
10
|
|
package/dist/src/cli/run.js
CHANGED
|
@@ -84,7 +84,8 @@ async function runCompareMode(opts) {
|
|
|
84
84
|
async function runDirectFileComparison(opts) {
|
|
85
85
|
// Type guard ensures both flags are defined
|
|
86
86
|
if (!opts.envFlag || !opts.exampleFlag) {
|
|
87
|
-
|
|
87
|
+
outputResults([], opts);
|
|
88
|
+
return true; // exitWithError
|
|
88
89
|
}
|
|
89
90
|
const envExists = fs.existsSync(opts.envFlag);
|
|
90
91
|
const exExists = fs.existsSync(opts.exampleFlag);
|
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,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQrD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAgB;IACxC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAElC,qBAAqB;IACrB,IAAI,MAAM,cAAc,CAAC,UAAU,CAAC;QAAE,OAAO;IAE7C,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEhD,2BAA2B;IAC3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAEhD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,+CAA+C;IAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO;QAChC,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,IAAa;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,SAAS,CAAC;QACxC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,YAAY;QAC1B,OAAO,EAAE,IAAI,CAAC,YAAY;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO;QACP,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;KAC5D,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,IAAa;IACzC,qEAAqE;IACrE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,mCAAmC;IACnC,OAAO,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,uBAAuB,CAAC,IAAa;IAClD,4CAA4C;IAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,
|
|
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":"AAKA,OAAO,KAAK,EAEV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EAGX,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EAGX,MAAM,oBAAoB,CAAC;AAgB5B;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,CA8KrB"}
|
|
@@ -3,8 +3,8 @@ import path from 'path';
|
|
|
3
3
|
import { diffEnv } from '../core/diffEnv.js';
|
|
4
4
|
import { checkGitignoreStatus } from '../services/git.js';
|
|
5
5
|
import { findDuplicateKeys } from '../core/duplicates.js';
|
|
6
|
-
import { parseAndFilterEnv } from '../core/parseAndFilterEnv.js';
|
|
7
|
-
import { updateTotals } from '../core/
|
|
6
|
+
import { parseAndFilterEnv } from '../core/compare/parseAndFilterEnv.js';
|
|
7
|
+
import { updateTotals } from '../core/compare/updateTotals.js';
|
|
8
8
|
import { applyFixes } from '../core/fixEnv.js';
|
|
9
9
|
import { printFixTips } from '../ui/shared/printFixTips.js';
|
|
10
10
|
import { printStats } from '../ui/compare/printStats.js';
|
|
@@ -16,6 +16,7 @@ import { printSuccess } from '../ui/shared/printSuccess.js';
|
|
|
16
16
|
import { printGitignoreWarning } from '../ui/shared/printGitignore.js';
|
|
17
17
|
import { compareJsonOutput } from '../ui/compare/compareJsonOutput.js';
|
|
18
18
|
import { printErrorNotFound } from '../ui/compare/printErrorNotFound.js';
|
|
19
|
+
import { calculateStats } from '../core/compare/calculateStats.js';
|
|
19
20
|
/**
|
|
20
21
|
* Compares multiple pairs of .env and .env.example files.
|
|
21
22
|
* @param pairs - The pairs of environment files to compare.
|
|
@@ -50,11 +51,13 @@ export async function compareMany(pairs, opts) {
|
|
|
50
51
|
const { current, example, currentKeys, exampleKeys } = parseAndFilterEnv(envPath, examplePath, opts);
|
|
51
52
|
// Run checks
|
|
52
53
|
const diff = diffEnv(current, example, opts.checkValues);
|
|
54
|
+
// Find empty keys in current env
|
|
53
55
|
const emptyKeys = Object.entries(current)
|
|
54
56
|
.filter(([, v]) => (v ?? '').trim() === '')
|
|
55
57
|
.map(([k]) => k);
|
|
56
58
|
// Find duplicates
|
|
57
59
|
const { dupsEnv, dupsEx } = findDuplicates(envPath, examplePath, opts, run);
|
|
60
|
+
// Check gitignore status
|
|
58
61
|
const gitignoreIssue = run('gitignore')
|
|
59
62
|
? checkGitignoreStatus({ cwd: opts.cwd, envFile: envName })
|
|
60
63
|
: null;
|
|
@@ -70,20 +73,8 @@ export async function compareMany(pairs, opts) {
|
|
|
70
73
|
};
|
|
71
74
|
// Print stats if requested
|
|
72
75
|
if (opts.showStats && !opts.json) {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
const sharedCount = new Set(currentKeys.filter((k) => exampleKeys.includes(k))).size;
|
|
76
|
-
const duplicateCount = [...dupsEnv, ...dupsEx].reduce((acc, { count }) => acc + Math.max(0, count - 1), 0);
|
|
77
|
-
const valueMismatchCount = opts.checkValues
|
|
78
|
-
? (filtered.mismatches?.length ?? 0)
|
|
79
|
-
: 0;
|
|
80
|
-
printStats(envName, exampleName, {
|
|
81
|
-
envCount,
|
|
82
|
-
exampleCount,
|
|
83
|
-
sharedCount,
|
|
84
|
-
duplicateCount,
|
|
85
|
-
valueMismatchCount,
|
|
86
|
-
}, filtered, opts.json ?? false, opts.showStats ?? true, opts.checkValues ?? false);
|
|
76
|
+
const stats = calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, opts.checkValues);
|
|
77
|
+
printStats(envName, exampleName, stats, filtered, opts.json ?? false, opts.showStats ?? true, opts.checkValues ?? false);
|
|
87
78
|
}
|
|
88
79
|
// Check if all is OK
|
|
89
80
|
const allOk = isAllOk(filtered);
|
|
@@ -93,12 +84,7 @@ export async function compareMany(pairs, opts) {
|
|
|
93
84
|
// Print duplicates
|
|
94
85
|
printDuplicates(envName, exampleName, dupsEnv, dupsEx, opts.json ?? false);
|
|
95
86
|
// Calculate stats for JSON entry
|
|
96
|
-
const stats =
|
|
97
|
-
envCount: currentKeys.length,
|
|
98
|
-
exampleCount: exampleKeys.length,
|
|
99
|
-
sharedCount: new Set(currentKeys.filter((k) => exampleKeys.includes(k)))
|
|
100
|
-
.size,
|
|
101
|
-
};
|
|
87
|
+
const stats = calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, opts.checkValues);
|
|
102
88
|
// Build JSON entry with all the data
|
|
103
89
|
const entry = compareJsonOutput({
|
|
104
90
|
envName,
|
|
@@ -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,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
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,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,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;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAiB,EACjB,IAAiC;IAEjC,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;QAE/C,uBAAuB;QACvB,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACnE,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QAED,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,iBAAiB,CACtE,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,iCAAiC;QACjC,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,yBAAyB;QACzB,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,KAAK,GAAG,cAAc,CAC1B,WAAW,EACX,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,WAAW,CACjB,CAAC;YAEF,UAAU,CACR,OAAO,EACP,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,IAAI,IAAI,KAAK,EAClB,IAAI,CAAC,SAAS,IAAI,IAAI,EACtB,IAAI,CAAC,WAAW,IAAI,KAAK,CAC1B,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,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,KAAK,GAAG,cAAc,CAC1B,WAAW,EACX,WAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,qCAAqC;QACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC;YAC9B,OAAO;YACP,WAAW;YACX,OAAO;YACP,MAAM;YACN,cAAc;YACd,EAAE,EAAE,KAAK;YACT,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;QAEH,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;AAED;;;;;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;;;;;;;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,SAAS,OAAO,CAAC,QAAkB;IACjC,OAAO,CACL,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QACnC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QACnC,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QACnC,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAClC,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC,QAAQ,CAAC,cAAc,CACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of ensureFilesOrPrompt function
|
|
3
|
+
*/
|
|
1
4
|
interface EnsureFilesResult {
|
|
2
5
|
didCreate: boolean;
|
|
3
6
|
shouldExit: boolean;
|
|
4
7
|
exitCode: number;
|
|
5
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Arguments for ensureFilesOrPrompt function
|
|
11
|
+
*/
|
|
6
12
|
interface EnsureFilesArgs {
|
|
7
13
|
cwd: string;
|
|
8
14
|
primaryEnv: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureFilesOrPrompt.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureFilesOrPrompt.ts"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAkF5B"}
|
|
1
|
+
{"version":3,"file":"ensureFilesOrPrompt.d.ts","sourceRoot":"","sources":["../../../src/commands/ensureFilesOrPrompt.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAkF5B"}
|
|
@@ -58,7 +58,7 @@ export async function ensureFilesOrPrompt(args) {
|
|
|
58
58
|
? false
|
|
59
59
|
: await confirmYesNo(`Do you want to create a ${path.basename(examplePath)} file from ${path.basename(envPath)}?`, { isCiMode, isYesMode });
|
|
60
60
|
if (!createExample) {
|
|
61
|
-
printPrompt.skipCreation('.
|
|
61
|
+
printPrompt.skipCreation(DEFAULT_ENV_FILE + '.example');
|
|
62
62
|
return { didCreate: false, shouldExit: true, exitCode: 0 };
|
|
63
63
|
}
|
|
64
64
|
const envContent = fs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureFilesOrPrompt.js","sourceRoot":"","sources":["../../../src/commands/ensureFilesOrPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensureFilesOrPrompt.js","sourceRoot":"","sources":["../../../src/commands/ensureFilesOrPrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { scanCodebase } from '../services/scanCodebase.js';
|
|
2
|
-
import { determineComparisonFile } from '../core/determineComparisonFile.js';
|
|
2
|
+
import { determineComparisonFile } from '../core/scan/determineComparisonFile.js';
|
|
3
3
|
import { printScanResult } from '../services/printScanResult.js';
|
|
4
4
|
import { scanJsonOutput } from '../ui/scan/scanJsonOutput.js';
|
|
5
5
|
import { printMissingExample } from '../ui/scan/printMissingExample.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAO3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scanUsage.js","sourceRoot":"","sources":["../../../src/commands/scanUsage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { ALLOWED_CATEGORIES, GITIGNORE_ISSUES } from './constants.js';
|
|
2
2
|
import { type SecretFinding } from '../core/security/secretDetectors.js';
|
|
3
3
|
import { type ExampleSecretWarning } from '../core/security/exampleSecretDetector.js';
|
|
4
|
+
/**
|
|
5
|
+
* Supported frameworks
|
|
6
|
+
*/
|
|
4
7
|
export type SupportedFramework = 'sveltekit' | 'nextjs';
|
|
8
|
+
/**
|
|
9
|
+
* Result of framework detection (may be unsupported)
|
|
10
|
+
*/
|
|
5
11
|
export type DetectedFramework = SupportedFramework | 'unknown';
|
|
6
12
|
/**
|
|
7
13
|
* Framework-specific warning about environment variable usage
|
|
@@ -14,14 +20,23 @@ export interface FrameworkWarning {
|
|
|
14
20
|
line: number;
|
|
15
21
|
framework: SupportedFramework;
|
|
16
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Type representing a duplicate entry
|
|
25
|
+
*/
|
|
17
26
|
export type Duplicate = {
|
|
18
27
|
key: string;
|
|
19
28
|
count: number;
|
|
20
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Type representing the result of duplicate detection
|
|
32
|
+
*/
|
|
21
33
|
export interface DuplicateResult {
|
|
22
34
|
dupsEnv: Duplicate[];
|
|
23
35
|
dupsEx: Duplicate[];
|
|
24
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Type representing a single category for comparison
|
|
39
|
+
*/
|
|
25
40
|
export type Category = (typeof ALLOWED_CATEGORIES)[number];
|
|
26
41
|
/**
|
|
27
42
|
* Raw options as received directly from the CLI argument parser.
|
|
@@ -118,6 +133,9 @@ export interface EnvUsage {
|
|
|
118
133
|
context: string;
|
|
119
134
|
isLogged?: boolean;
|
|
120
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Type for grouped usages by variable
|
|
138
|
+
*/
|
|
121
139
|
export type VariableUsages = Record<string, EnvUsage[]>;
|
|
122
140
|
/**
|
|
123
141
|
* Options for scanning the codebase
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DuplicateResult, Filtered } from '../../config/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculates statistics for the comparison between current and example environment files.
|
|
4
|
+
* @param currentKeys - The keys from the current environment file.
|
|
5
|
+
* @param exampleKeys - The keys from the example environment file.
|
|
6
|
+
* @param dupsEnv - Duplicates found in the current environment file.
|
|
7
|
+
* @param dupsEx - Duplicates found in the example environment file.
|
|
8
|
+
* @param filtered - The filtered comparison results.
|
|
9
|
+
* @param checkValues - Whether value mismatches were checked.
|
|
10
|
+
* @returns An object containing various statistics about the comparison.
|
|
11
|
+
*/
|
|
12
|
+
export declare function calculateStats(currentKeys: string[], exampleKeys: string[], dupsEnv: DuplicateResult['dupsEnv'], dupsEx: DuplicateResult['dupsEx'], filtered: Filtered, checkValues: boolean): {
|
|
13
|
+
envCount: number;
|
|
14
|
+
exampleCount: number;
|
|
15
|
+
sharedCount: number;
|
|
16
|
+
duplicateCount: number;
|
|
17
|
+
valueMismatchCount: number;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=calculateStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateStats.d.ts","sourceRoot":"","sources":["../../../../src/core/compare/calculateStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,EACnC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,OAAO;;;;;;EAwBrB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates statistics for the comparison between current and example environment files.
|
|
3
|
+
* @param currentKeys - The keys from the current environment file.
|
|
4
|
+
* @param exampleKeys - The keys from the example environment file.
|
|
5
|
+
* @param dupsEnv - Duplicates found in the current environment file.
|
|
6
|
+
* @param dupsEx - Duplicates found in the example environment file.
|
|
7
|
+
* @param filtered - The filtered comparison results.
|
|
8
|
+
* @param checkValues - Whether value mismatches were checked.
|
|
9
|
+
* @returns An object containing various statistics about the comparison.
|
|
10
|
+
*/
|
|
11
|
+
export function calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, checkValues) {
|
|
12
|
+
const envCount = currentKeys.length;
|
|
13
|
+
const exampleCount = exampleKeys.length;
|
|
14
|
+
const sharedCount = new Set(currentKeys.filter((k) => exampleKeys.includes(k))).size;
|
|
15
|
+
const duplicateCount = [...dupsEnv, ...dupsEx].reduce((acc, { count }) => acc + Math.max(0, count - 1), 0);
|
|
16
|
+
const valueMismatchCount = checkValues
|
|
17
|
+
? filtered.mismatches?.length ?? 0
|
|
18
|
+
: 0;
|
|
19
|
+
return {
|
|
20
|
+
envCount,
|
|
21
|
+
exampleCount,
|
|
22
|
+
sharedCount,
|
|
23
|
+
duplicateCount,
|
|
24
|
+
valueMismatchCount,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=calculateStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateStats.js","sourceRoot":"","sources":["../../../../src/core/compare/calculateStats.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAqB,EACrB,WAAqB,EACrB,OAAmC,EACnC,MAAiC,EACjC,QAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;IACpC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;IACxC,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;IAEP,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;IAEF,MAAM,kBAAkB,GAAG,WAAW;QACpC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC,CAAC;IAEN,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,cAAc;QACd,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ComparisonOptions } from '../../config/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of parsing and filtering environment files
|
|
4
|
+
*/
|
|
5
|
+
interface ParsedAndFilteredEnv {
|
|
6
|
+
current: Record<string, string>;
|
|
7
|
+
example: Record<string, string>;
|
|
8
|
+
currentKeys: string[];
|
|
9
|
+
exampleKeys: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parses and filters the environment and example files.
|
|
13
|
+
* @param envPath The path to the .env file
|
|
14
|
+
* @param examplePath The path to the .env.example file
|
|
15
|
+
* @param opts Comparison options
|
|
16
|
+
* @returns An object containing the parsed and filtered environment variables
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseAndFilterEnv(envPath: string, examplePath: string, opts: ComparisonOptions): ParsedAndFilteredEnv;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=parseAndFilterEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAndFilterEnv.d.ts","sourceRoot":"","sources":["../../../../src/core/compare/parseAndFilterEnv.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;GAEG;AACH,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,iBAAiB,GACtB,oBAAoB,CA0BtB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { parseEnvFile } from '../parseEnv.js';
|
|
2
|
+
import { filterIgnoredKeys } from '../filterIgnoredKeys.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parses and filters the environment and example files.
|
|
5
|
+
* @param envPath The path to the .env file
|
|
6
|
+
* @param examplePath The path to the .env.example file
|
|
7
|
+
* @param opts Comparison options
|
|
8
|
+
* @returns An object containing the parsed and filtered environment variables
|
|
9
|
+
*/
|
|
10
|
+
export function parseAndFilterEnv(envPath, examplePath, opts) {
|
|
11
|
+
const currentFull = parseEnvFile(envPath);
|
|
12
|
+
const exampleFull = parseEnvFile(examplePath);
|
|
13
|
+
const currentKeys = filterIgnoredKeys(Object.keys(currentFull), opts.ignore, opts.ignoreRegex);
|
|
14
|
+
const exampleKeys = filterIgnoredKeys(Object.keys(exampleFull), opts.ignore, opts.ignoreRegex);
|
|
15
|
+
return {
|
|
16
|
+
current: Object.fromEntries(currentKeys.map((k) => [k, currentFull[k] ?? ''])),
|
|
17
|
+
example: Object.fromEntries(exampleKeys.map((k) => [k, exampleFull[k] ?? ''])),
|
|
18
|
+
currentKeys,
|
|
19
|
+
exampleKeys,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=parseAndFilterEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAndFilterEnv.js","sourceRoot":"","sources":["../../../../src/core/compare/parseAndFilterEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAa5D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,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;IAEF,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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CompareJsonEntry, Filtered } from '../../config/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Totals of issues found during comparison --compare operation
|
|
4
|
+
*/
|
|
5
|
+
export interface Totals {
|
|
6
|
+
missing: number;
|
|
7
|
+
extra: number;
|
|
8
|
+
empty: number;
|
|
9
|
+
mismatch: number;
|
|
10
|
+
duplicate: number;
|
|
11
|
+
gitignore: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Update totals and entry fields based on filtered issues.
|
|
15
|
+
* Returns true if any issue requires exitWithError.
|
|
16
|
+
* @param filtered filtered issues
|
|
17
|
+
* @param totals overall totals
|
|
18
|
+
* @param entry current entry to update
|
|
19
|
+
* @returns exitWithError
|
|
20
|
+
*/
|
|
21
|
+
export declare function updateTotals(filtered: Filtered, totals: Totals, entry: CompareJsonEntry): boolean;
|
|
22
|
+
//# sourceMappingURL=updateTotals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateTotals.d.ts","sourceRoot":"","sources":["../../../../src/core/compare/updateTotals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAkCT"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update totals and entry fields based on filtered issues.
|
|
3
|
+
* Returns true if any issue requires exitWithError.
|
|
4
|
+
* @param filtered filtered issues
|
|
5
|
+
* @param totals overall totals
|
|
6
|
+
* @param entry current entry to update
|
|
7
|
+
* @returns exitWithError
|
|
8
|
+
*/
|
|
9
|
+
export function updateTotals(filtered, totals, entry) {
|
|
10
|
+
let exitWithError = false;
|
|
11
|
+
if (filtered.missing.length) {
|
|
12
|
+
entry.missing = filtered.missing;
|
|
13
|
+
totals.missing += filtered.missing.length;
|
|
14
|
+
exitWithError = true;
|
|
15
|
+
}
|
|
16
|
+
if (filtered.extra?.length) {
|
|
17
|
+
entry.extra = filtered.extra;
|
|
18
|
+
totals.extra += filtered.extra.length;
|
|
19
|
+
}
|
|
20
|
+
if (filtered.empty?.length) {
|
|
21
|
+
entry.empty = filtered.empty;
|
|
22
|
+
totals.empty += filtered.empty.length;
|
|
23
|
+
}
|
|
24
|
+
if (filtered.mismatches?.length) {
|
|
25
|
+
entry.valueMismatches = filtered.mismatches;
|
|
26
|
+
totals.mismatch += filtered.mismatches.length;
|
|
27
|
+
}
|
|
28
|
+
if (filtered.duplicatesEnv.length || filtered.duplicatesEx.length) {
|
|
29
|
+
totals.duplicate +=
|
|
30
|
+
filtered.duplicatesEnv.length + filtered.duplicatesEx.length;
|
|
31
|
+
}
|
|
32
|
+
if (filtered.gitignoreIssue) {
|
|
33
|
+
totals.gitignore += 1;
|
|
34
|
+
}
|
|
35
|
+
return exitWithError;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=updateTotals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateTotals.js","sourceRoot":"","sources":["../../../../src/core/compare/updateTotals.ts"],"names":[],"mappings":"AAcA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,MAAc,EACd,KAAuB;IAEvB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1C,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC5C,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAClE,MAAM,CAAC,SAAS;YACd,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* default exclude environment variable keys (not expected in .env files)
|
|
3
|
+
* But may be used in code.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_EXCLUDE_KEYS: string[];
|
|
6
|
+
export declare function isDefaultExcludedKey(key: string): boolean;
|
|
7
|
+
//# sourceMappingURL=defaultExcludeKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultExcludeKeys.d.ts","sourceRoot":"","sources":["../../../src/core/defaultExcludeKeys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAOhC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of comparing two .env files.
|
|
3
|
+
*/
|
|
1
4
|
export type DiffResult = {
|
|
5
|
+
/** Keys present in the example file but missing from the current file */
|
|
2
6
|
missing: string[];
|
|
7
|
+
/** Keys present in the current file but not defined in the example file */
|
|
3
8
|
extra: string[];
|
|
9
|
+
/** Keys that exist in both files but have mismatched values */
|
|
4
10
|
valueMismatches: {
|
|
11
|
+
/** The environment variable key */
|
|
5
12
|
key: string;
|
|
13
|
+
/** Expected value from the example file */
|
|
6
14
|
expected: string;
|
|
15
|
+
/** Actual value from the current file */
|
|
7
16
|
actual: string;
|
|
8
17
|
}[];
|
|
9
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffEnv.d.ts","sourceRoot":"","sources":["../../../src/core/diffEnv.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"diffEnv.d.ts","sourceRoot":"","sources":["../../../src/core/diffEnv.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,+DAA+D;IAC/D,eAAe,EAAE;QACf,mCAAmC;QACnC,GAAG,EAAE,MAAM,CAAC;QACZ,2CAA2C;QAC3C,QAAQ,EAAE,MAAM,CAAC;QACjB,yCAAyC;QACzC,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;CACL,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,UAAQ,GAClB,UAAU,CA2BZ"}
|
package/dist/src/core/diffEnv.js
CHANGED
|
@@ -22,8 +22,8 @@ export function diffEnv(current, example, checkValues = false) {
|
|
|
22
22
|
})
|
|
23
23
|
.map((key) => ({
|
|
24
24
|
key,
|
|
25
|
-
expected: example[key]
|
|
26
|
-
actual: current[key]
|
|
25
|
+
expected: example[key],
|
|
26
|
+
actual: current[key],
|
|
27
27
|
}));
|
|
28
28
|
}
|
|
29
29
|
return { missing, extra, valueMismatches };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffEnv.js","sourceRoot":"","sources":["../../../src/core/diffEnv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diffEnv.js","sourceRoot":"","sources":["../../../src/core/diffEnv.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,OAA+B,EAC/B,OAA+B,EAC/B,WAAW,GAAG,KAAK;IAEnB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtE,IAAI,eAAe,GAAkC,EAAE,CAAC;IAExD,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,GAAG,WAAW;aAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,OAAO,CACL,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAChC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAC9B,CAAC;QACJ,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,GAAG;YACH,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAE;YACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAE;SACtB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AAC7C,CAAC"}
|