@newly/cli 0.1.112 → 0.1.114

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.
@@ -736,6 +736,9 @@ async function createSimulatorSession(platform, opts) {
736
736
  function registerSimulatorCommands(program, platform) {
737
737
  const label = platform === 'android' ? 'Android emulator' : 'iOS simulator';
738
738
  const article = platform === 'android' ? 'an' : 'an';
739
+ const orientationHelp = platform === 'ios'
740
+ ? 'portrait, landscape_left, or landscape_right; portrait_upside_down returns unsupported_action on iPhone Simulator sessions'
741
+ : 'portrait, portrait_upside_down, landscape_left, or landscape_right';
739
742
  const simulator = program
740
743
  .command(platform)
741
744
  .description(`Create, inspect, interact with, capture, and release ${label} sessions`);
@@ -864,7 +867,7 @@ function registerSimulatorCommands(program, platform) {
864
867
  .command('rotate')
865
868
  .description(`Set the absolute display orientation for ${article} ${label} session`)
866
869
  .argument('<id>', 'session id')
867
- .argument('<orientation>', 'portrait, portrait_upside_down, landscape_left, or landscape_right')).action((id, rawOrientation, opts) => action(() => runSimulatorInteraction(platform, id, {
870
+ .argument('<orientation>', orientationHelp)).action((id, rawOrientation, opts) => action(() => runSimulatorInteraction(platform, id, {
868
871
  action: 'rotate',
869
872
  orientation: simulatorOrientation(rawOrientation),
870
873
  }, opts), opts));
@@ -320,6 +320,7 @@ export function registerSandbox(program) {
320
320
  .option('--secret <group/name>', 'attach one secret out of a group; repeatable, same ordering', collectRepeatable, [])
321
321
  .option('--env <NAME=VALUE>', 'literal value for this sandbox; applied last, so it wins; repeatable', collectRepeatable, [])
322
322
  .option('--no-secrets', 'state explicitly that the sandbox holds no secrets')
323
+ .option('--tag <key=value>', 'tag the sandbox at create; repeatable. Tag it with whatever id you will have in hand later: that is how you find it again, and tags outlive the sandbox', collectRepeatable, [])
323
324
  .option('--no-wait', 'return before the sandbox finishes building and starting')).action((opts) => run(async () => {
324
325
  const exposed = opts.expose !== undefined;
325
326
  if (exposed && !opts.name) {
@@ -351,6 +352,9 @@ export function registerSandbox(program) {
351
352
  body.idlePauseSeconds = 0;
352
353
  else if (opts.idlePause !== undefined)
353
354
  body.idlePauseSeconds = opts.idlePause;
355
+ const tags = Object.fromEntries(parseTagPairs(opts.tag ?? []));
356
+ if (Object.keys(tags).length > 0)
357
+ body.tags = tags;
354
358
  Object.assign(body, secretSelector({ ...opts, noSecrets: opts.secrets === false }));
355
359
  const api = runCloudApi();
356
360
  let created = (await api.post('/run-cloud/sandboxes', body));
@@ -36,6 +36,7 @@ export function renderSandbox(record, verb = 'details') {
36
36
  { label: 'ID', value: record.id },
37
37
  { label: 'Name', value: record.name },
38
38
  { label: 'State', value: formatState(record.state) },
39
+ { label: 'Last error', value: record.last_error ?? undefined },
39
40
  { label: 'Image', value: record.image },
40
41
  { label: 'Resources', value: resources(record) },
41
42
  { label: 'Idle pause', value: formatSeconds(record.idle_pause_seconds) },
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const CLI_VERSION = '0.1.112';
1
+ export const CLI_VERSION = '0.1.114';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newly/cli",
3
- "version": "0.1.112",
3
+ "version": "0.1.114",
4
4
  "description": "Develop, provision, and deploy Newly backends from your terminal",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",