@babelize/cli 1.0.13 → 1.1.3
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/LICENSE +200 -4
- package/README.md +53 -20
- package/dist/client.d.ts +9 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +73 -31
- package/dist/client.js.map +1 -1
- package/dist/commands/account.js +1 -1
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/admin.js +5 -5
- package/dist/commands/admin.js.map +1 -1
- package/dist/commands/analytics.js +1 -1
- package/dist/commands/analytics.js.map +1 -1
- package/dist/commands/api-keys.d.ts +6 -0
- package/dist/commands/api-keys.d.ts.map +1 -1
- package/dist/commands/api-keys.js +42 -12
- package/dist/commands/api-keys.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +23 -12
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/babels.d.ts.map +1 -1
- package/dist/commands/babels.js +16 -20
- package/dist/commands/babels.js.map +1 -1
- package/dist/commands/billing.js +1 -1
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/check.d.ts +22 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +134 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/checkout.js +2 -2
- package/dist/commands/checkout.js.map +1 -1
- package/dist/commands/comments.js +5 -5
- package/dist/commands/comments.js.map +1 -1
- package/dist/commands/glossary.d.ts +15 -0
- package/dist/commands/glossary.d.ts.map +1 -1
- package/dist/commands/glossary.js +106 -25
- package/dist/commands/glossary.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +82 -69
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/invitations.d.ts.map +1 -1
- package/dist/commands/invitations.js +3 -1
- package/dist/commands/invitations.js.map +1 -1
- package/dist/commands/languages.d.ts.map +1 -1
- package/dist/commands/languages.js +38 -17
- package/dist/commands/languages.js.map +1 -1
- package/dist/commands/members.js +7 -7
- package/dist/commands/members.js.map +1 -1
- package/dist/commands/notifications.js +1 -1
- package/dist/commands/notifications.js.map +1 -1
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +6 -4
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/privacy.d.ts.map +1 -1
- package/dist/commands/privacy.js +7 -5
- package/dist/commands/privacy.js.map +1 -1
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +60 -35
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/roles.js +1 -1
- package/dist/commands/roles.js.map +1 -1
- package/dist/commands/run.d.ts +48 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +264 -132
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.js +1 -1
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/subscriptions.js +1 -1
- package/dist/commands/subscriptions.js.map +1 -1
- package/dist/commands/tm.d.ts.map +1 -1
- package/dist/commands/tm.js +31 -13
- package/dist/commands/tm.js.map +1 -1
- package/dist/commands/translate.d.ts +24 -0
- package/dist/commands/translate.d.ts.map +1 -0
- package/dist/commands/translate.js +422 -0
- package/dist/commands/translate.js.map +1 -0
- package/dist/commands/users.js +1 -1
- package/dist/commands/users.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -4
- package/dist/config.js.map +1 -1
- package/dist/global-options.d.ts +6 -2
- package/dist/global-options.d.ts.map +1 -1
- package/dist/global-options.js +9 -3
- package/dist/global-options.js.map +1 -1
- package/dist/local/formatter.d.ts +27 -0
- package/dist/local/formatter.d.ts.map +1 -0
- package/dist/local/formatter.js +69 -0
- package/dist/local/formatter.js.map +1 -0
- package/dist/local/git.d.ts +16 -0
- package/dist/local/git.d.ts.map +1 -0
- package/dist/local/git.js +52 -0
- package/dist/local/git.js.map +1 -0
- package/dist/local/provider.d.ts +41 -0
- package/dist/local/provider.d.ts.map +1 -0
- package/dist/local/provider.js +87 -0
- package/dist/local/provider.js.map +1 -0
- package/dist/local/translate-core.d.ts +188 -0
- package/dist/local/translate-core.d.ts.map +1 -0
- package/dist/local/translate-core.js +401 -0
- package/dist/local/translate-core.js.map +1 -0
- package/dist/local/workspace-copy.d.ts +75 -0
- package/dist/local/workspace-copy.d.ts.map +1 -0
- package/dist/local/workspace-copy.js +263 -0
- package/dist/local/workspace-copy.js.map +1 -0
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +11 -3
- package/dist/oauth.js.map +1 -1
- package/dist/program.d.ts +22 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +32 -10
- package/dist/program.js.map +1 -1
- package/dist/tui/clack.d.ts +60 -0
- package/dist/tui/clack.d.ts.map +1 -0
- package/dist/tui/clack.js +138 -0
- package/dist/tui/clack.js.map +1 -0
- package/dist/tui/help.d.ts.map +1 -1
- package/dist/tui/help.js +14 -5
- package/dist/tui/help.js.map +1 -1
- package/dist/tui/prompt.d.ts.map +1 -1
- package/dist/tui/prompt.js +4 -2
- package/dist/tui/prompt.js.map +1 -1
- package/dist/tui/repl.d.ts.map +1 -1
- package/dist/tui/repl.js +2 -0
- package/dist/tui/repl.js.map +1 -1
- package/dist/tui/table.d.ts.map +1 -1
- package/dist/tui/table.js +6 -2
- package/dist/tui/table.js.map +1 -1
- package/dist/utils/validate.d.ts +7 -0
- package/dist/utils/validate.d.ts.map +1 -0
- package/dist/utils/validate.js +16 -0
- package/dist/utils/validate.js.map +1 -0
- package/dist/utils/zip-upload.d.ts +83 -0
- package/dist/utils/zip-upload.d.ts.map +1 -0
- package/dist/utils/zip-upload.js +285 -0
- package/dist/utils/zip-upload.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `babelize init --source zip`: package the project, upload it through the
|
|
3
|
+
* same endpoint the dashboard's ZIP import uses (`POST /projects/upload`),
|
|
4
|
+
* and hand back what `POST /projects` needs: the server's storage reference
|
|
5
|
+
* and the upload token that binds it to this user.
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import fsp from 'node:fs/promises';
|
|
9
|
+
import os from 'node:os';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import axios from 'axios';
|
|
12
|
+
import ignore from 'ignore';
|
|
13
|
+
import { DEFAULT_REPORT_FILE, listGitFiles } from '@babelize/engine';
|
|
14
|
+
import { PROJECT_ZIP_MAX_BYTES, PROJECT_ZIP_UPLOAD_TIMEOUT_MS } from '@babelize/types';
|
|
15
|
+
import { ExitCode } from '../exit-codes.js';
|
|
16
|
+
/** An init-time failure with a user-facing message and the exit code to use. */
|
|
17
|
+
export class ZipUploadError extends Error {
|
|
18
|
+
exitCode;
|
|
19
|
+
status;
|
|
20
|
+
constructor(message, exitCode, status) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.exitCode = exitCode;
|
|
23
|
+
this.status = status;
|
|
24
|
+
this.name = 'ZipUploadError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function formatMb(bytes) {
|
|
28
|
+
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
29
|
+
}
|
|
30
|
+
/** Human size that stays readable for small archives: B, KB, then MB. */
|
|
31
|
+
export function formatBytes(bytes) {
|
|
32
|
+
if (bytes < 1024)
|
|
33
|
+
return `${bytes} B`;
|
|
34
|
+
if (bytes < 1024 * 1024)
|
|
35
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
36
|
+
return formatMb(bytes);
|
|
37
|
+
}
|
|
38
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
39
|
+
// What goes into the archive
|
|
40
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
41
|
+
/** Dependency, VCS, cache and virtualenv directories, skipped at any depth. */
|
|
42
|
+
const EXCLUDED_DIRS_ANY_DEPTH = new Set([
|
|
43
|
+
'node_modules', '.git', '.next', '.turbo', '.venv', 'venv', 'vendor', '__pycache__',
|
|
44
|
+
]);
|
|
45
|
+
/** Build output, skipped only at the project root (deeper, these names are often real source). */
|
|
46
|
+
const EXCLUDED_DIRS_AT_ROOT = new Set(['dist', 'build', 'coverage']);
|
|
47
|
+
/** Credential directories: everything inside is treated as a secret. */
|
|
48
|
+
const SECRET_DIRS = new Set(['.aws', '.ssh', '.gcloud', '.kube', '.gnupg', '.env']);
|
|
49
|
+
const SECRET_EXTENSIONS = new Set(['.pem', '.key', '.p8', '.p12', '.pfx', '.keystore', '.jks', '.gpg', '.asc', '.tfvars', '.tfstate']);
|
|
50
|
+
const SECRET_NAMES = new Set([
|
|
51
|
+
'.npmrc', '.pypirc', '.netrc', '.git-credentials', 'credentials.json',
|
|
52
|
+
'.envrc', '.dev.vars', 'terraform.tfstate.backup',
|
|
53
|
+
]);
|
|
54
|
+
/** `.env.*` files that are templates, not secrets. */
|
|
55
|
+
const ENV_TEMPLATES = new Set(['.env.example', '.env.sample', '.env.template']);
|
|
56
|
+
/**
|
|
57
|
+
* True for files that commonly hold credentials. These are never uploaded,
|
|
58
|
+
* whether or not git tracks or ignores them.
|
|
59
|
+
*/
|
|
60
|
+
export function isSecretPath(rel) {
|
|
61
|
+
const parts = rel.split('/');
|
|
62
|
+
if (parts.slice(0, -1).some((p) => SECRET_DIRS.has(p)))
|
|
63
|
+
return true;
|
|
64
|
+
const base = parts[parts.length - 1];
|
|
65
|
+
const lower = base.toLowerCase();
|
|
66
|
+
if (lower === '.env' || (lower.startsWith('.env.') && !ENV_TEMPLATES.has(lower)))
|
|
67
|
+
return true;
|
|
68
|
+
if (SECRET_NAMES.has(lower))
|
|
69
|
+
return true;
|
|
70
|
+
if (SECRET_EXTENSIONS.has(path.extname(lower)))
|
|
71
|
+
return true;
|
|
72
|
+
if (/^id_(rsa|dsa|ecdsa|ed25519)/.test(lower))
|
|
73
|
+
return true;
|
|
74
|
+
if (/^service-account.*\.json$/.test(lower))
|
|
75
|
+
return true;
|
|
76
|
+
if (/\.tfvars\.json$/.test(lower))
|
|
77
|
+
return true;
|
|
78
|
+
// Docker's client config holds registry auth.
|
|
79
|
+
if (lower === 'config.json' && parts[parts.length - 2] === '.docker')
|
|
80
|
+
return true;
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
/** `.yarnrc.yml` / `.yarnrc` are ordinary config unless they carry registry credentials. */
|
|
84
|
+
async function isYarnrcWithAuth(abs) {
|
|
85
|
+
const text = await fsp.readFile(abs, 'utf8').catch(() => '');
|
|
86
|
+
return /npmAuth(Token|Ident)\s*:|_auth(Token)?\b/.test(text);
|
|
87
|
+
}
|
|
88
|
+
function isExcludedPath(rel) {
|
|
89
|
+
const parts = rel.split('/');
|
|
90
|
+
if (parts.length > 1 && EXCLUDED_DIRS_AT_ROOT.has(parts[0]))
|
|
91
|
+
return true;
|
|
92
|
+
return parts.slice(0, -1).some((p) => EXCLUDED_DIRS_ANY_DEPTH.has(p));
|
|
93
|
+
}
|
|
94
|
+
/** Local-only run artifacts that never belong in an uploaded project. */
|
|
95
|
+
function isLocalArtifact(rel) {
|
|
96
|
+
if (rel === DEFAULT_REPORT_FILE)
|
|
97
|
+
return true;
|
|
98
|
+
// Engine lockfile write lock / temp files.
|
|
99
|
+
return rel.startsWith('.babelize/') && /babelize-lock\.json\.(lock|tmp)(\/|$)/.test(rel);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Walk `root` outside a git work tree, honouring every `.gitignore` on the way
|
|
103
|
+
* down (each one's patterns are relative to its own directory, as in git).
|
|
104
|
+
* Excluded directories are never entered; symlinks are never followed.
|
|
105
|
+
*/
|
|
106
|
+
export async function walkWithGitignore(root) {
|
|
107
|
+
const out = [];
|
|
108
|
+
// As in git, the deepest .gitignore with a matching rule decides, so a
|
|
109
|
+
// nested `!pattern` can re-include what a parent ignores.
|
|
110
|
+
const ignored = (rel, isDir, rules) => {
|
|
111
|
+
for (let i = rules.length - 1; i >= 0; i--) {
|
|
112
|
+
const { base, ig } = rules[i];
|
|
113
|
+
const sub = base ? rel.slice(base.length + 1) : rel;
|
|
114
|
+
const result = ig.test(isDir ? `${sub}/` : sub);
|
|
115
|
+
if (result.ignored)
|
|
116
|
+
return true;
|
|
117
|
+
if (result.unignored)
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
};
|
|
122
|
+
async function visit(dir, rules) {
|
|
123
|
+
const abs = path.join(root, dir);
|
|
124
|
+
const gitignore = await fsp.readFile(path.join(abs, '.gitignore'), 'utf8').catch(() => null);
|
|
125
|
+
const here = gitignore === null ? rules : [...rules, { base: dir, ig: ignore().add(gitignore) }];
|
|
126
|
+
const entries = await fsp.readdir(abs, { withFileTypes: true }).catch(() => []);
|
|
127
|
+
for (const entry of entries) {
|
|
128
|
+
const rel = dir ? `${dir}/${entry.name}` : entry.name;
|
|
129
|
+
if (entry.isDirectory()) {
|
|
130
|
+
if (EXCLUDED_DIRS_ANY_DEPTH.has(entry.name))
|
|
131
|
+
continue;
|
|
132
|
+
if (!dir && EXCLUDED_DIRS_AT_ROOT.has(entry.name))
|
|
133
|
+
continue;
|
|
134
|
+
if (ignored(rel, true, here))
|
|
135
|
+
continue;
|
|
136
|
+
await visit(rel, here);
|
|
137
|
+
}
|
|
138
|
+
else if (entry.isFile() && !ignored(rel, false, here)) {
|
|
139
|
+
out.push(rel);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
await visit('', []);
|
|
144
|
+
return out;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Files that go into the upload, relative to `cwd`. Inside a git work tree
|
|
148
|
+
* that's `git ls-files` (tracked + untracked-but-not-ignored), the same
|
|
149
|
+
* listing the local `babelize translate` runner uses; outside one, a walk
|
|
150
|
+
* that honours `.gitignore` files. Either way, dependency / build / cache
|
|
151
|
+
* directories, local Babelize reports and symlinks are left out, and so are
|
|
152
|
+
* secrets (even when git tracks them).
|
|
153
|
+
*/
|
|
154
|
+
export async function listZipFiles(cwd) {
|
|
155
|
+
const listed = (await listGitFiles(cwd)) ?? (await walkWithGitignore(cwd));
|
|
156
|
+
const files = [];
|
|
157
|
+
const secrets = [];
|
|
158
|
+
for (const raw of listed) {
|
|
159
|
+
const rel = raw.split(path.sep).join('/');
|
|
160
|
+
if (isExcludedPath(rel) || isLocalArtifact(rel))
|
|
161
|
+
continue;
|
|
162
|
+
const abs = path.join(cwd, rel);
|
|
163
|
+
const st = await fsp.lstat(abs).catch(() => null);
|
|
164
|
+
if (!st?.isFile())
|
|
165
|
+
continue; // deleted-but-tracked, symlink, or directory
|
|
166
|
+
if (isSecretPath(rel) || (['.yarnrc.yml', '.yarnrc'].includes(path.basename(rel)) && (await isYarnrcWithAuth(abs)))) {
|
|
167
|
+
secrets.push(rel);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
files.push(rel);
|
|
171
|
+
}
|
|
172
|
+
return { files: files.sort(), secrets: secrets.sort() };
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The single top-level folder every archive entry is placed under. The
|
|
176
|
+
* backend strips one shared top-level folder when it extracts a ZIP (that is
|
|
177
|
+
* how a dashboard upload of `my-app.zip` containing `my-app/...` works), so
|
|
178
|
+
* without this wrapper a project whose files all sit in one folder, e.g. only
|
|
179
|
+
* `site/`, would be extracted one level too high.
|
|
180
|
+
*/
|
|
181
|
+
export function archiveRoot(cwd) {
|
|
182
|
+
return path.basename(path.resolve(cwd)).replace(/[^\w.-]/g, '_').replace(/^\.+/, '') || 'project';
|
|
183
|
+
}
|
|
184
|
+
/** Zip the project into a private temp directory. */
|
|
185
|
+
export async function buildProjectZip(cwd, opts = {}) {
|
|
186
|
+
const { files, secrets } = await listZipFiles(cwd);
|
|
187
|
+
if (files.length === 0) {
|
|
188
|
+
throw new ZipUploadError('No project files found to upload.', ExitCode.USAGE);
|
|
189
|
+
}
|
|
190
|
+
const root = archiveRoot(cwd);
|
|
191
|
+
const dir = await fsp.mkdtemp(path.join(opts.tmpRoot ?? os.tmpdir(), 'babelize-zip-'));
|
|
192
|
+
const cleanup = () => fsp.rm(dir, { recursive: true, force: true });
|
|
193
|
+
const zipPath = path.join(dir, 'project.zip');
|
|
194
|
+
try {
|
|
195
|
+
const archiverMod = await import('archiver');
|
|
196
|
+
const archiver = (archiverMod.default ?? archiverMod);
|
|
197
|
+
const archive = archiver('zip', { zlib: { level: 9 } });
|
|
198
|
+
const output = fs.createWriteStream(zipPath);
|
|
199
|
+
await new Promise((resolve, reject) => {
|
|
200
|
+
output.on('close', () => resolve());
|
|
201
|
+
output.on('error', reject);
|
|
202
|
+
archive.on('error', (err) => reject(err));
|
|
203
|
+
archive.on('warning', (err) => reject(err));
|
|
204
|
+
archive.pipe(output);
|
|
205
|
+
for (const rel of files)
|
|
206
|
+
archive.file(path.join(cwd, rel), { name: `${root}/${rel}` });
|
|
207
|
+
void archive.finalize();
|
|
208
|
+
});
|
|
209
|
+
const { size } = await fsp.stat(zipPath);
|
|
210
|
+
return { path: zipPath, bytes: size, fileCount: files.length, root, skippedSecrets: secrets, cleanup };
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
await cleanup();
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/** "Skipped 2 secret files: .env, certs/server.pem" (long lists are shortened). */
|
|
218
|
+
export function describeSkippedSecrets(secrets, max = 10) {
|
|
219
|
+
if (secrets.length === 0)
|
|
220
|
+
return null;
|
|
221
|
+
const shown = secrets.slice(0, max).join(', ');
|
|
222
|
+
const more = secrets.length > max ? ` and ${secrets.length - max} more` : '';
|
|
223
|
+
return `Skipped ${secrets.length} secret file${secrets.length === 1 ? '' : 's'}: ${shown}${more}`;
|
|
224
|
+
}
|
|
225
|
+
/** Refuse before uploading anything the backend would reject for size. */
|
|
226
|
+
export function assertZipSize(bytes, maxBytes = PROJECT_ZIP_MAX_BYTES) {
|
|
227
|
+
if (bytes > maxBytes) {
|
|
228
|
+
throw new ZipUploadError(`The project archive is ${formatMb(bytes)}, over the ${formatMb(maxBytes)} upload limit. ` +
|
|
229
|
+
'Add large assets or generated files to .gitignore, or connect the GitHub repository instead (--source github).', ExitCode.USAGE);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Stream the zip to `POST /projects/upload` as multipart `file` and return
|
|
234
|
+
* the storage reference and upload token the backend issued for it.
|
|
235
|
+
*/
|
|
236
|
+
export async function uploadProjectZip(client, zip, opts = {}) {
|
|
237
|
+
const blob = await fs.openAsBlob(zip.path, { type: 'application/zip' });
|
|
238
|
+
const form = new FormData();
|
|
239
|
+
form.append('file', blob, opts.filename ?? 'project.zip');
|
|
240
|
+
try {
|
|
241
|
+
const res = await client.post('/projects/upload', form, {
|
|
242
|
+
// axios would JSON-encode FormData under the client's default JSON
|
|
243
|
+
// content type; with multipart it streams the parts and sets the boundary.
|
|
244
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
245
|
+
// Same window the backend gives this route.
|
|
246
|
+
timeout: PROJECT_ZIP_UPLOAD_TIMEOUT_MS,
|
|
247
|
+
maxBodyLength: Infinity,
|
|
248
|
+
onUploadProgress: (e) => opts.onProgress?.({ loaded: e.loaded, total: e.total ?? zip.bytes }),
|
|
249
|
+
});
|
|
250
|
+
const sourceUrl = res.data?.sourceUrl;
|
|
251
|
+
const uploadToken = res.data?.uploadToken;
|
|
252
|
+
if (typeof sourceUrl !== 'string' || sourceUrl === '' || typeof uploadToken !== 'string' || uploadToken === '') {
|
|
253
|
+
throw new ZipUploadError('Upload succeeded but the server returned no storage reference or upload token. The API may be older than this CLI.', ExitCode.API_ERROR);
|
|
254
|
+
}
|
|
255
|
+
return { sourceUrl, uploadToken };
|
|
256
|
+
}
|
|
257
|
+
catch (err) {
|
|
258
|
+
throw toUploadError(err);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/** Map an upload failure to a clear message. */
|
|
262
|
+
export function toUploadError(err) {
|
|
263
|
+
if (err instanceof ZipUploadError || !axios.isAxiosError(err))
|
|
264
|
+
return err;
|
|
265
|
+
const status = err.response?.status;
|
|
266
|
+
const data = err.response?.data;
|
|
267
|
+
const detail = [data?.error, data?.message].filter(Boolean).join(': ') || err.message;
|
|
268
|
+
if (status === 401) {
|
|
269
|
+
return new ZipUploadError('Not authenticated. Run `babelize login` (or set BABELIZE_TOKEN) and try again.', ExitCode.AUTH, status);
|
|
270
|
+
}
|
|
271
|
+
if (status === 402) {
|
|
272
|
+
return new ZipUploadError(`Your plan does not allow this upload (${detail}). Check your plan with \`babelize billing\`.`, ExitCode.API_ERROR, status);
|
|
273
|
+
}
|
|
274
|
+
if (status === 413) {
|
|
275
|
+
return new ZipUploadError(`The server rejected the archive as too large (${detail}).`, ExitCode.USAGE, status);
|
|
276
|
+
}
|
|
277
|
+
if (status !== undefined && status >= 500) {
|
|
278
|
+
return new ZipUploadError(`Upload failed: server error (${status}). ${detail}`.trim(), ExitCode.API_ERROR, status);
|
|
279
|
+
}
|
|
280
|
+
if (status !== undefined) {
|
|
281
|
+
return new ZipUploadError(`Upload failed (${status}): ${detail}`, ExitCode.API_ERROR, status);
|
|
282
|
+
}
|
|
283
|
+
return new ZipUploadError(`Upload failed: could not reach the Babelize API (${err.message}).`, ExitCode.NETWORK);
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=zip-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-upload.js","sourceRoot":"","sources":["../../src/utils/zip-upload.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babelize/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Official CLI for the Babelize AI-powered i18n platform",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"babelize",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"ai",
|
|
11
11
|
"translation"
|
|
12
12
|
],
|
|
13
|
+
"license": "Apache-2.0",
|
|
13
14
|
"homepage": "https://babelize.co",
|
|
14
15
|
"repository": {
|
|
15
16
|
"type": "git",
|
|
@@ -33,12 +34,14 @@
|
|
|
33
34
|
"typecheck": "tsc --noEmit",
|
|
34
35
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.cjs",
|
|
35
36
|
"prepack": "rm -rf dist/__tests__",
|
|
36
|
-
"prepublishOnly": "npm test && npm run lint && npm run typecheck"
|
|
37
|
+
"prepublishOnly": "npm run build && npm test && npm run lint && npm run typecheck"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
40
|
"@babel/parser": "^7.28.5",
|
|
40
41
|
"@babel/traverse": "^7.28.5",
|
|
41
42
|
"@babel/types": "^7.28.5",
|
|
43
|
+
"@babelize/engine": "^0.1.2",
|
|
44
|
+
"@babelize/types": "^0.1.2",
|
|
42
45
|
"@clack/prompts": "^1.5.1",
|
|
43
46
|
"archiver": "^7.0.1",
|
|
44
47
|
"axios": "^1.15.2",
|
|
@@ -46,6 +49,7 @@
|
|
|
46
49
|
"cli-table3": "^0.6.5",
|
|
47
50
|
"commander": "^12.1.0",
|
|
48
51
|
"conf": "^13.0.0",
|
|
52
|
+
"ignore": "^7.0.5",
|
|
49
53
|
"listr2": "^10.2.1",
|
|
50
54
|
"open": "^10.1.0",
|
|
51
55
|
"ws": "^8.20.1"
|