skuba 14.0.0-esmify-skuba-20251105032119 → 14.0.0-hacky-hack-lang-json-20260108235938

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 (539) hide show
  1. package/config/eslint.js +1 -1
  2. package/config/jest.js +1 -0
  3. package/config/prettier.d.ts +4 -0
  4. package/config/prettier.js +2 -10
  5. package/jest/moduleNameMapper.js +64 -0
  6. package/jest/transform.js +62 -0
  7. package/jest/tsConfig.js +26 -0
  8. package/jest-preset.js +37 -0
  9. package/lib/api/jest/index.d.ts +15 -0
  10. package/lib/api/jest/index.js +59 -0
  11. package/lib/api/jest/index.js.map +7 -0
  12. package/lib/cli/adapter/eslint.js +45 -11
  13. package/lib/cli/adapter/eslint.js.map +3 -3
  14. package/lib/cli/adapter/prettier.js +67 -39
  15. package/lib/cli/adapter/prettier.js.map +2 -2
  16. package/lib/cli/build/args.js +42 -8
  17. package/lib/cli/build/args.js.map +2 -2
  18. package/lib/{src/cli → cli}/build/assets.d.ts +3 -2
  19. package/lib/cli/build/assets.js +60 -28
  20. package/lib/cli/build/assets.js.map +3 -3
  21. package/lib/cli/build/esbuild.d.ts +8 -0
  22. package/lib/cli/build/esbuild.js +64 -23
  23. package/lib/cli/build/esbuild.js.map +2 -2
  24. package/lib/cli/build/index.js +53 -21
  25. package/lib/cli/build/index.js.map +2 -2
  26. package/lib/cli/build/tsc.js +60 -24
  27. package/lib/cli/build/tsc.js.map +3 -3
  28. package/lib/cli/buildPackage/index.js +32 -8
  29. package/lib/cli/buildPackage/index.js.map +1 -1
  30. package/lib/cli/configure/analyseConfiguration.js +50 -16
  31. package/lib/cli/configure/analyseConfiguration.js.map +2 -2
  32. package/lib/{src/cli → cli}/configure/analyseDependencies.d.ts +1 -1
  33. package/lib/cli/configure/analyseDependencies.js +59 -25
  34. package/lib/cli/configure/analyseDependencies.js.map +3 -3
  35. package/lib/cli/configure/analysis/diff.js +29 -5
  36. package/lib/cli/configure/analysis/diff.js.map +2 -2
  37. package/lib/cli/configure/analysis/files.js +42 -8
  38. package/lib/cli/configure/analysis/files.js.map +2 -2
  39. package/lib/cli/configure/analysis/git.js +46 -12
  40. package/lib/cli/configure/analysis/git.js.map +2 -2
  41. package/lib/{src/cli → cli}/configure/analysis/package.d.ts +3 -2
  42. package/lib/cli/configure/analysis/package.js +45 -10
  43. package/lib/cli/configure/analysis/package.js.map +3 -3
  44. package/lib/cli/configure/analysis/project.js +50 -18
  45. package/lib/cli/configure/analysis/project.js.map +2 -2
  46. package/lib/cli/configure/dependencies/index.js +35 -7
  47. package/lib/cli/configure/dependencies/index.js.map +1 -1
  48. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +28 -4
  49. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +1 -1
  50. package/lib/cli/configure/dependencies/seekKoala.js +28 -4
  51. package/lib/cli/configure/dependencies/seekKoala.js.map +1 -1
  52. package/lib/cli/configure/dependencies/skuba.js +28 -4
  53. package/lib/cli/configure/dependencies/skuba.js.map +1 -1
  54. package/lib/cli/configure/dependencies/skubaDeps.js +26 -2
  55. package/lib/cli/configure/dependencies/skubaDeps.js.map +1 -1
  56. package/lib/cli/configure/dependencies/skubaDive.js +29 -4
  57. package/lib/cli/configure/dependencies/skubaDive.js.map +1 -1
  58. package/lib/{src/cli → cli}/configure/ensureTemplateCompletion.d.ts +1 -1
  59. package/lib/cli/configure/ensureTemplateCompletion.js +63 -32
  60. package/lib/cli/configure/ensureTemplateCompletion.js.map +3 -3
  61. package/lib/{src/cli → cli}/configure/getEntryPoint.d.ts +2 -2
  62. package/lib/cli/configure/getEntryPoint.js +51 -19
  63. package/lib/cli/configure/getEntryPoint.js.map +3 -3
  64. package/lib/{src/cli → cli}/configure/getProjectType.d.ts +1 -1
  65. package/lib/cli/configure/getProjectType.js +36 -17
  66. package/lib/cli/configure/getProjectType.js.map +2 -2
  67. package/lib/cli/configure/index.js +91 -56
  68. package/lib/cli/configure/index.js.map +3 -3
  69. package/lib/cli/configure/modules/eslint.js +34 -10
  70. package/lib/cli/configure/modules/eslint.js.map +1 -1
  71. package/lib/cli/configure/modules/ignore.js +32 -8
  72. package/lib/cli/configure/modules/ignore.js.map +1 -1
  73. package/lib/cli/configure/modules/index.js +44 -18
  74. package/lib/cli/configure/modules/index.js.map +2 -2
  75. package/lib/cli/configure/modules/jest.d.ts +2 -0
  76. package/lib/cli/configure/modules/jest.js +86 -0
  77. package/lib/cli/configure/modules/jest.js.map +7 -0
  78. package/lib/cli/configure/modules/nodemon.js +28 -4
  79. package/lib/cli/configure/modules/nodemon.js.map +1 -1
  80. package/lib/cli/configure/modules/package.js +34 -10
  81. package/lib/cli/configure/modules/package.js.map +1 -1
  82. package/lib/cli/configure/modules/prettier.js +35 -11
  83. package/lib/cli/configure/modules/prettier.js.map +1 -1
  84. package/lib/cli/configure/modules/renovate.js +40 -17
  85. package/lib/cli/configure/modules/renovate.js.map +2 -2
  86. package/lib/cli/configure/modules/serverless.js +26 -2
  87. package/lib/cli/configure/modules/serverless.js.map +1 -1
  88. package/lib/cli/configure/modules/tslint.js +28 -4
  89. package/lib/cli/configure/modules/tslint.js.map +1 -1
  90. package/lib/cli/configure/processing/configFile.js +39 -3
  91. package/lib/cli/configure/processing/configFile.js.map +1 -1
  92. package/lib/cli/configure/processing/deleteFiles.js +26 -2
  93. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  94. package/lib/cli/configure/processing/javascript.js +27 -2
  95. package/lib/cli/configure/processing/javascript.js.map +1 -1
  96. package/lib/cli/configure/processing/json.js +31 -6
  97. package/lib/cli/configure/processing/json.js.map +1 -1
  98. package/lib/cli/configure/processing/loadFiles.js +26 -2
  99. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  100. package/lib/cli/configure/processing/module.js +28 -4
  101. package/lib/cli/configure/processing/module.js.map +1 -1
  102. package/lib/cli/configure/processing/package.d.ts +71 -0
  103. package/lib/cli/configure/processing/package.js +45 -8
  104. package/lib/cli/configure/processing/package.js.map +3 -3
  105. package/lib/cli/configure/processing/prettier.js +38 -4
  106. package/lib/cli/configure/processing/prettier.js.map +2 -2
  107. package/lib/cli/configure/processing/record.js +41 -5
  108. package/lib/cli/configure/processing/record.js.map +2 -2
  109. package/lib/cli/configure/processing/typescript.js +63 -26
  110. package/lib/cli/configure/processing/typescript.js.map +2 -2
  111. package/lib/{src/cli → cli}/configure/types.d.ts +4 -15
  112. package/lib/cli/configure/types.js +16 -0
  113. package/lib/cli/configure/types.js.map +3 -3
  114. package/lib/cli/format/index.js +44 -20
  115. package/lib/cli/format/index.js.map +2 -2
  116. package/lib/cli/help/index.js +30 -6
  117. package/lib/cli/help/index.js.map +1 -1
  118. package/lib/{src/cli → cli}/init/getConfig.d.ts +2 -2
  119. package/lib/cli/init/getConfig.js +121 -102
  120. package/lib/cli/init/getConfig.js.map +3 -3
  121. package/lib/cli/init/git.js +51 -16
  122. package/lib/cli/init/git.js.map +2 -2
  123. package/lib/cli/init/index.js +98 -67
  124. package/lib/cli/init/index.js.map +2 -2
  125. package/lib/{src/cli → cli}/init/prompts.d.ts +13 -10
  126. package/lib/cli/init/prompts.js +56 -35
  127. package/lib/cli/init/prompts.js.map +2 -2
  128. package/lib/cli/init/types.js +41 -7
  129. package/lib/cli/init/types.js.map +1 -1
  130. package/lib/cli/init/validation.js +30 -2
  131. package/lib/cli/init/validation.js.map +1 -1
  132. package/lib/cli/init/writePackageJson.js +42 -8
  133. package/lib/cli/init/writePackageJson.js.map +2 -2
  134. package/lib/cli/lint/annotate/buildkite/eslint.js +37 -3
  135. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  136. package/lib/cli/lint/annotate/buildkite/index.js +45 -11
  137. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  138. package/lib/cli/lint/annotate/buildkite/internal.js +37 -3
  139. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  140. package/lib/cli/lint/annotate/buildkite/prettier.js +37 -3
  141. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  142. package/lib/cli/lint/annotate/buildkite/tsc.js +37 -3
  143. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  144. package/lib/cli/lint/annotate/github/eslint.js +26 -2
  145. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  146. package/lib/cli/lint/annotate/github/index.js +45 -11
  147. package/lib/cli/lint/annotate/github/index.js.map +1 -1
  148. package/lib/cli/lint/annotate/github/internal.js +26 -2
  149. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  150. package/lib/cli/lint/annotate/github/prettier.js +26 -2
  151. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  152. package/lib/cli/lint/annotate/github/tsc.js +28 -4
  153. package/lib/cli/lint/annotate/github/tsc.js.map +2 -2
  154. package/lib/cli/lint/annotate/index.js +30 -6
  155. package/lib/cli/lint/annotate/index.js.map +1 -1
  156. package/lib/{src/cli → cli}/lint/autofix.d.ts +5 -0
  157. package/lib/cli/lint/autofix.js +80 -40
  158. package/lib/cli/lint/autofix.js.map +2 -2
  159. package/lib/cli/lint/eslint.js +51 -16
  160. package/lib/cli/lint/eslint.js.map +3 -3
  161. package/lib/cli/lint/external.js +51 -19
  162. package/lib/cli/lint/external.js.map +2 -2
  163. package/lib/cli/lint/index.js +50 -28
  164. package/lib/cli/lint/index.js.map +2 -2
  165. package/lib/cli/lint/internal.js +44 -18
  166. package/lib/cli/lint/internal.js.map +2 -2
  167. package/lib/cli/lint/internalLints/detectBadCodeowners.js +33 -8
  168. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  169. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +46 -14
  170. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +3 -3
  171. package/lib/cli/lint/internalLints/patchRenovateConfig.js +55 -21
  172. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
  173. package/lib/cli/lint/internalLints/refreshConfigFiles.js +64 -35
  174. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +3 -3
  175. package/lib/{src/cli → cli}/lint/internalLints/upgrade/index.d.ts +2 -2
  176. package/lib/cli/lint/internalLints/upgrade/index.js +105 -41
  177. package/lib/cli/lint/internalLints/upgrade/index.js.map +3 -3
  178. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +28 -4
  179. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  180. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +45 -11
  181. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +2 -2
  182. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +30 -6
  183. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  184. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +65 -34
  185. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +2 -2
  186. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +46 -11
  187. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +2 -2
  188. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +28 -4
  189. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +1 -1
  190. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +59 -23
  191. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +2 -2
  192. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js +28 -4
  193. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js.map +1 -1
  194. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js +46 -11
  195. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js.map +2 -2
  196. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js +30 -6
  197. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js.map +1 -1
  198. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js +46 -11
  199. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js.map +2 -2
  200. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js +46 -11
  201. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js.map +2 -2
  202. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js +28 -4
  203. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js.map +1 -1
  204. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js +46 -11
  205. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js.map +2 -2
  206. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js +67 -29
  207. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js.map +2 -2
  208. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js +34 -10
  209. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js.map +1 -1
  210. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js +45 -11
  211. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js.map +2 -2
  212. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js +63 -17
  213. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js.map +2 -2
  214. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js +50 -15
  215. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js.map +2 -2
  216. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js +40 -0
  217. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js.map +7 -0
  218. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.d.ts +3 -0
  219. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js +149 -0
  220. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js.map +7 -0
  221. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js +55 -0
  222. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js.map +7 -0
  223. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +51 -17
  224. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
  225. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +34 -10
  226. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +1 -1
  227. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +44 -10
  228. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
  229. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +46 -12
  230. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
  231. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +28 -4
  232. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  233. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +49 -15
  234. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +2 -2
  235. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +45 -11
  236. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +2 -2
  237. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +34 -10
  238. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  239. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +45 -11
  240. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +2 -2
  241. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +45 -11
  242. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +2 -2
  243. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +47 -13
  244. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +2 -2
  245. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +28 -4
  246. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  247. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +45 -11
  248. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +2 -2
  249. package/lib/cli/lint/prettier.js +50 -15
  250. package/lib/cli/lint/prettier.js.map +3 -3
  251. package/lib/cli/lint/tsc.js +28 -4
  252. package/lib/cli/lint/tsc.js.map +1 -1
  253. package/lib/cli/lint/types.js +16 -0
  254. package/lib/cli/lint/types.js.map +3 -3
  255. package/lib/cli/migrate/index.d.ts +6 -0
  256. package/lib/cli/migrate/index.js +79 -15
  257. package/lib/cli/migrate/index.js.map +2 -2
  258. package/lib/cli/migrate/nodeVersion/checks.d.ts +1 -0
  259. package/lib/cli/migrate/nodeVersion/checks.js +51 -120
  260. package/lib/cli/migrate/nodeVersion/checks.js.map +2 -2
  261. package/lib/cli/migrate/nodeVersion/index.d.ts +10 -0
  262. package/lib/cli/migrate/nodeVersion/index.js +239 -65
  263. package/lib/cli/migrate/nodeVersion/index.js.map +3 -3
  264. package/lib/cli/migrate/nodeVersion/upgrade.d.ts +8 -0
  265. package/lib/cli/migrate/nodeVersion/upgrade.js +179 -0
  266. package/lib/cli/migrate/nodeVersion/upgrade.js.map +7 -0
  267. package/lib/cli/node/index.js +57 -20
  268. package/lib/cli/node/index.js.map +3 -3
  269. package/lib/cli/release/index.js +28 -4
  270. package/lib/cli/release/index.js.map +1 -1
  271. package/lib/cli/start/index.js +50 -16
  272. package/lib/cli/start/index.js.map +3 -3
  273. package/lib/cli/test/index.js +44 -4
  274. package/lib/cli/test/index.js.map +2 -2
  275. package/lib/cli/test/reporters/github/annotations.d.ts +9 -0
  276. package/lib/cli/test/reporters/github/annotations.js +102 -0
  277. package/lib/cli/test/reporters/github/annotations.js.map +7 -0
  278. package/lib/cli/test/reporters/github/index.d.ts +5 -0
  279. package/lib/cli/test/reporters/github/index.js +74 -0
  280. package/lib/cli/test/reporters/github/index.js.map +7 -0
  281. package/lib/cli/version/index.js +30 -6
  282. package/lib/cli/version/index.js.map +1 -1
  283. package/lib/{src/index.d.ts → index.d.ts} +1 -0
  284. package/lib/index.js +46 -6
  285. package/lib/index.js.map +2 -2
  286. package/lib/skuba.js +45 -26
  287. package/lib/skuba.js.map +3 -3
  288. package/lib/utils/args.js +43 -6
  289. package/lib/utils/args.js.map +2 -2
  290. package/lib/utils/command.js +42 -4
  291. package/lib/utils/command.js.map +3 -3
  292. package/lib/utils/copy.js +57 -20
  293. package/lib/utils/copy.js.map +2 -2
  294. package/lib/utils/dir.js +72 -32
  295. package/lib/utils/dir.js.map +2 -2
  296. package/lib/utils/env.js +26 -2
  297. package/lib/utils/env.js.map +1 -1
  298. package/lib/utils/error.js +47 -10
  299. package/lib/utils/error.js.map +1 -1
  300. package/lib/{src/utils → utils}/exec.d.ts +3 -2
  301. package/lib/utils/exec.js +62 -24
  302. package/lib/utils/exec.js.map +3 -3
  303. package/lib/utils/fs.js +40 -6
  304. package/lib/utils/fs.js.map +2 -2
  305. package/lib/utils/help.js +30 -6
  306. package/lib/utils/help.js.map +1 -1
  307. package/lib/{src/utils → utils}/logging.d.ts +9 -10
  308. package/lib/utils/logging.js +38 -11
  309. package/lib/utils/logging.js.map +2 -2
  310. package/lib/utils/logo.js +52 -25
  311. package/lib/utils/logo.js.map +2 -2
  312. package/lib/{src/utils → utils}/manifest.d.ts +2 -3
  313. package/lib/utils/manifest.js +48 -8
  314. package/lib/utils/manifest.js.map +3 -3
  315. package/lib/utils/npmrc.js +26 -2
  316. package/lib/utils/npmrc.js.map +1 -1
  317. package/lib/utils/packageManager.js +49 -12
  318. package/lib/utils/packageManager.js.map +2 -2
  319. package/lib/utils/port.js +39 -4
  320. package/lib/utils/port.js.map +2 -2
  321. package/lib/utils/sleep.js +26 -2
  322. package/lib/utils/sleep.js.map +1 -1
  323. package/lib/utils/template.js +55 -18
  324. package/lib/utils/template.js.map +3 -3
  325. package/lib/utils/validation.js +31 -2
  326. package/lib/utils/validation.js.map +1 -1
  327. package/lib/utils/version.js +46 -9
  328. package/lib/utils/version.js.map +2 -2
  329. package/lib/utils/wait.js +32 -7
  330. package/lib/utils/wait.js.map +1 -1
  331. package/lib/{src/utils → utils}/worker.d.ts +3 -3
  332. package/lib/utils/worker.js +35 -10
  333. package/lib/utils/worker.js.map +1 -1
  334. package/lib/wrapper/function-arguments.d.js +1 -0
  335. package/lib/wrapper/functionHandler.js +49 -18
  336. package/lib/wrapper/functionHandler.js.map +2 -2
  337. package/lib/wrapper/http.js +43 -8
  338. package/lib/wrapper/http.js.map +2 -2
  339. package/lib/wrapper/index.js +7 -6
  340. package/lib/wrapper/index.js.map +1 -1
  341. package/lib/wrapper/main.js +42 -8
  342. package/lib/wrapper/main.js.map +3 -3
  343. package/lib/wrapper/requestListener.js +47 -13
  344. package/lib/wrapper/requestListener.js.map +2 -2
  345. package/lib/wrapper/server.js +28 -4
  346. package/lib/wrapper/server.js.map +2 -2
  347. package/package.json +43 -45
  348. package/template/base/_.prettierrc.js +1 -1
  349. package/template/base/_eslint.config.js +1 -1
  350. package/template/base/_pnpm-workspace.yaml +4 -3
  351. package/template/base/jest.config.ts +19 -0
  352. package/template/base/jest.setup.ts +3 -0
  353. package/template/express-rest-api/.buildkite/pipeline.yml +1 -1
  354. package/template/express-rest-api/.nvmrc +1 -1
  355. package/template/express-rest-api/package.json +8 -9
  356. package/template/express-rest-api/skuba.template.js +1 -1
  357. package/template/express-rest-api/src/app.test.ts +0 -1
  358. package/template/greeter/.buildkite/pipeline.yml +1 -1
  359. package/template/greeter/.nvmrc +1 -1
  360. package/template/greeter/package.json +4 -5
  361. package/template/greeter/skuba.template.js +1 -1
  362. package/template/greeter/src/app.test.ts +1 -3
  363. package/template/koa-rest-api/.buildkite/pipeline.yml +1 -1
  364. package/template/koa-rest-api/.nvmrc +1 -1
  365. package/template/koa-rest-api/package.json +9 -11
  366. package/template/koa-rest-api/skuba.template.js +1 -1
  367. package/template/koa-rest-api/src/api/jobs/getJobs.test.ts +0 -2
  368. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +0 -2
  369. package/template/koa-rest-api/src/app.test.ts +0 -2
  370. package/template/koa-rest-api/src/framework/server.test.ts +2 -2
  371. package/template/koa-rest-api/src/framework/validation.test.ts +0 -2
  372. package/template/koa-rest-api/src/testing/metrics.ts +0 -2
  373. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  374. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
  375. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +7 -21
  376. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +9 -11
  377. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +3 -3
  378. package/template/lambda-sqs-worker-cdk/infra/config.ts +2 -4
  379. package/template/lambda-sqs-worker-cdk/package.json +9 -9
  380. package/template/lambda-sqs-worker-cdk/skuba.template.js +13 -1
  381. package/template/lambda-sqs-worker-cdk/src/app.test.ts +13 -22
  382. package/template/lambda-sqs-worker-cdk/src/framework/handler.test.ts +0 -1
  383. package/template/lambda-sqs-worker-cdk/src/framework/validation.test.ts +31 -33
  384. package/template/lambda-sqs-worker-cdk/src/services/jobScorer.test.ts +2 -8
  385. package/template/lambda-sqs-worker-cdk/src/services/pipelineEventSender.test.ts +2 -3
  386. package/template/lambda-sqs-worker-cdk/src/testing/services.ts +3 -4
  387. package/template/oss-npm-package/.github/workflows/release.yml +1 -1
  388. package/template/oss-npm-package/.github/workflows/validate.yml +1 -1
  389. package/template/oss-npm-package/.nvmrc +1 -1
  390. package/template/oss-npm-package/_package.json +0 -1
  391. package/template/oss-npm-package/skuba.template.js +1 -1
  392. package/template/oss-npm-package/src/index.test.ts +0 -2
  393. package/template/private-npm-package/.nvmrc +1 -1
  394. package/template/private-npm-package/_package.json +1 -2
  395. package/template/private-npm-package/skuba.template.js +2 -2
  396. package/template/private-npm-package/src/index.test.ts +0 -2
  397. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +0 -11
  398. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +0 -7
  399. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +0 -34
  400. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +0 -7
  401. package/lib/config/prettier.d.ts +0 -7
  402. package/lib/enquirer.d.js +0 -1
  403. package/lib/enquirer.d.js.map +0 -7
  404. package/lib/eslint.d.js +0 -1
  405. package/lib/eslint.d.js.map +0 -7
  406. package/lib/src/cli/build/esbuild.d.ts +0 -6
  407. package/lib/src/cli/configure/processing/package.d.ts +0 -5
  408. package/lib/src/cli/migrate/index.d.ts +0 -1
  409. package/lib/src/cli/migrate/nodeVersion/checks.d.ts +0 -14
  410. package/lib/src/cli/migrate/nodeVersion/index.d.ts +0 -4
  411. package/template/base/vitest.config.ts +0 -25
  412. package/lib/{src/cli → cli}/adapter/eslint.d.ts +0 -0
  413. package/lib/{src/cli → cli}/adapter/prettier.d.ts +0 -0
  414. package/lib/{src/cli → cli}/build/args.d.ts +0 -0
  415. package/lib/{src/cli → cli}/build/index.d.ts +0 -0
  416. package/lib/{src/cli → cli}/build/tsc.d.ts +0 -0
  417. package/lib/{src/cli → cli}/buildPackage/index.d.ts +0 -0
  418. package/lib/{src/cli → cli}/configure/analyseConfiguration.d.ts +0 -0
  419. package/lib/{src/cli → cli}/configure/analysis/diff.d.ts +0 -0
  420. package/lib/{src/cli → cli}/configure/analysis/files.d.ts +0 -0
  421. package/lib/{src/cli → cli}/configure/analysis/git.d.ts +0 -0
  422. package/lib/{src/cli → cli}/configure/analysis/project.d.ts +0 -0
  423. package/lib/{src/cli → cli}/configure/dependencies/index.d.ts +0 -0
  424. package/lib/{src/cli → cli}/configure/dependencies/seekDatadogCustomMetrics.d.ts +0 -0
  425. package/lib/{src/cli → cli}/configure/dependencies/seekKoala.d.ts +0 -0
  426. package/lib/{src/cli → cli}/configure/dependencies/skuba.d.ts +0 -0
  427. package/lib/{src/cli → cli}/configure/dependencies/skubaDeps.d.ts +0 -0
  428. package/lib/{src/cli → cli}/configure/dependencies/skubaDive.d.ts +0 -0
  429. package/lib/{src/cli → cli}/configure/index.d.ts +0 -0
  430. package/lib/{src/cli → cli}/configure/modules/eslint.d.ts +0 -0
  431. package/lib/{src/cli → cli}/configure/modules/ignore.d.ts +0 -0
  432. package/lib/{src/cli → cli}/configure/modules/index.d.ts +0 -0
  433. package/lib/{src/cli → cli}/configure/modules/nodemon.d.ts +0 -0
  434. package/lib/{src/cli → cli}/configure/modules/package.d.ts +0 -0
  435. package/lib/{src/cli → cli}/configure/modules/prettier.d.ts +0 -0
  436. package/lib/{src/cli → cli}/configure/modules/renovate.d.ts +0 -0
  437. package/lib/{src/cli → cli}/configure/modules/serverless.d.ts +0 -0
  438. package/lib/{src/cli → cli}/configure/modules/tslint.d.ts +0 -0
  439. package/lib/{src/cli → cli}/configure/processing/configFile.d.ts +0 -0
  440. package/lib/{src/cli → cli}/configure/processing/deleteFiles.d.ts +0 -0
  441. package/lib/{src/cli → cli}/configure/processing/javascript.d.ts +0 -0
  442. package/lib/{src/cli → cli}/configure/processing/json.d.ts +0 -0
  443. package/lib/{src/cli → cli}/configure/processing/loadFiles.d.ts +0 -0
  444. package/lib/{src/cli → cli}/configure/processing/module.d.ts +0 -0
  445. package/lib/{src/cli → cli}/configure/processing/prettier.d.ts +0 -0
  446. package/lib/{src/cli → cli}/configure/processing/record.d.ts +0 -0
  447. package/lib/{src/cli → cli}/configure/processing/typescript.d.ts +0 -0
  448. package/lib/{src/cli → cli}/format/index.d.ts +0 -0
  449. package/lib/{src/cli → cli}/help/index.d.ts +0 -0
  450. package/lib/{src/cli → cli}/init/git.d.ts +0 -0
  451. package/lib/{src/cli → cli}/init/index.d.ts +0 -0
  452. package/lib/{src/cli → cli}/init/types.d.ts +1 -1
  453. /package/lib/{src/cli → cli}/init/validation.d.ts +0 -0
  454. /package/lib/{src/cli → cli}/init/writePackageJson.d.ts +0 -0
  455. /package/lib/{src/cli → cli}/lint/annotate/buildkite/eslint.d.ts +0 -0
  456. /package/lib/{src/cli → cli}/lint/annotate/buildkite/index.d.ts +0 -0
  457. /package/lib/{src/cli → cli}/lint/annotate/buildkite/internal.d.ts +0 -0
  458. /package/lib/{src/cli → cli}/lint/annotate/buildkite/prettier.d.ts +0 -0
  459. /package/lib/{src/cli → cli}/lint/annotate/buildkite/tsc.d.ts +0 -0
  460. /package/lib/{src/cli → cli}/lint/annotate/github/eslint.d.ts +0 -0
  461. /package/lib/{src/cli → cli}/lint/annotate/github/index.d.ts +0 -0
  462. /package/lib/{src/cli → cli}/lint/annotate/github/internal.d.ts +0 -0
  463. /package/lib/{src/cli → cli}/lint/annotate/github/prettier.d.ts +0 -0
  464. /package/lib/{src/cli → cli}/lint/annotate/github/tsc.d.ts +0 -0
  465. /package/lib/{src/cli → cli}/lint/annotate/index.d.ts +0 -0
  466. /package/lib/{src/cli → cli}/lint/eslint.d.ts +0 -0
  467. /package/lib/{src/cli → cli}/lint/external.d.ts +0 -0
  468. /package/lib/{src/cli → cli}/lint/index.d.ts +0 -0
  469. /package/lib/{src/cli → cli}/lint/internal.d.ts +0 -0
  470. /package/lib/{src/cli → cli}/lint/internalLints/detectBadCodeowners.d.ts +0 -0
  471. /package/lib/{src/cli → cli}/lint/internalLints/noSkubaTemplateJs.d.ts +0 -0
  472. /package/lib/{src/cli → cli}/lint/internalLints/patchRenovateConfig.d.ts +0 -0
  473. /package/lib/{src/cli → cli}/lint/internalLints/refreshConfigFiles.d.ts +0 -0
  474. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.0.4/index.d.ts +0 -0
  475. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.d.ts +0 -0
  476. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/index.d.ts +0 -0
  477. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.d.ts +0 -0
  478. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.d.ts +0 -0
  479. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.0.2/index.d.ts +0 -0
  480. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.d.ts +0 -0
  481. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.1.1/index.d.ts +0 -0
  482. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.d.ts +0 -0
  483. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/index.d.ts +0 -0
  484. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.d.ts +0 -0
  485. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.d.ts +0 -0
  486. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.0/index.d.ts +0 -0
  487. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.d.ts +0 -0
  488. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.d.ts +0 -0
  489. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/index.d.ts +0 -0
  490. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.d.ts +0 -0
  491. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.d.ts +0 -0
  492. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.d.ts +0 -0
  493. /package/lib/{src/cli/lint/internalLints/upgrade/patches/7.3.1 → cli/lint/internalLints/upgrade/patches/13.1.1}/index.d.ts +0 -0
  494. /package/lib/{src/cli/lint/internalLints/upgrade/patches/9.1.0 → cli/lint/internalLints/upgrade/patches/13.1.1}/upgradeNode.d.ts +0 -0
  495. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.d.ts +0 -0
  496. /package/lib/{src/cli/lint/internalLints/upgrade/patches/8.0.0 → cli/lint/internalLints/upgrade/patches/7.3.1}/index.d.ts +0 -0
  497. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.d.ts +0 -0
  498. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.d.ts +0 -0
  499. /package/lib/{src/cli/lint/internalLints/upgrade/patches/8.2.1 → cli/lint/internalLints/upgrade/patches/8.0.0}/index.d.ts +0 -0
  500. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.d.ts +0 -0
  501. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.d.ts +0 -0
  502. /package/lib/{src/cli/lint/internalLints/upgrade/patches/9.0.1 → cli/lint/internalLints/upgrade/patches/8.2.1}/index.d.ts +0 -0
  503. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.d.ts +0 -0
  504. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.d.ts +0 -0
  505. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.d.ts +0 -0
  506. /package/lib/{src/cli/lint/internalLints/upgrade/patches/9.1.0 → cli/lint/internalLints/upgrade/patches/9.0.1}/index.d.ts +0 -0
  507. /package/lib/{src/cli → cli}/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.d.ts +0 -0
  508. /package/lib/{src/cli → cli}/lint/prettier.d.ts +0 -0
  509. /package/lib/{src/cli → cli}/lint/tsc.d.ts +0 -0
  510. /package/lib/{src/cli → cli}/lint/types.d.ts +0 -0
  511. /package/lib/{src/cli → cli}/node/index.d.ts +0 -0
  512. /package/lib/{src/cli → cli}/release/index.d.ts +0 -0
  513. /package/lib/{src/cli → cli}/start/index.d.ts +0 -0
  514. /package/lib/{src/cli → cli}/test/index.d.ts +0 -0
  515. /package/lib/{src/cli → cli}/version/index.d.ts +0 -0
  516. /package/lib/{src/skuba.d.ts → skuba.d.ts} +0 -0
  517. /package/lib/{src/utils → utils}/args.d.ts +0 -0
  518. /package/lib/{src/utils → utils}/command.d.ts +0 -0
  519. /package/lib/{src/utils → utils}/copy.d.ts +0 -0
  520. /package/lib/{src/utils → utils}/dir.d.ts +0 -0
  521. /package/lib/{src/utils → utils}/env.d.ts +0 -0
  522. /package/lib/{src/utils → utils}/error.d.ts +0 -0
  523. /package/lib/{src/utils → utils}/fs.d.ts +0 -0
  524. /package/lib/{src/utils → utils}/help.d.ts +0 -0
  525. /package/lib/{src/utils → utils}/logo.d.ts +0 -0
  526. /package/lib/{src/utils → utils}/npmrc.d.ts +0 -0
  527. /package/lib/{src/utils → utils}/packageManager.d.ts +0 -0
  528. /package/lib/{src/utils → utils}/port.d.ts +0 -0
  529. /package/lib/{src/utils → utils}/sleep.d.ts +0 -0
  530. /package/lib/{src/utils → utils}/template.d.ts +0 -0
  531. /package/lib/{src/utils → utils}/validation.d.ts +0 -0
  532. /package/lib/{src/utils → utils}/version.d.ts +0 -0
  533. /package/lib/{src/utils → utils}/wait.d.ts +0 -0
  534. /package/lib/{src/wrapper → wrapper}/functionHandler.d.ts +0 -0
  535. /package/lib/{src/wrapper → wrapper}/http.d.ts +0 -0
  536. /package/lib/{src/wrapper → wrapper}/index.d.ts +0 -0
  537. /package/lib/{src/wrapper → wrapper}/main.d.ts +0 -0
  538. /package/lib/{src/wrapper → wrapper}/requestListener.d.ts +0 -0
  539. /package/lib/{src/wrapper → wrapper}/server.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/init/getConfig.ts"],
4
- "sourcesContent": ["import path from 'path';\n\nimport chalk from 'chalk';\nimport enquirer, { type FormChoice } from 'enquirer';\nimport fs from 'fs-extra';\n\nimport { copyFiles } from '../../utils/copy.js';\nimport { isErrorWithCode } from '../../utils/error.js';\nimport { log } from '../../utils/logging.js';\nimport {\n DEFAULT_PACKAGE_MANAGER,\n configForPackageManager,\n} from '../../utils/packageManager.js';\nimport { getRandomPort } from '../../utils/port.js';\nimport {\n TEMPLATE_CONFIG_FILENAME,\n TEMPLATE_DIR,\n type TemplateConfig,\n templateConfigSchema,\n} from '../../utils/template.js';\n\nimport { downloadGitHubTemplate } from './git.js';\nimport {\n BASE_PROMPT_PROPS,\n type BaseFields,\n type Choice,\n GIT_PATH_PROMPT,\n SHOULD_CONTINUE_PROMPT,\n TEMPLATE_PROMPT,\n} from './prompts.js';\nimport { type InitConfig, initConfigInputSchema } from './types.js';\n\nexport const runForm = <T = Record<string, string>>(props: {\n choices: readonly Choice[];\n message: string;\n name: string;\n}) => {\n const { message, name } = props;\n\n const choices = props.choices.map((choice) => ({\n ...choice,\n validate: (value: string | undefined) => {\n if (\n !value ||\n value === '' ||\n (value === choice.initial && !choice.allowInitial)\n ) {\n return 'Form is not complete';\n }\n\n return choice.validate?.(value) ?? true;\n },\n }));\n\n const form = new enquirer.Form<T>({\n choices,\n message,\n name,\n validate: async (values) => {\n const results = await Promise.all(\n choices.map(async (choice) => choice.validate(values[choice.name])),\n );\n\n return (\n results.find((result) => typeof result === 'string') ??\n results.every((result) => result === true)\n );\n },\n });\n\n return form.run();\n};\n\nconst confirmShouldContinue = async (choices: readonly FormChoice[]) => {\n const fieldsList = choices.map((choice) => choice.message);\n\n log.newline();\n log.plain('This template uses the following information:');\n log.newline();\n fieldsList.forEach((message) => log.subtle(`- ${message}`));\n\n log.newline();\n const result = await SHOULD_CONTINUE_PROMPT.run();\n\n return result === 'yes';\n};\n\nconst createDirectory = async (dir: string) => {\n try {\n await fs.promises.mkdir(dir);\n } catch (err) {\n if (isErrorWithCode(err, 'EEXIST')) {\n log.err(`The directory '${dir}' already exists.`);\n process.exit(1);\n }\n\n throw err;\n }\n};\n\nconst cloneTemplate = async (\n templateName: string,\n destinationDir: string,\n): Promise<TemplateConfig> => {\n const isCustomTemplate = templateName.startsWith('github:');\n\n if (isCustomTemplate) {\n const gitHubPath = templateName.slice('github:'.length);\n\n await downloadGitHubTemplate(gitHubPath, destinationDir);\n } else {\n const templateDir = path.join(TEMPLATE_DIR, templateName);\n\n await copyFiles({\n // assume built-in templates have no extraneous files\n include: () => true,\n sourceRoot: templateDir,\n destinationRoot: destinationDir,\n processors: [],\n // built-in templates have files like _package.json\n stripUnderscorePrefix: true,\n });\n }\n\n const templateConfig = await getTemplateConfig(\n path.join(process.cwd(), destinationDir),\n );\n\n if (isCustomTemplate) {\n log.newline();\n log.warn(\n 'You may need to run',\n log.bold(\n configForPackageManager(templateConfig.packageManager).print.exec,\n 'skuba',\n 'configure',\n ),\n 'once this is done.',\n );\n }\n\n return templateConfig;\n};\n\nconst getTemplateName = async () => {\n const templateSelection = await TEMPLATE_PROMPT.run();\n\n if (templateSelection === 'github \u2192') {\n const gitHubPath = await GIT_PATH_PROMPT.run();\n return `github:${gitHubPath}`;\n }\n\n return templateSelection;\n};\n\nconst generatePlaceholders = (choices: FormChoice[]) =>\n Object.fromEntries(\n choices.map(({ name }) => [name, `<%- ${name} %>`] as const),\n );\n\nexport const getTemplateConfig = async (\n dir: string,\n): Promise<TemplateConfig> => {\n const templateConfigPath = path.join(dir, TEMPLATE_CONFIG_FILENAME);\n\n try {\n const templateModule = (await import(templateConfigPath)) as {\n default: unknown;\n };\n\n return templateConfigSchema.parse(templateModule.default);\n } catch (err) {\n if (isErrorWithCode(err, 'MODULE_NOT_FOUND')) {\n return {\n entryPoint: undefined,\n fields: [],\n packageManager: DEFAULT_PACKAGE_MANAGER,\n type: undefined,\n };\n }\n\n throw err;\n }\n};\n\nconst baseToTemplateData = async ({\n ownerName,\n platformName,\n repoName,\n defaultBranch,\n}: BaseFields) => {\n const [orgName, teamName] = ownerName.split('/');\n\n const port = String(await getRandomPort());\n\n if (!orgName) {\n throw new Error(`Invalid format for owner name: ${ownerName}`);\n }\n\n return {\n orgName,\n ownerName,\n repoName,\n defaultBranch,\n // Use standalone username in `teamName` contexts\n teamName: teamName ?? orgName,\n\n port,\n\n platformName,\n lambdaCdkArchitecture: platformName === 'amd64' ? 'X86_64' : 'ARM_64',\n lambdaServerlessArchitecture:\n platformName === 'amd64' ? 'x86_64' : platformName,\n };\n};\n\nexport const configureFromPrompt = async (): Promise<InitConfig> => {\n const { ownerName, platformName, repoName, defaultBranch } =\n await runForm<BaseFields>(BASE_PROMPT_PROPS);\n log.plain(chalk.cyan(repoName), 'by', chalk.cyan(ownerName));\n\n const templateData = await baseToTemplateData({\n ownerName,\n platformName,\n repoName,\n defaultBranch,\n });\n\n const destinationDir = repoName;\n\n await createDirectory(destinationDir);\n\n log.newline();\n const templateName = await getTemplateName();\n\n const { entryPoint, fields, noSkip, packageManager, type } =\n await cloneTemplate(templateName, destinationDir);\n\n if (fields.length === 0) {\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: true,\n templateData,\n templateName,\n type,\n };\n }\n\n const shouldContinue = noSkip ? true : await confirmShouldContinue(fields);\n\n if (shouldContinue) {\n log.newline();\n const customAnswers = await runForm({\n choices: fields,\n message: chalk.bold(`Complete ${chalk.cyan(templateName)}:`),\n name: 'customAnswers',\n });\n\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: true,\n templateData: { ...templateData, ...customAnswers },\n templateName,\n type,\n };\n }\n\n log.newline();\n log.warn(\n `Resume this later with ${chalk.bold(\n configForPackageManager(packageManager).print.exec,\n 'skuba configure',\n )}.`,\n );\n\n const customAnswers = generatePlaceholders(fields);\n\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: false,\n templateData: { ...templateData, ...customAnswers },\n templateName,\n type,\n };\n};\n\nexport const readJSONFromStdIn = async () => {\n let text = '';\n\n await new Promise((resolve) =>\n process.stdin\n .on('data', (chunk) => (text += chunk.toString()))\n .once('end', resolve),\n );\n\n text = text.trim();\n\n if (text === '') {\n log.err('No data from stdin.');\n process.exit(1);\n }\n\n let value: unknown;\n\n try {\n value = JSON.parse(text) as unknown;\n } catch {\n log.err('Invalid JSON from stdin.');\n process.exit(1);\n }\n\n return value;\n};\n\nconst configureFromPipe = async (): Promise<InitConfig> => {\n const value = await readJSONFromStdIn();\n\n const result = initConfigInputSchema.safeParse(value);\n\n if (!result.success) {\n log.err('Invalid data from stdin:');\n log.err(result.error);\n process.exit(1);\n }\n\n const { destinationDir, templateComplete, templateName } = result.data;\n\n const templateData = {\n ...(await baseToTemplateData(result.data.templateData)),\n ...result.data.templateData,\n };\n\n await createDirectory(destinationDir);\n\n const { entryPoint, fields, noSkip, packageManager, type } =\n await cloneTemplate(templateName, destinationDir);\n\n if (!templateComplete) {\n if (noSkip) {\n log.err('Templating for', log.bold(templateName), 'cannot be skipped.');\n process.exit(1);\n }\n\n return {\n ...result.data,\n entryPoint,\n packageManager,\n templateData: {\n ...templateData,\n ...generatePlaceholders(fields),\n },\n type,\n };\n }\n\n const required = fields.map(({ name }) => name);\n\n const provided = new Set(Object.keys(templateData));\n\n const missing = required.filter((name) => !provided.has(name));\n\n if (missing.length > 0) {\n log.err('This template uses the following information:');\n log.newline();\n missing.forEach((name) => log.err(`- ${name}`));\n process.exit(1);\n }\n\n return {\n ...result.data,\n entryPoint,\n packageManager,\n templateData,\n type,\n };\n};\n\nexport const getConfig = () =>\n process.stdin.isTTY ? configureFromPrompt() : configureFromPipe();\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AAEjB,OAAO,WAAW;AAClB,OAAO,cAAmC;AAC1C,OAAO,QAAQ;AAEf,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAChC,SAAS,WAAW;AACpB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAEP,SAAS,8BAA8B;AACvC;AAAA,EACE;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAA0B,6BAA6B;AAEhD,MAAM,UAAU,CAA6B,UAI9C;AACJ,QAAM,EAAE,SAAS,KAAK,IAAI;AAE1B,QAAM,UAAU,MAAM,QAAQ,IAAI,CAAC,YAAY;AAAA,IAC7C,GAAG;AAAA,IACH,UAAU,CAAC,UAA8B;AACvC,UACE,CAAC,SACD,UAAU,MACT,UAAU,OAAO,WAAW,CAAC,OAAO,cACrC;AACA,eAAO;AAAA,MACT;AAEA,aAAO,OAAO,WAAW,KAAK,KAAK;AAAA,IACrC;AAAA,EACF,EAAE;AAEF,QAAM,OAAO,IAAI,SAAS,KAAQ;AAAA,IAChC;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,OAAO,WAAW;AAC1B,YAAM,UAAU,MAAM,QAAQ;AAAA,QAC5B,QAAQ,IAAI,OAAO,WAAW,OAAO,SAAS,OAAO,OAAO,IAAI,CAAC,CAAC;AAAA,MACpE;AAEA,aACE,QAAQ,KAAK,CAAC,WAAW,OAAO,WAAW,QAAQ,KACnD,QAAQ,MAAM,CAAC,WAAW,WAAW,IAAI;AAAA,IAE7C;AAAA,EACF,CAAC;AAED,SAAO,KAAK,IAAI;AAClB;AAEA,MAAM,wBAAwB,OAAO,YAAmC;AACtE,QAAM,aAAa,QAAQ,IAAI,CAAC,WAAW,OAAO,OAAO;AAEzD,MAAI,QAAQ;AACZ,MAAI,MAAM,+CAA+C;AACzD,MAAI,QAAQ;AACZ,aAAW,QAAQ,CAAC,YAAY,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;AAE1D,MAAI,QAAQ;AACZ,QAAM,SAAS,MAAM,uBAAuB,IAAI;AAEhD,SAAO,WAAW;AACpB;AAEA,MAAM,kBAAkB,OAAO,QAAgB;AAC7C,MAAI;AACF,UAAM,GAAG,SAAS,MAAM,GAAG;AAAA,EAC7B,SAAS,KAAK;AACZ,QAAI,gBAAgB,KAAK,QAAQ,GAAG;AAClC,UAAI,IAAI,kBAAkB,GAAG,mBAAmB;AAChD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,UAAM;AAAA,EACR;AACF;AAEA,MAAM,gBAAgB,OACpB,cACA,mBAC4B;AAC5B,QAAM,mBAAmB,aAAa,WAAW,SAAS;AAE1D,MAAI,kBAAkB;AACpB,UAAM,aAAa,aAAa,MAAM,UAAU,MAAM;AAEtD,UAAM,uBAAuB,YAAY,cAAc;AAAA,EACzD,OAAO;AACL,UAAM,cAAc,KAAK,KAAK,cAAc,YAAY;AAExD,UAAM,UAAU;AAAA;AAAA,MAEd,SAAS,MAAM;AAAA,MACf,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,YAAY,CAAC;AAAA;AAAA,MAEb,uBAAuB;AAAA,IACzB,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiB,MAAM;AAAA,IAC3B,KAAK,KAAK,QAAQ,IAAI,GAAG,cAAc;AAAA,EACzC;AAEA,MAAI,kBAAkB;AACpB,QAAI,QAAQ;AACZ,QAAI;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,wBAAwB,eAAe,cAAc,EAAE,MAAM;AAAA,QAC7D;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,MAAM,kBAAkB,YAAY;AAClC,QAAM,oBAAoB,MAAM,gBAAgB,IAAI;AAEpD,MAAI,sBAAsB,iBAAY;AACpC,UAAM,aAAa,MAAM,gBAAgB,IAAI;AAC7C,WAAO,UAAU,UAAU;AAAA,EAC7B;AAEA,SAAO;AACT;AAEA,MAAM,uBAAuB,CAAC,YAC5B,OAAO;AAAA,EACL,QAAQ,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,OAAO,IAAI,KAAK,CAAU;AAC7D;AAEK,MAAM,oBAAoB,OAC/B,QAC4B;AAC5B,QAAM,qBAAqB,KAAK,KAAK,KAAK,wBAAwB;AAElE,MAAI;AACF,UAAM,iBAAkB,MAAM,OAAO;AAIrC,WAAO,qBAAqB,MAAM,eAAe,OAAO;AAAA,EAC1D,SAAS,KAAK;AACZ,QAAI,gBAAgB,KAAK,kBAAkB,GAAG;AAC5C,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ,CAAC;AAAA,QACT,gBAAgB;AAAA,QAChB,MAAM;AAAA,MACR;AAAA,IACF;AAEA,UAAM;AAAA,EACR;AACF;AAEA,MAAM,qBAAqB,OAAO;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAkB;AAChB,QAAM,CAAC,SAAS,QAAQ,IAAI,UAAU,MAAM,GAAG;AAE/C,QAAM,OAAO,OAAO,MAAM,cAAc,CAAC;AAEzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,kCAAkC,SAAS,EAAE;AAAA,EAC/D;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA,UAAU,YAAY;AAAA,IAEtB;AAAA,IAEA;AAAA,IACA,uBAAuB,iBAAiB,UAAU,WAAW;AAAA,IAC7D,8BACE,iBAAiB,UAAU,WAAW;AAAA,EAC1C;AACF;AAEO,MAAM,sBAAsB,YAAiC;AAClE,QAAM,EAAE,WAAW,cAAc,UAAU,cAAc,IACvD,MAAM,QAAoB,iBAAiB;AAC7C,MAAI,MAAM,MAAM,KAAK,QAAQ,GAAG,MAAM,MAAM,KAAK,SAAS,CAAC;AAE3D,QAAM,eAAe,MAAM,mBAAmB;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB;AAEvB,QAAM,gBAAgB,cAAc;AAEpC,MAAI,QAAQ;AACZ,QAAM,eAAe,MAAM,gBAAgB;AAE3C,QAAM,EAAE,YAAY,QAAQ,QAAQ,gBAAgB,KAAK,IACvD,MAAM,cAAc,cAAc,cAAc;AAElD,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB,SAAS,OAAO,MAAM,sBAAsB,MAAM;AAEzE,MAAI,gBAAgB;AAClB,QAAI,QAAQ;AACZ,UAAMA,iBAAgB,MAAM,QAAQ;AAAA,MAClC,SAAS;AAAA,MACT,SAAS,MAAM,KAAK,YAAY,MAAM,KAAK,YAAY,CAAC,GAAG;AAAA,MAC3D,MAAM;AAAA,IACR,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,cAAc,EAAE,GAAG,cAAc,GAAGA,eAAc;AAAA,MAClD;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ;AACZ,MAAI;AAAA,IACF,0BAA0B,MAAM;AAAA,MAC9B,wBAAwB,cAAc,EAAE,MAAM;AAAA,MAC9C;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,gBAAgB,qBAAqB,MAAM;AAEjD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,cAAc,EAAE,GAAG,cAAc,GAAG,cAAc;AAAA,IAClD;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,oBAAoB,YAAY;AAC3C,MAAI,OAAO;AAEX,QAAM,IAAI;AAAA,IAAQ,CAAC,YACjB,QAAQ,MACL,GAAG,QAAQ,CAAC,UAAW,QAAQ,MAAM,SAAS,CAAE,EAChD,KAAK,OAAO,OAAO;AAAA,EACxB;AAEA,SAAO,KAAK,KAAK;AAEjB,MAAI,SAAS,IAAI;AACf,QAAI,IAAI,qBAAqB;AAC7B,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI;AAEJ,MAAI;AACF,YAAQ,KAAK,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI,IAAI,0BAA0B;AAClC,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,MAAM,oBAAoB,YAAiC;AACzD,QAAM,QAAQ,MAAM,kBAAkB;AAEtC,QAAM,SAAS,sBAAsB,UAAU,KAAK;AAEpD,MAAI,CAAC,OAAO,SAAS;AACnB,QAAI,IAAI,0BAA0B;AAClC,QAAI,IAAI,OAAO,KAAK;AACpB,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,EAAE,gBAAgB,kBAAkB,aAAa,IAAI,OAAO;AAElE,QAAM,eAAe;AAAA,IACnB,GAAI,MAAM,mBAAmB,OAAO,KAAK,YAAY;AAAA,IACrD,GAAG,OAAO,KAAK;AAAA,EACjB;AAEA,QAAM,gBAAgB,cAAc;AAEpC,QAAM,EAAE,YAAY,QAAQ,QAAQ,gBAAgB,KAAK,IACvD,MAAM,cAAc,cAAc,cAAc;AAElD,MAAI,CAAC,kBAAkB;AACrB,QAAI,QAAQ;AACV,UAAI,IAAI,kBAAkB,IAAI,KAAK,YAAY,GAAG,oBAAoB;AACtE,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,WAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV;AAAA,MACA;AAAA,MACA,cAAc;AAAA,QACZ,GAAG;AAAA,QACH,GAAG,qBAAqB,MAAM;AAAA,MAChC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,WAAW,OAAO,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI;AAE9C,QAAM,WAAW,IAAI,IAAI,OAAO,KAAK,YAAY,CAAC;AAElD,QAAM,UAAU,SAAS,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC;AAE7D,MAAI,QAAQ,SAAS,GAAG;AACtB,QAAI,IAAI,+CAA+C;AACvD,QAAI,QAAQ;AACZ,YAAQ,QAAQ,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;AAC9C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,SAAO;AAAA,IACL,GAAG,OAAO;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,YAAY,MACvB,QAAQ,MAAM,QAAQ,oBAAoB,IAAI,kBAAkB;",
6
- "names": ["customAnswers"]
4
+ "sourcesContent": ["import { styleText } from 'node:util';\nimport path from 'path';\n\nimport { input } from '@inquirer/prompts';\nimport fs from 'fs-extra';\n\nimport { copyFiles } from '../../utils/copy.js';\nimport { isErrorWithCode } from '../../utils/error.js';\nimport { log } from '../../utils/logging.js';\nimport {\n DEFAULT_PACKAGE_MANAGER,\n configForPackageManager,\n} from '../../utils/packageManager.js';\nimport { getRandomPort } from '../../utils/port.js';\nimport {\n TEMPLATE_CONFIG_FILENAME,\n TEMPLATE_DIR,\n type TemplateConfig,\n templateConfigSchema,\n} from '../../utils/template.js';\n\nimport { downloadGitHubTemplate } from './git.js';\nimport {\n BASE_PROMPT_PROPS,\n type BaseFields,\n type Choice,\n getGitPath,\n getTemplateName,\n shouldContinue,\n} from './prompts.js';\nimport { type InitConfig, initConfigInputSchema } from './types.js';\n\nexport const runForm = async <T = Record<string, string>>(props: {\n choices: readonly Choice[];\n message: string;\n name: string;\n}): Promise<T> => {\n const { message } = props;\n log.plain(message);\n\n const result: Record<string, string> = {};\n\n for (const choice of props.choices) {\n const inputValue = await input({\n message: choice.message,\n default: choice.initial,\n validate: async (inputText: string) => {\n if (\n !inputText ||\n inputText === '' ||\n (inputText === choice.initial && !choice.allowInitial)\n ) {\n return 'Form is not complete';\n }\n\n return choice.validate?.(inputText) ?? true;\n },\n });\n\n result[choice.name] = inputValue;\n }\n\n return result as T;\n};\n\nconst confirmShouldContinue = async (choices: readonly Choice[]) => {\n const fieldsList = choices.map((choice) => choice.message);\n\n log.newline();\n log.plain('This template uses the following information:');\n log.newline();\n fieldsList.forEach((message) => log.subtle(`- ${message}`));\n\n log.newline();\n const result = await shouldContinue();\n\n return result === 'yes';\n};\n\nconst createDirectory = async (dir: string) => {\n try {\n await fs.promises.mkdir(dir);\n } catch (err) {\n if (isErrorWithCode(err, 'EEXIST')) {\n log.err(`The directory '${dir}' already exists.`);\n process.exit(1);\n }\n\n throw err;\n }\n};\n\nconst cloneTemplate = async (\n templateName: string,\n destinationDir: string,\n): Promise<TemplateConfig> => {\n const isCustomTemplate = templateName.startsWith('github:');\n\n if (isCustomTemplate) {\n const gitHubPath = templateName.slice('github:'.length);\n\n await downloadGitHubTemplate(gitHubPath, destinationDir);\n } else {\n const templateDir = path.join(TEMPLATE_DIR, templateName);\n\n await copyFiles({\n // assume built-in templates have no extraneous files\n include: () => true,\n sourceRoot: templateDir,\n destinationRoot: destinationDir,\n processors: [],\n // built-in templates have files like _package.json\n stripUnderscorePrefix: true,\n });\n }\n\n const templateConfig = getTemplateConfig(\n path.join(process.cwd(), destinationDir),\n );\n\n if (isCustomTemplate) {\n log.newline();\n log.warn(\n 'You may need to run',\n log.bold(\n `${configForPackageManager(templateConfig.packageManager).print.exec} skuba configure`,\n ),\n 'once this is done.',\n );\n }\n\n return templateConfig;\n};\n\nconst selectTemplateName = async () => {\n const templateSelection = await getTemplateName();\n\n if (templateSelection === 'github \u2192') {\n const gitHubPath = await getGitPath();\n return `github:${gitHubPath}`;\n }\n\n return templateSelection;\n};\n\nconst generatePlaceholders = (choices: Choice[]) =>\n Object.fromEntries(\n choices.map(({ name }) => [name, `<%- ${name} %>`] as const),\n );\n\nexport const getTemplateConfig = (dir: string): TemplateConfig => {\n const templateConfigPath = path.join(dir, TEMPLATE_CONFIG_FILENAME);\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const templateConfig = require(templateConfigPath) as unknown;\n\n return templateConfigSchema.parse(templateConfig);\n } catch (err) {\n if (isErrorWithCode(err, 'MODULE_NOT_FOUND')) {\n return {\n entryPoint: undefined,\n fields: [],\n packageManager: DEFAULT_PACKAGE_MANAGER,\n type: undefined,\n };\n }\n\n throw err;\n }\n};\n\nconst baseToTemplateData = async ({\n ownerName,\n platformName,\n repoName,\n defaultBranch,\n}: BaseFields) => {\n const [orgName, teamName] = ownerName.split('/');\n\n const port = String(await getRandomPort());\n\n if (!orgName) {\n throw new Error(`Invalid format for owner name: ${ownerName}`);\n }\n\n return {\n orgName,\n ownerName,\n repoName,\n defaultBranch,\n // Use standalone username in `teamName` contexts\n teamName: teamName ?? orgName,\n\n port,\n\n platformName,\n lambdaCdkArchitecture: platformName === 'amd64' ? 'X86_64' : 'ARM_64',\n lambdaServerlessArchitecture:\n platformName === 'amd64' ? 'x86_64' : platformName,\n };\n};\n\nexport const configureFromPrompt = async (): Promise<InitConfig> => {\n const { ownerName, platformName, repoName, defaultBranch } =\n await runForm<BaseFields>(BASE_PROMPT_PROPS);\n log.plain(styleText('cyan', repoName), 'by', styleText('cyan', ownerName));\n\n const templateData = await baseToTemplateData({\n ownerName,\n platformName,\n repoName,\n defaultBranch,\n });\n\n const destinationDir = repoName;\n\n await createDirectory(destinationDir);\n\n log.newline();\n const templateName = await selectTemplateName();\n\n const { entryPoint, fields, noSkip, packageManager, type } =\n await cloneTemplate(templateName, destinationDir);\n\n if (fields.length === 0) {\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: true,\n templateData,\n templateName,\n type,\n };\n }\n\n const shouldContinueWithTemplate = noSkip\n ? true\n : await confirmShouldContinue(fields);\n\n if (shouldContinueWithTemplate) {\n log.newline();\n const customAnswers = await runForm({\n choices: fields,\n message: styleText(\n 'bold',\n `Complete ${styleText('cyan', templateName)}:`,\n ),\n name: 'customAnswers',\n });\n\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: true,\n templateData: { ...templateData, ...customAnswers },\n templateName,\n type,\n };\n }\n\n log.newline();\n log.warn(\n `Resume this later with ${styleText('bold', `${configForPackageManager(packageManager).print.exec} skuba configure`)}.`,\n );\n\n const customAnswers = generatePlaceholders(fields);\n\n return {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete: false,\n templateData: { ...templateData, ...customAnswers },\n templateName,\n type,\n };\n};\n\nexport const readJSONFromStdIn = async () => {\n let text = '';\n\n await new Promise((resolve) =>\n process.stdin\n .on('data', (chunk) => (text += chunk.toString()))\n .once('end', resolve),\n );\n\n text = text.trim();\n\n if (text === '') {\n log.err('No data from stdin.');\n process.exit(1);\n }\n\n let value: unknown;\n\n try {\n value = JSON.parse(text) as unknown;\n } catch {\n log.err('Invalid JSON from stdin.');\n process.exit(1);\n }\n\n return value;\n};\n\nconst configureFromPipe = async (): Promise<InitConfig> => {\n const value = await readJSONFromStdIn();\n\n const result = initConfigInputSchema.safeParse(value);\n\n if (!result.success) {\n log.err('Invalid data from stdin:');\n log.err(result.error);\n process.exit(1);\n }\n\n const { destinationDir, templateComplete, templateName } = result.data;\n\n const templateData = {\n ...(await baseToTemplateData(result.data.templateData)),\n ...result.data.templateData,\n };\n\n await createDirectory(destinationDir);\n\n const { entryPoint, fields, noSkip, packageManager, type } =\n await cloneTemplate(templateName, destinationDir);\n\n if (!templateComplete) {\n if (noSkip) {\n log.err('Templating for', log.bold(templateName), 'cannot be skipped.');\n process.exit(1);\n }\n\n return {\n ...result.data,\n entryPoint,\n packageManager,\n templateData: {\n ...templateData,\n ...generatePlaceholders(fields),\n },\n type,\n };\n }\n\n const required = fields.map(({ name }) => name);\n\n const provided = new Set(Object.keys(templateData));\n\n const missing = required.filter((name) => !provided.has(name));\n\n if (missing.length > 0) {\n log.err('This template uses the following information:');\n log.newline();\n missing.forEach((name) => log.err(`- ${name}`));\n process.exit(1);\n }\n\n return {\n ...result.data,\n entryPoint,\n packageManager,\n templateData,\n type,\n };\n};\n\nexport const getConfig = () =>\n process.stdin.isTTY ? configureFromPrompt() : configureFromPipe();\n"],
5
+ "mappings": "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",
6
+ "names": ["import_prompts", "fs", "path", "customAnswers"]
7
7
  }
@@ -1,40 +1,75 @@
1
- import path from "path";
2
- import fs from "fs-extra";
3
- import git from "isomorphic-git";
4
- import { simpleGit } from "simple-git";
5
- import { log } from "../../utils/logging.js";
6
- import * as Git from "@skuba-lib/api/git";
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var git_exports = {};
30
+ __export(git_exports, {
31
+ downloadGitHubTemplate: () => downloadGitHubTemplate,
32
+ initialiseRepo: () => initialiseRepo
33
+ });
34
+ module.exports = __toCommonJS(git_exports);
35
+ var import_path = __toESM(require("path"));
36
+ var import_fs_extra = __toESM(require("fs-extra"));
37
+ var import_isomorphic_git = __toESM(require("isomorphic-git"));
38
+ var import_simple_git = require("simple-git");
39
+ var import_logging = require("../../utils/logging.js");
40
+ var Git = __toESM(require("@skuba-lib/api/git"));
7
41
  const initialiseRepo = async (dir, { orgName, repoName, defaultBranch }) => {
8
- await git.init({
42
+ await import_isomorphic_git.default.init({
9
43
  defaultBranch,
10
44
  dir,
11
- fs
45
+ fs: import_fs_extra.default
12
46
  });
13
47
  await Git.commit({
14
48
  dir,
15
49
  message: "Initial commit"
16
50
  });
17
- await git.addRemote({
51
+ await import_isomorphic_git.default.addRemote({
18
52
  dir,
19
- fs,
53
+ fs: import_fs_extra.default,
20
54
  remote: "origin",
21
55
  url: `git@github.com:${orgName}/${repoName}.git`
22
56
  });
23
57
  };
24
58
  const downloadGitHubTemplate = async (gitHubPath, destinationDir) => {
25
- log.newline();
26
- log.plain("Downloading", log.bold(gitHubPath), "from GitHub...");
27
- await simpleGit().clone(`git@github.com:${gitHubPath}.git`, destinationDir, [
59
+ import_logging.log.newline();
60
+ import_logging.log.plain("Downloading", import_logging.log.bold(gitHubPath), "from GitHub...");
61
+ await (0, import_simple_git.simpleGit)().clone(`git@github.com:${gitHubPath}.git`, destinationDir, [
28
62
  "--depth=1",
29
63
  "--quiet"
30
64
  ]);
31
- await fs.promises.rm(path.join(destinationDir, ".git"), {
65
+ await import_fs_extra.default.promises.rm(import_path.default.join(destinationDir, ".git"), {
32
66
  force: true,
33
67
  recursive: true
34
68
  });
35
69
  };
36
- export {
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
37
72
  downloadGitHubTemplate,
38
73
  initialiseRepo
39
- };
74
+ });
40
75
  //# sourceMappingURL=git.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/init/git.ts"],
4
4
  "sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport git from 'isomorphic-git';\nimport { simpleGit } from 'simple-git';\n\nimport { log } from '../../utils/logging.js';\n\nimport * as Git from '@skuba-lib/api/git';\n\ninterface GitHubProject {\n orgName: string;\n repoName: string;\n defaultBranch: string;\n}\n\nexport const initialiseRepo = async (\n dir: string,\n { orgName, repoName, defaultBranch }: GitHubProject,\n) => {\n await git.init({\n defaultBranch,\n dir,\n fs,\n });\n\n await Git.commit({\n dir,\n message: 'Initial commit',\n });\n\n await git.addRemote({\n dir,\n fs,\n remote: 'origin',\n url: `git@github.com:${orgName}/${repoName}.git`,\n });\n};\n\nexport const downloadGitHubTemplate = async (\n gitHubPath: string,\n destinationDir: string,\n) => {\n log.newline();\n log.plain('Downloading', log.bold(gitHubPath), 'from GitHub...');\n\n await simpleGit().clone(`git@github.com:${gitHubPath}.git`, destinationDir, [\n '--depth=1',\n '--quiet',\n ]);\n\n await fs.promises.rm(path.join(destinationDir, '.git'), {\n force: true,\n recursive: true,\n });\n};\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AAEjB,OAAO,QAAQ;AACf,OAAO,SAAS;AAChB,SAAS,iBAAiB;AAE1B,SAAS,WAAW;AAEpB,YAAY,SAAS;AAQd,MAAM,iBAAiB,OAC5B,KACA,EAAE,SAAS,UAAU,cAAc,MAChC;AACH,QAAM,IAAI,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,IAAI,OAAO;AAAA,IACf;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AAED,QAAM,IAAI,UAAU;AAAA,IAClB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,KAAK,kBAAkB,OAAO,IAAI,QAAQ;AAAA,EAC5C,CAAC;AACH;AAEO,MAAM,yBAAyB,OACpC,YACA,mBACG;AACH,MAAI,QAAQ;AACZ,MAAI,MAAM,eAAe,IAAI,KAAK,UAAU,GAAG,gBAAgB;AAE/D,QAAM,UAAU,EAAE,MAAM,kBAAkB,UAAU,QAAQ,gBAAgB;AAAA,IAC1E;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,GAAG,SAAS,GAAG,KAAK,KAAK,gBAAgB,MAAM,GAAG;AAAA,IACtD,OAAO;AAAA,IACP,WAAW;AAAA,EACb,CAAC;AACH;",
6
- "names": []
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,sBAAe;AACf,4BAAgB;AAChB,wBAA0B;AAE1B,qBAAoB;AAEpB,UAAqB;AAQd,MAAM,iBAAiB,OAC5B,KACA,EAAE,SAAS,UAAU,cAAc,MAChC;AACH,QAAM,sBAAAA,QAAI,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA,oBAAAC;AAAA,EACF,CAAC;AAED,QAAM,IAAI,OAAO;AAAA,IACf;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AAED,QAAM,sBAAAD,QAAI,UAAU;AAAA,IAClB;AAAA,IACA,oBAAAC;AAAA,IACA,QAAQ;AAAA,IACR,KAAK,kBAAkB,OAAO,IAAI,QAAQ;AAAA,EAC5C,CAAC;AACH;AAEO,MAAM,yBAAyB,OACpC,YACA,mBACG;AACH,qBAAI,QAAQ;AACZ,qBAAI,MAAM,eAAe,mBAAI,KAAK,UAAU,GAAG,gBAAgB;AAE/D,YAAM,6BAAU,EAAE,MAAM,kBAAkB,UAAU,QAAQ,gBAAgB;AAAA,IAC1E;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,gBAAAA,QAAG,SAAS,GAAG,YAAAC,QAAK,KAAK,gBAAgB,MAAM,GAAG;AAAA,IACtD,OAAO;AAAA,IACP,WAAW;AAAA,EACb,CAAC;AACH;",
6
+ "names": ["git", "fs", "path"]
7
7
  }
@@ -1,28 +1,58 @@
1
- import path from "path";
2
- import { inspect } from "util";
3
- import { hasDebugFlag } from "../../utils/args.js";
4
- import { copyFiles, createEjsRenderer } from "../../utils/copy.js";
5
- import { createInclusionFilter } from "../../utils/dir.js";
6
- import { createExec, ensureCommands } from "../../utils/exec.js";
7
- import { createLogger, log } from "../../utils/logging.js";
8
- import { showLogoAndVersionInfo } from "../../utils/logo.js";
9
- import { getConsumerManifest } from "../../utils/manifest.js";
10
- import { detectPackageManager } from "../../utils/packageManager.js";
11
- import {
12
- BASE_TEMPLATE_DIR,
13
- ensureTemplateConfigDeletion
14
- } from "../../utils/template.js";
15
- import { runPrettier } from "../adapter/prettier.js";
16
- import { tryPatchRenovateConfig } from "../lint/internalLints/patchRenovateConfig.js";
17
- import { getConfig } from "./getConfig.js";
18
- import { initialiseRepo } from "./git.js";
19
- import { writePackageJson } from "./writePackageJson.js";
20
- import * as Git from "@skuba-lib/api/git";
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var init_exports = {};
30
+ __export(init_exports, {
31
+ init: () => init
32
+ });
33
+ module.exports = __toCommonJS(init_exports);
34
+ var import_path = __toESM(require("path"));
35
+ var import_util = require("util");
36
+ var import_args = require("../../utils/args.js");
37
+ var import_copy = require("../../utils/copy.js");
38
+ var import_dir = require("../../utils/dir.js");
39
+ var import_exec = require("../../utils/exec.js");
40
+ var import_logging = require("../../utils/logging.js");
41
+ var import_logo = require("../../utils/logo.js");
42
+ var import_manifest = require("../../utils/manifest.js");
43
+ var import_packageManager = require("../../utils/packageManager.js");
44
+ var import_template = require("../../utils/template.js");
45
+ var import_prettier = require("../adapter/prettier.js");
46
+ var import_patchRenovateConfig = require("../lint/internalLints/patchRenovateConfig.js");
47
+ var import_getConfig = require("./getConfig.js");
48
+ var import_git = require("./git.js");
49
+ var import_writePackageJson = require("./writePackageJson.js");
50
+ var Git = __toESM(require("@skuba-lib/api/git"));
21
51
  const init = async (args = process.argv.slice(2)) => {
22
52
  const opts = {
23
- debug: hasDebugFlag(args)
53
+ debug: (0, import_args.hasDebugFlag)(args)
24
54
  };
25
- const skubaVersionInfo = await showLogoAndVersionInfo();
55
+ const skubaVersionInfo = await (0, import_logo.showLogoAndVersionInfo)();
26
56
  const {
27
57
  destinationDir,
28
58
  entryPoint,
@@ -31,15 +61,15 @@ const init = async (args = process.argv.slice(2)) => {
31
61
  templateData,
32
62
  templateName,
33
63
  type
34
- } = await getConfig();
35
- await ensureCommands(packageManager);
36
- const include = await createInclusionFilter([
37
- path.join(destinationDir, ".gitignore"),
38
- path.join(BASE_TEMPLATE_DIR, "_.gitignore")
64
+ } = await (0, import_getConfig.getConfig)();
65
+ await (0, import_exec.ensureCommands)(packageManager);
66
+ const include = await (0, import_dir.createInclusionFilter)([
67
+ import_path.default.join(destinationDir, ".gitignore"),
68
+ import_path.default.join(import_template.BASE_TEMPLATE_DIR, "_.gitignore")
39
69
  ]);
40
- const processors = [createEjsRenderer(templateData)];
41
- await copyFiles({
42
- sourceRoot: BASE_TEMPLATE_DIR,
70
+ const processors = [(0, import_copy.createEjsRenderer)(templateData)];
71
+ await (0, import_copy.copyFiles)({
72
+ sourceRoot: import_template.BASE_TEMPLATE_DIR,
43
73
  destinationRoot: destinationDir,
44
74
  include,
45
75
  // prefer template-specific files
@@ -48,15 +78,15 @@ const init = async (args = process.argv.slice(2)) => {
48
78
  // base template has files like _eslint.config.js
49
79
  stripUnderscorePrefix: true
50
80
  });
51
- await copyFiles({
81
+ await (0, import_copy.copyFiles)({
52
82
  sourceRoot: destinationDir,
53
83
  destinationRoot: destinationDir,
54
84
  include,
55
85
  processors
56
86
  });
57
87
  await Promise.all([
58
- templateComplete ? ensureTemplateConfigDeletion(destinationDir) : Promise.resolve(),
59
- writePackageJson({
88
+ templateComplete ? (0, import_template.ensureTemplateConfigDeletion)(destinationDir) : Promise.resolve(),
89
+ (0, import_writePackageJson.writePackageJson)({
60
90
  cwd: destinationDir,
61
91
  entryPoint,
62
92
  template: templateName,
@@ -64,21 +94,21 @@ const init = async (args = process.argv.slice(2)) => {
64
94
  version: skubaVersionInfo.local
65
95
  })
66
96
  ]);
67
- const exec = createExec({
97
+ const exec = (0, import_exec.createExec)({
68
98
  cwd: destinationDir,
69
99
  stdio: "pipe",
70
100
  streamStdio: packageManager
71
101
  });
72
- log.newline();
73
- await initialiseRepo(destinationDir, templateData);
102
+ import_logging.log.newline();
103
+ await (0, import_git.initialiseRepo)(destinationDir, templateData);
74
104
  const [manifest, packageManagerConfig] = await Promise.all([
75
- getConsumerManifest(destinationDir),
76
- detectPackageManager(destinationDir)
105
+ (0, import_manifest.getConsumerManifest)(destinationDir),
106
+ (0, import_packageManager.detectPackageManager)(destinationDir)
77
107
  ]);
78
108
  if (!manifest) {
79
109
  throw new Error("Repository doesn't contain a package.json file.");
80
110
  }
81
- await tryPatchRenovateConfig({
111
+ await (0, import_patchRenovateConfig.tryPatchRenovateConfig)({
82
112
  mode: "format",
83
113
  dir: destinationDir,
84
114
  manifest,
@@ -88,55 +118,56 @@ const init = async (args = process.argv.slice(2)) => {
88
118
  let depsInstalled = false;
89
119
  try {
90
120
  await exec(packageManager, "add", "-D", skubaSlug);
91
- await runPrettier(
121
+ await (0, import_prettier.runPrettier)(
92
122
  "format",
93
- createLogger({ debug: opts.debug }),
123
+ (0, import_logging.createLogger)({ debug: opts.debug }),
94
124
  destinationDir
95
125
  );
96
126
  depsInstalled = true;
97
127
  } catch (err) {
98
- log.warn(inspect(err));
128
+ import_logging.log.warn((0, import_util.inspect)(err));
99
129
  }
100
130
  await Git.commitAllChanges({
101
131
  dir: destinationDir,
102
132
  message: `Clone ${templateName}`
103
133
  });
104
134
  const logGitHubRepoCreation = () => {
105
- log.plain(
135
+ import_logging.log.plain(
106
136
  "Next, create an empty",
107
- log.bold(`${templateData.orgName}/${templateData.repoName}`),
137
+ import_logging.log.bold(`${templateData.orgName}/${templateData.repoName}`),
108
138
  "repository:"
109
139
  );
110
- log.ok("https://github.com/new");
140
+ import_logging.log.ok("https://github.com/new");
111
141
  };
112
142
  if (!depsInstalled) {
113
- log.newline();
114
- log.warn(log.bold("\u2717 Failed to install dependencies."));
115
- log.newline();
143
+ import_logging.log.newline();
144
+ import_logging.log.warn(import_logging.log.bold("\u2717 Failed to install dependencies."));
145
+ import_logging.log.newline();
116
146
  logGitHubRepoCreation();
117
- log.newline();
118
- log.plain("Then, resume initialisation:");
119
- log.ok("cd", destinationDir);
120
- log.ok(packageManager, "add", "-D", skubaSlug);
121
- log.ok(packageManager, "run", "format");
122
- log.ok("git add --all");
123
- log.ok("git commit --message", `'Pin ${skubaSlug}'`);
124
- log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);
125
- log.newline();
147
+ import_logging.log.newline();
148
+ import_logging.log.plain("Then, resume initialisation:");
149
+ import_logging.log.ok("cd", destinationDir);
150
+ import_logging.log.ok(packageManager, "add", "-D", skubaSlug);
151
+ import_logging.log.ok(packageManager, "run", "format");
152
+ import_logging.log.ok("git add --all");
153
+ import_logging.log.ok("git commit --message", `'Pin ${skubaSlug}'`);
154
+ import_logging.log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);
155
+ import_logging.log.newline();
126
156
  process.exitCode = 1;
127
157
  return;
128
158
  }
129
- log.newline();
130
- log.ok(log.bold("\u2714 Project initialised!"));
131
- log.newline();
159
+ import_logging.log.newline();
160
+ import_logging.log.ok(import_logging.log.bold("\u2714 Project initialised!"));
161
+ import_logging.log.newline();
132
162
  logGitHubRepoCreation();
133
- log.newline();
134
- log.plain("Then, push your local changes:");
135
- log.ok("cd", destinationDir);
136
- log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);
137
- log.newline();
163
+ import_logging.log.newline();
164
+ import_logging.log.plain("Then, push your local changes:");
165
+ import_logging.log.ok("cd", destinationDir);
166
+ import_logging.log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);
167
+ import_logging.log.newline();
138
168
  };
139
- export {
169
+ // Annotate the CommonJS export names for ESM import in node:
170
+ 0 && (module.exports = {
140
171
  init
141
- };
172
+ });
142
173
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/init/index.ts"],
4
4
  "sourcesContent": ["import path from 'path';\nimport { inspect } from 'util';\n\nimport { hasDebugFlag } from '../../utils/args.js';\nimport { copyFiles, createEjsRenderer } from '../../utils/copy.js';\nimport { createInclusionFilter } from '../../utils/dir.js';\nimport { createExec, ensureCommands } from '../../utils/exec.js';\nimport { createLogger, log } from '../../utils/logging.js';\nimport { showLogoAndVersionInfo } from '../../utils/logo.js';\nimport { getConsumerManifest } from '../../utils/manifest.js';\nimport { detectPackageManager } from '../../utils/packageManager.js';\nimport {\n BASE_TEMPLATE_DIR,\n ensureTemplateConfigDeletion,\n} from '../../utils/template.js';\nimport { runPrettier } from '../adapter/prettier.js';\nimport { tryPatchRenovateConfig } from '../lint/internalLints/patchRenovateConfig.js';\n\nimport { getConfig } from './getConfig.js';\nimport { initialiseRepo } from './git.js';\nimport type { Input } from './types.js';\nimport { writePackageJson } from './writePackageJson.js';\n\nimport * as Git from '@skuba-lib/api/git';\n\nexport const init = async (args = process.argv.slice(2)) => {\n const opts: Input = {\n debug: hasDebugFlag(args),\n };\n\n const skubaVersionInfo = await showLogoAndVersionInfo();\n\n const {\n destinationDir,\n entryPoint,\n packageManager,\n templateComplete,\n templateData,\n templateName,\n type,\n } = await getConfig();\n\n await ensureCommands(packageManager);\n\n const include = await createInclusionFilter([\n path.join(destinationDir, '.gitignore'),\n path.join(BASE_TEMPLATE_DIR, '_.gitignore'),\n ]);\n\n const processors = [createEjsRenderer(templateData)];\n\n await copyFiles({\n sourceRoot: BASE_TEMPLATE_DIR,\n destinationRoot: destinationDir,\n include,\n // prefer template-specific files\n overwrite: false,\n processors,\n // base template has files like _eslint.config.js\n stripUnderscorePrefix: true,\n });\n\n await copyFiles({\n sourceRoot: destinationDir,\n destinationRoot: destinationDir,\n include,\n processors,\n });\n\n await Promise.all([\n templateComplete\n ? ensureTemplateConfigDeletion(destinationDir)\n : Promise.resolve(),\n\n writePackageJson({\n cwd: destinationDir,\n entryPoint,\n template: templateName,\n type,\n version: skubaVersionInfo.local,\n }),\n ]);\n\n const exec = createExec({\n cwd: destinationDir,\n stdio: 'pipe',\n streamStdio: packageManager,\n });\n\n log.newline();\n await initialiseRepo(destinationDir, templateData);\n\n const [manifest, packageManagerConfig] = await Promise.all([\n getConsumerManifest(destinationDir),\n detectPackageManager(destinationDir),\n ]);\n\n if (!manifest) {\n throw new Error(\"Repository doesn't contain a package.json file.\");\n }\n\n // Patch in a baseline Renovate preset based on the configured Git owner.\n await tryPatchRenovateConfig({\n mode: 'format',\n dir: destinationDir,\n manifest,\n packageManager: packageManagerConfig,\n });\n\n const skubaSlug = `skuba@${skubaVersionInfo.local}`;\n\n let depsInstalled = false;\n try {\n // The `-D` shorthand is portable across our package managers.\n await exec(packageManager, 'add', '-D', skubaSlug);\n\n // Templating can initially leave certain files in an unformatted state;\n // consider a Markdown table with columns sized based on content length.\n await runPrettier(\n 'format',\n createLogger({ debug: opts.debug }),\n destinationDir,\n );\n\n depsInstalled = true;\n } catch (err) {\n log.warn(inspect(err));\n }\n\n await Git.commitAllChanges({\n dir: destinationDir,\n message: `Clone ${templateName}`,\n });\n\n const logGitHubRepoCreation = () => {\n log.plain(\n 'Next, create an empty',\n log.bold(`${templateData.orgName}/${templateData.repoName}`),\n 'repository:',\n );\n log.ok('https://github.com/new');\n };\n\n if (!depsInstalled) {\n log.newline();\n log.warn(log.bold('\u2717 Failed to install dependencies.'));\n\n log.newline();\n logGitHubRepoCreation();\n\n log.newline();\n log.plain('Then, resume initialisation:');\n log.ok('cd', destinationDir);\n // The `-D` shorthand is portable across our package managers.\n log.ok(packageManager, 'add', '-D', skubaSlug);\n log.ok(packageManager, 'run', 'format');\n log.ok('git add --all');\n log.ok('git commit --message', `'Pin ${skubaSlug}'`);\n log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);\n\n log.newline();\n process.exitCode = 1;\n return;\n }\n\n log.newline();\n log.ok(log.bold('\u2714 Project initialised!'));\n\n log.newline();\n logGitHubRepoCreation();\n\n log.newline();\n log.plain('Then, push your local changes:');\n log.ok('cd', destinationDir);\n log.ok(`git push --set-upstream origin ${templateData.defaultBranch}`);\n\n log.newline();\n};\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,eAAe;AAExB,SAAS,oBAAoB;AAC7B,SAAS,WAAW,yBAAyB;AAC7C,SAAS,6BAA6B;AACtC,SAAS,YAAY,sBAAsB;AAC3C,SAAS,cAAc,WAAW;AAClC,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AAEvC,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAE/B,SAAS,wBAAwB;AAEjC,YAAY,SAAS;AAEd,MAAM,OAAO,OAAO,OAAO,QAAQ,KAAK,MAAM,CAAC,MAAM;AAC1D,QAAM,OAAc;AAAA,IAClB,OAAO,aAAa,IAAI;AAAA,EAC1B;AAEA,QAAM,mBAAmB,MAAM,uBAAuB;AAEtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,MAAM,UAAU;AAEpB,QAAM,eAAe,cAAc;AAEnC,QAAM,UAAU,MAAM,sBAAsB;AAAA,IAC1C,KAAK,KAAK,gBAAgB,YAAY;AAAA,IACtC,KAAK,KAAK,mBAAmB,aAAa;AAAA,EAC5C,CAAC;AAED,QAAM,aAAa,CAAC,kBAAkB,YAAY,CAAC;AAEnD,QAAM,UAAU;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB;AAAA;AAAA,IAEA,WAAW;AAAA,IACX;AAAA;AAAA,IAEA,uBAAuB;AAAA,EACzB,CAAC;AAED,QAAM,UAAU;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,QAAQ,IAAI;AAAA,IAChB,mBACI,6BAA6B,cAAc,IAC3C,QAAQ,QAAQ;AAAA,IAEpB,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA,SAAS,iBAAiB;AAAA,IAC5B,CAAC;AAAA,EACH,CAAC;AAED,QAAM,OAAO,WAAW;AAAA,IACtB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EACf,CAAC;AAED,MAAI,QAAQ;AACZ,QAAM,eAAe,gBAAgB,YAAY;AAEjD,QAAM,CAAC,UAAU,oBAAoB,IAAI,MAAM,QAAQ,IAAI;AAAA,IACzD,oBAAoB,cAAc;AAAA,IAClC,qBAAqB,cAAc;AAAA,EACrC,CAAC;AAED,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AAGA,QAAM,uBAAuB;AAAA,IAC3B,MAAM;AAAA,IACN,KAAK;AAAA,IACL;AAAA,IACA,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,YAAY,SAAS,iBAAiB,KAAK;AAEjD,MAAI,gBAAgB;AACpB,MAAI;AAEF,UAAM,KAAK,gBAAgB,OAAO,MAAM,SAAS;AAIjD,UAAM;AAAA,MACJ;AAAA,MACA,aAAa,EAAE,OAAO,KAAK,MAAM,CAAC;AAAA,MAClC;AAAA,IACF;AAEA,oBAAgB;AAAA,EAClB,SAAS,KAAK;AACZ,QAAI,KAAK,QAAQ,GAAG,CAAC;AAAA,EACvB;AAEA,QAAM,IAAI,iBAAiB;AAAA,IACzB,KAAK;AAAA,IACL,SAAS,SAAS,YAAY;AAAA,EAChC,CAAC;AAED,QAAM,wBAAwB,MAAM;AAClC,QAAI;AAAA,MACF;AAAA,MACA,IAAI,KAAK,GAAG,aAAa,OAAO,IAAI,aAAa,QAAQ,EAAE;AAAA,MAC3D;AAAA,IACF;AACA,QAAI,GAAG,wBAAwB;AAAA,EACjC;AAEA,MAAI,CAAC,eAAe;AAClB,QAAI,QAAQ;AACZ,QAAI,KAAK,IAAI,KAAK,wCAAmC,CAAC;AAEtD,QAAI,QAAQ;AACZ,0BAAsB;AAEtB,QAAI,QAAQ;AACZ,QAAI,MAAM,8BAA8B;AACxC,QAAI,GAAG,MAAM,cAAc;AAE3B,QAAI,GAAG,gBAAgB,OAAO,MAAM,SAAS;AAC7C,QAAI,GAAG,gBAAgB,OAAO,QAAQ;AACtC,QAAI,GAAG,eAAe;AACtB,QAAI,GAAG,wBAAwB,QAAQ,SAAS,GAAG;AACnD,QAAI,GAAG,kCAAkC,aAAa,aAAa,EAAE;AAErE,QAAI,QAAQ;AACZ,YAAQ,WAAW;AACnB;AAAA,EACF;AAEA,MAAI,QAAQ;AACZ,MAAI,GAAG,IAAI,KAAK,6BAAwB,CAAC;AAEzC,MAAI,QAAQ;AACZ,wBAAsB;AAEtB,MAAI,QAAQ;AACZ,MAAI,MAAM,gCAAgC;AAC1C,MAAI,GAAG,MAAM,cAAc;AAC3B,MAAI,GAAG,kCAAkC,aAAa,aAAa,EAAE;AAErE,MAAI,QAAQ;AACd;",
6
- "names": []
5
+ "mappings": "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",
6
+ "names": ["path"]
7
7
  }
@@ -1,13 +1,16 @@
1
- import enquirer, { type FormChoice } from 'enquirer';
2
1
  import { type Platform } from './validation.js';
3
- export type Choice = FormChoice & {
2
+ export interface Choice {
3
+ name: string;
4
+ message: string;
5
+ initial?: string;
6
+ validate?: (value: string) => boolean | string | Promise<boolean | string>;
4
7
  /**
5
8
  * Whether the user is allowed to skip field entry and use the initial value.
6
9
  *
7
10
  * Defaults to `false`.
8
11
  */
9
12
  allowInitial?: boolean;
10
- };
13
+ }
11
14
  export type BaseFields = Record<(typeof BASE_CHOICES)[number]['name'], string> & {
12
15
  platformName: Platform;
13
16
  };
@@ -15,7 +18,7 @@ declare const BASE_CHOICES: readonly [{
15
18
  readonly name: "ownerName";
16
19
  readonly message: "Owner";
17
20
  readonly initial: "SEEK-Jobs/my-team";
18
- readonly validate: (value: unknown) => true | "required" | "fails GitHub validation";
21
+ readonly validate: (value: unknown) => true | "Required" | "Must contain a valid GitHub org name" | "Must contain a valid GitHub team name";
19
22
  }, {
20
23
  readonly name: "repoName";
21
24
  readonly message: "Repo";
@@ -32,14 +35,14 @@ declare const BASE_CHOICES: readonly [{
32
35
  readonly message: "Default Branch";
33
36
  readonly initial: "main";
34
37
  readonly allowInitial: true;
35
- readonly validate: (value: unknown) => true | "required";
38
+ readonly validate: (value: unknown) => true | "Required";
36
39
  }];
37
40
  export declare const BASE_PROMPT_PROPS: {
38
41
  choices: readonly [{
39
42
  readonly name: "ownerName";
40
43
  readonly message: "Owner";
41
44
  readonly initial: "SEEK-Jobs/my-team";
42
- readonly validate: (value: unknown) => true | "required" | "fails GitHub validation";
45
+ readonly validate: (value: unknown) => true | "Required" | "Must contain a valid GitHub org name" | "Must contain a valid GitHub team name";
43
46
  }, {
44
47
  readonly name: "repoName";
45
48
  readonly message: "Repo";
@@ -56,12 +59,12 @@ export declare const BASE_PROMPT_PROPS: {
56
59
  readonly message: "Default Branch";
57
60
  readonly initial: "main";
58
61
  readonly allowInitial: true;
59
- readonly validate: (value: unknown) => true | "required";
62
+ readonly validate: (value: unknown) => true | "Required";
60
63
  }];
61
64
  message: string;
62
65
  name: string;
63
66
  };
64
- export declare const SHOULD_CONTINUE_PROMPT: enquirer.Select<"yes" | "no">;
65
- export declare const GIT_PATH_PROMPT: enquirer.Input;
66
- export declare const TEMPLATE_PROMPT: enquirer.Select<"express-rest-api" | "greeter" | "koa-rest-api" | "lambda-sqs-worker-cdk" | "oss-npm-package" | "private-npm-package" | "github →">;
67
+ export declare const shouldContinue: () => Promise<string>;
68
+ export declare const getGitPath: () => Promise<string>;
69
+ export declare const getTemplateName: () => Promise<"express-rest-api" | "greeter" | "koa-rest-api" | "lambda-sqs-worker-cdk" | "oss-npm-package" | "private-npm-package" | "github →">;
67
70
  export {};