@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.
Files changed (139) hide show
  1. package/LICENSE +200 -4
  2. package/README.md +53 -20
  3. package/dist/client.d.ts +9 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +73 -31
  6. package/dist/client.js.map +1 -1
  7. package/dist/commands/account.js +1 -1
  8. package/dist/commands/account.js.map +1 -1
  9. package/dist/commands/admin.js +5 -5
  10. package/dist/commands/admin.js.map +1 -1
  11. package/dist/commands/analytics.js +1 -1
  12. package/dist/commands/analytics.js.map +1 -1
  13. package/dist/commands/api-keys.d.ts +6 -0
  14. package/dist/commands/api-keys.d.ts.map +1 -1
  15. package/dist/commands/api-keys.js +42 -12
  16. package/dist/commands/api-keys.js.map +1 -1
  17. package/dist/commands/auth.d.ts.map +1 -1
  18. package/dist/commands/auth.js +23 -12
  19. package/dist/commands/auth.js.map +1 -1
  20. package/dist/commands/babels.d.ts.map +1 -1
  21. package/dist/commands/babels.js +16 -20
  22. package/dist/commands/babels.js.map +1 -1
  23. package/dist/commands/billing.js +1 -1
  24. package/dist/commands/billing.js.map +1 -1
  25. package/dist/commands/check.d.ts +22 -0
  26. package/dist/commands/check.d.ts.map +1 -0
  27. package/dist/commands/check.js +134 -0
  28. package/dist/commands/check.js.map +1 -0
  29. package/dist/commands/checkout.js +2 -2
  30. package/dist/commands/checkout.js.map +1 -1
  31. package/dist/commands/comments.js +5 -5
  32. package/dist/commands/comments.js.map +1 -1
  33. package/dist/commands/glossary.d.ts +15 -0
  34. package/dist/commands/glossary.d.ts.map +1 -1
  35. package/dist/commands/glossary.js +106 -25
  36. package/dist/commands/glossary.js.map +1 -1
  37. package/dist/commands/init.d.ts.map +1 -1
  38. package/dist/commands/init.js +82 -69
  39. package/dist/commands/init.js.map +1 -1
  40. package/dist/commands/invitations.d.ts.map +1 -1
  41. package/dist/commands/invitations.js +3 -1
  42. package/dist/commands/invitations.js.map +1 -1
  43. package/dist/commands/languages.d.ts.map +1 -1
  44. package/dist/commands/languages.js +38 -17
  45. package/dist/commands/languages.js.map +1 -1
  46. package/dist/commands/members.js +7 -7
  47. package/dist/commands/members.js.map +1 -1
  48. package/dist/commands/notifications.js +1 -1
  49. package/dist/commands/notifications.js.map +1 -1
  50. package/dist/commands/pr.d.ts.map +1 -1
  51. package/dist/commands/pr.js +6 -4
  52. package/dist/commands/pr.js.map +1 -1
  53. package/dist/commands/privacy.d.ts.map +1 -1
  54. package/dist/commands/privacy.js +7 -5
  55. package/dist/commands/privacy.js.map +1 -1
  56. package/dist/commands/projects.d.ts.map +1 -1
  57. package/dist/commands/projects.js +60 -35
  58. package/dist/commands/projects.js.map +1 -1
  59. package/dist/commands/roles.js +1 -1
  60. package/dist/commands/roles.js.map +1 -1
  61. package/dist/commands/run.d.ts +48 -0
  62. package/dist/commands/run.d.ts.map +1 -1
  63. package/dist/commands/run.js +264 -132
  64. package/dist/commands/run.js.map +1 -1
  65. package/dist/commands/scan.js +1 -1
  66. package/dist/commands/scan.js.map +1 -1
  67. package/dist/commands/status.js +1 -1
  68. package/dist/commands/status.js.map +1 -1
  69. package/dist/commands/subscriptions.js +1 -1
  70. package/dist/commands/subscriptions.js.map +1 -1
  71. package/dist/commands/tm.d.ts.map +1 -1
  72. package/dist/commands/tm.js +31 -13
  73. package/dist/commands/tm.js.map +1 -1
  74. package/dist/commands/translate.d.ts +24 -0
  75. package/dist/commands/translate.d.ts.map +1 -0
  76. package/dist/commands/translate.js +422 -0
  77. package/dist/commands/translate.js.map +1 -0
  78. package/dist/commands/users.js +1 -1
  79. package/dist/commands/users.js.map +1 -1
  80. package/dist/config.d.ts +1 -0
  81. package/dist/config.d.ts.map +1 -1
  82. package/dist/config.js +12 -4
  83. package/dist/config.js.map +1 -1
  84. package/dist/global-options.d.ts +6 -2
  85. package/dist/global-options.d.ts.map +1 -1
  86. package/dist/global-options.js +9 -3
  87. package/dist/global-options.js.map +1 -1
  88. package/dist/local/formatter.d.ts +27 -0
  89. package/dist/local/formatter.d.ts.map +1 -0
  90. package/dist/local/formatter.js +69 -0
  91. package/dist/local/formatter.js.map +1 -0
  92. package/dist/local/git.d.ts +16 -0
  93. package/dist/local/git.d.ts.map +1 -0
  94. package/dist/local/git.js +52 -0
  95. package/dist/local/git.js.map +1 -0
  96. package/dist/local/provider.d.ts +41 -0
  97. package/dist/local/provider.d.ts.map +1 -0
  98. package/dist/local/provider.js +87 -0
  99. package/dist/local/provider.js.map +1 -0
  100. package/dist/local/translate-core.d.ts +188 -0
  101. package/dist/local/translate-core.d.ts.map +1 -0
  102. package/dist/local/translate-core.js +401 -0
  103. package/dist/local/translate-core.js.map +1 -0
  104. package/dist/local/workspace-copy.d.ts +75 -0
  105. package/dist/local/workspace-copy.d.ts.map +1 -0
  106. package/dist/local/workspace-copy.js +263 -0
  107. package/dist/local/workspace-copy.js.map +1 -0
  108. package/dist/oauth.d.ts.map +1 -1
  109. package/dist/oauth.js +11 -3
  110. package/dist/oauth.js.map +1 -1
  111. package/dist/program.d.ts +22 -0
  112. package/dist/program.d.ts.map +1 -1
  113. package/dist/program.js +32 -10
  114. package/dist/program.js.map +1 -1
  115. package/dist/tui/clack.d.ts +60 -0
  116. package/dist/tui/clack.d.ts.map +1 -0
  117. package/dist/tui/clack.js +138 -0
  118. package/dist/tui/clack.js.map +1 -0
  119. package/dist/tui/help.d.ts.map +1 -1
  120. package/dist/tui/help.js +14 -5
  121. package/dist/tui/help.js.map +1 -1
  122. package/dist/tui/prompt.d.ts.map +1 -1
  123. package/dist/tui/prompt.js +4 -2
  124. package/dist/tui/prompt.js.map +1 -1
  125. package/dist/tui/repl.d.ts.map +1 -1
  126. package/dist/tui/repl.js +2 -0
  127. package/dist/tui/repl.js.map +1 -1
  128. package/dist/tui/table.d.ts.map +1 -1
  129. package/dist/tui/table.js +6 -2
  130. package/dist/tui/table.js.map +1 -1
  131. package/dist/utils/validate.d.ts +7 -0
  132. package/dist/utils/validate.d.ts.map +1 -0
  133. package/dist/utils/validate.js +16 -0
  134. package/dist/utils/validate.js.map +1 -0
  135. package/dist/utils/zip-upload.d.ts +83 -0
  136. package/dist/utils/zip-upload.d.ts.map +1 -0
  137. package/dist/utils/zip-upload.js +285 -0
  138. package/dist/utils/zip-upload.js.map +1 -0
  139. package/package.json +6 -2
@@ -0,0 +1,422 @@
1
+ import * as clack from '@clack/prompts';
2
+ import { isJsonMode, printJson } from '../formatters.js';
3
+ import { globalOptions, isNonInteractive } from '../global-options.js';
4
+ import { ExitCode } from '../exit-codes.js';
5
+ import { renderSimpleHelp } from '../tui/help.js';
6
+ import { brand, muted, success, warning, error as errorColor, sym } from '../tui/theme.js';
7
+ import { config } from '../config.js';
8
+ import * as path from 'node:path';
9
+ import { buildTranslateReport, DEFAULT_REPORT_FILE, HostedTranslationProvider, isGitIgnored, isHostedResolution, LOCAL_LOCKFILE, LocalTranslateError, parseLocales, PseudoTranslationProvider, resolveProvider, runLocalTranslate, writeTranslateReport, } from '@babelize/engine';
10
+ /**
11
+ * `--provider pseudo`: offline pseudo-localization ("Save" → "⟦Sávé⟧"), for
12
+ * checking i18n wiring and for CI without an API key. Explicit only (never
13
+ * auto-detected) and not listed in --help.
14
+ */
15
+ export const PSEUDO_PROVIDER = 'pseudo';
16
+ export const PSEUDO_WARNING = 'Pseudo-localization — not real translations (fake text like ⟦Sávé⟧ for testing i18n wiring). A real run will replace them; never ship them.';
17
+ const FRAMEWORK_NAMES = {
18
+ react: 'React',
19
+ nextjs: 'Next.js',
20
+ vue: 'Vue',
21
+ static: 'Static HTML',
22
+ django: 'Django',
23
+ };
24
+ const EXIT_BY_CODE = {
25
+ not_a_repo: ExitCode.USAGE,
26
+ git_missing: ExitCode.CONFIG,
27
+ dirty: ExitCode.USAGE,
28
+ invalid_locale: ExitCode.USAGE,
29
+ no_translator: ExitCode.CONFIG,
30
+ unsupported_framework: ExitCode.CONFIG,
31
+ translator_unreachable: ExitCode.AUTH,
32
+ hosted_auth: ExitCode.AUTH,
33
+ hosted_credits: ExitCode.API_ERROR,
34
+ engine_failed: ExitCode.API_ERROR,
35
+ incomplete_translation: ExitCode.API_ERROR,
36
+ apply_failed: ExitCode.INTERNAL,
37
+ project_changed: ExitCode.USAGE,
38
+ };
39
+ /** How many keys to name inline before summarising. */
40
+ const KEY_PREVIEW = 5;
41
+ function fail(json, code, message, exitCode, changedFiles) {
42
+ if (json)
43
+ printJson({ ok: false, error: { code, message, ...(changedFiles?.length ? { changedFiles } : {}) } });
44
+ else
45
+ console.error(`\n ${errorColor(sym.cross)} ${message.split('\n').join('\n ')}\n`);
46
+ process.exit(exitCode);
47
+ }
48
+ /** True when animated terminal output is appropriate (a real TTY, not CI). */
49
+ export function isAnimatedOutput() {
50
+ return process.stdout.isTTY === true && !(process.env.CI && process.env.CI !== 'false');
51
+ }
52
+ /**
53
+ * The clack spinner on a TTY; otherwise (piped output, CI logs) one plain
54
+ * line per pipeline phase instead of hundreds of spinner redraws.
55
+ */
56
+ export function createProgress(animated = isAnimatedOutput()) {
57
+ if (animated) {
58
+ const s = clack.spinner();
59
+ return { start: (m) => s.start(m), message: (m) => s.message(m), stop: (m) => s.stop(m) };
60
+ }
61
+ let lastPhase;
62
+ let lastMessage;
63
+ const print = (m) => {
64
+ if (m !== lastMessage)
65
+ console.log(` ${m}`);
66
+ lastMessage = m;
67
+ };
68
+ return {
69
+ start: (m) => print(m),
70
+ message: (m, phase) => {
71
+ // Phases report many sub-steps (per batch, per locale); one line per phase is enough.
72
+ if (phase !== undefined && phase === lastPhase)
73
+ return;
74
+ lastPhase = phase;
75
+ print(m);
76
+ },
77
+ stop: (m) => print(m),
78
+ };
79
+ }
80
+ function frameworkLine(framework, status) {
81
+ const name = FRAMEWORK_NAMES[framework] ?? framework;
82
+ return status === 'beta' ? `${name} ${warning('(beta)')}` : name;
83
+ }
84
+ function previewKeys(keys) {
85
+ const shown = keys.slice(0, KEY_PREVIEW).join(', ');
86
+ return keys.length > KEY_PREVIEW ? `${shown}, … +${keys.length - KEY_PREVIEW} more` : shown;
87
+ }
88
+ export function renderReport(report, verbose = false) {
89
+ const out = [];
90
+ const row = (k, v) => out.push(` ${brand(k.padEnd(12))} ${v}`);
91
+ const { changes, stats } = report;
92
+ out.push('');
93
+ row('Framework', frameworkLine(report.framework, report.frameworkStatus));
94
+ if (report.keptLocales.length > 0) {
95
+ row('Locales', `${report.targetLocales.join(', ')} ${muted(`(kept from earlier runs: ${report.keptLocales.join(', ')}; use --replace to drop them)`)}`);
96
+ }
97
+ if (report.provider) {
98
+ row('Provider', report.provider.model ? `${report.provider.name} ${muted(`· ${report.provider.model}`)}` : report.provider.name);
99
+ }
100
+ const sourceKeys = report.locales[0]?.total ?? Object.keys(report.results.source).length;
101
+ const produced = report.locales.reduce((n, l) => n + l.translated, 0);
102
+ const fresh = Math.min(stats.translatedThisRun ?? stats.keysSentToTranslator, produced);
103
+ if (report.framework === 'django') {
104
+ // gettext: the code is the catalogue; every run re-reads all its messages.
105
+ row('Messages', `${sourceKeys} ${muted('(gettext msgids in your code; translations go to the django.po catalogues)')}`);
106
+ }
107
+ else {
108
+ row('Keys', `${sourceKeys} in ${report.sourceLocale}.json ${muted(`(${stats.keysExtracted} new this run)`)}`);
109
+ }
110
+ row('Translations', `${fresh} new ${muted(`· ${Math.max(0, produced - fresh)} reused (lockfile, memory or cache)`)}`);
111
+ row('Files', `${changes.modified.length} modified, ${changes.added.length} added, ${changes.deleted.length} deleted` +
112
+ (report.dryRun ? muted(' (dry run — nothing written)') : ''));
113
+ for (const f of changes.modified)
114
+ out.push(` ${warning('M')} ${f}`);
115
+ for (const f of changes.added)
116
+ out.push(` ${success('A')} ${f}`);
117
+ for (const f of changes.deleted)
118
+ out.push(` ${errorColor('D')} ${f}`);
119
+ out.push('');
120
+ for (const l of report.locales) {
121
+ const failedKeySet = new Set(l.failed.map((f) => f.key));
122
+ const needsReview = l.qa.length > 0 || l.missing.some((k) => !failedKeySet.has(k));
123
+ const mark = l.failed.length > 0 ? errorColor(sym.cross) : needsReview ? warning(sym.warn) : success(sym.check);
124
+ out.push(` ${mark} ${brand(l.locale.padEnd(8))} ${l.translated}/${l.total} translated`);
125
+ if (l.failed.length > 0) {
126
+ out.push(` ${errorColor(`${l.failed.length} failed`)} ${muted('(not written; the next run retries them)')}`);
127
+ const shown = verbose ? l.failed : l.failed.slice(0, KEY_PREVIEW);
128
+ for (const f of shown) {
129
+ out.push(` ${f.key} ${muted(`— ${f.reason}${f.message ? `: ${f.message}` : ''}`)}`);
130
+ }
131
+ if (shown.length < l.failed.length)
132
+ out.push(muted(` … ${l.failed.length - shown.length} more (use --verbose or --json)`));
133
+ }
134
+ const failedKeys = new Set(l.failed.map((f) => f.key));
135
+ const otherMissing = l.missing.filter((k) => !failedKeys.has(k));
136
+ if (otherMissing.length > 0) {
137
+ out.push(` ${warning(`${otherMissing.length} missing`)} ${muted(previewKeys(otherMissing))}`);
138
+ }
139
+ if (l.qa.length > 0) {
140
+ out.push(` ${warning(`${l.qa.length} with QA warnings`)}`);
141
+ const shown = verbose ? l.qa : l.qa.slice(0, KEY_PREVIEW);
142
+ for (const q of shown)
143
+ out.push(` ${q.key} ${muted(`— ${q.warnings.join('; ')}`)}`);
144
+ if (shown.length < l.qa.length)
145
+ out.push(muted(` … ${l.qa.length - shown.length} more (use --verbose or --json)`));
146
+ }
147
+ if (l.sameAsSource.length > 0) {
148
+ out.push(` ${muted(`unchanged: ${previewKeys(l.sameAsSource)} — fine for names and codes`)}`);
149
+ }
150
+ }
151
+ // Keyed: translated but the code still shows the literal. Keyless: never
152
+ // given a key (e.g. a module-level constant that is also used as data), so
153
+ // not translated at all — saying "translated" there would be wrong.
154
+ const unwired = report.notInjected.filter((s) => s.key);
155
+ const untouched = report.notInjected.filter((s) => !s.key);
156
+ if (unwired.length > 0) {
157
+ const n = unwired.length;
158
+ out.push('', ` ${warning(`${sym.warn} ${n} string${n === 1 ? '' : 's'} extracted but not wired into code`)} ${muted('(translated, but the app still shows the literal):')}`);
159
+ const shown = verbose ? unwired : unwired.slice(0, 10);
160
+ for (const s of shown)
161
+ out.push(` ${s.file} — ${s.key} ${muted(`(${s.reason})`)}`);
162
+ if (shown.length < n)
163
+ out.push(muted(` … ${n - shown.length} more (use --verbose or --json)`));
164
+ }
165
+ if (untouched.length > 0) {
166
+ const n = untouched.length;
167
+ out.push('', ` ${muted(`${n} string${n === 1 ? '' : 's'} left as-is, not translated (possibly data; move UI text inside the component to translate it):`)}`);
168
+ const shown = verbose ? untouched : untouched.slice(0, 5);
169
+ for (const s of shown)
170
+ out.push(muted(` ${s.file} — ${JSON.stringify(s.text)} (${s.reason})`));
171
+ if (shown.length < n)
172
+ out.push(muted(` … ${n - shown.length} more (use --verbose or --json)`));
173
+ }
174
+ if (report.unusedKeys.length > 0) {
175
+ const n = report.unusedKeys.length;
176
+ out.push(muted(` ${n} key${n === 1 ? '' : 's'} in ${report.sourceLocale}.json look${n === 1 ? 's' : ''} unused (no t() reference found) — still translated; remove ${n === 1 ? 'it' : 'them'} from ${report.sourceLocale}.json if dead: ${previewKeys(report.unusedKeys)}`));
177
+ }
178
+ if (report.droppedLocales.length > 0) {
179
+ out.push(` ${brand(sym.pointer)} Removed ${report.droppedLocales.join(', ')} (--replace).`);
180
+ }
181
+ if (report.warnings.length > 0) {
182
+ out.push('', ` ${warning(`${sym.warn} ${report.warnings.length} warning${report.warnings.length === 1 ? '' : 's'}`)}`);
183
+ const shown = verbose ? report.warnings : report.warnings.slice(0, 10);
184
+ for (const w of shown) {
185
+ const where = w.file ? `${w.file}${w.line ? `:${w.line}` : ''} ` : '';
186
+ out.push(` ${muted(where)}${w.message || w.type}`);
187
+ }
188
+ if (shown.length < report.warnings.length) {
189
+ out.push(muted(` … ${report.warnings.length - shown.length} more (use --verbose or --json)`));
190
+ }
191
+ }
192
+ if (report.formatter) {
193
+ const f = report.formatter;
194
+ out.push('', f.ok
195
+ ? ` ${brand(sym.pointer)} Formatted ${f.files.length} changed file${f.files.length === 1 ? '' : 's'} with ${f.tool}.`
196
+ : ` ${warning(sym.warn)} ${f.message}`);
197
+ }
198
+ if (report.notes.length > 0) {
199
+ out.push('');
200
+ for (const n of report.notes)
201
+ out.push(` ${brand(sym.pointer)} ${n}`);
202
+ }
203
+ const logged = report.engineLog;
204
+ if (logged.length > 0) {
205
+ if (verbose) {
206
+ out.push('', ` ${muted('Engine log:')}`);
207
+ for (const e of logged)
208
+ out.push(` ${e.level === 'error' ? errorColor(e.level) : warning(e.level)} ${e.message}`);
209
+ }
210
+ else {
211
+ out.push('');
212
+ for (const e of logged.slice(0, 3))
213
+ out.push(` ${e.level === 'error' ? errorColor(sym.cross) : warning(sym.warn)} ${e.message}`);
214
+ if (logged.length > 3)
215
+ out.push(muted(` … ${logged.length - 3} more engine messages (see --verbose)`));
216
+ }
217
+ }
218
+ out.push('');
219
+ if (report.provider?.provider === PSEUDO_PROVIDER) {
220
+ out.push(` ${warning(`${sym.warn} ${PSEUDO_WARNING}`)}`, ` ${muted('babelize check reports every pseudo value as an error until then.')}`);
221
+ }
222
+ if (report.translationFailures.length > 0) {
223
+ out.push(` ${errorColor(`${sym.cross} ${report.translationFailures.length} key(s) could not be translated.`)} ` +
224
+ (report.dryRun ? 'They would be left out.' : 'Everything else was written; re-run to retry them.'));
225
+ }
226
+ if (report.dryRun) {
227
+ out.push(muted(' Dry run: re-run without --dry-run to write these changes.'));
228
+ }
229
+ else if (report.applied) {
230
+ out.push(` ${brand('Next:')} review with ${brand('git diff')}, then commit — including ${brand(LOCAL_LOCKFILE)},`);
231
+ out.push(` so re-runs only translate new or changed strings.`);
232
+ if (report.lockfileIgnored) {
233
+ out.push(` ${warning(`${sym.warn} .babelize/ is gitignored`)} (babelize init adds it). Reruns here still reuse it, but to share it run`, ` ${brand(`git add -f ${LOCAL_LOCKFILE}`)} or add ${brand('!.babelize/local/')} to .gitignore.`);
234
+ }
235
+ if (changes.modified.includes('package.json')) {
236
+ out.push(` i18n dependencies were added to package.json — run your package manager's install.`);
237
+ }
238
+ }
239
+ else {
240
+ out.push(muted(' Nothing to change: everything is already translated.'));
241
+ }
242
+ out.push('');
243
+ return out.join('\n');
244
+ }
245
+ export function registerTranslateCommand(program) {
246
+ const cmd = program
247
+ .command('translate')
248
+ .description('Translate this repo locally with your own LLM key or a Babelize API key')
249
+ .option('-t, --to <locales>', 'Target locales, comma-separated (e.g. fr,de,ja)')
250
+ .option('-f, --from <locale>', 'Source locale', 'en')
251
+ .option('--dry-run', 'Print the diff of what would change; write nothing')
252
+ .option('--force', 'Run even if the git working tree has uncommitted changes')
253
+ .option('--replace', 'Treat --to as the complete list: remove locales from earlier runs that are not listed')
254
+ .option('--provider <provider>', 'anthropic, openai, gemini, groq, openrouter, or babelize (hosted; needs BABELIZE_API_KEY). Default: first BYOK key in env, then BABELIZE_API_KEY')
255
+ .option('--model <id>', 'Model ID (default: the provider\'s recommended model)')
256
+ .option('-y, --yes', 'Skip the confirmation prompt')
257
+ .option('--report <path>', `Where to write the QA report (default: ${DEFAULT_REPORT_FILE}; not written on --dry-run unless given)`)
258
+ .option('--allow-partial', 'Exit 0 even when some keys failed (they are still listed in the report)')
259
+ .option('--json', 'Print the QA report as JSON (same schema as the report file)');
260
+ cmd.action(async (opts) => {
261
+ const json = isJsonMode() || opts.json === true;
262
+ const interactive = !json && !isNonInteractive() && !opts.yes;
263
+ const sourceLocale = (opts.from ?? 'en').trim();
264
+ let targets = parseLocales(opts.to, sourceLocale);
265
+ if (targets.length === 0) {
266
+ if (!interactive) {
267
+ fail(json, 'usage', 'Missing --to <locales>, e.g. `babelize translate --to fr,de`.', ExitCode.USAGE);
268
+ }
269
+ const answer = await clack.text({
270
+ message: 'Translate into which locales? (comma-separated)',
271
+ placeholder: 'fr,de,ja',
272
+ validate: (v) => (parseLocales(v, sourceLocale).length > 0 ? undefined : 'Enter at least one locale'),
273
+ });
274
+ if (clack.isCancel(answer))
275
+ process.exit(ExitCode.CANCEL);
276
+ targets = parseLocales(String(answer), sourceLocale);
277
+ }
278
+ const pseudo = opts.provider?.trim().toLowerCase() === PSEUDO_PROVIDER;
279
+ if (pseudo && opts.model)
280
+ fail(json, 'model_not_supported', '--model does not apply to --provider pseudo.', ExitCode.USAGE);
281
+ const resolution = pseudo ? null : resolveProvider({ provider: opts.provider, model: opts.model });
282
+ if (resolution && !resolution.ok) {
283
+ const usage = resolution.code === 'unknown_provider' || resolution.code === 'model_not_supported';
284
+ fail(json, resolution.code, resolution.message, usage ? ExitCode.USAGE : ExitCode.CONFIG);
285
+ }
286
+ const provider = resolution?.value ?? null;
287
+ const hosted = provider && isHostedResolution(provider)
288
+ ? new HostedTranslationProvider({
289
+ apiKey: provider.apiKey,
290
+ apiUrl: globalOptions.apiUrl ?? config.getApiUrl(),
291
+ })
292
+ : undefined;
293
+ if (!json) {
294
+ console.log(`\n ${brand('Babelize translate')} ${muted(`${sourceLocale} ${sym.arrow} ${targets.join(', ')}`)}`);
295
+ if (!provider) {
296
+ console.log(` ${warning(`${sym.warn} ${PSEUDO_WARNING}`)}`);
297
+ }
298
+ else {
299
+ const keyFrom = `key from ${provider.envVar}${provider.autoDetected ? ', auto-detected' : ''}`;
300
+ console.log(` ${muted(isHostedResolution(provider) ? `Using Babelize hosted (${keyFrom})` : `Using ${provider.provider} · ${provider.model} (${keyFrom})`)}`);
301
+ }
302
+ }
303
+ if (interactive && !opts.dryRun) {
304
+ const billed = !provider
305
+ ? 'pseudo-localized test text, no API calls'
306
+ : isHostedResolution(provider) ? 'uses your Babelize AI credits' : `your ${provider.provider} key is billed`;
307
+ const ok = await clack.confirm({
308
+ message: `Translate into ${targets.join(', ')} and write the result to this working tree? (${billed})`,
309
+ });
310
+ if (clack.isCancel(ok) || !ok)
311
+ process.exit(ExitCode.CANCEL);
312
+ }
313
+ const spinner = json ? null : createProgress();
314
+ spinner?.start('Preparing a temporary copy of the project…');
315
+ let report;
316
+ try {
317
+ report = await runLocalTranslate({
318
+ projectDir: process.cwd(),
319
+ sourceLocale,
320
+ targetLocales: targets,
321
+ dryRun: opts.dryRun === true,
322
+ force: opts.force === true,
323
+ replace: opts.replace === true,
324
+ byok: !provider || isHostedResolution(provider) ? undefined : { provider: provider.provider, apiKey: provider.apiKey, model: provider.model },
325
+ }, {
326
+ hosted,
327
+ ...(provider ? {} : { translator: new PseudoTranslationProvider(), translatorInfo: { provider: 'pseudo', name: 'Pseudo-localization' } }),
328
+ onFramework: (framework, status) => {
329
+ if (!spinner)
330
+ return;
331
+ spinner.message(`Detected ${FRAMEWORK_NAMES[framework] ?? framework}`);
332
+ if (status === 'beta') {
333
+ spinner.stop(warning(`${sym.warn} ${FRAMEWORK_NAMES[framework] ?? framework} support is in beta — review the diff carefully.`));
334
+ spinner.start('Running the pipeline…');
335
+ }
336
+ },
337
+ // Only show steps in progress; failures are reported once, below, in plain words.
338
+ onProgress: (message, _phase, status) => {
339
+ if (!status || status === 'running')
340
+ spinner?.message(message, _phase);
341
+ },
342
+ });
343
+ }
344
+ catch (err) {
345
+ spinner?.stop(errorColor('Translation did not complete.'));
346
+ if (err instanceof LocalTranslateError) {
347
+ fail(json, err.code, err.message, EXIT_BY_CODE[err.code], err.changedFiles);
348
+ }
349
+ // Errors before the apply step never touch the project, and the apply
350
+ // step reports its own failures, but don't promise what we can't know.
351
+ fail(json, 'internal', `Unexpected error: ${err.message}. Check \`git status\` for any changes.`, ExitCode.INTERNAL);
352
+ }
353
+ const elapsed = (report.durationMs / 1000).toFixed(1);
354
+ const partial = report.translationFailures.length > 0;
355
+ spinner?.stop(report.dryRun
356
+ ? `Dry run finished in ${elapsed}s.`
357
+ : partial
358
+ ? warning(`${sym.warn} Finished with failures in ${elapsed}s.`)
359
+ : success(`${sym.check} Done in ${elapsed}s.`));
360
+ // One schema for --json and the report file (TranslateReport).
361
+ const qa = buildTranslateReport(report);
362
+ // A dry run writes nothing unless a report path was asked for.
363
+ let reportFile;
364
+ let reportError;
365
+ if (!report.dryRun || opts.report) {
366
+ try {
367
+ reportFile = await writeTranslateReport(process.cwd(), qa, opts.report ?? DEFAULT_REPORT_FILE);
368
+ }
369
+ catch (err) {
370
+ reportError = err.message;
371
+ }
372
+ }
373
+ // A --report path inside the repo that git doesn't ignore shows up as an
374
+ // untracked file (the next run skips it, but `git status` won't).
375
+ let reportHint;
376
+ if (reportFile && opts.report) {
377
+ const rel = path.relative(process.cwd(), reportFile).split(path.sep).join('/');
378
+ const inside = !rel.startsWith('..') && !path.isAbsolute(rel);
379
+ if (inside && !rel.startsWith('.babelize/local/') && !(await isGitIgnored(process.cwd(), rel))) {
380
+ reportHint = `${rel} is inside the repo and not git-ignored, so it shows up in git status (babelize translate ignores it). Prefer a path under .babelize/local/ or outside the repo.`;
381
+ }
382
+ }
383
+ if (json) {
384
+ printJson(qa);
385
+ }
386
+ else {
387
+ if (report.dryRun && report.diff) {
388
+ console.log('');
389
+ console.log(report.diff);
390
+ }
391
+ console.log(renderReport(report, globalOptions.verbose === true));
392
+ if (reportFile) {
393
+ const rel = path.relative(process.cwd(), reportFile).split(path.sep).join('/') || reportFile;
394
+ console.log(` ${brand('Report')} ${rel} ${muted(rel === DEFAULT_REPORT_FILE
395
+ ? '(every key with its status; git-ignored via .babelize/.gitignore — safe to commit or ignore)'
396
+ : '(every key with its status)')}\n`);
397
+ }
398
+ }
399
+ if (reportError)
400
+ console.error(` ${warning(sym.warn)} Could not write the report: ${reportError}`);
401
+ if (reportHint)
402
+ console.error(` ${warning(sym.warn)} ${reportHint}`);
403
+ // Successful translations are applied, but a partial run must not look
404
+ // like a clean one to scripts and CI, unless --allow-partial.
405
+ if (partial && !opts.allowPartial)
406
+ process.exit(ExitCode.API_ERROR);
407
+ });
408
+ cmd.helpInformation = () => renderSimpleHelp('translate', 'Translate this repo locally with your own LLM key (no account needed) or Babelize-hosted translation (BABELIZE_API_KEY). Writes locale files and i18n code into your working tree for review with `git diff`.', [
409
+ { name: '-t, --to <locales>', desc: 'Target locales, comma-separated (e.g. fr,de,ja)' },
410
+ { name: '-f, --from <locale>', desc: 'Source locale (default: en)' },
411
+ { name: '--dry-run', desc: 'Print the diff of what would change; write nothing' },
412
+ { name: '--force', desc: 'Run even with uncommitted changes' },
413
+ { name: '--replace', desc: 'Remove earlier locales not listed in --to' },
414
+ { name: '--provider <name>', desc: 'anthropic | openai | gemini | groq | openrouter | babelize' },
415
+ { name: '--model <id>', desc: "Override the provider's default model" },
416
+ { name: '-y, --yes', desc: 'Skip the confirmation prompt' },
417
+ { name: '--report <path>', desc: `QA report location (default: ${DEFAULT_REPORT_FILE})` },
418
+ { name: '--allow-partial', desc: 'Exit 0 even when some keys failed' },
419
+ { name: '--json', desc: 'Print the QA report as JSON' },
420
+ ]);
421
+ }
422
+ //# sourceMappingURL=translate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as clack from '@clack/prompts';
1
+ import * as clack from '../tui/clack.js';
2
2
  import { getClient, handleApiError } from '../client.js';
3
3
  import { isJsonMode, printJson } from '../formatters.js';
4
4
  import { table, keyValue } from '../tui/table.js';
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -5,6 +5,7 @@ export interface Credentials {
5
5
  email: string;
6
6
  expiresAt?: number;
7
7
  }
8
+ export declare const DEFAULT_API_URL = "https://api.babelize.co/api";
8
9
  export interface CliConfig {
9
10
  apiUrl: string;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAsBD,eAAO,MAAM,MAAM;sBACC,WAAW,GAAG,IAAI;0BAId,WAAW,GAAG,IAAI;wBAQpB,IAAI;iBAIX,MAAM;mBAUJ,MAAM,GAAG,IAAI;uBAKT,OAAO;6BAIK,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CAUhI,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,gCAAgC,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAsBD,eAAO,MAAM,MAAM;sBACC,WAAW,GAAG,IAAI;0BAId,WAAW,GAAG,IAAI;wBAQpB,IAAI;iBAIX,MAAM;mBAgBJ,MAAM,GAAG,IAAI;uBAKT,OAAO;6BAIK,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CAUhI,CAAC"}
package/dist/config.js CHANGED
@@ -2,6 +2,7 @@ import Conf from 'conf';
2
2
  import path from 'path';
3
3
  import { chmodSync } from 'node:fs';
4
4
  import { access, readFile } from 'node:fs/promises';
5
+ export const DEFAULT_API_URL = 'https://api.babelize.co/api';
5
6
  const store = new Conf({
6
7
  projectName: '@babelize/cli',
7
8
  });
@@ -37,14 +38,21 @@ export const config = {
37
38
  store.delete('credentials');
38
39
  },
39
40
  getApiUrl() {
40
- // Priority: env var > stored config > production default
41
+ // Priority: env var > stored config > production default. The --api-url
42
+ // flag sits above all three; the HTTP client checks it first.
43
+ //
44
+ // Stored URLs are honoured as-is, localhost included: self-hosted and
45
+ // local-backend users save one on purpose. (Localhost URLs used to be
46
+ // ignored because old versions defaulted to localhost outside production
47
+ // and could leave a stale dev URL behind.) A URL is only ever stored when
48
+ // the user asks for it — `auth login --api-url` or the "Self-hosted" login
49
+ // choice — never as a default, so nothing can pin a stale one silently.
41
50
  if (process.env.BABELIZE_API_URL)
42
51
  return process.env.BABELIZE_API_URL;
43
52
  const stored = store.get('config')?.apiUrl;
44
- if (stored && !stored.includes('localhost') && !stored.includes('127.0.0.1')) {
53
+ if (stored)
45
54
  return stored;
46
- }
47
- return 'https://api.babelize.co/api';
55
+ return DEFAULT_API_URL;
48
56
  },
49
57
  setApiUrl(url) {
50
58
  const current = store.get('config') ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAepD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAoD;IACxE,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IACzC,IAAI,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,cAAc;QACZ,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,KAAkB;QAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS;QACP,yDAAyD;QACzD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,eAAe;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAWpD,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAM7D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAoD;IACxE,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IACzC,IAAI,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,cAAc;QACZ,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,KAAkB;QAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB;QACd,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS;QACP,wEAAwE;QACxE,8DAA8D;QAC9D,EAAE;QACF,sEAAsE;QACtE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,eAAe;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -4,13 +4,17 @@ export declare const globalOptions: {
4
4
  verbose?: boolean;
5
5
  json?: boolean;
6
6
  nonInteractive?: boolean;
7
+ /** `--yes`: never prompt, and answer "yes" to confirmations. */
8
+ assumeYes?: boolean;
7
9
  };
8
10
  export declare function setGlobalOptions(opts: Partial<typeof globalOptions>): void;
9
11
  export declare function isJsonMode(): boolean;
12
+ /** True when `--yes` was passed: confirmations are answered "yes" without asking. */
13
+ export declare function isAssumeYes(): boolean;
10
14
  /**
11
15
  * True when the CLI must not block on interactive prompts — either because
12
- * `--yes`/`--non-interactive` was passed, or the process is running in a CI
13
- * environment (CI env var) or stdin is closed (no TTY).
16
+ * `--yes`/`--non-interactive` was passed, BABELIZE_NON_INTERACTIVE is set, the
17
+ * process is running in CI (CI env var), or stdin is closed (no TTY).
14
18
  */
15
19
  export declare function isNonInteractive(): boolean;
16
20
  //# sourceMappingURL=global-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../src/global-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,EAAE;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEP,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,IAAI,CAM1E;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAO1C"}
1
+ {"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../src/global-options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,EAAE;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEP,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,IAAI,CAO1E;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,qFAAqF;AACrF,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAO1C"}
@@ -10,17 +10,23 @@ export function setGlobalOptions(opts) {
10
10
  globalOptions.json = opts.json;
11
11
  if (opts.nonInteractive !== undefined)
12
12
  globalOptions.nonInteractive = opts.nonInteractive;
13
+ if (opts.assumeYes !== undefined)
14
+ globalOptions.assumeYes = opts.assumeYes;
13
15
  }
14
16
  export function isJsonMode() {
15
17
  return globalOptions.json === true;
16
18
  }
19
+ /** True when `--yes` was passed: confirmations are answered "yes" without asking. */
20
+ export function isAssumeYes() {
21
+ return globalOptions.assumeYes === true;
22
+ }
17
23
  /**
18
24
  * True when the CLI must not block on interactive prompts — either because
19
- * `--yes`/`--non-interactive` was passed, or the process is running in a CI
20
- * environment (CI env var) or stdin is closed (no TTY).
25
+ * `--yes`/`--non-interactive` was passed, BABELIZE_NON_INTERACTIVE is set, the
26
+ * process is running in CI (CI env var), or stdin is closed (no TTY).
21
27
  */
22
28
  export function isNonInteractive() {
23
- if (globalOptions.nonInteractive === true)
29
+ if (globalOptions.nonInteractive === true || globalOptions.assumeYes === true)
24
30
  return true;
25
31
  if (process.env.BABELIZE_NON_INTERACTIVE === '1' || process.env.BABELIZE_NON_INTERACTIVE === 'true')
26
32
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"global-options.js","sourceRoot":"","sources":["../src/global-options.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAMtB,EAAE,CAAC;AAEP,MAAM,UAAU,gBAAgB,CAAC,IAAmC;IAClE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;QAAE,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,aAAa,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjH,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9D,yEAAyE;IACzE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"global-options.js","sourceRoot":"","sources":["../src/global-options.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAQtB,EAAE,CAAC;AAEP,MAAM,UAAU,gBAAgB,CAAC,IAAmC;IAClE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;QAAE,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC1F,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC;AACrC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC,SAAS,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,aAAa,CAAC,cAAc,KAAK,IAAI,IAAI,aAAa,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3F,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjH,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9D,yEAAyE;IACzE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,KAAK,CAAC;AACf,CAAC"}