@supatype/cli 0.1.0-alpha.6 → 0.1.0-alpha.8

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 (350) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +208 -1
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/app/proxy-dev-app.d.ts +13 -0
  5. package/dist/app/proxy-dev-app.d.ts.map +1 -0
  6. package/dist/app/proxy-dev-app.js +53 -0
  7. package/dist/app/proxy-dev-app.js.map +1 -0
  8. package/dist/app-config.d.ts +7 -0
  9. package/dist/app-config.d.ts.map +1 -0
  10. package/dist/app-config.js +113 -0
  11. package/dist/app-config.js.map +1 -0
  12. package/dist/augmentation-generator.d.ts +2 -0
  13. package/dist/augmentation-generator.d.ts.map +1 -0
  14. package/dist/augmentation-generator.js +111 -0
  15. package/dist/augmentation-generator.js.map +1 -0
  16. package/dist/binary-cache.d.ts +94 -0
  17. package/dist/binary-cache.d.ts.map +1 -0
  18. package/dist/binary-cache.js +669 -0
  19. package/dist/binary-cache.js.map +1 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +13 -7
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/admin.d.ts.map +1 -1
  24. package/dist/commands/admin.js +4 -3
  25. package/dist/commands/admin.js.map +1 -1
  26. package/dist/commands/app.d.ts.map +1 -1
  27. package/dist/commands/app.js +56 -209
  28. package/dist/commands/app.js.map +1 -1
  29. package/dist/commands/cache.d.ts +6 -0
  30. package/dist/commands/cache.d.ts.map +1 -0
  31. package/dist/commands/cache.js +105 -0
  32. package/dist/commands/cache.js.map +1 -0
  33. package/dist/commands/cloud.d.ts +20 -0
  34. package/dist/commands/cloud.d.ts.map +1 -1
  35. package/dist/commands/cloud.js +50 -52
  36. package/dist/commands/cloud.js.map +1 -1
  37. package/dist/commands/db.d.ts.map +1 -1
  38. package/dist/commands/db.js +47 -54
  39. package/dist/commands/db.js.map +1 -1
  40. package/dist/commands/deploy.d.ts +2 -1
  41. package/dist/commands/deploy.d.ts.map +1 -1
  42. package/dist/commands/deploy.js +79 -52
  43. package/dist/commands/deploy.js.map +1 -1
  44. package/dist/commands/dev.d.ts +11 -0
  45. package/dist/commands/dev.d.ts.map +1 -1
  46. package/dist/commands/dev.js +759 -385
  47. package/dist/commands/dev.js.map +1 -1
  48. package/dist/commands/diff.d.ts.map +1 -1
  49. package/dist/commands/diff.js +30 -15
  50. package/dist/commands/diff.js.map +1 -1
  51. package/dist/commands/engine.d.ts +1 -3
  52. package/dist/commands/engine.d.ts.map +1 -1
  53. package/dist/commands/engine.js +13 -85
  54. package/dist/commands/engine.js.map +1 -1
  55. package/dist/commands/functions.d.ts.map +1 -1
  56. package/dist/commands/functions.js +92 -105
  57. package/dist/commands/functions.js.map +1 -1
  58. package/dist/commands/generate.d.ts.map +1 -1
  59. package/dist/commands/generate.js +22 -12
  60. package/dist/commands/generate.js.map +1 -1
  61. package/dist/commands/init.d.ts +1 -1
  62. package/dist/commands/init.d.ts.map +1 -1
  63. package/dist/commands/init.js +137 -410
  64. package/dist/commands/init.js.map +1 -1
  65. package/dist/commands/migrate-from-v1.d.ts +5 -0
  66. package/dist/commands/migrate-from-v1.d.ts.map +1 -0
  67. package/dist/commands/migrate-from-v1.js +125 -0
  68. package/dist/commands/migrate-from-v1.js.map +1 -0
  69. package/dist/commands/migrate.d.ts.map +1 -1
  70. package/dist/commands/migrate.js +27 -23
  71. package/dist/commands/migrate.js.map +1 -1
  72. package/dist/commands/pg.d.ts +8 -0
  73. package/dist/commands/pg.d.ts.map +1 -0
  74. package/dist/commands/pg.js +102 -0
  75. package/dist/commands/pg.js.map +1 -0
  76. package/dist/commands/pull.d.ts.map +1 -1
  77. package/dist/commands/pull.js +5 -66
  78. package/dist/commands/pull.js.map +1 -1
  79. package/dist/commands/push.d.ts.map +1 -1
  80. package/dist/commands/push.js +128 -38
  81. package/dist/commands/push.js.map +1 -1
  82. package/dist/commands/seed.d.ts +2 -0
  83. package/dist/commands/seed.d.ts.map +1 -1
  84. package/dist/commands/seed.js +44 -11
  85. package/dist/commands/seed.js.map +1 -1
  86. package/dist/commands/self-host.d.ts +7 -1
  87. package/dist/commands/self-host.d.ts.map +1 -1
  88. package/dist/commands/self-host.js +272 -758
  89. package/dist/commands/self-host.js.map +1 -1
  90. package/dist/commands/self-update.d.ts +9 -0
  91. package/dist/commands/self-update.d.ts.map +1 -0
  92. package/dist/commands/self-update.js +33 -0
  93. package/dist/commands/self-update.js.map +1 -0
  94. package/dist/commands/status.d.ts.map +1 -1
  95. package/dist/commands/status.js +4 -3
  96. package/dist/commands/status.js.map +1 -1
  97. package/dist/commands/types.d.ts +3 -0
  98. package/dist/commands/types.d.ts.map +1 -0
  99. package/dist/commands/types.js +62 -0
  100. package/dist/commands/types.js.map +1 -0
  101. package/dist/commands/update.d.ts +7 -0
  102. package/dist/commands/update.d.ts.map +1 -0
  103. package/dist/commands/update.js +93 -0
  104. package/dist/commands/update.js.map +1 -0
  105. package/dist/components.d.ts +5 -0
  106. package/dist/components.d.ts.map +1 -0
  107. package/dist/components.js +3 -0
  108. package/dist/components.js.map +1 -0
  109. package/dist/config.d.ts +10 -51
  110. package/dist/config.d.ts.map +1 -1
  111. package/dist/config.js +101 -33
  112. package/dist/config.js.map +1 -1
  113. package/dist/dev-compose.d.ts +17 -0
  114. package/dist/dev-compose.d.ts.map +1 -0
  115. package/dist/dev-compose.js +374 -0
  116. package/dist/dev-compose.js.map +1 -0
  117. package/dist/diff-output.d.ts +4 -0
  118. package/dist/diff-output.d.ts.map +1 -0
  119. package/dist/diff-output.js +12 -0
  120. package/dist/diff-output.js.map +1 -0
  121. package/dist/docker-postgres.d.ts +57 -0
  122. package/dist/docker-postgres.d.ts.map +1 -0
  123. package/dist/docker-postgres.js +208 -0
  124. package/dist/docker-postgres.js.map +1 -0
  125. package/dist/engine-client.d.ts +69 -0
  126. package/dist/engine-client.d.ts.map +1 -0
  127. package/dist/engine-client.js +157 -0
  128. package/dist/engine-client.js.map +1 -0
  129. package/dist/ensure-binary.d.ts +7 -0
  130. package/dist/ensure-binary.d.ts.map +1 -0
  131. package/dist/ensure-binary.js +17 -0
  132. package/dist/ensure-binary.js.map +1 -0
  133. package/dist/functions-router-gen.d.ts +14 -0
  134. package/dist/functions-router-gen.d.ts.map +1 -0
  135. package/dist/functions-router-gen.js +199 -0
  136. package/dist/functions-router-gen.js.map +1 -0
  137. package/dist/index.d.ts +4 -5
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +2 -3
  140. package/dist/index.js.map +1 -1
  141. package/dist/kong-config.d.ts +25 -0
  142. package/dist/kong-config.d.ts.map +1 -0
  143. package/dist/kong-config.js +71 -0
  144. package/dist/kong-config.js.map +1 -0
  145. package/dist/local-gateway.d.ts +7 -0
  146. package/dist/local-gateway.d.ts.map +1 -0
  147. package/dist/local-gateway.js +9 -0
  148. package/dist/local-gateway.js.map +1 -0
  149. package/dist/local-storage.d.ts +8 -0
  150. package/dist/local-storage.d.ts.map +1 -0
  151. package/dist/local-storage.js +14 -0
  152. package/dist/local-storage.js.map +1 -0
  153. package/dist/pgbouncer-userlist.d.ts +5 -0
  154. package/dist/pgbouncer-userlist.d.ts.map +1 -0
  155. package/dist/pgbouncer-userlist.js +14 -0
  156. package/dist/pgbouncer-userlist.js.map +1 -0
  157. package/dist/postgres-ctl.d.ts +44 -0
  158. package/dist/postgres-ctl.d.ts.map +1 -0
  159. package/dist/postgres-ctl.js +137 -0
  160. package/dist/postgres-ctl.js.map +1 -0
  161. package/dist/process-manager.d.ts +43 -0
  162. package/dist/process-manager.d.ts.map +1 -0
  163. package/dist/process-manager.js +135 -0
  164. package/dist/process-manager.js.map +1 -0
  165. package/dist/project-config.d.ts +235 -0
  166. package/dist/project-config.d.ts.map +1 -0
  167. package/dist/project-config.js +160 -0
  168. package/dist/project-config.js.map +1 -0
  169. package/dist/pull-utils.d.ts +15 -0
  170. package/dist/pull-utils.d.ts.map +1 -1
  171. package/dist/pull-utils.js +12 -0
  172. package/dist/pull-utils.js.map +1 -1
  173. package/dist/release-pins.d.ts +7 -0
  174. package/dist/release-pins.d.ts.map +1 -0
  175. package/dist/release-pins.js +27 -0
  176. package/dist/release-pins.js.map +1 -0
  177. package/dist/release-public-key.d.ts +8 -0
  178. package/dist/release-public-key.d.ts.map +1 -0
  179. package/dist/release-public-key.js +13 -0
  180. package/dist/release-public-key.js.map +1 -0
  181. package/dist/runtime-routes.d.ts +34 -0
  182. package/dist/runtime-routes.d.ts.map +1 -0
  183. package/dist/runtime-routes.js +252 -0
  184. package/dist/runtime-routes.js.map +1 -0
  185. package/dist/schema-ast-v2.d.ts +127 -0
  186. package/dist/schema-ast-v2.d.ts.map +1 -0
  187. package/dist/schema-ast-v2.js +226 -0
  188. package/dist/schema-ast-v2.js.map +1 -0
  189. package/dist/scripts/postinstall.d.ts +5 -6
  190. package/dist/scripts/postinstall.d.ts.map +1 -1
  191. package/dist/scripts/postinstall.js +36 -20
  192. package/dist/scripts/postinstall.js.map +1 -1
  193. package/dist/self-host-compose.d.ts +22 -0
  194. package/dist/self-host-compose.d.ts.map +1 -0
  195. package/dist/self-host-compose.js +347 -0
  196. package/dist/self-host-compose.js.map +1 -0
  197. package/dist/storage-provision.d.ts +24 -0
  198. package/dist/storage-provision.d.ts.map +1 -0
  199. package/dist/storage-provision.js +44 -0
  200. package/dist/storage-provision.js.map +1 -0
  201. package/dist/studio-admin-roles.d.ts +7 -0
  202. package/dist/studio-admin-roles.d.ts.map +1 -0
  203. package/dist/studio-admin-roles.js +14 -0
  204. package/dist/studio-admin-roles.js.map +1 -0
  205. package/dist/studio-dev-server.d.ts +22 -0
  206. package/dist/studio-dev-server.d.ts.map +1 -0
  207. package/dist/studio-dev-server.js +28 -0
  208. package/dist/studio-dev-server.js.map +1 -0
  209. package/dist/systemd.d.ts +26 -0
  210. package/dist/systemd.d.ts.map +1 -0
  211. package/dist/systemd.js +102 -0
  212. package/dist/systemd.js.map +1 -0
  213. package/dist/tsx-runner.d.ts.map +1 -1
  214. package/dist/tsx-runner.js +9 -2
  215. package/dist/tsx-runner.js.map +1 -1
  216. package/dist/type-extractor.d.ts +4 -0
  217. package/dist/type-extractor.d.ts.map +1 -0
  218. package/dist/type-extractor.js +1213 -0
  219. package/dist/type-extractor.js.map +1 -0
  220. package/dist/type-resolver.d.ts +33 -0
  221. package/dist/type-resolver.d.ts.map +1 -0
  222. package/dist/type-resolver.js +338 -0
  223. package/dist/type-resolver.js.map +1 -0
  224. package/package.json +4 -3
  225. package/releases/deno/VERSION +1 -0
  226. package/scripts/mirror-deno-release.sh +76 -0
  227. package/src/TYPE-RESOLUTION.md +294 -0
  228. package/src/app/proxy-dev-app.ts +67 -0
  229. package/src/app-config.ts +128 -0
  230. package/src/augmentation-generator.ts +126 -0
  231. package/src/binary-cache.ts +822 -0
  232. package/src/cli.ts +13 -8
  233. package/src/commands/admin.ts +4 -3
  234. package/src/commands/app.ts +67 -231
  235. package/src/commands/cache.ts +117 -0
  236. package/src/commands/cloud.ts +63 -64
  237. package/src/commands/db.ts +54 -63
  238. package/src/commands/deploy.ts +96 -62
  239. package/src/commands/dev.ts +933 -405
  240. package/src/commands/diff.ts +31 -29
  241. package/src/commands/engine.ts +13 -116
  242. package/src/commands/functions.ts +97 -115
  243. package/src/commands/generate.ts +23 -10
  244. package/src/commands/init.ts +149 -414
  245. package/src/commands/migrate-from-v1.ts +131 -0
  246. package/src/commands/migrate.ts +27 -23
  247. package/src/commands/pg.ts +133 -0
  248. package/src/commands/pull.ts +6 -85
  249. package/src/commands/push.ts +161 -56
  250. package/src/commands/seed.ts +54 -12
  251. package/src/commands/self-host.ts +312 -880
  252. package/src/commands/self-update.ts +45 -0
  253. package/src/commands/status.ts +4 -3
  254. package/src/commands/types.ts +76 -0
  255. package/src/commands/update.ts +109 -0
  256. package/src/components.ts +6 -0
  257. package/src/config.ts +127 -94
  258. package/src/dev-compose.ts +455 -0
  259. package/src/diff-output.ts +12 -0
  260. package/src/docker-postgres.ts +295 -0
  261. package/src/engine-client.ts +236 -0
  262. package/src/ensure-binary.ts +28 -0
  263. package/src/functions-router-gen.ts +224 -0
  264. package/src/index.ts +4 -12
  265. package/src/kong-config.ts +93 -0
  266. package/src/local-gateway.ts +9 -0
  267. package/src/local-storage.ts +14 -0
  268. package/src/pgbouncer-userlist.ts +15 -0
  269. package/src/postgres-ctl.ts +171 -0
  270. package/src/process-manager.ts +168 -0
  271. package/src/project-config.ts +386 -0
  272. package/src/pull-utils.ts +24 -0
  273. package/src/release-pins.ts +31 -0
  274. package/src/release-public-key.ts +12 -0
  275. package/src/runtime-routes.ts +291 -0
  276. package/src/schema-ast-v2.ts +324 -0
  277. package/src/scripts/postinstall.ts +36 -25
  278. package/src/self-host-compose.ts +389 -0
  279. package/src/storage-provision.ts +58 -0
  280. package/src/studio-admin-roles.ts +16 -0
  281. package/src/studio-dev-server.ts +53 -0
  282. package/src/systemd.ts +137 -0
  283. package/src/tsx-runner.ts +11 -1
  284. package/src/type-extractor.ts +1479 -0
  285. package/src/type-resolver.ts +457 -0
  286. package/tests/app-command.test.ts +54 -0
  287. package/tests/augmentation-generator.test.ts +59 -0
  288. package/tests/binary-cache-cloud-overrides.test.ts +123 -0
  289. package/tests/cached-artifact-format.test.ts +84 -0
  290. package/tests/cli-help.test.ts +40 -14
  291. package/tests/config.test.ts +171 -37
  292. package/tests/docker-postgres.test.ts +39 -0
  293. package/tests/engine-distribution.test.ts +3 -3
  294. package/tests/ensure-binary.test.ts +59 -0
  295. package/tests/init.test.ts +28 -86
  296. package/tests/migrate-from-v1.test.ts +29 -0
  297. package/tests/normalize-admin-config.test.ts +48 -0
  298. package/tests/pg-spawn-env.test.ts +18 -0
  299. package/tests/postgres-archive-tag.test.ts +9 -0
  300. package/tests/proxy-dev-app.test.ts +33 -0
  301. package/tests/pull-utils.test.ts +36 -1
  302. package/tests/release-pins.test.ts +28 -0
  303. package/tests/runtime-contract.test.ts +351 -0
  304. package/tests/seed-discover.test.ts +31 -0
  305. package/tests/studio-admin-roles.test.ts +27 -0
  306. package/tests/tsconfig.json +9 -0
  307. package/tests/type-extractor.test.ts +985 -0
  308. package/tests/type-resolver.test.ts +59 -0
  309. package/tsconfig.tsbuildinfo +1 -1
  310. package/vitest.config.ts +12 -0
  311. package/dist/engine/cache.d.ts +0 -37
  312. package/dist/engine/cache.d.ts.map +0 -1
  313. package/dist/engine/cache.js +0 -121
  314. package/dist/engine/cache.js.map +0 -1
  315. package/dist/engine/download.d.ts +0 -19
  316. package/dist/engine/download.d.ts.map +0 -1
  317. package/dist/engine/download.js +0 -108
  318. package/dist/engine/download.js.map +0 -1
  319. package/dist/engine/platform.d.ts +0 -24
  320. package/dist/engine/platform.d.ts.map +0 -1
  321. package/dist/engine/platform.js +0 -50
  322. package/dist/engine/platform.js.map +0 -1
  323. package/dist/engine/resolve.d.ts +0 -37
  324. package/dist/engine/resolve.d.ts.map +0 -1
  325. package/dist/engine/resolve.js +0 -133
  326. package/dist/engine/resolve.js.map +0 -1
  327. package/dist/engine/update-notify.d.ts +0 -11
  328. package/dist/engine/update-notify.d.ts.map +0 -1
  329. package/dist/engine/update-notify.js +0 -43
  330. package/dist/engine/update-notify.js.map +0 -1
  331. package/dist/engine/verify.d.ts +0 -50
  332. package/dist/engine/verify.d.ts.map +0 -1
  333. package/dist/engine/verify.js +0 -161
  334. package/dist/engine/verify.js.map +0 -1
  335. package/dist/engine-version.d.ts +0 -35
  336. package/dist/engine-version.d.ts.map +0 -1
  337. package/dist/engine-version.js +0 -35
  338. package/dist/engine-version.js.map +0 -1
  339. package/dist/engine.d.ts +0 -34
  340. package/dist/engine.d.ts.map +0 -1
  341. package/dist/engine.js +0 -76
  342. package/dist/engine.js.map +0 -1
  343. package/src/engine/cache.ts +0 -135
  344. package/src/engine/download.ts +0 -143
  345. package/src/engine/platform.ts +0 -66
  346. package/src/engine/resolve.ts +0 -197
  347. package/src/engine/update-notify.ts +0 -50
  348. package/src/engine/verify.ts +0 -206
  349. package/src/engine-version.ts +0 -39
  350. package/src/engine.ts +0 -99
@@ -1,14 +1,27 @@
1
- import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
- import { resolve, join } from "node:path";
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { resolve, join, dirname } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { fetchAllLatestVersions } from "../binary-cache.js";
3
5
  export { scaffold };
4
- // ─── Markers used by `supatype app add / remove` ─────────────────────────────
6
+ // ─── Markers used by `supatype app add / remove` (app.ts) ────────────────────
5
7
  export const APP_COMPOSE_MARKER = " # ─── App service (run: supatype app add) ───";
6
8
  export const KONG_APP_MARKER = " # ─── App fallback route (run: supatype app add) ───";
9
+ const CLI_PACKAGE_JSON = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "package.json");
10
+ function cliPackageVersion() {
11
+ try {
12
+ const pkg = JSON.parse(readFileSync(CLI_PACKAGE_JSON, "utf8"));
13
+ return pkg.version ?? "0.1.0";
14
+ }
15
+ catch {
16
+ return "0.1.0";
17
+ }
18
+ }
7
19
  export function registerInit(program) {
8
20
  program
9
21
  .command("init [name]")
10
22
  .description("Scaffold a new Supatype project")
11
- .action((name) => {
23
+ .option("--mode <mode>", "Server mode in supatype.config.ts: dev (default) | standalone (native ACME — not Compose self-host)", "dev")
24
+ .action(async (name, opts = { mode: "dev" }) => {
12
25
  const projectName = name ?? "my-project";
13
26
  const dir = name ? resolve(process.cwd(), name) : process.cwd();
14
27
  if (name && existsSync(dir)) {
@@ -17,83 +30,150 @@ export function registerInit(program) {
17
30
  }
18
31
  if (name)
19
32
  mkdirSync(dir, { recursive: true });
20
- scaffold(dir, projectName);
33
+ let versions = {};
34
+ try {
35
+ console.log("Fetching latest component versions from CDN...");
36
+ versions = await fetchAllLatestVersions();
37
+ }
38
+ catch {
39
+ // Non-fatal: scaffold with placeholder versions; user can run `supatype update`.
40
+ }
41
+ scaffold(dir, projectName, opts.mode, versions);
21
42
  console.log(`\nSupatype project ready${name ? ` in ${name}/` : ""}.\n`);
22
43
  console.log("Next steps:");
23
44
  if (name)
24
45
  console.log(` cd ${name}`);
25
- console.log(" pnpm install");
26
- console.log(" supatype keys # generate ANON_KEY + SERVICE_ROLE_KEY, add to .env");
27
- console.log(" supatype dev # start local Postgres + PgBouncer + GoTrue + PostgREST");
28
- console.log(" supatype push # apply schema + generate types\n");
46
+ console.log(" npm install");
47
+ console.log(" supatype keys");
48
+ console.log(" supatype dev # native Postgres + supatype-server");
49
+ console.log(" supatype push # apply schema + generate types");
50
+ console.log("\nStatic frontend (self-host):");
51
+ console.log(" supatype app add --static ./public");
52
+ console.log(" npm run build # write files into public/");
53
+ console.log(" supatype self-host compose up -d");
54
+ if (opts.mode === "standalone") {
55
+ console.log("\nStandalone (native TLS with ACME):");
56
+ console.log(" Edit supatype.config.ts — set server.domain");
57
+ console.log(" supatype dev # or run supatype-server with your TLS setup");
58
+ }
59
+ console.log();
29
60
  });
30
61
  }
31
- function scaffold(dir, projectName) {
62
+ function scaffold(dir, projectName, mode = "dev", versions = {}) {
32
63
  const write = (rel, content) => {
33
64
  const full = join(dir, rel);
34
65
  mkdirSync(resolve(full, ".."), { recursive: true });
35
66
  writeFileSync(full, content, "utf8");
36
67
  console.log(` created ${rel}`);
37
68
  };
38
- write("supatype.config.ts", configTemplate(projectName));
69
+ const pkgPath = join(dir, "package.json");
70
+ if (!existsSync(pkgPath)) {
71
+ write("package.json", packageJsonTemplate(projectName, cliPackageVersion()));
72
+ }
73
+ else {
74
+ console.log(" skipped package.json (already exists)");
75
+ }
76
+ write("supatype.config.ts", tsConfigTemplate(projectName, mode, versions));
39
77
  write("schema/index.ts", schemaTemplate());
40
78
  write(".env", envTemplate(projectName));
41
- write("docker-compose.yml", dockerComposeTemplate(projectName));
42
- write(".supatype/kong.yml", kongTemplate());
43
- write(".supatype/pgbouncer.ini", pgbouncerIniTemplate());
44
- write(".supatype/userlist.txt", pgbouncerUserlistTemplate());
45
79
  write("seed.ts", seedTemplate(projectName));
80
+ write("seeds/.gitkeep", "");
81
+ write("public/.gitkeep", "");
46
82
  write(".gitignore", gitignoreTemplate());
47
83
  }
48
84
  // ─── Templates ───────────────────────────────────────────────────────────────
49
- function configTemplate(projectName) {
85
+ function packageJsonTemplate(projectName, cliVersion) {
86
+ return `{
87
+ "name": "${projectName}",
88
+ "private": true,
89
+ "type": "module",
90
+ "scripts": {
91
+ "dev": "supatype dev",
92
+ "push": "supatype push",
93
+ "seed": "tsx seed.ts"
94
+ },
95
+ "dependencies": {
96
+ "@supatype/cli": "^${cliVersion}",
97
+ "@supatype/types": "^${cliVersion}"
98
+ },
99
+ "devDependencies": {
100
+ "tsx": "^4.19.2",
101
+ "typescript": "^5"
102
+ }
103
+ }
104
+ `;
105
+ }
106
+ function tsConfigTemplate(projectName, mode, versions = {}) {
107
+ const domainField = mode === "standalone"
108
+ ? ` domain: "", // e.g. "api.example.com" for ACME TLS\n`
109
+ : "";
110
+ const v = (key, fallback) => versions[key] ?? fallback;
50
111
  return `import { defineConfig } from "@supatype/cli"
51
112
 
52
113
  export default defineConfig({
53
- connection:
54
- process.env["DATABASE_URL"] ??
55
- "postgresql://postgres:postgres@localhost:5432/${projectName}",
56
- schema: "./schema/index.ts",
57
- output: {
58
- types: "./src/types/supatype.d.ts",
59
- client: "./src/lib/supatype.ts",
114
+ project: { name: "${projectName}" },
115
+ provider: "native",
116
+ // provider: "docker" // full self-host Compose stack (Kong :18473)
117
+ database: {
118
+ provider: "native",
119
+ },
120
+ server: {
121
+ mode: "${mode}",
122
+ port: 54321,
123
+ ${domainField} },
124
+ app: {
125
+ mode: "none",
126
+ // mode: "static", static_dir: "./public", // supatype app add --static ./public
127
+ // mode: "proxy", upstream: "http://localhost:3000", start: "dev",
128
+ // vite_dev_url: "http://127.0.0.1:5173", // dev HMR at /_vite (when using a separate Vite server)
129
+ },
130
+ versions: {
131
+ engine: "${v("engine", "latest")}",
132
+ server: "${v("server", "latest")}",
133
+ postgres: "${v("postgres", "latest")}",
134
+ deno: "${v("deno", "latest")}",
60
135
  },
61
- // Self-hosted production deployment (run: supatype self-host setup)
62
- // selfHost: {
63
- // domain: "${projectName}.example.com",
64
- // app: {
65
- // dockerfile: "./Dockerfile",
66
- // port: 3000,
67
- // },
68
- // ssl: {
69
- // provider: "caddy",
70
- // email: "you@example.com",
71
- // },
72
- // },
136
+ email: { provider: "console" },
137
+ storage: { provider: "local", local_path: ".supatype/storage" },
138
+ schema: { path: "schema/index.ts", pg_schema: "public" },
139
+ // Self-host production: supatype self-host compose (Docker only). Standalone + domain = native ACME dev.
73
140
  })
74
141
  `;
75
142
  }
76
143
  function schemaTemplate() {
77
- return `import { model, field, access } from "@supatype/schema"
78
-
79
- export const User = model("user", {
80
- fields: {
81
- id: field.uuid({ required: true, default: { kind: "genRandomUuid" } }),
82
- email: field.email({ required: true, unique: true }),
83
- name: field.text({ required: true }),
84
- },
144
+ return `import type { Model, Public, Owner, Role, SupatypeAuthUserId, Unique, Email, UUID } from "@supatype/types"
145
+
146
+ export type User = Model<{
147
+ id: SupatypeAuthUserId
148
+ email: Unique<Email>
149
+ name: string
150
+ created_at: string
151
+ updated_at: string
152
+ }, {
85
153
  access: {
86
- read: access.public(),
87
- create: access.public(),
88
- update: access.owner("id"),
89
- delete: access.role("admin"),
90
- },
91
- options: { timestamps: true },
92
- })
154
+ read: Public
155
+ create: Public
156
+ update: Owner<"id">
157
+ delete: Role<"admin">
158
+ }
159
+ }>
160
+
161
+ /** Example singleton global — editable in Studio under Settings. */
162
+ export type SiteSettings = Model<{
163
+ id: UUID
164
+ site_name: string
165
+ }, {
166
+ singleton: true
167
+ access: {
168
+ read: Public
169
+ update: Role<"admin">
170
+ }
171
+ }>
93
172
  `;
94
173
  }
95
174
  function envTemplate(projectName) {
96
- return `DATABASE_URL=postgresql://postgres:postgres@localhost:5432/${projectName}
175
+ return `DATABASE_URL=postgresql://supatype_admin:postgres@localhost:5432/${projectName}
176
+ POSTGRES_USER=supatype_admin
97
177
  POSTGRES_PASSWORD=postgres
98
178
  POSTGRES_DB=${projectName}
99
179
 
@@ -116,365 +196,8 @@ SMTP_SENDER_NAME=${projectName}
116
196
  S3_ENDPOINT=http://localhost:9000
117
197
  S3_ACCESS_KEY=supatype
118
198
  S3_SECRET_KEY=supatype-secret
119
- `;
120
- }
121
- function dockerComposeTemplate(projectName) {
122
- return `services:
123
- db:
124
- image: supatype/postgres:17-latest
125
- environment:
126
- POSTGRES_PASSWORD: \${POSTGRES_PASSWORD:-postgres}
127
- POSTGRES_DB: \${POSTGRES_DB:-${projectName}}
128
- ports:
129
- - "5432:5432"
130
- volumes:
131
- - db-data:/var/lib/postgresql/data
132
- healthcheck:
133
- test: ["CMD-SHELL", "pg_isready -U postgres"]
134
- interval: 5s
135
- timeout: 5s
136
- retries: 20
137
-
138
- pgbouncer:
139
- image: pgbouncer/pgbouncer:latest
140
- volumes:
141
- - ./.supatype/pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini:ro
142
- - ./.supatype/userlist.txt:/etc/pgbouncer/userlist.txt:ro
143
- depends_on:
144
- db:
145
- condition: service_healthy
146
- healthcheck:
147
- test: ["CMD", "pg_isready", "-h", "localhost", "-p", "6432", "-U", "postgres"]
148
- interval: 5s
149
- timeout: 5s
150
- retries: 10
151
-
152
- gotrue:
153
- image: supatype/auth:v1.0.0
154
- environment:
155
- GOTRUE_API_HOST: 0.0.0.0
156
- GOTRUE_API_PORT: 9999
157
- GOTRUE_DB_DRIVER: postgres
158
- GOTRUE_DB_DATABASE_URL: "postgres://postgres:\${POSTGRES_PASSWORD:-postgres}@pgbouncer:6432/\${POSTGRES_DB:-${projectName}}?search_path=auth"
159
- GOTRUE_SITE_URL: \${SITE_URL:-http://localhost:3000}
160
- GOTRUE_JWT_SECRET: \${JWT_SECRET:-super-secret-jwt-token-change-in-production}
161
- GOTRUE_JWT_EXP: 3600
162
- GOTRUE_JWT_AUD: authenticated
163
- GOTRUE_JWT_DEFAULT_GROUP_NAME: authenticated
164
- GOTRUE_JWT_ADMIN_ROLES: service_role
165
- # Email autoconfirm — set to false and configure SMTP for production
166
- GOTRUE_MAILER_AUTOCONFIRM: \${GOTRUE_MAILER_AUTOCONFIRM:-true}
167
- GOTRUE_SMTP_HOST: \${SMTP_HOST:-}
168
- GOTRUE_SMTP_PORT: \${SMTP_PORT:-587}
169
- GOTRUE_SMTP_USER: \${SMTP_USER:-}
170
- GOTRUE_SMTP_PASS: \${SMTP_PASS:-}
171
- GOTRUE_SMTP_SENDER_NAME: \${SMTP_SENDER_NAME:-${projectName}}
172
- GOTRUE_MAILER_URLPATHS_CONFIRMATION: /auth/v1/verify
173
- GOTRUE_MAILER_URLPATHS_RECOVERY: /auth/v1/verify
174
- GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE: /auth/v1/verify
175
- GOTRUE_MAILER_URLPATHS_INVITE: /auth/v1/verify
176
- GOTRUE_DISABLE_SIGNUP: \${DISABLE_SIGNUP:-false}
177
- ports:
178
- - "9999:9999"
179
- depends_on:
180
- pgbouncer:
181
- condition: service_healthy
182
-
183
- postgrest:
184
- image: postgrest/postgrest:v12.2.8
185
- environment:
186
- PGRST_DB_URI: postgresql://authenticator:\${POSTGRES_PASSWORD:-postgres}@pgbouncer:6432/\${POSTGRES_DB:-${projectName}}
187
- PGRST_DB_SCHEMA: public
188
- PGRST_DB_ANON_ROLE: anon
189
- PGRST_JWT_SECRET: \${JWT_SECRET:-super-secret-jwt-token-change-in-production}
190
- PGRST_DB_EXTRA_SEARCH_PATH: public,extensions
191
- PGRST_DB_POOL: 3
192
- ports:
193
- - "3000:3000"
194
- depends_on:
195
- pgbouncer:
196
- condition: service_healthy
197
199
 
198
- minio:
199
- image: minio/minio:RELEASE.2024-11-07T00-52-20Z
200
- command: server /data --console-address ":9001"
201
- environment:
202
- MINIO_ROOT_USER: supatype
203
- MINIO_ROOT_PASSWORD: supatype-secret
204
- ports:
205
- - "9000:9000"
206
- - "9001:9001"
207
- volumes:
208
- - minio-data:/data
209
- healthcheck:
210
- test: ["CMD", "mc", "ready", "local"]
211
- interval: 5s
212
- timeout: 5s
213
- retries: 10
214
-
215
- storage:
216
- image: supatype/storage:latest
217
- environment:
218
- PORT: 5000
219
- DATABASE_URL: "postgresql://postgres:\${POSTGRES_PASSWORD:-postgres}@pgbouncer:6432/\${POSTGRES_DB:-${projectName}}"
220
- JWT_SECRET: \${JWT_SECRET:-super-secret-jwt-token-change-in-production}
221
- S3_ENDPOINT: http://minio:9000
222
- S3_REGION: us-east-1
223
- S3_ACCESS_KEY: supatype
224
- S3_SECRET_KEY: supatype-secret
225
- S3_FORCE_PATH_STYLE: "true"
226
- ports:
227
- - "5000:5000"
228
- depends_on:
229
- pgbouncer:
230
- condition: service_healthy
231
- minio:
232
- condition: service_healthy
233
-
234
- realtime:
235
- image: supatype/realtime:latest
236
- environment:
237
- PORT: 4000
238
- DATABASE_URL: "postgresql://postgres:\${POSTGRES_PASSWORD:-postgres}@pgbouncer:6432/\${POSTGRES_DB:-${projectName}}"
239
- JWT_SECRET: \${JWT_SECRET:-super-secret-jwt-token-change-in-production}
240
- REPLICATION_MODE: RLS
241
- REPLICATION_POLL_INTERVAL: 100
242
- SECURE_CHANNELS: "true"
243
- SLOT_NAME: realtime_slot
244
- ports:
245
- - "4000:4000"
246
- depends_on:
247
- pgbouncer:
248
- condition: service_healthy
249
-
250
- studio:
251
- image: supatype/studio:latest
252
- ports:
253
- - "3002:3002"
254
-
255
- kong:
256
- image: kong:3.6
257
- environment:
258
- KONG_DATABASE: "off"
259
- KONG_DECLARATIVE_CONFIG: /etc/kong/kong.yml
260
- KONG_PROXY_ACCESS_LOG: /dev/stdout
261
- KONG_ADMIN_ACCESS_LOG: /dev/stdout
262
- KONG_PROXY_ERROR_LOG: /dev/stderr
263
- KONG_ADMIN_ERROR_LOG: /dev/stderr
264
- volumes:
265
- - ./.supatype/kong.yml:/etc/kong/kong.yml:ro
266
- ports:
267
- - "8000:8000"
268
- depends_on:
269
- - postgrest
270
- - gotrue
271
- - storage
272
- - realtime
273
- - studio
274
-
275
- ${APP_COMPOSE_MARKER}
276
- # app:
277
- # build:
278
- # context: .
279
- # dockerfile: ./Dockerfile
280
- # ports:
281
- # - "3000:3000"
282
- # environment:
283
- # SUPATYPE_URL: http://kong:8000
284
- # SUPATYPE_ANON_KEY: \${ANON_KEY}
285
- # SUPATYPE_SERVICE_ROLE_KEY: \${SERVICE_ROLE_KEY}
286
- # volumes:
287
- # - .:/app
288
- # - /app/node_modules
289
- # depends_on:
290
- # kong:
291
- # condition: service_healthy
292
-
293
- volumes:
294
- db-data:
295
- minio-data:
296
- `;
297
- }
298
- function kongTemplate() {
299
- return `_format_version: "3.0"
300
-
301
- services:
302
- - name: rest-v1
303
- url: http://postgrest:3000
304
- routes:
305
- - name: rest-v1-all
306
- strip_path: true
307
- paths:
308
- - /rest/v1/
309
- plugins:
310
- - name: cors
311
- config:
312
- origins:
313
- - "*"
314
- methods:
315
- - GET
316
- - POST
317
- - PATCH
318
- - DELETE
319
- - OPTIONS
320
- headers:
321
- - Authorization
322
- - Content-Type
323
- - apikey
324
- - Prefer
325
- credentials: true
326
-
327
- - name: graphql-v1
328
- url: http://postgrest:3000/rpc/graphql
329
- routes:
330
- - name: graphql-v1-all
331
- strip_path: true
332
- paths:
333
- - /graphql/v1
334
- plugins:
335
- - name: cors
336
- config:
337
- origins:
338
- - "*"
339
- methods:
340
- - GET
341
- - POST
342
- - OPTIONS
343
- headers:
344
- - Authorization
345
- - Content-Type
346
- - apikey
347
- credentials: true
348
-
349
- - name: auth-v1
350
- url: http://gotrue:9999
351
- routes:
352
- - name: auth-v1-all
353
- strip_path: true
354
- paths:
355
- - /auth/v1/
356
- plugins:
357
- - name: cors
358
- config:
359
- origins:
360
- - "*"
361
- methods:
362
- - GET
363
- - POST
364
- - PUT
365
- - DELETE
366
- - OPTIONS
367
- headers:
368
- - Authorization
369
- - Content-Type
370
- - apikey
371
- credentials: true
372
-
373
- - name: storage-v1
374
- url: http://storage:5000
375
- routes:
376
- - name: storage-v1-all
377
- strip_path: true
378
- paths:
379
- - /storage/v1/
380
- plugins:
381
- - name: cors
382
- config:
383
- origins:
384
- - "*"
385
- methods:
386
- - GET
387
- - POST
388
- - PUT
389
- - DELETE
390
- - OPTIONS
391
- headers:
392
- - Authorization
393
- - Content-Type
394
- - apikey
395
- - x-upsert
396
- credentials: true
397
-
398
- - name: realtime-v1
399
- url: http://realtime:4000
400
- routes:
401
- - name: realtime-v1-all
402
- strip_path: true
403
- paths:
404
- - /realtime/v1/
405
- protocols:
406
- - http
407
- - https
408
- - ws
409
- - wss
410
- plugins:
411
- - name: cors
412
- config:
413
- origins:
414
- - "*"
415
- methods:
416
- - GET
417
- - OPTIONS
418
- headers:
419
- - Authorization
420
- - Content-Type
421
- - apikey
422
- credentials: true
423
-
424
- - name: studio
425
- url: http://studio:3002
426
- routes:
427
- - name: studio-all
428
- strip_path: true
429
- paths:
430
- - /studio/
431
- plugins:
432
- - name: cors
433
- config:
434
- origins:
435
- - "*"
436
- methods:
437
- - GET
438
- - POST
439
- - OPTIONS
440
- headers:
441
- - Authorization
442
- - Content-Type
443
- credentials: true
444
-
445
- ${KONG_APP_MARKER}
446
- # - name: app
447
- # url: http://app:3000
448
- # routes:
449
- # - name: app-root
450
- # paths:
451
- # - /
452
- # strip_path: false
453
- `;
454
- }
455
- function pgbouncerIniTemplate() {
456
- return `[databases]
457
- # Forward all databases to Postgres (Docker service name: db)
458
- * = host=db port=5432
459
-
460
- [pgbouncer]
461
- listen_addr = 0.0.0.0
462
- listen_port = 6432
463
- # trust = accept any client on the internal Docker network (safe for local dev)
464
- auth_type = trust
465
- auth_file = /etc/pgbouncer/userlist.txt
466
- pool_mode = transaction
467
- default_pool_size = 20
468
- max_db_connections = 60
469
- max_client_conn = 100
470
- # Required for PostgREST compatibility
471
- server_reset_query = DEALLOCATE ALL
472
- ignore_startup_parameters = extra_float_digits
473
- `;
474
- }
475
- function pgbouncerUserlistTemplate() {
476
- return `# PgBouncer userlist — auth_type = trust for local dev, so passwords here are unused.
477
- # For production, this file is regenerated by: supatype self-host setup
200
+ # Self-host compose uses the same DATABASE_URL when Postgres is published on localhost:5432
478
201
  `;
479
202
  }
480
203
  function seedTemplate(projectName) {
@@ -483,7 +206,7 @@ function seedTemplate(projectName) {
483
206
  // Connect using DATABASE_URL from environment
484
207
  const db = sql(
485
208
  process.env["DATABASE_URL"] ??
486
- "postgresql://postgres:postgres@localhost:5432/${projectName}",
209
+ "postgresql://supatype_admin:postgres@localhost:5432/${projectName}",
487
210
  )
488
211
 
489
212
  async function seed() {
@@ -507,6 +230,10 @@ function gitignoreTemplate() {
507
230
  node_modules/
508
231
  dist/
509
232
  .supatype/engine/
233
+ # Local overrides — never commit
234
+ supatype.local.config.ts
235
+ supatype.local.config.js
236
+ supatype.local.config.mjs
510
237
  # Generated by supatype push
511
238
  src/types/supatype.d.ts
512
239
  src/lib/supatype.ts
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Command } from "commander";
2
+ import ts from "typescript";
3
+ export declare function registerMigrateFromV1(program: Command): void;
4
+ export declare function codemodSource(sf: ts.SourceFile): string;
5
+ //# sourceMappingURL=migrate-from-v1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-from-v1.d.ts","sourceRoot":"","sources":["../../src/commands/migrate-from-v1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAAE,MAAM,YAAY,CAAA;AAI3B,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B5D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CA2BvD"}