@supatype/cli 0.1.1 → 0.1.2

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 (316) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +114 -90
  3. package/.turbo/turbo-typecheck.log +2 -2
  4. package/dist/binary-cache.d.ts +2 -0
  5. package/dist/binary-cache.d.ts.map +1 -1
  6. package/dist/binary-cache.js +36 -0
  7. package/dist/binary-cache.js.map +1 -1
  8. package/dist/binary-download-lock.d.ts +12 -0
  9. package/dist/binary-download-lock.d.ts.map +1 -0
  10. package/dist/binary-download-lock.js +106 -0
  11. package/dist/binary-download-lock.js.map +1 -0
  12. package/dist/cli-package-version.d.ts +3 -0
  13. package/dist/cli-package-version.d.ts.map +1 -0
  14. package/dist/cli-package-version.js +15 -0
  15. package/dist/cli-package-version.js.map +1 -0
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +5 -2
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/add.js +25 -19
  20. package/dist/commands/add.js.map +1 -1
  21. package/dist/commands/admin.d.ts.map +1 -1
  22. package/dist/commands/admin.js +22 -6
  23. package/dist/commands/admin.js.map +1 -1
  24. package/dist/commands/cache.d.ts +1 -1
  25. package/dist/commands/cache.d.ts.map +1 -1
  26. package/dist/commands/cache.js +98 -5
  27. package/dist/commands/cache.js.map +1 -1
  28. package/dist/commands/dev.d.ts.map +1 -1
  29. package/dist/commands/dev.js +26 -22
  30. package/dist/commands/dev.js.map +1 -1
  31. package/dist/commands/init.d.ts +3 -4
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +238 -168
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/link-helpers.d.ts.map +1 -1
  36. package/dist/commands/link-helpers.js +26 -25
  37. package/dist/commands/link-helpers.js.map +1 -1
  38. package/dist/compose-local-server-image.d.ts +13 -0
  39. package/dist/compose-local-server-image.d.ts.map +1 -0
  40. package/dist/compose-local-server-image.js +57 -0
  41. package/dist/compose-local-server-image.js.map +1 -0
  42. package/dist/compose-rename.d.ts.map +1 -1
  43. package/dist/compose-rename.js +5 -8
  44. package/dist/compose-rename.js.map +1 -1
  45. package/dist/dev-compose.d.ts.map +1 -1
  46. package/dist/dev-compose.js +111 -54
  47. package/dist/dev-compose.js.map +1 -1
  48. package/dist/dev-log-bus.d.ts +5 -0
  49. package/dist/dev-log-bus.d.ts.map +1 -1
  50. package/dist/dev-log-bus.js +14 -0
  51. package/dist/dev-log-bus.js.map +1 -1
  52. package/dist/dev-log-filter.d.ts +4 -0
  53. package/dist/dev-log-filter.d.ts.map +1 -1
  54. package/dist/dev-log-filter.js +52 -0
  55. package/dist/dev-log-filter.js.map +1 -1
  56. package/dist/dev-ports.d.ts.map +1 -1
  57. package/dist/dev-ports.js +19 -12
  58. package/dist/dev-ports.js.map +1 -1
  59. package/dist/dev-ready-panel.d.ts +19 -0
  60. package/dist/dev-ready-panel.d.ts.map +1 -0
  61. package/dist/dev-ready-panel.js +49 -0
  62. package/dist/dev-ready-panel.js.map +1 -0
  63. package/dist/dev-session-lock.d.ts.map +1 -1
  64. package/dist/dev-session-lock.js +5 -8
  65. package/dist/dev-session-lock.js.map +1 -1
  66. package/dist/dev-session.d.ts +18 -5
  67. package/dist/dev-session.d.ts.map +1 -1
  68. package/dist/dev-session.js +91 -18
  69. package/dist/dev-session.js.map +1 -1
  70. package/dist/dev-shutdown.d.ts +2 -0
  71. package/dist/dev-shutdown.d.ts.map +1 -1
  72. package/dist/dev-shutdown.js +29 -15
  73. package/dist/dev-shutdown.js.map +1 -1
  74. package/dist/dev-task-colors.d.ts +3 -1
  75. package/dist/dev-task-colors.d.ts.map +1 -1
  76. package/dist/dev-task-colors.js +23 -3
  77. package/dist/dev-task-colors.js.map +1 -1
  78. package/dist/docker-runtime.js +1 -1
  79. package/dist/docker-runtime.js.map +1 -1
  80. package/dist/engine-push-output.d.ts +1 -0
  81. package/dist/engine-push-output.d.ts.map +1 -1
  82. package/dist/engine-push-output.js +4 -1
  83. package/dist/engine-push-output.js.map +1 -1
  84. package/dist/ensure-binary.d.ts.map +1 -1
  85. package/dist/ensure-binary.js +14 -2
  86. package/dist/ensure-binary.js.map +1 -1
  87. package/dist/ensure-component-binaries.d.ts +17 -0
  88. package/dist/ensure-component-binaries.d.ts.map +1 -0
  89. package/dist/ensure-component-binaries.js +45 -0
  90. package/dist/ensure-component-binaries.js.map +1 -0
  91. package/dist/ensure-dev-api-config.d.ts +3 -0
  92. package/dist/ensure-dev-api-config.d.ts.map +1 -0
  93. package/dist/ensure-dev-api-config.js +17 -0
  94. package/dist/ensure-dev-api-config.js.map +1 -0
  95. package/dist/init-dependency-versions.d.ts +13 -0
  96. package/dist/init-dependency-versions.d.ts.map +1 -0
  97. package/dist/init-dependency-versions.js +53 -0
  98. package/dist/init-dependency-versions.js.map +1 -0
  99. package/dist/init-package-json.d.ts +21 -0
  100. package/dist/init-package-json.d.ts.map +1 -0
  101. package/dist/init-package-json.js +46 -0
  102. package/dist/init-package-json.js.map +1 -0
  103. package/dist/postgres-ctl.d.ts.map +1 -1
  104. package/dist/postgres-ctl.js +2 -1
  105. package/dist/postgres-ctl.js.map +1 -1
  106. package/dist/required-host-components.d.ts +11 -0
  107. package/dist/required-host-components.d.ts.map +1 -0
  108. package/dist/required-host-components.js +25 -0
  109. package/dist/required-host-components.js.map +1 -0
  110. package/dist/resolve-api-url.d.ts +6 -0
  111. package/dist/resolve-api-url.d.ts.map +1 -0
  112. package/dist/resolve-api-url.js +39 -0
  113. package/dist/resolve-api-url.js.map +1 -0
  114. package/dist/rest-cache-admin.d.ts +33 -0
  115. package/dist/rest-cache-admin.d.ts.map +1 -0
  116. package/dist/rest-cache-admin.js +96 -0
  117. package/dist/rest-cache-admin.js.map +1 -0
  118. package/dist/scripts/postinstall.d.ts +4 -6
  119. package/dist/scripts/postinstall.d.ts.map +1 -1
  120. package/dist/scripts/postinstall.js +8 -41
  121. package/dist/scripts/postinstall.js.map +1 -1
  122. package/dist/self-host-compose.d.ts.map +1 -1
  123. package/dist/self-host-compose.js +23 -13
  124. package/dist/self-host-compose.js.map +1 -1
  125. package/dist/studio-dev-server.d.ts +4 -2
  126. package/dist/studio-dev-server.d.ts.map +1 -1
  127. package/dist/studio-dev-server.js +3 -2
  128. package/dist/studio-dev-server.js.map +1 -1
  129. package/dist/ui/brand.d.ts +2 -5
  130. package/dist/ui/brand.d.ts.map +1 -1
  131. package/dist/ui/brand.js +2 -7
  132. package/dist/ui/brand.js.map +1 -1
  133. package/dist/ui/clack-api.d.ts +44 -0
  134. package/dist/ui/clack-api.d.ts.map +1 -0
  135. package/dist/ui/clack-api.js +76 -0
  136. package/dist/ui/clack-api.js.map +1 -0
  137. package/dist/ui/clack.d.ts +14 -0
  138. package/dist/ui/clack.d.ts.map +1 -0
  139. package/dist/ui/clack.js +147 -0
  140. package/dist/ui/clack.js.map +1 -0
  141. package/dist/ui/components/FlowSpinner.d.ts +5 -0
  142. package/dist/ui/components/FlowSpinner.d.ts.map +1 -0
  143. package/dist/ui/components/FlowSpinner.js +8 -0
  144. package/dist/ui/components/FlowSpinner.js.map +1 -0
  145. package/dist/ui/components/LogoWordmark.d.ts +9 -0
  146. package/dist/ui/components/LogoWordmark.d.ts.map +1 -0
  147. package/dist/ui/components/LogoWordmark.js +17 -0
  148. package/dist/ui/components/LogoWordmark.js.map +1 -0
  149. package/dist/ui/components/PromptPanel.d.ts +5 -0
  150. package/dist/ui/components/PromptPanel.d.ts.map +1 -0
  151. package/dist/ui/components/PromptPanel.js +7 -0
  152. package/dist/ui/components/PromptPanel.js.map +1 -0
  153. package/dist/ui/components/SelectField.d.ts +11 -0
  154. package/dist/ui/components/SelectField.d.ts.map +1 -0
  155. package/dist/ui/components/SelectField.js +19 -0
  156. package/dist/ui/components/SelectField.js.map +1 -0
  157. package/dist/ui/confirm.d.ts +2 -1
  158. package/dist/ui/confirm.d.ts.map +1 -1
  159. package/dist/ui/confirm.js +4 -4
  160. package/dist/ui/confirm.js.map +1 -1
  161. package/dist/ui/dev/DevDashboard.d.ts +8 -0
  162. package/dist/ui/dev/DevDashboard.d.ts.map +1 -0
  163. package/dist/ui/dev/DevDashboard.js +151 -0
  164. package/dist/ui/dev/DevDashboard.js.map +1 -0
  165. package/dist/ui/dev/DevReadyPanelView.d.ts +7 -0
  166. package/dist/ui/dev/DevReadyPanelView.d.ts.map +1 -0
  167. package/dist/ui/dev/DevReadyPanelView.js +29 -0
  168. package/dist/ui/dev/DevReadyPanelView.js.map +1 -0
  169. package/dist/ui/fatal.d.ts.map +1 -1
  170. package/dist/ui/fatal.js +5 -11
  171. package/dist/ui/fatal.js.map +1 -1
  172. package/dist/ui/flows/FlowApp.d.ts +8 -0
  173. package/dist/ui/flows/FlowApp.d.ts.map +1 -0
  174. package/dist/ui/flows/FlowApp.js +42 -0
  175. package/dist/ui/flows/FlowApp.js.map +1 -0
  176. package/dist/ui/flows/prompt-fields.d.ts +48 -0
  177. package/dist/ui/flows/prompt-fields.d.ts.map +1 -0
  178. package/dist/ui/flows/prompt-fields.js +88 -0
  179. package/dist/ui/flows/prompt-fields.js.map +1 -0
  180. package/dist/ui/flows/types.d.ts +41 -0
  181. package/dist/ui/flows/types.d.ts.map +1 -0
  182. package/dist/ui/flows/types.js +2 -0
  183. package/dist/ui/flows/types.js.map +1 -0
  184. package/dist/ui/index.d.ts +1 -1
  185. package/dist/ui/index.js +1 -1
  186. package/dist/ui/messages.d.ts +1 -0
  187. package/dist/ui/messages.d.ts.map +1 -1
  188. package/dist/ui/messages.js +48 -8
  189. package/dist/ui/messages.js.map +1 -1
  190. package/dist/ui/progress.d.ts +5 -1
  191. package/dist/ui/progress.d.ts.map +1 -1
  192. package/dist/ui/progress.js +12 -3
  193. package/dist/ui/progress.js.map +1 -1
  194. package/dist/ui/prompts.d.ts +7 -5
  195. package/dist/ui/prompts.d.ts.map +1 -1
  196. package/dist/ui/prompts.js +15 -8
  197. package/dist/ui/prompts.js.map +1 -1
  198. package/dist/ui/runtime/cancel.d.ts +4 -0
  199. package/dist/ui/runtime/cancel.d.ts.map +1 -0
  200. package/dist/ui/runtime/cancel.js +6 -0
  201. package/dist/ui/runtime/cancel.js.map +1 -0
  202. package/dist/ui/runtime/command-chrome.d.ts +17 -0
  203. package/dist/ui/runtime/command-chrome.d.ts.map +1 -0
  204. package/dist/ui/runtime/command-chrome.js +123 -0
  205. package/dist/ui/runtime/command-chrome.js.map +1 -0
  206. package/dist/ui/runtime/dev-prompt-queue.d.ts +30 -0
  207. package/dist/ui/runtime/dev-prompt-queue.d.ts.map +1 -0
  208. package/dist/ui/runtime/dev-prompt-queue.js +57 -0
  209. package/dist/ui/runtime/dev-prompt-queue.js.map +1 -0
  210. package/dist/ui/runtime/flow-session.d.ts +4 -0
  211. package/dist/ui/runtime/flow-session.d.ts.map +1 -0
  212. package/dist/ui/runtime/flow-session.js +8 -0
  213. package/dist/ui/runtime/flow-session.js.map +1 -0
  214. package/dist/ui/runtime/run-clack-flow.d.ts +5 -0
  215. package/dist/ui/runtime/run-clack-flow.d.ts.map +1 -0
  216. package/dist/ui/runtime/run-clack-flow.js +34 -0
  217. package/dist/ui/runtime/run-clack-flow.js.map +1 -0
  218. package/dist/ui/theme.d.ts +24 -0
  219. package/dist/ui/theme.d.ts.map +1 -0
  220. package/dist/ui/theme.js +34 -0
  221. package/dist/ui/theme.js.map +1 -0
  222. package/dist/valkey-sidecar.d.ts +17 -0
  223. package/dist/valkey-sidecar.d.ts.map +1 -0
  224. package/dist/valkey-sidecar.js +94 -0
  225. package/dist/valkey-sidecar.js.map +1 -0
  226. package/package.json +9 -3
  227. package/src/binary-cache.ts +61 -0
  228. package/src/binary-download-lock.ts +124 -0
  229. package/src/cli-package-version.ts +15 -0
  230. package/src/cli.ts +6 -2
  231. package/src/commands/add.ts +26 -19
  232. package/src/commands/admin.ts +24 -6
  233. package/src/commands/cache.ts +105 -5
  234. package/src/commands/dev.ts +26 -21
  235. package/src/commands/init.ts +124 -45
  236. package/src/commands/link-helpers.ts +30 -29
  237. package/src/compose-local-server-image.ts +68 -0
  238. package/src/compose-rename.ts +5 -8
  239. package/src/dev-compose.ts +136 -51
  240. package/src/dev-log-bus.ts +18 -0
  241. package/src/dev-log-filter.ts +42 -0
  242. package/src/dev-ports.ts +22 -11
  243. package/src/dev-ready-panel.ts +63 -0
  244. package/src/dev-session-lock.ts +5 -8
  245. package/src/dev-session.ts +98 -18
  246. package/src/dev-shutdown.ts +29 -17
  247. package/src/dev-task-colors.ts +22 -3
  248. package/src/docker-runtime.ts +1 -1
  249. package/src/engine-push-output.ts +5 -1
  250. package/src/ensure-binary.ts +21 -1
  251. package/src/ensure-component-binaries.ts +71 -0
  252. package/src/ensure-dev-api-config.ts +18 -0
  253. package/src/init-dependency-versions.ts +69 -0
  254. package/src/init-package-json.ts +63 -0
  255. package/src/postgres-ctl.ts +2 -1
  256. package/src/required-host-components.ts +37 -0
  257. package/src/resolve-api-url.ts +43 -0
  258. package/src/rest-cache-admin.ts +135 -0
  259. package/src/scripts/postinstall.ts +9 -46
  260. package/src/self-host-compose.ts +22 -12
  261. package/src/studio-dev-server.ts +5 -4
  262. package/src/ui/README.md +13 -9
  263. package/src/ui/brand.ts +2 -8
  264. package/src/ui/clack-api.ts +123 -0
  265. package/src/ui/clack.ts +153 -0
  266. package/src/ui/components/FlowSpinner.tsx +15 -0
  267. package/src/ui/components/LogoWordmark.tsx +36 -0
  268. package/src/ui/components/PromptPanel.tsx +17 -0
  269. package/src/ui/components/SelectField.tsx +58 -0
  270. package/src/ui/confirm.ts +5 -4
  271. package/src/ui/dev/DevDashboard.tsx +213 -0
  272. package/src/ui/dev/DevReadyPanelView.tsx +67 -0
  273. package/src/ui/fatal.ts +5 -10
  274. package/src/ui/flows/FlowApp.tsx +67 -0
  275. package/src/ui/flows/prompt-fields.tsx +192 -0
  276. package/src/ui/flows/types.ts +50 -0
  277. package/src/ui/index.ts +1 -1
  278. package/src/ui/messages.ts +50 -8
  279. package/src/ui/progress.ts +14 -3
  280. package/src/ui/prompts.ts +17 -9
  281. package/src/ui/runtime/cancel.ts +6 -0
  282. package/src/ui/runtime/command-chrome.ts +147 -0
  283. package/src/ui/runtime/dev-prompt-queue.ts +84 -0
  284. package/src/ui/runtime/flow-session.ts +11 -0
  285. package/src/ui/runtime/run-clack-flow.tsx +52 -0
  286. package/src/ui/theme.ts +41 -0
  287. package/src/valkey-sidecar.ts +126 -0
  288. package/tests/binary-cache-cloud-overrides.test.ts +2 -2
  289. package/tests/binary-download-lock.test.ts +41 -0
  290. package/tests/cli-help.test.ts +7 -4
  291. package/tests/cli-package-version.test.ts +15 -0
  292. package/tests/command-chrome-coverage.test.ts +149 -0
  293. package/tests/command-chrome-wrap.test.ts +51 -0
  294. package/tests/config.test.ts +8 -4
  295. package/tests/dev-ready-panel.test.ts +20 -0
  296. package/tests/dev-ui.test.ts +42 -2
  297. package/tests/docker-runtime.test.ts +9 -20
  298. package/tests/ensure-dev-api-config.test.ts +22 -0
  299. package/tests/init-dependency-versions.test.ts +62 -0
  300. package/tests/init-package-json.test.ts +18 -0
  301. package/tests/init.test.ts +30 -3
  302. package/tests/required-host-components.test.ts +51 -0
  303. package/tests/resolve-api-url.test.ts +23 -0
  304. package/tests/rest-cache-admin.test.ts +28 -0
  305. package/tests/runtime-contract.test.ts +12 -3
  306. package/tests/tsconfig.json +8 -2
  307. package/tests/ui-confirm.test.ts +13 -9
  308. package/tests/ui-messages.test.ts +4 -18
  309. package/tsconfig.json +1 -0
  310. package/tsconfig.tsbuildinfo +1 -1
  311. package/vitest.config.ts +3 -0
  312. package/dist/dev-tui.d.ts +0 -24
  313. package/dist/dev-tui.d.ts.map +0 -1
  314. package/dist/dev-tui.js +0 -188
  315. package/dist/dev-tui.js.map +0 -1
  316. package/src/dev-tui.ts +0 -232
@@ -0,0 +1,53 @@
1
+ import { cliPackageVersion } from "./cli-package-version.js";
2
+ /** Fallback when the registry is unreachable (offline / tests). */
3
+ export function initDependencyVersionsFallback() {
4
+ const version = cliPackageVersion();
5
+ return { cli: version, types: version };
6
+ }
7
+ async function fetchNpmPackage(name) {
8
+ const url = `https://registry.npmjs.org/${encodeURIComponent(name)}`;
9
+ try {
10
+ const resp = await fetch(url, { signal: AbortSignal.timeout(10_000) });
11
+ if (!resp.ok)
12
+ return null;
13
+ return (await resp.json());
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ function versionPublishedOnNpm(meta, version) {
20
+ return Boolean(meta?.versions?.[version]);
21
+ }
22
+ function latestPublishedOnNpm(meta) {
23
+ const latest = meta?.["dist-tags"]?.latest;
24
+ return typeof latest === "string" && latest.trim() !== "" ? latest.trim() : null;
25
+ }
26
+ function resolvePackageVersion(meta, preferred) {
27
+ if (versionPublishedOnNpm(meta, preferred))
28
+ return preferred;
29
+ const latest = latestPublishedOnNpm(meta);
30
+ if (latest)
31
+ return latest;
32
+ return preferred;
33
+ }
34
+ /**
35
+ * Pick @supatype/cli and @supatype/types versions that exist on npm.
36
+ * The running CLI may be a local dev build ahead of the registry (e.g. 0.1.3
37
+ * while types is only published at 0.1.1).
38
+ */
39
+ export async function resolveInitDependencyVersions() {
40
+ const runningCli = cliPackageVersion();
41
+ const [cliMeta, typesMeta] = await Promise.all([
42
+ fetchNpmPackage("@supatype/cli"),
43
+ fetchNpmPackage("@supatype/types"),
44
+ ]);
45
+ if (!cliMeta && !typesMeta) {
46
+ return initDependencyVersionsFallback();
47
+ }
48
+ return {
49
+ cli: resolvePackageVersion(cliMeta, runningCli),
50
+ types: resolvePackageVersion(typesMeta, runningCli),
51
+ };
52
+ }
53
+ //# sourceMappingURL=init-dependency-versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-dependency-versions.js","sourceRoot":"","sources":["../src/init-dependency-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAY5D,mEAAmE;AACnE,MAAM,UAAU,8BAA8B;IAC5C,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IACnC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACzB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAuB,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA+B,EAAE,OAAe;IAC7E,OAAO,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,IAA+B;IAC3D,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC1C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAClF,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA+B,EAC/B,SAAiB;IAEjB,IAAI,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5D,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B;IACjD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACtC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,eAAe,CAAC,eAAe,CAAC;QAChC,eAAe,CAAC,iBAAiB,CAAC;KACnC,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,8BAA8B,EAAE,CAAA;IACzC,CAAC;IAED,OAAO;QACL,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC;QAC/C,KAAK,EAAE,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC;KACpD,CAAA;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { InitDependencyVersions } from "./init-dependency-versions.js";
2
+ export interface MergePackageJsonOptions {
3
+ projectName: string;
4
+ app: {
5
+ viteDevUrl?: string;
6
+ mode: string;
7
+ };
8
+ helloFunction: boolean;
9
+ }
10
+ type PackageJson = {
11
+ name?: string;
12
+ private?: boolean;
13
+ type?: string;
14
+ scripts?: Record<string, string>;
15
+ dependencies?: Record<string, string>;
16
+ devDependencies?: Record<string, string>;
17
+ };
18
+ /** Merge Supatype deps/scripts into an existing package.json object. */
19
+ export declare function mergeSupatypePackageJson(pkg: PackageJson, opts: MergePackageJsonOptions, deps: InitDependencyVersions): PackageJson;
20
+ export {};
21
+ //# sourceMappingURL=init-package-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-package-json.d.ts","sourceRoot":"","sources":["../src/init-package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAE3E,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC,CAAA;AAQD,wEAAwE;AACxE,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,uBAAuB,EAC7B,IAAI,EAAE,sBAAsB,GAC3B,WAAW,CAkCb"}
@@ -0,0 +1,46 @@
1
+ const CORE_SCRIPTS = {
2
+ dev: "supatype dev",
3
+ push: "supatype push",
4
+ seed: "tsx seed.ts",
5
+ };
6
+ /** Merge Supatype deps/scripts into an existing package.json object. */
7
+ export function mergeSupatypePackageJson(pkg, opts, deps) {
8
+ const next = { ...pkg };
9
+ if (!next.name)
10
+ next.name = opts.projectName;
11
+ if (next.private === undefined)
12
+ next.private = true;
13
+ if (!next.type)
14
+ next.type = "module";
15
+ const scripts = { ...(next.scripts ?? {}) };
16
+ for (const [key, value] of Object.entries(CORE_SCRIPTS)) {
17
+ if (scripts[key] === undefined)
18
+ scripts[key] = value;
19
+ }
20
+ if (scripts.dev !== CORE_SCRIPTS.dev && scripts["supatype:dev"] === undefined) {
21
+ scripts["supatype:dev"] = CORE_SCRIPTS.dev;
22
+ }
23
+ if (opts.app.viteDevUrl && scripts.vite === undefined) {
24
+ scripts.vite = "vite";
25
+ }
26
+ if (opts.helloFunction && scripts.functions === undefined) {
27
+ scripts.functions = "supatype functions serve";
28
+ }
29
+ next.scripts = scripts;
30
+ const dependencies = { ...(next.dependencies ?? {}) };
31
+ if (dependencies["@supatype/cli"] === undefined)
32
+ dependencies["@supatype/cli"] = `^${deps.cli}`;
33
+ if (dependencies["@supatype/types"] === undefined)
34
+ dependencies["@supatype/types"] = `^${deps.types}`;
35
+ next.dependencies = dependencies;
36
+ const devDependencies = { ...(next.devDependencies ?? {}) };
37
+ if (devDependencies.tsx === undefined)
38
+ devDependencies.tsx = "^4.19.2";
39
+ if (devDependencies.typescript === undefined)
40
+ devDependencies.typescript = "^5";
41
+ if (opts.app.viteDevUrl && devDependencies.vite === undefined)
42
+ devDependencies.vite = "^6";
43
+ next.devDependencies = devDependencies;
44
+ return next;
45
+ }
46
+ //# sourceMappingURL=init-package-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-package-json.js","sourceRoot":"","sources":["../src/init-package-json.ts"],"names":[],"mappings":"AAiBA,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,aAAa;CACX,CAAA;AAEV,wEAAwE;AACxE,MAAM,UAAU,wBAAwB,CACtC,GAAgB,EAChB,IAA6B,EAC7B,IAA4B;IAE5B,MAAM,IAAI,GAAgB,EAAE,GAAG,GAAG,EAAE,CAAA;IAEpC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAA;IAC5C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;IAEpC,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAA;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,GAAG,CAAA;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;IACvB,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,CAAC,SAAS,GAAG,0BAA0B,CAAA;IAChD,CAAC;IACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAEtB,MAAM,YAAY,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAA;IACrD,IAAI,YAAY,CAAC,eAAe,CAAC,KAAK,SAAS;QAAE,YAAY,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IAC/F,IAAI,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS;QAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;IACrG,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAEhC,MAAM,eAAe,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAA;IAC3D,IAAI,eAAe,CAAC,GAAG,KAAK,SAAS;QAAE,eAAe,CAAC,GAAG,GAAG,SAAS,CAAA;IACtE,IAAI,eAAe,CAAC,UAAU,KAAK,SAAS;QAAE,eAAe,CAAC,UAAU,GAAG,IAAI,CAAA;IAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS;QAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA;IAC1F,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAEtC,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-ctl.d.ts","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAWnB;AAMD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAgB5C;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAoB3C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAS1C;AAMD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlF;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYhE"}
1
+ {"version":3,"file":"postgres-ctl.d.ts","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,CAAC,UAAU,CAWnB;AAMD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAgB5C;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAoB3C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAS1C;AAMD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlF;AAMD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAahE"}
@@ -116,7 +116,8 @@ export async function isPortInUse(port) {
116
116
  return new Promise((resolve) => {
117
117
  const server = createServer();
118
118
  server.once("error", (err) => {
119
- resolve(err.code === "EADDRINUSE");
119
+ // EADDRINUSE — something is listening. EACCES — Windows excluded/reserved port range.
120
+ resolve(err.code === "EADDRINUSE" || err.code === "EACCES");
120
121
  });
121
122
  server.once("listening", () => {
122
123
  server.close(() => resolve(false));
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-ctl.js","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-ctl.js","sourceRoot":"","sources":["../src/postgres-ctl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Which CDN-cached host binaries a project needs (native vs docker).
3
+ *
4
+ * Docker runs Postgres, API, and schema push in Compose, but the CLI still uses a
5
+ * host engine binary for type generation and admin-config refresh after push.
6
+ */
7
+ import type { Component } from "./components.js";
8
+ import { type SupatypeProjectConfig } from "./project-config.js";
9
+ export declare function requiredHostComponents(config: SupatypeProjectConfig, cwd?: string): Component[];
10
+ export declare function describeRequiredHostComponents(components: readonly Component[]): string;
11
+ //# sourceMappingURL=required-host-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-host-components.d.ts","sourceRoot":"","sources":["../src/required-host-components.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,MAAsB,GAC1B,SAAS,EAAE,CAab;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAGvF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Which CDN-cached host binaries a project needs (native vs docker).
3
+ *
4
+ * Docker runs Postgres, API, and schema push in Compose, but the CLI still uses a
5
+ * host engine binary for type generation and admin-config refresh after push.
6
+ */
7
+ import { existsSync } from "node:fs";
8
+ import { functionsPathCandidatesFromProject, resolveRuntimeProvider, } from "./project-config.js";
9
+ export function requiredHostComponents(config, cwd = process.cwd()) {
10
+ const provider = resolveRuntimeProvider(config);
11
+ if (provider === "docker") {
12
+ return ["engine"];
13
+ }
14
+ const components = ["engine", "server", "postgres"];
15
+ const hasFunctions = functionsPathCandidatesFromProject(config, cwd).some((dir) => existsSync(dir));
16
+ if (hasFunctions)
17
+ components.push("deno");
18
+ return components;
19
+ }
20
+ export function describeRequiredHostComponents(components) {
21
+ if (components.length === 0)
22
+ return "";
23
+ return components.join(", ");
24
+ }
25
+ //# sourceMappingURL=required-host-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-host-components.js","sourceRoot":"","sources":["../src/required-host-components.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EACL,kCAAkC,EAClC,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,UAAU,sBAAsB,CACpC,MAA6B,EAC7B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAChF,UAAU,CAAC,GAAG,CAAC,CAChB,CAAA;IACD,IAAI,YAAY;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,UAAgC;IAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resolve the project API base URL (Kong gateway or direct server) for CLI HTTP calls.
3
+ */
4
+ /** Kong or server origin without a trailing slash. */
5
+ export declare function resolveProjectApiUrl(cwd: string): string;
6
+ //# sourceMappingURL=resolve-api-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-api-url.d.ts","sourceRoot":"","sources":["../src/resolve-api-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwBxD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Resolve the project API base URL (Kong gateway or direct server) for CLI HTTP calls.
3
+ */
4
+ import { loadConfig } from "./config.js";
5
+ import { readEnvValue } from "./env-file.js";
6
+ import { serverBaseUrl } from "./project-config.js";
7
+ const API_URL_ENV_KEYS = [
8
+ "SUPATYPE_URL",
9
+ "SUPATYPE_API_URL",
10
+ "PUBLIC_SUPATYPE_URL",
11
+ "NEXT_PUBLIC_SUPATYPE_URL",
12
+ "SITE_URL",
13
+ "API_EXTERNAL_URL",
14
+ ];
15
+ /** Kong or server origin without a trailing slash. */
16
+ export function resolveProjectApiUrl(cwd) {
17
+ for (const key of API_URL_ENV_KEYS) {
18
+ const value = readEnvValue(cwd, key, "").trim();
19
+ if (value) {
20
+ return value.replace(/\/+$/, "");
21
+ }
22
+ }
23
+ const kongPort = readEnvValue(cwd, "SUPATYPE_KONG_PORT", "").trim();
24
+ if (kongPort) {
25
+ return `http://localhost:${kongPort}`;
26
+ }
27
+ try {
28
+ const fromConfig = serverBaseUrl(loadConfig(cwd));
29
+ if (fromConfig) {
30
+ return fromConfig.replace(/\/+$/, "");
31
+ }
32
+ }
33
+ catch {
34
+ // No supatype.config — fall through to PORT default.
35
+ }
36
+ const port = readEnvValue(cwd, "PORT", "54321").trim() || "54321";
37
+ return `http://localhost:${port}`;
38
+ }
39
+ //# sourceMappingURL=resolve-api-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-api-url.js","sourceRoot":"","sources":["../src/resolve-api-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,gBAAgB,GAAG;IACvB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,0BAA0B;IAC1B,UAAU;IACV,kBAAkB;CACV,CAAA;AAEV,sDAAsD;AACtD,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,oBAAoB,QAAQ,EAAE,CAAA;IACvC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAA;IACjE,OAAO,oBAAoB,IAAI,EAAE,CAAA;AACnC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Admin REST cache API client for CLI commands.
3
+ */
4
+ export interface RestCacheEntrySummary {
5
+ key: string;
6
+ table?: string;
7
+ scope?: string;
8
+ method?: string;
9
+ path?: string;
10
+ raw_query?: string;
11
+ ttl_seconds: number;
12
+ size_bytes: number;
13
+ cached_at?: string;
14
+ }
15
+ export interface RestCacheListResponse {
16
+ entries: RestCacheEntrySummary[];
17
+ cursor: string;
18
+ }
19
+ export interface RestCacheDetail extends RestCacheEntrySummary {
20
+ status_code: number;
21
+ content_type?: string;
22
+ body_preview?: string;
23
+ body_json?: unknown;
24
+ }
25
+ export declare function listRestCacheEntries(cwd: string, opts?: {
26
+ table?: string | undefined;
27
+ cursor?: string | undefined;
28
+ limit?: number | undefined;
29
+ }): Promise<RestCacheListResponse>;
30
+ export declare function getRestCacheEntry(cwd: string, key: string): Promise<RestCacheDetail>;
31
+ export declare function deleteRestCacheEntry(cwd: string, key: string): Promise<void>;
32
+ export declare function flushRestCache(cwd: string, table?: string): Promise<void>;
33
+ //# sourceMappingURL=rest-cache-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-cache-admin.d.ts","sourceRoot":"","sources":["../src/rest-cache-admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAmDD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7F,OAAO,CAAC,qBAAqB,CAAC,CAehC;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAU1F;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASlF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/E"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Admin REST cache API client for CLI commands.
3
+ */
4
+ import { readEnvValue } from "./env-file.js";
5
+ import { resolveProjectApiUrl } from "./resolve-api-url.js";
6
+ function serviceRoleKey(cwd) {
7
+ const key = readEnvValue(cwd, "SUPATYPE_SERVICE_ROLE_KEY", "").trim() ||
8
+ readEnvValue(cwd, "SERVICE_ROLE_KEY", "").trim();
9
+ if (!key) {
10
+ throw new Error("SERVICE_ROLE_KEY not found in .env — run supatype dev or supatype keys");
11
+ }
12
+ return key.trim();
13
+ }
14
+ function adminHeaders(cwd) {
15
+ const key = serviceRoleKey(cwd);
16
+ return {
17
+ Authorization: `Bearer ${key}`,
18
+ apikey: key,
19
+ "Content-Type": "application/json",
20
+ };
21
+ }
22
+ function formatCacheApiError(operation, status, body, baseUrl) {
23
+ const trimmed = body.trim();
24
+ if (status === 404) {
25
+ return (`${operation} failed (404): ${trimmed || "not found"}\n` +
26
+ ` API: ${baseUrl}/admin/v1/cache\n` +
27
+ " Start the stack with `supatype dev`, or check SUPATYPE_URL / PUBLIC_SUPATYPE_URL in .env.");
28
+ }
29
+ if (status === 403 && trimmed.includes("rest_cache_not_available")) {
30
+ return "REST server cache is not available on this plan or deployment.";
31
+ }
32
+ if (status === 503 && trimmed.includes("valkey")) {
33
+ return "Valkey is not configured — server-side REST cache requires Valkey (supatype dev with docker).";
34
+ }
35
+ return `${operation} failed (${status}): ${trimmed || "(empty body)"}`;
36
+ }
37
+ function normalizeListResponse(data) {
38
+ return {
39
+ entries: data.entries ?? [],
40
+ cursor: data.cursor ?? "0",
41
+ };
42
+ }
43
+ export async function listRestCacheEntries(cwd, opts) {
44
+ const baseUrl = resolveProjectApiUrl(cwd);
45
+ const params = new URLSearchParams();
46
+ if (opts?.table)
47
+ params.set("table", opts.table);
48
+ if (opts?.cursor)
49
+ params.set("cursor", opts.cursor);
50
+ if (opts?.limit !== undefined)
51
+ params.set("limit", String(opts.limit));
52
+ const qs = params.toString();
53
+ const url = `${baseUrl}/admin/v1/cache${qs ? `?${qs}` : ""}`;
54
+ const res = await fetch(url, { headers: adminHeaders(cwd) });
55
+ if (!res.ok) {
56
+ const body = await res.text();
57
+ throw new Error(formatCacheApiError("list cache", res.status, body, baseUrl));
58
+ }
59
+ const data = (await res.json());
60
+ return normalizeListResponse(data);
61
+ }
62
+ export async function getRestCacheEntry(cwd, key) {
63
+ const baseUrl = resolveProjectApiUrl(cwd);
64
+ const enc = Buffer.from(key, "utf8").toString("base64url");
65
+ const url = `${baseUrl}/admin/v1/cache/entries/${encodeURIComponent(enc)}`;
66
+ const res = await fetch(url, { headers: adminHeaders(cwd) });
67
+ if (!res.ok) {
68
+ const body = await res.text();
69
+ throw new Error(formatCacheApiError("get cache entry", res.status, body, baseUrl));
70
+ }
71
+ return res.json();
72
+ }
73
+ export async function deleteRestCacheEntry(cwd, key) {
74
+ const baseUrl = resolveProjectApiUrl(cwd);
75
+ const enc = Buffer.from(key, "utf8").toString("base64url");
76
+ const url = `${baseUrl}/admin/v1/cache/entries/${encodeURIComponent(enc)}`;
77
+ const res = await fetch(url, { method: "DELETE", headers: adminHeaders(cwd) });
78
+ if (!res.ok) {
79
+ const body = await res.text();
80
+ throw new Error(formatCacheApiError("delete cache entry", res.status, body, baseUrl));
81
+ }
82
+ }
83
+ export async function flushRestCache(cwd, table) {
84
+ const baseUrl = resolveProjectApiUrl(cwd);
85
+ const params = new URLSearchParams();
86
+ if (table)
87
+ params.set("table", table);
88
+ const qs = params.toString();
89
+ const url = `${baseUrl}/admin/v1/cache${qs ? `?${qs}` : ""}`;
90
+ const res = await fetch(url, { method: "DELETE", headers: adminHeaders(cwd) });
91
+ if (!res.ok) {
92
+ const body = await res.text();
93
+ throw new Error(formatCacheApiError("flush cache", res.status, body, baseUrl));
94
+ }
95
+ }
96
+ //# sourceMappingURL=rest-cache-admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-cache-admin.js","sourceRoot":"","sources":["../src/rest-cache-admin.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  /**
2
- * Postinstall script — downloads component binaries on first install.
2
+ * Postinstall script — @supatype/cli global/project install.
3
3
  *
4
- * Components: supatype-engine, supatype-server, supatype-pg (Postgres), deno.
5
- * Binaries are cached in ~/.supatype/cache/{component}/{version}/.
6
- *
7
- * Failures are non-fatal: an installation message is printed and the user
8
- * can run `supatype update` manually to retry.
4
+ * Host binaries (engine, server, postgres, deno) are downloaded on demand:
5
+ * - native provider: first supatype dev / supatype update
6
+ * - docker provider: Compose images on first supatype dev
9
7
  */
10
8
  export {};
11
9
  //# sourceMappingURL=postinstall.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,51 +1,18 @@
1
1
  /**
2
- * Postinstall script — downloads component binaries on first install.
2
+ * Postinstall script — @supatype/cli global/project install.
3
3
  *
4
- * Components: supatype-engine, supatype-server, supatype-pg (Postgres), deno.
5
- * Binaries are cached in ~/.supatype/cache/{component}/{version}/.
6
- *
7
- * Failures are non-fatal: an installation message is printed and the user
8
- * can run `supatype update` manually to retry.
4
+ * Host binaries (engine, server, postgres, deno) are downloaded on demand:
5
+ * - native provider: first supatype dev / supatype update
6
+ * - docker provider: Compose images on first supatype dev
9
7
  */
10
- import { download, currentPlatform, fetchAllLatestVersions } from "../binary-cache.js";
11
8
  async function main() {
12
- const platform = currentPlatform();
13
- let versions;
14
- try {
15
- console.log("[supatype] Fetching latest component versions...");
16
- versions = await fetchAllLatestVersions();
17
- }
18
- catch (err) {
19
- console.error(`[supatype] Failed to fetch latest versions: ${err.message}`);
20
- console.error("[supatype] Run 'supatype update' to download component binaries.");
21
- return;
22
- }
23
- console.log(`[supatype] Downloading component binaries for ${platform.os}/${platform.arch}...`);
24
- const components = Object.entries(versions);
25
- let anyFailed = false;
26
- for (const [component, version] of components) {
27
- try {
28
- await download(component, version, platform);
29
- }
30
- catch (err) {
31
- console.error(`[supatype] Failed to download ${component} v${version}: ${err.message}`);
32
- anyFailed = true;
33
- }
34
- }
35
- if (anyFailed) {
36
- // npm hides postinstall output unless --foreground-scripts, so don't rely on
37
- // this being seen: the CLI re-attempts the download (with retry) on first use.
38
- console.error("[supatype] Some component binaries failed to download. " +
39
- "They will be re-downloaded automatically on first use; " +
40
- "run 'supatype update' to retry now.");
41
- }
42
- else {
43
- console.log("[supatype] All component binaries downloaded successfully.");
44
- }
9
+ console.log("[supatype] CLI installed. " +
10
+ "Runtime components download automatically on first use " +
11
+ "(supatype dev or supatype update).");
45
12
  }
46
13
  main().catch((err) => {
47
- // Non-fatal — postinstall failures should not break npm install.
48
14
  console.error("[supatype] Postinstall failed:", err);
49
15
  process.exit(0);
50
16
  });
17
+ export {};
51
18
  //# sourceMappingURL=postinstall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,EAAkB,MAAM,oBAAoB,CAAA;AAEtG,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAElC,IAAI,QAAmC,CAAA;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;QAC/D,QAAQ,GAAG,MAAM,sBAAsB,EAAE,CAAA;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QACtF,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACjF,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAA;IAE/F,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAA0B,CAAA;IAEpE,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,KAAK,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;YAClG,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,6EAA6E;QAC7E,+EAA+E;QAC/E,OAAO,CAAC,KAAK,CACX,yDAAyD;YACvD,yDAAyD;YACzD,qCAAqC,CACxC,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,iEAAiE;IACjE,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CACT,4BAA4B;QAC1B,yDAAyD;QACzD,oCAAoC,CACvC,CAAA;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"self-host-compose.d.ts","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAyD,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAIvH,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,wFAIhC,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,qOAOzB,CAAA;AAEV,KAAK,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE1D,gEAAgE;AAChE,wBAAgB,cAAc,CAC5B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,qBAAqB,GAC7B,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe3F;AAED,8FAA8F;AAC9F,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAS1E;AAcD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAGT;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAQtE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAIvF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAIrF;AAwBD,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,qCAAqC,CAAA;AAwCzE,MAAM,WAAW,sBAAsB;IACrC,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,MAAsB,EAC3B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAwQR;AAoBD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,oBAAoB,CAyBtB;AAED,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4DAA4D;IAC5D,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,kBAAkB,GACzB,KAAK,CAMP;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,GAAE,MAAsB,EACnC,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAwBR;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG9D"}
1
+ {"version":3,"file":"self-host-compose.d.ts","sourceRoot":"","sources":["../src/self-host-compose.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAElF,OAAO,EAAyD,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAIvH,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,wFAIhC,CAAA;AAEV,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,qOAOzB,CAAA;AAEV,KAAK,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE1D,gEAAgE;AAChE,wBAAgB,cAAc,CAC5B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,qBAAqB,GAC7B,MAAM,CAeR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe3F;AAED,8FAA8F;AAC9F,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAS1E;AAcD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAGT;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAQtE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAIvF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAIrF;AAwBD,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,qCAAqC,CAAA;AAwCzE,MAAM,WAAW,sBAAsB;IACrC,yFAAyF;IACzF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,MAAsB,EAC3B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAoQR;AAoBD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,oBAAoB,CAyBtB;AAED,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4DAA4D;IAC5D,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,kBAAkB,GACzB,KAAK,CAMP;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,GAAE,MAAsB,EACnC,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAsCR;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG9D"}
@@ -258,9 +258,7 @@ ${studioService}
258
258
  ? ` - "80:8000"
259
259
  - "443:8443"`
260
260
  : ` - "\${SUPATYPE_KONG_PORT:-18473}:8000"`;
261
- const kongTlsDependsOn = tlsEnabled ? "\n - valkey" : "";
262
- const valkeyBlock = tlsEnabled
263
- ? `
261
+ const valkeyBlock = `
264
262
  valkey:
265
263
  image: \${SUPATYPE_VALKEY_IMAGE:-valkey/valkey:8-alpine}
266
264
  command: ["valkey-server", "--appendonly", "yes"]
@@ -268,23 +266,18 @@ ${studioService}
268
266
  - "6379"
269
267
  volumes:
270
268
  - valkey-data:/data
271
- `
272
- : "";
269
+ `;
270
+ const kongValkeyDepends = "\n - valkey";
273
271
  const tlsHintComment = tlsEnabled
274
272
  ? ""
275
273
  : ` # HTTPS is off. To enable automatic TLS (Let's Encrypt) for production, set in supatype.config.ts:
276
274
  # server: { mode: "standalone", domain: "your.domain", tls: { email: "you@example.com" } }
277
275
  # then re-run \`supatype self-host compose up -d\`. Kong publishes :80/:443 and provisions certs automatically.
278
276
  `;
279
- const volumesBlock = tlsEnabled
280
- ? `volumes:
277
+ const volumesBlock = `volumes:
281
278
  db-data:
282
279
  minio-data:
283
280
  valkey-data:
284
- `
285
- : `volumes:
286
- db-data:
287
- minio-data:
288
281
  `;
289
282
  return `# Generated by supatype self-host compose
290
283
  # Kong → supatype-server (unified gateway) → internal PostgREST / storage / etc.
@@ -396,6 +389,7 @@ ${serverPorts} volumes:
396
389
  SUPATYPE_DENO_FUNCTIONS_DIR: /project/functions
397
390
  SUPATYPE_FUNCTIONS_WORKER_URL: http://functions-worker:8001
398
391
  SUPATYPE_CONTROL_PLANE_URL: http://control-plane:8080
392
+ SUPATYPE_VALKEY_ADDR: valkey:6379
399
393
  ${appEnv}
400
394
  GOTRUE_API_HOST: 0.0.0.0
401
395
  GOTRUE_API_PORT: 9999
@@ -415,6 +409,8 @@ ${devLocal ? " STUDIO_OPEN_DEV: \"1\"\n" : ""}
415
409
  depends_on:
416
410
  db:
417
411
  condition: service_healthy
412
+ valkey:
413
+ condition: service_started
418
414
  postgrest:
419
415
  condition: service_started
420
416
  storage:
@@ -457,7 +453,7 @@ ${kongTlsEnv} volumes:
457
453
  ports:
458
454
  ${kongPorts}
459
455
  depends_on:
460
- ${kongDependsOn}${kongTlsDependsOn}
456
+ ${kongDependsOn}${kongValkeyDepends}
461
457
 
462
458
  ${volumesBlock}`;
463
459
  }
@@ -527,7 +523,21 @@ export function runDockerCompose(composePath, args, projectRoot = process.cwd(),
527
523
  ? { ...process.env, COMPOSE_PROGRESS: "quiet" }
528
524
  : process.env;
529
525
  const stdio = options?.quiet ? "pipe" : "inherit";
530
- const result = spawnSync("docker", composeArgs, { stdio, cwd: projectRoot, env });
526
+ const result = spawnSync("docker", composeArgs, {
527
+ stdio,
528
+ cwd: projectRoot,
529
+ env,
530
+ ...(options?.quiet ? { encoding: "utf8" } : {}),
531
+ });
532
+ if (options?.quiet && result.status !== 0) {
533
+ const detail = [result.stderr, result.stdout]
534
+ .filter((s) => typeof s === "string" && s.trim() !== "")
535
+ .join("\n")
536
+ .trim();
537
+ if (detail) {
538
+ console.error(`[supatype] docker compose: ${detail}`);
539
+ }
540
+ }
531
541
  return result.status ?? 1;
532
542
  }
533
543
  /** Compose project name for a Supatype project — isolates docker state per project. */