skuba 0.0.0-master-20230318044948

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 (563) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/config/eslint.js +3 -0
  4. package/config/jest.js +1 -0
  5. package/config/prettier.d.ts +3 -0
  6. package/config/prettier.js +5 -0
  7. package/config/tsconfig.json +9 -0
  8. package/jest/moduleNameMapper.js +58 -0
  9. package/jest/moduleNameMapper.test.ts +64 -0
  10. package/jest/transform.js +50 -0
  11. package/jest/transform.test.ts +11 -0
  12. package/jest/tsConfig.js +26 -0
  13. package/jest-preset.js +34 -0
  14. package/lib/api/buildkite/annotate.d.ts +26 -0
  15. package/lib/api/buildkite/annotate.js +49 -0
  16. package/lib/api/buildkite/annotate.js.map +7 -0
  17. package/lib/api/buildkite/index.d.ts +3 -0
  18. package/lib/api/buildkite/index.js +32 -0
  19. package/lib/api/buildkite/index.js.map +7 -0
  20. package/lib/api/buildkite/md.d.ts +6 -0
  21. package/lib/api/buildkite/md.js +33 -0
  22. package/lib/api/buildkite/md.js.map +7 -0
  23. package/lib/api/git/commit.d.ts +15 -0
  24. package/lib/api/git/commit.js +52 -0
  25. package/lib/api/git/commit.js.map +7 -0
  26. package/lib/api/git/commitAllChanges.d.ts +19 -0
  27. package/lib/api/git/commitAllChanges.js +65 -0
  28. package/lib/api/git/commitAllChanges.js.map +7 -0
  29. package/lib/api/git/currentBranch.d.ts +10 -0
  30. package/lib/api/git/currentBranch.js +58 -0
  31. package/lib/api/git/currentBranch.js.map +7 -0
  32. package/lib/api/git/getChangedFiles.d.ts +20 -0
  33. package/lib/api/git/getChangedFiles.js +63 -0
  34. package/lib/api/git/getChangedFiles.js.map +7 -0
  35. package/lib/api/git/index.d.ts +10 -0
  36. package/lib/api/git/index.js +55 -0
  37. package/lib/api/git/index.js.map +7 -0
  38. package/lib/api/git/log.d.ts +19 -0
  39. package/lib/api/git/log.js +71 -0
  40. package/lib/api/git/log.js.map +7 -0
  41. package/lib/api/git/pull.d.ts +35 -0
  42. package/lib/api/git/pull.js +69 -0
  43. package/lib/api/git/pull.js.map +7 -0
  44. package/lib/api/git/push.d.ts +43 -0
  45. package/lib/api/git/push.js +70 -0
  46. package/lib/api/git/push.js.map +7 -0
  47. package/lib/api/git/remote.d.ts +20 -0
  48. package/lib/api/git/remote.js +72 -0
  49. package/lib/api/git/remote.js.map +7 -0
  50. package/lib/api/git/reset.d.ts +12 -0
  51. package/lib/api/git/reset.js +62 -0
  52. package/lib/api/git/reset.js.map +7 -0
  53. package/lib/api/git/statusMatrix.d.ts +7 -0
  54. package/lib/api/git/statusMatrix.js +47 -0
  55. package/lib/api/git/statusMatrix.js.map +7 -0
  56. package/lib/api/github/checkRun.d.ts +44 -0
  57. package/lib/api/github/checkRun.js +81 -0
  58. package/lib/api/github/checkRun.js.map +7 -0
  59. package/lib/api/github/environment.d.ts +18 -0
  60. package/lib/api/github/environment.js +48 -0
  61. package/lib/api/github/environment.js.map +7 -0
  62. package/lib/api/github/index.d.ts +7 -0
  63. package/lib/api/github/index.js +48 -0
  64. package/lib/api/github/index.js.map +7 -0
  65. package/lib/api/github/issueComment.d.ts +59 -0
  66. package/lib/api/github/issueComment.js +83 -0
  67. package/lib/api/github/issueComment.js.map +7 -0
  68. package/lib/api/github/pullRequest.d.ts +21 -0
  69. package/lib/api/github/pullRequest.js +68 -0
  70. package/lib/api/github/pullRequest.js.map +7 -0
  71. package/lib/api/github/push.d.ts +79 -0
  72. package/lib/api/github/push.js +158 -0
  73. package/lib/api/github/push.js.map +7 -0
  74. package/lib/api/jest/index.d.ts +144 -0
  75. package/lib/api/jest/index.js +41 -0
  76. package/lib/api/jest/index.js.map +7 -0
  77. package/lib/api/net/compose.d.ts +4 -0
  78. package/lib/api/net/compose.js +50 -0
  79. package/lib/api/net/compose.js.map +7 -0
  80. package/lib/api/net/index.d.ts +1 -0
  81. package/lib/api/net/index.js +29 -0
  82. package/lib/api/net/index.js.map +7 -0
  83. package/lib/api/net/socket.d.ts +5 -0
  84. package/lib/api/net/socket.js +68 -0
  85. package/lib/api/net/socket.js.map +7 -0
  86. package/lib/api/net/waitFor.d.ts +22 -0
  87. package/lib/api/net/waitFor.js +40 -0
  88. package/lib/api/net/waitFor.js.map +7 -0
  89. package/lib/cli/adapter/eslint.d.ts +14 -0
  90. package/lib/cli/adapter/eslint.js +112 -0
  91. package/lib/cli/adapter/eslint.js.map +7 -0
  92. package/lib/cli/adapter/prettier.d.ts +45 -0
  93. package/lib/cli/adapter/prettier.js +171 -0
  94. package/lib/cli/adapter/prettier.js.map +7 -0
  95. package/lib/cli/build/args.d.ts +7 -0
  96. package/lib/cli/build/args.js +73 -0
  97. package/lib/cli/build/args.js.map +7 -0
  98. package/lib/cli/build/esbuild.d.ts +5 -0
  99. package/lib/cli/build/esbuild.js +133 -0
  100. package/lib/cli/build/esbuild.js.map +7 -0
  101. package/lib/cli/build/index.d.ts +1 -0
  102. package/lib/cli/build/index.js +73 -0
  103. package/lib/cli/build/index.js.map +7 -0
  104. package/lib/cli/build/tsc.d.ts +1 -0
  105. package/lib/cli/build/tsc.js +36 -0
  106. package/lib/cli/build/tsc.js.map +7 -0
  107. package/lib/cli/buildPackage.d.ts +1 -0
  108. package/lib/cli/buildPackage.js +56 -0
  109. package/lib/cli/buildPackage.js.map +7 -0
  110. package/lib/cli/configure/addEmptyExports.d.ts +6 -0
  111. package/lib/cli/configure/addEmptyExports.js +76 -0
  112. package/lib/cli/configure/addEmptyExports.js.map +7 -0
  113. package/lib/cli/configure/analyseConfiguration.d.ts +9 -0
  114. package/lib/cli/configure/analyseConfiguration.js +69 -0
  115. package/lib/cli/configure/analyseConfiguration.js.map +7 -0
  116. package/lib/cli/configure/analyseDependencies.d.ts +10 -0
  117. package/lib/cli/configure/analyseDependencies.js +136 -0
  118. package/lib/cli/configure/analyseDependencies.js.map +7 -0
  119. package/lib/cli/configure/analysis/diff.d.ts +1 -0
  120. package/lib/cli/configure/analysis/diff.js +45 -0
  121. package/lib/cli/configure/analysis/diff.js.map +7 -0
  122. package/lib/cli/configure/analysis/files.d.ts +1 -0
  123. package/lib/cli/configure/analysis/files.js +58 -0
  124. package/lib/cli/configure/analysis/files.js.map +7 -0
  125. package/lib/cli/configure/analysis/git.d.ts +1 -0
  126. package/lib/cli/configure/analysis/git.js +54 -0
  127. package/lib/cli/configure/analysis/git.js.map +7 -0
  128. package/lib/cli/configure/analysis/package.d.ts +13 -0
  129. package/lib/cli/configure/analysis/package.js +110 -0
  130. package/lib/cli/configure/analysis/package.js.map +7 -0
  131. package/lib/cli/configure/analysis/project.d.ts +3 -0
  132. package/lib/cli/configure/analysis/project.js +105 -0
  133. package/lib/cli/configure/analysis/project.js.map +7 -0
  134. package/lib/cli/configure/dependencies/index.d.ts +5 -0
  135. package/lib/cli/configure/dependencies/index.js +41 -0
  136. package/lib/cli/configure/dependencies/index.js.map +7 -0
  137. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.d.ts +2 -0
  138. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +59 -0
  139. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +7 -0
  140. package/lib/cli/configure/dependencies/seekKoala.d.ts +2 -0
  141. package/lib/cli/configure/dependencies/seekKoala.js +56 -0
  142. package/lib/cli/configure/dependencies/seekKoala.js.map +7 -0
  143. package/lib/cli/configure/dependencies/skuba.d.ts +2 -0
  144. package/lib/cli/configure/dependencies/skuba.js +52 -0
  145. package/lib/cli/configure/dependencies/skuba.js.map +7 -0
  146. package/lib/cli/configure/dependencies/skubaDeps.d.ts +2 -0
  147. package/lib/cli/configure/dependencies/skubaDeps.js +56 -0
  148. package/lib/cli/configure/dependencies/skubaDeps.js.map +7 -0
  149. package/lib/cli/configure/dependencies/skubaDive.d.ts +3 -0
  150. package/lib/cli/configure/dependencies/skubaDive.js +70 -0
  151. package/lib/cli/configure/dependencies/skubaDive.js.map +7 -0
  152. package/lib/cli/configure/ensureTemplateCompletion.d.ts +9 -0
  153. package/lib/cli/configure/ensureTemplateCompletion.js +77 -0
  154. package/lib/cli/configure/ensureTemplateCompletion.js.map +7 -0
  155. package/lib/cli/configure/getEntryPoint.d.ts +11 -0
  156. package/lib/cli/configure/getEntryPoint.js +70 -0
  157. package/lib/cli/configure/getEntryPoint.js.map +7 -0
  158. package/lib/cli/configure/getProjectType.d.ts +9 -0
  159. package/lib/cli/configure/getProjectType.js +52 -0
  160. package/lib/cli/configure/getProjectType.js.map +7 -0
  161. package/lib/cli/configure/index.d.ts +1 -0
  162. package/lib/cli/configure/index.js +148 -0
  163. package/lib/cli/configure/index.js.map +7 -0
  164. package/lib/cli/configure/modules/eslint.d.ts +2 -0
  165. package/lib/cli/configure/modules/eslint.js +61 -0
  166. package/lib/cli/configure/modules/eslint.js.map +7 -0
  167. package/lib/cli/configure/modules/ignore.d.ts +2 -0
  168. package/lib/cli/configure/modules/ignore.js +40 -0
  169. package/lib/cli/configure/modules/ignore.js.map +7 -0
  170. package/lib/cli/configure/modules/index.d.ts +2 -0
  171. package/lib/cli/configure/modules/index.js +54 -0
  172. package/lib/cli/configure/modules/index.js.map +7 -0
  173. package/lib/cli/configure/modules/jest.d.ts +2 -0
  174. package/lib/cli/configure/modules/jest.js +86 -0
  175. package/lib/cli/configure/modules/jest.js.map +7 -0
  176. package/lib/cli/configure/modules/nodemon.d.ts +2 -0
  177. package/lib/cli/configure/modules/nodemon.js +30 -0
  178. package/lib/cli/configure/modules/nodemon.js.map +7 -0
  179. package/lib/cli/configure/modules/package.d.ts +2 -0
  180. package/lib/cli/configure/modules/package.js +117 -0
  181. package/lib/cli/configure/modules/package.js.map +7 -0
  182. package/lib/cli/configure/modules/prettier.d.ts +2 -0
  183. package/lib/cli/configure/modules/prettier.js +52 -0
  184. package/lib/cli/configure/modules/prettier.js.map +7 -0
  185. package/lib/cli/configure/modules/renovate.d.ts +3 -0
  186. package/lib/cli/configure/modules/renovate.js +69 -0
  187. package/lib/cli/configure/modules/renovate.js.map +7 -0
  188. package/lib/cli/configure/modules/serverless.d.ts +2 -0
  189. package/lib/cli/configure/modules/serverless.js +36 -0
  190. package/lib/cli/configure/modules/serverless.js.map +7 -0
  191. package/lib/cli/configure/modules/skubaDive.d.ts +2 -0
  192. package/lib/cli/configure/modules/skubaDive.js +72 -0
  193. package/lib/cli/configure/modules/skubaDive.js.map +7 -0
  194. package/lib/cli/configure/modules/tsconfig.d.ts +2 -0
  195. package/lib/cli/configure/modules/tsconfig.js +87 -0
  196. package/lib/cli/configure/modules/tsconfig.js.map +7 -0
  197. package/lib/cli/configure/modules/tslint.d.ts +2 -0
  198. package/lib/cli/configure/modules/tslint.js +30 -0
  199. package/lib/cli/configure/modules/tslint.js.map +7 -0
  200. package/lib/cli/configure/patchRenovateConfig.d.ts +1 -0
  201. package/lib/cli/configure/patchRenovateConfig.js +132 -0
  202. package/lib/cli/configure/patchRenovateConfig.js.map +7 -0
  203. package/lib/cli/configure/processing/deleteFiles.d.ts +5 -0
  204. package/lib/cli/configure/processing/deleteFiles.js +31 -0
  205. package/lib/cli/configure/processing/deleteFiles.js.map +7 -0
  206. package/lib/cli/configure/processing/ignoreFile.d.ts +8 -0
  207. package/lib/cli/configure/processing/ignoreFile.js +74 -0
  208. package/lib/cli/configure/processing/ignoreFile.js.map +7 -0
  209. package/lib/cli/configure/processing/javascript.d.ts +2 -0
  210. package/lib/cli/configure/processing/javascript.js +38 -0
  211. package/lib/cli/configure/processing/javascript.js.map +7 -0
  212. package/lib/cli/configure/processing/json.d.ts +2 -0
  213. package/lib/cli/configure/processing/json.js +57 -0
  214. package/lib/cli/configure/processing/json.js.map +7 -0
  215. package/lib/cli/configure/processing/loadFiles.d.ts +5 -0
  216. package/lib/cli/configure/processing/loadFiles.js +31 -0
  217. package/lib/cli/configure/processing/loadFiles.js.map +7 -0
  218. package/lib/cli/configure/processing/module.d.ts +10 -0
  219. package/lib/cli/configure/processing/module.js +39 -0
  220. package/lib/cli/configure/processing/module.js.map +7 -0
  221. package/lib/cli/configure/processing/package.d.ts +73 -0
  222. package/lib/cli/configure/processing/package.js +87 -0
  223. package/lib/cli/configure/processing/package.js.map +7 -0
  224. package/lib/cli/configure/processing/prettier.d.ts +4 -0
  225. package/lib/cli/configure/processing/prettier.js +44 -0
  226. package/lib/cli/configure/processing/prettier.js.map +7 -0
  227. package/lib/cli/configure/processing/record.d.ts +11 -0
  228. package/lib/cli/configure/processing/record.js +65 -0
  229. package/lib/cli/configure/processing/record.js.map +7 -0
  230. package/lib/cli/configure/processing/typescript.d.ts +23 -0
  231. package/lib/cli/configure/processing/typescript.js +197 -0
  232. package/lib/cli/configure/processing/typescript.js.map +7 -0
  233. package/lib/cli/configure/refreshIgnoreFiles.d.ts +3 -0
  234. package/lib/cli/configure/refreshIgnoreFiles.js +78 -0
  235. package/lib/cli/configure/refreshIgnoreFiles.js.map +7 -0
  236. package/lib/cli/configure/types.d.ts +26 -0
  237. package/lib/cli/configure/types.js +17 -0
  238. package/lib/cli/configure/types.js.map +7 -0
  239. package/lib/cli/format.d.ts +1 -0
  240. package/lib/cli/format.js +70 -0
  241. package/lib/cli/format.js.map +7 -0
  242. package/lib/cli/help.d.ts +1 -0
  243. package/lib/cli/help.js +34 -0
  244. package/lib/cli/help.js.map +7 -0
  245. package/lib/cli/init/getConfig.d.ts +26 -0
  246. package/lib/cli/init/getConfig.js +285 -0
  247. package/lib/cli/init/getConfig.js.map +7 -0
  248. package/lib/cli/init/git.d.ts +7 -0
  249. package/lib/cli/init/git.js +82 -0
  250. package/lib/cli/init/git.js.map +7 -0
  251. package/lib/cli/init/index.d.ts +1 -0
  252. package/lib/cli/init/index.js +146 -0
  253. package/lib/cli/init/index.js.map +7 -0
  254. package/lib/cli/init/prompts.d.ts +45 -0
  255. package/lib/cli/init/prompts.js +97 -0
  256. package/lib/cli/init/prompts.js.map +7 -0
  257. package/lib/cli/init/types.d.ts +28 -0
  258. package/lib/cli/init/types.js +65 -0
  259. package/lib/cli/init/types.js.map +7 -0
  260. package/lib/cli/init/validation.d.ts +8 -0
  261. package/lib/cli/init/validation.js +43 -0
  262. package/lib/cli/init/validation.js.map +7 -0
  263. package/lib/cli/init/writePackageJson.d.ts +13 -0
  264. package/lib/cli/init/writePackageJson.js +58 -0
  265. package/lib/cli/init/writePackageJson.js.map +7 -0
  266. package/lib/cli/lint/annotate/buildkite/eslint.d.ts +2 -0
  267. package/lib/cli/lint/annotate/buildkite/eslint.js +40 -0
  268. package/lib/cli/lint/annotate/buildkite/eslint.js.map +7 -0
  269. package/lib/cli/lint/annotate/buildkite/index.d.ts +4 -0
  270. package/lib/cli/lint/annotate/buildkite/index.js +58 -0
  271. package/lib/cli/lint/annotate/buildkite/index.js.map +7 -0
  272. package/lib/cli/lint/annotate/buildkite/prettier.d.ts +2 -0
  273. package/lib/cli/lint/annotate/buildkite/prettier.js +47 -0
  274. package/lib/cli/lint/annotate/buildkite/prettier.js.map +7 -0
  275. package/lib/cli/lint/annotate/buildkite/tsc.d.ts +2 -0
  276. package/lib/cli/lint/annotate/buildkite/tsc.js +45 -0
  277. package/lib/cli/lint/annotate/buildkite/tsc.js.map +7 -0
  278. package/lib/cli/lint/annotate/github/eslint.d.ts +3 -0
  279. package/lib/cli/lint/annotate/github/eslint.js +45 -0
  280. package/lib/cli/lint/annotate/github/eslint.js.map +7 -0
  281. package/lib/cli/lint/annotate/github/index.d.ts +4 -0
  282. package/lib/cli/lint/annotate/github/index.js +63 -0
  283. package/lib/cli/lint/annotate/github/index.js.map +7 -0
  284. package/lib/cli/lint/annotate/github/prettier.d.ts +3 -0
  285. package/lib/cli/lint/annotate/github/prettier.js +39 -0
  286. package/lib/cli/lint/annotate/github/prettier.js.map +7 -0
  287. package/lib/cli/lint/annotate/github/tsc.d.ts +3 -0
  288. package/lib/cli/lint/annotate/github/tsc.js +63 -0
  289. package/lib/cli/lint/annotate/github/tsc.js.map +7 -0
  290. package/lib/cli/lint/annotate/index.d.ts +4 -0
  291. package/lib/cli/lint/annotate/index.js +36 -0
  292. package/lib/cli/lint/annotate/index.js.map +7 -0
  293. package/lib/cli/lint/autofix.d.ts +10 -0
  294. package/lib/cli/lint/autofix.js +189 -0
  295. package/lib/cli/lint/autofix.js.map +7 -0
  296. package/lib/cli/lint/eslint.d.ts +4 -0
  297. package/lib/cli/lint/eslint.js +55 -0
  298. package/lib/cli/lint/eslint.js.map +7 -0
  299. package/lib/cli/lint/external.d.ts +10 -0
  300. package/lib/cli/lint/external.js +120 -0
  301. package/lib/cli/lint/external.js.map +7 -0
  302. package/lib/cli/lint/index.d.ts +2 -0
  303. package/lib/cli/lint/index.js +49 -0
  304. package/lib/cli/lint/index.js.map +7 -0
  305. package/lib/cli/lint/internal.d.ts +1 -0
  306. package/lib/cli/lint/internal.js +64 -0
  307. package/lib/cli/lint/internal.js.map +7 -0
  308. package/lib/cli/lint/prettier.d.ts +4 -0
  309. package/lib/cli/lint/prettier.js +55 -0
  310. package/lib/cli/lint/prettier.js.map +7 -0
  311. package/lib/cli/lint/tsc.d.ts +2 -0
  312. package/lib/cli/lint/tsc.js +58 -0
  313. package/lib/cli/lint/tsc.js.map +7 -0
  314. package/lib/cli/lint/types.d.ts +34 -0
  315. package/lib/cli/lint/types.js +17 -0
  316. package/lib/cli/lint/types.js.map +7 -0
  317. package/lib/cli/node.d.ts +1 -0
  318. package/lib/cli/node.js +77 -0
  319. package/lib/cli/node.js.map +7 -0
  320. package/lib/cli/release.d.ts +1 -0
  321. package/lib/cli/release.js +32 -0
  322. package/lib/cli/release.js.map +7 -0
  323. package/lib/cli/start.d.ts +1 -0
  324. package/lib/cli/start.js +69 -0
  325. package/lib/cli/start.js.map +7 -0
  326. package/lib/cli/test/index.d.ts +1 -0
  327. package/lib/cli/test/index.js +37 -0
  328. package/lib/cli/test/index.js.map +7 -0
  329. package/lib/cli/test/reporters/github/annotations.d.ts +9 -0
  330. package/lib/cli/test/reporters/github/annotations.js +102 -0
  331. package/lib/cli/test/reporters/github/annotations.js.map +7 -0
  332. package/lib/cli/test/reporters/github/index.d.ts +5 -0
  333. package/lib/cli/test/reporters/github/index.js +77 -0
  334. package/lib/cli/test/reporters/github/index.js.map +7 -0
  335. package/lib/cli/version.d.ts +1 -0
  336. package/lib/cli/version.js +34 -0
  337. package/lib/cli/version.js.map +7 -0
  338. package/lib/enquirer.d.js +2 -0
  339. package/lib/enquirer.d.js.map +7 -0
  340. package/lib/index.d.ts +22 -0
  341. package/lib/index.js +51 -0
  342. package/lib/index.js.map +7 -0
  343. package/lib/skuba.d.ts +11 -0
  344. package/lib/skuba.js +55 -0
  345. package/lib/skuba.js.map +7 -0
  346. package/lib/utils/args.d.ts +43 -0
  347. package/lib/utils/args.js +114 -0
  348. package/lib/utils/args.js.map +7 -0
  349. package/lib/utils/command.d.ts +6 -0
  350. package/lib/utils/command.js +72 -0
  351. package/lib/utils/command.js.map +7 -0
  352. package/lib/utils/copy.d.ts +16 -0
  353. package/lib/utils/copy.js +100 -0
  354. package/lib/utils/copy.js.map +7 -0
  355. package/lib/utils/dir.d.ts +21 -0
  356. package/lib/utils/dir.js +91 -0
  357. package/lib/utils/dir.js.map +7 -0
  358. package/lib/utils/env.d.ts +5 -0
  359. package/lib/utils/env.js +29 -0
  360. package/lib/utils/env.js.map +7 -0
  361. package/lib/utils/error.d.ts +28 -0
  362. package/lib/utils/error.js +72 -0
  363. package/lib/utils/error.js.map +7 -0
  364. package/lib/utils/exec.d.ts +40 -0
  365. package/lib/utils/exec.js +166 -0
  366. package/lib/utils/exec.js.map +7 -0
  367. package/lib/utils/help.d.ts +1 -0
  368. package/lib/utils/help.js +34 -0
  369. package/lib/utils/help.js.map +7 -0
  370. package/lib/utils/logging.d.ts +27 -0
  371. package/lib/utils/logging.js +60 -0
  372. package/lib/utils/logging.js.map +7 -0
  373. package/lib/utils/logo.d.ts +9 -0
  374. package/lib/utils/logo.js +74 -0
  375. package/lib/utils/logo.js.map +7 -0
  376. package/lib/utils/manifest.d.ts +10 -0
  377. package/lib/utils/manifest.js +77 -0
  378. package/lib/utils/manifest.js.map +7 -0
  379. package/lib/utils/port.d.ts +2 -0
  380. package/lib/utils/port.js +48 -0
  381. package/lib/utils/port.js.map +7 -0
  382. package/lib/utils/template.d.ts +37 -0
  383. package/lib/utils/template.js +116 -0
  384. package/lib/utils/template.js.map +7 -0
  385. package/lib/utils/validation.d.ts +6 -0
  386. package/lib/utils/validation.js +44 -0
  387. package/lib/utils/validation.js.map +7 -0
  388. package/lib/utils/version.d.ts +13 -0
  389. package/lib/utils/version.js +89 -0
  390. package/lib/utils/version.js.map +7 -0
  391. package/lib/utils/wait.d.ts +17 -0
  392. package/lib/utils/wait.js +59 -0
  393. package/lib/utils/wait.js.map +7 -0
  394. package/lib/utils/worker.d.ts +20 -0
  395. package/lib/utils/worker.js +63 -0
  396. package/lib/utils/worker.js.map +7 -0
  397. package/lib/wrapper/function-arguments.d.js +2 -0
  398. package/lib/wrapper/function-arguments.d.js.map +7 -0
  399. package/lib/wrapper/functionHandler.d.ts +10 -0
  400. package/lib/wrapper/functionHandler.js +63 -0
  401. package/lib/wrapper/functionHandler.js.map +7 -0
  402. package/lib/wrapper/http.d.ts +20 -0
  403. package/lib/wrapper/http.js +79 -0
  404. package/lib/wrapper/http.js.map +7 -0
  405. package/lib/wrapper/index.d.ts +12 -0
  406. package/lib/wrapper/index.js +16 -0
  407. package/lib/wrapper/index.js.map +7 -0
  408. package/lib/wrapper/main.d.ts +1 -0
  409. package/lib/wrapper/main.js +47 -0
  410. package/lib/wrapper/main.js.map +7 -0
  411. package/lib/wrapper/requestListener.d.ts +11 -0
  412. package/lib/wrapper/requestListener.js +66 -0
  413. package/lib/wrapper/requestListener.js.map +7 -0
  414. package/package.json +167 -0
  415. package/template/base/.github/CODEOWNERS +5 -0
  416. package/template/base/.github/renovate.json5 +3 -0
  417. package/template/base/_.dockerignore +18 -0
  418. package/template/base/_.eslintignore +14 -0
  419. package/template/base/_.eslintrc.js +3 -0
  420. package/template/base/_.gitignore +23 -0
  421. package/template/base/_.prettierignore +20 -0
  422. package/template/base/_.prettierrc.js +1 -0
  423. package/template/base/jest.config.ts +15 -0
  424. package/template/base/jest.setup.ts +3 -0
  425. package/template/base/tsconfig.build.json +5 -0
  426. package/template/base/tsconfig.json +13 -0
  427. package/template/express-rest-api/.buildkite/pipeline.yml +103 -0
  428. package/template/express-rest-api/.env +1 -0
  429. package/template/express-rest-api/.gantry/common.yml +20 -0
  430. package/template/express-rest-api/.gantry/dev.yml +8 -0
  431. package/template/express-rest-api/.gantry/prod.yml +8 -0
  432. package/template/express-rest-api/.nvmrc +1 -0
  433. package/template/express-rest-api/Dockerfile +37 -0
  434. package/template/express-rest-api/Dockerfile.dev-deps +11 -0
  435. package/template/express-rest-api/README.md +106 -0
  436. package/template/express-rest-api/docker-compose.yml +22 -0
  437. package/template/express-rest-api/gantry.apply.yml +122 -0
  438. package/template/express-rest-api/gantry.build.yml +15 -0
  439. package/template/express-rest-api/package.json +30 -0
  440. package/template/express-rest-api/skuba.template.js +49 -0
  441. package/template/express-rest-api/src/api/healthCheck.ts +11 -0
  442. package/template/express-rest-api/src/api/smokeTest.ts +8 -0
  443. package/template/express-rest-api/src/app.test.ts +9 -0
  444. package/template/express-rest-api/src/app.ts +14 -0
  445. package/template/express-rest-api/src/config.ts +57 -0
  446. package/template/express-rest-api/src/framework/logging.ts +17 -0
  447. package/template/express-rest-api/src/listen.ts +23 -0
  448. package/template/express-rest-api/src/register.ts +1 -0
  449. package/template/greeter/.buildkite/pipeline.yml +37 -0
  450. package/template/greeter/.nvmrc +1 -0
  451. package/template/greeter/Dockerfile +11 -0
  452. package/template/greeter/README.md +96 -0
  453. package/template/greeter/docker-compose.yml +22 -0
  454. package/template/greeter/package.json +24 -0
  455. package/template/greeter/skuba.template.js +16 -0
  456. package/template/greeter/src/app.test.ts +5 -0
  457. package/template/greeter/src/app.ts +4 -0
  458. package/template/koa-rest-api/.buildkite/pipeline.yml +103 -0
  459. package/template/koa-rest-api/.env +1 -0
  460. package/template/koa-rest-api/.gantry/common.yml +20 -0
  461. package/template/koa-rest-api/.gantry/dev.yml +11 -0
  462. package/template/koa-rest-api/.gantry/prod.yml +11 -0
  463. package/template/koa-rest-api/.nvmrc +1 -0
  464. package/template/koa-rest-api/Dockerfile +37 -0
  465. package/template/koa-rest-api/Dockerfile.dev-deps +11 -0
  466. package/template/koa-rest-api/README.md +111 -0
  467. package/template/koa-rest-api/docker-compose.yml +22 -0
  468. package/template/koa-rest-api/gantry.apply.yml +129 -0
  469. package/template/koa-rest-api/gantry.build.yml +15 -0
  470. package/template/koa-rest-api/package.json +47 -0
  471. package/template/koa-rest-api/skuba.template.js +49 -0
  472. package/template/koa-rest-api/src/api/healthCheck.ts +13 -0
  473. package/template/koa-rest-api/src/api/index.ts +10 -0
  474. package/template/koa-rest-api/src/api/jobs/getJobs.test.ts +9 -0
  475. package/template/koa-rest-api/src/api/jobs/getJobs.ts +15 -0
  476. package/template/koa-rest-api/src/api/jobs/index.ts +10 -0
  477. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +34 -0
  478. package/template/koa-rest-api/src/api/jobs/postJob.ts +19 -0
  479. package/template/koa-rest-api/src/api/smokeTest.ts +11 -0
  480. package/template/koa-rest-api/src/app.test.ts +21 -0
  481. package/template/koa-rest-api/src/app.ts +8 -0
  482. package/template/koa-rest-api/src/config.ts +57 -0
  483. package/template/koa-rest-api/src/framework/logging.ts +25 -0
  484. package/template/koa-rest-api/src/framework/metrics.ts +11 -0
  485. package/template/koa-rest-api/src/framework/middleware.ts +3 -0
  486. package/template/koa-rest-api/src/framework/server.test.ts +260 -0
  487. package/template/koa-rest-api/src/framework/server.ts +51 -0
  488. package/template/koa-rest-api/src/framework/validation.test.ts +72 -0
  489. package/template/koa-rest-api/src/framework/validation.ts +77 -0
  490. package/template/koa-rest-api/src/listen.ts +24 -0
  491. package/template/koa-rest-api/src/register.ts +1 -0
  492. package/template/koa-rest-api/src/storage/jobs.ts +28 -0
  493. package/template/koa-rest-api/src/testing/logging.ts +16 -0
  494. package/template/koa-rest-api/src/testing/metrics.ts +29 -0
  495. package/template/koa-rest-api/src/testing/server.ts +31 -0
  496. package/template/koa-rest-api/src/testing/types.ts +24 -0
  497. package/template/koa-rest-api/src/tracing.ts +61 -0
  498. package/template/koa-rest-api/src/types/jobs.ts +17 -0
  499. package/template/koa-rest-api/src/types/koa.ts +8 -0
  500. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +96 -0
  501. package/template/lambda-sqs-worker/.env +1 -0
  502. package/template/lambda-sqs-worker/.nvmrc +1 -0
  503. package/template/lambda-sqs-worker/Dockerfile +12 -0
  504. package/template/lambda-sqs-worker/README.md +132 -0
  505. package/template/lambda-sqs-worker/docker-compose.yml +27 -0
  506. package/template/lambda-sqs-worker/package.json +44 -0
  507. package/template/lambda-sqs-worker/serverless.yml +202 -0
  508. package/template/lambda-sqs-worker/skuba.template.js +32 -0
  509. package/template/lambda-sqs-worker/src/app.test.ts +116 -0
  510. package/template/lambda-sqs-worker/src/app.ts +52 -0
  511. package/template/lambda-sqs-worker/src/config.ts +57 -0
  512. package/template/lambda-sqs-worker/src/framework/handler.test.ts +61 -0
  513. package/template/lambda-sqs-worker/src/framework/handler.ts +43 -0
  514. package/template/lambda-sqs-worker/src/framework/logging.ts +27 -0
  515. package/template/lambda-sqs-worker/src/framework/metrics.ts +14 -0
  516. package/template/lambda-sqs-worker/src/framework/validation.test.ts +84 -0
  517. package/template/lambda-sqs-worker/src/framework/validation.ts +10 -0
  518. package/template/lambda-sqs-worker/src/hooks.ts +96 -0
  519. package/template/lambda-sqs-worker/src/mapping/jobScorer.ts +19 -0
  520. package/template/lambda-sqs-worker/src/services/aws.ts +5 -0
  521. package/template/lambda-sqs-worker/src/services/jobScorer.test.ts +44 -0
  522. package/template/lambda-sqs-worker/src/services/jobScorer.ts +56 -0
  523. package/template/lambda-sqs-worker/src/services/pipelineEventSender.test.ts +40 -0
  524. package/template/lambda-sqs-worker/src/services/pipelineEventSender.ts +33 -0
  525. package/template/lambda-sqs-worker/src/testing/handler.ts +13 -0
  526. package/template/lambda-sqs-worker/src/testing/logging.ts +16 -0
  527. package/template/lambda-sqs-worker/src/testing/services.ts +28 -0
  528. package/template/lambda-sqs-worker/src/testing/types.ts +33 -0
  529. package/template/lambda-sqs-worker/src/types/jobScorer.ts +15 -0
  530. package/template/lambda-sqs-worker/src/types/pipelineEvents.ts +21 -0
  531. package/template/lambda-sqs-worker/tsconfig.json +13 -0
  532. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +93 -0
  533. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -0
  534. package/template/lambda-sqs-worker-cdk/Dockerfile +13 -0
  535. package/template/lambda-sqs-worker-cdk/cdk.json +25 -0
  536. package/template/lambda-sqs-worker-cdk/docker-compose.yml +28 -0
  537. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +723 -0
  538. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +34 -0
  539. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +74 -0
  540. package/template/lambda-sqs-worker-cdk/infra/index.ts +14 -0
  541. package/template/lambda-sqs-worker-cdk/package.json +30 -0
  542. package/template/lambda-sqs-worker-cdk/shared/context-types.ts +21 -0
  543. package/template/lambda-sqs-worker-cdk/skuba.template.js +27 -0
  544. package/template/lambda-sqs-worker-cdk/src/app.ts +10 -0
  545. package/template/lambda-sqs-worker-cdk/tsconfig.json +13 -0
  546. package/template/oss-npm-package/.github/workflows/release.yml +35 -0
  547. package/template/oss-npm-package/.github/workflows/validate.yml +31 -0
  548. package/template/oss-npm-package/.nvmrc +1 -0
  549. package/template/oss-npm-package/LICENSE +21 -0
  550. package/template/oss-npm-package/README.md +128 -0
  551. package/template/oss-npm-package/_package.json +41 -0
  552. package/template/oss-npm-package/skuba.template.js +22 -0
  553. package/template/oss-npm-package/src/index.test.ts +5 -0
  554. package/template/oss-npm-package/src/index.ts +7 -0
  555. package/template/oss-npm-package/tsconfig.json +10 -0
  556. package/template/private-npm-package/.buildkite/pipeline.yml +5 -0
  557. package/template/private-npm-package/.nvmrc +1 -0
  558. package/template/private-npm-package/README.md +109 -0
  559. package/template/private-npm-package/_package.json +41 -0
  560. package/template/private-npm-package/skuba.template.js +24 -0
  561. package/template/private-npm-package/src/index.test.ts +5 -0
  562. package/template/private-npm-package/src/index.ts +7 -0
  563. package/template/private-npm-package/tsconfig.json +10 -0
@@ -0,0 +1,20 @@
1
+ import http from 'http';
2
+ /**
3
+ * Create an HTTP request listener based on the supplied function.
4
+ *
5
+ * - The request body is JSON parsed and passed into the function as parameters.
6
+ * - The function's return value is JSON stringified into the response body.
7
+ */
8
+ export declare const createRequestListenerFromFunction: (fn: (...args: unknown[]) => unknown | Promise<unknown>) => http.RequestListener;
9
+ /**
10
+ * Create a HTTP server based on the supplied `http.RequestListener`.
11
+ *
12
+ * This function resolves when the server is closed.
13
+ */
14
+ export declare const serveRequestListener: (requestListener: http.RequestListener, port?: number) => Promise<void>;
15
+ /**
16
+ * Returns a HTTP server wrapped in a promise
17
+ *
18
+ * This function resolves when the server is closed.
19
+ */
20
+ export declare const startServer: (server: http.Server, port?: number) => Promise<void>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var http_exports = {};
30
+ __export(http_exports, {
31
+ createRequestListenerFromFunction: () => createRequestListenerFromFunction,
32
+ serveRequestListener: () => serveRequestListener,
33
+ startServer: () => startServer
34
+ });
35
+ module.exports = __toCommonJS(http_exports);
36
+ var import_http = __toESM(require("http"));
37
+ var import_serialize_error = require("serialize-error");
38
+ var import_logging = require("../utils/logging");
39
+ const createRequestListenerFromFunction = (fn) => async (req, res) => {
40
+ const writeJsonResponse = (statusCode, jsonResponse) => {
41
+ res.writeHead(statusCode, { "Content-Type": "application/json" });
42
+ return new Promise(
43
+ (resolve, reject) => jsonResponse === void 0 ? res.end(resolve) : res.write(
44
+ JSON.stringify(jsonResponse, null, 2),
45
+ "utf8",
46
+ (err) => err ? reject(err) : res.end(resolve)
47
+ )
48
+ );
49
+ };
50
+ try {
51
+ const requestBody = await new Promise((resolve, reject) => {
52
+ const data = [];
53
+ req.on("data", (chunk) => data.push(chunk)).on("end", () => resolve(Buffer.concat(data).toString())).on("error", (err) => reject(err));
54
+ });
55
+ const jsonRequest = requestBody ? JSON.parse(requestBody) : [];
56
+ const args = Array.isArray(jsonRequest) ? jsonRequest : [jsonRequest];
57
+ const response = await fn(...args);
58
+ await writeJsonResponse(200, response);
59
+ } catch (err) {
60
+ await writeJsonResponse(500, (0, import_serialize_error.serializeError)(err));
61
+ }
62
+ };
63
+ const serveRequestListener = (requestListener, port) => {
64
+ const server = import_http.default.createServer(requestListener);
65
+ return startServer(server, port);
66
+ };
67
+ const startServer = (server, port) => new Promise(
68
+ (resolve, reject) => server.listen(port).on("close", resolve).on("error", reject).on("listening", () => {
69
+ const address = server.address();
70
+ import_logging.log.ok("listening on port", import_logging.log.bold(address.port));
71
+ })
72
+ );
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ createRequestListenerFromFunction,
76
+ serveRequestListener,
77
+ startServer
78
+ });
79
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/wrapper/http.ts"],
4
+ "sourcesContent": ["import http from 'http';\nimport type { AddressInfo } from 'net';\n\nimport { serializeError } from 'serialize-error';\n\nimport { log } from '../utils/logging';\n\n/**\n * Create an HTTP request listener based on the supplied function.\n *\n * - The request body is JSON parsed and passed into the function as parameters.\n * - The function's return value is JSON stringified into the response body.\n */\nexport const createRequestListenerFromFunction =\n (\n fn: (...args: unknown[]) => unknown | Promise<unknown>,\n ): http.RequestListener =>\n async (req, res) => {\n const writeJsonResponse = (statusCode: number, jsonResponse: unknown) => {\n res.writeHead(statusCode, { 'Content-Type': 'application/json' });\n\n return new Promise<void>((resolve, reject) =>\n jsonResponse === undefined\n ? res.end(resolve)\n : res.write(JSON.stringify(jsonResponse, null, 2), 'utf8', (err) =>\n err ? reject(err) : res.end(resolve),\n ),\n );\n };\n\n try {\n const requestBody = await new Promise<string>((resolve, reject) => {\n const data: Buffer[] = [];\n\n req\n .on('data', (chunk: Buffer) => data.push(chunk))\n .on('end', () => resolve(Buffer.concat(data).toString()))\n .on('error', (err) => reject(err));\n });\n\n // Treat an empty body as no arguments\n const jsonRequest: unknown = requestBody ? JSON.parse(requestBody) : [];\n\n // Pass a non-array request body as the first parameter\n const args: unknown[] = Array.isArray(jsonRequest)\n ? jsonRequest\n : [jsonRequest];\n\n const response: unknown = await fn(...args);\n\n await writeJsonResponse(200, response);\n } catch (err) {\n await writeJsonResponse(500, serializeError(err));\n }\n };\n\n/**\n * Create a HTTP server based on the supplied `http.RequestListener`.\n *\n * This function resolves when the server is closed.\n */\nexport const serveRequestListener = (\n requestListener: http.RequestListener,\n port?: number,\n) => {\n const server = http.createServer(requestListener);\n return startServer(server, port);\n};\n\n/**\n * Returns a HTTP server wrapped in a promise\n *\n * This function resolves when the server is closed.\n */\nexport const startServer = (server: http.Server, port?: number) =>\n new Promise<void>((resolve, reject) =>\n server\n .listen(port)\n .on('close', resolve)\n .on('error', reject)\n .on('listening', () => {\n const address = server.address() as AddressInfo;\n\n log.ok('listening on port', log.bold(address.port));\n }),\n );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAGjB,6BAA+B;AAE/B,qBAAoB;AAQb,MAAM,oCACX,CACE,OAEF,OAAO,KAAK,QAAQ;AAClB,QAAM,oBAAoB,CAAC,YAAoB,iBAA0B;AACvE,QAAI,UAAU,YAAY,EAAE,gBAAgB,mBAAmB,CAAC;AAEhE,WAAO,IAAI;AAAA,MAAc,CAAC,SAAS,WACjC,iBAAiB,SACb,IAAI,IAAI,OAAO,IACf,IAAI;AAAA,QAAM,KAAK,UAAU,cAAc,MAAM,CAAC;AAAA,QAAG;AAAA,QAAQ,CAAC,QACxD,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO;AAAA,MACrC;AAAA,IACN;AAAA,EACF;AAEA,MAAI;AACF,UAAM,cAAc,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjE,YAAM,OAAiB,CAAC;AAExB,UACG,GAAG,QAAQ,CAAC,UAAkB,KAAK,KAAK,KAAK,CAAC,EAC9C,GAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC,EACvD,GAAG,SAAS,CAAC,QAAQ,OAAO,GAAG,CAAC;AAAA,IACrC,CAAC;AAGD,UAAM,cAAuB,cAAc,KAAK,MAAM,WAAW,IAAI,CAAC;AAGtE,UAAM,OAAkB,MAAM,QAAQ,WAAW,IAC7C,cACA,CAAC,WAAW;AAEhB,UAAM,WAAoB,MAAM,GAAG,GAAG,IAAI;AAE1C,UAAM,kBAAkB,KAAK,QAAQ;AAAA,EACvC,SAAS,KAAP;AACA,UAAM,kBAAkB,SAAK,uCAAe,GAAG,CAAC;AAAA,EAClD;AACF;AAOK,MAAM,uBAAuB,CAClC,iBACA,SACG;AACH,QAAM,SAAS,YAAAA,QAAK,aAAa,eAAe;AAChD,SAAO,YAAY,QAAQ,IAAI;AACjC;AAOO,MAAM,cAAc,CAAC,QAAqB,SAC/C,IAAI;AAAA,EAAc,CAAC,SAAS,WAC1B,OACG,OAAO,IAAI,EACX,GAAG,SAAS,OAAO,EACnB,GAAG,SAAS,MAAM,EAClB,GAAG,aAAa,MAAM;AACrB,UAAM,UAAU,OAAO,QAAQ;AAE/B,uBAAI,GAAG,qBAAqB,mBAAI,KAAK,QAAQ,IAAI,CAAC;AAAA,EACpD,CAAC;AACL;",
6
+ "names": ["http"]
7
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Wrapper around an entry point provided to `skuba node` or `skuba start`.
3
+ *
4
+ * Beyond simply loading the entry point, it supports the following features:
5
+ *
6
+ * - If you set the entry point to an exported function like `src/app#handler`,
7
+ * it will spin up a local HTTP server that calls into the function.
8
+ *
9
+ * - If you `export =` or `export default` an Express or Koa application,
10
+ * it will spin up a local HTTP server based on the request listener.
11
+ */
12
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var import_error = require("../utils/error");
3
+ var import_logging = require("../utils/logging");
4
+ var import_main = require("./main");
5
+ const ENTRY_POINT_VAR = "__SKUBA_ENTRY_POINT";
6
+ const PORT_VAR = "__SKUBA_PORT";
7
+ const rawEntryPoint = process.env[ENTRY_POINT_VAR];
8
+ if (!rawEntryPoint) {
9
+ throw new Error(`Missing environment variable: ${import_logging.log.bold(ENTRY_POINT_VAR)}`);
10
+ }
11
+ const rawPort = process.env[PORT_VAR];
12
+ if (!rawPort) {
13
+ throw new Error(`Missing environment variable: ${import_logging.log.bold(PORT_VAR)}`);
14
+ }
15
+ (0, import_main.main)(rawEntryPoint, rawPort).catch(import_error.handleCliError);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/wrapper/index.ts"],
4
+ "sourcesContent": ["/**\n * Wrapper around an entry point provided to `skuba node` or `skuba start`.\n *\n * Beyond simply loading the entry point, it supports the following features:\n *\n * - If you set the entry point to an exported function like `src/app#handler`,\n * it will spin up a local HTTP server that calls into the function.\n *\n * - If you `export =` or `export default` an Express or Koa application,\n * it will spin up a local HTTP server based on the request listener.\n */\n\nimport { handleCliError } from '../utils/error';\nimport { log } from '../utils/logging';\n\nimport { main } from './main';\n\nconst ENTRY_POINT_VAR = '__SKUBA_ENTRY_POINT';\nconst PORT_VAR = '__SKUBA_PORT';\n\nconst rawEntryPoint = process.env[ENTRY_POINT_VAR];\nif (!rawEntryPoint) {\n throw new Error(`Missing environment variable: ${log.bold(ENTRY_POINT_VAR)}`);\n}\n\nconst rawPort = process.env[PORT_VAR];\nif (!rawPort) {\n throw new Error(`Missing environment variable: ${log.bold(PORT_VAR)}`);\n}\n\nmain(rawEntryPoint, rawPort).catch(handleCliError);\n"],
5
+ "mappings": ";AAYA,mBAA+B;AAC/B,qBAAoB;AAEpB,kBAAqB;AAErB,MAAM,kBAAkB;AACxB,MAAM,WAAW;AAEjB,MAAM,gBAAgB,QAAQ,IAAI,eAAe;AACjD,IAAI,CAAC,eAAe;AAClB,QAAM,IAAI,MAAM,iCAAiC,mBAAI,KAAK,eAAe,GAAG;AAC9E;AAEA,MAAM,UAAU,QAAQ,IAAI,QAAQ;AACpC,IAAI,CAAC,SAAS;AACZ,QAAM,IAAI,MAAM,iCAAiC,mBAAI,KAAK,QAAQ,GAAG;AACvE;AAAA,IAEA,kBAAK,eAAe,OAAO,EAAE,MAAM,2BAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ export declare const main: (rawEntryPoint: string, rawPort: string) => Promise<void>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var main_exports = {};
30
+ __export(main_exports, {
31
+ main: () => main
32
+ });
33
+ module.exports = __toCommonJS(main_exports);
34
+ var import_path = __toESM(require("path"));
35
+ var import_functionHandler = require("./functionHandler");
36
+ var import_requestListener = require("./requestListener");
37
+ const main = async (rawEntryPoint, rawPort) => {
38
+ const availablePort = Number(rawPort) || void 0;
39
+ const [modulePath, functionName] = import_path.default.join(process.cwd(), rawEntryPoint).split("#", 2);
40
+ const entryPoint = require(modulePath);
41
+ return functionName ? (0, import_functionHandler.runFunctionHandler)({ availablePort, entryPoint, functionName }) : (0, import_requestListener.runRequestListener)({ availablePort, entryPoint });
42
+ };
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ main
46
+ });
47
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/wrapper/main.ts"],
4
+ "sourcesContent": ["import path from 'path';\n\nimport { runFunctionHandler } from './functionHandler';\nimport { runRequestListener } from './requestListener';\n\nexport const main = async (rawEntryPoint: string, rawPort: string) => {\n const availablePort = Number(rawPort) || undefined;\n\n // Support exported function targeting, e.g. `src/module.ts#callMeMaybe`\n const [modulePath, functionName] = path\n .join(process.cwd(), rawEntryPoint)\n .split('#', 2);\n\n // Load entry point as module\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const entryPoint = require(modulePath) as unknown;\n\n return functionName\n ? runFunctionHandler({ availablePort, entryPoint, functionName })\n : runRequestListener({ availablePort, entryPoint });\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,6BAAmC;AACnC,6BAAmC;AAE5B,MAAM,OAAO,OAAO,eAAuB,YAAoB;AACpE,QAAM,gBAAgB,OAAO,OAAO,KAAK;AAGzC,QAAM,CAAC,YAAY,YAAY,IAAI,YAAAA,QAChC,KAAK,QAAQ,IAAI,GAAG,aAAa,EACjC,MAAM,KAAK,CAAC;AAIf,QAAM,aAAa,QAAQ,UAAU;AAErC,SAAO,mBACH,2CAAmB,EAAE,eAAe,YAAY,aAAa,CAAC,QAC9D,2CAAmB,EAAE,eAAe,WAAW,CAAC;AACtD;",
6
+ "names": ["path"]
7
+ }
@@ -0,0 +1,11 @@
1
+ interface Args {
2
+ availablePort?: number;
3
+ entryPoint: unknown;
4
+ }
5
+ /**
6
+ * Create an HTTP server that calls into an exported `http.RequestListener`.
7
+ *
8
+ * This supports Express and Koa applications out of the box.
9
+ */
10
+ export declare const runRequestListener: ({ availablePort, entryPoint, }: Args) => Promise<void>;
11
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var requestListener_exports = {};
30
+ __export(requestListener_exports, {
31
+ runRequestListener: () => runRequestListener
32
+ });
33
+ module.exports = __toCommonJS(requestListener_exports);
34
+ var import_http = __toESM(require("http"));
35
+ var import_validation = require("../utils/validation");
36
+ var import_http2 = require("./http");
37
+ const isConfig = (data) => (0, import_validation.isFunction)(data) || (0, import_validation.isObject)(data);
38
+ const runRequestListener = async ({
39
+ availablePort,
40
+ entryPoint
41
+ }) => {
42
+ if (!isConfig(entryPoint)) {
43
+ return;
44
+ }
45
+ let config = await entryPoint;
46
+ if (typeof config === "object" && isConfig(config.default)) {
47
+ config = await config.default;
48
+ }
49
+ if (Object.keys(config).length === 0) {
50
+ return;
51
+ }
52
+ const port = (0, import_validation.isIpPort)(config.port) ? config.port : availablePort;
53
+ if (typeof config !== "function" && config.server && config.server instanceof import_http.default.Server) {
54
+ return (0, import_http2.startServer)(config.server, port);
55
+ }
56
+ const requestListener = typeof config === "function" ? config : config.requestListener ?? config.callback?.();
57
+ if (typeof requestListener !== "function") {
58
+ return;
59
+ }
60
+ return (0, import_http2.serveRequestListener)(requestListener, port);
61
+ };
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ runRequestListener
65
+ });
66
+ //# sourceMappingURL=requestListener.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 // Fastify workaround\n if (\n typeof config !== 'function' &&\n config.server &&\n config.server instanceof http.Server\n ) {\n return startServer(config.server, port);\n }\n\n const requestListener =\n typeof config === 'function'\n ? config\n : config.requestListener ?? config.callback?.();\n\n if (typeof requestListener !== 'function') {\n // Assume an executable script with non-request listener exports\n return;\n }\n\n return serveRequestListener(requestListener, port);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;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,MACE,OAAO,WAAW,cAClB,OAAO,UACP,OAAO,kBAAkB,YAAAC,QAAK,QAC9B;AACA,eAAO,0BAAY,OAAO,QAAQ,IAAI;AAAA,EACxC;AAEA,QAAM,kBACJ,OAAO,WAAW,aACd,SACA,OAAO,mBAAmB,OAAO,WAAW;AAElD,MAAI,OAAO,oBAAoB,YAAY;AAEzC;AAAA,EACF;AAEA,aAAO,mCAAqB,iBAAiB,IAAI;AACnD;",
6
+ "names": ["import_http", "http"]
7
+ }
package/package.json ADDED
@@ -0,0 +1,167 @@
1
+ {
2
+ "name": "skuba",
3
+ "version": "0.0.0-master-20230318044948",
4
+ "private": false,
5
+ "description": "SEEK development toolkit for backend applications and packages",
6
+ "homepage": "https://github.com/seek-oss/skuba#readme",
7
+ "bugs": {
8
+ "url": "https://github.com/seek-oss/skuba/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+ssh://git@github.com/seek-oss/skuba.git"
13
+ },
14
+ "license": "MIT",
15
+ "sideEffects": false,
16
+ "main": "lib/index.js",
17
+ "types": "./lib/index.d.ts",
18
+ "bin": {
19
+ "skuba": "lib/skuba.js"
20
+ },
21
+ "files": [
22
+ "config/**/*",
23
+ "jest/**/*",
24
+ "lib*/**/*.d.ts",
25
+ "lib*/**/*.js",
26
+ "lib*/**/*.js.map",
27
+ "template/**/*",
28
+ "jest-preset.js"
29
+ ],
30
+ "scripts": {
31
+ "build": "scripts/build.sh",
32
+ "deploy": "scripts/deploy.sh",
33
+ "format": "yarn skuba format",
34
+ "lint": "yarn skuba lint && yarn lint:md",
35
+ "lint:md": "remark --frail --quiet .",
36
+ "release": "yarn build && changeset publish",
37
+ "skuba": "yarn build && node lib/skuba",
38
+ "stage": "changeset version && yarn format",
39
+ "test": "yarn skuba test",
40
+ "test:ci": "yarn skuba test --config jest.config.int.ts --runInBand",
41
+ "test:int": "yarn skuba test --config jest.config.int.ts --runInBand",
42
+ "test:template": "scripts/test-template.sh",
43
+ "test:watch": "yarn skuba test --config jest.config.int.ts --runInBand --watch"
44
+ },
45
+ "remarkConfig": {
46
+ "plugins": [
47
+ "remark-preset-lint-recommended",
48
+ [
49
+ "remark-lint-list-item-indent",
50
+ false
51
+ ],
52
+ [
53
+ "remark-lint-no-shortcut-reference-link",
54
+ false
55
+ ],
56
+ [
57
+ "remark-lint-no-undefined-references",
58
+ {
59
+ "allow": [
60
+ " ",
61
+ "x"
62
+ ]
63
+ }
64
+ ]
65
+ ]
66
+ },
67
+ "resolutions": {
68
+ "**/@types/node": ">=14.18"
69
+ },
70
+ "dependencies": {
71
+ "@esbuild-plugins/tsconfig-paths": "^0.1.0",
72
+ "@jest/types": "^29.0.0",
73
+ "@octokit/graphql": "^5.0.0",
74
+ "@octokit/graphql-schema": "^13.0.0",
75
+ "@octokit/rest": "^19.0.0",
76
+ "@octokit/types": "^9.0.0",
77
+ "@types/jest": "^29.0.0",
78
+ "@types/node": ">=14.18",
79
+ "chalk": "^4.1.0",
80
+ "concurrently": "^7.0.0",
81
+ "dotenv": "^16.0.0",
82
+ "ejs": "^3.1.6",
83
+ "enquirer": "^2.3.6",
84
+ "esbuild": "~0.17.0",
85
+ "eslint": "^8.11.0",
86
+ "eslint-config-skuba": "1.3.0",
87
+ "execa": "^5.0.0",
88
+ "fdir": "^6.0.0",
89
+ "fs-extra": "^11.0.0",
90
+ "function-arguments": "^1.0.9",
91
+ "get-port": "^5.1.1",
92
+ "golden-fleece": "^1.0.9",
93
+ "ignore": "^5.1.8",
94
+ "is-installed-globally": "^0.4.0",
95
+ "isomorphic-git": "^1.11.1",
96
+ "jest": "^29.0.1",
97
+ "jest-watch-typeahead": "^2.1.1",
98
+ "libnpmsearch": "^6.0.0",
99
+ "lodash.mergewith": "^4.6.2",
100
+ "minimist": "^1.2.6",
101
+ "normalize-package-data": "^5.0.0",
102
+ "npm-run-path": "^4.0.1",
103
+ "npm-which": "^3.0.1",
104
+ "picomatch": "^2.2.2",
105
+ "prettier": "~2.8.0",
106
+ "read-pkg-up": "^7.0.1",
107
+ "runtypes": "^6.0.0",
108
+ "semantic-release": "^19.0.0",
109
+ "serialize-error": "^8.0.1",
110
+ "simple-git": "^3.5.0",
111
+ "sort-package-json": "^1.57.0",
112
+ "strip-ansi": "^6.0.1",
113
+ "ts-dedent": "^2.2.0",
114
+ "ts-jest": "^29.0.3",
115
+ "ts-node": "^10.7.0",
116
+ "ts-node-dev": "^2.0.0",
117
+ "tsconfig-paths": "^4.0.0",
118
+ "tsconfig-seek": "1.0.2",
119
+ "typescript": "~4.9.0",
120
+ "validate-npm-package-name": "^5.0.0"
121
+ },
122
+ "devDependencies": {
123
+ "@changesets/cli": "2.26.0",
124
+ "@changesets/get-github-info": "0.5.2",
125
+ "@jest/reporters": "29.4.3",
126
+ "@types/ejs": "3.1.2",
127
+ "@types/express": "4.17.17",
128
+ "@types/fs-extra": "11.0.1",
129
+ "@types/koa": "2.13.5",
130
+ "@types/libnpmsearch": "2.0.3",
131
+ "@types/lodash.mergewith": "4.6.7",
132
+ "@types/module-alias": "2.0.1",
133
+ "@types/npm-which": "3.0.1",
134
+ "@types/picomatch": "2.3.0",
135
+ "@types/supertest": "2.0.12",
136
+ "@types/validate-npm-package-name": "4.0.0",
137
+ "enhanced-resolve": "5.12.0",
138
+ "express": "4.18.2",
139
+ "fastify": "4.13.0",
140
+ "jsonfile": "6.1.0",
141
+ "koa": "2.14.1",
142
+ "memfs": "3.4.13",
143
+ "remark-cli": "11.0.0",
144
+ "remark-preset-lint-recommended": "6.1.2",
145
+ "semver": "7.3.8",
146
+ "supertest": "6.3.3",
147
+ "type-fest": "2.19.0"
148
+ },
149
+ "peerDependencies": {
150
+ "skuba-dive": "1 || 2"
151
+ },
152
+ "peerDependenciesMeta": {
153
+ "skuba-dive": {
154
+ "optional": true
155
+ }
156
+ },
157
+ "engines": {
158
+ "node": ">=14.18"
159
+ },
160
+ "skuba": {
161
+ "build": "esbuild",
162
+ "entryPoint": "src/index.ts",
163
+ "template": null,
164
+ "type": "package",
165
+ "version": "4.0.0"
166
+ }
167
+ }
@@ -0,0 +1,5 @@
1
+ * @<%- ownerName %>
2
+
3
+ # Configured by Renovate
4
+ package.json
5
+ yarn.lock
@@ -0,0 +1,3 @@
1
+ {
2
+ extends: ['github>seek-oss/rynovate'],
3
+ }
@@ -0,0 +1,18 @@
1
+ # managed by skuba
2
+ .gantry/
3
+ .git/
4
+ .idea/
5
+ .serverless/
6
+ .vscode/
7
+ node_modules*/
8
+
9
+ /coverage*/
10
+ /dist*/
11
+ /lib*/
12
+ /tmp*/
13
+
14
+ .DS_Store
15
+ .npmrc
16
+ npm-debug.log
17
+ yarn-error.log
18
+ # end managed by skuba
@@ -0,0 +1,14 @@
1
+ # managed by skuba
2
+ .idea/*
3
+ .vscode/*
4
+
5
+ .cdk.staging/
6
+ .serverless/
7
+ cdk.out/
8
+ node_modules*/
9
+
10
+ /coverage*/
11
+ /dist*/
12
+ /lib*/
13
+ /tmp*/
14
+ # end managed by skuba
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ extends: ['skuba'],
3
+ };
@@ -0,0 +1,23 @@
1
+ # managed by skuba
2
+ .idea/*
3
+ .vscode/*
4
+
5
+ .cdk.staging/
6
+ .serverless/
7
+ cdk.out/
8
+ node_modules*/
9
+
10
+ /coverage*/
11
+ /dist*/
12
+ /lib*/
13
+ /tmp*/
14
+
15
+ .DS_Store
16
+ .eslintcache
17
+ .npmrc
18
+ *.tgz
19
+ *.tsbuildinfo
20
+ npm-debug.log
21
+ package-lock.json
22
+ yarn-error.log
23
+ # end managed by skuba
@@ -0,0 +1,20 @@
1
+ # managed by skuba
2
+ .idea/*
3
+ .vscode/*
4
+
5
+ .cdk.staging/
6
+ .serverless/
7
+ cdk.out/
8
+ node_modules*/
9
+
10
+ /coverage*/
11
+ /dist*/
12
+ /lib*/
13
+ /tmp*/
14
+
15
+ # Gantry resource files support non-standard template syntax
16
+ /.gantry/**/*.yaml
17
+ /.gantry/**/*.yml
18
+ gantry*.yaml
19
+ gantry*.yml
20
+ # end managed by skuba
@@ -0,0 +1 @@
1
+ module.exports = require('skuba/config/prettier');
@@ -0,0 +1,15 @@
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
+ });
@@ -0,0 +1,3 @@
1
+ process.env.ENVIRONMENT = 'test';
2
+
3
+ export {};
@@ -0,0 +1,5 @@
1
+ {
2
+ "exclude": ["**/__mocks__/**/*", "**/*.test.ts", "src/testing/**/*"],
3
+ "extends": "./tsconfig.json",
4
+ "include": ["src/**/*"]
5
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "lib": ["ES2022"],
5
+ "outDir": "lib",
6
+ "paths": {
7
+ "src": ["src"]
8
+ },
9
+ "target": "ES2022"
10
+ },
11
+ "exclude": ["lib*/**/*"],
12
+ "extends": "skuba/config/tsconfig.json"
13
+ }