@ship-et/buildatlas-cli 0.14.0 → 0.14.2-beta.2

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 (51) hide show
  1. package/dist/client.d.ts +9 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +72 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/client.test.js +42 -1
  6. package/dist/client.test.js.map +1 -1
  7. package/dist/commands/build.js +2 -2
  8. package/dist/commands/build.js.map +1 -1
  9. package/dist/commands/env.d.ts +1 -0
  10. package/dist/commands/env.d.ts.map +1 -1
  11. package/dist/commands/env.js +65 -42
  12. package/dist/commands/env.js.map +1 -1
  13. package/dist/commands/migrate/build-numbers.d.ts +2 -1
  14. package/dist/commands/migrate/build-numbers.d.ts.map +1 -1
  15. package/dist/commands/migrate/build-numbers.js +26 -6
  16. package/dist/commands/migrate/build-numbers.js.map +1 -1
  17. package/dist/commands/migrate/credentials.d.ts +17 -15
  18. package/dist/commands/migrate/credentials.d.ts.map +1 -1
  19. package/dist/commands/migrate/credentials.js +110 -45
  20. package/dist/commands/migrate/credentials.js.map +1 -1
  21. package/dist/commands/migrate/eas-client.d.ts +57 -5
  22. package/dist/commands/migrate/eas-client.d.ts.map +1 -1
  23. package/dist/commands/migrate/eas-client.js +112 -16
  24. package/dist/commands/migrate/eas-client.js.map +1 -1
  25. package/dist/commands/migrate/env.d.ts +39 -0
  26. package/dist/commands/migrate/env.d.ts.map +1 -0
  27. package/dist/commands/migrate/env.js +138 -0
  28. package/dist/commands/migrate/env.js.map +1 -0
  29. package/dist/commands/migrate/env.test.d.ts +2 -0
  30. package/dist/commands/migrate/env.test.d.ts.map +1 -0
  31. package/dist/commands/migrate/env.test.js +41 -0
  32. package/dist/commands/migrate/env.test.js.map +1 -0
  33. package/dist/commands/migrate/index.d.ts.map +1 -1
  34. package/dist/commands/migrate/index.js +146 -58
  35. package/dist/commands/migrate/index.js.map +1 -1
  36. package/dist/commands/migrate/report.d.ts +26 -0
  37. package/dist/commands/migrate/report.d.ts.map +1 -0
  38. package/dist/commands/migrate/report.js +84 -0
  39. package/dist/commands/migrate/report.js.map +1 -0
  40. package/dist/commands/submit.d.ts +6 -2
  41. package/dist/commands/submit.d.ts.map +1 -1
  42. package/dist/commands/submit.js +19 -9
  43. package/dist/commands/submit.js.map +1 -1
  44. package/dist/prompt.d.ts +16 -0
  45. package/dist/prompt.d.ts.map +1 -1
  46. package/dist/prompt.js +143 -0
  47. package/dist/prompt.js.map +1 -1
  48. package/dist/spinner.d.ts.map +1 -1
  49. package/dist/spinner.js +3 -1
  50. package/dist/spinner.js.map +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ import pc from 'picocolors';
2
+ const ICON = {
3
+ done: pc.green('✔'),
4
+ skipped: pc.dim('–'),
5
+ warn: pc.yellow('⚠'),
6
+ failed: pc.red('✖'),
7
+ };
8
+ function line(step, indent) {
9
+ const label = step.status === 'skipped' ? pc.dim(step.label) : step.label;
10
+ const detail = step.detail ? pc.dim(` ${step.detail}`) : '';
11
+ return `${indent}${ICON[step.status]} ${label}${detail}`;
12
+ }
13
+ /**
14
+ * One migrated project's steps, printed as they happen and kept for the
15
+ * summary at the end — with several projects in one run, what happened to the
16
+ * first has long scrolled away by the time the last one finishes.
17
+ */
18
+ export class ProjectReport {
19
+ name;
20
+ steps = [];
21
+ /** Set when the project stopped part-way; later steps never ran. */
22
+ aborted;
23
+ constructor(name) {
24
+ this.name = name;
25
+ }
26
+ add(status, label, detail) {
27
+ const step = { status, label, detail };
28
+ this.steps.push(step);
29
+ console.log(line(step, ' '));
30
+ }
31
+ done(label, detail) {
32
+ this.add('done', label, detail);
33
+ }
34
+ skipped(label, detail) {
35
+ this.add('skipped', label, detail);
36
+ }
37
+ warn(label, detail) {
38
+ this.add('warn', label, detail);
39
+ }
40
+ failed(label, detail) {
41
+ this.add('failed', label, detail);
42
+ }
43
+ get status() {
44
+ if (this.aborted || this.steps.some((s) => s.status === 'failed'))
45
+ return 'failed';
46
+ if (this.steps.some((s) => s.status === 'warn'))
47
+ return 'warn';
48
+ return 'done';
49
+ }
50
+ }
51
+ export function printSummary(reports) {
52
+ console.log(`\n${pc.bold('Migration summary')}`);
53
+ for (const report of reports) {
54
+ const count = (status) => report.steps.filter((s) => s.status === status).length;
55
+ const counts = [
56
+ `${count('done')} done`,
57
+ count('skipped') && `${count('skipped')} skipped`,
58
+ count('warn') && `${count('warn')} need attention`,
59
+ count('failed') && `${count('failed')} failed`,
60
+ ]
61
+ .filter(Boolean)
62
+ .join(', ');
63
+ console.log(`\n${ICON[report.status]} ${pc.bold(report.name)} ${pc.dim(counts)}`);
64
+ for (const step of report.steps)
65
+ console.log(line(step, ' '));
66
+ if (report.aborted)
67
+ console.log(` ${ICON.failed} ${pc.red(`stopped: ${report.aborted}`)}`);
68
+ }
69
+ const failed = reports.filter((r) => r.status === 'failed').length;
70
+ const attention = reports.filter((r) => r.status === 'warn').length;
71
+ // A rerun where everything was already there moved nothing; say so rather
72
+ // than counting it as migrated.
73
+ const upToDate = reports.filter((r) => r.status === 'done' && !r.steps.some((s) => s.status === 'done')).length;
74
+ const ok = reports.length - failed - attention - upToDate;
75
+ console.log(`\n${[
76
+ ok && pc.green(`${ok} migrated`),
77
+ upToDate && pc.dim(`${upToDate} already up to date`),
78
+ attention && pc.yellow(`${attention} need attention`),
79
+ failed && pc.red(`${failed} failed`),
80
+ ]
81
+ .filter(Boolean)
82
+ .join(pc.dim(' · '))}`);
83
+ }
84
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/commands/migrate/report.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import type { Command } from 'commander';
2
2
  /**
3
- * `buildatlas submit <buildId>` — pushes a finished .ipa to TestFlight.
3
+ * `buildatlas submit <buildId>` — pushes a finished build to its store.
4
+ *
5
+ * The destination is not asked for: an .ipa goes to TestFlight and an .aab goes to
6
+ * Google Play's internal track, and there is no second sensible answer for either.
7
+ * Both reach testers only; neither puts anything in front of the public.
4
8
  *
5
9
  * Takes a build id rather than inferring the latest build. Submitting is an
6
- * outward-facing act under the company's Apple team, and "the most recent build"
10
+ * outward-facing act under the company's name, and "the most recent build"
7
11
  * is exactly the kind of guess that puts the wrong binary in front of testers.
8
12
  */
9
13
  export declare function registerSubmitCommand(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+E5D"}
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsF5D"}
@@ -9,16 +9,20 @@ const STATUS_COLOR = {
9
9
  };
10
10
  const colour = (status) => (STATUS_COLOR[status] ?? pc.white)(status);
11
11
  /**
12
- * `buildatlas submit <buildId>` — pushes a finished .ipa to TestFlight.
12
+ * `buildatlas submit <buildId>` — pushes a finished build to its store.
13
+ *
14
+ * The destination is not asked for: an .ipa goes to TestFlight and an .aab goes to
15
+ * Google Play's internal track, and there is no second sensible answer for either.
16
+ * Both reach testers only; neither puts anything in front of the public.
13
17
  *
14
18
  * Takes a build id rather than inferring the latest build. Submitting is an
15
- * outward-facing act under the company's Apple team, and "the most recent build"
19
+ * outward-facing act under the company's name, and "the most recent build"
16
20
  * is exactly the kind of guess that puts the wrong binary in front of testers.
17
21
  */
18
22
  export function registerSubmitCommand(program) {
19
23
  program
20
24
  .command('submit <buildId>')
21
- .description('Upload a finished iOS build to TestFlight')
25
+ .description('Upload a finished build to TestFlight (iOS) or Google Play internal (Android)')
22
26
  .option('--no-wait', 'Queue it and exit instead of following the submission')
23
27
  .action(async (buildId, opts) => {
24
28
  const config = await loadConfig();
@@ -28,7 +32,10 @@ export function registerSubmitCommand(program) {
28
32
  return;
29
33
  }
30
34
  try {
31
- const { submission } = await apiRequest(config, `/builds/${buildId}/submissions`, { method: 'POST', token: config.token, body: JSON.stringify({ target: 'appstore' }) });
35
+ const { submission } = await apiRequest(config, `/builds/${buildId}/submissions`,
36
+ // No target: the server picks it from the build's platform, which keeps the
37
+ // two from disagreeing about what an .aab is for.
38
+ { method: 'POST', token: config.token, body: '{}' });
32
39
  console.log(`${pc.green('✔')} queued submission ${pc.dim(submission.id)}`);
33
40
  if (!opts.wait) {
34
41
  console.log(pc.dim(' buildatlas submit-status ' + submission.id));
@@ -36,11 +43,14 @@ export function registerSubmitCommand(program) {
36
43
  }
37
44
  const finished = await follow(config, submission.id);
38
45
  if (finished.status === 'finished') {
39
- console.log(`${pc.green('✔')} accepted by App Store Connect`);
40
- // Apple takes roughly ten minutes to process before a build appears to
41
- // testers, and nothing here can shorten that — say so rather than
42
- // letting someone conclude it failed silently.
43
- console.log(pc.dim(' Apple still has to process it (usually ~10 minutes) before it shows in TestFlight.'));
46
+ const play = finished.target === 'playstore';
47
+ console.log(`${pc.green('✔')} accepted by ${play ? 'Google Play' : 'App Store Connect'}`);
48
+ // Both stores process before testers see anything, and nothing here can
49
+ // shorten it — said out loud rather than letting somebody conclude it
50
+ // failed silently.
51
+ console.log(pc.dim(play
52
+ ? ' Google processes the bundle (usually a few minutes) before it reaches your internal testers.'
53
+ : ' Apple still has to process it (usually ~10 minutes) before it shows in TestFlight.'));
44
54
  }
45
55
  else {
46
56
  console.log(`${pc.red('✖')} ${finished.errorMessage ?? 'submission failed'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
package/dist/prompt.d.ts CHANGED
@@ -48,6 +48,22 @@ export declare class Prompter {
48
48
  }[], opts?: {
49
49
  default?: T;
50
50
  }): Promise<T>;
51
+ /**
52
+ * Checkbox list: arrows (or j/k) move, space toggles, `a` toggles everything,
53
+ * enter confirms.
54
+ *
55
+ * Unlike `select`, a TTY gets real cursor control here — ticking several items
56
+ * by number one at a time is miserable. Piped input still works: it answers
57
+ * with comma-separated numbers (or `all`), the same way CI answers `select`.
58
+ */
59
+ multiSelect<T extends string>(question: string, options: {
60
+ value: T;
61
+ label: string;
62
+ hint?: string;
63
+ }[], opts?: {
64
+ initial?: T[];
65
+ }): Promise<T[]>;
66
+ private multiSelectFromText;
51
67
  confirm(question: string, defaultYes?: boolean): Promise<boolean>;
52
68
  close(): void;
53
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,KAAK,CAAuB;IACpC,QAAQ,CAAC,WAAW,UAAgC;YAEtC,UAAU;YAMV,IAAI;IAYZ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5E;IAED;;;;;;;;;;;;;;OAcG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDjD;IAED;;;;;;OAMG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EACrD,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAO,GACzB,OAAO,CAAC,CAAC,CAAC,CAqBZ;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnE;IAED,KAAK,IAAI,IAAI,CAGZ;CACF;AAED,+EAA+E;AAC/E,wBAAsB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxF"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,KAAK,CAAuB;IACpC,QAAQ,CAAC,WAAW,UAAgC;YAEtC,UAAU;YAMV,IAAI;IAYZ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5E;IAED;;;;;;;;;;;;;;OAcG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDjD;IAED;;;;;;OAMG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EACrD,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;KAAO,GACzB,OAAO,CAAC,CAAC,CAAC,CAqBZ;IAED;;;;;;;OAOG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EACrD,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,CA+Gd;YAEa,mBAAmB;IA8B3B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnE;IAED,KAAK,IAAI,IAAI,CAGZ;CACF;AAED,+EAA+E;AAC/E,wBAAsB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxF"}
package/dist/prompt.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { emitKeypressEvents } from 'node:readline';
1
2
  import { createInterface } from 'node:readline/promises';
2
3
  import pc from 'picocolors';
3
4
  /**
@@ -133,6 +134,148 @@ export class Prompter {
133
134
  }
134
135
  throw new Error('No valid selection.');
135
136
  }
137
+ /**
138
+ * Checkbox list: arrows (or j/k) move, space toggles, `a` toggles everything,
139
+ * enter confirms.
140
+ *
141
+ * Unlike `select`, a TTY gets real cursor control here — ticking several items
142
+ * by number one at a time is miserable. Piped input still works: it answers
143
+ * with comma-separated numbers (or `all`), the same way CI answers `select`.
144
+ */
145
+ async multiSelect(question, options, opts = {}) {
146
+ if (options.length === 0)
147
+ return [];
148
+ if (!this.interactive)
149
+ return this.multiSelectFromText(question, options, opts.initial ?? []);
150
+ // readline and a raw-mode reader cannot both own stdin, same as askHidden.
151
+ this.close();
152
+ const selected = new Set(opts.initial ?? []);
153
+ const width = Math.max(...options.map((o) => o.label.length));
154
+ // Leave room for the question, the help line and a scroll hint, so a long
155
+ // account never pushes the list off the top of the screen where redrawing
156
+ // in place can no longer reach it.
157
+ const windowSize = Math.max(3, Math.min(options.length, (process.stdout.rows ?? 24) - 4));
158
+ let cursor = 0;
159
+ let top = 0;
160
+ let drawnLines = 0;
161
+ let message = '';
162
+ const draw = () => {
163
+ if (cursor < top)
164
+ top = cursor;
165
+ if (cursor >= top + windowSize)
166
+ top = cursor - windowSize + 1;
167
+ const lines = [];
168
+ for (let i = top; i < top + windowSize && i < options.length; i++) {
169
+ const o = options[i];
170
+ const pointer = i === cursor ? pc.cyan('❯') : ' ';
171
+ const box = selected.has(o.value) ? pc.green('◉') : pc.dim('○');
172
+ const label = i === cursor ? pc.bold(o.label.padEnd(width)) : o.label.padEnd(width);
173
+ const hint = o.hint ? pc.dim(` ${o.hint}`) : '';
174
+ lines.push(`${pointer} ${box} ${label}${hint}`);
175
+ }
176
+ const above = top > 0 ? `${top} more above` : '';
177
+ const below = options.length - (top + windowSize) > 0 ? `${options.length - (top + windowSize)} more below` : '';
178
+ lines.push(pc.dim([`${selected.size} selected`, above, below, 'space toggle · a all · enter confirm']
179
+ .filter(Boolean)
180
+ .join(' · ')) + (message ? ` ${pc.red(message)}` : ''));
181
+ if (drawnLines > 0)
182
+ process.stdout.write(`\x1b[${drawnLines}A`);
183
+ for (const line of lines)
184
+ process.stdout.write(`\x1b[2K${line}\n`);
185
+ drawnLines = lines.length;
186
+ };
187
+ console.log(`\n${pc.bold(question)}`);
188
+ process.stdout.write('\x1b[?25l');
189
+ draw();
190
+ return new Promise((resolve, reject) => {
191
+ const stdin = process.stdin;
192
+ const cleanup = () => {
193
+ stdin.removeListener('keypress', onKey);
194
+ stdin.setRawMode(false);
195
+ // Paused, unlike askHidden: nothing may read stdin again for the rest of
196
+ // the run, and a flowing stdin would keep the process alive after the
197
+ // last step. A later ask() resumes it through its own readline.
198
+ stdin.pause();
199
+ process.stdout.write('\x1b[?25h');
200
+ };
201
+ const onKey = (_str, key) => {
202
+ message = '';
203
+ switch (key?.name) {
204
+ case 'up':
205
+ case 'k':
206
+ cursor = (cursor - 1 + options.length) % options.length;
207
+ break;
208
+ case 'down':
209
+ case 'j':
210
+ cursor = (cursor + 1) % options.length;
211
+ break;
212
+ case 'space': {
213
+ const value = options[cursor].value;
214
+ if (selected.has(value))
215
+ selected.delete(value);
216
+ else
217
+ selected.add(value);
218
+ break;
219
+ }
220
+ case 'a':
221
+ if (selected.size === options.length)
222
+ selected.clear();
223
+ else
224
+ for (const o of options)
225
+ selected.add(o.value);
226
+ break;
227
+ case 'return':
228
+ case 'enter':
229
+ if (selected.size === 0) {
230
+ message = 'Select at least one with space.';
231
+ break;
232
+ }
233
+ cleanup();
234
+ resolve(options.filter((o) => selected.has(o.value)).map((o) => o.value));
235
+ return;
236
+ case 'c':
237
+ if (key.ctrl) {
238
+ cleanup();
239
+ reject(new Error('Cancelled'));
240
+ return;
241
+ }
242
+ break;
243
+ default:
244
+ break;
245
+ }
246
+ draw();
247
+ };
248
+ emitKeypressEvents(stdin);
249
+ stdin.setRawMode(true);
250
+ stdin.resume();
251
+ stdin.on('keypress', onKey);
252
+ });
253
+ }
254
+ async multiSelectFromText(question, options, initial) {
255
+ console.log(`\n${pc.bold(question)}`);
256
+ for (const [i, o] of options.entries()) {
257
+ const hint = o.hint ? pc.dim(` ${o.hint}`) : '';
258
+ console.log(` ${pc.cyan(String(i + 1))}) ${o.label}${hint}`);
259
+ }
260
+ const fallback = initial.length
261
+ ? initial.map((v) => String(options.findIndex((o) => o.value === v) + 1)).join(',')
262
+ : '1';
263
+ for (let attempt = 0; attempt < 5; attempt++) {
264
+ const answer = await this.ask('Choose (comma-separated numbers, or "all")', { default: fallback });
265
+ if (answer.toLowerCase() === 'all')
266
+ return options.map((o) => o.value);
267
+ const picked = answer
268
+ .split(',')
269
+ .map((part) => part.trim())
270
+ .filter(Boolean)
271
+ .map((part) => options[Number(part) - 1] ?? options.find((o) => o.value === part));
272
+ if (picked.length && picked.every(Boolean)) {
273
+ return [...new Set(picked.map((o) => o.value))];
274
+ }
275
+ console.log(pc.red(` Enter numbers between 1 and ${options.length}, separated by commas.`));
276
+ }
277
+ throw new Error('No valid selection.');
278
+ }
136
279
  async confirm(question, defaultYes = true) {
137
280
  const answer = await this.ask(`${question} ${pc.dim(defaultYes ? '(Y/n)' : '(y/N)')}`, {
138
281
  default: defaultYes ? 'y' : 'n',
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAsBpF"}
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwBpF"}
package/dist/spinner.js CHANGED
@@ -28,7 +28,9 @@ export async function withSpinner(label, fn) {
28
28
  }
29
29
  finally {
30
30
  clearInterval(timer);
31
- process.stdout.write(`\r${' '.repeat(WORD.length + 2 + label.length)}\r`);
31
+ // Erase the line outright rather than overwriting it with spaces, which left
32
+ // trailing blanks behind every line printed after a spinner.
33
+ process.stdout.write('\r\x1b[2K');
32
34
  process.stdout.write('[?25h');
33
35
  }
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,IAAI,GAAG,OAAO,CAAC;AAErB,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,KAAa,EAAE,EAAoB;IACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,CAAC;IAEvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjF,MAAM,EAAE,CAAC;IACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,KAAK,IAAI,SAAS,CAAC;QACnB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,IAAI,GAAG,OAAO,CAAC;AAErB,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,KAAa,EAAE,EAAoB;IACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,CAAC;IAEvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjF,MAAM,EAAE,CAAC;IACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,KAAK,IAAI,SAAS,CAAC;QACnB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,6EAA6E;QAC7E,6DAA6D;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ship-et/buildatlas-cli",
3
- "version": "0.14.0",
3
+ "version": "0.14.2-beta.2",
4
4
  "description": "CLI for BuildAtlas — self-hosted Expo builds and OTA updates. Drop-in for `eas build`.",
5
5
  "license": "MIT",
6
6
  "author": "Digicom",