@pushto/cli 0.2.1 → 0.4.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.
- package/dist/commands/__tests__/deploy-domain.test.d.ts +2 -0
- package/dist/commands/__tests__/deploy-domain.test.d.ts.map +1 -0
- package/dist/commands/__tests__/deploy-domain.test.js +41 -0
- package/dist/commands/__tests__/deploy-domain.test.js.map +1 -0
- package/dist/commands/__tests__/headless-smoke.test.d.ts +2 -0
- package/dist/commands/__tests__/headless-smoke.test.d.ts.map +1 -0
- package/dist/commands/__tests__/headless-smoke.test.js +110 -0
- package/dist/commands/__tests__/headless-smoke.test.js.map +1 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +77 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/cron.d.ts +2 -0
- package/dist/commands/cron.d.ts.map +1 -0
- package/dist/commands/cron.js +157 -0
- package/dist/commands/cron.js.map +1 -0
- package/dist/commands/db.d.ts +4 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +63 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/deploy.d.ts +16 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +230 -150
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +289 -54
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/domain.d.ts.map +1 -1
- package/dist/commands/domain.js +52 -7
- package/dist/commands/domain.js.map +1 -1
- package/dist/commands/echo.d.ts +2 -0
- package/dist/commands/echo.d.ts.map +1 -0
- package/dist/commands/echo.js +227 -0
- package/dist/commands/echo.js.map +1 -0
- package/dist/commands/env.d.ts +3 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +76 -50
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +50 -23
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +77 -21
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mail.d.ts +2 -0
- package/dist/commands/mail.d.ts.map +1 -0
- package/dist/commands/mail.js +105 -0
- package/dist/commands/mail.js.map +1 -0
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +21 -1
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/preview.d.ts +22 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +223 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/status.d.ts +3 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +62 -12
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +73 -10
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/use.d.ts +2 -0
- package/dist/commands/use.d.ts.map +1 -0
- package/dist/commands/use.js +108 -0
- package/dist/commands/use.js.map +1 -0
- package/dist/commands/vault.d.ts +2 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +119 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +12 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +117 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/build-runner.test.d.ts +2 -0
- package/dist/lib/__tests__/build-runner.test.d.ts.map +1 -0
- package/dist/lib/__tests__/build-runner.test.js +119 -0
- package/dist/lib/__tests__/build-runner.test.js.map +1 -0
- package/dist/lib/__tests__/cron-tail.test.d.ts +2 -0
- package/dist/lib/__tests__/cron-tail.test.d.ts.map +1 -0
- package/dist/lib/__tests__/cron-tail.test.js +27 -0
- package/dist/lib/__tests__/cron-tail.test.js.map +1 -0
- package/dist/lib/__tests__/detect-static-framework.test.d.ts +2 -0
- package/dist/lib/__tests__/detect-static-framework.test.d.ts.map +1 -0
- package/dist/lib/__tests__/detect-static-framework.test.js +146 -0
- package/dist/lib/__tests__/detect-static-framework.test.js.map +1 -0
- package/dist/lib/__tests__/errors.test.d.ts +2 -0
- package/dist/lib/__tests__/errors.test.d.ts.map +1 -0
- package/dist/lib/__tests__/errors.test.js +56 -0
- package/dist/lib/__tests__/errors.test.js.map +1 -0
- package/dist/lib/__tests__/interactive.test.d.ts +2 -0
- package/dist/lib/__tests__/interactive.test.d.ts.map +1 -0
- package/dist/lib/__tests__/interactive.test.js +79 -0
- package/dist/lib/__tests__/interactive.test.js.map +1 -0
- package/dist/lib/__tests__/output.test.d.ts +2 -0
- package/dist/lib/__tests__/output.test.d.ts.map +1 -0
- package/dist/lib/__tests__/output.test.js +144 -0
- package/dist/lib/__tests__/output.test.js.map +1 -0
- package/dist/lib/__tests__/prepare-artifact.test.d.ts +2 -0
- package/dist/lib/__tests__/prepare-artifact.test.d.ts.map +1 -0
- package/dist/lib/__tests__/prepare-artifact.test.js +55 -0
- package/dist/lib/__tests__/prepare-artifact.test.js.map +1 -0
- package/dist/lib/__tests__/preview-args.test.d.ts +2 -0
- package/dist/lib/__tests__/preview-args.test.d.ts.map +1 -0
- package/dist/lib/__tests__/preview-args.test.js +37 -0
- package/dist/lib/__tests__/preview-args.test.js.map +1 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +22 -4
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/ask.d.ts +15 -0
- package/dist/lib/ask.d.ts.map +1 -0
- package/dist/lib/ask.js +24 -0
- package/dist/lib/ask.js.map +1 -0
- package/dist/lib/build-runner.d.ts +25 -0
- package/dist/lib/build-runner.d.ts.map +1 -0
- package/dist/lib/build-runner.js +141 -0
- package/dist/lib/build-runner.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +7 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/cron-tail.d.ts +10 -0
- package/dist/lib/cron-tail.d.ts.map +1 -0
- package/dist/lib/cron-tail.js +5 -0
- package/dist/lib/cron-tail.js.map +1 -0
- package/dist/lib/detect-static-framework.d.ts +31 -0
- package/dist/lib/detect-static-framework.d.ts.map +1 -0
- package/dist/lib/detect-static-framework.js +96 -0
- package/dist/lib/detect-static-framework.js.map +1 -0
- package/dist/lib/env-parse.d.ts +48 -0
- package/dist/lib/env-parse.d.ts.map +1 -0
- package/dist/lib/env-parse.js +91 -0
- package/dist/lib/env-parse.js.map +1 -0
- package/dist/lib/errors.d.ts +111 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +64 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/file-walker.d.ts +23 -0
- package/dist/lib/file-walker.d.ts.map +1 -0
- package/dist/lib/file-walker.js +114 -0
- package/dist/lib/file-walker.js.map +1 -0
- package/dist/lib/interactive.d.ts +13 -0
- package/dist/lib/interactive.d.ts.map +1 -0
- package/dist/lib/interactive.js +24 -0
- package/dist/lib/interactive.js.map +1 -0
- package/dist/lib/output.d.ts +24 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +71 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/prepare-artifact.d.ts +22 -0
- package/dist/lib/prepare-artifact.d.ts.map +1 -0
- package/dist/lib/prepare-artifact.js +26 -0
- package/dist/lib/prepare-artifact.js.map +1 -0
- package/dist/lib/preview-args.d.ts +20 -0
- package/dist/lib/preview-args.d.ts.map +1 -0
- package/dist/lib/preview-args.js +19 -0
- package/dist/lib/preview-args.js.map +1 -0
- package/dist/lib/safe-json.d.ts +7 -2
- package/dist/lib/safe-json.d.ts.map +1 -1
- package/dist/lib/safe-json.js +23 -4
- package/dist/lib/safe-json.js.map +1 -1
- package/dist/lib/update-check.d.ts +17 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +81 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/upload-limits.d.ts +17 -0
- package/dist/lib/upload-limits.d.ts.map +1 -0
- package/dist/lib/upload-limits.js +17 -0
- package/dist/lib/upload-limits.js.map +1 -0
- package/dist/lib/zip-project.d.ts +19 -0
- package/dist/lib/zip-project.d.ts.map +1 -0
- package/dist/lib/zip-project.js +39 -0
- package/dist/lib/zip-project.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/package.json +5 -8
package/dist/commands/doctor.js
CHANGED
|
@@ -1,14 +1,65 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { execSync } from 'node:child_process';
|
|
4
5
|
import { getToken } from '../lib/config.js';
|
|
5
6
|
import { resolveSlug } from '../lib/resolve-slug.js';
|
|
6
7
|
import { api } from '../lib/api.js';
|
|
7
8
|
import { safeJson } from '../lib/safe-json.js';
|
|
9
|
+
import { checkForUpdate, getCurrentVersion } from '../lib/update-check.js';
|
|
10
|
+
import { walkProject } from '../lib/file-walker.js';
|
|
11
|
+
import { SERVER_UPLOAD_CAP_BYTES, fmtMB } from '../lib/upload-limits.js';
|
|
12
|
+
import { detectStaticFramework } from '../lib/detect-static-framework.js';
|
|
8
13
|
export const doctor = async () => {
|
|
9
14
|
console.log(chalk.green('> pushto doctor\n'));
|
|
10
15
|
const checks = [];
|
|
11
16
|
const cwd = process.cwd();
|
|
17
|
+
// ── 0. CLI health ──
|
|
18
|
+
// Detect the most common CLI-side support tickets up front: stale brew
|
|
19
|
+
// binaries, outdated installs, and version mismatches between what brew
|
|
20
|
+
// thinks is installed and what the binary actually reports. (We hit all
|
|
21
|
+
// three of these ourselves while shipping 0.4.x — the user sees a
|
|
22
|
+
// mysterious "0.0.0-dev" and can't tell if their fix worked.)
|
|
23
|
+
const installedVersion = getCurrentVersion();
|
|
24
|
+
if (installedVersion === '0.0.0-dev') {
|
|
25
|
+
checks.push({
|
|
26
|
+
name: 'cli version',
|
|
27
|
+
status: 'fail',
|
|
28
|
+
message: 'binary reports 0.0.0-dev — version not embedded. reinstall: brew uninstall pushto && brew install mydude-industries/tap/pushto',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
checks.push({ name: 'cli version', status: 'pass', message: installedVersion });
|
|
33
|
+
}
|
|
34
|
+
// Brew/binary mismatch: if you installed via brew, what brew thinks the
|
|
35
|
+
// version is should match what the binary reports. Mismatch usually means
|
|
36
|
+
// a stale shell hash, multiple pushto installs, or a partial brew upgrade.
|
|
37
|
+
if (process.execPath.includes('/Cellar/') || process.execPath.startsWith('/opt/homebrew/') || process.execPath.includes('linuxbrew')) {
|
|
38
|
+
try {
|
|
39
|
+
const brewVersion = execSync('brew list --versions pushto 2>/dev/null', { encoding: 'utf-8' })
|
|
40
|
+
.trim().split(/\s+/)[1] ?? '';
|
|
41
|
+
if (brewVersion && brewVersion !== installedVersion && installedVersion !== '0.0.0-dev') {
|
|
42
|
+
checks.push({
|
|
43
|
+
name: 'brew sync',
|
|
44
|
+
status: 'warn',
|
|
45
|
+
message: `brew has ${brewVersion} but binary reports ${installedVersion}. try: hash -r && pushto --version`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch { /* brew not on PATH or pushto not installed via brew — skip */ }
|
|
50
|
+
}
|
|
51
|
+
// Update available?
|
|
52
|
+
try {
|
|
53
|
+
const updateInfo = await checkForUpdate(false);
|
|
54
|
+
if (updateInfo?.needsUpdate) {
|
|
55
|
+
checks.push({
|
|
56
|
+
name: 'update',
|
|
57
|
+
status: 'warn',
|
|
58
|
+
message: `${updateInfo.current} → ${updateInfo.latest} available. run: pushto upgrade`,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch { /* offline or registry down — skip */ }
|
|
12
63
|
// ── 1. Auth ──
|
|
13
64
|
const token = getToken();
|
|
14
65
|
checks.push(token
|
|
@@ -20,8 +71,16 @@ export const doctor = async () => {
|
|
|
20
71
|
? { name: 'project', status: 'pass', message: `linked to ${slug}` }
|
|
21
72
|
: { name: 'project', status: 'fail', message: 'no .pushto file. run pushto init <name>' });
|
|
22
73
|
// ── 3. Framework detection (Node + Python + Go + Rust + Ruby) ──
|
|
74
|
+
// The Python branch checks all three install-target files, matching what
|
|
75
|
+
// detect.ts handles in production (pip / pipenv / poetry / PEP 621). Pre-fix
|
|
76
|
+
// doctor only checked requirements.txt — Pipfile-only or pyproject-only
|
|
77
|
+
// projects got "no known project files found" and the user thought their
|
|
78
|
+
// project wasn't supported, even though deploy would work fine.
|
|
23
79
|
const hasPkg = fs.existsSync(path.join(cwd, 'package.json'));
|
|
24
80
|
const hasRequirements = fs.existsSync(path.join(cwd, 'requirements.txt'));
|
|
81
|
+
const hasPipfile = fs.existsSync(path.join(cwd, 'Pipfile'));
|
|
82
|
+
const hasPyproject = fs.existsSync(path.join(cwd, 'pyproject.toml'));
|
|
83
|
+
const hasPython = hasRequirements || hasPipfile || hasPyproject;
|
|
25
84
|
const hasGoMod = fs.existsSync(path.join(cwd, 'go.mod'));
|
|
26
85
|
const hasCargo = fs.existsSync(path.join(cwd, 'Cargo.toml'));
|
|
27
86
|
const hasGemfile = fs.existsSync(path.join(cwd, 'Gemfile'));
|
|
@@ -33,32 +92,131 @@ export const doctor = async () => {
|
|
|
33
92
|
const pkg = JSON.parse(fs.readFileSync(path.join(cwd, 'package.json'), 'utf-8'));
|
|
34
93
|
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
35
94
|
detectedRuntime = 'node';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
95
|
+
// Static-output frameworks (vite, astro, gatsby, angular, cra, eleventy)
|
|
96
|
+
// build HERE, on this machine, and ship their output dir — they never
|
|
97
|
+
// need `scripts.start`, so the missing-start-script check below would
|
|
98
|
+
// be a false "fail" for a project that deploys just fine. Check this
|
|
99
|
+
// FIRST and skip the container-shaped checks entirely when it hits.
|
|
100
|
+
const staticFw = detectStaticFramework(cwd);
|
|
101
|
+
if (staticFw) {
|
|
102
|
+
detectedFramework = staticFw.framework;
|
|
103
|
+
checks.push({
|
|
104
|
+
name: 'framework',
|
|
105
|
+
status: 'pass',
|
|
106
|
+
message: `detected ${staticFw.framework}. pushto builds it on this machine and ships ${staticFw.outputDirs[0]}/ as a static site.`,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
detectedFramework =
|
|
111
|
+
deps['next'] ? 'Next.js' :
|
|
112
|
+
deps['vue'] ? 'Vue' :
|
|
113
|
+
deps['svelte'] ? 'Svelte' :
|
|
114
|
+
deps['express'] ? 'Express' :
|
|
115
|
+
deps['fastify'] ? 'Fastify' :
|
|
116
|
+
deps['hono'] ? 'Hono' :
|
|
117
|
+
'Node.js';
|
|
118
|
+
checks.push({ name: 'framework', status: 'pass', message: `detected ${detectedFramework}` });
|
|
119
|
+
if (pkg.scripts?.build) {
|
|
120
|
+
checks.push({ name: 'build script', status: 'pass', message: `"${pkg.scripts.build}"` });
|
|
121
|
+
}
|
|
122
|
+
// The generated Dockerfile's CMD runs `npm start` for every Node
|
|
123
|
+
// framework. If `scripts.start` is missing, the container fails on
|
|
124
|
+
// first run with `npm ERR! Missing script: "start"` — the deploy
|
|
125
|
+
// shows LIVE briefly, then container alive verification flips it
|
|
126
|
+
// to FAILED. doctor catches this up front so the user fixes
|
|
127
|
+
// package.json before they hit the loop.
|
|
128
|
+
if (!pkg.scripts?.start) {
|
|
129
|
+
checks.push({
|
|
130
|
+
name: 'start script',
|
|
131
|
+
status: 'fail',
|
|
132
|
+
message: 'no `scripts.start` in package.json. add `"start": "node <your-entry-file>"` or the container will crash on boot.',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
checks.push({ name: 'start script', status: 'pass', message: `"${pkg.scripts.start}"` });
|
|
137
|
+
}
|
|
138
|
+
// Node workspace recognition (mirrors detect.ts:detectNodeWorkspace).
|
|
139
|
+
// Without surfacing this, a user with a pnpm/yarn/npm workspace can't
|
|
140
|
+
// tell if pushto's install step will pick up workspace deps — they
|
|
141
|
+
// sometimes pre-emptively flatten the repo for fear of broken builds.
|
|
142
|
+
if (fs.existsSync(path.join(cwd, 'pnpm-workspace.yaml'))) {
|
|
143
|
+
checks.push({
|
|
144
|
+
name: 'workspace',
|
|
145
|
+
status: 'pass',
|
|
146
|
+
message: 'pnpm-workspace.yaml detected. workspace member packages will be installed.',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else if (Array.isArray(pkg.workspaces) || (pkg.workspaces && typeof pkg.workspaces === 'object')) {
|
|
150
|
+
checks.push({
|
|
151
|
+
name: 'workspace',
|
|
152
|
+
status: 'pass',
|
|
153
|
+
message: 'npm/yarn workspaces detected. member packages will be installed.',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
47
156
|
}
|
|
48
157
|
}
|
|
49
158
|
catch {
|
|
50
159
|
checks.push({ name: 'package.json', status: 'warn', message: 'could not parse' });
|
|
51
160
|
}
|
|
52
161
|
}
|
|
53
|
-
else if (
|
|
162
|
+
else if (hasPython) {
|
|
54
163
|
detectedRuntime = 'python';
|
|
55
|
-
|
|
164
|
+
// Read whichever target file exists — the framework hint comes from
|
|
165
|
+
// any of pip/pipenv/poetry's dep listings. Pipfile + pyproject.toml
|
|
166
|
+
// both look enough like requirements.txt for the substring sniff to
|
|
167
|
+
// work for the common cases (flask/django/fastapi).
|
|
168
|
+
let depHints = '';
|
|
169
|
+
const installer = hasRequirements ? 'pip'
|
|
170
|
+
: hasPipfile ? 'pipenv'
|
|
171
|
+
: 'poetry/pyproject';
|
|
172
|
+
try {
|
|
173
|
+
if (hasRequirements) {
|
|
174
|
+
depHints = fs.readFileSync(path.join(cwd, 'requirements.txt'), 'utf-8');
|
|
175
|
+
}
|
|
176
|
+
else if (hasPipfile) {
|
|
177
|
+
depHints = fs.readFileSync(path.join(cwd, 'Pipfile'), 'utf-8');
|
|
178
|
+
}
|
|
179
|
+
else if (hasPyproject) {
|
|
180
|
+
depHints = fs.readFileSync(path.join(cwd, 'pyproject.toml'), 'utf-8');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch { /* unreadable — leave depHints empty, fall through to generic */ }
|
|
184
|
+
const lower = depHints.toLowerCase();
|
|
56
185
|
detectedFramework =
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
186
|
+
lower.includes('flask') ? 'Flask' :
|
|
187
|
+
lower.includes('django') ? 'Django' :
|
|
188
|
+
lower.includes('fastapi') ? 'FastAPI' :
|
|
60
189
|
'Python';
|
|
61
|
-
checks.push({ name: 'framework', status: 'pass', message: `detected ${detectedFramework}` });
|
|
190
|
+
checks.push({ name: 'framework', status: 'pass', message: `detected ${detectedFramework} (${installer})` });
|
|
191
|
+
// Frontend builder recognition (mirrors detect.ts:detectFrontendBuild).
|
|
192
|
+
// Python projects with a sibling JS frontend at frontend/ get a Node
|
|
193
|
+
// builder stage prepended to the Dockerfile that runs install + build,
|
|
194
|
+
// then COPYs the resulting frontend/dist into the Python runtime image.
|
|
195
|
+
// Surface this so users with a Flask+Vite or Django+Vite project know
|
|
196
|
+
// their frontend will actually be built — pre-fix doctor was silent
|
|
197
|
+
// and users would skip pushto thinking JS frontends weren't supported.
|
|
198
|
+
if (fs.existsSync(path.join(cwd, 'frontend/package.json'))) {
|
|
199
|
+
try {
|
|
200
|
+
const fePkg = JSON.parse(fs.readFileSync(path.join(cwd, 'frontend/package.json'), 'utf-8'));
|
|
201
|
+
if (fePkg.scripts?.build) {
|
|
202
|
+
checks.push({
|
|
203
|
+
name: 'frontend',
|
|
204
|
+
status: 'pass',
|
|
205
|
+
message: `frontend/package.json detected with build script — JS frontend will build before backend starts.`,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
checks.push({
|
|
210
|
+
name: 'frontend',
|
|
211
|
+
status: 'warn',
|
|
212
|
+
message: 'frontend/package.json found but no `scripts.build` — frontend stage will be skipped.',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
checks.push({ name: 'frontend', status: 'warn', message: 'frontend/package.json found but could not parse.' });
|
|
218
|
+
}
|
|
219
|
+
}
|
|
62
220
|
}
|
|
63
221
|
else if (hasGoMod) {
|
|
64
222
|
detectedRuntime = 'go';
|
|
@@ -72,8 +230,25 @@ export const doctor = async () => {
|
|
|
72
230
|
}
|
|
73
231
|
else if (hasGemfile) {
|
|
74
232
|
detectedRuntime = 'ruby';
|
|
75
|
-
|
|
76
|
-
|
|
233
|
+
// Mirror the i89/i91 production detection: sniff Gemfile content
|
|
234
|
+
// for Rails so the doctor confirms what production will pick. Pre-
|
|
235
|
+
// fix doctor said "Ruby" for Rails apps which made users wonder if
|
|
236
|
+
// their Rails-specific concerns (assets pipeline, secret_key_base,
|
|
237
|
+
// rails server) would be handled. Now: explicit Rails recognition.
|
|
238
|
+
let isRails = false;
|
|
239
|
+
try {
|
|
240
|
+
const gemfile = fs.readFileSync(path.join(cwd, 'Gemfile'), 'utf-8');
|
|
241
|
+
isRails = /^\s*gem\s+['"]rails['"]\s*[,)]?/m.test(gemfile);
|
|
242
|
+
}
|
|
243
|
+
catch { /* unreadable — fall through to generic Ruby */ }
|
|
244
|
+
detectedFramework = isRails ? 'Rails' : 'Ruby';
|
|
245
|
+
checks.push({
|
|
246
|
+
name: 'framework',
|
|
247
|
+
status: 'pass',
|
|
248
|
+
message: isRails
|
|
249
|
+
? 'detected Rails — pushto auto-injects SECRET_KEY_BASE and runs assets:precompile'
|
|
250
|
+
: 'detected Ruby',
|
|
251
|
+
});
|
|
77
252
|
}
|
|
78
253
|
else if (hasHtml) {
|
|
79
254
|
detectedRuntime = 'static';
|
|
@@ -84,7 +259,7 @@ export const doctor = async () => {
|
|
|
84
259
|
checks.push({ name: 'framework', status: 'warn', message: 'no known project files found.' });
|
|
85
260
|
}
|
|
86
261
|
// ── 4. Env file detection ──
|
|
87
|
-
const envFiles = ['.env
|
|
262
|
+
const envFiles = ['.env.production', '.env'];
|
|
88
263
|
const foundEnv = envFiles.find((f) => fs.existsSync(path.join(cwd, f)));
|
|
89
264
|
if (foundEnv) {
|
|
90
265
|
const content = fs.readFileSync(path.join(cwd, foundEnv), 'utf-8');
|
|
@@ -95,8 +270,30 @@ export const doctor = async () => {
|
|
|
95
270
|
checks.push({ name: 'env file', status: 'warn', message: 'no .env file. if your app needs env vars, create one.' });
|
|
96
271
|
}
|
|
97
272
|
// ── 5. Gitignore checks ──
|
|
273
|
+
// Pre-fix: every check below was nested inside `if (gitignorePath exists)`,
|
|
274
|
+
// so a project with no .gitignore at all triggered ZERO warnings — the
|
|
275
|
+
// worst case (Python user with .venv + no gitignore = 200MB zip that
|
|
276
|
+
// 413s the upload) was completely silent. Now the absence-of-file
|
|
277
|
+
// case is its own warning, with runtime-aware suggestions for what
|
|
278
|
+
// belongs in the file.
|
|
98
279
|
const gitignorePath = path.join(cwd, '.gitignore');
|
|
99
|
-
if (fs.existsSync(gitignorePath)) {
|
|
280
|
+
if (!fs.existsSync(gitignorePath)) {
|
|
281
|
+
const suggested = ['.env', '.pushto'];
|
|
282
|
+
if (detectedRuntime === 'node')
|
|
283
|
+
suggested.push('node_modules');
|
|
284
|
+
if (detectedRuntime === 'python')
|
|
285
|
+
suggested.push('.venv', '__pycache__', '*.pyc');
|
|
286
|
+
if (detectedRuntime === 'rust')
|
|
287
|
+
suggested.push('target');
|
|
288
|
+
if (detectedRuntime === 'go')
|
|
289
|
+
suggested.push('vendor');
|
|
290
|
+
checks.push({
|
|
291
|
+
name: '.gitignore',
|
|
292
|
+
status: 'warn',
|
|
293
|
+
message: `no .gitignore. your deploy will include EVERYTHING in this folder — likely huge and may leak secrets. add a .gitignore with: ${suggested.join(', ')}`,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
100
297
|
const gitignore = fs.readFileSync(gitignorePath, 'utf-8');
|
|
101
298
|
if (!gitignore.includes('.env')) {
|
|
102
299
|
checks.push({ name: '.gitignore', status: 'warn', message: '.env not gitignored. secrets might leak.' });
|
|
@@ -107,34 +304,55 @@ export const doctor = async () => {
|
|
|
107
304
|
if (detectedRuntime === 'node' && !gitignore.includes('node_modules')) {
|
|
108
305
|
checks.push({ name: '.gitignore', status: 'warn', message: 'node_modules not gitignored. deploy will be slow.' });
|
|
109
306
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
118
|
-
for (const entry of entries) {
|
|
119
|
-
if (['node_modules', '.git', '.next', '__pycache__', '.venv', 'venv', 'target'].includes(entry.name))
|
|
120
|
-
continue;
|
|
121
|
-
const full = path.join(dir, entry.name);
|
|
122
|
-
if (entry.isFile()) {
|
|
123
|
-
const stat = fs.statSync(full);
|
|
124
|
-
if (stat.size > 10 * 1024 * 1024) {
|
|
125
|
-
largeFiles.push(`${entry.name} (${Math.round(stat.size / 1024 / 1024)}MB)`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
else if (entry.isDirectory()) {
|
|
129
|
-
checkDir(full, depth + 1);
|
|
130
|
-
}
|
|
307
|
+
// Python venv check moved out of section 8 so it fires here next to the
|
|
308
|
+
// other gitignore checks AND only when .gitignore exists (the no-gitignore
|
|
309
|
+
// branch above already covers the "no protection at all" case).
|
|
310
|
+
if (detectedRuntime === 'python') {
|
|
311
|
+
const hasVenv = fs.existsSync(path.join(cwd, '.venv')) || fs.existsSync(path.join(cwd, 'venv'));
|
|
312
|
+
if (hasVenv && !gitignore.includes('venv')) {
|
|
313
|
+
checks.push({ name: '.gitignore', status: 'warn', message: 'venv not gitignored. deploy will be huge.' });
|
|
131
314
|
}
|
|
132
315
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
316
|
+
}
|
|
317
|
+
// ── 6. Deploy preview ──
|
|
318
|
+
// Run the EXACT same gitignore + walk logic that `pushto` uses to build
|
|
319
|
+
// the deploy zip, then report total size, file count, and the biggest
|
|
320
|
+
// files. This is the "would your deploy work?" sanity check — we'd
|
|
321
|
+
// rather tell you here than have the server 413 mid-upload.
|
|
322
|
+
try {
|
|
323
|
+
const files = walkProject(cwd);
|
|
324
|
+
const totalBytes = files.reduce((sum, f) => sum + f.sizeBytes, 0);
|
|
325
|
+
const biggest = [...files].sort((a, b) => b.sizeBytes - a.sizeBytes).slice(0, 3);
|
|
326
|
+
if (totalBytes > SERVER_UPLOAD_CAP_BYTES) {
|
|
327
|
+
const top = biggest.map((f) => `${f.archivePath} (${fmtMB(f.sizeBytes)})`).join(', ');
|
|
328
|
+
checks.push({
|
|
329
|
+
name: 'deploy size',
|
|
330
|
+
status: 'fail',
|
|
331
|
+
message: `${files.length} files, ${fmtMB(totalBytes)} — exceeds ${fmtMB(SERVER_UPLOAD_CAP_BYTES)} server cap. biggest: ${top}. add to .pushtoignore or .gitignore`,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
else if (totalBytes > SERVER_UPLOAD_CAP_BYTES * 0.8) {
|
|
335
|
+
const top = biggest.map((f) => `${f.archivePath} (${fmtMB(f.sizeBytes)})`).join(', ');
|
|
336
|
+
checks.push({
|
|
337
|
+
name: 'deploy size',
|
|
338
|
+
status: 'warn',
|
|
339
|
+
message: `${files.length} files, ${fmtMB(totalBytes)} — close to ${fmtMB(SERVER_UPLOAD_CAP_BYTES)} cap. biggest: ${top}`,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
checks.push({
|
|
344
|
+
name: 'deploy size',
|
|
345
|
+
status: 'pass',
|
|
346
|
+
message: `${files.length} files, ${fmtMB(totalBytes)}`,
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
checks.push({
|
|
352
|
+
name: 'deploy size',
|
|
353
|
+
status: 'warn',
|
|
354
|
+
message: `couldn't estimate: ${err instanceof Error ? err.message : 'unknown'}`,
|
|
355
|
+
});
|
|
138
356
|
}
|
|
139
357
|
// ── 7. Remote checks (project exists, env var completeness) ──
|
|
140
358
|
if (token && slug) {
|
|
@@ -198,19 +416,36 @@ export const doctor = async () => {
|
|
|
198
416
|
checks.push({ name: 'api', status: 'fail', message: 'cannot reach pushto.host' });
|
|
199
417
|
}
|
|
200
418
|
}
|
|
419
|
+
// ── 7.5. Custom build-config files that pushto silently ignores ──
|
|
420
|
+
// pushto does NOT honor user-shipped nixpacks.toml or Dockerfile —
|
|
421
|
+
// the build engine in apps/web/lib/nixpacks/* is hand-rolled and
|
|
422
|
+
// generates its own Dockerfile from framework detection. Pre-fix
|
|
423
|
+
// a user with their own Dockerfile would deploy thinking pushto
|
|
424
|
+
// would use it, then debug for hours when their custom RUN steps
|
|
425
|
+
// never executed. Surface it loudly here so the user knows up
|
|
426
|
+
// front.
|
|
427
|
+
if (fs.existsSync(path.join(cwd, 'nixpacks.toml'))) {
|
|
428
|
+
checks.push({
|
|
429
|
+
name: 'nixpacks.toml',
|
|
430
|
+
status: 'warn',
|
|
431
|
+
message: 'pushto ignores nixpacks.toml — build commands come from auto-detection. delete it or open an issue if you need custom build steps.',
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
if (fs.existsSync(path.join(cwd, 'Dockerfile'))) {
|
|
435
|
+
checks.push({
|
|
436
|
+
name: 'Dockerfile',
|
|
437
|
+
status: 'warn',
|
|
438
|
+
message: 'pushto generates its own Dockerfile and overwrites yours at build time. your custom one is ignored.',
|
|
439
|
+
});
|
|
440
|
+
}
|
|
201
441
|
// ── 8. Python-specific checks ──
|
|
442
|
+
// venv-not-gitignored check moved up into section 5 (gitignore checks)
|
|
443
|
+
// so the no-gitignore-at-all warning includes venv as a suggested entry.
|
|
202
444
|
if (detectedRuntime === 'python') {
|
|
203
445
|
const hasProcfile = fs.existsSync(path.join(cwd, 'Procfile'));
|
|
204
446
|
if (hasProcfile) {
|
|
205
447
|
checks.push({ name: 'Procfile', status: 'pass', message: 'found (gunicorn/uvicorn start command)' });
|
|
206
448
|
}
|
|
207
|
-
const hasVenv = fs.existsSync(path.join(cwd, '.venv')) || fs.existsSync(path.join(cwd, 'venv'));
|
|
208
|
-
if (hasVenv && fs.existsSync(gitignorePath)) {
|
|
209
|
-
const gi = fs.readFileSync(gitignorePath, 'utf-8');
|
|
210
|
-
if (!gi.includes('venv')) {
|
|
211
|
-
checks.push({ name: '.gitignore', status: 'warn', message: 'venv not gitignored. deploy will be huge.' });
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
449
|
}
|
|
215
450
|
// ── Print ──
|
|
216
451
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM,GAAU,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM,GAAU,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAkH9E,CAAC"}
|
package/dist/commands/domain.js
CHANGED
|
@@ -20,16 +20,36 @@ export const domain = async (action, domainName) => {
|
|
|
20
20
|
process.exit(1);
|
|
21
21
|
}
|
|
22
22
|
console.log(chalk.green(`> registering ${domainName} for ${slug}...`));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
let res;
|
|
24
|
+
try {
|
|
25
|
+
res = await api(`/cli/projects/${slug}/domain`, {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
body: JSON.stringify({ domain: domainName }),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
// Same shape as i61 (init), i71 (status), i72 (use) — classify
|
|
32
|
+
// network errors so users don't get the unhandledRejection
|
|
33
|
+
// handler's generic "something went wrong" for what is really
|
|
34
|
+
// a connectivity issue (or a real local problem they should
|
|
35
|
+
// see directly).
|
|
36
|
+
const msg = err instanceof Error ? err.message : '';
|
|
37
|
+
const isNetwork = /fetch|enotfound|econnrefused|timeout|abort|network/i.test(msg);
|
|
38
|
+
if (isNetwork) {
|
|
39
|
+
console.log(chalk.red('> could not reach pushto.host. check your internet.'));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.log(chalk.red(`> domain setup failed: ${msg || 'unknown error'}`));
|
|
43
|
+
}
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
27
46
|
const data = await safeJson(res);
|
|
28
47
|
if (!res.ok) {
|
|
29
48
|
console.log(chalk.red(`> ${data.error ?? 'something went wrong.'}`));
|
|
30
49
|
process.exit(1);
|
|
31
50
|
}
|
|
32
51
|
const nameservers = data.nameservers;
|
|
52
|
+
const warnings = data.warnings ?? [];
|
|
33
53
|
console.log(chalk.green(`> ${domainName} configured.\n`));
|
|
34
54
|
if (nameservers?.length) {
|
|
35
55
|
console.log(' go to where you bought your domain and change the');
|
|
@@ -44,13 +64,38 @@ export const domain = async (action, domainName) => {
|
|
|
44
64
|
else {
|
|
45
65
|
console.log(chalk.dim(' DNS is already configured. check status with: pushto status'));
|
|
46
66
|
}
|
|
67
|
+
// Surface partial-failure warnings from the server (i4 fix added these
|
|
68
|
+
// for www CNAME failures and SSL-mode-config failures). Pre-fix the
|
|
69
|
+
// server logged them but the CLI dropped the response field on the
|
|
70
|
+
// floor so the user never knew their www subdomain wouldn't work.
|
|
71
|
+
if (warnings.length > 0) {
|
|
72
|
+
console.log();
|
|
73
|
+
console.log(chalk.yellow(' heads up:'));
|
|
74
|
+
for (const w of warnings) {
|
|
75
|
+
console.log(chalk.yellow(` ${w}`));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
47
78
|
console.log();
|
|
48
79
|
}
|
|
49
80
|
else if (action === 'remove' || action === 'rm') {
|
|
50
81
|
console.log(chalk.green(`> removing custom domain from ${slug}...`));
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
82
|
+
let res;
|
|
83
|
+
try {
|
|
84
|
+
res = await api(`/cli/projects/${slug}/domain`, {
|
|
85
|
+
method: 'DELETE',
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
const msg = err instanceof Error ? err.message : '';
|
|
90
|
+
const isNetwork = /fetch|enotfound|econnrefused|timeout|abort|network/i.test(msg);
|
|
91
|
+
if (isNetwork) {
|
|
92
|
+
console.log(chalk.red('> could not reach pushto.host. check your internet.'));
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log(chalk.red(`> domain remove failed: ${msg || 'unknown error'}`));
|
|
96
|
+
}
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
54
99
|
const data = await safeJson(res);
|
|
55
100
|
if (!res.ok) {
|
|
56
101
|
console.log(chalk.red(`> ${data.error ?? 'something went wrong.'}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,UAAmB,EAAiB,EAAE;IACjF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,UAAU,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC;QAEvE,
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../src/commands/echo.ts"],"names":[],"mappings":"AA0QA,eAAO,MAAM,IAAI,GAAU,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAcvE,CAAC"}
|