dotenv-diff 2.7.1 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +45 -38
  2. package/README.md +21 -12
  3. package/dist/bin/dotenv-diff.js +0 -0
  4. package/dist/src/commands/compare.d.ts.map +1 -1
  5. package/dist/src/commands/compare.js +141 -89
  6. package/dist/src/commands/compare.js.map +1 -1
  7. package/dist/src/config/constants.d.ts.map +1 -1
  8. package/dist/src/config/constants.js.map +1 -1
  9. package/dist/src/config/options.js +1 -1
  10. package/dist/src/config/options.js.map +1 -1
  11. package/dist/src/config/types.d.ts +4 -2
  12. package/dist/src/config/types.d.ts.map +1 -1
  13. package/dist/src/core/compare/calculateStats.js +1 -1
  14. package/dist/src/core/compare/calculateStats.js.map +1 -1
  15. package/dist/src/core/compare/parseAndFilterEnv.d.ts.map +1 -1
  16. package/dist/src/core/compare/parseAndFilterEnv.js +1 -1
  17. package/dist/src/core/compare/parseAndFilterEnv.js.map +1 -1
  18. package/dist/src/core/filterIgnoredKeys.d.ts.map +1 -1
  19. package/dist/src/core/filterIgnoredKeys.js +3 -1
  20. package/dist/src/core/filterIgnoredKeys.js.map +1 -1
  21. package/dist/src/core/frameworks/nextJsRules.js +1 -1
  22. package/dist/src/core/frameworks/nextJsRules.js.map +1 -1
  23. package/dist/src/core/frameworks/sveltekitRules.d.ts.map +1 -1
  24. package/dist/src/core/frameworks/sveltekitRules.js +9 -9
  25. package/dist/src/core/frameworks/sveltekitRules.js.map +1 -1
  26. package/dist/src/core/parseEnv.d.ts +3 -3
  27. package/dist/src/core/parseEnv.d.ts.map +1 -1
  28. package/dist/src/core/parseEnv.js +6 -21
  29. package/dist/src/core/parseEnv.js.map +1 -1
  30. package/dist/src/core/scan/scanFile.js.map +1 -1
  31. package/dist/src/core/security/exampleSecretDetector.js +1 -1
  32. package/dist/src/index.d.ts +2 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +2 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/services/envDiscovery.js +2 -2
  37. package/dist/src/services/envDiscovery.js.map +1 -1
  38. package/dist/src/services/parseEnvFile.d.ts +8 -0
  39. package/dist/src/services/parseEnvFile.d.ts.map +1 -0
  40. package/dist/src/services/parseEnvFile.js +28 -0
  41. package/dist/src/services/parseEnvFile.js.map +1 -0
  42. package/dist/src/services/processComparisonFile.js +1 -1
  43. package/dist/src/services/processComparisonFile.js.map +1 -1
  44. package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -1
  45. package/dist/src/ui/compare/printErrorNotFound.js.map +1 -1
  46. package/dist/src/ui/compare/printHeader.d.ts.map +1 -1
  47. package/dist/src/ui/compare/printHeader.js.map +1 -1
  48. package/dist/src/ui/compare/printIssues.d.ts.map +1 -1
  49. package/dist/src/ui/compare/printIssues.js.map +1 -1
  50. package/dist/src/ui/scan/printConsolelogWarning.d.ts.map +1 -1
  51. package/dist/src/ui/scan/printConsolelogWarning.js +1 -1
  52. package/dist/src/ui/scan/printConsolelogWarning.js.map +1 -1
  53. package/dist/src/ui/scan/printExampleWarnings.d.ts.map +1 -1
  54. package/dist/src/ui/scan/printExampleWarnings.js +3 -1
  55. package/dist/src/ui/scan/printExampleWarnings.js.map +1 -1
  56. package/dist/src/ui/scan/printExpireWarnings.d.ts.map +1 -1
  57. package/dist/src/ui/scan/printExpireWarnings.js +2 -6
  58. package/dist/src/ui/scan/printExpireWarnings.js.map +1 -1
  59. package/dist/src/ui/scan/printFrameworkWarnings.d.ts.map +1 -1
  60. package/dist/src/ui/scan/printFrameworkWarnings.js +1 -1
  61. package/dist/src/ui/scan/printFrameworkWarnings.js.map +1 -1
  62. package/dist/src/ui/scan/printHealthScore.d.ts.map +1 -1
  63. package/dist/src/ui/scan/printHealthScore.js +7 -4
  64. package/dist/src/ui/scan/printHealthScore.js.map +1 -1
  65. package/dist/src/ui/scan/printInconsistentNamingWarning.d.ts.map +1 -1
  66. package/dist/src/ui/scan/printInconsistentNamingWarning.js +1 -1
  67. package/dist/src/ui/scan/printInconsistentNamingWarning.js.map +1 -1
  68. package/dist/src/ui/scan/printMissing.d.ts.map +1 -1
  69. package/dist/src/ui/scan/printMissing.js +1 -1
  70. package/dist/src/ui/scan/printMissing.js.map +1 -1
  71. package/dist/src/ui/scan/printMissingExample.d.ts.map +1 -1
  72. package/dist/src/ui/scan/printMissingExample.js +1 -1
  73. package/dist/src/ui/scan/printMissingExample.js.map +1 -1
  74. package/dist/src/ui/scan/printSecrets.d.ts.map +1 -1
  75. package/dist/src/ui/scan/printSecrets.js +2 -2
  76. package/dist/src/ui/scan/printSecrets.js.map +1 -1
  77. package/dist/src/ui/scan/printStats.d.ts.map +1 -1
  78. package/dist/src/ui/scan/printStats.js.map +1 -1
  79. package/dist/src/ui/scan/printUnused.d.ts.map +1 -1
  80. package/dist/src/ui/scan/printUnused.js +1 -1
  81. package/dist/src/ui/scan/printUnused.js.map +1 -1
  82. package/dist/src/ui/scan/printUppercaseWarning.d.ts.map +1 -1
  83. package/dist/src/ui/scan/printUppercaseWarning.js +1 -1
  84. package/dist/src/ui/scan/printUppercaseWarning.js.map +1 -1
  85. package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -1
  86. package/dist/src/ui/shared/printAutoFix.js.map +1 -1
  87. package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -1
  88. package/dist/src/ui/shared/printConfigStatus.js.map +1 -1
  89. package/dist/src/ui/shared/printDuplicates.d.ts +2 -7
  90. package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -1
  91. package/dist/src/ui/shared/printDuplicates.js.map +1 -1
  92. package/dist/src/ui/shared/printGitignore.d.ts.map +1 -1
  93. package/dist/src/ui/shared/printGitignore.js.map +1 -1
  94. package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -1
  95. package/dist/src/ui/shared/printOptionErrors.js.map +1 -1
  96. package/dist/src/ui/theme.d.ts.map +1 -1
  97. package/dist/src/ui/theme.js.map +1 -1
  98. package/package.json +23 -23
  99. package/docs/assets/demo.gif +0 -0
  100. package/docs/assets/success.png +0 -0
  101. package/docs/capabilities.md +0 -85
  102. package/docs/configuration_and_flags.md +0 -726
  103. package/docs/expiration_warnings.md +0 -111
  104. package/docs/frameworks/index.md +0 -24
  105. package/docs/frameworks/nextjs_warnings.md +0 -56
  106. package/docs/frameworks/sveltekit_warnings.md +0 -130
  107. package/docs/git_hooks_ci.md +0 -51
  108. package/docs/ignore_comments.md +0 -82
  109. package/docs/index.md +0 -54
  110. package/docs/monorepo_support.md +0 -63
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.7.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 41f8e5c: Updated dependencies and release scripts for all packages.
8
+ - da6fbaf: fixed preserve nested example paths
9
+
3
10
  All notable changes to this project will be documented in this file.
4
11
 
5
12
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@@ -13,133 +20,133 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
20
 
14
21
  ### 🐛 Bug Fixes
15
22
 
16
- * expire warning ([#299](https://github.com/Chrilleweb/dotenv-diff/issues/299)) ([be0700f](https://github.com/Chrilleweb/dotenv-diff/commit/be0700f4fb27a63da1703f70d2be792e00d84731))
17
- * minor strict ui bug ([#294](https://github.com/Chrilleweb/dotenv-diff/issues/294)) ([7feb116](https://github.com/Chrilleweb/dotenv-diff/commit/7feb116217a5cacbff095dad2b745bdb2348c924))
18
- * removed white space ([#295](https://github.com/Chrilleweb/dotenv-diff/issues/295)) ([015afcc](https://github.com/Chrilleweb/dotenv-diff/commit/015afcc7ff593601d9ba7b87e6e162581180c16b))
19
- * secret detection bug ([#296](https://github.com/Chrilleweb/dotenv-diff/issues/296)) ([be5442b](https://github.com/Chrilleweb/dotenv-diff/commit/be5442b78a6ae99abcfe7eb682c6b1903cdf823f))
20
- * text for inco naming ([#297](https://github.com/Chrilleweb/dotenv-diff/issues/297)) ([8e2a9be](https://github.com/Chrilleweb/dotenv-diff/commit/8e2a9bebfbd07bcb43c364f8295900ad467a5337))
21
- * typo in print unused ([#298](https://github.com/Chrilleweb/dotenv-diff/issues/298)) ([fe56942](https://github.com/Chrilleweb/dotenv-diff/commit/fe56942c4caa3efebc0ee53bc313dbf6449f4484))
23
+ - expire warning ([#299](https://github.com/Chrilleweb/dotenv-diff/issues/299)) ([be0700f](https://github.com/Chrilleweb/dotenv-diff/commit/be0700f4fb27a63da1703f70d2be792e00d84731))
24
+ - minor strict ui bug ([#294](https://github.com/Chrilleweb/dotenv-diff/issues/294)) ([7feb116](https://github.com/Chrilleweb/dotenv-diff/commit/7feb116217a5cacbff095dad2b745bdb2348c924))
25
+ - removed white space ([#295](https://github.com/Chrilleweb/dotenv-diff/issues/295)) ([015afcc](https://github.com/Chrilleweb/dotenv-diff/commit/015afcc7ff593601d9ba7b87e6e162581180c16b))
26
+ - secret detection bug ([#296](https://github.com/Chrilleweb/dotenv-diff/issues/296)) ([be5442b](https://github.com/Chrilleweb/dotenv-diff/commit/be5442b78a6ae99abcfe7eb682c6b1903cdf823f))
27
+ - text for inco naming ([#297](https://github.com/Chrilleweb/dotenv-diff/issues/297)) ([8e2a9be](https://github.com/Chrilleweb/dotenv-diff/commit/8e2a9bebfbd07bcb43c364f8295900ad467a5337))
28
+ - typo in print unused ([#298](https://github.com/Chrilleweb/dotenv-diff/issues/298)) ([fe56942](https://github.com/Chrilleweb/dotenv-diff/commit/fe56942c4caa3efebc0ee53bc313dbf6449f4484))
22
29
 
23
30
  ## [2.7.0](https://github.com/Chrilleweb/dotenv-diff/compare/v2.6.4...v2.7.0) (2026-03-04)
24
31
 
25
32
  ### ✨ Features
26
33
 
27
- * new UI design ([#293](https://github.com/Chrilleweb/dotenv-diff/issues/293)) ([417b8ef](https://github.com/Chrilleweb/dotenv-diff/commit/417b8ef678bbdf2a8e12b36b030df4bfb8dba8d7))
34
+ - new UI design ([#293](https://github.com/Chrilleweb/dotenv-diff/issues/293)) ([417b8ef](https://github.com/Chrilleweb/dotenv-diff/commit/417b8ef678bbdf2a8e12b36b030df4bfb8dba8d7))
28
35
 
29
36
  ## [2.6.4](https://github.com/Chrilleweb/dotenv-diff/compare/v2.6.3...v2.6.4) (2026-02-28)
30
37
 
31
38
  ### 🐛 Bug Fixes
32
39
 
33
- * added support for mts and cts ([#288](https://github.com/Chrilleweb/dotenv-diff/issues/288)) ([93874bf](https://github.com/Chrilleweb/dotenv-diff/commit/93874bfeb67999b43bdcb87814fbc080c650f923))
40
+ - added support for mts and cts ([#288](https://github.com/Chrilleweb/dotenv-diff/issues/288)) ([93874bf](https://github.com/Chrilleweb/dotenv-diff/commit/93874bfeb67999b43bdcb87814fbc080c650f923))
34
41
 
35
42
  ### 📝 Documentation
36
43
 
37
- * updated docs ([#287](https://github.com/Chrilleweb/dotenv-diff/issues/287)) ([d3f36f4](https://github.com/Chrilleweb/dotenv-diff/commit/d3f36f437748218028fe21843aa5b495d31c3639))
44
+ - updated docs ([#287](https://github.com/Chrilleweb/dotenv-diff/issues/287)) ([d3f36f4](https://github.com/Chrilleweb/dotenv-diff/commit/d3f36f437748218028fe21843aa5b495d31c3639))
38
45
 
39
46
  ## [2.6.3](https://github.com/Chrilleweb/dotenv-diff/compare/v2.6.2...v2.6.3) (2026-02-26)
40
47
 
41
48
  ### 🐛 Bug Fixes
42
49
 
43
- * skip path ([#281](https://github.com/Chrilleweb/dotenv-diff/issues/281)) ([eec0d13](https://github.com/Chrilleweb/dotenv-diff/commit/eec0d13dddb581072f05a1168ad52e65f41693bf))
44
- * variables patterns ([#282](https://github.com/Chrilleweb/dotenv-diff/issues/282)) ([67515a0](https://github.com/Chrilleweb/dotenv-diff/commit/67515a04c46e1f373041cfe434c4eca01eb36c81))
50
+ - skip path ([#281](https://github.com/Chrilleweb/dotenv-diff/issues/281)) ([eec0d13](https://github.com/Chrilleweb/dotenv-diff/commit/eec0d13dddb581072f05a1168ad52e65f41693bf))
51
+ - variables patterns ([#282](https://github.com/Chrilleweb/dotenv-diff/issues/282)) ([67515a0](https://github.com/Chrilleweb/dotenv-diff/commit/67515a04c46e1f373041cfe434c4eca01eb36c81))
45
52
 
46
53
  ## [2.6.2](https://github.com/Chrilleweb/dotenv-diff/compare/v2.6.1...v2.6.2) (2026-02-24)
47
54
 
48
55
  ### 🐛 Bug Fixes
49
56
 
50
- * emoji health score ([#275](https://github.com/Chrilleweb/dotenv-diff/issues/275)) ([b7d8499](https://github.com/Chrilleweb/dotenv-diff/commit/b7d84997286e44a249461554b6deb55e90d10c8c))
51
- * updated dependencies ([#278](https://github.com/Chrilleweb/dotenv-diff/issues/278)) ([f172462](https://github.com/Chrilleweb/dotenv-diff/commit/f17246285556769996273e090649bf44c838920f))
57
+ - emoji health score ([#275](https://github.com/Chrilleweb/dotenv-diff/issues/275)) ([b7d8499](https://github.com/Chrilleweb/dotenv-diff/commit/b7d84997286e44a249461554b6deb55e90d10c8c))
58
+ - updated dependencies ([#278](https://github.com/Chrilleweb/dotenv-diff/issues/278)) ([f172462](https://github.com/Chrilleweb/dotenv-diff/commit/f17246285556769996273e090649bf44c838920f))
52
59
 
53
60
  ### 📝 Documentation
54
61
 
55
- * interface docs ([#276](https://github.com/Chrilleweb/dotenv-diff/issues/276)) ([c6789e7](https://github.com/Chrilleweb/dotenv-diff/commit/c6789e75dfe3eae1801cbce52cc6425555a79ab1))
56
- * updated docs ([#279](https://github.com/Chrilleweb/dotenv-diff/issues/279)) ([a2bfeea](https://github.com/Chrilleweb/dotenv-diff/commit/a2bfeea14dec18dc927e902bf2f6e4c9b86c729a))
62
+ - interface docs ([#276](https://github.com/Chrilleweb/dotenv-diff/issues/276)) ([c6789e7](https://github.com/Chrilleweb/dotenv-diff/commit/c6789e75dfe3eae1801cbce52cc6425555a79ab1))
63
+ - updated docs ([#279](https://github.com/Chrilleweb/dotenv-diff/issues/279)) ([a2bfeea](https://github.com/Chrilleweb/dotenv-diff/commit/a2bfeea14dec18dc927e902bf2f6e4c9b86c729a))
57
64
 
58
65
  ## [2.6.1](https://github.com/Chrilleweb/dotenv-diff/compare/v2.6.0...v2.6.1) (2026-02-13)
59
66
 
60
67
  ### 🐛 Bug Fixes
61
68
 
62
- * Expire env warning json ([#267](https://github.com/Chrilleweb/dotenv-diff/issues/267)) ([c029e4c](https://github.com/Chrilleweb/dotenv-diff/commit/c029e4ccbfedfdc630afaf28b7dd37b867aa734f))
63
- * logged json output ([#268](https://github.com/Chrilleweb/dotenv-diff/issues/268)) ([4a9107a](https://github.com/Chrilleweb/dotenv-diff/commit/4a9107a9167ab086d13ee4be6f91fe8f0015eeee))
69
+ - Expire env warning json ([#267](https://github.com/Chrilleweb/dotenv-diff/issues/267)) ([c029e4c](https://github.com/Chrilleweb/dotenv-diff/commit/c029e4ccbfedfdc630afaf28b7dd37b867aa734f))
70
+ - logged json output ([#268](https://github.com/Chrilleweb/dotenv-diff/issues/268)) ([4a9107a](https://github.com/Chrilleweb/dotenv-diff/commit/4a9107a9167ab086d13ee4be6f91fe8f0015eeee))
64
71
 
65
72
  ## [2.6.0](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.9...v2.6.0) (2026-02-06)
66
73
 
67
74
  ### ✨ Features
68
75
 
69
- * prompt if no env file is found ([#262](https://github.com/Chrilleweb/dotenv-diff/issues/262)) ([c14adf4](https://github.com/Chrilleweb/dotenv-diff/commit/c14adf4206fc045833d985f1d599b5ac92a2a399))
76
+ - prompt if no env file is found ([#262](https://github.com/Chrilleweb/dotenv-diff/issues/262)) ([c14adf4](https://github.com/Chrilleweb/dotenv-diff/commit/c14adf4206fc045833d985f1d599b5ac92a2a399))
70
77
 
71
78
  ### 🐛 Bug Fixes
72
79
 
73
- * Added more space after prompt ([#263](https://github.com/Chrilleweb/dotenv-diff/issues/263)) ([c5e5770](https://github.com/Chrilleweb/dotenv-diff/commit/c5e57700dabb25ef43635c7a53b7d903244fadc0))
80
+ - Added more space after prompt ([#263](https://github.com/Chrilleweb/dotenv-diff/issues/263)) ([c5e5770](https://github.com/Chrilleweb/dotenv-diff/commit/c5e57700dabb25ef43635c7a53b7d903244fadc0))
74
81
 
75
82
  ### 📝 Documentation
76
83
 
77
- * moved -y flag up ([#261](https://github.com/Chrilleweb/dotenv-diff/issues/261)) ([08d0530](https://github.com/Chrilleweb/dotenv-diff/commit/08d0530a5c4f5aa183540b4b4afd647894f019ca))
84
+ - moved -y flag up ([#261](https://github.com/Chrilleweb/dotenv-diff/issues/261)) ([08d0530](https://github.com/Chrilleweb/dotenv-diff/commit/08d0530a5c4f5aa183540b4b4afd647894f019ca))
78
85
 
79
86
  ## [2.5.9](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.8...v2.5.9) (2026-02-02)
80
87
 
81
88
  ### 🐛 Bug Fixes
82
89
 
83
- * removed ci warning on missing - duplicate ([#254](https://github.com/Chrilleweb/dotenv-diff/issues/254)) ([b9e70f0](https://github.com/Chrilleweb/dotenv-diff/commit/b9e70f03eeaa764176ae67d4b2b16e6b58cd5c9c))
84
- * **scan:** json output order ([#255](https://github.com/Chrilleweb/dotenv-diff/issues/255)) ([db3fd14](https://github.com/Chrilleweb/dotenv-diff/commit/db3fd1469603e33347bb91da83dded90bb0fefb4))
90
+ - removed ci warning on missing - duplicate ([#254](https://github.com/Chrilleweb/dotenv-diff/issues/254)) ([b9e70f0](https://github.com/Chrilleweb/dotenv-diff/commit/b9e70f03eeaa764176ae67d4b2b16e6b58cd5c9c))
91
+ - **scan:** json output order ([#255](https://github.com/Chrilleweb/dotenv-diff/issues/255)) ([db3fd14](https://github.com/Chrilleweb/dotenv-diff/commit/db3fd1469603e33347bb91da83dded90bb0fefb4))
85
92
 
86
93
  ### 📝 Documentation
87
94
 
88
- * Config and flags ([#256](https://github.com/Chrilleweb/dotenv-diff/issues/256)) ([996e636](https://github.com/Chrilleweb/dotenv-diff/commit/996e6366bea9a0392d029d1f29835c5779ac2556))
95
+ - Config and flags ([#256](https://github.com/Chrilleweb/dotenv-diff/issues/256)) ([996e636](https://github.com/Chrilleweb/dotenv-diff/commit/996e6366bea9a0392d029d1f29835c5779ac2556))
89
96
 
90
97
  ## [2.5.8](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.7...v2.5.8) (2026-02-01)
91
98
 
92
99
  ### 🐛 Bug Fixes
93
100
 
94
- * Fixed --allow-duplicates flag in default ([#249](https://github.com/Chrilleweb/dotenv-diff/issues/249)) ([3cccc35](https://github.com/Chrilleweb/dotenv-diff/commit/3cccc3523cb6c54ea48f3a22a895b887dea58098))
95
- * Fixed bug in --fix for compare mode ([#251](https://github.com/Chrilleweb/dotenv-diff/issues/251)) ([a26d6b5](https://github.com/Chrilleweb/dotenv-diff/commit/a26d6b51f440cede84381c0ea065bc2106979189))
96
- * removed mismatch from only flag ([#250](https://github.com/Chrilleweb/dotenv-diff/issues/250)) ([a4ee8c2](https://github.com/Chrilleweb/dotenv-diff/commit/a4ee8c27ca62c380f9bee7e0444c2c9488a6b7c9))
101
+ - Fixed --allow-duplicates flag in default ([#249](https://github.com/Chrilleweb/dotenv-diff/issues/249)) ([3cccc35](https://github.com/Chrilleweb/dotenv-diff/commit/3cccc3523cb6c54ea48f3a22a895b887dea58098))
102
+ - Fixed bug in --fix for compare mode ([#251](https://github.com/Chrilleweb/dotenv-diff/issues/251)) ([a26d6b5](https://github.com/Chrilleweb/dotenv-diff/commit/a26d6b51f440cede84381c0ea065bc2106979189))
103
+ - removed mismatch from only flag ([#250](https://github.com/Chrilleweb/dotenv-diff/issues/250)) ([a4ee8c2](https://github.com/Chrilleweb/dotenv-diff/commit/a4ee8c27ca62c380f9bee7e0444c2c9488a6b7c9))
97
104
 
98
105
  ### 📝 Documentation
99
106
 
100
- * **contribution:** updated PR guidelines ([#248](https://github.com/Chrilleweb/dotenv-diff/issues/248)) ([f3a8209](https://github.com/Chrilleweb/dotenv-diff/commit/f3a8209f22a810b34240250976f18e0c428669e1))
107
+ - **contribution:** updated PR guidelines ([#248](https://github.com/Chrilleweb/dotenv-diff/issues/248)) ([f3a8209](https://github.com/Chrilleweb/dotenv-diff/commit/f3a8209f22a810b34240250976f18e0c428669e1))
101
108
 
102
109
  ## [2.5.7](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.6...v2.5.7) (2026-01-29)
103
110
 
104
111
  ### 🐛 Bug Fixes
105
112
 
106
- * Updated inconsistent name text ([#243](https://github.com/Chrilleweb/dotenv-diff/issues/243)) ([c400aac](https://github.com/Chrilleweb/dotenv-diff/commit/c400aac46b434d7525d9ad75a135d374ab737b13))
113
+ - Updated inconsistent name text ([#243](https://github.com/Chrilleweb/dotenv-diff/issues/243)) ([c400aac](https://github.com/Chrilleweb/dotenv-diff/commit/c400aac46b434d7525d9ad75a135d374ab737b13))
107
114
 
108
115
  ## [2.5.6](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.5...v2.5.6) (2026-01-29)
109
116
 
110
117
  ### 🐛 Bug Fixes
111
118
 
112
- * inconsistent naming warning ui ([#241](https://github.com/Chrilleweb/dotenv-diff/issues/241)) ([b672b12](https://github.com/Chrilleweb/dotenv-diff/commit/b672b1206a94b375df1db23a8c0ba4acaa675b84))
119
+ - inconsistent naming warning ui ([#241](https://github.com/Chrilleweb/dotenv-diff/issues/241)) ([b672b12](https://github.com/Chrilleweb/dotenv-diff/commit/b672b1206a94b375df1db23a8c0ba4acaa675b84))
113
120
 
114
121
  ## [v2.5.5](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.4...v2.5.5) (2026-01-28)
115
122
 
116
123
  ### Bug Fixes
117
124
 
118
- * Updated UI for missing env variables ([#238](https://github.com/Chrilleweb/dotenv-diff/issues/238)) ([d87eac0](https://github.com/Chrilleweb/dotenv-diff/commit/d87eac002b6b18dc9962c77d1df3d3941ce73587))
125
+ - Updated UI for missing env variables ([#238](https://github.com/Chrilleweb/dotenv-diff/issues/238)) ([d87eac0](https://github.com/Chrilleweb/dotenv-diff/commit/d87eac002b6b18dc9962c77d1df3d3941ce73587))
119
126
 
120
127
  ## [v2.5.4](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.3...v2.5.4) (2026-01-28)
121
128
 
122
129
  ### Bug Fixes
123
130
 
124
- * default exclude keys where not ignored in scan mode ([#236](https://github.com/Chrilleweb/dotenv-diff/issues/236)) ([593e69b](https://github.com/Chrilleweb/dotenv-diff/commit/593e69b3a12273c445fa2b365b683cfbe5af283f))
131
+ - default exclude keys where not ignored in scan mode ([#236](https://github.com/Chrilleweb/dotenv-diff/issues/236)) ([593e69b](https://github.com/Chrilleweb/dotenv-diff/commit/593e69b3a12273c445fa2b365b683cfbe5af283f))
125
132
 
126
133
  ## [v2.5.3](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.2...v2.5.3) (2026-01-27)
127
134
 
128
135
  ### Bug Fixes
129
136
 
130
- * changed color of scanning header to cyan ([ed6cad1](https://github.com/Chrilleweb/dotenv-diff/commit/ed6cad1502a8c340ddcbcb45a63c20d1ba9feb26))
131
- * Expire warning text ui ([90caa27](https://github.com/Chrilleweb/dotenv-diff/commit/90caa27762cb1e1a7a81ec4fa978e26af8e46a5c))
137
+ - changed color of scanning header to cyan ([ed6cad1](https://github.com/Chrilleweb/dotenv-diff/commit/ed6cad1502a8c340ddcbcb45a63c20d1ba9feb26))
138
+ - Expire warning text ui ([90caa27](https://github.com/Chrilleweb/dotenv-diff/commit/90caa27762cb1e1a7a81ec4fa978e26af8e46a5c))
132
139
 
133
140
  ### Documentation
134
141
 
135
- * docs folder instead of public ([f88ad42](https://github.com/Chrilleweb/dotenv-diff/commit/f88ad422a5119cf50b6e27e2ddb7ffd7489e28d4))
136
- * updated readme gif links ([c45c2df](https://github.com/Chrilleweb/dotenv-diff/commit/c45c2df166139ad2c7a83af3df56032d4f81b310))
142
+ - docs folder instead of public ([f88ad42](https://github.com/Chrilleweb/dotenv-diff/commit/f88ad422a5119cf50b6e27e2ddb7ffd7489e28d4))
143
+ - updated readme gif links ([c45c2df](https://github.com/Chrilleweb/dotenv-diff/commit/c45c2df166139ad2c7a83af3df56032d4f81b310))
137
144
 
138
145
  ## [v2.5.2](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.1...v2.5.2) (2026-01-26)
139
146
 
140
147
  ### Bug Fixes
141
148
 
142
- * scanning color magenta ([b90107b](https://github.com/Chrilleweb/dotenv-diff/commit/b90107b0163de3e0ce5def6f235bc40510be71b7))
149
+ - scanning color magenta ([b90107b](https://github.com/Chrilleweb/dotenv-diff/commit/b90107b0163de3e0ce5def6f235bc40510be71b7))
143
150
 
144
151
  #### [v2.5.1](https://github.com/Chrilleweb/dotenv-diff/compare/v2.5.0...v2.5.1)
145
152
 
@@ -246,7 +253,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
246
253
  - exitresult + type + exit decision [`#160`](https://github.com/Chrilleweb/dotenv-diff/pull/160)
247
254
  - interfaces, types and documentation + constants [`#159`](https://github.com/Chrilleweb/dotenv-diff/pull/159)
248
255
  - Fixed path normalization issue [`#158`](https://github.com/Chrilleweb/dotenv-diff/pull/158)
249
- - Added PR template [`#156`](https://github.com/Chrilleweb/dotenv-diff/pull/156)
256
+ - Added PR template [`#156`](https://github.com/Chrilleweb/dotenv-diff/pull/156)
250
257
  - moved scanjson output out of types [`e0d80c0`](https://github.com/Chrilleweb/dotenv-diff/commit/e0d80c09c1d6d8d3a62a1e606cad4bf5ae22bd1b)
251
258
  - Moved types arround for better readability [`e9d6424`](https://github.com/Chrilleweb/dotenv-diff/commit/e9d6424477a702798182efee46f7634996310471)
252
259
  - framework rules cross-platform consistency. [`4939788`](https://github.com/Chrilleweb/dotenv-diff/commit/4939788e120fb17fcb0d807ade599bf9f7af88ad)
@@ -298,7 +305,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
298
305
  > 27 December 2025
299
306
 
300
307
  - v2.4.1 [`#140`](https://github.com/Chrilleweb/dotenv-diff/pull/140)
301
- - T3-env bug fix på false positive in secret detection [`#139`](https://github.com/Chrilleweb/dotenv-diff/pull/139)
308
+ - T3-env bug fix på false positive in secret detection [`#139`](https://github.com/Chrilleweb/dotenv-diff/pull/139)
302
309
  - Scan stats [`#138`](https://github.com/Chrilleweb/dotenv-diff/pull/138)
303
310
  - fixed t3env mutible bug + secret detection false potitive warning [`01f0c13`](https://github.com/Chrilleweb/dotenv-diff/commit/01f0c1313b8449d33e6f91ddfd738f614df5856d)
304
311
  - changed scan stats name [`c821d85`](https://github.com/Chrilleweb/dotenv-diff/commit/c821d8564bfef9c6826c7d00a357022b507cc745)
package/README.md CHANGED
@@ -11,10 +11,12 @@ First-class support for SvelteKit and Next.js. Also works well in modern JavaScr
11
11
  ---
12
12
 
13
13
  ### Warnings & errors detection
14
- ![Demo](./docs/assets/demo.gif)
14
+
15
+ ![Demo](../../docs/assets/demo.gif)
15
16
 
16
17
  ### Clean / successful scan
17
- ![Successful Scan](./docs/assets/success.png)
18
+
19
+ ![Successful Scan](../../docs/assets/success.png)
18
20
 
19
21
  ---
20
22
 
@@ -30,7 +32,7 @@ First-class support for SvelteKit and Next.js. Also works well in modern JavaScr
30
32
 
31
33
  ## How It Works
32
34
 
33
- → See [Capabilities Documentation](./docs/capabilities.md) for details on what the scanner checks for and how it works.
35
+ → See [Capabilities Documentation](../../docs/capabilities.md) for details on what the scanner checks for and how it works.
34
36
 
35
37
  ---
36
38
 
@@ -42,7 +44,7 @@ Generate a default configuration file:
42
44
  dotenv-diff --init
43
45
  ```
44
46
 
45
- → See [Configuration Documentation](./docs/configuration_and_flags.md#configuration-file) for more details.
47
+ → See [Configuration Documentation](../../docs/configuration_and_flags.md#configuration-file) for more details.
46
48
 
47
49
  ---
48
50
 
@@ -50,7 +52,7 @@ dotenv-diff --init
50
52
 
51
53
  Easily integrate dotenv-diff into your Git hooks or CI/CD pipelines to enforce environment variable consistency.
52
54
 
53
- → See [Git Hooks Documentation](./docs/git_hooks_ci.md) for more details.
55
+ → See [Git Hooks Documentation](../../docs/git_hooks_ci.md) for more details.
54
56
 
55
57
  ## Framework-Specific Warnings
56
58
 
@@ -65,9 +67,9 @@ Framework issues (Sveltekit):
65
67
  → Variables accessed through import.meta.env must start with "VITE_"
66
68
  ```
67
69
 
68
- → See [Framework Documentation](./docs/frameworks/index.md) for more details.
70
+ → See [Framework Documentation](../../docs/frameworks/index.md) for more details.
69
71
 
70
- ## Ignore Comments
72
+ ## Ignore Comments
71
73
 
72
74
  You can ignore specific environment variable warnings by adding comments in your code. For example:
73
75
 
@@ -77,7 +79,7 @@ const apiKey = process.env.API_KEY; // dotenv-diff-ignore
77
79
 
78
80
  This is helpful when you know a specific warning is safe in your source code.
79
81
 
80
- → See [Ignore Comments Documentation](./docs/ignore_comments.md) for more details.
82
+ → See [Ignore Comments Documentation](../../docs/ignore_comments.md) for more details.
81
83
 
82
84
  ---
83
85
 
@@ -90,7 +92,7 @@ Add expiration metadata to your environment variables to get warnings when they
90
92
  API_TOKEN=
91
93
  ```
92
94
 
93
- → See [Expiration Documentation](./docs/expiration_warnings.md) for more details.
95
+ → See [Expiration Documentation](../../docs/expiration_warnings.md) for more details.
94
96
 
95
97
  ---
96
98
 
@@ -106,9 +108,10 @@ In monorepos with multiple apps and packages, you can include shared folders:
106
108
  }
107
109
  ```
108
110
 
109
- → See [Monorepo Documentation](./docs/monorepo_support.md) for more details.
111
+ → See [Monorepo Documentation](../../docs/monorepo_support.md) for more details.
110
112
 
111
113
  This will:
114
+
112
115
  - Scan the current app
113
116
  - Include shared packages
114
117
  - Ignore variables used only in specific environments
@@ -124,14 +127,20 @@ This will:
124
127
 
125
128
  ## Documentation
126
129
 
127
- → See [dotenv-diff Documentation](./docs/index.md) for full documentation
130
+ → See [dotenv-diff Documentation](../../docs/index.md) for full documentation
128
131
 
129
132
  ---
130
133
 
131
134
  ## Contributing
132
135
 
133
136
  Issues and pull requests are welcome.
134
- → See [CONTRIBUTING](CONTRIBUTING.md) for details.
137
+ → See [CONTRIBUTING](../../CONTRIBUTING.md) for details.
138
+
139
+ Thanks to these amazing people for contributing to this project:
140
+
141
+ <a href="https://github.com/Chrilleweb/dotenv-diff/graphs/contributors">
142
+ <img src="https://contrib.rocks/image?repo=Chrilleweb/dotenv-diff" />
143
+ </a>
135
144
 
136
145
  ---
137
146
 
File without changes
@@ -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;AAe5B;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,CA4KrB"}
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;AAe5B;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
@@ -34,100 +34,152 @@ export async function compareMany(pairs, opts) {
34
34
  duplicate: 0,
35
35
  gitignore: 0,
36
36
  };
37
- for (const { envName, envPath, examplePath } of pairs) {
38
- const exampleName = path.basename(examplePath);
39
- // Check if files exist
40
- const envExists = fs.existsSync(envPath);
41
- const exampleExists = fs.existsSync(examplePath);
42
- if (!envExists || !exampleExists) {
43
- printErrorNotFound(envExists, exampleExists, envPath, examplePath);
44
- exitWithError = true;
45
- continue;
46
- }
47
- printHeader(envName, exampleName, opts.json ?? false);
48
- // Parse and filter env files
49
- const { current, example, currentKeys, exampleKeys } = parseAndFilterEnv(envPath, examplePath, opts);
50
- // Run checks
51
- const diff = diffEnv(current, example, opts.checkValues);
52
- // Find empty keys in current env
53
- const emptyKeys = Object.entries(current)
54
- .filter(([, v]) => (v ?? '').trim() === '')
55
- .map(([k]) => k);
56
- // Find duplicates
57
- const { dupsEnv, dupsEx } = findDuplicates(envPath, examplePath, opts, run);
58
- // Check gitignore status
59
- const gitignoreIssue = run('gitignore')
60
- ? checkGitignoreStatus({ cwd: opts.cwd, envFile: envName })
61
- : null;
62
- // Collect filtered results
63
- const filtered = {
64
- missing: run('missing') ? diff.missing : [],
65
- extra: run('extra') ? diff.extra : [],
66
- empty: run('empty') ? emptyKeys : [],
67
- mismatches: opts.checkValues ? diff.valueMismatches : [],
68
- duplicatesEnv: run('duplicate') ? dupsEnv : [],
69
- duplicatesEx: run('duplicate') ? dupsEx : [],
70
- gitignoreIssue,
71
- };
72
- // Print stats if requested
73
- if (opts.showStats && !opts.json) {
74
- const stats = calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, opts.checkValues);
75
- printStats(envName, exampleName, stats, filtered, opts.json ?? false, opts.showStats ?? true, opts.checkValues ?? false);
76
- }
77
- // Check if all is OK
78
- const allOk = isAllOk(filtered);
79
- // Print duplicates
80
- printDuplicates(envName, exampleName, dupsEnv, dupsEx, opts.json ?? false, opts.fix ?? false);
81
- // Calculate stats for JSON entry
82
- const stats = calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, opts.checkValues);
83
- // Build JSON entry with all the data
84
- const entry = compareJsonOutput({
85
- envName,
86
- exampleName,
87
- dupsEnv,
88
- dupsEx,
89
- gitignoreIssue,
90
- ok: allOk,
91
- filtered,
92
- stats,
93
- });
94
- // Track errors and update totals
95
- const shouldExit = updateTotals(filtered, totals, entry);
96
- if (shouldExit) {
97
- exitWithError = true;
98
- }
99
- // Print all issues
100
- printIssues(filtered, opts.json ?? false, opts.fix ?? false);
101
- if (filtered.gitignoreIssue && !opts.json && !opts.fix) {
102
- printGitignoreWarning({
103
- envFile: envName,
104
- reason: filtered.gitignoreIssue.reason,
105
- });
106
- }
107
- const hasGitignoreIssue = filtered.gitignoreIssue !== null;
108
- printFixTips(filtered, hasGitignoreIssue, opts.json ?? false, opts.fix ?? false);
109
- // Apply auto-fix if requested
110
- if (opts.fix) {
111
- const { changed, result } = applyFixes({
112
- envPath,
113
- missingKeys: filtered.missing,
114
- duplicateKeys: dupsEnv.map((d) => d.key),
115
- ensureGitignore: hasGitignoreIssue,
116
- });
117
- const fixContext = {
118
- ...result,
119
- fixApplied: changed,
120
- };
121
- printAutoFix(fixContext, envName, opts.json ?? false);
122
- }
123
- opts.collect?.(entry);
124
- // In strict mode, any issue (not just errors) causes exit with error
125
- if (opts.strict && !allOk) {
37
+ for (const pair of pairs) {
38
+ if (processPair(pair, opts, run, totals)) {
126
39
  exitWithError = true;
127
40
  }
128
41
  }
129
42
  return { exitWithError };
130
43
  }
44
+ /**
45
+ * Processes a single env/example pair end-to-end.
46
+ * Handles validation, comparison, output, totals update and strict-mode exit logic.
47
+ * @param pair The env/example pair to process.
48
+ * @param opts The comparison options.
49
+ * @param run Category filter function.
50
+ * @param totals Running totals used for final summary.
51
+ * @returns True if this pair should cause exit with error.
52
+ */
53
+ function processPair(pair, opts, run, totals) {
54
+ const { envName, envPath, examplePath } = pair;
55
+ if (!validatePairFiles(envPath, examplePath)) {
56
+ return true;
57
+ }
58
+ const computation = computePairComparison(pair, opts, run);
59
+ const { exampleName, filtered, dupsEnv, dupsEx, currentKeys, exampleKeys } = computation;
60
+ printHeader(envName, exampleName, opts.json ?? false);
61
+ const stats = calculateStats(currentKeys, exampleKeys, dupsEnv, dupsEx, filtered, opts.checkValues);
62
+ maybePrintStats(envName, exampleName, stats, filtered, opts);
63
+ const allOk = isAllOk(filtered);
64
+ printDuplicates(envName, exampleName, dupsEnv, dupsEx, opts.json ?? false, opts.fix ?? false);
65
+ const entry = compareJsonOutput({
66
+ envName,
67
+ exampleName,
68
+ dupsEnv,
69
+ dupsEx,
70
+ gitignoreIssue: computation.gitignoreIssue,
71
+ ok: allOk,
72
+ filtered,
73
+ stats,
74
+ });
75
+ const shouldExitFromTotals = updateTotals(filtered, totals, entry);
76
+ printPairOutputs(envName, envPath, filtered, dupsEnv, opts);
77
+ opts.collect?.(entry);
78
+ const shouldExitFromStrict = Boolean(opts.strict && !allOk);
79
+ return shouldExitFromTotals || shouldExitFromStrict;
80
+ }
81
+ /**
82
+ * Validates that both input files exist before comparison.
83
+ * Prints a not-found error when either file is missing.
84
+ * @param envPath Path to the env file.
85
+ * @param examplePath Path to the example file.
86
+ * @returns True when both files exist, otherwise false.
87
+ */
88
+ function validatePairFiles(envPath, examplePath) {
89
+ const envExists = fs.existsSync(envPath);
90
+ const exampleExists = fs.existsSync(examplePath);
91
+ if (!envExists || !exampleExists) {
92
+ printErrorNotFound(envExists, exampleExists, envPath, examplePath);
93
+ return false;
94
+ }
95
+ return true;
96
+ }
97
+ /**
98
+ * Computes all comparison data for a single file pair.
99
+ * Includes parsed keys, diffs, empty keys, duplicates and optional gitignore status.
100
+ * @param pair The env/example pair to compare.
101
+ * @param opts The comparison options.
102
+ * @param run Category filter function.
103
+ * @returns Structured comparison data used by output and summary steps.
104
+ */
105
+ function computePairComparison(pair, opts, run) {
106
+ const { envName, envPath, examplePath } = pair;
107
+ const exampleName = path.basename(examplePath);
108
+ const { current, example, currentKeys, exampleKeys } = parseAndFilterEnv(envPath, examplePath, opts);
109
+ const diff = diffEnv(current, example, opts.checkValues);
110
+ const emptyKeys = Object.entries(current)
111
+ .filter(([, v]) => (v ?? '').trim() === '')
112
+ .map(([k]) => k);
113
+ const { dupsEnv, dupsEx } = findDuplicates(envPath, examplePath, opts, run);
114
+ const gitignoreIssue = run('gitignore')
115
+ ? checkGitignoreStatus({ cwd: opts.cwd, envFile: envName })
116
+ : null;
117
+ const filtered = {
118
+ missing: run('missing') ? diff.missing : [],
119
+ extra: run('extra') ? diff.extra : [],
120
+ empty: run('empty') ? emptyKeys : [],
121
+ mismatches: opts.checkValues ? diff.valueMismatches : [],
122
+ duplicatesEnv: run('duplicate') ? dupsEnv : [],
123
+ duplicatesEx: run('duplicate') ? dupsEx : [],
124
+ gitignoreIssue,
125
+ };
126
+ return {
127
+ exampleName,
128
+ filtered,
129
+ dupsEnv,
130
+ dupsEx,
131
+ currentKeys,
132
+ exampleKeys,
133
+ gitignoreIssue,
134
+ };
135
+ }
136
+ /**
137
+ * Prints stats for a pair when stats output is enabled and JSON output is disabled.
138
+ * @param envName Name of the env file.
139
+ * @param exampleName Name of the example file.
140
+ * @param stats Computed stats for this comparison.
141
+ * @param filtered Filtered result payload for issue counts.
142
+ * @param opts Comparison options controlling output behavior.
143
+ * @returns void
144
+ */
145
+ function maybePrintStats(envName, exampleName, stats, filtered, opts) {
146
+ if (!opts.showStats || opts.json)
147
+ return;
148
+ printStats(envName, exampleName, stats, filtered, opts.json ?? false, opts.showStats ?? true, opts.checkValues ?? false);
149
+ }
150
+ /**
151
+ * Prints issue/fix related outputs for a pair and optionally runs auto-fix.
152
+ * @param envName Name of the env file.
153
+ * @param envPath Path to the env file.
154
+ * @param filtered Filtered comparison results for this pair.
155
+ * @param dupsEnv Duplicate key entries found in env file.
156
+ * @param opts Comparison options controlling output and fix behavior.
157
+ * @returns void
158
+ */
159
+ function printPairOutputs(envName, envPath, filtered, dupsEnv, opts) {
160
+ printIssues(filtered, opts.json ?? false, opts.fix ?? false);
161
+ if (filtered.gitignoreIssue && !opts.json && !opts.fix) {
162
+ printGitignoreWarning({
163
+ envFile: envName,
164
+ reason: filtered.gitignoreIssue.reason,
165
+ });
166
+ }
167
+ const hasGitignoreIssue = filtered.gitignoreIssue !== null;
168
+ printFixTips(filtered, hasGitignoreIssue, opts.json ?? false, opts.fix ?? false);
169
+ if (!opts.fix)
170
+ return;
171
+ const { changed, result } = applyFixes({
172
+ envPath,
173
+ missingKeys: filtered.missing,
174
+ duplicateKeys: dupsEnv.map((d) => d.key),
175
+ ensureGitignore: hasGitignoreIssue,
176
+ });
177
+ const fixContext = {
178
+ ...result,
179
+ fixApplied: changed,
180
+ };
181
+ printAutoFix(fixContext, envName, opts.json ?? false);
182
+ }
131
183
  /**
132
184
  * Creates a category filter function based on options.
133
185
  * fx: onlyFiltering({ only: ['missing', 'extra'] })
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,SAAS,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,oEAKzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,8BAA8B,mBAA8B,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kEAMrB,CAAC;AAGX;;GAEG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,OAAO,SAAS,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,oEAKzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,8BAA8B,mBAA8B,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kEAMrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gBAAgB;IAChB,oBAAoB;IACpB,YAAY;IACZ,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,OAAO;IACP,OAAO;IACP,WAAW;IACX,WAAW;CACH,CAAC;AAGX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gBAAgB;IAChB,oBAAoB;IACpB,YAAY;IACZ,iBAAiB;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,OAAO;IACP,OAAO;IACP,WAAW;IACX,WAAW;CACH,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
@@ -33,7 +33,7 @@ export function normalizeOptions(raw) {
33
33
  const noColor = toBool(raw.noColor);
34
34
  const compare = toBool(raw.compare);
35
35
  const strict = toBool(raw.strict);
36
- const scanUsage = raw.scanUsage ?? !compare;
36
+ const scanUsage = raw.scanUsage != null ? toBool(raw.scanUsage) : !compare;
37
37
  const showUnused = raw.showUnused !== false;
38
38
  const showStats = raw.showStats !== false;
39
39
  const secrets = raw.secrets !== false;