lim 0.33.1 → 0.34.0

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 (64) hide show
  1. package/README.md +50 -25
  2. package/dist/base-command.d.ts +3 -3
  3. package/dist/base-command.d.ts.map +1 -1
  4. package/dist/base-command.js +37 -26
  5. package/dist/base-command.js.map +1 -1
  6. package/dist/base-command.xcode-selection.test.js +27 -0
  7. package/dist/base-command.xcode-selection.test.js.map +1 -1
  8. package/dist/commands/android/list.js +1 -1
  9. package/dist/commands/android/list.js.map +1 -1
  10. package/dist/commands/gradle/sync.d.ts +25 -0
  11. package/dist/commands/gradle/sync.d.ts.map +1 -0
  12. package/dist/commands/gradle/sync.js +90 -0
  13. package/dist/commands/gradle/sync.js.map +1 -0
  14. package/dist/commands/ios/create.js +1 -1
  15. package/dist/commands/ios/create.js.map +1 -1
  16. package/dist/commands/ios/fold.d.ts +21 -0
  17. package/dist/commands/ios/fold.d.ts.map +1 -0
  18. package/dist/commands/ios/fold.js +54 -0
  19. package/dist/commands/ios/fold.js.map +1 -0
  20. package/dist/commands/ios/fold.test.d.ts +2 -0
  21. package/dist/commands/ios/fold.test.d.ts.map +1 -0
  22. package/dist/commands/ios/fold.test.js +78 -0
  23. package/dist/commands/ios/fold.test.js.map +1 -0
  24. package/dist/commands/ios/list.js +1 -1
  25. package/dist/commands/ios/list.js.map +1 -1
  26. package/dist/commands/ios/screenshot.d.ts +1 -0
  27. package/dist/commands/ios/screenshot.d.ts.map +1 -1
  28. package/dist/commands/ios/screenshot.js +9 -2
  29. package/dist/commands/ios/screenshot.js.map +1 -1
  30. package/dist/commands/ios/tap.d.ts +1 -0
  31. package/dist/commands/ios/tap.d.ts.map +1 -1
  32. package/dist/commands/ios/tap.js +9 -2
  33. package/dist/commands/ios/tap.js.map +1 -1
  34. package/dist/commands/xcode/create.d.ts.map +1 -1
  35. package/dist/commands/xcode/create.js +3 -2
  36. package/dist/commands/xcode/create.js.map +1 -1
  37. package/dist/commands/xcode/version/index.d.ts.map +1 -1
  38. package/dist/commands/xcode/version/index.js +4 -4
  39. package/dist/commands/xcode/version/index.js.map +1 -1
  40. package/dist/commands/xcode/version/list.d.ts.map +1 -1
  41. package/dist/commands/xcode/version/list.js +11 -7
  42. package/dist/commands/xcode/version/list.js.map +1 -1
  43. package/dist/commands/xcode/version/set.d.ts +1 -1
  44. package/dist/commands/xcode/version/set.d.ts.map +1 -1
  45. package/dist/commands/xcode/version/set.js +13 -7
  46. package/dist/commands/xcode/version/set.js.map +1 -1
  47. package/dist/commands/xcode/version/unset.d.ts.map +1 -1
  48. package/dist/commands/xcode/version/unset.js +3 -2
  49. package/dist/commands/xcode/version/unset.js.map +1 -1
  50. package/dist/lib/build-use-command.js +6 -6
  51. package/dist/lib/build-use-command.js.map +1 -1
  52. package/dist/lib/build-use-command.test.js +8 -2
  53. package/dist/lib/build-use-command.test.js.map +1 -1
  54. package/dist/lib/config.d.ts +2 -2
  55. package/dist/lib/config.d.ts.map +1 -1
  56. package/dist/lib/config.js +5 -4
  57. package/dist/lib/config.js.map +1 -1
  58. package/dist/lib/xcode-version.d.ts +34 -9
  59. package/dist/lib/xcode-version.d.ts.map +1 -1
  60. package/dist/lib/xcode-version.js +72 -17
  61. package/dist/lib/xcode-version.js.map +1 -1
  62. package/dist/lib/xcode-version.test.js +54 -10
  63. package/dist/lib/xcode-version.test.js.map +1 -1
  64. package/package.json +4 -4
@@ -1,18 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.xcodeTargetFlags = exports.xcodeVersionFlags = void 0;
4
- exports.parseXcodeMajor = parseXcodeMajor;
3
+ exports.XCODE_SELECTOR_PATTERN = exports.xcodeTargetFlags = exports.xcodeVersionFlags = void 0;
4
+ exports.parseXcodeVersion = parseXcodeVersion;
5
5
  exports.resolveRequestedXcodeVersion = resolveRequestedXcodeVersion;
6
+ exports.xcodeSelectorFor = xcodeSelectorFor;
7
+ exports.preferenceSelects = preferenceSelects;
6
8
  exports.formatXcodeVersion = formatXcodeVersion;
7
9
  exports.formatXcode = formatXcode;
8
10
  const core_1 = require("@oclif/core");
9
11
  const config_1 = require("./config");
10
- /** The one-shot Xcode major override shared by create, build, test and rbe. */
12
+ /** The one-shot Xcode selection shared by create, build, test and rbe. */
11
13
  exports.xcodeVersionFlags = {
12
14
  'xcode-version': core_1.Flags.string({
13
- description: 'Xcode major to build with for this invocation, e.g. 27 (see `lim xcode version list`). Overrides the ' +
14
- 'workspace preference set with `lim xcode version set` without changing it. Switching invalidates the build cache from the other version, so the next build starts cold.',
15
- helpValue: '<major>',
15
+ description: "Xcode to build with for this invocation: a major such as 27 (that major's GA release) or a major.minor such as " +
16
+ '27.1 (an exact version, typically a beta); see `lim xcode version list`. Overrides the workspace preference set ' +
17
+ 'with `lim xcode version set` without changing it. Switching invalidates the build cache from the other version, ' +
18
+ 'so the next build starts cold.',
19
+ helpValue: '<major|major.minor>',
16
20
  }),
17
21
  };
18
22
  /** Target selection for the `version` commands: an explicit sandbox, never an auto-created one. */
@@ -21,27 +25,78 @@ exports.xcodeTargetFlags = {
21
25
  description: 'Xcode instance ID to target. Defaults to the most recently created Xcode-capable target.',
22
26
  }),
23
27
  };
24
- const majorPattern = /^\d+$/;
25
- /** Rejects anything but a bare major such as "27", before any network call. */
26
- function parseXcodeMajor(value, source = '--xcode-version') {
27
- if (!majorPattern.test(value)) {
28
- throw new Error(`${source} takes an Xcode major such as 27 (got ${JSON.stringify(value)})`);
28
+ /**
29
+ * What the daemon accepts: a bare major ("27", resolves to that major's GA) or a major.minor
30
+ * ("27.1", an exact version). Shared with the saved workspace preference so a value that passes
31
+ * here is never dropped on read.
32
+ */
33
+ exports.XCODE_SELECTOR_PATTERN = /^\d+(\.\d+)?$/;
34
+ /** Rejects anything but a major or major.minor such as "27" or "27.1", before any network call. */
35
+ function parseXcodeVersion(value, source = '--xcode-version') {
36
+ if (!exports.XCODE_SELECTOR_PATTERN.test(value)) {
37
+ throw new Error(`${source} takes an Xcode major such as 27 or major.minor such as 27.1 (got ${JSON.stringify(value)})`);
29
38
  }
30
39
  return value;
31
40
  }
32
41
  /**
33
- * The Xcode major a command should make its sandbox use: the flag when given, else the
34
- * workspace preference, else nothing (the sandbox keeps its selected Xcode).
42
+ * The Xcode a command should make its sandbox use: the flag when given, else the workspace
43
+ * preference, else nothing (the sandbox keeps its selected Xcode).
35
44
  */
36
45
  function resolveRequestedXcodeVersion(flag) {
37
46
  if (flag)
38
- return { major: parseXcodeMajor(flag), source: 'flag' };
47
+ return { version: parseXcodeVersion(flag), source: 'flag' };
39
48
  const preferred = (0, config_1.loadXcodeVersionPreference)();
40
- return preferred ? { major: preferred, source: 'workspace' } : undefined;
49
+ return preferred ? { version: preferred, source: 'workspace' } : undefined;
41
50
  }
42
- /** "27.0 (27A5252f)", or "27.0 beta 6 (27A5252f)" for a beta seed. */
51
+ /**
52
+ * The value a user types to select this Xcode. The daemon binds a bare major to the newest GA
53
+ * of that major, so that one Xcode is selected by its major; every other Xcode, a beta or an
54
+ * older GA kept beside a newer one, needs its exact version. Daemons that predate the channel
55
+ * report none and carry one Xcode per major, so the major selects it there too.
56
+ */
57
+ function xcodeSelectorFor(info, installed) {
58
+ if (info.channel === 'beta')
59
+ return info.version;
60
+ const newestGA = installed
61
+ .filter((x) => x.major === info.major && x.channel !== 'beta')
62
+ .sort((a, b) => compareVersions(b.version, a.version))[0];
63
+ return !newestGA || newestGA.developerDir === info.developerDir ? info.major : info.version;
64
+ }
65
+ /**
66
+ * Whether a saved preference names the sandbox's bound Xcode: a bare major matches the GA it
67
+ * would bind, a major.minor matches that exact version.
68
+ */
69
+ function preferenceSelects(preferred, bound, installed) {
70
+ if (preferred.includes('.'))
71
+ return normalizeMinor(bound.version) === normalizeMinor(preferred);
72
+ return xcodeSelectorFor(bound, installed) === preferred;
73
+ }
74
+ /** "27" and "27.0" name one minor; "26.4.1" belongs to "26.4". */
75
+ function normalizeMinor(version) {
76
+ const [major, minor = '0'] = version.split('.');
77
+ return `${Number(major)}.${Number(minor)}`;
78
+ }
79
+ /** Numeric, component by component, so "26.10" sorts after "26.4". */
80
+ function compareVersions(a, b) {
81
+ const as = a.split('.').map(Number);
82
+ const bs = b.split('.').map(Number);
83
+ for (let i = 0; i < Math.max(as.length, bs.length); i++) {
84
+ const diff = (as[i] ?? 0) - (bs[i] ?? 0);
85
+ if (diff !== 0)
86
+ return diff;
87
+ }
88
+ return 0;
89
+ }
90
+ /**
91
+ * "27.0 (27A5252f)", "27.0 beta 6 (27A5252f)" for a seed with a number, "27.1 beta (27A9269)"
92
+ * for a beta without one: the word appears wherever a beta is shown or selected, since the
93
+ * version alone does not say so.
94
+ */
43
95
  function formatXcodeVersion(info) {
44
- return `${info.version}${info.betaSeed ? ` beta ${info.betaSeed}` : ''} (${info.build})`;
96
+ const beta = info.betaSeed ? ` beta ${info.betaSeed}`
97
+ : info.channel === 'beta' ? ' beta'
98
+ : '';
99
+ return `${info.version}${beta} (${info.build})`;
45
100
  }
46
101
  /** formatXcodeVersion plus the node-default mark, falling back to the version key on nodes that report only that. */
47
102
  function formatXcode(info) {
@@ -1 +1 @@
1
- {"version":3,"file":"xcode-version.js","sourceRoot":"","sources":["../../src/lib/xcode-version.ts"],"names":[],"mappings":";;;AAwBA,0CAKC;AASD,oEAIC;AAGD,gDAEC;AAGD,kCAMC;AAxDD,sCAAoC;AAEpC,qCAAsD;AAEtD,+EAA+E;AAClE,QAAA,iBAAiB,GAAG;IAC/B,eAAe,EAAE,YAAK,CAAC,MAAM,CAAC;QAC5B,WAAW,EACT,uGAAuG;YACvG,yKAAyK;QAC3K,SAAS,EAAE,SAAS;KACrB,CAAC;CACH,CAAC;AAEF,mGAAmG;AACtF,QAAA,gBAAgB,GAAG;IAC9B,EAAE,EAAE,YAAK,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,0FAA0F;KACxG,CAAC;CACH,CAAC;AAEF,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,+EAA+E;AAC/E,SAAgB,eAAe,CAAC,KAAa,EAAE,MAAM,GAAG,iBAAiB;IACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,IAAwB;IACnE,IAAI,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,IAAA,mCAA0B,GAAE,CAAC;IAC/C,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,sEAAsE;AACtE,SAAgB,kBAAkB,CAAC,IAAuD;IACxF,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC;AAC3F,CAAC;AAED,qHAAqH;AACrH,SAAgB,WAAW,CAAC,IAA2B;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,2CAA2C,CAAC;IAC9D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"xcode-version.js","sourceRoot":"","sources":["../../src/lib/xcode-version.ts"],"names":[],"mappings":"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"}
@@ -4,33 +4,77 @@ const xcode_version_1 = require("./xcode-version");
4
4
  const config_1 = require("./config");
5
5
  jest.mock('./config', () => ({ loadXcodeVersionPreference: jest.fn() }));
6
6
  const config = { loadXcodeVersionPreference: config_1.loadXcodeVersionPreference };
7
- describe('parseXcodeMajor', () => {
8
- test('accepts a bare major', () => {
9
- expect((0, xcode_version_1.parseXcodeMajor)('27')).toBe('27');
7
+ describe('parseXcodeVersion', () => {
8
+ test.each(['27', '27.0', '27.1'])('accepts %j', (value) => {
9
+ expect((0, xcode_version_1.parseXcodeVersion)(value)).toBe(value);
10
10
  });
11
- test.each(['27.0', 'Xcode 27', '', '27a'])('rejects %j', (value) => {
12
- expect(() => (0, xcode_version_1.parseXcodeMajor)(value)).toThrow('--xcode-version takes an Xcode major such as 27');
11
+ test.each(['27.1.2', '27.', '.1', 'Xcode 27', '', '27a'])('rejects %j', (value) => {
12
+ expect(() => (0, xcode_version_1.parseXcodeVersion)(value)).toThrow('--xcode-version takes an Xcode major such as 27 or major.minor such as 27.1');
13
13
  });
14
14
  test('names the caller in the error', () => {
15
- expect(() => (0, xcode_version_1.parseXcodeMajor)('27.0', 'version set')).toThrow('version set takes an Xcode major such as 27');
15
+ expect(() => (0, xcode_version_1.parseXcodeVersion)('27.0.1', 'version set')).toThrow('version set takes an Xcode major such as 27 or major.minor such as 27.1');
16
16
  });
17
17
  });
18
18
  describe('resolveRequestedXcodeVersion', () => {
19
19
  afterEach(() => config.loadXcodeVersionPreference.mockReset());
20
20
  test('the flag wins over the workspace preference and is not remembered', () => {
21
21
  config.loadXcodeVersionPreference.mockReturnValue('27');
22
- expect((0, xcode_version_1.resolveRequestedXcodeVersion)('26')).toEqual({ major: '26', source: 'flag' });
22
+ expect((0, xcode_version_1.resolveRequestedXcodeVersion)('26')).toEqual({ version: '26', source: 'flag' });
23
23
  });
24
24
  test('falls back to the workspace preference', () => {
25
- config.loadXcodeVersionPreference.mockReturnValue('27');
26
- expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toEqual({ major: '27', source: 'workspace' });
25
+ config.loadXcodeVersionPreference.mockReturnValue('27.1');
26
+ expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toEqual({ version: '27.1', source: 'workspace' });
27
27
  });
28
28
  test('asks for nothing when neither is set, so the sandbox keeps its binding', () => {
29
29
  config.loadXcodeVersionPreference.mockReturnValue(null);
30
30
  expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toBeUndefined();
31
31
  });
32
32
  test('rejects a malformed flag before any network call', () => {
33
- expect(() => (0, xcode_version_1.resolveRequestedXcodeVersion)('27.0')).toThrow('--xcode-version takes an Xcode major');
33
+ expect(() => (0, xcode_version_1.resolveRequestedXcodeVersion)('27.0.1')).toThrow('--xcode-version takes an Xcode major');
34
+ });
35
+ });
36
+ const ga26 = { major: '26', version: '26.4', channel: 'ga', developerDir: '/x/26.4' };
37
+ const ga27 = { major: '27', version: '27.0', channel: 'ga', developerDir: '/x/27.0' };
38
+ const beta271 = { major: '27', version: '27.1', channel: 'beta', developerDir: '/x/27.1' };
39
+ const ga271 = { major: '27', version: '27.1', channel: 'ga', developerDir: '/x/27.1' };
40
+ const legacy27 = { major: '27', version: '27.0', developerDir: '/x/27.0' };
41
+ const fleet = [ga26, ga27, beta271];
42
+ describe('xcodeSelectorFor', () => {
43
+ test('a GA is selected by its bare major, a beta by its version', () => {
44
+ expect((0, xcode_version_1.xcodeSelectorFor)(ga27, fleet)).toBe('27');
45
+ expect((0, xcode_version_1.xcodeSelectorFor)(beta271, fleet)).toBe('27.1');
46
+ });
47
+ test('with two GAs of one major only the newest answers to the bare major', () => {
48
+ const twoGAs = [ga26, ga27, ga271];
49
+ expect((0, xcode_version_1.xcodeSelectorFor)(ga271, twoGAs)).toBe('27');
50
+ expect((0, xcode_version_1.xcodeSelectorFor)(ga27, twoGAs)).toBe('27.0');
51
+ });
52
+ test('a daemon without channels carries one Xcode per major, so the major selects it', () => {
53
+ expect((0, xcode_version_1.xcodeSelectorFor)(legacy27, [ga26, legacy27])).toBe('27');
54
+ });
55
+ });
56
+ describe('preferenceSelects', () => {
57
+ test('a bare major names the GA it would bind, never a beta', () => {
58
+ expect((0, xcode_version_1.preferenceSelects)('27', ga27, fleet)).toBe(true);
59
+ expect((0, xcode_version_1.preferenceSelects)('27', beta271, fleet)).toBe(false);
60
+ expect((0, xcode_version_1.preferenceSelects)('26', ga27, fleet)).toBe(false);
61
+ expect((0, xcode_version_1.preferenceSelects)('27', ga27, [ga26, ga27, ga271])).toBe(false);
62
+ });
63
+ test('a major.minor names that exact minor', () => {
64
+ expect((0, xcode_version_1.preferenceSelects)('27.1', beta271, fleet)).toBe(true);
65
+ expect((0, xcode_version_1.preferenceSelects)('27.1', ga27, fleet)).toBe(false);
66
+ expect((0, xcode_version_1.preferenceSelects)('27.0', ga27, fleet)).toBe(true);
67
+ expect((0, xcode_version_1.preferenceSelects)('26.4', { ...ga26, version: '26.4.1' }, fleet)).toBe(true);
68
+ });
69
+ test('on a daemon without channels a bare major matches its one Xcode of that major', () => {
70
+ expect((0, xcode_version_1.preferenceSelects)('27', legacy27, [ga26, legacy27])).toBe(true);
71
+ });
72
+ });
73
+ describe('formatXcodeVersion', () => {
74
+ test('names a beta whether or not Apple numbered the seed', () => {
75
+ expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.0', build: '27A5252f', betaSeed: '6', channel: 'beta' })).toBe('27.0 beta 6 (27A5252f)');
76
+ expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.1', build: '27A9269', channel: 'beta' })).toBe('27.1 beta (27A9269)');
77
+ expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.0', build: '27A266a', channel: 'ga' })).toBe('27.0 (27A266a)');
34
78
  });
35
79
  });
36
80
  describe('formatXcode', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"xcode-version.test.js","sourceRoot":"","sources":["../../src/lib/xcode-version.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xcode-version.test.js","sourceRoot":"","sources":["../../src/lib/xcode-version.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lim",
3
- "version": "0.33.1",
3
+ "version": "0.34.0",
4
4
  "description": "Use remote XCode, Gradle, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
5
5
  "bin": {
6
6
  "lim": "./bin/run.js"
@@ -25,7 +25,7 @@
25
25
  "test": "jest"
26
26
  },
27
27
  "dependencies": {
28
- "@limrun/api": "^0.50.1",
28
+ "@limrun/api": "0.53.0",
29
29
  "@oclif/core": "^4",
30
30
  "cli-progress": "^3.12.0",
31
31
  "cli-table3": "^0.6.5",
@@ -63,10 +63,10 @@
63
63
  "description": "Upload, download, list, inspect, and delete files that can be used by iOS & Android as pre-installed apps: push, pull, list, delete"
64
64
  },
65
65
  "gradle": {
66
- "description": "Build Android projects on cloud gradle sandboxes"
66
+ "description": "Build Android projects on cloud Gradle sandboxes: create, list, get, delete, sync, build, run, logs, use, tools"
67
67
  },
68
68
  "ios": {
69
- "description": "Execute any task on remote iOS Simulators: create, list, get, delete, attach-xcode, info, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, keychain, record, camera, microphone, perform, ls, push-file, pull-file, delete-file, simctl, cp, xcrun, xcodebuild, lsof, reverse, tunnel"
69
+ "description": "Execute any task on remote iOS Simulators: create, list, get, delete, attach-xcode, info, fold, list-apps, launch-app, terminate-app, app-log, syslog, sync, screenshot, tap, tap-element, element-tree, type, press-key, toggle-keyboard, scroll, open-url, install-app, keychain, record, camera, microphone, perform, ls, push-file, pull-file, delete-file, simctl, cp, xcrun, xcodebuild, lsof, reverse, tunnel"
70
70
  },
71
71
  "session": {
72
72
  "description": "Manage persistent background sessions for device interaction: start, status, stop. Sessions are used to execute commands on remote devices without the need to reconnect to the device after each command."