react-native-harness 1.0.0-alpha.1 → 1.0.0-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/bundlers/metro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD,eAAO,MAAM,QAAQ,GAAU,gBAAc,KAAG,OAAO,CAAC,YAAY,CA6BnE,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,aAAW,EACX,mBAAe,EACf,mBAAiB,KAChB,OAAO,CAAC,IAAI,CA4Bd,CAAC;AAEF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAE9C,CAAC"}
1
+ {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/bundlers/metro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD,eAAO,MAAM,QAAQ,GAAU,gBAAc,KAAG,OAAO,CAAC,YAAY,CAuCnE,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,aAAW,EACX,mBAAe,EACf,mBAAiB,KAChB,OAAO,CAAC,IAAI,CA4Bd,CAAC;AAEF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CAE9C,CAAC"}
@@ -13,6 +13,15 @@ export const runMetro = async (isExpo = false) => {
13
13
  ...(isExpo && { EXPO_NO_METRO_WORKSPACE_ROOT: 'true' }),
14
14
  },
15
15
  });
16
+ // Forward metro output to CLI output
17
+ metro.nodeChildProcess.then((childProcess) => {
18
+ if (childProcess.stdout) {
19
+ childProcess.stdout.pipe(process.stdout);
20
+ }
21
+ if (childProcess.stderr) {
22
+ childProcess.stderr.pipe(process.stderr);
23
+ }
24
+ });
16
25
  metro.catch((error) => {
17
26
  // This process is going to be killed by us, so we don't need to throw an error
18
27
  if (error instanceof SubprocessError && error.signalName === 'SIGTERM') {
@@ -1,4 +1,4 @@
1
- import { assertNativeRunnerConfig, } from '@react-native-harness/config';
1
+ import { assertAndroidRunnerConfig, } from '@react-native-harness/config';
2
2
  import { logger } from '@react-native-harness/tools';
3
3
  import { runEmulator, getEmulatorDeviceId, reversePort, isAppInstalled, getEmulatorStatus, } from './emulator.js';
4
4
  import { runApp, killApp } from './build.js';
@@ -8,7 +8,7 @@ import { AppNotInstalledError } from '../../errors/errors.js';
8
8
  const androidPlatformAdapter = {
9
9
  name: 'android',
10
10
  getEnvironment: async (runner) => {
11
- assertNativeRunnerConfig(runner);
11
+ assertAndroidRunnerConfig(runner);
12
12
  let emulator = null;
13
13
  const emulatorStatus = await getEmulatorStatus(runner.deviceId);
14
14
  logger.debug(`Emulator status: ${emulatorStatus}`);
@@ -1,7 +1,7 @@
1
1
  export declare const listDevices: () => Promise<any>;
2
- export declare const getDeviceByName: (simulatorName: string) => Promise<any | null>;
2
+ export declare const getDeviceByName: (simulatorName: string, systemVersion: string) => Promise<any | null>;
3
3
  export declare const listApps: (udid: string) => Promise<string[]>;
4
- export declare const isAppInstalled: (simulatorName: string, bundleId: string) => Promise<boolean>;
5
- export declare const runApp: (simulatorName: string, appName: string) => Promise<void>;
6
- export declare const killApp: (simulatorName: string, appName: string) => Promise<void>;
4
+ export declare const isAppInstalled: (udid: string, bundleId: string) => Promise<boolean>;
5
+ export declare const runApp: (udid: string, appName: string) => Promise<void>;
6
+ export declare const killApp: (udid: string, appName: string) => Promise<void>;
7
7
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/build.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,GAAG,CAQ/C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,KACpB,OAAO,CAAC,GAAG,GAAG,IAAI,CAapB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAY7D,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,eAAe,MAAM,EACrB,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,CASjB,CAAC;AAEF,eAAO,MAAM,MAAM,GACjB,eAAe,MAAM,EACrB,SAAS,MAAM,KACd,OAAO,CAAC,IAAI,CAGd,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,eAAe,MAAM,EACrB,SAAS,MAAM,KACd,OAAO,CAAC,IAAI,CAOd,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/build.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,GAAG,CAQ/C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,EACrB,eAAe,MAAM,KACpB,OAAO,CAAC,GAAG,GAAG,IAAI,CAqBpB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAY7D,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,MAAM,EACZ,UAAU,MAAM,KACf,OAAO,CAAC,OAAO,CAGjB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAGxE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAEzE,CAAC"}
@@ -8,15 +8,17 @@ export const listDevices = async () => {
8
8
  ]);
9
9
  return JSON.parse(stdout);
10
10
  };
11
- export const getDeviceByName = async (simulatorName) => {
11
+ export const getDeviceByName = async (simulatorName, systemVersion) => {
12
12
  const devices = await listDevices();
13
- for (const runtime in devices.devices) {
14
- const runtimeDevices = devices.devices[runtime];
15
- for (const device of runtimeDevices) {
16
- if (device.name === simulatorName && device.isAvailable) {
17
- return device;
18
- }
19
- }
13
+ const expectedRuntimeId = `com.apple.CoreSimulator.SimRuntime.iOS-${systemVersion.replace(/\./, '-')}`;
14
+ const runtime = devices.devices[expectedRuntimeId];
15
+ if (!runtime) {
16
+ return null;
17
+ }
18
+ const runtimeDevices = devices.devices[runtime];
19
+ const device = runtimeDevices.find((d) => d.name === simulatorName);
20
+ if (device) {
21
+ return device;
20
22
  }
21
23
  return null;
22
24
  };
@@ -29,23 +31,14 @@ export const listApps = async (udid) => {
29
31
  const { stdout: jsonOutput } = await spawn('plutil', ['-convert', 'json', '-o', '-', '-'], { stdin: { string: plistOutput } });
30
32
  return Object.keys(JSON.parse(jsonOutput));
31
33
  };
32
- export const isAppInstalled = async (simulatorName, bundleId) => {
33
- const device = await getDeviceByName(simulatorName);
34
- if (!device) {
35
- throw new Error(`Simulator ${simulatorName} not found`);
36
- }
37
- const appList = await listApps(device.udid);
34
+ export const isAppInstalled = async (udid, bundleId) => {
35
+ const appList = await listApps(udid);
38
36
  return appList.includes(bundleId);
39
37
  };
40
- export const runApp = async (simulatorName, appName) => {
41
- await killApp(simulatorName, appName);
42
- await spawn('xcrun', ['simctl', 'launch', simulatorName, appName]);
38
+ export const runApp = async (udid, appName) => {
39
+ await killApp(udid, appName);
40
+ await spawn('xcrun', ['simctl', 'launch', udid, appName]);
43
41
  };
44
- export const killApp = async (simulatorName, appName) => {
45
- await spawnAndForget('xcrun', [
46
- 'simctl',
47
- 'terminate',
48
- simulatorName,
49
- appName,
50
- ]);
42
+ export const killApp = async (udid, appName) => {
43
+ await spawnAndForget('xcrun', ['simctl', 'terminate', udid, appName]);
51
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9D,QAAA,MAAM,kBAAkB,EAAE,eAqCzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAa9D,QAAA,MAAM,kBAAkB,EAAE,eA8CzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,34 +1,39 @@
1
- import { assertNativeRunnerConfig, } from '@react-native-harness/config';
2
- import { getSimulatorStatus, runSimulator, stopSimulator, } from './simulator.js';
1
+ import { assertIOSRunnerConfig, } from '@react-native-harness/config';
2
+ import { getSimulatorDeviceId, getSimulatorStatus, runSimulator, stopSimulator, } from './simulator.js';
3
3
  import { isAppInstalled, runApp, killApp } from './build.js';
4
4
  import { killWithAwait } from '../../process.js';
5
5
  import { runMetro } from '../../bundlers/metro.js';
6
6
  import { AppNotInstalledError } from '../../errors/errors.js';
7
+ import { assert } from '../../utils.js';
7
8
  const iosPlatformAdapter = {
8
9
  name: 'ios',
9
10
  getEnvironment: async (runner) => {
10
- assertNativeRunnerConfig(runner);
11
+ assertIOSRunnerConfig(runner);
12
+ // TODO: system version is also important as there may be two emulators with the same name
13
+ // but different system versions
11
14
  let shouldStopSimulator = false;
12
- const simulatorStatus = await getSimulatorStatus(runner.deviceId);
15
+ const udid = await getSimulatorDeviceId(runner.deviceId, runner.systemVersion);
16
+ assert(!!udid, 'Simulator not found');
17
+ const simulatorStatus = await getSimulatorStatus(udid);
13
18
  const metroPromise = runMetro();
14
19
  if (simulatorStatus === 'stopped') {
15
- await runSimulator(runner.deviceId);
20
+ await runSimulator(udid);
16
21
  shouldStopSimulator = true;
17
22
  }
18
- const isInstalled = await isAppInstalled(runner.deviceId, runner.bundleId);
23
+ const isInstalled = await isAppInstalled(udid, runner.bundleId);
19
24
  if (!isInstalled) {
20
25
  throw new AppNotInstalledError(runner.deviceId, runner.bundleId, 'ios');
21
26
  }
22
27
  const metro = await metroPromise;
23
- await runApp(runner.deviceId, runner.bundleId);
28
+ await runApp(udid, runner.bundleId);
24
29
  return {
25
30
  restart: async () => {
26
- await runApp(runner.deviceId, runner.bundleId);
31
+ await runApp(udid, runner.bundleId);
27
32
  },
28
33
  dispose: async () => {
29
- await killApp(runner.deviceId, runner.bundleId);
34
+ await killApp(udid, runner.bundleId);
30
35
  if (shouldStopSimulator) {
31
- await stopSimulator(runner.deviceId);
36
+ await stopSimulator(udid);
32
37
  }
33
38
  await killWithAwait(metro);
34
39
  },
@@ -1,11 +1,11 @@
1
1
  export type IOSSimulatorStatus = 'stopped' | 'loading' | 'running';
2
- export declare const getSimulatorDeviceId: (simulatorName: string) => Promise<string | null>;
2
+ export declare const getSimulatorDeviceId: (simulatorName: string, systemVersion: string) => Promise<string | null>;
3
3
  export declare const getAvailableSimulators: () => Promise<Array<{
4
4
  name: string;
5
5
  udid: string;
6
6
  runtime: string;
7
7
  }>>;
8
- export declare const getSimulatorStatus: (simulatorName: string) => Promise<IOSSimulatorStatus>;
9
- export declare const runSimulator: (name: string) => Promise<void>;
10
- export declare const stopSimulator: (name: string) => Promise<void>;
8
+ export declare const getSimulatorStatus: (udid: string) => Promise<IOSSimulatorStatus>;
9
+ export declare const runSimulator: (udid: string) => Promise<void>;
10
+ export declare const stopSimulator: (udid: string) => Promise<void>;
11
11
  //# sourceMappingURL=simulator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/simulator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnE,eAAO,MAAM,oBAAoB,GAC/B,eAAe,MAAM,KACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CA4BvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAa,OAAO,CACrD,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,KACpB,OAAO,CAAC,kBAAkB,CAkC5B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAuC7D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAQ9D,CAAC"}
1
+ {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../src/platforms/ios/simulator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnE,eAAO,MAAM,oBAAoB,GAC/B,eAAe,MAAM,EACrB,eAAe,MAAM,KACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CA8BvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAa,OAAO,CACrD,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,KACX,OAAO,CAAC,kBAAkB,CAgC5B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAiC7D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAE9D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { spawn } from '@react-native-harness/tools';
2
- export const getSimulatorDeviceId = async (simulatorName) => {
2
+ export const getSimulatorDeviceId = async (simulatorName, systemVersion) => {
3
3
  try {
4
4
  const { stdout } = await spawn('xcrun', [
5
5
  'simctl',
@@ -8,15 +8,14 @@ export const getSimulatorDeviceId = async (simulatorName) => {
8
8
  '--json',
9
9
  ]);
10
10
  const devices = JSON.parse(stdout);
11
- // Find the device across all iOS versions
12
- for (const runtime in devices.devices) {
13
- if (runtime.includes('iOS')) {
14
- const runtimeDevices = devices.devices[runtime];
15
- const device = runtimeDevices.find((d) => d.name === simulatorName);
16
- if (device) {
17
- return device.udid;
18
- }
19
- }
11
+ const expectedRuntimeId = `com.apple.CoreSimulator.SimRuntime.iOS-${systemVersion.replace(/\./, '-')}`;
12
+ const runtime = devices.devices[expectedRuntimeId];
13
+ if (!runtime) {
14
+ return null;
15
+ }
16
+ const device = runtime.find((d) => d.name === simulatorName);
17
+ if (device) {
18
+ return device.udid;
20
19
  }
21
20
  return null;
22
21
  }
@@ -54,7 +53,7 @@ export const getAvailableSimulators = async () => {
54
53
  return [];
55
54
  }
56
55
  };
57
- export const getSimulatorStatus = async (simulatorName) => {
56
+ export const getSimulatorStatus = async (udid) => {
58
57
  try {
59
58
  const { stdout } = await spawn('xcrun', [
60
59
  'simctl',
@@ -66,7 +65,7 @@ export const getSimulatorStatus = async (simulatorName) => {
66
65
  for (const runtime in devices.devices) {
67
66
  if (runtime.includes('iOS')) {
68
67
  const runtimeDevices = devices.devices[runtime];
69
- const device = runtimeDevices.find((d) => d.name === simulatorName);
68
+ const device = runtimeDevices.find((d) => d.udid === udid);
70
69
  if (device) {
71
70
  switch (device.state) {
72
71
  case 'Booted':
@@ -85,13 +84,9 @@ export const getSimulatorStatus = async (simulatorName) => {
85
84
  return 'stopped';
86
85
  }
87
86
  };
88
- export const runSimulator = async (name) => {
89
- const deviceId = await getSimulatorDeviceId(name);
90
- if (!deviceId) {
91
- throw new Error('Simulator not found');
92
- }
87
+ export const runSimulator = async (udid) => {
93
88
  try {
94
- await spawn('xcrun', ['simctl', 'boot', deviceId]);
89
+ await spawn('xcrun', ['simctl', 'boot', udid]);
95
90
  }
96
91
  catch (bootError) {
97
92
  // Ignore if simulator is already booted
@@ -103,7 +98,7 @@ export const runSimulator = async (name) => {
103
98
  let attempts = 0;
104
99
  while (true) {
105
100
  attempts++;
106
- const status = await getSimulatorStatus(name);
101
+ const status = await getSimulatorStatus(udid);
107
102
  if (status === 'running') {
108
103
  break;
109
104
  }
@@ -113,16 +108,12 @@ export const runSimulator = async (name) => {
113
108
  await new Promise((resolve) => setTimeout(resolve, 1000));
114
109
  }
115
110
  };
116
- export const stopSimulator = async (name) => {
117
- const simulatorId = await getSimulatorDeviceId(name);
118
- if (!simulatorId) {
119
- return; // Already stopped
120
- }
121
- await stopSimulatorById(simulatorId);
111
+ export const stopSimulator = async (udid) => {
112
+ await stopSimulatorById(udid);
122
113
  };
123
- const stopSimulatorById = async (simulatorId) => {
114
+ const stopSimulatorById = async (udid) => {
124
115
  try {
125
- await spawn('xcrun', ['simctl', 'shutdown', simulatorId]);
116
+ await spawn('xcrun', ['simctl', 'shutdown', udid]);
126
117
  }
127
118
  catch (shutdownError) {
128
119
  // Ignore if simulator is already shut down
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/web/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAyDzD,eAAO,MAAM,kBAAkB,EAAE,eAgChC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/web/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,EAAE,eAOhC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,73 +1,9 @@
1
- import { assertWebRunnerConfig } from '@react-native-harness/config';
2
- import { logger } from '@react-native-harness/tools';
3
- import { chromium, firefox, webkit } from 'playwright';
4
- import { runMetro } from '../../bundlers/metro.js';
5
- const runBrowser = async (url, browserType) => {
6
- // For now, we're only supporting Firefox, but this will be expanded
7
- // to support other browsers based on the config
8
- let browser;
9
- switch (browserType) {
10
- case 'firefox':
11
- browser = await firefox.launch({
12
- headless: false,
13
- devtools: false,
14
- args: [
15
- '--no-sandbox',
16
- '--disable-setuid-sandbox',
17
- '--disable-dev-shm-usage',
18
- '--disable-web-security',
19
- '--allow-insecure-localhost',
20
- '--ignore-certificate-errors',
21
- ],
22
- ignoreDefaultArgs: ['--disable-extensions'],
23
- });
24
- break;
25
- case 'chrome':
26
- browser = await chromium.launch({
27
- headless: false,
28
- devtools: false,
29
- });
30
- break;
31
- case 'safari':
32
- browser = await webkit.launch({
33
- headless: false,
34
- devtools: false,
35
- });
36
- break;
37
- default:
38
- throw new Error(`Unsupported browser type: ${browserType}`);
39
- }
40
- const context = await browser.newContext({
41
- bypassCSP: true,
42
- ignoreHTTPSErrors: true,
43
- });
44
- const page = await context.newPage();
45
- await page.setViewportSize({ width: 1280, height: 720 });
46
- await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 60000 });
47
- return { browser, page };
48
- };
1
+ import { assertWebRunnerConfig, } from '@react-native-harness/config';
49
2
  export const webPlatformAdapter = {
50
3
  name: 'web',
51
4
  getEnvironment: async (runner) => {
52
5
  assertWebRunnerConfig(runner);
53
- logger.debug('Starting web environment');
54
- logger.debug('Running metro');
55
- const metro = await runMetro(true);
56
- logger.debug('Metro running');
57
- logger.debug(`Running browser: ${runner.browser}`);
58
- const { browser, page } = await runBrowser('http://localhost:8081', runner.browser);
59
- logger.debug('Browser running');
60
- return {
61
- restart: async () => {
62
- logger.debug('Reloading page');
63
- await page.reload({ waitUntil: 'domcontentloaded', timeout: 60000 });
64
- },
65
- dispose: async () => {
66
- logger.debug('Closing browser');
67
- await browser.close();
68
- metro.kill();
69
- },
70
- };
6
+ throw new Error('Web platform is currently disabled.');
71
7
  },
72
8
  };
73
9
  export default webPlatformAdapter;
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/tslib/modules/index.d.ts","../node_modules/commander/typings/index.d.ts","../node_modules/commander/typings/esm.d.mts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/ws/index.d.mts","../../../node_modules/birpc/dist/index.d.ts","../../bridge/dist/shared/test-runner.d.ts","../../bridge/dist/shared/test-collector.d.ts","../../bridge/dist/shared.d.ts","../../bridge/dist/server.d.ts","../../../node_modules/zod/dist/types/v3/helpers/typealiases.d.ts","../../../node_modules/zod/dist/types/v3/helpers/util.d.ts","../../../node_modules/zod/dist/types/v3/zoderror.d.ts","../../../node_modules/zod/dist/types/v3/locales/en.d.ts","../../../node_modules/zod/dist/types/v3/errors.d.ts","../../../node_modules/zod/dist/types/v3/helpers/parseutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/enumutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/errorutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/partialutil.d.ts","../../../node_modules/zod/dist/types/v3/standard-schema.d.ts","../../../node_modules/zod/dist/types/v3/types.d.ts","../../../node_modules/zod/dist/types/v3/external.d.ts","../../../node_modules/zod/dist/types/v3/index.d.ts","../../../node_modules/zod/dist/types/index.d.ts","../../config/dist/types.d.ts","../../config/dist/reader.d.ts","../../config/dist/errors.d.ts","../../config/dist/index.d.ts","../src/platforms/platform-adapter.ts","../../tools/dist/abort.d.ts","../../../node_modules/picocolors/types.d.ts","../../../node_modules/picocolors/picocolors.d.ts","../../tools/dist/color.d.ts","../../tools/dist/logger.d.ts","../../../node_modules/@clack/core/dist/index.d.mts","../../../node_modules/@clack/prompts/dist/index.d.mts","../../tools/dist/prompts.d.ts","../../../node_modules/nano-spawn/source/index.d.ts","../../tools/dist/spawn.d.ts","../../tools/dist/react-native.d.ts","../../tools/dist/index.d.ts","../src/platforms/android/emulator.ts","../src/platforms/android/build.ts","../src/process.ts","../src/bundlers/metro.ts","../src/errors/errors.ts","../src/platforms/android/index.ts","../src/platforms/ios/simulator.ts","../src/platforms/ios/build.ts","../src/platforms/ios/index.ts","../../../node_modules/playwright-core/types/protocol.d.ts","../../../node_modules/playwright-core/types/structs.d.ts","../../../node_modules/playwright-core/types/types.d.ts","../../../node_modules/playwright-core/index.d.ts","../../../node_modules/playwright/index.d.ts","../src/platforms/web/index.ts","../src/platforms/platform-registry.ts","../../../node_modules/minipass/dist/esm/index.d.ts","../node_modules/lru-cache/dist/esm/index.d.ts","../node_modules/path-scurry/dist/esm/index.d.ts","../node_modules/minimatch/dist/esm/ast.d.ts","../node_modules/minimatch/dist/esm/escape.d.ts","../node_modules/minimatch/dist/esm/unescape.d.ts","../node_modules/minimatch/dist/esm/index.d.ts","../node_modules/glob/dist/esm/pattern.d.ts","../node_modules/glob/dist/esm/processor.d.ts","../node_modules/glob/dist/esm/walker.d.ts","../node_modules/glob/dist/esm/ignore.d.ts","../node_modules/glob/dist/esm/glob.d.ts","../node_modules/glob/dist/esm/has-magic.d.ts","../node_modules/glob/dist/esm/index.d.ts","../../bridge/dist/index.d.ts","../src/reporters/default-reporter.ts","../src/utils.ts","../src/commands/test.ts","../src/errors/errorhandler.ts","../src/index.ts","../src/platforms/android/device.ts","../src/platforms/ios/device.ts","../src/reporters/junit-reporter.ts","../../tools/dist/isinteractive.d.ts","../../tools/src/abort.ts","../../tools/src/color.ts","../../tools/src/isinteractive.ts","../../tools/src/logger.ts","../../tools/src/prompts.ts","../../tools/src/spawn.ts"],"fileIdsList":[[83,86,98],[86,98,136],[52,98],[55,98],[56,61,89,98],[57,68,69,76,86,97,98],[57,58,68,76,98],[59,98],[60,61,69,77,98],[61,86,94,98],[62,64,68,76,98],[63,98],[64,65,98],[68,98],[66,68,98],[68,69,70,86,97,98],[68,69,70,83,86,89,98],[98,102],[98],[64,68,71,76,86,97,98],[68,69,71,72,76,86,94,97,98],[71,73,86,94,97,98],[52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],[68,74,98],[75,97,98],[64,68,76,86,98],[77,98],[78,98],[55,79,98],[80,96,98,102],[81,98],[82,98],[68,83,84,98],[83,85,98,100],[56,68,86,87,88,89,98],[56,86,88,98],[86,87,98],[89,98],[90,98],[68,92,93,98],[92,93,98],[61,76,86,94,98],[95,98],[76,96,98],[56,71,82,97,98],[61,98],[86,98,99],[98,100],[98,101],[56,61,68,70,79,86,97,98,100,102],[86,98,103],[68,71,73,76,86,94,97,98,103,105],[68,90,98,105],[57,98],[98,132],[98,154],[57,69,86,98,152,153],[98,155],[48,98],[98,124],[98,114,115],[98,112,113,114,116,117,122],[98,113,114],[98,122],[98,123],[98,114],[98,112,113,114,117,118,119,120,121],[98,112,113,124],[98,110],[98,106,107,110],[98,108,109],[50,98],[98,159,161,165,166,169],[98,170],[98,161,165,168],[98,159,161,165,168,169,170,171],[98,165],[98,161,165,166,168],[98,159,161,166,167,169],[98,162,163,164],[69,78,98,159,160],[49,57,98,142],[49,98,111,129,130,142,147,158,172,173,174,175],[49,98,129,147,175],[49,98,129],[49,51,69,78,97,98,142,176,177],[49,78,98,142],[49,98,142],[49,57,98,129,130,142,143,144,145,146,147],[49,98,129,130,145,146,147,149,150],[49,98,130,148,151,157],[49,98,129,130,142,146,156],[49,57,98],[49,98,129,142,173],[49,69,78,98,129,173],[49,98],[98,126,127,128],[98,126],[98,125],[98,133],[98,131,134,135,138,140,141],[98,137],[98,139]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"1a2ae3df505891912038749a39e434643cf1f91a578475ae049f36e35c870c58","impliedFormat":1},{"version":"b124c0624b15412ace7d54644ade38d7a69db7e25488a1a4d2a8df6e11696538","impliedFormat":99},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"3256f3cccd578f9e7fe3a28096c505634bebcee8afb738ffa99368e536ca3a0b","impliedFormat":1},{"version":"1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"f2ee9c0f4e3e40fa79743b5bad3d085d41cf6854c68687737c00d3f6d0ed7941","impliedFormat":99},{"version":"be389ee0d0f5e70329ea4c2fb44b7716e7ceda3680fa0ee32c22329ef8ef7e60","impliedFormat":99},{"version":"402ac3b4c96c5718d18c00339c6e4c66ff0b1a0d8a166570107472342fd57e7a","impliedFormat":99},{"version":"0df9e64851cbe9801f868551cae57fffd2d4339ac98b4d6ff00aad10a5cd8f33","impliedFormat":99},{"version":"18b54e0f8a18bb6b39598a08fe20f310fe683c6e0421bd1d2cda71faeb36e630","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"7b1626355a7fc135e6abf7d07c5a0d3e3d8ee2d48c073eb7b00f4d8ceca47d87","impliedFormat":99},{"version":"32ae4dd91e565f7e81d22807dcfe460b766d52d7e47141ff0a12a9d3ade09616","impliedFormat":99},{"version":"ab21498cc9c3434e5d72dede3ec195c94b992f2c37b2e8458e06503ae428d626","impliedFormat":99},{"version":"bac31d869789d8dcf7c14dd0d0fae67acea2437fdaf23e4a120eb4bcd5c7d88a","impliedFormat":99},{"version":"8e759f5797c82cb8b75098ed472371537d9c96e7beb4794f7ffef8b6349e09bb","signature":"33039f6557774d3b82268b2bd148d32e384f56b99d465c8bb293ef109e837654","impliedFormat":99},{"version":"3e442c402123b264ccdf7123c1366e1473d9c39f5db69373e938284fc01c49ce","impliedFormat":99},{"version":"590595c1230ebb7c43ebac51b2b2da956a719b213355b4358e2a6b16a8b5936c","impliedFormat":1},{"version":"8c5f0739f00f89f89b03a1fe6658c6d78000d7ebd7f556f0f8d6908fa679de35","impliedFormat":1},{"version":"a15c0df1ac9b2a4d833490522614fc57ae97d70a07bf4964a4d6bb73f3f56399","impliedFormat":99},{"version":"e4cead4a8596a6f051c36ef184f5fb6f117232eefdc1f98ef9847c9efc2c8911","impliedFormat":99},{"version":"e191585a6a460d89791b3d3d39a10607bbcefa7f7c9812af6ca5f11c33d398d1","impliedFormat":99},{"version":"24379e38ef6db808a7aed9b162dae44d16f84f63c04994efb8b0106bcc589909","impliedFormat":99},{"version":"8af66ec621033f41ccb2bcee775e883c2649fa0db71192fe863185b0281082a6","impliedFormat":99},{"version":"9d4af7bde3e345d3071b5fefbece2d3482971aae89ded50f302c8cb246e81581","impliedFormat":99},{"version":"f3eb748185038bca941a02994b1b0b5803c0a2ce818b8a7d72a24a6b814f5d3e","impliedFormat":99},{"version":"2ba26b5ab00dd3495eeb733cdb46d939a8eb755a395a91169158cdf962aff6c3","impliedFormat":99},{"version":"2e1c22b413f96fd388774b174588816f4bd787486ecfe74f5bcb361dd6bfce50","impliedFormat":99},{"version":"6eefa861b6aa125e0f5f8ad9f2f5d9cebee21ecc5f78d4494faf47a637d6208c","signature":"6fe995c2a73841b3fcd30e41789898aca49aa8873554db00f6f14c12a60eeefa","impliedFormat":99},{"version":"c86d845c9dd0aec9a416a2f9d409f19beb105abd650228a15c5cd731d96ddcf7","signature":"5a5615df20c0bdc3ed37d12b4d18ad0668a9fa9c94a6a25505aa644855e862aa","impliedFormat":99},{"version":"69798070e4c8f8553c7ed95b3210904b4448a2caf41d94e9f75a9f816691b1c7","signature":"ce1abe69f27b27079836681c6cdd68b7580e8ccbfe03e2707928241a9b244df5","impliedFormat":99},{"version":"b64eea7b48f02b36e66b4bda1a00862183c7dfeb97fff332c0df8009af449c16","signature":"a5988ef9d5643ff7dc67acc7613caf97069e0940797458fe20c8eb6506aa7e7e","impliedFormat":99},{"version":"c1760e09dd9e385870ba7f8dbb58eecd82951023efcbf5a45127728d44cb0a48","signature":"e9d0ff10b45cdd0f19764775f30faa7c1e2f18d314386d6e3ee4e77f97a3ff32","impliedFormat":99},{"version":"86ecd4570243533a3580afb652d4cb0bd7fe5875883efc989074dde45fbb05c3","signature":"1d283a2b9afc40a8734a3e8b901fec2b965635d8c1cf889ff51797857ae0f8b1","impliedFormat":99},{"version":"6c8cad21e5bbab92666187c13780cb183dec37b10fcaed3e3e8b981ef70f1c7c","signature":"bf54878ba05f58cd83ee75460343ee878f6fb1eff2c90f2ededd2cd474375f0d","impliedFormat":99},{"version":"10af6ab7f300b0efea1b97b67048a6bad016600d175654dae193ad46134287e7","signature":"90086ab58d5d9e95e55850554ca9e35850b6531e8ada7da93c4b61bdee2647ba","impliedFormat":99},{"version":"43770b6a8c1132dd655a7e8bb834d97209ce371f92dca12ecb200c1bb205e8cb","signature":"df429fc17c447fc67d0390c2d78f838378786fbd0cc989b6948fc1cd7262c17a","impliedFormat":99},{"version":"e27b7ea88d3795a698ae3454516e785c58a100d2da74d58e82ca6c3f173a5607","impliedFormat":1},{"version":"32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","impliedFormat":1},{"version":"a7589d618b8b27dc24d61eaf0b66e3e02f0a53982c25fe2727c9d95a6db7cf0e","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"b07f64ff6ec710998a62b07377fbda0ab4c313ba1f0055bfe9faa22cffedd47c","impliedFormat":1},{"version":"c2aca6a7d061fa57df9a0a50b9ef9b6d611b77cfd23461edc7be01375e24a784","signature":"86172af4524210fbeb025fcabea1268e78715fc0a420b916d6a8cd20934e7eeb","impliedFormat":99},{"version":"8db703ab718fba5f6263e2b414dbbb42b4f6f8202e55fd449820df0f69594e49","signature":"9f1bad9472cb60fb2bcd138efef4f1b613b91410f44fda0d830184ab06f4b8ef","impliedFormat":99},{"version":"4115aa147c5a64817fb55274b44087cbf1bc90f54906bfdfc9ee847a71cd91cf","impliedFormat":99},{"version":"599b42c2c7227d59788f9239a30b16e465e15127c7c4541d30b801c23ca681e6","impliedFormat":99},{"version":"072f583571d6e3d30cd9760ee3485d29484fb7b54ba772ac135c747a380096a1","impliedFormat":99},{"version":"7212c2d58855b8df35275180e97903a4b6093d4fbaefea863d8d028da63938c6","impliedFormat":99},{"version":"5bd0f306b4a9dc65bccf38d9295bc52720d2fa455e06f604529d981b5eb8d9dc","impliedFormat":99},{"version":"f30992084e86f4b4c223c558b187cb0a9e83071592bd830d8ff2a471ee2bf2d4","impliedFormat":99},{"version":"854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","impliedFormat":99},{"version":"dd9faff42b456b5f03b85d8fbd64838eb92f6f7b03b36322cbc59c005b7033d3","impliedFormat":99},{"version":"6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","impliedFormat":99},{"version":"9dce9fc12e9a79d1135699d525aa6b44b71a45e32e3fa0cf331060b980b16317","impliedFormat":99},{"version":"586b2fd8a7d582329658aaceec22f8a5399e05013deb49bcfde28f95f093c8ee","impliedFormat":99},{"version":"59c44b081724d4ab8039988aba34ee6b3bd41c30fc2d8686f4ed06588397b2f7","impliedFormat":99},{"version":"ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","impliedFormat":99},{"version":"3d8885d13f76ff35b7860039e83c936ff37553849707c2fd1d580d193a52be5b","impliedFormat":99},{"version":"a955c49e9dc38915d1a9860dc049a3b5fa46cb4e9b832ebcde89d96d6e68b8e3","impliedFormat":99},{"version":"a1458c573dea42ad7717f60fa0cd280429cd406ea8f997e62f396b0780dc519e","signature":"7eafa82caf0883050cc715861484f1126fdf12900095e0dfeeac0ac8cd884343","impliedFormat":99},{"version":"7fb7e1c1820efcfc66a478e400e9b60546aaa3d5856a3f47a1f752b34c0e684b","signature":"18036d59518e53236d9c59440b5b98b8bd3c717e96b35074dd99ec73465c1156","impliedFormat":99},{"version":"943e4d430b34af4b8acfb293497df8fbb1a335a6846ff8e448a35b2e1ec4cb65","signature":"a1bd754cf6b1b8e70370e8dbad7d4abd7d73178fa1e0eb1956f36ab72b5d7144","impliedFormat":99},{"version":"c1e5c3c334c1e941b599b2461e2ffd0e8e2a36f0b4f9de1bc652da6375b44b15","signature":"72bde9177d6ecb7d2a45761aaa15ef458bf60bedd2071150f8b2c60445c3b115","impliedFormat":99},{"version":"f3c71b768f069f48a2e2bdee211f4705e64f7988f3a514bb34cc2a299c002166","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012","impliedFormat":99},{"version":"a7a0f447cd9fef8b36c1f55038df6b2358d871c0e62ca302cf59eee1493db464","signature":"be79133144bff926c2ec3a838ec1d42fa7a3ca4556199654d047c6588e709ab5","impliedFormat":99},{"version":"10af6ab7f300b0efea1b97b67048a6bad016600d175654dae193ad46134287e7","signature":"90086ab58d5d9e95e55850554ca9e35850b6531e8ada7da93c4b61bdee2647ba","impliedFormat":99},{"version":"ae3e1911c27e8a5db2eb579296c0952809d40c8f38c18e0f58e8fc483fe6e1e5","signature":"e6761f0a3e4e68466d38327d5cd380f5f3c75810fd82cafed45110d60d40a3cc","impliedFormat":99},{"version":"20666143132be33320b033fe7e995c3ce1dcd82585ec140bc833d2abe0bc927a","impliedFormat":99}],"root":[130,131,134,135,138,140,[143,151],157,158,[174,182]],"resolvedRoot":[[131,183],[134,184],[182,185],[135,186],[138,187],[140,188]],"options":{"composite":true,"declarationMap":true,"emitDeclarationOnly":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[136,1],[137,2],[52,3],[53,3],[55,4],[56,5],[57,6],[58,7],[59,8],[60,9],[61,10],[62,11],[63,12],[64,13],[65,13],[67,14],[66,15],[68,14],[69,16],[70,17],[54,18],[104,19],[71,20],[72,21],[73,22],[105,23],[74,24],[75,25],[76,26],[77,27],[78,28],[79,29],[80,30],[81,31],[82,32],[83,33],[84,33],[85,34],[86,35],[88,36],[87,37],[89,38],[90,39],[91,19],[92,40],[93,41],[94,42],[95,43],[96,44],[97,45],[98,46],[99,47],[100,48],[101,49],[102,50],[103,51],[106,52],[107,19],[159,53],[139,54],[133,55],[132,19],[155,56],[152,19],[153,56],[154,57],[156,58],[49,59],[48,19],[46,19],[47,19],[8,19],[10,19],[9,19],[2,19],[11,19],[12,19],[13,19],[14,19],[15,19],[16,19],[17,19],[18,19],[3,19],[19,19],[20,19],[4,19],[21,19],[25,19],[22,19],[23,19],[24,19],[26,19],[27,19],[28,19],[5,19],[29,19],[30,19],[31,19],[32,19],[6,19],[36,19],[33,19],[34,19],[35,19],[37,19],[7,19],[38,19],[43,19],[44,19],[39,19],[40,19],[41,19],[42,19],[1,19],[45,19],[125,60],[116,61],[123,62],[118,19],[119,19],[117,63],[120,64],[112,19],[113,19],[124,65],[115,66],[121,19],[122,67],[114,68],[173,69],[111,70],[110,71],[109,19],[108,19],[51,72],[50,19],[170,73],[171,74],[169,75],[172,76],[166,77],[167,78],[168,79],[160,19],[162,77],[163,77],[165,80],[164,77],[161,81],[146,82],[176,83],[177,84],[147,85],[178,86],[144,87],[179,88],[143,82],[148,89],[150,88],[180,88],[151,90],[149,88],[130,85],[158,91],[157,92],[145,93],[174,94],[181,95],[175,96],[128,19],[129,97],[127,98],[126,99],[131,19],[134,100],[142,101],[182,19],[135,19],[138,102],[141,19],[140,103]],"latestChangedDtsFile":"./platforms/ios/build.d.ts","version":"5.8.3"}
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/tslib/modules/index.d.ts","../node_modules/commander/typings/index.d.ts","../node_modules/commander/typings/esm.d.mts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/ws/index.d.mts","../../../node_modules/birpc/dist/index.d.ts","../../bridge/dist/shared/test-runner.d.ts","../../bridge/dist/shared/test-collector.d.ts","../../bridge/dist/shared.d.ts","../../bridge/dist/server.d.ts","../../../node_modules/zod/dist/types/v3/helpers/typealiases.d.ts","../../../node_modules/zod/dist/types/v3/helpers/util.d.ts","../../../node_modules/zod/dist/types/v3/zoderror.d.ts","../../../node_modules/zod/dist/types/v3/locales/en.d.ts","../../../node_modules/zod/dist/types/v3/errors.d.ts","../../../node_modules/zod/dist/types/v3/helpers/parseutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/enumutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/errorutil.d.ts","../../../node_modules/zod/dist/types/v3/helpers/partialutil.d.ts","../../../node_modules/zod/dist/types/v3/standard-schema.d.ts","../../../node_modules/zod/dist/types/v3/types.d.ts","../../../node_modules/zod/dist/types/v3/external.d.ts","../../../node_modules/zod/dist/types/v3/index.d.ts","../../../node_modules/zod/dist/types/index.d.ts","../../config/dist/types.d.ts","../../config/dist/reader.d.ts","../../config/dist/errors.d.ts","../../config/dist/index.d.ts","../src/platforms/platform-adapter.ts","../../tools/dist/abort.d.ts","../../../node_modules/picocolors/types.d.ts","../../../node_modules/picocolors/picocolors.d.ts","../../tools/dist/color.d.ts","../../tools/dist/logger.d.ts","../../../node_modules/@clack/core/dist/index.d.mts","../../../node_modules/@clack/prompts/dist/index.d.mts","../../tools/dist/prompts.d.ts","../../../node_modules/nano-spawn/source/index.d.ts","../../tools/dist/spawn.d.ts","../../tools/dist/react-native.d.ts","../../tools/dist/index.d.ts","../src/platforms/android/emulator.ts","../src/platforms/android/build.ts","../src/process.ts","../src/bundlers/metro.ts","../src/errors/errors.ts","../src/platforms/android/index.ts","../src/platforms/ios/simulator.ts","../src/platforms/ios/build.ts","../src/utils.ts","../src/platforms/ios/index.ts","../src/platforms/web/index.ts","../src/platforms/platform-registry.ts","../../../node_modules/minipass/dist/esm/index.d.ts","../node_modules/lru-cache/dist/esm/index.d.ts","../node_modules/path-scurry/dist/esm/index.d.ts","../node_modules/minimatch/dist/esm/ast.d.ts","../node_modules/minimatch/dist/esm/escape.d.ts","../node_modules/minimatch/dist/esm/unescape.d.ts","../node_modules/minimatch/dist/esm/index.d.ts","../node_modules/glob/dist/esm/pattern.d.ts","../node_modules/glob/dist/esm/processor.d.ts","../node_modules/glob/dist/esm/walker.d.ts","../node_modules/glob/dist/esm/ignore.d.ts","../node_modules/glob/dist/esm/glob.d.ts","../node_modules/glob/dist/esm/has-magic.d.ts","../node_modules/glob/dist/esm/index.d.ts","../../bridge/dist/index.d.ts","../src/reporters/default-reporter.ts","../src/commands/test.ts","../src/errors/errorhandler.ts","../src/index.ts","../src/platforms/android/device.ts","../src/platforms/ios/device.ts","../src/reporters/junit-reporter.ts","../../tools/dist/isinteractive.d.ts","../../tools/src/abort.ts","../../tools/src/color.ts","../../tools/src/isinteractive.ts","../../tools/src/logger.ts","../../tools/src/prompts.ts","../../tools/src/spawn.ts"],"fileIdsList":[[83,86,98],[86,98,136],[52,98],[55,98],[56,61,89,98],[57,68,69,76,86,97,98],[57,58,68,76,98],[59,98],[60,61,69,77,98],[61,86,94,98],[62,64,68,76,98],[63,98],[64,65,98],[68,98],[66,68,98],[68,69,70,86,97,98],[68,69,70,83,86,89,98],[98,102],[98],[64,68,71,76,86,97,98],[68,69,71,72,76,86,94,97,98],[71,73,86,94,97,98],[52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],[68,74,98],[75,97,98],[64,68,76,86,98],[77,98],[78,98],[55,79,98],[80,96,98,102],[81,98],[82,98],[68,83,84,98],[83,85,98,100],[56,68,86,87,88,89,98],[56,86,88,98],[86,87,98],[89,98],[90,98],[68,92,93,98],[92,93,98],[61,76,86,94,98],[95,98],[76,96,98],[56,71,82,97,98],[61,98],[86,98,99],[98,100],[98,101],[56,61,68,70,79,86,97,98,100,102],[86,98,103],[68,71,73,76,86,94,97,98,103,105],[68,90,98,105],[57,98],[98,132],[48,98],[98,124],[98,114,115],[98,112,113,114,116,117,122],[98,113,114],[98,122],[98,123],[98,114],[98,112,113,114,117,118,119,120,121],[98,112,113,124],[98,110],[98,106,107,110],[98,108,109],[50,98],[98,155,157,161,162,165],[98,166],[98,157,161,164],[98,155,157,161,164,165,166,167],[98,161],[98,157,161,162,164],[98,155,157,162,163,165],[98,158,159,160],[69,78,98,155,156],[49,57,98,142],[49,98,111,129,130,142,147,151,154,168,169,170],[49,98,129,147,151],[49,98,129],[49,51,69,78,97,98,142,171,172],[49,78,98,142],[49,98,142],[49,57,98,129,130,142,143,144,145,146,147],[49,98,129,130,145,146,147,149,150,151],[49,98,130,148,152,153],[49,98,129,130],[49,57,98],[49,98,129,142,169],[49,69,78,98,129,169],[49,98],[98,126,127,128],[98,126],[98,125],[98,133],[98,131,134,135,138,140,141],[98,137],[98,139]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"1a2ae3df505891912038749a39e434643cf1f91a578475ae049f36e35c870c58","impliedFormat":1},{"version":"b124c0624b15412ace7d54644ade38d7a69db7e25488a1a4d2a8df6e11696538","impliedFormat":99},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"3256f3cccd578f9e7fe3a28096c505634bebcee8afb738ffa99368e536ca3a0b","impliedFormat":1},{"version":"1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"f2ee9c0f4e3e40fa79743b5bad3d085d41cf6854c68687737c00d3f6d0ed7941","impliedFormat":99},{"version":"be389ee0d0f5e70329ea4c2fb44b7716e7ceda3680fa0ee32c22329ef8ef7e60","impliedFormat":99},{"version":"402ac3b4c96c5718d18c00339c6e4c66ff0b1a0d8a166570107472342fd57e7a","impliedFormat":99},{"version":"0df9e64851cbe9801f868551cae57fffd2d4339ac98b4d6ff00aad10a5cd8f33","impliedFormat":99},{"version":"18b54e0f8a18bb6b39598a08fe20f310fe683c6e0421bd1d2cda71faeb36e630","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"90b71a5664229ca2f203273a41f843d57b3ce41a19bc09a95bad1b01721daf17","impliedFormat":99},{"version":"32ae4dd91e565f7e81d22807dcfe460b766d52d7e47141ff0a12a9d3ade09616","impliedFormat":99},{"version":"ab21498cc9c3434e5d72dede3ec195c94b992f2c37b2e8458e06503ae428d626","impliedFormat":99},{"version":"106b50cbf01abab7c0561efc652cf90fa882b75d08eecaf758bd6d890c531d08","impliedFormat":99},{"version":"8e759f5797c82cb8b75098ed472371537d9c96e7beb4794f7ffef8b6349e09bb","signature":"33039f6557774d3b82268b2bd148d32e384f56b99d465c8bb293ef109e837654","impliedFormat":99},{"version":"3e442c402123b264ccdf7123c1366e1473d9c39f5db69373e938284fc01c49ce","impliedFormat":99},{"version":"590595c1230ebb7c43ebac51b2b2da956a719b213355b4358e2a6b16a8b5936c","impliedFormat":1},{"version":"8c5f0739f00f89f89b03a1fe6658c6d78000d7ebd7f556f0f8d6908fa679de35","impliedFormat":1},{"version":"a15c0df1ac9b2a4d833490522614fc57ae97d70a07bf4964a4d6bb73f3f56399","impliedFormat":99},{"version":"e4cead4a8596a6f051c36ef184f5fb6f117232eefdc1f98ef9847c9efc2c8911","impliedFormat":99},{"version":"e191585a6a460d89791b3d3d39a10607bbcefa7f7c9812af6ca5f11c33d398d1","impliedFormat":99},{"version":"24379e38ef6db808a7aed9b162dae44d16f84f63c04994efb8b0106bcc589909","impliedFormat":99},{"version":"8af66ec621033f41ccb2bcee775e883c2649fa0db71192fe863185b0281082a6","impliedFormat":99},{"version":"9d4af7bde3e345d3071b5fefbece2d3482971aae89ded50f302c8cb246e81581","impliedFormat":99},{"version":"f3eb748185038bca941a02994b1b0b5803c0a2ce818b8a7d72a24a6b814f5d3e","impliedFormat":99},{"version":"2ba26b5ab00dd3495eeb733cdb46d939a8eb755a395a91169158cdf962aff6c3","impliedFormat":99},{"version":"2e1c22b413f96fd388774b174588816f4bd787486ecfe74f5bcb361dd6bfce50","impliedFormat":99},{"version":"6eefa861b6aa125e0f5f8ad9f2f5d9cebee21ecc5f78d4494faf47a637d6208c","signature":"6fe995c2a73841b3fcd30e41789898aca49aa8873554db00f6f14c12a60eeefa","impliedFormat":99},{"version":"c86d845c9dd0aec9a416a2f9d409f19beb105abd650228a15c5cd731d96ddcf7","signature":"5a5615df20c0bdc3ed37d12b4d18ad0668a9fa9c94a6a25505aa644855e862aa","impliedFormat":99},{"version":"69798070e4c8f8553c7ed95b3210904b4448a2caf41d94e9f75a9f816691b1c7","signature":"ce1abe69f27b27079836681c6cdd68b7580e8ccbfe03e2707928241a9b244df5","impliedFormat":99},{"version":"032047d584014976c6bd1022d13534fd363a46cebe2931b31396c9c08299e3d7","signature":"a5988ef9d5643ff7dc67acc7613caf97069e0940797458fe20c8eb6506aa7e7e","impliedFormat":99},{"version":"c1760e09dd9e385870ba7f8dbb58eecd82951023efcbf5a45127728d44cb0a48","signature":"e9d0ff10b45cdd0f19764775f30faa7c1e2f18d314386d6e3ee4e77f97a3ff32","impliedFormat":99},{"version":"e7e5cc867a24a7b44c27bb3c3d059295c0e6c94a6b60ffa5b6fad2e153c8676d","signature":"1d283a2b9afc40a8734a3e8b901fec2b965635d8c1cf889ff51797857ae0f8b1","impliedFormat":99},{"version":"8363eb809a2c2e07e4f7ce2d96e1ef995b4ffe7301049fe650f0c71fb14c7727","signature":"b3d9a80837694108b7698980d7f58913d6ed1883c610bb4e0947b15debd6bfd1","impliedFormat":99},{"version":"87a9a91c6edf6517501bea5052302b42b95d7f8ae76ebff4fc07e17f14e4dc39","signature":"a38041473a7082dffcbe3879593f424cafcaec4114f7024d0772612d85b2b595","impliedFormat":99},{"version":"7fb7e1c1820efcfc66a478e400e9b60546aaa3d5856a3f47a1f752b34c0e684b","signature":"18036d59518e53236d9c59440b5b98b8bd3c717e96b35074dd99ec73465c1156","impliedFormat":99},{"version":"19d8b14f61c343a6d6904a7ba0f367506c878e228ec0e1cd3ba71fc0a9bb49a1","signature":"df429fc17c447fc67d0390c2d78f838378786fbd0cc989b6948fc1cd7262c17a","impliedFormat":99},{"version":"925827c23b1fd251cc8ba72c900321426f89c8ae9e7fe85c228bde13ff281d39","signature":"86172af4524210fbeb025fcabea1268e78715fc0a420b916d6a8cd20934e7eeb","impliedFormat":99},{"version":"8db703ab718fba5f6263e2b414dbbb42b4f6f8202e55fd449820df0f69594e49","signature":"9f1bad9472cb60fb2bcd138efef4f1b613b91410f44fda0d830184ab06f4b8ef","impliedFormat":99},{"version":"4115aa147c5a64817fb55274b44087cbf1bc90f54906bfdfc9ee847a71cd91cf","impliedFormat":99},{"version":"599b42c2c7227d59788f9239a30b16e465e15127c7c4541d30b801c23ca681e6","impliedFormat":99},{"version":"072f583571d6e3d30cd9760ee3485d29484fb7b54ba772ac135c747a380096a1","impliedFormat":99},{"version":"7212c2d58855b8df35275180e97903a4b6093d4fbaefea863d8d028da63938c6","impliedFormat":99},{"version":"5bd0f306b4a9dc65bccf38d9295bc52720d2fa455e06f604529d981b5eb8d9dc","impliedFormat":99},{"version":"f30992084e86f4b4c223c558b187cb0a9e83071592bd830d8ff2a471ee2bf2d4","impliedFormat":99},{"version":"854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","impliedFormat":99},{"version":"dd9faff42b456b5f03b85d8fbd64838eb92f6f7b03b36322cbc59c005b7033d3","impliedFormat":99},{"version":"6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","impliedFormat":99},{"version":"9dce9fc12e9a79d1135699d525aa6b44b71a45e32e3fa0cf331060b980b16317","impliedFormat":99},{"version":"586b2fd8a7d582329658aaceec22f8a5399e05013deb49bcfde28f95f093c8ee","impliedFormat":99},{"version":"59c44b081724d4ab8039988aba34ee6b3bd41c30fc2d8686f4ed06588397b2f7","impliedFormat":99},{"version":"ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","impliedFormat":99},{"version":"3d8885d13f76ff35b7860039e83c936ff37553849707c2fd1d580d193a52be5b","impliedFormat":99},{"version":"a955c49e9dc38915d1a9860dc049a3b5fa46cb4e9b832ebcde89d96d6e68b8e3","impliedFormat":99},{"version":"a1458c573dea42ad7717f60fa0cd280429cd406ea8f997e62f396b0780dc519e","signature":"7eafa82caf0883050cc715861484f1126fdf12900095e0dfeeac0ac8cd884343","impliedFormat":99},{"version":"943e4d430b34af4b8acfb293497df8fbb1a335a6846ff8e448a35b2e1ec4cb65","signature":"a1bd754cf6b1b8e70370e8dbad7d4abd7d73178fa1e0eb1956f36ab72b5d7144","impliedFormat":99},{"version":"c1e5c3c334c1e941b599b2461e2ffd0e8e2a36f0b4f9de1bc652da6375b44b15","signature":"72bde9177d6ecb7d2a45761aaa15ef458bf60bedd2071150f8b2c60445c3b115","impliedFormat":99},{"version":"f3c71b768f069f48a2e2bdee211f4705e64f7988f3a514bb34cc2a299c002166","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012","impliedFormat":99},{"version":"a7a0f447cd9fef8b36c1f55038df6b2358d871c0e62ca302cf59eee1493db464","signature":"be79133144bff926c2ec3a838ec1d42fa7a3ca4556199654d047c6588e709ab5","impliedFormat":99},{"version":"10af6ab7f300b0efea1b97b67048a6bad016600d175654dae193ad46134287e7","signature":"90086ab58d5d9e95e55850554ca9e35850b6531e8ada7da93c4b61bdee2647ba","impliedFormat":99},{"version":"ae3e1911c27e8a5db2eb579296c0952809d40c8f38c18e0f58e8fc483fe6e1e5","signature":"e6761f0a3e4e68466d38327d5cd380f5f3c75810fd82cafed45110d60d40a3cc","impliedFormat":99},{"version":"20666143132be33320b033fe7e995c3ce1dcd82585ec140bc833d2abe0bc927a","impliedFormat":99}],"root":[130,131,134,135,138,140,[143,154],[170,177]],"resolvedRoot":[[131,178],[134,179],[177,180],[135,181],[138,182],[140,183]],"options":{"composite":true,"declarationMap":true,"emitDeclarationOnly":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[136,1],[137,2],[52,3],[53,3],[55,4],[56,5],[57,6],[58,7],[59,8],[60,9],[61,10],[62,11],[63,12],[64,13],[65,13],[67,14],[66,15],[68,14],[69,16],[70,17],[54,18],[104,19],[71,20],[72,21],[73,22],[105,23],[74,24],[75,25],[76,26],[77,27],[78,28],[79,29],[80,30],[81,31],[82,32],[83,33],[84,33],[85,34],[86,35],[88,36],[87,37],[89,38],[90,39],[91,19],[92,40],[93,41],[94,42],[95,43],[96,44],[97,45],[98,46],[99,47],[100,48],[101,49],[102,50],[103,51],[106,52],[107,19],[155,53],[139,54],[133,55],[132,19],[49,56],[48,19],[46,19],[47,19],[8,19],[10,19],[9,19],[2,19],[11,19],[12,19],[13,19],[14,19],[15,19],[16,19],[17,19],[18,19],[3,19],[19,19],[20,19],[4,19],[21,19],[25,19],[22,19],[23,19],[24,19],[26,19],[27,19],[28,19],[5,19],[29,19],[30,19],[31,19],[32,19],[6,19],[36,19],[33,19],[34,19],[35,19],[37,19],[7,19],[38,19],[43,19],[44,19],[39,19],[40,19],[41,19],[42,19],[1,19],[45,19],[125,57],[116,58],[123,59],[118,19],[119,19],[117,60],[120,61],[112,19],[113,19],[124,62],[115,63],[121,19],[122,64],[114,65],[169,66],[111,67],[110,68],[109,19],[108,19],[51,69],[50,19],[166,70],[167,71],[165,72],[168,73],[162,74],[163,75],[164,76],[156,19],[158,74],[159,74],[161,77],[160,74],[157,78],[146,79],[171,80],[172,81],[147,82],[173,83],[144,84],[174,85],[143,79],[148,86],[150,85],[175,85],[152,87],[149,85],[130,82],[154,88],[153,89],[145,90],[170,91],[176,92],[151,93],[128,19],[129,94],[127,95],[126,96],[131,19],[134,97],[142,98],[177,19],[135,19],[138,99],[141,19],[140,100]],"latestChangedDtsFile":"./platforms/ios/build.d.ts","version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-harness",
3
- "version": "1.0.0-alpha.1",
3
+ "version": "1.0.0-alpha.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "react-native-harness": "./bin.js"
@@ -10,9 +10,9 @@
10
10
  "glob": "^11.0.0",
11
11
  "playwright": "^1.53.2",
12
12
  "tslib": "^2.3.0",
13
- "@react-native-harness/config": "1.0.0-alpha.1",
14
- "@react-native-harness/bridge": "1.0.0-alpha.1",
15
- "@react-native-harness/tools": "1.0.0-alpha.1"
13
+ "@react-native-harness/bridge": "1.0.0-alpha.2",
14
+ "@react-native-harness/config": "1.0.0-alpha.2",
15
+ "@react-native-harness/tools": "1.0.0-alpha.2"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/node": "18.16.9"
@@ -27,6 +27,16 @@ export const runMetro = async (isExpo = false): Promise<ChildProcess> => {
27
27
  }
28
28
  );
29
29
 
30
+ // Forward metro output to CLI output
31
+ metro.nodeChildProcess.then((childProcess) => {
32
+ if (childProcess.stdout) {
33
+ childProcess.stdout.pipe(process.stdout);
34
+ }
35
+ if (childProcess.stderr) {
36
+ childProcess.stderr.pipe(process.stderr);
37
+ }
38
+ });
39
+
30
40
  metro.catch((error) => {
31
41
  // This process is going to be killed by us, so we don't need to throw an error
32
42
  if (error instanceof SubprocessError && error.signalName === 'SIGTERM') {
@@ -1,6 +1,6 @@
1
1
  import { type ChildProcess } from 'node:child_process';
2
2
  import {
3
- assertNativeRunnerConfig,
3
+ assertAndroidRunnerConfig,
4
4
  TestRunnerConfig,
5
5
  } from '@react-native-harness/config';
6
6
  import { logger } from '@react-native-harness/tools';
@@ -21,7 +21,7 @@ import { AppNotInstalledError } from '../../errors/errors.js';
21
21
  const androidPlatformAdapter: PlatformAdapter = {
22
22
  name: 'android',
23
23
  getEnvironment: async (runner: TestRunnerConfig) => {
24
- assertNativeRunnerConfig(runner);
24
+ assertAndroidRunnerConfig(runner);
25
25
 
26
26
  let emulator: ChildProcess | null = null;
27
27
  const emulatorStatus = await getEmulatorStatus(runner.deviceId);
@@ -11,17 +11,26 @@ export const listDevices = async (): Promise<any> => {
11
11
  };
12
12
 
13
13
  export const getDeviceByName = async (
14
- simulatorName: string
14
+ simulatorName: string,
15
+ systemVersion: string
15
16
  ): Promise<any | null> => {
16
17
  const devices = await listDevices();
18
+ const expectedRuntimeId = `com.apple.CoreSimulator.SimRuntime.iOS-${systemVersion.replace(
19
+ /\./,
20
+ '-'
21
+ )}`;
22
+
23
+ const runtime = devices.devices[expectedRuntimeId];
17
24
 
18
- for (const runtime in devices.devices) {
19
- const runtimeDevices = devices.devices[runtime];
20
- for (const device of runtimeDevices) {
21
- if (device.name === simulatorName && device.isAvailable) {
22
- return device;
23
- }
24
- }
25
+ if (!runtime) {
26
+ return null;
27
+ }
28
+
29
+ const runtimeDevices = devices.devices[runtime];
30
+ const device = runtimeDevices.find((d: any) => d.name === simulatorName);
31
+
32
+ if (device) {
33
+ return device;
25
34
  }
26
35
 
27
36
  return null;
@@ -42,35 +51,18 @@ export const listApps = async (udid: string): Promise<string[]> => {
42
51
  };
43
52
 
44
53
  export const isAppInstalled = async (
45
- simulatorName: string,
54
+ udid: string,
46
55
  bundleId: string
47
56
  ): Promise<boolean> => {
48
- const device = await getDeviceByName(simulatorName);
49
-
50
- if (!device) {
51
- throw new Error(`Simulator ${simulatorName} not found`);
52
- }
53
-
54
- const appList = await listApps(device.udid);
57
+ const appList = await listApps(udid);
55
58
  return appList.includes(bundleId);
56
59
  };
57
60
 
58
- export const runApp = async (
59
- simulatorName: string,
60
- appName: string
61
- ): Promise<void> => {
62
- await killApp(simulatorName, appName);
63
- await spawn('xcrun', ['simctl', 'launch', simulatorName, appName]);
61
+ export const runApp = async (udid: string, appName: string): Promise<void> => {
62
+ await killApp(udid, appName);
63
+ await spawn('xcrun', ['simctl', 'launch', udid, appName]);
64
64
  };
65
65
 
66
- export const killApp = async (
67
- simulatorName: string,
68
- appName: string
69
- ): Promise<void> => {
70
- await spawnAndForget('xcrun', [
71
- 'simctl',
72
- 'terminate',
73
- simulatorName,
74
- appName,
75
- ]);
66
+ export const killApp = async (udid: string, appName: string): Promise<void> => {
67
+ await spawnAndForget('xcrun', ['simctl', 'terminate', udid, appName]);
76
68
  };
@@ -1,9 +1,10 @@
1
1
  import {
2
- assertNativeRunnerConfig,
2
+ assertIOSRunnerConfig,
3
3
  TestRunnerConfig,
4
4
  } from '@react-native-harness/config';
5
5
  import { type PlatformAdapter } from '../platform-adapter.js';
6
6
  import {
7
+ getSimulatorDeviceId,
7
8
  getSimulatorStatus,
8
9
  runSimulator,
9
10
  stopSimulator,
@@ -12,38 +13,48 @@ import { isAppInstalled, runApp, killApp } from './build.js';
12
13
  import { killWithAwait } from '../../process.js';
13
14
  import { runMetro } from '../../bundlers/metro.js';
14
15
  import { AppNotInstalledError } from '../../errors/errors.js';
16
+ import { assert } from '../../utils.js';
15
17
 
16
18
  const iosPlatformAdapter: PlatformAdapter = {
17
19
  name: 'ios',
18
20
  getEnvironment: async (runner: TestRunnerConfig) => {
19
- assertNativeRunnerConfig(runner);
21
+ assertIOSRunnerConfig(runner);
22
+ // TODO: system version is also important as there may be two emulators with the same name
23
+ // but different system versions
20
24
 
21
25
  let shouldStopSimulator = false;
22
- const simulatorStatus = await getSimulatorStatus(runner.deviceId);
26
+ const udid = await getSimulatorDeviceId(
27
+ runner.deviceId,
28
+ runner.systemVersion
29
+ );
30
+
31
+ assert(!!udid, 'Simulator not found');
32
+
33
+ const simulatorStatus = await getSimulatorStatus(udid);
23
34
  const metroPromise = runMetro();
24
35
 
25
36
  if (simulatorStatus === 'stopped') {
26
- await runSimulator(runner.deviceId);
37
+ await runSimulator(udid);
27
38
  shouldStopSimulator = true;
28
39
  }
29
40
 
30
- const isInstalled = await isAppInstalled(runner.deviceId, runner.bundleId);
41
+ const isInstalled = await isAppInstalled(udid, runner.bundleId);
31
42
 
32
43
  if (!isInstalled) {
33
44
  throw new AppNotInstalledError(runner.deviceId, runner.bundleId, 'ios');
34
45
  }
35
46
 
36
47
  const metro = await metroPromise;
37
- await runApp(runner.deviceId, runner.bundleId);
48
+ await runApp(udid, runner.bundleId);
38
49
 
39
50
  return {
40
51
  restart: async () => {
41
- await runApp(runner.deviceId, runner.bundleId);
52
+ await runApp(udid, runner.bundleId);
42
53
  },
43
54
  dispose: async () => {
44
- await killApp(runner.deviceId, runner.bundleId);
55
+ await killApp(udid, runner.bundleId);
45
56
  if (shouldStopSimulator) {
46
- await stopSimulator(runner.deviceId);
57
+ await stopSimulator(udid);
47
58
  }
48
59
 
49
60
  await killWithAwait(metro);
@@ -3,7 +3,8 @@ import { spawn } from '@react-native-harness/tools';
3
3
  export type IOSSimulatorStatus = 'stopped' | 'loading' | 'running';
4
4
 
5
5
  export const getSimulatorDeviceId = async (
6
- simulatorName: string
6
+ simulatorName: string,
7
+ systemVersion: string
7
8
  ): Promise<string | null> => {
8
9
  try {
9
10
  const { stdout } = await spawn('xcrun', [
@@ -13,19 +14,21 @@ export const getSimulatorDeviceId = async (
13
14
  '--json',
14
15
  ]);
15
16
  const devices = JSON.parse(stdout);
17
+ const expectedRuntimeId = `com.apple.CoreSimulator.SimRuntime.iOS-${systemVersion.replace(
18
+ /\./,
19
+ '-'
20
+ )}`;
16
21
 
17
- // Find the device across all iOS versions
18
- for (const runtime in devices.devices) {
19
- if (runtime.includes('iOS')) {
20
- const runtimeDevices = devices.devices[runtime];
21
- const device = runtimeDevices.find(
22
- (d: any) => d.name === simulatorName
23
- );
22
+ const runtime = devices.devices[expectedRuntimeId];
24
23
 
25
- if (device) {
26
- return device.udid;
27
- }
28
- }
24
+ if (!runtime) {
25
+ return null;
26
+ }
27
+
28
+ const device = runtime.find((d: any) => d.name === simulatorName);
29
+
30
+ if (device) {
31
+ return device.udid;
29
32
  }
30
33
 
31
34
  return null;
@@ -73,7 +76,7 @@ export const getAvailableSimulators = async (): Promise<
73
76
  };
74
77
 
75
78
  export const getSimulatorStatus = async (
76
- simulatorName: string
79
+ udid: string
77
80
  ): Promise<IOSSimulatorStatus> => {
78
81
  try {
79
82
  const { stdout } = await spawn('xcrun', [
@@ -87,9 +90,7 @@ export const getSimulatorStatus = async (
87
90
  for (const runtime in devices.devices) {
88
91
  if (runtime.includes('iOS')) {
89
92
  const runtimeDevices = devices.devices[runtime];
90
- const device = runtimeDevices.find(
91
- (d: any) => d.name === simulatorName
92
- );
93
+ const device = runtimeDevices.find((d: any) => d.udid === udid);
93
94
 
94
95
  if (device) {
95
96
  switch (device.state) {
@@ -110,15 +111,9 @@ export const getSimulatorStatus = async (
110
111
  }
111
112
  };
112
113
 
113
- export const runSimulator = async (name: string): Promise<void> => {
114
- const deviceId = await getSimulatorDeviceId(name);
115
-
116
- if (!deviceId) {
117
- throw new Error('Simulator not found');
118
- }
119
-
114
+ export const runSimulator = async (udid: string): Promise<void> => {
120
115
  try {
121
- await spawn('xcrun', ['simctl', 'boot', deviceId]);
116
+ await spawn('xcrun', ['simctl', 'boot', udid]);
122
117
  } catch (bootError: any) {
123
118
  // Ignore if simulator is already booted
124
119
  if (
@@ -137,7 +132,7 @@ export const runSimulator = async (name: string): Promise<void> => {
137
132
  while (true) {
138
133
  attempts++;
139
134
 
140
- const status = await getSimulatorStatus(name);
135
+ const status = await getSimulatorStatus(udid);
141
136
 
142
137
  if (status === 'running') {
143
138
  break;
@@ -151,19 +146,13 @@ export const runSimulator = async (name: string): Promise<void> => {
151
146
  }
152
147
  };
153
148
 
154
- export const stopSimulator = async (name: string): Promise<void> => {
155
- const simulatorId = await getSimulatorDeviceId(name);
156
-
157
- if (!simulatorId) {
158
- return; // Already stopped
159
- }
160
-
161
- await stopSimulatorById(simulatorId);
149
+ export const stopSimulator = async (udid: string): Promise<void> => {
150
+ await stopSimulatorById(udid);
162
151
  };
163
152
 
164
- const stopSimulatorById = async (simulatorId: string): Promise<void> => {
153
+ const stopSimulatorById = async (udid: string): Promise<void> => {
165
154
  try {
166
- await spawn('xcrun', ['simctl', 'shutdown', simulatorId]);
155
+ await spawn('xcrun', ['simctl', 'shutdown', udid]);
167
156
  } catch (shutdownError: any) {
168
157
  // Ignore if simulator is already shut down
169
158
  if (
@@ -1,94 +1,15 @@
1
- import { TestRunnerConfig, WebTestRunnerConfig, assertWebRunnerConfig } from '@react-native-harness/config';
2
- import { logger } from '@react-native-harness/tools';
3
- import { Browser, chromium, firefox, Page, webkit } from 'playwright';
1
+ import {
2
+ TestRunnerConfig,
3
+ assertWebRunnerConfig,
4
+ } from '@react-native-harness/config';
4
5
  import { PlatformAdapter } from '../platform-adapter.js';
5
- import { runMetro } from '../../bundlers/metro.js';
6
-
7
- const runBrowser = async (
8
- url: string,
9
- browserType: WebTestRunnerConfig['browser']
10
- ): Promise<{ browser: Browser; page: Page }> => {
11
- // For now, we're only supporting Firefox, but this will be expanded
12
- // to support other browsers based on the config
13
- let browser: Browser;
14
-
15
- switch (browserType) {
16
- case 'firefox':
17
- browser = await firefox.launch({
18
- headless: false,
19
- devtools: false,
20
- args: [
21
- '--no-sandbox',
22
- '--disable-setuid-sandbox',
23
- '--disable-dev-shm-usage',
24
- '--disable-web-security',
25
- '--allow-insecure-localhost',
26
- '--ignore-certificate-errors',
27
- ],
28
- ignoreDefaultArgs: ['--disable-extensions'],
29
- });
30
- break;
31
- case 'chrome':
32
- browser = await chromium.launch({
33
- headless: false,
34
- devtools: false,
35
- });
36
- break;
37
- case 'safari':
38
- browser = await webkit.launch({
39
- headless: false,
40
- devtools: false,
41
- });
42
- break;
43
- default:
44
- throw new Error(`Unsupported browser type: ${browserType}`);
45
- }
46
-
47
- const context = await browser.newContext({
48
- bypassCSP: true,
49
- ignoreHTTPSErrors: true,
50
- });
51
-
52
- const page = await context.newPage();
53
-
54
- await page.setViewportSize({ width: 1280, height: 720 });
55
-
56
- await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 60000 });
57
-
58
- return { browser, page };
59
- };
60
6
 
61
7
  export const webPlatformAdapter: PlatformAdapter = {
62
8
  name: 'web',
63
9
  getEnvironment: async (runner: TestRunnerConfig) => {
64
10
  assertWebRunnerConfig(runner);
65
-
66
- logger.debug('Starting web environment');
67
-
68
-
69
-
70
- logger.debug('Running metro');
71
- const metro = await runMetro(true);
72
- logger.debug('Metro running');
73
-
74
- logger.debug(`Running browser: ${runner.browser}`);
75
- const { browser, page } = await runBrowser('http://localhost:8081', runner.browser);
76
- logger.debug('Browser running');
77
-
78
-
79
-
80
- return {
81
- restart: async () => {
82
- logger.debug('Reloading page');
83
- await page.reload({ waitUntil: 'domcontentloaded', timeout: 60000 });
84
- },
85
- dispose: async () => {
86
- logger.debug('Closing browser');
87
- await browser.close();
88
11
 
89
- metro.kill();
90
- },
91
- };
12
+ throw new Error('Web platform is currently disabled.');
92
13
  },
93
14
  };
94
15