skuba 14.0.0-replace-global-vars-20251121010036 → 14.0.0-rfc-upgrade-on-test-20251217012156

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 (409) hide show
  1. package/config/eslint.js +1 -1
  2. package/config/jest.js +1 -0
  3. package/config/prettier.d.ts +4 -8
  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 +2 -2
  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/cli/build/assets.js +60 -28
  19. package/lib/cli/build/assets.js.map +2 -2
  20. package/lib/cli/build/esbuild.js +45 -21
  21. package/lib/cli/build/esbuild.js.map +2 -2
  22. package/lib/cli/build/index.js +45 -21
  23. package/lib/cli/build/index.js.map +1 -1
  24. package/lib/cli/build/tsc.js +59 -22
  25. package/lib/cli/build/tsc.js.map +2 -2
  26. package/lib/cli/buildPackage/index.js +32 -8
  27. package/lib/cli/buildPackage/index.js.map +1 -1
  28. package/lib/cli/configure/analyseConfiguration.js +50 -16
  29. package/lib/cli/configure/analyseConfiguration.js.map +2 -2
  30. package/lib/cli/configure/analyseDependencies.d.ts +1 -1
  31. package/lib/cli/configure/analyseDependencies.js +59 -25
  32. package/lib/cli/configure/analyseDependencies.js.map +3 -3
  33. package/lib/cli/configure/analysis/diff.js +29 -5
  34. package/lib/cli/configure/analysis/diff.js.map +1 -1
  35. package/lib/cli/configure/analysis/files.js +42 -8
  36. package/lib/cli/configure/analysis/files.js.map +2 -2
  37. package/lib/cli/configure/analysis/git.js +46 -12
  38. package/lib/cli/configure/analysis/git.js.map +2 -2
  39. package/lib/cli/configure/analysis/package.d.ts +3 -2
  40. package/lib/cli/configure/analysis/package.js +45 -10
  41. package/lib/cli/configure/analysis/package.js.map +3 -3
  42. package/lib/cli/configure/analysis/project.js +50 -18
  43. package/lib/cli/configure/analysis/project.js.map +2 -2
  44. package/lib/cli/configure/dependencies/index.js +35 -7
  45. package/lib/cli/configure/dependencies/index.js.map +1 -1
  46. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +28 -4
  47. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +1 -1
  48. package/lib/cli/configure/dependencies/seekKoala.js +28 -4
  49. package/lib/cli/configure/dependencies/seekKoala.js.map +1 -1
  50. package/lib/cli/configure/dependencies/skuba.js +28 -4
  51. package/lib/cli/configure/dependencies/skuba.js.map +1 -1
  52. package/lib/cli/configure/dependencies/skubaDeps.js +26 -2
  53. package/lib/cli/configure/dependencies/skubaDeps.js.map +1 -1
  54. package/lib/cli/configure/dependencies/skubaDive.js +29 -4
  55. package/lib/cli/configure/dependencies/skubaDive.js.map +1 -1
  56. package/lib/cli/configure/ensureTemplateCompletion.d.ts +1 -1
  57. package/lib/cli/configure/ensureTemplateCompletion.js +61 -33
  58. package/lib/cli/configure/ensureTemplateCompletion.js.map +3 -3
  59. package/lib/cli/configure/getEntryPoint.d.ts +1 -1
  60. package/lib/cli/configure/getEntryPoint.js +48 -14
  61. package/lib/cli/configure/getEntryPoint.js.map +3 -3
  62. package/lib/cli/configure/getProjectType.d.ts +1 -1
  63. package/lib/cli/configure/getProjectType.js +35 -14
  64. package/lib/cli/configure/getProjectType.js.map +2 -2
  65. package/lib/cli/configure/index.js +84 -50
  66. package/lib/cli/configure/index.js.map +2 -2
  67. package/lib/cli/configure/modules/eslint.js +34 -10
  68. package/lib/cli/configure/modules/eslint.js.map +1 -1
  69. package/lib/cli/configure/modules/ignore.js +32 -8
  70. package/lib/cli/configure/modules/ignore.js.map +1 -1
  71. package/lib/cli/configure/modules/index.js +44 -18
  72. package/lib/cli/configure/modules/index.js.map +2 -2
  73. package/lib/cli/configure/modules/jest.d.ts +2 -0
  74. package/lib/cli/configure/modules/jest.js +86 -0
  75. package/lib/cli/configure/modules/jest.js.map +7 -0
  76. package/lib/cli/configure/modules/nodemon.js +28 -4
  77. package/lib/cli/configure/modules/nodemon.js.map +1 -1
  78. package/lib/cli/configure/modules/package.js +34 -10
  79. package/lib/cli/configure/modules/package.js.map +1 -1
  80. package/lib/cli/configure/modules/prettier.js +35 -11
  81. package/lib/cli/configure/modules/prettier.js.map +1 -1
  82. package/lib/cli/configure/modules/renovate.js +40 -17
  83. package/lib/cli/configure/modules/renovate.js.map +2 -2
  84. package/lib/cli/configure/modules/serverless.js +26 -2
  85. package/lib/cli/configure/modules/serverless.js.map +1 -1
  86. package/lib/cli/configure/modules/tslint.js +28 -4
  87. package/lib/cli/configure/modules/tslint.js.map +1 -1
  88. package/lib/cli/configure/processing/configFile.js +39 -3
  89. package/lib/cli/configure/processing/configFile.js.map +1 -1
  90. package/lib/cli/configure/processing/deleteFiles.js +26 -2
  91. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  92. package/lib/cli/configure/processing/javascript.js +27 -2
  93. package/lib/cli/configure/processing/javascript.js.map +1 -1
  94. package/lib/cli/configure/processing/json.js +31 -6
  95. package/lib/cli/configure/processing/json.js.map +1 -1
  96. package/lib/cli/configure/processing/loadFiles.js +26 -2
  97. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  98. package/lib/cli/configure/processing/module.js +28 -4
  99. package/lib/cli/configure/processing/module.js.map +1 -1
  100. package/lib/cli/configure/processing/package.d.ts +67 -1
  101. package/lib/cli/configure/processing/package.js +45 -8
  102. package/lib/cli/configure/processing/package.js.map +3 -3
  103. package/lib/cli/configure/processing/prettier.js +38 -4
  104. package/lib/cli/configure/processing/prettier.js.map +2 -2
  105. package/lib/cli/configure/processing/record.js +41 -5
  106. package/lib/cli/configure/processing/record.js.map +2 -2
  107. package/lib/cli/configure/processing/typescript.js +63 -26
  108. package/lib/cli/configure/processing/typescript.js.map +2 -2
  109. package/lib/cli/configure/types.d.ts +4 -15
  110. package/lib/cli/configure/types.js +16 -0
  111. package/lib/cli/configure/types.js.map +3 -3
  112. package/lib/cli/format/index.js +44 -20
  113. package/lib/cli/format/index.js.map +1 -1
  114. package/lib/cli/help/index.js +30 -6
  115. package/lib/cli/help/index.js.map +1 -1
  116. package/lib/cli/init/getConfig.d.ts +1 -1
  117. package/lib/cli/init/getConfig.js +100 -74
  118. package/lib/cli/init/getConfig.js.map +3 -3
  119. package/lib/cli/init/git.js +51 -16
  120. package/lib/cli/init/git.js.map +2 -2
  121. package/lib/cli/init/index.js +98 -67
  122. package/lib/cli/init/index.js.map +2 -2
  123. package/lib/cli/init/prompts.d.ts +4 -4
  124. package/lib/cli/init/prompts.js +48 -27
  125. package/lib/cli/init/prompts.js.map +2 -2
  126. package/lib/cli/init/types.js +41 -7
  127. package/lib/cli/init/types.js.map +1 -1
  128. package/lib/cli/init/validation.js +30 -2
  129. package/lib/cli/init/validation.js.map +1 -1
  130. package/lib/cli/init/writePackageJson.js +42 -8
  131. package/lib/cli/init/writePackageJson.js.map +2 -2
  132. package/lib/cli/lint/annotate/buildkite/eslint.js +37 -3
  133. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  134. package/lib/cli/lint/annotate/buildkite/index.js +45 -11
  135. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  136. package/lib/cli/lint/annotate/buildkite/internal.js +37 -3
  137. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  138. package/lib/cli/lint/annotate/buildkite/prettier.js +37 -3
  139. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  140. package/lib/cli/lint/annotate/buildkite/tsc.js +37 -3
  141. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  142. package/lib/cli/lint/annotate/github/eslint.js +26 -2
  143. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  144. package/lib/cli/lint/annotate/github/index.js +45 -11
  145. package/lib/cli/lint/annotate/github/index.js.map +1 -1
  146. package/lib/cli/lint/annotate/github/internal.js +26 -2
  147. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  148. package/lib/cli/lint/annotate/github/prettier.js +26 -2
  149. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  150. package/lib/cli/lint/annotate/github/tsc.js +28 -4
  151. package/lib/cli/lint/annotate/github/tsc.js.map +2 -2
  152. package/lib/cli/lint/annotate/index.js +30 -6
  153. package/lib/cli/lint/annotate/index.js.map +1 -1
  154. package/lib/cli/lint/autofix.js +73 -37
  155. package/lib/cli/lint/autofix.js.map +1 -1
  156. package/lib/cli/lint/eslint.js +51 -16
  157. package/lib/cli/lint/eslint.js.map +3 -3
  158. package/lib/cli/lint/external.js +51 -19
  159. package/lib/cli/lint/external.js.map +2 -2
  160. package/lib/cli/lint/index.js +49 -25
  161. package/lib/cli/lint/index.js.map +1 -1
  162. package/lib/cli/lint/internal.js +42 -18
  163. package/lib/cli/lint/internal.js.map +1 -1
  164. package/lib/cli/lint/internalLints/detectBadCodeowners.js +33 -8
  165. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  166. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +45 -11
  167. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +2 -2
  168. package/lib/cli/lint/internalLints/patchRenovateConfig.js +55 -21
  169. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
  170. package/lib/cli/lint/internalLints/refreshConfigFiles.js +63 -32
  171. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +2 -2
  172. package/lib/cli/lint/internalLints/upgrade/index.d.ts +6 -2
  173. package/lib/cli/lint/internalLints/upgrade/index.js +55 -23
  174. package/lib/cli/lint/internalLints/upgrade/index.js.map +3 -3
  175. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +28 -4
  176. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  177. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +45 -11
  178. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +2 -2
  179. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +30 -6
  180. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  181. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +65 -34
  182. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +2 -2
  183. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +46 -11
  184. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +2 -2
  185. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +28 -4
  186. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +1 -1
  187. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +59 -23
  188. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +2 -2
  189. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js +28 -4
  190. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js.map +1 -1
  191. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js +46 -11
  192. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js.map +2 -2
  193. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js +30 -6
  194. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js.map +1 -1
  195. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js +46 -11
  196. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js.map +2 -2
  197. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js +46 -11
  198. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js.map +2 -2
  199. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js +28 -4
  200. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js.map +1 -1
  201. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js +46 -11
  202. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js.map +2 -2
  203. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js +67 -29
  204. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js.map +2 -2
  205. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js +34 -10
  206. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js.map +1 -1
  207. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js +45 -11
  208. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js.map +2 -2
  209. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.d.ts +0 -4
  210. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js +63 -18
  211. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js.map +3 -3
  212. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js +50 -15
  213. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js.map +2 -2
  214. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js +40 -0
  215. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js.map +7 -0
  216. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.d.ts +3 -0
  217. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js +133 -0
  218. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js.map +7 -0
  219. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js +55 -0
  220. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js.map +7 -0
  221. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +51 -17
  222. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
  223. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +34 -10
  224. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +1 -1
  225. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +44 -10
  226. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
  227. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +46 -12
  228. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
  229. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +28 -4
  230. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  231. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +49 -15
  232. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +2 -2
  233. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +45 -11
  234. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +2 -2
  235. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +34 -10
  236. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  237. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +45 -11
  238. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +2 -2
  239. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +45 -11
  240. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +2 -2
  241. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +47 -13
  242. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +2 -2
  243. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +28 -4
  244. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  245. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +45 -11
  246. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +2 -2
  247. package/lib/cli/lint/prettier.js +50 -15
  248. package/lib/cli/lint/prettier.js.map +3 -3
  249. package/lib/cli/lint/tsc.js +28 -4
  250. package/lib/cli/lint/tsc.js.map +1 -1
  251. package/lib/cli/lint/types.js +16 -0
  252. package/lib/cli/lint/types.js.map +3 -3
  253. package/lib/cli/migrate/index.d.ts +5 -0
  254. package/lib/cli/migrate/index.js +79 -15
  255. package/lib/cli/migrate/index.js.map +2 -2
  256. package/lib/cli/migrate/nodeVersion/checks.d.ts +1 -14
  257. package/lib/cli/migrate/nodeVersion/checks.js +51 -120
  258. package/lib/cli/migrate/nodeVersion/checks.js.map +2 -2
  259. package/lib/cli/migrate/nodeVersion/index.d.ts +8 -2
  260. package/lib/cli/migrate/nodeVersion/index.js +239 -65
  261. package/lib/cli/migrate/nodeVersion/index.js.map +3 -3
  262. package/lib/cli/migrate/nodeVersion/upgrade.d.ts +8 -0
  263. package/lib/cli/migrate/nodeVersion/upgrade.js +179 -0
  264. package/lib/cli/migrate/nodeVersion/upgrade.js.map +7 -0
  265. package/lib/cli/node/index.js +57 -20
  266. package/lib/cli/node/index.js.map +3 -3
  267. package/lib/cli/release/index.js +28 -4
  268. package/lib/cli/release/index.js.map +1 -1
  269. package/lib/cli/start/index.js +50 -16
  270. package/lib/cli/start/index.js.map +3 -3
  271. package/lib/cli/test/index.js +65 -4
  272. package/lib/cli/test/index.js.map +2 -2
  273. package/lib/cli/test/reporters/github/annotations.d.ts +9 -0
  274. package/lib/cli/test/reporters/github/annotations.js +102 -0
  275. package/lib/cli/test/reporters/github/annotations.js.map +7 -0
  276. package/lib/cli/test/reporters/github/index.d.ts +5 -0
  277. package/lib/cli/test/reporters/github/index.js +74 -0
  278. package/lib/cli/test/reporters/github/index.js.map +7 -0
  279. package/lib/cli/version/index.js +30 -6
  280. package/lib/cli/version/index.js.map +1 -1
  281. package/lib/index.d.ts +1 -0
  282. package/lib/index.js +46 -6
  283. package/lib/index.js.map +2 -2
  284. package/lib/skuba.js +45 -26
  285. package/lib/skuba.js.map +3 -3
  286. package/lib/utils/args.js +43 -6
  287. package/lib/utils/args.js.map +2 -2
  288. package/lib/utils/command.js +42 -4
  289. package/lib/utils/command.js.map +3 -3
  290. package/lib/utils/copy.js +57 -20
  291. package/lib/utils/copy.js.map +2 -2
  292. package/lib/utils/dir.js +72 -32
  293. package/lib/utils/dir.js.map +2 -2
  294. package/lib/utils/env.js +26 -2
  295. package/lib/utils/env.js.map +1 -1
  296. package/lib/utils/error.js +47 -10
  297. package/lib/utils/error.js.map +1 -1
  298. package/lib/utils/exec.js +61 -23
  299. package/lib/utils/exec.js.map +3 -3
  300. package/lib/utils/fs.js +40 -6
  301. package/lib/utils/fs.js.map +2 -2
  302. package/lib/utils/help.js +30 -6
  303. package/lib/utils/help.js.map +1 -1
  304. package/lib/utils/logging.js +38 -11
  305. package/lib/utils/logging.js.map +1 -1
  306. package/lib/utils/logo.js +48 -24
  307. package/lib/utils/logo.js.map +1 -1
  308. package/lib/utils/manifest.d.ts +2 -3
  309. package/lib/utils/manifest.js +48 -8
  310. package/lib/utils/manifest.js.map +3 -3
  311. package/lib/utils/npmrc.js +26 -2
  312. package/lib/utils/npmrc.js.map +1 -1
  313. package/lib/utils/packageManager.js +49 -12
  314. package/lib/utils/packageManager.js.map +2 -2
  315. package/lib/utils/port.js +39 -4
  316. package/lib/utils/port.js.map +2 -2
  317. package/lib/utils/sleep.js +26 -2
  318. package/lib/utils/sleep.js.map +1 -1
  319. package/lib/utils/template.js +55 -18
  320. package/lib/utils/template.js.map +3 -3
  321. package/lib/utils/validation.js +31 -2
  322. package/lib/utils/validation.js.map +1 -1
  323. package/lib/utils/version.js +46 -9
  324. package/lib/utils/version.js.map +2 -2
  325. package/lib/utils/wait.js +32 -7
  326. package/lib/utils/wait.js.map +1 -1
  327. package/lib/utils/worker.js +35 -10
  328. package/lib/utils/worker.js.map +1 -1
  329. package/lib/wrapper/function-arguments.d.js +1 -0
  330. package/lib/wrapper/functionHandler.js +49 -18
  331. package/lib/wrapper/functionHandler.js.map +2 -2
  332. package/lib/wrapper/http.js +43 -8
  333. package/lib/wrapper/http.js.map +2 -2
  334. package/lib/wrapper/index.js +7 -6
  335. package/lib/wrapper/index.js.map +1 -1
  336. package/lib/wrapper/main.js +42 -8
  337. package/lib/wrapper/main.js.map +3 -3
  338. package/lib/wrapper/requestListener.js +47 -13
  339. package/lib/wrapper/requestListener.js.map +2 -2
  340. package/lib/wrapper/server.js +28 -4
  341. package/lib/wrapper/server.js.map +1 -1
  342. package/package.json +42 -43
  343. package/template/base/_.prettierrc.js +1 -1
  344. package/template/base/_eslint.config.js +1 -1
  345. package/template/base/_pnpm-workspace.yaml +4 -3
  346. package/template/base/jest.config.ts +19 -0
  347. package/template/base/jest.setup.ts +3 -0
  348. package/template/express-rest-api/.buildkite/pipeline.yml +1 -1
  349. package/template/express-rest-api/.nvmrc +1 -1
  350. package/template/express-rest-api/package.json +7 -8
  351. package/template/express-rest-api/skuba.template.js +1 -1
  352. package/template/express-rest-api/src/app.test.ts +0 -1
  353. package/template/greeter/.buildkite/pipeline.yml +1 -1
  354. package/template/greeter/.nvmrc +1 -1
  355. package/template/greeter/package.json +4 -5
  356. package/template/greeter/skuba.template.js +1 -1
  357. package/template/greeter/src/app.test.ts +1 -3
  358. package/template/koa-rest-api/.buildkite/pipeline.yml +1 -1
  359. package/template/koa-rest-api/.nvmrc +1 -1
  360. package/template/koa-rest-api/package.json +8 -10
  361. package/template/koa-rest-api/skuba.template.js +1 -1
  362. package/template/koa-rest-api/src/api/jobs/getJobs.test.ts +0 -2
  363. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +0 -2
  364. package/template/koa-rest-api/src/app.test.ts +0 -2
  365. package/template/koa-rest-api/src/framework/server.test.ts +2 -2
  366. package/template/koa-rest-api/src/framework/validation.test.ts +0 -2
  367. package/template/koa-rest-api/src/testing/metrics.ts +0 -2
  368. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  369. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
  370. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +7 -19
  371. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +9 -11
  372. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +3 -3
  373. package/template/lambda-sqs-worker-cdk/infra/config.ts +2 -4
  374. package/template/lambda-sqs-worker-cdk/package.json +9 -9
  375. package/template/lambda-sqs-worker-cdk/skuba.template.js +13 -1
  376. package/template/lambda-sqs-worker-cdk/src/app.test.ts +13 -22
  377. package/template/lambda-sqs-worker-cdk/src/framework/handler.test.ts +0 -1
  378. package/template/lambda-sqs-worker-cdk/src/framework/validation.test.ts +31 -33
  379. package/template/lambda-sqs-worker-cdk/src/services/jobScorer.test.ts +2 -8
  380. package/template/lambda-sqs-worker-cdk/src/services/pipelineEventSender.test.ts +2 -3
  381. package/template/lambda-sqs-worker-cdk/src/testing/services.ts +3 -4
  382. package/template/oss-npm-package/.github/workflows/release.yml +1 -1
  383. package/template/oss-npm-package/.github/workflows/validate.yml +1 -1
  384. package/template/oss-npm-package/.nvmrc +1 -1
  385. package/template/oss-npm-package/_package.json +0 -1
  386. package/template/oss-npm-package/skuba.template.js +1 -1
  387. package/template/oss-npm-package/src/index.test.ts +0 -2
  388. package/template/private-npm-package/.nvmrc +1 -1
  389. package/template/private-npm-package/_package.json +1 -2
  390. package/template/private-npm-package/skuba.template.js +2 -2
  391. package/template/private-npm-package/src/index.test.ts +0 -2
  392. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/addTypeModuleToPackageJson.d.ts +0 -6
  393. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/addTypeModuleToPackageJson.js +0 -86
  394. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/addTypeModuleToPackageJson.js.map +0 -7
  395. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/index.js +0 -16
  396. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/index.js.map +0 -7
  397. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.d.ts +0 -7
  398. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.js +0 -76
  399. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.js.map +0 -7
  400. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.d.ts +0 -2
  401. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +0 -11
  402. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +0 -7
  403. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +0 -34
  404. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +0 -7
  405. package/lib/eslint.d.js +0 -1
  406. package/lib/eslint.d.js.map +0 -7
  407. package/template/base/vitest.config.ts +0 -25
  408. /package/lib/cli/lint/internalLints/upgrade/patches/{12.5.0 → 13.1.1}/index.d.ts +0 -0
  409. /package/lib/cli/lint/internalLints/upgrade/patches/{9.1.0 → 13.1.1}/upgradeNode.d.ts +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapper/requestListener.ts"],
4
4
  "sourcesContent": ["import http from 'http';\n\nimport { isFunction, isIpPort, isObject } from '../utils/validation.js';\n\nimport { serveRequestListener } from './http.js';\nimport { startServer } from './server.js';\n\n// Express compatibility\ninterface FunctionConfig extends http.RequestListener {\n port?: number;\n}\n\ninterface ObjectConfig {\n // Koa compatibility\n callback?: () => http.RequestListener;\n\n requestListener?: http.RequestListener;\n\n // Fastify compatibility\n server?: http.Server;\n\n default?: Promise<unknown>;\n port?: unknown;\n}\n\nconst isConfig = (\n data: unknown,\n): data is Promise<FunctionConfig> | Promise<ObjectConfig> =>\n isFunction(data) || isObject(data);\n\ninterface Args {\n availablePort?: number;\n entryPoint: unknown;\n}\n\n/**\n * Create an HTTP server that calls into an exported `http.RequestListener`.\n *\n * This supports Express and Koa applications out of the box.\n */\nexport const runRequestListener = async ({\n availablePort,\n entryPoint,\n}: Args): Promise<void> => {\n if (!isConfig(entryPoint)) {\n // Assume an executable script with weird exports\n return;\n }\n\n let config: FunctionConfig | ObjectConfig = await entryPoint;\n\n if (typeof config === 'object' && isConfig(config.default)) {\n // Prefer `export default` over `export =`\n config = await config.default;\n }\n\n if (Object.keys(config).length === 0) {\n // Assume an executable script with no exports\n return;\n }\n\n const port = isIpPort(config.port) ? config.port : availablePort;\n\n // http.Server support\n if (typeof config !== 'function' && config instanceof http.Server) {\n return startServer(config, port);\n }\n\n // Fastify workaround\n if (\n typeof config !== 'function' &&\n config.server &&\n config.server instanceof http.Server\n ) {\n return startServer(config.server, port);\n }\n\n const requestListener =\n typeof config === 'function'\n ? config\n : (config.requestListener ?? config.callback?.());\n\n if (typeof requestListener !== 'function') {\n // Assume an executable script with non-request listener exports\n return;\n }\n\n return serveRequestListener(requestListener, port);\n};\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AAEjB,SAAS,YAAY,UAAU,gBAAgB;AAE/C,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAoB5B,MAAM,WAAW,CACf,SAEA,WAAW,IAAI,KAAK,SAAS,IAAI;AAY5B,MAAM,qBAAqB,OAAO;AAAA,EACvC;AAAA,EACA;AACF,MAA2B;AACzB,MAAI,CAAC,SAAS,UAAU,GAAG;AAEzB;AAAA,EACF;AAEA,MAAI,SAAwC,MAAM;AAElD,MAAI,OAAO,WAAW,YAAY,SAAS,OAAO,OAAO,GAAG;AAE1D,aAAS,MAAM,OAAO;AAAA,EACxB;AAEA,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAEpC;AAAA,EACF;AAEA,QAAM,OAAO,SAAS,OAAO,IAAI,IAAI,OAAO,OAAO;AAGnD,MAAI,OAAO,WAAW,cAAc,kBAAkB,KAAK,QAAQ;AACjE,WAAO,YAAY,QAAQ,IAAI;AAAA,EACjC;AAGA,MACE,OAAO,WAAW,cAClB,OAAO,UACP,OAAO,kBAAkB,KAAK,QAC9B;AACA,WAAO,YAAY,OAAO,QAAQ,IAAI;AAAA,EACxC;AAEA,QAAM,kBACJ,OAAO,WAAW,aACd,SACC,OAAO,mBAAmB,OAAO,WAAW;AAEnD,MAAI,OAAO,oBAAoB,YAAY;AAEzC;AAAA,EACF;AAEA,SAAO,qBAAqB,iBAAiB,IAAI;AACnD;",
6
- "names": []
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,wBAA+C;AAE/C,IAAAA,eAAqC;AACrC,oBAA4B;AAoB5B,MAAM,WAAW,CACf,aAEA,8BAAW,IAAI,SAAK,4BAAS,IAAI;AAY5B,MAAM,qBAAqB,OAAO;AAAA,EACvC;AAAA,EACA;AACF,MAA2B;AACzB,MAAI,CAAC,SAAS,UAAU,GAAG;AAEzB;AAAA,EACF;AAEA,MAAI,SAAwC,MAAM;AAElD,MAAI,OAAO,WAAW,YAAY,SAAS,OAAO,OAAO,GAAG;AAE1D,aAAS,MAAM,OAAO;AAAA,EACxB;AAEA,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAEpC;AAAA,EACF;AAEA,QAAM,WAAO,4BAAS,OAAO,IAAI,IAAI,OAAO,OAAO;AAGnD,MAAI,OAAO,WAAW,cAAc,kBAAkB,YAAAC,QAAK,QAAQ;AACjE,eAAO,2BAAY,QAAQ,IAAI;AAAA,EACjC;AAGA,MACE,OAAO,WAAW,cAClB,OAAO,UACP,OAAO,kBAAkB,YAAAA,QAAK,QAC9B;AACA,eAAO,2BAAY,OAAO,QAAQ,IAAI;AAAA,EACxC;AAEA,QAAM,kBACJ,OAAO,WAAW,aACd,SACC,OAAO,mBAAmB,OAAO,WAAW;AAEnD,MAAI,OAAO,oBAAoB,YAAY;AAEzC;AAAA,EACF;AAEA,aAAO,mCAAqB,iBAAiB,IAAI;AACnD;",
6
+ "names": ["import_http", "http"]
7
7
  }
@@ -1,11 +1,35 @@
1
- import { log } from "../utils/logging.js";
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var server_exports = {};
20
+ __export(server_exports, {
21
+ startServer: () => startServer
22
+ });
23
+ module.exports = __toCommonJS(server_exports);
24
+ var import_logging = require("../utils/logging.js");
2
25
  const startServer = (server, port) => new Promise(
3
26
  (resolve, reject) => server.listen(port).on("close", resolve).on("error", reject).on("listening", () => {
4
27
  const address = server.address();
5
- log.ok("listening on port", log.bold(String(address.port)));
28
+ import_logging.log.ok("listening on port", import_logging.log.bold(String(address.port)));
6
29
  })
7
30
  );
8
- export {
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
9
33
  startServer
10
- };
34
+ });
11
35
  //# sourceMappingURL=server.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapper/server.ts"],
4
4
  "sourcesContent": ["import type http from 'http';\nimport type { AddressInfo } from 'net';\n\nimport { log } from '../utils/logging.js';\n\n/**\n * Returns a HTTP server wrapped in a promise\n *\n * This function resolves when the server is closed.\n */\nexport const startServer = (server: http.Server, port?: number) =>\n new Promise<void>((resolve, reject) =>\n server\n .listen(port)\n .on('close', resolve)\n .on('error', reject)\n .on('listening', () => {\n const address = server.address() as AddressInfo;\n\n log.ok('listening on port', log.bold(String(address.port)));\n }),\n );\n"],
5
- "mappings": "AAGA,SAAS,WAAW;AAOb,MAAM,cAAc,CAAC,QAAqB,SAC/C,IAAI;AAAA,EAAc,CAAC,SAAS,WAC1B,OACG,OAAO,IAAI,EACX,GAAG,SAAS,OAAO,EACnB,GAAG,SAAS,MAAM,EAClB,GAAG,aAAa,MAAM;AACrB,UAAM,UAAU,OAAO,QAAQ;AAE/B,QAAI,GAAG,qBAAqB,IAAI,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC;AAAA,EAC5D,CAAC;AACL;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAoB;AAOb,MAAM,cAAc,CAAC,QAAqB,SAC/C,IAAI;AAAA,EAAc,CAAC,SAAS,WAC1B,OACG,OAAO,IAAI,EACX,GAAG,SAAS,OAAO,EACnB,GAAG,SAAS,MAAM,EAClB,GAAG,aAAa,MAAM;AACrB,UAAM,UAAU,OAAO,QAAQ;AAE/B,uBAAI,GAAG,qBAAqB,mBAAI,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC;AAAA,EAC5D,CAAC;AACL;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "14.0.0-replace-global-vars-20251121010036",
3
+ "version": "14.0.0-rfc-upgrade-on-test-20251217012156",
4
4
  "private": false,
5
5
  "description": "SEEK development toolkit for backend applications and packages",
6
6
  "homepage": "https://github.com/seek-oss/skuba#readme",
@@ -13,7 +13,6 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "sideEffects": false,
16
- "type": "module",
17
16
  "main": "lib/index.js",
18
17
  "types": "./lib/index.d.ts",
19
18
  "bin": {
@@ -21,10 +20,12 @@
21
20
  },
22
21
  "files": [
23
22
  "config/**/*",
23
+ "jest/**/*.js",
24
24
  "lib*/**/*.d.ts",
25
25
  "lib*/**/*.js",
26
26
  "lib*/**/*.js.map",
27
- "template/**/*"
27
+ "template/**/*",
28
+ "jest-preset.js"
28
29
  ],
29
30
  "remarkConfig": {
30
31
  "plugins": [
@@ -54,21 +55,21 @@
54
55
  ]
55
56
  },
56
57
  "dependencies": {
58
+ "@ast-grep/lang-json": "^0.0.5",
59
+ "@ast-grep/napi": "^0.40.0",
57
60
  "@esbuild-plugins/tsconfig-paths": "^0.1.0",
58
- "@eslint/migrate-config": "~1.3.8",
59
61
  "@inquirer/prompts": "^7.9.0",
62
+ "@jest/types": "^30.0.0",
60
63
  "@octokit/graphql": "^9.0.0",
61
64
  "@octokit/graphql-schema": "^15.3.0",
62
65
  "@octokit/rest": "^22.0.0",
63
- "@octokit/types": "^15.0.0",
64
- "@types/node": "^22.0.0",
65
- "@vitest/coverage-v8": "^4.0.5",
66
- "@vitest/ui": "^4.0.5",
67
- "@vitest/utils": "^4.0.5",
66
+ "@octokit/types": "^16.0.0",
67
+ "@types/jest": "^30.0.0",
68
+ "@types/node": "^24.10.2",
68
69
  "concurrently": "^9.0.0",
69
70
  "ejs": "^3.1.6",
70
- "esbuild": "~0.25.0",
71
- "eslint": "^9.11.1",
71
+ "esbuild": "~0.27.0",
72
+ "eslint": "^9.39.1",
72
73
  "execa": "^5.0.0",
73
74
  "fast-glob": "^3.3.2",
74
75
  "find-up": "^5.0.0",
@@ -79,6 +80,8 @@
79
80
  "ignore": "^7.0.0",
80
81
  "is-installed-globally": "^0.4.0",
81
82
  "isomorphic-git": "^1.11.1",
83
+ "jest": "^30.0.0",
84
+ "jest-watch-typeahead": "^3.0.1",
82
85
  "lodash.mergewith": "^4.6.2",
83
86
  "minimist": "^1.2.6",
84
87
  "normalize-package-data": "^7.0.0",
@@ -86,65 +89,61 @@
86
89
  "npm-run-path": "^4.0.1",
87
90
  "npm-which": "^3.0.1",
88
91
  "picomatch": "^4.0.0",
89
- "prettier": "~3.6.0",
92
+ "prettier": "~3.7.0",
90
93
  "prettier-plugin-packagejson": "^2.4.10",
91
- "read-package-up": "^11.0.0",
94
+ "read-pkg-up": "^7.0.1",
92
95
  "semantic-release": "^24.2.3",
93
96
  "simple-git": "^3.5.0",
97
+ "ts-dedent": "^2.2.0",
98
+ "ts-jest": "^29.4.0",
99
+ "ts-node": "^10.9.2",
94
100
  "tsconfig-paths": "^4.0.0",
95
101
  "tsconfig-seek": "2.0.0",
96
- "tsx": "^4.16.2",
102
+ "tsx": "^4.21.0",
97
103
  "typescript": "~5.9.0",
98
- "vitest": "^4.0.5",
99
104
  "zod": "^4.0.0",
100
- "@skuba-lib/api": "^1.1.0-replace-global-vars-20251121010036",
101
- "eslint-config-skuba": "7.3.0-replace-global-vars-20251121010036"
105
+ "@skuba-lib/api": "^2.0.0-rfc-upgrade-on-test-20251217012156",
106
+ "eslint-config-skuba": "8.0.0-rfc-upgrade-on-test-20251217012156"
102
107
  },
103
108
  "devDependencies": {
104
- "@changesets/cli": "2.29.7",
105
- "@changesets/get-github-info": "0.6.0",
109
+ "@changesets/cli": "2.29.8",
110
+ "@changesets/get-github-info": "0.7.0",
111
+ "@jest/reporters": "30.2.0",
112
+ "@jest/test-result": "30.2.0",
106
113
  "@types/ejs": "3.1.5",
107
- "@types/express": "5.0.3",
114
+ "@types/express": "5.0.6",
108
115
  "@types/fs-extra": "11.0.4",
109
- "@types/koa": "3.0.0",
116
+ "@types/koa": "3.0.1",
110
117
  "@types/lodash.mergewith": "4.6.9",
111
118
  "@types/minimist": "1.2.5",
112
119
  "@types/module-alias": "2.0.4",
113
- "@types/npm-registry-fetch": "8.0.8",
120
+ "@types/npm-registry-fetch": "8.0.9",
114
121
  "@types/npm-which": "3.0.4",
115
122
  "@types/picomatch": "4.0.2",
116
123
  "@types/semver": "7.7.1",
117
124
  "@types/supertest": "6.0.3",
118
- "enhanced-resolve": "5.18.3",
119
- "express": "5.1.0",
120
- "fastify": "5.6.1",
125
+ "enhanced-resolve": "5.18.4",
126
+ "express": "5.2.1",
127
+ "fastify": "5.6.2",
128
+ "jest-diff": "30.2.0",
121
129
  "jsonfile": "6.2.0",
122
- "koa": "3.0.3",
123
- "memfs": "4.49.0",
130
+ "koa": "3.1.1",
131
+ "memfs": "4.51.1",
124
132
  "remark-cli": "12.0.1",
125
133
  "remark-preset-lint-recommended": "7.0.1",
126
134
  "semver": "7.7.3",
127
135
  "supertest": "7.1.4",
128
- "ts-dedent": "^2.2.0",
129
136
  "type-fest": "2.19.0"
130
137
  },
131
- "peerDependencies": {
132
- "skuba-dive": "3.0.0-replace-global-vars-20251121010036"
133
- },
134
- "peerDependenciesMeta": {
135
- "skuba-dive": {
136
- "optional": true
137
- }
138
- },
139
138
  "engines": {
140
- "node": ">=20.9.0"
139
+ "node": ">=22.14.0"
141
140
  },
142
141
  "skuba": {
143
142
  "build": "esbuild",
144
143
  "entryPoint": "src/index.ts",
145
144
  "template": null,
146
145
  "type": "package",
147
- "version": "13.0.0"
146
+ "version": "13.1.1"
148
147
  },
149
148
  "scripts": {
150
149
  "build": "scripts/build.sh",
@@ -159,12 +158,12 @@
159
158
  "release": "pnpm --silent build && changeset publish",
160
159
  "skuba": "pnpm --silent build && pnpm --silent skuba:exec",
161
160
  "skuba:exec": "node lib/skuba",
162
- "stage": "changeset version && node ./.changeset/inject.cjs && pnpm format",
163
- "test": "pnpm --silent skuba test run",
164
- "test:ci": "pnpm --silent skuba test run",
165
- "test:int": "pnpm --silent skuba test run",
161
+ "stage": "changeset version && node ./.changeset/inject.js && pnpm format",
162
+ "test": "pnpm --silent skuba test --selectProjects unit",
163
+ "test:ci": "pnpm --silent skuba test --runInBand",
164
+ "test:int": "pnpm --silent skuba test --selectProjects integration --runInBand",
166
165
  "test:template": "scripts/test-template.sh",
167
166
  "test:template:updateSnapshot": "scripts/test-template.sh -u",
168
- "test:watch": "pnpm --silent skuba test"
167
+ "test:watch": "pnpm --silent skuba test --runInBand --watch"
169
168
  }
170
169
  }
@@ -1 +1 @@
1
- export { default } from 'skuba/config/prettier.js';
1
+ module.exports = require('skuba/config/prettier');
@@ -1 +1 @@
1
- export { default } from 'eslint-config-skuba';
1
+ module.exports = require('eslint-config-skuba');
@@ -1,6 +1,6 @@
1
1
  # managed by skuba
2
2
  ignorePatchFailures: false
3
- # minimumReleaseAge: 4320 # 3 days
3
+ minimumReleaseAge: 4320 # 3 days
4
4
  minimumReleaseAgeExclude:
5
5
  - '@seek/*'
6
6
  - '@skuba-lib/*'
@@ -8,16 +8,17 @@ minimumReleaseAgeExclude:
8
8
  - eslint-config-skuba
9
9
  - eslint-plugin-skuba
10
10
  - skuba
11
+ - skuba-dive
11
12
  - tsconfig-seek
12
13
  packageManagerStrictVersion: true
13
14
  publicHoistPattern:
15
+ - '@eslint/*'
14
16
  - '@types*'
15
- - '@vitest/*'
16
17
  - eslint
17
18
  - eslint-config-skuba
18
19
  - prettier
19
20
  - esbuild
21
+ - jest
20
22
  - tsconfig-seek
21
23
  - typescript
22
- - vitest
23
24
  # end managed by skuba
@@ -0,0 +1,19 @@
1
+ import { Jest } from 'skuba';
2
+
3
+ export default Jest.mergePreset({
4
+ coveragePathIgnorePatterns: ['src/testing'],
5
+ coverageThreshold: {
6
+ global: {
7
+ branches: 0,
8
+ functions: 0,
9
+ lines: 0,
10
+ statements: 0,
11
+ },
12
+ },
13
+ setupFiles: ['<rootDir>/jest.setup.ts'],
14
+ testPathIgnorePatterns: ['/test\\.ts'],
15
+ moduleNameMapper: {
16
+ '^#src/(.*)\\.js$': ['<rootDir>/src/$1'],
17
+ '^#src/(.*)$': ['<rootDir>/src/$1'],
18
+ },
19
+ });
@@ -0,0 +1,3 @@
1
+ process.env.DEPLOYMENT = 'test';
2
+
3
+ export {};
@@ -48,7 +48,7 @@ steps:
48
48
  GET_NPM_TOKEN: please
49
49
  plugins:
50
50
  - *docker-ecr-cache
51
- - docker-compose#v5.11.0:
51
+ - docker-compose#v5.12.1:
52
52
  environment:
53
53
  - GITHUB_API_TOKEN
54
54
  mount-buildkite-agent: true
@@ -1 +1 @@
1
- 22
1
+ 24
@@ -2,7 +2,6 @@
2
2
  "name": "@seek/<%- serviceName %>",
3
3
  "private": true,
4
4
  "license": "UNLICENSED",
5
- "type": "module",
6
5
  "imports": {
7
6
  "#src/*": {
8
7
  "@seek/<%- serviceName %>/source": "./src/*",
@@ -22,16 +21,16 @@
22
21
  "dependencies": {
23
22
  "@opentelemetry/api": "^1.9.0",
24
23
  "@opentelemetry/core": "^2.0.0",
25
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.206.0",
26
- "@opentelemetry/instrumentation-aws-sdk": "^0.62.0",
27
- "@opentelemetry/instrumentation-http": "^0.206.0",
24
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.208.0",
25
+ "@opentelemetry/instrumentation-aws-sdk": "^0.64.0",
26
+ "@opentelemetry/instrumentation-http": "^0.208.0",
28
27
  "@opentelemetry/propagator-b3": "^2.0.0",
29
- "@opentelemetry/sdk-node": "^0.206.0",
28
+ "@opentelemetry/sdk-node": "^0.208.0",
30
29
  "@seek/logger": "^11.1.0",
31
30
  "express": "^5.0.0",
32
31
  "hot-shots": "^11.0.0",
33
32
  "seek-datadog-custom-metrics": "^6.0.0",
34
- "skuba-dive": "^2.0.0"
33
+ "skuba-dive": "^3.0.0"
35
34
  },
36
35
  "devDependencies": {
37
36
  "@types/express": "^5.0.0",
@@ -41,8 +40,8 @@
41
40
  "skuba": "*",
42
41
  "supertest": "^7.0.0"
43
42
  },
44
- "packageManager": "pnpm@10.20.0",
43
+ "packageManager": "pnpm@10.25.0",
45
44
  "engines": {
46
- "node": ">=22"
45
+ "node": ">=24"
47
46
  }
48
47
  }
@@ -2,7 +2,7 @@
2
2
  * Run `skuba configure` to finish templating and remove this file.
3
3
  */
4
4
 
5
- export default {
5
+ module.exports = {
6
6
  entryPoint: 'src/app.ts',
7
7
  fields: [
8
8
  {
@@ -1,5 +1,4 @@
1
1
  import request from 'supertest';
2
- import { describe, it } from 'vitest';
3
2
 
4
3
  import app from './app.js';
5
4
 
@@ -29,7 +29,7 @@ steps:
29
29
  GET_NPM_TOKEN: please
30
30
  plugins:
31
31
  - *docker-ecr-cache
32
- - docker-compose#v5.11.0:
32
+ - docker-compose#v5.12.1:
33
33
  environment:
34
34
  - GITHUB_API_TOKEN
35
35
  mount-buildkite-agent: true
@@ -1 +1 @@
1
- 22
1
+ 24
@@ -2,7 +2,6 @@
2
2
  "name": "@seek/greeter",
3
3
  "private": true,
4
4
  "license": "UNLICENSED",
5
- "type": "module",
6
5
  "imports": {
7
6
  "#src/*": {
8
7
  "@seek/<%- serviceName %>/source": "./src/*",
@@ -20,14 +19,14 @@
20
19
  "test:watch": "skuba test --watch"
21
20
  },
22
21
  "dependencies": {
23
- "skuba-dive": "3.0.0-replace-global-vars-20251121010036"
22
+ "skuba-dive": "4.0.0-rfc-upgrade-on-test-20251217012156"
24
23
  },
25
24
  "devDependencies": {
26
25
  "@types/node": "^22.13.10",
27
- "skuba": "14.0.0-replace-global-vars-20251121010036"
26
+ "skuba": "14.0.0-rfc-upgrade-on-test-20251217012156"
28
27
  },
29
- "packageManager": "pnpm@10.20.0",
28
+ "packageManager": "pnpm@10.25.0",
30
29
  "engines": {
31
- "node": ">=22"
30
+ "node": ">=24"
32
31
  }
33
32
  }
@@ -2,7 +2,7 @@
2
2
  * Run `skuba configure` to finish templating and remove this file.
3
3
  */
4
4
 
5
- export default {
5
+ module.exports = {
6
6
  entryPoint: 'src/app.ts',
7
7
  fields: [
8
8
  {
@@ -1,7 +1,5 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
1
  import * as app from './app.js';
4
2
 
5
3
  describe('app', () => {
6
- it('is importable', () => expect(app).toBeDefined());
4
+ it('is importable', () => expect(app).toEqual({}));
7
5
  });
@@ -48,7 +48,7 @@ steps:
48
48
  GET_NPM_TOKEN: please
49
49
  plugins:
50
50
  - *docker-ecr-cache
51
- - docker-compose#v5.11.0:
51
+ - docker-compose#v5.12.1:
52
52
  environment:
53
53
  - GITHUB_API_TOKEN
54
54
  mount-buildkite-agent: true
@@ -1 +1 @@
1
- 22
1
+ 24
@@ -2,7 +2,6 @@
2
2
  "name": "@seek/<%- serviceName %>",
3
3
  "private": true,
4
4
  "license": "UNLICENSED",
5
- "type": "module",
6
5
  "imports": {
7
6
  "#src/*": {
8
7
  "@seek/<%- serviceName %>/source": "./src/*",
@@ -21,28 +20,27 @@
21
20
  },
22
21
  "dependencies": {
23
22
  "@koa/bodyparser": "^6.0.0",
24
- "@koa/router": "^14.0.0",
23
+ "@koa/router": "15.0.0",
25
24
  "@opentelemetry/api": "^1.9.0",
26
25
  "@opentelemetry/core": "^2.0.0",
27
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.206.0",
28
- "@opentelemetry/instrumentation-aws-sdk": "^0.62.0",
29
- "@opentelemetry/instrumentation-http": "^0.206.0",
26
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.208.0",
27
+ "@opentelemetry/instrumentation-aws-sdk": "^0.64.0",
28
+ "@opentelemetry/instrumentation-http": "^0.208.0",
30
29
  "@opentelemetry/propagator-b3": "^2.0.0",
31
- "@opentelemetry/sdk-node": "^0.206.0",
30
+ "@opentelemetry/sdk-node": "^0.208.0",
32
31
  "@seek/logger": "^11.1.0",
33
32
  "hot-shots": "^11.0.0",
34
33
  "koa": "^3.0.1",
35
34
  "koa-compose": "^4.1.0",
36
35
  "seek-datadog-custom-metrics": "^6.0.0",
37
36
  "seek-koala": "^7.1.0",
38
- "skuba-dive": "^2.0.0",
37
+ "skuba-dive": "^3.0.0",
39
38
  "zod": "^4.0.0"
40
39
  },
41
40
  "devDependencies": {
42
41
  "@types/chance": "^1.1.3",
43
42
  "@types/co-body": "^6.1.3",
44
43
  "@types/koa": "^3.0.0",
45
- "@types/koa__router": "^12.0.0",
46
44
  "@types/node": "^22.13.10",
47
45
  "@types/supertest": "^6.0.0",
48
46
  "chance": "^1.1.8",
@@ -50,8 +48,8 @@
50
48
  "skuba": "*",
51
49
  "supertest": "^7.0.0"
52
50
  },
53
- "packageManager": "pnpm@10.20.0",
51
+ "packageManager": "pnpm@10.25.0",
54
52
  "engines": {
55
- "node": ">=22"
53
+ "node": ">=24"
56
54
  }
57
55
  }
@@ -2,7 +2,7 @@
2
2
  * Run `skuba configure` to finish templating and remove this file.
3
3
  */
4
4
 
5
- export default {
5
+ module.exports = {
6
6
  entryPoint: 'src/app.ts',
7
7
  fields: [
8
8
  {
@@ -1,5 +1,3 @@
1
- import { describe, it } from 'vitest';
2
-
3
1
  import { jobRouter } from './index.js';
4
2
 
5
3
  import { agentFromRouter } from '#src/testing/server.js';
@@ -1,5 +1,3 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
1
  import { jobRouter } from './index.js';
4
2
 
5
3
  import { agentFromRouter } from '#src/testing/server.js';
@@ -1,5 +1,3 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
1
  import app from './app.js';
4
2
 
5
3
  import { agentFromApp } from '#src/testing/server.js';
@@ -1,5 +1,4 @@
1
1
  import Router from '@koa/router';
2
- import { afterEach, describe, expect, it, vi } from 'vitest';
3
2
 
4
3
  import { stdoutMock } from './logging.js';
5
4
 
@@ -8,7 +7,8 @@ import { agentFromRouter } from '#src/testing/server.js';
8
7
  import { chance } from '#src/testing/types.js';
9
8
  import type { Middleware } from '#src/types/koa.js';
10
9
 
11
- const middleware = vi.fn<Middleware>();
10
+ const middleware = jest.fn<void, Parameters<Middleware>>();
11
+
12
12
  const router = new Router()
13
13
  .use('/nested', new Router().put('/:param', middleware).routes())
14
14
  .get('/', middleware);
@@ -1,5 +1,3 @@
1
- import { describe, expect, it } from 'vitest';
2
-
3
1
  import { jsonBodyParser } from './bodyParser.js';
4
2
  import { validate } from './validation.js';
5
3
 
@@ -1,5 +1,3 @@
1
- import { expect } from 'vitest';
2
-
3
1
  import * as metrics from '#src/framework/metrics.js';
4
2
 
5
3
  function assertDefined<T>(value: T | undefined): asserts value is T {
@@ -23,7 +23,7 @@ configs:
23
23
  concurrency: 1
24
24
  plugins:
25
25
  - *docker-ecr-cache
26
- - docker-compose#v5.11.0:
26
+ - docker-compose#v5.12.1:
27
27
  dependencies: false
28
28
  environment:
29
29
  - GITHUB_API_TOKEN
@@ -53,7 +53,7 @@ steps:
53
53
  GET_NPM_TOKEN: please
54
54
  plugins:
55
55
  - *docker-ecr-cache
56
- - docker-compose#v5.11.0:
56
+ - docker-compose#v5.12.1:
57
57
  run: app
58
58
  environment:
59
59
  - GITHUB_API_TOKEN
@@ -1 +1 @@
1
- 22
1
+ 24