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
@@ -7,9 +7,9 @@ exports.configValidationCheck = void 0;
7
7
  exports.suggestName = suggestName;
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
- const config_1 = require("../../../config");
11
- const types_1 = require("../../types");
12
- const findings_1 = require("../findings");
10
+ const index_js_1 = require("../../../config/index.js");
11
+ const types_js_1 = require("../../types.js");
12
+ const findings_js_1 = require("../findings.js");
13
13
  const VALID_SEVERITIES = ['error', 'warn', 'off'];
14
14
  const VALID_FAIL_ON = ['error', 'warn', 'never'];
15
15
  /** Edit distance, capped: we only care whether two names are one or two typos apart. */
@@ -155,7 +155,7 @@ exports.configValidationCheck = {
155
155
  raw = node_fs_1.default.readFileSync(file, 'utf-8');
156
156
  }
157
157
  catch {
158
- return (0, types_1.skip)('no pr-checkmate.json');
158
+ return (0, types_js_1.skip)('no pr-checkmate.json');
159
159
  }
160
160
  let json;
161
161
  try {
@@ -163,7 +163,7 @@ exports.configValidationCheck = {
163
163
  }
164
164
  catch (err) {
165
165
  const msg = err instanceof Error ? err.message.split('\n')[0] : String(err);
166
- return (0, types_1.warn)(`pr-checkmate.json is not valid JSON: ${msg}`);
166
+ return (0, types_js_1.warn)(`pr-checkmate.json is not valid JSON: ${msg}`);
167
167
  }
168
168
  const issues = [];
169
169
  const allowed = new Set(cfg.allowUnknownKeys ?? []);
@@ -173,8 +173,8 @@ exports.configValidationCheck = {
173
173
  for (const key of Object.keys(json)) {
174
174
  if (key.startsWith('//') || key === '$schema' || allowed.has(key))
175
175
  continue;
176
- if (!config_1.KNOWN_CONFIG_KEYS.has(key)) {
177
- const hint = suggestName(key, [...config_1.KNOWN_CONFIG_KEYS]);
176
+ if (!index_js_1.KNOWN_CONFIG_KEYS.has(key)) {
177
+ const hint = suggestName(key, [...index_js_1.KNOWN_CONFIG_KEYS]);
178
178
  issues.push(`unknown key "${key}"${hint ? ` — did you mean "${hint}"?` : ''}`);
179
179
  }
180
180
  }
@@ -184,10 +184,10 @@ exports.configValidationCheck = {
184
184
  issues.push(...validateFailOn(json));
185
185
  issues.push(...validateSourcePath(json, ctx.cwd));
186
186
  if (issues.length === 0)
187
- return (0, types_1.pass)();
187
+ return (0, types_js_1.pass)();
188
188
  // Advisory by default: a config problem is worth knowing about, but a repo
189
189
  // that wants a broken config to stop the build sets `severity: "error"`.
190
- const sev = (0, findings_1.severityEmitter)(cfg.severity, 'warn');
190
+ const sev = (0, findings_js_1.severityEmitter)(cfg.severity, 'warn');
191
191
  issues.slice(0, 10).forEach(i => sev.log(`[Config Validation]: ${sev.icon} ${i}`));
192
192
  const sample = issues.slice(0, 3).join('; ');
193
193
  return sev.emit(`${issues.length} config issue(s): ${sample}${issues.length > 3 ? ' …' : ''}`);
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const coverageCheck: Check;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.coverageCheck = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
- const types_1 = require("../../types");
10
- const findings_1 = require("../findings");
9
+ const types_js_1 = require("../../types.js");
10
+ const findings_js_1 = require("../findings.js");
11
11
  /**
12
12
  * Common coverage-report locations across languages/tools. Presence of any one
13
13
  * means the test step produced coverage. Reports are usually git-ignored, so we
@@ -60,8 +60,8 @@ exports.coverageCheck = {
60
60
  }
61
61
  });
62
62
  if (found)
63
- return (0, types_1.pass)(`coverage report found: ${found}`);
64
- const sev = (0, findings_1.severityEmitter)(cfg?.severity, 'warn');
63
+ return (0, types_js_1.pass)(`coverage report found: ${found}`);
64
+ const sev = (0, findings_js_1.severityEmitter)(cfg?.severity, 'warn');
65
65
  sev.log(`[Coverage]: ${sev.icon} no coverage report found (looked for ${candidates.length} location(s), e.g. ${candidates.slice(0, 3).join(', ')})`);
66
66
  return sev.emit('no coverage report found — is the test step running with coverage enabled?');
67
67
  },
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const deadCodeCheck: Check;
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.deadCodeCheck = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
- const constants_1 = require("../../../config/constants");
10
- const utils_1 = require("../../../utils");
11
- const execa_1 = require("../../../utils/execa");
12
- const reuse_1 = require("../../install/reuse");
13
- const types_1 = require("../../types");
9
+ const constants_js_1 = require("../../../config/constants.js");
10
+ const execa_js_1 = require("../../../utils/execa.js");
11
+ const index_js_1 = require("../../../utils/index.js");
12
+ const reuse_js_1 = require("../../install/reuse.js");
13
+ const types_js_1 = require("../../types.js");
14
14
  /**
15
15
  * Resolve ts-unused-exports, preferring the consumer project's own copy (so a
16
16
  * repo pinned to a different major keeps its own behaviour) and falling back to
@@ -27,9 +27,9 @@ function resolveTsUnusedExports(ctx) {
27
27
  // No configuration of its own — it reads the module graph via tsconfig — so
28
28
  // the version check is the right question here and `clientOwnsConfig` stays
29
29
  // off, same as dpdm.
30
- for (const options of [{ paths: (0, reuse_1.clientToolPaths)('ts-unused-exports', ctx) }, undefined]) {
30
+ for (const options of [{ paths: (0, reuse_js_1.clientToolPaths)('ts-unused-exports', ctx) }, undefined]) {
31
31
  try {
32
- return (0, utils_1.resolvePackageBin)('ts-unused-exports', 'bin/ts-unused-exports', options);
32
+ return (0, index_js_1.resolvePackageBin)('ts-unused-exports', 'bin/ts-unused-exports', options);
33
33
  }
34
34
  catch {
35
35
  // Try the next location; both failing is a skip, handled by the caller.
@@ -49,11 +49,11 @@ exports.deadCodeCheck = {
49
49
  async run(ctx) {
50
50
  const tsConfigPath = node_path_1.default.join(ctx.cwd, 'tsconfig.json');
51
51
  if (!node_fs_1.default.existsSync(tsConfigPath)) {
52
- return (0, types_1.skip)('no tsconfig.json found');
52
+ return (0, types_js_1.skip)('no tsconfig.json found');
53
53
  }
54
54
  const bin = resolveTsUnusedExports(ctx);
55
55
  if (!bin) {
56
- return (0, types_1.skip)('ts-unused-exports could not be resolved');
56
+ return (0, types_js_1.skip)('ts-unused-exports could not be resolved');
57
57
  }
58
58
  try {
59
59
  // Run the full analysis unfiltered: ignore patterns are applied to the
@@ -62,16 +62,16 @@ exports.deadCodeCheck = {
62
62
  // counting as usage — ignoring a barrel or entry point would then cascade
63
63
  // and flag everything it re-exports. Filtering the output instead keeps
64
64
  // every usage edge intact and only hides the exempted files' own reports.
65
- const result = await (0, execa_1.execa)(process.execPath, [bin, tsConfigPath], {
65
+ const result = await (0, execa_js_1.execa)(process.execPath, [bin, tsConfigPath], {
66
66
  cwd: ctx.cwd,
67
67
  reject: false,
68
68
  });
69
69
  const output = [result.stdout, result.stderr].filter(Boolean).join('\n').trim();
70
70
  if (!output || result.exitCode === 0) {
71
- utils_1.logger.info('[Dead Code]: ✅ No unused exports found');
72
- return (0, types_1.pass)();
71
+ index_js_1.logger.info('[Dead Code]: ✅ No unused exports found');
72
+ return (0, types_js_1.pass)();
73
73
  }
74
- const ignore = compileIgnorePatterns(ctx.config.deadCode?.ignoreFiles ?? constants_1.DEAD_CODE_IGNORE_DEFAULTS);
74
+ const ignore = compileIgnorePatterns(ctx.config.deadCode?.ignoreFiles ?? constants_js_1.DEAD_CODE_IGNORE_DEFAULTS);
75
75
  // ts-unused-exports prints one `path: sym1, sym2` line per file, preceded
76
76
  // by a `N modules with unused exports` summary line we skip.
77
77
  const parsed = output
@@ -91,25 +91,25 @@ exports.deadCodeCheck = {
91
91
  // existence while grepping for console wording that had changed. Same
92
92
  // resolution as Grype Scan: say so rather than invent a verdict.
93
93
  if (parsed.length === 0) {
94
- utils_1.logger.warn(`[Dead Code]: ⚠️ ts-unused-exports produced no parseable output:\n${output}`);
95
- return (0, types_1.warn)('ts-unused-exports produced no parseable output');
94
+ index_js_1.logger.warn(`[Dead Code]: ⚠️ ts-unused-exports produced no parseable output:\n${output}`);
95
+ return (0, types_js_1.warn)('ts-unused-exports produced no parseable output');
96
96
  }
97
97
  const entries = parsed.filter(entry => !ignore.some(re => re.test(entry.file)));
98
98
  if (entries.length === 0) {
99
- utils_1.logger.info('[Dead Code]: ✅ No unused exports found');
100
- return (0, types_1.pass)();
99
+ index_js_1.logger.info('[Dead Code]: ✅ No unused exports found');
100
+ return (0, types_js_1.pass)();
101
101
  }
102
102
  const fileCount = entries.length;
103
103
  const exportCount = entries.reduce((sum, entry) => sum + entry.symbols.length, 0);
104
- utils_1.logger.warn(`[Dead Code]: ⚠️ ${exportCount} unused export(s) across ${fileCount} file(s):`);
104
+ index_js_1.logger.warn(`[Dead Code]: ⚠️ ${exportCount} unused export(s) across ${fileCount} file(s):`);
105
105
  for (const entry of entries) {
106
- utils_1.logger.warn(`${entry.file}: ${entry.symbols.join(', ')}`);
106
+ index_js_1.logger.warn(`${entry.file}: ${entry.symbols.join(', ')}`);
107
107
  }
108
- return (0, types_1.warn)(`${exportCount} unused export(s) in ${fileCount} file(s)`);
108
+ return (0, types_js_1.warn)(`${exportCount} unused export(s) in ${fileCount} file(s)`);
109
109
  }
110
110
  catch (err) {
111
- utils_1.logger.warn(`[Dead Code]: ⚠️ Could not run dead code check\n${err}`);
112
- return (0, types_1.skip)('ts-unused-exports unavailable');
111
+ index_js_1.logger.warn(`[Dead Code]: ⚠️ Could not run dead code check\n${err}`);
112
+ return (0, types_js_1.skip)('ts-unused-exports unavailable');
113
113
  }
114
114
  },
115
115
  };
@@ -123,7 +123,7 @@ function compileIgnorePatterns(patterns) {
123
123
  return [new RegExp(pattern)];
124
124
  }
125
125
  catch {
126
- utils_1.logger.warn(`[Dead Code]: ⚠️ Ignoring invalid ignoreFiles pattern: ${pattern}`);
126
+ index_js_1.logger.warn(`[Dead Code]: ⚠️ Ignoring invalid ignoreFiles pattern: ${pattern}`);
127
127
  return [];
128
128
  }
129
129
  });
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const duplicateCheck: Check;
@@ -7,13 +7,13 @@ exports.duplicateCheck = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_os_1 = __importDefault(require("node:os"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
- const config_1 = require("../../../config");
11
- const constants_1 = require("../../../config/constants");
12
- const utils_1 = require("../../../utils");
13
- const execa_1 = require("../../../utils/execa");
14
- const targets_1 = require("../../targets");
15
- const types_1 = require("../../types");
16
- const findings_1 = require("../findings");
10
+ const constants_js_1 = require("../../../config/constants.js");
11
+ const index_js_1 = require("../../../config/index.js");
12
+ const execa_js_1 = require("../../../utils/execa.js");
13
+ const index_js_2 = require("../../../utils/index.js");
14
+ const targets_js_1 = require("../../targets.js");
15
+ const types_js_1 = require("../../types.js");
16
+ const findings_js_1 = require("../findings.js");
17
17
  /**
18
18
  * The files to hand jscpd, per language.
19
19
  *
@@ -49,7 +49,7 @@ function globsFor(languages) {
49
49
  // meaningful production duplication. Config files (eslint/*.config.*) are data,
50
50
  // not logic, and are commonly shipped in two formats (e.g. .eslintrc + flat
51
51
  // config), so their repetition is expected rather than a code smell.
52
- const BASE_IGNORE = ['node_modules/**', 'dist/**', '.git/**', ...constants_1.CONFIG_FILE_PATTERNS];
52
+ const BASE_IGNORE = ['node_modules/**', 'dist/**', '.git/**', ...constants_js_1.CONFIG_FILE_PATTERNS];
53
53
  /** `<path>:<start>-<end>`, repo-relative, for one end of a clone. */
54
54
  function locate(cwd, at) {
55
55
  const name = at?.name ?? '';
@@ -73,20 +73,20 @@ exports.duplicateCheck = {
73
73
  async run(ctx) {
74
74
  const minLines = ctx.config.duplicate?.minLines ?? 5;
75
75
  const minTokens = ctx.config.duplicate?.minTokens ?? 50;
76
- const targetPaths = await (0, targets_1.resolveScopedTargetFiles)(ctx, globsFor(ctx.languages), (0, config_1.getSourcePaths)(ctx.cwd));
76
+ const targetPaths = await (0, targets_js_1.resolveScopedTargetFiles)(ctx, globsFor(ctx.languages), (0, index_js_1.getSourcePaths)(ctx.cwd));
77
77
  if (targetPaths === null)
78
- return (0, types_1.skip)('git unavailable');
78
+ return (0, types_js_1.skip)('git unavailable');
79
79
  if (targetPaths.length === 0)
80
- return (0, types_1.skip)('no relevant files');
81
- const jscpdBin = (0, utils_1.resolvePackageBin)('jscpd', 'run-jscpd.js');
80
+ return (0, types_js_1.skip)('no relevant files');
81
+ const jscpdBin = (0, index_js_2.resolvePackageBin)('jscpd', 'run-jscpd.js');
82
82
  // Client-configurable exclusions (pr-checkmate.json `duplicate.ignore`),
83
83
  // defaulting to test files/folders, appended to the always-on base ignores.
84
- const configuredIgnore = ctx.config.duplicate?.ignore ?? constants_1.DUPLICATE_IGNORE_DEFAULTS;
84
+ const configuredIgnore = ctx.config.duplicate?.ignore ?? constants_js_1.DUPLICATE_IGNORE_DEFAULTS;
85
85
  const ignore = [...BASE_IGNORE, ...configuredIgnore].join(',');
86
86
  // Client-configurable formats (pr-checkmate.json `duplicate.formats`),
87
87
  // defaulting to source-code formats so data files (yaml/json/markdown) are
88
88
  // not scanned. Clients can add them back explicitly.
89
- const formats = (ctx.config.duplicate?.formats ?? constants_1.DUPLICATE_CODE_FORMATS).join(',');
89
+ const formats = (ctx.config.duplicate?.formats ?? constants_js_1.DUPLICATE_CODE_FORMATS).join(',');
90
90
  // The JSON reporter writes a file, so it needs somewhere to write it. Outside
91
91
  // the repository deliberately: with no `--output`, jscpd creates `report/`
92
92
  // in the client's working tree, and a check that leaves a directory behind is
@@ -97,7 +97,7 @@ exports.duplicateCheck = {
97
97
  // That is what retired `stripJscpdPromo` — six string markers matching the
98
98
  // funding lines jscpd v5 prints after its report, each good until the next
99
99
  // release of somebody else's package.
100
- const result = await (0, execa_1.execa)(process.execPath, [
100
+ const result = await (0, execa_js_1.execa)(process.execPath, [
101
101
  jscpdBin,
102
102
  '--min-lines',
103
103
  String(minLines),
@@ -120,9 +120,9 @@ exports.duplicateCheck = {
120
120
  // No report and nothing to read it from: jscpd did not get as far as
121
121
  // writing one. Its stderr is the only thing that can say why, and a skip
122
122
  // is the honest outcome — an empty report would read as "no duplication".
123
- utils_1.logger.warn(`[Duplicate Code]: ⚠️ jscpd wrote no report (exit ${result.exitCode ?? 'killed'})` +
123
+ index_js_2.logger.warn(`[Duplicate Code]: ⚠️ jscpd wrote no report (exit ${result.exitCode ?? 'killed'})` +
124
124
  `${result.stderr ? `\n${result.stderr}` : ''}`);
125
- return (0, types_1.skip)('jscpd produced no report');
125
+ return (0, types_js_1.skip)('jscpd produced no report');
126
126
  }
127
127
  const report = JSON.parse(node_fs_1.default.readFileSync(reportPath, 'utf-8'));
128
128
  const clones = report.duplicates ?? [];
@@ -132,13 +132,13 @@ exports.duplicateCheck = {
132
132
  // reported it as a pass.
133
133
  const cloneCount = report.statistics?.total?.clones ?? clones.length;
134
134
  if (cloneCount === 0)
135
- return (0, types_1.pass)();
136
- (0, findings_1.logSample)('Duplicate Code', `${cloneCount} duplicate block(s):`, clones.map(clone => describe(ctx.cwd, clone)));
137
- return (0, types_1.warn)(`${cloneCount} duplicate block(s)`);
135
+ return (0, types_js_1.pass)();
136
+ (0, findings_js_1.logSample)('Duplicate Code', `${cloneCount} duplicate block(s):`, clones.map(clone => describe(ctx.cwd, clone)));
137
+ return (0, types_js_1.warn)(`${cloneCount} duplicate block(s)`);
138
138
  }
139
139
  catch (err) {
140
- utils_1.logger.warn(`[Duplicate Code]: ⚠️ Could not run duplicate check\n${err}`);
141
- return (0, types_1.skip)('jscpd unavailable');
140
+ index_js_2.logger.warn(`[Duplicate Code]: ⚠️ Could not run duplicate check\n${err}`);
141
+ return (0, types_js_1.skip)('jscpd unavailable');
142
142
  }
143
143
  finally {
144
144
  node_fs_1.default.rmSync(reportDir, { recursive: true, force: true });
@@ -1,4 +1,4 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  /**
3
3
  * Requires a license/copyright header (a configured regex) in the first N lines
4
4
  * of newly ADDED source files. Opt-in — needs `licenseHeader.pattern`; does
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.licenseHeaderCheck = 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 targets_1 = require("../../targets");
12
- 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 targets_js_1 = require("../../targets.js");
12
+ const types_js_1 = require("../../types.js");
13
13
  /** Source extensions a license header is expected on. */
14
14
  const SOURCE_EXT = /\.(ts|tsx|js|jsx|mjs|cjs|py|kt|java|go|rs|cs|rb|php|swift|c|cc|cpp|h|hpp)$/i;
15
15
  const DEFAULT_HEADER_LINES = 10;
@@ -31,35 +31,35 @@ exports.licenseHeaderCheck = {
31
31
  async run(ctx) {
32
32
  const patternSrc = ctx.config.licenseHeader?.pattern;
33
33
  if (!patternSrc)
34
- return (0, types_1.skip)('no licenseHeader.pattern configured');
34
+ return (0, types_js_1.skip)('no licenseHeader.pattern configured');
35
35
  let header;
36
36
  try {
37
37
  header = new RegExp(patternSrc);
38
38
  }
39
39
  catch (err) {
40
- utils_1.logger.warn(`[License Header]: ⚠️ invalid pattern\n${err}`);
41
- return (0, types_1.skip)('invalid licenseHeader.pattern');
40
+ index_js_1.logger.warn(`[License Header]: ⚠️ invalid pattern\n${err}`);
41
+ return (0, types_js_1.skip)('invalid licenseHeader.pattern');
42
42
  }
43
43
  const maxLines = ctx.config.licenseHeader?.lines ?? DEFAULT_HEADER_LINES;
44
44
  let added;
45
45
  try {
46
46
  if (!ctx.baseSha && ctx.config.run?.fullScanBehaviour === 'skip')
47
- return (0, types_1.pass)();
47
+ return (0, types_js_1.pass)();
48
48
  // Added files in delta mode; every tracked source file in full mode.
49
49
  const args = ctx.baseSha
50
50
  ? ['diff', '--name-only', '--diff-filter=A', ctx.baseSha, ctx.headSha ?? 'HEAD']
51
51
  : ['ls-files'];
52
- const { stdout } = await (0, execa_1.execa)('git', args, { cwd: ctx.cwd });
52
+ const { stdout } = await (0, execa_js_1.execa)('git', args, { cwd: ctx.cwd });
53
53
  // Its own git call rather than `resolveTargets`, and for one reason:
54
54
  // `--diff-filter=A`. This check is about files a PR ADDS, and the shared
55
55
  // resolver asks for ACMR — routing through it would start demanding a
56
56
  // header on every modified file too, which is a different check. So the
57
57
  // client's `excludePaths` is applied here explicitly instead (ticket 080).
58
- added = (0, targets_1.excludeClientPaths)(stdout.split('\n').filter(Boolean), ctx.cwd).filter(f => SOURCE_EXT.test(f));
58
+ added = (0, targets_js_1.excludeClientPaths)(stdout.split('\n').filter(Boolean), ctx.cwd).filter(f => SOURCE_EXT.test(f));
59
59
  }
60
60
  catch (err) {
61
- utils_1.logger.warn(`[License Header]: ⚠️ Could not analyze diff\n${err}`);
62
- return (0, types_1.skip)('diff unavailable');
61
+ index_js_1.logger.warn(`[License Header]: ⚠️ Could not analyze diff\n${err}`);
62
+ return (0, types_js_1.skip)('diff unavailable');
63
63
  }
64
64
  const missing = [];
65
65
  for (const file of added) {
@@ -78,10 +78,10 @@ exports.licenseHeaderCheck = {
78
78
  missing.push(file);
79
79
  }
80
80
  if (missing.length === 0)
81
- return (0, types_1.pass)();
82
- missing.slice(0, 10).forEach(f => utils_1.logger.warn(`[License Header]: ⚠️ missing header: ${f}`));
81
+ return (0, types_js_1.pass)();
82
+ missing.slice(0, 10).forEach(f => index_js_1.logger.warn(`[License Header]: ⚠️ missing header: ${f}`));
83
83
  if (missing.length > 10)
84
- utils_1.logger.warn(`[License Header]: ⚠️ ... and ${missing.length - 10} more`);
85
- return (0, types_1.warn)(`${missing.length} new source file(s) missing the license header`);
84
+ index_js_1.logger.warn(`[License Header]: ⚠️ ... and ${missing.length - 10} more`);
85
+ return (0, types_js_1.warn)(`${missing.length} new source file(s) missing the license header`);
86
86
  },
87
87
  };
@@ -1,2 +1,2 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  export declare const markdownLintCheck: Check;
@@ -7,11 +7,11 @@ exports.markdownLintCheck = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_os_1 = __importDefault(require("node:os"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
- const config_1 = require("../../../config");
11
- const utils_1 = require("../../../utils");
12
- const execa_1 = require("../../../utils/execa");
13
- const targets_1 = require("../../targets");
14
- const types_1 = require("../../types");
10
+ const index_js_1 = require("../../../config/index.js");
11
+ const execa_js_1 = require("../../../utils/execa.js");
12
+ const index_js_2 = require("../../../utils/index.js");
13
+ const targets_js_1 = require("../../targets.js");
14
+ const types_js_1 = require("../../types.js");
15
15
  function loadUserMarkdownConfig(cwd) {
16
16
  const configPath = node_path_1.default.join(cwd, 'pr-checkmate.json');
17
17
  if (!node_fs_1.default.existsSync(configPath))
@@ -20,7 +20,7 @@ function loadUserMarkdownConfig(cwd) {
20
20
  return JSON.parse(node_fs_1.default.readFileSync(configPath, 'utf-8')).markdownlint || {};
21
21
  }
22
22
  catch (err) {
23
- utils_1.logger.warn(`[Markdown]: ⚠️ Failed to read markdownlint config: ${err}`);
23
+ index_js_2.logger.warn(`[Markdown]: ⚠️ Failed to read markdownlint config: ${err}`);
24
24
  return {};
25
25
  }
26
26
  }
@@ -38,20 +38,20 @@ exports.markdownLintCheck = {
38
38
  return true;
39
39
  },
40
40
  async run(ctx) {
41
- const targets = await (0, targets_1.resolveTargetFiles)(ctx, ['*.md', '*.mdx']);
41
+ const targets = await (0, targets_js_1.resolveTargetFiles)(ctx, ['*.md', '*.mdx']);
42
42
  if (targets === null)
43
- return (0, types_1.skip)('git unavailable');
43
+ return (0, types_js_1.skip)('git unavailable');
44
44
  if (targets.length === 0)
45
- return (0, types_1.skip)('no markdown files');
45
+ return (0, types_js_1.skip)('no markdown files');
46
46
  const userConfig = loadUserMarkdownConfig(ctx.cwd);
47
47
  const userRules = userConfig.rules ?? {};
48
48
  let tempConfigFile = null;
49
49
  let configArg;
50
- if ((0, config_1.hasLocalConfig)(['.markdownlint.json', '.markdownlint.jsonc', '.markdownlint.yaml', '.markdownlint.yml'], ctx.cwd)) {
50
+ if ((0, index_js_1.hasLocalConfig)(['.markdownlint.json', '.markdownlint.jsonc', '.markdownlint.yaml', '.markdownlint.yml'], ctx.cwd)) {
51
51
  configArg = [];
52
52
  }
53
53
  else {
54
- const bundledConfig = (0, config_1.getPackageConfigPath)('.markdownlint.json');
54
+ const bundledConfig = (0, index_js_1.getPackageConfigPath)('.markdownlint.json');
55
55
  if (Object.keys(userRules).length > 0) {
56
56
  tempConfigFile = buildMergedConfig(bundledConfig, userRules);
57
57
  configArg = ['--config', tempConfigFile];
@@ -60,7 +60,7 @@ exports.markdownLintCheck = {
60
60
  configArg = ['--config', bundledConfig];
61
61
  }
62
62
  }
63
- const markdownlintBin = (0, utils_1.resolvePackageBin)('markdownlint-cli2', 'markdownlint-cli2-bin.mjs');
63
+ const markdownlintBin = (0, index_js_2.resolvePackageBin)('markdownlint-cli2', 'markdownlint-cli2-bin.mjs');
64
64
  const defaultIgnorePatterns = [
65
65
  'node_modules/**',
66
66
  'dist/**',
@@ -68,7 +68,7 @@ exports.markdownLintCheck = {
68
68
  'graphify-out/**',
69
69
  '.claude/**',
70
70
  // Release-tool output, not prose anyone edits — see GENERATED_DOC_FILES.
71
- ...config_1.GENERATED_DOC_FILES,
71
+ ...index_js_1.GENERATED_DOC_FILES,
72
72
  ...(userConfig.ignores ?? []),
73
73
  ];
74
74
  // markdownlint-cli2 has no --ignore-path flag; exclusions are expressed as
@@ -86,21 +86,21 @@ exports.markdownLintCheck = {
86
86
  });
87
87
  const args = [...(ctx.write ? ['--fix'] : []), ...targets, ...ignoreGlobs, ...configArg];
88
88
  try {
89
- const result = await (0, execa_1.execa)(process.execPath, [markdownlintBin, ...args], {
89
+ const result = await (0, execa_js_1.execa)(process.execPath, [markdownlintBin, ...args], {
90
90
  cwd: ctx.cwd,
91
91
  reject: false,
92
92
  stdio: 'inherit',
93
93
  });
94
94
  if (result.exitCode === 0)
95
- return (0, types_1.pass)();
95
+ return (0, types_js_1.pass)();
96
96
  // markdownlint-cli2 exits 1 for lint findings and 2 when it could not run
97
97
  // (an unreadable config, a bad glob). Reporting the latter as "markdown lint
98
98
  // issues found" names the wrong cause — and under `severity: error` it
99
99
  // becomes a gate on a tooling problem.
100
100
  if (result.exitCode === 2) {
101
- return (0, types_1.warn)('markdownlint failed to run (exit 2) — check the markdownlint config');
101
+ return (0, types_js_1.warn)('markdownlint failed to run (exit 2) — check the markdownlint config');
102
102
  }
103
- return (0, types_1.warn)('markdown lint issues found');
103
+ return (0, types_js_1.warn)('markdown lint issues found');
104
104
  }
105
105
  finally {
106
106
  if (tempConfigFile && node_fs_1.default.existsSync(tempConfigFile))
@@ -1,4 +1,4 @@
1
- import { Check } from '../../types';
1
+ import { Check } from '../../types.js';
2
2
  /** Why we could not read a published version. */
3
3
  export type QueryFailure = 'absent' | 'unauthenticated' | 'unreadable';
4
4
  /**
@@ -7,10 +7,10 @@ exports.packageSizeCheck = void 0;
7
7
  exports.classifyQueryFailure = classifyQueryFailure;
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
- const utils_1 = require("../../../utils");
11
- const execa_1 = require("../../../utils/execa");
12
- const types_1 = require("../../types");
13
- const findings_1 = require("../findings");
10
+ const execa_js_1 = require("../../../utils/execa.js");
11
+ const index_js_1 = require("../../../utils/index.js");
12
+ const types_js_1 = require("../../types.js");
13
+ const findings_js_1 = require("../findings.js");
14
14
  /** Growth that is worth a row in the report, unless the client says otherwise. */
15
15
  const DEFAULT_MAX_GROWTH = 20;
16
16
  /** How many of the files behind the growth are named. */
@@ -44,7 +44,7 @@ async function packManifest(cwd, spec, registry) {
44
44
  '--ignore-scripts',
45
45
  ...(registry ? ['--registry', registry] : []),
46
46
  ];
47
- const result = await (0, execa_1.execa)('npm', args, { cwd, reject: false });
47
+ const result = await (0, execa_js_1.execa)('npm', args, { cwd, reject: false });
48
48
  if (result.exitCode !== 0)
49
49
  return { failure: classifyQueryFailure(result.stderr ?? '') };
50
50
  try {
@@ -152,13 +152,13 @@ exports.packageSizeCheck = {
152
152
  async run(ctx) {
153
153
  const target = published(ctx.cwd);
154
154
  if (!target)
155
- return (0, types_1.skip)('no publishable package.json');
155
+ return (0, types_js_1.skip)('no publishable package.json');
156
156
  const tag = ctx.config.packageSize?.compareWith ?? 'latest';
157
157
  const maxGrowth = ctx.config.packageSize?.maxGrowthPercent ?? DEFAULT_MAX_GROWTH;
158
158
  const spec = `${target.name}@${tag}`;
159
159
  const local = await packManifest(ctx.cwd);
160
160
  if (!('manifest' in local))
161
- return (0, types_1.skip)('npm could not describe this package');
161
+ return (0, types_js_1.skip)('npm could not describe this package');
162
162
  const current = local.manifest;
163
163
  // Never a pass: a green row over a comparison that did not happen is the
164
164
  // mistake of ticket 072. And never one reason standing in for three — the
@@ -186,7 +186,7 @@ exports.packageSizeCheck = {
186
186
  unauthenticated: `no credentials for ${host ?? 'the registry'}`,
187
187
  unreadable: `could not read the published version${at}`,
188
188
  }[remote.failure];
189
- return (0, types_1.skip)(reason);
189
+ return (0, types_js_1.skip)(reason);
190
190
  }
191
191
  const previous = remote.manifest;
192
192
  const delta = current.unpackedSize - previous.unpackedSize;
@@ -194,10 +194,10 @@ exports.packageSizeCheck = {
194
194
  const summary = `${mb(previous.unpackedSize)} → ${mb(current.unpackedSize)} ` +
195
195
  `(${growth >= 0 ? '+' : ''}${growth.toFixed(1)}%) vs ${previous.version}`;
196
196
  if (growth <= maxGrowth) {
197
- utils_1.logger.info(`[Package Size]: ✅ ${summary}`);
198
- return (0, types_1.pass)(summary);
197
+ index_js_1.logger.info(`[Package Size]: ✅ ${summary}`);
198
+ return (0, types_js_1.pass)(summary);
199
199
  }
200
- (0, findings_1.logSample)('Package Size', `${summary}:`, growthByFile(previous.files, current.files));
201
- return (0, types_1.warn)(summary);
200
+ (0, findings_js_1.logSample)('Package Size', `${summary}:`, growthByFile(previous.files, current.files));
201
+ return (0, types_js_1.warn)(summary);
202
202
  },
203
203
  };
@@ -1,5 +1,5 @@
1
- import { CspellConfig } from '../../../interfaces';
2
- import { Check } from '../../types';
1
+ import { CspellConfig } from '../../../interfaces/index.js';
2
+ import { Check } from '../../types.js';
3
3
  /**
4
4
  * Anchors an ignore glob to the repository root.
5
5
  *