@limrun/api 0.45.2 → 0.45.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.
- package/CHANGELOG.md +4 -0
- package/http-proxy.d.mts +17 -0
- package/http-proxy.d.mts.map +1 -1
- package/http-proxy.d.ts +17 -0
- package/http-proxy.d.ts.map +1 -1
- package/http-proxy.js +114 -0
- package/http-proxy.js.map +1 -1
- package/http-proxy.mjs +113 -0
- package/http-proxy.mjs.map +1 -1
- package/index.d.mts +2 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/index.mjs +2 -1
- package/index.mjs.map +1 -1
- package/ios-client.d.mts +11 -0
- package/ios-client.d.mts.map +1 -1
- package/ios-client.d.ts +11 -0
- package/ios-client.d.ts.map +1 -1
- package/ios-client.js +13 -0
- package/ios-client.js.map +1 -1
- package/ios-client.mjs +14 -1
- package/ios-client.mjs.map +1 -1
- package/ios-maestro.d.mts +34 -0
- package/ios-maestro.d.mts.map +1 -0
- package/ios-maestro.d.ts +34 -0
- package/ios-maestro.d.ts.map +1 -0
- package/ios-maestro.js +134 -0
- package/ios-maestro.js.map +1 -0
- package/ios-maestro.mjs +127 -0
- package/ios-maestro.mjs.map +1 -0
- package/ios-shim.js +69 -8
- package/ios-shim.js.map +1 -1
- package/ios-shim.mjs +69 -8
- package/ios-shim.mjs.map +1 -1
- package/package.json +11 -1
- package/src/http-proxy.ts +138 -0
- package/src/index.ts +16 -1
- package/src/ios-client.ts +32 -1
- package/src/ios-maestro.ts +154 -0
- package/src/ios-shim.ts +70 -8
- package/src/tunnel.ts +56 -6
- package/src/version.ts +1 -1
- package/tunnel.d.mts +6 -0
- package/tunnel.d.mts.map +1 -1
- package/tunnel.d.ts +6 -0
- package/tunnel.d.ts.map +1 -1
- package/tunnel.js +53 -6
- package/tunnel.js.map +1 -1
- package/tunnel.mjs +53 -6
- package/tunnel.mjs.map +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/ios-maestro.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { InstanceClient } from "./ios-client.js";
|
|
2
|
+
export declare const MAESTRO_RUNNER_BUNDLE_ID = "dev.mobile.maestro-driver-iosUITests.xctrunner";
|
|
3
|
+
/** Port the patched Maestro XCTest runner listens on inside the simulator. */
|
|
4
|
+
export declare const MAESTRO_RUNNER_PORT = 22087;
|
|
5
|
+
export declare const maestroSpawnOptions: {
|
|
6
|
+
readonly shell: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type MaestroRun = {
|
|
9
|
+
maestroVersion: string;
|
|
10
|
+
driverPort: number;
|
|
11
|
+
/** Environment overrides for the `maestro` process; merge over process.env. */
|
|
12
|
+
env: Record<string, string>;
|
|
13
|
+
/** Arguments to place between `maestro test` and the flow arguments. */
|
|
14
|
+
args: string[];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Wire a locally installed stock Maestro CLI to this instance's remote XCTest
|
|
18
|
+
* runner: starts the xcrun shim and an HTTP forward proxy, and returns the
|
|
19
|
+
* environment and `maestro test` arguments that route the driver traffic to
|
|
20
|
+
* the remote runner. Both are torn down when the client disconnects.
|
|
21
|
+
*
|
|
22
|
+
* Maestro's driver talks plain HTTP to 127.0.0.1:<driverPort>. Nothing listens
|
|
23
|
+
* there: the JVM proxy settings route those requests (absolute-form) to the
|
|
24
|
+
* forward proxy, which rewrites them to the remote runner and passes other
|
|
25
|
+
* targets through.
|
|
26
|
+
*/
|
|
27
|
+
export declare function prepareMaestroRun(client: InstanceClient, options: {
|
|
28
|
+
runnerUrl: string;
|
|
29
|
+
}): Promise<MaestroRun>;
|
|
30
|
+
/** Poll the remote Maestro XCTest runner until it responds, e.g. right after launching it. */
|
|
31
|
+
export declare function waitForMaestroRunner(runnerUrl: string, token: string, timeoutMs?: number): Promise<boolean>;
|
|
32
|
+
/** Probe the remote Maestro XCTest runner's /status endpoint. */
|
|
33
|
+
export declare function isMaestroRunnerRunning(runnerUrl: string, token: string): Promise<boolean>;
|
|
34
|
+
//# sourceMappingURL=ios-maestro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ios-maestro.d.ts","sourceRoot":"","sources":["src/ios-maestro.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAqB;AAEnD,eAAO,MAAM,wBAAwB,mDAAmD,CAAC;AACzF,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAIzC,eAAO,MAAM,mBAAmB;;CAAmD,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED,8FAA8F;AAC9F,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,iEAAiE;AACjE,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAe/F"}
|
package/ios-maestro.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maestroSpawnOptions = exports.MAESTRO_RUNNER_PORT = exports.MAESTRO_RUNNER_BUNDLE_ID = void 0;
|
|
4
|
+
exports.prepareMaestroRun = prepareMaestroRun;
|
|
5
|
+
exports.waitForMaestroRunner = waitForMaestroRunner;
|
|
6
|
+
exports.isMaestroRunnerRunning = isMaestroRunnerRunning;
|
|
7
|
+
const tslib_1 = require("./internal/tslib.js");
|
|
8
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
9
|
+
const net_1 = tslib_1.__importDefault(require("net"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
exports.MAESTRO_RUNNER_BUNDLE_ID = 'dev.mobile.maestro-driver-iosUITests.xctrunner';
|
|
12
|
+
/** Port the patched Maestro XCTest runner listens on inside the simulator. */
|
|
13
|
+
exports.MAESTRO_RUNNER_PORT = 22087;
|
|
14
|
+
// Maestro installs as a .bat/.cmd wrapper on Windows, which spawn can only
|
|
15
|
+
// execute through a shell.
|
|
16
|
+
exports.maestroSpawnOptions = { shell: process.platform === 'win32' };
|
|
17
|
+
/**
|
|
18
|
+
* Wire a locally installed stock Maestro CLI to this instance's remote XCTest
|
|
19
|
+
* runner: starts the xcrun shim and an HTTP forward proxy, and returns the
|
|
20
|
+
* environment and `maestro test` arguments that route the driver traffic to
|
|
21
|
+
* the remote runner. Both are torn down when the client disconnects.
|
|
22
|
+
*
|
|
23
|
+
* Maestro's driver talks plain HTTP to 127.0.0.1:<driverPort>. Nothing listens
|
|
24
|
+
* there: the JVM proxy settings route those requests (absolute-form) to the
|
|
25
|
+
* forward proxy, which rewrites them to the remote runner and passes other
|
|
26
|
+
* targets through.
|
|
27
|
+
*/
|
|
28
|
+
async function prepareMaestroRun(client, options) {
|
|
29
|
+
const [maestroVersion, shimDir] = await Promise.all([detectMaestroVersion(), client.startXcrunShim()]);
|
|
30
|
+
// Maestro 2.5.x hardcodes driver port 7001 and has no --driver-host-port
|
|
31
|
+
// flag; 2.6+ picks a random port unless the flag is passed.
|
|
32
|
+
const withDriverHostPortFlag = supportsDriverHostPort(maestroVersion);
|
|
33
|
+
const driverPort = withDriverHostPortFlag ? await findFreePort() : 7001;
|
|
34
|
+
const proxyPort = await client.startForwardHttpProxy({
|
|
35
|
+
remoteBaseUrl: options.runnerUrl,
|
|
36
|
+
matchPort: driverPort,
|
|
37
|
+
});
|
|
38
|
+
const maestroOpts = [
|
|
39
|
+
process.env['MAESTRO_OPTS'],
|
|
40
|
+
`-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=${proxyPort} -Dhttp.nonProxyHosts=`,
|
|
41
|
+
]
|
|
42
|
+
.filter(Boolean)
|
|
43
|
+
.join(' ');
|
|
44
|
+
return {
|
|
45
|
+
maestroVersion,
|
|
46
|
+
driverPort,
|
|
47
|
+
env: {
|
|
48
|
+
MAESTRO_OPTS: maestroOpts,
|
|
49
|
+
PATH: `${shimDir}${path_1.default.delimiter}${process.env['PATH'] ?? ''}`,
|
|
50
|
+
USE_XCODE_TEST_RUNNER: '1',
|
|
51
|
+
},
|
|
52
|
+
args: [
|
|
53
|
+
'--platform',
|
|
54
|
+
'ios',
|
|
55
|
+
'--device',
|
|
56
|
+
client.deviceInfo.udid,
|
|
57
|
+
'--no-reinstall-driver',
|
|
58
|
+
...(withDriverHostPortFlag ? ['--driver-host-port', String(driverPort)] : []),
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Poll the remote Maestro XCTest runner until it responds, e.g. right after launching it. */
|
|
63
|
+
async function waitForMaestroRunner(runnerUrl, token, timeoutMs = 15000) {
|
|
64
|
+
const deadline = Date.now() + timeoutMs;
|
|
65
|
+
while (Date.now() < deadline) {
|
|
66
|
+
if (await isMaestroRunnerRunning(runnerUrl, token)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
/** Probe the remote Maestro XCTest runner's /status endpoint. */
|
|
74
|
+
async function isMaestroRunnerRunning(runnerUrl, token) {
|
|
75
|
+
const controller = new AbortController();
|
|
76
|
+
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
77
|
+
try {
|
|
78
|
+
const response = await fetch(`${runnerUrl}/status`, {
|
|
79
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
80
|
+
signal: controller.signal,
|
|
81
|
+
});
|
|
82
|
+
return response.ok;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
// Also on failure: a pending timer keeps the event loop alive.
|
|
89
|
+
clearTimeout(timeout);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function detectMaestroVersion() {
|
|
93
|
+
return new Promise((resolve, reject) => {
|
|
94
|
+
(0, child_process_1.execFile)('maestro', ['--version'], { encoding: 'utf8', ...exports.maestroSpawnOptions }, (error, stdout) => {
|
|
95
|
+
if (error) {
|
|
96
|
+
reject(new Error('Failed to run `maestro --version`. Install the Maestro CLI first: https://docs.maestro.dev/getting-started/installing-maestro'));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// stdout only: update notices can also start with a version string and
|
|
100
|
+
// land on stderr or after the real version.
|
|
101
|
+
const version = stdout
|
|
102
|
+
.split('\n')
|
|
103
|
+
.map((line) => line.trim())
|
|
104
|
+
.find((line) => /^\d+\.\d+\.\d+/.test(line));
|
|
105
|
+
if (!version) {
|
|
106
|
+
reject(new Error('Could not parse the Maestro CLI version from `maestro --version` output.'));
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
resolve(version);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function supportsDriverHostPort(version) {
|
|
114
|
+
const [major = 0, minor = 0] = version.split('.').map((part) => Number.parseInt(part, 10) || 0);
|
|
115
|
+
return major > 2 || (major === 2 && minor >= 6);
|
|
116
|
+
}
|
|
117
|
+
// Finds a free port and releases it immediately: Maestro validates that the
|
|
118
|
+
// driver port is bindable, so it must stay unbound on our side.
|
|
119
|
+
function findFreePort() {
|
|
120
|
+
return new Promise((resolve, reject) => {
|
|
121
|
+
const server = net_1.default.createServer();
|
|
122
|
+
server.once('error', reject);
|
|
123
|
+
server.listen(0, '127.0.0.1', () => {
|
|
124
|
+
const address = server.address();
|
|
125
|
+
if (!address || typeof address === 'string') {
|
|
126
|
+
server.close();
|
|
127
|
+
reject(new Error('Failed to find a free port.'));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
server.close(() => resolve(address.port));
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=ios-maestro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ios-maestro.js","sourceRoot":"","sources":["src/ios-maestro.ts"],"names":[],"mappings":"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"}
|
package/ios-maestro.mjs
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import net from 'net';
|
|
3
|
+
import { execFile } from 'child_process';
|
|
4
|
+
export const MAESTRO_RUNNER_BUNDLE_ID = 'dev.mobile.maestro-driver-iosUITests.xctrunner';
|
|
5
|
+
/** Port the patched Maestro XCTest runner listens on inside the simulator. */
|
|
6
|
+
export const MAESTRO_RUNNER_PORT = 22087;
|
|
7
|
+
// Maestro installs as a .bat/.cmd wrapper on Windows, which spawn can only
|
|
8
|
+
// execute through a shell.
|
|
9
|
+
export const maestroSpawnOptions = { shell: process.platform === 'win32' };
|
|
10
|
+
/**
|
|
11
|
+
* Wire a locally installed stock Maestro CLI to this instance's remote XCTest
|
|
12
|
+
* runner: starts the xcrun shim and an HTTP forward proxy, and returns the
|
|
13
|
+
* environment and `maestro test` arguments that route the driver traffic to
|
|
14
|
+
* the remote runner. Both are torn down when the client disconnects.
|
|
15
|
+
*
|
|
16
|
+
* Maestro's driver talks plain HTTP to 127.0.0.1:<driverPort>. Nothing listens
|
|
17
|
+
* there: the JVM proxy settings route those requests (absolute-form) to the
|
|
18
|
+
* forward proxy, which rewrites them to the remote runner and passes other
|
|
19
|
+
* targets through.
|
|
20
|
+
*/
|
|
21
|
+
export async function prepareMaestroRun(client, options) {
|
|
22
|
+
const [maestroVersion, shimDir] = await Promise.all([detectMaestroVersion(), client.startXcrunShim()]);
|
|
23
|
+
// Maestro 2.5.x hardcodes driver port 7001 and has no --driver-host-port
|
|
24
|
+
// flag; 2.6+ picks a random port unless the flag is passed.
|
|
25
|
+
const withDriverHostPortFlag = supportsDriverHostPort(maestroVersion);
|
|
26
|
+
const driverPort = withDriverHostPortFlag ? await findFreePort() : 7001;
|
|
27
|
+
const proxyPort = await client.startForwardHttpProxy({
|
|
28
|
+
remoteBaseUrl: options.runnerUrl,
|
|
29
|
+
matchPort: driverPort,
|
|
30
|
+
});
|
|
31
|
+
const maestroOpts = [
|
|
32
|
+
process.env['MAESTRO_OPTS'],
|
|
33
|
+
`-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=${proxyPort} -Dhttp.nonProxyHosts=`,
|
|
34
|
+
]
|
|
35
|
+
.filter(Boolean)
|
|
36
|
+
.join(' ');
|
|
37
|
+
return {
|
|
38
|
+
maestroVersion,
|
|
39
|
+
driverPort,
|
|
40
|
+
env: {
|
|
41
|
+
MAESTRO_OPTS: maestroOpts,
|
|
42
|
+
PATH: `${shimDir}${path.delimiter}${process.env['PATH'] ?? ''}`,
|
|
43
|
+
USE_XCODE_TEST_RUNNER: '1',
|
|
44
|
+
},
|
|
45
|
+
args: [
|
|
46
|
+
'--platform',
|
|
47
|
+
'ios',
|
|
48
|
+
'--device',
|
|
49
|
+
client.deviceInfo.udid,
|
|
50
|
+
'--no-reinstall-driver',
|
|
51
|
+
...(withDriverHostPortFlag ? ['--driver-host-port', String(driverPort)] : []),
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Poll the remote Maestro XCTest runner until it responds, e.g. right after launching it. */
|
|
56
|
+
export async function waitForMaestroRunner(runnerUrl, token, timeoutMs = 15000) {
|
|
57
|
+
const deadline = Date.now() + timeoutMs;
|
|
58
|
+
while (Date.now() < deadline) {
|
|
59
|
+
if (await isMaestroRunnerRunning(runnerUrl, token)) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
/** Probe the remote Maestro XCTest runner's /status endpoint. */
|
|
67
|
+
export async function isMaestroRunnerRunning(runnerUrl, token) {
|
|
68
|
+
const controller = new AbortController();
|
|
69
|
+
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
70
|
+
try {
|
|
71
|
+
const response = await fetch(`${runnerUrl}/status`, {
|
|
72
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
73
|
+
signal: controller.signal,
|
|
74
|
+
});
|
|
75
|
+
return response.ok;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
// Also on failure: a pending timer keeps the event loop alive.
|
|
82
|
+
clearTimeout(timeout);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function detectMaestroVersion() {
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
execFile('maestro', ['--version'], { encoding: 'utf8', ...maestroSpawnOptions }, (error, stdout) => {
|
|
88
|
+
if (error) {
|
|
89
|
+
reject(new Error('Failed to run `maestro --version`. Install the Maestro CLI first: https://docs.maestro.dev/getting-started/installing-maestro'));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// stdout only: update notices can also start with a version string and
|
|
93
|
+
// land on stderr or after the real version.
|
|
94
|
+
const version = stdout
|
|
95
|
+
.split('\n')
|
|
96
|
+
.map((line) => line.trim())
|
|
97
|
+
.find((line) => /^\d+\.\d+\.\d+/.test(line));
|
|
98
|
+
if (!version) {
|
|
99
|
+
reject(new Error('Could not parse the Maestro CLI version from `maestro --version` output.'));
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
resolve(version);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function supportsDriverHostPort(version) {
|
|
107
|
+
const [major = 0, minor = 0] = version.split('.').map((part) => Number.parseInt(part, 10) || 0);
|
|
108
|
+
return major > 2 || (major === 2 && minor >= 6);
|
|
109
|
+
}
|
|
110
|
+
// Finds a free port and releases it immediately: Maestro validates that the
|
|
111
|
+
// driver port is bindable, so it must stay unbound on our side.
|
|
112
|
+
function findFreePort() {
|
|
113
|
+
return new Promise((resolve, reject) => {
|
|
114
|
+
const server = net.createServer();
|
|
115
|
+
server.once('error', reject);
|
|
116
|
+
server.listen(0, '127.0.0.1', () => {
|
|
117
|
+
const address = server.address();
|
|
118
|
+
if (!address || typeof address === 'string') {
|
|
119
|
+
server.close();
|
|
120
|
+
reject(new Error('Failed to find a free port.'));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
server.close(() => resolve(address.port));
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ios-maestro.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ios-maestro.mjs","sourceRoot":"","sources":["src/ios-maestro.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,gDAAgD,CAAC;AACzF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC,2EAA2E;AAC3E,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAW,CAAC;AAWpF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,OAA8B;IAE9B,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACvG,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC;QACnD,aAAa,EAAE,OAAO,CAAC,SAAS;QAChC,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3B,+CAA+C,SAAS,wBAAwB;KACjF;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO;QACL,cAAc;QACd,UAAU;QACV,GAAG,EAAE;YACH,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAC/D,qBAAqB,EAAE,GAAG;SAC3B;QACD,IAAI,EAAE;YACJ,YAAY;YACZ,KAAK;YACL,UAAU;YACV,MAAM,CAAC,UAAU,CAAC,IAAI;YACtB,uBAAuB;YACvB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E;KACF,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,KAAa,EACb,SAAS,GAAG,KAAK;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,KAAa;IAC3E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,SAAS,EAAE;YAClD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,+DAA+D;QAC/D,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjG,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CACJ,IAAI,KAAK,CACP,+HAA+H,CAChI,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,uEAAuE;YACvE,4CAA4C;YAC5C,MAAM,OAAO,GAAG,MAAM;iBACnB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,CAAC;gBAC9F,OAAO;YACT,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,4EAA4E;AAC5E,gEAAgE;AAChE,SAAS,YAAY;IACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/ios-shim.js
CHANGED
|
@@ -72,6 +72,9 @@ async function createXcrunShim(options) {
|
|
|
72
72
|
return dir;
|
|
73
73
|
}
|
|
74
74
|
async function handleShimmedXcrun(client, udid, args) {
|
|
75
|
+
if (args[0] === 'devicectl') {
|
|
76
|
+
return devicectlListDevices(args);
|
|
77
|
+
}
|
|
75
78
|
if (args[0] !== 'simctl') {
|
|
76
79
|
return { code: 127, stdout: '', stderr: `unsupported xcrun command: ${args.join(' ')}` };
|
|
77
80
|
}
|
|
@@ -111,6 +114,42 @@ async function handleShimmedXcrun(client, udid, args) {
|
|
|
111
114
|
}
|
|
112
115
|
return await client.simctl(simctlArgs).wait();
|
|
113
116
|
}
|
|
117
|
+
// There are never physical devices behind the shim, so `devicectl list
|
|
118
|
+
// devices` gets an empty device list in the shape Maestro's picker parses.
|
|
119
|
+
// Flags can precede the subcommand (devicectl --json-output <path> list
|
|
120
|
+
// devices), so match on positionals.
|
|
121
|
+
function devicectlListDevices(args) {
|
|
122
|
+
const positionals = [];
|
|
123
|
+
for (let i = 1; i < args.length; i++) {
|
|
124
|
+
if (args[i] === '--json-output') {
|
|
125
|
+
i++;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (args[i].startsWith('-'))
|
|
129
|
+
continue;
|
|
130
|
+
positionals.push(args[i]);
|
|
131
|
+
}
|
|
132
|
+
if (positionals[0] !== 'list' || positionals[1] !== 'devices') {
|
|
133
|
+
return { code: 127, stdout: '', stderr: `unsupported devicectl command: ${args.join(' ')}` };
|
|
134
|
+
}
|
|
135
|
+
const payload = JSON.stringify({ result: { devices: [] } });
|
|
136
|
+
const jsonOutIndex = args.indexOf('--json-output');
|
|
137
|
+
const jsonOutPath = jsonOutIndex === -1 ? undefined : args[jsonOutIndex + 1];
|
|
138
|
+
if (jsonOutPath && jsonOutPath !== '-') {
|
|
139
|
+
try {
|
|
140
|
+
fs_1.default.writeFileSync(jsonOutPath, payload);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
return {
|
|
144
|
+
code: 1,
|
|
145
|
+
stdout: '',
|
|
146
|
+
stderr: `could not write devicectl output to ${jsonOutPath}: ${error instanceof Error ? error.message : String(error)}`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return { code: 0, stdout: '', stderr: '' };
|
|
150
|
+
}
|
|
151
|
+
return { code: 0, stdout: `${payload}\n`, stderr: '' };
|
|
152
|
+
}
|
|
114
153
|
function simctlList(udid, simctlArgs) {
|
|
115
154
|
if (!simctlArgs.includes('-j')) {
|
|
116
155
|
return { code: 64, stdout: '', stderr: 'limrun xcrun shim only supports `xcrun simctl list -j`.' };
|
|
@@ -221,8 +260,9 @@ function toSimctlListApps(apps) {
|
|
|
221
260
|
}
|
|
222
261
|
function xcrunShimSource(options) {
|
|
223
262
|
// Keep the executable tiny: it decides whether this is a Limrun-targeted
|
|
224
|
-
// simctl call, then asks the local shim
|
|
225
|
-
// Non-Limrun calls still delegate to the
|
|
263
|
+
// simctl call (or a devicectl device enumeration), then asks the local shim
|
|
264
|
+
// server to perform the real work. Non-Limrun calls still delegate to the
|
|
265
|
+
// host xcrun.
|
|
226
266
|
const embeddedShimUrl = options ? JSON.stringify(options.shimUrl) : 'process.env.LIMRUN_XCRUN_SHIM_URL';
|
|
227
267
|
const embeddedUdid = options ? JSON.stringify(options.udid) : 'process.env.LIMRUN_IOS_UDID';
|
|
228
268
|
return `#!/usr/bin/env node
|
|
@@ -246,7 +286,26 @@ function fail(message) {
|
|
|
246
286
|
process.exit(64);
|
|
247
287
|
}
|
|
248
288
|
|
|
249
|
-
|
|
289
|
+
// Physical-device enumeration (e.g. Maestro's device picker) is answered by
|
|
290
|
+
// the shim server; real devicectl does not exist off macOS. Every other
|
|
291
|
+
// devicectl subcommand delegates. Flags can precede the subcommand
|
|
292
|
+
// (devicectl --json-output <path> list devices), so match on positionals.
|
|
293
|
+
function devicectlPositionals(args) {
|
|
294
|
+
const positionals = [];
|
|
295
|
+
for (let i = 1; i < args.length; i++) {
|
|
296
|
+
if (args[i] === '--json-output') {
|
|
297
|
+
i++;
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
if (args[i].startsWith('-')) continue;
|
|
301
|
+
positionals.push(args[i]);
|
|
302
|
+
}
|
|
303
|
+
return positionals;
|
|
304
|
+
}
|
|
305
|
+
const devicectlSubcommand = args[0] === 'devicectl' ? devicectlPositionals(args) : [];
|
|
306
|
+
const isDevicectlListDevices = devicectlSubcommand[0] === 'list' && devicectlSubcommand[1] === 'devices';
|
|
307
|
+
|
|
308
|
+
if (args[0] !== 'simctl' && !isDevicectlListDevices) {
|
|
250
309
|
delegate();
|
|
251
310
|
}
|
|
252
311
|
|
|
@@ -256,21 +315,23 @@ if (!shimUrl || !udid) {
|
|
|
256
315
|
fail('LIMRUN_XCRUN_SHIM_URL and LIMRUN_IOS_UDID are required.');
|
|
257
316
|
}
|
|
258
317
|
|
|
259
|
-
const simctlArgs = args.slice(1);
|
|
260
|
-
const command = simctlArgs[0];
|
|
261
318
|
function simctlTarget(command, simctlArgs) {
|
|
262
319
|
if (command === 'launch') {
|
|
263
320
|
return simctlArgs.slice(1).find((arg) => !arg.startsWith('-'));
|
|
264
321
|
}
|
|
265
322
|
return simctlArgs[1];
|
|
266
323
|
}
|
|
267
|
-
const target = simctlTarget(command, simctlArgs);
|
|
268
324
|
function isLimrunTarget(value) {
|
|
269
325
|
return value === udid || value === 'booted';
|
|
270
326
|
}
|
|
271
327
|
|
|
272
|
-
if (
|
|
273
|
-
|
|
328
|
+
if (args[0] === 'simctl') {
|
|
329
|
+
const simctlArgs = args.slice(1);
|
|
330
|
+
const command = simctlArgs[0];
|
|
331
|
+
const target = simctlTarget(command, simctlArgs);
|
|
332
|
+
if (command !== 'list' && !isLimrunTarget(target)) {
|
|
333
|
+
delegate();
|
|
334
|
+
}
|
|
274
335
|
}
|
|
275
336
|
|
|
276
337
|
const parsed = new URL(shimUrl);
|
package/ios-shim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-shim.js","sourceRoot":"","sources":["src/ios-shim.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ios-shim.js","sourceRoot":"","sources":["src/ios-shim.ts"],"names":[],"mappings":";;AAmCA,wCAeC;AAED,oDAmCC;AAED,0CAMC;;AA/FD,oDAAoB;AACpB,wDAAuE;AACvE,oDAAoB;AACpB,wDAAwB;AAIxB,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,SAAS;IACT,QAAQ;IACR,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAoBI,KAAK,UAAU,cAAc,CAAC,MAA0B;IAC7D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO;YACL,GAAG;YACH,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,YAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,EACzC,MAAM,EACN,IAAI,GAIL;IACC,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAwB,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5D,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,4DAA4D;aACrE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,GAAG,EAAE,oBAAoB,OAAO,CAAC,IAAI,QAAQ;QAC7C,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;KACjC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,OAA2C;IAC/E,MAAM,GAAG,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAA0B,EAC1B,IAAY,EACZ,IAAc;IAEd,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,8BAA8B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC3F,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,4EAA4E;QAC5E,8EAA8E;QAC9E,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,yCAAyC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC;IACrG,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI;YACrD,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC;QACxF,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,6CAA6C,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC;IACzG,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,qCAAqC;AACrC,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;YAChC,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACvC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kCAAkC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,WAAW,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,uCAAuC,WAAW,KACxD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE;aACH,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,UAAoB;IACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC;IACrG,CAAC;IACD,OAAO;QACL,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI;QACjD,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,OAA2B;IAChE,2EAA2E;IAC3E,4EAA4E;IAC5E,kCAAkC;IAClC,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,MAAM,EACJ,6GAA6G;SAChH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,2DAA2D,EAAE,CAAC;IACvG,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,iEAAiE;SAC1E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,0DAA0D,OAAO,SAAS;SACnF,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB,EAAE,IAAY;IAC7D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B,EAAE,UAAoB;IACrE,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;IACxE,MAAM,oBAAoB,GAAG,qDAAqD,CAAC;IACnF,OAAO;QACL,OAAO,EAAE;YACP,CAAC,iBAAiB,CAAC,EAAE;gBACnB;oBACE,YAAY,EAAE,aAAa;oBAC3B,QAAQ,EAAE,mBAAmB,IAAI,OAAO;oBACxC,OAAO,EAAE,mBAAmB,IAAI,OAAO;oBACvC,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,eAAe;oBAC9D,KAAK,EAAE,QAAQ;oBACf,IAAI;oBACJ,oBAAoB;oBACpB,iBAAiB,EAAE,IAAI;iBACxB;aACF;SACF;QACD,WAAW,EAAE;YACX;gBACE,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,oBAAoB;gBAChC,iBAAiB,EAAE,MAAM;gBACzB,uBAAuB,EAAE,IAAI;gBAC7B,iBAAiB,EAAE,CAAC;gBACpB,uBAAuB,EAAE,IAAI;gBAC7B,eAAe,EAAE,YAAY;gBAC7B,IAAI,EAAE,eAAe;gBACrB,aAAa,EAAE,QAAQ;aACxB;SACF;QACD,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE;YACR;gBACE,YAAY,EAAE,aAAa;gBAC3B,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,iBAAiB;gBAC7B,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,UAAU;gBAC1D,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,EAAE;gBACf,oBAAoB,EAAE,EAAE;gBACxB,OAAO,EAAE,MAAM;aAChB;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAoB;IAEpB,OAAO,MAAM,CAAC,WAAW,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QAChB,GAAG,CAAC,QAAQ;QACZ;YACE,kBAAkB,EAAE,GAAG,CAAC,QAAQ;YAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAA2C;IAClE,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,cAAc;IACd,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC;IACxG,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;IAC5F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4CS,eAAe;eAClB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD1B,CAAC;AACF,CAAC;AAED,SAAS,MAAM,CAAC,MAAmB,EAAE,IAAY;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAoB;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAmB,EAAE,UAAkB,EAAE,OAAgB;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE;QACxB,cAAc,EAAE,kBAAkB;QAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KAC1C,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
package/ios-shim.mjs
CHANGED
|
@@ -66,6 +66,9 @@ export async function createXcrunShim(options) {
|
|
|
66
66
|
return dir;
|
|
67
67
|
}
|
|
68
68
|
async function handleShimmedXcrun(client, udid, args) {
|
|
69
|
+
if (args[0] === 'devicectl') {
|
|
70
|
+
return devicectlListDevices(args);
|
|
71
|
+
}
|
|
69
72
|
if (args[0] !== 'simctl') {
|
|
70
73
|
return { code: 127, stdout: '', stderr: `unsupported xcrun command: ${args.join(' ')}` };
|
|
71
74
|
}
|
|
@@ -105,6 +108,42 @@ async function handleShimmedXcrun(client, udid, args) {
|
|
|
105
108
|
}
|
|
106
109
|
return await client.simctl(simctlArgs).wait();
|
|
107
110
|
}
|
|
111
|
+
// There are never physical devices behind the shim, so `devicectl list
|
|
112
|
+
// devices` gets an empty device list in the shape Maestro's picker parses.
|
|
113
|
+
// Flags can precede the subcommand (devicectl --json-output <path> list
|
|
114
|
+
// devices), so match on positionals.
|
|
115
|
+
function devicectlListDevices(args) {
|
|
116
|
+
const positionals = [];
|
|
117
|
+
for (let i = 1; i < args.length; i++) {
|
|
118
|
+
if (args[i] === '--json-output') {
|
|
119
|
+
i++;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (args[i].startsWith('-'))
|
|
123
|
+
continue;
|
|
124
|
+
positionals.push(args[i]);
|
|
125
|
+
}
|
|
126
|
+
if (positionals[0] !== 'list' || positionals[1] !== 'devices') {
|
|
127
|
+
return { code: 127, stdout: '', stderr: `unsupported devicectl command: ${args.join(' ')}` };
|
|
128
|
+
}
|
|
129
|
+
const payload = JSON.stringify({ result: { devices: [] } });
|
|
130
|
+
const jsonOutIndex = args.indexOf('--json-output');
|
|
131
|
+
const jsonOutPath = jsonOutIndex === -1 ? undefined : args[jsonOutIndex + 1];
|
|
132
|
+
if (jsonOutPath && jsonOutPath !== '-') {
|
|
133
|
+
try {
|
|
134
|
+
fs.writeFileSync(jsonOutPath, payload);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
return {
|
|
138
|
+
code: 1,
|
|
139
|
+
stdout: '',
|
|
140
|
+
stderr: `could not write devicectl output to ${jsonOutPath}: ${error instanceof Error ? error.message : String(error)}`,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return { code: 0, stdout: '', stderr: '' };
|
|
144
|
+
}
|
|
145
|
+
return { code: 0, stdout: `${payload}\n`, stderr: '' };
|
|
146
|
+
}
|
|
108
147
|
function simctlList(udid, simctlArgs) {
|
|
109
148
|
if (!simctlArgs.includes('-j')) {
|
|
110
149
|
return { code: 64, stdout: '', stderr: 'limrun xcrun shim only supports `xcrun simctl list -j`.' };
|
|
@@ -215,8 +254,9 @@ function toSimctlListApps(apps) {
|
|
|
215
254
|
}
|
|
216
255
|
function xcrunShimSource(options) {
|
|
217
256
|
// Keep the executable tiny: it decides whether this is a Limrun-targeted
|
|
218
|
-
// simctl call, then asks the local shim
|
|
219
|
-
// Non-Limrun calls still delegate to the
|
|
257
|
+
// simctl call (or a devicectl device enumeration), then asks the local shim
|
|
258
|
+
// server to perform the real work. Non-Limrun calls still delegate to the
|
|
259
|
+
// host xcrun.
|
|
220
260
|
const embeddedShimUrl = options ? JSON.stringify(options.shimUrl) : 'process.env.LIMRUN_XCRUN_SHIM_URL';
|
|
221
261
|
const embeddedUdid = options ? JSON.stringify(options.udid) : 'process.env.LIMRUN_IOS_UDID';
|
|
222
262
|
return `#!/usr/bin/env node
|
|
@@ -240,7 +280,26 @@ function fail(message) {
|
|
|
240
280
|
process.exit(64);
|
|
241
281
|
}
|
|
242
282
|
|
|
243
|
-
|
|
283
|
+
// Physical-device enumeration (e.g. Maestro's device picker) is answered by
|
|
284
|
+
// the shim server; real devicectl does not exist off macOS. Every other
|
|
285
|
+
// devicectl subcommand delegates. Flags can precede the subcommand
|
|
286
|
+
// (devicectl --json-output <path> list devices), so match on positionals.
|
|
287
|
+
function devicectlPositionals(args) {
|
|
288
|
+
const positionals = [];
|
|
289
|
+
for (let i = 1; i < args.length; i++) {
|
|
290
|
+
if (args[i] === '--json-output') {
|
|
291
|
+
i++;
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (args[i].startsWith('-')) continue;
|
|
295
|
+
positionals.push(args[i]);
|
|
296
|
+
}
|
|
297
|
+
return positionals;
|
|
298
|
+
}
|
|
299
|
+
const devicectlSubcommand = args[0] === 'devicectl' ? devicectlPositionals(args) : [];
|
|
300
|
+
const isDevicectlListDevices = devicectlSubcommand[0] === 'list' && devicectlSubcommand[1] === 'devices';
|
|
301
|
+
|
|
302
|
+
if (args[0] !== 'simctl' && !isDevicectlListDevices) {
|
|
244
303
|
delegate();
|
|
245
304
|
}
|
|
246
305
|
|
|
@@ -250,21 +309,23 @@ if (!shimUrl || !udid) {
|
|
|
250
309
|
fail('LIMRUN_XCRUN_SHIM_URL and LIMRUN_IOS_UDID are required.');
|
|
251
310
|
}
|
|
252
311
|
|
|
253
|
-
const simctlArgs = args.slice(1);
|
|
254
|
-
const command = simctlArgs[0];
|
|
255
312
|
function simctlTarget(command, simctlArgs) {
|
|
256
313
|
if (command === 'launch') {
|
|
257
314
|
return simctlArgs.slice(1).find((arg) => !arg.startsWith('-'));
|
|
258
315
|
}
|
|
259
316
|
return simctlArgs[1];
|
|
260
317
|
}
|
|
261
|
-
const target = simctlTarget(command, simctlArgs);
|
|
262
318
|
function isLimrunTarget(value) {
|
|
263
319
|
return value === udid || value === 'booted';
|
|
264
320
|
}
|
|
265
321
|
|
|
266
|
-
if (
|
|
267
|
-
|
|
322
|
+
if (args[0] === 'simctl') {
|
|
323
|
+
const simctlArgs = args.slice(1);
|
|
324
|
+
const command = simctlArgs[0];
|
|
325
|
+
const target = simctlTarget(command, simctlArgs);
|
|
326
|
+
if (command !== 'list' && !isLimrunTarget(target)) {
|
|
327
|
+
delegate();
|
|
328
|
+
}
|
|
268
329
|
}
|
|
269
330
|
|
|
270
331
|
const parsed = new URL(shimUrl);
|
package/ios-shim.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-shim.mjs","sourceRoot":"","sources":["src/ios-shim.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ios-shim.mjs","sourceRoot":"","sources":["src/ios-shim.ts"],"names":[],"mappings":"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"}
|