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,34 @@
1
+ import { SynthUtils } from '@aws-cdk/assert';
2
+ import { App } from 'aws-cdk-lib';
3
+
4
+ import cdkJson from '../cdk.json';
5
+
6
+ import { AppStack } from './appStack';
7
+
8
+ const contexts = [
9
+ {
10
+ stage: 'dev',
11
+ ...cdkJson.context,
12
+ },
13
+
14
+ {
15
+ stage: 'prod',
16
+ ...cdkJson.context,
17
+ },
18
+ ];
19
+
20
+ it.each(contexts)(
21
+ 'returns expected CloudFormation stack for $stage',
22
+ (context) => {
23
+ const app = new App({ context });
24
+
25
+ const stack = new AppStack(app, 'appStack');
26
+
27
+ const json = JSON.stringify(SynthUtils.toCloudFormation(stack)).replace(
28
+ /"S3Key":"([0-9a-f]+)\.zip"/g,
29
+ (_, hash) => `"S3Key":"${'x'.repeat(hash.length)}.zip"`,
30
+ );
31
+
32
+ expect(JSON.parse(json)).toMatchSnapshot();
33
+ },
34
+ );
@@ -0,0 +1,74 @@
1
+ import {
2
+ Stack,
3
+ StackProps,
4
+ aws_iam,
5
+ aws_kms,
6
+ aws_lambda,
7
+ aws_lambda_event_sources,
8
+ aws_sns,
9
+ aws_sns_subscriptions,
10
+ aws_sqs,
11
+ } from 'aws-cdk-lib';
12
+ import type { Construct } from 'constructs';
13
+
14
+ import { EnvContextSchema, StageContextSchema } from '../shared/context-types';
15
+
16
+ export class AppStack extends Stack {
17
+ constructor(scope: Construct, id: string, props?: StackProps) {
18
+ super(scope, id, props);
19
+
20
+ const stage = StageContextSchema.parse(this.node.tryGetContext('stage'));
21
+ const context = EnvContextSchema.parse(this.node.tryGetContext(stage));
22
+
23
+ const accountPrincipal = new aws_iam.AccountPrincipal(this.account);
24
+
25
+ const kmsKey = new aws_kms.Key(this, 'kms-key', {
26
+ description: '<%- serviceName %>',
27
+ enableKeyRotation: true,
28
+ admins: [accountPrincipal],
29
+ alias: 'seek/self/<%- serviceName %>',
30
+ });
31
+
32
+ kmsKey.grantEncrypt(accountPrincipal);
33
+
34
+ const topic = new aws_sns.Topic(this, 'topic', {
35
+ topicName: '<%- serviceName %>',
36
+ masterKey: kmsKey,
37
+ });
38
+
39
+ const deadLetterQueue = new aws_sqs.Queue(this, 'worker-queue-dlq', {
40
+ queueName: '<%- serviceName %>-dlq',
41
+ encryptionMasterKey: kmsKey,
42
+ });
43
+
44
+ const queue = new aws_sqs.Queue(this, 'worker-queue', {
45
+ queueName: '<%- serviceName %>',
46
+ deadLetterQueue: {
47
+ maxReceiveCount: 3,
48
+ queue: deadLetterQueue,
49
+ },
50
+ encryptionMasterKey: kmsKey,
51
+ });
52
+
53
+ const architecture = '<%- lambdaCdkArchitecture %>';
54
+
55
+ const worker = new aws_lambda.Function(this, 'worker', {
56
+ architecture: aws_lambda.Architecture[architecture],
57
+ code: new aws_lambda.AssetCode('./lib'),
58
+ runtime: aws_lambda.Runtime.NODEJS_18_X,
59
+ handler: 'app.handler',
60
+ functionName: '<%- serviceName %>',
61
+ environmentEncryption: kmsKey,
62
+ environment: {
63
+ NODE_ENV: 'production',
64
+ // https://nodejs.org/api/cli.html#cli_node_options_options
65
+ NODE_OPTIONS: '--enable-source-maps',
66
+ ...context.workerLambda.environment,
67
+ },
68
+ });
69
+
70
+ worker.addEventSource(new aws_lambda_event_sources.SqsEventSource(queue));
71
+
72
+ topic.addSubscription(new aws_sns_subscriptions.SqsSubscription(queue));
73
+ }
74
+ }
@@ -0,0 +1,14 @@
1
+ import { App } from 'aws-cdk-lib';
2
+
3
+ import { GlobalContextSchema } from '../shared/context-types';
4
+
5
+ import { AppStack } from './appStack';
6
+
7
+ const app = new App();
8
+
9
+ const context = GlobalContextSchema.parse(app.node.tryGetContext('global'));
10
+
11
+ // eslint-disable-next-line no-new
12
+ new AppStack(app, 'appStack', {
13
+ stackName: context.appName,
14
+ });
@@ -0,0 +1,30 @@
1
+ {
2
+ "private": true,
3
+ "license": "UNLICENSED",
4
+ "scripts": {
5
+ "build": "skuba build",
6
+ "deploy": "cdk deploy appStack --require-approval never --context stage=${ENVIRONMENT}",
7
+ "format": "skuba format",
8
+ "lint": "skuba lint",
9
+ "package": "yarn install --ignore-optional --ignore-scripts --modules-folder ./lib/node_modules --non-interactive --offline --production",
10
+ "test": "skuba test",
11
+ "test:ci": "skuba test --coverage",
12
+ "test:watch": "skuba test --watch"
13
+ },
14
+ "dependencies": {
15
+ "@seek/logger": "^5.0.1",
16
+ "zod": "^3.19.1"
17
+ },
18
+ "devDependencies": {
19
+ "@aws-cdk/assert": "^2.24.0",
20
+ "@types/aws-lambda": "^8.10.82",
21
+ "@types/node": "^18.11.9",
22
+ "aws-cdk": "^2.51.1",
23
+ "aws-cdk-lib": "^2.51.1",
24
+ "constructs": "^10.0.17",
25
+ "skuba": "*"
26
+ },
27
+ "engines": {
28
+ "node": ">=18"
29
+ }
30
+ }
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+
3
+ export const StageContextSchema = z.enum(['dev', 'prod']);
4
+ export type StageContext = z.infer<typeof StageContextSchema>;
5
+
6
+ export const EnvContextSchema = z.object({
7
+ workerLambda: z.object({
8
+ reservedConcurrency: z.number(),
9
+ environment: z.object({
10
+ SOMETHING: z.string(),
11
+ }),
12
+ }),
13
+ });
14
+
15
+ export type EnvContext = z.infer<typeof EnvContextSchema>;
16
+
17
+ export const GlobalContextSchema = z.object({
18
+ appName: z.string(),
19
+ });
20
+
21
+ export type GlobalContext = z.infer<typeof GlobalContextSchema>;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Run `skuba configure` to finish templating and remove this file.
3
+ */
4
+
5
+ module.exports = {
6
+ entryPoint: 'src/app.ts#handler',
7
+ fields: [
8
+ {
9
+ name: 'serviceName',
10
+ message: 'Service slug',
11
+ initial: 'my-project',
12
+ },
13
+ {
14
+ name: 'devBuildkiteQueueName',
15
+ message: 'Dev Buildkite queue',
16
+ initial: 'my-team-aws-account-dev:cicd',
17
+ validate: (value) => /^.+:.+$/.test(value),
18
+ },
19
+ {
20
+ name: 'prodBuildkiteQueueName',
21
+ message: 'Prod Buildkite queue',
22
+ initial: 'my-team-aws-account-prod:cicd',
23
+ validate: (value) => /^.+:.+$/.test(value),
24
+ },
25
+ ],
26
+ type: 'application',
27
+ };
@@ -0,0 +1,10 @@
1
+ import createLogger from '@seek/logger';
2
+ import { SQSEvent, SQSHandler } from 'aws-lambda';
3
+
4
+ const logger = createLogger({
5
+ name: '<%- serviceName %>',
6
+ });
7
+
8
+ export const handler: SQSHandler = (_: SQSEvent) => {
9
+ logger.info('Hello World!');
10
+ };
@@ -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
+ }
@@ -0,0 +1,35 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - beta
7
+ - master
8
+
9
+ permissions: {}
10
+
11
+ jobs:
12
+ release:
13
+ name: Publish & Deploy
14
+ permissions:
15
+ contents: write
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - name: Check out repo
19
+ uses: actions/checkout@v3
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ - name: Set up Node.js 16.x
24
+ uses: actions/setup-node@v3
25
+ with:
26
+ node-version: 16.x
27
+
28
+ - name: Install dependencies
29
+ run: yarn install --frozen-lockfile
30
+
31
+ - name: Publish to npm
32
+ run: yarn release
33
+ env:
34
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35
+ NPM_TOKEN: ${{ secrets.SEEK_OSS_CI_NPM_TOKEN }}
@@ -0,0 +1,31 @@
1
+ name: Validate
2
+
3
+ on:
4
+ - pull_request
5
+ - push
6
+
7
+ permissions: {}
8
+
9
+ jobs:
10
+ validate:
11
+ name: Lint & Test
12
+ permissions:
13
+ checks: write
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Check out repo
17
+ uses: actions/checkout@v3
18
+
19
+ - name: Set up Node.js 16.x
20
+ uses: actions/setup-node@v3
21
+ with:
22
+ node-version: 16.x
23
+
24
+ - name: Install dependencies
25
+ run: yarn install --frozen-lockfile
26
+
27
+ - name: Test
28
+ run: yarn test:ci
29
+
30
+ - name: Lint
31
+ run: yarn lint
@@ -0,0 +1 @@
1
+ 18
@@ -0,0 +1,21 @@
1
+ ### MIT License
2
+
3
+ Copyright (c) 2020 SEEK
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,128 @@
1
+ # <%- moduleName %>
2
+
3
+ [![Powered by skuba](https://img.shields.io/badge/🤿%20skuba-powered-009DC4)](https://github.com/seek-oss/skuba)
4
+
5
+ This package is intended to be public on [seek-oss].
6
+ To create an internal package,
7
+ run `skuba init` and select the `private-npm-package` template.
8
+
9
+ Next steps:
10
+
11
+ 1. [ ] Read [SEEK's Open Source RFC].
12
+ 2. [ ] Create a new repository in the [seek-oss] GitHub organisation.
13
+ 3. [ ] Push local commits to the upstream GitHub branch.
14
+ 4. [ ] Configure [GitHub repository settings].
15
+ 5. [ ] Keep dependencies up to date with [Renovate];
16
+ request installation in [#open-source].
17
+ 6. [ ] Delete this checklist 😌.
18
+
19
+ [#open-source]: https://slack.com/app_redirect?channel=C39P1H2SU
20
+ [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
21
+ [renovate]: https://github.com/apps/renovate
22
+ [seek's open source rfc]: https://rfc.skinfra.xyz/RFC016-Open-Source.html
23
+
24
+ ## API
25
+
26
+ ### `log`
27
+
28
+ Writes the module name to stdout.
29
+ Thrilling stuff.
30
+
31
+ ```typescript
32
+ import { log } from '<%- moduleName %>';
33
+
34
+ log();
35
+ ```
36
+
37
+ ## Development
38
+
39
+ ### Prerequisites
40
+
41
+ - Node.js LTS
42
+ - Yarn 1.x
43
+
44
+ ```shell
45
+ yarn install
46
+ ```
47
+
48
+ ### Test
49
+
50
+ ```shell
51
+ yarn test
52
+ ```
53
+
54
+ ### Lint
55
+
56
+ ```shell
57
+ # Fix issues
58
+ yarn format
59
+
60
+ # Check for issues
61
+ yarn lint
62
+ ```
63
+
64
+ ### Package
65
+
66
+ ```shell
67
+ # Compile source
68
+ yarn build
69
+
70
+ # Review bundle
71
+ npm pack
72
+ ```
73
+
74
+ ## Release
75
+
76
+ This package is published to the public npm registry with a GitHub Actions [release workflow].
77
+
78
+ The workflow runs on select branches:
79
+
80
+ ```yaml
81
+ on:
82
+ push:
83
+ branches:
84
+ # add others as necessary
85
+ - beta
86
+ - master
87
+ # - alpha
88
+ ```
89
+
90
+ It depends on this repo being hosted on [seek-oss] with appropriate access.
91
+
92
+ To set up this repo for publishing, follow the instructions in our [OSS npm package guidance].
93
+
94
+ ### Commit messages
95
+
96
+ This package is published with **[semantic-release]**, which requires a particular commit format to manage semantic versioning.
97
+ You can run the interactive `yarn commit` command in place of `git commit` to generate a compliant commit title and message.
98
+ If you use the `Squash and merge` option on pull requests, take extra care to format the squashed commit in the GitHub UI before merging.
99
+
100
+ ### Releasing latest
101
+
102
+ Commits to the `master` branch will be released with the `latest` tag,
103
+ which is the default used when running `npm install` or `yarn install`.
104
+
105
+ ### Releasing other dist-tags
106
+
107
+ **[semantic-release]** prescribes a branch-based workflow for managing [distribution tags].
108
+
109
+ You can push to other branches to manage betas, maintenance updates to prior major versions, and more.
110
+
111
+ Here are some branches that **semantic-release** supports by default:
112
+
113
+ | Git branch | npm dist-tag |
114
+ | :--------- | :----------- |
115
+ | master | latest |
116
+ | alpha | alpha |
117
+ | beta | beta |
118
+ | next | next |
119
+ | 1.x | release-1.x |
120
+
121
+ For more information, see the **semantic-release** docs on [triggering a release].
122
+
123
+ [distribution tags]: https://docs.npmjs.com/adding-dist-tags-to-packages
124
+ [oss npm package guidance]: https://github.com/SEEK-Jobs/seek-oss-ci/blob/master/NPM_PACKAGES.md#access-to-publish-to-npm
125
+ [release workflow]: .github/workflows/release.yml
126
+ [seek-oss]: https://github.com/seek-oss
127
+ [semantic-release]: https://github.com/semantic-release/semantic-release
128
+ [triggering a release]: https://github.com/semantic-release/semantic-release/#triggering-a-release
@@ -0,0 +1,41 @@
1
+ {
2
+ "dependencies": {},
3
+ "description": "<%- description %>",
4
+ "devDependencies": {
5
+ "@types/node": "^16.18.3",
6
+ "commitizen": "^4.2.4",
7
+ "skuba": "*"
8
+ },
9
+ "files": [
10
+ "lib*/**/*.d.ts",
11
+ "lib*/**/*.js",
12
+ "lib*/**/*.js.map",
13
+ "lib*/**/*.json"
14
+ ],
15
+ "license": "MIT",
16
+ "main": "./lib-commonjs/index.js",
17
+ "module": "./lib-es2015/index.js",
18
+ "name": "<%- moduleName %>",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+ssh://git@github.com/<%- orgName %>/<%- repoName %>.git"
22
+ },
23
+ "scripts": {
24
+ "build": "skuba build-package",
25
+ "commit": "cz",
26
+ "format": "skuba format",
27
+ "lint": "skuba lint",
28
+ "release": "yarn build && skuba release",
29
+ "test": "skuba test",
30
+ "test:ci": "skuba test --coverage",
31
+ "test:watch": "skuba test --watch"
32
+ },
33
+ "config": {
34
+ "commitizen": {
35
+ "path": "cz-conventional-changelog"
36
+ }
37
+ },
38
+ "sideEffects": false,
39
+ "types": "./lib-types/index.d.ts",
40
+ "version": "0.0.0-semantically-released"
41
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Run `skuba configure` to finish templating and remove this file.
3
+ */
4
+
5
+ module.exports = {
6
+ entryPoint: 'src/index.ts',
7
+ fields: [
8
+ {
9
+ name: 'moduleName',
10
+ message: 'Module name',
11
+ initial: 'my-first-module',
12
+ },
13
+ {
14
+ name: 'description',
15
+ message: 'Description',
16
+ initial: 'This is my first module',
17
+ },
18
+ ],
19
+ // `moduleName` is required for a valid `package.json`
20
+ noSkip: true,
21
+ type: 'package',
22
+ };
@@ -0,0 +1,5 @@
1
+ import { log } from './index';
2
+
3
+ describe('app', () => {
4
+ it('defines a log function', () => expect(log).toBeDefined());
5
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Writes the module name to stdout.
3
+ * Thrilling stuff.
4
+ */
5
+ export const log = () =>
6
+ /* eslint-disable-next-line no-console */
7
+ console.log('<%- moduleName %>');
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": ["ES2020"],
4
+ "outDir": "lib",
5
+ "removeComments": false,
6
+ "target": "ES2020"
7
+ },
8
+ "exclude": ["lib*/**/*"],
9
+ "extends": "skuba/config/tsconfig.json"
10
+ }
@@ -0,0 +1,5 @@
1
+ agents:
2
+ queue: artefacts:npm2
3
+
4
+ steps:
5
+ - command: aws s3 cp s3://seek-npm-package-buildkite-pipeline/pipeline-latest.sh - | bash | buildkite-agent pipeline upload
@@ -0,0 +1 @@
1
+ 18
@@ -0,0 +1,109 @@
1
+ # <%- moduleName %>
2
+
3
+ [![Powered by skuba](https://img.shields.io/badge/🤿%20skuba-powered-009DC4)](https://github.com/seek-oss/skuba)
4
+
5
+ This package is intended to be private on [SEEK-Jobs] under the `@seek` npm org.
6
+ To create a public package,
7
+ run `skuba init` and select the `oss-npm-package` template.
8
+
9
+ Next steps:
10
+
11
+ 1. [ ] Create a new repository in the [SEEK-Jobs] GitHub organisation.
12
+ 2. [ ] Follow [Gutenberg] instructions for [installing on your repository].
13
+ 3. [ ] Push local commits to the upstream GitHub branch.
14
+ 4. [ ] Configure [GitHub repository settings].
15
+ 5. [ ] Delete this checklist 😌.
16
+
17
+ [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
18
+ [installing on your repository]: https://github.com/SEEK-Jobs/gutenberg#installing-on-your-repository
19
+
20
+ ## API
21
+
22
+ ### `log`
23
+
24
+ Writes the module name to stdout.
25
+ Thrilling stuff.
26
+
27
+ ```typescript
28
+ import { log } from '<%- moduleName %>';
29
+
30
+ log();
31
+ ```
32
+
33
+ ## Development
34
+
35
+ ### Prerequisites
36
+
37
+ - Node.js LTS
38
+ - Yarn 1.x
39
+
40
+ ```shell
41
+ yarn install
42
+ ```
43
+
44
+ ### Test
45
+
46
+ ```shell
47
+ yarn test
48
+ ```
49
+
50
+ ### Lint
51
+
52
+ ```shell
53
+ # Fix issues
54
+ yarn format
55
+
56
+ # Check for issues
57
+ yarn lint
58
+ ```
59
+
60
+ ### Package
61
+
62
+ ```shell
63
+ # Compile source
64
+ yarn build
65
+
66
+ # Review bundle
67
+ npm pack
68
+ ```
69
+
70
+ ## Release
71
+
72
+ This package is published to the npm registry under the private `@seek` npm org with [Gutenberg], SEEK's central npm publishing pipeline.
73
+
74
+ It depends on this repo being hosted on [SEEK-Jobs] with appropriate access.
75
+
76
+ ### Commit messages
77
+
78
+ This package is published with **[semantic-release]**, which requires a particular commit format to manage semantic versioning.
79
+ You can run the interactive `yarn commit` command in place of `git commit` to generate a compliant commit title and message.
80
+ If you use the `Squash and merge` option on pull requests, take extra care to format the squashed commit in the GitHub UI before merging.
81
+
82
+ ### Releasing latest
83
+
84
+ Commits to the `master` branch will be released with the `latest` tag,
85
+ which is the default used when running `npm install` or `yarn install`.
86
+
87
+ ### Releasing other dist-tags
88
+
89
+ **[semantic-release]** prescribes a branch-based workflow for managing [distribution tags].
90
+
91
+ You can push to other branches to manage betas, maintenance updates to prior major versions, and more.
92
+
93
+ Here are some branches that **semantic-release** supports by default:
94
+
95
+ | Git branch | npm dist-tag |
96
+ | :--------- | :----------- |
97
+ | master | latest |
98
+ | alpha | alpha |
99
+ | beta | beta |
100
+ | next | next |
101
+ | 1.x | release-1.x |
102
+
103
+ For more information, see the **semantic-release** docs on [triggering a release].
104
+
105
+ [distribution tags]: https://docs.npmjs.com/adding-dist-tags-to-packages
106
+ [gutenberg]: https://github.com/SEEK-Jobs/gutenberg
107
+ [seek-jobs]: https://github.com/orgs/seek-jobs/sso
108
+ [semantic-release]: https://github.com/semantic-release/semantic-release
109
+ [triggering a release]: https://github.com/semantic-release/semantic-release/#triggering-a-release