pr-checkmate 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/dist/{cli.js → cjs/cli.js} +30 -30
  2. package/dist/{config → cjs/config}/index.d.ts +2 -2
  3. package/dist/{config → cjs/config}/index.js +8 -7
  4. package/dist/{config → cjs/config}/loader.d.ts +1 -1
  5. package/dist/{config → cjs/config}/loader.js +8 -8
  6. package/dist/{core → cjs/core}/checks/dependencies/banned-imports.d.ts +1 -1
  7. package/dist/{core → cjs/core}/checks/dependencies/banned-imports.js +10 -10
  8. package/dist/{core → cjs/core}/checks/dependencies/circular-deps.d.ts +1 -1
  9. package/dist/{core → cjs/core}/checks/dependencies/circular-deps.js +27 -27
  10. package/dist/{core → cjs/core}/checks/dependencies/dependency-check.d.ts +1 -1
  11. package/dist/{core → cjs/core}/checks/dependencies/dependency-check.js +17 -17
  12. package/dist/{core → cjs/core}/checks/dependencies/grype-scan.d.ts +1 -1
  13. package/dist/{core → cjs/core}/checks/dependencies/grype-scan.js +18 -18
  14. package/dist/{core → cjs/core}/checks/dependencies/license-check.d.ts +1 -1
  15. package/dist/{core → cjs/core}/checks/dependencies/license-check.js +12 -12
  16. package/dist/{core → cjs/core}/checks/dependencies/npm-audit.d.ts +1 -1
  17. package/dist/{core → cjs/core}/checks/dependencies/npm-audit.js +14 -14
  18. package/dist/{core → cjs/core}/checks/dependencies/outdated-deps.d.ts +1 -1
  19. package/dist/{core → cjs/core}/checks/dependencies/outdated-deps.js +14 -14
  20. package/dist/{core → cjs/core}/checks/dependencies/vuln-scan.d.ts +1 -1
  21. package/dist/{core → cjs/core}/checks/dependencies/vuln-scan.js +14 -14
  22. package/dist/{core → cjs/core}/checks/findings.d.ts +1 -1
  23. package/dist/{core → cjs/core}/checks/findings.js +16 -16
  24. package/dist/{core → cjs/core}/checks/git/custom-rules.d.ts +1 -1
  25. package/dist/{core → cjs/core}/checks/git/custom-rules.js +19 -19
  26. package/dist/{core → cjs/core}/checks/git/diff-smell.d.ts +2 -2
  27. package/dist/{core → cjs/core}/checks/git/diff-smell.js +13 -13
  28. package/dist/{core → cjs/core}/checks/git/large-files.d.ts +1 -1
  29. package/dist/{core → cjs/core}/checks/git/large-files.js +15 -15
  30. package/dist/{core → cjs/core}/checks/git/leftover-debug.d.ts +1 -1
  31. package/dist/{core → cjs/core}/checks/git/leftover-debug.js +13 -13
  32. package/dist/{core → cjs/core}/checks/git/lockfile-drift.d.ts +1 -1
  33. package/dist/{core → cjs/core}/checks/git/lockfile-drift.js +12 -12
  34. package/dist/{core → cjs/core}/checks/git/merge-conflict.d.ts +1 -1
  35. package/dist/{core → cjs/core}/checks/git/merge-conflict.js +15 -15
  36. package/dist/{core → cjs/core}/checks/git/missing-tests.d.ts +1 -1
  37. package/dist/{core → cjs/core}/checks/git/missing-tests.js +15 -15
  38. package/dist/{core → cjs/core}/checks/git/todo-fixme.d.ts +1 -1
  39. package/dist/{core → cjs/core}/checks/git/todo-fixme.js +11 -11
  40. package/dist/{core → cjs/core}/checks/languages/cpp-format.d.ts +1 -1
  41. package/dist/{core → cjs/core}/checks/languages/cpp-format.js +18 -18
  42. package/dist/{core → cjs/core}/checks/languages/external-checks.d.ts +9 -9
  43. package/dist/{core → cjs/core}/checks/languages/external-checks.js +10 -10
  44. package/dist/{core → cjs/core}/checks/languages/external-runner.d.ts +2 -2
  45. package/dist/{core → cjs/core}/checks/languages/external-runner.js +21 -21
  46. package/dist/{core → cjs/core}/checks/languages/go-format.d.ts +1 -1
  47. package/dist/cjs/core/checks/languages/go-format.js +202 -0
  48. package/dist/cjs/core/checks/languages/lint.d.ts +2 -0
  49. package/dist/{core → cjs/core}/checks/languages/lint.js +21 -21
  50. package/dist/{core → cjs/core}/checks/languages/prettier.d.ts +1 -1
  51. package/dist/{core → cjs/core}/checks/languages/prettier.js +18 -18
  52. package/dist/{core → cjs/core}/checks/languages/python-format.d.ts +1 -1
  53. package/dist/{core → cjs/core}/checks/languages/python-format.js +14 -14
  54. package/dist/{core → cjs/core}/checks/languages/python-lint.d.ts +1 -1
  55. package/dist/{core → cjs/core}/checks/languages/python-lint.js +13 -13
  56. package/dist/{core → cjs/core}/checks/languages/python-typecheck.d.ts +1 -1
  57. package/dist/{core → cjs/core}/checks/languages/python-typecheck.js +29 -29
  58. package/dist/{core → cjs/core}/checks/languages/typecheck.d.ts +1 -1
  59. package/dist/{core → cjs/core}/checks/languages/typecheck.js +13 -13
  60. package/dist/{core → cjs/core}/checks/pr/commitlint.d.ts +1 -1
  61. package/dist/{core → cjs/core}/checks/pr/commitlint.js +12 -12
  62. package/dist/{core → cjs/core}/checks/pr/pr-body.d.ts +1 -1
  63. package/dist/{core → cjs/core}/checks/pr/pr-body.js +8 -8
  64. package/dist/{core → cjs/core}/checks/pr/pr-size-check.d.ts +1 -1
  65. package/dist/{core → cjs/core}/checks/pr/pr-size-check.js +10 -10
  66. package/dist/{core → cjs/core}/checks/pr/pr-title-lint.d.ts +1 -1
  67. package/dist/{core → cjs/core}/checks/pr/pr-title-lint.js +8 -8
  68. package/dist/{core → cjs/core}/checks/quality/case-collision.d.ts +1 -1
  69. package/dist/{core → cjs/core}/checks/quality/case-collision.js +7 -7
  70. package/dist/{core → cjs/core}/checks/quality/config-validation.d.ts +1 -1
  71. package/dist/{core → cjs/core}/checks/quality/config-validation.js +9 -9
  72. package/dist/{core → cjs/core}/checks/quality/coverage.d.ts +1 -1
  73. package/dist/{core → cjs/core}/checks/quality/coverage.js +4 -4
  74. package/dist/{core → cjs/core}/checks/quality/dead-code.d.ts +1 -1
  75. package/dist/{core → cjs/core}/checks/quality/dead-code.js +23 -23
  76. package/dist/{core → cjs/core}/checks/quality/duplicate-check.d.ts +1 -1
  77. package/dist/{core → cjs/core}/checks/quality/duplicate-check.js +22 -22
  78. package/dist/{core → cjs/core}/checks/quality/license-header.d.ts +1 -1
  79. package/dist/{core → cjs/core}/checks/quality/license-header.js +16 -16
  80. package/dist/{core → cjs/core}/checks/quality/markdown-lint.d.ts +1 -1
  81. package/dist/{core → cjs/core}/checks/quality/markdown-lint.js +17 -17
  82. package/dist/{core → cjs/core}/checks/quality/package-size.d.ts +1 -1
  83. package/dist/{core → cjs/core}/checks/quality/package-size.js +12 -12
  84. package/dist/{core → cjs/core}/checks/quality/spellcheck.d.ts +2 -2
  85. package/dist/{core → cjs/core}/checks/quality/spellcheck.js +18 -18
  86. package/dist/{core → cjs/core}/checks/quality/symlinks.d.ts +1 -1
  87. package/dist/{core → cjs/core}/checks/quality/symlinks.js +8 -8
  88. package/dist/{core → cjs/core}/checks/quality/yaml-lint.d.ts +1 -1
  89. package/dist/{core → cjs/core}/checks/quality/yaml-lint.js +12 -12
  90. package/dist/{core → cjs/core}/checks/security/diff-security.d.ts +1 -1
  91. package/dist/{core → cjs/core}/checks/security/diff-security.js +15 -15
  92. package/dist/{core → cjs/core}/checks/security/dockerfile-security.d.ts +1 -1
  93. package/dist/{core → cjs/core}/checks/security/dockerfile-security.js +16 -16
  94. package/dist/{core → cjs/core}/checks/security/migration-safety.d.ts +1 -1
  95. package/dist/{core → cjs/core}/checks/security/migration-safety.js +17 -17
  96. package/dist/{core → cjs/core}/checks/security/security.d.ts +1 -1
  97. package/dist/{core → cjs/core}/checks/security/security.js +21 -21
  98. package/dist/{core → cjs/core}/checks/security/sensitive-file-guard.d.ts +1 -1
  99. package/dist/{core → cjs/core}/checks/security/sensitive-file-guard.js +14 -14
  100. package/dist/{core → cjs/core}/checks/security/workflow-security.d.ts +2 -2
  101. package/dist/{core → cjs/core}/checks/security/workflow-security.js +14 -14
  102. package/dist/{core → cjs/core}/checks/tool-install.d.ts +1 -1
  103. package/dist/{core → cjs/core}/checks/tool-install.js +2 -2
  104. package/dist/{core → cjs/core}/context.d.ts +1 -1
  105. package/dist/{core → cjs/core}/context.js +16 -16
  106. package/dist/cjs/core/index.d.ts +4 -0
  107. package/dist/{core → cjs/core}/index.js +7 -7
  108. package/dist/{core → cjs/core}/install/cache.js +2 -2
  109. package/dist/{core → cjs/core}/install/doctor.d.ts +4 -4
  110. package/dist/{core → cjs/core}/install/doctor.js +34 -34
  111. package/dist/{core → cjs/core}/install/ensure.d.ts +2 -2
  112. package/dist/{core → cjs/core}/install/ensure.js +15 -14
  113. package/dist/{core → cjs/core}/install/lock.js +4 -4
  114. package/dist/{core → cjs/core}/install/prepare.d.ts +4 -4
  115. package/dist/{core → cjs/core}/install/prepare.js +13 -13
  116. package/dist/{core → cjs/core}/install/profiles.d.ts +2 -2
  117. package/dist/{core → cjs/core}/install/reuse.d.ts +1 -1
  118. package/dist/{core → cjs/core}/install/reuse.js +4 -4
  119. package/dist/{core → cjs/core}/registry.d.ts +1 -1
  120. package/dist/cjs/core/registry.js +112 -0
  121. package/dist/{core → cjs/core}/reporters.d.ts +1 -1
  122. package/dist/{core → cjs/core}/reporters.js +28 -28
  123. package/dist/{core → cjs/core}/run-checks.d.ts +2 -2
  124. package/dist/{core → cjs/core}/run-checks.js +31 -31
  125. package/dist/{core → cjs/core}/targets.d.ts +1 -1
  126. package/dist/{core → cjs/core}/targets.js +20 -20
  127. package/dist/{core → cjs/core}/types.d.ts +3 -3
  128. package/dist/cjs/index.d.ts +12 -0
  129. package/dist/{index.js → cjs/index.js} +18 -18
  130. package/dist/{init.js → cjs/init.js} +68 -56
  131. package/dist/{interfaces → cjs/interfaces}/index.d.ts +3 -3
  132. package/dist/cjs/package.json +1 -0
  133. package/dist/{scripts → cjs/scripts}/copy-configs.js +22 -7
  134. package/dist/{scripts → cjs/scripts}/generate-install-manifests.js +2 -2
  135. package/dist/{scripts → cjs/scripts}/publish-github.js +4 -4
  136. package/dist/{utils → cjs/utils}/detect-language.js +12 -12
  137. package/dist/cjs/utils/execa.js +46 -0
  138. package/dist/{utils → cjs/utils}/git.js +2 -2
  139. package/dist/{utils → cjs/utils}/http.js +2 -2
  140. package/dist/cjs/utils/index.d.ts +15 -0
  141. package/dist/{utils → cjs/utils}/index.js +13 -13
  142. package/dist/{utils → cjs/utils}/own-deps.d.ts +2 -0
  143. package/dist/{utils → cjs/utils}/own-deps.js +1 -0
  144. package/dist/{utils → cjs/utils}/package-version.js +2 -1
  145. package/dist/{utils → cjs/utils}/resolve-bin.js +2 -1
  146. package/dist/{utils → cjs/utils}/update-notifier.js +4 -4
  147. package/dist/esm/cli.d.ts +2 -0
  148. package/dist/esm/cli.js +137 -0
  149. package/dist/esm/config/constants.d.ts +153 -0
  150. package/dist/esm/config/constants.js +360 -0
  151. package/dist/esm/config/index.d.ts +40 -0
  152. package/dist/esm/config/index.js +60 -0
  153. package/dist/esm/config/loader.d.ts +6 -0
  154. package/dist/esm/config/loader.js +191 -0
  155. package/dist/esm/config/pr-checkmate-workflow-docker.yml +79 -0
  156. package/dist/esm/config/pr-checkmate-workflow.yml +92 -0
  157. package/dist/esm/core/checks/dependencies/banned-imports.d.ts +2 -0
  158. package/dist/esm/core/checks/dependencies/banned-imports.js +70 -0
  159. package/dist/esm/core/checks/dependencies/circular-deps.d.ts +2 -0
  160. package/dist/esm/core/checks/dependencies/circular-deps.js +155 -0
  161. package/dist/esm/core/checks/dependencies/dependency-check.d.ts +43 -0
  162. package/dist/esm/core/checks/dependencies/dependency-check.js +174 -0
  163. package/dist/esm/core/checks/dependencies/grype-scan.d.ts +22 -0
  164. package/dist/esm/core/checks/dependencies/grype-scan.js +112 -0
  165. package/dist/esm/core/checks/dependencies/license-check.d.ts +2 -0
  166. package/dist/esm/core/checks/dependencies/license-check.js +61 -0
  167. package/dist/esm/core/checks/dependencies/npm-audit.d.ts +6 -0
  168. package/dist/esm/core/checks/dependencies/npm-audit.js +80 -0
  169. package/dist/esm/core/checks/dependencies/outdated-deps.d.ts +2 -0
  170. package/dist/esm/core/checks/dependencies/outdated-deps.js +66 -0
  171. package/dist/esm/core/checks/dependencies/vuln-scan.d.ts +2 -0
  172. package/dist/esm/core/checks/dependencies/vuln-scan.js +54 -0
  173. package/dist/esm/core/checks/findings.d.ts +299 -0
  174. package/dist/esm/core/checks/findings.js +701 -0
  175. package/dist/esm/core/checks/git/custom-rules.d.ts +2 -0
  176. package/dist/esm/core/checks/git/custom-rules.js +106 -0
  177. package/dist/esm/core/checks/git/diff-smell.d.ts +19 -0
  178. package/dist/esm/core/checks/git/diff-smell.js +69 -0
  179. package/dist/esm/core/checks/git/large-files.d.ts +2 -0
  180. package/dist/esm/core/checks/git/large-files.js +112 -0
  181. package/dist/esm/core/checks/git/leftover-debug.d.ts +2 -0
  182. package/dist/esm/core/checks/git/leftover-debug.js +89 -0
  183. package/dist/esm/core/checks/git/lockfile-drift.d.ts +2 -0
  184. package/dist/esm/core/checks/git/lockfile-drift.js +114 -0
  185. package/dist/esm/core/checks/git/merge-conflict.d.ts +2 -0
  186. package/dist/esm/core/checks/git/merge-conflict.js +117 -0
  187. package/dist/esm/core/checks/git/missing-tests.d.ts +2 -0
  188. package/dist/esm/core/checks/git/missing-tests.js +105 -0
  189. package/dist/esm/core/checks/git/todo-fixme.d.ts +7 -0
  190. package/dist/esm/core/checks/git/todo-fixme.js +80 -0
  191. package/dist/esm/core/checks/languages/cpp-format.d.ts +7 -0
  192. package/dist/esm/core/checks/languages/cpp-format.js +91 -0
  193. package/dist/esm/core/checks/languages/external-checks.d.ts +77 -0
  194. package/dist/esm/core/checks/languages/external-checks.js +197 -0
  195. package/dist/esm/core/checks/languages/external-runner.d.ts +119 -0
  196. package/dist/esm/core/checks/languages/external-runner.js +138 -0
  197. package/dist/esm/core/checks/languages/go-format.d.ts +8 -0
  198. package/dist/{core → esm/core}/checks/languages/go-format.js +29 -35
  199. package/dist/esm/core/checks/languages/lint.d.ts +2 -0
  200. package/dist/esm/core/checks/languages/lint.js +92 -0
  201. package/dist/esm/core/checks/languages/prettier.d.ts +2 -0
  202. package/dist/esm/core/checks/languages/prettier.js +85 -0
  203. package/dist/esm/core/checks/languages/python-format.d.ts +7 -0
  204. package/dist/esm/core/checks/languages/python-format.js +61 -0
  205. package/dist/esm/core/checks/languages/python-lint.d.ts +9 -0
  206. package/dist/esm/core/checks/languages/python-lint.js +55 -0
  207. package/dist/esm/core/checks/languages/python-typecheck.d.ts +14 -0
  208. package/dist/esm/core/checks/languages/python-typecheck.js +184 -0
  209. package/dist/esm/core/checks/languages/ruff-shared.d.ts +10 -0
  210. package/dist/esm/core/checks/languages/ruff-shared.js +35 -0
  211. package/dist/esm/core/checks/languages/typecheck.d.ts +2 -0
  212. package/dist/esm/core/checks/languages/typecheck.js +61 -0
  213. package/dist/esm/core/checks/pr/commitlint.d.ts +2 -0
  214. package/dist/esm/core/checks/pr/commitlint.js +102 -0
  215. package/dist/esm/core/checks/pr/pr-body.d.ts +2 -0
  216. package/dist/esm/core/checks/pr/pr-body.js +43 -0
  217. package/dist/esm/core/checks/pr/pr-size-check.d.ts +2 -0
  218. package/dist/esm/core/checks/pr/pr-size-check.js +42 -0
  219. package/dist/esm/core/checks/pr/pr-title-lint.d.ts +2 -0
  220. package/dist/esm/core/checks/pr/pr-title-lint.js +31 -0
  221. package/dist/esm/core/checks/quality/case-collision.d.ts +8 -0
  222. package/dist/esm/core/checks/quality/case-collision.js +39 -0
  223. package/dist/esm/core/checks/quality/config-validation.d.ts +11 -0
  224. package/dist/esm/core/checks/quality/config-validation.js +188 -0
  225. package/dist/esm/core/checks/quality/coverage.d.ts +2 -0
  226. package/dist/esm/core/checks/quality/coverage.js +62 -0
  227. package/dist/esm/core/checks/quality/dead-code.d.ts +2 -0
  228. package/dist/esm/core/checks/quality/dead-code.js +124 -0
  229. package/dist/esm/core/checks/quality/duplicate-check.d.ts +2 -0
  230. package/dist/esm/core/checks/quality/duplicate-check.js +141 -0
  231. package/dist/esm/core/checks/quality/license-header.d.ts +7 -0
  232. package/dist/esm/core/checks/quality/license-header.js +81 -0
  233. package/dist/esm/core/checks/quality/markdown-lint.d.ts +2 -0
  234. package/dist/esm/core/checks/quality/markdown-lint.js +104 -0
  235. package/dist/esm/core/checks/quality/package-size.d.ts +36 -0
  236. package/dist/esm/core/checks/quality/package-size.js +196 -0
  237. package/dist/esm/core/checks/quality/spellcheck.d.ts +77 -0
  238. package/dist/esm/core/checks/quality/spellcheck.js +296 -0
  239. package/dist/esm/core/checks/quality/symlinks.d.ts +16 -0
  240. package/dist/esm/core/checks/quality/symlinks.js +57 -0
  241. package/dist/esm/core/checks/quality/yaml-lint.d.ts +20 -0
  242. package/dist/esm/core/checks/quality/yaml-lint.js +116 -0
  243. package/dist/esm/core/checks/security/diff-security.d.ts +2 -0
  244. package/dist/esm/core/checks/security/diff-security.js +354 -0
  245. package/dist/esm/core/checks/security/dockerfile-security.d.ts +2 -0
  246. package/dist/esm/core/checks/security/dockerfile-security.js +98 -0
  247. package/dist/esm/core/checks/security/migration-safety.d.ts +2 -0
  248. package/dist/esm/core/checks/security/migration-safety.js +137 -0
  249. package/dist/esm/core/checks/security/security.d.ts +63 -0
  250. package/dist/esm/core/checks/security/security.js +201 -0
  251. package/dist/esm/core/checks/security/sensitive-file-guard.d.ts +2 -0
  252. package/dist/esm/core/checks/security/sensitive-file-guard.js +160 -0
  253. package/dist/esm/core/checks/security/workflow-security.d.ts +12 -0
  254. package/dist/esm/core/checks/security/workflow-security.js +100 -0
  255. package/dist/esm/core/checks/tool-install.d.ts +102 -0
  256. package/dist/esm/core/checks/tool-install.js +66 -0
  257. package/dist/esm/core/commands.d.ts +27 -0
  258. package/dist/esm/core/commands.js +89 -0
  259. package/dist/esm/core/context.d.ts +62 -0
  260. package/dist/esm/core/context.js +241 -0
  261. package/dist/esm/core/index.d.ts +4 -0
  262. package/dist/esm/core/index.js +4 -0
  263. package/dist/esm/core/install/cache.d.ts +58 -0
  264. package/dist/esm/core/install/cache.js +142 -0
  265. package/dist/esm/core/install/doctor.d.ts +35 -0
  266. package/dist/esm/core/install/doctor.js +164 -0
  267. package/dist/esm/core/install/ensure.d.ts +77 -0
  268. package/dist/esm/core/install/ensure.js +269 -0
  269. package/dist/esm/core/install/lock.d.ts +34 -0
  270. package/dist/esm/core/install/lock.js +92 -0
  271. package/dist/esm/core/install/merge.d.ts +47 -0
  272. package/dist/esm/core/install/merge.js +85 -0
  273. package/dist/esm/core/install/prepare.d.ts +76 -0
  274. package/dist/esm/core/install/prepare.js +142 -0
  275. package/dist/esm/core/install/profiles.d.ts +78 -0
  276. package/dist/esm/core/install/profiles.js +192 -0
  277. package/dist/esm/core/install/reuse.d.ts +41 -0
  278. package/dist/esm/core/install/reuse.js +100 -0
  279. package/dist/esm/core/registry.d.ts +6 -0
  280. package/dist/esm/core/registry.js +109 -0
  281. package/dist/esm/core/reporters.d.ts +18 -0
  282. package/dist/esm/core/reporters.js +266 -0
  283. package/dist/esm/core/run-checks.d.ts +33 -0
  284. package/dist/esm/core/run-checks.js +293 -0
  285. package/dist/esm/core/targets.d.ts +140 -0
  286. package/dist/esm/core/targets.js +213 -0
  287. package/dist/esm/core/types.d.ts +195 -0
  288. package/dist/esm/core/types.js +38 -0
  289. package/dist/esm/index.d.ts +12 -0
  290. package/dist/esm/index.js +15 -0
  291. package/dist/esm/init.d.ts +38 -0
  292. package/dist/esm/init.js +421 -0
  293. package/dist/esm/interfaces/index.d.ts +432 -0
  294. package/dist/esm/interfaces/index.js +2 -0
  295. package/dist/esm/package.json +1 -0
  296. package/dist/esm/scripts/copy-configs.d.ts +1 -0
  297. package/dist/esm/scripts/copy-configs.js +64 -0
  298. package/dist/esm/scripts/generate-install-manifests.d.ts +39 -0
  299. package/dist/esm/scripts/generate-install-manifests.js +115 -0
  300. package/dist/esm/scripts/publish-github.d.ts +1 -0
  301. package/dist/esm/scripts/publish-github.js +45 -0
  302. package/dist/esm/utils/ci.d.ts +11 -0
  303. package/dist/esm/utils/ci.js +40 -0
  304. package/dist/esm/utils/detect-language.d.ts +48 -0
  305. package/dist/esm/utils/detect-language.js +234 -0
  306. package/dist/esm/utils/direct-deps.d.ts +21 -0
  307. package/dist/esm/utils/direct-deps.js +220 -0
  308. package/dist/esm/utils/execa.d.ts +22 -0
  309. package/dist/{utils → esm/utils}/execa.js +1 -4
  310. package/dist/esm/utils/git.d.ts +14 -0
  311. package/dist/esm/utils/git.js +21 -0
  312. package/dist/esm/utils/glob.d.ts +24 -0
  313. package/dist/esm/utils/glob.js +40 -0
  314. package/dist/esm/utils/http.d.ts +59 -0
  315. package/dist/esm/utils/http.js +115 -0
  316. package/dist/esm/utils/index.d.ts +15 -0
  317. package/dist/esm/utils/index.js +26 -0
  318. package/dist/esm/utils/logger.d.ts +65 -0
  319. package/dist/esm/utils/logger.js +157 -0
  320. package/dist/esm/utils/own-deps.d.ts +16 -0
  321. package/dist/esm/utils/own-deps.js +107 -0
  322. package/dist/esm/utils/package-version.d.ts +4 -0
  323. package/dist/esm/utils/package-version.js +38 -0
  324. package/dist/esm/utils/pool.d.ts +49 -0
  325. package/dist/esm/utils/pool.js +113 -0
  326. package/dist/esm/utils/resolve-bin.d.ts +67 -0
  327. package/dist/esm/utils/resolve-bin.js +156 -0
  328. package/dist/esm/utils/result-collector.d.ts +33 -0
  329. package/dist/esm/utils/result-collector.js +44 -0
  330. package/dist/esm/utils/update-notifier.d.ts +19 -0
  331. package/dist/esm/utils/update-notifier.js +108 -0
  332. package/install-manifests/core/package-lock.json +4 -4
  333. package/install-manifests/core/package.json +1 -1
  334. package/package.json +15 -13
  335. package/dist/core/checks/languages/lint.d.ts +0 -2
  336. package/dist/core/index.d.ts +0 -4
  337. package/dist/core/registry.js +0 -112
  338. package/dist/index.d.ts +0 -12
  339. package/dist/utils/index.d.ts +0 -15
  340. /package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
  341. /package/dist/{config → cjs/config}/constants.d.ts +0 -0
  342. /package/dist/{config → cjs/config}/constants.js +0 -0
  343. /package/dist/{config → cjs/config}/pr-checkmate-workflow-docker.yml +0 -0
  344. /package/dist/{config → cjs/config}/pr-checkmate-workflow.yml +0 -0
  345. /package/dist/{core → cjs/core}/checks/languages/ruff-shared.d.ts +0 -0
  346. /package/dist/{core → cjs/core}/checks/languages/ruff-shared.js +0 -0
  347. /package/dist/{core → cjs/core}/commands.d.ts +0 -0
  348. /package/dist/{core → cjs/core}/commands.js +0 -0
  349. /package/dist/{core → cjs/core}/install/cache.d.ts +0 -0
  350. /package/dist/{core → cjs/core}/install/lock.d.ts +0 -0
  351. /package/dist/{core → cjs/core}/install/merge.d.ts +0 -0
  352. /package/dist/{core → cjs/core}/install/merge.js +0 -0
  353. /package/dist/{core → cjs/core}/install/profiles.js +0 -0
  354. /package/dist/{core → cjs/core}/types.js +0 -0
  355. /package/dist/{init.d.ts → cjs/init.d.ts} +0 -0
  356. /package/dist/{interfaces → cjs/interfaces}/index.js +0 -0
  357. /package/dist/{scripts → cjs/scripts}/copy-configs.d.ts +0 -0
  358. /package/dist/{scripts → cjs/scripts}/generate-install-manifests.d.ts +0 -0
  359. /package/dist/{scripts → cjs/scripts}/publish-github.d.ts +0 -0
  360. /package/dist/{utils → cjs/utils}/ci.d.ts +0 -0
  361. /package/dist/{utils → cjs/utils}/ci.js +0 -0
  362. /package/dist/{utils → cjs/utils}/detect-language.d.ts +0 -0
  363. /package/dist/{utils → cjs/utils}/direct-deps.d.ts +0 -0
  364. /package/dist/{utils → cjs/utils}/direct-deps.js +0 -0
  365. /package/dist/{utils → cjs/utils}/execa.d.ts +0 -0
  366. /package/dist/{utils → cjs/utils}/git.d.ts +0 -0
  367. /package/dist/{utils → cjs/utils}/glob.d.ts +0 -0
  368. /package/dist/{utils → cjs/utils}/glob.js +0 -0
  369. /package/dist/{utils → cjs/utils}/http.d.ts +0 -0
  370. /package/dist/{utils → cjs/utils}/logger.d.ts +0 -0
  371. /package/dist/{utils → cjs/utils}/logger.js +0 -0
  372. /package/dist/{utils → cjs/utils}/package-version.d.ts +0 -0
  373. /package/dist/{utils → cjs/utils}/pool.d.ts +0 -0
  374. /package/dist/{utils → cjs/utils}/pool.js +0 -0
  375. /package/dist/{utils → cjs/utils}/resolve-bin.d.ts +0 -0
  376. /package/dist/{utils → cjs/utils}/result-collector.d.ts +0 -0
  377. /package/dist/{utils → cjs/utils}/result-collector.js +0 -0
  378. /package/dist/{utils → cjs/utils}/update-notifier.d.ts +0 -0
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.grypeScanCheck = void 0;
4
- const utils_1 = require("../../../utils");
5
- const execa_1 = require("../../../utils/execa");
6
- const types_1 = require("../../types");
7
- const tool_install_1 = require("../tool-install");
4
+ const execa_js_1 = require("../../../utils/execa.js");
5
+ const index_js_1 = require("../../../utils/index.js");
6
+ const types_js_1 = require("../../types.js");
7
+ const tool_install_js_1 = require("../tool-install.js");
8
8
  const SEVERITY_ORDER = ['negligible', 'low', 'medium', 'high', 'critical'];
9
9
  /** grype artifact `type` → the ecosystem we can resolve direct deps for. */
10
10
  const TYPE_TO_ECOSYSTEM = {
@@ -62,7 +62,7 @@ exports.grypeScanCheck = {
62
62
  // third-party code is not something the client could fix anyway (see below).
63
63
  const excludes = (ctx.config.ignoreDirs ?? []).flatMap(dir => ['--exclude', `**/${dir}/**`]);
64
64
  const timeout = ctx.config.grypeScan?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
65
- const result = await (0, execa_1.execa)('grype', ['dir:.', '-o', 'json', '-q', ...excludes], {
65
+ const result = await (0, execa_js_1.execa)('grype', ['dir:.', '-o', 'json', '-q', ...excludes], {
66
66
  cwd: ctx.cwd,
67
67
  reject: false,
68
68
  timeout,
@@ -70,27 +70,27 @@ exports.grypeScanCheck = {
70
70
  // execa v9 with reject:false resolves (not throws) with `code: 'ENOENT'`
71
71
  // when the binary is absent — detect the missing scanner on the result.
72
72
  if (result.code === 'ENOENT')
73
- return (0, tool_install_1.notInstalled)('grype');
73
+ return (0, tool_install_js_1.notInstalled)('grype');
74
74
  if (result.timedOut) {
75
- utils_1.logger.warn(`[Grype Scan]: ⚠️ grype timed out after ${timeout}ms — skipping`);
76
- return (0, types_1.skip)('grype timed out');
75
+ index_js_1.logger.warn(`[Grype Scan]: ⚠️ grype timed out after ${timeout}ms — skipping`);
76
+ return (0, types_js_1.skip)('grype timed out');
77
77
  }
78
78
  let report;
79
79
  try {
80
80
  report = JSON.parse(result.stdout);
81
81
  }
82
82
  catch {
83
- return (0, types_1.warn)('grype produced no parseable output');
83
+ return (0, types_js_1.warn)('grype produced no parseable output');
84
84
  }
85
85
  const matches = report.matches ?? [];
86
- const direct = (0, utils_1.collectDirectDeps)(ctx.cwd);
86
+ const direct = (0, index_js_1.collectDirectDeps)(ctx.cwd);
87
87
  // Keep only: severity >= threshold, a direct dependency, and not ignored.
88
88
  const isDirect = (m) => {
89
89
  const ecosystem = TYPE_TO_ECOSYSTEM[m.artifact?.type ?? ''];
90
90
  const names = ecosystem && direct.get(ecosystem);
91
91
  if (!names)
92
92
  return false; // unknown/unparseable ecosystem → not our concern
93
- return names.has((0, utils_1.normalizeName)(ecosystem, m.artifact?.name ?? ''));
93
+ return names.has((0, index_js_1.normalizeName)(ecosystem, m.artifact?.name ?? ''));
94
94
  };
95
95
  const isIgnored = (m) => ignore.includes((m.vulnerability?.id ?? '').toLowerCase()) ||
96
96
  ignore.includes((m.artifact?.name ?? '').toLowerCase());
@@ -98,18 +98,18 @@ exports.grypeScanCheck = {
98
98
  const findings = atSeverity.filter(m => isDirect(m) && !isIgnored(m));
99
99
  const suppressed = atSeverity.length - findings.length;
100
100
  if (suppressed > 0) {
101
- utils_1.logger.info(`[Grype Scan]: suppressed ${suppressed} finding(s) — transitive/third-party (not directly fixable) or ignored`);
101
+ index_js_1.logger.info(`[Grype Scan]: suppressed ${suppressed} finding(s) — transitive/third-party (not directly fixable) or ignored`);
102
102
  }
103
103
  if (findings.length === 0) {
104
- utils_1.logger.info('[Grype Scan]: ✅ No known vulnerabilities in direct dependencies');
105
- return (0, types_1.pass)();
104
+ index_js_1.logger.info('[Grype Scan]: ✅ No known vulnerabilities in direct dependencies');
105
+ return (0, types_js_1.pass)();
106
106
  }
107
- utils_1.logger.warn(`[Grype Scan]: ⚠️ vulnerabilities in direct dependencies (>= ${minSeverity}):`);
107
+ index_js_1.logger.warn(`[Grype Scan]: ⚠️ vulnerabilities in direct dependencies (>= ${minSeverity}):`);
108
108
  findings
109
109
  .slice(0, 10)
110
- .forEach(m => utils_1.logger.warn(` ${m.vulnerability?.id ?? 'unknown'} — ${m.artifact?.name ?? '?'}@${m.artifact?.version ?? '?'} (${m.vulnerability?.severity ?? '?'})`));
110
+ .forEach(m => index_js_1.logger.warn(` ${m.vulnerability?.id ?? 'unknown'} — ${m.artifact?.name ?? '?'}@${m.artifact?.version ?? '?'} (${m.vulnerability?.severity ?? '?'})`));
111
111
  if (findings.length > 10)
112
- utils_1.logger.warn(` ... and ${findings.length - 10} more`);
113
- return (0, types_1.warn)(`${findings.length} direct-dependency vulnerability(ies) at "${minSeverity}"+ (grype)`);
112
+ index_js_1.logger.warn(` ... and ${findings.length - 10} more`);
113
+ return (0, types_js_1.warn)(`${findings.length} direct-dependency vulnerability(ies) at "${minSeverity}"+ (grype)`);
114
114
  },
115
115
  };
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const licenseCheck: Check;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.licenseCheck = void 0;
4
- const utils_1 = require("../../../utils");
5
- const execa_1 = require("../../../utils/execa");
6
- const types_1 = require("../../types");
4
+ const execa_js_1 = require("../../../utils/execa.js");
5
+ const index_js_1 = require("../../../utils/index.js");
6
+ const types_js_1 = require("../../types.js");
7
7
  const FORBIDDEN_LICENSES = ['GPL-2.0', 'GPL-3.0', 'AGPL-3.0', 'LGPL-2.0', 'LGPL-2.1', 'LGPL-3.0'];
8
8
  /** Strip the trailing "@version" to get the bare package name (scoped-safe). */
9
9
  function bareName(pkgKey) {
@@ -14,7 +14,7 @@ exports.licenseCheck = {
14
14
  name: 'License Check',
15
15
  phase: 'blocking',
16
16
  applies(ctx) {
17
- return (0, types_1.isNpmProject)(ctx);
17
+ return (0, types_js_1.isNpmProject)(ctx);
18
18
  },
19
19
  async run(ctx) {
20
20
  const allowPackages = new Set(ctx.config.licenseCheck?.allowPackages ?? []);
@@ -23,24 +23,24 @@ exports.licenseCheck = {
23
23
  // deps (eslint plugins, cspell dictionaries, …) leak into the client's
24
24
  // production tree. Those are our dependencies, not the client's — never fail
25
25
  // a client's PR because of a license we ourselves pulled in.
26
- const ownDeps = (0, utils_1.getOwnDependencyClosure)();
26
+ const ownDeps = (0, index_js_1.getOwnDependencyClosure)();
27
27
  // Resolve the bundled license-checker binary and run it via the current node — never
28
28
  // shell out to `npx`, which fails (exit 127) when license-checker isn't on the path.
29
29
  let licenseCheckerBin;
30
30
  try {
31
- licenseCheckerBin = (0, utils_1.resolvePackageBin)('license-checker-rseidelsohn', 'bin/license-checker-rseidelsohn.js');
31
+ licenseCheckerBin = (0, index_js_1.resolvePackageBin)('license-checker-rseidelsohn', 'bin/license-checker-rseidelsohn.js');
32
32
  }
33
33
  catch {
34
- return (0, types_1.skip)('license-checker unavailable');
34
+ return (0, types_js_1.skip)('license-checker unavailable');
35
35
  }
36
- const { stdout, failed } = await (0, execa_1.execa)(process.execPath, [licenseCheckerBin, '--json', '--production'], { cwd: ctx.cwd, reject: false });
36
+ const { stdout, failed } = await (0, execa_js_1.execa)(process.execPath, [licenseCheckerBin, '--json', '--production'], { cwd: ctx.cwd, reject: false });
37
37
  let licenses;
38
38
  try {
39
39
  licenses = JSON.parse(stdout);
40
40
  }
41
41
  catch {
42
42
  // Tool couldn't produce parseable output; skip rather than fail the client's PR.
43
- return (0, types_1.skip)(failed ? 'license-checker failed to run' : 'license-checker produced invalid JSON');
43
+ return (0, types_js_1.skip)(failed ? 'license-checker failed to run' : 'license-checker produced invalid JSON');
44
44
  }
45
45
  const violations = [];
46
46
  for (const [pkg, info] of Object.entries(licenses)) {
@@ -56,9 +56,9 @@ exports.licenseCheck = {
56
56
  }
57
57
  }
58
58
  if (violations.length > 0) {
59
- violations.forEach(v => utils_1.logger.error(`[License Check]: ❌ ${v}`));
60
- return (0, types_1.fail)(`${violations.length} forbidden license(s)`);
59
+ violations.forEach(v => index_js_1.logger.error(`[License Check]: ❌ ${v}`));
60
+ return (0, types_js_1.fail)(`${violations.length} forbidden license(s)`);
61
61
  }
62
- return (0, types_1.pass)();
62
+ return (0, types_js_1.pass)();
63
63
  },
64
64
  };
@@ -1,4 +1,4 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  /**
3
3
  * npm audit — only direct-dependency vulnerabilities block. Transitive ones and
4
4
  * vulnerabilities in pr-checkmate itself are ignored (the client cannot fix those).
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.npmAuditCheck = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
- const utils_1 = require("../../../utils");
10
- const execa_1 = require("../../../utils/execa");
11
- const types_1 = require("../../types");
9
+ const execa_js_1 = require("../../../utils/execa.js");
10
+ const index_js_1 = require("../../../utils/index.js");
11
+ const types_js_1 = require("../../types.js");
12
12
  const SEVERITY_ORDER = ['info', 'low', 'moderate', 'high', 'critical'];
13
13
  function isSeverityAtLeast(severity, level) {
14
14
  const sevIdx = SEVERITY_ORDER.indexOf(severity);
@@ -17,7 +17,7 @@ function isSeverityAtLeast(severity, level) {
17
17
  }
18
18
  function getOwnPackageName() {
19
19
  try {
20
- const ownPkg = node_path_1.default.resolve(__dirname, '../../../../package.json');
20
+ const ownPkg = node_path_1.default.join((0, index_js_1.findOwnPackageRoot)() ?? node_path_1.default.resolve(__dirname, '../../../..'), 'package.json');
21
21
  return JSON.parse(node_fs_1.default.readFileSync(ownPkg, 'utf-8')).name ?? null;
22
22
  }
23
23
  catch {
@@ -34,7 +34,7 @@ exports.npmAuditCheck = {
34
34
  applies(ctx) {
35
35
  if (ctx.config.security?.['npm-audit']?.enabled === false)
36
36
  return false;
37
- return (0, types_1.isNpmProject)(ctx);
37
+ return (0, types_js_1.isNpmProject)(ctx);
38
38
  },
39
39
  async run(ctx) {
40
40
  // `high`, not `moderate`. A moderate CVE in a direct dependency often has no
@@ -45,7 +45,7 @@ exports.npmAuditCheck = {
45
45
  const auditLevel = ctx.config.security?.['npm-audit']?.auditLevel ?? 'high';
46
46
  const ignore = new Set((ctx.config.security?.['npm-audit']?.ignore ?? []).map(name => name.toLowerCase()));
47
47
  const ownName = getOwnPackageName();
48
- const { stdout } = await (0, execa_1.execa)('npm', ['audit', '--json'], { cwd: ctx.cwd, reject: false });
48
+ const { stdout } = await (0, execa_js_1.execa)('npm', ['audit', '--json'], { cwd: ctx.cwd, reject: false });
49
49
  // `npm audit` reports registry/lockfile problems as JSON on stdout, but not
50
50
  // always: an absent npm (execa resolves with `code: 'ENOENT'`), a killed
51
51
  // process or a proxy that answers with HTML all leave stdout unparseable.
@@ -57,16 +57,16 @@ exports.npmAuditCheck = {
57
57
  report = JSON.parse(stdout);
58
58
  }
59
59
  catch {
60
- utils_1.logger.warn('[NPM Audit]: ⚠️ npm audit produced no parseable report — skipping');
61
- return (0, types_1.skip)('npm audit produced no parseable report');
60
+ index_js_1.logger.warn('[NPM Audit]: ⚠️ npm audit produced no parseable report — skipping');
61
+ return (0, types_js_1.skip)('npm audit produced no parseable report');
62
62
  }
63
63
  // A repo with no lockfile, or a registry npm cannot reach, yields
64
64
  // `{"error":{"code":"ENOLOCK",…}}` — no `vulnerabilities` key at all. Passing
65
65
  // on that reads as "no vulnerabilities" when nothing was actually audited.
66
66
  if (report.error) {
67
67
  const detail = report.error.summary ?? report.error.code ?? 'unknown error';
68
- utils_1.logger.warn(`[NPM Audit]: ⚠️ npm could not audit this project — ${detail}`);
69
- return (0, types_1.skip)(`npm audit unavailable: ${report.error.code ?? 'error'}`);
68
+ index_js_1.logger.warn(`[NPM Audit]: ⚠️ npm could not audit this project — ${detail}`);
69
+ return (0, types_js_1.skip)(`npm audit unavailable: ${report.error.code ?? 'error'}`);
70
70
  }
71
71
  const relevant = Object.values(report.vulnerabilities ?? {}).filter(v => v.isDirect && v.name !== ownName && isSeverityAtLeast(v.severity, auditLevel));
72
72
  const [ignored, directVulns] = relevant.reduce(([skip, block], v) => {
@@ -74,10 +74,10 @@ exports.npmAuditCheck = {
74
74
  return [skip, block];
75
75
  }, [[], []]);
76
76
  // Ignored advisories stay visible as warnings — an exception is not a silent drop.
77
- ignored.forEach(v => utils_1.logger.warn(`[NPM Audit]: ⚠ ${v.name} — severity: ${v.severity} (ignored via config)`));
77
+ ignored.forEach(v => index_js_1.logger.warn(`[NPM Audit]: ⚠ ${v.name} — severity: ${v.severity} (ignored via config)`));
78
78
  if (directVulns.length === 0)
79
- return (0, types_1.pass)();
80
- directVulns.forEach(v => utils_1.logger.error(`[NPM Audit]: ❌ ${v.name} — severity: ${v.severity}`));
81
- return (0, types_1.fail)(`${directVulns.length} direct vulnerability(ies) at "${auditLevel}"+`);
79
+ return (0, types_js_1.pass)();
80
+ directVulns.forEach(v => index_js_1.logger.error(`[NPM Audit]: ❌ ${v.name} — severity: ${v.severity}`));
81
+ return (0, types_js_1.fail)(`${directVulns.length} direct vulnerability(ies) at "${auditLevel}"+`);
82
82
  },
83
83
  };
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const outdatedDepsCheck: Check;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.outdatedDepsCheck = void 0;
4
- const utils_1 = require("../../../utils");
5
- const execa_1 = require("../../../utils/execa");
6
- const types_1 = require("../../types");
4
+ const execa_js_1 = require("../../../utils/execa.js");
5
+ const index_js_1 = require("../../../utils/index.js");
6
+ const types_js_1 = require("../../types.js");
7
7
  const DEFAULT_TIMEOUT_MS = 30000;
8
8
  exports.outdatedDepsCheck = {
9
9
  name: 'Outdated Deps',
@@ -11,7 +11,7 @@ exports.outdatedDepsCheck = {
11
11
  applies(ctx) {
12
12
  if (ctx.config.outdatedDeps?.enabled === false)
13
13
  return false;
14
- return (0, types_1.isNpmProject)(ctx);
14
+ return (0, types_js_1.isNpmProject)(ctx);
15
15
  },
16
16
  async run(ctx) {
17
17
  // `npm outdated` queries the registry for every dependency and can take a
@@ -19,30 +19,30 @@ exports.outdatedDepsCheck = {
19
19
  // holds up CI. On timeout, skip rather than fail.
20
20
  const timeout = ctx.config.outdatedDeps?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
21
21
  // npm outdated exits 1 when outdated packages exist — use reject:false.
22
- const result = await (0, execa_1.execa)('npm', ['outdated', '--json'], {
22
+ const result = await (0, execa_js_1.execa)('npm', ['outdated', '--json'], {
23
23
  cwd: ctx.cwd,
24
24
  reject: false,
25
25
  timeout,
26
26
  });
27
27
  if (result.timedOut) {
28
- utils_1.logger.warn(`[Outdated Deps]: ⚠️ npm outdated timed out after ${timeout}ms — skipping`);
29
- return (0, types_1.skip)('npm outdated timed out');
28
+ index_js_1.logger.warn(`[Outdated Deps]: ⚠️ npm outdated timed out after ${timeout}ms — skipping`);
29
+ return (0, types_js_1.skip)('npm outdated timed out');
30
30
  }
31
31
  if (!result.stdout?.trim())
32
- return (0, types_1.pass)();
32
+ return (0, types_js_1.pass)();
33
33
  let outdated;
34
34
  try {
35
35
  outdated = JSON.parse(result.stdout);
36
36
  }
37
37
  catch {
38
- return (0, types_1.pass)();
38
+ return (0, types_js_1.pass)();
39
39
  }
40
40
  // Packages deliberately pinned behind their latest major (see outdatedDeps.ignore
41
41
  // in pr-checkmate.json) are dropped before counting, so they never warn.
42
42
  const ignore = new Set(ctx.config.outdatedDeps?.ignore ?? []);
43
43
  const entries = Object.entries(outdated).filter(([pkg]) => !ignore.has(pkg));
44
44
  if (entries.length === 0)
45
- return (0, types_1.pass)();
45
+ return (0, types_js_1.pass)();
46
46
  // `current` is only populated when the package is installed in node_modules.
47
47
  // In CI (npx-invoked validator, no `npm ci` for the target repo) it's absent,
48
48
  // so fall back to `wanted` — the version the package.json range resolves to,
@@ -57,13 +57,13 @@ exports.outdatedDepsCheck = {
57
57
  return parseInt(latest?.split('.')[0] ?? '0', 10) > parseInt(baseline.split('.')[0], 10);
58
58
  });
59
59
  if (majorBehind.length > 0) {
60
- majorBehind.forEach(({ pkg, baseline, latest }) => utils_1.logger.warn(`[Outdated Deps]: ⚠️ ${pkg}: ${baseline} → ${latest}`));
61
- return (0, types_1.warn)(`${majorBehind.length} package(s) major versions behind`);
60
+ majorBehind.forEach(({ pkg, baseline, latest }) => index_js_1.logger.warn(`[Outdated Deps]: ⚠️ ${pkg}: ${baseline} → ${latest}`));
61
+ return (0, types_js_1.warn)(`${majorBehind.length} package(s) major versions behind`);
62
62
  }
63
63
  const minorBehind = entries.length - majorBehind.length;
64
64
  if (minorBehind > 0) {
65
- utils_1.logger.info(`[Outdated Deps]: ${minorBehind} package(s) have minor/patch updates`);
65
+ index_js_1.logger.info(`[Outdated Deps]: ${minorBehind} package(s) have minor/patch updates`);
66
66
  }
67
- return (0, types_1.pass)();
67
+ return (0, types_js_1.pass)();
68
68
  },
69
69
  };
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const vulnScanCheck: Check;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.vulnScanCheck = void 0;
4
- const utils_1 = require("../../../utils");
5
- const execa_1 = require("../../../utils/execa");
6
- const types_1 = require("../../types");
7
- const tool_install_1 = require("../tool-install");
4
+ const execa_js_1 = require("../../../utils/execa.js");
5
+ const index_js_1 = require("../../../utils/index.js");
6
+ const types_js_1 = require("../../types.js");
7
+ const tool_install_js_1 = require("../tool-install.js");
8
8
  /**
9
9
  * Cross-language dependency vulnerability scan via osv-scanner, which reads
10
10
  * lockfiles across ecosystems (npm, PyPI, Go, crates, Maven, …) against the OSV
@@ -26,7 +26,7 @@ exports.vulnScanCheck = {
26
26
  },
27
27
  async run(ctx) {
28
28
  const timeout = ctx.config.vulnScan?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
29
- const result = await (0, execa_1.execa)('osv-scanner', ['-r', '.'], {
29
+ const result = await (0, execa_js_1.execa)('osv-scanner', ['-r', '.'], {
30
30
  cwd: ctx.cwd,
31
31
  reject: false,
32
32
  timeout,
@@ -34,24 +34,24 @@ exports.vulnScanCheck = {
34
34
  // execa v9 with reject:false resolves (not throws) with `code: 'ENOENT'`
35
35
  // when the binary is absent — detect the missing scanner on the result.
36
36
  if (result.code === 'ENOENT')
37
- return (0, tool_install_1.notInstalled)('osv-scanner');
37
+ return (0, tool_install_js_1.notInstalled)('osv-scanner');
38
38
  if (result.timedOut) {
39
- utils_1.logger.warn(`[Vuln Scan]: ⚠️ osv-scanner timed out after ${timeout}ms — skipping`);
40
- return (0, types_1.skip)('osv-scanner timed out');
39
+ index_js_1.logger.warn(`[Vuln Scan]: ⚠️ osv-scanner timed out after ${timeout}ms — skipping`);
40
+ return (0, types_js_1.skip)('osv-scanner timed out');
41
41
  }
42
42
  if (result.exitCode === 0) {
43
- utils_1.logger.info('[Vuln Scan]: ✅ No known vulnerabilities');
44
- return (0, types_1.pass)();
43
+ index_js_1.logger.info('[Vuln Scan]: ✅ No known vulnerabilities');
44
+ return (0, types_js_1.pass)();
45
45
  }
46
46
  const lines = [result.stdout, result.stderr]
47
47
  .filter(Boolean)
48
48
  .join('\n')
49
49
  .split('\n')
50
50
  .filter(l => /\b(CVE-|GHSA-|vulnerab|advisor)/i.test(l));
51
- utils_1.logger.warn('[Vuln Scan]: ⚠️ known vulnerabilities found:');
52
- lines.slice(0, 10).forEach(l => utils_1.logger.warn(` ${l.trim()}`));
51
+ index_js_1.logger.warn('[Vuln Scan]: ⚠️ known vulnerabilities found:');
52
+ lines.slice(0, 10).forEach(l => index_js_1.logger.warn(` ${l.trim()}`));
53
53
  if (lines.length > 10)
54
- utils_1.logger.warn(` ... and ${lines.length - 10} more`);
55
- return (0, types_1.warn)(`${lines.length || 'unknown'} vulnerability finding(s) (osv-scanner)`);
54
+ index_js_1.logger.warn(` ... and ${lines.length - 10} more`);
55
+ return (0, types_js_1.warn)(`${lines.length || 'unknown'} vulnerability finding(s) (osv-scanner)`);
56
56
  },
57
57
  };
@@ -1,4 +1,4 @@
1
- import { CheckContext, CheckOutcome } from '../types';
1
+ import { CheckContext, CheckOutcome } from '../types.js';
2
2
  /**
3
3
  * Client-configurable severity for a check's findings, read from that check's
4
4
  * config block (e.g. `mergeConflict.severity`). `error` fails the run, `warn`
@@ -21,10 +21,10 @@ exports.clientFindingOptions = clientFindingOptions;
21
21
  exports.reportSeverityBuckets = reportSeverityBuckets;
22
22
  const node_fs_1 = __importDefault(require("node:fs"));
23
23
  const node_path_1 = __importDefault(require("node:path"));
24
- const utils_1 = require("../../utils");
25
- const execa_1 = require("../../utils/execa");
26
- const targets_1 = require("../targets");
27
- const types_1 = require("../types");
24
+ const execa_js_1 = require("../../utils/execa.js");
25
+ const index_js_1 = require("../../utils/index.js");
26
+ const targets_js_1 = require("../targets.js");
27
+ const types_js_1 = require("../types.js");
28
28
  /**
29
29
  * Resolve a check's effective severity (`configured` from config, else its
30
30
  * `fallback`) into a matched logger, icon, and outcome constructor — so a check
@@ -33,9 +33,9 @@ const types_1 = require("../types");
33
33
  function severityEmitter(configured, fallback) {
34
34
  const isError = (configured ?? fallback) === 'error';
35
35
  return {
36
- log: (isError ? utils_1.logger.error : utils_1.logger.warn).bind(utils_1.logger),
36
+ log: (isError ? index_js_1.logger.error : index_js_1.logger.warn).bind(index_js_1.logger),
37
37
  icon: isError ? '❌' : '⚠️',
38
- emit: (details) => (isError ? (0, types_1.fail)(details) : (0, types_1.warn)(details)),
38
+ emit: (details) => (isError ? (0, types_js_1.fail)(details) : (0, types_js_1.warn)(details)),
39
39
  };
40
40
  }
41
41
  /** Append `from`'s samples to `into`, merging labels both sides produced. */
@@ -80,7 +80,7 @@ async function diffAddedLines(ctx, globs) {
80
80
  const cacheKey = `d:${args.join('')}`;
81
81
  let stdout = ctx.cache?.get(cacheKey);
82
82
  if (stdout === undefined) {
83
- stdout = (await (0, execa_1.execa)('git', args, { cwd: ctx.cwd })).stdout;
83
+ stdout = (await (0, execa_js_1.execa)('git', args, { cwd: ctx.cwd })).stdout;
84
84
  ctx.cache?.set(cacheKey, stdout);
85
85
  }
86
86
  // Universal inline suppression: strip added lines opted out with the
@@ -159,7 +159,7 @@ async function reviewLines(ctx, globs, onChunk) {
159
159
  }
160
160
  if (ctx.config.run?.fullScanBehaviour === 'skip')
161
161
  return true;
162
- const files = await (0, targets_1.listTrackedFiles)(ctx, globs, ['.']);
162
+ const files = await (0, targets_js_1.listTrackedFiles)(ctx, globs, ['.']);
163
163
  if (files === null)
164
164
  return false;
165
165
  await scanTrackedFiles(ctx, files, onChunk);
@@ -476,7 +476,7 @@ function scanDiffPatterns(stdout, patterns, opts = {}) {
476
476
  if (header) {
477
477
  syntax = mode === 'language' ? commentSyntaxFor(header[1]) : 'both';
478
478
  inBlockComment = false;
479
- skippingFile = ignorePaths.length > 0 && (0, utils_1.matchesAnyGlob)(header[1], ignorePaths);
479
+ skippingFile = ignorePaths.length > 0 && (0, index_js_1.matchesAnyGlob)(header[1], ignorePaths);
480
480
  taint.reset();
481
481
  continue;
482
482
  }
@@ -578,10 +578,10 @@ const MAX_LOGGED = 10;
578
578
  * shape (ticket 079).
579
579
  */
580
580
  function logSample(name, summary, lines) {
581
- utils_1.logger.warn(`[${name}]: ⚠️ ${summary}`);
582
- lines.slice(0, MAX_LOGGED).forEach(line => utils_1.logger.warn(` ${line}`));
581
+ index_js_1.logger.warn(`[${name}]: ⚠️ ${summary}`);
582
+ lines.slice(0, MAX_LOGGED).forEach(line => index_js_1.logger.warn(` ${line}`));
583
583
  if (lines.length > MAX_LOGGED)
584
- utils_1.logger.warn(` ... and ${lines.length - MAX_LOGGED} more`);
584
+ index_js_1.logger.warn(` ... and ${lines.length - MAX_LOGGED} more`);
585
585
  }
586
586
  function bucketTotal(bucket) {
587
587
  return Object.values(bucket).reduce((sum, arr) => sum + arr.length, 0);
@@ -617,7 +617,7 @@ function reportCountedFindings(findings, ctx, opts) {
617
617
  * two cannot report different levels.
618
618
  */
619
619
  function logFindings(bucket, opts) {
620
- const emit = opts.isError ? utils_1.logger.error.bind(utils_1.logger) : utils_1.logger.warn.bind(utils_1.logger);
620
+ const emit = opts.isError ? index_js_1.logger.error.bind(index_js_1.logger) : index_js_1.logger.warn.bind(index_js_1.logger);
621
621
  const icon = opts.isError ? '❌' : '⚠️';
622
622
  const showCount = opts.showCount ?? true;
623
623
  const { sampleLimit } = opts;
@@ -705,18 +705,18 @@ function reportSeverityBuckets(errorsIn, warningsIn, opts) {
705
705
  const totalErrors = bucketTotal(errors);
706
706
  const totalWarnings = bucketTotal(warnings);
707
707
  if (totalErrors === 0 && totalWarnings === 0)
708
- return (0, types_1.pass)();
708
+ return (0, types_js_1.pass)();
709
709
  const logOpts = { prefix: opts.prefix, showCount: opts.showCount, sampleLimit: opts.sampleLimit };
710
710
  logFindings(errors, { ...logOpts, isError: true });
711
711
  logFindings(warnings, { ...logOpts, isError: false });
712
712
  const failOn = opts.failOn ?? opts.defaults?.failOn ?? 'error';
713
713
  if (failOn === 'never')
714
- return (0, types_1.pass)();
714
+ return (0, types_js_1.pass)();
715
715
  const parts = [];
716
716
  if (totalErrors > 0)
717
717
  parts.push(opts.errorSummary(totalErrors));
718
718
  if (totalWarnings > 0)
719
719
  parts.push(opts.warningSummary(totalWarnings));
720
720
  const summary = parts.join(', ');
721
- return failOn === 'error' && totalErrors > 0 ? (0, types_1.fail)(summary) : (0, types_1.warn)(summary);
721
+ return failOn === 'error' && totalErrors > 0 ? (0, types_js_1.fail)(summary) : (0, types_js_1.warn)(summary);
722
722
  }
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const customRulesCheck: Check;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.customRulesCheck = void 0;
4
- const utils_1 = require("../../../utils");
5
- const execa_1 = require("../../../utils/execa");
6
- const targets_1 = require("../../targets");
7
- const types_1 = require("../../types");
8
- const findings_1 = require("../findings");
4
+ const execa_js_1 = require("../../../utils/execa.js");
5
+ const index_js_1 = require("../../../utils/index.js");
6
+ const targets_js_1 = require("../../targets.js");
7
+ const types_js_1 = require("../../types.js");
8
+ const findings_js_1 = require("../findings.js");
9
9
  /**
10
10
  * Compile the user's `customRules` into ready-to-run matchers. A rule with an
11
11
  * invalid regex is skipped with a warning rather than crashing the run. `g`/`y`
@@ -23,7 +23,7 @@ function compileRules(ctx) {
23
23
  re = new RegExp(r.pattern, (r.flags ?? '').replace(/[gy]/g, ''));
24
24
  }
25
25
  catch (err) {
26
- utils_1.logger.warn(`[Custom Rules]: ⚠️ invalid regex in rule "${r.name}" — skipped\n${err}`);
26
+ index_js_1.logger.warn(`[Custom Rules]: ⚠️ invalid regex in rule "${r.name}" — skipped\n${err}`);
27
27
  continue;
28
28
  }
29
29
  compiled.push({
@@ -55,9 +55,9 @@ function scanDiff(stdout, rules) {
55
55
  continue;
56
56
  const content = raw.slice(1);
57
57
  for (const rule of rules) {
58
- if (rule.include && !(0, utils_1.matchesAnyGlob)(file, rule.include))
58
+ if (rule.include && !(0, index_js_1.matchesAnyGlob)(file, rule.include))
59
59
  continue;
60
- if (rule.exclude && (0, utils_1.matchesAnyGlob)(file, rule.exclude))
60
+ if (rule.exclude && (0, index_js_1.matchesAnyGlob)(file, rule.exclude))
61
61
  continue;
62
62
  if (rule.re.test(content)) {
63
63
  const bucket = rule.severity === 'error' ? errors : warnings;
@@ -79,31 +79,31 @@ exports.customRulesCheck = {
79
79
  async run(ctx) {
80
80
  const rules = compileRules(ctx);
81
81
  if (rules.length === 0)
82
- return (0, types_1.pass)('no valid custom rules');
82
+ return (0, types_js_1.pass)('no valid custom rules');
83
83
  try {
84
- const found = (0, findings_1.emptyBuckets)();
85
- const collect = (stdout) => (0, findings_1.mergeSeverityBuckets)(found, scanDiff(stdout, rules));
84
+ const found = (0, findings_js_1.emptyBuckets)();
85
+ const collect = (stdout) => (0, findings_js_1.mergeSeverityBuckets)(found, scanDiff(stdout, rules));
86
86
  if (ctx.baseSha) {
87
- const { stdout } = await (0, execa_1.execa)('git', ['diff', '--unified=0', '--diff-filter=ACMR', ctx.baseSha, ctx.headSha ?? 'HEAD'], { cwd: ctx.cwd });
87
+ const { stdout } = await (0, execa_js_1.execa)('git', ['diff', '--unified=0', '--diff-filter=ACMR', ctx.baseSha, ctx.headSha ?? 'HEAD'], { cwd: ctx.cwd });
88
88
  collect(stdout);
89
89
  }
90
90
  else if (ctx.config.run?.fullScanBehaviour !== 'skip') {
91
- const files = await (0, targets_1.listTrackedFiles)(ctx, ['*'], ['.']);
91
+ const files = await (0, targets_js_1.listTrackedFiles)(ctx, ['*'], ['.']);
92
92
  if (files === null)
93
- return (0, types_1.skip)('git unavailable');
94
- await (0, findings_1.scanTrackedFiles)(ctx, files, collect);
93
+ return (0, types_js_1.skip)('git unavailable');
94
+ await (0, findings_js_1.scanTrackedFiles)(ctx, files, collect);
95
95
  }
96
96
  // A rule with severity "error" blocks the run (fail), regardless of phase.
97
- return (0, findings_1.reportSeverityBuckets)(found.errors, found.warnings, {
97
+ return (0, findings_js_1.reportSeverityBuckets)(found.errors, found.warnings, {
98
98
  prefix: PREFIX,
99
99
  errorSummary: n => `${n} error(s)`,
100
100
  warningSummary: n => `${n} warning(s)`,
101
- ...(0, findings_1.clientFindingOptions)(ctx),
101
+ ...(0, findings_js_1.clientFindingOptions)(ctx),
102
102
  });
103
103
  }
104
104
  catch (err) {
105
- utils_1.logger.warn(`[Custom Rules]: ⚠️ Could not analyze diff\n${err}`);
106
- return (0, types_1.skip)('diff unavailable');
105
+ index_js_1.logger.warn(`[Custom Rules]: ⚠️ Could not analyze diff\n${err}`);
106
+ return (0, types_js_1.skip)('diff unavailable');
107
107
  }
108
108
  },
109
109
  };
@@ -1,5 +1,5 @@
1
- import { Check } from '../../types';
2
- import { DiffPattern } from '../findings';
1
+ import { Check } from '../../types.js';
2
+ import { DiffPattern } from '../findings.js';
3
3
  /**
4
4
  * Smells that are only smells in live code.
5
5
  *
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.diffSmellCheck = exports.COMMENT_SMELLS = exports.CODE_SMELLS = void 0;
4
- const utils_1 = require("../../../utils");
5
- const types_1 = require("../../types");
6
- const findings_1 = require("../findings");
4
+ const index_js_1 = require("../../../utils/index.js");
5
+ const types_js_1 = require("../../types.js");
6
+ const findings_js_1 = require("../findings.js");
7
7
  /**
8
8
  * Smells that are only smells in live code.
9
9
  *
@@ -49,24 +49,24 @@ exports.diffSmellCheck = {
49
49
  async run(ctx) {
50
50
  try {
51
51
  const { ignorePaths } = ctx.config.diffSmell ?? {};
52
- const found = (0, findings_1.emptyBuckets)();
53
- const reviewed = await (0, findings_1.reviewLines)(ctx, ['*.ts', '*.tsx', '*.js', '*.jsx'], stdout => {
54
- (0, findings_1.mergeSeverityBuckets)(found, (0, findings_1.scanDiffPatterns)(stdout, exports.CODE_SMELLS, { ignorePaths }));
55
- (0, findings_1.mergeSeverityBuckets)(found, (0, findings_1.scanDiffPatterns)(stdout, exports.COMMENT_SMELLS, { comments: 'off', ignorePaths }));
52
+ const found = (0, findings_js_1.emptyBuckets)();
53
+ const reviewed = await (0, findings_js_1.reviewLines)(ctx, ['*.ts', '*.tsx', '*.js', '*.jsx'], stdout => {
54
+ (0, findings_js_1.mergeSeverityBuckets)(found, (0, findings_js_1.scanDiffPatterns)(stdout, exports.CODE_SMELLS, { ignorePaths }));
55
+ (0, findings_js_1.mergeSeverityBuckets)(found, (0, findings_js_1.scanDiffPatterns)(stdout, exports.COMMENT_SMELLS, { comments: 'off', ignorePaths }));
56
56
  });
57
57
  // An unreadable file list is not "no smells" (ticket 072). Checked before
58
58
  // the empty-bucket branch below, because that branch is what turned it into
59
59
  // a green row.
60
60
  if (!reviewed)
61
- return (0, types_1.skip)('git unavailable');
61
+ return (0, types_js_1.skip)('git unavailable');
62
62
  // Every smell here is declared `warn`, so nothing reaches the error bucket.
63
- if ((0, findings_1.bucketTotal)(found.warnings) === 0)
64
- return (0, types_1.pass)();
65
- return (0, findings_1.reportCountedFindings)(found.warnings, ctx, { prefix: 'Diff Smells' });
63
+ if ((0, findings_js_1.bucketTotal)(found.warnings) === 0)
64
+ return (0, types_js_1.pass)();
65
+ return (0, findings_js_1.reportCountedFindings)(found.warnings, ctx, { prefix: 'Diff Smells' });
66
66
  }
67
67
  catch (err) {
68
- utils_1.logger.warn(`[Diff Smells]: ⚠️ Could not analyze diff\n${err}`);
69
- return (0, types_1.skip)('diff unavailable');
68
+ index_js_1.logger.warn(`[Diff Smells]: ⚠️ Could not analyze diff\n${err}`);
69
+ return (0, types_js_1.skip)('diff unavailable');
70
70
  }
71
71
  },
72
72
  };