@supatype/cli 0.1.0-alpha.6

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 (200) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test.log +7 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/bin/dev-entry.ts +2 -0
  5. package/bin/supatype.js +5 -0
  6. package/dist/app/framework.d.ts +44 -0
  7. package/dist/app/framework.d.ts.map +1 -0
  8. package/dist/app/framework.js +200 -0
  9. package/dist/app/framework.js.map +1 -0
  10. package/dist/cli.d.ts +2 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +55 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/commands/admin.d.ts +4 -0
  15. package/dist/commands/admin.d.ts.map +1 -0
  16. package/dist/commands/admin.js +270 -0
  17. package/dist/commands/admin.js.map +1 -0
  18. package/dist/commands/app.d.ts +3 -0
  19. package/dist/commands/app.d.ts.map +1 -0
  20. package/dist/commands/app.js +235 -0
  21. package/dist/commands/app.js.map +1 -0
  22. package/dist/commands/cloud.d.ts +3 -0
  23. package/dist/commands/cloud.d.ts.map +1 -0
  24. package/dist/commands/cloud.js +256 -0
  25. package/dist/commands/cloud.js.map +1 -0
  26. package/dist/commands/db.d.ts +8 -0
  27. package/dist/commands/db.d.ts.map +1 -0
  28. package/dist/commands/db.js +123 -0
  29. package/dist/commands/db.js.map +1 -0
  30. package/dist/commands/deploy-types.d.ts +14 -0
  31. package/dist/commands/deploy-types.d.ts.map +1 -0
  32. package/dist/commands/deploy-types.js +38 -0
  33. package/dist/commands/deploy-types.js.map +1 -0
  34. package/dist/commands/deploy.d.ts +14 -0
  35. package/dist/commands/deploy.d.ts.map +1 -0
  36. package/dist/commands/deploy.js +295 -0
  37. package/dist/commands/deploy.js.map +1 -0
  38. package/dist/commands/dev.d.ts +3 -0
  39. package/dist/commands/dev.d.ts.map +1 -0
  40. package/dist/commands/dev.js +428 -0
  41. package/dist/commands/dev.js.map +1 -0
  42. package/dist/commands/diff.d.ts +3 -0
  43. package/dist/commands/diff.d.ts.map +1 -0
  44. package/dist/commands/diff.js +39 -0
  45. package/dist/commands/diff.js.map +1 -0
  46. package/dist/commands/engine.d.ts +9 -0
  47. package/dist/commands/engine.d.ts.map +1 -0
  48. package/dist/commands/engine.js +99 -0
  49. package/dist/commands/engine.js.map +1 -0
  50. package/dist/commands/functions.d.ts +3 -0
  51. package/dist/commands/functions.d.ts.map +1 -0
  52. package/dist/commands/functions.js +762 -0
  53. package/dist/commands/functions.js.map +1 -0
  54. package/dist/commands/generate.d.ts +3 -0
  55. package/dist/commands/generate.d.ts.map +1 -0
  56. package/dist/commands/generate.js +28 -0
  57. package/dist/commands/generate.js.map +1 -0
  58. package/dist/commands/init.d.ts +7 -0
  59. package/dist/commands/init.d.ts.map +1 -0
  60. package/dist/commands/init.js +515 -0
  61. package/dist/commands/init.js.map +1 -0
  62. package/dist/commands/keys.d.ts +4 -0
  63. package/dist/commands/keys.d.ts.map +1 -0
  64. package/dist/commands/keys.js +57 -0
  65. package/dist/commands/keys.js.map +1 -0
  66. package/dist/commands/logs.d.ts +6 -0
  67. package/dist/commands/logs.d.ts.map +1 -0
  68. package/dist/commands/logs.js +52 -0
  69. package/dist/commands/logs.js.map +1 -0
  70. package/dist/commands/migrate.d.ts +3 -0
  71. package/dist/commands/migrate.d.ts.map +1 -0
  72. package/dist/commands/migrate.js +71 -0
  73. package/dist/commands/migrate.js.map +1 -0
  74. package/dist/commands/plugins.d.ts +3 -0
  75. package/dist/commands/plugins.d.ts.map +1 -0
  76. package/dist/commands/plugins.js +431 -0
  77. package/dist/commands/plugins.js.map +1 -0
  78. package/dist/commands/pull.d.ts +3 -0
  79. package/dist/commands/pull.d.ts.map +1 -0
  80. package/dist/commands/pull.js +73 -0
  81. package/dist/commands/pull.js.map +1 -0
  82. package/dist/commands/push.d.ts +3 -0
  83. package/dist/commands/push.d.ts.map +1 -0
  84. package/dist/commands/push.js +87 -0
  85. package/dist/commands/push.js.map +1 -0
  86. package/dist/commands/seed.d.ts +3 -0
  87. package/dist/commands/seed.d.ts.map +1 -0
  88. package/dist/commands/seed.js +22 -0
  89. package/dist/commands/seed.js.map +1 -0
  90. package/dist/commands/self-host.d.ts +3 -0
  91. package/dist/commands/self-host.d.ts.map +1 -0
  92. package/dist/commands/self-host.js +796 -0
  93. package/dist/commands/self-host.js.map +1 -0
  94. package/dist/commands/status.d.ts +6 -0
  95. package/dist/commands/status.d.ts.map +1 -0
  96. package/dist/commands/status.js +69 -0
  97. package/dist/commands/status.js.map +1 -0
  98. package/dist/config.d.ts +106 -0
  99. package/dist/config.d.ts.map +1 -0
  100. package/dist/config.js +66 -0
  101. package/dist/config.js.map +1 -0
  102. package/dist/engine/cache.d.ts +37 -0
  103. package/dist/engine/cache.d.ts.map +1 -0
  104. package/dist/engine/cache.js +121 -0
  105. package/dist/engine/cache.js.map +1 -0
  106. package/dist/engine/download.d.ts +19 -0
  107. package/dist/engine/download.d.ts.map +1 -0
  108. package/dist/engine/download.js +108 -0
  109. package/dist/engine/download.js.map +1 -0
  110. package/dist/engine/platform.d.ts +24 -0
  111. package/dist/engine/platform.d.ts.map +1 -0
  112. package/dist/engine/platform.js +50 -0
  113. package/dist/engine/platform.js.map +1 -0
  114. package/dist/engine/resolve.d.ts +37 -0
  115. package/dist/engine/resolve.d.ts.map +1 -0
  116. package/dist/engine/resolve.js +133 -0
  117. package/dist/engine/resolve.js.map +1 -0
  118. package/dist/engine/update-notify.d.ts +11 -0
  119. package/dist/engine/update-notify.d.ts.map +1 -0
  120. package/dist/engine/update-notify.js +43 -0
  121. package/dist/engine/update-notify.js.map +1 -0
  122. package/dist/engine/verify.d.ts +50 -0
  123. package/dist/engine/verify.d.ts.map +1 -0
  124. package/dist/engine/verify.js +161 -0
  125. package/dist/engine/verify.js.map +1 -0
  126. package/dist/engine-version.d.ts +35 -0
  127. package/dist/engine-version.d.ts.map +1 -0
  128. package/dist/engine-version.js +35 -0
  129. package/dist/engine-version.js.map +1 -0
  130. package/dist/engine.d.ts +34 -0
  131. package/dist/engine.d.ts.map +1 -0
  132. package/dist/engine.js +76 -0
  133. package/dist/engine.js.map +1 -0
  134. package/dist/index.d.ts +12 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +10 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/jwt.d.ts +3 -0
  139. package/dist/jwt.d.ts.map +1 -0
  140. package/dist/jwt.js +13 -0
  141. package/dist/jwt.js.map +1 -0
  142. package/dist/pull-utils.d.ts +16 -0
  143. package/dist/pull-utils.d.ts.map +1 -0
  144. package/dist/pull-utils.js +65 -0
  145. package/dist/pull-utils.js.map +1 -0
  146. package/dist/scripts/postinstall.d.ts +12 -0
  147. package/dist/scripts/postinstall.d.ts.map +1 -0
  148. package/dist/scripts/postinstall.js +31 -0
  149. package/dist/scripts/postinstall.js.map +1 -0
  150. package/dist/tsx-runner.d.ts +18 -0
  151. package/dist/tsx-runner.d.ts.map +1 -0
  152. package/dist/tsx-runner.js +62 -0
  153. package/dist/tsx-runner.js.map +1 -0
  154. package/package.json +36 -0
  155. package/src/app/framework.ts +249 -0
  156. package/src/cli.ts +58 -0
  157. package/src/commands/admin.ts +371 -0
  158. package/src/commands/app.ts +261 -0
  159. package/src/commands/cloud.ts +326 -0
  160. package/src/commands/db.ts +145 -0
  161. package/src/commands/deploy-types.ts +49 -0
  162. package/src/commands/deploy.ts +366 -0
  163. package/src/commands/dev.ts +477 -0
  164. package/src/commands/diff.ts +61 -0
  165. package/src/commands/engine.ts +133 -0
  166. package/src/commands/functions.ts +919 -0
  167. package/src/commands/generate.ts +31 -0
  168. package/src/commands/init.ts +532 -0
  169. package/src/commands/keys.ts +66 -0
  170. package/src/commands/logs.ts +58 -0
  171. package/src/commands/migrate.ts +83 -0
  172. package/src/commands/plugins.ts +508 -0
  173. package/src/commands/pull.ts +96 -0
  174. package/src/commands/push.ts +119 -0
  175. package/src/commands/seed.ts +26 -0
  176. package/src/commands/self-host.ts +932 -0
  177. package/src/commands/status.ts +83 -0
  178. package/src/config.ts +190 -0
  179. package/src/engine/cache.ts +135 -0
  180. package/src/engine/download.ts +143 -0
  181. package/src/engine/platform.ts +66 -0
  182. package/src/engine/resolve.ts +197 -0
  183. package/src/engine/update-notify.ts +50 -0
  184. package/src/engine/verify.ts +206 -0
  185. package/src/engine-version.ts +39 -0
  186. package/src/engine.ts +99 -0
  187. package/src/index.ts +19 -0
  188. package/src/jwt.ts +14 -0
  189. package/src/pull-utils.ts +57 -0
  190. package/src/scripts/postinstall.ts +40 -0
  191. package/src/tsx-runner.ts +79 -0
  192. package/tests/cli-help.test.ts +107 -0
  193. package/tests/config.test.ts +117 -0
  194. package/tests/engine-distribution.test.ts +418 -0
  195. package/tests/init.test.ts +184 -0
  196. package/tests/keys.test.ts +160 -0
  197. package/tests/pull-utils.test.ts +115 -0
  198. package/tests/tsx-runner.test.ts +66 -0
  199. package/tsconfig.json +10 -0
  200. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Database connection commands:
3
+ * supatype db connection-string — show the connection string for the linked project
4
+ * supatype db reset-password — reset the database password
5
+ */
6
+ import { loadConfig } from "../config.js";
7
+ export function registerDb(program) {
8
+ const db = program
9
+ .command("db")
10
+ .description("Database connection management");
11
+ // supatype db connection-string
12
+ db
13
+ .command("connection-string")
14
+ .description("Show the database connection string for the linked project")
15
+ .option("--transaction", "Show the transaction pool URL (for serverless/edge functions)")
16
+ .option("--env <name>", "Environment name", "production")
17
+ .action(async (opts) => {
18
+ const cwd = process.cwd();
19
+ const config = loadConfig(cwd);
20
+ // The connection string is stored in the project config or fetched from cloud
21
+ if (config.connection) {
22
+ if (opts.transaction) {
23
+ // Convert session URL to transaction pool URL (port 6432)
24
+ const txUrl = config.connection.replace(/:5432\//, ":6432/");
25
+ console.log(txUrl);
26
+ }
27
+ else {
28
+ console.log(config.connection);
29
+ }
30
+ console.log();
31
+ console.log("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
32
+ console.log("Transaction mode (port 6432): for application servers and serverless functions");
33
+ return;
34
+ }
35
+ // If linked to a cloud project, fetch from the API
36
+ if (config.projectRef) {
37
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
38
+ const envName = opts.env || "production";
39
+ try {
40
+ const res = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/environments`, {
41
+ headers: {
42
+ Authorization: `Bearer ${config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || ""}`,
43
+ },
44
+ });
45
+ if (!res.ok) {
46
+ console.error(`Failed to fetch project info: ${res.status}`);
47
+ process.exitCode = 1;
48
+ return;
49
+ }
50
+ const { data } = (await res.json());
51
+ const env = data.find((e) => e.name === envName);
52
+ if (!env) {
53
+ console.error(`Environment "${envName}" not found`);
54
+ process.exitCode = 1;
55
+ return;
56
+ }
57
+ const connStr = env.databaseUrl || "Connection string not available";
58
+ if (opts.transaction) {
59
+ console.log(connStr.replace(/:5432\//, ":6432/"));
60
+ }
61
+ else {
62
+ console.log(connStr);
63
+ }
64
+ console.log();
65
+ console.log("Session mode (port 5432): for interactive tools (psql, DataGrip, TablePlus)");
66
+ console.log("Transaction mode (port 6432): for application servers and serverless functions");
67
+ }
68
+ catch (err) {
69
+ console.error("Failed to fetch connection string:", err.message);
70
+ process.exitCode = 1;
71
+ }
72
+ return;
73
+ }
74
+ console.error("No connection configured. Either:\n" +
75
+ " • Set 'connection' in supatype.config.ts\n" +
76
+ " • Link to a cloud project: npx supatype link --project <ref>");
77
+ process.exitCode = 1;
78
+ });
79
+ // supatype db reset-password
80
+ db
81
+ .command("reset-password")
82
+ .description("Reset the database password for the linked project")
83
+ .option("--env <name>", "Environment name", "production")
84
+ .action(async (opts) => {
85
+ const cwd = process.cwd();
86
+ const config = loadConfig(cwd);
87
+ if (!config.projectRef) {
88
+ console.error("Not linked to a cloud project. Run: npx supatype link --project <ref>");
89
+ process.exitCode = 1;
90
+ return;
91
+ }
92
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
93
+ const envName = opts.env || "production";
94
+ try {
95
+ const res = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/environments/${envName}/reset-db-password`, {
96
+ method: "POST",
97
+ headers: {
98
+ Authorization: `Bearer ${config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || ""}`,
99
+ "Content-Type": "application/json",
100
+ },
101
+ });
102
+ if (!res.ok) {
103
+ const body = await res.text();
104
+ console.error(`Failed to reset password: ${res.status} ${body}`);
105
+ process.exitCode = 1;
106
+ return;
107
+ }
108
+ const { data } = (await res.json());
109
+ console.log("Database password reset successfully.");
110
+ console.log();
111
+ console.log(`New password: ${data.password}`);
112
+ console.log(`Connection string: ${data.connectionString}`);
113
+ console.log();
114
+ console.log("Warning: Existing database connections have been terminated.");
115
+ console.log("Update your application with the new connection string.");
116
+ }
117
+ catch (err) {
118
+ console.error("Failed to reset password:", err.message);
119
+ process.exitCode = 1;
120
+ }
121
+ });
122
+ }
123
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Deployment tier limits for static site hosting.
3
+ */
4
+ export type Tier = "free" | "pro" | "team" | "enterprise";
5
+ export interface DeploymentLimits {
6
+ maxBuildOutputMb: number;
7
+ buildMinutesPerMonth: number;
8
+ maxPreviewDeployments: number;
9
+ deploymentRetention: number;
10
+ cdnEnabled: boolean;
11
+ buildMinuteOverageRate: number;
12
+ }
13
+ export declare const TIER_LIMITS: Record<Tier, DeploymentLimits>;
14
+ //# sourceMappingURL=deploy-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-types.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,CAAA;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,UAAU,EAAE,OAAO,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAiCtD,CAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Deployment tier limits for static site hosting.
3
+ */
4
+ export const TIER_LIMITS = {
5
+ free: {
6
+ maxBuildOutputMb: 50,
7
+ buildMinutesPerMonth: 100,
8
+ maxPreviewDeployments: 1,
9
+ deploymentRetention: 3,
10
+ cdnEnabled: false,
11
+ buildMinuteOverageRate: 0,
12
+ },
13
+ pro: {
14
+ maxBuildOutputMb: 500,
15
+ buildMinutesPerMonth: 1000,
16
+ maxPreviewDeployments: 5,
17
+ deploymentRetention: 10,
18
+ cdnEnabled: true,
19
+ buildMinuteOverageRate: 0.01,
20
+ },
21
+ team: {
22
+ maxBuildOutputMb: 2048,
23
+ buildMinutesPerMonth: 5000,
24
+ maxPreviewDeployments: 20,
25
+ deploymentRetention: 25,
26
+ cdnEnabled: true,
27
+ buildMinuteOverageRate: 0.01,
28
+ },
29
+ enterprise: {
30
+ maxBuildOutputMb: -1,
31
+ buildMinutesPerMonth: -1,
32
+ maxPreviewDeployments: -1,
33
+ deploymentRetention: -1,
34
+ cdnEnabled: true,
35
+ buildMinuteOverageRate: 0,
36
+ },
37
+ };
38
+ //# sourceMappingURL=deploy-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-types.js","sourceRoot":"","sources":["../../src/commands/deploy-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,CAAC,MAAM,WAAW,GAAmC;IACzD,IAAI,EAAE;QACJ,gBAAgB,EAAE,EAAE;QACpB,oBAAoB,EAAE,GAAG;QACzB,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,CAAC;QACtB,UAAU,EAAE,KAAK;QACjB,sBAAsB,EAAE,CAAC;KAC1B;IACD,GAAG,EAAE;QACH,gBAAgB,EAAE,GAAG;QACrB,oBAAoB,EAAE,IAAI;QAC1B,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,EAAE;QACvB,UAAU,EAAE,IAAI;QAChB,sBAAsB,EAAE,IAAI;KAC7B;IACD,IAAI,EAAE;QACJ,gBAAgB,EAAE,IAAI;QACtB,oBAAoB,EAAE,IAAI;QAC1B,qBAAqB,EAAE,EAAE;QACzB,mBAAmB,EAAE,EAAE;QACvB,UAAU,EAAE,IAAI;QAChB,sBAAsB,EAAE,IAAI;KAC7B;IACD,UAAU,EAAE;QACV,gBAAgB,EAAE,CAAC,CAAC;QACpB,oBAAoB,EAAE,CAAC,CAAC;QACxB,qBAAqB,EAAE,CAAC,CAAC;QACzB,mBAAmB,EAAE,CAAC,CAAC;QACvB,UAAU,EAAE,IAAI;QAChB,sBAAsB,EAAE,CAAC;KAC1B;CACF,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Deploy commands:
3
+ * supatype deploy — push schema + build & deploy static site
4
+ * supatype deploy --app-only — only build & deploy the static site
5
+ * supatype deploy --schema-only — only push schema changes
6
+ * supatype deploy --skip-build — deploy existing build output (no build step)
7
+ * supatype deploy --preview — deploy to a preview URL
8
+ * supatype deploy rollback — roll back to previous deployment
9
+ * supatype deploy status — show current deployment info
10
+ * supatype deploy logs <version> — show build logs
11
+ */
12
+ import type { Command } from "commander";
13
+ export declare function registerDeploy(program: Command): void;
14
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuPrD"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Deploy commands:
3
+ * supatype deploy — push schema + build & deploy static site
4
+ * supatype deploy --app-only — only build & deploy the static site
5
+ * supatype deploy --schema-only — only push schema changes
6
+ * supatype deploy --skip-build — deploy existing build output (no build step)
7
+ * supatype deploy --preview — deploy to a preview URL
8
+ * supatype deploy rollback — roll back to previous deployment
9
+ * supatype deploy status — show current deployment info
10
+ * supatype deploy logs <version> — show build logs
11
+ */
12
+ import { join } from "node:path";
13
+ import { loadConfig, loadSchemaAst } from "../config.js";
14
+ import { ensureEngine, invokeEngine } from "../engine.js";
15
+ import { resolveAppConfig, validateStaticMode, validateBuildOutput, detectPackageManager } from "../app/framework.js";
16
+ import { spawnSync } from "node:child_process";
17
+ export function registerDeploy(program) {
18
+ const deploy = program
19
+ .command("deploy")
20
+ .description("Build and deploy your application")
21
+ .option("--app-only", "Skip schema push, only deploy the static site")
22
+ .option("--schema-only", "Skip app build, only push schema changes")
23
+ .option("--skip-build", "Deploy existing build output without building")
24
+ .option("--preview", "Deploy to a temporary preview URL")
25
+ .option("--yes", "Skip confirmation prompts")
26
+ .action(async (opts) => {
27
+ const cwd = process.cwd();
28
+ const config = loadConfig(cwd);
29
+ // Step 1: Schema push (unless --app-only or --skip-build)
30
+ if (!opts.appOnly && !opts.skipBuild) {
31
+ console.log("=== Schema Push ===");
32
+ await ensureEngine();
33
+ const ast = loadSchemaAst(config.schema, cwd);
34
+ const diffResult = invokeEngine(["diff", "--connection", config.connection, "--format", "json"], JSON.stringify(ast));
35
+ if (diffResult.exitCode !== 0) {
36
+ console.error("Schema diff failed:", diffResult.stderr || diffResult.stdout);
37
+ process.exit(1);
38
+ }
39
+ const diff = JSON.parse(diffResult.stdout);
40
+ const ops = diff.operations ?? [];
41
+ if (ops.length > 0) {
42
+ console.log(`${ops.length} schema change(s) to apply.`);
43
+ const migrateResult = invokeEngine(["migrate", "--connection", config.connection], JSON.stringify(ast));
44
+ if (migrateResult.exitCode !== 0) {
45
+ console.error("Migration failed:", migrateResult.stderr);
46
+ process.exit(1);
47
+ }
48
+ console.log("Schema changes applied.");
49
+ }
50
+ else {
51
+ console.log("Schema is up to date.");
52
+ }
53
+ }
54
+ // Step 2: App build & deploy (unless --schema-only)
55
+ if (!opts.schemaOnly) {
56
+ if (!config.app) {
57
+ if (opts.appOnly) {
58
+ console.error("No app configuration found in supatype.config.ts");
59
+ process.exit(1);
60
+ }
61
+ // No app config — just skip app deployment silently
62
+ return;
63
+ }
64
+ console.log("\n=== App Build & Deploy ===");
65
+ const appConfig = resolveAppConfig(config.app, cwd);
66
+ // Validate static mode
67
+ const staticError = validateStaticMode(appConfig.framework, appConfig.directory);
68
+ if (staticError) {
69
+ console.error(staticError);
70
+ process.exit(1);
71
+ }
72
+ // Build step
73
+ if (!opts.skipBuild && appConfig.buildCommand) {
74
+ console.log(`Framework: ${appConfig.framework}`);
75
+ console.log(`Build command: ${appConfig.buildCommand}`);
76
+ console.log(`Output directory: ${appConfig.outputDirectory}`);
77
+ console.log();
78
+ // Inject environment variables
79
+ const buildEnv = {
80
+ ...process.env,
81
+ ...appConfig.env,
82
+ };
83
+ // Inject Supatype URLs if project is linked
84
+ if (config.projectRef) {
85
+ buildEnv["NEXT_PUBLIC_SUPATYPE_URL"] = config.apiUrl || `https://${config.projectRef}.supatype.io`;
86
+ buildEnv["VITE_SUPATYPE_URL"] = buildEnv["NEXT_PUBLIC_SUPATYPE_URL"];
87
+ buildEnv["PUBLIC_SUPATYPE_URL"] = buildEnv["NEXT_PUBLIC_SUPATYPE_URL"];
88
+ // NEVER inject service_role key — only anon key is safe for client-side
89
+ }
90
+ // Install dependencies
91
+ const pm = detectPackageManager(appConfig.directory);
92
+ console.log(`Installing dependencies (${pm})...`);
93
+ const installResult = spawnSync(pm, ["install"], {
94
+ cwd: appConfig.directory,
95
+ stdio: "inherit",
96
+ env: buildEnv,
97
+ timeout: 5 * 60 * 1000, // 5 minute timeout
98
+ });
99
+ if (installResult.status !== 0) {
100
+ console.error("Dependency installation failed.");
101
+ process.exit(1);
102
+ }
103
+ // Run build
104
+ console.log("\nBuilding...");
105
+ const [buildCmd, ...buildArgs] = appConfig.buildCommand.split(" ");
106
+ const buildResult = spawnSync(buildCmd, buildArgs, {
107
+ cwd: appConfig.directory,
108
+ stdio: "inherit",
109
+ env: buildEnv,
110
+ timeout: 10 * 60 * 1000, // 10 minute timeout
111
+ });
112
+ if (buildResult.status !== 0) {
113
+ console.error("Build failed.");
114
+ process.exit(1);
115
+ }
116
+ }
117
+ // Validate build output
118
+ const maxSizeMb = 500; // Default, should be tier-aware in cloud
119
+ const validationError = validateBuildOutput(appConfig.outputDirectory, maxSizeMb);
120
+ if (validationError) {
121
+ console.error(validationError);
122
+ process.exit(1);
123
+ }
124
+ // Deploy
125
+ if (config.projectRef) {
126
+ // Cloud deployment — upload to API
127
+ await deployToCloud(config, appConfig.outputDirectory, opts.preview ?? false);
128
+ }
129
+ else {
130
+ // Self-host — copy to serving directory
131
+ deploySelfHost(appConfig.outputDirectory, cwd);
132
+ }
133
+ console.log("\nDeployment complete!");
134
+ if (config.projectRef) {
135
+ const url = opts.preview
136
+ ? `https://preview-${Date.now().toString(36)}.${config.projectRef}.supatype.io`
137
+ : `https://${config.projectRef}.supatype.io`;
138
+ console.log(`URL: ${url}`);
139
+ }
140
+ }
141
+ });
142
+ // supatype deploy rollback
143
+ deploy
144
+ .command("rollback")
145
+ .description("Roll back to the previous static site deployment")
146
+ .action(async () => {
147
+ const config = loadConfig(process.cwd());
148
+ if (!config.projectRef) {
149
+ console.error("Not linked to a cloud project. Rollback is only available for cloud deployments.");
150
+ process.exit(1);
151
+ }
152
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
153
+ const token = config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
154
+ const res = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/deployments/rollback`, {
155
+ method: "POST",
156
+ headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" },
157
+ });
158
+ if (!res.ok) {
159
+ const body = await res.text();
160
+ console.error(`Rollback failed: ${res.status} ${body}`);
161
+ process.exit(1);
162
+ }
163
+ const { data } = await res.json();
164
+ console.log(`Rolled back to deployment ${data.version}.`);
165
+ });
166
+ // supatype deploy status
167
+ deploy
168
+ .command("status")
169
+ .description("Show current deployment status")
170
+ .action(async () => {
171
+ const config = loadConfig(process.cwd());
172
+ if (!config.projectRef) {
173
+ console.error("Not linked to a cloud project.");
174
+ process.exit(1);
175
+ }
176
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
177
+ const token = config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
178
+ const res = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/deployments/current`, {
179
+ headers: { Authorization: `Bearer ${token}` },
180
+ });
181
+ if (!res.ok) {
182
+ console.error("No active deployment found.");
183
+ return;
184
+ }
185
+ const { data } = await res.json();
186
+ console.log(`Deployment: ${data.version}`);
187
+ console.log(`Status: ${data.status}`);
188
+ console.log(`Deployed: ${data.timestamp}`);
189
+ console.log(`Size: ${(data.size / (1024 * 1024)).toFixed(1)}MB`);
190
+ console.log(`Build duration: ${data.buildDuration}s`);
191
+ console.log(`URL: ${data.url}`);
192
+ });
193
+ // supatype deploy logs <version>
194
+ deploy
195
+ .command("logs [version]")
196
+ .description("Show build logs for a deployment")
197
+ .action(async (version) => {
198
+ const config = loadConfig(process.cwd());
199
+ if (!config.projectRef) {
200
+ console.error("Not linked to a cloud project.");
201
+ process.exit(1);
202
+ }
203
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
204
+ const token = config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
205
+ const versionPath = version ? `/${version}` : "/current";
206
+ const res = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/deployments${versionPath}/logs`, {
207
+ headers: { Authorization: `Bearer ${token}` },
208
+ });
209
+ if (!res.ok) {
210
+ console.error("Logs not found.");
211
+ process.exit(1);
212
+ }
213
+ const { data } = await res.json();
214
+ console.log(data.logs);
215
+ });
216
+ }
217
+ async function deployToCloud(config, outputDir, isPreview) {
218
+ const apiUrl = config.apiUrl || "https://api.supatype.io";
219
+ const token = config.accessToken || process.env["SUPATYPE_ACCESS_TOKEN"] || "";
220
+ console.log("Uploading build artifacts...");
221
+ // Collect files from output directory
222
+ const files = collectFiles(outputDir, outputDir);
223
+ console.log(`${files.length} files to upload (${formatSize(files.reduce((s, f) => s + f.size, 0))})`);
224
+ // Create deployment
225
+ const createRes = await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/deployments`, {
226
+ method: "POST",
227
+ headers: {
228
+ Authorization: `Bearer ${token}`,
229
+ "Content-Type": "application/json",
230
+ },
231
+ body: JSON.stringify({
232
+ preview: isPreview,
233
+ fileCount: files.length,
234
+ totalSize: files.reduce((s, f) => s + f.size, 0),
235
+ files: files.map((f) => ({ path: f.relativePath, size: f.size })),
236
+ }),
237
+ });
238
+ if (!createRes.ok) {
239
+ const body = await createRes.text();
240
+ throw new Error(`Failed to create deployment: ${createRes.status} ${body}`);
241
+ }
242
+ const { data } = await createRes.json();
243
+ // Upload files (simplified — in production, use multipart or presigned URLs)
244
+ for (const file of files) {
245
+ const content = require("node:fs").readFileSync(file.absolutePath);
246
+ await fetch(`${data.uploadUrl}/${file.relativePath}`, {
247
+ method: "PUT",
248
+ headers: {
249
+ Authorization: `Bearer ${token}`,
250
+ "Content-Type": "application/octet-stream",
251
+ "X-Deployment-Id": data.deploymentId,
252
+ },
253
+ body: content,
254
+ });
255
+ }
256
+ // Finalize deployment
257
+ await fetch(`${apiUrl}/platform/v1/projects/${config.projectRef}/deployments/${data.deploymentId}/finalize`, {
258
+ method: "POST",
259
+ headers: { Authorization: `Bearer ${token}` },
260
+ });
261
+ }
262
+ function deploySelfHost(outputDir, cwd) {
263
+ const servingDir = join(cwd, ".supatype", "static");
264
+ const { mkdirSync, cpSync } = require("node:fs");
265
+ mkdirSync(servingDir, { recursive: true });
266
+ cpSync(outputDir, servingDir, { recursive: true });
267
+ console.log(`Static files deployed to ${servingDir}`);
268
+ }
269
+ function collectFiles(dir, baseDir) {
270
+ const files = [];
271
+ const { readdirSync, statSync } = require("node:fs");
272
+ const { relative } = require("node:path");
273
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
274
+ const fullPath = join(dir, entry.name);
275
+ if (entry.isFile()) {
276
+ files.push({
277
+ absolutePath: fullPath,
278
+ relativePath: relative(baseDir, fullPath).replace(/\\/g, "/"),
279
+ size: statSync(fullPath).size,
280
+ });
281
+ }
282
+ else if (entry.isDirectory()) {
283
+ files.push(...collectFiles(fullPath, baseDir));
284
+ }
285
+ }
286
+ return files;
287
+ }
288
+ function formatSize(bytes) {
289
+ if (bytes < 1024)
290
+ return `${bytes}B`;
291
+ if (bytes < 1024 * 1024)
292
+ return `${(bytes / 1024).toFixed(1)}KB`;
293
+ return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
294
+ }
295
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAErH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,YAAY,EAAE,+CAA+C,CAAC;SACrE,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;SACvE,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,IAMd,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAE9B,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAClC,MAAM,YAAY,EAAE,CAAA;YAEpB,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC7C,MAAM,UAAU,GAAG,YAAY,CAC7B,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACpB,CAAA;YACD,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA;YAEjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,6BAA6B,CAAC,CAAA;gBACvD,MAAM,aAAa,GAAG,YAAY,CAChC,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,EAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CACpB,CAAA;gBACD,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;oBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,oDAAoD;gBACpD,OAAM;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;YAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAEnD,uBAAuB;YACvB,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YAChF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,aAAa;YACb,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;gBAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;gBACvD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,eAAe,EAAE,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,EAAE,CAAA;gBAEb,+BAA+B;gBAC/B,MAAM,QAAQ,GAA2B;oBACvC,GAAG,OAAO,CAAC,GAA6B;oBACxC,GAAG,SAAS,CAAC,GAAG;iBACjB,CAAA;gBAED,4CAA4C;gBAC5C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,QAAQ,CAAC,0BAA0B,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,WAAW,MAAM,CAAC,UAAU,cAAc,CAAA;oBAClG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAA;oBACpE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAA;oBACtE,wEAAwE;gBAC1E,CAAC;gBAED,uBAAuB;gBACvB,MAAM,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;gBACjD,MAAM,aAAa,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;oBAC/C,GAAG,EAAE,SAAS,CAAC,SAAS;oBACxB,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,mBAAmB;iBAC5C,CAAC,CAAA;gBACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;oBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBAED,YAAY;gBACZ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBAC5B,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClE,MAAM,WAAW,GAAG,SAAS,CAAC,QAAS,EAAE,SAAS,EAAE;oBAClD,GAAG,EAAE,SAAS,CAAC,SAAS;oBACxB,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,oBAAoB;iBAC9C,CAAC,CAAA;gBACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;oBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,MAAM,SAAS,GAAG,GAAG,CAAA,CAAC,yCAAyC;YAC/D,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;YACjF,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,SAAS;YACT,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,mCAAmC;gBACnC,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAA;YAC/E,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,cAAc,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;YAChD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;YACrC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO;oBACtB,CAAC,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,cAAc;oBAC/E,CAAC,CAAC,WAAW,MAAM,CAAC,UAAU,cAAc,CAAA;gBAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,2BAA2B;IAC3B,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAA;YACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAA;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;QAE9E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,MAAM,CAAC,UAAU,uBAAuB,EAAE;YAClG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAClF,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAoD,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEJ,yBAAyB;IACzB,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAA;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;QAE9E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,MAAM,CAAC,UAAU,sBAAsB,EAAE;YACjG,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAO7B,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEJ,iCAAiC;IACjC,MAAM;SACH,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAA;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;QAE9E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;QACxD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,MAAM,CAAC,UAAU,eAAe,WAAW,OAAO,EAAE;YAC5G,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAgC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAsE,EACtE,SAAiB,EACjB,SAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;IAE9E,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,sCAAsC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,qBAAqB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAErG,oBAAoB;IACpB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,MAAM,CAAC,UAAU,cAAc,EAAE;QAC/F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAClE,CAAC;KACH,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAA2D,CAAA;IAEhG,6EAA6E;IAC7E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAClE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,0BAA0B;gBAC1C,iBAAiB,EAAE,IAAI,CAAC,YAAY;aACrC;YACD,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,KAAK,CAAC,GAAG,MAAM,yBAAyB,MAAM,CAAC,UAAU,gBAAgB,IAAI,CAAC,YAAY,WAAW,EAAE;QAC3G,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAC9C,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB,EAAE,GAAW;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAA;IAC5E,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC;AAQD,SAAS,YAAY,CAAC,GAAW,EAAE,OAAe;IAChD,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAA;IAChF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,WAAW,CAA+B,CAAA;IAEvE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC;gBACT,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC7D,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI;aAC9B,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,GAAG,CAAA;IACpC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerDev(program: Command): void;
3
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwFlD"}