@supatype/cli 0.1.6 → 0.1.7

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 (243) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +144 -94
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/deno.d.ts +52 -0
  5. package/dist/augmentation-generator.d.ts +22 -0
  6. package/dist/augmentation-generator.d.ts.map +1 -1
  7. package/dist/augmentation-generator.js +18 -4
  8. package/dist/augmentation-generator.js.map +1 -1
  9. package/dist/binary-cache.d.ts +14 -0
  10. package/dist/binary-cache.d.ts.map +1 -1
  11. package/dist/binary-cache.js +33 -13
  12. package/dist/binary-cache.js.map +1 -1
  13. package/dist/cache-clean.d.ts +15 -0
  14. package/dist/cache-clean.d.ts.map +1 -0
  15. package/dist/cache-clean.js +76 -0
  16. package/dist/cache-clean.js.map +1 -0
  17. package/dist/cache-pins.d.ts +51 -0
  18. package/dist/cache-pins.d.ts.map +1 -0
  19. package/dist/cache-pins.js +184 -0
  20. package/dist/cache-pins.js.map +1 -0
  21. package/dist/cli-install-method.d.ts +19 -0
  22. package/dist/cli-install-method.d.ts.map +1 -0
  23. package/dist/cli-install-method.js +60 -0
  24. package/dist/cli-install-method.js.map +1 -0
  25. package/dist/cli.d.ts.map +1 -1
  26. package/dist/cli.js +6 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/cloud-credentials.d.ts +34 -0
  29. package/dist/cloud-credentials.d.ts.map +1 -0
  30. package/dist/cloud-credentials.js +139 -0
  31. package/dist/cloud-credentials.js.map +1 -0
  32. package/dist/commands/admin.d.ts +11 -0
  33. package/dist/commands/admin.d.ts.map +1 -1
  34. package/dist/commands/admin.js +121 -19
  35. package/dist/commands/admin.js.map +1 -1
  36. package/dist/commands/cache.d.ts.map +1 -1
  37. package/dist/commands/cache.js +67 -71
  38. package/dist/commands/cache.js.map +1 -1
  39. package/dist/commands/cloud.d.ts.map +1 -1
  40. package/dist/commands/cloud.js +32 -8
  41. package/dist/commands/cloud.js.map +1 -1
  42. package/dist/commands/db.d.ts +1 -0
  43. package/dist/commands/db.d.ts.map +1 -1
  44. package/dist/commands/db.js +147 -1
  45. package/dist/commands/db.js.map +1 -1
  46. package/dist/commands/dev.d.ts.map +1 -1
  47. package/dist/commands/dev.js +50 -10
  48. package/dist/commands/dev.js.map +1 -1
  49. package/dist/commands/doctor.d.ts +28 -0
  50. package/dist/commands/doctor.d.ts.map +1 -1
  51. package/dist/commands/doctor.js +60 -3
  52. package/dist/commands/doctor.js.map +1 -1
  53. package/dist/commands/functions.d.ts +7 -0
  54. package/dist/commands/functions.d.ts.map +1 -1
  55. package/dist/commands/functions.js +40 -6
  56. package/dist/commands/functions.js.map +1 -1
  57. package/dist/commands/generate.d.ts.map +1 -1
  58. package/dist/commands/generate.js +5 -1
  59. package/dist/commands/generate.js.map +1 -1
  60. package/dist/commands/hooks.d.ts +12 -0
  61. package/dist/commands/hooks.d.ts.map +1 -0
  62. package/dist/commands/hooks.js +118 -0
  63. package/dist/commands/hooks.js.map +1 -0
  64. package/dist/commands/init.d.ts.map +1 -1
  65. package/dist/commands/init.js +41 -7
  66. package/dist/commands/init.js.map +1 -1
  67. package/dist/commands/internal.d.ts +6 -0
  68. package/dist/commands/internal.d.ts.map +1 -0
  69. package/dist/commands/internal.js +22 -0
  70. package/dist/commands/internal.js.map +1 -0
  71. package/dist/commands/link-helpers.d.ts.map +1 -1
  72. package/dist/commands/link-helpers.js +8 -2
  73. package/dist/commands/link-helpers.js.map +1 -1
  74. package/dist/commands/login.d.ts +7 -0
  75. package/dist/commands/login.d.ts.map +1 -0
  76. package/dist/commands/login.js +110 -0
  77. package/dist/commands/login.js.map +1 -0
  78. package/dist/commands/push.d.ts.map +1 -1
  79. package/dist/commands/push.js +110 -7
  80. package/dist/commands/push.js.map +1 -1
  81. package/dist/commands/self-update.d.ts +7 -0
  82. package/dist/commands/self-update.d.ts.map +1 -1
  83. package/dist/commands/self-update.js +18 -11
  84. package/dist/commands/self-update.js.map +1 -1
  85. package/dist/config.d.ts.map +1 -1
  86. package/dist/config.js +18 -3
  87. package/dist/config.js.map +1 -1
  88. package/dist/db-preflight.d.ts +78 -0
  89. package/dist/db-preflight.d.ts.map +1 -0
  90. package/dist/db-preflight.js +452 -0
  91. package/dist/db-preflight.js.map +1 -0
  92. package/dist/dev-compose.d.ts +1 -1
  93. package/dist/dev-compose.d.ts.map +1 -1
  94. package/dist/dev-compose.js +127 -72
  95. package/dist/dev-compose.js.map +1 -1
  96. package/dist/env-file.d.ts +40 -2
  97. package/dist/env-file.d.ts.map +1 -1
  98. package/dist/env-file.js +132 -11
  99. package/dist/env-file.js.map +1 -1
  100. package/dist/field-masking-tier.d.ts +50 -0
  101. package/dist/field-masking-tier.d.ts.map +1 -0
  102. package/dist/field-masking-tier.js +91 -0
  103. package/dist/field-masking-tier.js.map +1 -0
  104. package/dist/functions-deno-types.d.ts +24 -0
  105. package/dist/functions-deno-types.d.ts.map +1 -0
  106. package/dist/functions-deno-types.js +155 -0
  107. package/dist/functions-deno-types.js.map +1 -0
  108. package/dist/hook-upload.d.ts +30 -0
  109. package/dist/hook-upload.d.ts.map +1 -0
  110. package/dist/hook-upload.js +86 -0
  111. package/dist/hook-upload.js.map +1 -0
  112. package/dist/hooks-generator.d.ts +8 -0
  113. package/dist/hooks-generator.d.ts.map +1 -0
  114. package/dist/hooks-generator.js +332 -0
  115. package/dist/hooks-generator.js.map +1 -0
  116. package/dist/link.d.ts +4 -0
  117. package/dist/link.d.ts.map +1 -1
  118. package/dist/link.js +2 -0
  119. package/dist/link.js.map +1 -1
  120. package/dist/local-secrets.d.ts +71 -0
  121. package/dist/local-secrets.d.ts.map +1 -0
  122. package/dist/local-secrets.js +100 -0
  123. package/dist/local-secrets.js.map +1 -0
  124. package/dist/model-hooks.d.ts +73 -0
  125. package/dist/model-hooks.d.ts.map +1 -0
  126. package/dist/model-hooks.js +211 -0
  127. package/dist/model-hooks.js.map +1 -0
  128. package/dist/postgres-ctl.d.ts +11 -0
  129. package/dist/postgres-ctl.d.ts.map +1 -1
  130. package/dist/postgres-ctl.js +25 -2
  131. package/dist/postgres-ctl.js.map +1 -1
  132. package/dist/project-config.d.ts +121 -1
  133. package/dist/project-config.d.ts.map +1 -1
  134. package/dist/project-config.js +150 -1
  135. package/dist/project-config.js.map +1 -1
  136. package/dist/resolve-target.d.ts +4 -0
  137. package/dist/resolve-target.d.ts.map +1 -1
  138. package/dist/resolve-target.js +69 -73
  139. package/dist/resolve-target.js.map +1 -1
  140. package/dist/schema-ast-v2.d.ts +2 -1
  141. package/dist/schema-ast-v2.d.ts.map +1 -1
  142. package/dist/schema-ast-v2.js +4 -2
  143. package/dist/schema-ast-v2.js.map +1 -1
  144. package/dist/schema-push-lock.d.ts.map +1 -1
  145. package/dist/schema-push-lock.js +43 -16
  146. package/dist/schema-push-lock.js.map +1 -1
  147. package/dist/self-host-compose.d.ts +24 -0
  148. package/dist/self-host-compose.d.ts.map +1 -1
  149. package/dist/self-host-compose.js +301 -69
  150. package/dist/self-host-compose.js.map +1 -1
  151. package/dist/service-role-check.d.ts +21 -0
  152. package/dist/service-role-check.d.ts.map +1 -0
  153. package/dist/service-role-check.js +85 -0
  154. package/dist/service-role-check.js.map +1 -0
  155. package/dist/target-client.d.ts +17 -0
  156. package/dist/target-client.d.ts.map +1 -1
  157. package/dist/target-client.js +69 -17
  158. package/dist/target-client.js.map +1 -1
  159. package/dist/type-extractor.d.ts.map +1 -1
  160. package/dist/type-extractor.js +736 -32
  161. package/dist/type-extractor.js.map +1 -1
  162. package/dist/ui/runtime/command-chrome.js +1 -1
  163. package/dist/ui/runtime/command-chrome.js.map +1 -1
  164. package/dist/ui/runtime/stdin-after-ink.d.ts.map +1 -1
  165. package/dist/ui/runtime/stdin-after-ink.js +3 -1
  166. package/dist/ui/runtime/stdin-after-ink.js.map +1 -1
  167. package/package.json +4 -1
  168. package/scripts/generate-homebrew-formula.mjs +121 -0
  169. package/src/augmentation-generator.ts +18 -5
  170. package/src/binary-cache.ts +47 -15
  171. package/src/cache-clean.ts +81 -0
  172. package/src/cache-pins.ts +243 -0
  173. package/src/cli-install-method.ts +67 -0
  174. package/src/cli.ts +6 -0
  175. package/src/cloud-credentials.ts +183 -0
  176. package/src/commands/admin.ts +140 -25
  177. package/src/commands/cache.ts +90 -75
  178. package/src/commands/cloud.ts +32 -8
  179. package/src/commands/db.ts +162 -1
  180. package/src/commands/dev.ts +57 -8
  181. package/src/commands/doctor.ts +69 -3
  182. package/src/commands/functions.ts +42 -5
  183. package/src/commands/generate.ts +5 -1
  184. package/src/commands/hooks.ts +138 -0
  185. package/src/commands/init.ts +42 -8
  186. package/src/commands/internal.ts +23 -0
  187. package/src/commands/link-helpers.ts +9 -2
  188. package/src/commands/login.ts +127 -0
  189. package/src/commands/push.ts +124 -7
  190. package/src/commands/self-update.ts +85 -13
  191. package/src/config.ts +22 -3
  192. package/src/db-preflight.ts +575 -0
  193. package/src/dev-compose.ts +142 -73
  194. package/src/env-file.ts +157 -11
  195. package/src/field-masking-tier.ts +107 -0
  196. package/src/functions-deno-types.ts +188 -0
  197. package/src/hook-upload.ts +107 -0
  198. package/src/hooks-generator.ts +352 -0
  199. package/src/link.ts +7 -0
  200. package/src/local-secrets.ts +104 -0
  201. package/src/model-hooks.ts +260 -0
  202. package/src/postgres-ctl.ts +29 -2
  203. package/src/project-config.ts +236 -2
  204. package/src/resolve-target.ts +113 -68
  205. package/src/schema-ast-v2.ts +5 -2
  206. package/src/schema-push-lock.ts +56 -17
  207. package/src/self-host-compose.ts +344 -68
  208. package/src/service-role-check.ts +111 -0
  209. package/src/target-client.ts +105 -18
  210. package/src/type-extractor.ts +883 -28
  211. package/src/ui/runtime/command-chrome.ts +1 -1
  212. package/src/ui/runtime/stdin-after-ink.ts +3 -1
  213. package/tests/access-composition.test.ts +667 -0
  214. package/tests/admin-studio-membership.test.ts +121 -0
  215. package/tests/api-schemas.test.ts +83 -0
  216. package/tests/archive-name-alias.test.ts +42 -0
  217. package/tests/augmentation-generator.test.ts +28 -0
  218. package/tests/cache-clean.test.ts +206 -0
  219. package/tests/cli-help.test.ts +3 -0
  220. package/tests/cli-install-method.test.ts +66 -0
  221. package/tests/command-chrome-coverage.test.ts +31 -26
  222. package/tests/command-chrome-wrap.test.ts +1 -0
  223. package/tests/db-preflight.test.ts +72 -0
  224. package/tests/doctor-render.test.ts +62 -0
  225. package/tests/doctor-service-role.test.ts +55 -0
  226. package/tests/env-file.test.ts +121 -0
  227. package/tests/external-database-compose.test.ts +184 -0
  228. package/tests/external-database-config.test.ts +154 -0
  229. package/tests/field-masking-tier.test.ts +184 -0
  230. package/tests/functions-deno-types.test.ts +197 -0
  231. package/tests/homebrew-formula.test.ts +58 -0
  232. package/tests/hook-upload.test.ts +125 -0
  233. package/tests/hooks-generator.test.ts +212 -0
  234. package/tests/init.test.ts +3 -0
  235. package/tests/local-secrets.test.ts +92 -0
  236. package/tests/model-hooks.test.ts +322 -0
  237. package/tests/runtime-contract.test.ts +113 -1
  238. package/tests/service-role-check.test.ts +109 -0
  239. package/tests/service-role-routes.test.ts +51 -0
  240. package/tests/target-client-refresh.test.ts +94 -0
  241. package/tests/type-extractor.test.ts +187 -0
  242. package/tsconfig.tsbuildinfo +1 -1
  243. package/tests/engine-distribution.test.ts +0 -418
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Hidden internal commands (Homebrew post_install, etc.).
3
+ */
4
+ import { downloadAll } from "../binary-cache.js";
5
+ import { error, info } from "../ui/messages.js";
6
+ export function registerInternalCommands(program) {
7
+ program
8
+ .command("_postinstall", { hidden: true })
9
+ .description("Prefetch CDN component binaries after install (Homebrew post_install)")
10
+ .action(async () => {
11
+ try {
12
+ info("Prefetching Supatype component binaries for this platform...");
13
+ await downloadAll(undefined, true);
14
+ info("Component prefetch complete.");
15
+ }
16
+ catch (err) {
17
+ error(err instanceof Error ? err.message : String(err));
18
+ process.exit(1);
19
+ }
20
+ });
21
+ }
22
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/commands/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACzC,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,8DAA8D,CAAC,CAAA;YACpE,MAAM,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/link-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAA;AA6BnB,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgFnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8HhB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAOtD"}
1
+ {"version":3,"file":"link-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/link-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAA;AA8BnB,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgFnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIhB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAOtD"}
@@ -1,4 +1,5 @@
1
1
  import { loadConfig } from "../config.js";
2
+ import { loadCloudCredentials } from "../cloud-credentials.js";
2
3
  import { createCloudLink, createSelfHostLink, loadProjectLink, saveProjectLink, } from "../link.js";
3
4
  import { ensureSupatypeGitignore, warnIfLinkNotGitignored } from "../gitignore.js";
4
5
  import { targetFetch } from "../target-client.js";
@@ -11,7 +12,8 @@ function resolveLinkToken(opts) {
11
12
  opts.serviceRoleKey ??
12
13
  process.env["SUPATYPE_ACCESS_TOKEN"] ??
13
14
  process.env["SUPATYPE_TOKEN"] ??
14
- process.env["SERVICE_ROLE_KEY"]);
15
+ process.env["SERVICE_ROLE_KEY"] ??
16
+ loadCloudCredentials()?.accessToken);
15
17
  }
16
18
  async function probeSelfHostLink(apiUrl, projectRef, token) {
17
19
  await targetFetch(apiUrl, "/platform/v1", {
@@ -169,10 +171,13 @@ export async function runLinkAction(opts) {
169
171
  return;
170
172
  }
171
173
  if (!token) {
172
- error("Authentication required. Set SUPATYPE_ACCESS_TOKEN or pass --token.");
174
+ error("Authentication required. Run: supatype login (or set SUPATYPE_ACCESS_TOKEN / pass --token).");
173
175
  process.exit(1);
174
176
  }
175
177
  const cloudApiUrl = opts.apiUrl.replace(/\/$/, "");
178
+ const creds = loadCloudCredentials();
179
+ const refreshToken = (creds?.apiUrl.replace(/\/$/, "") === cloudApiUrl ? creds.refreshToken : undefined) ??
180
+ existing?.refreshToken;
176
181
  if (project) {
177
182
  const one = await targetFetch(cloudApiUrl, "/api/v1", {
178
183
  method: "GET",
@@ -203,6 +208,7 @@ export async function runLinkAction(opts) {
203
208
  orgId: one.orgId,
204
209
  environments,
205
210
  existing,
211
+ ...(refreshToken !== undefined ? { refreshToken } : {}),
206
212
  });
207
213
  saveProjectLink(cwd, link);
208
214
  info(`Linked to cloud project: ${project}`);
@@ -1 +1 @@
1
- {"version":3,"file":"link-helpers.js","sourceRoot":"","sources":["../../src/commands/link-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-helpers.js","sourceRoot":"","sources":["../../src/commands/link-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cloud session login / logout for CLI control-plane auth.
3
+ * Self-host uses SERVICE_ROLE_KEY via `supatype link --url` — not this command.
4
+ */
5
+ import type { Command } from "commander";
6
+ export declare function registerLogin(program: Command): void;
7
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBxC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqGpD"}
@@ -0,0 +1,110 @@
1
+ import { clearCloudCredentials, cloudPasswordLogin, loadCloudCredentials, persistCloudSession, } from "../cloud-credentials.js";
2
+ import { loadProjectLink, saveProjectLink } from "../link.js";
3
+ import { isInteractive } from "../ui/interactive.js";
4
+ import { error, info, plain } from "../ui/messages.js";
5
+ import { ensureNotCancelled, p, printLogo, runClackFlow } from "../ui/prompts.js";
6
+ function defaultApiUrl(cwd, flag) {
7
+ if (flag?.trim())
8
+ return flag.trim().replace(/\/$/, "");
9
+ const link = loadProjectLink(cwd);
10
+ if (link?.kind === "cloud" && link.cloudApiUrl) {
11
+ return link.cloudApiUrl.replace(/\/$/, "");
12
+ }
13
+ return (process.env["SUPATYPE_API_URL"] ?? "https://api.supatype.com").replace(/\/$/, "");
14
+ }
15
+ export function registerLogin(program) {
16
+ program
17
+ .command("login")
18
+ .description("Sign in to Supatype Cloud (stores refreshable session for push/deploy)")
19
+ .option("--api-url <url>", "Cloud control plane API URL")
20
+ .option("--email <email>", "Account email (non-interactive)")
21
+ .option("--password <password>", "Account password (prefer SUPATYPE_PASSWORD)")
22
+ .action(async (opts) => {
23
+ const cwd = process.cwd();
24
+ const apiUrl = defaultApiUrl(cwd, opts.apiUrl);
25
+ let email = opts.email?.trim() ?? process.env["SUPATYPE_EMAIL"]?.trim();
26
+ let password = opts.password ?? process.env["SUPATYPE_PASSWORD"] ?? process.env["SUPATYPE_LOGIN_PASSWORD"];
27
+ if ((!email || !password) && isInteractive()) {
28
+ await runClackFlow(async () => {
29
+ printLogo();
30
+ p.intro("Supatype Cloud login");
31
+ if (!email) {
32
+ email = ensureNotCancelled(await p.text({
33
+ message: "Email",
34
+ placeholder: "you@example.com",
35
+ })).trim();
36
+ }
37
+ if (!password) {
38
+ password = ensureNotCancelled(await p.password({ message: "Password" }));
39
+ }
40
+ p.outro("Signing in...");
41
+ });
42
+ }
43
+ if (!email || !password) {
44
+ error("Email and password required. Pass --email / --password, set SUPATYPE_EMAIL + SUPATYPE_PASSWORD, or run interactively.");
45
+ process.exit(1);
46
+ }
47
+ try {
48
+ const session = await cloudPasswordLogin(apiUrl, email, password);
49
+ persistCloudSession(cwd, {
50
+ apiUrl,
51
+ accessToken: session.accessToken,
52
+ ...(session.refreshToken !== undefined ? { refreshToken: session.refreshToken } : {}),
53
+ ...(session.email !== undefined ? { email: session.email } : { email }),
54
+ });
55
+ const link = loadProjectLink(cwd);
56
+ info(`Logged in to ${apiUrl}${session.email ? ` as ${session.email}` : ""}`);
57
+ if (link?.kind === "cloud") {
58
+ info(`Updated cloud session for linked project ${link.projectRef}`);
59
+ }
60
+ else if (!session.refreshToken) {
61
+ plain("Warning: no refresh_token returned — session may expire in ~1h. Update control plane.");
62
+ }
63
+ else {
64
+ plain("Tip: link a project with: supatype link --project <slug>");
65
+ }
66
+ }
67
+ catch (err) {
68
+ error(err.message);
69
+ process.exit(1);
70
+ }
71
+ });
72
+ program
73
+ .command("logout")
74
+ .description("Clear stored Supatype Cloud credentials")
75
+ .action(() => {
76
+ const cwd = process.cwd();
77
+ clearCloudCredentials();
78
+ const link = loadProjectLink(cwd);
79
+ if (link?.kind === "cloud") {
80
+ delete link.token;
81
+ delete link.refreshToken;
82
+ saveProjectLink(cwd, link);
83
+ }
84
+ info("Logged out of Supatype Cloud.");
85
+ });
86
+ program
87
+ .command("whoami")
88
+ .description("Show the current Supatype Cloud session")
89
+ .action(() => {
90
+ const creds = loadCloudCredentials();
91
+ const cwd = process.cwd();
92
+ const link = loadProjectLink(cwd);
93
+ if (!creds && !(link?.kind === "cloud" && link.token)) {
94
+ info("Not logged in. Run: supatype login");
95
+ return;
96
+ }
97
+ if (creds) {
98
+ plain(`API: ${creds.apiUrl}`);
99
+ if (creds.email)
100
+ plain(`Email: ${creds.email}`);
101
+ plain(`Refresh token: ${creds.refreshToken ? "yes" : "no"}`);
102
+ plain(`Updated: ${creds.updatedAt}`);
103
+ }
104
+ if (link?.kind === "cloud") {
105
+ plain(`Linked project: ${link.projectRef}`);
106
+ plain(`Link has refresh token: ${link.refreshToken ? "yes" : "no"}`);
107
+ }
108
+ });
109
+ }
110
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkCxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkDnD"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4CxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDnD"}
@@ -1,7 +1,11 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { loadConfig, loadSchemaAst } from "../config.js";
4
- import { resolveRuntimeProvider, schemaPathFromProject, serverBaseUrl } from "../project-config.js";
4
+ import { syncManifestHooks, validateModelHooks, writeHooksModule } from "../model-hooks.js";
5
+ import { adapterEntry, readHookUpload } from "../hook-upload.js";
6
+ import { checkServiceRoleRoutes, serviceRoleProblemLines } from "../service-role-check.js";
7
+ import { fatalError } from "../ui/fatal.js";
8
+ import { hooksPathFromProject, resolveRuntimeProvider, schemaPathFromProject, serverBaseUrl, } from "../project-config.js";
5
9
  import { ensureEngine, engineRequest } from "../engine-client.js";
6
10
  import { printDiffOperations, printDiffWarnings } from "../diff-output.js";
7
11
  import { signJwt } from "../jwt.js";
@@ -11,6 +15,7 @@ import { withAdminRoles } from "../studio-admin-roles.js";
11
15
  import { restoreSystemRelationTargets } from "../restore-system-relation-targets.js";
12
16
  import { resolveTarget, targetSchemaDiff, targetSchemaPush, schemaPgSchema, } from "../resolve-target.js";
13
17
  import { loadProjectLink } from "../link.js";
18
+ import { targetFetch } from "../target-client.js";
14
19
  import { buildSchemaSourcesPayload, cacheSchemaSourcesLocally, resolvePushedBy, } from "../schema-sources.js";
15
20
  import { confirm, logSkippedConfirm } from "../ui/confirm.js";
16
21
  import { info, plain } from "../ui/messages.js";
@@ -31,6 +36,8 @@ export function registerPush(program) {
31
36
  const config = loadConfig(cwd);
32
37
  const pgSchema = schemaPgSchema(cwd);
33
38
  const ast = loadSchemaAst(schemaPathFromProject(config, cwd), cwd);
39
+ assertModelHooksResolve(cwd, config, ast);
40
+ assertServiceRoleGrantsResolve(cwd, config);
34
41
  const linked = loadProjectLink(cwd);
35
42
  const useDirect = opts.direct || opts.local || Boolean(opts.connection);
36
43
  if (linked && !useDirect && !opts.connection) {
@@ -95,6 +102,9 @@ async function pushViaTarget(cwd, config, target, ast, pgSchema, skipConfirm) {
95
102
  cacheSchemaSourcesLocally(cwd, migrationName, schemaSources.gz);
96
103
  }
97
104
  }
105
+ if (target.mode === "cloud" || target.mode === "self-host") {
106
+ await deployHooksToTarget(cwd, config, target, ast);
107
+ }
98
108
  if (target.mode === "direct" || target.mode === "local") {
99
109
  await writeLocalAdminConfig(ast, config);
100
110
  if (target.databaseUrl) {
@@ -102,16 +112,76 @@ async function pushViaTarget(cwd, config, target, ast, pgSchema, skipConfirm) {
102
112
  }
103
113
  await generateTypesLocal(ast, config);
104
114
  await provisionLocalStorage(ast, config);
115
+ // Local Studio only — a cloud/self-host push must not advertise the local
116
+ // gateway URL from config, which may not even be running.
117
+ const baseUrl = (serverBaseUrl(config) ?? "").replace(/\/$/, "");
118
+ if (baseUrl) {
119
+ plain(`\nStudio: ${baseUrl}/studio/`);
120
+ }
121
+ return;
105
122
  }
106
- else {
107
- info(`Pushed to ${target.mode} (${target.environment}).`);
123
+ info(`Pushed to ${target.mode} (${target.environment}).`);
124
+ const envUrl = target.link?.environments?.[target.environment]?.apiUrl?.replace(/\/$/, "");
125
+ if (envUrl) {
126
+ plain(`\nProject API: ${envUrl}`);
108
127
  }
109
- const baseUrl = (serverBaseUrl(config) ?? "").replace(/\/$/, "");
110
- if (baseUrl) {
111
- plain(`\nStudio: ${baseUrl}/studio/`);
128
+ }
129
+ /**
130
+ * Upload the hooks this schema names to a managed stack.
131
+ *
132
+ * On `push` rather than `functions deploy`, because the hook *map* comes from the schema: the two have
133
+ * to move together, and a map naming a handler that was never uploaded turns every write to that table
134
+ * into a 503.
135
+ *
136
+ * The handler types are written locally as well. A project pushing to cloud still edits its hooks on
137
+ * this machine, and `hooks/_supatype/hooks.ts` is what makes them typed — it is generated, never
138
+ * committed, so a fresh clone that has only ever pushed to cloud would otherwise have no types at all.
139
+ */
140
+ async function deployHooksToTarget(cwd, config, target, ast) {
141
+ const hooksDir = hooksPathFromProject(config, cwd);
142
+ const hooksPath = writeHooksModule(cwd, hooksDir, ast);
143
+ if (hooksPath !== null)
144
+ info(`Hook handler types written to ${hooksPath}`);
145
+ let upload;
146
+ try {
147
+ upload = readHookUpload(cwd, hooksDir, ast);
148
+ }
149
+ catch (err) {
150
+ // Refused rather than partially uploaded: the schema is already applied, so the honest thing is to
151
+ // say the hooks did not deploy and why, leaving the previous ones in place.
152
+ fatalError(err instanceof Error ? err.message : String(err));
153
+ return;
112
154
  }
155
+ if (upload === null)
156
+ return;
157
+ const adapter = readGeneratedAdapter(hooksDir);
158
+ const handlers = adapter === null ? upload.handlers : [...upload.handlers, adapter];
159
+ await withSpinner(`Deploying ${upload.handlers.length} hook(s)`, () => targetFetch(target.apiBaseUrl, target.apiPrefix, {
160
+ method: "POST",
161
+ path: `/projects/${target.projectRef}/hooks/deploy`,
162
+ body: { handlers, map: upload.map },
163
+ token: target.token,
164
+ orgId: target.orgId,
165
+ environment: target.mode === "cloud" ? target.environment : undefined,
166
+ })).then(() => info(`Deployed ${upload.handlers.length} hook(s)`));
167
+ }
168
+ /** The generated adapter, flattened to the name handlers were rewritten to import. */
169
+ function readGeneratedAdapter(hooksDir) {
170
+ const file = join(hooksDir, "_supatype", "hooks.ts");
171
+ if (!existsSync(file))
172
+ return null;
173
+ return adapterEntry(readFileSync(file, "utf8"));
113
174
  }
114
175
  async function generateTypesLocal(ast, config) {
176
+ // Independent of `output`: a project with hooks needs its handler types whether or not it asked
177
+ // for client types, and the module is written next to the functions that import it.
178
+ const cwd = process.cwd();
179
+ const hooksPath = writeHooksModule(cwd, hooksPathFromProject(config, cwd), ast);
180
+ if (hooksPath !== null)
181
+ info(`Hook handler types written to ${hooksPath}`);
182
+ // The server watches this file, so a changed hook takes effect without a restart.
183
+ if (syncManifestHooks(cwd, ast))
184
+ info("Hook map written to .supatype/manifest.json");
115
185
  if (!config.output?.types && !config.output?.client)
116
186
  return;
117
187
  await withSpinner("Generating types", async () => {
@@ -147,4 +217,37 @@ async function writeLocalAdminConfig(ast, config) {
147
217
  restoreSystemRelationTargets(admin, ast);
148
218
  writeFileSync(join(dir, "admin-config.json"), `${JSON.stringify(admin, null, 2)}\n`);
149
219
  }
220
+ /**
221
+ * Stop the push when a declared hook names a function that is not there.
222
+ *
223
+ * A hook is only enforcement if it runs. A typo'd name would extract cleanly, reach the manifest, and
224
+ * then never fire — so the write it was meant to validate would succeed and look fine. Cheaper to
225
+ * fail here, naming the directory searched.
226
+ */
227
+ /**
228
+ * Refuse a push whose `functions.serviceRole` names a function that does not exist.
229
+ *
230
+ * The grant fails closed, which is the safe direction and the invisible one: the function reads no key
231
+ * at runtime, in a deploy that reported success. A warning is printed for an entry that is merely
232
+ * redundant, since a reader would reasonably assume the line is what does the granting.
233
+ */
234
+ function assertServiceRoleGrantsResolve(cwd, config) {
235
+ const problems = checkServiceRoleRoutes(config, cwd);
236
+ for (const warning of problems.warnings)
237
+ plain(warning);
238
+ const lines = serviceRoleProblemLines(problems);
239
+ if (lines.length === 0)
240
+ return;
241
+ fatalError("functions.serviceRole names a function that does not exist.", lines, {
242
+ brand: { intro: "Push" },
243
+ });
244
+ }
245
+ function assertModelHooksResolve(cwd, config, ast) {
246
+ const problems = validateModelHooks(ast, hooksPathFromProject(config, cwd), cwd);
247
+ if (problems.length === 0)
248
+ return;
249
+ fatalError("A model declares a hook whose function does not exist.", problems, {
250
+ brand: { intro: "Push" },
251
+ });
252
+ }
150
253
  //# sourceMappingURL=push.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  /**
2
+
2
3
  * supatype self-update — Phase 10.6C8.
4
+
3
5
  *
6
+
4
7
  * npm-installed CLI: instruct to use `npm update -g`.
8
+
9
+ * Homebrew: instruct to use `brew upgrade supatype`.
10
+
5
11
  * Standalone curl|sh installs: replace binary from releases.supatype.com/cli/.
12
+
6
13
  */
7
14
  import type { Command } from "commander";
8
15
  export declare function registerSelfUpdate(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"self-update.d.ts","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBxC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0CzD"}
1
+ {"version":3,"file":"self-update.d.ts","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYxC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4GzD"}
@@ -1,32 +1,38 @@
1
1
  /**
2
+
2
3
  * supatype self-update — Phase 10.6C8.
4
+
3
5
  *
6
+
4
7
  * npm-installed CLI: instruct to use `npm update -g`.
8
+
9
+ * Homebrew: instruct to use `brew upgrade supatype`.
10
+
5
11
  * Standalone curl|sh installs: replace binary from releases.supatype.com/cli/.
12
+
6
13
  */
7
14
  import { copyFileSync, renameSync } from "node:fs";
8
- import { sep } from "node:path";
15
+ import { detectCliInstallMethod } from "../cli-install-method.js";
9
16
  import { downloadStandaloneCli, fetchStandaloneCliLatestVersion } from "../cli-standalone.js";
10
17
  import { error, info, plain } from "../ui/messages.js";
11
- function looksLikeNpmOrWorkspaceCLI() {
12
- const main = process.argv[1] ?? "";
13
- return (main.includes("node_modules") ||
14
- main.includes(`${sep}dist${sep}cli`) ||
15
- main.includes(`${sep}bin${sep}supatype.js`) ||
16
- Boolean(process.env["npm_execpath"]) ||
17
- Boolean(process.env["npm_lifecycle_event"]));
18
- }
19
18
  export function registerSelfUpdate(program) {
20
19
  program
21
20
  .command("self-update")
22
21
  .description("Update the supatype CLI (npm or standalone CDN binary)")
23
22
  .action(async () => {
24
- if (looksLikeNpmOrWorkspaceCLI()) {
23
+ const method = detectCliInstallMethod();
24
+ if (method === "npm") {
25
25
  plain("This CLI was installed via npm (or runs from the package workspace).\n" +
26
26
  "Update with:\n\n npm update -g @supatype/cli\n\n" +
27
27
  "To bump engine/server/postgres/deno/realtime pinned in supatype.config.ts, use:\n\n supatype update\n");
28
28
  return;
29
29
  }
30
+ if (method === "homebrew") {
31
+ plain("This CLI was installed via Homebrew.\n" +
32
+ "Update with:\n\n brew update && brew upgrade supatype\n\n" +
33
+ "To bump component binaries pinned in supatype.config.ts, use:\n\n supatype update\n");
34
+ return;
35
+ }
30
36
  const currentPath = process.argv[1];
31
37
  if (!currentPath) {
32
38
  error("Could not determine current CLI path.");
@@ -41,7 +47,7 @@ export function registerSelfUpdate(program) {
41
47
  try {
42
48
  renameSync(downloaded, currentPath);
43
49
  }
44
- catch (err) {
50
+ catch {
45
51
  copyFileSync(downloaded, currentPath);
46
52
  }
47
53
  info(`Updated to v${latest}.`);
@@ -50,6 +56,7 @@ export function registerSelfUpdate(program) {
50
56
  catch (err) {
51
57
  error(`Standalone CLI self-update failed: ${err.message}\n\n` +
52
58
  "Install or upgrade via npm:\n npm install -g @supatype/cli\n\n" +
59
+ "Or Homebrew:\n brew upgrade supatype\n\n" +
53
60
  "Component binaries (engine, server, postgres, deno, realtime):\n supatype update\n");
54
61
  process.exit(1);
55
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEtD,SAAS,0BAA0B;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,GAAG,aAAa,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAC5C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,0BAA0B,EAAE,EAAE,CAAC;YACjC,KAAK,CACH,wEAAwE;gBACtE,mDAAmD;gBACnD,wGAAwG,CAC3G,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,uCAAuC,CAAC,CAAA;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,+BAA+B,EAAE,CAAA;YACtD,IAAI,CAAC,6BAA6B,MAAM,KAAK,CAAC,CAAA;YAC9C,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,GAAG,WAAW,MAAM,CAAA;YACnC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YACjC,IAAI,CAAC;gBACH,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YACvC,CAAC;YACD,IAAI,CAAC,eAAe,MAAM,GAAG,CAAC,CAAA;YAC9B,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CACH,sCAAuC,GAAa,CAAC,OAAO,MAAM;gBAChE,iEAAiE;gBACjE,qFAAqF,CACxF,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAA;AAE7F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAItD,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAEjD,OAAO;SAEJ,OAAO,CAAC,aAAa,CAAC;SAEtB,WAAW,CAAC,wDAAwD,CAAC;SAErE,MAAM,CAAC,KAAK,IAAI,EAAE;QAEjB,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAA;QAIvC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAErB,KAAK,CAEH,wEAAwE;gBAEtE,mDAAmD;gBAEnD,wGAAwG,CAE3G,CAAA;YAED,OAAM;QAER,CAAC;QAID,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAE1B,KAAK,CAEH,wCAAwC;gBAEtC,4DAA4D;gBAE5D,sFAAsF,CAEzF,CAAA;YAED,OAAM;QAER,CAAC;QAID,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEjB,KAAK,CAAC,uCAAuC,CAAC,CAAA;YAE9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEjB,CAAC;QAID,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,+BAA+B,EAAE,CAAA;YAEtD,IAAI,CAAC,6BAA6B,MAAM,KAAK,CAAC,CAAA;YAE9C,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,GAAG,WAAW,MAAM,CAAA;YAEnC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC;gBAEH,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YAErC,CAAC;YAAC,MAAM,CAAC;gBAEP,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YAEvC,CAAC;YAED,IAAI,CAAC,eAAe,MAAM,GAAG,CAAC,CAAA;YAE9B,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAE9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAEb,KAAK,CAEH,sCAAuC,GAAa,CAAC,OAAO,MAAM;gBAEhE,iEAAiE;gBAEjE,2CAA2C;gBAE3C,qFAAqF,CAExF,CAAA;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEjB,CAAC;IAEH,CAAC,CAAC,CAAA;AAEN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,iHAAiH;IACjH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE;QACJ,kEAAkE;QAClE,UAAU,EAAE,MAAM,CAAA;QAClB,+BAA+B;QAC/B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,GAAG,CAAC,EAAE;QACJ,gFAAgF;QAChF,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;QAC1B,+EAA+E;QAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,iBAAiB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAA;QAC7B,IAAI,CAAC,EAAE,iBAAiB,CAAA;QACxB,KAAK,CAAC,EAAE,iBAAiB,CAAA;QACzB,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtG,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAEjF;AAiCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,qBAAqB,CAyB7E;AA+ED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,oBAAoB,CActB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IAChC,iHAAiH;IACjH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE;QACJ,kEAAkE;QAClE,UAAU,EAAE,MAAM,CAAA;QAClB,+BAA+B;QAC/B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,GAAG,CAAC,EAAE;QACJ,gFAAgF;QAChF,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;QAC1B,+EAA+E;QAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,iBAAiB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAA;QAC7B,IAAI,CAAC,EAAE,iBAAiB,CAAA;QACxB,KAAK,CAAC,EAAE,iBAAiB,CAAA;QACzB,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtG,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAEjF;AAiCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,qBAAqB,CA+B7E;AA2FD,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAsB,GAC1B,oBAAoB,CActB"}
package/dist/config.js CHANGED
@@ -3,6 +3,7 @@ import { resolve } from "node:path";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { evalTsSnippet } from "./tsx-runner.js";
6
+ import { readEnvFile } from "./env-file.js";
6
7
  import { mergeProjectConfig, validateProjectConfig, } from "./project-config.js";
7
8
  import { extractSchemaAstFromTypes } from "./type-extractor.js";
8
9
  /** Identity helper — provides type inference for config files. */
@@ -58,7 +59,21 @@ export function loadConfig(cwd = process.cwd()) {
58
59
  if (localRaw === null)
59
60
  return base;
60
61
  const localNorm = normalizeProjectJson(localRaw);
61
- return mergeProjectConfig(base, localNorm);
62
+ // Re-validated after merging: the local override can reintroduce a combination the base file was
63
+ // rejected for — `database.provider` beside an inherited `database.external`, say — and merging
64
+ // has no opinion about that.
65
+ return validateProjectConfig(mergeProjectConfig(base, localNorm), "supatype.local.config.ts (merged with supatype.config.ts)");
66
+ }
67
+ /**
68
+ * Environment for the child process that imports the config module.
69
+ *
70
+ * `supatype.config.ts` is TypeScript, so the natural way to keep a database password out of version
71
+ * control is `process.env.DATABASE_URL` — which only works if the project's `.env` is visible to the
72
+ * process doing the import. A real environment variable still wins over the file, matching how every
73
+ * other dotenv reader behaves and how Compose itself resolves the same names.
74
+ */
75
+ function configLoadEnv(cwd) {
76
+ return { ...readEnvFile(cwd), ...process.env };
62
77
  }
63
78
  function loadFirstTsConfig(cwd, candidates) {
64
79
  for (const candidate of candidates) {
@@ -71,7 +86,7 @@ const mod = await import(${JSON.stringify(urlPath)})
71
86
  const config = mod.default ?? mod
72
87
  process.stdout.write(JSON.stringify(config))
73
88
  `;
74
- const result = evalTsSnippet(snippet, { cwd });
89
+ const result = evalTsSnippet(snippet, { cwd, env: configLoadEnv(cwd) });
75
90
  if (result.exitCode === 0) {
76
91
  return JSON.parse(result.stdout);
77
92
  }
@@ -115,7 +130,7 @@ const mod = await import(${JSON.stringify(urlPath)})
115
130
  const config = mod.default ?? mod
116
131
  process.stdout.write(JSON.stringify(config))
117
132
  `;
118
- const result = evalTsSnippet(snippet, { cwd });
133
+ const result = evalTsSnippet(snippet, { cwd, env: configLoadEnv(cwd) });
119
134
  if (result.exitCode !== 0)
120
135
  return null;
121
136
  return JSON.parse(result.stdout);