@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
@@ -1,4 +1,4 @@
1
1
 
2
- > @supatype/cli@0.1.0-alpha.9 build /home/runner/work/supatype/supatype/packages/cli
3
- > tsc --project tsconfig.json
2
+ > @supatype/cli@0.1.0 build /home/runner/work/supatype/supatype/packages/cli
3
+ > tsc --project tsconfig.json && node --input-type=module -e "import{cpSync,mkdirSync}from'node:fs';const a='dist/assets';mkdirSync(a,{recursive:true});cpSync('assets/supatype-logo-wordmark.ascii.txt',a+'/supatype-logo-wordmark.ascii.txt')"
4
4
 
@@ -1,12 +1,10 @@
1
1
 
2
- > @supatype/cli@0.1.0-alpha.9 test /home/runner/work/supatype/supatype/packages/cli
2
+ > @supatype/cli@0.1.0 test /home/runner/work/supatype/supatype/packages/cli
3
3
  > vitest run
4
4
 
5
5
 
6
6
   RUN  v4.0.18 /home/runner/work/supatype/supatype/packages/cli
7
7
 
8
- ✓ tests/type-extractor.test.ts (34 tests) 191ms
9
- ✓ tests/runtime-contract.test.ts (28 tests) 194ms
10
8
  stdout | tests/init.test.ts > scaffold() > creates all expected files
11
9
   created package.json
12
10
  created supatype.config.ts
@@ -77,7 +75,7 @@
77
75
  created public/.gitkeep
78
76
  created .gitignore
79
77
 
80
- stdout | tests/init.test.ts > scaffold() > schema/index.ts exports a User model using RFC v2 Model<>
78
+ stdout | tests/init.test.ts > scaffold() > schema/index.ts exports a Profile model using RFC v2 Model<>
81
79
   created package.json
82
80
  created supatype.config.ts
83
81
  created schema/index.ts
@@ -125,28 +123,236 @@
125
123
  created public/.gitkeep
126
124
  created .gitignore
127
125
 
128
- ✓ tests/init.test.ts (11 tests) 60ms
129
- ✓ tests/pull-utils.test.ts (49 tests) 13ms
130
- ✓ tests/config.test.ts (16 tests) 4587ms
131
- ✓ loads a valid supatype.config.ts (plain export default, no package imports)  772ms
132
- ✓ normalizes shorthand schema string to { path, pg_schema }  639ms
133
- ✓ loads a supatype.config.js (plain ESM)  546ms
134
- ✓ throws if config is missing the versions section  542ms
135
- ✓ prefers supatype.config.ts over supatype.config.js when both exist  530ms
136
- ✓ supports optional output field in config  538ms
137
- ✓ merges supatype.local.config.ts over base  992ms
138
- ✓ tests/binary-cache-cloud-overrides.test.ts (11 tests) 13ms
126
+ stdout | tests/init.test.ts > scaffold() > self-host target emits standalone mode + domain and a local override
127
+  created package.json
128
+ created supatype.config.ts
129
+ created supatype.local.config.ts
130
+ created schema/index.ts
131
+ created .env
132
+ created seed.ts
133
+ created seeds/.gitkeep
134
+ created public/.gitkeep
135
+ created .gitignore
136
+
137
+ stdout | tests/init.test.ts > scaffold() > self-host with a TLS email emits an active tls block
138
+  created package.json
139
+ created supatype.config.ts
140
+ created supatype.local.config.ts
141
+ created schema/index.ts
142
+ created .env
143
+ created seed.ts
144
+ created seeds/.gitkeep
145
+ created public/.gitkeep
146
+ created .gitignore
147
+
148
+ stdout | tests/init.test.ts > scaffold() > self-host without a TLS email emits a commented tls hint
149
+  created package.json
150
+ created supatype.config.ts
151
+ created supatype.local.config.ts
152
+ created schema/index.ts
153
+ created .env
154
+ created seed.ts
155
+ created seeds/.gitkeep
156
+ created public/.gitkeep
157
+ created .gitignore
158
+
159
+ stdout | tests/init.test.ts > scaffold() > cloud target emits managed mode + environments and a local override
160
+  created package.json
161
+ created supatype.config.ts
162
+ created supatype.local.config.ts
163
+ created schema/index.ts
164
+ created .env
165
+ created seed.ts
166
+ created seeds/.gitkeep
167
+ created public/.gitkeep
168
+ created .gitignore
169
+
170
+ stdout | tests/init.test.ts > scaffold() > later target stays in dev mode with no local override
171
+  created package.json
172
+ created supatype.config.ts
173
+ created schema/index.ts
174
+ created .env
175
+ created seed.ts
176
+ created seeds/.gitkeep
177
+ created public/.gitkeep
178
+ created .gitignore
179
+
180
+ stdout | tests/init.test.ts > scaffold() > static app mode writes the static dir and config block
181
+  created package.json
182
+ created supatype.config.ts
183
+ created schema/index.ts
184
+ created .env
185
+ created seed.ts
186
+ created seeds/.gitkeep
187
+ created dist/index.html
188
+ created .gitignore
189
+
190
+ stdout | tests/init.test.ts > scaffold() > static app mode with Vite scaffolds root index.html and vite.config.ts
191
+  created package.json
192
+ created supatype.config.ts
193
+ created schema/index.ts
194
+ created .env
195
+ created seed.ts
196
+ created seeds/.gitkeep
197
+ created public/index.html
198
+ created index.html
199
+ created vite.config.ts
200
+ created .gitignore
201
+
202
+ stdout | tests/init.test.ts > scaffold() > proxy app mode writes upstream and start in the config when target is later
203
+  created package.json
204
+ created supatype.config.ts
205
+ created schema/index.ts
206
+ created .env
207
+ created seed.ts
208
+ created seeds/.gitkeep
209
+ created public/.gitkeep
210
+ created .gitignore
211
+
212
+ stdout | tests/init.test.ts > scaffold() > proxy app mode with self-host splits static production config and local proxy override
213
+  created package.json
214
+ created supatype.config.ts
215
+ created supatype.local.config.ts
216
+ created schema/index.ts
217
+ created .env
218
+ created seed.ts
219
+ created seeds/.gitkeep
220
+ created dist/index.html
221
+ created index.html
222
+ created vite.config.ts
223
+ created .gitignore
224
+
225
+ stdout | tests/init.test.ts > scaffold() > proxy app mode with cloud target splits static production config and local proxy override
226
+  created package.json
227
+ created supatype.config.ts
228
+ created supatype.local.config.ts
229
+ created schema/index.ts
230
+ created .env
231
+ created seed.ts
232
+ created seeds/.gitkeep
233
+ created dist/index.html
234
+ created .gitignore
235
+
236
+ stdout | tests/init.test.ts > scaffold() > hello-world function scaffolds function files and a functions script
237
+  created package.json
238
+ created supatype.config.ts
239
+ created schema/index.ts
240
+ created .env
241
+ created seed.ts
242
+ created seeds/.gitkeep
243
+ created public/.gitkeep
244
+ created functions/hello/index.ts
245
+ created functions/_shared/README.md
246
+ created functions/.env.local
247
+ created .gitignore
248
+
249
+ stdout | tests/init.test.ts > scaffold() > custom schema path is honored
250
+  created package.json
251
+ created supatype.config.ts
252
+ created db/schema.ts
253
+ created .env
254
+ created seed.ts
255
+ created seeds/.gitkeep
256
+ created public/.gitkeep
257
+ created .gitignore
258
+
259
+ stdout | tests/init.test.ts > scaffold() > s3 storage and resend email reflect in config and .env
260
+  created package.json
261
+ created supatype.config.ts
262
+ created schema/index.ts
263
+ created .env
264
+ created seed.ts
265
+ created seeds/.gitkeep
266
+ created public/.gitkeep
267
+ created .gitignore
268
+
269
+ stdout | tests/init.test.ts > scaffold() > mixed local dev and s3 production writes both storage sections
270
+  created package.json
271
+ created supatype.config.ts
272
+ created schema/index.ts
273
+ created .env
274
+ created seed.ts
275
+ created seeds/.gitkeep
276
+ created public/.gitkeep
277
+ created .gitignore
278
+
279
+ ✓ tests/init.test.ts (25 tests) 170ms
280
+ ✓ tests/type-extractor.test.ts (34 tests) 149ms
281
+ ✓ tests/runtime-contract.test.ts (40 tests) 167ms
282
+ stdout | tests/docker-runtime.test.ts > requireDockerDaemon > exits when the daemon is unavailable
283
+ 
284
+ Start the Docker daemon (e.g. sudo systemctl start docker), then try again.
285
+
286
+ To develop without Docker, set provider: "native" in supatype.config.ts.
287
+
288
+ docker: daemon down
289
+
290
+ ✓ tests/docker-runtime.test.ts (10 tests) 24ms
291
+ ✓ tests/config.test.ts (18 tests) 4668ms
292
+ ✓ loads a valid supatype.config.ts (plain export default, no package imports)  711ms
293
+ ✓ normalizes shorthand schema string to { path, pg_schema }  541ms
294
+ ✓ loads a supatype.config.js (plain ESM)  581ms
295
+ ✓ loads config without a versions section (latest by default)  489ms
296
+ ✓ prefers supatype.config.ts over supatype.config.js when both exist  559ms
297
+ ✓ supports optional output field in config  550ms
298
+ ✓ merges supatype.local.config.ts over base  1224ms
299
+ stdout | tests/link.test.ts > link model > migrates cloud.json into link.json
300
+  created package.json
301
+ created supatype.config.ts
302
+ created schema/index.ts
303
+ created .env
304
+ created seed.ts
305
+ created seeds/.gitkeep
306
+ created public/.gitkeep
307
+ created .gitignore
308
+
309
+ stderr | tests/link.test.ts > link model > migrates cloud.json into link.json
310
+ [supatype] Migrated .supatype/cloud.json → .supatype/link.json (legacy files kept; remove manually when ready).
311
+
312
+ ✓ tests/link.test.ts (4 tests) 2795ms
313
+ ✓ resolveTarget returns cloud mode with /api/v1 prefix  950ms
314
+ ✓ resolveTarget returns self-host mode with /platform/v1 prefix  918ms
315
+ ✓ targetSchemaRollback posts to /platform/v1 when linked  915ms
316
+
317
+
318
+
319
+
320
+ ✓ tests/dev-ui.test.ts (15 tests) 66ms
321
+
322
+ ✓ tests/pull-utils.test.ts (49 tests) 11ms
323
+ ✓ tests/schema-sources.test.ts (5 tests) 1150ms
324
+ ✓ buildSchemaSourcesPayload includes manifest metadata  604ms
325
+ ✓ restore overwrites modified local files  497ms
326
+ stderr | tests/binary-cache-cloud-overrides.test.ts > isLinkedToCloudProject > is true when .supatype/cloud.json has projectSlug
327
+ [supatype] Migrated .supatype/cloud.json → .supatype/link.json (legacy files kept; remove manually when ready).
328
+
329
+ ✓ tests/binary-cache-cloud-overrides.test.ts (11 tests) 29ms
330
+ ✓ tests/minisign.test.ts (5 tests) 26ms
331
+ stdout | tests/storage-provision.test.ts > provisionBuckets > POSTs each bucket to the storage API
332
+ [supatype] Storage bucket "photos" ready.
333
+
334
+ stdout | tests/storage-provision.test.ts > provisionBuckets > POSTs each bucket to the storage API
335
+ [supatype] Storage bucket "avatars" ready.
336
+
337
+ ✓ tests/storage-provision.test.ts (6 tests) 9ms
139
338
  ✓ tests/cached-artifact-format.test.ts (7 tests) 13ms
140
- ✓ tests/tsx-runner.test.ts (7 tests) 2745ms
141
- ✓ evaluates a simple expression and returns stdout  389ms
142
- ✓ evaluates TypeScript syntax (type annotations)  368ms
143
- ✓ can serialize a JSON object to stdout  361ms
144
- ✓ returns non-zero exit code on syntax error  386ms
145
- ✓ returns non-zero exit code on runtime error  382ms
146
- ✓ captures stderr separately from stdout  384ms
147
- ✓ runs a .ts file and returns its stdout  470ms
148
- ✓ tests/augmentation-generator.test.ts (3 tests) 14ms
149
- ✓ tests/type-resolver.test.ts (2 tests) 17ms
339
+ ✓ tests/proxy-dev-app.test.ts (7 tests) 6ms
340
+ ✓ tests/keys.test.ts (11 tests) 12562ms
341
+ ✓ exits 0 with --secret  1104ms
342
+ ✓ outputs ANON_KEY= line  1075ms
343
+ ✓ outputs SERVICE_ROLE_KEY= line  1066ms
344
+ ✓ ANON_KEY is a valid three-part JWT  1024ms
345
+ ✓ SERVICE_ROLE_KEY payload has role: service_role  1088ms
346
+ ✓ JWT has exp in the future  1030ms
347
+ ✓ --exp-years changes the expiry window  2097ms
348
+ ✓ reads JWT_SECRET from environment variable  998ms
349
+ ✓ reads JWT_SECRET from .env file  1054ms
350
+ ✓ exits non-zero when no secret is available  1029ms
351
+ ✓ keys --help shows --secret and --exp-years options  992ms
352
+ ✓ tests/augmentation-generator.test.ts (3 tests) 17ms
353
+ ✓ tests/type-resolver.test.ts (2 tests) 14ms
354
+ ✓ tests/engine-push-output.test.ts (7 tests) 6ms
355
+ ✓ tests/ui-messages.test.ts (5 tests) 7ms
150
356
  ✓ tests/ensure-binary.test.ts (2 tests) 10ms
151
357
  stdout | tests/app-command.test.ts > supatype app add --static > sets app.mode=static and static_dir in supatype.config.ts
152
358
   created package.json
@@ -158,6 +364,16 @@
158
364
  created public/.gitkeep
159
365
  created .gitignore
160
366
 
367
+ ✓ tests/tsx-runner.test.ts (7 tests) 2937ms
368
+ ✓ evaluates a simple expression and returns stdout  430ms
369
+ ✓ evaluates TypeScript syntax (type annotations)  367ms
370
+ ✓ can serialize a JSON object to stdout  459ms
371
+ ✓ returns non-zero exit code on syntax error  379ms
372
+ ✓ returns non-zero exit code on runtime error  370ms
373
+ ✓ captures stderr separately from stdout  372ms
374
+ ✓ runs a .ts file and returns its stdout  556ms
375
+ ✓ tests/normalize-admin-config.test.ts (1 test) 7ms
376
+ ✓ tests/ui-confirm.test.ts (3 tests) 8ms
161
377
  stdout | tests/app-command.test.ts > supatype app add --static > creates the static directory when missing
162
378
   created package.json
163
379
  created supatype.config.ts
@@ -168,47 +384,36 @@
168
384
  created public/.gitkeep
169
385
  created .gitignore
170
386
 
171
- ✓ tests/app-command.test.ts (2 tests) 2105ms
172
- ✓ sets app.mode=static and static_dir in supatype.config.ts  1095ms
173
- ✓ creates the static directory when missing  1008ms
174
- ✓ tests/normalize-admin-config.test.ts (1 test) 7ms
175
387
  ✓ tests/docker-postgres.test.ts (5 tests) 5ms
176
- ✓ tests/proxy-dev-app.test.ts (3 tests) 4ms
177
- ✓ tests/keys.test.ts (11 tests) 12038ms
178
- ✓ exits 0 with --secret  1191ms
179
- ✓ outputs ANON_KEY= line  995ms
180
- ✓ outputs SERVICE_ROLE_KEY= line  957ms
181
- ✓ ANON_KEY is a valid three-part JWT  1003ms
182
- ✓ SERVICE_ROLE_KEY payload has role: service_role  1048ms
183
- ✓ JWT has exp in the future  1040ms
184
- ✓ --exp-years changes the expiry window  1954ms
185
- ✓ reads JWT_SECRET from environment variable  1000ms
186
- ✓ reads JWT_SECRET from .env file  922ms
187
- ✓ exits non-zero when no secret is available  930ms
188
- ✓ keys --help shows --secret and --exp-years options  991ms
189
- ✓ tests/seed-discover.test.ts (2 tests) 20ms
190
- ✓ tests/studio-admin-roles.test.ts (3 tests) 5ms
191
- ✓ tests/release-pins.test.ts (2 tests) 3ms
192
- ✓ tests/pg-spawn-env.test.ts (2 tests) 5ms
388
+ ✓ tests/seed-discover.test.ts (2 tests) 14ms
389
+ ✓ tests/studio-admin-roles.test.ts (3 tests) 4ms
390
+ ✓ tests/app-command.test.ts (2 tests) 2183ms
391
+ ✓ sets app.mode=static and static_dir in supatype.config.ts  1081ms
392
+ ✓ creates the static directory when missing  1100ms
393
+ ✓ tests/cli-help.test.ts (16 tests) 16526ms
394
+ ✓ --help lists all top-level commands  1119ms
395
+ ✓ --version prints a semver string  1022ms
396
+ ✓ self-update --help describes the command  1026ms
397
+ ✓ init --help describes the init command  986ms
398
+ ✓ push --help describes the push command and --yes flag  960ms
399
+ ✓ diff --help describes the diff command  1013ms
400
+ ✓ pull --help describes scaffold pull command  1109ms
401
+ ✓ doctor --help describes drift report command  1101ms
402
+ ✓ introspect --help describes database introspection command  1111ms
403
+ ✓ adopt --help describes adoption ceremony command  1031ms
404
+ ✓ reset --help shows --yes flag  1054ms
405
+ ✓ app --help describes the app command with add/remove subcommands  1001ms
406
+ ✓ app add --help shows --static and --port options  981ms
407
+ ✓ self-host --help shows compose only (legacy commands hidden)  997ms
408
+ ✓ self-host compose --help shows compose subcommands  988ms
409
+ ✓ unknown command exits non-zero  1019ms
410
+ ✓ tests/pg-spawn-env.test.ts (2 tests) 3ms
411
+ ✓ tests/release-pins.test.ts (2 tests) 4ms
193
412
  ✓ tests/postgres-archive-tag.test.ts (1 test) 3ms
194
413
  ✓ tests/migrate-from-v1.test.ts (1 test) 11ms
195
- ✓ tests/cli-help.test.ts (13 tests) 12456ms
196
- ✓ --help lists all top-level commands  931ms
197
- ✓ --version prints a semver string  889ms
198
- ✓ self-update --help describes the command  978ms
199
- ✓ init --help describes the init command  1025ms
200
- ✓ push --help describes the push command and --yes flag  927ms
201
- ✓ diff --help describes the diff command  985ms
202
- ✓ pull --help describes deprecated pull command  1049ms
203
- ✓ reset --help shows --yes flag  881ms
204
- ✓ app --help describes the app command with add/remove subcommands  932ms
205
- ✓ app add --help shows --static and --port options  1008ms
206
- ✓ self-host --help shows compose only (legacy commands hidden)  1000ms
207
- ✓ self-host compose --help shows compose subcommands  958ms
208
- ✓ unknown command exits non-zero  887ms
209
-
210
-  Test Files  23 passed (23)
211
-  Tests  216 passed (216)
212
-  Start at  15:41:44
213
-  Duration  16.26s (transform 2.65s, setup 0ms, import 8.71s, tests 34.52s, environment 4ms)
414
+
415
+  Test Files  32 passed (32)
416
+  Tests  311 passed (311)
417
+  Start at  07:36:07
418
+  Duration  20.09s (transform 3.26s, setup 0ms, import 9.33s, tests 43.60s, environment 6ms)
214
419
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @supatype/cli@0.1.0-alpha.9 typecheck /home/runner/work/supatype/supatype/packages/cli
2
+ > @supatype/cli@0.1.0 typecheck /home/runner/work/supatype/supatype/packages/cli
3
3
  > tsc --project tsconfig.json --noEmit
4
4
 
@@ -0,0 +1,6 @@
1
+ __
2
+ _______ ______ ____ _/ /___ ______ ___
3
+ / ___/ / / / __ \/ __ `/ __/ / / / __ \/ _ \
4
+ (__ ) /_/ / /_/ / /_/ / /_/ /_/ / /_/ / __/
5
+ /____/\__,_/ .___/\__,_/\__/\__, / .___/\___/
6
+ /_/ /____/_/
package/bin/dev-entry.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { run } from "../src/cli.js"
2
- run()
2
+
3
+ void run()
@@ -3,7 +3,7 @@
3
3
  * Inspects package.json to determine the framework, then resolves
4
4
  * build command, output directory, and SPA mode defaults.
5
5
  */
6
- import { existsSync, readFileSync } from "node:fs";
6
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
7
7
  import { join, resolve } from "node:path";
8
8
  const FRAMEWORK_DEFAULTS = {
9
9
  nextjs: { buildCommand: "next build", outputDirectory: "out", spa: false },
@@ -174,7 +174,6 @@ export function validateBuildOutput(outputDir, maxSizeMb) {
174
174
  return null;
175
175
  }
176
176
  function findHtmlFile(dir) {
177
- const { readdirSync, statSync } = require("node:fs");
178
177
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
179
178
  if (entry.isFile() && entry.name.endsWith(".html"))
180
179
  return true;
@@ -186,7 +185,6 @@ function findHtmlFile(dir) {
186
185
  return false;
187
186
  }
188
187
  function getDirSizeMb(dir) {
189
- const { readdirSync, statSync } = require("node:fs");
190
188
  let size = 0;
191
189
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
192
190
  const path = join(dir, entry.name);
@@ -1 +1 @@
1
- {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/app/framework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/app/framework.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,20 @@ import { ProcessManager } from "../process-manager.js";
5
5
  import { type SupatypeProjectConfig } from "../project-config.js";
6
6
  /** package.json script name to run (only when app.mode is proxy). */
7
7
  export declare function resolveProxyDevScript(config: SupatypeProjectConfig): string | null;
8
+ /** Port from app.upstream (e.g. http://localhost:5285 → 5285). */
9
+ export declare function portFromUpstream(config: SupatypeProjectConfig): number | null;
10
+ /** Free the upstream port and any stale app PID before spawning Vite. */
11
+ export declare function freeProxyDevPort(pidDir: string, port: number): void;
12
+ /**
13
+ * When a package.json script only runs Vite, spawn node + vite.js directly.
14
+ * Avoids Windows shell shims (pnpm → bash → vite) that orphan the real server
15
+ * and break PID-based cleanup / auto-restart.
16
+ */
17
+ export declare function resolveViteDirectSpawn(appDir: string, script: string, scripts: Record<string, string> | undefined): {
18
+ bin: string;
19
+ args: string[];
20
+ shell: boolean;
21
+ } | null;
8
22
  /**
9
23
  * Start the configured package.json script for proxy dev.
10
24
  * Returns null when not in proxy mode or when the script is missing.
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-dev-app.d.ts","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIxF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CAuCvB"}
1
+ {"version":3,"file":"proxy-dev-app.d.ts","sourceRoot":"","sources":["../../src/app/proxy-dev-app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIxF,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAW7E;AAmDD,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAInE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAexD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CAiDvB"}
@@ -1,10 +1,12 @@
1
1
  /**
2
2
  * Spawn the frontend dev server during `supatype dev` when app.mode is proxy.
3
3
  */
4
+ import { execSync } from "node:child_process";
4
5
  import { existsSync, readFileSync } from "node:fs";
5
6
  import { join } from "node:path";
6
7
  import { detectPackageManager } from "./framework.js";
7
- import { ProcessManager } from "../process-manager.js";
8
+ import { appendDevTaskLog } from "../dev-session.js";
9
+ import { ProcessManager, readPid } from "../process-manager.js";
8
10
  import { projectRootFromConfig } from "../project-config.js";
9
11
  const DEFAULT_PROXY_DEV_SCRIPT = "start";
10
12
  /** package.json script name to run (only when app.mode is proxy). */
@@ -14,6 +16,102 @@ export function resolveProxyDevScript(config) {
14
16
  const script = config.app.start?.trim();
15
17
  return script && script.length > 0 ? script : DEFAULT_PROXY_DEV_SCRIPT;
16
18
  }
19
+ /** Port from app.upstream (e.g. http://localhost:5285 → 5285). */
20
+ export function portFromUpstream(config) {
21
+ const raw = config.app?.upstream?.trim();
22
+ if (!raw)
23
+ return null;
24
+ try {
25
+ const port = new URL(raw).port;
26
+ if (!port)
27
+ return null;
28
+ const n = Number(port);
29
+ return Number.isFinite(n) && n > 0 ? n : null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ function killPidTree(pid) {
36
+ if (!Number.isFinite(pid) || pid <= 0)
37
+ return;
38
+ try {
39
+ if (process.platform === "win32") {
40
+ execSync(`taskkill /pid ${pid} /T /F`, { stdio: "ignore" });
41
+ }
42
+ else {
43
+ execSync(`kill -9 ${pid}`, { stdio: "ignore" });
44
+ }
45
+ }
46
+ catch {
47
+ /* already gone */
48
+ }
49
+ }
50
+ function killPortListeners(port) {
51
+ if (process.platform === "win32") {
52
+ try {
53
+ const out = execSync(`netstat -ano | findstr :${port}`, { encoding: "utf8" });
54
+ const pids = new Set();
55
+ for (const line of out.split("\n")) {
56
+ const match = line.match(/LISTENING\s+(\d+)/);
57
+ if (match?.[1])
58
+ pids.add(match[1]);
59
+ }
60
+ for (const pid of pids) {
61
+ try {
62
+ execSync(`taskkill /pid ${pid} /T /F`, { stdio: "ignore" });
63
+ }
64
+ catch {
65
+ /* already gone */
66
+ }
67
+ }
68
+ }
69
+ catch {
70
+ /* nothing listening */
71
+ }
72
+ return;
73
+ }
74
+ try {
75
+ const out = execSync(`lsof -ti :${port}`, { encoding: "utf8" });
76
+ for (const pid of out.trim().split(/\s+/)) {
77
+ try {
78
+ execSync(`kill -9 ${pid}`, { stdio: "ignore" });
79
+ }
80
+ catch {
81
+ /* already gone */
82
+ }
83
+ }
84
+ }
85
+ catch {
86
+ /* nothing listening */
87
+ }
88
+ }
89
+ /** Free the upstream port and any stale app PID before spawning Vite. */
90
+ export function freeProxyDevPort(pidDir, port) {
91
+ const stalePid = readPid(pidDir, "app");
92
+ if (stalePid)
93
+ killPidTree(stalePid);
94
+ killPortListeners(port);
95
+ }
96
+ /**
97
+ * When a package.json script only runs Vite, spawn node + vite.js directly.
98
+ * Avoids Windows shell shims (pnpm → bash → vite) that orphan the real server
99
+ * and break PID-based cleanup / auto-restart.
100
+ */
101
+ export function resolveViteDirectSpawn(appDir, script, scripts) {
102
+ const body = scripts?.[script]?.trim() ?? "";
103
+ if (!body)
104
+ return null;
105
+ const runsVite = body === "vite" ||
106
+ /^vite\s/.test(body) ||
107
+ body.includes("vite/bin/vite");
108
+ if (!runsVite)
109
+ return null;
110
+ const viteJs = join(appDir, "node_modules", "vite", "bin", "vite.js");
111
+ if (!existsSync(viteJs))
112
+ return null;
113
+ return { bin: process.execPath, args: [viteJs], shell: false };
114
+ }
17
115
  /**
18
116
  * Start the configured package.json script for proxy dev.
19
117
  * Returns null when not in proxy mode or when the script is missing.
@@ -34,18 +132,24 @@ export function startProxyDevApp(cwd, config, pidDir) {
34
132
  ` Add "scripts.${script}" or set app.start in supatype.config.ts`);
35
133
  return null;
36
134
  }
135
+ const upstreamPort = portFromUpstream(config);
136
+ const directVite = resolveViteDirectSpawn(appDir, script, pkg.scripts);
37
137
  const pm = detectPackageManager(appDir);
38
- const bin = pm;
39
- const args = pm === "yarn" ? [script] : ["run", script];
40
- // pnpm/npm/yarn are .cmd shims on Windows spawn via shell so PATH resolution works.
41
- const useShell = process.platform === "win32";
42
- console.log(`[supatype] Proxy mode: running ${bin} ${args.join(" ")} (${appDir})`);
138
+ const bin = directVite?.bin ?? pm;
139
+ const args = directVite?.args ?? (pm === "yarn" ? [script] : ["run", script]);
140
+ const useShell = directVite ? false : process.platform === "win32";
141
+ appendDevTaskLog("app", "app", directVite
142
+ ? `Proxy mode: running node vite.js (${appDir})`
143
+ : `Proxy mode: running ${bin} ${args.join(" ")} (${appDir})`);
144
+ if (upstreamPort)
145
+ freeProxyDevPort(pidDir, upstreamPort);
43
146
  const manager = new ProcessManager(bin, args, {
44
147
  label: "app",
45
148
  pidDir,
46
149
  cwd: appDir,
47
150
  colour: "\x1b[33m",
48
151
  shell: useShell,
152
+ ...(upstreamPort ? { beforeRestart: () => freeProxyDevPort(pidDir, upstreamPort) } : {}),
49
153
  });
50
154
  manager.start();
51
155
  return manager;