@pushto/cli 0.2.1 → 0.4.9

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 (189) hide show
  1. package/dist/cli.js +0 -0
  2. package/dist/commands/__tests__/deploy-domain.test.d.ts +2 -0
  3. package/dist/commands/__tests__/deploy-domain.test.d.ts.map +1 -0
  4. package/dist/commands/__tests__/deploy-domain.test.js +41 -0
  5. package/dist/commands/__tests__/deploy-domain.test.js.map +1 -0
  6. package/dist/commands/__tests__/headless-smoke.test.d.ts +2 -0
  7. package/dist/commands/__tests__/headless-smoke.test.d.ts.map +1 -0
  8. package/dist/commands/__tests__/headless-smoke.test.js +110 -0
  9. package/dist/commands/__tests__/headless-smoke.test.js.map +1 -0
  10. package/dist/commands/auth.d.ts +2 -0
  11. package/dist/commands/auth.d.ts.map +1 -0
  12. package/dist/commands/auth.js +77 -0
  13. package/dist/commands/auth.js.map +1 -0
  14. package/dist/commands/cron.d.ts +2 -0
  15. package/dist/commands/cron.d.ts.map +1 -0
  16. package/dist/commands/cron.js +157 -0
  17. package/dist/commands/cron.js.map +1 -0
  18. package/dist/commands/db.d.ts +4 -0
  19. package/dist/commands/db.d.ts.map +1 -0
  20. package/dist/commands/db.js +63 -0
  21. package/dist/commands/db.js.map +1 -0
  22. package/dist/commands/deploy.d.ts +16 -1
  23. package/dist/commands/deploy.d.ts.map +1 -1
  24. package/dist/commands/deploy.js +230 -150
  25. package/dist/commands/deploy.js.map +1 -1
  26. package/dist/commands/doctor.d.ts.map +1 -1
  27. package/dist/commands/doctor.js +289 -54
  28. package/dist/commands/doctor.js.map +1 -1
  29. package/dist/commands/domain.d.ts.map +1 -1
  30. package/dist/commands/domain.js +52 -7
  31. package/dist/commands/domain.js.map +1 -1
  32. package/dist/commands/echo.d.ts +2 -0
  33. package/dist/commands/echo.d.ts.map +1 -0
  34. package/dist/commands/echo.js +227 -0
  35. package/dist/commands/echo.js.map +1 -0
  36. package/dist/commands/env.d.ts +3 -1
  37. package/dist/commands/env.d.ts.map +1 -1
  38. package/dist/commands/env.js +76 -50
  39. package/dist/commands/env.js.map +1 -1
  40. package/dist/commands/init.d.ts +3 -1
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +58 -11
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/login.d.ts.map +1 -1
  45. package/dist/commands/login.js +50 -23
  46. package/dist/commands/login.js.map +1 -1
  47. package/dist/commands/logs.d.ts +3 -1
  48. package/dist/commands/logs.d.ts.map +1 -1
  49. package/dist/commands/logs.js +77 -21
  50. package/dist/commands/logs.js.map +1 -1
  51. package/dist/commands/mail.d.ts +2 -0
  52. package/dist/commands/mail.d.ts.map +1 -0
  53. package/dist/commands/mail.js +105 -0
  54. package/dist/commands/mail.js.map +1 -0
  55. package/dist/commands/open.d.ts.map +1 -1
  56. package/dist/commands/open.js +21 -1
  57. package/dist/commands/open.js.map +1 -1
  58. package/dist/commands/preview.d.ts +22 -0
  59. package/dist/commands/preview.d.ts.map +1 -0
  60. package/dist/commands/preview.js +223 -0
  61. package/dist/commands/preview.js.map +1 -0
  62. package/dist/commands/status.d.ts +3 -1
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +62 -12
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/upgrade.d.ts.map +1 -1
  67. package/dist/commands/upgrade.js +73 -10
  68. package/dist/commands/upgrade.js.map +1 -1
  69. package/dist/commands/use.d.ts +2 -0
  70. package/dist/commands/use.d.ts.map +1 -0
  71. package/dist/commands/use.js +108 -0
  72. package/dist/commands/use.js.map +1 -0
  73. package/dist/commands/vault.d.ts +2 -0
  74. package/dist/commands/vault.d.ts.map +1 -0
  75. package/dist/commands/vault.js +119 -0
  76. package/dist/commands/vault.js.map +1 -0
  77. package/dist/commands/whoami.d.ts.map +1 -1
  78. package/dist/commands/whoami.js +12 -1
  79. package/dist/commands/whoami.js.map +1 -1
  80. package/dist/index.js +117 -14
  81. package/dist/index.js.map +1 -1
  82. package/dist/lib/__tests__/build-runner.test.d.ts +2 -0
  83. package/dist/lib/__tests__/build-runner.test.d.ts.map +1 -0
  84. package/dist/lib/__tests__/build-runner.test.js +119 -0
  85. package/dist/lib/__tests__/build-runner.test.js.map +1 -0
  86. package/dist/lib/__tests__/cron-tail.test.d.ts +2 -0
  87. package/dist/lib/__tests__/cron-tail.test.d.ts.map +1 -0
  88. package/dist/lib/__tests__/cron-tail.test.js +27 -0
  89. package/dist/lib/__tests__/cron-tail.test.js.map +1 -0
  90. package/dist/lib/__tests__/detect-static-framework.test.d.ts +2 -0
  91. package/dist/lib/__tests__/detect-static-framework.test.d.ts.map +1 -0
  92. package/dist/lib/__tests__/detect-static-framework.test.js +146 -0
  93. package/dist/lib/__tests__/detect-static-framework.test.js.map +1 -0
  94. package/dist/lib/__tests__/errors.test.d.ts +2 -0
  95. package/dist/lib/__tests__/errors.test.d.ts.map +1 -0
  96. package/dist/lib/__tests__/errors.test.js +56 -0
  97. package/dist/lib/__tests__/errors.test.js.map +1 -0
  98. package/dist/lib/__tests__/interactive.test.d.ts +2 -0
  99. package/dist/lib/__tests__/interactive.test.d.ts.map +1 -0
  100. package/dist/lib/__tests__/interactive.test.js +79 -0
  101. package/dist/lib/__tests__/interactive.test.js.map +1 -0
  102. package/dist/lib/__tests__/npm-packaging.test.d.ts +2 -0
  103. package/dist/lib/__tests__/npm-packaging.test.d.ts.map +1 -0
  104. package/dist/lib/__tests__/npm-packaging.test.js +81 -0
  105. package/dist/lib/__tests__/npm-packaging.test.js.map +1 -0
  106. package/dist/lib/__tests__/output.test.d.ts +2 -0
  107. package/dist/lib/__tests__/output.test.d.ts.map +1 -0
  108. package/dist/lib/__tests__/output.test.js +144 -0
  109. package/dist/lib/__tests__/output.test.js.map +1 -0
  110. package/dist/lib/__tests__/prepare-artifact.test.d.ts +2 -0
  111. package/dist/lib/__tests__/prepare-artifact.test.d.ts.map +1 -0
  112. package/dist/lib/__tests__/prepare-artifact.test.js +55 -0
  113. package/dist/lib/__tests__/prepare-artifact.test.js.map +1 -0
  114. package/dist/lib/__tests__/preview-args.test.d.ts +2 -0
  115. package/dist/lib/__tests__/preview-args.test.d.ts.map +1 -0
  116. package/dist/lib/__tests__/preview-args.test.js +37 -0
  117. package/dist/lib/__tests__/preview-args.test.js.map +1 -0
  118. package/dist/lib/api.d.ts.map +1 -1
  119. package/dist/lib/api.js +22 -4
  120. package/dist/lib/api.js.map +1 -1
  121. package/dist/lib/ask.d.ts +15 -0
  122. package/dist/lib/ask.d.ts.map +1 -0
  123. package/dist/lib/ask.js +24 -0
  124. package/dist/lib/ask.js.map +1 -0
  125. package/dist/lib/build-runner.d.ts +25 -0
  126. package/dist/lib/build-runner.d.ts.map +1 -0
  127. package/dist/lib/build-runner.js +141 -0
  128. package/dist/lib/build-runner.js.map +1 -0
  129. package/dist/lib/config.d.ts +6 -0
  130. package/dist/lib/config.d.ts.map +1 -1
  131. package/dist/lib/config.js +7 -1
  132. package/dist/lib/config.js.map +1 -1
  133. package/dist/lib/cron-tail.d.ts +10 -0
  134. package/dist/lib/cron-tail.d.ts.map +1 -0
  135. package/dist/lib/cron-tail.js +5 -0
  136. package/dist/lib/cron-tail.js.map +1 -0
  137. package/dist/lib/detect-static-framework.d.ts +31 -0
  138. package/dist/lib/detect-static-framework.d.ts.map +1 -0
  139. package/dist/lib/detect-static-framework.js +96 -0
  140. package/dist/lib/detect-static-framework.js.map +1 -0
  141. package/dist/lib/env-parse.d.ts +48 -0
  142. package/dist/lib/env-parse.d.ts.map +1 -0
  143. package/dist/lib/env-parse.js +91 -0
  144. package/dist/lib/env-parse.js.map +1 -0
  145. package/dist/lib/errors.d.ts +111 -0
  146. package/dist/lib/errors.d.ts.map +1 -0
  147. package/dist/lib/errors.js +64 -0
  148. package/dist/lib/errors.js.map +1 -0
  149. package/dist/lib/file-walker.d.ts +23 -0
  150. package/dist/lib/file-walker.d.ts.map +1 -0
  151. package/dist/lib/file-walker.js +114 -0
  152. package/dist/lib/file-walker.js.map +1 -0
  153. package/dist/lib/interactive.d.ts +13 -0
  154. package/dist/lib/interactive.d.ts.map +1 -0
  155. package/dist/lib/interactive.js +24 -0
  156. package/dist/lib/interactive.js.map +1 -0
  157. package/dist/lib/output.d.ts +24 -0
  158. package/dist/lib/output.d.ts.map +1 -0
  159. package/dist/lib/output.js +71 -0
  160. package/dist/lib/output.js.map +1 -0
  161. package/dist/lib/prepare-artifact.d.ts +22 -0
  162. package/dist/lib/prepare-artifact.d.ts.map +1 -0
  163. package/dist/lib/prepare-artifact.js +26 -0
  164. package/dist/lib/prepare-artifact.js.map +1 -0
  165. package/dist/lib/preview-args.d.ts +20 -0
  166. package/dist/lib/preview-args.d.ts.map +1 -0
  167. package/dist/lib/preview-args.js +19 -0
  168. package/dist/lib/preview-args.js.map +1 -0
  169. package/dist/lib/safe-json.d.ts +7 -2
  170. package/dist/lib/safe-json.d.ts.map +1 -1
  171. package/dist/lib/safe-json.js +23 -4
  172. package/dist/lib/safe-json.js.map +1 -1
  173. package/dist/lib/update-check.d.ts +17 -0
  174. package/dist/lib/update-check.d.ts.map +1 -0
  175. package/dist/lib/update-check.js +81 -0
  176. package/dist/lib/update-check.js.map +1 -0
  177. package/dist/lib/upload-limits.d.ts +17 -0
  178. package/dist/lib/upload-limits.d.ts.map +1 -0
  179. package/dist/lib/upload-limits.js +17 -0
  180. package/dist/lib/upload-limits.js.map +1 -0
  181. package/dist/lib/zip-project.d.ts +19 -0
  182. package/dist/lib/zip-project.d.ts.map +1 -0
  183. package/dist/lib/zip-project.js +39 -0
  184. package/dist/lib/zip-project.js.map +1 -0
  185. package/dist/version.d.ts +2 -0
  186. package/dist/version.d.ts.map +1 -0
  187. package/dist/version.js +16 -0
  188. package/dist/version.js.map +1 -0
  189. package/package.json +5 -8
@@ -2,116 +2,61 @@ import chalk from 'chalk';
2
2
  import ora from 'ora';
3
3
  import fs from 'node:fs';
4
4
  import path from 'node:path';
5
- import { execSync } from 'node:child_process';
6
- import { createInterface } from 'node:readline';
7
- import archiver from 'archiver';
8
5
  import { getToken } from '../lib/config.js';
9
6
  import { api, deploySignal } from '../lib/api.js';
10
7
  import { resolveSlug } from '../lib/resolve-slug.js';
11
8
  import { safeJson } from '../lib/safe-json.js';
12
- const ask = (question) => {
13
- const rl = createInterface({ input: process.stdin, output: process.stdout });
14
- return new Promise((resolve) => {
15
- rl.question(question, (answer) => {
16
- rl.close();
17
- resolve(answer.trim());
18
- });
19
- });
20
- };
21
- const IGNORE = [
22
- 'node_modules',
23
- '.git',
24
- '.next',
25
- '.vercel',
26
- '.turbo',
27
- 'dist',
28
- '.pushto',
29
- '.env',
30
- '.env.local',
31
- '.DS_Store',
32
- ];
33
- const getGitInfo = () => {
34
- try {
35
- const hash = execSync('git rev-parse --short HEAD', { stdio: ['pipe', 'pipe', 'ignore'] }).toString().trim();
36
- const message = execSync('git log -1 --pretty=%s', { stdio: ['pipe', 'pipe', 'ignore'] }).toString().trim();
37
- const branch = execSync('git rev-parse --abbrev-ref HEAD', { stdio: ['pipe', 'pipe', 'ignore'] }).toString().trim();
38
- return { hash, message, branch };
39
- }
40
- catch {
41
- return { hash: null, message: null, branch: 'main' };
42
- }
43
- };
44
- const zipDirectory = (dir) => {
45
- return new Promise((resolve, reject) => {
46
- const archive = archiver('zip', { zlib: { level: 9 } });
47
- const chunks = [];
48
- archive.on('data', (chunk) => chunks.push(chunk));
49
- archive.on('end', () => resolve(Buffer.concat(chunks)));
50
- archive.on('error', reject);
51
- const MAX_DEPTH = 20;
52
- // Add files, respecting ignores. Skips symlinks to prevent traversal attacks.
53
- const addDir = (dirPath, prefix, depth = 0) => {
54
- if (depth > MAX_DEPTH)
55
- return;
56
- const entries = fs.readdirSync(dirPath, { withFileTypes: true });
57
- for (const entry of entries) {
58
- if (IGNORE.includes(entry.name))
59
- continue;
60
- if (entry.name.startsWith('.') && entry.name !== '.htaccess')
61
- continue;
62
- // Skip symlinks entirely to prevent traversal outside the project root
63
- if (entry.isSymbolicLink())
64
- continue;
65
- const fullPath = path.join(dirPath, entry.name);
66
- const archivePath = prefix ? `${prefix}/${entry.name}` : entry.name;
67
- if (entry.isFile()) {
68
- archive.file(fullPath, { name: archivePath });
69
- }
70
- else if (entry.isDirectory()) {
71
- addDir(fullPath, archivePath, depth + 1);
72
- }
73
- }
74
- };
75
- addDir(dir, '');
76
- archive.finalize();
77
- });
9
+ import { getGitInfo, zipDirectory } from '../lib/zip-project.js';
10
+ import { SERVER_UPLOAD_CAP_BYTES, fmtMB } from '../lib/upload-limits.js';
11
+ import { parseEnvFile } from '../lib/env-parse.js';
12
+ import { prepareArtifact } from '../lib/prepare-artifact.js';
13
+ import { canPrompt } from '../lib/interactive.js';
14
+ import { ask } from '../lib/ask.js';
15
+ import { fail } from '../lib/output.js';
16
+ /**
17
+ * Decide whether to ask for a custom domain, and never reach for stdin when
18
+ * the answer is no. Pre-fix this logic was inline and called ask()
19
+ * unconditionally, which hung every headless caller on their first deploy:
20
+ * readline's callback never fires on EOF, so the promise never settled and
21
+ * the enclosing try/catch was inert, because hanging is not throwing.
22
+ */
23
+ export const resolveCustomDomain = async (args) => {
24
+ if (args.current)
25
+ return null;
26
+ if (!args.canPrompt)
27
+ return null;
28
+ const answer = await args.ask(chalk.dim(' custom domain? (enter to skip): '));
29
+ return answer ? answer : null;
78
30
  };
79
- export const deploy = async () => {
31
+ export const deploy = async (opts = {}) => {
80
32
  const token = getToken();
81
33
  if (!token) {
82
- console.log(chalk.red('> not logged in.'));
83
- console.log(chalk.dim(' run ') + chalk.cyan('pushto login') + chalk.dim(' first.'));
84
- process.exit(1);
34
+ fail('NOT_AUTHENTICATED', 'not logged in.', opts, {
35
+ stage: 'auth',
36
+ fix: { label: 'sign in', cmd: 'pushto login', prose: 'run {cmd} first.' },
37
+ });
85
38
  }
86
39
  const slug = resolveSlug();
87
40
  if (!slug) {
88
- console.log(chalk.red('> no project here.'));
89
- console.log(chalk.dim(' run ') + chalk.cyan('pushto init <name>') + chalk.dim(' to get started.'));
90
- process.exit(1);
41
+ fail('NO_PROJECT', 'no project here.', opts, {
42
+ fix: { label: 'get started', cmd: 'pushto init <name>', prose: 'run {cmd} to get started.' },
43
+ });
91
44
  }
92
- // Scan .env file and auto-import env vars before deploying
93
- const envFiles = ['.env', '.env.local', '.env.production'];
45
+ // Echo the slug + cwd up front so users in the wrong directory (stale
46
+ // .pushto from a project they forgot, or `pushto` accidentally run from
47
+ // a parent dir that has its own .pushto) catch the mistake BEFORE we
48
+ // zip and upload. Pre-fix the slug only surfaced in the success box at
49
+ // the end — by which point the wrong project had already been deployed.
50
+ console.log(chalk.dim('> deploying ') + chalk.cyan(slug) + chalk.dim(' from ') + chalk.dim(process.cwd()));
51
+ // Auto-import env vars before deploying. Prefer .env.production so users
52
+ // can keep local-only vars (e.g. ADMIN_PASSWORD that gates dev too) in .env
53
+ // without them silently leaking to remote on every push.
54
+ const envFiles = ['.env.production', '.env'];
94
55
  for (const envFile of envFiles) {
95
56
  const envPath = path.join(process.cwd(), envFile);
96
57
  if (fs.existsSync(envPath)) {
97
58
  const envContent = fs.readFileSync(envPath, 'utf-8');
98
- const vars = {};
99
- for (const line of envContent.split('\n')) {
100
- const trimmed = line.trim();
101
- if (!trimmed || trimmed.startsWith('#'))
102
- continue;
103
- const eqIdx = trimmed.indexOf('=');
104
- if (eqIdx === -1)
105
- continue;
106
- const key = trimmed.slice(0, eqIdx).trim();
107
- let value = trimmed.slice(eqIdx + 1).trim();
108
- // Strip surrounding quotes
109
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
110
- value = value.slice(1, -1);
111
- }
112
- if (key && value)
113
- vars[key] = value;
114
- }
59
+ const vars = parseEnvFile(envContent);
115
60
  const count = Object.keys(vars).length;
116
61
  if (count > 0) {
117
62
  const envSpinner = ora(`found ${count} env vars in ${envFile} — importing...`).start();
@@ -122,7 +67,20 @@ export const deploy = async () => {
122
67
  body: JSON.stringify({ vars }),
123
68
  });
124
69
  if (envRes.ok) {
125
- envSpinner.succeed(chalk.green(`> ${count} env vars imported from ${envFile}`));
70
+ const envData = await safeJson(envRes);
71
+ const imported = envData.imported ?? count;
72
+ const skipped = envData.skipped ?? [];
73
+ envSpinner.succeed(chalk.green(`> ${imported} env vars imported from ${envFile}`));
74
+ // Surface skipped keys so the user knows their app may be
75
+ // missing config — pre-fix the bulk PUT silently dropped
76
+ // anything that failed validation (key not [A-Z_], value
77
+ // > 10KB, value contained newlines).
78
+ if (skipped.length > 0) {
79
+ console.log(chalk.yellow(` ${skipped.length} skipped:`));
80
+ for (const s of skipped) {
81
+ console.log(chalk.dim(` ${s.key} → ${s.reason}`));
82
+ }
83
+ }
126
84
  }
127
85
  else {
128
86
  envSpinner.warn(chalk.yellow(`> couldn't import env vars (non-blocking)`));
@@ -140,51 +98,89 @@ export const deploy = async () => {
140
98
  const projectRes = await api(`/cli/projects/${slug}`);
141
99
  if (projectRes.ok) {
142
100
  const projectData = await safeJson(projectRes);
143
- if (!projectData.customDomain) {
144
- const domain = await ask(chalk.dim(' custom domain? (enter to skip): '));
145
- if (domain) {
146
- const domainSpinner = ora(`setting up ${domain}...`).start();
147
- try {
148
- const domRes = await api(`/cli/projects/${slug}/domain`, {
149
- method: 'POST',
150
- headers: { 'Content-Type': 'application/json' },
151
- body: JSON.stringify({ domain }),
152
- });
153
- if (domRes.ok) {
154
- const domData = await safeJson(domRes);
155
- domainSpinner.succeed(chalk.green(`> ${domain} configured`));
156
- if (domData.nameservers?.length) {
157
- console.log(chalk.dim(' update your nameservers to:'));
158
- for (const ns of domData.nameservers) {
159
- console.log(chalk.cyan(` ${ns}`));
160
- }
161
- console.log('');
101
+ const domain = await resolveCustomDomain({
102
+ current: projectData.customDomain,
103
+ canPrompt: canPrompt(opts),
104
+ ask,
105
+ });
106
+ if (domain) {
107
+ const domainSpinner = ora(`setting up ${domain}...`).start();
108
+ try {
109
+ const domRes = await api(`/cli/projects/${slug}/domain`, {
110
+ method: 'POST',
111
+ headers: { 'Content-Type': 'application/json' },
112
+ body: JSON.stringify({ domain }),
113
+ });
114
+ if (domRes.ok) {
115
+ const domData = await safeJson(domRes);
116
+ domainSpinner.succeed(chalk.green(`> ${domain} configured`));
117
+ if (domData.nameservers?.length) {
118
+ console.log(chalk.dim(' update your nameservers to:'));
119
+ for (const ns of domData.nameservers) {
120
+ console.log(chalk.cyan(` ${ns}`));
162
121
  }
163
- }
164
- else {
165
- const errData = await safeJson(domRes);
166
- domainSpinner.warn(chalk.yellow(`> ${errData.error ?? 'could not set up domain'}`));
122
+ console.log('');
167
123
  }
168
124
  }
169
- catch {
170
- domainSpinner.warn(chalk.yellow('> domain setup skipped'));
125
+ else {
126
+ const errData = await safeJson(domRes);
127
+ domainSpinner.warn(chalk.yellow(`> ${errData.error ?? 'could not set up domain'}`));
171
128
  }
172
129
  }
130
+ catch {
131
+ domainSpinner.warn(chalk.yellow('> domain setup skipped'));
132
+ }
173
133
  }
174
134
  }
175
135
  }
176
136
  catch { /* project check failed — continue with deploy */ }
137
+ // Static-output frameworks (vite, astro, gatsby, angular, cra, eleventy)
138
+ // build HERE, on this machine, and only the output ships. Everything
139
+ // else zips the cwd exactly as before.
140
+ const buildSpinner = ora('checking project...').start();
141
+ const prep = await prepareArtifact(process.cwd(), (line) => { buildSpinner.text = line; });
142
+ if (prep.kind === 'failed') {
143
+ buildSpinner.fail(chalk.red('> build failed.'));
144
+ console.log('');
145
+ console.log(chalk.red(' reason: ') + chalk.dim(prep.message));
146
+ if (prep.buildOutput.trim()) {
147
+ const tail = prep.buildOutput.trim().split('\n').slice(-40).join('\n');
148
+ console.log(chalk.dim(tail.replace(/^/gm, ' ')));
149
+ }
150
+ process.exit(1);
151
+ }
152
+ if (prep.kind === 'artifact') {
153
+ buildSpinner.succeed(chalk.green(`> built with ${prep.framework}`));
154
+ }
155
+ else {
156
+ buildSpinner.stop();
157
+ }
177
158
  const spinner = ora('zipping project...').start();
178
159
  try {
179
160
  const git = getGitInfo();
180
- // Zip the current directory
181
- const zipBuffer = await zipDirectory(process.cwd());
161
+ const { buffer: zipBuffer, fileCount: zippedCount } = await zipDirectory(prep.zipDir);
182
162
  const sizeBytes = zipBuffer.length;
183
163
  const sizeMB = (sizeBytes / 1024 / 1024).toFixed(1);
184
- // Guard against accidentally huge uploads
185
- const MAX_ZIP_BYTES = 500 * 1024 * 1024; // 500MB
186
- if (sizeBytes > MAX_ZIP_BYTES) {
187
- spinner.fail(chalk.red(`> zip is ${sizeMB}MB — that's too big. add large files to .gitignore or a .pushtoignore file.`));
164
+ // Catch empty uploads before we waste a roundtrip. A user in the wrong
165
+ // directory, or with everything gitignored, would otherwise get a
166
+ // server-side 400 ~30s later. Tell them up front + point them at the
167
+ // doctor command for diagnosis.
168
+ if (zippedCount === 0) {
169
+ spinner.fail(chalk.red('> no files found in this directory.'));
170
+ console.log(chalk.dim(' is your entire project in .gitignore? are you in the wrong directory?'));
171
+ console.log(chalk.dim(' run ') + chalk.cyan('pushto doctor') + chalk.dim(' to see what would be uploaded.'));
172
+ process.exit(1);
173
+ }
174
+ // Match the server cap exactly so we fail FAST (locally, instantly)
175
+ // instead of slow (after a 30-second upload that the server then 413s).
176
+ // Pre-fix the local cap was 500MB but the server cap is 50MB — uploads
177
+ // between 50MB and 500MB went up the wire and got rejected after the
178
+ // long upload finished, with a confusing "upload too large" error
179
+ // long after the user had walked away thinking it was working.
180
+ if (sizeBytes > SERVER_UPLOAD_CAP_BYTES) {
181
+ spinner.fail(chalk.red(`> deploy is ${fmtMB(sizeBytes)} — server cap is ${fmtMB(SERVER_UPLOAD_CAP_BYTES)}.`));
182
+ console.log(chalk.dim(' add large files (videos, datasets, build artifacts) to .gitignore or .pushtoignore.'));
183
+ console.log(chalk.dim(' run ') + chalk.cyan('pushto doctor') + chalk.dim(' to see the biggest files.'));
188
184
  process.exit(1);
189
185
  }
190
186
  spinner.text = `uploading ${sizeMB}MB...`;
@@ -203,12 +199,31 @@ export const deploy = async () => {
203
199
  process.exit(1);
204
200
  }
205
201
  const data = await safeJson(res);
206
- spinner.succeed(chalk.green(`> ${data.message}`));
207
- // If the server detects a dynamic framework, auto-trigger Fly deploy
202
+ // Don't trust the server's `data.message` here — it currently says
203
+ // "v1 live" even though for container apps, the build hasn't run yet.
204
+ // What we know for sure at this point is: the bundle uploaded.
205
+ spinner.succeed(chalk.green(`> v${data.deployment.version} uploaded (${data.deployment.fileCount} files)`));
206
+ if (prep.kind === 'artifact') {
207
+ prep.cleanup();
208
+ if (prep.typeWarnings) {
209
+ console.log('');
210
+ console.log(chalk.yellow(' heads up: your types have errors. the site is live and runs exactly like dev mode.'));
211
+ const tail = prep.typeWarnings.trim().split('\n').slice(-15).join('\n');
212
+ console.log(chalk.dim(tail.replace(/^/gm, ' ')));
213
+ console.log(chalk.dim(' fix them when you are ready. npm run build shows the full list.'));
214
+ }
215
+ }
216
+ let outcome = data.container ? 'container' : 'failed';
217
+ let failureDetail = null;
208
218
  let finalUrl = data.url;
209
- let flyDeployed = false;
210
- if (!data.flyApp) {
211
- // Try dynamic deploy — server will return immediately if it's static
219
+ let containerDeployed = data.container != null;
220
+ // The deploy route's build duration — the upload response's number is
221
+ // just the upload time, and the summary box printing "deployed in 2s"
222
+ // for a 90-second container build was a lie by omission.
223
+ let containerBuildDuration = null;
224
+ if (!data.container) {
225
+ // Try dynamic deploy — server will return 403 if it's a free tier
226
+ // user (static-only) or 200 with no container if it's a static site.
212
227
  const deploySpinner = ora('detecting framework...').start();
213
228
  try {
214
229
  const deployRes = await api(`/cli/projects/${slug}/deploy`, {
@@ -218,41 +233,103 @@ export const deploy = async () => {
218
233
  commitHash: git.hash,
219
234
  commitMessage: git.message,
220
235
  branch: git.branch,
236
+ builtFramework: prep.kind === 'artifact' ? prep.framework : undefined,
221
237
  }),
222
238
  signal: deploySignal(),
223
239
  });
224
240
  if (deployRes.ok) {
225
241
  const deployData = await safeJson(deployRes);
226
- if (deployData.flyApp) {
227
- flyDeployed = true;
242
+ if (deployData.container) {
243
+ outcome = 'container';
244
+ containerDeployed = true;
228
245
  finalUrl = deployData.url ?? finalUrl;
229
246
  const fw = deployData.deployment?.framework ?? 'dynamic';
230
247
  const dur = deployData.deployment?.buildDuration ?? 0;
231
- deploySpinner.succeed(chalk.green(`> deployed to fly as ${fw} (${dur}s)`));
248
+ containerBuildDuration = deployData.deployment?.buildDuration ?? null;
249
+ deploySpinner.succeed(chalk.green(`> deployed as ${fw} (${dur}s)`));
232
250
  }
233
251
  else {
234
- // Static site — no Fly needed
235
- deploySpinner.succeed(chalk.green(`> static site — live from edge`));
252
+ outcome = 'static';
253
+ const label = prep.kind === 'artifact' ? `${prep.framework} build` : 'static site';
254
+ deploySpinner.succeed(chalk.green(`> ${label} live`));
255
+ if (deployData.message && deployData.message.includes('container was stopped')) {
256
+ console.log(chalk.yellow(` ${deployData.message}`));
257
+ }
236
258
  }
237
259
  }
260
+ else if (deployRes.status === 403) {
261
+ // After the server's detect-before-gate reorder, 403 means one
262
+ // thing: genuinely dynamic project, free tier. Printing static
263
+ // success here was a lie (raw server source served as files).
264
+ const gateData = await safeJson(deployRes);
265
+ outcome = 'failed';
266
+ failureDetail = gateData.error ?? 'dynamic deploys are a paid feature.';
267
+ deploySpinner.fail(chalk.red('> this project needs a server'));
268
+ }
269
+ else if (deployRes.status === 504) {
270
+ // Server gave up waiting after 10 minutes, but the deploy-agent
271
+ // is still processing the build. Show a non-failure message and
272
+ // exit 0 — the user can poll the dashboard for completion.
273
+ outcome = 'still-building';
274
+ deploySpinner.warn(chalk.yellow('> still building — taking longer than usual'));
275
+ }
276
+ else if (deployRes.status === 409) {
277
+ // Server refused to start a second concurrent build for the same
278
+ // version (another `pushto deploy` is already mid-build). Treat
279
+ // as a non-failure — the previous build will land any moment.
280
+ // Server includes `stillBuilding: true` for parity with 504.
281
+ const conflictData = await safeJson(deployRes);
282
+ outcome = 'still-building';
283
+ deploySpinner.warn(chalk.yellow(`> ${conflictData.error ?? 'a build for this version is already in progress'}`));
284
+ }
238
285
  else {
286
+ // Real failure (build failed, container crashed, etc.)
239
287
  const errData = await safeJson(deployRes);
240
- // 403 = free tier (static only), which is fine
241
- if (deployRes.status === 403) {
242
- deploySpinner.succeed(chalk.green(`> static site — live from edge`));
243
- }
244
- else {
245
- deploySpinner.warn(chalk.yellow(`> ${errData.error ?? 'framework deploy skipped'}`));
246
- }
288
+ outcome = 'failed';
289
+ failureDetail = errData.error ?? `server returned ${deployRes.status}`;
290
+ deploySpinner.fail(chalk.red(`> deploy failed`));
247
291
  }
248
292
  }
249
- catch {
250
- deploySpinner.warn(chalk.yellow('> framework detection skipped'));
293
+ catch (err) {
294
+ outcome = 'failed';
295
+ failureDetail = err instanceof Error ? err.message : 'network error during deploy';
296
+ deploySpinner.fail(chalk.red(`> deploy failed`));
297
+ }
298
+ }
299
+ // Surface failures honestly — no success box for a broken deploy.
300
+ if (outcome === 'failed') {
301
+ console.log('');
302
+ if (failureDetail) {
303
+ console.log(chalk.red(' reason: ') + chalk.dim(failureDetail));
251
304
  }
305
+ console.log('');
306
+ console.log(chalk.dim(' see what went wrong:'));
307
+ console.log(` ${chalk.cyan('pushto logs')}`);
308
+ console.log(` ${chalk.cyan(`https://pushto.host/dashboard/projects/${slug}`)}`);
309
+ console.log('');
310
+ process.exit(1);
311
+ }
312
+ // Build's still going — exit 0 with a clear "check the dashboard" hint.
313
+ // This isn't a failure path: the bundle uploaded, the agent claimed it,
314
+ // and the build is just slower than the route's poll budget. The
315
+ // dashboard will reflect LIVE/FAILED whenever the agent finishes.
316
+ if (outcome === 'still-building') {
317
+ console.log('');
318
+ console.log(chalk.yellow(' your deploy is taking a while.'));
319
+ console.log(chalk.dim(' the build is still running — we just stopped waiting on it.'));
320
+ console.log('');
321
+ console.log(chalk.dim(' watch it finish:'));
322
+ console.log(` ${chalk.cyan(`pushto logs`)}`);
323
+ console.log(` ${chalk.cyan(`https://pushto.host/dashboard/projects/${slug}`)}`);
324
+ console.log('');
325
+ // Exit 0 — the deploy isn't broken; we just timed out the wait.
326
+ // CI scripts that check exit code shouldn't treat this as a failure.
327
+ return;
252
328
  }
253
- // Build the summary box
329
+ // Build the summary box. Container deploys report the build step's real
330
+ // duration; the upload response's number only covers the upload.
254
331
  const version = `v${data.deployment.version}`;
255
- const duration = `${data.deployment.buildDuration}s`;
332
+ const duration = `${containerBuildDuration ?? data.deployment.buildDuration}s`;
256
333
  const fileCount = data.deployment.fileCount;
257
334
  const url = finalUrl;
258
335
  const commitLine = git.hash ? `${git.hash} ${git.message ?? ''}` : null;
@@ -260,8 +337,8 @@ export const deploy = async () => {
260
337
  `${chalk.green(version)} deployed in ${chalk.cyan(duration)}`,
261
338
  `${chalk.dim(String(fileCount) + ' files')} ${chalk.dim('•')} ${chalk.cyan(url)}`,
262
339
  ];
263
- if (flyDeployed) {
264
- lines.push(chalk.dim('running on fly machine'));
340
+ if (containerDeployed) {
341
+ lines.push(chalk.dim('container running'));
265
342
  }
266
343
  if (commitLine) {
267
344
  lines.push(chalk.dim(commitLine));
@@ -307,6 +384,7 @@ export const deploy = async () => {
307
384
  url: job.url,
308
385
  schedule: job.schedule,
309
386
  method: job.method ?? 'POST',
387
+ ...(typeof job.secret === 'string' && job.secret ? { secret: job.secret } : {}),
310
388
  }),
311
389
  });
312
390
  if (cronRes.ok) {
@@ -327,6 +405,8 @@ export const deploy = async () => {
327
405
  }
328
406
  }
329
407
  catch (err) {
408
+ if (prep.kind === 'artifact')
409
+ prep.cleanup();
330
410
  const msg = err instanceof Error ? err.message : 'unknown error';
331
411
  spinner.fail(chalk.red(`> deploy failed: ${msg}`));
332
412
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CA2O3C,CAAC"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CA2c3C,CAAC"}