commit-cop 1.0.1 → 1.1.1

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 (128) hide show
  1. package/README.md +69 -7
  2. package/dist/brand.d.ts +4 -0
  3. package/dist/brand.d.ts.map +1 -0
  4. package/dist/brand.js +4 -0
  5. package/dist/brand.js.map +1 -0
  6. package/dist/checks/binaryFileCheck.js +2 -2
  7. package/dist/checks/binaryFileCheck.js.map +1 -1
  8. package/dist/checks/consoleLogCheck.d.ts.map +1 -1
  9. package/dist/checks/consoleLogCheck.js +2 -2
  10. package/dist/checks/consoleLogCheck.js.map +1 -1
  11. package/dist/checks/debuggerCheck.d.ts.map +1 -1
  12. package/dist/checks/debuggerCheck.js +2 -2
  13. package/dist/checks/debuggerCheck.js.map +1 -1
  14. package/dist/checks/envFileCheck.d.ts.map +1 -1
  15. package/dist/checks/envFileCheck.js +2 -2
  16. package/dist/checks/envFileCheck.js.map +1 -1
  17. package/dist/checks/focusedTestCheck.js +2 -2
  18. package/dist/checks/focusedTestCheck.js.map +1 -1
  19. package/dist/checks/generatedFolderCheck.js +2 -2
  20. package/dist/checks/generatedFolderCheck.js.map +1 -1
  21. package/dist/checks/junkFileCheck.d.ts.map +1 -1
  22. package/dist/checks/junkFileCheck.js +2 -2
  23. package/dist/checks/junkFileCheck.js.map +1 -1
  24. package/dist/checks/largeFileCheck.js +2 -2
  25. package/dist/checks/largeFileCheck.js.map +1 -1
  26. package/dist/checks/localHostCheck.js +2 -2
  27. package/dist/checks/localHostCheck.js.map +1 -1
  28. package/dist/checks/lockfileDriftCheck.d.ts.map +1 -1
  29. package/dist/checks/lockfileDriftCheck.js +4 -4
  30. package/dist/checks/lockfileDriftCheck.js.map +1 -1
  31. package/dist/checks/mergeConflictCheck.d.ts.map +1 -1
  32. package/dist/checks/mergeConflictCheck.js +2 -2
  33. package/dist/checks/mergeConflictCheck.js.map +1 -1
  34. package/dist/checks/secretCheck.js +19 -19
  35. package/dist/checks/secretCheck.js.map +1 -1
  36. package/dist/checks/sensitiveFilenameCheck.d.ts.map +1 -1
  37. package/dist/checks/sensitiveFilenameCheck.js +2 -2
  38. package/dist/checks/sensitiveFilenameCheck.js.map +1 -1
  39. package/dist/fix/debugCode.d.ts +3 -0
  40. package/dist/fix/debugCode.d.ts.map +1 -0
  41. package/dist/fix/debugCode.js +55 -0
  42. package/dist/fix/debugCode.js.map +1 -0
  43. package/dist/fix/focusedTests.d.ts +2 -0
  44. package/dist/fix/focusedTests.d.ts.map +1 -0
  45. package/dist/fix/focusedTests.js +22 -0
  46. package/dist/fix/focusedTests.js.map +1 -0
  47. package/dist/fix/gitignore.d.ts +2 -0
  48. package/dist/fix/gitignore.d.ts.map +1 -0
  49. package/dist/fix/gitignore.js +82 -0
  50. package/dist/fix/gitignore.js.map +1 -0
  51. package/dist/fix/junkFiles.d.ts +2 -0
  52. package/dist/fix/junkFiles.d.ts.map +1 -0
  53. package/dist/fix/junkFiles.js +14 -0
  54. package/dist/fix/junkFiles.js.map +1 -0
  55. package/dist/fix/lockfile.d.ts +2 -0
  56. package/dist/fix/lockfile.d.ts.map +1 -0
  57. package/dist/fix/lockfile.js +18 -0
  58. package/dist/fix/lockfile.js.map +1 -0
  59. package/dist/fix/matchers.d.ts +9 -0
  60. package/dist/fix/matchers.d.ts.map +1 -0
  61. package/dist/fix/matchers.js +118 -0
  62. package/dist/fix/matchers.js.map +1 -0
  63. package/dist/fix/runFix.d.ts +3 -0
  64. package/dist/fix/runFix.d.ts.map +1 -0
  65. package/dist/fix/runFix.js +82 -0
  66. package/dist/fix/runFix.js.map +1 -0
  67. package/dist/fix/unstage.d.ts +2 -0
  68. package/dist/fix/unstage.d.ts.map +1 -0
  69. package/dist/fix/unstage.js +22 -0
  70. package/dist/fix/unstage.js.map +1 -0
  71. package/dist/fix/utils.d.ts +4 -0
  72. package/dist/fix/utils.d.ts.map +1 -0
  73. package/dist/fix/utils.js +39 -0
  74. package/dist/fix/utils.js.map +1 -0
  75. package/dist/git.d.ts.map +1 -1
  76. package/dist/git.js +2 -1
  77. package/dist/git.js.map +1 -1
  78. package/dist/hook.d.ts +3 -0
  79. package/dist/hook.d.ts.map +1 -0
  80. package/dist/hook.js +79 -0
  81. package/dist/hook.js.map +1 -0
  82. package/dist/index.js +32 -21
  83. package/dist/index.js.map +1 -1
  84. package/dist/reporter.d.ts.map +1 -1
  85. package/dist/reporter.js +56 -26
  86. package/dist/reporter.js.map +1 -1
  87. package/dist/runScan.d.ts +2 -0
  88. package/dist/runScan.d.ts.map +1 -0
  89. package/dist/runScan.js +24 -0
  90. package/dist/runScan.js.map +1 -0
  91. package/dist/scanner.d.ts.map +1 -1
  92. package/dist/scanner.js +4 -1
  93. package/dist/scanner.js.map +1 -1
  94. package/dist/types.d.ts +4 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/package.json +4 -3
  97. package/src/brand.ts +3 -0
  98. package/src/checks/binaryFileCheck.ts +3 -3
  99. package/src/checks/consoleLogCheck.ts +3 -2
  100. package/src/checks/debuggerCheck.ts +3 -2
  101. package/src/checks/envFileCheck.ts +3 -2
  102. package/src/checks/focusedTestCheck.ts +2 -2
  103. package/src/checks/generatedFolderCheck.ts +2 -2
  104. package/src/checks/junkFileCheck.ts +3 -2
  105. package/src/checks/largeFileCheck.ts +2 -2
  106. package/src/checks/localHostCheck.ts +2 -2
  107. package/src/checks/lockfileDriftCheck.ts +6 -4
  108. package/src/checks/mergeConflictCheck.ts +3 -2
  109. package/src/checks/secretCheck.ts +19 -19
  110. package/src/checks/sensitiveFilenameCheck.ts +3 -2
  111. package/src/fix/debugCode.ts +74 -0
  112. package/src/fix/focusedTests.ts +26 -0
  113. package/src/fix/gitignore.ts +108 -0
  114. package/src/fix/junkFiles.ts +16 -0
  115. package/src/fix/lockfile.ts +23 -0
  116. package/src/fix/matchers.ts +141 -0
  117. package/src/fix/runFix.ts +96 -0
  118. package/src/fix/unstage.ts +25 -0
  119. package/src/fix/utils.ts +50 -0
  120. package/src/git.ts +2 -1
  121. package/src/hook.ts +98 -0
  122. package/src/index.ts +45 -27
  123. package/src/reporter.ts +70 -30
  124. package/src/runScan.ts +35 -0
  125. package/src/scanner.ts +4 -1
  126. package/src/types.ts +5 -0
  127. package/test.ts +5 -1
  128. package/testing.ts +3 -0
package/README.md CHANGED
@@ -4,13 +4,39 @@ Commit Cop is a pre-commit safety checker that scans your **staged files** and w
4
4
 
5
5
  Built for students, hackathons, and dev teams who want practical guardrails—not just formatting checks.
6
6
 
7
+ > **Commit Cop** (`commit-cop`) — catch bad commits before they hit GitHub.
8
+
7
9
  ## Install
8
10
 
9
11
  ```bash
10
12
  npm install commit-cop
11
13
  ```
12
14
 
13
- Run it on staged changes:
15
+ ### Run automatically on every commit (recommended)
16
+
17
+ From your Git repo:
18
+
19
+ ```bash
20
+ npx commit-cop install
21
+ ```
22
+
23
+ This adds a pre-commit hook. After that, **Commit Cop runs whenever you `git commit`**. If it finds errors, the commit is blocked.
24
+
25
+ Treat warnings as errors in the hook:
26
+
27
+ ```bash
28
+ npx commit-cop install --strict
29
+ ```
30
+
31
+ Remove the hook:
32
+
33
+ ```bash
34
+ npx commit-cop uninstall
35
+ ```
36
+
37
+ ### Run manually
38
+
39
+ Scan staged changes once:
14
40
 
15
41
  ```bash
16
42
  npx commit-cop
@@ -22,6 +48,39 @@ Treat warnings as errors:
22
48
  npx commit-cop --strict
23
49
  ```
24
50
 
51
+ Allow `console.log` in staged code (skips the console.log check):
52
+
53
+ ```bash
54
+ npx commit-cop --allow-console-log
55
+ ```
56
+
57
+ ## Auto-fix (work in progress)
58
+
59
+ `wip-fix` is a placeholder command name that applies common repo fixes. More fixes may be added over time.
60
+
61
+ ```bash
62
+ npx commit-cop wip-fix
63
+ ```
64
+
65
+ By default, `wip-fix` does **not** remove `console.log` lines. Pass `--fix-console-log` to include that fix. `debugger` lines are still removed from staged files.
66
+
67
+ ```bash
68
+ npx commit-cop wip-fix --fix-console-log
69
+ ```
70
+
71
+ | Check | Fix |
72
+ | --- | --- |
73
+ | Generated folders / env files | Adds missing `.gitignore` entries (`.env`, `node_modules/`, `dist/`, `build/`, `.next/`, `coverage/`, junk patterns) |
74
+ | Focused tests | Replaces `test.only`, `it.only`, `describe.only` in test/spec files |
75
+ | Debug logs | Removes standalone `console.log(...)` from **staged** JS/TS files only with `--fix-console-log` |
76
+ | Debugger | Always removes standalone `debugger` lines from **staged** JS/TS files |
77
+ | Junk files | Deletes `.DS_Store`, `Thumbs.db`, swap/backup files found on disk |
78
+ | Env / sensitive / generated / junk / binary / large (staged) | Runs `git restore --staged` on matching staged files |
79
+ | Lockfile drift | Runs `npm install` when `package-lock.json` is missing or older than `package.json` |
80
+ | Merge conflicts, secrets, localhost | **Manual only** — reported at the end; not auto-fixed |
81
+
82
+ Review all changes before committing. `wip-fix` may run `npm install` and unstaging commands against your Git index.
83
+
25
84
  ## What it checks
26
85
 
27
86
  | Check | Severity | What it catches |
@@ -32,7 +91,7 @@ npx commit-cop --strict
32
91
  | Generated folders | Error | `node_modules/`, `dist/`, `build/`, `.next/`, `coverage/` (including nested paths) |
33
92
  | Secrets | Error | API keys, GitHub/AWS/Stripe tokens, JWT secrets, database URLs |
34
93
  | Focused tests | Error | `test.only`, `it.only`, `describe.only` left in test files |
35
- | Debug logs | Warning | `console.log` in staged JS/TS code |
94
+ | Debug logs | Warning | `console.log` in staged JS/TS code (skip with `--allow-console-log`) |
36
95
  | Debugger statements | Warning | `debugger` in staged JS/TS code |
37
96
  | Localhost URLs | Warning | Hardcoded `localhost` or `127.0.0.1` URLs |
38
97
  | Junk files | Warning | `.DS_Store`, `Thumbs.db`, swap/backup files |
@@ -47,6 +106,7 @@ Errors block the commit. Warnings are reported but do not block unless you use `
47
106
  ```bash
48
107
  npm install
49
108
  npm run commit-cop
109
+ npm run commit-cop -- wip-fix
50
110
  ```
51
111
 
52
112
  Build and run the compiled CLI:
@@ -60,19 +120,21 @@ npm start
60
120
 
61
121
  ```
62
122
  src/
63
- index.ts CLI entry point
123
+ index.ts CLI entry point (scan + wip-fix subcommand)
64
124
  git.ts Reads staged files from Git
65
125
  scanner.ts Runs all checks
66
126
  reporter.ts Prints the report
67
127
  types.ts Shared types
68
128
  checks/ One file per check
129
+ fix/ Auto-fix helpers used by wip-fix
69
130
  ```
70
131
 
71
132
  Each check implements the same interface: receive staged files, return findings with a message and suggested fix.
72
133
 
73
134
  ## How it works
74
135
 
75
- 1. Read staged file paths with `git diff --cached --name-only`
76
- 2. Run every check in `src/checks/`
77
- 3. Print a summary with file locations and fix suggestions
78
- 4. Exit with code `1` if errors are found (or warnings in strict mode)
136
+ 1. Install the hook with `npx commit-cop install` (or run manually)
137
+ 2. Read staged file paths with `git diff --cached --name-only`
138
+ 3. Run every check in `src/checks/`
139
+ 4. Print a summary with file locations and fix suggestions
140
+ 5. Exit with code `1` if errors are found (or warnings in strict mode), which blocks the commit
@@ -0,0 +1,4 @@
1
+ export declare const PRODUCT_NAME = "Commit Cop";
2
+ export declare const CLI_NAME = "commit-cop";
3
+ export declare const TAGLINE = "Catch bad commits before they hit GitHub";
4
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,eAAO,MAAM,QAAQ,eAAe,CAAC;AACrC,eAAO,MAAM,OAAO,6CAA6C,CAAC"}
package/dist/brand.js ADDED
@@ -0,0 +1,4 @@
1
+ export const PRODUCT_NAME = "Commit Cop";
2
+ export const CLI_NAME = "commit-cop";
3
+ export const TAGLINE = "Catch bad commits before they hit GitHub";
4
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,0CAA0C,CAAC"}
@@ -42,8 +42,8 @@ export const binaryFileCheck = {
42
42
  severity: "warning",
43
43
  checkName: this.name,
44
44
  file,
45
- message: "Binary or non-text file is staged.",
46
- suggestion: "Remove it from the commit or store it outside Git (e.g. Git LFS).",
45
+ message: "Binary file detected archives, executables, and media don't belong in source control.",
46
+ suggestion: "Remove it from the commit or store it with Git LFS.",
47
47
  });
48
48
  }
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"binaryFileCheck.js","sourceRoot":"","sources":["../../src/checks/binaryFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;CACN,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE,mBAAmB;IAEzB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE/C,IAAI,CAAC;gBACH,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,oCAAoC;oBAC7C,UAAU,EACR,mEAAmE;iBACtE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"binaryFileCheck.js","sourceRoot":"","sources":["../../src/checks/binaryFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;CACN,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE,mBAAmB;IAEzB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE/C,IAAI,CAAC;gBACH,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EACL,yFAAyF;oBAC3F,UAAU,EAAE,qDAAqD;iBAClE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"consoleLogCheck.d.ts","sourceRoot":"","sources":["../../src/checks/consoleLogCheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAQlD,eAAO,MAAM,eAAe,EAAE,KA6B7B,CAAC"}
1
+ {"version":3,"file":"consoleLogCheck.d.ts","sourceRoot":"","sources":["../../src/checks/consoleLogCheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAQlD,eAAO,MAAM,eAAe,EAAE,KA8B7B,CAAC"}
@@ -21,8 +21,8 @@ export const consoleLogCheck = {
21
21
  checkName: this.name,
22
22
  file,
23
23
  line: index + 1,
24
- message: "console.log found in staged code.",
25
- suggestion: "Remove debug logs before committing.",
24
+ message: "Debug log left in code — easy to miss and clutters production output.",
25
+ suggestion: "Delete the console.log before committing.",
26
26
  });
27
27
  }
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"consoleLogCheck.js","sourceRoot":"","sources":["../../src/checks/consoleLogCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEtD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE,mBAAmB;IAEzB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjC,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,IAAI;wBACJ,IAAI,EAAE,KAAK,GAAG,CAAC;wBACf,OAAO,EAAE,mCAAmC;wBAC5C,UAAU,EAAE,sCAAsC;qBACnD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"consoleLogCheck.js","sourceRoot":"","sources":["../../src/checks/consoleLogCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEtD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAU;IACpC,IAAI,EAAE,mBAAmB;IAEzB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjC,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,IAAI;wBACJ,IAAI,EAAE,KAAK,GAAG,CAAC;wBACf,OAAO,EACL,uEAAuE;wBACzE,UAAU,EAAE,2CAA2C;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerCheck.d.ts","sourceRoot":"","sources":["../../src/checks/debuggerCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAGlD,eAAO,MAAM,aAAa,EAAE,KA4B3B,CAAC"}
1
+ {"version":3,"file":"debuggerCheck.d.ts","sourceRoot":"","sources":["../../src/checks/debuggerCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAGlD,eAAO,MAAM,aAAa,EAAE,KA6B3B,CAAC"}
@@ -16,8 +16,8 @@ export const debuggerCheck = {
16
16
  checkName: this.name,
17
17
  file,
18
18
  line: index + 1,
19
- message: "debugger statement found in staged code.",
20
- suggestion: "Remove debugger statements before committing.",
19
+ message: "debugger statement left in code — pauses execution and breaks CI/headless runs.",
20
+ suggestion: "Delete the debugger statement before committing.",
21
21
  });
22
22
  }
23
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerCheck.js","sourceRoot":"","sources":["../../src/checks/debuggerCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,gBAAgB;IAEtB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEhC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,IAAI;wBACJ,IAAI,EAAE,KAAK,GAAG,CAAC;wBACf,OAAO,EAAE,0CAA0C;wBACnD,UAAU,EAAE,+CAA+C;qBAC5D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"debuggerCheck.js","sourceRoot":"","sources":["../../src/checks/debuggerCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,gBAAgB;IAEtB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEhC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,IAAI;wBACJ,IAAI,EAAE,KAAK,GAAG,CAAC;wBACf,OAAO,EACL,iFAAiF;wBACnF,UAAU,EAAE,kDAAkD;qBAC/D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"envFileCheck.d.ts","sourceRoot":"","sources":["../../src/checks/envFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,KAsB1B,CAAC"}
1
+ {"version":3,"file":"envFileCheck.d.ts","sourceRoot":"","sources":["../../src/checks/envFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,KAuB1B,CAAC"}
@@ -9,8 +9,8 @@ export const envFileCheck = {
9
9
  severity: "error",
10
10
  checkName: this.name,
11
11
  file,
12
- message: "Environment file is staged and may contain secrets.",
13
- suggestion: `Run: git restore --staged ${file}`,
12
+ message: ".env file detected these often hold API keys, passwords, and tokens.",
13
+ suggestion: `Unstage it: git restore --staged ${file}`,
14
14
  });
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"envFileCheck.js","sourceRoot":"","sources":["../../src/checks/envFileCheck.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,gBAAgB;IAEtB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE7C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,qDAAqD;oBAC9D,UAAU,EAAE,6BAA6B,IAAI,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"envFileCheck.js","sourceRoot":"","sources":["../../src/checks/envFileCheck.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,gBAAgB;IAEtB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE7C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EACL,wEAAwE;oBAC1E,UAAU,EAAE,oCAAoC,IAAI,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -23,8 +23,8 @@ export const focusedTestCheck = {
23
23
  checkName: this.name,
24
24
  file,
25
25
  line: index + 1,
26
- message: `${pattern} found. This may skip the rest of the test suite.`,
27
- suggestion: `Replace ${pattern} with the normal test function.`,
26
+ message: `${pattern} detected only that test will run, hiding failures in the rest of the suite.`,
27
+ suggestion: `Change ${pattern} back to ${pattern.replace(".only", "")}.`,
28
28
  });
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"focusedTestCheck.js","sourceRoot":"","sources":["../../src/checks/focusedTestCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,YAAY,GAAG;IACnB,WAAW;IACX,SAAS;IACT,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACrC,IAAI,EAAE,oBAAoB;IAE1B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,GAAG,OAAO,mDAAmD;4BACtE,UAAU,EAAE,WAAW,OAAO,iCAAiC;yBAChE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"focusedTestCheck.js","sourceRoot":"","sources":["../../src/checks/focusedTestCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,YAAY,GAAG;IACnB,WAAW;IACX,SAAS;IACT,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAU;IACrC,IAAI,EAAE,oBAAoB;IAE1B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,GAAG,OAAO,gFAAgF;4BACnG,UAAU,EAAE,UAAU,OAAO,YAAY,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG;yBACzE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -22,8 +22,8 @@ export const generatedFolderCheck = {
22
22
  severity: "error",
23
23
  checkName: this.name,
24
24
  file,
25
- message: `${matchedFolder} is staged but is usually generated and should not be committed.`,
26
- suggestion: `Add ${matchedFolder} to .gitignore and run: git restore --staged ${file}`,
25
+ message: `Generated folder (${matchedFolder}) auto-built files bloat the repo and cause merge pain.`,
26
+ suggestion: `Add ${matchedFolder} to .gitignore, then: git restore --staged ${file}`,
27
27
  });
28
28
  }
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generatedFolderCheck.js","sourceRoot":"","sources":["../../src/checks/generatedFolderCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,cAAc,GAAG;IACrB,eAAe;IACf,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,SAAS,oBAAoB,CAAC,cAAsB,EAAE,MAAc;IAClE,OAAO,CACL,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QACjC,cAAc,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAU;IACzC,IAAI,EAAE,wBAAwB;IAE9B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAEvC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CACzC,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,GAAG,aAAa,kEAAkE;oBAC3F,UAAU,EAAE,OAAO,aAAa,gDAAgD,IAAI,EAAE;iBACvF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"generatedFolderCheck.js","sourceRoot":"","sources":["../../src/checks/generatedFolderCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,cAAc,GAAG;IACrB,eAAe;IACf,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,SAAS,oBAAoB,CAAC,cAAsB,EAAE,MAAc;IAClE,OAAO,CACL,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QACjC,cAAc,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAU;IACzC,IAAI,EAAE,wBAAwB;IAE9B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAEvC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CACzC,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,qBAAqB,aAAa,2DAA2D;oBACtG,UAAU,EAAE,OAAO,aAAa,8CAA8C,IAAI,EAAE;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"junkFileCheck.d.ts","sourceRoot":"","sources":["../../src/checks/junkFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAC"}
1
+ {"version":3,"file":"junkFileCheck.d.ts","sourceRoot":"","sources":["../../src/checks/junkFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,aAAa,EAAE,KA4B3B,CAAC"}
@@ -19,8 +19,8 @@ export const junkFileCheck = {
19
19
  severity: "warning",
20
20
  checkName: this.name,
21
21
  file,
22
- message: "OS or editor junk file is staged.",
23
- suggestion: `Run: git restore --staged ${file}`,
22
+ message: "OS or editor junk file adds noise and has no place in the repo.",
23
+ suggestion: `Unstage it: git restore --staged ${file}`,
24
24
  });
25
25
  }
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"junkFileCheck.js","sourceRoot":"","sources":["../../src/checks/junkFileCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,WAAW;IACX,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAElD,MAAM,MAAM,GACV,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBACtC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAEhD,IAAI,MAAM,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,mCAAmC;oBAC5C,UAAU,EAAE,6BAA6B,IAAI,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"junkFileCheck.js","sourceRoot":"","sources":["../../src/checks/junkFileCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,WAAW;IACX,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAElD,MAAM,MAAM,GACV,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBACtC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAEhD,IAAI,MAAM,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EACL,mEAAmE;oBACrE,UAAU,EAAE,oCAAoC,IAAI,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -14,8 +14,8 @@ export const largeFileCheck = {
14
14
  severity: "warning",
15
15
  checkName: this.name,
16
16
  file,
17
- message: `Large file staged: ${sizeMb.toFixed(2)} MB.`,
18
- suggestion: "Consider removing this file from Git or using Git LFS.",
17
+ message: `Large file (${sizeMb.toFixed(2)} MB) — slows clones and may hit GitHub's size limits.`,
18
+ suggestion: "Remove it from Git or use Git LFS for big assets.",
19
19
  });
20
20
  }
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"largeFileCheck.js","sourceRoot":"","sources":["../../src/checks/largeFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,kBAAkB;IAExB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;YAExC,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,sBAAsB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBACtD,UAAU,EAAE,wDAAwD;iBACrE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"largeFileCheck.js","sourceRoot":"","sources":["../../src/checks/largeFileCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,kBAAkB;IAExB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;YAExC,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,SAAS;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,eAAe,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uDAAuD;oBAChG,UAAU,EAAE,mDAAmD;iBAChE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -21,8 +21,8 @@ export const localHostCheck = {
21
21
  checkName: this.name,
22
22
  file,
23
23
  line: index + 1,
24
- message: `Hardcoded local URL found: ${pattern}`,
25
- suggestion: "Use an environment variable instead of a hardcoded localhost URL.",
24
+ message: `Hardcoded local URL (${pattern}) — won't work in production or for teammates.`,
25
+ suggestion: "Move the URL to an environment variable (e.g. process.env.API_URL).",
26
26
  });
27
27
  }
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localHostCheck.js","sourceRoot":"","sources":["../../src/checks/localHostCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,QAAQ,GAAG;IACf,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,SAAS;4BACnB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,8BAA8B,OAAO,EAAE;4BAChD,UAAU,EAAE,mEAAmE;yBAChF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"localHostCheck.js","sourceRoot":"","sources":["../../src/checks/localHostCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,QAAQ,GAAG;IACf,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACnC,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,SAAS;4BACnB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,wBAAwB,OAAO,gDAAgD;4BACxF,UAAU,EAAE,qEAAqE;yBAClF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lockfileDriftCheck.d.ts","sourceRoot":"","sources":["../../src/checks/lockfileDriftCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAOlD,eAAO,MAAM,kBAAkB,EAAE,KA8BhC,CAAC"}
1
+ {"version":3,"file":"lockfileDriftCheck.d.ts","sourceRoot":"","sources":["../../src/checks/lockfileDriftCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAOlD,eAAO,MAAM,kBAAkB,EAAE,KAgChC,CAAC"}
@@ -13,8 +13,8 @@ export const lockfileDriftCheck = {
13
13
  severity: "warning",
14
14
  checkName: this.name,
15
15
  file: "package.json",
16
- message: "package.json is staged but package-lock.json is not.",
17
- suggestion: "Run npm install and stage package-lock.json.",
16
+ message: "package.json changed without its lockfile teammates may get different dependency versions.",
17
+ suggestion: "Run npm install, then stage package-lock.json.",
18
18
  });
19
19
  }
20
20
  if (lockfileStaged && !packageJsonStaged) {
@@ -22,8 +22,8 @@ export const lockfileDriftCheck = {
22
22
  severity: "warning",
23
23
  checkName: this.name,
24
24
  file: "package-lock.json",
25
- message: "package-lock.json is staged but package.json is not.",
26
- suggestion: "Stage package.json or unstage the lockfile.",
25
+ message: "Lockfile changed without package.json the lockfile may not match your declared dependencies.",
26
+ suggestion: "Stage package.json too, or unstage package-lock.json.",
27
27
  });
28
28
  }
29
29
  return findings;
@@ -1 +1 @@
1
- {"version":3,"file":"lockfileDriftCheck.js","sourceRoot":"","sources":["../../src/checks/lockfileDriftCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,SAAS,QAAQ,CAAC,WAAqB,EAAE,MAAc;IACrD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,sBAAsB;IAE5B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAE1E,IAAI,iBAAiB,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,sDAAsD;gBAC/D,UAAU,EAAE,8CAA8C;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,sDAAsD;gBAC/D,UAAU,EAAE,6CAA6C;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"lockfileDriftCheck.js","sourceRoot":"","sources":["../../src/checks/lockfileDriftCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,SAAS,QAAQ,CAAC,WAAqB,EAAE,MAAc;IACrD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,sBAAsB;IAE5B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAE1E,IAAI,iBAAiB,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,cAAc;gBACpB,OAAO,EACL,8FAA8F;gBAChG,UAAU,EAAE,gDAAgD;aAC7D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACL,gGAAgG;gBAClG,UAAU,EAAE,uDAAuD;aACpE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeConflictCheck.d.ts","sourceRoot":"","sources":["../../src/checks/mergeConflictCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAKlD,eAAO,MAAM,kBAAkB,EAAE,KAkChC,CAAC"}
1
+ {"version":3,"file":"mergeConflictCheck.d.ts","sourceRoot":"","sources":["../../src/checks/mergeConflictCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAKlD,eAAO,MAAM,kBAAkB,EAAE,KAmChC,CAAC"}
@@ -19,8 +19,8 @@ export const mergeConflictCheck = {
19
19
  checkName: this.name,
20
20
  file,
21
21
  line: index + 1,
22
- message: "Merge conflict marker found in staged file.",
23
- suggestion: "Resolve the conflict, remove the markers, and restage the file.",
22
+ message: "Unresolved merge conflict this file won't run correctly until fixed.",
23
+ suggestion: "Resolve the conflict, remove the <<<<<<< / ======= / >>>>>>> markers, then restage.",
24
24
  });
25
25
  return;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mergeConflictCheck.js","sourceRoot":"","sources":["../../src/checks/mergeConflictCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,sBAAsB;IAE5B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE5B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,6CAA6C;4BACtD,UAAU,EACR,iEAAiE;yBACpE,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"mergeConflictCheck.js","sourceRoot":"","sources":["../../src/checks/mergeConflictCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAU;IACvC,IAAI,EAAE,sBAAsB;IAE5B,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE5B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EACL,wEAAwE;4BAC1E,UAAU,EACR,qFAAqF;yBACxF,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1,19 +1,19 @@
1
1
  import { isCommentLine, isPlaceholderValue, readFileLines, shouldSkipContentScan, } from "./utils.js";
2
- const secretPatterns = [
3
- /OPENAI_API_KEY\s*=/i,
4
- /DATABASE_URL\s*=/i,
5
- /JWT_SECRET\s*=/i,
6
- /AUTH_SECRET\s*=/i,
7
- /PRIVATE_KEY\s*=/i,
8
- /SECRET_KEY\s*=/i,
9
- /sk-[A-Za-z0-9_-]{20,}/,
10
- /ghp_[A-Za-z0-9]{36,}/,
11
- /github_pat_[A-Za-z0-9_]+/,
12
- /AKIA[0-9A-Z]{16}/,
13
- /sk_live_[A-Za-z0-9]+/,
14
- /AIza[0-9A-Za-z_-]{35}/,
15
- /hooks\.slack\.com\/services\//,
16
- /password\s*=\s*['"][^'"]{8,}['"]/i,
2
+ const secretRules = [
3
+ { pattern: /OPENAI_API_KEY\s*=/i, label: "OpenAI API key" },
4
+ { pattern: /DATABASE_URL\s*=/i, label: "database connection string" },
5
+ { pattern: /JWT_SECRET\s*=/i, label: "JWT secret" },
6
+ { pattern: /AUTH_SECRET\s*=/i, label: "auth secret" },
7
+ { pattern: /PRIVATE_KEY\s*=/i, label: "private key" },
8
+ { pattern: /SECRET_KEY\s*=/i, label: "secret key" },
9
+ { pattern: /sk-[A-Za-z0-9_-]{20,}/, label: "API key" },
10
+ { pattern: /ghp_[A-Za-z0-9]{36,}/, label: "GitHub personal access token" },
11
+ { pattern: /github_pat_[A-Za-z0-9_]+/, label: "GitHub personal access token" },
12
+ { pattern: /AKIA[0-9A-Z]{16}/, label: "AWS access key" },
13
+ { pattern: /sk_live_[A-Za-z0-9]+/, label: "Stripe live secret key" },
14
+ { pattern: /AIza[0-9A-Za-z_-]{35}/, label: "Google API key" },
15
+ { pattern: /hooks\.slack\.com\/services\//, label: "Slack webhook URL" },
16
+ { pattern: /password\s*=\s*['"][^'"]{8,}['"]/i, label: "hardcoded password" },
17
17
  ];
18
18
  export const secretCheck = {
19
19
  name: "secret-check",
@@ -28,15 +28,15 @@ export const secretCheck = {
28
28
  lines.forEach((line, index) => {
29
29
  if (isCommentLine(line) || isPlaceholderValue(line))
30
30
  return;
31
- for (const pattern of secretPatterns) {
32
- if (pattern.test(line)) {
31
+ for (const rule of secretRules) {
32
+ if (rule.pattern.test(line)) {
33
33
  findings.push({
34
34
  severity: "error",
35
35
  checkName: this.name,
36
36
  file,
37
37
  line: index + 1,
38
- message: "Possible secret found in staged file.",
39
- suggestion: "Remove the secret and rotate it if it was already pushed.",
38
+ message: `Possible ${rule.label} credentials pushed to GitHub can be scraped instantly.`,
39
+ suggestion: "Remove it from the code, unstage the file, and rotate the credential if it was ever pushed.",
40
40
  });
41
41
  return;
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secretCheck.js","sourceRoot":"","sources":["../../src/checks/secretCheck.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,cAAc,GAAG;IACrB,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;IACtB,0BAA0B;IAC1B,kBAAkB;IAClB,sBAAsB;IACtB,uBAAuB;IACvB,+BAA+B;IAC/B,mCAAmC;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE,cAAc;IAEpB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC;oBAAE,OAAO;gBAE5D,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;oBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvB,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,uCAAuC;4BAChD,UAAU,EACR,2DAA2D;yBAC9D,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"secretCheck.js","sourceRoot":"","sources":["../../src/checks/secretCheck.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,GAAyC;IACxD,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC3D,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,4BAA4B,EAAE;IACrE,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE;IACnD,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE;IACrD,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE;IACrD,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE;IACnD,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,SAAS,EAAE;IACtD,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,8BAA8B,EAAE;IAC1E,EAAE,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,8BAA8B,EAAE;IAC9E,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACxD,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,wBAAwB,EAAE;IACpE,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC7D,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACxE,EAAE,OAAO,EAAE,mCAAmC,EAAE,KAAK,EAAE,oBAAoB,EAAE;CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE,cAAc;IAEpB,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC;oBAAE,OAAO;gBAE5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5B,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,OAAO;4BACjB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,IAAI;4BACJ,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,OAAO,EAAE,YAAY,IAAI,CAAC,KAAK,2DAA2D;4BAC1F,UAAU,EACR,6FAA6F;yBAChG,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sensitiveFilenameCheck.d.ts","sourceRoot":"","sources":["../../src/checks/sensitiveFilenameCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAmBlD,eAAO,MAAM,sBAAsB,EAAE,KA8BpC,CAAC"}
1
+ {"version":3,"file":"sensitiveFilenameCheck.d.ts","sourceRoot":"","sources":["../../src/checks/sensitiveFilenameCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAmBlD,eAAO,MAAM,sBAAsB,EAAE,KA+BpC,CAAC"}
@@ -30,8 +30,8 @@ export const sensitiveFilenameCheck = {
30
30
  severity: "error",
31
31
  checkName: this.name,
32
32
  file,
33
- message: "Sensitive credential file is staged.",
34
- suggestion: `Run: git restore --staged ${file}`,
33
+ message: "Credential or key file detected — private keys and auth config should not be in Git.",
34
+ suggestion: `Unstage it: git restore --staged ${file}`,
35
35
  });
36
36
  }
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sensitiveFilenameCheck.js","sourceRoot":"","sources":["../../src/checks/sensitiveFilenameCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,QAAQ;IACR,YAAY;IACZ,kBAAkB;IAClB,wBAAwB;IACxB,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,SAAS;IACT,8BAA8B;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAU;IAC3C,IAAI,EAAE,0BAA0B;IAEhC,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzD,MAAM,WAAW,GACf,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,EAAE,qBAAqB,CAAC;gBAClD,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC5C,cAAc,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAEpD,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EAAE,sCAAsC;oBAC/C,UAAU,EAAE,6BAA6B,IAAI,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"sensitiveFilenameCheck.js","sourceRoot":"","sources":["../../src/checks/sensitiveFilenameCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,QAAQ;IACR,YAAY;IACZ,kBAAkB;IAClB,wBAAwB;IACxB,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,SAAS;IACT,8BAA8B;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAU;IAC3C,IAAI,EAAE,0BAA0B;IAEhC,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzD,MAAM,WAAW,GACf,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,EAAE,qBAAqB,CAAC;gBAClD,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC5C,cAAc,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAEpD,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,IAAI;oBACJ,OAAO,EACL,sFAAsF;oBACxF,UAAU,EAAE,oCAAoC,IAAI,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { WipFixOptions } from "../types.js";
2
+ export declare function fixDebugCode(cwd?: string, options?: WipFixOptions): string[];
3
+ //# sourceMappingURL=debugCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugCode.d.ts","sourceRoot":"","sources":["../../src/fix/debugCode.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA8BjD,wBAAgB,YAAY,CAC1B,GAAG,SAAgB,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,EAAE,CAoCV"}
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { isCodeFile } from "../checks/utils.js";
4
+ import { getStagedFiles } from "../git.js";
5
+ const CONSOLE_LOG_LINE = /^\s*console\.log\([^)]*\);?\s*$/;
6
+ const DEBUGGER_LINE = /^\s*debugger;?\s*$/;
7
+ function stripDebugLines(content, options) {
8
+ const lines = content.split("\n");
9
+ const kept = [];
10
+ let removed = 0;
11
+ for (const line of lines) {
12
+ const isConsoleLog = CONSOLE_LOG_LINE.test(line);
13
+ const isDebugger = DEBUGGER_LINE.test(line);
14
+ if ((options.removeConsoleLog && isConsoleLog) ||
15
+ (options.removeDebugger && isDebugger)) {
16
+ removed += 1;
17
+ continue;
18
+ }
19
+ kept.push(line);
20
+ }
21
+ return { updated: kept.join("\n"), removed };
22
+ }
23
+ export function fixDebugCode(cwd = process.cwd(), options = {}) {
24
+ const removeConsoleLog = Boolean(options.fixConsoleLog);
25
+ const removeDebugger = true;
26
+ if (!removeConsoleLog && !removeDebugger) {
27
+ return [];
28
+ }
29
+ let stagedFiles;
30
+ try {
31
+ stagedFiles = getStagedFiles();
32
+ }
33
+ catch {
34
+ return [];
35
+ }
36
+ const fixed = [];
37
+ for (const file of stagedFiles) {
38
+ if (!isCodeFile(file))
39
+ continue;
40
+ const absolutePath = path.resolve(cwd, file);
41
+ if (!fs.existsSync(absolutePath))
42
+ continue;
43
+ const content = fs.readFileSync(absolutePath, "utf-8");
44
+ const { updated, removed } = stripDebugLines(content, {
45
+ removeConsoleLog,
46
+ removeDebugger,
47
+ });
48
+ if (removed === 0)
49
+ continue;
50
+ fs.writeFileSync(absolutePath, updated, "utf-8");
51
+ fixed.push(file);
52
+ }
53
+ return fixed;
54
+ }
55
+ //# sourceMappingURL=debugCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugCode.js","sourceRoot":"","sources":["../../src/fix/debugCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,SAAS,eAAe,CACtB,OAAe,EACf,OAA+D;IAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,IACE,CAAC,OAAO,CAAC,gBAAgB,IAAI,YAAY,CAAC;YAC1C,CAAC,OAAO,CAAC,cAAc,IAAI,UAAU,CAAC,EACtC,CAAC;YACD,OAAO,IAAI,CAAC,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAAyB,EAAE;IAE3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,WAAW,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAS;QAE3C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE;YACpD,gBAAgB;YAChB,cAAc;SACf,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,CAAC;YAAE,SAAS;QAE5B,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function fixFocusedTests(cwd?: string): string[];
2
+ //# sourceMappingURL=focusedTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusedTests.d.ts","sourceRoot":"","sources":["../../src/fix/focusedTests.ts"],"names":[],"mappings":"AAUA,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,MAAM,EAAE,CAe7D"}