skuba 14.0.0-esmify-skuba-20251105034821 → 14.0.0-hacky-hack-lang-json-20260109051908

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 (408) 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 +3 -3
  14. package/lib/cli/adapter/prettier.js +67 -39
  15. package/lib/cli/adapter/prettier.js.map +2 -2
  16. package/lib/cli/build/args.js +42 -8
  17. package/lib/cli/build/args.js.map +2 -2
  18. package/lib/cli/build/assets.d.ts +3 -2
  19. package/lib/cli/build/assets.js +60 -28
  20. package/lib/cli/build/assets.js.map +3 -3
  21. package/lib/cli/build/esbuild.d.ts +4 -2
  22. package/lib/cli/build/esbuild.js +64 -23
  23. package/lib/cli/build/esbuild.js.map +2 -2
  24. package/lib/cli/build/index.js +53 -21
  25. package/lib/cli/build/index.js.map +2 -2
  26. package/lib/cli/build/tsc.js +60 -24
  27. package/lib/cli/build/tsc.js.map +3 -3
  28. package/lib/cli/buildPackage/index.js +32 -8
  29. package/lib/cli/buildPackage/index.js.map +1 -1
  30. package/lib/cli/configure/analyseConfiguration.js +50 -16
  31. package/lib/cli/configure/analyseConfiguration.js.map +2 -2
  32. package/lib/cli/configure/analyseDependencies.d.ts +1 -1
  33. package/lib/cli/configure/analyseDependencies.js +59 -25
  34. package/lib/cli/configure/analyseDependencies.js.map +3 -3
  35. package/lib/cli/configure/analysis/diff.js +29 -5
  36. package/lib/cli/configure/analysis/diff.js.map +2 -2
  37. package/lib/cli/configure/analysis/files.js +42 -8
  38. package/lib/cli/configure/analysis/files.js.map +2 -2
  39. package/lib/cli/configure/analysis/git.js +46 -12
  40. package/lib/cli/configure/analysis/git.js.map +2 -2
  41. package/lib/cli/configure/analysis/package.d.ts +3 -2
  42. package/lib/cli/configure/analysis/package.js +45 -10
  43. package/lib/cli/configure/analysis/package.js.map +3 -3
  44. package/lib/cli/configure/analysis/project.js +50 -18
  45. package/lib/cli/configure/analysis/project.js.map +2 -2
  46. package/lib/cli/configure/dependencies/index.js +35 -7
  47. package/lib/cli/configure/dependencies/index.js.map +1 -1
  48. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +28 -4
  49. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +1 -1
  50. package/lib/cli/configure/dependencies/seekKoala.js +28 -4
  51. package/lib/cli/configure/dependencies/seekKoala.js.map +1 -1
  52. package/lib/cli/configure/dependencies/skuba.js +28 -4
  53. package/lib/cli/configure/dependencies/skuba.js.map +1 -1
  54. package/lib/cli/configure/dependencies/skubaDeps.js +26 -2
  55. package/lib/cli/configure/dependencies/skubaDeps.js.map +1 -1
  56. package/lib/cli/configure/dependencies/skubaDive.js +29 -4
  57. package/lib/cli/configure/dependencies/skubaDive.js.map +1 -1
  58. package/lib/cli/configure/ensureTemplateCompletion.d.ts +1 -1
  59. package/lib/cli/configure/ensureTemplateCompletion.js +63 -32
  60. package/lib/cli/configure/ensureTemplateCompletion.js.map +3 -3
  61. package/lib/cli/configure/getEntryPoint.d.ts +2 -2
  62. package/lib/cli/configure/getEntryPoint.js +51 -19
  63. package/lib/cli/configure/getEntryPoint.js.map +3 -3
  64. package/lib/cli/configure/getProjectType.d.ts +1 -1
  65. package/lib/cli/configure/getProjectType.js +36 -17
  66. package/lib/cli/configure/getProjectType.js.map +2 -2
  67. package/lib/cli/configure/index.js +91 -56
  68. package/lib/cli/configure/index.js.map +3 -3
  69. package/lib/cli/configure/modules/eslint.js +34 -10
  70. package/lib/cli/configure/modules/eslint.js.map +1 -1
  71. package/lib/cli/configure/modules/ignore.js +32 -8
  72. package/lib/cli/configure/modules/ignore.js.map +1 -1
  73. package/lib/cli/configure/modules/index.js +44 -18
  74. package/lib/cli/configure/modules/index.js.map +2 -2
  75. package/lib/cli/configure/modules/jest.d.ts +2 -0
  76. package/lib/cli/configure/modules/jest.js +86 -0
  77. package/lib/cli/configure/modules/jest.js.map +7 -0
  78. package/lib/cli/configure/modules/nodemon.js +28 -4
  79. package/lib/cli/configure/modules/nodemon.js.map +1 -1
  80. package/lib/cli/configure/modules/package.js +34 -10
  81. package/lib/cli/configure/modules/package.js.map +1 -1
  82. package/lib/cli/configure/modules/prettier.js +35 -11
  83. package/lib/cli/configure/modules/prettier.js.map +1 -1
  84. package/lib/cli/configure/modules/renovate.js +40 -17
  85. package/lib/cli/configure/modules/renovate.js.map +2 -2
  86. package/lib/cli/configure/modules/serverless.js +26 -2
  87. package/lib/cli/configure/modules/serverless.js.map +1 -1
  88. package/lib/cli/configure/modules/tslint.js +28 -4
  89. package/lib/cli/configure/modules/tslint.js.map +1 -1
  90. package/lib/cli/configure/processing/configFile.js +39 -3
  91. package/lib/cli/configure/processing/configFile.js.map +1 -1
  92. package/lib/cli/configure/processing/deleteFiles.js +26 -2
  93. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  94. package/lib/cli/configure/processing/javascript.js +27 -2
  95. package/lib/cli/configure/processing/javascript.js.map +1 -1
  96. package/lib/cli/configure/processing/json.js +31 -6
  97. package/lib/cli/configure/processing/json.js.map +1 -1
  98. package/lib/cli/configure/processing/loadFiles.js +26 -2
  99. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  100. package/lib/cli/configure/processing/module.js +28 -4
  101. package/lib/cli/configure/processing/module.js.map +1 -1
  102. package/lib/cli/configure/processing/package.d.ts +67 -1
  103. package/lib/cli/configure/processing/package.js +45 -8
  104. package/lib/cli/configure/processing/package.js.map +3 -3
  105. package/lib/cli/configure/processing/prettier.js +38 -4
  106. package/lib/cli/configure/processing/prettier.js.map +2 -2
  107. package/lib/cli/configure/processing/record.js +41 -5
  108. package/lib/cli/configure/processing/record.js.map +2 -2
  109. package/lib/cli/configure/processing/typescript.js +63 -26
  110. package/lib/cli/configure/processing/typescript.js.map +2 -2
  111. package/lib/cli/configure/types.d.ts +4 -15
  112. package/lib/cli/configure/types.js +16 -0
  113. package/lib/cli/configure/types.js.map +3 -3
  114. package/lib/cli/format/index.js +44 -20
  115. package/lib/cli/format/index.js.map +2 -2
  116. package/lib/cli/help/index.js +30 -6
  117. package/lib/cli/help/index.js.map +1 -1
  118. package/lib/cli/init/getConfig.d.ts +2 -2
  119. package/lib/cli/init/getConfig.js +121 -102
  120. package/lib/cli/init/getConfig.js.map +3 -3
  121. package/lib/cli/init/git.js +51 -16
  122. package/lib/cli/init/git.js.map +2 -2
  123. package/lib/cli/init/index.js +98 -67
  124. package/lib/cli/init/index.js.map +2 -2
  125. package/lib/cli/init/prompts.d.ts +13 -10
  126. package/lib/cli/init/prompts.js +56 -35
  127. package/lib/cli/init/prompts.js.map +2 -2
  128. package/lib/cli/init/types.d.ts +1 -1
  129. package/lib/cli/init/types.js +41 -7
  130. package/lib/cli/init/types.js.map +1 -1
  131. package/lib/cli/init/validation.js +30 -2
  132. package/lib/cli/init/validation.js.map +1 -1
  133. package/lib/cli/init/writePackageJson.js +42 -8
  134. package/lib/cli/init/writePackageJson.js.map +2 -2
  135. package/lib/cli/lint/annotate/buildkite/eslint.js +37 -3
  136. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  137. package/lib/cli/lint/annotate/buildkite/index.js +45 -11
  138. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  139. package/lib/cli/lint/annotate/buildkite/internal.js +37 -3
  140. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  141. package/lib/cli/lint/annotate/buildkite/prettier.js +37 -3
  142. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  143. package/lib/cli/lint/annotate/buildkite/tsc.js +37 -3
  144. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  145. package/lib/cli/lint/annotate/github/eslint.js +26 -2
  146. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  147. package/lib/cli/lint/annotate/github/index.js +45 -11
  148. package/lib/cli/lint/annotate/github/index.js.map +1 -1
  149. package/lib/cli/lint/annotate/github/internal.js +26 -2
  150. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  151. package/lib/cli/lint/annotate/github/prettier.js +26 -2
  152. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  153. package/lib/cli/lint/annotate/github/tsc.js +28 -4
  154. package/lib/cli/lint/annotate/github/tsc.js.map +2 -2
  155. package/lib/cli/lint/annotate/index.js +30 -6
  156. package/lib/cli/lint/annotate/index.js.map +1 -1
  157. package/lib/cli/lint/autofix.d.ts +5 -0
  158. package/lib/cli/lint/autofix.js +80 -40
  159. package/lib/cli/lint/autofix.js.map +2 -2
  160. package/lib/cli/lint/eslint.js +51 -16
  161. package/lib/cli/lint/eslint.js.map +3 -3
  162. package/lib/cli/lint/external.js +51 -19
  163. package/lib/cli/lint/external.js.map +2 -2
  164. package/lib/cli/lint/index.js +50 -28
  165. package/lib/cli/lint/index.js.map +2 -2
  166. package/lib/cli/lint/internal.js +44 -18
  167. package/lib/cli/lint/internal.js.map +2 -2
  168. package/lib/cli/lint/internalLints/detectBadCodeowners.js +33 -8
  169. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  170. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +46 -14
  171. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +3 -3
  172. package/lib/cli/lint/internalLints/patchRenovateConfig.js +55 -21
  173. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
  174. package/lib/cli/lint/internalLints/refreshConfigFiles.js +64 -35
  175. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +3 -3
  176. package/lib/cli/lint/internalLints/upgrade/index.d.ts +2 -2
  177. package/lib/cli/lint/internalLints/upgrade/index.js +105 -41
  178. package/lib/cli/lint/internalLints/upgrade/index.js.map +3 -3
  179. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +28 -4
  180. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  181. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +45 -11
  182. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +2 -2
  183. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +30 -6
  184. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  185. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +65 -34
  186. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +2 -2
  187. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +46 -11
  188. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +2 -2
  189. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +28 -4
  190. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +1 -1
  191. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +59 -23
  192. package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +2 -2
  193. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js +28 -4
  194. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/index.js.map +1 -1
  195. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js +46 -11
  196. package/lib/cli/lint/internalLints/upgrade/patches/12.1.1/patchJestSnapshots.js.map +2 -2
  197. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js +30 -6
  198. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/index.js.map +1 -1
  199. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js +46 -11
  200. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchApiTokenFromEnvironment.js.map +2 -2
  201. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js +46 -11
  202. package/lib/cli/lint/internalLints/upgrade/patches/12.3.0/patchDockerfileSyntaxDirective.js.map +2 -2
  203. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js +28 -4
  204. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/index.js.map +1 -1
  205. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js +46 -11
  206. package/lib/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.js.map +2 -2
  207. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js +67 -29
  208. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/configureTsConfigForESM.js.map +2 -2
  209. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js +34 -10
  210. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/index.js.map +1 -1
  211. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js +45 -11
  212. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/patchApiDockerfiles.js.map +2 -2
  213. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js +63 -17
  214. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/rewriteSrcImports.js.map +2 -2
  215. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js +50 -15
  216. package/lib/cli/lint/internalLints/upgrade/patches/12.4.1/updateLambdaConfigs.js.map +2 -2
  217. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js +40 -0
  218. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/index.js.map +7 -0
  219. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.d.ts +3 -0
  220. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js +149 -0
  221. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/patchRootTsconfig.js.map +7 -0
  222. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js +55 -0
  223. package/lib/cli/lint/internalLints/upgrade/patches/13.1.1/upgradeNode.js.map +7 -0
  224. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +51 -17
  225. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
  226. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +34 -10
  227. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +1 -1
  228. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +44 -10
  229. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
  230. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +46 -12
  231. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
  232. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +28 -4
  233. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  234. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +49 -15
  235. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +2 -2
  236. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +45 -11
  237. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +2 -2
  238. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +34 -10
  239. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  240. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +45 -11
  241. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +2 -2
  242. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +45 -11
  243. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +2 -2
  244. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +47 -13
  245. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +2 -2
  246. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +28 -4
  247. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  248. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +45 -11
  249. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +2 -2
  250. package/lib/cli/lint/prettier.js +50 -15
  251. package/lib/cli/lint/prettier.js.map +3 -3
  252. package/lib/cli/lint/tsc.js +28 -4
  253. package/lib/cli/lint/tsc.js.map +1 -1
  254. package/lib/cli/lint/types.js +16 -0
  255. package/lib/cli/lint/types.js.map +3 -3
  256. package/lib/cli/migrate/index.d.ts +5 -0
  257. package/lib/cli/migrate/index.js +79 -15
  258. package/lib/cli/migrate/index.js.map +2 -2
  259. package/lib/cli/migrate/nodeVersion/checks.d.ts +1 -14
  260. package/lib/cli/migrate/nodeVersion/checks.js +51 -120
  261. package/lib/cli/migrate/nodeVersion/checks.js.map +2 -2
  262. package/lib/cli/migrate/nodeVersion/index.d.ts +8 -2
  263. package/lib/cli/migrate/nodeVersion/index.js +239 -65
  264. package/lib/cli/migrate/nodeVersion/index.js.map +3 -3
  265. package/lib/cli/migrate/nodeVersion/upgrade.d.ts +8 -0
  266. package/lib/cli/migrate/nodeVersion/upgrade.js +179 -0
  267. package/lib/cli/migrate/nodeVersion/upgrade.js.map +7 -0
  268. package/lib/cli/node/index.js +57 -20
  269. package/lib/cli/node/index.js.map +3 -3
  270. package/lib/cli/release/index.js +28 -4
  271. package/lib/cli/release/index.js.map +1 -1
  272. package/lib/cli/start/index.js +50 -16
  273. package/lib/cli/start/index.js.map +3 -3
  274. package/lib/cli/test/index.js +44 -4
  275. package/lib/cli/test/index.js.map +2 -2
  276. package/lib/cli/test/reporters/github/annotations.d.ts +9 -0
  277. package/lib/cli/test/reporters/github/annotations.js +102 -0
  278. package/lib/cli/test/reporters/github/annotations.js.map +7 -0
  279. package/lib/cli/test/reporters/github/index.d.ts +5 -0
  280. package/lib/cli/test/reporters/github/index.js +74 -0
  281. package/lib/cli/test/reporters/github/index.js.map +7 -0
  282. package/lib/cli/version/index.js +30 -6
  283. package/lib/cli/version/index.js.map +1 -1
  284. package/lib/index.d.ts +1 -0
  285. package/lib/index.js +46 -6
  286. package/lib/index.js.map +2 -2
  287. package/lib/skuba.js +45 -26
  288. package/lib/skuba.js.map +3 -3
  289. package/lib/utils/args.js +43 -6
  290. package/lib/utils/args.js.map +2 -2
  291. package/lib/utils/command.js +42 -4
  292. package/lib/utils/command.js.map +3 -3
  293. package/lib/utils/copy.js +57 -20
  294. package/lib/utils/copy.js.map +2 -2
  295. package/lib/utils/dir.js +72 -32
  296. package/lib/utils/dir.js.map +2 -2
  297. package/lib/utils/env.js +26 -2
  298. package/lib/utils/env.js.map +1 -1
  299. package/lib/utils/error.js +47 -10
  300. package/lib/utils/error.js.map +1 -1
  301. package/lib/utils/exec.d.ts +3 -2
  302. package/lib/utils/exec.js +62 -24
  303. package/lib/utils/exec.js.map +3 -3
  304. package/lib/utils/fs.js +40 -6
  305. package/lib/utils/fs.js.map +2 -2
  306. package/lib/utils/help.js +30 -6
  307. package/lib/utils/help.js.map +1 -1
  308. package/lib/utils/logging.d.ts +9 -10
  309. package/lib/utils/logging.js +38 -11
  310. package/lib/utils/logging.js.map +2 -2
  311. package/lib/utils/logo.js +52 -25
  312. package/lib/utils/logo.js.map +2 -2
  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.d.ts +3 -3
  333. package/lib/utils/worker.js +35 -10
  334. package/lib/utils/worker.js.map +1 -1
  335. package/lib/wrapper/function-arguments.d.js +1 -0
  336. package/lib/wrapper/functionHandler.js +49 -18
  337. package/lib/wrapper/functionHandler.js.map +2 -2
  338. package/lib/wrapper/http.js +43 -8
  339. package/lib/wrapper/http.js.map +2 -2
  340. package/lib/wrapper/index.js +7 -6
  341. package/lib/wrapper/index.js.map +1 -1
  342. package/lib/wrapper/main.js +42 -8
  343. package/lib/wrapper/main.js.map +3 -3
  344. package/lib/wrapper/requestListener.js +47 -13
  345. package/lib/wrapper/requestListener.js.map +2 -2
  346. package/lib/wrapper/server.js +28 -4
  347. package/lib/wrapper/server.js.map +2 -2
  348. package/package.json +44 -45
  349. package/template/base/_.prettierrc.js +1 -1
  350. package/template/base/_eslint.config.js +1 -1
  351. package/template/base/_pnpm-workspace.yaml +4 -3
  352. package/template/base/jest.config.ts +19 -0
  353. package/template/base/jest.setup.ts +3 -0
  354. package/template/express-rest-api/.buildkite/pipeline.yml +1 -1
  355. package/template/express-rest-api/.nvmrc +1 -1
  356. package/template/express-rest-api/package.json +8 -9
  357. package/template/express-rest-api/skuba.template.js +1 -1
  358. package/template/express-rest-api/src/app.test.ts +0 -1
  359. package/template/greeter/.buildkite/pipeline.yml +1 -1
  360. package/template/greeter/.nvmrc +1 -1
  361. package/template/greeter/package.json +4 -5
  362. package/template/greeter/skuba.template.js +1 -1
  363. package/template/greeter/src/app.test.ts +1 -3
  364. package/template/koa-rest-api/.buildkite/pipeline.yml +1 -1
  365. package/template/koa-rest-api/.nvmrc +1 -1
  366. package/template/koa-rest-api/package.json +9 -11
  367. package/template/koa-rest-api/skuba.template.js +1 -1
  368. package/template/koa-rest-api/src/api/jobs/getJobs.test.ts +0 -2
  369. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +0 -2
  370. package/template/koa-rest-api/src/app.test.ts +0 -2
  371. package/template/koa-rest-api/src/framework/server.test.ts +2 -2
  372. package/template/koa-rest-api/src/framework/validation.test.ts +0 -2
  373. package/template/koa-rest-api/src/testing/metrics.ts +0 -2
  374. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  375. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
  376. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +7 -21
  377. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +9 -11
  378. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +3 -3
  379. package/template/lambda-sqs-worker-cdk/infra/config.ts +2 -4
  380. package/template/lambda-sqs-worker-cdk/package.json +9 -9
  381. package/template/lambda-sqs-worker-cdk/skuba.template.js +13 -1
  382. package/template/lambda-sqs-worker-cdk/src/app.test.ts +13 -22
  383. package/template/lambda-sqs-worker-cdk/src/framework/handler.test.ts +0 -1
  384. package/template/lambda-sqs-worker-cdk/src/framework/validation.test.ts +31 -33
  385. package/template/lambda-sqs-worker-cdk/src/services/jobScorer.test.ts +2 -8
  386. package/template/lambda-sqs-worker-cdk/src/services/pipelineEventSender.test.ts +2 -3
  387. package/template/lambda-sqs-worker-cdk/src/testing/services.ts +3 -4
  388. package/template/oss-npm-package/.github/workflows/release.yml +1 -1
  389. package/template/oss-npm-package/.github/workflows/validate.yml +1 -1
  390. package/template/oss-npm-package/.nvmrc +1 -1
  391. package/template/oss-npm-package/_package.json +0 -1
  392. package/template/oss-npm-package/skuba.template.js +1 -1
  393. package/template/oss-npm-package/src/index.test.ts +0 -2
  394. package/template/private-npm-package/.nvmrc +1 -1
  395. package/template/private-npm-package/_package.json +1 -2
  396. package/template/private-npm-package/skuba.template.js +2 -2
  397. package/template/private-npm-package/src/index.test.ts +0 -2
  398. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +0 -11
  399. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +0 -7
  400. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +0 -34
  401. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +0 -7
  402. package/lib/enquirer.d.js +0 -1
  403. package/lib/enquirer.d.js.map +0 -7
  404. package/lib/eslint.d.js +0 -1
  405. package/lib/eslint.d.js.map +0 -7
  406. package/template/base/vitest.config.ts +0 -25
  407. /package/lib/cli/lint/internalLints/upgrade/patches/{9.1.0 → 13.1.1}/index.d.ts +0 -0
  408. /package/lib/cli/lint/internalLints/upgrade/patches/{9.1.0 → 13.1.1}/upgradeNode.d.ts +0 -0
@@ -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
- "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.19.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-esmify-skuba-20251105034821"
22
+ "skuba-dive": "4.0.0-hacky-hack-lang-json-20260109051908"
24
23
  },
25
24
  "devDependencies": {
26
25
  "@types/node": "^22.13.10",
27
- "skuba": "14.0.0-esmify-skuba-20251105034821"
26
+ "skuba": "14.0.0-hacky-hack-lang-json-20260109051908"
28
27
  },
29
- "packageManager": "pnpm@10.19.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.2.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.19.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
  {
@@ -184,7 +184,6 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
184
184
  "DD_LAMBDA_HANDLER": "index.handler",
185
185
  "DD_LOGS_INJECTION": "false",
186
186
  "DD_MERGE_XRAY_TRACES": "false",
187
- "DD_SERVERLESS_APPSEC_ENABLED": "false",
188
187
  "DD_SERVERLESS_LOGS_ENABLED": "false",
189
188
  "DD_SERVICE": "serviceName",
190
189
  "DD_SITE": "datadoghq.com",
@@ -217,7 +216,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
217
216
  {
218
217
  "Ref": "AWS::Region",
219
218
  },
220
- ":464622532012:layer:Datadog-Node22-x:x",
219
+ ":464622532012:layer:Datadog-Node24-x:x",
221
220
  ],
222
221
  ],
223
222
  },
@@ -242,7 +241,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
242
241
  "Arn",
243
242
  ],
244
243
  },
245
- "Runtime": "nodejs22.x",
244
+ "Runtime": "nodejs24.x",
246
245
  "Tags": [
247
246
  {
248
247
  "Key": "aws-codedeploy-hooks",
@@ -763,14 +762,6 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
763
762
  },
764
763
  },
765
764
  "Resources": {
766
- "datadogapikeysecret046FEF06": {
767
- "DeletionPolicy": "Delete",
768
- "Properties": {
769
- "GenerateSecretString": {},
770
- },
771
- "Type": "AWS::SecretsManager::Secret",
772
- "UpdateReplacePolicy": "Delete",
773
- },
774
765
  "destinationtopicDCE2E0B8": {
775
766
  "Properties": {
776
767
  "KmsMasterKeyId": {
@@ -928,16 +919,13 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
928
919
  },
929
920
  "Environment": {
930
921
  "Variables": {
931
- "DD_API_KEY_SECRET_ARN": {
932
- "Ref": "datadogapikeysecret046FEF06",
933
- },
922
+ "DD_API_KEY_SECRET_ARN": "arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key",
934
923
  "DD_CAPTURE_LAMBDA_PAYLOAD": "false",
935
924
  "DD_ENV": "production",
936
925
  "DD_FLUSH_TO_LOG": "false",
937
926
  "DD_LAMBDA_HANDLER": "index.handler",
938
927
  "DD_LOGS_INJECTION": "false",
939
928
  "DD_MERGE_XRAY_TRACES": "false",
940
- "DD_SERVERLESS_APPSEC_ENABLED": "false",
941
929
  "DD_SERVERLESS_LOGS_ENABLED": "false",
942
930
  "DD_SERVICE": "serviceName",
943
931
  "DD_SITE": "datadoghq.com",
@@ -970,7 +958,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
970
958
  {
971
959
  "Ref": "AWS::Region",
972
960
  },
973
- ":464622532012:layer:Datadog-Node22-x:x",
961
+ ":464622532012:layer:Datadog-Node24-x:x",
974
962
  ],
975
963
  ],
976
964
  },
@@ -995,7 +983,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
995
983
  "Arn",
996
984
  ],
997
985
  },
998
- "Runtime": "nodejs22.x",
986
+ "Runtime": "nodejs24.x",
999
987
  "Tags": [
1000
988
  {
1001
989
  "Key": "aws-codedeploy-hooks",
@@ -1394,9 +1382,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
1394
1382
  "secretsmanager:DescribeSecret",
1395
1383
  ],
1396
1384
  "Effect": "Allow",
1397
- "Resource": {
1398
- "Ref": "datadogapikeysecret046FEF06",
1399
- },
1385
+ "Resource": "arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key-??????",
1400
1386
  },
1401
1387
  {
1402
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
 
@@ -19,7 +19,7 @@ import { DatadogLambda } from 'datadog-cdk-constructs-v2';
19
19
  import { config } from './config.js';
20
20
 
21
21
  // Updated by https://github.com/seek-oss/rynovate
22
- const DATADOG_EXTENSION_LAYER_VERSION = 88;
22
+ const DATADOG_EXTENSION_LAYER_VERSION = 91;
23
23
 
24
24
  // Updated by https://github.com/seek-oss/rynovate
25
25
  const DATADOG_NODE_LAYER_VERSION = 126;
@@ -86,7 +86,7 @@ export class AppStack extends Stack {
86
86
 
87
87
  const worker = new aws_lambda_nodejs.NodejsFunction(this, 'worker', {
88
88
  architecture: aws_lambda.Architecture[architecture],
89
- runtime: aws_lambda.Runtime.NODEJS_22_X,
89
+ runtime: aws_lambda.Runtime.NODEJS_24_X,
90
90
  memorySize: 512,
91
91
  environmentEncryption: kmsKey,
92
92
  // aws-sdk-v3 sets this to true by default, so it is not necessary to set the environment variable
@@ -96,7 +96,7 @@ export class AppStack extends Stack {
96
96
  timeout: Duration.seconds(30),
97
97
  bundling: {
98
98
  sourceMap: true,
99
- target: 'node22',
99
+ target: 'node24',
100
100
  // aws-sdk-v3 is set as an external module by default, but we want it to be bundled with the function
101
101
  externalModules: [],
102
102
  esbuildArgs: {
@@ -40,8 +40,7 @@ const configs: Record<Deployment, Config> = {
40
40
  },
41
41
  },
42
42
 
43
- datadogApiKeySecretArn:
44
- 'arn:aws:secretsmanager:<Region>:<AccountId>:secret:TODO_SECRET_NAME',
43
+ datadogApiKeySecretArn: '<%- devDataDogApiKeySecretArn %>',
45
44
  sourceSnsTopicArn: 'TODO: sourceSnsTopicArn',
46
45
  },
47
46
  prod: {
@@ -57,8 +56,7 @@ const configs: Record<Deployment, Config> = {
57
56
  },
58
57
  },
59
58
 
60
- datadogApiKeySecretArn:
61
- 'arn:aws:secretsmanager:<Region>:<AccountId>:secret:TODO_SECRET_NAME',
59
+ datadogApiKeySecretArn: '<%- prodDataDogApiKeySecretArn %>',
62
60
  sourceSnsTopicArn: 'TODO: sourceSnsTopicArn',
63
61
  },
64
62
  };
@@ -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,10 +20,11 @@
21
20
  "dependencies": {
22
21
  "@aws-sdk/client-codedeploy": "^3.363.0",
23
22
  "@aws-sdk/client-lambda": "^3.363.0",
23
+ "@aws-sdk/client-secrets-manager": "^3.363.0",
24
24
  "@aws-sdk/client-sns": "^3.363.0",
25
25
  "@seek/aws-codedeploy-hooks": "^2.0.0",
26
26
  "@seek/logger": "^11.1.0",
27
- "skuba-dive": "3.0.0-esmify-skuba-20251105034821",
27
+ "skuba-dive": "4.0.0-hacky-hack-lang-json-20260109051908",
28
28
  "zod": "^4.0.0"
29
29
  },
30
30
  "devDependencies": {
@@ -33,19 +33,19 @@
33
33
  "@types/chance": "^1.1.3",
34
34
  "@types/node": "^22.13.10",
35
35
  "aws-cdk": "^2.1010.0",
36
- "aws-cdk-lib": "^2.190.0",
37
- "aws-sdk-client-mock": "^4.1.0",
38
- "aws-sdk-client-mock-vitest": "^6.2.1",
36
+ "aws-cdk-lib": "^2.232.1",
37
+ "aws-sdk-client-mock": "^4.0.0",
38
+ "aws-sdk-client-mock-jest": "^4.0.0",
39
39
  "chance": "^1.1.8",
40
40
  "constructs": "^10.0.17",
41
- "datadog-cdk-constructs-v2": "^3.0.0",
41
+ "datadog-cdk-constructs-v2": "^3.4.0",
42
42
  "datadog-lambda-js": "^12.0.0",
43
43
  "dd-trace": "^5.0.0",
44
44
  "pino-pretty": "^13.0.0",
45
- "skuba": "14.0.0-esmify-skuba-20251105034821"
45
+ "skuba": "14.0.0-hacky-hack-lang-json-20260109051908"
46
46
  },
47
- "packageManager": "pnpm@10.19.0",
47
+ "packageManager": "pnpm@10.27.0",
48
48
  "engines": {
49
- "node": ">=22"
49
+ "node": ">=24"
50
50
  }
51
51
  }
@@ -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#handler',
7
7
  fields: [
8
8
  {
@@ -22,6 +22,18 @@ export default {
22
22
  initial: 'my-team-aws-account-prod:cicd',
23
23
  validate: (value) => /^.+:.+$/.test(value),
24
24
  },
25
+ {
26
+ name: 'devDataDogApiKeySecretArn',
27
+ message: 'Dev DataDog API Key Secret ARN',
28
+ initial:
29
+ 'arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key',
30
+ },
31
+ {
32
+ name: 'prodDataDogApiKeySecretArn',
33
+ message: 'Prod DataDog API Key Secret ARN',
34
+ initial:
35
+ 'arn:aws:secretsmanager:<Region>:<AccountId>:secret:datadog-api-key',
36
+ },
25
37
  ],
26
38
  packageManager: 'pnpm',
27
39
  type: 'application',