skuba 14.0.0-replace-global-vars-20251121010036 → 14.0.0-rfc-pnpm-config-skuba-20260106120954

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 (414) 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.d.ts +1 -1
  89. package/lib/cli/configure/processing/configFile.js +34 -43
  90. package/lib/cli/configure/processing/configFile.js.map +2 -2
  91. package/lib/cli/configure/processing/deleteFiles.js +26 -2
  92. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  93. package/lib/cli/configure/processing/javascript.js +27 -2
  94. package/lib/cli/configure/processing/javascript.js.map +1 -1
  95. package/lib/cli/configure/processing/json.js +31 -6
  96. package/lib/cli/configure/processing/json.js.map +1 -1
  97. package/lib/cli/configure/processing/loadFiles.js +26 -2
  98. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  99. package/lib/cli/configure/processing/module.js +28 -4
  100. package/lib/cli/configure/processing/module.js.map +1 -1
  101. package/lib/cli/configure/processing/package.d.ts +67 -1
  102. package/lib/cli/configure/processing/package.js +45 -8
  103. package/lib/cli/configure/processing/package.js.map +3 -3
  104. package/lib/cli/configure/processing/prettier.js +38 -4
  105. package/lib/cli/configure/processing/prettier.js.map +2 -2
  106. package/lib/cli/configure/processing/record.js +41 -5
  107. package/lib/cli/configure/processing/record.js.map +2 -2
  108. package/lib/cli/configure/processing/typescript.js +63 -26
  109. package/lib/cli/configure/processing/typescript.js.map +2 -2
  110. package/lib/cli/configure/types.d.ts +4 -15
  111. package/lib/cli/configure/types.js +16 -0
  112. package/lib/cli/configure/types.js.map +3 -3
  113. package/lib/cli/format/index.js +44 -20
  114. package/lib/cli/format/index.js.map +1 -1
  115. package/lib/cli/help/index.js +30 -6
  116. package/lib/cli/help/index.js.map +1 -1
  117. package/lib/cli/init/getConfig.d.ts +1 -1
  118. package/lib/cli/init/getConfig.js +100 -74
  119. package/lib/cli/init/getConfig.js.map +3 -3
  120. package/lib/cli/init/git.js +51 -16
  121. package/lib/cli/init/git.js.map +2 -2
  122. package/lib/cli/init/index.js +117 -68
  123. package/lib/cli/init/index.js.map +3 -3
  124. package/lib/cli/init/prompts.d.ts +4 -4
  125. package/lib/cli/init/prompts.js +48 -27
  126. package/lib/cli/init/prompts.js.map +2 -2
  127. package/lib/cli/init/types.js +41 -7
  128. package/lib/cli/init/types.js.map +1 -1
  129. package/lib/cli/init/validation.js +30 -2
  130. package/lib/cli/init/validation.js.map +1 -1
  131. package/lib/cli/init/writePackageJson.js +42 -8
  132. package/lib/cli/init/writePackageJson.js.map +2 -2
  133. package/lib/cli/lint/annotate/buildkite/eslint.js +37 -3
  134. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  135. package/lib/cli/lint/annotate/buildkite/index.js +45 -11
  136. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  137. package/lib/cli/lint/annotate/buildkite/internal.js +37 -3
  138. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  139. package/lib/cli/lint/annotate/buildkite/prettier.js +37 -3
  140. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  141. package/lib/cli/lint/annotate/buildkite/tsc.js +37 -3
  142. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  143. package/lib/cli/lint/annotate/github/eslint.js +26 -2
  144. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  145. package/lib/cli/lint/annotate/github/index.js +45 -11
  146. package/lib/cli/lint/annotate/github/index.js.map +1 -1
  147. package/lib/cli/lint/annotate/github/internal.js +26 -2
  148. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  149. package/lib/cli/lint/annotate/github/prettier.js +26 -2
  150. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  151. package/lib/cli/lint/annotate/github/tsc.js +28 -4
  152. package/lib/cli/lint/annotate/github/tsc.js.map +2 -2
  153. package/lib/cli/lint/annotate/index.js +30 -6
  154. package/lib/cli/lint/annotate/index.js.map +1 -1
  155. package/lib/cli/lint/autofix.js +73 -37
  156. package/lib/cli/lint/autofix.js.map +1 -1
  157. package/lib/cli/lint/eslint.js +51 -16
  158. package/lib/cli/lint/eslint.js.map +3 -3
  159. package/lib/cli/lint/external.js +51 -19
  160. package/lib/cli/lint/external.js.map +2 -2
  161. package/lib/cli/lint/index.js +49 -25
  162. package/lib/cli/lint/index.js.map +1 -1
  163. package/lib/cli/lint/internal.js +42 -18
  164. package/lib/cli/lint/internal.js.map +1 -1
  165. package/lib/cli/lint/internalLints/detectBadCodeowners.js +33 -8
  166. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  167. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +45 -11
  168. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +2 -2
  169. package/lib/cli/lint/internalLints/patchRenovateConfig.js +55 -21
  170. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
  171. package/lib/cli/lint/internalLints/refreshConfigFiles.d.ts +1 -1
  172. package/lib/cli/lint/internalLints/refreshConfigFiles.js +65 -42
  173. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +3 -3
  174. package/lib/cli/lint/internalLints/upgrade/index.d.ts +1 -1
  175. package/lib/cli/lint/internalLints/upgrade/index.js +53 -22
  176. package/lib/cli/lint/internalLints/upgrade/index.js.map +3 -3
  177. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +28 -4
  178. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  179. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +45 -11
  180. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +2 -2
  181. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +30 -6
  182. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  183. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +65 -34
  184. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +2 -2
  185. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +46 -11
  186. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +2 -2
  187. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +28 -4
  188. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +1 -1
  189. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +59 -23
  190. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +2 -2
  191. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js +28 -4
  192. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js.map +1 -1
  193. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js +46 -11
  194. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js.map +2 -2
  195. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js +30 -6
  196. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js.map +1 -1
  197. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js +46 -11
  198. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js.map +2 -2
  199. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js +46 -11
  200. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js.map +2 -2
  201. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js +28 -4
  202. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js.map +1 -1
  203. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js +46 -11
  204. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js.map +2 -2
  205. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js +67 -29
  206. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js.map +2 -2
  207. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js +34 -10
  208. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js.map +1 -1
  209. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js +45 -11
  210. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js.map +2 -2
  211. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.d.ts +0 -4
  212. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js +63 -18
  213. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js.map +3 -3
  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 +45 -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/migrateToPnpmConfig.d.ts +3 -0
  219. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/migrateToPnpmConfig.js +139 -0
  220. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/migrateToPnpmConfig.js.map +7 -0
  221. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.d.ts +3 -0
  222. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js +133 -0
  223. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js.map +7 -0
  224. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js +55 -0
  225. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js.map +7 -0
  226. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +51 -17
  227. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
  228. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +34 -10
  229. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +1 -1
  230. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +44 -10
  231. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
  232. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +46 -12
  233. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
  234. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +28 -4
  235. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  236. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +49 -15
  237. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +2 -2
  238. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +45 -11
  239. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +2 -2
  240. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +34 -10
  241. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  242. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +45 -11
  243. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +2 -2
  244. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +45 -11
  245. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +2 -2
  246. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +47 -13
  247. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +2 -2
  248. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +28 -4
  249. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  250. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +45 -11
  251. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +2 -2
  252. package/lib/cli/lint/prettier.js +50 -15
  253. package/lib/cli/lint/prettier.js.map +3 -3
  254. package/lib/cli/lint/tsc.js +28 -4
  255. package/lib/cli/lint/tsc.js.map +1 -1
  256. package/lib/cli/lint/types.js +16 -0
  257. package/lib/cli/lint/types.js.map +3 -3
  258. package/lib/cli/migrate/index.d.ts +5 -0
  259. package/lib/cli/migrate/index.js +79 -15
  260. package/lib/cli/migrate/index.js.map +2 -2
  261. package/lib/cli/migrate/nodeVersion/checks.d.ts +1 -14
  262. package/lib/cli/migrate/nodeVersion/checks.js +51 -120
  263. package/lib/cli/migrate/nodeVersion/checks.js.map +2 -2
  264. package/lib/cli/migrate/nodeVersion/index.d.ts +8 -2
  265. package/lib/cli/migrate/nodeVersion/index.js +239 -65
  266. package/lib/cli/migrate/nodeVersion/index.js.map +3 -3
  267. package/lib/cli/migrate/nodeVersion/upgrade.d.ts +8 -0
  268. package/lib/cli/migrate/nodeVersion/upgrade.js +179 -0
  269. package/lib/cli/migrate/nodeVersion/upgrade.js.map +7 -0
  270. package/lib/cli/node/index.js +57 -20
  271. package/lib/cli/node/index.js.map +3 -3
  272. package/lib/cli/release/index.js +28 -4
  273. package/lib/cli/release/index.js.map +1 -1
  274. package/lib/cli/start/index.js +50 -16
  275. package/lib/cli/start/index.js.map +3 -3
  276. package/lib/cli/test/index.js +44 -4
  277. package/lib/cli/test/index.js.map +2 -2
  278. package/lib/cli/test/reporters/github/annotations.d.ts +9 -0
  279. package/lib/cli/test/reporters/github/annotations.js +102 -0
  280. package/lib/cli/test/reporters/github/annotations.js.map +7 -0
  281. package/lib/cli/test/reporters/github/index.d.ts +5 -0
  282. package/lib/cli/test/reporters/github/index.js +74 -0
  283. package/lib/cli/test/reporters/github/index.js.map +7 -0
  284. package/lib/cli/version/index.js +30 -6
  285. package/lib/cli/version/index.js.map +1 -1
  286. package/lib/index.d.ts +1 -0
  287. package/lib/index.js +46 -6
  288. package/lib/index.js.map +2 -2
  289. package/lib/skuba.js +45 -26
  290. package/lib/skuba.js.map +3 -3
  291. package/lib/utils/args.js +43 -6
  292. package/lib/utils/args.js.map +2 -2
  293. package/lib/utils/command.js +42 -4
  294. package/lib/utils/command.js.map +3 -3
  295. package/lib/utils/copy.js +57 -20
  296. package/lib/utils/copy.js.map +2 -2
  297. package/lib/utils/dir.js +72 -32
  298. package/lib/utils/dir.js.map +2 -2
  299. package/lib/utils/env.js +26 -2
  300. package/lib/utils/env.js.map +1 -1
  301. package/lib/utils/error.js +47 -10
  302. package/lib/utils/error.js.map +1 -1
  303. package/lib/utils/exec.js +61 -23
  304. package/lib/utils/exec.js.map +3 -3
  305. package/lib/utils/fs.js +40 -6
  306. package/lib/utils/fs.js.map +2 -2
  307. package/lib/utils/help.js +30 -6
  308. package/lib/utils/help.js.map +1 -1
  309. package/lib/utils/logging.js +38 -11
  310. package/lib/utils/logging.js.map +1 -1
  311. package/lib/utils/logo.js +48 -24
  312. package/lib/utils/logo.js.map +1 -1
  313. package/lib/utils/manifest.d.ts +2 -3
  314. package/lib/utils/manifest.js +48 -8
  315. package/lib/utils/manifest.js.map +3 -3
  316. package/lib/utils/npmrc.js +26 -2
  317. package/lib/utils/npmrc.js.map +1 -1
  318. package/lib/utils/packageManager.js +49 -12
  319. package/lib/utils/packageManager.js.map +2 -2
  320. package/lib/utils/port.js +39 -4
  321. package/lib/utils/port.js.map +2 -2
  322. package/lib/utils/sleep.js +26 -2
  323. package/lib/utils/sleep.js.map +1 -1
  324. package/lib/utils/template.js +55 -18
  325. package/lib/utils/template.js.map +3 -3
  326. package/lib/utils/validation.js +31 -2
  327. package/lib/utils/validation.js.map +1 -1
  328. package/lib/utils/version.js +46 -9
  329. package/lib/utils/version.js.map +2 -2
  330. package/lib/utils/wait.js +32 -7
  331. package/lib/utils/wait.js.map +1 -1
  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 +1 -1
  347. package/package.json +45 -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 +0 -23
  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 -19
  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 +1 -2
  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 +2 -3
  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/12.5.0/addTypeModuleToPackageJson.d.ts +0 -6
  398. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/addTypeModuleToPackageJson.js +0 -86
  399. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/addTypeModuleToPackageJson.js.map +0 -7
  400. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/index.js +0 -16
  401. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/index.js.map +0 -7
  402. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.d.ts +0 -7
  403. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.js +0 -76
  404. package/lib/cli/lint/internalLints/upgrade/patches/12.5.0/rewriteGlobalVars.js.map +0 -7
  405. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.d.ts +0 -2
  406. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +0 -11
  407. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +0 -7
  408. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +0 -34
  409. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +0 -7
  410. package/lib/eslint.d.js +0 -1
  411. package/lib/eslint.d.js.map +0 -7
  412. package/template/base/vitest.config.ts +0 -25
  413. /package/lib/cli/lint/internalLints/upgrade/patches/{12.5.0 → 13.1.1}/index.d.ts +0 -0
  414. /package/lib/cli/lint/internalLints/upgrade/patches/{9.1.0 → 13.1.1}/upgradeNode.d.ts +0 -0
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-pnpm-config-skuba-20260106120954",
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,72 +80,71 @@
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
- "normalize-package-data": "^7.0.0",
87
+ "normalize-package-data": "^8.0.0",
85
88
  "npm-registry-fetch": "^18.0.2",
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-pnpm-config-skuba-20260106120954",
106
+ "eslint-config-skuba": "8.0.0-rfc-pnpm-config-skuba-20260106120954"
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
- "type-fest": "2.19.0"
130
- },
131
- "peerDependencies": {
132
- "skuba-dive": "3.0.0-replace-global-vars-20251121010036"
133
- },
134
- "peerDependenciesMeta": {
135
- "skuba-dive": {
136
- "optional": true
137
- }
136
+ "type-fest": "2.19.0",
137
+ "pnpm-plugin-skuba": "1.0.0"
138
138
  },
139
139
  "engines": {
140
- "node": ">=20.9.0"
140
+ "node": ">=22.14.0"
141
141
  },
142
142
  "skuba": {
143
143
  "build": "esbuild",
144
144
  "entryPoint": "src/index.ts",
145
145
  "template": null,
146
146
  "type": "package",
147
- "version": "13.0.0"
147
+ "version": "13.1.1"
148
148
  },
149
149
  "scripts": {
150
150
  "build": "scripts/build.sh",
@@ -159,12 +159,12 @@
159
159
  "release": "pnpm --silent build && changeset publish",
160
160
  "skuba": "pnpm --silent build && pnpm --silent skuba:exec",
161
161
  "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",
162
+ "stage": "changeset version && node ./.changeset/inject.js && pnpm format",
163
+ "test": "pnpm --silent skuba test --selectProjects unit",
164
+ "test:ci": "pnpm --silent skuba test --runInBand",
165
+ "test:int": "pnpm --silent skuba test --selectProjects integration --runInBand",
166
166
  "test:template": "scripts/test-template.sh",
167
167
  "test:template:updateSnapshot": "scripts/test-template.sh -u",
168
- "test:watch": "pnpm --silent skuba test"
168
+ "test:watch": "pnpm --silent skuba test --runInBand --watch"
169
169
  }
170
170
  }
@@ -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,23 +0,0 @@
1
- # managed by skuba
2
- ignorePatchFailures: false
3
- # minimumReleaseAge: 4320 # 3 days
4
- minimumReleaseAgeExclude:
5
- - '@seek/*'
6
- - '@skuba-lib/*'
7
- - eslint-config-seek
8
- - eslint-config-skuba
9
- - eslint-plugin-skuba
10
- - skuba
11
- - tsconfig-seek
12
- packageManagerStrictVersion: true
13
- publicHoistPattern:
14
- - '@types*'
15
- - '@vitest/*'
16
- - eslint
17
- - eslint-config-skuba
18
- - prettier
19
- - esbuild
20
- - tsconfig-seek
21
- - typescript
22
- - vitest
23
- # 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
- "hot-shots": "^11.0.0",
31
+ "hot-shots": "^12.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.27.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-pnpm-config-skuba-20260106120954"
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-pnpm-config-skuba-20260106120954"
28
27
  },
29
- "packageManager": "pnpm@10.20.0",
28
+ "packageManager": "pnpm@10.27.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
- "hot-shots": "^11.0.0",
32
+ "hot-shots": "^12.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.27.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
@@ -1,4 +1,4 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`returns expected CloudFormation stack for dev 1`] = `
4
4
  {
@@ -216,7 +216,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
216
216
  {
217
217
  "Ref": "AWS::Region",
218
218
  },
219
- ":464622532012:layer:Datadog-Node22-x:x",
219
+ ":464622532012:layer:Datadog-Node24-x:x",
220
220
  ],
221
221
  ],
222
222
  },
@@ -241,7 +241,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
241
241
  "Arn",
242
242
  ],
243
243
  },
244
- "Runtime": "nodejs22.x",
244
+ "Runtime": "nodejs24.x",
245
245
  "Tags": [
246
246
  {
247
247
  "Key": "aws-codedeploy-hooks",
@@ -762,14 +762,6 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
762
762
  },
763
763
  },
764
764
  "Resources": {
765
- "datadogapikeysecret046FEF06": {
766
- "DeletionPolicy": "Delete",
767
- "Properties": {
768
- "GenerateSecretString": {},
769
- },
770
- "Type": "AWS::SecretsManager::Secret",
771
- "UpdateReplacePolicy": "Delete",
772
- },
773
765
  "destinationtopicDCE2E0B8": {
774
766
  "Properties": {
775
767
  "KmsMasterKeyId": {
@@ -927,9 +919,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
927
919
  },
928
920
  "Environment": {
929
921
  "Variables": {
930
- "DD_API_KEY_SECRET_ARN": {
931
- "Ref": "datadogapikeysecret046FEF06",
932
- },
922
+ "DD_API_KEY_SECRET_ARN": "arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key",
933
923
  "DD_CAPTURE_LAMBDA_PAYLOAD": "false",
934
924
  "DD_ENV": "production",
935
925
  "DD_FLUSH_TO_LOG": "false",
@@ -968,7 +958,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
968
958
  {
969
959
  "Ref": "AWS::Region",
970
960
  },
971
- ":464622532012:layer:Datadog-Node22-x:x",
961
+ ":464622532012:layer:Datadog-Node24-x:x",
972
962
  ],
973
963
  ],
974
964
  },
@@ -993,7 +983,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
993
983
  "Arn",
994
984
  ],
995
985
  },
996
- "Runtime": "nodejs22.x",
986
+ "Runtime": "nodejs24.x",
997
987
  "Tags": [
998
988
  {
999
989
  "Key": "aws-codedeploy-hooks",
@@ -1392,9 +1382,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
1392
1382
  "secretsmanager:DescribeSecret",
1393
1383
  ],
1394
1384
  "Effect": "Allow",
1395
- "Resource": {
1396
- "Ref": "datadogapikeysecret046FEF06",
1397
- },
1385
+ "Resource": "arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key-??????",
1398
1386
  },
1399
1387
  {
1400
1388
  "Action": [
@@ -1,6 +1,5 @@
1
1
  import { App, aws_secretsmanager, aws_sns } from 'aws-cdk-lib';
2
2
  import { Template } from 'aws-cdk-lib/assertions';
3
- import { afterAll, afterEach, expect, it, vi } from 'vitest';
4
3
 
5
4
  const originalDeployment = process.env.DEPLOYMENT;
6
5
  const originalVersion = process.env.VERSION;
@@ -11,7 +10,7 @@ afterAll(() => {
11
10
  });
12
11
 
13
12
  afterEach(() => {
14
- vi.resetModules();
13
+ jest.resetModules();
15
14
  });
16
15
 
17
16
  it.each(['dev', 'prod'])(
@@ -22,16 +21,15 @@ it.each(['dev', 'prod'])(
22
21
 
23
22
  const { AppStack } = await import('./appStack.js');
24
23
 
25
- vi.spyOn(aws_sns.Topic, 'fromTopicArn').mockImplementation(
26
- (scope, id) => new aws_sns.Topic(scope, id),
27
- );
24
+ jest
25
+ .spyOn(aws_sns.Topic, 'fromTopicArn')
26
+ .mockImplementation((scope, id) => new aws_sns.Topic(scope, id));
28
27
 
29
- vi.spyOn(
30
- aws_secretsmanager.Secret,
31
- 'fromSecretPartialArn',
32
- ).mockImplementation(
33
- (scope, id) => new aws_secretsmanager.Secret(scope, id),
34
- );
28
+ jest
29
+ .spyOn(aws_secretsmanager.Secret, 'fromSecretPartialArn')
30
+ .mockImplementation(
31
+ (scope, id) => new aws_secretsmanager.Secret(scope, id),
32
+ );
35
33
 
36
34
  const app = new App({ context: { 'aws:cdk:bundling-stacks': [] } });
37
35