skuba 14.0.0-esmify-skuba-20251031141102 → 14.0.0-esmify-skuba-20251105034821

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 (453) hide show
  1. package/config/prettier.d.ts +8 -0
  2. package/lib/cli/adapter/eslint.js +4 -2
  3. package/lib/cli/adapter/eslint.js.map +1 -1
  4. package/lib/cli/adapter/prettier.js +8 -4
  5. package/lib/cli/adapter/prettier.js.map +1 -1
  6. package/lib/cli/build/args.js +4 -2
  7. package/lib/cli/build/args.js.map +1 -1
  8. package/lib/cli/build/assets.js +6 -3
  9. package/lib/cli/build/assets.js.map +1 -1
  10. package/lib/cli/build/esbuild.js +5 -3
  11. package/lib/cli/build/esbuild.js.map +2 -2
  12. package/lib/cli/build/index.js +4 -2
  13. package/lib/cli/build/index.js.map +1 -1
  14. package/lib/cli/build/tsc.js +10 -5
  15. package/lib/cli/build/tsc.js.map +1 -1
  16. package/lib/cli/buildPackage/index.js +4 -2
  17. package/lib/cli/buildPackage/index.js.map +1 -1
  18. package/lib/cli/configure/analyseConfiguration.js +4 -2
  19. package/lib/cli/configure/analyseConfiguration.js.map +1 -1
  20. package/lib/cli/configure/analyseDependencies.js +4 -2
  21. package/lib/cli/configure/analyseDependencies.js.map +1 -1
  22. package/lib/cli/configure/analysis/diff.js +4 -2
  23. package/lib/cli/configure/analysis/diff.js.map +1 -1
  24. package/lib/cli/configure/analysis/files.js +4 -2
  25. package/lib/cli/configure/analysis/files.js.map +1 -1
  26. package/lib/cli/configure/analysis/git.js +4 -2
  27. package/lib/cli/configure/analysis/git.js.map +1 -1
  28. package/lib/cli/configure/analysis/package.js +6 -3
  29. package/lib/cli/configure/analysis/package.js.map +1 -1
  30. package/lib/cli/configure/analysis/project.js +6 -3
  31. package/lib/cli/configure/analysis/project.js.map +1 -1
  32. package/lib/cli/configure/dependencies/index.js +12 -6
  33. package/lib/cli/configure/dependencies/index.js.map +1 -1
  34. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +4 -2
  35. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +1 -1
  36. package/lib/cli/configure/dependencies/seekKoala.js +4 -2
  37. package/lib/cli/configure/dependencies/seekKoala.js.map +1 -1
  38. package/lib/cli/configure/dependencies/skuba.js +4 -2
  39. package/lib/cli/configure/dependencies/skuba.js.map +1 -1
  40. package/lib/cli/configure/dependencies/skubaDeps.js +4 -2
  41. package/lib/cli/configure/dependencies/skubaDeps.js.map +1 -1
  42. package/lib/cli/configure/dependencies/skubaDive.js +6 -3
  43. package/lib/cli/configure/dependencies/skubaDive.js.map +1 -1
  44. package/lib/cli/configure/ensureTemplateCompletion.js +4 -2
  45. package/lib/cli/configure/ensureTemplateCompletion.js.map +1 -1
  46. package/lib/cli/configure/getEntryPoint.js +4 -2
  47. package/lib/cli/configure/getEntryPoint.js.map +1 -1
  48. package/lib/cli/configure/getProjectType.js +4 -2
  49. package/lib/cli/configure/getProjectType.js.map +1 -1
  50. package/lib/cli/configure/index.js +4 -2
  51. package/lib/cli/configure/index.js.map +1 -1
  52. package/lib/cli/configure/modules/eslint.js +4 -2
  53. package/lib/cli/configure/modules/eslint.js.map +1 -1
  54. package/lib/cli/configure/modules/ignore.js +4 -2
  55. package/lib/cli/configure/modules/ignore.js.map +1 -1
  56. package/lib/cli/configure/modules/index.js +4 -2
  57. package/lib/cli/configure/modules/index.js.map +1 -1
  58. package/lib/cli/configure/modules/nodemon.js +4 -2
  59. package/lib/cli/configure/modules/nodemon.js.map +1 -1
  60. package/lib/cli/configure/modules/package.js +4 -2
  61. package/lib/cli/configure/modules/package.js.map +1 -1
  62. package/lib/cli/configure/modules/prettier.js +4 -2
  63. package/lib/cli/configure/modules/prettier.js.map +1 -1
  64. package/lib/cli/configure/modules/renovate.js +6 -3
  65. package/lib/cli/configure/modules/renovate.js.map +1 -1
  66. package/lib/cli/configure/modules/serverless.js +4 -2
  67. package/lib/cli/configure/modules/serverless.js.map +1 -1
  68. package/lib/cli/configure/modules/tslint.js +4 -2
  69. package/lib/cli/configure/modules/tslint.js.map +1 -1
  70. package/lib/cli/configure/processing/configFile.js +8 -4
  71. package/lib/cli/configure/processing/configFile.js.map +1 -1
  72. package/lib/cli/configure/processing/deleteFiles.js +4 -2
  73. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  74. package/lib/cli/configure/processing/javascript.js +6 -3
  75. package/lib/cli/configure/processing/javascript.js.map +1 -1
  76. package/lib/cli/configure/processing/json.js +6 -3
  77. package/lib/cli/configure/processing/json.js.map +1 -1
  78. package/lib/cli/configure/processing/loadFiles.js +4 -2
  79. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  80. package/lib/cli/configure/processing/module.js +4 -2
  81. package/lib/cli/configure/processing/module.js.map +1 -1
  82. package/lib/cli/configure/processing/package.js +10 -5
  83. package/lib/cli/configure/processing/package.js.map +1 -1
  84. package/lib/cli/configure/processing/prettier.js +4 -2
  85. package/lib/cli/configure/processing/prettier.js.map +1 -1
  86. package/lib/cli/configure/processing/record.js +8 -4
  87. package/lib/cli/configure/processing/record.js.map +1 -1
  88. package/lib/cli/configure/processing/typescript.js +10 -5
  89. package/lib/cli/configure/processing/typescript.js.map +1 -1
  90. package/lib/cli/configure/types.js +0 -1
  91. package/lib/cli/format/index.js +4 -2
  92. package/lib/cli/format/index.js.map +1 -1
  93. package/lib/cli/help/index.js +4 -2
  94. package/lib/cli/help/index.js.map +1 -1
  95. package/lib/cli/init/getConfig.js +12 -6
  96. package/lib/cli/init/getConfig.js.map +1 -1
  97. package/lib/cli/init/git.js +6 -3
  98. package/lib/cli/init/git.js.map +1 -1
  99. package/lib/cli/init/index.js +4 -2
  100. package/lib/cli/init/index.js.map +1 -1
  101. package/lib/cli/init/prompts.js +10 -5
  102. package/lib/cli/init/prompts.js.map +1 -1
  103. package/lib/cli/init/types.js +4 -2
  104. package/lib/cli/init/types.js.map +1 -1
  105. package/lib/cli/init/validation.js +12 -6
  106. package/lib/cli/init/validation.js.map +1 -1
  107. package/lib/cli/init/writePackageJson.js +4 -2
  108. package/lib/cli/init/writePackageJson.js.map +1 -1
  109. package/lib/cli/lint/annotate/buildkite/eslint.js +4 -2
  110. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  111. package/lib/cli/lint/annotate/buildkite/index.js +4 -2
  112. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  113. package/lib/cli/lint/annotate/buildkite/internal.js +4 -2
  114. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  115. package/lib/cli/lint/annotate/buildkite/prettier.js +4 -2
  116. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  117. package/lib/cli/lint/annotate/buildkite/tsc.js +4 -2
  118. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  119. package/lib/cli/lint/annotate/github/eslint.js +4 -2
  120. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  121. package/lib/cli/lint/annotate/github/index.js +4 -2
  122. package/lib/cli/lint/annotate/github/index.js.map +1 -1
  123. package/lib/cli/lint/annotate/github/internal.js +4 -2
  124. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  125. package/lib/cli/lint/annotate/github/prettier.js +4 -2
  126. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  127. package/lib/cli/lint/annotate/github/tsc.js +4 -2
  128. package/lib/cli/lint/annotate/github/tsc.js.map +1 -1
  129. package/lib/cli/lint/annotate/index.js +4 -2
  130. package/lib/cli/lint/annotate/index.js.map +1 -1
  131. package/lib/cli/lint/autofix.js +8 -4
  132. package/lib/cli/lint/autofix.js.map +1 -1
  133. package/lib/cli/lint/eslint.js +6 -3
  134. package/lib/cli/lint/eslint.js.map +1 -1
  135. package/lib/cli/lint/external.js +6 -3
  136. package/lib/cli/lint/external.js.map +1 -1
  137. package/lib/cli/lint/index.js +4 -2
  138. package/lib/cli/lint/index.js.map +1 -1
  139. package/lib/cli/lint/internal.js +4 -2
  140. package/lib/cli/lint/internal.js.map +1 -1
  141. package/lib/cli/lint/internalLints/detectBadCodeowners.js +6 -3
  142. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  143. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +4 -2
  144. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +1 -1
  145. package/lib/cli/lint/internalLints/patchRenovateConfig.js +4 -2
  146. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +1 -1
  147. package/lib/cli/lint/internalLints/refreshConfigFiles.js +8 -4
  148. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +1 -1
  149. package/lib/cli/lint/internalLints/upgrade/index.js +4 -2
  150. package/lib/cli/lint/internalLints/upgrade/index.js.map +1 -1
  151. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +4 -2
  152. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  153. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +4 -2
  154. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +1 -1
  155. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +4 -2
  156. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  157. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +4 -2
  158. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +1 -1
  159. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +6 -3
  160. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +1 -1
  161. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +4 -2
  162. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +1 -1
  163. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +8 -4
  164. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +1 -1
  165. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js +4 -2
  166. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js.map +1 -1
  167. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js +6 -3
  168. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js.map +1 -1
  169. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js +4 -2
  170. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js.map +1 -1
  171. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js +6 -3
  172. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js.map +1 -1
  173. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js +6 -3
  174. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js.map +1 -1
  175. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js +4 -2
  176. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js.map +1 -1
  177. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js +6 -3
  178. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js.map +1 -1
  179. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js +12 -6
  180. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js.map +1 -1
  181. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js +4 -2
  182. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js.map +1 -1
  183. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js +4 -2
  184. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js.map +1 -1
  185. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js +28 -14
  186. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js.map +1 -1
  187. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js +6 -3
  188. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js.map +1 -1
  189. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +4 -2
  190. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +1 -1
  191. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +4 -2
  192. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +1 -1
  193. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +4 -2
  194. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +1 -1
  195. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +4 -2
  196. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +1 -1
  197. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +4 -2
  198. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  199. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +4 -2
  200. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +1 -1
  201. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +4 -2
  202. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +1 -1
  203. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +4 -2
  204. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  205. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +4 -2
  206. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +1 -1
  207. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +4 -2
  208. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +1 -1
  209. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +4 -2
  210. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +1 -1
  211. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +4 -2
  212. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  213. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +4 -2
  214. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +1 -1
  215. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +4 -2
  216. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +1 -1
  217. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +4 -2
  218. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +1 -1
  219. package/lib/cli/lint/prettier.js +6 -3
  220. package/lib/cli/lint/prettier.js.map +1 -1
  221. package/lib/cli/lint/tsc.js +4 -2
  222. package/lib/cli/lint/tsc.js.map +1 -1
  223. package/lib/cli/lint/types.js +0 -1
  224. package/lib/cli/migrate/index.js +4 -2
  225. package/lib/cli/migrate/index.js.map +1 -1
  226. package/lib/cli/migrate/nodeVersion/checks.js +10 -5
  227. package/lib/cli/migrate/nodeVersion/checks.js.map +1 -1
  228. package/lib/cli/migrate/nodeVersion/index.js +4 -2
  229. package/lib/cli/migrate/nodeVersion/index.js.map +1 -1
  230. package/lib/cli/node/index.js +6 -3
  231. package/lib/cli/node/index.js.map +1 -1
  232. package/lib/cli/release/index.js +4 -2
  233. package/lib/cli/release/index.js.map +1 -1
  234. package/lib/cli/start/index.js +4 -2
  235. package/lib/cli/start/index.js.map +1 -1
  236. package/lib/cli/test/index.js +4 -2
  237. package/lib/cli/test/index.js.map +1 -1
  238. package/lib/cli/version/index.js +4 -2
  239. package/lib/cli/version/index.js.map +1 -1
  240. package/lib/enquirer.d.js +0 -1
  241. package/lib/eslint.d.js +0 -1
  242. package/lib/index.js +10 -5
  243. package/lib/index.js.map +1 -1
  244. package/lib/skuba.js +0 -1
  245. package/lib/skuba.js.map +1 -1
  246. package/lib/utils/args.js +10 -5
  247. package/lib/utils/args.js.map +1 -1
  248. package/lib/utils/command.js +12 -6
  249. package/lib/utils/command.js.map +1 -1
  250. package/lib/utils/copy.js +10 -5
  251. package/lib/utils/copy.js.map +1 -1
  252. package/lib/utils/dir.js +16 -8
  253. package/lib/utils/dir.js.map +1 -1
  254. package/lib/utils/env.js +4 -2
  255. package/lib/utils/env.js.map +1 -1
  256. package/lib/utils/error.js +10 -5
  257. package/lib/utils/error.js.map +1 -1
  258. package/lib/utils/exec.js +12 -6
  259. package/lib/utils/exec.js.map +1 -1
  260. package/lib/utils/fs.js +4 -2
  261. package/lib/utils/fs.js.map +1 -1
  262. package/lib/utils/help.js +4 -2
  263. package/lib/utils/help.js.map +1 -1
  264. package/lib/utils/logging.js +10 -5
  265. package/lib/utils/logging.js.map +1 -1
  266. package/lib/utils/logo.js +4 -2
  267. package/lib/utils/logo.js.map +1 -1
  268. package/lib/utils/manifest.js +16 -8
  269. package/lib/utils/manifest.js.map +1 -1
  270. package/lib/utils/npmrc.js +4 -2
  271. package/lib/utils/npmrc.js.map +1 -1
  272. package/lib/utils/packageManager.js +10 -5
  273. package/lib/utils/packageManager.js.map +1 -1
  274. package/lib/utils/port.js +6 -3
  275. package/lib/utils/port.js.map +1 -1
  276. package/lib/utils/sleep.js +4 -2
  277. package/lib/utils/sleep.js.map +1 -1
  278. package/lib/utils/template.js +20 -10
  279. package/lib/utils/template.js.map +1 -1
  280. package/lib/utils/validation.js +14 -7
  281. package/lib/utils/validation.js.map +1 -1
  282. package/lib/utils/version.js +10 -5
  283. package/lib/utils/version.js.map +1 -1
  284. package/lib/utils/wait.js +6 -3
  285. package/lib/utils/wait.js.map +1 -1
  286. package/lib/utils/worker.js +6 -3
  287. package/lib/utils/worker.js.map +1 -1
  288. package/lib/wrapper/function-arguments.d.js +0 -1
  289. package/lib/wrapper/functionHandler.js +4 -2
  290. package/lib/wrapper/functionHandler.js.map +1 -1
  291. package/lib/wrapper/http.js +6 -3
  292. package/lib/wrapper/http.js.map +1 -1
  293. package/lib/wrapper/index.js +0 -1
  294. package/lib/wrapper/index.js.map +1 -1
  295. package/lib/wrapper/main.js +4 -2
  296. package/lib/wrapper/main.js.map +1 -1
  297. package/lib/wrapper/requestListener.js +4 -2
  298. package/lib/wrapper/requestListener.js.map +1 -1
  299. package/lib/wrapper/server.js +4 -2
  300. package/lib/wrapper/server.js.map +1 -1
  301. package/package.json +4 -4
  302. package/template/greeter/package.json +2 -2
  303. package/template/lambda-sqs-worker-cdk/package.json +2 -2
  304. package/lib/config/prettier.d.ts +0 -7
  305. /package/lib/{src/cli → cli}/adapter/eslint.d.ts +0 -0
  306. /package/lib/{src/cli → cli}/adapter/prettier.d.ts +0 -0
  307. /package/lib/{src/cli → cli}/build/args.d.ts +0 -0
  308. /package/lib/{src/cli → cli}/build/assets.d.ts +0 -0
  309. /package/lib/{src/cli → cli}/build/esbuild.d.ts +0 -0
  310. /package/lib/{src/cli → cli}/build/index.d.ts +0 -0
  311. /package/lib/{src/cli → cli}/build/tsc.d.ts +0 -0
  312. /package/lib/{src/cli → cli}/buildPackage/index.d.ts +0 -0
  313. /package/lib/{src/cli → cli}/configure/analyseConfiguration.d.ts +0 -0
  314. /package/lib/{src/cli → cli}/configure/analyseDependencies.d.ts +0 -0
  315. /package/lib/{src/cli → cli}/configure/analysis/diff.d.ts +0 -0
  316. /package/lib/{src/cli → cli}/configure/analysis/files.d.ts +0 -0
  317. /package/lib/{src/cli → cli}/configure/analysis/git.d.ts +0 -0
  318. /package/lib/{src/cli → cli}/configure/analysis/package.d.ts +0 -0
  319. /package/lib/{src/cli → cli}/configure/analysis/project.d.ts +0 -0
  320. /package/lib/{src/cli → cli}/configure/dependencies/index.d.ts +0 -0
  321. /package/lib/{src/cli → cli}/configure/dependencies/seekDatadogCustomMetrics.d.ts +0 -0
  322. /package/lib/{src/cli → cli}/configure/dependencies/seekKoala.d.ts +0 -0
  323. /package/lib/{src/cli → cli}/configure/dependencies/skuba.d.ts +0 -0
  324. /package/lib/{src/cli → cli}/configure/dependencies/skubaDeps.d.ts +0 -0
  325. /package/lib/{src/cli → cli}/configure/dependencies/skubaDive.d.ts +0 -0
  326. /package/lib/{src/cli → cli}/configure/ensureTemplateCompletion.d.ts +0 -0
  327. /package/lib/{src/cli → cli}/configure/getEntryPoint.d.ts +0 -0
  328. /package/lib/{src/cli → cli}/configure/getProjectType.d.ts +0 -0
  329. /package/lib/{src/cli → cli}/configure/index.d.ts +0 -0
  330. /package/lib/{src/cli → cli}/configure/modules/eslint.d.ts +0 -0
  331. /package/lib/{src/cli → cli}/configure/modules/ignore.d.ts +0 -0
  332. /package/lib/{src/cli → cli}/configure/modules/index.d.ts +0 -0
  333. /package/lib/{src/cli → cli}/configure/modules/nodemon.d.ts +0 -0
  334. /package/lib/{src/cli → cli}/configure/modules/package.d.ts +0 -0
  335. /package/lib/{src/cli → cli}/configure/modules/prettier.d.ts +0 -0
  336. /package/lib/{src/cli → cli}/configure/modules/renovate.d.ts +0 -0
  337. /package/lib/{src/cli → cli}/configure/modules/serverless.d.ts +0 -0
  338. /package/lib/{src/cli → cli}/configure/modules/tslint.d.ts +0 -0
  339. /package/lib/{src/cli → cli}/configure/processing/configFile.d.ts +0 -0
  340. /package/lib/{src/cli → cli}/configure/processing/deleteFiles.d.ts +0 -0
  341. /package/lib/{src/cli → cli}/configure/processing/javascript.d.ts +0 -0
  342. /package/lib/{src/cli → cli}/configure/processing/json.d.ts +0 -0
  343. /package/lib/{src/cli → cli}/configure/processing/loadFiles.d.ts +0 -0
  344. /package/lib/{src/cli → cli}/configure/processing/module.d.ts +0 -0
  345. /package/lib/{src/cli → cli}/configure/processing/package.d.ts +0 -0
  346. /package/lib/{src/cli → cli}/configure/processing/prettier.d.ts +0 -0
  347. /package/lib/{src/cli → cli}/configure/processing/record.d.ts +0 -0
  348. /package/lib/{src/cli → cli}/configure/processing/typescript.d.ts +0 -0
  349. /package/lib/{src/cli → cli}/configure/types.d.ts +0 -0
  350. /package/lib/{src/cli → cli}/format/index.d.ts +0 -0
  351. /package/lib/{src/cli → cli}/help/index.d.ts +0 -0
  352. /package/lib/{src/cli → cli}/init/getConfig.d.ts +0 -0
  353. /package/lib/{src/cli → cli}/init/git.d.ts +0 -0
  354. /package/lib/{src/cli → cli}/init/index.d.ts +0 -0
  355. /package/lib/{src/cli → cli}/init/prompts.d.ts +0 -0
  356. /package/lib/{src/cli → cli}/init/types.d.ts +0 -0
  357. /package/lib/{src/cli → cli}/init/validation.d.ts +0 -0
  358. /package/lib/{src/cli → cli}/init/writePackageJson.d.ts +0 -0
  359. /package/lib/{src/cli → cli}/lint/annotate/buildkite/eslint.d.ts +0 -0
  360. /package/lib/{src/cli → cli}/lint/annotate/buildkite/index.d.ts +0 -0
  361. /package/lib/{src/cli → cli}/lint/annotate/buildkite/internal.d.ts +0 -0
  362. /package/lib/{src/cli → cli}/lint/annotate/buildkite/prettier.d.ts +0 -0
  363. /package/lib/{src/cli → cli}/lint/annotate/buildkite/tsc.d.ts +0 -0
  364. /package/lib/{src/cli → cli}/lint/annotate/github/eslint.d.ts +0 -0
  365. /package/lib/{src/cli → cli}/lint/annotate/github/index.d.ts +0 -0
  366. /package/lib/{src/cli → cli}/lint/annotate/github/internal.d.ts +0 -0
  367. /package/lib/{src/cli → cli}/lint/annotate/github/prettier.d.ts +0 -0
  368. /package/lib/{src/cli → cli}/lint/annotate/github/tsc.d.ts +0 -0
  369. /package/lib/{src/cli → cli}/lint/annotate/index.d.ts +0 -0
  370. /package/lib/{src/cli → cli}/lint/autofix.d.ts +0 -0
  371. /package/lib/{src/cli → cli}/lint/eslint.d.ts +0 -0
  372. /package/lib/{src/cli → cli}/lint/external.d.ts +0 -0
  373. /package/lib/{src/cli → cli}/lint/index.d.ts +0 -0
  374. /package/lib/{src/cli → cli}/lint/internal.d.ts +0 -0
  375. /package/lib/{src/cli → cli}/lint/internalLints/detectBadCodeowners.d.ts +0 -0
  376. /package/lib/{src/cli → cli}/lint/internalLints/noSkubaTemplateJs.d.ts +0 -0
  377. /package/lib/{src/cli → cli}/lint/internalLints/patchRenovateConfig.d.ts +0 -0
  378. /package/lib/{src/cli → cli}/lint/internalLints/refreshConfigFiles.d.ts +0 -0
  379. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/index.d.ts +0 -0
  380. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.0.4/index.d.ts +0 -0
  381. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.d.ts +0 -0
  382. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/index.d.ts +0 -0
  383. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.d.ts +0 -0
  384. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.d.ts +0 -0
  385. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.0.2/index.d.ts +0 -0
  386. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.d.ts +0 -0
  387. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.1.1/index.d.ts +0 -0
  388. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.d.ts +0 -0
  389. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/index.d.ts +0 -0
  390. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.d.ts +0 -0
  391. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.d.ts +0 -0
  392. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.0/index.d.ts +0 -0
  393. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.d.ts +0 -0
  394. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.d.ts +0 -0
  395. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/index.d.ts +0 -0
  396. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.d.ts +0 -0
  397. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.d.ts +0 -0
  398. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.d.ts +0 -0
  399. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.d.ts +0 -0
  400. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/index.d.ts +0 -0
  401. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.d.ts +0 -0
  402. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.d.ts +0 -0
  403. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.0.0/index.d.ts +0 -0
  404. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.d.ts +0 -0
  405. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.d.ts +0 -0
  406. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/index.d.ts +0 -0
  407. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.d.ts +0 -0
  408. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.d.ts +0 -0
  409. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.d.ts +0 -0
  410. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/9.0.1/index.d.ts +0 -0
  411. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.d.ts +0 -0
  412. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/9.1.0/index.d.ts +0 -0
  413. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.d.ts +0 -0
  414. /package/lib/{src/cli → cli}/lint/prettier.d.ts +0 -0
  415. /package/lib/{src/cli → cli}/lint/tsc.d.ts +0 -0
  416. /package/lib/{src/cli → cli}/lint/types.d.ts +0 -0
  417. /package/lib/{src/cli → cli}/migrate/index.d.ts +0 -0
  418. /package/lib/{src/cli → cli}/migrate/nodeVersion/checks.d.ts +0 -0
  419. /package/lib/{src/cli → cli}/migrate/nodeVersion/index.d.ts +0 -0
  420. /package/lib/{src/cli → cli}/node/index.d.ts +0 -0
  421. /package/lib/{src/cli → cli}/release/index.d.ts +0 -0
  422. /package/lib/{src/cli → cli}/start/index.d.ts +0 -0
  423. /package/lib/{src/cli → cli}/test/index.d.ts +0 -0
  424. /package/lib/{src/cli → cli}/version/index.d.ts +0 -0
  425. /package/lib/{src/index.d.ts → index.d.ts} +0 -0
  426. /package/lib/{src/skuba.d.ts → skuba.d.ts} +0 -0
  427. /package/lib/{src/utils → utils}/args.d.ts +0 -0
  428. /package/lib/{src/utils → utils}/command.d.ts +0 -0
  429. /package/lib/{src/utils → utils}/copy.d.ts +0 -0
  430. /package/lib/{src/utils → utils}/dir.d.ts +0 -0
  431. /package/lib/{src/utils → utils}/env.d.ts +0 -0
  432. /package/lib/{src/utils → utils}/error.d.ts +0 -0
  433. /package/lib/{src/utils → utils}/exec.d.ts +0 -0
  434. /package/lib/{src/utils → utils}/fs.d.ts +0 -0
  435. /package/lib/{src/utils → utils}/help.d.ts +0 -0
  436. /package/lib/{src/utils → utils}/logging.d.ts +0 -0
  437. /package/lib/{src/utils → utils}/logo.d.ts +0 -0
  438. /package/lib/{src/utils → utils}/manifest.d.ts +0 -0
  439. /package/lib/{src/utils → utils}/npmrc.d.ts +0 -0
  440. /package/lib/{src/utils → utils}/packageManager.d.ts +0 -0
  441. /package/lib/{src/utils → utils}/port.d.ts +0 -0
  442. /package/lib/{src/utils → utils}/sleep.d.ts +0 -0
  443. /package/lib/{src/utils → utils}/template.d.ts +0 -0
  444. /package/lib/{src/utils → utils}/validation.d.ts +0 -0
  445. /package/lib/{src/utils → utils}/version.d.ts +0 -0
  446. /package/lib/{src/utils → utils}/wait.d.ts +0 -0
  447. /package/lib/{src/utils → utils}/worker.d.ts +0 -0
  448. /package/lib/{src/wrapper → wrapper}/functionHandler.d.ts +0 -0
  449. /package/lib/{src/wrapper → wrapper}/http.d.ts +0 -0
  450. /package/lib/{src/wrapper → wrapper}/index.d.ts +0 -0
  451. /package/lib/{src/wrapper → wrapper}/main.d.ts +0 -0
  452. /package/lib/{src/wrapper → wrapper}/requestListener.d.ts +0 -0
  453. /package/lib/{src/wrapper → wrapper}/server.d.ts +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/cli/lint/annotate/github/prettier.ts"],
4
4
  "sourcesContent": ["import type { PrettierOutput } from '../../../adapter/prettier.js';\n\nimport type * as GitHub from '@skuba-lib/api/github';\n\nexport const createPrettierAnnotations = (\n prettier: PrettierOutput,\n): GitHub.Annotation[] =>\n prettier.result.errored.map((result) => {\n const message =\n result.err instanceof Error ? result.err.message : result.err;\n\n return {\n annotation_level: 'failure',\n start_line: 1,\n end_line: 1,\n path: result.filepath,\n message:\n typeof message === 'string' || message instanceof Error\n ? String(message)\n : 'This file has not been formatted.',\n title: 'Prettier',\n };\n });\n"],
5
- "mappings": ";AAIO,aAAM,4BAA4B,CACvC,aAEA,SAAS,OAAO,QAAQ,IAAI,CAAC,WAAW;AACtC,QAAM,UACJ,OAAO,eAAe,QAAQ,OAAO,IAAI,UAAU,OAAO;AAE5D,SAAO;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM,OAAO;AAAA,IACb,SACE,OAAO,YAAY,YAAY,mBAAmB,QAC9C,OAAO,OAAO,IACd;AAAA,IACN,OAAO;AAAA,EACT;AACF,CAAC;",
5
+ "mappings": "AAIO,MAAM,4BAA4B,CACvC,aAEA,SAAS,OAAO,QAAQ,IAAI,CAAC,WAAW;AACtC,QAAM,UACJ,OAAO,eAAe,QAAQ,OAAO,IAAI,UAAU,OAAO;AAE5D,SAAO;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM,OAAO;AAAA,IACb,SACE,OAAO,YAAY,YAAY,mBAAmB,QAC9C,OAAO,OAAO,IACd;AAAA,IACN,OAAO;AAAA,EACT;AACF,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { stripVTControlCharacters as stripAnsi } from "util";
3
2
  const tscOutputRegex = /([^\s].*)[\(:](\d+)[,:](\d+)(?:\):\s+|\s+-\s+)(error|warning|info)\s+TS(\d+)\s*:\s*([\s\S]*?)(?=\n\S)(?=\n\D)/g;
4
3
  const annotationLevelMap = {
@@ -6,7 +5,7 @@ const annotationLevelMap = {
6
5
  warning: "warning",
7
6
  info: "notice"
8
7
  };
9
- export const createTscAnnotations = (tscOk, tscOutputStream) => {
8
+ const createTscAnnotations = (tscOk, tscOutputStream) => {
10
9
  if (tscOk) {
11
10
  return [];
12
11
  }
@@ -24,4 +23,7 @@ export const createTscAnnotations = (tscOk, tscOutputStream) => {
24
23
  } : []
25
24
  );
26
25
  };
26
+ export {
27
+ createTscAnnotations
28
+ };
27
29
  //# sourceMappingURL=tsc.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/cli/lint/annotate/github/tsc.ts"],
4
4
  "sourcesContent": ["import { stripVTControlCharacters as stripAnsi } from 'util';\n\nimport type { StreamInterceptor } from '../../../lint/external.js';\n\nimport type * as GitHub from '@skuba-lib/api/github';\n\ntype TscLevel = 'error' | 'warning' | 'info';\n\n/**\n * Matches the `tsc \u2502` prefix on each `tsc` log.\n */\n\n/**\n * Matches regular and pretty `tsc` output.\n *\n * For example, given the following input string:\n *\n * ```console\n * src/skuba.ts:43:7 - error TS2769: No overload matches this call.\n * Overload 1 of 2, '(obj: LogContext, msg?: string | undefined, ...args: any[]): void', gave the following error.\n * Argument of type 'unknown' is not assignable to parameter of type 'LogContext'.\n * Overload 2 of 2, '(msg?: string | undefined, ...args: any[]): void', gave the following error.\n * Argument of type 'unknown' is not assignable to parameter of type 'string | undefined'.\n * Type 'unknown' is not assignable to type 'string'.\n * ```\n *\n * This pattern will produce the following matches:\n *\n * 1. src/skuba.ts\n * 2. 43\n * 3. 7\n * 4. error\n * 5. 2769\n * 6. No overload matches this call [...] not assignable to type 'string'.\n */\nconst tscOutputRegex =\n /([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*([\\s\\S]*?)(?=\\n\\S)(?=\\n\\D)/g;\n\nconst annotationLevelMap: Record<\n TscLevel,\n GitHub.Annotation['annotation_level']\n> = {\n error: 'failure',\n warning: 'warning',\n info: 'notice',\n};\n\nexport const createTscAnnotations = (\n tscOk: boolean,\n tscOutputStream: StreamInterceptor,\n): GitHub.Annotation[] => {\n if (tscOk) {\n return [];\n }\n\n const matches = stripAnsi(tscOutputStream.output()).matchAll(tscOutputRegex);\n return Array.from(matches).flatMap<GitHub.Annotation>((match) =>\n match?.length === 7 && match[1] && match[4] && match[5] && match[6]\n ? {\n annotation_level: annotationLevelMap[match[4] as TscLevel],\n path: match[1],\n start_line: Number(match[2]),\n end_line: Number(match[2]),\n start_column: Number(match[3]),\n end_column: Number(match[3]),\n message: match[6].trim(),\n title: `tsc (TS${match[5]})`,\n }\n : [],\n );\n};\n"],
5
- "mappings": ";AAAA,SAAS,4BAA4B,iBAAiB;AAmCtD,MAAM,iBACJ;AAEF,MAAM,qBAGF;AAAA,EACF,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAEO,aAAM,uBAAuB,CAClC,OACA,oBACwB;AACxB,MAAI,OAAO;AACT,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,UAAU,UAAU,gBAAgB,OAAO,CAAC,EAAE,SAAS,cAAc;AAC3E,SAAO,MAAM,KAAK,OAAO,EAAE;AAAA,IAA2B,CAAC,UACrD,OAAO,WAAW,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,IAC9D;AAAA,MACE,kBAAkB,mBAAmB,MAAM,CAAC,CAAa;AAAA,MACzD,MAAM,MAAM,CAAC;AAAA,MACb,YAAY,OAAO,MAAM,CAAC,CAAC;AAAA,MAC3B,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,MACzB,cAAc,OAAO,MAAM,CAAC,CAAC;AAAA,MAC7B,YAAY,OAAO,MAAM,CAAC,CAAC;AAAA,MAC3B,SAAS,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB,OAAO,UAAU,MAAM,CAAC,CAAC;AAAA,IAC3B,IACA,CAAC;AAAA,EACP;AACF;",
5
+ "mappings": "AAAA,SAAS,4BAA4B,iBAAiB;AAmCtD,MAAM,iBACJ;AAEF,MAAM,qBAGF;AAAA,EACF,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAEO,MAAM,uBAAuB,CAClC,OACA,oBACwB;AACxB,MAAI,OAAO;AACT,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,UAAU,UAAU,gBAAgB,OAAO,CAAC,EAAE,SAAS,cAAc;AAC3E,SAAO,MAAM,KAAK,OAAO,EAAE;AAAA,IAA2B,CAAC,UACrD,OAAO,WAAW,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,IAC9D;AAAA,MACE,kBAAkB,mBAAmB,MAAM,CAAC,CAAa;AAAA,MACzD,MAAM,MAAM,CAAC;AAAA,MACb,YAAY,OAAO,MAAM,CAAC,CAAC;AAAA,MAC3B,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,MACzB,cAAc,OAAO,MAAM,CAAC,CAAC;AAAA,MAC7B,YAAY,OAAO,MAAM,CAAC,CAAC;AAAA,MAC3B,SAAS,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB,OAAO,UAAU,MAAM,CAAC,CAAC;AAAA,IAC3B,IACA,CAAC;AAAA,EACP;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,6 @@
1
- "use strict";
2
1
  import { createBuildkiteAnnotations } from "./buildkite/index.js";
3
2
  import { createGitHubAnnotations } from "./github/index.js";
4
- export const createAnnotations = async (internal, eslint, prettier, tscOk, tscOutputStream) => {
3
+ const createAnnotations = async (internal, eslint, prettier, tscOk, tscOutputStream) => {
5
4
  await Promise.all([
6
5
  createGitHubAnnotations(internal, eslint, prettier, tscOk, tscOutputStream),
7
6
  createBuildkiteAnnotations(
@@ -13,4 +12,7 @@ export const createAnnotations = async (internal, eslint, prettier, tscOk, tscOu
13
12
  )
14
13
  ]);
15
14
  };
15
+ export {
16
+ createAnnotations
17
+ };
16
18
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/lint/annotate/index.ts"],
4
4
  "sourcesContent": ["import type { ESLintOutput } from '../../../cli/adapter/eslint.js';\nimport type { PrettierOutput } from '../../../cli/adapter/prettier.js';\nimport type { StreamInterceptor } from '../external.js';\nimport type { InternalLintResult } from '../internal.js';\n\nimport { createBuildkiteAnnotations } from './buildkite/index.js';\nimport { createGitHubAnnotations } from './github/index.js';\n\nexport const createAnnotations = async (\n internal: InternalLintResult,\n eslint: ESLintOutput,\n prettier: PrettierOutput,\n tscOk: boolean,\n tscOutputStream: StreamInterceptor,\n): Promise<void> => {\n await Promise.all([\n createGitHubAnnotations(internal, eslint, prettier, tscOk, tscOutputStream),\n createBuildkiteAnnotations(\n internal,\n eslint,\n prettier,\n tscOk,\n tscOutputStream,\n ),\n ]);\n};\n"],
5
- "mappings": ";AAKA,SAAS,kCAAkC;AAC3C,SAAS,+BAA+B;AAEjC,aAAM,oBAAoB,OAC/B,UACA,QACA,UACA,OACA,oBACkB;AAClB,QAAM,QAAQ,IAAI;AAAA,IAChB,wBAAwB,UAAU,QAAQ,UAAU,OAAO,eAAe;AAAA,IAC1E;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
5
+ "mappings": "AAKA,SAAS,kCAAkC;AAC3C,SAAS,+BAA+B;AAEjC,MAAM,oBAAoB,OAC/B,UACA,QACA,UACA,OACA,oBACkB;AAClB,QAAM,QAAQ,IAAI;AAAA,IAChB,wBAAwB,UAAU,QAAQ,UAAU,OAAO,eAAe;AAAA,IAC1E;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { inspect } from "util";
3
2
  import { simpleGit } from "simple-git";
4
3
  import { isCiEnv } from "../../utils/env.js";
@@ -14,13 +13,13 @@ import * as Git from "@skuba-lib/api/git";
14
13
  import * as GitHub from "@skuba-lib/api/github";
15
14
  const RENOVATE_DEFAULT_PREFIX = "renovate";
16
15
  const AUTOFIX_COMMIT_MESSAGE = "Run `skuba format`";
17
- export const AUTOFIX_IGNORE_FILES_BASE = [
16
+ const AUTOFIX_IGNORE_FILES_BASE = [
18
17
  {
19
18
  path: "Dockerfile-incunabulum",
20
19
  state: "added"
21
20
  }
22
21
  ];
23
- export const AUTOFIX_IGNORE_FILES_NPMRC = [
22
+ const AUTOFIX_IGNORE_FILES_NPMRC = [
24
23
  {
25
24
  path: ".npmrc",
26
25
  state: "added"
@@ -74,7 +73,7 @@ const getIgnores = async (dir) => {
74
73
  }
75
74
  return AUTOFIX_IGNORE_FILES_BASE;
76
75
  };
77
- export const autofix = async (params) => {
76
+ const autofix = async (params) => {
78
77
  const dir = process.cwd();
79
78
  if (!params.eslint && !params.prettier && !params.internal) {
80
79
  return;
@@ -148,4 +147,9 @@ export const autofix = async (params) => {
148
147
  log.subtle(inspect(err));
149
148
  }
150
149
  };
150
+ export {
151
+ AUTOFIX_IGNORE_FILES_BASE,
152
+ AUTOFIX_IGNORE_FILES_NPMRC,
153
+ autofix
154
+ };
151
155
  //# sourceMappingURL=autofix.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/lint/autofix.ts"],
4
4
  "sourcesContent": ["import { inspect } from 'util';\n\nimport { simpleGit } from 'simple-git';\n\nimport { isCiEnv } from '../../utils/env.js';\nimport { createLogger, log } from '../../utils/logging.js';\nimport { hasNpmrcSecret } from '../../utils/npmrc.js';\nimport { throwOnTimeout } from '../../utils/wait.js';\nimport { runESLint } from '../adapter/eslint.js';\nimport { runPrettier } from '../adapter/prettier.js';\nimport { createDestinationFileReader } from '../configure/analysis/project.js';\n\nimport { internalLint } from './internal.js';\nimport type { Input } from './types.js';\n\nimport * as Buildkite from '@skuba-lib/api/buildkite';\nimport * as Git from '@skuba-lib/api/git';\nimport * as GitHub from '@skuba-lib/api/github';\n\nconst RENOVATE_DEFAULT_PREFIX = 'renovate';\n\nconst AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';\n\nexport const AUTOFIX_IGNORE_FILES_BASE: Git.ChangedFile[] = [\n {\n path: 'Dockerfile-incunabulum',\n state: 'added',\n },\n];\n\nexport const AUTOFIX_IGNORE_FILES_NPMRC: Git.ChangedFile[] = [\n {\n path: '.npmrc',\n state: 'added',\n },\n {\n path: '.npmrc',\n state: 'modified',\n },\n];\n\nconst shouldPush = async ({\n currentBranch,\n dir,\n}: {\n currentBranch?: string;\n dir: string;\n}) => {\n if (!isCiEnv()) {\n // We're not running in a CI environment so we don't need to push autofixes.\n // Ideally we'd drive this off of repository write permissions, but that is\n // non-trivial to infer without attempting an actual write.\n return false;\n }\n\n const isDefaultBuildkiteBranch =\n currentBranch &&\n [process.env.BUILDKITE_PIPELINE_DEFAULT_BRANCH, 'master', 'main'].includes(\n currentBranch,\n );\n\n const isProtectedGitHubBranch = process.env.GITHUB_REF_PROTECTED === 'true';\n\n if (isDefaultBuildkiteBranch || isProtectedGitHubBranch) {\n // The current branch is a protected branch.\n // We respect GitHub Flow; avoid pushing directly to the default branch.\n return false;\n }\n\n if (currentBranch?.startsWith(RENOVATE_DEFAULT_PREFIX)) {\n try {\n await GitHub.getPullRequestNumber();\n } catch {\n const warning =\n 'An autofix is available, but it was not pushed because an open pull request for this Renovate branch could not be found. If a pull request has since been created, retry the lint step to push the fix.';\n log.warn(warning);\n try {\n await Buildkite.annotate(Buildkite.md.terminal(warning));\n } catch {}\n\n return false;\n }\n }\n\n let headCommitMessage;\n try {\n headCommitMessage = await Git.getHeadCommitMessage({ dir });\n } catch {}\n\n if (headCommitMessage?.startsWith(AUTOFIX_COMMIT_MESSAGE)) {\n // Short circuit when the head commit appears to be one of our autofixes.\n // Repeating the same operation is unlikely to correct outstanding issues.\n return false;\n }\n\n // Allow the push attempt to go ahead if our guards have been cleared.\n return true;\n};\n\nconst getIgnores = async (dir: string): Promise<Git.ChangedFile[]> => {\n const contents = await createDestinationFileReader(dir)('.npmrc');\n\n // If an .npmrc has secrets, we need to ignore it\n if (hasNpmrcSecret(contents ?? '')) {\n return [...AUTOFIX_IGNORE_FILES_BASE, ...AUTOFIX_IGNORE_FILES_NPMRC];\n }\n\n return AUTOFIX_IGNORE_FILES_BASE;\n};\n\ninterface AutofixParameters {\n debug: Input['debug'];\n\n eslint: boolean;\n prettier: boolean;\n internal: boolean;\n\n eslintConfigFile?: string;\n}\n\nexport const autofix = async (params: AutofixParameters): Promise<void> => {\n const dir = process.cwd();\n\n if (!params.eslint && !params.prettier && !params.internal) {\n return;\n }\n\n let currentBranch;\n try {\n currentBranch = await Git.currentBranch({ dir });\n } catch {}\n\n if (!(await shouldPush({ currentBranch, dir }))) {\n return;\n }\n\n try {\n log.newline();\n\n log.warn(\n `Attempting to autofix issues (${[\n params.internal ? 'skuba' : undefined,\n params.internal || params.eslint ? 'ESLint' : undefined,\n 'Prettier', // Prettier is always run\n ]\n .filter((s) => s !== undefined)\n .join(', ')})...`,\n );\n\n const logger = createLogger({ debug: params.debug });\n\n if (params.internal) {\n await internalLint('format');\n }\n\n if (params.internal || params.eslint) {\n await runESLint('format', logger, params.eslintConfigFile);\n }\n\n // Unconditionally re-run Prettier; reaching here means we have pre-existing\n // format violations or may have created new ones through ESLint/internal fixes.\n await runPrettier('format', logger);\n\n if (process.env.GITHUB_ACTIONS) {\n // GitHub runners have Git installed locally\n const ref = await Git.commitAllChanges({\n dir,\n message: AUTOFIX_COMMIT_MESSAGE,\n\n ignore: await getIgnores(dir),\n });\n\n if (!ref) {\n return log.warn('No autofixes detected.');\n }\n\n await throwOnTimeout(simpleGit().push(), { s: 30 });\n log.warn(`Pushed fix commit ${ref}.`);\n return;\n }\n\n // Other CI Environments, use GitHub API\n if (!currentBranch) {\n log.warn('Could not determine the current branch.');\n log.warn(\n 'Please propagate BUILDKITE_BRANCH, GITHUB_HEAD_REF, GITHUB_REF_NAME, or the .git directory to your container.',\n );\n return;\n }\n\n const ref = await throwOnTimeout(\n GitHub.uploadAllFileChanges({\n branch: currentBranch,\n dir,\n messageHeadline: AUTOFIX_COMMIT_MESSAGE,\n\n ignore: await getIgnores(dir),\n }),\n { s: 30 },\n );\n\n if (!ref) {\n return log.warn('No autofixes detected.');\n }\n\n log.warn(`Pushed fix commit ${ref}.`);\n } catch (err) {\n log.warn(log.bold('Failed to push fix commit.'));\n log.warn(\n log.bold(\n 'Does your CI environment have write access to your Git repository?',\n ),\n );\n log.subtle(inspect(err));\n }\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["ref"]
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import path from "path";
3
2
  import { isMainThread } from "worker_threads";
4
3
  import chalk from "chalk";
@@ -6,12 +5,12 @@ import { createLogger } from "../../utils/logging.js";
6
5
  import { execWorkerThread, postWorkerOutput } from "../../utils/worker.js";
7
6
  import { runESLint } from "../adapter/eslint.js";
8
7
  const LOG_PREFIX = chalk.magenta("ESLint \u2502");
9
- export const runESLintInCurrentThread = ({ debug, eslintConfigFile }) => runESLint(
8
+ const runESLintInCurrentThread = ({ debug, eslintConfigFile }) => runESLint(
10
9
  "lint",
11
10
  createLogger({ debug, prefixes: [LOG_PREFIX] }),
12
11
  eslintConfigFile
13
12
  );
14
- export const runESLintInWorkerThread = (input) => execWorkerThread(
13
+ const runESLintInWorkerThread = (input) => execWorkerThread(
15
14
  path.posix.join(import.meta.dirname, "eslint.js"),
16
15
  input
17
16
  );
@@ -21,4 +20,8 @@ if (!isMainThread) {
21
20
  createLogger({ debug: false, prefixes: [LOG_PREFIX] })
22
21
  );
23
22
  }
23
+ export {
24
+ runESLintInCurrentThread,
25
+ runESLintInWorkerThread
26
+ };
24
27
  //# sourceMappingURL=eslint.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/lint/eslint.ts"],
4
4
  "sourcesContent": ["import path from 'path';\nimport { isMainThread } from 'worker_threads';\n\nimport chalk from 'chalk';\n\nimport { createLogger } from '../../utils/logging.js';\nimport { execWorkerThread, postWorkerOutput } from '../../utils/worker.js';\nimport { type ESLintOutput, runESLint } from '../adapter/eslint.js';\n\nimport type { Input } from './types.js';\n\nconst LOG_PREFIX = chalk.magenta('ESLint \u2502');\n\nexport const runESLintInCurrentThread = ({ debug, eslintConfigFile }: Input) =>\n runESLint(\n 'lint',\n createLogger({ debug, prefixes: [LOG_PREFIX] }),\n eslintConfigFile,\n );\n\nexport const runESLintInWorkerThread = (input: Input) =>\n execWorkerThread<Input, ESLintOutput>(\n path.posix.join(import.meta.dirname, 'eslint.js'),\n input,\n );\n\nif (!isMainThread) {\n postWorkerOutput(\n runESLintInCurrentThread,\n createLogger({ debug: false, prefixes: [LOG_PREFIX] }),\n );\n}\n"],
5
- "mappings": ";AAAA,OAAO,UAAU;AACjB,SAAS,oBAAoB;AAE7B,OAAO,WAAW;AAElB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB,wBAAwB;AACnD,SAA4B,iBAAiB;AAI7C,MAAM,aAAa,MAAM,QAAQ,iBAAY;AAEtC,aAAM,2BAA2B,CAAC,EAAE,OAAO,iBAAiB,MACjE;AAAA,EACE;AAAA,EACA,aAAa,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;AAAA,EAC9C;AACF;AAEK,aAAM,0BAA0B,CAAC,UACtC;AAAA,EACE,KAAK,MAAM,KAAK,YAAY,SAAS,WAAW;AAAA,EAChD;AACF;AAEF,IAAI,CAAC,cAAc;AACjB;AAAA,IACE;AAAA,IACA,aAAa,EAAE,OAAO,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;AAAA,EACvD;AACF;",
5
+ "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,oBAAoB;AAE7B,OAAO,WAAW;AAElB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB,wBAAwB;AACnD,SAA4B,iBAAiB;AAI7C,MAAM,aAAa,MAAM,QAAQ,iBAAY;AAEtC,MAAM,2BAA2B,CAAC,EAAE,OAAO,iBAAiB,MACjE;AAAA,EACE;AAAA,EACA,aAAa,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;AAAA,EAC9C;AACF;AAEK,MAAM,0BAA0B,CAAC,UACtC;AAAA,EACE,KAAK,MAAM,KAAK,YAAY,SAAS,WAAW;AAAA,EAChD;AACF;AAEF,IAAI,CAAC,cAAc;AACjB;AAAA,IACE;AAAA,IACA,aAAa,EAAE,OAAO,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;AAAA,EACvD;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import stream from "stream";
3
2
  import { runESLintInCurrentThread, runESLintInWorkerThread } from "./eslint.js";
4
3
  import {
@@ -7,7 +6,7 @@ import {
7
6
  } from "./prettier.js";
8
7
  import { runTscInNewProcess } from "./tsc.js";
9
8
  const tscPrefixRegex = /^(.*?tsc\s+│.*?\s)/gm;
10
- export class StreamInterceptor extends stream.Transform {
9
+ class StreamInterceptor extends stream.Transform {
11
10
  chunks = [];
12
11
  output() {
13
12
  return Buffer.concat(this.chunks).toString().replace(tscPrefixRegex, "");
@@ -44,7 +43,7 @@ const selectLintFunction = (input) => {
44
43
  const isSerial = input.debug || input.serial;
45
44
  return isSerial ? lintSerially : lintConcurrently;
46
45
  };
47
- export const externalLint = async (input) => {
46
+ const externalLint = async (input) => {
48
47
  const lint = selectLintFunction(input);
49
48
  const tscOutputStream = new StreamInterceptor();
50
49
  tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);
@@ -56,4 +55,8 @@ export const externalLint = async (input) => {
56
55
  tscOutputStream
57
56
  };
58
57
  };
58
+ export {
59
+ StreamInterceptor,
60
+ externalLint
61
+ };
59
62
  //# sourceMappingURL=external.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/lint/external.ts"],
4
4
  "sourcesContent": ["import stream from 'stream';\n\nimport { runESLintInCurrentThread, runESLintInWorkerThread } from './eslint.js';\nimport {\n runPrettierInCurrentThread,\n runPrettierInWorkerThread,\n} from './prettier.js';\nimport { runTscInNewProcess } from './tsc.js';\nimport type { Input } from './types.js';\n\nconst tscPrefixRegex = /^(.*?tsc\\s+\u2502.*?\\s)/gm;\n\nexport class StreamInterceptor extends stream.Transform {\n private chunks: Uint8Array[] = [];\n\n public output() {\n return Buffer.concat(this.chunks).toString().replace(tscPrefixRegex, '');\n }\n\n _transform(\n chunk: Uint8Array,\n _encoding: BufferEncoding,\n callback: stream.TransformCallback,\n ) {\n this.chunks.push(chunk);\n\n callback(null, chunk);\n }\n}\n\nconst lintConcurrently = async ({ tscOutputStream, ...input }: Input) => {\n const [eslint, prettier, tscOk] = await Promise.all([\n runESLintInWorkerThread(input),\n runPrettierInWorkerThread(input),\n runTscInNewProcess({ ...input, tscOutputStream }),\n ]);\n\n return { eslint, prettier, tscOk };\n};\n\n/**\n * Run linting tools `--serial`ly for resource-constrained environments.\n *\n * Note that we still run ESLint and Prettier in worker threads as a\n * counterintuitive optimisation. Memory can be more readily freed on worker\n * thread exit, which isn't as easy with a monolithic main thread.\n */\nconst lintSerially = async ({ tscOutputStream, ...input }: Input) => {\n const eslint = await runESLintInWorkerThread(input);\n const prettier = await runPrettierInWorkerThread(input);\n const tscOk = await runTscInNewProcess({ ...input, tscOutputStream });\n\n return { eslint, prettier, tscOk };\n};\n\nconst lintSeriallyWithoutWorkerThreads = async (input: Input) => {\n const eslint = await runESLintInCurrentThread(input);\n const prettier = await runPrettierInCurrentThread(input);\n const tscOk = await runTscInNewProcess(input);\n\n return { eslint, prettier, tscOk };\n};\n\nconst selectLintFunction = (input: Input) => {\n if (!input.workerThreads) {\n return lintSeriallyWithoutWorkerThreads;\n }\n\n // `--debug` implies `--serial`.\n const isSerial = input.debug || input.serial;\n\n return isSerial ? lintSerially : lintConcurrently;\n};\n\nexport const externalLint = async (input: Input) => {\n const lint = selectLintFunction(input);\n\n const tscOutputStream = new StreamInterceptor();\n tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);\n\n const { eslint, prettier, tscOk } = await lint({ ...input, tscOutputStream });\n\n return {\n eslint,\n prettier,\n tscOk,\n tscOutputStream,\n };\n};\n"],
5
- "mappings": ";AAAA,OAAO,YAAY;AAEnB,SAAS,0BAA0B,+BAA+B;AAClE;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AAGnC,MAAM,iBAAiB;AAEhB,aAAM,0BAA0B,OAAO,UAAU;AAAA,EAC9C,SAAuB,CAAC;AAAA,EAEzB,SAAS;AACd,WAAO,OAAO,OAAO,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,gBAAgB,EAAE;AAAA,EACzE;AAAA,EAEA,WACE,OACA,WACA,UACA;AACA,SAAK,OAAO,KAAK,KAAK;AAEtB,aAAS,MAAM,KAAK;AAAA,EACtB;AACF;AAEA,MAAM,mBAAmB,OAAO,EAAE,iBAAiB,GAAG,MAAM,MAAa;AACvE,QAAM,CAAC,QAAQ,UAAU,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IAClD,wBAAwB,KAAK;AAAA,IAC7B,0BAA0B,KAAK;AAAA,IAC/B,mBAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAAA,EAClD,CAAC;AAED,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AASA,MAAM,eAAe,OAAO,EAAE,iBAAiB,GAAG,MAAM,MAAa;AACnE,QAAM,SAAS,MAAM,wBAAwB,KAAK;AAClD,QAAM,WAAW,MAAM,0BAA0B,KAAK;AACtD,QAAM,QAAQ,MAAM,mBAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAEpE,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,mCAAmC,OAAO,UAAiB;AAC/D,QAAM,SAAS,MAAM,yBAAyB,KAAK;AACnD,QAAM,WAAW,MAAM,2BAA2B,KAAK;AACvD,QAAM,QAAQ,MAAM,mBAAmB,KAAK;AAE5C,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,qBAAqB,CAAC,UAAiB;AAC3C,MAAI,CAAC,MAAM,eAAe;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,MAAM,SAAS,MAAM;AAEtC,SAAO,WAAW,eAAe;AACnC;AAEO,aAAM,eAAe,OAAO,UAAiB;AAClD,QAAM,OAAO,mBAAmB,KAAK;AAErC,QAAM,kBAAkB,IAAI,kBAAkB;AAC9C,kBAAgB,KAAK,MAAM,mBAAmB,QAAQ,MAAM;AAE5D,QAAM,EAAE,QAAQ,UAAU,MAAM,IAAI,MAAM,KAAK,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAE5E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "mappings": "AAAA,OAAO,YAAY;AAEnB,SAAS,0BAA0B,+BAA+B;AAClE;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AAGnC,MAAM,iBAAiB;AAEhB,MAAM,0BAA0B,OAAO,UAAU;AAAA,EAC9C,SAAuB,CAAC;AAAA,EAEzB,SAAS;AACd,WAAO,OAAO,OAAO,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,gBAAgB,EAAE;AAAA,EACzE;AAAA,EAEA,WACE,OACA,WACA,UACA;AACA,SAAK,OAAO,KAAK,KAAK;AAEtB,aAAS,MAAM,KAAK;AAAA,EACtB;AACF;AAEA,MAAM,mBAAmB,OAAO,EAAE,iBAAiB,GAAG,MAAM,MAAa;AACvE,QAAM,CAAC,QAAQ,UAAU,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IAClD,wBAAwB,KAAK;AAAA,IAC7B,0BAA0B,KAAK;AAAA,IAC/B,mBAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAAA,EAClD,CAAC;AAED,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AASA,MAAM,eAAe,OAAO,EAAE,iBAAiB,GAAG,MAAM,MAAa;AACnE,QAAM,SAAS,MAAM,wBAAwB,KAAK;AAClD,QAAM,WAAW,MAAM,0BAA0B,KAAK;AACtD,QAAM,QAAQ,MAAM,mBAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAEpE,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,mCAAmC,OAAO,UAAiB;AAC/D,QAAM,SAAS,MAAM,yBAAyB,KAAK;AACnD,QAAM,WAAW,MAAM,2BAA2B,KAAK;AACvD,QAAM,QAAQ,MAAM,mBAAmB,KAAK;AAE5C,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,qBAAqB,CAAC,UAAiB;AAC3C,MAAI,CAAC,MAAM,eAAe;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,MAAM,SAAS,MAAM;AAEtC,SAAO,WAAW,eAAe;AACnC;AAEO,MAAM,eAAe,OAAO,UAAiB;AAClD,QAAM,OAAO,mBAAmB,KAAK;AAErC,QAAM,kBAAkB,IAAI,kBAAkB;AAC9C,kBAAgB,KAAK,MAAM,mBAAmB,QAAQ,MAAM;AAE5D,QAAM,EAAE,QAAQ,UAAU,MAAM,IAAI,MAAM,KAAK,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAE5E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { inspect } from "util";
3
2
  import { hasDebugFlag, hasSerialFlag } from "../../utils/args.js";
4
3
  import { log } from "../../utils/logging.js";
@@ -8,7 +7,7 @@ import { createAnnotations } from "./annotate/index.js";
8
7
  import { autofix } from "./autofix.js";
9
8
  import { externalLint } from "./external.js";
10
9
  import { internalLint } from "./internal.js";
11
- export const lint = async (args = process.argv.slice(2), tscWriteable = void 0, workerThreads = true) => {
10
+ const lint = async (args = process.argv.slice(2), tscWriteable = void 0, workerThreads = true) => {
12
11
  const opts = {
13
12
  debug: hasDebugFlag(args),
14
13
  serial: hasSerialFlag(args),
@@ -54,4 +53,7 @@ export const lint = async (args = process.argv.slice(2), tscWriteable = void 0,
54
53
  internal: internal.fixable
55
54
  });
56
55
  };
56
+ export {
57
+ lint
58
+ };
57
59
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/lint/index.ts"],
4
4
  "sourcesContent": ["import type { Writable } from 'stream';\nimport { inspect } from 'util';\n\nimport { hasDebugFlag, hasSerialFlag } from '../../utils/args.js';\nimport { log } from '../../utils/logging.js';\nimport { detectPackageManager } from '../../utils/packageManager.js';\nimport { throwOnTimeout } from '../../utils/wait.js';\n\nimport { createAnnotations } from './annotate/index.js';\nimport { autofix } from './autofix.js';\nimport { externalLint } from './external.js';\nimport { internalLint } from './internal.js';\nimport type { Input } from './types.js';\n\nexport const lint = async (\n args = process.argv.slice(2),\n tscWriteable: Writable | undefined = undefined,\n workerThreads = true,\n) => {\n const opts: Input = {\n debug: hasDebugFlag(args),\n serial: hasSerialFlag(args),\n tscOutputStream: tscWriteable,\n workerThreads,\n };\n\n const { eslint, prettier, tscOk, tscOutputStream } = await externalLint(opts);\n const internal = await internalLint('lint', opts);\n\n try {\n await throwOnTimeout(\n createAnnotations(internal, eslint, prettier, tscOk, tscOutputStream),\n { s: 30 },\n );\n } catch (err) {\n log.warn('Failed to annotate lint results.');\n log.subtle(inspect(err));\n }\n\n if (!internal.ok || !eslint.ok || !prettier.ok || !tscOk) {\n process.exitCode = 1;\n\n const tools = [\n ...(internal.ok ? [] : ['skuba']),\n ...(eslint.ok ? [] : ['ESLint']),\n ...(prettier.ok ? [] : ['Prettier']),\n ...(tscOk ? [] : ['tsc']),\n ];\n\n log.err(`${tools.join(', ')} found issues that require triage.`);\n\n if (internal.fixable || eslint.fixable || !prettier.ok) {\n const packageManager = await detectPackageManager();\n log.newline();\n log.warn(\n `Try running ${log.bold(\n packageManager.print.exec,\n 'skuba',\n 'format',\n )} to fix them.`,\n );\n }\n }\n\n await autofix({\n debug: opts.debug,\n eslint: eslint.fixable,\n prettier: !prettier.ok,\n internal: internal.fixable,\n });\n};\n"],
5
- "mappings": ";AACA,SAAS,eAAe;AAExB,SAAS,cAAc,qBAAqB;AAC5C,SAAS,WAAW;AACpB,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAE/B,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAGtB,aAAM,OAAO,OAClB,OAAO,QAAQ,KAAK,MAAM,CAAC,GAC3B,eAAqC,QACrC,gBAAgB,SACb;AACH,QAAM,OAAc;AAAA,IAClB,OAAO,aAAa,IAAI;AAAA,IACxB,QAAQ,cAAc,IAAI;AAAA,IAC1B,iBAAiB;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,EAAE,QAAQ,UAAU,OAAO,gBAAgB,IAAI,MAAM,aAAa,IAAI;AAC5E,QAAM,WAAW,MAAM,aAAa,QAAQ,IAAI;AAEhD,MAAI;AACF,UAAM;AAAA,MACJ,kBAAkB,UAAU,QAAQ,UAAU,OAAO,eAAe;AAAA,MACpE,EAAE,GAAG,GAAG;AAAA,IACV;AAAA,EACF,SAAS,KAAK;AACZ,QAAI,KAAK,kCAAkC;AAC3C,QAAI,OAAO,QAAQ,GAAG,CAAC;AAAA,EACzB;AAEA,MAAI,CAAC,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,SAAS,MAAM,CAAC,OAAO;AACxD,YAAQ,WAAW;AAEnB,UAAM,QAAQ;AAAA,MACZ,GAAI,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO;AAAA,MAC/B,GAAI,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ;AAAA,MAC9B,GAAI,SAAS,KAAK,CAAC,IAAI,CAAC,UAAU;AAAA,MAClC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK;AAAA,IACzB;AAEA,QAAI,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,oCAAoC;AAE/D,QAAI,SAAS,WAAW,OAAO,WAAW,CAAC,SAAS,IAAI;AACtD,YAAM,iBAAiB,MAAM,qBAAqB;AAClD,UAAI,QAAQ;AACZ,UAAI;AAAA,QACF,eAAe,IAAI;AAAA,UACjB,eAAe,MAAM;AAAA,UACrB;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,QAAQ,OAAO;AAAA,IACf,UAAU,CAAC,SAAS;AAAA,IACpB,UAAU,SAAS;AAAA,EACrB,CAAC;AACH;",
5
+ "mappings": "AACA,SAAS,eAAe;AAExB,SAAS,cAAc,qBAAqB;AAC5C,SAAS,WAAW;AACpB,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAE/B,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAGtB,MAAM,OAAO,OAClB,OAAO,QAAQ,KAAK,MAAM,CAAC,GAC3B,eAAqC,QACrC,gBAAgB,SACb;AACH,QAAM,OAAc;AAAA,IAClB,OAAO,aAAa,IAAI;AAAA,IACxB,QAAQ,cAAc,IAAI;AAAA,IAC1B,iBAAiB;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,EAAE,QAAQ,UAAU,OAAO,gBAAgB,IAAI,MAAM,aAAa,IAAI;AAC5E,QAAM,WAAW,MAAM,aAAa,QAAQ,IAAI;AAEhD,MAAI;AACF,UAAM;AAAA,MACJ,kBAAkB,UAAU,QAAQ,UAAU,OAAO,eAAe;AAAA,MACpE,EAAE,GAAG,GAAG;AAAA,IACV;AAAA,EACF,SAAS,KAAK;AACZ,QAAI,KAAK,kCAAkC;AAC3C,QAAI,OAAO,QAAQ,GAAG,CAAC;AAAA,EACzB;AAEA,MAAI,CAAC,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,SAAS,MAAM,CAAC,OAAO;AACxD,YAAQ,WAAW;AAEnB,UAAM,QAAQ;AAAA,MACZ,GAAI,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO;AAAA,MAC/B,GAAI,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ;AAAA,MAC9B,GAAI,SAAS,KAAK,CAAC,IAAI,CAAC,UAAU;AAAA,MAClC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK;AAAA,IACzB;AAEA,QAAI,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,oCAAoC;AAE/D,QAAI,SAAS,WAAW,OAAO,WAAW,CAAC,SAAS,IAAI;AACtD,YAAM,iBAAiB,MAAM,qBAAqB;AAClD,UAAI,QAAQ;AACZ,UAAI;AAAA,QACF,eAAe,IAAI;AAAA,UACjB,eAAe,MAAM;AAAA,UACrB;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,QAAQ,OAAO;AAAA,IACf,UAAU,CAAC,SAAS;AAAA,IACpB,UAAU,SAAS;AAAA,EACrB,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { inspect } from "util";
3
2
  import chalk from "chalk";
4
3
  import { childLogger, createLogger } from "../../utils/logging.js";
@@ -51,7 +50,7 @@ const selectLintFunction = (input) => {
51
50
  const isSerial = input?.debug || input?.serial;
52
51
  return isSerial ? lintSerially : lintConcurrently;
53
52
  };
54
- export const internalLint = async (mode, input) => {
53
+ const internalLint = async (mode, input) => {
55
54
  const start = process.hrtime.bigint();
56
55
  const logger = createLogger({
57
56
  debug: input?.debug ?? false,
@@ -79,4 +78,7 @@ const combineResults = (results) => results.reduce(
79
78
  }),
80
79
  { ok: true, fixable: false }
81
80
  );
81
+ export {
82
+ internalLint
83
+ };
82
84
  //# sourceMappingURL=internal.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/lint/internal.ts"],
4
4
  "sourcesContent": ["import { inspect } from 'util';\n\nimport chalk from 'chalk';\n\nimport { type Logger, childLogger, createLogger } from '../../utils/logging.js';\n\nimport { tryDetectBadCodeowners } from './internalLints/detectBadCodeowners.js';\nimport { noSkubaTemplateJs } from './internalLints/noSkubaTemplateJs.js';\nimport { tryRefreshConfigFiles } from './internalLints/refreshConfigFiles.js';\nimport { upgradeSkuba } from './internalLints/upgrade/index.js';\nimport type { Input } from './types.js';\n\nexport type InternalLintResult = {\n ok: boolean;\n fixable: boolean;\n annotations?: Array<{\n start_line?: number;\n end_line?: number;\n path: string;\n message: string;\n }>;\n};\n\nconst lints: Array<\n Array<{\n name: string;\n lint: (\n mode: 'format' | 'lint',\n logger: Logger,\n additionalFlags: string[],\n ) => Promise<InternalLintResult>;\n }>\n> = [\n // Run upgradeSkuba first, in particular before refreshConfigFiles, for npmrc handling\n [{ name: 'upgrade-skuba', lint: upgradeSkuba }],\n [\n { name: 'no-skuba-template-js', lint: noSkubaTemplateJs },\n { name: 'refresh-config-files', lint: tryRefreshConfigFiles },\n { name: 'detect-bad-codeowners', lint: tryDetectBadCodeowners },\n ],\n];\n\nconst lintSerially = async (\n mode: 'format' | 'lint',\n logger: Logger,\n additionalFlags: string[],\n) => {\n const results: InternalLintResult[] = [];\n for (const lintGroup of lints) {\n for (const { lint, name } of lintGroup) {\n results.push(\n await lint(\n mode,\n childLogger(logger, { suffixes: [chalk.dim(name)] }),\n additionalFlags,\n ),\n );\n }\n }\n return results;\n};\n\nconst lintConcurrently = async (\n mode: 'format' | 'lint',\n logger: Logger,\n additionalFlags: string[],\n) => {\n const results: InternalLintResult[] = [];\n\n for (const lintGroup of lints) {\n results.push(\n ...(await Promise.all(\n lintGroup.map(async ({ name, lint }) =>\n lint(\n mode,\n childLogger(logger, { suffixes: [chalk.dim(name)] }),\n additionalFlags,\n ),\n ),\n )),\n );\n }\n\n return results;\n};\n\nconst selectLintFunction = (input?: Input) => {\n const isSerial = input?.debug || input?.serial;\n return isSerial ? lintSerially : lintConcurrently;\n};\n\nexport const internalLint = async (\n mode: 'format' | 'lint',\n input?: Input,\n): Promise<InternalLintResult> => {\n const start = process.hrtime.bigint();\n const logger = createLogger({\n debug: input?.debug ?? false,\n prefixes: [...(mode === 'lint' ? [chalk.blueBright('skuba \u2502')] : [])],\n });\n\n try {\n const lint = selectLintFunction(input);\n const results = await lint(mode, logger, input?.additionalFlags ?? []);\n const result = combineResults(results);\n const end = process.hrtime.bigint();\n logger.plain(`Processed skuba lints in ${logger.timing(start, end)}.`);\n return result;\n } catch (err) {\n logger.err(logger.bold('Failed to run skuba lints.'));\n logger.subtle(inspect(err));\n\n process.exitCode = 1;\n\n return { ok: false, fixable: false, annotations: [] };\n }\n};\n\nconst combineResults = (results: InternalLintResult[]): InternalLintResult =>\n results.reduce(\n (cur, next) => ({\n ok: cur.ok && next.ok,\n fixable: cur.fixable || next.fixable,\n annotations: [...(cur.annotations ?? []), ...(next.annotations ?? [])],\n }),\n { ok: true, fixable: false },\n );\n"],
5
- "mappings": ";AAAA,SAAS,eAAe;AAExB,OAAO,WAAW;AAElB,SAAsB,aAAa,oBAAoB;AAEvD,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAc7B,MAAM,QASF;AAAA;AAAA,EAEF,CAAC,EAAE,MAAM,iBAAiB,MAAM,aAAa,CAAC;AAAA,EAC9C;AAAA,IACE,EAAE,MAAM,wBAAwB,MAAM,kBAAkB;AAAA,IACxD,EAAE,MAAM,wBAAwB,MAAM,sBAAsB;AAAA,IAC5D,EAAE,MAAM,yBAAyB,MAAM,uBAAuB;AAAA,EAChE;AACF;AAEA,MAAM,eAAe,OACnB,MACA,QACA,oBACG;AACH,QAAM,UAAgC,CAAC;AACvC,aAAW,aAAa,OAAO;AAC7B,eAAW,EAAE,MAAM,KAAK,KAAK,WAAW;AACtC,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,UACA,YAAY,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,UACnD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,MAAM,mBAAmB,OACvB,MACA,QACA,oBACG;AACH,QAAM,UAAgC,CAAC;AAEvC,aAAW,aAAa,OAAO;AAC7B,YAAQ;AAAA,MACN,GAAI,MAAM,QAAQ;AAAA,QAChB,UAAU;AAAA,UAAI,OAAO,EAAE,MAAM,KAAK,MAChC;AAAA,YACE;AAAA,YACA,YAAY,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,YACnD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,qBAAqB,CAAC,UAAkB;AAC5C,QAAM,WAAW,OAAO,SAAS,OAAO;AACxC,SAAO,WAAW,eAAe;AACnC;AAEO,aAAM,eAAe,OAC1B,MACA,UACgC;AAChC,QAAM,QAAQ,QAAQ,OAAO,OAAO;AACpC,QAAM,SAAS,aAAa;AAAA,IAC1B,OAAO,OAAO,SAAS;AAAA,IACvB,UAAU,CAAC,GAAI,SAAS,SAAS,CAAC,MAAM,WAAW,iBAAY,CAAC,IAAI,CAAC,CAAE;AAAA,EACzE,CAAC;AAED,MAAI;AACF,UAAM,OAAO,mBAAmB,KAAK;AACrC,UAAM,UAAU,MAAM,KAAK,MAAM,QAAQ,OAAO,mBAAmB,CAAC,CAAC;AACrE,UAAM,SAAS,eAAe,OAAO;AACrC,UAAM,MAAM,QAAQ,OAAO,OAAO;AAClC,WAAO,MAAM,4BAA4B,OAAO,OAAO,OAAO,GAAG,CAAC,GAAG;AACrE,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,WAAO,IAAI,OAAO,KAAK,4BAA4B,CAAC;AACpD,WAAO,OAAO,QAAQ,GAAG,CAAC;AAE1B,YAAQ,WAAW;AAEnB,WAAO,EAAE,IAAI,OAAO,SAAS,OAAO,aAAa,CAAC,EAAE;AAAA,EACtD;AACF;AAEA,MAAM,iBAAiB,CAAC,YACtB,QAAQ;AAAA,EACN,CAAC,KAAK,UAAU;AAAA,IACd,IAAI,IAAI,MAAM,KAAK;AAAA,IACnB,SAAS,IAAI,WAAW,KAAK;AAAA,IAC7B,aAAa,CAAC,GAAI,IAAI,eAAe,CAAC,GAAI,GAAI,KAAK,eAAe,CAAC,CAAE;AAAA,EACvE;AAAA,EACA,EAAE,IAAI,MAAM,SAAS,MAAM;AAC7B;",
5
+ "mappings": "AAAA,SAAS,eAAe;AAExB,OAAO,WAAW;AAElB,SAAsB,aAAa,oBAAoB;AAEvD,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAc7B,MAAM,QASF;AAAA;AAAA,EAEF,CAAC,EAAE,MAAM,iBAAiB,MAAM,aAAa,CAAC;AAAA,EAC9C;AAAA,IACE,EAAE,MAAM,wBAAwB,MAAM,kBAAkB;AAAA,IACxD,EAAE,MAAM,wBAAwB,MAAM,sBAAsB;AAAA,IAC5D,EAAE,MAAM,yBAAyB,MAAM,uBAAuB;AAAA,EAChE;AACF;AAEA,MAAM,eAAe,OACnB,MACA,QACA,oBACG;AACH,QAAM,UAAgC,CAAC;AACvC,aAAW,aAAa,OAAO;AAC7B,eAAW,EAAE,MAAM,KAAK,KAAK,WAAW;AACtC,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,UACA,YAAY,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,UACnD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,MAAM,mBAAmB,OACvB,MACA,QACA,oBACG;AACH,QAAM,UAAgC,CAAC;AAEvC,aAAW,aAAa,OAAO;AAC7B,YAAQ;AAAA,MACN,GAAI,MAAM,QAAQ;AAAA,QAChB,UAAU;AAAA,UAAI,OAAO,EAAE,MAAM,KAAK,MAChC;AAAA,YACE;AAAA,YACA,YAAY,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;AAAA,YACnD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,qBAAqB,CAAC,UAAkB;AAC5C,QAAM,WAAW,OAAO,SAAS,OAAO;AACxC,SAAO,WAAW,eAAe;AACnC;AAEO,MAAM,eAAe,OAC1B,MACA,UACgC;AAChC,QAAM,QAAQ,QAAQ,OAAO,OAAO;AACpC,QAAM,SAAS,aAAa;AAAA,IAC1B,OAAO,OAAO,SAAS;AAAA,IACvB,UAAU,CAAC,GAAI,SAAS,SAAS,CAAC,MAAM,WAAW,iBAAY,CAAC,IAAI,CAAC,CAAE;AAAA,EACzE,CAAC;AAED,MAAI;AACF,UAAM,OAAO,mBAAmB,KAAK;AACrC,UAAM,UAAU,MAAM,KAAK,MAAM,QAAQ,OAAO,mBAAmB,CAAC,CAAC;AACrE,UAAM,SAAS,eAAe,OAAO;AACrC,UAAM,MAAM,QAAQ,OAAO,OAAO;AAClC,WAAO,MAAM,4BAA4B,OAAO,OAAO,OAAO,GAAG,CAAC,GAAG;AACrE,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,WAAO,IAAI,OAAO,KAAK,4BAA4B,CAAC;AACpD,WAAO,OAAO,QAAQ,GAAG,CAAC;AAE1B,YAAQ,WAAW;AAEnB,WAAO,EAAE,IAAI,OAAO,SAAS,OAAO,aAAa,CAAC,EAAE;AAAA,EACtD;AACF;AAEA,MAAM,iBAAiB,CAAC,YACtB,QAAQ;AAAA,EACN,CAAC,KAAK,UAAU;AAAA,IACd,IAAI,IAAI,MAAM,KAAK;AAAA,IACnB,SAAS,IAAI,WAAW,KAAK;AAAA,IAC7B,aAAa,CAAC,GAAI,IAAI,eAAe,CAAC,GAAI,GAAI,KAAK,eAAe,CAAC,CAAE;AAAA,EACvE;AAAA,EACA,EAAE,IAAI,MAAM,SAAS,MAAM;AAC7B;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,7 @@
1
- "use strict";
2
1
  import { inspect } from "util";
3
2
  import { Git } from "../../../index.js";
4
3
  import { createDestinationFileReader } from "../../configure/analysis/project.js";
5
- export const detectBadCodeowners = async (logger) => {
4
+ const detectBadCodeowners = async (logger) => {
6
5
  const gitRoot = await Git.findRoot({ dir: process.cwd() });
7
6
  const reader = createDestinationFileReader(gitRoot ?? process.cwd());
8
7
  const annotations = (await Promise.all(
@@ -30,7 +29,7 @@ export const detectBadCodeowners = async (logger) => {
30
29
  annotations
31
30
  };
32
31
  };
33
- export const tryDetectBadCodeowners = async (_mode, logger) => {
32
+ const tryDetectBadCodeowners = async (_mode, logger) => {
34
33
  try {
35
34
  return await detectBadCodeowners(logger);
36
35
  } catch (err) {
@@ -43,4 +42,8 @@ export const tryDetectBadCodeowners = async (_mode, logger) => {
43
42
  };
44
43
  }
45
44
  };
45
+ export {
46
+ detectBadCodeowners,
47
+ tryDetectBadCodeowners
48
+ };
46
49
  //# sourceMappingURL=detectBadCodeowners.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/lint/internalLints/detectBadCodeowners.ts"],
4
4
  "sourcesContent": ["import { inspect } from 'util';\n\nimport { Git } from '../../../index.js';\nimport type { Logger } from '../../../utils/logging.js';\nimport { createDestinationFileReader } from '../../configure/analysis/project.js';\nimport type { InternalLintResult } from '../internal.js';\n\nexport const detectBadCodeowners = async (\n logger: Logger,\n): Promise<InternalLintResult> => {\n const gitRoot = await Git.findRoot({ dir: process.cwd() });\n const reader = createDestinationFileReader(gitRoot ?? process.cwd());\n\n const annotations = (\n await Promise.all(\n ['.github/CODEOWNERS', 'CODEOWNERS', 'docs/CODEOWNERS'].map(\n async (filename) => {\n const lines = (await reader(filename))?.split('\\n');\n\n if (lines?.some((line) => line.startsWith('- '))) {\n return [\n {\n message:\n 'CODEOWNERS file has a line starting with `- `. This is probably an autoformatting mistake, where your editor thinks this file is a markdown file and is trying to format a list item. Did you mean to use `*` instead?',\n path: filename,\n },\n ];\n }\n\n return [];\n },\n ),\n )\n )\n .flat()\n .toSorted((a, b) => a.path.localeCompare(b.path));\n\n annotations.forEach(({ path, message }) => {\n logger.warn(`${path}: ${message}`);\n });\n\n return {\n ok: annotations.length === 0,\n fixable: false,\n annotations,\n };\n};\n\nexport const tryDetectBadCodeowners = async (\n _mode: 'format' | 'lint',\n logger: Logger,\n): Promise<InternalLintResult> => {\n try {\n return await detectBadCodeowners(logger);\n } catch (err) {\n logger.warn('Failed to detect bad CODEOWNERS.');\n logger.subtle(inspect(err));\n\n return {\n ok: false,\n fixable: false,\n annotations: [],\n };\n }\n};\n"],
5
- "mappings": ";AAAA,SAAS,eAAe;AAExB,SAAS,WAAW;AAEpB,SAAS,mCAAmC;AAGrC,aAAM,sBAAsB,OACjC,WACgC;AAChC,QAAM,UAAU,MAAM,IAAI,SAAS,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AACzD,QAAM,SAAS,4BAA4B,WAAW,QAAQ,IAAI,CAAC;AAEnE,QAAM,eACJ,MAAM,QAAQ;AAAA,IACZ,CAAC,sBAAsB,cAAc,iBAAiB,EAAE;AAAA,MACtD,OAAO,aAAa;AAClB,cAAM,SAAS,MAAM,OAAO,QAAQ,IAAI,MAAM,IAAI;AAElD,YAAI,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,GAAG;AAChD,iBAAO;AAAA,YACL;AAAA,cACE,SACE;AAAA,cACF,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAEA,eAAO,CAAC;AAAA,MACV;AAAA,IACF;AAAA,EACF,GAEC,KAAK,EACL,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAElD,cAAY,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM;AACzC,WAAO,KAAK,GAAG,IAAI,KAAK,OAAO,EAAE;AAAA,EACnC,CAAC;AAED,SAAO;AAAA,IACL,IAAI,YAAY,WAAW;AAAA,IAC3B,SAAS;AAAA,IACT;AAAA,EACF;AACF;AAEO,aAAM,yBAAyB,OACpC,OACA,WACgC;AAChC,MAAI;AACF,WAAO,MAAM,oBAAoB,MAAM;AAAA,EACzC,SAAS,KAAK;AACZ,WAAO,KAAK,kCAAkC;AAC9C,WAAO,OAAO,QAAQ,GAAG,CAAC;AAE1B,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,aAAa,CAAC;AAAA,IAChB;AAAA,EACF;AACF;",
5
+ "mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,WAAW;AAEpB,SAAS,mCAAmC;AAGrC,MAAM,sBAAsB,OACjC,WACgC;AAChC,QAAM,UAAU,MAAM,IAAI,SAAS,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AACzD,QAAM,SAAS,4BAA4B,WAAW,QAAQ,IAAI,CAAC;AAEnE,QAAM,eACJ,MAAM,QAAQ;AAAA,IACZ,CAAC,sBAAsB,cAAc,iBAAiB,EAAE;AAAA,MACtD,OAAO,aAAa;AAClB,cAAM,SAAS,MAAM,OAAO,QAAQ,IAAI,MAAM,IAAI;AAElD,YAAI,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,GAAG;AAChD,iBAAO;AAAA,YACL;AAAA,cACE,SACE;AAAA,cACF,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAEA,eAAO,CAAC;AAAA,MACV;AAAA,IACF;AAAA,EACF,GAEC,KAAK,EACL,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAElD,cAAY,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM;AACzC,WAAO,KAAK,GAAG,IAAI,KAAK,OAAO,EAAE;AAAA,EACnC,CAAC;AAED,SAAO;AAAA,IACL,IAAI,YAAY,WAAW;AAAA,IAC3B,SAAS;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,OACpC,OACA,WACgC;AAChC,MAAI;AACF,WAAO,MAAM,oBAAoB,MAAM;AAAA,EACzC,SAAS,KAAK;AACZ,WAAO,KAAK,kCAAkC;AAC9C,WAAO,OAAO,QAAQ,GAAG,CAAC;AAE1B,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,aAAa,CAAC;AAAA,IAChB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,8 @@
1
- "use strict";
2
1
  import path from "path";
3
2
  import { pathExists } from "../../../utils/fs.js";
4
3
  import { getConsumerManifest } from "../../../utils/manifest.js";
5
4
  import { detectPackageManager } from "../../../utils/packageManager.js";
6
- export const noSkubaTemplateJs = async (_mode, logger) => {
5
+ const noSkubaTemplateJs = async (_mode, logger) => {
7
6
  const [manifest, packageManager] = await Promise.all([
8
7
  getConsumerManifest(),
9
8
  detectPackageManager()
@@ -36,4 +35,7 @@ export const noSkubaTemplateJs = async (_mode, logger) => {
36
35
  }
37
36
  return { ok: true, fixable: false };
38
37
  };
38
+ export {
39
+ noSkubaTemplateJs
40
+ };
39
41
  //# sourceMappingURL=noSkubaTemplateJs.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/lint/internalLints/noSkubaTemplateJs.ts"],
4
4
  "sourcesContent": ["import path from 'path';\n\nimport { pathExists } from '../../../utils/fs.js';\nimport type { Logger } from '../../../utils/logging.js';\nimport { getConsumerManifest } from '../../../utils/manifest.js';\nimport { detectPackageManager } from '../../../utils/packageManager.js';\nimport type { InternalLintResult } from '../internal.js';\n\nexport const noSkubaTemplateJs = async (\n _mode: 'format' | 'lint',\n logger: Logger,\n): Promise<InternalLintResult> => {\n const [manifest, packageManager] = await Promise.all([\n getConsumerManifest(),\n detectPackageManager(),\n ]);\n\n if (!manifest) {\n // This will throw elsewhere\n return { ok: true, fixable: false };\n }\n\n const templateConfigPath = path.join(\n path.dirname(manifest.path),\n 'skuba.template.js',\n );\n\n if (await pathExists(templateConfigPath)) {\n logger.err(\n `Template is incomplete; run ${logger.bold(\n packageManager.print.exec,\n 'skuba',\n 'configure',\n )}. ${logger.dim('no-skuba-template-js')}`,\n );\n\n return {\n ok: false,\n fixable: false,\n annotations: [\n {\n path: 'skuba.template.js',\n message: `Template is incomplete; run ${packageManager.print.exec} skuba configure.`,\n },\n ],\n };\n }\n\n return { ok: true, fixable: false };\n};\n"],
5
- "mappings": ";AAAA,OAAO,UAAU;AAEjB,SAAS,kBAAkB;AAE3B,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AAG9B,aAAM,oBAAoB,OAC/B,OACA,WACgC;AAChC,QAAM,CAAC,UAAU,cAAc,IAAI,MAAM,QAAQ,IAAI;AAAA,IACnD,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB,CAAC;AAED,MAAI,CAAC,UAAU;AAEb,WAAO,EAAE,IAAI,MAAM,SAAS,MAAM;AAAA,EACpC;AAEA,QAAM,qBAAqB,KAAK;AAAA,IAC9B,KAAK,QAAQ,SAAS,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,MAAI,MAAM,WAAW,kBAAkB,GAAG;AACxC,WAAO;AAAA,MACL,+BAA+B,OAAO;AAAA,QACpC,eAAe,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,MACF,CAAC,KAAK,OAAO,IAAI,sBAAsB,CAAC;AAAA,IAC1C;AAEA,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,SAAS,+BAA+B,eAAe,MAAM,IAAI;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,IAAI,MAAM,SAAS,MAAM;AACpC;",
5
+ "mappings": "AAAA,OAAO,UAAU;AAEjB,SAAS,kBAAkB;AAE3B,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AAG9B,MAAM,oBAAoB,OAC/B,OACA,WACgC;AAChC,QAAM,CAAC,UAAU,cAAc,IAAI,MAAM,QAAQ,IAAI;AAAA,IACnD,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB,CAAC;AAED,MAAI,CAAC,UAAU;AAEb,WAAO,EAAE,IAAI,MAAM,SAAS,MAAM;AAAA,EACpC;AAEA,QAAM,qBAAqB,KAAK;AAAA,IAC9B,KAAK,QAAQ,SAAS,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,MAAI,MAAM,WAAW,kBAAkB,GAAG;AACxC,WAAO;AAAA,MACL,+BAA+B,OAAO;AAAA,QACpC,eAAe,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,MACF,CAAC,KAAK,OAAO,IAAI,sBAAsB,CAAC;AAAA,IAC1C;AAEA,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,SAAS,+BAA+B,eAAe,MAAM,IAAI;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,IAAI,MAAM,SAAS,MAAM;AACpC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import path from "path";
3
2
  import { inspect } from "util";
4
3
  import fs from "fs-extra";
@@ -97,7 +96,7 @@ const patchRenovateConfig = async (mode, dir) => {
97
96
  });
98
97
  return { result: "apply" };
99
98
  };
100
- export const tryPatchRenovateConfig = (async ({
99
+ const tryPatchRenovateConfig = (async ({
101
100
  mode,
102
101
  dir = process.cwd()
103
102
  }) => {
@@ -113,4 +112,7 @@ export const tryPatchRenovateConfig = (async ({
113
112
  return { result: "skip", reason: "due to an error" };
114
113
  }
115
114
  });
115
+ export {
116
+ tryPatchRenovateConfig
117
+ };
116
118
  //# sourceMappingURL=patchRenovateConfig.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/lint/internalLints/patchRenovateConfig.ts"],
4
4
  "sourcesContent": ["import path from 'path';\nimport { inspect } from 'util';\n\nimport fs from 'fs-extra';\nimport * as fleece from 'golden-fleece';\nimport * as z from 'zod/v4';\n\nimport { log } from '../../../utils/logging.js';\nimport { createDestinationFileReader } from '../../configure/analysis/project.js';\nimport { RENOVATE_CONFIG_FILENAMES } from '../../configure/modules/renovate.js';\nimport { formatPrettier } from '../../configure/processing/prettier.js';\n\nimport type { PatchFunction, PatchReturnType } from './upgrade/index.js';\n\nimport * as Git from '@skuba-lib/api/git';\n\nconst EXISTING_REPO_PRESET_REGEX = /(github|local)>(seek-jobs|seekasia)\\//;\n\ntype RenovateFiletype = 'json' | 'json5';\n\ntype RenovatePreset =\n | 'local>seekasia/renovate-config'\n | 'local>seek-jobs/renovate-config';\n\nconst renovateConfigSchema = z.object({\n extends: z.array(z.string()),\n});\n\nconst ownerToRenovatePreset = (owner: string): RenovatePreset | undefined => {\n const lowercaseOwner = owner.toLowerCase();\n\n switch (lowercaseOwner) {\n case 'seekasia':\n return 'local>seekasia/renovate-config';\n\n case 'seek-jobs':\n return 'local>seek-jobs/renovate-config';\n\n default:\n return;\n }\n};\n\ntype PatchFile = (props: {\n filepath: string;\n input: string;\n presetToAdd: RenovatePreset;\n}) => Promise<void>;\n\nconst patchJson: PatchFile = async ({ filepath, input, presetToAdd }) => {\n const json: unknown = JSON.parse(input);\n\n const config = renovateConfigSchema.safeParse(json);\n\n if (!config.success) {\n return;\n }\n\n config.data.extends.unshift(presetToAdd);\n\n await fs.promises.writeFile(\n filepath,\n await formatPrettier(JSON.stringify(config.data), { parser: 'json' }),\n );\n\n return;\n};\n\nconst patchJson5: PatchFile = async ({ filepath, input, presetToAdd }) => {\n const json: unknown = fleece.evaluate(input);\n\n const config = renovateConfigSchema.safeParse(json);\n\n if (!config.success) {\n return;\n }\n\n config.data.extends.unshift(presetToAdd);\n\n await fs.promises.writeFile(\n filepath,\n await formatPrettier(fleece.patch(input, config.data), { parser: 'json5' }),\n );\n\n return;\n};\n\nconst patchByFiletype: Record<RenovateFiletype, PatchFile> = {\n json: patchJson,\n json5: patchJson5,\n};\n\nconst patchRenovateConfig = async (\n mode: 'format' | 'lint',\n dir: string,\n): Promise<PatchReturnType> => {\n const readFile = createDestinationFileReader(dir);\n\n const { owner } = await Git.getOwnerAndRepo({ dir });\n\n const presetToAdd = ownerToRenovatePreset(owner);\n\n if (!presetToAdd) {\n return {\n result: 'skip',\n reason: 'owner does not map to a SEEK preset',\n };\n }\n\n const maybeConfigs = await Promise.all(\n RENOVATE_CONFIG_FILENAMES.map(async (filepath) => ({\n input: await readFile(filepath),\n filepath,\n })),\n );\n\n const config = maybeConfigs.find((maybeConfig) => Boolean(maybeConfig.input));\n if (!config?.input) {\n return { result: 'skip', reason: 'no config found' };\n }\n\n if (\n // The file appears to mention the baseline preset for the configured Git\n // owner. This is a naive check for simplicity.\n config.input.includes(presetToAdd) ||\n // Ignore any renovate configuration which already extends a SEEK-Jobs or seekasia config\n EXISTING_REPO_PRESET_REGEX.exec(config.input)\n ) {\n return {\n result: 'skip',\n reason: 'config already has a SEEK preset',\n };\n }\n\n if (mode === 'lint') {\n return { result: 'apply' };\n }\n\n const filetype: RenovateFiletype = config.filepath\n .toLowerCase()\n .endsWith('.json5')\n ? 'json5'\n : 'json';\n\n const patchFile = patchByFiletype[filetype];\n\n await patchFile({\n filepath: path.resolve(dir, config.filepath),\n input: config.input,\n presetToAdd,\n });\n\n return { result: 'apply' };\n};\n\nexport const tryPatchRenovateConfig = (async ({\n mode,\n dir = process.cwd(),\n}) => {\n try {\n // In a monorepo we may be invoked within a subdirectory, but we are working\n // with Renovate config that should be relative to the repository root.\n const gitRoot = await Git.findRoot({ dir });\n if (!gitRoot) {\n return { result: 'skip', reason: 'no Git root found' };\n }\n\n return await patchRenovateConfig(mode, gitRoot);\n } catch (err) {\n log.warn('Failed to patch Renovate config.');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n}) satisfies PatchFunction;\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import path from "path";
3
2
  import { inspect, stripVTControlCharacters as stripAnsi } from "util";
4
3
  import fs from "fs-extra";
@@ -22,7 +21,7 @@ const OLD_IGNORE_WARNING = `# Ignore .npmrc. This is no longer managed by skuba
22
21
  `;
23
22
  const removeOldWarning = (contents) => contents.includes(OLD_IGNORE_WARNING) ? `${contents.replace(OLD_IGNORE_WARNING, "").trim()}
24
23
  ` : contents;
25
- export const REFRESHABLE_CONFIG_FILES = [
24
+ const REFRESHABLE_CONFIG_FILES = [
26
25
  {
27
26
  name: ".gitignore",
28
27
  type: "ignore",
@@ -40,7 +39,7 @@ export const REFRESHABLE_CONFIG_FILES = [
40
39
  additionalMapping: removeOldWarning
41
40
  }
42
41
  ];
43
- export const refreshConfigFiles = async (mode, logger) => {
42
+ const refreshConfigFiles = async (mode, logger) => {
44
43
  const [manifest, gitRoot, workspaceRoot, currentWorkspaceProjectRoot] = await Promise.all([
45
44
  getDestinationManifest(),
46
45
  Git.findRoot({ dir: process.cwd() }),
@@ -130,7 +129,7 @@ export const refreshConfigFiles = async (mode, logger) => {
130
129
  )
131
130
  };
132
131
  };
133
- export const tryRefreshConfigFiles = async (mode, logger) => {
132
+ const tryRefreshConfigFiles = async (mode, logger) => {
134
133
  try {
135
134
  return await refreshConfigFiles(mode, logger);
136
135
  } catch (err) {
@@ -143,4 +142,9 @@ export const tryRefreshConfigFiles = async (mode, logger) => {
143
142
  };
144
143
  }
145
144
  };
145
+ export {
146
+ REFRESHABLE_CONFIG_FILES,
147
+ refreshConfigFiles,
148
+ tryRefreshConfigFiles
149
+ };
146
150
  //# sourceMappingURL=refreshConfigFiles.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/cli/lint/internalLints/refreshConfigFiles.ts"],
4
4
  "sourcesContent": ["import path from 'path';\nimport { inspect, stripVTControlCharacters as stripAnsi } from 'util';\n\nimport fs from 'fs-extra';\n\nimport { Git } from '../../../index.js';\nimport {\n findCurrentWorkspaceProjectRoot,\n findWorkspaceRoot,\n} from '../../../utils/dir.js';\nimport type { Logger } from '../../../utils/logging.js';\nimport {\n type PackageManagerConfig,\n detectPackageManager,\n} from '../../../utils/packageManager.js';\nimport { readBaseTemplateFile } from '../../../utils/template.js';\nimport { getDestinationManifest } from '../../configure/analysis/package.js';\nimport { createDestinationFileReader } from '../../configure/analysis/project.js';\nimport { mergeWithConfigFile } from '../../configure/processing/configFile.js';\nimport type { InternalLintResult } from '../internal.js';\n\ntype ConditionOptions = {\n packageManager: PackageManagerConfig;\n isInWorkspaceRoot: boolean;\n};\n\ntype RefreshableConfigFile = {\n name: string;\n type: 'ignore' | 'pnpm-workspace';\n additionalMapping?: (\n s: string,\n packageManager: PackageManagerConfig,\n ) => string;\n if?: (options: ConditionOptions) => boolean;\n};\n\nconst OLD_IGNORE_WARNING = `# Ignore .npmrc. This is no longer managed by skuba as pnpm projects use a managed .npmrc.\n# IMPORTANT: if migrating to pnpm, remove this line and add an .npmrc IN THE SAME COMMIT.\n# You can use \\`skuba format\\` to generate the file or otherwise commit an empty file.\n# Doing so will conflict with a local .npmrc and make it more difficult to unintentionally commit auth secrets.\n.npmrc\n`;\n\nconst removeOldWarning = (contents: string) =>\n contents.includes(OLD_IGNORE_WARNING)\n ? `${contents.replace(OLD_IGNORE_WARNING, '').trim()}\\n`\n : contents;\n\nexport const REFRESHABLE_CONFIG_FILES: RefreshableConfigFile[] = [\n {\n name: '.gitignore',\n type: 'ignore',\n additionalMapping: removeOldWarning,\n },\n { name: '.prettierignore', type: 'ignore' },\n {\n name: 'pnpm-workspace.yaml',\n type: 'pnpm-workspace',\n if: ({ packageManager, isInWorkspaceRoot }) =>\n isInWorkspaceRoot && packageManager.command === 'pnpm',\n },\n {\n name: '.dockerignore',\n type: 'ignore',\n additionalMapping: removeOldWarning,\n },\n];\n\nexport const refreshConfigFiles = async (\n mode: 'format' | 'lint',\n logger: Logger,\n) => {\n const [manifest, gitRoot, workspaceRoot, currentWorkspaceProjectRoot] =\n await Promise.all([\n getDestinationManifest(),\n Git.findRoot({ dir: process.cwd() }),\n findWorkspaceRoot(),\n findCurrentWorkspaceProjectRoot(),\n ]);\n\n const destinationRoot = path.dirname(manifest.path);\n\n const readDestinationFile = createDestinationFileReader(destinationRoot);\n\n const refreshConfigFile = async (\n {\n name: filename,\n type: fileType,\n additionalMapping = (s) => s,\n if: condition = () => true,\n }: RefreshableConfigFile,\n conditionOptions: ConditionOptions,\n ) => {\n if (!condition(conditionOptions)) {\n return { needsChange: false };\n }\n\n const maybeReadPackageJson = async (type: RefreshableConfigFile['type']) =>\n type === 'pnpm-workspace'\n ? await readDestinationFile('package.json')\n : undefined;\n\n const [inputFile, templateFile, isGitIgnored, packageJson] =\n await Promise.all([\n readDestinationFile(filename),\n readBaseTemplateFile(`_${filename}`),\n gitRoot\n ? Git.isFileGitIgnored({\n gitRoot,\n absolutePath: path.join(destinationRoot, filename),\n })\n : false,\n maybeReadPackageJson(fileType),\n ]);\n\n // If the file is gitignored and doesn't exist, don't make it\n if (inputFile === undefined && isGitIgnored) {\n return { needsChange: false };\n }\n\n const data = additionalMapping(\n inputFile\n ? mergeWithConfigFile(templateFile, fileType, packageJson)(inputFile)\n : templateFile,\n packageManager,\n );\n\n const filepath = path.join(destinationRoot, filename);\n\n if (mode === 'format') {\n if (data === inputFile) {\n return { needsChange: false };\n }\n\n await fs.writeFile(filepath, data);\n return {\n needsChange: false,\n msg: `Refreshed ${logger.bold(filename)}.`,\n filename,\n };\n }\n\n if (data !== inputFile) {\n return {\n needsChange: true,\n msg: `The ${logger.bold(\n filename,\n )} file is out of date. Run \\`${logger.bold(\n packageManager.print.exec,\n 'skuba',\n 'format',\n )}\\` to update it.`,\n filename,\n };\n }\n\n return { needsChange: false };\n };\n\n const packageManager = await detectPackageManager(destinationRoot);\n\n const results = await Promise.all(\n REFRESHABLE_CONFIG_FILES.map((conf) =>\n refreshConfigFile(conf, {\n packageManager,\n isInWorkspaceRoot: workspaceRoot === currentWorkspaceProjectRoot,\n }),\n ),\n );\n\n // Log after for reproducible test output ordering\n results.forEach((result) => {\n if (result.msg) {\n logger.warn(result.msg);\n }\n });\n\n const anyNeedChanging = results.some(({ needsChange }) => needsChange);\n\n return {\n ok: !anyNeedChanging,\n fixable: anyNeedChanging,\n annotations: results.flatMap(({ needsChange, filename, msg }) =>\n needsChange && msg\n ? [\n {\n path: filename,\n message: stripAnsi(msg),\n },\n ]\n : [],\n ),\n };\n};\n\nexport const tryRefreshConfigFiles = async (\n mode: 'format' | 'lint',\n logger: Logger,\n): Promise<InternalLintResult> => {\n try {\n return await refreshConfigFiles(mode, logger);\n } catch (err) {\n logger.warn('Failed to refresh config files.');\n logger.subtle(inspect(err));\n\n return {\n ok: false,\n fixable: false,\n annotations: [],\n };\n }\n};\n"],
5
- "mappings": ";AAAA,OAAO,UAAU;AACjB,SAAS,SAAS,4BAA4B,iBAAiB;AAE/D,OAAO,QAAQ;AAEf,SAAS,WAAW;AACpB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EAEE;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,mCAAmC;AAC5C,SAAS,2BAA2B;AAkBpC,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAO3B,MAAM,mBAAmB,CAAC,aACxB,SAAS,SAAS,kBAAkB,IAChC,GAAG,SAAS,QAAQ,oBAAoB,EAAE,EAAE,KAAK,CAAC;AAAA,IAClD;AAEC,aAAM,2BAAoD;AAAA,EAC/D;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,mBAAmB;AAAA,EACrB;AAAA,EACA,EAAE,MAAM,mBAAmB,MAAM,SAAS;AAAA,EAC1C;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,IAAI,CAAC,EAAE,gBAAgB,kBAAkB,MACvC,qBAAqB,eAAe,YAAY;AAAA,EACpD;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,mBAAmB;AAAA,EACrB;AACF;AAEO,aAAM,qBAAqB,OAChC,MACA,WACG;AACH,QAAM,CAAC,UAAU,SAAS,eAAe,2BAA2B,IAClE,MAAM,QAAQ,IAAI;AAAA,IAChB,uBAAuB;AAAA,IACvB,IAAI,SAAS,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AAAA,IACnC,kBAAkB;AAAA,IAClB,gCAAgC;AAAA,EAClC,CAAC;AAEH,QAAM,kBAAkB,KAAK,QAAQ,SAAS,IAAI;AAElD,QAAM,sBAAsB,4BAA4B,eAAe;AAEvE,QAAM,oBAAoB,OACxB;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,oBAAoB,CAAC,MAAM;AAAA,IAC3B,IAAI,YAAY,MAAM;AAAA,EACxB,GACA,qBACG;AACH,QAAI,CAAC,UAAU,gBAAgB,GAAG;AAChC,aAAO,EAAE,aAAa,MAAM;AAAA,IAC9B;AAEA,UAAM,uBAAuB,OAAO,SAClC,SAAS,mBACL,MAAM,oBAAoB,cAAc,IACxC;AAEN,UAAM,CAAC,WAAW,cAAc,cAAc,WAAW,IACvD,MAAM,QAAQ,IAAI;AAAA,MAChB,oBAAoB,QAAQ;AAAA,MAC5B,qBAAqB,IAAI,QAAQ,EAAE;AAAA,MACnC,UACI,IAAI,iBAAiB;AAAA,QACnB;AAAA,QACA,cAAc,KAAK,KAAK,iBAAiB,QAAQ;AAAA,MACnD,CAAC,IACD;AAAA,MACJ,qBAAqB,QAAQ;AAAA,IAC/B,CAAC;AAGH,QAAI,cAAc,UAAa,cAAc;AAC3C,aAAO,EAAE,aAAa,MAAM;AAAA,IAC9B;AAEA,UAAM,OAAO;AAAA,MACX,YACI,oBAAoB,cAAc,UAAU,WAAW,EAAE,SAAS,IAClE;AAAA,MACJ;AAAA,IACF;AAEA,UAAM,WAAW,KAAK,KAAK,iBAAiB,QAAQ;AAEpD,QAAI,SAAS,UAAU;AACrB,UAAI,SAAS,WAAW;AACtB,eAAO,EAAE,aAAa,MAAM;AAAA,MAC9B;AAEA,YAAM,GAAG,UAAU,UAAU,IAAI;AACjC,aAAO;AAAA,QACL,aAAa;AAAA,QACb,KAAK,aAAa,OAAO,KAAK,QAAQ,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS,WAAW;AACtB,aAAO;AAAA,QACL,aAAa;AAAA,QACb,KAAK,OAAO,OAAO;AAAA,UACjB;AAAA,QACF,CAAC,+BAA+B,OAAO;AAAA,UACrC,eAAe,MAAM;AAAA,UACrB;AAAA,UACA;AAAA,QACF,CAAC;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAEA,WAAO,EAAE,aAAa,MAAM;AAAA,EAC9B;AAEA,QAAM,iBAAiB,MAAM,qBAAqB,eAAe;AAEjE,QAAM,UAAU,MAAM,QAAQ;AAAA,IAC5B,yBAAyB;AAAA,MAAI,CAAC,SAC5B,kBAAkB,MAAM;AAAA,QACtB;AAAA,QACA,mBAAmB,kBAAkB;AAAA,MACvC,CAAC;AAAA,IACH;AAAA,EACF;AAGA,UAAQ,QAAQ,CAAC,WAAW;AAC1B,QAAI,OAAO,KAAK;AACd,aAAO,KAAK,OAAO,GAAG;AAAA,IACxB;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,QAAQ,KAAK,CAAC,EAAE,YAAY,MAAM,WAAW;AAErE,SAAO;AAAA,IACL,IAAI,CAAC;AAAA,IACL,SAAS;AAAA,IACT,aAAa,QAAQ;AAAA,MAAQ,CAAC,EAAE,aAAa,UAAU,IAAI,MACzD,eAAe,MACX;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,SAAS,UAAU,GAAG;AAAA,QACxB;AAAA,MACF,IACA,CAAC;AAAA,IACP;AAAA,EACF;AACF;AAEO,aAAM,wBAAwB,OACnC,MACA,WACgC;AAChC,MAAI;AACF,WAAO,MAAM,mBAAmB,MAAM,MAAM;AAAA,EAC9C,SAAS,KAAK;AACZ,WAAO,KAAK,iCAAiC;AAC7C,WAAO,OAAO,QAAQ,GAAG,CAAC;AAE1B,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,aAAa,CAAC;AAAA,IAChB;AAAA,EACF;AACF;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import path from "path";
3
2
  import fs from "fs-extra";
4
3
  import { gte, sort } from "semver";
@@ -33,7 +32,7 @@ const resolvePatches = async (version) => {
33
32
  }
34
33
  throw new Error(`Could not resolve patches for ${version}`);
35
34
  };
36
- export const upgradeSkuba = async (mode, logger, additionalFlags = []) => {
35
+ const upgradeSkuba = async (mode, logger, additionalFlags = []) => {
37
36
  const [currentVersion, manifest, packageManager] = await Promise.all([
38
37
  getSkubaVersion(),
39
38
  getConsumerManifest(),
@@ -116,4 +115,7 @@ export const upgradeSkuba = async (mode, logger, additionalFlags = []) => {
116
115
  fixable: false
117
116
  };
118
117
  };
118
+ export {
119
+ upgradeSkuba
120
+ };
119
121
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/cli/lint/internalLints/upgrade/index.ts"],
4
4
  "sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport { gte, sort } from 'semver';\n\nimport type { Logger } from '../../../../utils/logging.js';\nimport { getConsumerManifest } from '../../../../utils/manifest.js';\nimport {\n type PackageManagerConfig,\n detectPackageManager,\n} from '../../../../utils/packageManager.js';\nimport { getSkubaVersion } from '../../../../utils/version.js';\nimport { formatPackage } from '../../../configure/processing/package.js';\nimport type { ReadResult } from '../../../configure/types.js';\nimport type { SkubaPackageJson } from '../../../init/writePackageJson.js';\nimport type { InternalLintResult } from '../../internal.js';\n\nexport type Patches = Patch[];\nexport type Patch = {\n apply: PatchFunction;\n description: string;\n};\nexport type PatchReturnType =\n | { result: 'apply' }\n | { result: 'skip'; reason?: string };\n\nexport type PatchConfig = {\n mode: 'format' | 'lint';\n manifest: ReadResult;\n packageManager: PackageManagerConfig;\n dir?: string;\n};\n\nexport type PatchFunction = (config: PatchConfig) => Promise<PatchReturnType>;\n\nconst getPatches = async (manifestVersion: string): Promise<Patches> => {\n const patches = await fs.readdir(path.join(import.meta.dirname, 'patches'), {\n withFileTypes: true,\n });\n\n // The patches are sorted by the version they were added from.\n // Only return patches that are newer or equal to the current version.\n const patchesForVersion = sort(\n patches.flatMap((patch) =>\n // Is a directory rather than a JavaScript source file\n patch.isDirectory() &&\n // Has been added since the last patch run on the project\n gte(patch.name, manifestVersion)\n ? patch.name\n : [],\n ),\n );\n\n return (await Promise.all(patchesForVersion.map(resolvePatches))).flat();\n};\n\nconst fileExtensions = ['js', 'ts'];\n\n// Hack to allow our Jest environment/transform to resolve the patches\n// In normal scenarios this will resolve immediately after the .js import\nconst resolvePatches = async (version: string): Promise<Patches> => {\n for (const extension of fileExtensions) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return (await import(`./patches/${version}/index.${extension}`)).patches;\n } catch {\n // Ignore\n }\n }\n throw new Error(`Could not resolve patches for ${version}`);\n};\n\nexport const upgradeSkuba = async (\n mode: 'lint' | 'format',\n logger: Logger,\n additionalFlags: string[] = [],\n): Promise<InternalLintResult> => {\n const [currentVersion, manifest, packageManager] = await Promise.all([\n getSkubaVersion(),\n getConsumerManifest(),\n detectPackageManager(),\n ]);\n\n if (!manifest) {\n throw new Error('Could not find a package json for this project');\n }\n\n manifest.packageJson.skuba ??= { version: '1.0.0' };\n\n const manifestVersion = additionalFlags.includes('--force-apply-all-patches')\n ? '1.0.0'\n : (manifest.packageJson.skuba as SkubaPackageJson).version;\n\n // We are up to date, skip patches\n if (gte(manifestVersion, currentVersion)) {\n return { ok: true, fixable: false };\n }\n\n const patches = await getPatches(manifestVersion);\n // No patches to apply even if version out of date. Early exit to avoid unnecessary commits.\n if (patches.length === 0) {\n return { ok: true, fixable: false };\n }\n\n if (mode === 'lint') {\n const results = await Promise.all(\n patches.map(\n async ({ apply }) =>\n await apply({\n mode,\n manifest,\n packageManager,\n }),\n ),\n );\n\n // No patches are applicable. Early exit to avoid unnecessary commits.\n if (results.every(({ result }) => result === 'skip')) {\n return { ok: true, fixable: false };\n }\n\n logger.warn(\n `skuba has patches to apply. Run ${logger.bold(\n packageManager.print.exec,\n 'skuba',\n 'format',\n )} to run them.`,\n );\n\n return {\n ok: false,\n fixable: true,\n annotations: [\n {\n // package.json as likely skuba version has changed\n // TODO: locate the \"skuba\": {} config in the package.json and annotate on the version property\n path: manifest.path,\n message: `skuba has patches to apply. Run ${packageManager.print.exec} skuba format to run them.`,\n },\n ],\n };\n }\n\n logger.plain('Updating skuba...');\n\n // Run these in series in case a subsequent patch relies on a previous patch\n for (const { apply, description } of patches) {\n const result = await apply({\n mode,\n manifest,\n packageManager,\n });\n logger.newline();\n if (result.result === 'skip') {\n logger.plain(\n `Patch skipped: ${description}${\n result.reason ? ` - ${result.reason}` : ''\n }`,\n );\n } else {\n logger.plain(`Patch applied: ${description}`);\n }\n }\n\n const updatedManifest = await getConsumerManifest();\n if (!updatedManifest) {\n throw new Error('Could not find a package json for this project');\n }\n\n updatedManifest.packageJson.skuba ??= { version: currentVersion };\n updatedManifest.packageJson.skuba.version = currentVersion;\n\n const updatedPackageJson = await formatPackage(updatedManifest.packageJson);\n\n await fs.writeFile(updatedManifest.path, updatedPackageJson);\n logger.newline();\n logger.plain('skuba update complete.');\n logger.newline();\n\n return {\n ok: true,\n fixable: false,\n };\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,11 @@
1
- "use strict";
2
1
  import { tryRemoveYarnIgnoreOptionalFlags } from "./removeYarnIgnoreOptionalFlags.js";
3
- export const patches = [
2
+ const patches = [
4
3
  {
5
4
  apply: tryRemoveYarnIgnoreOptionalFlags,
6
5
  description: "Remove yarn --ignore-optional flags in Dockerfiles"
7
6
  }
8
7
  ];
8
+ export {
9
+ patches
10
+ };
9
11
  //# sourceMappingURL=index.js.map