@supatype/cli 0.1.0-alpha.7 → 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 (123) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +67 -62
  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/binary-cache.d.ts +5 -0
  9. package/dist/binary-cache.d.ts.map +1 -1
  10. package/dist/binary-cache.js +13 -0
  11. package/dist/binary-cache.js.map +1 -1
  12. package/dist/commands/cloud.d.ts +11 -3
  13. package/dist/commands/cloud.d.ts.map +1 -1
  14. package/dist/commands/cloud.js +33 -25
  15. package/dist/commands/cloud.js.map +1 -1
  16. package/dist/commands/deploy.d.ts.map +1 -1
  17. package/dist/commands/deploy.js +3 -17
  18. package/dist/commands/deploy.js.map +1 -1
  19. package/dist/commands/dev.d.ts +3 -3
  20. package/dist/commands/dev.d.ts.map +1 -1
  21. package/dist/commands/dev.js +66 -59
  22. package/dist/commands/dev.js.map +1 -1
  23. package/dist/commands/diff.d.ts.map +1 -1
  24. package/dist/commands/diff.js +11 -1
  25. package/dist/commands/diff.js.map +1 -1
  26. package/dist/commands/init.js +16 -3
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/push.d.ts.map +1 -1
  29. package/dist/commands/push.js +42 -12
  30. package/dist/commands/push.js.map +1 -1
  31. package/dist/commands/update.d.ts.map +1 -1
  32. package/dist/commands/update.js +16 -0
  33. package/dist/commands/update.js.map +1 -1
  34. package/dist/dev-compose.d.ts +17 -0
  35. package/dist/dev-compose.d.ts.map +1 -0
  36. package/dist/dev-compose.js +374 -0
  37. package/dist/dev-compose.js.map +1 -0
  38. package/dist/diff-output.d.ts +4 -0
  39. package/dist/diff-output.d.ts.map +1 -0
  40. package/dist/diff-output.js +12 -0
  41. package/dist/diff-output.js.map +1 -0
  42. package/dist/docker-postgres.d.ts +21 -3
  43. package/dist/docker-postgres.d.ts.map +1 -1
  44. package/dist/docker-postgres.js +130 -18
  45. package/dist/docker-postgres.js.map +1 -1
  46. package/dist/engine-client.d.ts +5 -3
  47. package/dist/engine-client.d.ts.map +1 -1
  48. package/dist/engine-client.js +2 -1
  49. package/dist/engine-client.js.map +1 -1
  50. package/dist/kong-config.d.ts +4 -0
  51. package/dist/kong-config.d.ts.map +1 -1
  52. package/dist/kong-config.js +12 -1
  53. package/dist/kong-config.js.map +1 -1
  54. package/dist/process-manager.d.ts +2 -0
  55. package/dist/process-manager.d.ts.map +1 -1
  56. package/dist/process-manager.js +16 -1
  57. package/dist/process-manager.js.map +1 -1
  58. package/dist/project-config.d.ts +21 -1
  59. package/dist/project-config.d.ts.map +1 -1
  60. package/dist/project-config.js +15 -0
  61. package/dist/project-config.js.map +1 -1
  62. package/dist/runtime-routes.d.ts +9 -0
  63. package/dist/runtime-routes.d.ts.map +1 -1
  64. package/dist/runtime-routes.js +75 -12
  65. package/dist/runtime-routes.js.map +1 -1
  66. package/dist/schema-ast-v2.d.ts +127 -0
  67. package/dist/schema-ast-v2.d.ts.map +1 -0
  68. package/dist/schema-ast-v2.js +226 -0
  69. package/dist/schema-ast-v2.js.map +1 -0
  70. package/dist/self-host-compose.d.ts +12 -4
  71. package/dist/self-host-compose.d.ts.map +1 -1
  72. package/dist/self-host-compose.js +146 -35
  73. package/dist/self-host-compose.js.map +1 -1
  74. package/dist/studio-admin-roles.d.ts +7 -0
  75. package/dist/studio-admin-roles.d.ts.map +1 -0
  76. package/dist/studio-admin-roles.js +14 -0
  77. package/dist/studio-admin-roles.js.map +1 -0
  78. package/dist/studio-dev-server.d.ts +22 -0
  79. package/dist/studio-dev-server.d.ts.map +1 -0
  80. package/dist/studio-dev-server.js +28 -0
  81. package/dist/studio-dev-server.js.map +1 -0
  82. package/dist/type-extractor.d.ts +3 -30
  83. package/dist/type-extractor.d.ts.map +1 -1
  84. package/dist/type-extractor.js +485 -148
  85. package/dist/type-extractor.js.map +1 -1
  86. package/dist/type-resolver.d.ts +33 -0
  87. package/dist/type-resolver.d.ts.map +1 -0
  88. package/dist/type-resolver.js +338 -0
  89. package/dist/type-resolver.js.map +1 -0
  90. package/package.json +1 -1
  91. package/src/TYPE-RESOLUTION.md +294 -0
  92. package/src/app/proxy-dev-app.ts +67 -0
  93. package/src/binary-cache.ts +20 -0
  94. package/src/commands/cloud.ts +40 -30
  95. package/src/commands/deploy.ts +3 -18
  96. package/src/commands/dev.ts +72 -69
  97. package/src/commands/diff.ts +11 -1
  98. package/src/commands/init.ts +16 -3
  99. package/src/commands/push.ts +49 -13
  100. package/src/commands/update.ts +17 -0
  101. package/src/dev-compose.ts +455 -0
  102. package/src/diff-output.ts +12 -0
  103. package/src/docker-postgres.ts +184 -27
  104. package/src/engine-client.ts +9 -4
  105. package/src/kong-config.ts +16 -1
  106. package/src/process-manager.ts +18 -1
  107. package/src/project-config.ts +34 -1
  108. package/src/runtime-routes.ts +87 -12
  109. package/src/schema-ast-v2.ts +324 -0
  110. package/src/self-host-compose.ts +168 -36
  111. package/src/studio-admin-roles.ts +16 -0
  112. package/src/studio-dev-server.ts +53 -0
  113. package/src/type-extractor.ts +649 -186
  114. package/src/type-resolver.ts +457 -0
  115. package/tests/config.test.ts +34 -3
  116. package/tests/docker-postgres.test.ts +39 -0
  117. package/tests/normalize-admin-config.test.ts +48 -0
  118. package/tests/proxy-dev-app.test.ts +33 -0
  119. package/tests/runtime-contract.test.ts +119 -4
  120. package/tests/studio-admin-roles.test.ts +27 -0
  121. package/tests/type-extractor.test.ts +607 -23
  122. package/tests/type-resolver.test.ts +59 -0
  123. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,53 @@
1
+ import { existsSync } from "node:fs"
2
+ import { join, resolve } from "node:path"
3
+ import { ProcessManager } from "./process-manager.js"
4
+
5
+ const STUDIO_PORT = 3002
6
+
7
+ export interface StudioDevServerOptions {
8
+ cwd: string
9
+ studioOverride: string
10
+ pidDir: string
11
+ serviceRoleKey: string
12
+ /**
13
+ * Where Vite proxies API requests (Kong gateway port for compose dev, or
14
+ * supatype-server port for native `supatype dev`).
15
+ */
16
+ proxyTarget: string
17
+ /**
18
+ * Public Supatype URL the browser uses. Compose dev: Kong on the host.
19
+ * Native dev: Vite dev server (same origin as Studio).
20
+ */
21
+ viteSupatypeUrl: string
22
+ /** Vite `base` — `/studio/` when behind Kong at `/studio/`; `/` for native dev on :3002. */
23
+ basePath?: string
24
+ }
25
+
26
+ /** Start @supatype/studio Vite dev server when `overrides.studio` is set. */
27
+ export function startStudioViteDevServer(opts: StudioDevServerOptions): ProcessManager | null {
28
+ const studioDir = resolve(opts.cwd, opts.studioOverride)
29
+ const viteJs = join(studioDir, "node_modules", "vite", "bin", "vite.js")
30
+ if (!existsSync(viteJs)) {
31
+ console.warn(`[supatype] ⚠ Studio override set but vite not found at ${viteJs}. Run: pnpm install`)
32
+ return null
33
+ }
34
+
35
+ const basePath = opts.basePath ?? "/"
36
+ return new ProcessManager(
37
+ process.execPath,
38
+ [viteJs, "--port", String(STUDIO_PORT), "--strictPort", "--host"],
39
+ {
40
+ label: "studio",
41
+ pidDir: opts.pidDir,
42
+ cwd: studioDir,
43
+ colour: "\x1b[35m",
44
+ env: {
45
+ VITE_SUPATYPE_URL: opts.viteSupatypeUrl,
46
+ SUPATYPE_PROXY_TARGET: opts.proxyTarget,
47
+ VITE_SUPATYPE_ANON_KEY: opts.serviceRoleKey,
48
+ VITE_SUPATYPE_SERVICE_ROLE_KEY: opts.serviceRoleKey,
49
+ VITE_BASE_PATH: basePath,
50
+ },
51
+ },
52
+ )
53
+ }