dotenv-diff 2.5.0 → 2.5.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 (199) hide show
  1. package/CHANGELOG.md +341 -536
  2. package/dist/bin/dotenv-diff.js +0 -0
  3. package/package.json +5 -1
  4. package/dist/cli.d.ts +0 -9
  5. package/dist/cli.js +0 -294
  6. package/dist/diffEnv.d.ts +0 -5
  7. package/dist/diffEnv.js +0 -7
  8. package/dist/index.d.ts +0 -2
  9. package/dist/index.js +0 -2
  10. package/dist/lib/checkGitignore.d.ts +0 -23
  11. package/dist/lib/checkGitignore.js +0 -73
  12. package/dist/lib/diffEnv.d.ts +0 -18
  13. package/dist/lib/diffEnv.js +0 -29
  14. package/dist/lib/parseEnv.d.ts +0 -10
  15. package/dist/lib/parseEnv.js +0 -25
  16. package/dist/parseEnv.d.ts +0 -1
  17. package/dist/parseEnv.js +0 -16
  18. package/dist/src/core/compareScan.d.ts +0 -10
  19. package/dist/src/core/compareScan.d.ts.map +0 -1
  20. package/dist/src/core/compareScan.js +0 -19
  21. package/dist/src/core/compareScan.js.map +0 -1
  22. package/dist/src/core/computeHealthScore.d.ts +0 -8
  23. package/dist/src/core/computeHealthScore.d.ts.map +0 -1
  24. package/dist/src/core/computeHealthScore.js +0 -35
  25. package/dist/src/core/computeHealthScore.js.map +0 -1
  26. package/dist/src/core/cspDetector.d.ts +0 -7
  27. package/dist/src/core/cspDetector.d.ts.map +0 -1
  28. package/dist/src/core/cspDetector.js +0 -38
  29. package/dist/src/core/cspDetector.js.map +0 -1
  30. package/dist/src/core/defaultExcludeKeys.d.ts +0 -7
  31. package/dist/src/core/defaultExcludeKeys.d.ts.map +0 -1
  32. package/dist/src/core/detectClientExposure.d.ts +0 -12
  33. package/dist/src/core/detectClientExposure.d.ts.map +0 -1
  34. package/dist/src/core/detectClientExposure.js +0 -62
  35. package/dist/src/core/detectClientExposure.js.map +0 -1
  36. package/dist/src/core/detectExpirations.d.ts +0 -14
  37. package/dist/src/core/detectExpirations.d.ts.map +0 -1
  38. package/dist/src/core/detectExpirations.js +0 -44
  39. package/dist/src/core/detectExpirations.js.map +0 -1
  40. package/dist/src/core/detectUppercaseKeys.d.ts +0 -9
  41. package/dist/src/core/detectUppercaseKeys.d.ts.map +0 -1
  42. package/dist/src/core/detectUppercaseKeys.js +0 -28
  43. package/dist/src/core/detectUppercaseKeys.js.map +0 -1
  44. package/dist/src/core/determineComparisonFile.d.ts +0 -13
  45. package/dist/src/core/determineComparisonFile.d.ts.map +0 -1
  46. package/dist/src/core/determineComparisonFile.js +0 -33
  47. package/dist/src/core/determineComparisonFile.js.map +0 -1
  48. package/dist/src/core/entropy.d.ts +0 -8
  49. package/dist/src/core/entropy.d.ts.map +0 -1
  50. package/dist/src/core/entropy.js +0 -23
  51. package/dist/src/core/entropy.js.map +0 -1
  52. package/dist/src/core/envDiscovery.d.ts +0 -19
  53. package/dist/src/core/envDiscovery.d.ts.map +0 -1
  54. package/dist/src/core/envDiscovery.js +0 -81
  55. package/dist/src/core/envDiscovery.js.map +0 -1
  56. package/dist/src/core/envPairing.d.ts +0 -8
  57. package/dist/src/core/envPairing.d.ts.map +0 -1
  58. package/dist/src/core/envPairing.js +0 -36
  59. package/dist/src/core/envPairing.js.map +0 -1
  60. package/dist/src/core/envValidator.d.ts +0 -9
  61. package/dist/src/core/envValidator.d.ts.map +0 -1
  62. package/dist/src/core/envValidator.js +0 -103
  63. package/dist/src/core/envValidator.js.map +0 -1
  64. package/dist/src/core/exampleSecretDetector.d.ts +0 -13
  65. package/dist/src/core/exampleSecretDetector.d.ts.map +0 -1
  66. package/dist/src/core/exampleSecretDetector.js +0 -61
  67. package/dist/src/core/exampleSecretDetector.js.map +0 -1
  68. package/dist/src/core/frameworkDetector.d.ts +0 -14
  69. package/dist/src/core/frameworkDetector.d.ts.map +0 -1
  70. package/dist/src/core/frameworkDetector.js +0 -40
  71. package/dist/src/core/frameworkDetector.js.map +0 -1
  72. package/dist/src/core/frameworkValidator.d.ts +0 -10
  73. package/dist/src/core/frameworkValidator.d.ts.map +0 -1
  74. package/dist/src/core/frameworkValidator.js +0 -21
  75. package/dist/src/core/frameworkValidator.js.map +0 -1
  76. package/dist/src/core/frameworks/angularRules.d.ts +0 -4
  77. package/dist/src/core/frameworks/angularRules.d.ts.map +0 -1
  78. package/dist/src/core/helpers/isAllOk.d.ts +0 -9
  79. package/dist/src/core/helpers/isAllOk.d.ts.map +0 -1
  80. package/dist/src/core/helpers/isAllOk.js +0 -16
  81. package/dist/src/core/helpers/isAllOk.js.map +0 -1
  82. package/dist/src/core/helpers/updateTotals.d.ts +0 -19
  83. package/dist/src/core/helpers/updateTotals.d.ts.map +0 -1
  84. package/dist/src/core/helpers/updateTotals.js +0 -37
  85. package/dist/src/core/helpers/updateTotals.js.map +0 -1
  86. package/dist/src/core/parseAndFilterEnv.d.ts +0 -20
  87. package/dist/src/core/parseAndFilterEnv.d.ts.map +0 -1
  88. package/dist/src/core/parseAndFilterEnv.js +0 -22
  89. package/dist/src/core/parseAndFilterEnv.js.map +0 -1
  90. package/dist/src/core/processComparisonFile.d.ts +0 -43
  91. package/dist/src/core/processComparisonFile.d.ts.map +0 -1
  92. package/dist/src/core/processComparisonFile.js +0 -170
  93. package/dist/src/core/processComparisonFile.js.map +0 -1
  94. package/dist/src/core/scan/scanJsonOutput.d.ts +0 -85
  95. package/dist/src/core/scan/scanJsonOutput.d.ts.map +0 -1
  96. package/dist/src/core/scan/scanJsonOutput.js +0 -97
  97. package/dist/src/core/scan/scanJsonOutput.js.map +0 -1
  98. package/dist/src/core/scan/secretDetectors.d.ts +0 -28
  99. package/dist/src/core/scan/secretDetectors.d.ts.map +0 -1
  100. package/dist/src/core/scan/secretDetectors.js +0 -272
  101. package/dist/src/core/scan/secretDetectors.js.map +0 -1
  102. package/dist/src/core/scanFile.d.ts +0 -10
  103. package/dist/src/core/scanFile.d.ts.map +0 -1
  104. package/dist/src/core/scanFile.js +0 -65
  105. package/dist/src/core/scanFile.js.map +0 -1
  106. package/dist/src/core/scanJsonOutput.d.ts +0 -85
  107. package/dist/src/core/scanJsonOutput.d.ts.map +0 -1
  108. package/dist/src/core/scanJsonOutput.js +0 -97
  109. package/dist/src/core/scanJsonOutput.js.map +0 -1
  110. package/dist/src/core/secretDetectors.d.ts +0 -28
  111. package/dist/src/core/secretDetectors.d.ts.map +0 -1
  112. package/dist/src/core/secretDetectors.js +0 -272
  113. package/dist/src/core/secretDetectors.js.map +0 -1
  114. package/dist/src/core/t3env/detectT3Env.d.ts +0 -12
  115. package/dist/src/core/t3env/detectT3Env.d.ts.map +0 -1
  116. package/dist/src/core/t3env/detectT3Env.js +0 -113
  117. package/dist/src/core/t3env/detectT3Env.js.map +0 -1
  118. package/dist/src/core/t3env/t3EnvRules.d.ts +0 -10
  119. package/dist/src/core/t3env/t3EnvRules.d.ts.map +0 -1
  120. package/dist/src/core/t3env/t3EnvRules.js +0 -61
  121. package/dist/src/core/t3env/t3EnvRules.js.map +0 -1
  122. package/dist/src/core/t3env/t3EnvValidator.d.ts +0 -9
  123. package/dist/src/core/t3env/t3EnvValidator.d.ts.map +0 -1
  124. package/dist/src/core/t3env/t3EnvValidator.js +0 -32
  125. package/dist/src/core/t3env/t3EnvValidator.js.map +0 -1
  126. package/dist/src/lib/diffEnv.d.ts +0 -19
  127. package/dist/src/lib/diffEnv.d.ts.map +0 -1
  128. package/dist/src/lib/diffEnv.js +0 -31
  129. package/dist/src/lib/diffEnv.js.map +0 -1
  130. package/dist/src/lib/parseEnv.d.ts +0 -11
  131. package/dist/src/lib/parseEnv.d.ts.map +0 -1
  132. package/dist/src/lib/parseEnv.js +0 -26
  133. package/dist/src/lib/parseEnv.js.map +0 -1
  134. package/dist/src/services/codeBaseScanner.d.ts +0 -8
  135. package/dist/src/services/codeBaseScanner.d.ts.map +0 -1
  136. package/dist/src/services/codeBaseScanner.js +0 -110
  137. package/dist/src/services/codeBaseScanner.js.map +0 -1
  138. package/dist/src/services/duplicates.d.ts +0 -12
  139. package/dist/src/services/duplicates.d.ts.map +0 -1
  140. package/dist/src/services/duplicates.js +0 -36
  141. package/dist/src/services/duplicates.js.map +0 -1
  142. package/dist/src/services/ensureFilesOrPrompt.d.ts +0 -22
  143. package/dist/src/services/ensureFilesOrPrompt.d.ts.map +0 -1
  144. package/dist/src/services/ensureFilesOrPrompt.js +0 -76
  145. package/dist/src/services/ensureFilesOrPrompt.js.map +0 -1
  146. package/dist/src/services/scanOutputToConsole.d.ts +0 -17
  147. package/dist/src/services/scanOutputToConsole.d.ts.map +0 -1
  148. package/dist/src/services/scanOutputToConsole.js +0 -127
  149. package/dist/src/services/scanOutputToConsole.js.map +0 -1
  150. package/dist/src/ui/compare/printAutoFix.d.ts +0 -16
  151. package/dist/src/ui/compare/printAutoFix.d.ts.map +0 -1
  152. package/dist/src/ui/compare/printAutoFix.js +0 -34
  153. package/dist/src/ui/compare/printAutoFix.js.map +0 -1
  154. package/dist/src/ui/compare/printAutoFixApplied.d.ts +0 -7
  155. package/dist/src/ui/compare/printAutoFixApplied.d.ts.map +0 -1
  156. package/dist/src/ui/compare/printAutoFixApplied.js +0 -22
  157. package/dist/src/ui/compare/printAutoFixApplied.js.map +0 -1
  158. package/dist/src/ui/compare/printDuplicates.d.ts +0 -17
  159. package/dist/src/ui/compare/printDuplicates.d.ts.map +0 -1
  160. package/dist/src/ui/compare/printDuplicates.js +0 -25
  161. package/dist/src/ui/compare/printDuplicates.js.map +0 -1
  162. package/dist/src/ui/compare/printFixTips.d.ts +0 -11
  163. package/dist/src/ui/compare/printFixTips.d.ts.map +0 -1
  164. package/dist/src/ui/compare/printFixTips.js +0 -46
  165. package/dist/src/ui/compare/printFixTips.js.map +0 -1
  166. package/dist/src/ui/compare/printSuccess.d.ts +0 -11
  167. package/dist/src/ui/compare/printSuccess.d.ts.map +0 -1
  168. package/dist/src/ui/compare/printSuccess.js +0 -27
  169. package/dist/src/ui/compare/printSuccess.js.map +0 -1
  170. package/dist/src/ui/scan/printCspWarning.d.ts +0 -9
  171. package/dist/src/ui/scan/printCspWarning.d.ts.map +0 -1
  172. package/dist/src/ui/scan/printCspWarning.js +0 -20
  173. package/dist/src/ui/scan/printCspWarning.js.map +0 -1
  174. package/dist/src/ui/scan/printEnvWarnings.d.ts +0 -8
  175. package/dist/src/ui/scan/printEnvWarnings.d.ts.map +0 -1
  176. package/dist/src/ui/scan/printEnvWarnings.js +0 -20
  177. package/dist/src/ui/scan/printEnvWarnings.js.map +0 -1
  178. package/dist/src/ui/scan/printExposedVars.d.ts +0 -8
  179. package/dist/src/ui/scan/printExposedVars.d.ts.map +0 -1
  180. package/dist/src/ui/scan/printExposedVars.js +0 -24
  181. package/dist/src/ui/scan/printExposedVars.js.map +0 -1
  182. package/dist/src/ui/scan/printT3EnvWarnings.d.ts +0 -8
  183. package/dist/src/ui/scan/printT3EnvWarnings.d.ts.map +0 -1
  184. package/dist/src/ui/scan/printT3EnvWarnings.js +0 -20
  185. package/dist/src/ui/scan/printT3EnvWarnings.js.map +0 -1
  186. package/dist/src/ui/scan/printUniqueVariables.d.ts +0 -7
  187. package/dist/src/ui/scan/printUniqueVariables.d.ts.map +0 -1
  188. package/dist/src/ui/scan/printUniqueVariables.js +0 -14
  189. package/dist/src/ui/scan/printUniqueVariables.js.map +0 -1
  190. package/dist/src/ui/scan/printVariables.d.ts +0 -10
  191. package/dist/src/ui/scan/printVariables.d.ts.map +0 -1
  192. package/dist/src/ui/scan/printVariables.js +0 -37
  193. package/dist/src/ui/scan/printVariables.js.map +0 -1
  194. package/dist/src/ui/shared/printProgress.d.ts +0 -24
  195. package/dist/src/ui/shared/printProgress.d.ts.map +0 -1
  196. package/dist/src/ui/shared/printProgress.js +0 -43
  197. package/dist/src/ui/shared/printProgress.js.map +0 -1
  198. package/dist/types/scanUsage.d.ts +0 -43
  199. package/dist/types/scanUsage.d.ts.map +0 -1
@@ -1,103 +0,0 @@
1
- export function validateEnvRules(usages) {
2
- const warnings = [];
3
- for (const u of usages) {
4
- // import.meta.env needs to start with VITE_
5
- if (u.pattern === 'import.meta.env') {
6
- if (!u.variable.startsWith('VITE_')) {
7
- warnings.push({
8
- variable: u.variable,
9
- reason: `Variables accessed through import.meta.env must start with "VITE_"`,
10
- file: u.file,
11
- line: u.line,
12
- });
13
- }
14
- continue;
15
- }
16
- // process.env cannot start with VITE_
17
- if (u.pattern === 'process.env') {
18
- if (u.variable.startsWith('VITE_')) {
19
- warnings.push({
20
- variable: u.variable,
21
- reason: `Variables accessed through process.env cannot start with "VITE_"`,
22
- file: u.file,
23
- line: u.line,
24
- });
25
- }
26
- // Check for .svelte files here (before continue)
27
- if (u.file.endsWith('.svelte')) {
28
- warnings.push({
29
- variable: u.variable,
30
- reason: `Avoid using process.env inside Svelte files — use $env/static/private or $env/static/public`,
31
- file: u.file,
32
- line: u.line,
33
- });
34
- }
35
- continue;
36
- }
37
- // $env/static/private/* - ALL checks together
38
- if (u.pattern === 'sveltekit' &&
39
- u.context.includes('$env/static/private')) {
40
- // Check 1: VITE_ prefix
41
- if (u.variable.startsWith('VITE_')) {
42
- warnings.push({
43
- variable: u.variable,
44
- reason: `$env/static/private variables must not start with "VITE_" (private server env)`,
45
- file: u.file,
46
- line: u.line,
47
- });
48
- }
49
- // Check 2: Usage in .svelte files
50
- if (u.file.match(/\.svelte$/)) {
51
- warnings.push({
52
- variable: u.variable,
53
- reason: `Private environment variables cannot be used in Svelte components (.svelte files)`,
54
- file: u.file,
55
- line: u.line,
56
- });
57
- }
58
- // Check 3: Usage in +page.ts or +layout.ts
59
- if (u.file.match(/\+page\.ts$|\+layout\.ts$/)) {
60
- warnings.push({
61
- variable: u.variable,
62
- reason: `Private env vars should only be used in +page.server.ts or +layout.server.ts`,
63
- file: u.file,
64
- line: u.line,
65
- });
66
- }
67
- // Check 4: PUBLIC_ prefix in private imports
68
- if (u.variable.startsWith('PUBLIC_')) {
69
- warnings.push({
70
- variable: u.variable,
71
- reason: `Variables starting with PUBLIC_ may never be used in private env imports`,
72
- file: u.file,
73
- line: u.line,
74
- });
75
- }
76
- continue;
77
- }
78
- // $env/static/public/*
79
- if (u.pattern === 'sveltekit' && u.context.includes('$env/static/public')) {
80
- if (u.variable.startsWith('VITE_')) {
81
- warnings.push({
82
- variable: u.variable,
83
- reason: `$env/static/public variables must not start with "VITE_"`,
84
- file: u.file,
85
- line: u.line,
86
- });
87
- }
88
- continue;
89
- }
90
- // $env/dynamic/public usage warning
91
- if (u.pattern === 'sveltekit' &&
92
- u.context.includes('$env/dynamic/public')) {
93
- warnings.push({
94
- variable: u.variable,
95
- reason: `$env/dynamic/public is strongly discouraged — use $env/static/public instead for build-time safety`,
96
- file: u.file,
97
- line: u.line,
98
- });
99
- }
100
- }
101
- return warnings;
102
- }
103
- //# sourceMappingURL=envValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envValidator.js","sourceRoot":"","sources":["../../../src/core/envValidator.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export interface ExampleSecretWarning {
2
- key: string;
3
- value: string;
4
- reason: string;
5
- severity: 'high' | 'medium' | 'low';
6
- }
7
- /**
8
- * Detects potential secrets in a .env.example file.
9
- * @param env - An object representing the `.env.example` file (key-value pairs).
10
- * @returns An array of warnings about potential secrets.
11
- */
12
- export declare function detectSecretsInExample(env: Record<string, string>): ExampleSecretWarning[];
13
- //# sourceMappingURL=exampleSecretDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exampleSecretDetector.d.ts","sourceRoot":"","sources":["../../../src/core/exampleSecretDetector.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,oBAAoB,EAAE,CA4DxB"}
@@ -1,61 +0,0 @@
1
- import { PROVIDER_PATTERNS, SUSPICIOUS_KEYS, } from './security/secretDetectors.js';
2
- import { shannonEntropyNormalized } from './security/entropy.js';
3
- /**
4
- * Detects potential secrets in a .env.example file.
5
- * @param env - An object representing the `.env.example` file (key-value pairs).
6
- * @returns An array of warnings about potential secrets.
7
- */
8
- export function detectSecretsInExample(env) {
9
- const warnings = [];
10
- for (const [key, rawValue] of Object.entries(env)) {
11
- if (!rawValue)
12
- continue;
13
- const value = rawValue.trim();
14
- // 1 — Skip placeholders
15
- if (value === '' ||
16
- value.toLowerCase() === 'example' ||
17
- value.toLowerCase() === 'placeholder' ||
18
- value.includes('your_') ||
19
- value.includes('<') ||
20
- value.includes('CHANGE_ME')) {
21
- continue;
22
- }
23
- // 2 — Check provider patterns (AWS, Stripe, GitHub, JWT etc.)
24
- for (const rx of PROVIDER_PATTERNS) {
25
- if (rx.test(value)) {
26
- warnings.push({
27
- key,
28
- value,
29
- reason: 'Value in .env.example matches a known provider key pattern',
30
- severity: 'high',
31
- });
32
- continue;
33
- }
34
- }
35
- // 3 — Check suspicious keywords on values
36
- if (SUSPICIOUS_KEYS.test(key)) {
37
- if (value.length >= 12) {
38
- warnings.push({
39
- key,
40
- value,
41
- reason: 'Suspicious key name combined with a non-placeholder value',
42
- severity: 'medium',
43
- });
44
- }
45
- }
46
- // 4 — Check entropy (high randomness → real secret)
47
- if (value.length >= 24) {
48
- const entropy = shannonEntropyNormalized(value);
49
- if (entropy > 0.8) {
50
- warnings.push({
51
- key,
52
- value,
53
- reason: `High entropy value in .env.example (≈${entropy.toFixed(2)})`,
54
- severity: entropy > 0.92 ? 'high' : 'medium',
55
- });
56
- }
57
- }
58
- }
59
- return warnings;
60
- }
61
- //# sourceMappingURL=exampleSecretDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exampleSecretDetector.js","sourceRoot":"","sources":["../../../src/core/exampleSecretDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AASjE;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAA2B;IAE3B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9B,wBAAwB;QACxB,IACE,KAAK,KAAK,EAAE;YACZ,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS;YACjC,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa;YACrC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,SAAS;QACX,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,KAAK;oBACL,MAAM,EAAE,4DAA4D;oBACpE,QAAQ,EAAE,MAAM;iBACjB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,KAAK;oBACL,MAAM,EAAE,2DAA2D;oBACnE,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,KAAK;oBACL,MAAM,EAAE,wCAAwC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;oBACrE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { DetectedFramework } from '../config/types.js';
2
- interface FrameworkDetection {
3
- framework: DetectedFramework;
4
- version?: string;
5
- }
6
- /**
7
- * Detects the framework being used in the project
8
- * by checking package.json and file structure
9
- * @param cwd The current working directory of the project
10
- * @returns Detected framework and its version (if applicable)
11
- */
12
- export declare function detectFramework(cwd: string): FrameworkDetection;
13
- export {};
14
- //# sourceMappingURL=frameworkDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frameworkDetector.d.ts","sourceRoot":"","sources":["../../../src/core/frameworkDetector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,UAAU,kBAAkB;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAkC/D"}
@@ -1,40 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- /**
4
- * Detects the framework being used in the project
5
- * by checking package.json and file structure
6
- * @param cwd The current working directory of the project
7
- * @returns Detected framework and its version (if applicable)
8
- */
9
- export function detectFramework(cwd) {
10
- try {
11
- const packageJsonPath = path.join(cwd, 'package.json');
12
- if (!fs.existsSync(packageJsonPath)) {
13
- return { framework: 'unknown' };
14
- }
15
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
16
- const deps = {
17
- ...packageJson.dependencies,
18
- ...packageJson.devDependencies,
19
- };
20
- // Check for SvelteKit
21
- if (deps['@sveltejs/kit']) {
22
- return {
23
- framework: 'sveltekit',
24
- version: deps['@sveltejs/kit'],
25
- };
26
- }
27
- // Check for Next.js
28
- if (deps['next']) {
29
- return {
30
- framework: 'nextjs',
31
- version: deps['next'],
32
- };
33
- }
34
- return { framework: 'unknown' };
35
- }
36
- catch {
37
- return { framework: 'unknown' };
38
- }
39
- }
40
- //# sourceMappingURL=frameworkDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frameworkDetector.js","sourceRoot":"","sources":["../../../src/core/frameworkDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG;YACX,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;SAC/B,CAAC;QAEF,sBAAsB;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;aAC/B,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,OAAO;gBACL,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;aACtB,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { EnvUsage, FrameworkWarning } from '../config/types.js';
2
- /**
3
- * Validates environment variable usages against framework-specific rules
4
- * @param usages - Array of environment variable usages
5
- * @param cwd - Current working directory to detect framework
6
- * @param fileContentMap - Map of file paths to their content for detecting client components
7
- * @returns Array of framework-specific warnings
8
- */
9
- export declare function frameworkValidator(usages: EnvUsage[], cwd: string, fileContentMap?: Map<string, string>): FrameworkWarning[];
10
- //# sourceMappingURL=frameworkValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frameworkValidator.d.ts","sourceRoot":"","sources":["../../../src/core/frameworkValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIrE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,EAAE,EAClB,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,gBAAgB,EAAE,CAUpB"}
@@ -1,21 +0,0 @@
1
- import { detectFramework } from './frameworkDetector.js';
2
- import { applySvelteKitRules, applyNextJsRules } from './frameworks/index.js';
3
- /**
4
- * Validates environment variable usages against framework-specific rules
5
- * @param usages - Array of environment variable usages
6
- * @param cwd - Current working directory to detect framework
7
- * @param fileContentMap - Map of file paths to their content for detecting client components
8
- * @returns Array of framework-specific warnings
9
- */
10
- export function frameworkValidator(usages, cwd, fileContentMap) {
11
- const warnings = [];
12
- const { framework } = detectFramework(cwd);
13
- for (const u of usages) {
14
- if (framework === 'sveltekit')
15
- applySvelteKitRules(u, warnings);
16
- if (framework === 'nextjs')
17
- applyNextJsRules(u, warnings, fileContentMap);
18
- }
19
- return warnings;
20
- }
21
- //# sourceMappingURL=frameworkValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frameworkValidator.js","sourceRoot":"","sources":["../../../src/core/frameworkValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAkB,EAClB,GAAW,EACX,cAAoC;IAEpC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,SAAS,KAAK,WAAW;YAAE,mBAAmB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,QAAQ;YAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { EnvUsage } from "../../config/types.js";
2
- import type { frameworkWarning } from "../frameworkValidator.js";
3
- export declare function applyAngularRules(u: EnvUsage, warnings: frameworkWarning[]): void;
4
- //# sourceMappingURL=angularRules.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angularRules.d.ts","sourceRoot":"","sources":["../../../../src/core/frameworks/angularRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,QAAQ,EACX,QAAQ,EAAE,gBAAgB,EAAE,QA0B7B"}
@@ -1,9 +0,0 @@
1
- import type { Filtered } from '../../config/types.js';
2
- /**
3
- * Checks if all filtered comparison results are okay (i.e., no issues found).
4
- * This is used in compare.ts to determine if the comparison passed all checks.
5
- * @param filtered - The filtered comparison results.
6
- * @returns True if all checks pass, false otherwise.
7
- */
8
- export declare function isAllOk(filtered: Filtered): boolean;
9
- //# sourceMappingURL=isAllOk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isAllOk.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/isAllOk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAUnD"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Checks if all filtered comparison results are okay (i.e., no issues found).
3
- * This is used in compare.ts to determine if the comparison passed all checks.
4
- * @param filtered - The filtered comparison results.
5
- * @returns True if all checks pass, false otherwise.
6
- */
7
- export function isAllOk(filtered) {
8
- return (filtered.missing.length === 0 &&
9
- filtered.extra?.length === 0 &&
10
- filtered.empty?.length === 0 &&
11
- filtered.duplicatesEnv.length === 0 &&
12
- filtered.duplicatesEx.length === 0 &&
13
- filtered.mismatches?.length === 0 &&
14
- !filtered.gitignoreIssue);
15
- }
16
- //# sourceMappingURL=isAllOk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isAllOk.js","sourceRoot":"","sources":["../../../../src/core/helpers/isAllOk.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,QAAkB;IACxC,OAAO,CACL,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QACnC,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC;QACjC,CAAC,QAAQ,CAAC,cAAc,CACzB,CAAC;AACJ,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { CompareJsonEntry, Filtered } from '../../config/types.js';
2
- export interface Totals {
3
- missing: number;
4
- extra: number;
5
- empty: number;
6
- mismatch: number;
7
- duplicate: number;
8
- gitignore: number;
9
- }
10
- /**
11
- * Update totals and entry fields based on filtered issues.
12
- * Returns true if any issue requires exitWithError.
13
- * @param filtered filtered issues
14
- * @param totals overall totals
15
- * @param entry current entry to update
16
- * @returns exitWithError
17
- */
18
- export declare function updateTotals(filtered: Filtered, totals: Totals, entry: CompareJsonEntry): boolean;
19
- //# sourceMappingURL=updateTotals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateTotals.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/updateTotals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAExE,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"}
@@ -1,37 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateTotals.js","sourceRoot":"","sources":["../../../../src/core/helpers/updateTotals.ts"],"names":[],"mappings":"AAWA;;;;;;;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"}
@@ -1,20 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseAndFilterEnv.d.ts","sourceRoot":"","sources":["../../../src/core/parseAndFilterEnv.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;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"}
@@ -1,22 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseAndFilterEnv.js","sourceRoot":"","sources":["../../../src/core/parseAndFilterEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAa3D;;;;;;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"}
@@ -1,43 +0,0 @@
1
- import type { ScanUsageOptions, ScanResult, UppercaseWarning, Duplicate } from '../config/types.js';
2
- interface ProcessComparisonResult {
3
- scanResult: ScanResult;
4
- envVariables: Record<string, string | undefined>;
5
- comparedAgainst: string;
6
- duplicatesFound: boolean;
7
- dupsEnv: Duplicate[];
8
- dupsEx: Duplicate[];
9
- fixApplied: boolean;
10
- removedDuplicates: string[];
11
- addedEnv: string[];
12
- addedExample: string[];
13
- gitignoreUpdated: boolean;
14
- exampleFull?: Record<string, string> | undefined;
15
- uppercaseWarnings?: UppercaseWarning[];
16
- expireWarnings?: Array<{
17
- key: string;
18
- date: string;
19
- daysLeft: number;
20
- }>;
21
- inconsistentNamingWarnings?: Array<{
22
- key1: string;
23
- key2: string;
24
- suggestion: string;
25
- }>;
26
- error?: {
27
- message: string;
28
- shouldExit: boolean;
29
- };
30
- }
31
- /**
32
- * Process comparison file: parse env, check duplicates, check missing keys, apply fixes
33
- * @param scanResult - Current scan result
34
- * @param compareFile - File to compare against
35
- * @param opts - Scan options
36
- * @returns Processed comparison result
37
- */
38
- export declare function processComparisonFile(scanResult: ScanResult, compareFile: {
39
- path: string;
40
- name: string;
41
- }, opts: ScanUsageOptions): ProcessComparisonResult;
42
- export {};
43
- //# sourceMappingURL=processComparisonFile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processComparisonFile.d.ts","sourceRoot":"","sources":["../../../src/core/processComparisonFile.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAEV,gBAAgB,EAChB,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,UAAU,uBAAuB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,0BAA0B,CAAC,EAAE,KAAK,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,gBAAgB,GACrB,uBAAuB,CAsJzB"}