dotenv-diff 2.4.9 → 2.4.11

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 (84) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/src/cli/run.js +3 -3
  3. package/dist/src/cli/run.js.map +1 -1
  4. package/dist/src/commands/compare.d.ts.map +1 -1
  5. package/dist/src/commands/compare.js +28 -31
  6. package/dist/src/commands/compare.js.map +1 -1
  7. package/dist/src/commands/ensureFilesOrPrompt.d.ts.map +1 -1
  8. package/dist/src/commands/ensureFilesOrPrompt.js +9 -5
  9. package/dist/src/commands/ensureFilesOrPrompt.js.map +1 -1
  10. package/dist/src/commands/scanUsage.js +3 -3
  11. package/dist/src/commands/scanUsage.js.map +1 -1
  12. package/dist/src/config/constants.d.ts +7 -0
  13. package/dist/src/config/constants.d.ts.map +1 -1
  14. package/dist/src/config/constants.js +7 -0
  15. package/dist/src/config/constants.js.map +1 -1
  16. package/dist/src/config/types.d.ts +15 -6
  17. package/dist/src/config/types.d.ts.map +1 -1
  18. package/dist/src/config/types.js +1 -1
  19. package/dist/src/config/types.js.map +1 -1
  20. package/dist/src/core/duplicates.d.ts.map +1 -1
  21. package/dist/src/core/duplicates.js +0 -2
  22. package/dist/src/core/duplicates.js.map +1 -1
  23. package/dist/src/core/frameworks/sveltekitRules.d.ts.map +1 -1
  24. package/dist/src/core/frameworks/sveltekitRules.js +32 -14
  25. package/dist/src/core/frameworks/sveltekitRules.js.map +1 -1
  26. package/dist/src/core/parseAndFilterEnv.d.ts +20 -0
  27. package/dist/src/core/parseAndFilterEnv.d.ts.map +1 -0
  28. package/dist/src/core/parseAndFilterEnv.js +22 -0
  29. package/dist/src/core/parseAndFilterEnv.js.map +1 -0
  30. package/dist/src/core/patterns.d.ts +5 -0
  31. package/dist/src/core/patterns.d.ts.map +1 -1
  32. package/dist/src/core/patterns.js +14 -2
  33. package/dist/src/core/patterns.js.map +1 -1
  34. package/dist/src/core/scanFile.d.ts.map +1 -1
  35. package/dist/src/core/scanFile.js +3 -1
  36. package/dist/src/core/scanFile.js.map +1 -1
  37. package/dist/src/core/security/exampleSecretDetector.d.ts.map +1 -1
  38. package/dist/src/core/security/exampleSecretDetector.js +2 -13
  39. package/dist/src/core/security/exampleSecretDetector.js.map +1 -1
  40. package/dist/src/services/detectEnvExpirations.d.ts +14 -0
  41. package/dist/src/services/detectEnvExpirations.d.ts.map +1 -0
  42. package/dist/src/services/detectEnvExpirations.js +44 -0
  43. package/dist/src/services/detectEnvExpirations.js.map +1 -0
  44. package/dist/src/services/envPairing.d.ts +2 -6
  45. package/dist/src/services/envPairing.d.ts.map +1 -1
  46. package/dist/src/services/envPairing.js +6 -3
  47. package/dist/src/services/envPairing.js.map +1 -1
  48. package/dist/src/services/fileWalker.d.ts.map +1 -1
  49. package/dist/src/services/fileWalker.js +0 -5
  50. package/dist/src/services/fileWalker.js.map +1 -1
  51. package/dist/src/services/git.d.ts +5 -7
  52. package/dist/src/services/git.d.ts.map +1 -1
  53. package/dist/src/services/git.js +16 -17
  54. package/dist/src/services/git.js.map +1 -1
  55. package/dist/src/services/processComparisonFile.d.ts +43 -0
  56. package/dist/src/services/processComparisonFile.d.ts.map +1 -0
  57. package/dist/src/services/processComparisonFile.js +170 -0
  58. package/dist/src/services/processComparisonFile.js.map +1 -0
  59. package/dist/src/services/scanCodebase.d.ts.map +1 -1
  60. package/dist/src/services/scanCodebase.js +3 -2
  61. package/dist/src/services/scanCodebase.js.map +1 -1
  62. package/dist/src/ui/compare/compareJsonOutput.d.ts +23 -0
  63. package/dist/src/ui/compare/compareJsonOutput.d.ts.map +1 -0
  64. package/dist/src/ui/compare/compareJsonOutput.js +45 -0
  65. package/dist/src/ui/compare/compareJsonOutput.js.map +1 -0
  66. package/dist/src/ui/compare/printErrorNotFound.d.ts.map +1 -1
  67. package/dist/src/ui/compare/printErrorNotFound.js +3 -0
  68. package/dist/src/ui/compare/printErrorNotFound.js.map +1 -1
  69. package/dist/src/ui/compare/printHeader.d.ts +1 -1
  70. package/dist/src/ui/compare/printHeader.d.ts.map +1 -1
  71. package/dist/src/ui/compare/printHeader.js +1 -4
  72. package/dist/src/ui/compare/printHeader.js.map +1 -1
  73. package/dist/src/ui/scan/printStats.d.ts.map +1 -1
  74. package/dist/src/ui/scan/printStats.js +1 -1
  75. package/dist/src/ui/scan/printStats.js.map +1 -1
  76. package/dist/src/ui/scan/scanJsonOutput.d.ts +85 -0
  77. package/dist/src/ui/scan/scanJsonOutput.d.ts.map +1 -0
  78. package/dist/src/ui/scan/scanJsonOutput.js +97 -0
  79. package/dist/src/ui/scan/scanJsonOutput.js.map +1 -0
  80. package/dist/src/ui/shared/printGitignore.d.ts +4 -3
  81. package/dist/src/ui/shared/printGitignore.d.ts.map +1 -1
  82. package/dist/src/ui/shared/printGitignore.js +2 -1
  83. package/dist/src/ui/shared/printGitignore.js.map +1 -1
  84. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"sveltekitRules.js","sourceRoot":"","sources":["../../../../src/core/frameworks/sveltekitRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sveltekitRules.js","sourceRoot":"","sources":["../../../../src/core/frameworks/sveltekitRules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ComparisonOptions } from '../config/types.js';
2
+ /**
3
+ * Result of parsing and filtering environment files
4
+ */
5
+ interface ParsedAndFilteredEnv {
6
+ current: Record<string, string>;
7
+ example: Record<string, string>;
8
+ currentKeys: string[];
9
+ exampleKeys: string[];
10
+ }
11
+ /**
12
+ * Parses and filters the environment and example files.
13
+ * @param envPath The path to the .env file
14
+ * @param examplePath The path to the .env.example file
15
+ * @param opts Comparison options
16
+ * @returns An object containing the parsed and filtered environment variables
17
+ */
18
+ export declare function parseAndFilterEnv(envPath: string, examplePath: string, opts: ComparisonOptions): ParsedAndFilteredEnv;
19
+ export {};
20
+ //# sourceMappingURL=parseAndFilterEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseAndFilterEnv.d.ts","sourceRoot":"","sources":["../../../src/core/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"}
@@ -0,0 +1,22 @@
1
+ import { parseEnvFile } from './parseEnv.js';
2
+ import { filterIgnoredKeys } from './filterIgnoredKeys.js';
3
+ /**
4
+ * Parses and filters the environment and example files.
5
+ * @param envPath The path to the .env file
6
+ * @param examplePath The path to the .env.example file
7
+ * @param opts Comparison options
8
+ * @returns An object containing the parsed and filtered environment variables
9
+ */
10
+ export function parseAndFilterEnv(envPath, examplePath, opts) {
11
+ const currentFull = parseEnvFile(envPath);
12
+ const exampleFull = parseEnvFile(examplePath);
13
+ const currentKeys = filterIgnoredKeys(Object.keys(currentFull), opts.ignore, opts.ignoreRegex);
14
+ const exampleKeys = filterIgnoredKeys(Object.keys(exampleFull), opts.ignore, opts.ignoreRegex);
15
+ return {
16
+ current: Object.fromEntries(currentKeys.map((k) => [k, currentFull[k] ?? ''])),
17
+ example: Object.fromEntries(exampleKeys.map((k) => [k, exampleFull[k] ?? ''])),
18
+ currentKeys,
19
+ exampleKeys,
20
+ };
21
+ }
22
+ //# sourceMappingURL=parseAndFilterEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseAndFilterEnv.js","sourceRoot":"","sources":["../../../src/core/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"}
@@ -10,4 +10,9 @@ export declare const ENV_PATTERNS: ({
10
10
  })[];
11
11
  export declare const DEFAULT_INCLUDE_EXTENSIONS: string[];
12
12
  export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
13
+ /**
14
+ * default exclude environment variable keys (not expected in .env files)
15
+ * But may be used in code.
16
+ */
17
+ export declare const DEFAULT_EXCLUDE_KEYS: string[];
13
18
  //# sourceMappingURL=patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/core/patterns.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY;;;;;;;;;IA4CxB,CAAC;AAGF,eAAO,MAAM,0BAA0B,UAStC,CAAC;AAGF,eAAO,MAAM,wBAAwB,UAiBpC,CAAC"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/core/patterns.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY;;;;;;;;;IA4CxB,CAAC;AAGF,eAAO,MAAM,0BAA0B,UAStC,CAAC;AAGF,eAAO,MAAM,wBAAwB,UAiBpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAOhC,CAAC"}
@@ -18,10 +18,10 @@ export const ENV_PATTERNS = [
18
18
  regex: /import\s*\{\s*([A-Z_][A-Z0-9_]*)\s*\}\s*from\s*['"]\$env\/static\/(?:private|public)['"]/g,
19
19
  },
20
20
  // SvelteKit dynamic env object
21
- // env.SECRET
21
+ // env.SECRET (Only matches .env variables accessed via env.VAR syntax)
22
22
  {
23
23
  name: 'sveltekit',
24
- regex: /(?<!import\.meta\.)\benv\.([A-Z_][A-Z0-9_]*)/g,
24
+ regex: /(?<![.\w])env\.([A-Z_][A-Z0-9_]*)/g,
25
25
  },
26
26
  // named import from dynamic is invalid in SvelteKit
27
27
  // import { env } from '$env/dynamic/private';
@@ -66,4 +66,16 @@ export const DEFAULT_EXCLUDE_PATTERNS = [
66
66
  '__tests__',
67
67
  '__mocks__',
68
68
  ];
69
+ /**
70
+ * default exclude environment variable keys (not expected in .env files)
71
+ * But may be used in code.
72
+ */
73
+ export const DEFAULT_EXCLUDE_KEYS = [
74
+ 'NODE_ENV',
75
+ 'MODE',
76
+ 'BASE_URL',
77
+ 'PROD',
78
+ 'DEV',
79
+ 'SSR',
80
+ ];
69
81
  //# sourceMappingURL=patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/core/patterns.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB;IAChB;QACE,IAAI,EAAE,aAAsB;QAC5B,KAAK,EAAE,mCAAmC;KAC3C;IAED,oBAAoB;IACpB;QACE,IAAI,EAAE,iBAA0B;QAChC,KAAK,EAAE,wCAAwC;KAChD;IAED,iCAAiC;IACjC,gDAAgD;IAChD,mDAAmD;IACnD;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,2FAA2F;KAC9F;IAED,+BAA+B;IAC/B,aAAa;IACb;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EAAE,+CAA+C;KACvD;IAED,oDAAoD;IACpD,8CAA8C;IAC9C;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,4FAA4F;KAC/F;IAED,8DAA8D;IAC9D,iCAAiC;IACjC;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,6FAA6F;KAChG;CACF,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;CACP,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/core/patterns.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB;IAChB;QACE,IAAI,EAAE,aAAsB;QAC5B,KAAK,EAAE,mCAAmC;KAC3C;IAED,oBAAoB;IACpB;QACE,IAAI,EAAE,iBAA0B;QAChC,KAAK,EAAE,wCAAwC;KAChD;IAED,iCAAiC;IACjC,gDAAgD;IAChD,mDAAmD;IACnD;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,2FAA2F;KAC9F;IAED,+BAA+B;IAC/B,uEAAuE;IACvE;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EAAE,oCAAoC;KAC5C;IAED,oDAAoD;IACpD,8CAA8C;IAC9C;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,4FAA4F;KAC/F;IAED,8DAA8D;IAC9D,iCAAiC;IACjC;QACE,IAAI,EAAE,WAAoB;QAC1B,KAAK,EACH,6FAA6F;KAChG;CACF,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;CACP,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc;IACd,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU;IACV,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scanFile.d.ts","sourceRoot":"","sources":["../../../src/core/scanFile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIhE;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,QAAQ,EAAE,CAoEZ"}
1
+ {"version":3,"file":"scanFile.d.ts","sourceRoot":"","sources":["../../../src/core/scanFile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKhE;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,QAAQ,EAAE,CAsEZ"}
@@ -1,6 +1,7 @@
1
1
  import path from 'path';
2
2
  import { ENV_PATTERNS } from './patterns.js';
3
3
  import { hasIgnoreComment } from './security/secretDetectors.js';
4
+ import { normalizePath } from './helpers/normalizePath.js';
4
5
  /**
5
6
  * Scans a file for environment variable usage.
6
7
  * @param filePath - The path to the file being scanned.
@@ -11,7 +12,8 @@ import { hasIgnoreComment } from './security/secretDetectors.js';
11
12
  export function scanFile(filePath, content, opts) {
12
13
  const usages = [];
13
14
  const lines = content.split('\n');
14
- const relativePath = path.relative(opts.cwd, filePath);
15
+ // Get relative path from cwd corss-platform compatible
16
+ const relativePath = normalizePath(path.relative(opts.cwd, filePath));
15
17
  // Collect all $env imports used in this file
16
18
  const envImports = [];
17
19
  const importRegex = /import\s+(?:\{[^}]*\}|\w+)\s+from\s+['"](\$env\/(?:static|dynamic)\/(?:private|public))['"]/g;
@@ -1 +1 @@
1
- {"version":3,"file":"scanFile.js","sourceRoot":"","sources":["../../../src/core/scanFile.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,QAAgB,EAChB,OAAe,EACf,IAAiB;IAEjB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEvD,6CAA6C;IAC7C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,WAAW,GACf,8FAA8F,CAAC;IAEjG,IAAI,WAAmC,CAAC;IAExC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,KAA6B,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEpE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAE/B,uBAAuB;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,MAAM,GACV,gBAAgB,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,UAAU,GAAG,CAAC;gBAChB,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC;YAEpC,oCAAoC;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhD,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7C,MAAM,SAAS,GACb,gBAAgB,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAE9D,wCAAwC;YACxC,IAAI,SAAS;gBAAE,SAAS;YAExB,uBAAuB;YACvB,MAAM,QAAQ,GAAG,6CAA6C,CAAC,IAAI,CACjE,WAAW,CACZ,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ;gBACR,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,UAAU;gBAChB,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,WAAW;gBACpB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"scanFile.js","sourceRoot":"","sources":["../../../src/core/scanFile.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,QAAgB,EAChB,OAAe,EACf,IAAiB;IAEjB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,uDAAuD;IACvD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtE,6CAA6C;IAC7C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,WAAW,GACf,8FAA8F,CAAC;IAEjG,IAAI,WAAmC,CAAC;IAExC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,KAA6B,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEpE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAE/B,uBAAuB;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,MAAM,GACV,gBAAgB,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,UAAU,GAAG,CAAC;gBAChB,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC;YAEpC,oCAAoC;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhD,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7C,MAAM,SAAS,GACb,gBAAgB,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAE9D,wCAAwC;YACxC,IAAI,SAAS;gBAAE,SAAS;YAExB,uBAAuB;YACvB,MAAM,QAAQ,GAAG,6CAA6C,CAAC,IAAI,CACjE,WAAW,CACZ,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ;gBACR,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,UAAU;gBAChB,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,WAAW;gBACpB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"exampleSecretDetector.d.ts","sourceRoot":"","sources":["../../../../src/core/security/exampleSecretDetector.ts"],"names":[],"mappings":"AAGA,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
+ {"version":3,"file":"exampleSecretDetector.d.ts","sourceRoot":"","sources":["../../../../src/core/security/exampleSecretDetector.ts"],"names":[],"mappings":"AAGA,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,CAgDxB"}
@@ -1,4 +1,4 @@
1
- import { PROVIDER_PATTERNS, SUSPICIOUS_KEYS } from './secretDetectors.js';
1
+ import { PROVIDER_PATTERNS } from './secretDetectors.js';
2
2
  import { shannonEntropyNormalized } from './entropy.js';
3
3
  /**
4
4
  * Detects potential secrets in a .env.example file.
@@ -32,18 +32,7 @@ export function detectSecretsInExample(env) {
32
32
  continue;
33
33
  }
34
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)
35
+ // 3 — Check entropy (high randomness → real secret)
47
36
  if (value.length >= 24) {
48
37
  const entropy = shannonEntropyNormalized(value);
49
38
  if (entropy > 0.8) {
@@ -1 +1 @@
1
- {"version":3,"file":"exampleSecretDetector.js","sourceRoot":"","sources":["../../../../src/core/security/exampleSecretDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AASxD;;;;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
+ {"version":3,"file":"exampleSecretDetector.js","sourceRoot":"","sources":["../../../../src/core/security/exampleSecretDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AASxD;;;;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,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"}
@@ -0,0 +1,14 @@
1
+ import type { ExpireWarning } from '../config/types.js';
2
+ /**
3
+ * Detects expiration warnings in a dotenv file.
4
+ * fx:
5
+ *
6
+ * # @expire 2024-12-31
7
+ * API_KEY=
8
+ *
9
+ * This will generate a warning that API_KEY expires on 2024-12-31.
10
+ * @param filePath - Path to the dotenv file
11
+ * @returns Array of expiration warnings
12
+ */
13
+ export declare function detectEnvExpirations(filePath: string): ExpireWarning[];
14
+ //# sourceMappingURL=detectEnvExpirations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectEnvExpirations.d.ts","sourceRoot":"","sources":["../../../src/services/detectEnvExpirations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CA0CtE"}
@@ -0,0 +1,44 @@
1
+ import fs from 'fs';
2
+ /**
3
+ * Detects expiration warnings in a dotenv file.
4
+ * fx:
5
+ *
6
+ * # @expire 2024-12-31
7
+ * API_KEY=
8
+ *
9
+ * This will generate a warning that API_KEY expires on 2024-12-31.
10
+ * @param filePath - Path to the dotenv file
11
+ * @returns Array of expiration warnings
12
+ */
13
+ export function detectEnvExpirations(filePath) {
14
+ const lines = fs.readFileSync(filePath, 'utf8').split('\n');
15
+ const warnings = [];
16
+ const reg = /(\/\/|#)?\s*@?expire\s+(\d{4}-\d{2}-\d{2})/i;
17
+ let pendingExpire = null;
18
+ for (const raw of lines) {
19
+ const line = raw.trim();
20
+ const expireMatch = line.match(reg);
21
+ if (expireMatch) {
22
+ pendingExpire = expireMatch[2] ?? null; // capture dato
23
+ continue;
24
+ }
25
+ const isEnvKey = /^[A-Za-z0-9_.-]+=/.test(line);
26
+ if (isEnvKey) {
27
+ const key = line.split('=')[0];
28
+ if (key && pendingExpire) {
29
+ const expireDate = new Date(pendingExpire);
30
+ const now = new Date();
31
+ const diffMs = expireDate.getTime() - now.getTime();
32
+ const diffDays = Math.ceil(diffMs / (1000 * 60 * 60 * 24));
33
+ warnings.push({
34
+ key,
35
+ date: pendingExpire,
36
+ daysLeft: diffDays,
37
+ });
38
+ pendingExpire = null;
39
+ }
40
+ }
41
+ }
42
+ return warnings;
43
+ }
44
+ //# sourceMappingURL=detectEnvExpirations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectEnvExpirations.js","sourceRoot":"","sources":["../../../src/services/detectEnvExpirations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5D,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,MAAM,GAAG,GAAG,6CAA6C,CAAC;IAE1D,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe;YACvD,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAE3D,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG;oBACH,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;gBAEH,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,12 +1,8 @@
1
- import type { Discovery } from './envDiscovery.js';
1
+ import type { FilePair, Discovery } from '../config/types.js';
2
2
  /**
3
3
  * Pairs each environment file with its corresponding example file.
4
4
  * @param d - The discovery object containing environment and example file information.
5
5
  * @returns An array of objects containing the environment name, path, and example path.
6
6
  */
7
- export declare function pairWithExample(d: Discovery): Array<{
8
- envName: string;
9
- envPath: string;
10
- examplePath: string;
11
- }>;
7
+ export declare function envPairing(d: Discovery): Array<FilePair>;
12
8
  //# sourceMappingURL=envPairing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"envPairing.d.ts","sourceRoot":"","sources":["../../../src/services/envPairing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,SAAS,GACX,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAiClE"}
1
+ {"version":3,"file":"envPairing.d.ts","sourceRoot":"","sources":["../../../src/services/envPairing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAgCxD"}
@@ -1,11 +1,12 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import { DEFAULT_ENV_FILE, DEFAULT_EXAMPLE_FILE } from '../config/constants.js';
3
4
  /**
4
5
  * Pairs each environment file with its corresponding example file.
5
6
  * @param d - The discovery object containing environment and example file information.
6
7
  * @returns An array of objects containing the environment name, path, and example path.
7
8
  */
8
- export function pairWithExample(d) {
9
+ export function envPairing(d) {
9
10
  const pairs = [];
10
11
  const list = d.envFiles.length > 0 ? d.envFiles : [d.primaryEnv];
11
12
  for (const envName of list) {
@@ -14,8 +15,10 @@ export function pairWithExample(d) {
14
15
  if (envAbs === path.resolve(d.cwd, d.primaryExample))
15
16
  continue;
16
17
  }
17
- const suffix = envName === '.env' ? '' : envName.replace('.env', '');
18
- const exampleName = suffix ? `.env.example${suffix}` : d.primaryExample;
18
+ const suffix = envName === DEFAULT_ENV_FILE ? '' : envName.replace(DEFAULT_ENV_FILE, '');
19
+ const exampleName = suffix
20
+ ? `${DEFAULT_EXAMPLE_FILE}${suffix}`
21
+ : d.primaryExample;
19
22
  const envPathCurrent = path.resolve(d.cwd, envName);
20
23
  const examplePathCurrent = d.exampleFlag && !d.envFlag
21
24
  ? path.resolve(d.cwd, d.primaryExample)
@@ -1 +1 @@
1
- {"version":3,"file":"envPairing.js","sourceRoot":"","sources":["../../../src/services/envPairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAY;IAEZ,MAAM,KAAK,GAIN,EAAE,CAAC;IACR,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAEjE,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC;gBAAE,SAAS;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAExE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,kBAAkB,GACtB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;QAE9C,KAAK,CAAC,IAAI,CAAC;YACT,OAAO;YACP,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"envPairing.js","sourceRoot":"","sources":["../../../src/services/envPairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAY;IACrC,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAEjE,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC;gBAAE,SAAS;QACjE,CAAC;QAED,MAAM,MAAM,GACV,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM;YACxB,CAAC,CAAC,GAAG,oBAAoB,GAAG,MAAM,EAAE;YACpC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAErB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,kBAAkB,GACtB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;QAE9C,KAAK,CAAC,IAAI,CAAC;YACT,OAAO;YACP,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileWalker.d.ts","sourceRoot":"","sources":["../../../src/services/fileWalker.ts"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CA+EnB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAkBf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAmBT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAoBT;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgB7E"}
1
+ {"version":3,"file":"fileWalker.d.ts","sourceRoot":"","sources":["../../../src/services/fileWalker.ts"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CA+EnB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAkBf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAmBT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAgBT;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgB7E"}
@@ -211,11 +211,6 @@ export function shouldExclude(fileName, relativePath, patterns) {
211
211
  if (pattern.includes('*')) {
212
212
  return matchesGlobPattern(relativePath, pattern);
213
213
  }
214
- // Special case for test files
215
- if (pattern.includes('.test.') && fileName.includes('.test.'))
216
- return true;
217
- if (pattern.includes('.spec.') && fileName.includes('.spec.'))
218
- return true;
219
214
  return false;
220
215
  });
221
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileWalker.js","sourceRoot":"","sources":["../../../src/services/fileWalker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileWalker.js","sourceRoot":"","sources":["../../../src/services/fileWalker.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { GitignoreIssue } from '../config/types.js';
1
2
  interface GitignoreCheckOptions {
2
3
  /** Project root directory (default: process.cwd()) */
3
4
  cwd?: string;
@@ -17,12 +18,9 @@ export declare function isGitRepo(cwd?: string): boolean;
17
18
  * @returns True if the env file is ignored, false if not, or null if no .gitignore exists.
18
19
  */
19
20
  export declare function isEnvIgnoredByGit(options?: GitignoreCheckOptions): boolean | null;
20
- /**
21
- * Logs a friendly warning if .env is not ignored by Git.
22
- * - Does not hard fail: non-blocking DX.
23
- * - Skips if not in a git repo or if .env does not exist.
24
- * @param options - Options for the warning behavior.
25
- * @returns console.log messages or void
21
+ /** Warns the user if the .env file is not properly ignored by git
22
+ * @param options - Options for the gitignore check.
23
+ * @returns void
26
24
  */
27
25
  export declare function warnIfEnvNotIgnored(options?: GitignoreCheckOptions): void;
28
26
  /**
@@ -32,7 +30,7 @@ export declare function warnIfEnvNotIgnored(options?: GitignoreCheckOptions): vo
32
30
  * @returns Null if no issue, otherwise the reason for the issue.
33
31
  */
34
32
  export declare function checkGitignoreStatus(options?: GitignoreCheckOptions): {
35
- reason: 'no-gitignore' | 'not-ignored';
33
+ reason: GitignoreIssue;
36
34
  } | null;
37
35
  /** Find the git repository root starting from startDir (walk up until ".git").
38
36
  * @param startDir The directory to start searching from
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/services/git.ts"],"names":[],"mappings":"AASA,UAAU,qBAAqB;IAC7B,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,GAAG,SAAgB,GAAG,OAAO,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,qBAA0B,GAClC,OAAO,GAAG,IAAI,CAsBhB;AAmCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,IAAI,CA8B7E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG;IACzE,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC;CACxC,GAAG,IAAI,CAmBP;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/services/git.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,qBAAqB;IAC7B,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,GAAG,SAAgB,GAAG,OAAO,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,qBAA0B,GAClC,OAAO,GAAG,IAAI,CAsBhB;AAmCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,IAAI,CA6B7E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG;IACzE,MAAM,EAAE,cAAc,CAAC;CACxB,GAAG,IAAI,CAsBP;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D"}
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { printGitignoreWarning } from '../ui/shared/printGitignore.js';
4
- import { DEFAULT_ENV_FILE, GITIGNORE_FILE, GIT_DIR, } from '../config/constants.js';
4
+ import { DEFAULT_ENV_FILE, DEFAULT_EXAMPLE_FILE, GITIGNORE_FILE, GIT_DIR, GITIGNORE_ISSUES, } from '../config/constants.js';
5
5
  /** Are we in a git repo? (checks for .git directory in cwd) */
6
6
  export function isGitRepo(cwd = process.cwd()) {
7
7
  return fs.existsSync(path.resolve(cwd, GIT_DIR));
@@ -61,34 +61,30 @@ function getCandidatePatterns(envFile = DEFAULT_ENV_FILE) {
61
61
  function matchesCandidate(pattern, envFile) {
62
62
  return getCandidatePatterns(envFile).has(pattern);
63
63
  }
64
- /**
65
- * Logs a friendly warning if .env is not ignored by Git.
66
- * - Does not hard fail: non-blocking DX.
67
- * - Skips if not in a git repo or if .env does not exist.
68
- * @param options - Options for the warning behavior.
69
- * @returns console.log messages or void
64
+ /** Warns the user if the .env file is not properly ignored by git
65
+ * @param options - Options for the gitignore check.
66
+ * @returns void
70
67
  */
71
68
  export function warnIfEnvNotIgnored(options = {}) {
72
69
  const { cwd = process.cwd(), envFile = DEFAULT_ENV_FILE, log = console.log, } = options;
73
70
  const envPath = path.resolve(cwd, envFile);
74
71
  if (!fs.existsSync(envPath))
75
- return; // No .env file → nothing to warn about
72
+ return;
76
73
  if (!isGitRepo(cwd))
77
- return; // Not a git repo → skip
78
- const gitignorePath = path.resolve(cwd, GITIGNORE_FILE);
79
- if (!fs.existsSync(gitignorePath)) {
74
+ return;
75
+ const ignored = isEnvIgnoredByGit({ cwd, envFile });
76
+ if (ignored === null) {
80
77
  printGitignoreWarning({
81
78
  envFile,
82
- reason: 'no-gitignore',
79
+ reason: GITIGNORE_ISSUES.NO_GITIGNORE,
83
80
  log,
84
81
  });
85
82
  return;
86
83
  }
87
- const ignored = isEnvIgnoredByGit({ cwd, envFile });
88
- if (ignored === false || ignored === null) {
84
+ if (ignored === false) {
89
85
  printGitignoreWarning({
90
86
  envFile,
91
- reason: 'not-ignored',
87
+ reason: GITIGNORE_ISSUES.NOT_IGNORED,
92
88
  log,
93
89
  });
94
90
  }
@@ -101,6 +97,9 @@ export function warnIfEnvNotIgnored(options = {}) {
101
97
  */
102
98
  export function checkGitignoreStatus(options = {}) {
103
99
  const { cwd = process.cwd(), envFile = DEFAULT_ENV_FILE } = options;
100
+ // .env.example is not expected to be gitignored
101
+ if (envFile === DEFAULT_EXAMPLE_FILE)
102
+ return null;
104
103
  const envPath = path.resolve(cwd, envFile);
105
104
  if (!fs.existsSync(envPath))
106
105
  return null;
@@ -108,11 +107,11 @@ export function checkGitignoreStatus(options = {}) {
108
107
  return null;
109
108
  const gitignorePath = path.resolve(cwd, GITIGNORE_FILE);
110
109
  if (!fs.existsSync(gitignorePath)) {
111
- return { reason: 'no-gitignore' };
110
+ return { reason: GITIGNORE_ISSUES.NO_GITIGNORE };
112
111
  }
113
112
  const ignored = isEnvIgnoredByGit({ cwd, envFile });
114
113
  if (ignored === false || ignored === null) {
115
- return { reason: 'not-ignored' };
114
+ return { reason: GITIGNORE_ISSUES.NOT_IGNORED };
116
115
  }
117
116
  return null;
118
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/services/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/services/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processComparisonFile.d.ts","sourceRoot":"","sources":["../../../src/services/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"}