skuba 11.1.0-jest30-20250619234954 → 12.0.0-enforce-file-extensions-20250618112549

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 (421) hide show
  1. package/jest/moduleNameMapper.js +4 -1
  2. package/jest/transform.js +15 -1
  3. package/jest-preset.js +7 -1
  4. package/lib/api/buildkite/annotate.js +2 -2
  5. package/lib/api/buildkite/annotate.js.map +1 -1
  6. package/lib/api/buildkite/index.d.ts +3 -3
  7. package/lib/api/buildkite/index.js +2 -2
  8. package/lib/api/buildkite/index.js.map +1 -1
  9. package/lib/api/git/commitAllChanges.d.ts +2 -2
  10. package/lib/api/git/commitAllChanges.js +3 -3
  11. package/lib/api/git/commitAllChanges.js.map +1 -1
  12. package/lib/api/git/getChangedFiles.js +1 -1
  13. package/lib/api/git/getChangedFiles.js.map +1 -1
  14. package/lib/api/git/index.d.ts +12 -12
  15. package/lib/api/git/index.js +11 -11
  16. package/lib/api/git/index.js.map +1 -1
  17. package/lib/api/git/pull.js +2 -2
  18. package/lib/api/git/pull.js.map +1 -1
  19. package/lib/api/git/push.js +2 -2
  20. package/lib/api/git/push.js.map +1 -1
  21. package/lib/api/git/reset.js +1 -1
  22. package/lib/api/git/reset.js.map +1 -1
  23. package/lib/api/github/checkRun.js +4 -4
  24. package/lib/api/github/checkRun.js.map +1 -1
  25. package/lib/api/github/environment.js +1 -1
  26. package/lib/api/github/environment.js.map +1 -1
  27. package/lib/api/github/index.d.ts +7 -7
  28. package/lib/api/github/index.js +6 -6
  29. package/lib/api/github/index.js.map +1 -1
  30. package/lib/api/github/issueComment.js +4 -4
  31. package/lib/api/github/issueComment.js.map +1 -1
  32. package/lib/api/github/pullRequest.js +3 -3
  33. package/lib/api/github/pullRequest.js.map +1 -1
  34. package/lib/api/github/push.d.ts +1 -1
  35. package/lib/api/github/push.js +3 -3
  36. package/lib/api/github/push.js.map +1 -1
  37. package/lib/api/jest/index.js +2 -2
  38. package/lib/api/jest/index.js.map +1 -1
  39. package/lib/api/net/compose.js +1 -1
  40. package/lib/api/net/compose.js.map +1 -1
  41. package/lib/api/net/index.d.ts +1 -1
  42. package/lib/api/net/index.js +1 -1
  43. package/lib/api/net/index.js.map +1 -1
  44. package/lib/api/net/waitFor.d.ts +1 -1
  45. package/lib/api/net/waitFor.js +2 -2
  46. package/lib/api/net/waitFor.js.map +1 -1
  47. package/lib/cli/adapter/eslint.d.ts +1 -1
  48. package/lib/cli/adapter/eslint.js +1 -1
  49. package/lib/cli/adapter/eslint.js.map +1 -1
  50. package/lib/cli/adapter/prettier.d.ts +1 -1
  51. package/lib/cli/adapter/prettier.js +4 -4
  52. package/lib/cli/adapter/prettier.js.map +2 -2
  53. package/lib/cli/build/assets.d.ts +1 -1
  54. package/lib/cli/build/assets.js +4 -4
  55. package/lib/cli/build/assets.js.map +1 -1
  56. package/lib/cli/build/esbuild.js +3 -3
  57. package/lib/cli/build/esbuild.js.map +1 -1
  58. package/lib/cli/build/index.js +6 -6
  59. package/lib/cli/build/index.js.map +1 -1
  60. package/lib/cli/build/tsc.d.ts +1 -1
  61. package/lib/cli/build/tsc.js +2 -2
  62. package/lib/cli/build/tsc.js.map +1 -1
  63. package/lib/cli/buildPackage/index.js +3 -3
  64. package/lib/cli/buildPackage/index.js.map +1 -1
  65. package/lib/cli/configure/analyseConfiguration.d.ts +2 -2
  66. package/lib/cli/configure/analyseConfiguration.js +2 -2
  67. package/lib/cli/configure/analyseConfiguration.js.map +1 -1
  68. package/lib/cli/configure/analyseDependencies.d.ts +1 -1
  69. package/lib/cli/configure/analyseDependencies.js +6 -6
  70. package/lib/cli/configure/analyseDependencies.js.map +1 -1
  71. package/lib/cli/configure/analysis/files.js +1 -1
  72. package/lib/cli/configure/analysis/files.js.map +1 -1
  73. package/lib/cli/configure/analysis/git.js +2 -2
  74. package/lib/cli/configure/analysis/git.js.map +1 -1
  75. package/lib/cli/configure/analysis/package.d.ts +1 -1
  76. package/lib/cli/configure/analysis/package.js +2 -2
  77. package/lib/cli/configure/analysis/package.js.map +1 -1
  78. package/lib/cli/configure/analysis/project.d.ts +1 -1
  79. package/lib/cli/configure/analysis/project.js +4 -4
  80. package/lib/cli/configure/analysis/project.js.map +2 -2
  81. package/lib/cli/configure/dependencies/index.d.ts +5 -5
  82. package/lib/cli/configure/dependencies/index.js +5 -5
  83. package/lib/cli/configure/dependencies/index.js.map +1 -1
  84. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.d.ts +2 -2
  85. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +1 -1
  86. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +1 -1
  87. package/lib/cli/configure/dependencies/seekKoala.d.ts +2 -2
  88. package/lib/cli/configure/dependencies/seekKoala.js +1 -1
  89. package/lib/cli/configure/dependencies/seekKoala.js.map +1 -1
  90. package/lib/cli/configure/dependencies/skuba.d.ts +2 -2
  91. package/lib/cli/configure/dependencies/skuba.js +1 -1
  92. package/lib/cli/configure/dependencies/skuba.js.map +1 -1
  93. package/lib/cli/configure/dependencies/skubaDeps.d.ts +1 -1
  94. package/lib/cli/configure/dependencies/skubaDeps.js.map +1 -1
  95. package/lib/cli/configure/dependencies/skubaDive.d.ts +2 -2
  96. package/lib/cli/configure/dependencies/skubaDive.js +1 -1
  97. package/lib/cli/configure/dependencies/skubaDive.js.map +1 -1
  98. package/lib/cli/configure/ensureTemplateCompletion.d.ts +1 -1
  99. package/lib/cli/configure/ensureTemplateCompletion.js +6 -6
  100. package/lib/cli/configure/ensureTemplateCompletion.js.map +1 -1
  101. package/lib/cli/configure/getEntryPoint.d.ts +2 -2
  102. package/lib/cli/configure/getEntryPoint.js +3 -3
  103. package/lib/cli/configure/getEntryPoint.js.map +1 -1
  104. package/lib/cli/configure/getProjectType.d.ts +2 -2
  105. package/lib/cli/configure/getProjectType.js +3 -3
  106. package/lib/cli/configure/getProjectType.js.map +1 -1
  107. package/lib/cli/configure/index.js +14 -14
  108. package/lib/cli/configure/index.js.map +1 -1
  109. package/lib/cli/configure/modules/eslint.d.ts +1 -1
  110. package/lib/cli/configure/modules/eslint.js +4 -4
  111. package/lib/cli/configure/modules/eslint.js.map +1 -1
  112. package/lib/cli/configure/modules/ignore.d.ts +1 -1
  113. package/lib/cli/configure/modules/ignore.js +2 -2
  114. package/lib/cli/configure/modules/ignore.js.map +1 -1
  115. package/lib/cli/configure/modules/index.d.ts +1 -1
  116. package/lib/cli/configure/modules/index.js +10 -10
  117. package/lib/cli/configure/modules/index.js.map +1 -1
  118. package/lib/cli/configure/modules/jest.d.ts +1 -1
  119. package/lib/cli/configure/modules/jest.js +4 -4
  120. package/lib/cli/configure/modules/jest.js.map +1 -1
  121. package/lib/cli/configure/modules/nodemon.d.ts +1 -1
  122. package/lib/cli/configure/modules/nodemon.js +1 -1
  123. package/lib/cli/configure/modules/nodemon.js.map +1 -1
  124. package/lib/cli/configure/modules/package.d.ts +1 -1
  125. package/lib/cli/configure/modules/package.js +4 -4
  126. package/lib/cli/configure/modules/package.js.map +1 -1
  127. package/lib/cli/configure/modules/prettier.d.ts +1 -1
  128. package/lib/cli/configure/modules/prettier.js +4 -4
  129. package/lib/cli/configure/modules/prettier.js.map +1 -1
  130. package/lib/cli/configure/modules/renovate.d.ts +1 -1
  131. package/lib/cli/configure/modules/renovate.js +5 -5
  132. package/lib/cli/configure/modules/renovate.js.map +1 -1
  133. package/lib/cli/configure/modules/serverless.d.ts +1 -1
  134. package/lib/cli/configure/modules/serverless.js.map +1 -1
  135. package/lib/cli/configure/modules/skubaDive.d.ts +1 -1
  136. package/lib/cli/configure/modules/skubaDive.js +4 -4
  137. package/lib/cli/configure/modules/skubaDive.js.map +1 -1
  138. package/lib/cli/configure/modules/tslint.d.ts +1 -1
  139. package/lib/cli/configure/modules/tslint.js +1 -1
  140. package/lib/cli/configure/modules/tslint.js.map +1 -1
  141. package/lib/cli/configure/processing/deleteFiles.d.ts +1 -1
  142. package/lib/cli/configure/processing/deleteFiles.js.map +1 -1
  143. package/lib/cli/configure/processing/json.js +2 -2
  144. package/lib/cli/configure/processing/json.js.map +1 -1
  145. package/lib/cli/configure/processing/loadFiles.d.ts +1 -1
  146. package/lib/cli/configure/processing/loadFiles.js.map +1 -1
  147. package/lib/cli/configure/processing/module.d.ts +1 -1
  148. package/lib/cli/configure/processing/module.js +1 -1
  149. package/lib/cli/configure/processing/module.js.map +1 -1
  150. package/lib/cli/configure/processing/package.d.ts +1 -1
  151. package/lib/cli/configure/processing/package.js +2 -2
  152. package/lib/cli/configure/processing/package.js.map +1 -1
  153. package/lib/cli/configure/processing/prettier.d.ts +1 -1
  154. package/lib/cli/configure/processing/prettier.js +6 -8
  155. package/lib/cli/configure/processing/prettier.js.map +3 -3
  156. package/lib/cli/configure/processing/typescript.js +1 -1
  157. package/lib/cli/configure/processing/typescript.js.map +1 -1
  158. package/lib/cli/configure/types.d.ts +2 -2
  159. package/lib/cli/configure/types.js.map +1 -1
  160. package/lib/cli/format/index.js +5 -5
  161. package/lib/cli/format/index.js.map +1 -1
  162. package/lib/cli/help/index.js +2 -2
  163. package/lib/cli/help/index.js.map +1 -1
  164. package/lib/cli/init/getConfig.d.ts +3 -3
  165. package/lib/cli/init/getConfig.js +9 -9
  166. package/lib/cli/init/getConfig.js.map +1 -1
  167. package/lib/cli/init/git.js +2 -2
  168. package/lib/cli/init/git.js.map +1 -1
  169. package/lib/cli/init/index.js +15 -15
  170. package/lib/cli/init/index.js.map +1 -1
  171. package/lib/cli/init/prompts.d.ts +1 -1
  172. package/lib/cli/init/prompts.js +2 -2
  173. package/lib/cli/init/prompts.js.map +1 -1
  174. package/lib/cli/init/types.js +2 -2
  175. package/lib/cli/init/types.js.map +1 -1
  176. package/lib/cli/init/writePackageJson.d.ts +1 -1
  177. package/lib/cli/init/writePackageJson.js +2 -2
  178. package/lib/cli/init/writePackageJson.js.map +1 -1
  179. package/lib/cli/lint/annotate/buildkite/eslint.d.ts +1 -1
  180. package/lib/cli/lint/annotate/buildkite/eslint.js +1 -1
  181. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -1
  182. package/lib/cli/lint/annotate/buildkite/index.d.ts +4 -4
  183. package/lib/cli/lint/annotate/buildkite/index.js +5 -5
  184. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  185. package/lib/cli/lint/annotate/buildkite/internal.d.ts +1 -1
  186. package/lib/cli/lint/annotate/buildkite/internal.js +1 -1
  187. package/lib/cli/lint/annotate/buildkite/internal.js.map +1 -1
  188. package/lib/cli/lint/annotate/buildkite/prettier.d.ts +1 -1
  189. package/lib/cli/lint/annotate/buildkite/prettier.js +1 -1
  190. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -1
  191. package/lib/cli/lint/annotate/buildkite/tsc.d.ts +1 -1
  192. package/lib/cli/lint/annotate/buildkite/tsc.js +1 -1
  193. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -1
  194. package/lib/cli/lint/annotate/github/eslint.d.ts +2 -2
  195. package/lib/cli/lint/annotate/github/eslint.js.map +1 -1
  196. package/lib/cli/lint/annotate/github/index.d.ts +4 -4
  197. package/lib/cli/lint/annotate/github/index.js +6 -6
  198. package/lib/cli/lint/annotate/github/index.js.map +2 -2
  199. package/lib/cli/lint/annotate/github/internal.d.ts +2 -2
  200. package/lib/cli/lint/annotate/github/internal.js.map +1 -1
  201. package/lib/cli/lint/annotate/github/prettier.d.ts +2 -2
  202. package/lib/cli/lint/annotate/github/prettier.js.map +1 -1
  203. package/lib/cli/lint/annotate/github/tsc.d.ts +2 -2
  204. package/lib/cli/lint/annotate/github/tsc.js.map +1 -1
  205. package/lib/cli/lint/annotate/index.d.ts +4 -4
  206. package/lib/cli/lint/annotate/index.js +2 -2
  207. package/lib/cli/lint/annotate/index.js.map +1 -1
  208. package/lib/cli/lint/autofix.d.ts +2 -2
  209. package/lib/cli/lint/autofix.js +11 -11
  210. package/lib/cli/lint/autofix.js.map +1 -1
  211. package/lib/cli/lint/eslint.d.ts +2 -2
  212. package/lib/cli/lint/eslint.js +3 -3
  213. package/lib/cli/lint/eslint.js.map +1 -1
  214. package/lib/cli/lint/external.d.ts +3 -3
  215. package/lib/cli/lint/external.js +3 -3
  216. package/lib/cli/lint/external.js.map +1 -1
  217. package/lib/cli/lint/index.js +8 -8
  218. package/lib/cli/lint/index.js.map +1 -1
  219. package/lib/cli/lint/internal.d.ts +1 -1
  220. package/lib/cli/lint/internal.js +5 -5
  221. package/lib/cli/lint/internal.js.map +1 -1
  222. package/lib/cli/lint/internalLints/detectBadCodeowners.d.ts +2 -2
  223. package/lib/cli/lint/internalLints/detectBadCodeowners.js +2 -2
  224. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +1 -1
  225. package/lib/cli/lint/internalLints/noSkubaTemplateJs.d.ts +2 -2
  226. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +2 -2
  227. package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +1 -1
  228. package/lib/cli/lint/internalLints/patchRenovateConfig.d.ts +2 -2
  229. package/lib/cli/lint/internalLints/patchRenovateConfig.js +5 -5
  230. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +1 -1
  231. package/lib/cli/lint/internalLints/refreshConfigFiles.d.ts +3 -3
  232. package/lib/cli/lint/internalLints/refreshConfigFiles.js +7 -7
  233. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +1 -1
  234. package/lib/cli/lint/internalLints/upgrade/index.d.ts +3 -3
  235. package/lib/cli/lint/internalLints/upgrade/index.js +4 -4
  236. package/lib/cli/lint/internalLints/upgrade/index.js.map +1 -1
  237. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.d.ts +1 -1
  238. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js +1 -1
  239. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/index.js.map +1 -1
  240. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.d.ts +1 -1
  241. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js +1 -1
  242. package/lib/cli/lint/internalLints/upgrade/patches/10.0.4/removeYarnIgnoreOptionalFlags.js.map +2 -2
  243. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.d.ts +1 -1
  244. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +2 -2
  245. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +1 -1
  246. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.d.ts +1 -1
  247. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js +4 -4
  248. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/migrateNpmrcToPnpmWorkspace.js.map +2 -2
  249. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.d.ts +1 -1
  250. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +1 -1
  251. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +2 -2
  252. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.d.ts +1 -1
  253. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +4 -4
  254. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
  255. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.d.ts +1 -1
  256. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js +4 -4
  257. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/index.js.map +2 -2
  258. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.d.ts +1 -1
  259. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +2 -2
  260. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
  261. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.d.ts +1 -1
  262. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +3 -3
  263. package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
  264. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.d.ts +1 -1
  265. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +1 -1
  266. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +1 -1
  267. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.d.ts +1 -1
  268. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +1 -1
  269. package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +2 -2
  270. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.d.ts +1 -1
  271. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +1 -1
  272. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +2 -2
  273. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.d.ts +1 -1
  274. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +5 -5
  275. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +1 -1
  276. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.d.ts +1 -1
  277. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js +1 -1
  278. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/moveNpmrcMounts.js.map +2 -2
  279. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.d.ts +1 -1
  280. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +1 -1
  281. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +2 -2
  282. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.d.ts +1 -1
  283. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js +1 -1
  284. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerImages.js.map +2 -2
  285. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.d.ts +1 -1
  286. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.js +5 -5
  287. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.js.map +2 -2
  288. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.d.ts +1 -1
  289. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js +1 -1
  290. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/index.js.map +1 -1
  291. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.d.ts +1 -1
  292. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js +1 -1
  293. package/lib/cli/lint/internalLints/upgrade/patches/9.0.1/patchPnpmDockerImages.js.map +2 -2
  294. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.d.ts +1 -1
  295. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +1 -1
  296. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +1 -1
  297. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.d.ts +1 -1
  298. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +2 -2
  299. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +2 -2
  300. package/lib/cli/lint/prettier.d.ts +2 -2
  301. package/lib/cli/lint/prettier.js +3 -3
  302. package/lib/cli/lint/prettier.js.map +1 -1
  303. package/lib/cli/lint/tsc.d.ts +1 -1
  304. package/lib/cli/lint/tsc.js +1 -1
  305. package/lib/cli/lint/tsc.js.map +1 -1
  306. package/lib/cli/migrate/index.js +2 -2
  307. package/lib/cli/migrate/index.js.map +1 -1
  308. package/lib/cli/migrate/nodeVersion/checks.js +1 -1
  309. package/lib/cli/migrate/nodeVersion/checks.js.map +1 -1
  310. package/lib/cli/migrate/nodeVersion/index.js +3 -3
  311. package/lib/cli/migrate/nodeVersion/index.js.map +1 -1
  312. package/lib/cli/node/index.js +3 -3
  313. package/lib/cli/node/index.js.map +1 -1
  314. package/lib/cli/release/index.js +1 -1
  315. package/lib/cli/release/index.js.map +1 -1
  316. package/lib/cli/start/index.js +4 -4
  317. package/lib/cli/start/index.js.map +1 -1
  318. package/lib/cli/test/reporters/github/annotations.d.ts +1 -1
  319. package/lib/cli/test/reporters/github/annotations.js.map +1 -1
  320. package/lib/cli/test/reporters/github/index.js +5 -5
  321. package/lib/cli/test/reporters/github/index.js.map +2 -2
  322. package/lib/cli/test/reporters/prettier/index.d.ts +4 -0
  323. package/lib/cli/test/reporters/prettier/index.js +67 -0
  324. package/lib/cli/test/reporters/prettier/index.js.map +7 -0
  325. package/lib/cli/version/index.js +2 -2
  326. package/lib/cli/version/index.js.map +1 -1
  327. package/lib/index.d.ts +5 -5
  328. package/lib/index.js +5 -5
  329. package/lib/index.js.map +1 -1
  330. package/lib/skuba.js +8 -8
  331. package/lib/skuba.js.map +1 -1
  332. package/lib/utils/args.js +1 -1
  333. package/lib/utils/args.js.map +1 -1
  334. package/lib/utils/copy.js +2 -2
  335. package/lib/utils/copy.js.map +1 -1
  336. package/lib/utils/dir.js +2 -2
  337. package/lib/utils/dir.js.map +1 -1
  338. package/lib/utils/error.js +2 -2
  339. package/lib/utils/error.js.map +1 -1
  340. package/lib/utils/exec.d.ts +1 -1
  341. package/lib/utils/exec.js +2 -2
  342. package/lib/utils/exec.js.map +1 -1
  343. package/lib/utils/help.js +2 -2
  344. package/lib/utils/help.js.map +1 -1
  345. package/lib/utils/logo.js +3 -3
  346. package/lib/utils/logo.js.map +1 -1
  347. package/lib/utils/manifest.js +1 -1
  348. package/lib/utils/manifest.js.map +1 -1
  349. package/lib/utils/packageManager.js +1 -1
  350. package/lib/utils/packageManager.js.map +1 -1
  351. package/lib/utils/template.js +2 -2
  352. package/lib/utils/template.js.map +1 -1
  353. package/lib/utils/version.js +2 -2
  354. package/lib/utils/version.js.map +1 -1
  355. package/lib/utils/wait.js +2 -2
  356. package/lib/utils/wait.js.map +1 -1
  357. package/lib/utils/worker.d.ts +3 -3
  358. package/lib/utils/worker.js +1 -1
  359. package/lib/utils/worker.js.map +1 -1
  360. package/lib/wrapper/functionHandler.js +3 -3
  361. package/lib/wrapper/functionHandler.js.map +1 -1
  362. package/lib/wrapper/http.js +1 -1
  363. package/lib/wrapper/http.js.map +1 -1
  364. package/lib/wrapper/index.js +3 -3
  365. package/lib/wrapper/index.js.map +1 -1
  366. package/lib/wrapper/main.js +2 -2
  367. package/lib/wrapper/main.js.map +1 -1
  368. package/lib/wrapper/requestListener.js +2 -2
  369. package/lib/wrapper/requestListener.js.map +1 -1
  370. package/package.json +12 -12
  371. package/template/express-rest-api/src/app.test.ts +1 -1
  372. package/template/express-rest-api/src/app.ts +3 -3
  373. package/template/express-rest-api/src/framework/logging.ts +1 -1
  374. package/template/express-rest-api/src/framework/metrics.ts +2 -2
  375. package/template/express-rest-api/src/listen.ts +4 -4
  376. package/template/greeter/package.json +1 -1
  377. package/template/greeter/src/app.test.ts +1 -1
  378. package/template/koa-rest-api/src/api/healthCheck.ts +1 -1
  379. package/template/koa-rest-api/src/api/index.ts +3 -3
  380. package/template/koa-rest-api/src/api/jobs/getJobs.test.ts +2 -2
  381. package/template/koa-rest-api/src/api/jobs/getJobs.ts +4 -4
  382. package/template/koa-rest-api/src/api/jobs/index.ts +3 -3
  383. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +3 -3
  384. package/template/koa-rest-api/src/api/jobs/postJob.ts +6 -6
  385. package/template/koa-rest-api/src/api/smokeTest.ts +2 -2
  386. package/template/koa-rest-api/src/app.test.ts +2 -2
  387. package/template/koa-rest-api/src/app.ts +3 -3
  388. package/template/koa-rest-api/src/framework/logging.ts +1 -1
  389. package/template/koa-rest-api/src/framework/metrics.ts +2 -2
  390. package/template/koa-rest-api/src/framework/server.test.ts +5 -5
  391. package/template/koa-rest-api/src/framework/server.ts +3 -3
  392. package/template/koa-rest-api/src/framework/validation.test.ts +4 -4
  393. package/template/koa-rest-api/src/framework/validation.ts +1 -1
  394. package/template/koa-rest-api/src/listen.ts +4 -4
  395. package/template/koa-rest-api/src/storage/jobs.ts +1 -1
  396. package/template/koa-rest-api/src/testing/logging.ts +1 -1
  397. package/template/koa-rest-api/src/testing/metrics.ts +1 -1
  398. package/template/koa-rest-api/src/testing/server.ts +1 -1
  399. package/template/koa-rest-api/src/testing/types.ts +1 -1
  400. package/template/koa-rest-api/tsconfig.json +18 -0
  401. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -1
  402. package/template/lambda-sqs-worker-cdk/infra/index.ts +2 -2
  403. package/template/lambda-sqs-worker-cdk/package.json +1 -1
  404. package/template/lambda-sqs-worker-cdk/src/app.test.ts +6 -6
  405. package/template/lambda-sqs-worker-cdk/src/app.ts +10 -7
  406. package/template/lambda-sqs-worker-cdk/src/framework/handler.test.ts +4 -4
  407. package/template/lambda-sqs-worker-cdk/src/framework/handler.ts +2 -2
  408. package/template/lambda-sqs-worker-cdk/src/framework/logging.ts +1 -1
  409. package/template/lambda-sqs-worker-cdk/src/framework/metrics.ts +1 -1
  410. package/template/lambda-sqs-worker-cdk/src/framework/validation.test.ts +2 -2
  411. package/template/lambda-sqs-worker-cdk/src/mapping/jobScorer.ts +2 -2
  412. package/template/lambda-sqs-worker-cdk/src/services/jobScorer.test.ts +3 -3
  413. package/template/lambda-sqs-worker-cdk/src/services/jobScorer.ts +3 -3
  414. package/template/lambda-sqs-worker-cdk/src/services/pipelineEventSender.test.ts +3 -3
  415. package/template/lambda-sqs-worker-cdk/src/services/pipelineEventSender.ts +2 -2
  416. package/template/lambda-sqs-worker-cdk/src/testing/handler.ts +1 -1
  417. package/template/lambda-sqs-worker-cdk/src/testing/logging.ts +1 -1
  418. package/template/lambda-sqs-worker-cdk/src/testing/services.ts +2 -2
  419. package/template/lambda-sqs-worker-cdk/src/testing/types.ts +1 -1
  420. package/template/oss-npm-package/src/index.test.ts +1 -1
  421. package/template/private-npm-package/src/index.test.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/wrapper/requestListener.ts"],
4
- "sourcesContent": ["import http from 'http';\n\nimport { isFunction, isIpPort, isObject } from '../utils/validation';\n\nimport { serveRequestListener, startServer } from './http';\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"],
4
+ "sourcesContent": ["import http from 'http';\n\nimport { isFunction, isIpPort, isObject } from '../utils/validation.js';\n\nimport { serveRequestListener, startServer } from './http.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
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,wBAA+C;AAE/C,IAAAA,eAAkD;AAoBlD,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,0BAAY,QAAQ,IAAI;AAAA,EACjC;AAGA,MACE,OAAO,WAAW,cAClB,OAAO,UACP,OAAO,kBAAkB,YAAAA,QAAK,QAC9B;AACA,eAAO,0BAAY,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
6
  "names": ["import_http", "http"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "11.1.0-jest30-20250619234954",
3
+ "version": "12.0.0-enforce-file-extensions-20250618112549",
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",
@@ -52,12 +52,12 @@
52
52
  "dependencies": {
53
53
  "@esbuild-plugins/tsconfig-paths": "^0.1.0",
54
54
  "@eslint/migrate-config": "~1.3.8",
55
- "@jest/types": "^30.0.0",
55
+ "@jest/types": "^29.0.0",
56
56
  "@octokit/graphql": "^9.0.0",
57
57
  "@octokit/graphql-schema": "^15.3.0",
58
58
  "@octokit/rest": "^21.0.0",
59
59
  "@octokit/types": "^14.0.0",
60
- "@types/jest": "^30.0.0",
60
+ "@types/jest": "^29.0.0",
61
61
  "@types/node": "^22.0.0",
62
62
  "chalk": "^4.1.0",
63
63
  "concurrently": "^9.0.0",
@@ -76,8 +76,8 @@
76
76
  "ignore": "^7.0.0",
77
77
  "is-installed-globally": "^0.4.0",
78
78
  "isomorphic-git": "^1.11.1",
79
- "jest": "^30.0.0",
80
- "jest-watch-typeahead": "^3.0.1",
79
+ "jest": "^29.0.1",
80
+ "jest-watch-typeahead": "^2.1.1",
81
81
  "lodash.mergewith": "^4.6.2",
82
82
  "minimist": "^1.2.6",
83
83
  "normalize-package-data": "^7.0.0",
@@ -91,20 +91,20 @@
91
91
  "semantic-release": "^24.2.3",
92
92
  "simple-git": "^3.5.0",
93
93
  "ts-dedent": "^2.2.0",
94
- "ts-jest": "^29.4.0",
94
+ "ts-jest": "^29.1.0",
95
95
  "ts-node": "^10.9.2",
96
96
  "tsconfig-paths": "^4.0.0",
97
97
  "tsconfig-seek": "2.0.0",
98
98
  "tsx": "^4.16.2",
99
99
  "typescript": "~5.8.0",
100
100
  "zod": "^3.22.4",
101
- "eslint-config-skuba": "6.1.0"
101
+ "eslint-config-skuba": "7.0.0-enforce-file-extensions-20250618112549"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@changesets/cli": "2.29.3",
105
105
  "@changesets/get-github-info": "0.6.0",
106
- "@jest/reporters": "30.0.2",
107
- "@jest/test-result": "30.0.2",
106
+ "@jest/reporters": "29.7.0",
107
+ "@jest/test-result": "29.7.0",
108
108
  "@types/ejs": "3.1.5",
109
109
  "@types/express": "5.0.1",
110
110
  "@types/fs-extra": "11.0.4",
@@ -120,7 +120,7 @@
120
120
  "enhanced-resolve": "5.18.1",
121
121
  "express": "5.1.0",
122
122
  "fastify": "5.3.2",
123
- "jest-diff": "30.0.2",
123
+ "jest-diff": "29.7.0",
124
124
  "jsonfile": "6.1.0",
125
125
  "koa": "3.0.0",
126
126
  "memfs": "4.17.1",
@@ -158,14 +158,14 @@
158
158
  "format": "pnpm --silent skuba format && pnpm format:packages",
159
159
  "format:packages": "pnpm --filter '!./template/**' format",
160
160
  "lint": "pnpm --silent skuba lint && pnpm --silent lint:md",
161
- "lint-all": "pnpm lint && pnpm lint:packages",
161
+ "lint:all": "pnpm lint && pnpm lint:packages",
162
162
  "lint:md": "remark --frail --quiet .",
163
163
  "lint:packages": "pnpm --filter '!./template/**' lint",
164
164
  "release": "pnpm --silent build && changeset publish",
165
165
  "skuba": "pnpm --silent build && pnpm --silent skuba:exec",
166
166
  "skuba:exec": "node --experimental-vm-modules --no-warnings=ExperimentalWarning lib/skuba",
167
167
  "stage": "changeset version && node ./.changeset/inject.js && pnpm format",
168
- "test": "pnpm --silent skuba test --selectProjects unit",
168
+ "test": "pnpm --silent skuba test --selectProjects unit --",
169
169
  "test:ci": "pnpm --silent skuba test --runInBand",
170
170
  "test:int": "pnpm --silent skuba test --selectProjects integration --runInBand",
171
171
  "test:template": "scripts/test-template.sh",
@@ -1,6 +1,6 @@
1
1
  import request from 'supertest';
2
2
 
3
- import app from './app';
3
+ import app from './app.js';
4
4
 
5
5
  const agent = request.agent(app);
6
6
 
@@ -1,9 +1,9 @@
1
- import './register';
1
+ import './register.js';
2
2
 
3
3
  import express from 'express';
4
4
 
5
- import { healthCheckHandler } from './api/healthCheck';
6
- import { smokeTestHandler } from './api/smokeTest';
5
+ import { healthCheckHandler } from './api/healthCheck.js';
6
+ import { smokeTestHandler } from './api/smokeTest.js';
7
7
 
8
8
  const app = express()
9
9
  // TODO: consider using a middleware that adds secure HTTP headers.
@@ -1,6 +1,6 @@
1
1
  import createLogger from '@seek/logger';
2
2
 
3
- import { config } from 'src/config';
3
+ import { config } from 'src/config.js';
4
4
 
5
5
  export const logger = createLogger({
6
6
  base: {
@@ -1,9 +1,9 @@
1
1
  import { StatsD } from 'hot-shots';
2
2
  import { createStatsDClient } from 'seek-datadog-custom-metrics';
3
3
 
4
- import { config } from 'src/config';
4
+ import { config } from 'src/config.js';
5
5
 
6
- import { logger } from './logging';
6
+ import { logger } from './logging.js';
7
7
 
8
8
  /* istanbul ignore next: StatsD client is not our responsibility */
9
9
  export const metricsClient = createStatsDClient(StatsD, config, (err) =>
@@ -1,8 +1,8 @@
1
- import './register';
1
+ import './register.js';
2
2
 
3
- import app from './app';
4
- import { config } from './config';
5
- import { logger } from './framework/logging';
3
+ import app from './app.js';
4
+ import { config } from './config.js';
5
+ import { logger } from './framework/logging.js';
6
6
 
7
7
  // If your application is deployed with more than 1 vCPU you can delete this
8
8
  // file and use a clustering utility to run `lib/app`.
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^22.13.10",
20
- "skuba": "11.1.0-jest30-20250619234954"
20
+ "skuba": "12.0.0-enforce-file-extensions-20250618112549"
21
21
  },
22
22
  "packageManager": "pnpm@10.12.1",
23
23
  "engines": {
@@ -1,4 +1,4 @@
1
- import * as app from './app';
1
+ import * as app from './app.js';
2
2
 
3
3
  describe('app', () => {
4
4
  it('is importable', () => expect(app).toEqual({}));
@@ -1,4 +1,4 @@
1
- import type { Middleware } from 'src/types/koa';
1
+ import type { Middleware } from 'src/types/koa.js';
2
2
 
3
3
  /**
4
4
  * Signifies that the API is available to serve requests.
@@ -1,8 +1,8 @@
1
1
  import Router from '@koa/router';
2
2
 
3
- import { healthCheckHandler } from './healthCheck';
4
- import { jobRouter } from './jobs';
5
- import { smokeTestHandler } from './smokeTest';
3
+ import { healthCheckHandler } from './healthCheck.js';
4
+ import { jobRouter } from './jobs/index.js';
5
+ import { smokeTestHandler } from './smokeTest.js';
6
6
 
7
7
  export const router = new Router()
8
8
  .get('/health', healthCheckHandler)
@@ -1,6 +1,6 @@
1
- import { agentFromRouter } from 'src/testing/server';
1
+ import { agentFromRouter } from 'src/testing/server.js';
2
2
 
3
- import { jobRouter } from '.';
3
+ import { jobRouter } from './index.js';
4
4
 
5
5
  const agent = agentFromRouter(jobRouter);
6
6
 
@@ -1,7 +1,7 @@
1
- import { logger } from 'src/framework/logging';
2
- import { metricsClient } from 'src/framework/metrics';
3
- import * as storage from 'src/storage/jobs';
4
- import type { Middleware } from 'src/types/koa';
1
+ import { logger } from 'src/framework/logging.js';
2
+ import { metricsClient } from 'src/framework/metrics.js';
3
+ import * as storage from 'src/storage/jobs.js';
4
+ import type { Middleware } from 'src/types/koa.js';
5
5
 
6
6
  export const getJobsHandler: Middleware = async (ctx) => {
7
7
  const jobs = await storage.readJobs();
@@ -1,9 +1,9 @@
1
1
  import Router from '@koa/router';
2
2
 
3
- import { jsonBodyParser } from 'src/framework/bodyParser';
3
+ import { jsonBodyParser } from 'src/framework/bodyParser.js';
4
4
 
5
- import { getJobsHandler } from './getJobs';
6
- import { postJobHandler } from './postJob';
5
+ import { getJobsHandler } from './getJobs.js';
6
+ import { postJobHandler } from './postJob.js';
7
7
 
8
8
  export const jobRouter = new Router()
9
9
  .get('/', getJobsHandler)
@@ -1,7 +1,7 @@
1
- import { agentFromRouter } from 'src/testing/server';
2
- import { mockJobInput } from 'src/testing/types';
1
+ import { agentFromRouter } from 'src/testing/server.js';
2
+ import { mockJobInput } from 'src/testing/types.js';
3
3
 
4
- import { jobRouter } from '.';
4
+ import { jobRouter } from './index.js';
5
5
 
6
6
  const agent = agentFromRouter(jobRouter);
7
7
 
@@ -1,9 +1,9 @@
1
- import { logger } from 'src/framework/logging';
2
- import { metricsClient } from 'src/framework/metrics';
3
- import { validateRequestBody } from 'src/framework/validation';
4
- import * as storage from 'src/storage/jobs';
5
- import { JobInputSchema } from 'src/types/jobs';
6
- import type { Middleware } from 'src/types/koa';
1
+ import { logger } from 'src/framework/logging.js';
2
+ import { metricsClient } from 'src/framework/metrics.js';
3
+ import { validateRequestBody } from 'src/framework/validation.js';
4
+ import * as storage from 'src/storage/jobs.js';
5
+ import { JobInputSchema } from 'src/types/jobs.js';
6
+ import type { Middleware } from 'src/types/koa.js';
7
7
 
8
8
  export const postJobHandler: Middleware = async (ctx) => {
9
9
  const jobInput = validateRequestBody(ctx, JobInputSchema);
@@ -1,5 +1,5 @@
1
- import { smokeTestJobStorage } from 'src/storage/jobs';
2
- import type { Middleware } from 'src/types/koa';
1
+ import { smokeTestJobStorage } from 'src/storage/jobs.js';
2
+ import type { Middleware } from 'src/types/koa.js';
3
3
 
4
4
  /**
5
5
  * Tests connectivity to ensure appropriate access and network configuration.
@@ -1,6 +1,6 @@
1
- import { agentFromApp } from 'src/testing/server';
1
+ import { agentFromApp } from 'src/testing/server.js';
2
2
 
3
- import app from './app';
3
+ import app from './app.js';
4
4
 
5
5
  const agent = agentFromApp(app);
6
6
 
@@ -1,7 +1,7 @@
1
- import './register';
1
+ import './register.js';
2
2
 
3
- import { router } from './api';
4
- import { createApp } from './framework/server';
3
+ import { router } from './api/index.js';
4
+ import { createApp } from './framework/server.js';
5
5
 
6
6
  const app = createApp(router.allowedMethods(), router.routes());
7
7
 
@@ -1,7 +1,7 @@
1
1
  import createLogger from '@seek/logger';
2
2
  import { RequestLogging } from 'seek-koala';
3
3
 
4
- import { config } from 'src/config';
4
+ import { config } from 'src/config.js';
5
5
 
6
6
  const { createContextMiddleware, mixin } =
7
7
  RequestLogging.createContextStorage();
@@ -1,9 +1,9 @@
1
1
  import { StatsD } from 'hot-shots';
2
2
  import { createStatsDClient } from 'seek-datadog-custom-metrics';
3
3
 
4
- import { config } from 'src/config';
4
+ import { config } from 'src/config.js';
5
5
 
6
- import { logger } from './logging';
6
+ import { logger } from './logging.js';
7
7
 
8
8
  /* istanbul ignore next: StatsD client is not our responsibility */
9
9
  export const metricsClient = createStatsDClient(StatsD, config, (err) =>
@@ -1,10 +1,10 @@
1
1
  import Router from '@koa/router';
2
2
 
3
- import { logger } from 'src/testing/logging';
4
- import { metricsClient } from 'src/testing/metrics';
5
- import { agentFromRouter } from 'src/testing/server';
6
- import { chance } from 'src/testing/types';
7
- import type { Middleware } from 'src/types/koa';
3
+ import { logger } from 'src/testing/logging.js';
4
+ import { metricsClient } from 'src/testing/metrics.js';
5
+ import { agentFromRouter } from 'src/testing/server.js';
6
+ import { chance } from 'src/testing/types.js';
7
+ import type { Middleware } from 'src/types/koa.js';
8
8
 
9
9
  const middleware = jest.fn<void, Parameters<Middleware>>();
10
10
 
@@ -8,9 +8,9 @@ import {
8
8
  VersionMiddleware,
9
9
  } from 'seek-koala';
10
10
 
11
- import { config } from 'src/config';
12
- import { contextMiddleware, logger } from 'src/framework/logging';
13
- import { metricsClient } from 'src/framework/metrics';
11
+ import { config } from 'src/config.js';
12
+ import { contextMiddleware, logger } from 'src/framework/logging.js';
13
+ import { metricsClient } from 'src/framework/metrics.js';
14
14
 
15
15
  const metrics = MetricsMiddleware.create(
16
16
  metricsClient,
@@ -1,12 +1,12 @@
1
- import { agentFromMiddleware } from 'src/testing/server';
1
+ import { agentFromMiddleware } from 'src/testing/server.js';
2
2
  import {
3
3
  IdDescriptionSchema,
4
4
  chance,
5
5
  mockIdDescription,
6
- } from 'src/testing/types';
6
+ } from 'src/testing/types.js';
7
7
 
8
- import { jsonBodyParser } from './bodyParser';
9
- import { validate } from './validation';
8
+ import { jsonBodyParser } from './bodyParser.js';
9
+ import { validate } from './validation.js';
10
10
 
11
11
  const agent = agentFromMiddleware(jsonBodyParser, (ctx) => {
12
12
  const result = validate({
@@ -1,7 +1,7 @@
1
1
  import { ErrorMiddleware } from 'seek-koala';
2
2
  import { ZodIssueCode, type z } from 'zod';
3
3
 
4
- import type { Context } from 'src/types/koa';
4
+ import type { Context } from 'src/types/koa.js';
5
5
 
6
6
  type InvalidFields = Record<string, string>;
7
7
 
@@ -1,8 +1,8 @@
1
- import './register';
1
+ import './register.js';
2
2
 
3
- import app from './app';
4
- import { config } from './config';
5
- import { logger } from './framework/logging';
3
+ import app from './app.js';
4
+ import { config } from './config.js';
5
+ import { logger } from './framework/logging.js';
6
6
 
7
7
  // This implements a minimal version of `koa-cluster`'s interface
8
8
  // If your application is deployed with more than 1 vCPU you can delete this
@@ -1,6 +1,6 @@
1
1
  import { randomUUID } from 'crypto';
2
2
 
3
- import type { Job, JobInput } from 'src/types/jobs';
3
+ import type { Job, JobInput } from 'src/types/jobs.js';
4
4
 
5
5
  const jobStore: Record<string, Job> = {};
6
6
 
@@ -1,4 +1,4 @@
1
- import * as logging from 'src/framework/logging';
1
+ import * as logging from 'src/framework/logging.js';
2
2
 
3
3
  export const logger = {
4
4
  error: jest.fn(),
@@ -1,4 +1,4 @@
1
- import * as metrics from 'src/framework/metrics';
1
+ import * as metrics from 'src/framework/metrics.js';
2
2
 
3
3
  function assertDefined<T>(value: T | undefined): asserts value is T {
4
4
  expect(value).toBeDefined();
@@ -2,7 +2,7 @@ import type Router from '@koa/router';
2
2
  import type Koa from 'koa';
3
3
  import request from 'supertest';
4
4
 
5
- import { createApp } from 'src/framework/server';
5
+ import { createApp } from 'src/framework/server.js';
6
6
 
7
7
  /**
8
8
  * Create a new SuperTest agent from a Koa application.
@@ -1,7 +1,7 @@
1
1
  import { Chance } from 'chance';
2
2
  import { z } from 'zod';
3
3
 
4
- import type { JobInput } from 'src/types/jobs';
4
+ import type { JobInput } from 'src/types/jobs.js';
5
5
 
6
6
  export type IdDescription = z.infer<typeof IdDescriptionSchema>;
7
7
 
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "lib": [
5
+ // open-telemetry/opentelemetry-js#3580
6
+ "DOM",
7
+
8
+ "ES2024"
9
+ ],
10
+ "outDir": "lib",
11
+ "paths": {
12
+ "src": ["src"]
13
+ },
14
+ "target": "ES2024"
15
+ },
16
+ "exclude": ["lib*/**/*"],
17
+ "extends": "skuba/config/tsconfig.json"
18
+ }
@@ -16,7 +16,7 @@ import {
16
16
  import type { Construct } from 'constructs';
17
17
  import { DatadogLambda } from 'datadog-cdk-constructs-v2';
18
18
 
19
- import { config } from './config';
19
+ import { config } from './config.js';
20
20
 
21
21
  // Updated by https://github.com/seek-oss/rynovate
22
22
  const DATADOG_EXTENSION_LAYER_VERSION = 64;
@@ -1,8 +1,8 @@
1
1
  import { HookStack } from '@seek/aws-codedeploy-infra';
2
2
  import { App } from 'aws-cdk-lib';
3
3
 
4
- import { AppStack } from './appStack';
5
- import { config } from './config';
4
+ import { AppStack } from './appStack.js';
5
+ import { config } from './config.js';
6
6
 
7
7
  const app = new App();
8
8
 
@@ -37,7 +37,7 @@
37
37
  "constructs": "^10.0.17",
38
38
  "datadog-cdk-constructs-v2": "^2.0.0",
39
39
  "pino-pretty": "^13.0.0",
40
- "skuba": "11.1.0-jest30-20250619234954"
40
+ "skuba": "12.0.0-enforce-file-extensions-20250618112549"
41
41
  },
42
42
  "packageManager": "pnpm@10.12.1",
43
43
  "engines": {
@@ -1,12 +1,12 @@
1
1
  import { PublishCommand } from '@aws-sdk/client-sns';
2
2
 
3
- import { metricsClient } from 'src/framework/metrics';
4
- import { createCtx, createSqsEvent } from 'src/testing/handler';
5
- import { logger } from 'src/testing/logging';
6
- import { scoringService, sns } from 'src/testing/services';
7
- import { chance, mockJobPublishedEvent } from 'src/testing/types';
3
+ import { metricsClient } from 'src/framework/metrics.js';
4
+ import { createCtx, createSqsEvent } from 'src/testing/handler.js';
5
+ import { logger } from 'src/testing/logging.js';
6
+ import { scoringService, sns } from 'src/testing/services.js';
7
+ import { chance, mockJobPublishedEvent } from 'src/testing/types.js';
8
8
 
9
- import * as app from './app';
9
+ import * as app from './app.js';
10
10
 
11
11
  describe('app', () => {
12
12
  it('exports a handler', () => expect(app).toHaveProperty('handler'));
@@ -3,13 +3,16 @@ import 'skuba-dive/register';
3
3
  import { isLambdaHook } from '@seek/aws-codedeploy-hooks';
4
4
  import type { SQSEvent } from 'aws-lambda';
5
5
 
6
- import { createHandler } from 'src/framework/handler';
7
- import { logger } from 'src/framework/logging';
8
- import { metricsClient } from 'src/framework/metrics';
9
- import { validateJson } from 'src/framework/validation';
10
- import { scoreJobPublishedEvent, scoringService } from 'src/services/jobScorer';
11
- import { sendPipelineEvent } from 'src/services/pipelineEventSender';
12
- import { JobPublishedEventSchema } from 'src/types/pipelineEvents';
6
+ import { createHandler } from 'src/framework/handler.js';
7
+ import { logger } from 'src/framework/logging.js';
8
+ import { metricsClient } from 'src/framework/metrics.js';
9
+ import { validateJson } from 'src/framework/validation.js';
10
+ import {
11
+ scoreJobPublishedEvent,
12
+ scoringService,
13
+ } from 'src/services/jobScorer.js';
14
+ import { sendPipelineEvent } from 'src/services/pipelineEventSender.js';
15
+ import { JobPublishedEventSchema } from 'src/types/pipelineEvents.js';
13
16
 
14
17
  /**
15
18
  * Tests connectivity to ensure appropriate access and network configuration.
@@ -1,8 +1,8 @@
1
- import { createCtx } from 'src/testing/handler';
2
- import { logger } from 'src/testing/logging';
3
- import { chance } from 'src/testing/types';
1
+ import { createCtx } from 'src/testing/handler.js';
2
+ import { logger } from 'src/testing/logging.js';
3
+ import { chance } from 'src/testing/types.js';
4
4
 
5
- import { createHandler } from './handler';
5
+ import { createHandler } from './handler.js';
6
6
 
7
7
  describe('createHandler', () => {
8
8
  const ctx = createCtx();
@@ -1,8 +1,8 @@
1
1
  import type { Context as LambdaContext } from 'aws-lambda';
2
2
  import { datadog } from 'datadog-lambda-js';
3
3
 
4
- import { config } from 'src/config';
5
- import { logger, loggerContext } from 'src/framework/logging';
4
+ import { config } from 'src/config.js';
5
+ import { logger, loggerContext } from 'src/framework/logging.js';
6
6
 
7
7
  type Handler<Event, Output> = (
8
8
  event: Event,
@@ -2,7 +2,7 @@ import { AsyncLocalStorage } from 'async_hooks';
2
2
 
3
3
  import createLogger from '@seek/logger';
4
4
 
5
- import { config } from 'src/config';
5
+ import { config } from 'src/config.js';
6
6
 
7
7
  interface LoggerContext {
8
8
  awsRequestId: string;
@@ -1,6 +1,6 @@
1
1
  import { sendDistributionMetric } from 'datadog-lambda-js';
2
2
 
3
- import { config } from 'src/config';
3
+ import { config } from 'src/config.js';
4
4
 
5
5
  const prefix = `${config.name}.`;
6
6
 
@@ -2,9 +2,9 @@ import {
2
2
  IdDescriptionSchema,
3
3
  chance,
4
4
  mockIdDescription,
5
- } from 'src/testing/types';
5
+ } from 'src/testing/types.js';
6
6
 
7
- import { validateJson } from './validation';
7
+ import { validateJson } from './validation.js';
8
8
 
9
9
  describe('validateJson', () => {
10
10
  const idDescription = mockIdDescription();
@@ -1,8 +1,8 @@
1
- import type { JobScorerInput, JobScorerOutput } from 'src/types/jobScorer';
1
+ import type { JobScorerInput, JobScorerOutput } from 'src/types/jobScorer.js';
2
2
  import type {
3
3
  JobPublishedEvent,
4
4
  JobScoredEvent,
5
- } from 'src/types/pipelineEvents';
5
+ } from 'src/types/pipelineEvents.js';
6
6
 
7
7
  export const jobPublishedEventToScorerInput = (
8
8
  record: JobPublishedEvent,
@@ -1,7 +1,7 @@
1
- import { scoringService } from 'src/testing/services';
2
- import { chance, mockJobPublishedEvent } from 'src/testing/types';
1
+ import { scoringService } from 'src/testing/services.js';
2
+ import { chance, mockJobPublishedEvent } from 'src/testing/types.js';
3
3
 
4
- import * as jobScorer from './jobScorer';
4
+ import * as jobScorer from './jobScorer.js';
5
5
 
6
6
  describe('scoreJobPublishedEvent', () => {
7
7
  beforeAll(scoringService.spy);