dotenv-diff 2.6.4 โ†’ 2.7.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.
Files changed (132) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -2
  3. package/dist/src/commands/compare.d.ts.map +1 -1
  4. package/dist/src/commands/compare.js +0 -4
  5. package/dist/src/commands/compare.js.map +1 -1
  6. package/dist/src/commands/scanUsage.d.ts.map +1 -1
  7. package/dist/src/commands/scanUsage.js +3 -1
  8. package/dist/src/commands/scanUsage.js.map +1 -1
  9. package/dist/src/config/constants.d.ts +4 -0
  10. package/dist/src/config/constants.d.ts.map +1 -1
  11. package/dist/src/config/constants.js +4 -0
  12. package/dist/src/config/constants.js.map +1 -1
  13. package/dist/src/core/security/exampleSecretDetector.js +2 -2
  14. package/dist/src/core/security/exampleSecretDetector.js.map +1 -1
  15. package/dist/src/services/printScanResult.d.ts.map +1 -1
  16. package/dist/src/services/printScanResult.js +21 -32
  17. package/dist/src/services/printScanResult.js.map +1 -1
  18. package/dist/src/services/scanCodebase.d.ts.map +1 -1
  19. package/dist/src/services/scanCodebase.js +0 -16
  20. package/dist/src/services/scanCodebase.js.map +1 -1
  21. package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -1
  22. package/dist/src/ui/compare/printErrorNotFound.js +10 -6
  23. package/dist/src/ui/compare/printErrorNotFound.js.map +1 -1
  24. package/dist/src/ui/compare/printHeader.d.ts +0 -1
  25. package/dist/src/ui/compare/printHeader.d.ts.map +1 -1
  26. package/dist/src/ui/compare/printHeader.js +3 -4
  27. package/dist/src/ui/compare/printHeader.js.map +1 -1
  28. package/dist/src/ui/compare/printIssues.d.ts.map +1 -1
  29. package/dist/src/ui/compare/printIssues.js +25 -10
  30. package/dist/src/ui/compare/printIssues.js.map +1 -1
  31. package/dist/src/ui/compare/printPrompt.d.ts +1 -1
  32. package/dist/src/ui/compare/printPrompt.d.ts.map +1 -1
  33. package/dist/src/ui/compare/printPrompt.js +24 -7
  34. package/dist/src/ui/compare/printPrompt.js.map +1 -1
  35. package/dist/src/ui/compare/printStats.d.ts.map +1 -1
  36. package/dist/src/ui/compare/printStats.js +14 -11
  37. package/dist/src/ui/compare/printStats.js.map +1 -1
  38. package/dist/src/ui/scan/printComparisonError.js +11 -10
  39. package/dist/src/ui/scan/printComparisonError.js.map +1 -1
  40. package/dist/src/ui/scan/printConsolelogWarning.d.ts +2 -1
  41. package/dist/src/ui/scan/printConsolelogWarning.d.ts.map +1 -1
  42. package/dist/src/ui/scan/printConsolelogWarning.js +11 -9
  43. package/dist/src/ui/scan/printConsolelogWarning.js.map +1 -1
  44. package/dist/src/ui/scan/printExampleWarnings.d.ts +2 -1
  45. package/dist/src/ui/scan/printExampleWarnings.d.ts.map +1 -1
  46. package/dist/src/ui/scan/printExampleWarnings.js +10 -5
  47. package/dist/src/ui/scan/printExampleWarnings.js.map +1 -1
  48. package/dist/src/ui/scan/printExpireWarnings.d.ts +1 -1
  49. package/dist/src/ui/scan/printExpireWarnings.d.ts.map +1 -1
  50. package/dist/src/ui/scan/printExpireWarnings.js +23 -21
  51. package/dist/src/ui/scan/printExpireWarnings.js.map +1 -1
  52. package/dist/src/ui/scan/printFrameworkWarnings.d.ts +2 -1
  53. package/dist/src/ui/scan/printFrameworkWarnings.d.ts.map +1 -1
  54. package/dist/src/ui/scan/printFrameworkWarnings.js +27 -7
  55. package/dist/src/ui/scan/printFrameworkWarnings.js.map +1 -1
  56. package/dist/src/ui/scan/printHeader.d.ts.map +1 -1
  57. package/dist/src/ui/scan/printHeader.js +8 -5
  58. package/dist/src/ui/scan/printHeader.js.map +1 -1
  59. package/dist/src/ui/scan/printHealthScore.d.ts.map +1 -1
  60. package/dist/src/ui/scan/printHealthScore.js +12 -21
  61. package/dist/src/ui/scan/printHealthScore.js.map +1 -1
  62. package/dist/src/ui/scan/printInconsistentNamingWarning.d.ts +2 -1
  63. package/dist/src/ui/scan/printInconsistentNamingWarning.d.ts.map +1 -1
  64. package/dist/src/ui/scan/printInconsistentNamingWarning.js +11 -8
  65. package/dist/src/ui/scan/printInconsistentNamingWarning.js.map +1 -1
  66. package/dist/src/ui/scan/printMissing.d.ts.map +1 -1
  67. package/dist/src/ui/scan/printMissing.js +6 -9
  68. package/dist/src/ui/scan/printMissing.js.map +1 -1
  69. package/dist/src/ui/scan/printMissingExample.d.ts.map +1 -1
  70. package/dist/src/ui/scan/printMissingExample.js +7 -10
  71. package/dist/src/ui/scan/printMissingExample.js.map +1 -1
  72. package/dist/src/ui/scan/printSecrets.d.ts +2 -1
  73. package/dist/src/ui/scan/printSecrets.d.ts.map +1 -1
  74. package/dist/src/ui/scan/printSecrets.js +15 -24
  75. package/dist/src/ui/scan/printSecrets.js.map +1 -1
  76. package/dist/src/ui/scan/printStats.d.ts +0 -1
  77. package/dist/src/ui/scan/printStats.d.ts.map +1 -1
  78. package/dist/src/ui/scan/printStats.js +10 -9
  79. package/dist/src/ui/scan/printStats.js.map +1 -1
  80. package/dist/src/ui/scan/printUnused.d.ts +3 -3
  81. package/dist/src/ui/scan/printUnused.d.ts.map +1 -1
  82. package/dist/src/ui/scan/printUnused.js +12 -8
  83. package/dist/src/ui/scan/printUnused.js.map +1 -1
  84. package/dist/src/ui/scan/printUppercaseWarning.d.ts +2 -1
  85. package/dist/src/ui/scan/printUppercaseWarning.d.ts.map +1 -1
  86. package/dist/src/ui/scan/printUppercaseWarning.js +11 -7
  87. package/dist/src/ui/scan/printUppercaseWarning.js.map +1 -1
  88. package/dist/src/ui/shared/printAutoFix.d.ts.map +1 -1
  89. package/dist/src/ui/shared/printAutoFix.js +12 -10
  90. package/dist/src/ui/shared/printAutoFix.js.map +1 -1
  91. package/dist/src/ui/shared/printConfigStatus.d.ts +1 -1
  92. package/dist/src/ui/shared/printConfigStatus.d.ts.map +1 -1
  93. package/dist/src/ui/shared/printConfigStatus.js +13 -10
  94. package/dist/src/ui/shared/printConfigStatus.js.map +1 -1
  95. package/dist/src/ui/shared/printDuplicates.d.ts +2 -1
  96. package/dist/src/ui/shared/printDuplicates.d.ts.map +1 -1
  97. package/dist/src/ui/shared/printDuplicates.js +17 -6
  98. package/dist/src/ui/shared/printDuplicates.js.map +1 -1
  99. package/dist/src/ui/shared/printFixTips.js +7 -7
  100. package/dist/src/ui/shared/printFixTips.js.map +1 -1
  101. package/dist/src/ui/shared/printGitignore.d.ts +2 -0
  102. package/dist/src/ui/shared/printGitignore.d.ts.map +1 -1
  103. package/dist/src/ui/shared/printGitignore.js +13 -12
  104. package/dist/src/ui/shared/printGitignore.js.map +1 -1
  105. package/dist/src/ui/shared/printInitStatus.d.ts +4 -4
  106. package/dist/src/ui/shared/printInitStatus.d.ts.map +1 -1
  107. package/dist/src/ui/shared/printInitStatus.js +14 -11
  108. package/dist/src/ui/shared/printInitStatus.js.map +1 -1
  109. package/dist/src/ui/shared/printOptionErrors.d.ts.map +1 -1
  110. package/dist/src/ui/shared/printOptionErrors.js +19 -5
  111. package/dist/src/ui/shared/printOptionErrors.js.map +1 -1
  112. package/dist/src/ui/theme.d.ts +16 -0
  113. package/dist/src/ui/theme.d.ts.map +1 -0
  114. package/dist/src/ui/theme.js +41 -0
  115. package/dist/src/ui/theme.js.map +1 -0
  116. package/docs/assets/demo.gif +0 -0
  117. package/docs/assets/success.png +0 -0
  118. package/package.json +1 -1
  119. package/dist/src/ui/scan/printProgress.d.ts +0 -22
  120. package/dist/src/ui/scan/printProgress.d.ts.map +0 -1
  121. package/dist/src/ui/scan/printProgress.js +0 -36
  122. package/dist/src/ui/scan/printProgress.js.map +0 -1
  123. package/dist/src/ui/shared/printStrictModeError.d.ts +0 -26
  124. package/dist/src/ui/shared/printStrictModeError.d.ts.map +0 -1
  125. package/dist/src/ui/shared/printStrictModeError.js +0 -41
  126. package/dist/src/ui/shared/printStrictModeError.js.map +0 -1
  127. package/dist/src/ui/shared/printSuccess.d.ts +0 -11
  128. package/dist/src/ui/shared/printSuccess.d.ts.map +0 -1
  129. package/dist/src/ui/shared/printSuccess.js +0 -27
  130. package/dist/src/ui/shared/printSuccess.js.map +0 -1
  131. package/docs/assets/demo1.gif +0 -0
  132. package/docs/assets/success1.png +0 -0
@@ -1,11 +1,11 @@
1
- import chalk from 'chalk';
2
1
  import path from 'path';
2
+ import { label, value, accent, warning, dim, divider, header, } from '../theme.js';
3
3
  /**
4
4
  * User interface messages for environment file operations.
5
5
  *
6
6
  * @description Provides formatted console output for various environment file
7
7
  * comparison and creation scenarios. All methods output styled messages using
8
- * chalk for enhanced readability.
8
+ * theme tokens for enhanced readability.
9
9
  *
10
10
  * @property {Function} noEnvFound - Displays warning when no environment files are detected
11
11
  * @property {Function} missingEnv - Displays warning for a specific missing environment file
@@ -16,23 +16,40 @@ import path from 'path';
16
16
  export const printPrompt = {
17
17
  noEnvFound() {
18
18
  console.log();
19
- console.log(chalk.yellow('โš ๏ธ No .env* or .env.example file found. Skipping comparison.'));
19
+ console.log(`${warning('โ–ธ')} ${header('No env files found')}`);
20
+ console.log(`${divider}`);
21
+ console.log(`${label('Status'.padEnd(26))}${warning('no .env* or .env.example found')}`);
22
+ console.log(`${label('Action'.padEnd(26))}${dim('skipping comparison')}`);
23
+ console.log(`${divider}`);
20
24
  },
21
25
  missingEnv(envPath) {
22
26
  console.log();
23
- console.log(chalk.yellow(`๐Ÿ“„ ${path.basename(envPath)} file not found.`));
27
+ console.log(`${warning('โ–ธ')} ${header('File not found')}`);
28
+ console.log(`${divider}`);
29
+ console.log(`${label('File'.padEnd(26))}${warning(path.basename(envPath))}`);
30
+ console.log(`${divider}`);
24
31
  },
25
32
  skipCreation(fileType) {
26
33
  console.log();
27
- console.log(chalk.gray(`๐Ÿšซ Skipping ${fileType} creation.`));
34
+ console.log(`${dim('โ–ธ')} ${header(`Skipping ${fileType} creation`)}`);
35
+ console.log(`${divider}`);
36
+ console.log(`${divider}`);
28
37
  },
29
38
  envCreated(envPath, examplePath) {
30
39
  console.log();
31
- console.log(chalk.green(`โœ… ${path.basename(envPath)} file created successfully from ${path.basename(examplePath)}.`));
40
+ console.log(`${accent('โ–ธ')} ${header('File created')}`);
41
+ console.log(`${divider}`);
42
+ console.log(`${label('Created'.padEnd(26))}${value(path.basename(envPath))}`);
43
+ console.log(`${label('From'.padEnd(26))}${dim(path.basename(examplePath))}`);
44
+ console.log(`${divider}`);
32
45
  },
33
46
  exampleCreated(examplePath, envPath) {
34
47
  console.log();
35
- console.log(chalk.green(`โœ… ${path.basename(examplePath)} file created successfully from ${path.basename(envPath)}.`));
48
+ console.log(`${accent('โ–ธ')} ${header('File created')}`);
49
+ console.log(`${divider}`);
50
+ console.log(`${label('Created'.padEnd(26))}${value(path.basename(examplePath))}`);
51
+ console.log(`${label('From'.padEnd(26))}${dim(path.basename(envPath))}`);
52
+ console.log(`${divider}`);
36
53
  },
37
54
  };
38
55
  //# sourceMappingURL=printPrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printPrompt.js","sourceRoot":"","sources":["../../../../src/ui/compare/printPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU;QACR,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,+DAA+D,CAChE,CACF,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,YAAY,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,WAAmB;QAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mCAAmC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAC5F,CACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,WAAmB,EAAE,OAAe;QACjD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mCAAmC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAC5F,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"printPrompt.js","sourceRoot":"","sources":["../../../../src/ui/compare/printPrompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"printStats.d.ts","sourceRoot":"","sources":["../../../../src/ui/compare/printStats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,UAAU,YAAY;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,YAAY,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EACvD,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,OAAO,GACnB,IAAI,CA4BN"}
1
+ {"version":3,"file":"printStats.d.ts","sourceRoot":"","sources":["../../../../src/ui/compare/printStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;GAEG;AACH,UAAU,YAAY;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,YAAY,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EACvD,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,OAAO,GACnB,IAAI,CAwBN"}
@@ -1,4 +1,4 @@
1
- import chalk from 'chalk';
1
+ import { label, value, accent, divider, header } from '../theme.js';
2
2
  /**
3
3
  * Print comparison statistics between two environment files.
4
4
  * @param envName The name of the environment file.
@@ -12,21 +12,24 @@ import chalk from 'chalk';
12
12
  export function printStats(envName, exampleName, s, filtered, json, showStats, checkValues) {
13
13
  if (json || !showStats)
14
14
  return;
15
- console.log(chalk.magenta('๐Ÿ“Š Compare Statistics:'));
16
- console.log(chalk.magenta.dim(` Keys in ${envName}: ${s.envCount}`));
17
- console.log(chalk.magenta.dim(` Keys in ${exampleName}: ${s.exampleCount}`));
18
- console.log(chalk.magenta.dim(` Shared keys: ${s.sharedCount}`));
19
- console.log(chalk.magenta.dim(` Missing (in ${envName}): ${filtered.missing.length}`));
15
+ const row = (lbl, val) => console.log(`${label(lbl.padEnd(26))}${value(String(val))}`);
16
+ console.log();
17
+ console.log(`${accent('โ–ธ')} ${header('Compare Statistics')}`);
18
+ console.log(`${divider}`);
19
+ row(`Keys in ${envName}`, s.envCount);
20
+ row(`Keys in ${exampleName}`, s.exampleCount);
21
+ row('Shared keys', s.sharedCount);
22
+ row(`Missing in ${envName}`, filtered.missing.length);
20
23
  if (filtered.extra?.length) {
21
- console.log(chalk.magenta.dim(` Extra (not in ${exampleName}): ${filtered.extra.length}`));
24
+ row(`Extra (not in ${exampleName})`, filtered.extra.length);
22
25
  }
23
26
  if (filtered.empty?.length) {
24
- console.log(chalk.magenta.dim(` Empty values: ${filtered.empty.length}`));
27
+ row('Empty values', filtered.empty.length);
25
28
  }
26
- console.log(chalk.magenta.dim(` Duplicate keys: ${s.duplicateCount}`));
29
+ row('Duplicate keys', s.duplicateCount);
27
30
  if (checkValues) {
28
- console.log(chalk.magenta.dim(` Value mismatches: ${s.valueMismatchCount}`));
31
+ row('Value mismatches', s.valueMismatchCount);
29
32
  }
30
- console.log();
33
+ console.log(`${divider}`);
31
34
  }
32
35
  //# sourceMappingURL=printStats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printStats.js","sourceRoot":"","sources":["../../../../src/ui/compare/printStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,WAAmB,EACnB,CAAe,EACf,QAAuD,EACvD,IAAa,EACb,SAAkB,EAClB,WAAoB;IAEpB,IAAI,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAClE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAC5E,CAAC;IACF,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CACf,oBAAoB,WAAW,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAC7D,CACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"printStats.js","sourceRoot":"","sources":["../../../../src/ui/compare/printStats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBpE;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,WAAmB,EACnB,CAAe,EACf,QAAuD,EACvD,IAAa,EACb,SAAkB,EAClB,WAAoB;IAEpB,IAAI,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO;IAE/B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,GAAoB,EAAE,EAAE,CAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,WAAW,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtC,GAAG,CAAC,WAAW,WAAW,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAC9C,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAClC,GAAG,CAAC,cAAc,OAAO,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,iBAAiB,WAAW,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import chalk from 'chalk';
1
+ import { error, warning, divider, header } from '../theme.js';
2
2
  /**
3
3
  * Prints a comparison error message.
4
4
  * @param message The error message to print
@@ -7,14 +7,15 @@ import chalk from 'chalk';
7
7
  * @returns An object indicating whether the process should exit
8
8
  */
9
9
  export function printComparisonError(message, shouldExit, json) {
10
- const errorMessage = `โš ๏ธ ${message}`;
11
- if (shouldExit) {
12
- console.log(chalk.red(errorMessage.replace('โš ๏ธ', 'โŒ')));
13
- return { exit: true };
14
- }
15
- if (!json) {
16
- console.log(chalk.yellow(errorMessage));
17
- }
18
- return { exit: false };
10
+ if (json)
11
+ return { exit: false };
12
+ const indicator = shouldExit ? error('โ–ธ') : warning('โ–ธ');
13
+ const colorFn = shouldExit ? error : warning;
14
+ console.log();
15
+ console.log(`${indicator} ${header('Error')}`);
16
+ console.log(`${divider}`);
17
+ console.log(`${colorFn(message)}`);
18
+ console.log(`${divider}`);
19
+ return { exit: shouldExit };
19
20
  }
20
21
  //# sourceMappingURL=printComparisonError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printComparisonError.js","sourceRoot":"","sources":["../../../../src/ui/scan/printComparisonError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,UAAmB,EACnB,IAAa;IAEb,MAAM,YAAY,GAAG,OAAO,OAAO,EAAE,CAAC;IAEtC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"printComparisonError.js","sourceRoot":"","sources":["../../../../src/ui/scan/printComparisonError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,UAAmB,EACnB,IAAa;IAEb,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEjC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC"}
@@ -3,7 +3,8 @@ import type { EnvUsage } from '../../config/types.js';
3
3
  * Print environment variables that were logged using console.log / warn / error.
4
4
  *
5
5
  * @param logged - List of EnvUsage entries where isLogged=true
6
+ * @param strict - Whether strict mode is enabled
6
7
  * @returns true if anything was printed
7
8
  */
8
- export declare function printConsolelogWarning(logged: EnvUsage[]): boolean;
9
+ export declare function printConsolelogWarning(logged: EnvUsage[], strict?: boolean): boolean;
9
10
  //# sourceMappingURL=printConsolelogWarning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"printConsolelogWarning.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printConsolelogWarning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAGtE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAwClE"}
1
+ {"version":3,"file":"printConsolelogWarning.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printConsolelogWarning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAItE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,UAAQ,GACb,OAAO,CAqCT"}
@@ -1,15 +1,20 @@
1
- import chalk from 'chalk';
2
1
  import { normalizePath } from '../../core/helpers/normalizePath.js';
2
+ import { label, warning, error, dim, divider, header, value } from '../theme.js';
3
3
  /**
4
4
  * Print environment variables that were logged using console.log / warn / error.
5
5
  *
6
6
  * @param logged - List of EnvUsage entries where isLogged=true
7
+ * @param strict - Whether strict mode is enabled
7
8
  * @returns true if anything was printed
8
9
  */
9
- export function printConsolelogWarning(logged) {
10
+ export function printConsolelogWarning(logged, strict = false) {
10
11
  if (!logged || logged.length === 0)
11
12
  return false;
12
- console.log(chalk.yellow(`โš ๏ธ Environment variables logged to console:`));
13
+ const indicator = strict ? error('โ–ธ') : warning('โ–ธ');
14
+ const textColor = strict ? error : warning;
15
+ console.log();
16
+ console.log(`${indicator} ${header('Environment variables logged to console')}`);
17
+ console.log(`${divider}`);
13
18
  const grouped = logged.reduce((acc, entry) => {
14
19
  if (!acc[entry.variable])
15
20
  acc[entry.variable] = [];
@@ -17,20 +22,17 @@ export function printConsolelogWarning(logged) {
17
22
  return acc;
18
23
  }, {});
19
24
  for (const [variable, usages] of Object.entries(grouped)) {
20
- console.log(chalk.yellow(` - ${variable}`));
21
- // Deduplicate by file + line (unique locations)
22
25
  const uniqueUsages = Array.from(new Map(usages.map((u) => [`${u.file}:${u.line}`, u])).values());
23
26
  const maxShow = 3;
24
27
  uniqueUsages.slice(0, maxShow).forEach((usage) => {
25
28
  const normalizedFile = normalizePath(usage.file);
26
- console.log(chalk.yellow.dim(` Logged at: ${normalizedFile}:${usage.line}`));
27
- console.log(chalk.gray(` ${usage.context.trim()}`));
29
+ console.log(`${label(variable.padEnd(26))}${textColor(`${normalizedFile}:${usage.line}`)}`);
28
30
  });
29
31
  if (uniqueUsages.length > maxShow) {
30
- console.log(chalk.gray(` ... and ${uniqueUsages.length - maxShow} more locations`));
32
+ console.log(`${label(''.padEnd(26))}${dim(`+${uniqueUsages.length - maxShow} more`)}`);
31
33
  }
32
34
  }
33
- console.log();
35
+ console.log(`${divider}`);
34
36
  return true;
35
37
  }
36
38
  //# sourceMappingURL=printConsolelogWarning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printConsolelogWarning.js","sourceRoot":"","sources":["../../../../src/ui/scan/printConsolelogWarning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAkB;IACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,KAAK,EAAE,EAAE;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE9C,gDAAgD;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAChE,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,CAAC;QAElB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CACpE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,gBAAgB,YAAY,CAAC,MAAM,GAAG,OAAO,iBAAiB,CAC/D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"printConsolelogWarning.js","sourceRoot":"","sources":["../../../../src/ui/scan/printConsolelogWarning.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAkB,EAClB,MAAM,GAAG,KAAK;IAEd,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,KAAK,EAAE,EAAE;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAChE,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,CAAC;QAElB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -2,6 +2,7 @@ import type { ExampleSecretWarning } from '../../config/types.js';
2
2
  /**
3
3
  * Prints example file secret warnings to the console.
4
4
  * @param warnings - List of example file secret warnings
5
+ * @param strict - Whether strict mode is enabled
5
6
  */
6
- export declare function printExampleWarnings(warnings: ExampleSecretWarning[]): void;
7
+ export declare function printExampleWarnings(warnings: ExampleSecretWarning[], strict?: boolean): void;
7
8
  //# sourceMappingURL=printExampleWarnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"printExampleWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printExampleWarnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,oBAAoB,EAAE,GAC/B,IAAI,CAYN"}
1
+ {"version":3,"file":"printExampleWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printExampleWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,oBAAoB,EAAE,EAChC,MAAM,UAAQ,GACb,IAAI,CAeN"}
@@ -1,15 +1,20 @@
1
- import chalk from 'chalk';
1
+ import { label, warning, error, divider, header } from '../theme.js';
2
2
  /**
3
3
  * Prints example file secret warnings to the console.
4
4
  * @param warnings - List of example file secret warnings
5
+ * @param strict - Whether strict mode is enabled
5
6
  */
6
- export function printExampleWarnings(warnings) {
7
+ export function printExampleWarnings(warnings, strict = false) {
7
8
  if (!warnings || warnings.length === 0)
8
9
  return;
9
- console.log(chalk.yellow('๐Ÿšจ Potential real secrets found in .env.example:'));
10
+ const indicator = strict ? error('โ–ธ') : warning('โ–ธ');
11
+ console.log();
12
+ console.log(`${indicator} ${header('Potential secrets in .env.example')}`);
13
+ console.log(`${divider}`);
10
14
  for (const w of warnings) {
11
- console.log(chalk.yellow(` - ${w.key} = "${w.value}" โ†’ ${w.reason} [${w.severity}]`));
15
+ const severityColor = w.severity === 'high' ? error : warning;
16
+ console.log(`${label(w.key.padEnd(26))}${severityColor(`${w.reason} [${w.severity}]`)}`);
12
17
  }
13
- console.log();
18
+ console.log(`${divider}`);
14
19
  }
15
20
  //# sourceMappingURL=printExampleWarnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printExampleWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printExampleWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgC;IAEhC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,GAAG,CAC7D,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"printExampleWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printExampleWarnings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErE;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgC,EAChC,MAAM,GAAG,KAAK;IAEd,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { ExpireWarning } from '../../config/types.js';
2
2
  /**
3
3
  * Prints expiration warnings for environment variables.
4
+ * Only shows variables expiring within the threshold defined in constants or already expired.
4
5
  * @param warnings Array of expiration warnings
5
- * @param isJson Whether to output in JSON format
6
6
  * @returns void
7
7
  */
8
8
  export declare function printExpireWarnings(warnings: ExpireWarning[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"printExpireWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printExpireWarnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,QA0B5D"}
1
+ {"version":3,"file":"printExpireWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printExpireWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CA+BnE"}
@@ -1,31 +1,33 @@
1
- import chalk from 'chalk';
1
+ import { label, value, accent, error, warning, divider, header } from '../theme.js';
2
+ import { EXPIRE_THRESHOLD_DAYS } from '../../config/constants.js';
2
3
  /**
3
4
  * Prints expiration warnings for environment variables.
5
+ * Only shows variables expiring within the threshold defined in constants or already expired.
4
6
  * @param warnings Array of expiration warnings
5
- * @param isJson Whether to output in JSON format
6
7
  * @returns void
7
8
  */
8
9
  export function printExpireWarnings(warnings) {
9
- if (warnings.length === 0)
10
+ const relevant = warnings.filter((w) => w.daysLeft <= EXPIRE_THRESHOLD_DAYS);
11
+ if (relevant.length === 0)
10
12
  return;
11
- console.log(chalk.yellow('โš ๏ธ Expiration warnings:'));
12
- for (const warn of warnings) {
13
- const severity = warn.daysLeft === -1
14
- ? chalk.red('EXPIRED YESTERDAY')
15
- : warn.daysLeft < 0
16
- ? chalk.red(`EXPIRED ${Math.abs(warn.daysLeft)} days ago`)
17
- : warn.daysLeft === 0
18
- ? chalk.red('EXPIRES TODAY')
19
- : warn.daysLeft === 1
20
- ? chalk.red('expires tomorrow')
21
- : warn.daysLeft <= 3
22
- ? chalk.red(`expires in ${warn.daysLeft} days`)
23
- : warn.daysLeft <= 7
24
- ? chalk.yellow(`expires in ${warn.daysLeft} days`)
25
- : chalk.green(`expires in ${warn.daysLeft} days`);
26
- const keyLabel = chalk.yellow(`- ${warn.key.padEnd(15)}`);
27
- console.log(` ${keyLabel} โ†’ ${severity} (${warn.date})`);
28
- }
13
+ const mostUrgent = relevant.reduce((min, w) => Math.min(min, w.daysLeft), Infinity);
14
+ const indicator = mostUrgent <= 0
15
+ ? error('โ–ธ')
16
+ : mostUrgent <= 7
17
+ ? warning('โ–ธ')
18
+ : accent('โ–ธ');
29
19
  console.log();
20
+ console.log(`${indicator} ${header('Expiration warnings')}`);
21
+ console.log(`${divider}`);
22
+ const days = (n) => `${n} ${n === 1 ? 'day' : 'days'}`;
23
+ for (const warn of relevant) {
24
+ const status = warn.daysLeft <= 0
25
+ ? error(`expired ${days(Math.abs(warn.daysLeft))} ago`)
26
+ : warn.daysLeft <= 7
27
+ ? warning(`expires in ${days(warn.daysLeft)}`)
28
+ : value(`expires in ${days(warn.daysLeft)}`);
29
+ console.log(`${label(warn.key.padEnd(26))}${status}`);
30
+ }
31
+ console.log(`${divider}`);
30
32
  }
31
33
  //# sourceMappingURL=printExpireWarnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printExpireWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printExpireWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC;gBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC1D,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC;oBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC;wBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;wBAC/B,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC;4BAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,QAAQ,OAAO,CAAC;4BAC/C,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC;gCAClB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,QAAQ,OAAO,CAAC;gCAClD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,QAAQ,OAAO,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"printExpireWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printExpireWarnings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEpF,MAAM,SAAS,GACb,UAAU,IAAI,CAAC;QACb,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACZ,CAAC,CAAC,UAAU,IAAI,CAAC;YACf,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YACd,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEpB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,IAAI,CAAC;YAChB,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC;gBAClB,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -2,6 +2,7 @@ import type { FrameworkWarning } from '../../config/types.js';
2
2
  /**
3
3
  * Prints environment variable usage warnings to the console.
4
4
  * @param warnings - List of environment variable warnings
5
+ * @param strict - Whether strict mode is enabled
5
6
  */
6
- export declare function printFrameworkWarnings(warnings: FrameworkWarning[]): void;
7
+ export declare function printFrameworkWarnings(warnings: FrameworkWarning[], strict?: boolean): void;
7
8
  //# sourceMappingURL=printFrameworkWarnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"printFrameworkWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printFrameworkWarnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAW/B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAuBzE"}
1
+ {"version":3,"file":"printFrameworkWarnings.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printFrameworkWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAajF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,MAAM,UAAQ,GACb,IAAI,CA+BN"}
@@ -1,4 +1,5 @@
1
- import chalk from 'chalk';
1
+ import { label, warning, error, dim, divider, header, wrapReason } from '../theme.js';
2
+ import { normalizePath } from '../../core/helpers/normalizePath.js';
2
3
  /**
3
4
  * Labels for detected frameworks to display in warnings
4
5
  */
@@ -10,16 +11,35 @@ const FRAMEWORK_LABELS = {
10
11
  /**
11
12
  * Prints environment variable usage warnings to the console.
12
13
  * @param warnings - List of environment variable warnings
14
+ * @param strict - Whether strict mode is enabled
13
15
  */
14
- export function printFrameworkWarnings(warnings) {
16
+ export function printFrameworkWarnings(warnings, strict = false) {
15
17
  if (!warnings || warnings.length === 0)
16
18
  return;
17
- // Deduplicate warnings by variable + file + line + reason
18
- const uniqueWarnings = Array.from(new Map(warnings.map((w) => [`${w.variable}:${w.file}:${w.line}:${w.reason}`, w])).values());
19
- console.log(chalk.yellow(`โš ๏ธ Framework issues (${FRAMEWORK_LABELS[uniqueWarnings[0].framework]}):`));
20
- for (const w of uniqueWarnings) {
21
- console.log(chalk.yellow(` - ${w.variable} (${w.file}:${w.line}) โ†’ ${w.reason}`));
19
+ const frameworkLabel = FRAMEWORK_LABELS[warnings[0].framework];
20
+ const indicator = strict ? error('โ–ธ') : warning('โ–ธ');
21
+ const textColor = strict ? error : warning;
22
+ // Group by variable+reason, collect unique locations
23
+ const grouped = new Map();
24
+ for (const w of warnings) {
25
+ const key = `${w.variable}:${w.reason}`;
26
+ if (!grouped.has(key))
27
+ grouped.set(key, { w, locations: [] });
28
+ const loc = `${normalizePath(w.file)}:${w.line}`;
29
+ if (!grouped.get(key).locations.includes(loc)) {
30
+ grouped.get(key).locations.push(loc);
31
+ }
22
32
  }
23
33
  console.log();
34
+ console.log(`${indicator} ${header(`Framework issues (${frameworkLabel})`)}`);
35
+ console.log(`${divider}`);
36
+ for (const { w, locations } of grouped.values()) {
37
+ console.log(`${label(w.variable.padEnd(26))}${textColor(wrapReason(w.reason, 26))}`);
38
+ for (const loc of locations) {
39
+ console.log(`${label(''.padEnd(26))}${dim(loc)}`);
40
+ }
41
+ }
42
+ console.log(`${divider}`);
43
+ console.log();
24
44
  }
25
45
  //# sourceMappingURL=printFrameworkWarnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printFrameworkWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printFrameworkWarnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;GAEG;AACH,MAAM,gBAAgB,GAAsC;IAC1D,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IACjE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/C,0DAA0D;IAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,IAAI,GAAG,CACL,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAC1E,CAAC,MAAM,EAAE,CACX,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,yBAAyB,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,IAAI,CAC5E,CACF,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"printFrameworkWarnings.js","sourceRoot":"","sources":["../../../../src/ui/scan/printFrameworkWarnings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE;;GAEG;AACH,MAAM,gBAAgB,GAAsC;IAC1D,MAAM,EAAK,SAAS;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAI,mBAAmB;CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA4B,EAC5B,MAAM,GAAG,KAAK;IAEd,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/C,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3C,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwD,CAAC;IAChF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,qBAAqB,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAE1B,KAAK,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"printHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printHeader.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAO1D"}
1
+ {"version":3,"file":"printHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printHeader.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAU1D"}
@@ -1,13 +1,16 @@
1
- import chalk from 'chalk';
1
+ import { accent, label, value, divider, header } from '../theme.js';
2
2
  /**
3
3
  * Prints the header for the scanning output.
4
4
  * @param comparedAgainst Optional string indicating what the codebase is being compared against.
5
5
  * @returns void
6
6
  */
7
7
  export function printHeader(comparedAgainst) {
8
- if (comparedAgainst) {
9
- console.log();
10
- console.log(chalk.cyan(`๐Ÿ“‹ Scanning environment variable usage against: ${comparedAgainst}`));
11
- }
8
+ if (!comparedAgainst)
9
+ return;
10
+ console.log();
11
+ console.log(`${accent('โ–ธ')} ${header('dotenv-diff')}`);
12
+ console.log(`${divider}`);
13
+ console.log(`${label('Comparing against'.padEnd(26))}${value(comparedAgainst)}`);
14
+ console.log(`${divider}`);
12
15
  }
13
16
  //# sourceMappingURL=printHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printHeader.js","sourceRoot":"","sources":["../../../../src/ui/scan/printHeader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,eAAwB;IAClD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,mDAAmD,eAAe,EAAE,CAAC,CACjF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"printHeader.js","sourceRoot":"","sources":["../../../../src/ui/scan/printHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,eAAwB;IAClD,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CACpE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"printHealthScore.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printHealthScore.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,OAAe,GACpB,OAAO,CA2BT"}
1
+ {"version":3,"file":"printHealthScore.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printHealthScore.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,OAAe,GACpB,OAAO,CAkBT"}
@@ -1,3 +1,4 @@
1
+ import { accent, warning, error, divider, header, dim, value } from '../theme.js';
1
2
  import chalk from 'chalk';
2
3
  /**
3
4
  * Print the health score of the project based on scan results.
@@ -6,29 +7,19 @@ import chalk from 'chalk';
6
7
  * @returns Whether the health score was printed.
7
8
  */
8
9
  export function printHealthScore(score, json = false) {
9
- let color = chalk.green;
10
- let emoji = '๐Ÿ’š';
11
- let label = 'Excellent health';
12
10
  if (json)
13
11
  return false;
14
- if (score < 90) {
15
- color = chalk.yellow;
16
- emoji = '๐Ÿ’›';
17
- label = 'Can improve';
18
- }
19
- if (score < 70) {
20
- color = chalk.redBright;
21
- emoji = '๐Ÿงก';
22
- label = 'Needs attention';
23
- }
24
- if (score < 40) {
25
- color = chalk.red;
26
- emoji = '๐Ÿšจ';
27
- label = 'Poor health';
28
- }
29
- console.log(`${emoji} ${color('Project Health Score:')} (${score}/100)`);
30
- console.log(` ${color(label)}`);
31
- console.log('');
12
+ const [indicator, scoreColor, lbl] = score >= 90 ? [accent('โ–ธ'), accent, 'Excellent health']
13
+ : score >= 70 ? [warning('โ–ธ'), warning, 'Can improve']
14
+ : score >= 40 ? [error('โ–ธ'), error, 'Needs attention']
15
+ : [error('โ–ธ'), error, 'Poor health'];
16
+ console.log();
17
+ console.log(`${indicator} ${header('Project Health Score')}`);
18
+ console.log(`${divider}`);
19
+ console.log(`${chalk.hex('#888888')('Score'.padEnd(26))}${scoreColor(`${score}/100`)}`);
20
+ console.log(`${chalk.hex('#888888')('Status'.padEnd(26))}${scoreColor(lbl)}`);
21
+ console.log(`${divider}`);
22
+ console.log();
32
23
  return true;
33
24
  }
34
25
  //# sourceMappingURL=printHealthScore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printHealthScore.js","sourceRoot":"","sources":["../../../../src/ui/scan/printHealthScore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,OAAgB,KAAK;IAErB,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACxB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,KAAK,GAAG,kBAAkB,CAAC;IAE/B,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAEvB,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACrB,KAAK,GAAG,IAAI,CAAC;QACb,KAAK,GAAG,aAAa,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QACxB,KAAK,GAAG,IAAI,CAAC;QACb,KAAK,GAAG,iBAAiB,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;QAClB,KAAK,GAAG,IAAI,CAAC;QACb,KAAK,GAAG,aAAa,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"printHealthScore.js","sourceRoot":"","sources":["../../../../src/ui/scan/printHealthScore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,OAAgB,KAAK;IAErB,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,GAChC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAI,MAAM,EAAG,kBAAkB,CAAC;QAC5D,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAG,OAAO,EAAE,aAAa,CAAC;YACvD,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAK,KAAK,EAAI,iBAAiB,CAAC;gBAC3D,CAAC,CAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAK,KAAK,EAAI,aAAa,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -2,7 +2,8 @@ import type { InconsistentNamingWarning } from '../../config/types.js';
2
2
  /**
3
3
  * Prints warnings about inconsistent naming patterns in environment variables.
4
4
  * @param warnings Array of inconsistent naming warnings
5
+ * @param strict Whether strict mode is enabled
5
6
  * @returns void
6
7
  */
7
- export declare function printInconsistentNamingWarning(warnings: InconsistentNamingWarning[]): void;
8
+ export declare function printInconsistentNamingWarning(warnings: InconsistentNamingWarning[], strict?: boolean): void;
8
9
  //# sourceMappingURL=printInconsistentNamingWarning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"printInconsistentNamingWarning.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printInconsistentNamingWarning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,yBAAyB,EAAE,QActC"}
1
+ {"version":3,"file":"printInconsistentNamingWarning.d.ts","sourceRoot":"","sources":["../../../../src/ui/scan/printInconsistentNamingWarning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGvE;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,yBAAyB,EAAE,EACrC,MAAM,UAAQ,GACb,IAAI,CAeN"}