runcloud 0.2.141 → 0.2.143

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.
@@ -312,6 +312,12 @@ function assertInteraction(interaction, timeoutMs) {
312
312
  throw new Error('Gesture delays cannot exceed --timeout');
313
313
  return;
314
314
  }
315
+ case 'getClipboard':
316
+ return;
317
+ case 'setClipboard':
318
+ if (interaction.text.length > 100_000)
319
+ throw new Error('clipboard text must contain at most 100000 UTF-16 code units');
320
+ return;
315
321
  case 'typeText':
316
322
  if (interaction.text.length < 1 || interaction.text.length > 10_000) {
317
323
  throw new Error('text must contain from 1 to 10000 characters');
@@ -944,7 +950,7 @@ async function createSimulatorSession(platform, opts) {
944
950
  .filter((id) => typeof id === 'string' && id.length > 0),
945
951
  ];
946
952
  return await client().post(`/run-cloud/${platform}`, {
947
- ...(platform === 'android' ? { expoSdkProfile: opts.expoSdkProfile } : {}),
953
+ ...(platform === 'android' ? { expoSdkProfile: opts.expoSdkProfile ?? 'expo-54' } : {}),
948
954
  ...(opts.orgId ? { orgId: opts.orgId } : {}),
949
955
  model: opts.model,
950
956
  region: opts.region,
@@ -1036,7 +1042,7 @@ function registerSimulatorCommands(program, platform) {
1036
1042
  .option('--json', 'output JSON', false)
1037
1043
  .addOption(new Option('--dev-host <host>', 'dev-only: target a specific simulator fleet host').hideHelp());
1038
1044
  if (platform === 'android') {
1039
- createCommand.addOption(new Option('--expo-sdk-profile <profile>', 'required immutable Expo SDK capacity profile').choices(['expo-54', 'expo-57']).makeOptionMandatory());
1045
+ createCommand.addOption(new Option('--expo-sdk-profile <profile>', 'preinstalled Expo Go version; omit when installing a custom APK').choices(['expo-54']));
1040
1046
  }
1041
1047
  createCommand
1042
1048
  .action((opts) => action(async () => {
@@ -1106,6 +1112,13 @@ function registerSimulatorCommands(program, platform) {
1106
1112
  action: 'gesture',
1107
1113
  steps: parseSimulatorGestureSteps(opts.steps, interactionTimeout(opts)),
1108
1114
  }, opts), opts));
1115
+ addInteractionOptions(simulator.command('get-clipboard')
1116
+ .description('Read text from the selected simulator clipboard')
1117
+ .argument('<id>', 'session id')).action((id, opts) => action(() => runSimulatorInteraction(platform, id, { action: 'getClipboard' }, opts), opts));
1118
+ addInteractionOptions(simulator.command('set-clipboard')
1119
+ .description('Write Unicode text to the selected simulator clipboard')
1120
+ .argument('<id>', 'session id')
1121
+ .argument('<text>', 'clipboard text, including empty or multiline text')).action((id, text, opts) => action(() => runSimulatorInteraction(platform, id, { action: 'setClipboard', text }, opts), opts));
1109
1122
  addInteractionOptions(simulator
1110
1123
  .command('type-text')
1111
1124
  .description(`Type US ASCII text into ${article} ${label} session`)
@@ -1648,7 +1661,7 @@ export function registerRunCloud(program) {
1648
1661
  .option('--inactivity-timeout <duration>', 'idle timeout such as 60s, 3m, or none')
1649
1662
  .option('--hard-timeout <duration>', 'maximum lifetime such as 10m or 1h')
1650
1663
  .option('--codec <auto|mjpeg|webrtc>', 'viewer codec', 'auto')
1651
- .addOption(new Option('--expo-sdk-profile <profile>', 'required for Android: immutable Expo SDK capacity profile').choices(['expo-54', 'expo-57']))
1664
+ .addOption(new Option('--expo-sdk-profile <profile>', 'preinstalled Expo Go version; omit when launching a custom APK').choices(['expo-54']))
1652
1665
  .option('--json', 'output JSON', false)
1653
1666
  .action((opts) => action(async () => {
1654
1667
  if (Boolean(opts.asset) === Boolean(opts.build)) {
@@ -1657,9 +1670,6 @@ export function registerRunCloud(program) {
1657
1670
  if (opts.platform !== 'ios' && opts.platform !== 'android') {
1658
1671
  throw new Error('--platform must be ios or android');
1659
1672
  }
1660
- if (opts.platform === 'android' && !opts.expoSdkProfile) {
1661
- throw new Error('--expo-sdk-profile is required when --platform android');
1662
- }
1663
1673
  if (opts.platform === 'ios' && opts.expoSdkProfile) {
1664
1674
  throw new Error('--expo-sdk-profile is supported only when --platform android');
1665
1675
  }
@@ -1668,7 +1678,7 @@ export function registerRunCloud(program) {
1668
1678
  platform: opts.platform,
1669
1679
  ...(opts.orgId ? { orgId: opts.orgId } : {}),
1670
1680
  session: {
1671
- ...(opts.platform === 'android' ? { expoSdkProfile: opts.expoSdkProfile } : {}),
1681
+ ...(opts.platform === 'android' ? { expoSdkProfile: opts.expoSdkProfile ?? 'expo-54' } : {}),
1672
1682
  ...(opts.model ? { model: opts.model } : {}),
1673
1683
  ...(opts.region ? { region: opts.region } : {}),
1674
1684
  ...(opts.displayName ? { displayName: opts.displayName } : {}),
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const CLI_VERSION = '0.2.141';
1
+ export const CLI_VERSION = '0.2.143';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runcloud",
3
- "version": "0.2.141",
3
+ "version": "0.2.143",
4
4
  "description": "Create and control run.cloud remote mobile simulators and cloud sandboxes",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
index 9ec1305..7886bd7 100644
Binary file