@stamhoofd/cli 2.122.1

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 (348) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +365 -0
  3. package/bin/stam.js +19 -0
  4. package/dist/base-command.d.ts +22 -0
  5. package/dist/base-command.d.ts.map +1 -0
  6. package/dist/base-command.js +23 -0
  7. package/dist/base-command.js.map +1 -0
  8. package/dist/command-flags.d.ts +8 -0
  9. package/dist/command-flags.d.ts.map +1 -0
  10. package/dist/command-flags.js +32 -0
  11. package/dist/command-flags.js.map +1 -0
  12. package/dist/commands/build.d.ts +12 -0
  13. package/dist/commands/build.d.ts.map +1 -0
  14. package/dist/commands/build.js +16 -0
  15. package/dist/commands/build.js.map +1 -0
  16. package/dist/commands/check/all.d.ts +12 -0
  17. package/dist/commands/check/all.d.ts.map +1 -0
  18. package/dist/commands/check/all.js +21 -0
  19. package/dist/commands/check/all.js.map +1 -0
  20. package/dist/commands/check/index.d.ts +8 -0
  21. package/dist/commands/check/index.d.ts.map +1 -0
  22. package/dist/commands/check/index.js +15 -0
  23. package/dist/commands/check/index.js.map +1 -0
  24. package/dist/commands/check/lint.d.ts +11 -0
  25. package/dist/commands/check/lint.d.ts.map +1 -0
  26. package/dist/commands/check/lint.js +16 -0
  27. package/dist/commands/check/lint.js.map +1 -0
  28. package/dist/commands/check/typecheck.d.ts +11 -0
  29. package/dist/commands/check/typecheck.d.ts.map +1 -0
  30. package/dist/commands/check/typecheck.js +16 -0
  31. package/dist/commands/check/typecheck.js.map +1 -0
  32. package/dist/commands/clean/index.d.ts +31 -0
  33. package/dist/commands/clean/index.d.ts.map +1 -0
  34. package/dist/commands/clean/index.js +131 -0
  35. package/dist/commands/clean/index.js.map +1 -0
  36. package/dist/commands/config/explain.d.ts +13 -0
  37. package/dist/commands/config/explain.d.ts.map +1 -0
  38. package/dist/commands/config/explain.js +26 -0
  39. package/dist/commands/config/explain.js.map +1 -0
  40. package/dist/commands/config/index.d.ts +8 -0
  41. package/dist/commands/config/index.d.ts.map +1 -0
  42. package/dist/commands/config/index.js +15 -0
  43. package/dist/commands/config/index.js.map +1 -0
  44. package/dist/commands/config/print.d.ts +13 -0
  45. package/dist/commands/config/print.d.ts.map +1 -0
  46. package/dist/commands/config/print.js +19 -0
  47. package/dist/commands/config/print.js.map +1 -0
  48. package/dist/commands/db/backup/index.d.ts +13 -0
  49. package/dist/commands/db/backup/index.d.ts.map +1 -0
  50. package/dist/commands/db/backup/index.js +31 -0
  51. package/dist/commands/db/backup/index.js.map +1 -0
  52. package/dist/commands/db/backup/list.d.ts +13 -0
  53. package/dist/commands/db/backup/list.d.ts.map +1 -0
  54. package/dist/commands/db/backup/list.js +38 -0
  55. package/dist/commands/db/backup/list.js.map +1 -0
  56. package/dist/commands/db/backup/remove.d.ts +15 -0
  57. package/dist/commands/db/backup/remove.d.ts.map +1 -0
  58. package/dist/commands/db/backup/remove.js +24 -0
  59. package/dist/commands/db/backup/remove.js.map +1 -0
  60. package/dist/commands/db/backup/rename.d.ts +15 -0
  61. package/dist/commands/db/backup/rename.d.ts.map +1 -0
  62. package/dist/commands/db/backup/rename.js +24 -0
  63. package/dist/commands/db/backup/rename.js.map +1 -0
  64. package/dist/commands/db/copy.d.ts +16 -0
  65. package/dist/commands/db/copy.d.ts.map +1 -0
  66. package/dist/commands/db/copy.js +27 -0
  67. package/dist/commands/db/copy.js.map +1 -0
  68. package/dist/commands/db/index.d.ts +8 -0
  69. package/dist/commands/db/index.d.ts.map +1 -0
  70. package/dist/commands/db/index.js +20 -0
  71. package/dist/commands/db/index.js.map +1 -0
  72. package/dist/commands/db/migrate.d.ts +13 -0
  73. package/dist/commands/db/migrate.d.ts.map +1 -0
  74. package/dist/commands/db/migrate.js +16 -0
  75. package/dist/commands/db/migrate.js.map +1 -0
  76. package/dist/commands/db/move.d.ts +16 -0
  77. package/dist/commands/db/move.d.ts.map +1 -0
  78. package/dist/commands/db/move.js +28 -0
  79. package/dist/commands/db/move.js.map +1 -0
  80. package/dist/commands/db/remove.d.ts +15 -0
  81. package/dist/commands/db/remove.d.ts.map +1 -0
  82. package/dist/commands/db/remove.js +25 -0
  83. package/dist/commands/db/remove.js.map +1 -0
  84. package/dist/commands/db/restore.d.ts +13 -0
  85. package/dist/commands/db/restore.d.ts.map +1 -0
  86. package/dist/commands/db/restore.js +31 -0
  87. package/dist/commands/db/restore.js.map +1 -0
  88. package/dist/commands/db/shell.d.ts +13 -0
  89. package/dist/commands/db/shell.d.ts.map +1 -0
  90. package/dist/commands/db/shell.js +20 -0
  91. package/dist/commands/db/shell.js.map +1 -0
  92. package/dist/commands/dev/index.d.ts +19 -0
  93. package/dist/commands/dev/index.d.ts.map +1 -0
  94. package/dist/commands/dev/index.js +63 -0
  95. package/dist/commands/dev/index.js.map +1 -0
  96. package/dist/commands/services/down.d.ts +11 -0
  97. package/dist/commands/services/down.d.ts.map +1 -0
  98. package/dist/commands/services/down.js +17 -0
  99. package/dist/commands/services/down.js.map +1 -0
  100. package/dist/commands/services/index.d.ts +8 -0
  101. package/dist/commands/services/index.d.ts.map +1 -0
  102. package/dist/commands/services/index.js +15 -0
  103. package/dist/commands/services/index.js.map +1 -0
  104. package/dist/commands/services/logs.d.ts +11 -0
  105. package/dist/commands/services/logs.d.ts.map +1 -0
  106. package/dist/commands/services/logs.js +15 -0
  107. package/dist/commands/services/logs.js.map +1 -0
  108. package/dist/commands/services/restart.d.ts +11 -0
  109. package/dist/commands/services/restart.d.ts.map +1 -0
  110. package/dist/commands/services/restart.js +18 -0
  111. package/dist/commands/services/restart.js.map +1 -0
  112. package/dist/commands/services/status.d.ts +11 -0
  113. package/dist/commands/services/status.d.ts.map +1 -0
  114. package/dist/commands/services/status.js +16 -0
  115. package/dist/commands/services/status.js.map +1 -0
  116. package/dist/commands/services/stop.d.ts +2 -0
  117. package/dist/commands/services/stop.d.ts.map +1 -0
  118. package/dist/commands/services/stop.js +2 -0
  119. package/dist/commands/services/stop.js.map +1 -0
  120. package/dist/commands/services/up.d.ts +11 -0
  121. package/dist/commands/services/up.d.ts.map +1 -0
  122. package/dist/commands/services/up.js +16 -0
  123. package/dist/commands/services/up.js.map +1 -0
  124. package/dist/commands/setup/index.d.ts +22 -0
  125. package/dist/commands/setup/index.d.ts.map +1 -0
  126. package/dist/commands/setup/index.js +69 -0
  127. package/dist/commands/setup/index.js.map +1 -0
  128. package/dist/commands/sso/config.d.ts +16 -0
  129. package/dist/commands/sso/config.d.ts.map +1 -0
  130. package/dist/commands/sso/config.js +21 -0
  131. package/dist/commands/sso/config.js.map +1 -0
  132. package/dist/commands/sso/index.d.ts +8 -0
  133. package/dist/commands/sso/index.d.ts.map +1 -0
  134. package/dist/commands/sso/index.js +16 -0
  135. package/dist/commands/sso/index.js.map +1 -0
  136. package/dist/commands/sso/logs.d.ts +13 -0
  137. package/dist/commands/sso/logs.d.ts.map +1 -0
  138. package/dist/commands/sso/logs.js +17 -0
  139. package/dist/commands/sso/logs.js.map +1 -0
  140. package/dist/commands/sso/start.d.ts +17 -0
  141. package/dist/commands/sso/start.d.ts.map +1 -0
  142. package/dist/commands/sso/start.js +32 -0
  143. package/dist/commands/sso/start.js.map +1 -0
  144. package/dist/commands/sso/stop.d.ts +13 -0
  145. package/dist/commands/sso/stop.d.ts.map +1 -0
  146. package/dist/commands/sso/stop.js +18 -0
  147. package/dist/commands/sso/stop.js.map +1 -0
  148. package/dist/commands/status.d.ts +15 -0
  149. package/dist/commands/status.d.ts.map +1 -0
  150. package/dist/commands/status.js +61 -0
  151. package/dist/commands/status.js.map +1 -0
  152. package/dist/commands/test/all.d.ts +12 -0
  153. package/dist/commands/test/all.d.ts.map +1 -0
  154. package/dist/commands/test/all.js +19 -0
  155. package/dist/commands/test/all.js.map +1 -0
  156. package/dist/commands/test/e2e.d.ts +16 -0
  157. package/dist/commands/test/e2e.d.ts.map +1 -0
  158. package/dist/commands/test/e2e.js +32 -0
  159. package/dist/commands/test/e2e.js.map +1 -0
  160. package/dist/commands/test/index.d.ts +8 -0
  161. package/dist/commands/test/index.d.ts.map +1 -0
  162. package/dist/commands/test/index.js +16 -0
  163. package/dist/commands/test/index.js.map +1 -0
  164. package/dist/commands/test/unit.d.ts +12 -0
  165. package/dist/commands/test/unit.d.ts.map +1 -0
  166. package/dist/commands/test/unit.js +17 -0
  167. package/dist/commands/test/unit.js.map +1 -0
  168. package/dist/config/build-config.d.ts +15 -0
  169. package/dist/config/build-config.d.ts.map +1 -0
  170. package/dist/config/build-config.js +8 -0
  171. package/dist/config/build-config.js.map +1 -0
  172. package/dist/config/caddy-config.d.ts +122 -0
  173. package/dist/config/caddy-config.d.ts.map +1 -0
  174. package/dist/config/caddy-config.js +127 -0
  175. package/dist/config/caddy-config.js.map +1 -0
  176. package/dist/config/development-config.d.ts +48 -0
  177. package/dist/config/development-config.d.ts.map +1 -0
  178. package/dist/config/development-config.js +230 -0
  179. package/dist/config/development-config.js.map +1 -0
  180. package/dist/config/internal-secrets.d.ts +13 -0
  181. package/dist/config/internal-secrets.d.ts.map +1 -0
  182. package/dist/config/internal-secrets.js +65 -0
  183. package/dist/config/internal-secrets.js.map +1 -0
  184. package/dist/config/shared-service-config.d.ts +60 -0
  185. package/dist/config/shared-service-config.d.ts.map +1 -0
  186. package/dist/config/shared-service-config.js +94 -0
  187. package/dist/config/shared-service-config.js.map +1 -0
  188. package/dist/config/shared-service-profile.d.ts +29 -0
  189. package/dist/config/shared-service-profile.d.ts.map +1 -0
  190. package/dist/config/shared-service-profile.js +56 -0
  191. package/dist/config/shared-service-profile.js.map +1 -0
  192. package/dist/context/create-context.d.ts +19 -0
  193. package/dist/context/create-context.d.ts.map +1 -0
  194. package/dist/context/create-context.js +26 -0
  195. package/dist/context/create-context.js.map +1 -0
  196. package/dist/context/instance.d.ts +12 -0
  197. package/dist/context/instance.d.ts.map +1 -0
  198. package/dist/context/instance.js +26 -0
  199. package/dist/context/instance.js.map +1 -0
  200. package/dist/context/port-allocation.d.ts +3 -0
  201. package/dist/context/port-allocation.d.ts.map +1 -0
  202. package/dist/context/port-allocation.js +77 -0
  203. package/dist/context/port-allocation.js.map +1 -0
  204. package/dist/context/ports.d.ts +14 -0
  205. package/dist/context/ports.d.ts.map +1 -0
  206. package/dist/context/ports.js +17 -0
  207. package/dist/context/ports.js.map +1 -0
  208. package/dist/context/project-path.d.ts +2 -0
  209. package/dist/context/project-path.d.ts.map +1 -0
  210. package/dist/context/project-path.js +7 -0
  211. package/dist/context/project-path.js.map +1 -0
  212. package/dist/context/workspace.d.ts +5 -0
  213. package/dist/context/workspace.d.ts.map +1 -0
  214. package/dist/context/workspace.js +47 -0
  215. package/dist/context/workspace.js.map +1 -0
  216. package/dist/help.d.ts +13 -0
  217. package/dist/help.d.ts.map +1 -0
  218. package/dist/help.js +125 -0
  219. package/dist/help.js.map +1 -0
  220. package/dist/index.d.ts +13 -0
  221. package/dist/index.d.ts.map +1 -0
  222. package/dist/index.js +10 -0
  223. package/dist/index.js.map +1 -0
  224. package/dist/runtime/command-runner.d.ts +20 -0
  225. package/dist/runtime/command-runner.d.ts.map +1 -0
  226. package/dist/runtime/command-runner.js +75 -0
  227. package/dist/runtime/command-runner.js.map +1 -0
  228. package/dist/runtime/database-command-helpers.d.ts +16 -0
  229. package/dist/runtime/database-command-helpers.d.ts.map +1 -0
  230. package/dist/runtime/database-command-helpers.js +64 -0
  231. package/dist/runtime/database-command-helpers.js.map +1 -0
  232. package/dist/runtime/db-backup-helpers.d.ts +24 -0
  233. package/dist/runtime/db-backup-helpers.d.ts.map +1 -0
  234. package/dist/runtime/db-backup-helpers.js +145 -0
  235. package/dist/runtime/db-backup-helpers.js.map +1 -0
  236. package/dist/runtime/live-output.d.ts +31 -0
  237. package/dist/runtime/live-output.d.ts.map +1 -0
  238. package/dist/runtime/live-output.js +139 -0
  239. package/dist/runtime/live-output.js.map +1 -0
  240. package/dist/runtime/manifest-store.d.ts +66 -0
  241. package/dist/runtime/manifest-store.d.ts.map +1 -0
  242. package/dist/runtime/manifest-store.js +188 -0
  243. package/dist/runtime/manifest-store.js.map +1 -0
  244. package/dist/runtime/monorepo-runner.d.ts +20 -0
  245. package/dist/runtime/monorepo-runner.d.ts.map +1 -0
  246. package/dist/runtime/monorepo-runner.js +175 -0
  247. package/dist/runtime/monorepo-runner.js.map +1 -0
  248. package/dist/runtime/one-password.d.ts +7 -0
  249. package/dist/runtime/one-password.d.ts.map +1 -0
  250. package/dist/runtime/one-password.js +90 -0
  251. package/dist/runtime/one-password.js.map +1 -0
  252. package/dist/runtime/output-target.d.ts +13 -0
  253. package/dist/runtime/output-target.d.ts.map +1 -0
  254. package/dist/runtime/output-target.js +22 -0
  255. package/dist/runtime/output-target.js.map +1 -0
  256. package/dist/runtime/show-help.d.ts +3 -0
  257. package/dist/runtime/show-help.d.ts.map +1 -0
  258. package/dist/runtime/show-help.js +6 -0
  259. package/dist/runtime/show-help.js.map +1 -0
  260. package/dist/runtime/status.d.ts +10 -0
  261. package/dist/runtime/status.d.ts.map +1 -0
  262. package/dist/runtime/status.js +28 -0
  263. package/dist/runtime/status.js.map +1 -0
  264. package/dist/runtime/ux.d.ts +62 -0
  265. package/dist/runtime/ux.d.ts.map +1 -0
  266. package/dist/runtime/ux.js +255 -0
  267. package/dist/runtime/ux.js.map +1 -0
  268. package/dist/services/definitions/caddy-service.d.ts +31 -0
  269. package/dist/services/definitions/caddy-service.d.ts.map +1 -0
  270. package/dist/services/definitions/caddy-service.js +93 -0
  271. package/dist/services/definitions/caddy-service.js.map +1 -0
  272. package/dist/services/definitions/coredns-service.d.ts +20 -0
  273. package/dist/services/definitions/coredns-service.d.ts.map +1 -0
  274. package/dist/services/definitions/coredns-service.js +43 -0
  275. package/dist/services/definitions/coredns-service.js.map +1 -0
  276. package/dist/services/definitions/maildev-service.d.ts +14 -0
  277. package/dist/services/definitions/maildev-service.d.ts.map +1 -0
  278. package/dist/services/definitions/maildev-service.js +28 -0
  279. package/dist/services/definitions/maildev-service.js.map +1 -0
  280. package/dist/services/definitions/mysql-service.d.ts +19 -0
  281. package/dist/services/definitions/mysql-service.d.ts.map +1 -0
  282. package/dist/services/definitions/mysql-service.js +41 -0
  283. package/dist/services/definitions/mysql-service.js.map +1 -0
  284. package/dist/services/definitions/rustfs-service.d.ts +16 -0
  285. package/dist/services/definitions/rustfs-service.d.ts.map +1 -0
  286. package/dist/services/definitions/rustfs-service.js +36 -0
  287. package/dist/services/definitions/rustfs-service.js.map +1 -0
  288. package/dist/services/definitions/sso-service.d.ts +27 -0
  289. package/dist/services/definitions/sso-service.d.ts.map +1 -0
  290. package/dist/services/definitions/sso-service.js +41 -0
  291. package/dist/services/definitions/sso-service.js.map +1 -0
  292. package/dist/services/definitions/stripe-service.d.ts +26 -0
  293. package/dist/services/definitions/stripe-service.d.ts.map +1 -0
  294. package/dist/services/definitions/stripe-service.js +70 -0
  295. package/dist/services/definitions/stripe-service.js.map +1 -0
  296. package/dist/services/docker-service.d.ts +39 -0
  297. package/dist/services/docker-service.d.ts.map +1 -0
  298. package/dist/services/docker-service.js +98 -0
  299. package/dist/services/docker-service.js.map +1 -0
  300. package/dist/services/docker.d.ts +23 -0
  301. package/dist/services/docker.d.ts.map +1 -0
  302. package/dist/services/docker.js +86 -0
  303. package/dist/services/docker.js.map +1 -0
  304. package/dist/services/manager.d.ts +25 -0
  305. package/dist/services/manager.d.ts.map +1 -0
  306. package/dist/services/manager.js +238 -0
  307. package/dist/services/manager.js.map +1 -0
  308. package/dist/services/registry.d.ts +3 -0
  309. package/dist/services/registry.d.ts.map +1 -0
  310. package/dist/services/registry.js +13 -0
  311. package/dist/services/registry.js.map +1 -0
  312. package/dist/services/service.d.ts +24 -0
  313. package/dist/services/service.d.ts.map +1 -0
  314. package/dist/services/service.js +2 -0
  315. package/dist/services/service.js.map +1 -0
  316. package/dist/services/shared-services.d.ts +17 -0
  317. package/dist/services/shared-services.d.ts.map +1 -0
  318. package/dist/services/shared-services.js +67 -0
  319. package/dist/services/shared-services.js.map +1 -0
  320. package/dist/services/sso-config.d.ts +14 -0
  321. package/dist/services/sso-config.d.ts.map +1 -0
  322. package/dist/services/sso-config.js +106 -0
  323. package/dist/services/sso-config.js.map +1 -0
  324. package/dist/services/stripe.d.ts +4 -0
  325. package/dist/services/stripe.d.ts.map +1 -0
  326. package/dist/services/stripe.js +8 -0
  327. package/dist/services/stripe.js.map +1 -0
  328. package/dist/workflows/setup-machine.d.ts +55 -0
  329. package/dist/workflows/setup-machine.d.ts.map +1 -0
  330. package/dist/workflows/setup-machine.js +529 -0
  331. package/dist/workflows/setup-machine.js.map +1 -0
  332. package/dist/workflows/setup-node.d.ts +14 -0
  333. package/dist/workflows/setup-node.d.ts.map +1 -0
  334. package/dist/workflows/setup-node.js +49 -0
  335. package/dist/workflows/setup-node.js.map +1 -0
  336. package/dist/workflows/setup-shell.d.ts +32 -0
  337. package/dist/workflows/setup-shell.d.ts.map +1 -0
  338. package/dist/workflows/setup-shell.js +104 -0
  339. package/dist/workflows/setup-shell.js.map +1 -0
  340. package/dist/workflows/start-dev.d.ts +13 -0
  341. package/dist/workflows/start-dev.d.ts.map +1 -0
  342. package/dist/workflows/start-dev.js +339 -0
  343. package/dist/workflows/start-dev.js.map +1 -0
  344. package/dist/workflows/start-services.d.ts +3 -0
  345. package/dist/workflows/start-services.d.ts.map +1 -0
  346. package/dist/workflows/start-services.js +6 -0
  347. package/dist/workflows/start-services.js.map +1 -0
  348. package/package.json +69 -0
@@ -0,0 +1,32 @@
1
+ export declare const SHELL_SNIPPET_START = "# >>> stam cli >>>";
2
+ export declare const SHELL_SNIPPET_END = "# <<< stam cli <<<";
3
+ /**
4
+ * A shell function that resolves `stam` to the CLI inside whatever Stamhoofd
5
+ * clone or worktree the current directory belongs to. It walks up the directory
6
+ * tree from $PWD until it finds shared/cli/bin/stam.js, so the same `stam`
7
+ * command always runs the right checkout — including from any subdirectory. If
8
+ * that checkout has never been built, it builds the CLI once before running.
9
+ */
10
+ export declare function buildShellSnippet(): string;
11
+ export type ShellKind = 'zsh' | 'bash';
12
+ export declare function detectShellKind(shellPath: string | undefined): ShellKind;
13
+ export declare function defaultRcFile(shell: ShellKind, home?: string): string;
14
+ export type InstallShellResult = {
15
+ rcFile: string;
16
+ action: 'created' | 'updated' | 'unchanged';
17
+ };
18
+ /**
19
+ * Inserts or refreshes the `stam` shell function in the given rc file. The block
20
+ * is delimited by marker comments so repeated runs stay idempotent and never
21
+ * duplicate the function.
22
+ */
23
+ export declare function installShellFunction(rcFile: string): Promise<InstallShellResult>;
24
+ /**
25
+ * Sets up the `stam` shell shortcut so you can drop the `yarn` prefix. With
26
+ * dryRun, prints the snippet instead of editing any file.
27
+ */
28
+ export declare function setupShellShortcut(options?: {
29
+ dryRun?: boolean;
30
+ shell?: ShellKind;
31
+ }): Promise<void>;
32
+ //# sourceMappingURL=setup-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-shell.d.ts","sourceRoot":"","sources":["../../src/workflows/setup-shell.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAKxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,MAAqB,GAAG,MAAM,CAEnF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/C,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgCtF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7G"}
@@ -0,0 +1,104 @@
1
+ import fs from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { command, info, success } from '../runtime/ux.js';
5
+ export const SHELL_SNIPPET_START = '# >>> stam cli >>>';
6
+ export const SHELL_SNIPPET_END = '# <<< stam cli <<<';
7
+ /**
8
+ * A shell function that resolves `stam` to the CLI inside whatever Stamhoofd
9
+ * clone or worktree the current directory belongs to. It walks up the directory
10
+ * tree from $PWD until it finds shared/cli/bin/stam.js, so the same `stam`
11
+ * command always runs the right checkout — including from any subdirectory. If
12
+ * that checkout has never been built, it builds the CLI once before running.
13
+ */
14
+ export function buildShellSnippet() {
15
+ return [
16
+ SHELL_SNIPPET_START,
17
+ '# Resolves `stam` to the CLI inside whatever Stamhoofd clone or worktree you are in.',
18
+ 'stam() {',
19
+ ' local dir="$PWD"',
20
+ ' while [ -n "$dir" ]; do',
21
+ ' if [ -f "$dir/shared/cli/bin/stam.js" ]; then',
22
+ ' if [ ! -f "$dir/shared/cli/dist/index.js" ]; then',
23
+ ' echo "stam: building CLI in $dir/shared/cli (first run)…" >&2',
24
+ ' yarn --cwd "$dir/shared/cli" -s build || return $?',
25
+ ' fi',
26
+ ' node "$dir/shared/cli/bin/stam.js" "$@"',
27
+ ' return $?',
28
+ ' fi',
29
+ ' dir="${dir%/*}"',
30
+ ' done',
31
+ ' echo "stam: not inside a Stamhoofd repository (no shared/cli/bin/stam.js found above $PWD)" >&2',
32
+ ' return 1',
33
+ '}',
34
+ SHELL_SNIPPET_END,
35
+ ].join('\n');
36
+ }
37
+ export function detectShellKind(shellPath) {
38
+ if (shellPath && path.basename(shellPath).includes('bash')) {
39
+ return 'bash';
40
+ }
41
+ return 'zsh';
42
+ }
43
+ export function defaultRcFile(shell, home = os.homedir()) {
44
+ return path.join(home, shell === 'bash' ? '.bashrc' : '.zshrc');
45
+ }
46
+ /**
47
+ * Inserts or refreshes the `stam` shell function in the given rc file. The block
48
+ * is delimited by marker comments so repeated runs stay idempotent and never
49
+ * duplicate the function.
50
+ */
51
+ export async function installShellFunction(rcFile) {
52
+ const snippet = buildShellSnippet();
53
+ let existing = '';
54
+ let fileExists = true;
55
+ try {
56
+ existing = await fs.readFile(rcFile, 'utf8');
57
+ }
58
+ catch (error) {
59
+ if (error.code !== 'ENOENT') {
60
+ throw error;
61
+ }
62
+ fileExists = false;
63
+ }
64
+ const startIndex = existing.indexOf(SHELL_SNIPPET_START);
65
+ const endIndex = existing.indexOf(SHELL_SNIPPET_END);
66
+ if (startIndex !== -1 && endIndex !== -1 && endIndex > startIndex) {
67
+ const before = existing.slice(0, startIndex);
68
+ const after = existing.slice(endIndex + SHELL_SNIPPET_END.length);
69
+ const next = `${before}${snippet}${after}`;
70
+ if (next === existing) {
71
+ return { rcFile, action: 'unchanged' };
72
+ }
73
+ await fs.writeFile(rcFile, next);
74
+ return { rcFile, action: 'updated' };
75
+ }
76
+ const block = `${existing.length > 0 && !existing.endsWith('\n') ? '\n' : ''}${existing.length > 0 ? '\n' : ''}${snippet}\n`;
77
+ await fs.writeFile(rcFile, `${existing}${block}`);
78
+ return { rcFile, action: fileExists ? 'updated' : 'created' };
79
+ }
80
+ /**
81
+ * Sets up the `stam` shell shortcut so you can drop the `yarn` prefix. With
82
+ * dryRun, prints the snippet instead of editing any file.
83
+ */
84
+ export async function setupShellShortcut(options = {}) {
85
+ if (options.dryRun) {
86
+ info(buildShellSnippet());
87
+ return;
88
+ }
89
+ const shell = options.shell ?? detectShellKind(process.env.SHELL);
90
+ const rcFile = defaultRcFile(shell);
91
+ const result = await installShellFunction(rcFile);
92
+ if (result.action === 'unchanged') {
93
+ success(`\`stam\` shortcut is already installed in ${result.rcFile}`);
94
+ }
95
+ else {
96
+ success(`${result.action === 'created' ? 'Created' : 'Updated'} ${result.rcFile} with the \`stam\` shell function`);
97
+ }
98
+ info('');
99
+ info('Restart your terminal or reload your shell to start using it:');
100
+ info(` ${command(`source ${result.rcFile}`)}`);
101
+ info('');
102
+ info(`Then run ${command('stam --help')} from anywhere inside a Stamhoofd repository.`);
103
+ }
104
+ //# sourceMappingURL=setup-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-shell.js","sourceRoot":"","sources":["../../src/workflows/setup-shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { CliContext } from '../context/create-context.js';
2
+ export declare enum DevTarget {
3
+ All = "all",
4
+ Instance = "instance",
5
+ Backend = "backend",
6
+ Frontend = "frontend"
7
+ }
8
+ export declare function runDev(context: CliContext, target: DevTarget, options: {
9
+ services: boolean;
10
+ stripe: boolean;
11
+ open?: boolean;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=start-dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-dev.d.ts","sourceRoot":"","sources":["../../src/workflows/start-dev.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAuB/D,oBAAY,SAAS;IACjB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAYD,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuPnJ"}
@@ -0,0 +1,339 @@
1
+ import chalk from 'chalk';
2
+ import { spawn } from 'node:child_process';
3
+ import { buildBackendEnv, buildDomains } from '../config/build-config.js';
4
+ import { successSymbol } from '../config/shared-service-config.js';
5
+ import { createLiveOutput } from '../runtime/live-output.js';
6
+ import { removeInstanceManifest, writeInstanceManifest } from '../runtime/manifest-store.js';
7
+ import { sharedBuildReadyCommand, sharedBuildWatchCommand } from '../runtime/monorepo-runner.js';
8
+ import { OutputStream, setActiveOutputTarget } from '../runtime/output-target.js';
9
+ import { openUrl } from '../runtime/ux.js';
10
+ import { CaddyService } from '../services/definitions/caddy-service.js';
11
+ import { startServices, stopServices } from '../services/manager.js';
12
+ import { sharedServiceDefinitions } from '../services/registry.js';
13
+ import { sharedServicesRunning } from '../services/shared-services.js';
14
+ import { startStripe, stopStripe } from '../services/stripe.js';
15
+ import { checkSetup, isSetupReady, printSetupReport } from './setup-machine.js';
16
+ const forceShutdownGraceMs = 750;
17
+ const serviceCheckIntervalMs = 5000;
18
+ class ForcedShutdownError extends Error {
19
+ exitCode;
20
+ constructor(exitCode) {
21
+ super('Forced shutdown. Cleanup may be incomplete.');
22
+ this.exitCode = exitCode;
23
+ }
24
+ }
25
+ export var DevTarget;
26
+ (function (DevTarget) {
27
+ DevTarget["All"] = "all";
28
+ DevTarget["Instance"] = "instance";
29
+ DevTarget["Backend"] = "backend";
30
+ DevTarget["Frontend"] = "frontend";
31
+ })(DevTarget || (DevTarget = {}));
32
+ var PrerequisiteState;
33
+ (function (PrerequisiteState) {
34
+ PrerequisiteState["Ready"] = "ready";
35
+ PrerequisiteState["Missing"] = "missing";
36
+ })(PrerequisiteState || (PrerequisiteState = {}));
37
+ var MissingPrerequisite;
38
+ (function (MissingPrerequisite) {
39
+ MissingPrerequisite["Setup"] = "setup";
40
+ MissingPrerequisite["Services"] = "services";
41
+ })(MissingPrerequisite || (MissingPrerequisite = {}));
42
+ export async function runDev(context, target, options) {
43
+ let startedServices = false;
44
+ let startedStripe = false;
45
+ const output = createLiveOutput();
46
+ const domains = buildDomains(context);
47
+ let setupState = PrerequisiteState.Ready;
48
+ let servicesState = PrerequisiteState.Ready;
49
+ let servicesCheckInterval;
50
+ let servicesCheckPromise;
51
+ const setStatus = () => {
52
+ output.setStatus(buildStatusItems(domains, context.env, setupState, servicesState));
53
+ };
54
+ const refreshSetupState = async () => {
55
+ const report = await checkSetup(context);
56
+ const ready = isSetupReady(report);
57
+ setupState = ready ? PrerequisiteState.Ready : PrerequisiteState.Missing;
58
+ setStatus();
59
+ if (!ready) {
60
+ output.clearStatus();
61
+ printSetupReport(report);
62
+ }
63
+ return ready;
64
+ };
65
+ const refreshServicesState = async () => {
66
+ if (!options.services) {
67
+ servicesState = PrerequisiteState.Ready;
68
+ return true;
69
+ }
70
+ if (servicesCheckPromise) {
71
+ await servicesCheckPromise;
72
+ return servicesState === PrerequisiteState.Ready;
73
+ }
74
+ servicesCheckPromise = (async () => {
75
+ try {
76
+ servicesState = await sharedServicesRunning(context)
77
+ ? PrerequisiteState.Ready
78
+ : PrerequisiteState.Missing;
79
+ }
80
+ catch {
81
+ servicesState = PrerequisiteState.Missing;
82
+ }
83
+ finally {
84
+ setStatus();
85
+ servicesCheckPromise = undefined;
86
+ }
87
+ })();
88
+ await servicesCheckPromise;
89
+ return servicesState === PrerequisiteState.Ready;
90
+ };
91
+ setActiveOutputTarget(output);
92
+ try {
93
+ setStatus();
94
+ output.log('Starting development session...');
95
+ const setupIsReady = await refreshSetupState();
96
+ if (!setupIsReady) {
97
+ output.log('Resolve the setup issues above, then retry: stam setup');
98
+ return;
99
+ }
100
+ const servicesAreRunning = await refreshServicesState();
101
+ const shouldStartServices = options.services && !servicesAreRunning;
102
+ if (shouldStartServices) {
103
+ try {
104
+ const result = await startServices(context, sharedServiceDefinitions);
105
+ startedServices = result.started.length > 0;
106
+ servicesState = PrerequisiteState.Ready;
107
+ setStatus();
108
+ }
109
+ catch (error) {
110
+ servicesState = PrerequisiteState.Missing;
111
+ setStatus();
112
+ throw error;
113
+ }
114
+ }
115
+ if (!servicesAreRunning && options.services) {
116
+ const servicesReadyAfterStart = await refreshServicesState();
117
+ if (!servicesReadyAfterStart) {
118
+ output.log('Resolve the shared service issues above, then retry: stam services up');
119
+ return;
120
+ }
121
+ }
122
+ await writeInstanceManifest(context, {
123
+ caddy: CaddyService.buildRouteOptions(context),
124
+ domains: {
125
+ dashboard: domains.dashboard,
126
+ api: domains.api,
127
+ renderer: domains.renderer,
128
+ registration: domains.registration,
129
+ webshop: domains.webshop,
130
+ },
131
+ });
132
+ if (options.services) {
133
+ await CaddyService.reload(context);
134
+ servicesCheckInterval = setInterval(() => {
135
+ void refreshServicesState();
136
+ }, serviceCheckIntervalMs);
137
+ }
138
+ const stripeEnv = options.stripe && target !== DevTarget.Frontend
139
+ ? await startStripe(context)
140
+ : {};
141
+ startedStripe = Object.keys(stripeEnv).length > 0;
142
+ if (startedStripe) {
143
+ output.log('Stripe Webook Listener started');
144
+ }
145
+ if (options.open) {
146
+ openUrl(`https://${domains.dashboard}`);
147
+ output.log(`${successSymbol} Opened dashboard in your browser`);
148
+ }
149
+ output.log('Starting app processes...');
150
+ output.log('Press Ctrl+C to stop this session.');
151
+ const command = commandForTarget(target);
152
+ const child = spawn('yarn', ['-s', 'concurrently', '-r', sharedBuildWatchCommand(), `${sharedBuildReadyCommand()} && ${command}`], {
153
+ cwd: context.rootDir,
154
+ env: {
155
+ ...process.env,
156
+ ...buildBackendEnv(context),
157
+ ...stripeEnv,
158
+ FORCE_COLOR: process.env.FORCE_COLOR ?? '1',
159
+ npm_config_color: process.env.npm_config_color ?? 'always',
160
+ npm_config_script_shell: process.env.npm_config_script_shell ?? '/bin/bash',
161
+ },
162
+ stdio: ['inherit', 'pipe', 'pipe'],
163
+ shell: false,
164
+ });
165
+ child.stdout?.on('data', (chunk) => output.write(chunk, OutputStream.Stdout));
166
+ child.stderr?.on('data', (chunk) => output.write(chunk, OutputStream.Stderr));
167
+ await new Promise((resolve, reject) => {
168
+ let stopping = false;
169
+ let forceShutdownArmed = false;
170
+ let forceShutdownTimer;
171
+ let cleanupPromise;
172
+ let settled = false;
173
+ const resolveOnce = () => {
174
+ if (settled) {
175
+ return;
176
+ }
177
+ settled = true;
178
+ resolve();
179
+ };
180
+ const rejectOnce = (error) => {
181
+ if (settled) {
182
+ return;
183
+ }
184
+ settled = true;
185
+ reject(error);
186
+ };
187
+ const stopSession = async () => {
188
+ if (cleanupPromise) {
189
+ await cleanupPromise;
190
+ return;
191
+ }
192
+ cleanupPromise = (async () => {
193
+ try {
194
+ child.kill('SIGTERM');
195
+ if (servicesCheckInterval) {
196
+ clearInterval(servicesCheckInterval);
197
+ }
198
+ await removeInstanceManifest(context);
199
+ if (startedStripe) {
200
+ await stopStripe(context);
201
+ }
202
+ if (options.services) {
203
+ await CaddyService.reload(context);
204
+ }
205
+ if (startedServices) {
206
+ await stopServices(context, sharedServiceDefinitions);
207
+ output.stop({ persistStatus: true });
208
+ output.log(`${successSymbol} Shared services stopped because this session started them`);
209
+ }
210
+ else {
211
+ output.stop({ persistStatus: true });
212
+ }
213
+ output.log(`${successSymbol} Development session stopped`);
214
+ }
215
+ finally {
216
+ if (forceShutdownTimer) {
217
+ clearTimeout(forceShutdownTimer);
218
+ }
219
+ process.off('SIGINT', signalHandler);
220
+ process.off('SIGTERM', signalHandler);
221
+ }
222
+ })();
223
+ await cleanupPromise;
224
+ };
225
+ const signalHandler = (signal) => {
226
+ if (stopping) {
227
+ if (!forceShutdownArmed) {
228
+ return;
229
+ }
230
+ // The first duplicate signal window is ignored because pnpm can
231
+ // forward Ctrl+C more than once. After that grace period, a
232
+ // second signal means the user wants an immediate shutdown.
233
+ output.clearStatus();
234
+ output.log('! Forced shutdown. Cleanup may be incomplete.');
235
+ child.kill('SIGKILL');
236
+ rejectOnce(new ForcedShutdownError(signal === 'SIGTERM' ? 143 : 130));
237
+ return;
238
+ }
239
+ stopping = true;
240
+ // pnpm can deliver the initial Ctrl+C twice: once from the terminal
241
+ // process group and once via its own signal forwarding. Only arm the
242
+ // forced-exit shortcut after that duplicate signal window has passed.
243
+ forceShutdownTimer = setTimeout(() => {
244
+ forceShutdownArmed = true;
245
+ }, forceShutdownGraceMs);
246
+ void stopSession().then(resolveOnce, rejectOnce);
247
+ };
248
+ process.on('SIGINT', signalHandler);
249
+ process.on('SIGTERM', signalHandler);
250
+ child.on('error', rejectOnce);
251
+ child.on('exit', (code) => {
252
+ void (async () => {
253
+ try {
254
+ await stopSession();
255
+ if (stopping) {
256
+ resolveOnce();
257
+ return;
258
+ }
259
+ if (code && code !== 0) {
260
+ rejectOnce(new Error(`Development process exited with status ${code}`));
261
+ return;
262
+ }
263
+ resolveOnce();
264
+ }
265
+ catch (error) {
266
+ rejectOnce(error);
267
+ }
268
+ })();
269
+ });
270
+ });
271
+ }
272
+ finally {
273
+ setActiveOutputTarget(undefined);
274
+ }
275
+ }
276
+ function buildStatusItems(domains, env, setupState, servicesState) {
277
+ return [
278
+ buildDomainStatusItem(domains.dashboard, env),
279
+ buildDomainStatusItem(domains.api, env),
280
+ buildMissingPrerequisiteItem(MissingPrerequisite.Setup, setupState),
281
+ buildMissingPrerequisiteItem(MissingPrerequisite.Services, servicesState),
282
+ ].filter((item) => item !== undefined);
283
+ }
284
+ function buildMissingPrerequisiteItem(label, state) {
285
+ if (state !== PrerequisiteState.Missing) {
286
+ return undefined;
287
+ }
288
+ return { label: chalk.bold.red(`! ${label}`) };
289
+ }
290
+ function buildDomainStatusItem(domain, env) {
291
+ return {
292
+ label: formatDomainLabel(domain, env),
293
+ href: `https://${domain}`,
294
+ };
295
+ }
296
+ function formatDomainLabel(domain, env) {
297
+ const [serviceLabel, ...rest] = domain.split('.');
298
+ const segments = rest;
299
+ const prefix = chalk.dim(`https://${serviceLabel}.`);
300
+ if (segments.length <= 1) {
301
+ return `${prefix}${chalk.dim(segments.join('.'))}`;
302
+ }
303
+ const environmentIndex = env === 'stamhoofd' ? -1 : segments.indexOf(env);
304
+ const highlightIndex = environmentIndex >= 0 ? environmentIndex + 1 : segments.length - 2;
305
+ if (highlightIndex >= segments.length - 1) {
306
+ return `${prefix}${segments.map((segment, index) => index === environmentIndex ? chalk.bold.yellow(segment) : chalk.dim(segment)).join(chalk.dim('.'))}`;
307
+ }
308
+ const environmentSegment = environmentIndex >= 0 ? segments[environmentIndex] : undefined;
309
+ const highlightedSegment = segments[highlightIndex];
310
+ const leading = environmentSegment ? segments.slice(0, environmentIndex).join('.') : segments.slice(0, highlightIndex).join('.');
311
+ const between = environmentSegment ? segments.slice(environmentIndex + 1, highlightIndex).join('.') : '';
312
+ const trailing = segments.slice(highlightIndex + 1).join('.');
313
+ const parts = [prefix];
314
+ if (leading) {
315
+ parts.push(chalk.dim(`${leading}.`));
316
+ }
317
+ if (environmentSegment) {
318
+ parts.push(chalk.bold.yellow(environmentSegment));
319
+ parts.push(chalk.dim('.'));
320
+ if (between) {
321
+ parts.push(chalk.dim(`${between}.`));
322
+ }
323
+ }
324
+ parts.push(chalk.bold.cyan(highlightedSegment));
325
+ if (trailing) {
326
+ parts.push(chalk.dim(`.${trailing}`));
327
+ }
328
+ return parts.join('');
329
+ }
330
+ function commandForTarget(target) {
331
+ if (target === DevTarget.Backend) {
332
+ return 'yarn -s lerna run dev --scope @stamhoofd/backend --scope @stamhoofd/backend-renderer --parallel --stream';
333
+ }
334
+ if (target === DevTarget.Frontend) {
335
+ return 'yarn -s lerna run dev --scope @stamhoofd/dashboard --scope @stamhoofd/registration --scope @stamhoofd/auto --scope @stamhoofd/admin --scope @stamhoofd/verify-email --scope @stamhoofd/web-app --scope @stamhoofd/webshop --parallel --stream';
336
+ }
337
+ return 'yarn -s lerna run dev --scope @stamhoofd/backend --scope @stamhoofd/backend-renderer --scope @stamhoofd/dashboard --scope @stamhoofd/registration --scope @stamhoofd/auto --scope @stamhoofd/admin --scope @stamhoofd/verify-email --scope @stamhoofd/web-app --scope @stamhoofd/webshop --parallel --stream';
338
+ }
339
+ //# sourceMappingURL=start-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-dev.js","sourceRoot":"","sources":["../../src/workflows/start-dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CliContext } from '../context/create-context.js';
2
+ export declare function runServices(context: CliContext): Promise<void>;
3
+ //# sourceMappingURL=start-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-services.d.ts","sourceRoot":"","sources":["../../src/workflows/start-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,wBAAsB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE"}
@@ -0,0 +1,6 @@
1
+ import { startSharedServicesInteractive } from '../services/shared-services.js';
2
+ export async function runServices(context) {
3
+ await startSharedServicesInteractive(context);
4
+ console.log('\nUse stam services down to stop them.');
5
+ }
6
+ //# sourceMappingURL=start-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-services.js","sourceRoot":"","sources":["../../src/workflows/start-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAGhF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAmB;IACjD,MAAM,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AAC1D,CAAC"}
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@stamhoofd/cli",
3
+ "version": "2.122.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "bin",
18
+ "dist",
19
+ "package.json"
20
+ ],
21
+ "bin": {
22
+ "stam": "./bin/stam.js"
23
+ },
24
+ "scripts": {
25
+ "build": "rm -rf dist && tsc --build tsconfig.build.json --force",
26
+ "lint": "eslint .",
27
+ "test": "vitest run",
28
+ "test:coverage": "vitest --coverage"
29
+ },
30
+ "dependencies": {
31
+ "@inquirer/prompts": "7.10.1",
32
+ "@oclif/core": "4.11.4",
33
+ "@stamhoofd/types": "2.122.1",
34
+ "chalk": "5.6.2",
35
+ "log-update": "8.0.0",
36
+ "ora": "9.4.0",
37
+ "terminal-link": "4.0.0"
38
+ },
39
+ "devDependencies": {
40
+ "vitest": "4.1.8"
41
+ },
42
+ "license": "UNLICENSED",
43
+ "oclif": {
44
+ "bin": "stam",
45
+ "description": "Stamhoofd development CLI",
46
+ "commands": "./dist/commands",
47
+ "helpClass": "./dist/help.js",
48
+ "topicSeparator": " ",
49
+ "theme": {
50
+ "sectionHeader": "cyan",
51
+ "command": "cyan",
52
+ "commandSummary": "white",
53
+ "flag": "yellow",
54
+ "flagDefaultValue": "dim",
55
+ "flagOptions": "dim",
56
+ "flagRequired": "yellow",
57
+ "flagSeparator": "dim",
58
+ "bin": "green",
59
+ "dollarSign": "dim",
60
+ "topic": "cyan",
61
+ "sectionDescription": "white",
62
+ "version": "magenta"
63
+ }
64
+ },
65
+ "publishConfig": {
66
+ "access": "public"
67
+ },
68
+ "gitHead": "7f9c0637e743d1f7b5f1b161ab6b09ecd7a199e5"
69
+ }