@supatype/cli 0.1.0-alpha.9 → 0.1.0

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 (383) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/.turbo/turbo-test.log +270 -65
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/assets/supatype-logo-wordmark.ascii.txt +6 -0
  5. package/bin/dev-entry.ts +2 -1
  6. package/dist/app/framework.js +1 -3
  7. package/dist/app/framework.js.map +1 -1
  8. package/dist/app/proxy-dev-app.d.ts +14 -0
  9. package/dist/app/proxy-dev-app.d.ts.map +1 -1
  10. package/dist/app/proxy-dev-app.js +110 -6
  11. package/dist/app/proxy-dev-app.js.map +1 -1
  12. package/dist/app-config.d.ts +10 -0
  13. package/dist/app-config.d.ts.map +1 -1
  14. package/dist/app-config.js +72 -0
  15. package/dist/app-config.js.map +1 -1
  16. package/dist/assets/supatype-logo-wordmark.ascii.txt +6 -0
  17. package/dist/binary-cache.d.ts +19 -7
  18. package/dist/binary-cache.d.ts.map +1 -1
  19. package/dist/binary-cache.js +92 -46
  20. package/dist/binary-cache.js.map +1 -1
  21. package/dist/cli.d.ts +1 -1
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +17 -2
  24. package/dist/cli.js.map +1 -1
  25. package/dist/commands/add.d.ts +3 -0
  26. package/dist/commands/add.d.ts.map +1 -0
  27. package/dist/commands/add.js +86 -0
  28. package/dist/commands/add.js.map +1 -0
  29. package/dist/commands/admin.d.ts.map +1 -1
  30. package/dist/commands/admin.js +39 -53
  31. package/dist/commands/admin.js.map +1 -1
  32. package/dist/commands/adopt.d.ts +3 -0
  33. package/dist/commands/adopt.d.ts.map +1 -0
  34. package/dist/commands/adopt.js +55 -0
  35. package/dist/commands/adopt.js.map +1 -0
  36. package/dist/commands/app.d.ts.map +1 -1
  37. package/dist/commands/app.js +20 -17
  38. package/dist/commands/app.js.map +1 -1
  39. package/dist/commands/cache.d.ts.map +1 -1
  40. package/dist/commands/cache.js +11 -10
  41. package/dist/commands/cache.js.map +1 -1
  42. package/dist/commands/cloud.d.ts +4 -9
  43. package/dist/commands/cloud.d.ts.map +1 -1
  44. package/dist/commands/cloud.js +75 -125
  45. package/dist/commands/cloud.js.map +1 -1
  46. package/dist/commands/db.d.ts.map +1 -1
  47. package/dist/commands/db.js +37 -58
  48. package/dist/commands/db.js.map +1 -1
  49. package/dist/commands/deploy.d.ts.map +1 -1
  50. package/dist/commands/deploy.js +140 -96
  51. package/dist/commands/deploy.js.map +1 -1
  52. package/dist/commands/dev.d.ts.map +1 -1
  53. package/dist/commands/dev.js +72 -39
  54. package/dist/commands/dev.js.map +1 -1
  55. package/dist/commands/diff.d.ts.map +1 -1
  56. package/dist/commands/diff.js +39 -39
  57. package/dist/commands/diff.js.map +1 -1
  58. package/dist/commands/doctor.d.ts +3 -0
  59. package/dist/commands/doctor.d.ts.map +1 -0
  60. package/dist/commands/doctor.js +78 -0
  61. package/dist/commands/doctor.js.map +1 -0
  62. package/dist/commands/engine.d.ts.map +1 -1
  63. package/dist/commands/engine.js +5 -4
  64. package/dist/commands/engine.js.map +1 -1
  65. package/dist/commands/functions.d.ts.map +1 -1
  66. package/dist/commands/functions.js +172 -119
  67. package/dist/commands/functions.js.map +1 -1
  68. package/dist/commands/generate.d.ts.map +1 -1
  69. package/dist/commands/generate.js +5 -4
  70. package/dist/commands/generate.js.map +1 -1
  71. package/dist/commands/init.d.ts +30 -1
  72. package/dist/commands/init.d.ts.map +1 -1
  73. package/dist/commands/init.js +814 -107
  74. package/dist/commands/init.js.map +1 -1
  75. package/dist/commands/introspect.d.ts +3 -0
  76. package/dist/commands/introspect.d.ts.map +1 -0
  77. package/dist/commands/introspect.js +35 -0
  78. package/dist/commands/introspect.js.map +1 -0
  79. package/dist/commands/keys.d.ts +15 -1
  80. package/dist/commands/keys.d.ts.map +1 -1
  81. package/dist/commands/keys.js +46 -10
  82. package/dist/commands/keys.js.map +1 -1
  83. package/dist/commands/link-helpers.d.ts +15 -0
  84. package/dist/commands/link-helpers.d.ts.map +1 -0
  85. package/dist/commands/link-helpers.js +225 -0
  86. package/dist/commands/link-helpers.js.map +1 -0
  87. package/dist/commands/logs.d.ts.map +1 -1
  88. package/dist/commands/logs.js +5 -4
  89. package/dist/commands/logs.js.map +1 -1
  90. package/dist/commands/migrate-from-v1.d.ts.map +1 -1
  91. package/dist/commands/migrate-from-v1.js +3 -2
  92. package/dist/commands/migrate-from-v1.js.map +1 -1
  93. package/dist/commands/migrate.d.ts.map +1 -1
  94. package/dist/commands/migrate.js +119 -26
  95. package/dist/commands/migrate.js.map +1 -1
  96. package/dist/commands/pg.d.ts.map +1 -1
  97. package/dist/commands/pg.js +11 -12
  98. package/dist/commands/pg.js.map +1 -1
  99. package/dist/commands/plugins.d.ts.map +1 -1
  100. package/dist/commands/plugins.js +55 -46
  101. package/dist/commands/plugins.js.map +1 -1
  102. package/dist/commands/pull.d.ts.map +1 -1
  103. package/dist/commands/pull.js +33 -5
  104. package/dist/commands/pull.js.map +1 -1
  105. package/dist/commands/push.d.ts.map +1 -1
  106. package/dist/commands/push.js +110 -137
  107. package/dist/commands/push.js.map +1 -1
  108. package/dist/commands/seed.d.ts.map +1 -1
  109. package/dist/commands/seed.js +4 -3
  110. package/dist/commands/seed.js.map +1 -1
  111. package/dist/commands/self-host.d.ts +2 -2
  112. package/dist/commands/self-host.d.ts.map +1 -1
  113. package/dist/commands/self-host.js +65 -50
  114. package/dist/commands/self-host.js.map +1 -1
  115. package/dist/commands/self-update.d.ts.map +1 -1
  116. package/dist/commands/self-update.js +3 -2
  117. package/dist/commands/self-update.js.map +1 -1
  118. package/dist/commands/status.d.ts +1 -1
  119. package/dist/commands/status.d.ts.map +1 -1
  120. package/dist/commands/status.js +95 -29
  121. package/dist/commands/status.js.map +1 -1
  122. package/dist/commands/types.d.ts.map +1 -1
  123. package/dist/commands/types.js +3 -2
  124. package/dist/commands/types.js.map +1 -1
  125. package/dist/commands/update.d.ts.map +1 -1
  126. package/dist/commands/update.js +54 -21
  127. package/dist/commands/update.js.map +1 -1
  128. package/dist/config.d.ts +2 -1
  129. package/dist/config.d.ts.map +1 -1
  130. package/dist/config.js.map +1 -1
  131. package/dist/dev-compose.d.ts +26 -0
  132. package/dist/dev-compose.d.ts.map +1 -1
  133. package/dist/dev-compose.js +328 -34
  134. package/dist/dev-compose.js.map +1 -1
  135. package/dist/dev-log-bus.d.ts +30 -0
  136. package/dist/dev-log-bus.d.ts.map +1 -0
  137. package/dist/dev-log-bus.js +87 -0
  138. package/dist/dev-log-bus.js.map +1 -0
  139. package/dist/dev-log-filter.d.ts +10 -0
  140. package/dist/dev-log-filter.d.ts.map +1 -0
  141. package/dist/dev-log-filter.js +36 -0
  142. package/dist/dev-log-filter.js.map +1 -0
  143. package/dist/dev-logo.d.ts +12 -0
  144. package/dist/dev-logo.d.ts.map +1 -0
  145. package/dist/dev-logo.js +56 -0
  146. package/dist/dev-logo.js.map +1 -0
  147. package/dist/dev-session.d.ts +26 -0
  148. package/dist/dev-session.d.ts.map +1 -0
  149. package/dist/dev-session.js +106 -0
  150. package/dist/dev-session.js.map +1 -0
  151. package/dist/dev-shutdown.d.ts +9 -0
  152. package/dist/dev-shutdown.d.ts.map +1 -0
  153. package/dist/dev-shutdown.js +50 -0
  154. package/dist/dev-shutdown.js.map +1 -0
  155. package/dist/dev-task-colors.d.ts +13 -0
  156. package/dist/dev-task-colors.d.ts.map +1 -0
  157. package/dist/dev-task-colors.js +43 -0
  158. package/dist/dev-task-colors.js.map +1 -0
  159. package/dist/dev-tui.d.ts +24 -0
  160. package/dist/dev-tui.d.ts.map +1 -0
  161. package/dist/dev-tui.js +188 -0
  162. package/dist/dev-tui.js.map +1 -0
  163. package/dist/diff-output.d.ts +5 -1
  164. package/dist/diff-output.d.ts.map +1 -1
  165. package/dist/diff-output.js +69 -0
  166. package/dist/diff-output.js.map +1 -1
  167. package/dist/docker-runtime.d.ts +30 -0
  168. package/dist/docker-runtime.d.ts.map +1 -0
  169. package/dist/docker-runtime.js +118 -0
  170. package/dist/docker-runtime.js.map +1 -0
  171. package/dist/engine-client.d.ts +10 -1
  172. package/dist/engine-client.d.ts.map +1 -1
  173. package/dist/engine-client.js +76 -17
  174. package/dist/engine-client.js.map +1 -1
  175. package/dist/engine-push-output.d.ts +17 -0
  176. package/dist/engine-push-output.d.ts.map +1 -0
  177. package/dist/engine-push-output.js +64 -0
  178. package/dist/engine-push-output.js.map +1 -0
  179. package/dist/ensure-binary.js +2 -2
  180. package/dist/ensure-binary.js.map +1 -1
  181. package/dist/gitignore.d.ts +8 -0
  182. package/dist/gitignore.d.ts.map +1 -0
  183. package/dist/gitignore.js +41 -0
  184. package/dist/gitignore.js.map +1 -0
  185. package/dist/kong-config.d.ts +9 -0
  186. package/dist/kong-config.d.ts.map +1 -1
  187. package/dist/kong-config.js +18 -1
  188. package/dist/kong-config.js.map +1 -1
  189. package/dist/link.d.ts +66 -0
  190. package/dist/link.d.ts.map +1 -0
  191. package/dist/link.js +160 -0
  192. package/dist/link.js.map +1 -0
  193. package/dist/process-manager.d.ts +8 -0
  194. package/dist/process-manager.d.ts.map +1 -1
  195. package/dist/process-manager.js +53 -9
  196. package/dist/process-manager.js.map +1 -1
  197. package/dist/project-config.d.ts +30 -3
  198. package/dist/project-config.d.ts.map +1 -1
  199. package/dist/project-config.js +37 -4
  200. package/dist/project-config.js.map +1 -1
  201. package/dist/prompts.d.ts +3 -0
  202. package/dist/prompts.d.ts.map +1 -0
  203. package/dist/prompts.js +3 -0
  204. package/dist/prompts.js.map +1 -0
  205. package/dist/pull-utils.d.ts +50 -14
  206. package/dist/pull-utils.d.ts.map +1 -1
  207. package/dist/pull-utils.js +152 -12
  208. package/dist/pull-utils.js.map +1 -1
  209. package/dist/resolve-target.d.ts +86 -0
  210. package/dist/resolve-target.d.ts.map +1 -0
  211. package/dist/resolve-target.js +291 -0
  212. package/dist/resolve-target.js.map +1 -0
  213. package/dist/restore-system-relation-targets.d.ts +3 -0
  214. package/dist/restore-system-relation-targets.d.ts.map +1 -0
  215. package/dist/restore-system-relation-targets.js +45 -0
  216. package/dist/restore-system-relation-targets.js.map +1 -0
  217. package/dist/runtime-routes.d.ts.map +1 -1
  218. package/dist/runtime-routes.js +7 -0
  219. package/dist/runtime-routes.js.map +1 -1
  220. package/dist/schema-ast-v2.d.ts +1 -1
  221. package/dist/schema-ast-v2.d.ts.map +1 -1
  222. package/dist/schema-ast-v2.js +2 -2
  223. package/dist/schema-ast-v2.js.map +1 -1
  224. package/dist/schema-sources.d.ts +40 -0
  225. package/dist/schema-sources.d.ts.map +1 -0
  226. package/dist/schema-sources.js +183 -0
  227. package/dist/schema-sources.js.map +1 -0
  228. package/dist/scripts/postinstall.js +5 -1
  229. package/dist/scripts/postinstall.js.map +1 -1
  230. package/dist/self-host-compose.d.ts +37 -1
  231. package/dist/self-host-compose.d.ts.map +1 -1
  232. package/dist/self-host-compose.js +233 -43
  233. package/dist/self-host-compose.js.map +1 -1
  234. package/dist/storage-provision.d.ts +4 -0
  235. package/dist/storage-provision.d.ts.map +1 -1
  236. package/dist/storage-provision.js +24 -2
  237. package/dist/storage-provision.js.map +1 -1
  238. package/dist/supatype-eval-1781522769253.d.mts +2 -0
  239. package/dist/supatype-eval-1781522769253.d.mts.map +1 -0
  240. package/dist/supatype-eval-1781522769253.mjs +3 -0
  241. package/dist/supatype-eval-1781522769253.mjs.map +1 -0
  242. package/dist/systemd.js +2 -2
  243. package/dist/systemd.js.map +1 -1
  244. package/dist/target-client.d.ts +10 -0
  245. package/dist/target-client.d.ts.map +1 -0
  246. package/dist/target-client.js +22 -0
  247. package/dist/target-client.js.map +1 -0
  248. package/dist/type-extractor.d.ts +11 -0
  249. package/dist/type-extractor.d.ts.map +1 -1
  250. package/dist/type-extractor.js +95 -8
  251. package/dist/type-extractor.js.map +1 -1
  252. package/dist/ui/brand.d.ts +9 -0
  253. package/dist/ui/brand.d.ts.map +1 -0
  254. package/dist/ui/brand.js +11 -0
  255. package/dist/ui/brand.js.map +1 -0
  256. package/dist/ui/confirm.d.ts +12 -0
  257. package/dist/ui/confirm.d.ts.map +1 -0
  258. package/dist/ui/confirm.js +28 -0
  259. package/dist/ui/confirm.js.map +1 -0
  260. package/dist/ui/fatal.d.ts +10 -0
  261. package/dist/ui/fatal.d.ts.map +1 -0
  262. package/dist/ui/fatal.js +34 -0
  263. package/dist/ui/fatal.js.map +1 -0
  264. package/dist/ui/index.d.ts +9 -0
  265. package/dist/ui/index.d.ts.map +1 -0
  266. package/dist/ui/index.js +9 -0
  267. package/dist/ui/index.js.map +1 -0
  268. package/dist/ui/interactive.d.ts +3 -0
  269. package/dist/ui/interactive.d.ts.map +1 -0
  270. package/dist/ui/interactive.js +5 -0
  271. package/dist/ui/interactive.js.map +1 -0
  272. package/dist/ui/messages.d.ts +10 -0
  273. package/dist/ui/messages.d.ts.map +1 -0
  274. package/dist/ui/messages.js +35 -0
  275. package/dist/ui/messages.js.map +1 -0
  276. package/dist/ui/next-steps.d.ts +3 -0
  277. package/dist/ui/next-steps.d.ts.map +1 -0
  278. package/dist/ui/next-steps.js +10 -0
  279. package/dist/ui/next-steps.js.map +1 -0
  280. package/dist/ui/progress.d.ts +5 -0
  281. package/dist/ui/progress.d.ts.map +1 -0
  282. package/dist/ui/progress.js +24 -0
  283. package/dist/ui/progress.js.map +1 -0
  284. package/dist/ui/prompts.d.ts +14 -0
  285. package/dist/ui/prompts.d.ts.map +1 -0
  286. package/dist/ui/prompts.js +34 -0
  287. package/dist/ui/prompts.js.map +1 -0
  288. package/package.json +3 -2
  289. package/src/app/framework.ts +1 -3
  290. package/src/app/proxy-dev-app.ts +114 -6
  291. package/src/app-config.ts +80 -0
  292. package/src/binary-cache.ts +102 -52
  293. package/src/cli.ts +16 -2
  294. package/src/commands/add.ts +97 -0
  295. package/src/commands/admin.ts +39 -73
  296. package/src/commands/adopt.ts +82 -0
  297. package/src/commands/app.ts +20 -17
  298. package/src/commands/cache.ts +11 -10
  299. package/src/commands/cloud.ts +91 -142
  300. package/src/commands/db.ts +40 -63
  301. package/src/commands/deploy.ts +186 -126
  302. package/src/commands/dev.ts +95 -55
  303. package/src/commands/diff.ts +52 -43
  304. package/src/commands/doctor.ts +103 -0
  305. package/src/commands/engine.ts +5 -4
  306. package/src/commands/functions.ts +187 -123
  307. package/src/commands/generate.ts +5 -4
  308. package/src/commands/init.ts +996 -105
  309. package/src/commands/introspect.ts +48 -0
  310. package/src/commands/keys.ts +56 -14
  311. package/src/commands/link-helpers.ts +273 -0
  312. package/src/commands/logs.ts +5 -4
  313. package/src/commands/migrate-from-v1.ts +3 -2
  314. package/src/commands/migrate.ts +167 -27
  315. package/src/commands/pg.ts +13 -18
  316. package/src/commands/plugins.ts +55 -46
  317. package/src/commands/pull.ts +38 -9
  318. package/src/commands/push.ts +147 -174
  319. package/src/commands/seed.ts +5 -4
  320. package/src/commands/self-host.ts +85 -54
  321. package/src/commands/self-update.ts +3 -2
  322. package/src/commands/status.ts +102 -33
  323. package/src/commands/types.ts +3 -2
  324. package/src/commands/update.ts +59 -23
  325. package/src/config.ts +2 -1
  326. package/src/dev-compose.ts +426 -34
  327. package/src/dev-log-bus.ts +101 -0
  328. package/src/dev-log-filter.ts +32 -0
  329. package/src/dev-logo.ts +61 -0
  330. package/src/dev-session.ts +130 -0
  331. package/src/dev-shutdown.ts +54 -0
  332. package/src/dev-task-colors.ts +47 -0
  333. package/src/dev-tui.ts +232 -0
  334. package/src/diff-output.ts +79 -1
  335. package/src/docker-runtime.ts +151 -0
  336. package/src/engine-client.ts +81 -17
  337. package/src/engine-push-output.ts +75 -0
  338. package/src/ensure-binary.ts +2 -2
  339. package/src/gitignore.ts +48 -0
  340. package/src/kong-config.ts +24 -1
  341. package/src/link.ts +243 -0
  342. package/src/process-manager.ts +66 -10
  343. package/src/project-config.ts +62 -7
  344. package/src/prompts.ts +2 -0
  345. package/src/pull-utils.ts +217 -23
  346. package/src/resolve-target.ts +419 -0
  347. package/src/restore-system-relation-targets.ts +45 -0
  348. package/src/runtime-routes.ts +7 -0
  349. package/src/schema-ast-v2.ts +2 -1
  350. package/src/schema-sources.ts +248 -0
  351. package/src/scripts/postinstall.ts +7 -1
  352. package/src/self-host-compose.ts +261 -46
  353. package/src/storage-provision.ts +33 -1
  354. package/src/supatype-eval-1781522769253.mts +1 -0
  355. package/src/systemd.ts +2 -2
  356. package/src/target-client.ts +40 -0
  357. package/src/type-extractor.ts +124 -11
  358. package/src/ui/README.md +17 -0
  359. package/src/ui/brand.ts +12 -0
  360. package/src/ui/confirm.ts +38 -0
  361. package/src/ui/fatal.ts +43 -0
  362. package/src/ui/index.ts +8 -0
  363. package/src/ui/interactive.ts +4 -0
  364. package/src/ui/messages.ts +43 -0
  365. package/src/ui/next-steps.ts +10 -0
  366. package/src/ui/progress.ts +28 -0
  367. package/src/ui/prompts.ts +40 -0
  368. package/tests/cli-help.test.ts +27 -2
  369. package/tests/config.test.ts +29 -2
  370. package/tests/dev-ui.test.ts +139 -0
  371. package/tests/docker-runtime.test.ts +236 -0
  372. package/tests/engine-push-output.test.ts +67 -0
  373. package/tests/init.test.ts +197 -18
  374. package/tests/link.test.ts +148 -0
  375. package/tests/minisign.test.ts +102 -0
  376. package/tests/proxy-dev-app.test.ts +45 -1
  377. package/tests/pull-utils.test.ts +5 -4
  378. package/tests/runtime-contract.test.ts +186 -2
  379. package/tests/schema-sources.test.ts +119 -0
  380. package/tests/storage-provision.test.ts +100 -0
  381. package/tests/ui-confirm.test.ts +41 -0
  382. package/tests/ui-messages.test.ts +66 -0
  383. package/tsconfig.tsbuildinfo +1 -1
@@ -4,6 +4,7 @@
4
4
  import { existsSync, readdirSync, rmSync, statSync } from "node:fs";
5
5
  import { join } from "node:path";
6
6
  import { cacheRoot } from "../binary-cache.js";
7
+ import { info, plain } from "../ui/messages.js";
7
8
  const COMPONENTS = ["engine", "server", "postgres", "deno"];
8
9
  export function registerCache(program) {
9
10
  const cache = program
@@ -15,7 +16,7 @@ export function registerCache(program) {
15
16
  .action(() => {
16
17
  const root = cacheRoot();
17
18
  if (!existsSync(root)) {
18
- console.log("Cache is empty.");
19
+ info("Cache is empty.");
19
20
  return;
20
21
  }
21
22
  let totalBytes = 0;
@@ -30,15 +31,15 @@ export function registerCache(program) {
30
31
  const size = dirSize(vDir);
31
32
  totalBytes += size;
32
33
  found = true;
33
- console.log(` ${component}@${version} ${formatBytes(size)}`);
34
+ plain(` ${component}@${version} ${formatBytes(size)}`);
34
35
  }
35
36
  }
36
37
  if (!found) {
37
- console.log("Cache is empty.");
38
+ info("Cache is empty.");
38
39
  return;
39
40
  }
40
- console.log(`\nTotal: ${formatBytes(totalBytes)}`);
41
- console.log(`Cache root: ${root}`);
41
+ plain(`\nTotal: ${formatBytes(totalBytes)}`);
42
+ info(`Cache root: ${root}`);
42
43
  });
43
44
  cache
44
45
  .command("clean [component] [version]")
@@ -50,7 +51,7 @@ export function registerCache(program) {
50
51
  .action((component, version) => {
51
52
  const root = cacheRoot();
52
53
  if (!existsSync(root)) {
53
- console.log("Cache is already empty.");
54
+ info("Cache is already empty.");
54
55
  return;
55
56
  }
56
57
  const targets = component ? [component] : COMPONENTS;
@@ -61,18 +62,18 @@ export function registerCache(program) {
61
62
  if (version) {
62
63
  const vDir = join(compDir, version);
63
64
  if (!existsSync(vDir)) {
64
- console.log(` ${comp}@${version} not cached.`);
65
+ info(`${comp}@${version} not cached.`);
65
66
  continue;
66
67
  }
67
68
  rmSync(vDir, { recursive: true, force: true });
68
- console.log(` removed ${comp}@${version}`);
69
+ plain(` removed ${comp}@${version}`);
69
70
  }
70
71
  else {
71
72
  rmSync(compDir, { recursive: true, force: true });
72
- console.log(` removed ${comp} (all versions)`);
73
+ plain(` removed ${comp} (all versions)`);
73
74
  }
74
75
  }
75
- console.log("Done.");
76
+ info("Done.");
76
77
  });
77
78
  }
78
79
  function dirSize(dir) {
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/commands/cache.ts"],"names":[],"mappings":"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"}
@@ -3,21 +3,16 @@ interface CloudConfig {
3
3
  apiUrl: string;
4
4
  token: string;
5
5
  projectSlug?: string;
6
- /** Organisation UUID — required for schema routes (`X-Org-Id`). */
7
- orgId?: string;
6
+ orgId?: string | undefined;
8
7
  }
8
+ /** @deprecated Prefer loadProjectLink */
9
9
  export declare function loadCloudConfig(cwd: string): CloudConfig | null;
10
- /** True when `.supatype/cloud.json` exists with a linked project slug. */
11
10
  export declare function isCloudLinked(cwd: string): boolean;
12
- /**
13
- * Push schema AST to the linked cloud project (`POST /api/v1/projects/:ref/schema/push`).
14
- * Credentials stay server-side; only AST is sent.
15
- */
16
11
  export declare function pushSchemaToLinkedProject(cwd: string, opts?: {
17
12
  force?: boolean;
13
+ env?: string;
18
14
  }): Promise<void>;
19
- /** @deprecated Use pushSchemaToLinkedProject kept for deploy command alias */
20
- export declare function deploySchemaToLinkedProject(cwd: string, _environment: string): Promise<void>;
15
+ export declare function deploySchemaToLinkedProject(cwd: string, environment: string): Promise<void>;
21
16
  export declare function registerCloud(program: Command): void;
22
17
  export {};
23
18
  //# sourceMappingURL=cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI/D;AAgCD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BtG;AAED,gFAAgF;AAChF,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAcD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4MpD"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYxC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B;AAED,yCAAyC;AACzC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAc/D;AAqBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyKpD"}
@@ -1,11 +1,29 @@
1
1
  import { readFileSync, writeFileSync, existsSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
- import { createInterface } from "node:readline";
3
+ import { loadProjectLink, migrateLegacyLinkFiles } from "../link.js";
4
+ import { targetFetch } from "../target-client.js";
5
+ import { registerEnvs, registerLinkOptions, runLinkAction } from "./link-helpers.js";
6
+ import { resolveTarget, targetSchemaPush, schemaPgSchema } from "../resolve-target.js";
7
+ import { loadConfig, loadSchemaAst } from "../config.js";
8
+ import { schemaPathFromProject } from "../project-config.js";
9
+ import { error, info, plain } from "../ui/messages.js";
10
+ import { nextSteps } from "../ui/next-steps.js";
11
+ /** @deprecated Prefer loadProjectLink */
4
12
  export function loadCloudConfig(cwd) {
5
- const configPath = resolve(cwd, ".supatype/cloud.json");
6
- if (!existsSync(configPath))
13
+ migrateLegacyLinkFiles(cwd);
14
+ const link = loadProjectLink(cwd);
15
+ if (!link || link.kind !== "cloud")
7
16
  return null;
8
- return JSON.parse(readFileSync(configPath, "utf8"));
17
+ const legacyPath = resolve(cwd, ".supatype/cloud.json");
18
+ if (existsSync(legacyPath)) {
19
+ return JSON.parse(readFileSync(legacyPath, "utf8"));
20
+ }
21
+ return {
22
+ apiUrl: link.cloudApiUrl ?? "https://api.supatype.com",
23
+ token: link.token ?? "",
24
+ projectSlug: link.projectRef,
25
+ ...(link.orgId !== undefined ? { orgId: link.orgId } : {}),
26
+ };
9
27
  }
10
28
  function saveCloudConfig(cwd, config) {
11
29
  const dir = resolve(cwd, ".supatype");
@@ -16,114 +34,46 @@ function saveCloudConfig(cwd, config) {
16
34
  writeFileSync(resolve(cwd, ".supatype/cloud.json"), JSON.stringify(config, null, 2) + "\n", "utf8");
17
35
  }
18
36
  async function cloudFetch(config, method, path, body) {
19
- const headers = {
20
- "Content-Type": "application/json",
21
- Authorization: `Bearer ${config.token}`,
22
- };
23
- if (config.orgId) {
24
- headers["X-Org-Id"] = config.orgId;
25
- }
26
- const res = await fetch(`${config.apiUrl}/api/v1${path}`, {
37
+ return targetFetch(config.apiUrl, "/api/v1", {
27
38
  method,
28
- headers,
29
- ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
39
+ path,
40
+ body,
41
+ token: config.token,
42
+ orgId: config.orgId,
30
43
  });
31
- const json = await res.json();
32
- if (!res.ok) {
33
- throw new Error(json.message ?? json.error ?? `API error: ${res.status}`);
34
- }
35
- return json.data;
36
44
  }
37
- /** True when `.supatype/cloud.json` exists with a linked project slug. */
38
45
  export function isCloudLinked(cwd) {
39
- const cfg = loadCloudConfig(cwd);
40
- return Boolean(cfg?.projectSlug && cfg.token);
46
+ migrateLegacyLinkFiles(cwd);
47
+ const link = loadProjectLink(cwd);
48
+ return Boolean(link?.kind === "cloud" && link.projectRef && link.token);
41
49
  }
42
- /**
43
- * Push schema AST to the linked cloud project (`POST /api/v1/projects/:ref/schema/push`).
44
- * Credentials stay server-side; only AST is sent.
45
- */
46
50
  export async function pushSchemaToLinkedProject(cwd, opts) {
47
- const config = loadCloudConfig(cwd);
48
- if (!config?.projectSlug) {
49
- console.error("Not linked to a cloud project. Run: supatype link");
50
- process.exit(1);
51
- }
52
- if (!config.orgId) {
53
- console.error("Missing orgId in .supatype/cloud.json. Re-run: supatype link --project <slug> (after cloud login).");
51
+ const config = loadConfig(cwd);
52
+ const target = resolveTarget(cwd, { env: opts?.env });
53
+ if (target.mode !== "cloud") {
54
+ error("Not linked to a cloud project. Run: supatype link --project <slug>");
54
55
  process.exit(1);
55
56
  }
56
- const { loadConfig: loadAppConfig, loadSchemaAst } = await import("../config.js");
57
- const { schemaPathFromProject } = await import("../project-config.js");
58
- const appConfig = loadAppConfig(cwd);
59
- const ast = loadSchemaAst(schemaPathFromProject(appConfig, cwd), cwd);
60
- console.log(`Pushing schema to cloud project ${config.projectSlug}...`);
61
- const result = await cloudFetch(config, "POST", `/projects/${config.projectSlug}/schema/push`, {
62
- ast,
57
+ const ast = loadSchemaAst(schemaPathFromProject(config, cwd), cwd);
58
+ info(`Pushing schema to ${target.mode} project ${target.projectRef} (${target.environment})...`);
59
+ const result = await targetSchemaPush(target, ast, {
63
60
  force: opts?.force ?? true,
61
+ schema: schemaPgSchema(cwd),
64
62
  });
65
- console.log(result.message ?? "Schema push completed.");
63
+ info(result.message ?? "Schema push completed.");
66
64
  }
67
- /** @deprecated Use pushSchemaToLinkedProject kept for deploy command alias */
68
- export async function deploySchemaToLinkedProject(cwd, _environment) {
69
- await pushSchemaToLinkedProject(cwd);
65
+ export async function deploySchemaToLinkedProject(cwd, environment) {
66
+ await pushSchemaToLinkedProject(cwd, { force: true, env: environment });
70
67
  }
71
- function prompt(question) {
72
- const rl = createInterface({ input: process.stdin, output: process.stdout });
73
- return new Promise((resolve) => {
74
- rl.question(question, (answer) => {
75
- rl.close();
76
- resolve(answer.trim());
77
- });
78
- });
79
- }
80
- // ─── Registration ──────────────────────────────────────────────────────────────
81
68
  export function registerCloud(program) {
82
- // ── Link ───────────────────────────────────────────────────────────────────
83
- program
69
+ registerEnvs(program);
70
+ const linkCmd = program
84
71
  .command("link")
85
- .description("Link this local project to a Supatype cloud project")
86
- .option("--project <slug>", "Project slug to link to")
87
- .option("--api-url <url>", "Control plane API URL", "https://api.supatype.com")
88
- .option("--token <token>", "Authentication token")
89
- .action(async (opts) => {
90
- const cwd = process.cwd();
91
- const token = opts.token ?? process.env["SUPATYPE_TOKEN"];
92
- if (!token) {
93
- console.error("Authentication required. Set SUPATYPE_TOKEN or pass --token.");
94
- process.exit(1);
95
- }
96
- const config = { apiUrl: opts.apiUrl, token };
97
- if (opts.project) {
98
- config.projectSlug = opts.project;
99
- const one = await cloudFetch(config, "GET", `/projects/${opts.project}`);
100
- config.orgId = one.orgId;
101
- }
102
- else {
103
- const projects = await cloudFetch(config, "GET", "/projects");
104
- if (projects.length === 0) {
105
- console.error("No projects found. Create one with: supatype projects create <name>");
106
- process.exit(1);
107
- }
108
- console.log("\nAvailable projects:\n");
109
- projects.forEach((p, i) => {
110
- console.log(` ${i + 1}. ${p.name} (${p.slug}) [${p.tier}] — ${p.status}`);
111
- });
112
- const answer = await prompt(`\nSelect project (1-${projects.length}): `);
113
- const idx = parseInt(answer, 10) - 1;
114
- if (isNaN(idx) || idx < 0 || idx >= projects.length) {
115
- console.error("Invalid selection.");
116
- process.exit(1);
117
- }
118
- const picked = projects[idx];
119
- config.projectSlug = picked.slug;
120
- config.orgId = picked.orgId;
121
- }
122
- saveCloudConfig(cwd, config);
123
- console.log(`\nLinked to project: ${config.projectSlug}`);
124
- console.log(`Config saved to .supatype/cloud.json\n`);
72
+ .description("Link this project to cloud or self-host (unified .supatype/link.json)");
73
+ registerLinkOptions(linkCmd);
74
+ linkCmd.action(async (opts) => {
75
+ await runLinkAction(opts);
125
76
  });
126
- // ── Projects ───────────────────────────────────────────────────────────────
127
77
  const projectsCmd = program
128
78
  .command("projects")
129
79
  .description("Manage cloud projects");
@@ -134,15 +84,15 @@ export function registerCloud(program) {
134
84
  const config = getCloudConfigOrExit();
135
85
  const projects = await cloudFetch(config, "GET", "/projects");
136
86
  if (projects.length === 0) {
137
- console.log("No projects. Create one with: supatype projects create <name>");
87
+ info("No projects. Create one with: supatype projects create <name>");
138
88
  return;
139
89
  }
140
- console.log("\n Name Slug Tier Region Status");
141
- console.log(" " + "─".repeat(80));
90
+ plain("\n Name Slug Tier Region Status");
91
+ plain(" " + "─".repeat(80));
142
92
  for (const p of projects) {
143
- console.log(` ${p.name.padEnd(24)}${p.slug.padEnd(25)}${p.tier.padEnd(8)}${p.region.padEnd(10)}${p.status}`);
93
+ plain(` ${p.name.padEnd(24)}${p.slug.padEnd(25)}${p.tier.padEnd(8)}${p.region.padEnd(10)}${p.status}`);
144
94
  }
145
- console.log();
95
+ plain();
146
96
  });
147
97
  projectsCmd
148
98
  .command("create <name>")
@@ -151,11 +101,11 @@ export function registerCloud(program) {
151
101
  .option("--region <region>", "Region (eu-fsn, eu-nbg, eu-hel)", "eu-fsn")
152
102
  .action(async (name, opts) => {
153
103
  const config = getCloudConfigOrExit();
154
- console.log(`Creating project "${name}" (${opts.tier}, ${opts.region})...`);
104
+ info(`Creating project "${name}" (${opts.tier}, ${opts.region})...`);
155
105
  const project = await cloudFetch(config, "POST", "/projects", { name, tier: opts.tier, region: opts.region });
156
- console.log(`\nProject created: ${project.name} (${project.slug})`);
157
- console.log(`Status: ${project.status}`);
158
- console.log(`\nTo link this project: supatype link --project ${project.slug}\n`);
106
+ info(`Project created: ${project.name} (${project.slug})`);
107
+ info(`Status: ${project.status}`);
108
+ nextSteps("To link this project:", [`supatype link --project ${project.slug}`]);
159
109
  });
160
110
  projectsCmd
161
111
  .command("pause <slug>")
@@ -163,7 +113,7 @@ export function registerCloud(program) {
163
113
  .action(async (slug) => {
164
114
  const config = getCloudConfigOrExit();
165
115
  await cloudFetch(config, "POST", `/projects/${slug}/pause`);
166
- console.log(`Project ${slug} paused.`);
116
+ info(`Project ${slug} paused.`);
167
117
  });
168
118
  projectsCmd
169
119
  .command("resume <slug>")
@@ -171,9 +121,8 @@ export function registerCloud(program) {
171
121
  .action(async (slug) => {
172
122
  const config = getCloudConfigOrExit();
173
123
  await cloudFetch(config, "POST", `/projects/${slug}/resume`);
174
- console.log(`Project ${slug} resumed.`);
124
+ info(`Project ${slug} resumed.`);
175
125
  });
176
- // ── Domains ────────────────────────────────────────────────────────────────
177
126
  const domainsCmd = program
178
127
  .command("domains")
179
128
  .description("Manage custom domains for a project");
@@ -183,20 +132,20 @@ export function registerCloud(program) {
183
132
  .action(async () => {
184
133
  const config = getCloudConfigOrExit();
185
134
  if (!config.projectSlug) {
186
- console.error("Not linked to a project. Run: supatype link");
135
+ error("Not linked to a project. Run: supatype link");
187
136
  process.exit(1);
188
137
  }
189
138
  const domains = await cloudFetch(config, "GET", `/projects/${config.projectSlug}/domains`);
190
139
  if (domains.length === 0) {
191
- console.log("No custom domains configured.");
140
+ info("No custom domains configured.");
192
141
  return;
193
142
  }
194
- console.log("\n Domain Status CNAME Target");
195
- console.log(" " + "─".repeat(80));
143
+ plain("\n Domain Status CNAME Target");
144
+ plain(" " + "─".repeat(80));
196
145
  for (const d of domains) {
197
- console.log(` ${d.domain.padEnd(34)}${d.status.padEnd(21)}${d.cnameTarget}`);
146
+ plain(` ${d.domain.padEnd(34)}${d.status.padEnd(21)}${d.cnameTarget}`);
198
147
  }
199
- console.log();
148
+ plain();
200
149
  });
201
150
  domainsCmd
202
151
  .command("add <domain>")
@@ -204,13 +153,13 @@ export function registerCloud(program) {
204
153
  .action(async (domain) => {
205
154
  const config = getCloudConfigOrExit();
206
155
  if (!config.projectSlug) {
207
- console.error("Not linked to a project. Run: supatype link");
156
+ error("Not linked to a project. Run: supatype link");
208
157
  process.exit(1);
209
158
  }
210
159
  const result = await cloudFetch(config, "POST", `/projects/${config.projectSlug}/domains`, { domain });
211
- console.log(`\nDomain added: ${result.domain}`);
212
- console.log(`\n${result.instructions}`);
213
- console.log(`\nAfter adding the CNAME record, verify with: supatype domains verify ${domain}\n`);
160
+ info(`Domain added: ${result.domain}`);
161
+ plain(`\n${result.instructions}`);
162
+ info(`After adding the CNAME record, verify with: supatype domains verify ${domain}`);
214
163
  });
215
164
  domainsCmd
216
165
  .command("remove <domainId>")
@@ -218,11 +167,11 @@ export function registerCloud(program) {
218
167
  .action(async (domainId) => {
219
168
  const config = getCloudConfigOrExit();
220
169
  if (!config.projectSlug) {
221
- console.error("Not linked to a project. Run: supatype link");
170
+ error("Not linked to a project. Run: supatype link");
222
171
  process.exit(1);
223
172
  }
224
173
  await cloudFetch(config, "DELETE", `/projects/${config.projectSlug}/domains/${domainId}`);
225
- console.log("Domain removed.");
174
+ info("Domain removed.");
226
175
  });
227
176
  domainsCmd
228
177
  .command("verify <domainId>")
@@ -230,21 +179,22 @@ export function registerCloud(program) {
230
179
  .action(async (domainId) => {
231
180
  const config = getCloudConfigOrExit();
232
181
  if (!config.projectSlug) {
233
- console.error("Not linked to a project. Run: supatype link");
182
+ error("Not linked to a project. Run: supatype link");
234
183
  process.exit(1);
235
184
  }
236
185
  const result = await cloudFetch(config, "POST", `/projects/${config.projectSlug}/domains/${domainId}/verify`);
237
- console.log(`Domain ${result.domain}: ${result.status}`);
186
+ info(`Domain ${result.domain}: ${result.status}`);
238
187
  });
239
188
  }
240
189
  function getCloudConfigOrExit() {
241
190
  const cwd = process.cwd();
242
191
  let config = loadCloudConfig(cwd);
243
192
  if (!config) {
244
- const token = process.env["SUPATYPE_TOKEN"];
193
+ const token = process.env["SUPATYPE_ACCESS_TOKEN"] ??
194
+ process.env["SUPATYPE_TOKEN"];
245
195
  const apiUrl = process.env["SUPATYPE_API_URL"] ?? "https://api.supatype.com";
246
196
  if (!token) {
247
- console.error("Not connected to Supatype Cloud. Run: supatype link, or set SUPATYPE_TOKEN.");
197
+ error("Not connected to Supatype Cloud. Run: supatype link, or set SUPATYPE_ACCESS_TOKEN.");
248
198
  process.exit(1);
249
199
  }
250
200
  config = { apiUrl, token };
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4HjD"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQxC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkGjD"}
@@ -5,12 +5,14 @@
5
5
  */
6
6
  import { loadConfig } from "../config.js";
7
7
  import { connectionString } from "../project-config.js";
8
- import { loadCloudConfig } from "./cloud.js";
8
+ import { loadProjectLink } from "../link.js";
9
+ import { resolveTarget } from "../resolve-target.js";
10
+ import { targetFetch } from "../target-client.js";
11
+ import { error, info, plain } from "../ui/messages.js";
9
12
  export function registerDb(program) {
10
13
  const db = program
11
14
  .command("db")
12
15
  .description("Database connection management");
13
- // supatype db connection-string
14
16
  db
15
17
  .command("connection-string")
16
18
  .description("Show the database connection string for the linked project")
@@ -19,96 +21,73 @@ export function registerDb(program) {
19
21
  .action(async (opts) => {
20
22
  const cwd = process.cwd();
21
23
  const config = loadConfig(cwd);
22
- const cloudCfg = loadCloudConfig(cwd);
24
+ const link = loadProjectLink(cwd);
23
25
  const localConn = connectionString(config);
24
- // If no cloud project linked, show the local connection string.
25
- if (!cloudCfg?.projectSlug) {
26
+ if (!link || link.kind !== "cloud") {
26
27
  const connStr = opts.transaction ? localConn.replace(/:5432\//, ":6432/") : localConn;
27
- console.log(connStr);
28
- console.log();
29
- console.log("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
30
- console.log("Transaction mode (port 6432): for application servers and serverless functions");
28
+ plain(connStr);
29
+ plain();
30
+ plain("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
31
+ plain("Transaction mode (port 6432): for application servers and serverless functions");
31
32
  return;
32
33
  }
33
- // If linked to a cloud project, fetch from the API
34
- const apiUrl = cloudCfg.apiUrl || "https://api.supatype.com";
35
- const token = cloudCfg.token || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
34
+ const target = resolveTarget(cwd, { env: opts.env });
36
35
  const envName = opts.env || "production";
37
36
  try {
38
- const res = await fetch(`${apiUrl}/platform/v1/projects/${cloudCfg.projectSlug}/environments`, {
39
- headers: {
40
- Authorization: `Bearer ${token}`,
41
- },
37
+ const data = await targetFetch(target.apiBaseUrl, target.apiPrefix, {
38
+ method: "GET",
39
+ path: `/projects/${target.projectRef}/environments`,
40
+ token: target.token,
41
+ orgId: target.orgId,
42
42
  });
43
- if (!res.ok) {
44
- console.error(`Failed to fetch project info: ${res.status}`);
45
- process.exitCode = 1;
46
- return;
47
- }
48
- const { data } = (await res.json());
49
43
  const env = data.find((e) => e.name === envName);
50
44
  if (!env) {
51
- console.error(`Environment "${envName}" not found`);
45
+ error(`Environment "${envName}" not found`);
52
46
  process.exitCode = 1;
53
47
  return;
54
48
  }
55
49
  const connStr = env.databaseUrl || "Connection string not available";
56
- if (opts.transaction) {
57
- console.log(connStr.replace(/:5432\//, ":6432/"));
58
- }
59
- else {
60
- console.log(connStr);
61
- }
62
- console.log();
63
- console.log("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
64
- console.log("Transaction mode (port 6432): for application servers and serverless functions");
50
+ plain(opts.transaction ? connStr.replace(/:5432\//, ":6432/") : connStr);
51
+ plain();
52
+ plain("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
53
+ plain("Transaction mode (port 6432): for application servers and serverless functions");
65
54
  }
66
55
  catch (err) {
67
- console.error("Failed to fetch connection string:", err.message);
56
+ error(`Failed to fetch connection string: ${err.message}`);
68
57
  process.exitCode = 1;
69
58
  }
70
59
  });
71
- // supatype db reset-password
72
60
  db
73
61
  .command("reset-password")
74
62
  .description("Reset the database password for the linked project")
75
63
  .option("--env <name>", "Environment name", "production")
76
64
  .action(async (opts) => {
77
65
  const cwd = process.cwd();
78
- const cloudCfg = loadCloudConfig(cwd);
79
- if (!cloudCfg?.projectSlug) {
80
- console.error("Not linked to a cloud project. Run: supatype link --project <ref>");
66
+ const link = loadProjectLink(cwd);
67
+ if (!link || link.kind !== "cloud") {
68
+ error("Not linked to a cloud project. Run: supatype link --project <ref>");
81
69
  process.exitCode = 1;
82
70
  return;
83
71
  }
84
- const apiUrl = cloudCfg.apiUrl || "https://api.supatype.com";
85
- const token = cloudCfg.token || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
72
+ const target = resolveTarget(cwd, { env: opts.env });
86
73
  const envName = opts.env || "production";
87
74
  try {
88
- const res = await fetch(`${apiUrl}/platform/v1/projects/${cloudCfg.projectSlug}/environments/${envName}/reset-db-password`, {
75
+ const data = await targetFetch(target.apiBaseUrl, target.apiPrefix, {
89
76
  method: "POST",
90
- headers: {
91
- Authorization: `Bearer ${token}`,
92
- "Content-Type": "application/json",
93
- },
77
+ path: `/projects/${target.projectRef}/environments/${envName}/reset-db-password`,
78
+ token: target.token,
79
+ orgId: target.orgId,
94
80
  });
95
- if (!res.ok) {
96
- const body = await res.text();
97
- console.error(`Failed to reset password: ${res.status} ${body}`);
98
- process.exitCode = 1;
99
- return;
81
+ info("Database password reset successfully.");
82
+ if (data.databaseUrl) {
83
+ plain(`\nNew connection string:\n${data.databaseUrl}`);
84
+ }
85
+ else if (data.password) {
86
+ plain(`\nNew password: ${data.password}`);
100
87
  }
101
- const { data } = (await res.json());
102
- console.log("Database password reset successfully.");
103
- console.log();
104
- console.log(`New password: ${data.password}`);
105
- console.log(`Connection string: ${data.connectionString}`);
106
- console.log();
107
- console.log("Warning: Existing database connections have been terminated.");
108
- console.log("Update your application with the new connection string.");
109
88
  }
110
89
  catch (err) {
111
- console.error("Failed to reset password:", err.message);
90
+ error(`Failed to reset password: ${err.message}`);
112
91
  process.exitCode = 1;
113
92
  }
114
93
  });