@supatype/cli 0.1.0-alpha.10

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 (416) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test.log +221 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/assets/supatype-logo-wordmark.ascii.txt +6 -0
  5. package/bin/dev-entry.ts +2 -0
  6. package/bin/supatype.js +5 -0
  7. package/dist/app/framework.d.ts +44 -0
  8. package/dist/app/framework.d.ts.map +1 -0
  9. package/dist/app/framework.js +200 -0
  10. package/dist/app/framework.js.map +1 -0
  11. package/dist/app/proxy-dev-app.d.ts +13 -0
  12. package/dist/app/proxy-dev-app.d.ts.map +1 -0
  13. package/dist/app/proxy-dev-app.js +54 -0
  14. package/dist/app/proxy-dev-app.js.map +1 -0
  15. package/dist/app-config.d.ts +7 -0
  16. package/dist/app-config.d.ts.map +1 -0
  17. package/dist/app-config.js +113 -0
  18. package/dist/app-config.js.map +1 -0
  19. package/dist/assets/supatype-logo-wordmark.ascii.txt +6 -0
  20. package/dist/augmentation-generator.d.ts +2 -0
  21. package/dist/augmentation-generator.d.ts.map +1 -0
  22. package/dist/augmentation-generator.js +111 -0
  23. package/dist/augmentation-generator.js.map +1 -0
  24. package/dist/binary-cache.d.ts +98 -0
  25. package/dist/binary-cache.d.ts.map +1 -0
  26. package/dist/binary-cache.js +687 -0
  27. package/dist/binary-cache.js.map +1 -0
  28. package/dist/cli.d.ts +2 -0
  29. package/dist/cli.d.ts.map +1 -0
  30. package/dist/cli.js +61 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/commands/admin.d.ts +4 -0
  33. package/dist/commands/admin.d.ts.map +1 -0
  34. package/dist/commands/admin.js +271 -0
  35. package/dist/commands/admin.js.map +1 -0
  36. package/dist/commands/app.d.ts +3 -0
  37. package/dist/commands/app.d.ts.map +1 -0
  38. package/dist/commands/app.js +82 -0
  39. package/dist/commands/app.js.map +1 -0
  40. package/dist/commands/cache.d.ts +6 -0
  41. package/dist/commands/cache.d.ts.map +1 -0
  42. package/dist/commands/cache.js +105 -0
  43. package/dist/commands/cache.js.map +1 -0
  44. package/dist/commands/cloud.d.ts +23 -0
  45. package/dist/commands/cloud.d.ts.map +1 -0
  46. package/dist/commands/cloud.js +254 -0
  47. package/dist/commands/cloud.js.map +1 -0
  48. package/dist/commands/db.d.ts +8 -0
  49. package/dist/commands/db.d.ts.map +1 -0
  50. package/dist/commands/db.js +116 -0
  51. package/dist/commands/db.js.map +1 -0
  52. package/dist/commands/deploy-types.d.ts +14 -0
  53. package/dist/commands/deploy-types.d.ts.map +1 -0
  54. package/dist/commands/deploy-types.js +38 -0
  55. package/dist/commands/deploy-types.js.map +1 -0
  56. package/dist/commands/deploy.d.ts +15 -0
  57. package/dist/commands/deploy.d.ts.map +1 -0
  58. package/dist/commands/deploy.js +322 -0
  59. package/dist/commands/deploy.js.map +1 -0
  60. package/dist/commands/dev.d.ts +14 -0
  61. package/dist/commands/dev.d.ts.map +1 -0
  62. package/dist/commands/dev.js +806 -0
  63. package/dist/commands/dev.js.map +1 -0
  64. package/dist/commands/diff.d.ts +3 -0
  65. package/dist/commands/diff.d.ts.map +1 -0
  66. package/dist/commands/diff.js +54 -0
  67. package/dist/commands/diff.js.map +1 -0
  68. package/dist/commands/engine.d.ts +7 -0
  69. package/dist/commands/engine.d.ts.map +1 -0
  70. package/dist/commands/engine.js +27 -0
  71. package/dist/commands/engine.js.map +1 -0
  72. package/dist/commands/functions.d.ts +3 -0
  73. package/dist/commands/functions.d.ts.map +1 -0
  74. package/dist/commands/functions.js +749 -0
  75. package/dist/commands/functions.js.map +1 -0
  76. package/dist/commands/generate.d.ts +3 -0
  77. package/dist/commands/generate.d.ts.map +1 -0
  78. package/dist/commands/generate.js +38 -0
  79. package/dist/commands/generate.js.map +1 -0
  80. package/dist/commands/init.d.ts +7 -0
  81. package/dist/commands/init.d.ts.map +1 -0
  82. package/dist/commands/init.js +228 -0
  83. package/dist/commands/init.js.map +1 -0
  84. package/dist/commands/keys.d.ts +4 -0
  85. package/dist/commands/keys.d.ts.map +1 -0
  86. package/dist/commands/keys.js +57 -0
  87. package/dist/commands/keys.js.map +1 -0
  88. package/dist/commands/logs.d.ts +6 -0
  89. package/dist/commands/logs.d.ts.map +1 -0
  90. package/dist/commands/logs.js +52 -0
  91. package/dist/commands/logs.js.map +1 -0
  92. package/dist/commands/migrate-from-v1.d.ts +5 -0
  93. package/dist/commands/migrate-from-v1.d.ts.map +1 -0
  94. package/dist/commands/migrate-from-v1.js +125 -0
  95. package/dist/commands/migrate-from-v1.js.map +1 -0
  96. package/dist/commands/migrate.d.ts +3 -0
  97. package/dist/commands/migrate.d.ts.map +1 -0
  98. package/dist/commands/migrate.js +75 -0
  99. package/dist/commands/migrate.js.map +1 -0
  100. package/dist/commands/pg.d.ts +8 -0
  101. package/dist/commands/pg.d.ts.map +1 -0
  102. package/dist/commands/pg.js +102 -0
  103. package/dist/commands/pg.js.map +1 -0
  104. package/dist/commands/plugins.d.ts +3 -0
  105. package/dist/commands/plugins.d.ts.map +1 -0
  106. package/dist/commands/plugins.js +431 -0
  107. package/dist/commands/plugins.js.map +1 -0
  108. package/dist/commands/pull.d.ts +3 -0
  109. package/dist/commands/pull.d.ts.map +1 -0
  110. package/dist/commands/pull.js +12 -0
  111. package/dist/commands/pull.js.map +1 -0
  112. package/dist/commands/push.d.ts +3 -0
  113. package/dist/commands/push.d.ts.map +1 -0
  114. package/dist/commands/push.js +179 -0
  115. package/dist/commands/push.js.map +1 -0
  116. package/dist/commands/seed.d.ts +5 -0
  117. package/dist/commands/seed.d.ts.map +1 -0
  118. package/dist/commands/seed.js +55 -0
  119. package/dist/commands/seed.js.map +1 -0
  120. package/dist/commands/self-host.d.ts +9 -0
  121. package/dist/commands/self-host.d.ts.map +1 -0
  122. package/dist/commands/self-host.js +310 -0
  123. package/dist/commands/self-host.js.map +1 -0
  124. package/dist/commands/self-update.d.ts +9 -0
  125. package/dist/commands/self-update.d.ts.map +1 -0
  126. package/dist/commands/self-update.js +33 -0
  127. package/dist/commands/self-update.js.map +1 -0
  128. package/dist/commands/status.d.ts +6 -0
  129. package/dist/commands/status.d.ts.map +1 -0
  130. package/dist/commands/status.js +70 -0
  131. package/dist/commands/status.js.map +1 -0
  132. package/dist/commands/types.d.ts +3 -0
  133. package/dist/commands/types.d.ts.map +1 -0
  134. package/dist/commands/types.js +62 -0
  135. package/dist/commands/types.js.map +1 -0
  136. package/dist/commands/update.d.ts +7 -0
  137. package/dist/commands/update.d.ts.map +1 -0
  138. package/dist/commands/update.js +118 -0
  139. package/dist/commands/update.js.map +1 -0
  140. package/dist/components.d.ts +5 -0
  141. package/dist/components.d.ts.map +1 -0
  142. package/dist/components.js +3 -0
  143. package/dist/components.js.map +1 -0
  144. package/dist/config.d.ts +65 -0
  145. package/dist/config.d.ts.map +1 -0
  146. package/dist/config.js +134 -0
  147. package/dist/config.js.map +1 -0
  148. package/dist/dev-compose.d.ts +19 -0
  149. package/dist/dev-compose.d.ts.map +1 -0
  150. package/dist/dev-compose.js +468 -0
  151. package/dist/dev-compose.js.map +1 -0
  152. package/dist/dev-log-bus.d.ts +30 -0
  153. package/dist/dev-log-bus.d.ts.map +1 -0
  154. package/dist/dev-log-bus.js +87 -0
  155. package/dist/dev-log-bus.js.map +1 -0
  156. package/dist/dev-log-filter.d.ts +10 -0
  157. package/dist/dev-log-filter.d.ts.map +1 -0
  158. package/dist/dev-log-filter.js +36 -0
  159. package/dist/dev-log-filter.js.map +1 -0
  160. package/dist/dev-logo.d.ts +12 -0
  161. package/dist/dev-logo.d.ts.map +1 -0
  162. package/dist/dev-logo.js +57 -0
  163. package/dist/dev-logo.js.map +1 -0
  164. package/dist/dev-session.d.ts +26 -0
  165. package/dist/dev-session.d.ts.map +1 -0
  166. package/dist/dev-session.js +106 -0
  167. package/dist/dev-session.js.map +1 -0
  168. package/dist/dev-shutdown.d.ts +9 -0
  169. package/dist/dev-shutdown.d.ts.map +1 -0
  170. package/dist/dev-shutdown.js +50 -0
  171. package/dist/dev-shutdown.js.map +1 -0
  172. package/dist/dev-task-colors.d.ts +14 -0
  173. package/dist/dev-task-colors.d.ts.map +1 -0
  174. package/dist/dev-task-colors.js +44 -0
  175. package/dist/dev-task-colors.js.map +1 -0
  176. package/dist/dev-tui.d.ts +24 -0
  177. package/dist/dev-tui.d.ts.map +1 -0
  178. package/dist/dev-tui.js +188 -0
  179. package/dist/dev-tui.js.map +1 -0
  180. package/dist/diff-output.d.ts +4 -0
  181. package/dist/diff-output.d.ts.map +1 -0
  182. package/dist/diff-output.js +12 -0
  183. package/dist/diff-output.js.map +1 -0
  184. package/dist/docker-postgres.d.ts +57 -0
  185. package/dist/docker-postgres.d.ts.map +1 -0
  186. package/dist/docker-postgres.js +208 -0
  187. package/dist/docker-postgres.js.map +1 -0
  188. package/dist/engine-client.d.ts +69 -0
  189. package/dist/engine-client.d.ts.map +1 -0
  190. package/dist/engine-client.js +157 -0
  191. package/dist/engine-client.js.map +1 -0
  192. package/dist/engine-push-output.d.ts +16 -0
  193. package/dist/engine-push-output.d.ts.map +1 -0
  194. package/dist/engine-push-output.js +61 -0
  195. package/dist/engine-push-output.js.map +1 -0
  196. package/dist/ensure-binary.d.ts +7 -0
  197. package/dist/ensure-binary.d.ts.map +1 -0
  198. package/dist/ensure-binary.js +17 -0
  199. package/dist/ensure-binary.js.map +1 -0
  200. package/dist/functions-router-gen.d.ts +14 -0
  201. package/dist/functions-router-gen.d.ts.map +1 -0
  202. package/dist/functions-router-gen.js +199 -0
  203. package/dist/functions-router-gen.js.map +1 -0
  204. package/dist/index.d.ts +11 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +9 -0
  207. package/dist/index.js.map +1 -0
  208. package/dist/jwt.d.ts +3 -0
  209. package/dist/jwt.d.ts.map +1 -0
  210. package/dist/jwt.js +13 -0
  211. package/dist/jwt.js.map +1 -0
  212. package/dist/kong-config.d.ts +25 -0
  213. package/dist/kong-config.d.ts.map +1 -0
  214. package/dist/kong-config.js +71 -0
  215. package/dist/kong-config.js.map +1 -0
  216. package/dist/local-gateway.d.ts +7 -0
  217. package/dist/local-gateway.d.ts.map +1 -0
  218. package/dist/local-gateway.js +9 -0
  219. package/dist/local-gateway.js.map +1 -0
  220. package/dist/local-storage.d.ts +8 -0
  221. package/dist/local-storage.d.ts.map +1 -0
  222. package/dist/local-storage.js +14 -0
  223. package/dist/local-storage.js.map +1 -0
  224. package/dist/pgbouncer-userlist.d.ts +5 -0
  225. package/dist/pgbouncer-userlist.d.ts.map +1 -0
  226. package/dist/pgbouncer-userlist.js +14 -0
  227. package/dist/pgbouncer-userlist.js.map +1 -0
  228. package/dist/postgres-ctl.d.ts +44 -0
  229. package/dist/postgres-ctl.d.ts.map +1 -0
  230. package/dist/postgres-ctl.js +137 -0
  231. package/dist/postgres-ctl.js.map +1 -0
  232. package/dist/process-manager.d.ts +49 -0
  233. package/dist/process-manager.d.ts.map +1 -0
  234. package/dist/process-manager.js +177 -0
  235. package/dist/process-manager.js.map +1 -0
  236. package/dist/project-config.d.ts +238 -0
  237. package/dist/project-config.d.ts.map +1 -0
  238. package/dist/project-config.js +159 -0
  239. package/dist/project-config.js.map +1 -0
  240. package/dist/pull-utils.d.ts +31 -0
  241. package/dist/pull-utils.d.ts.map +1 -0
  242. package/dist/pull-utils.js +77 -0
  243. package/dist/pull-utils.js.map +1 -0
  244. package/dist/release-pins.d.ts +7 -0
  245. package/dist/release-pins.d.ts.map +1 -0
  246. package/dist/release-pins.js +27 -0
  247. package/dist/release-pins.js.map +1 -0
  248. package/dist/release-public-key.d.ts +8 -0
  249. package/dist/release-public-key.d.ts.map +1 -0
  250. package/dist/release-public-key.js +13 -0
  251. package/dist/release-public-key.js.map +1 -0
  252. package/dist/restore-system-relation-targets.d.ts +3 -0
  253. package/dist/restore-system-relation-targets.d.ts.map +1 -0
  254. package/dist/restore-system-relation-targets.js +45 -0
  255. package/dist/restore-system-relation-targets.js.map +1 -0
  256. package/dist/runtime-routes.d.ts +34 -0
  257. package/dist/runtime-routes.d.ts.map +1 -0
  258. package/dist/runtime-routes.js +252 -0
  259. package/dist/runtime-routes.js.map +1 -0
  260. package/dist/schema-ast-v2.d.ts +127 -0
  261. package/dist/schema-ast-v2.d.ts.map +1 -0
  262. package/dist/schema-ast-v2.js +226 -0
  263. package/dist/schema-ast-v2.js.map +1 -0
  264. package/dist/scripts/postinstall.d.ts +11 -0
  265. package/dist/scripts/postinstall.d.ts.map +1 -0
  266. package/dist/scripts/postinstall.js +47 -0
  267. package/dist/scripts/postinstall.js.map +1 -0
  268. package/dist/seed.d.ts +8 -0
  269. package/dist/seed.d.ts.map +1 -0
  270. package/dist/seed.js +32 -0
  271. package/dist/seed.js.map +1 -0
  272. package/dist/self-host-compose.d.ts +43 -0
  273. package/dist/self-host-compose.d.ts.map +1 -0
  274. package/dist/self-host-compose.js +400 -0
  275. package/dist/self-host-compose.js.map +1 -0
  276. package/dist/storage-provision.d.ts +24 -0
  277. package/dist/storage-provision.d.ts.map +1 -0
  278. package/dist/storage-provision.js +44 -0
  279. package/dist/storage-provision.js.map +1 -0
  280. package/dist/studio-admin-roles.d.ts +7 -0
  281. package/dist/studio-admin-roles.d.ts.map +1 -0
  282. package/dist/studio-admin-roles.js +14 -0
  283. package/dist/studio-admin-roles.js.map +1 -0
  284. package/dist/studio-dev-server.d.ts +22 -0
  285. package/dist/studio-dev-server.d.ts.map +1 -0
  286. package/dist/studio-dev-server.js +28 -0
  287. package/dist/studio-dev-server.js.map +1 -0
  288. package/dist/supatype-eval-1781522769253.d.mts +2 -0
  289. package/dist/supatype-eval-1781522769253.d.mts.map +1 -0
  290. package/dist/supatype-eval-1781522769253.mjs +3 -0
  291. package/dist/supatype-eval-1781522769253.mjs.map +1 -0
  292. package/dist/systemd.d.ts +26 -0
  293. package/dist/systemd.d.ts.map +1 -0
  294. package/dist/systemd.js +102 -0
  295. package/dist/systemd.js.map +1 -0
  296. package/dist/tsx-runner.d.ts +18 -0
  297. package/dist/tsx-runner.d.ts.map +1 -0
  298. package/dist/tsx-runner.js +69 -0
  299. package/dist/tsx-runner.js.map +1 -0
  300. package/dist/type-extractor.d.ts +4 -0
  301. package/dist/type-extractor.d.ts.map +1 -0
  302. package/dist/type-extractor.js +1213 -0
  303. package/dist/type-extractor.js.map +1 -0
  304. package/dist/type-resolver.d.ts +33 -0
  305. package/dist/type-resolver.d.ts.map +1 -0
  306. package/dist/type-resolver.js +338 -0
  307. package/dist/type-resolver.js.map +1 -0
  308. package/package.json +41 -0
  309. package/releases/deno/VERSION +1 -0
  310. package/scripts/mirror-deno-release.sh +76 -0
  311. package/src/TYPE-RESOLUTION.md +294 -0
  312. package/src/app/framework.ts +249 -0
  313. package/src/app/proxy-dev-app.ts +68 -0
  314. package/src/app-config.ts +128 -0
  315. package/src/augmentation-generator.ts +126 -0
  316. package/src/binary-cache.ts +845 -0
  317. package/src/cli.ts +63 -0
  318. package/src/commands/admin.ts +372 -0
  319. package/src/commands/app.ts +97 -0
  320. package/src/commands/cache.ts +117 -0
  321. package/src/commands/cloud.ts +325 -0
  322. package/src/commands/db.ts +136 -0
  323. package/src/commands/deploy-types.ts +49 -0
  324. package/src/commands/deploy.ts +400 -0
  325. package/src/commands/dev.ts +1009 -0
  326. package/src/commands/diff.ts +63 -0
  327. package/src/commands/engine.ts +30 -0
  328. package/src/commands/functions.ts +901 -0
  329. package/src/commands/generate.ts +44 -0
  330. package/src/commands/init.ts +253 -0
  331. package/src/commands/keys.ts +66 -0
  332. package/src/commands/logs.ts +58 -0
  333. package/src/commands/migrate-from-v1.ts +131 -0
  334. package/src/commands/migrate.ts +87 -0
  335. package/src/commands/pg.ts +133 -0
  336. package/src/commands/plugins.ts +508 -0
  337. package/src/commands/pull.ts +17 -0
  338. package/src/commands/push.ts +226 -0
  339. package/src/commands/seed.ts +68 -0
  340. package/src/commands/self-host.ts +364 -0
  341. package/src/commands/self-update.ts +45 -0
  342. package/src/commands/status.ts +84 -0
  343. package/src/commands/types.ts +76 -0
  344. package/src/commands/update.ts +136 -0
  345. package/src/components.ts +6 -0
  346. package/src/config.ts +223 -0
  347. package/src/dev-compose.ts +583 -0
  348. package/src/dev-log-bus.ts +101 -0
  349. package/src/dev-log-filter.ts +32 -0
  350. package/src/dev-logo.ts +62 -0
  351. package/src/dev-session.ts +130 -0
  352. package/src/dev-shutdown.ts +54 -0
  353. package/src/dev-task-colors.ts +47 -0
  354. package/src/dev-tui.ts +232 -0
  355. package/src/diff-output.ts +12 -0
  356. package/src/docker-postgres.ts +295 -0
  357. package/src/engine-client.ts +236 -0
  358. package/src/engine-push-output.ts +71 -0
  359. package/src/ensure-binary.ts +28 -0
  360. package/src/functions-router-gen.ts +224 -0
  361. package/src/index.ts +11 -0
  362. package/src/jwt.ts +14 -0
  363. package/src/kong-config.ts +93 -0
  364. package/src/local-gateway.ts +9 -0
  365. package/src/local-storage.ts +14 -0
  366. package/src/pgbouncer-userlist.ts +15 -0
  367. package/src/postgres-ctl.ts +171 -0
  368. package/src/process-manager.ts +220 -0
  369. package/src/project-config.ts +388 -0
  370. package/src/pull-utils.ts +81 -0
  371. package/src/release-pins.ts +31 -0
  372. package/src/release-public-key.ts +12 -0
  373. package/src/restore-system-relation-targets.ts +45 -0
  374. package/src/runtime-routes.ts +291 -0
  375. package/src/schema-ast-v2.ts +324 -0
  376. package/src/scripts/postinstall.ts +51 -0
  377. package/src/seed.ts +43 -0
  378. package/src/self-host-compose.ts +452 -0
  379. package/src/storage-provision.ts +58 -0
  380. package/src/studio-admin-roles.ts +16 -0
  381. package/src/studio-dev-server.ts +53 -0
  382. package/src/supatype-eval-1781522769253.mts +1 -0
  383. package/src/systemd.ts +137 -0
  384. package/src/tsx-runner.ts +89 -0
  385. package/src/type-extractor.ts +1479 -0
  386. package/src/type-resolver.ts +457 -0
  387. package/tests/app-command.test.ts +54 -0
  388. package/tests/augmentation-generator.test.ts +59 -0
  389. package/tests/binary-cache-cloud-overrides.test.ts +123 -0
  390. package/tests/cached-artifact-format.test.ts +84 -0
  391. package/tests/cli-help.test.ts +133 -0
  392. package/tests/config.test.ts +252 -0
  393. package/tests/dev-ui.test.ts +139 -0
  394. package/tests/docker-postgres.test.ts +39 -0
  395. package/tests/engine-distribution.test.ts +418 -0
  396. package/tests/engine-push-output.test.ts +67 -0
  397. package/tests/ensure-binary.test.ts +59 -0
  398. package/tests/init.test.ts +127 -0
  399. package/tests/keys.test.ts +160 -0
  400. package/tests/migrate-from-v1.test.ts +29 -0
  401. package/tests/normalize-admin-config.test.ts +48 -0
  402. package/tests/pg-spawn-env.test.ts +18 -0
  403. package/tests/postgres-archive-tag.test.ts +9 -0
  404. package/tests/proxy-dev-app.test.ts +33 -0
  405. package/tests/pull-utils.test.ts +150 -0
  406. package/tests/release-pins.test.ts +28 -0
  407. package/tests/runtime-contract.test.ts +370 -0
  408. package/tests/seed-discover.test.ts +31 -0
  409. package/tests/studio-admin-roles.test.ts +27 -0
  410. package/tests/tsconfig.json +9 -0
  411. package/tests/tsx-runner.test.ts +66 -0
  412. package/tests/type-extractor.test.ts +985 -0
  413. package/tests/type-resolver.test.ts +59 -0
  414. package/tsconfig.json +10 -0
  415. package/tsconfig.tsbuildinfo +1 -0
  416. package/vitest.config.ts +12 -0
@@ -0,0 +1,159 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ // ---------------------------------------------------------------------------
4
+ // Merge + validate
5
+ // ---------------------------------------------------------------------------
6
+ /**
7
+ * Merge each top-level section from `override` on top of `base`.
8
+ * Within each section, override values win. New optional sections in override are added.
9
+ */
10
+ export function mergeProjectConfig(base, override) {
11
+ return {
12
+ ...(base.provider !== undefined || override.provider !== undefined
13
+ ? { provider: override.provider ?? base.provider }
14
+ : {}),
15
+ ...(base.supatype !== undefined || override.supatype !== undefined
16
+ ? { supatype: { ...base.supatype, ...override.supatype } }
17
+ : {}),
18
+ project: { ...base.project, ...override.project },
19
+ database: { ...base.database, ...override.database },
20
+ server: { ...base.server, ...override.server },
21
+ app: { ...base.app, ...override.app },
22
+ ...(base.versions !== undefined || override.versions !== undefined
23
+ ? { versions: { ...base.versions, ...override.versions } }
24
+ : {}),
25
+ ...(base.overrides !== undefined || override.overrides !== undefined
26
+ ? {
27
+ overrides: {
28
+ ...base.overrides,
29
+ ...override.overrides,
30
+ },
31
+ }
32
+ : {}),
33
+ ...(base.email !== undefined || override.email !== undefined
34
+ ? (() => {
35
+ const b = base.email;
36
+ const o = override.email;
37
+ const mergedSmtp = b?.smtp !== undefined || o?.smtp !== undefined
38
+ ? { ...(b?.smtp ?? {}), ...(o?.smtp ?? {}) }
39
+ : undefined;
40
+ return {
41
+ email: {
42
+ ...b,
43
+ ...o,
44
+ ...(mergedSmtp !== undefined ? { smtp: mergedSmtp } : {}),
45
+ },
46
+ };
47
+ })()
48
+ : {}),
49
+ ...(base.storage !== undefined || override.storage !== undefined
50
+ ? {
51
+ storage: {
52
+ ...base.storage,
53
+ ...override.storage,
54
+ },
55
+ }
56
+ : {}),
57
+ ...(base.schema !== undefined || override.schema !== undefined
58
+ ? { schema: { ...base.schema, ...override.schema } }
59
+ : {}),
60
+ ...(base.functions !== undefined || override.functions !== undefined
61
+ ? { functions: { ...base.functions, ...override.functions } }
62
+ : {}),
63
+ ...(base.output !== undefined || override.output !== undefined
64
+ ? { output: { ...base.output, ...override.output } }
65
+ : {}),
66
+ ...(base.build !== undefined || override.build !== undefined
67
+ ? { build: { ...base.build, ...override.build } }
68
+ : {}),
69
+ ...(base.connection !== undefined || override.connection !== undefined
70
+ ? { connection: override.connection ?? base.connection }
71
+ : {}),
72
+ ...(base.admin !== undefined || override.admin !== undefined
73
+ ? { admin: { ...base.admin, ...override.admin } }
74
+ : {}),
75
+ };
76
+ }
77
+ export function validateProjectConfig(raw, filename) {
78
+ if (typeof raw !== "object" || raw === null) {
79
+ throw new Error(`${filename}: expected a config object at the root`);
80
+ }
81
+ const cfg = raw;
82
+ if (!cfg["project"] || typeof cfg["project"]["name"] !== "string") {
83
+ throw new Error(`${filename}: project.name is required`);
84
+ }
85
+ if (!cfg["database"]) {
86
+ throw new Error(`${filename}: database section is required`);
87
+ }
88
+ if (!cfg["server"]) {
89
+ throw new Error(`${filename}: server section is required`);
90
+ }
91
+ if (!cfg["app"]) {
92
+ throw new Error(`${filename}: app section is required`);
93
+ }
94
+ return raw;
95
+ }
96
+ /** Schema entry path (with fallback). */
97
+ export function schemaPathFromProject(cfg, cwd) {
98
+ return resolve(projectRootFromConfig(cfg, cwd), cfg.schema?.path ?? "schema/index.ts");
99
+ }
100
+ /** Resolve project root for schema/functions defaults. */
101
+ export function projectRootFromConfig(cfg, cwd) {
102
+ return resolve(cwd, cfg.supatype?.root ?? ".");
103
+ }
104
+ /** Candidate functions directories in lookup order. */
105
+ export function functionsPathCandidatesFromProject(cfg, cwd) {
106
+ const root = projectRootFromConfig(cfg, cwd);
107
+ if (cfg.functions?.path) {
108
+ return [resolve(root, cfg.functions.path)];
109
+ }
110
+ // Prefer modern default, but keep legacy fallback for compatibility.
111
+ return [resolve(root, "functions"), resolve(root, "supatype/functions")];
112
+ }
113
+ /** Preferred default functions path (used when creating new functions). */
114
+ export function preferredFunctionsPathFromProject(cfg, cwd) {
115
+ const candidates = functionsPathCandidatesFromProject(cfg, cwd);
116
+ for (const dir of candidates) {
117
+ if (existsSync(dir))
118
+ return dir;
119
+ }
120
+ return candidates[0] ?? resolve(projectRootFromConfig(cfg, cwd), "functions");
121
+ }
122
+ /**
123
+ * Derive the supatype-server base URL from the project config.
124
+ * Returns undefined if the mode is "managed" (cloud controls the URL).
125
+ */
126
+ export function serverBaseUrl(cfg) {
127
+ const port = cfg.server.port ?? 54321;
128
+ switch (cfg.server.mode) {
129
+ case "dev":
130
+ case "standalone":
131
+ if (cfg.server.mode === "dev" && resolveRuntimeProvider(cfg) === "docker") {
132
+ return `http://localhost:${COMPOSE_DEV_KONG_PORT}`;
133
+ }
134
+ return cfg.server.domain
135
+ ? `https://${cfg.server.domain}`
136
+ : `http://localhost:${port}`;
137
+ case "managed":
138
+ return undefined;
139
+ }
140
+ }
141
+ /** Resolved runtime provider (`config.provider` ?? `database.provider` ?? native). */
142
+ export function resolveRuntimeProvider(cfg) {
143
+ return cfg.provider ?? cfg.database.provider ?? "native";
144
+ }
145
+ /** Kong gateway port when `provider: docker` (self-host compose dev). */
146
+ export const COMPOSE_DEV_KONG_PORT = 18473;
147
+ /** The local Postgres DSN derived from project name (dev default). */
148
+ export function localDSN(cfg) {
149
+ const port = 5432; // standard; per-project state dir isolates data dirs
150
+ return `postgres://postgres:postgres@127.0.0.1:${port}/${cfg.project.name}?sslmode=disable`;
151
+ }
152
+ /**
153
+ * Resolve the database connection string.
154
+ * Prefers optional `connection` in config, then `DATABASE_URL` env, then a local default DSN.
155
+ */
156
+ export function connectionString(cfg) {
157
+ return cfg.connection ?? process.env["DATABASE_URL"] ?? localDSN(cfg);
158
+ }
159
+ //# sourceMappingURL=project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Utilities for the `pull` command — extracted for unit testability.
3
+ */
4
+ export interface ColumnInfo {
5
+ name: string;
6
+ pgType: string;
7
+ nullable: boolean;
8
+ isPrimary: boolean;
9
+ isUnique: boolean;
10
+ hasDefault: boolean;
11
+ }
12
+ /** Engine `/introspect` column shape (see {@link IntrospectResult} in engine-client). */
13
+ export interface IntrospectColumn {
14
+ name: string;
15
+ type: string;
16
+ nullable: boolean;
17
+ default?: string;
18
+ primaryKey?: boolean;
19
+ unique?: boolean;
20
+ references?: {
21
+ table: string;
22
+ column: string;
23
+ };
24
+ }
25
+ /** Map engine introspection JSON to {@link ColumnInfo} for {@link pgTypeToField}. */
26
+ export declare function introspectColumnToColumnInfo(col: IntrospectColumn): ColumnInfo;
27
+ /** Map a Postgres column type to the corresponding field.X() call string. */
28
+ export declare function pgTypeToField(col: ColumnInfo): string;
29
+ /** Convert snake_case table name to PascalCase model export name. */
30
+ export declare function toCamelCase(s: string): string;
31
+ //# sourceMappingURL=pull-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-utils.d.ts","sourceRoot":"","sources":["../src/pull-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAU9E;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAmCrD;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Utilities for the `pull` command — extracted for unit testability.
3
+ */
4
+ /** Map engine introspection JSON to {@link ColumnInfo} for {@link pgTypeToField}. */
5
+ export function introspectColumnToColumnInfo(col) {
6
+ const def = col.default;
7
+ return {
8
+ name: col.name,
9
+ pgType: col.type,
10
+ nullable: col.nullable,
11
+ isPrimary: col.primaryKey ?? false,
12
+ isUnique: col.unique ?? false,
13
+ hasDefault: def !== undefined && def !== "",
14
+ };
15
+ }
16
+ /** Map a Postgres column type to the corresponding field.X() call string. */
17
+ export function pgTypeToField(col) {
18
+ const opts = { required: !col.nullable };
19
+ if (col.isPrimary)
20
+ opts["primaryKey"] = true;
21
+ if (col.isUnique && !col.isPrimary)
22
+ opts["unique"] = true;
23
+ const optsStr = JSON.stringify(opts);
24
+ const type = col.pgType.toLowerCase();
25
+ if (type.includes("uuid"))
26
+ return `field.uuid(${optsStr})`;
27
+ if (type.includes("text") || type.includes("varchar") || type.includes("char"))
28
+ return `field.text(${optsStr})`;
29
+ if (type.includes("int8") || type.includes("bigint"))
30
+ return `field.bigInt(${optsStr})`;
31
+ if (type.includes("int2") || type.includes("smallint"))
32
+ return `field.smallInt(${optsStr})`;
33
+ if (type.includes("interval"))
34
+ return `field.interval(${optsStr})`;
35
+ if (type.includes("int") || type.includes("serial"))
36
+ return `field.integer(${optsStr})`;
37
+ if (type.includes("float") || type.includes("double") || type.includes("real"))
38
+ return `field.float(${optsStr})`;
39
+ if (type.includes("numeric") || type.includes("decimal"))
40
+ return `field.decimal(${optsStr})`;
41
+ if (type.includes("bool"))
42
+ return `field.boolean(${optsStr})`;
43
+ if (type.includes("timestamptz") || type.includes("timestamp with time zone"))
44
+ return `field.datetime(${optsStr})`;
45
+ if (type.includes("timestamp"))
46
+ return `field.timestamp(${optsStr})`;
47
+ if (type.includes("date"))
48
+ return `field.date(${optsStr})`;
49
+ if (type.includes("jsonb"))
50
+ return `field.json({ ...${optsStr}, jsonb: true })`;
51
+ if (type.includes("json"))
52
+ return `field.json(${optsStr})`;
53
+ if (type.includes("inet"))
54
+ return `field.ip(${optsStr})`;
55
+ if (type.includes("cidr"))
56
+ return `field.cidr(${optsStr})`;
57
+ if (type.includes("macaddr"))
58
+ return `field.macaddr(${optsStr})`;
59
+ if (type.includes("bytea"))
60
+ return `field.bytea(${optsStr})`;
61
+ if (type.includes("money"))
62
+ return `field.money(${optsStr})`;
63
+ if (type.includes("xml"))
64
+ return `field.xml(${optsStr})`;
65
+ if (type.includes("tsvector"))
66
+ return `field.tsvector(${optsStr})`;
67
+ if (type.includes("tsquery"))
68
+ return `field.tsquery(${optsStr})`;
69
+ return `field.text({ ...${optsStr} }) /* TODO: ${col.pgType} */`;
70
+ }
71
+ /** Convert snake_case table name to PascalCase model export name. */
72
+ export function toCamelCase(s) {
73
+ return s
74
+ .replace(/_([a-z])/g, (_, c) => c.toUpperCase())
75
+ .replace(/^([a-z])/, (c) => c.toUpperCase());
76
+ }
77
+ //# sourceMappingURL=pull-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-utils.js","sourceRoot":"","sources":["../src/pull-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,qFAAqF;AACrF,MAAM,UAAU,4BAA4B,CAAC,GAAqB;IAChE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;IACvB,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,IAAI;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,KAAK;QAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;QAC7B,UAAU,EAAE,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;KAC5C,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,GAAe;IAC3C,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACjE,IAAI,GAAG,CAAC,SAAS;QAAE,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAC5C,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;IAErC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,cAAc,OAAO,GAAG,CAAA;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5E,OAAO,cAAc,OAAO,GAAG,CAAA;IACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,gBAAgB,OAAO,GAAG,CAAA;IACvF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,kBAAkB,OAAO,GAAG,CAAA;IAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,kBAAkB,OAAO,GAAG,CAAA;IAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IACvF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5E,OAAO,eAAe,OAAO,GAAG,CAAA;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IAC5F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3E,OAAO,kBAAkB,OAAO,GAAG,CAAA;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,mBAAmB,OAAO,GAAG,CAAA;IACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,cAAc,OAAO,GAAG,CAAA;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,mBAAmB,OAAO,kBAAkB,CAAA;IAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,cAAc,OAAO,GAAG,CAAA;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,OAAO,GAAG,CAAA;IACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,cAAc,OAAO,GAAG,CAAA;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,OAAO,GAAG,CAAA;IAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,OAAO,GAAG,CAAA;IAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,aAAa,OAAO,GAAG,CAAA;IACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,kBAAkB,OAAO,GAAG,CAAA;IAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IAEhE,OAAO,mBAAmB,OAAO,gBAAgB,GAAG,CAAC,MAAM,KAAK,CAAA;AAClE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC;SACL,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvD,OAAO,CAAC,UAAU,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AACxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Release pins read from files under packages/cli/releases/.
3
+ * CI (deno-releases workflow) uses the same paths — bump only releases/deno/VERSION.
4
+ */
5
+ /** Pinned Deno runtime for edge functions (also published to CDN under /deno/v{version}/). */
6
+ export declare const DENO_RELEASE_PIN: string;
7
+ //# sourceMappingURL=release-pins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-pins.d.ts","sourceRoot":"","sources":["../src/release-pins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,QAAiC,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Release pins read from files under packages/cli/releases/.
3
+ * CI (deno-releases workflow) uses the same paths — bump only releases/deno/VERSION.
4
+ */
5
+ import { readFileSync } from "node:fs";
6
+ import { dirname, join } from "node:path";
7
+ import { fileURLToPath } from "node:url";
8
+ const CLI_PACKAGE_ROOT = join(dirname(fileURLToPath(import.meta.url)), "..");
9
+ function readPinFile(...segments) {
10
+ const path = join(CLI_PACKAGE_ROOT, "releases", ...segments);
11
+ let raw;
12
+ try {
13
+ raw = readFileSync(path, "utf8");
14
+ }
15
+ catch {
16
+ throw new Error(`Missing release pin file: ${path}\n` +
17
+ "Expected packages/cli/releases/… — reinstall @supatype/cli or build from the monorepo.");
18
+ }
19
+ const version = raw.trim();
20
+ if (!/^\d+\.\d+\.\d+/.test(version)) {
21
+ throw new Error(`Invalid pin in ${path}: expected semver like 2.2.0, got ${JSON.stringify(raw)}`);
22
+ }
23
+ return version;
24
+ }
25
+ /** Pinned Deno runtime for edge functions (also published to CDN under /deno/v{version}/). */
26
+ export const DENO_RELEASE_PIN = readPinFile("deno", "VERSION");
27
+ //# sourceMappingURL=release-pins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-pins.js","sourceRoot":"","sources":["../src/release-pins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAE5E,SAAS,WAAW,CAAC,GAAG,QAAkB;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAA;IAC5D,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,IAAI;YACnC,wFAAwF,CAC3F,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,qCAAqC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnG,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Minisign public key for CDN release verification.
3
+ * Populated at publish via scripts/embed-release-pubkey.mjs (MINISIGN_PUBLIC_KEY secret),
4
+ * or overridden at runtime with SUPATYPE_RELEASE_PUBLIC_KEY.
5
+ */
6
+ export declare const EMBEDDED_RELEASE_PUBLIC_KEY = "untrusted comment: minisign public key DE133E99689AE71D\nRWQd55pomT4T3t+5FLZZ6+h0DoHrtiuU9RBUHHm9BcFHeGRvW7BXxBCr";
7
+ export declare function releasePublicKey(): string;
8
+ //# sourceMappingURL=release-public-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-public-key.d.ts","sourceRoot":"","sources":["../src/release-public-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,sHAAsH,CAAA;AAE9J,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Minisign public key for CDN release verification.
3
+ * Populated at publish via scripts/embed-release-pubkey.mjs (MINISIGN_PUBLIC_KEY secret),
4
+ * or overridden at runtime with SUPATYPE_RELEASE_PUBLIC_KEY.
5
+ */
6
+ export const EMBEDDED_RELEASE_PUBLIC_KEY = "untrusted comment: minisign public key DE133E99689AE71D\nRWQd55pomT4T3t+5FLZZ6+h0DoHrtiuU9RBUHHm9BcFHeGRvW7BXxBCr";
7
+ export function releasePublicKey() {
8
+ const fromEnv = process.env["SUPATYPE_RELEASE_PUBLIC_KEY"]?.trim();
9
+ if (fromEnv)
10
+ return fromEnv;
11
+ return EMBEDDED_RELEASE_PUBLIC_KEY.trim();
12
+ }
13
+ //# sourceMappingURL=release-public-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-public-key.js","sourceRoot":"","sources":["../src/release-public-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,mHAAmH,CAAA;AAE9J,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,CAAA;IAClE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,OAAO,2BAA2B,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Restore system relation targets (e.g. supatype:user) in engine-generated admin config. */
2
+ export declare function restoreSystemRelationTargets(admin: unknown, ast: unknown): void;
3
+ //# sourceMappingURL=restore-system-relation-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-system-relation-targets.d.ts","sourceRoot":"","sources":["../src/restore-system-relation-targets.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAS7F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAmC/E"}
@@ -0,0 +1,45 @@
1
+ /** Restore system relation targets (e.g. supatype:user) in engine-generated admin config. */
2
+ function fieldNameToForeignKey(fieldName) {
3
+ return fieldName
4
+ .replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
5
+ .replace(/([a-z\d])([A-Z])/g, "$1_$2")
6
+ .toLowerCase() + "_id";
7
+ }
8
+ export function restoreSystemRelationTargets(admin, ast) {
9
+ if (typeof admin !== "object" || admin === null || typeof ast !== "object" || ast === null)
10
+ return;
11
+ const astObj = ast;
12
+ if (!astObj.models)
13
+ return;
14
+ const cfg = admin;
15
+ if (!Array.isArray(cfg.models))
16
+ return;
17
+ const systemTargets = new Map();
18
+ for (const model of astObj.models) {
19
+ if (!model.fields)
20
+ continue;
21
+ for (const [fieldName, field] of Object.entries(model.fields)) {
22
+ if (field.kind === "relation" && field.target?.includes(":")) {
23
+ const key = model.name.toLowerCase();
24
+ if (!systemTargets.has(key))
25
+ systemTargets.set(key, new Map());
26
+ systemTargets.get(key).set(fieldNameToForeignKey(fieldName), field.target);
27
+ }
28
+ }
29
+ }
30
+ for (const model of cfg.models) {
31
+ const modelTargets = systemTargets.get(model.tableName);
32
+ if (!modelTargets)
33
+ continue;
34
+ for (const field of model.fields) {
35
+ if (field.widget !== "relation" || !field.options)
36
+ continue;
37
+ const explicitFk = field.options["foreignKey"] ?? "";
38
+ const fk = explicitFk || fieldNameToForeignKey(field.name);
39
+ const systemTarget = modelTargets.get(fk);
40
+ if (systemTarget)
41
+ field.options["target"] = systemTarget;
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=restore-system-relation-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore-system-relation-targets.js","sourceRoot":"","sources":["../src/restore-system-relation-targets.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,OAAO,SAAS;SACb,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACrC,WAAW,EAAE,GAAG,KAAK,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc,EAAE,GAAY;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAM;IAClG,MAAM,MAAM,GAAG,GAAuG,CAAA;IACtH,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAM;IAC1B,MAAM,GAAG,GAAG,KAKX,CAAA;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAM;IAEtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAQ;QAC3B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACpC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;gBAC9D,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY;YAAE,SAAQ;QAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAQ;YAC3D,MAAM,UAAU,GAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAY,IAAI,EAAE,CAAA;YAChE,MAAM,EAAE,GAAG,UAAU,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzC,IAAI,YAAY;gBAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;QAC1D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ export interface RuntimeRoute {
2
+ name: string;
3
+ serviceName: string;
4
+ serviceUrl: string;
5
+ paths: string[];
6
+ stripPath?: boolean;
7
+ protocols?: string[];
8
+ engineProtected?: boolean;
9
+ /** Route /graphql/v1 to PostgREST /rpc/graphql with graphql_public Content-Profile. */
10
+ graphqlPostgrest?: boolean;
11
+ }
12
+ export interface RuntimeRouteOptions {
13
+ appUpstream?: string;
14
+ staticAppServiceUrl?: string;
15
+ /** Compose self-host: supatype-server container (functions proxy). */
16
+ functionsServiceUrl?: string;
17
+ /**
18
+ * Self-host Compose: Kong forwards API traffic to supatype-server (unified gateway),
19
+ * which proxies to internal services — same model as `supatype dev`.
20
+ */
21
+ unifiedGateway?: boolean;
22
+ /** Studio UI upstream (default: in-compose `studio:3002`). */
23
+ studioServiceUrl?: string;
24
+ /**
25
+ * Strip `/studio/` before proxying to the Studio upstream.
26
+ * False for host Vite dev (`host.docker.internal`) where `base` is `/studio/`.
27
+ */
28
+ studioStripPath?: boolean;
29
+ }
30
+ /**
31
+ * Shared route contract used by local/self-host renderers.
32
+ */
33
+ export declare function runtimeRouteSpec(opts?: RuntimeRouteOptions): RuntimeRoute[];
34
+ //# sourceMappingURL=runtime-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-routes.d.ts","sourceRoot":"","sources":["../src/runtime-routes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AA6PD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,mBAAwB,GAAG,YAAY,EAAE,CAK/E"}