appium-webdriveragent 10.5.4 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/Scripts/{build-webdriveragent.js → build-webdriveragent.mjs} +13 -7
- package/Scripts/{fetch-prebuilt-wda.js → fetch-prebuilt-wda.mjs} +17 -9
- package/Scripts/update-wda-version.mjs +42 -0
- package/WebDriverAgentLib/Info.plist +2 -2
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -2
- package/build/index.js.map +1 -1
- package/build/lib/check-dependencies.d.ts +2 -7
- package/build/lib/check-dependencies.d.ts.map +1 -1
- package/build/lib/check-dependencies.js +0 -11
- package/build/lib/check-dependencies.js.map +1 -1
- package/build/lib/constants.d.ts +12 -12
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js +14 -26
- package/build/lib/constants.js.map +1 -1
- package/build/lib/logger.d.ts +1 -2
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -1
- package/build/lib/no-session-proxy.d.ts +5 -5
- package/build/lib/no-session-proxy.d.ts.map +1 -1
- package/build/lib/no-session-proxy.js +0 -1
- package/build/lib/no-session-proxy.js.map +1 -1
- package/build/lib/utils.d.ts +53 -96
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +124 -110
- package/build/lib/utils.js.map +1 -1
- package/build/lib/webdriveragent.d.ts +123 -170
- package/build/lib/webdriveragent.d.ts.map +1 -1
- package/build/lib/webdriveragent.js +319 -349
- package/build/lib/webdriveragent.js.map +1 -1
- package/build/lib/xcodebuild.d.ts +66 -77
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +123 -92
- package/build/lib/xcodebuild.js.map +1 -1
- package/build/test/functional/desired.d.ts +3 -0
- package/build/test/functional/desired.d.ts.map +1 -0
- package/build/test/functional/desired.js +9 -0
- package/build/test/functional/desired.js.map +1 -0
- package/build/test/functional/helpers/simulator.d.ts +5 -0
- package/build/test/functional/helpers/simulator.d.ts.map +1 -0
- package/build/test/functional/helpers/simulator.js +39 -0
- package/build/test/functional/helpers/simulator.js.map +1 -0
- package/build/test/functional/webdriveragent-e2e-specs.d.ts +2 -0
- package/build/test/functional/webdriveragent-e2e-specs.d.ts.map +1 -0
- package/build/test/functional/webdriveragent-e2e-specs.js +133 -0
- package/build/test/functional/webdriveragent-e2e-specs.js.map +1 -0
- package/build/test/unit/utils-specs.d.ts +2 -0
- package/build/test/unit/utils-specs.d.ts.map +1 -0
- package/build/test/unit/utils-specs.js +161 -0
- package/build/test/unit/utils-specs.js.map +1 -0
- package/build/test/unit/webdriveragent-specs.d.ts +2 -0
- package/build/test/unit/webdriveragent-specs.d.ts.map +1 -0
- package/build/test/unit/webdriveragent-specs.js +424 -0
- package/build/test/unit/webdriveragent-specs.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/index.ts +1 -1
- package/lib/{check-dependencies.js → check-dependencies.ts} +4 -13
- package/lib/constants.ts +18 -0
- package/lib/logger.ts +3 -0
- package/lib/{no-session-proxy.js → no-session-proxy.ts} +4 -5
- package/lib/{utils.js → utils.ts} +101 -111
- package/lib/{webdriveragent.js → webdriveragent.ts} +353 -390
- package/lib/{xcodebuild.js → xcodebuild.ts} +145 -114
- package/package.json +8 -10
- package/lib/constants.js +0 -24
- package/lib/logger.js +0 -5
package/build/lib/utils.js
CHANGED
|
@@ -1,34 +1,73 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
5
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
39
|
exports.BOOTSTRAP_PATH = void 0;
|
|
40
|
+
exports.killAppUsingPattern = killAppUsingPattern;
|
|
41
|
+
exports.isTvOS = isTvOS;
|
|
7
42
|
exports.updateProjectFile = updateProjectFile;
|
|
8
43
|
exports.resetProjectFile = resetProjectFile;
|
|
9
44
|
exports.setRealDeviceSecurity = setRealDeviceSecurity;
|
|
10
|
-
exports.getAdditionalRunContent = getAdditionalRunContent;
|
|
11
|
-
exports.getXctestrunFileName = getXctestrunFileName;
|
|
12
45
|
exports.setXctestrunFile = setXctestrunFile;
|
|
46
|
+
exports.getAdditionalRunContent = getAdditionalRunContent;
|
|
13
47
|
exports.getXctestrunFilePath = getXctestrunFilePath;
|
|
48
|
+
exports.getXctestrunFileName = getXctestrunFileName;
|
|
14
49
|
exports.killProcess = killProcess;
|
|
15
50
|
exports.randomInt = randomInt;
|
|
16
51
|
exports.getWDAUpgradeTimestamp = getWDAUpgradeTimestamp;
|
|
17
52
|
exports.resetTestProcesses = resetTestProcesses;
|
|
18
53
|
exports.getPIDsListeningOnPort = getPIDsListeningOnPort;
|
|
19
|
-
exports.killAppUsingPattern = killAppUsingPattern;
|
|
20
|
-
exports.isTvOS = isTvOS;
|
|
21
54
|
const support_1 = require("@appium/support");
|
|
22
55
|
const teen_process_1 = require("teen_process");
|
|
23
|
-
const
|
|
24
|
-
const
|
|
56
|
+
const node_path_1 = __importStar(require("node:path"));
|
|
57
|
+
const node_url_1 = require("node:url");
|
|
58
|
+
const logger_1 = require("./logger");
|
|
25
59
|
const lodash_1 = __importDefault(require("lodash"));
|
|
26
60
|
const constants_1 = require("./constants");
|
|
27
61
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
28
|
-
const
|
|
62
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
29
63
|
const asyncbox_1 = require("asyncbox");
|
|
30
|
-
const
|
|
64
|
+
const node_os_1 = require("node:os");
|
|
31
65
|
const PROJECT_FILE = 'project.pbxproj';
|
|
66
|
+
// Get current filename - works in both CommonJS and ESM
|
|
67
|
+
const currentFilename = typeof __filename !== 'undefined'
|
|
68
|
+
? __filename
|
|
69
|
+
: (0, node_url_1.fileURLToPath)(new Function('return import.meta.url')());
|
|
70
|
+
const currentDirname = (0, node_path_1.dirname)(currentFilename);
|
|
32
71
|
/**
|
|
33
72
|
* Calculates the path to the current module's root folder
|
|
34
73
|
*
|
|
@@ -36,40 +75,23 @@ const PROJECT_FILE = 'project.pbxproj';
|
|
|
36
75
|
* @throws {Error} If the current module root folder cannot be determined
|
|
37
76
|
*/
|
|
38
77
|
const getModuleRoot = lodash_1.default.memoize(function getModuleRoot() {
|
|
39
|
-
let currentDir =
|
|
78
|
+
let currentDir = currentDirname;
|
|
40
79
|
let isAtFsRoot = false;
|
|
41
80
|
while (!isAtFsRoot) {
|
|
42
|
-
const manifestPath =
|
|
81
|
+
const manifestPath = node_path_1.default.join(currentDir, 'package.json');
|
|
43
82
|
try {
|
|
44
|
-
if (
|
|
45
|
-
JSON.parse(
|
|
83
|
+
if (node_fs_1.default.existsSync(manifestPath) &&
|
|
84
|
+
JSON.parse(node_fs_1.default.readFileSync(manifestPath, 'utf8')).name === 'appium-webdriveragent') {
|
|
46
85
|
return currentDir;
|
|
47
86
|
}
|
|
48
87
|
}
|
|
49
88
|
catch { }
|
|
50
|
-
currentDir =
|
|
51
|
-
isAtFsRoot = currentDir.length <=
|
|
89
|
+
currentDir = node_path_1.default.dirname(currentDir);
|
|
90
|
+
isAtFsRoot = currentDir.length <= node_path_1.default.dirname(currentDir).length;
|
|
52
91
|
}
|
|
53
92
|
throw new Error('Cannot find the root folder of the appium-webdriveragent Node.js module');
|
|
54
93
|
});
|
|
55
94
|
exports.BOOTSTRAP_PATH = getModuleRoot();
|
|
56
|
-
async function getPIDsUsingPattern(pattern) {
|
|
57
|
-
const args = [
|
|
58
|
-
'-if', // case insensitive, full cmdline match
|
|
59
|
-
pattern,
|
|
60
|
-
];
|
|
61
|
-
try {
|
|
62
|
-
const { stdout } = await (0, teen_process_1.exec)('pgrep', args);
|
|
63
|
-
return stdout.split(/\s+/)
|
|
64
|
-
.map((x) => parseInt(x, 10))
|
|
65
|
-
.filter(lodash_1.default.isInteger)
|
|
66
|
-
.map((x) => `${x}`);
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
logger_1.default.debug(`'pgrep ${args.join(' ')}' didn't detect any matching processes. Return code: ${err.code}`);
|
|
70
|
-
return [];
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
95
|
async function killAppUsingPattern(pgrepPattern) {
|
|
74
96
|
const signals = [2, 15, 9];
|
|
75
97
|
for (const signal of signals) {
|
|
@@ -82,7 +104,7 @@ async function killAppUsingPattern(pgrepPattern) {
|
|
|
82
104
|
await (0, teen_process_1.exec)('kill', args);
|
|
83
105
|
}
|
|
84
106
|
catch (err) {
|
|
85
|
-
logger_1.
|
|
107
|
+
logger_1.log.debug(`kill ${args.join(' ')} -> ${err.message}`);
|
|
86
108
|
}
|
|
87
109
|
if (signal === lodash_1.default.last(signals)) {
|
|
88
110
|
// there is no need to wait after SIGKILL
|
|
@@ -111,79 +133,59 @@ async function killAppUsingPattern(pgrepPattern) {
|
|
|
111
133
|
}
|
|
112
134
|
/**
|
|
113
135
|
* Return true if the platformName is tvOS
|
|
114
|
-
* @param
|
|
115
|
-
* @returns
|
|
136
|
+
* @param platformName The name of the platorm
|
|
137
|
+
* @returns Return true if the platformName is tvOS
|
|
116
138
|
*/
|
|
117
139
|
function isTvOS(platformName) {
|
|
118
140
|
return lodash_1.default.toLower(platformName) === lodash_1.default.toLower(constants_1.PLATFORM_NAME_TVOS);
|
|
119
141
|
}
|
|
120
|
-
async function replaceInFile(file, find, replace) {
|
|
121
|
-
let contents = await support_1.fs.readFile(file, 'utf8');
|
|
122
|
-
let newContents = contents.replace(find, replace);
|
|
123
|
-
if (newContents !== contents) {
|
|
124
|
-
await support_1.fs.writeFile(file, newContents, 'utf8');
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
142
|
/**
|
|
128
143
|
* Update WebDriverAgentRunner project bundle ID with newBundleId.
|
|
129
144
|
* This method assumes project file is in the correct state.
|
|
130
|
-
* @param
|
|
131
|
-
* @param
|
|
145
|
+
* @param agentPath - Path to the .xcodeproj directory.
|
|
146
|
+
* @param newBundleId the new bundle ID used to update.
|
|
132
147
|
*/
|
|
133
148
|
async function updateProjectFile(agentPath, newBundleId) {
|
|
134
|
-
|
|
149
|
+
const projectFilePath = node_path_1.default.resolve(agentPath, PROJECT_FILE);
|
|
135
150
|
try {
|
|
136
151
|
// Assuming projectFilePath is in the correct state, create .old from projectFilePath
|
|
137
152
|
await support_1.fs.copyFile(projectFilePath, `${projectFilePath}.old`);
|
|
138
153
|
await replaceInFile(projectFilePath, new RegExp(lodash_1.default.escapeRegExp(constants_1.WDA_RUNNER_BUNDLE_ID), 'g'), newBundleId);
|
|
139
|
-
logger_1.
|
|
154
|
+
logger_1.log.debug(`Successfully updated '${projectFilePath}' with bundle id '${newBundleId}'`);
|
|
140
155
|
}
|
|
141
156
|
catch (err) {
|
|
142
|
-
logger_1.
|
|
143
|
-
logger_1.
|
|
157
|
+
logger_1.log.debug(`Error updating project file: ${err.message}`);
|
|
158
|
+
logger_1.log.warn(`Unable to update project file '${projectFilePath}' with ` +
|
|
144
159
|
`bundle id '${newBundleId}'. WebDriverAgent may not start`);
|
|
145
160
|
}
|
|
146
161
|
}
|
|
147
162
|
/**
|
|
148
163
|
* Reset WebDriverAgentRunner project bundle ID to correct state.
|
|
149
|
-
* @param
|
|
164
|
+
* @param agentPath - Path to the .xcodeproj directory.
|
|
150
165
|
*/
|
|
151
166
|
async function resetProjectFile(agentPath) {
|
|
152
|
-
const projectFilePath =
|
|
167
|
+
const projectFilePath = node_path_1.default.join(agentPath, PROJECT_FILE);
|
|
153
168
|
try {
|
|
154
169
|
// restore projectFilePath from .old file
|
|
155
170
|
if (!await support_1.fs.exists(`${projectFilePath}.old`)) {
|
|
156
171
|
return; // no need to reset
|
|
157
172
|
}
|
|
158
173
|
await support_1.fs.mv(`${projectFilePath}.old`, projectFilePath);
|
|
159
|
-
logger_1.
|
|
174
|
+
logger_1.log.debug(`Successfully reset '${projectFilePath}' with bundle id '${constants_1.WDA_RUNNER_BUNDLE_ID}'`);
|
|
160
175
|
}
|
|
161
176
|
catch (err) {
|
|
162
|
-
logger_1.
|
|
163
|
-
logger_1.
|
|
177
|
+
logger_1.log.debug(`Error resetting project file: ${err.message}`);
|
|
178
|
+
logger_1.log.warn(`Unable to reset project file '${projectFilePath}' with ` +
|
|
164
179
|
`bundle id '${constants_1.WDA_RUNNER_BUNDLE_ID}'. WebDriverAgent has been ` +
|
|
165
180
|
`modified and not returned to the original state.`);
|
|
166
181
|
}
|
|
167
182
|
}
|
|
168
183
|
async function setRealDeviceSecurity(keychainPath, keychainPassword) {
|
|
169
|
-
logger_1.
|
|
184
|
+
logger_1.log.debug('Setting security for iOS device');
|
|
170
185
|
await (0, teen_process_1.exec)('security', ['-v', 'list-keychains', '-s', keychainPath]);
|
|
171
186
|
await (0, teen_process_1.exec)('security', ['-v', 'unlock-keychain', '-p', keychainPassword, keychainPath]);
|
|
172
187
|
await (0, teen_process_1.exec)('security', ['set-keychain-settings', '-t', '3600', '-l', keychainPath]);
|
|
173
188
|
}
|
|
174
|
-
/**
|
|
175
|
-
* Information of the device under test
|
|
176
|
-
* @typedef {import('./types').DeviceInfo} DeviceInfo
|
|
177
|
-
*/
|
|
178
|
-
/**
|
|
179
|
-
* Arguments for setting xctestrun file
|
|
180
|
-
* @typedef {Object} XctestrunFileArgs
|
|
181
|
-
* @property {DeviceInfo} deviceInfo - Information of the device under test
|
|
182
|
-
* @property {string} sdkVersion - The Xcode SDK version of OS.
|
|
183
|
-
* @property {string} bootstrapPath - The folder path containing xctestrun file.
|
|
184
|
-
* @property {number|string} wdaRemotePort - The remote port WDA is listening on.
|
|
185
|
-
* @property {string} [wdaBindingIP] - The IP address to bind to. If not given, it binds to all interfaces.
|
|
186
|
-
*/
|
|
187
189
|
/**
|
|
188
190
|
* Creates xctestrun file per device & platform version.
|
|
189
191
|
* We expects to have WebDriverAgentRunner_iphoneos${sdkVersion|platformVersion}-arm64.xctestrun for real device
|
|
@@ -192,8 +194,8 @@ async function setRealDeviceSecurity(keychainPath, keychainPassword) {
|
|
|
192
194
|
* e.g. Xcode which has iOS SDK Version 12.2 on an intel Mac host machine generates WebDriverAgentRunner_iphonesimulator.2-x86_64.xctestrun
|
|
193
195
|
* even if the cap has platform version 11.4
|
|
194
196
|
*
|
|
195
|
-
* @param
|
|
196
|
-
* @return
|
|
197
|
+
* @param args
|
|
198
|
+
* @return returns xctestrunFilePath for given device
|
|
197
199
|
* @throws if WebDriverAgentRunner_iphoneos${sdkVersion|platformVersion}-arm64.xctestrun for real device
|
|
198
200
|
* or WebDriverAgentRunner_iphonesimulator${sdkVersion|platformVersion}-x86_64.xctestrun for simulator is not found @bootstrapPath,
|
|
199
201
|
* then it will throw a file not found exception
|
|
@@ -209,10 +211,10 @@ async function setXctestrunFile(args) {
|
|
|
209
211
|
}
|
|
210
212
|
/**
|
|
211
213
|
* Return the WDA object which appends existing xctest runner content
|
|
212
|
-
* @param
|
|
213
|
-
* @param
|
|
214
|
-
* @param
|
|
215
|
-
* @return
|
|
214
|
+
* @param platformName - The name of the platform
|
|
215
|
+
* @param wdaRemotePort - The remote port number
|
|
216
|
+
* @param wdaBindingIP - The IP address to bind to. If not given, it binds to all interfaces.
|
|
217
|
+
* @return returns a runner object which has USE_PORT and optionally USE_IP
|
|
216
218
|
*/
|
|
217
219
|
function getAdditionalRunContent(platformName, wdaRemotePort, wdaBindingIP) {
|
|
218
220
|
const runner = `WebDriverAgentRunner${isTvOS(platformName) ? '_tvOS' : ''}`;
|
|
@@ -228,65 +230,60 @@ function getAdditionalRunContent(platformName, wdaRemotePort, wdaBindingIP) {
|
|
|
228
230
|
}
|
|
229
231
|
/**
|
|
230
232
|
* Return the path of xctestrun if it exists
|
|
231
|
-
* @param
|
|
232
|
-
* @param
|
|
233
|
-
* @param
|
|
234
|
-
* @returns {Promise<string>}
|
|
233
|
+
* @param deviceInfo
|
|
234
|
+
* @param sdkVersion - The Xcode SDK version of OS.
|
|
235
|
+
* @param bootstrapPath - The folder path containing xctestrun file.
|
|
235
236
|
*/
|
|
236
237
|
async function getXctestrunFilePath(deviceInfo, sdkVersion, bootstrapPath) {
|
|
237
238
|
// First try the SDK path, for Xcode 10 (at least)
|
|
238
239
|
const sdkBased = [
|
|
239
|
-
|
|
240
|
+
node_path_1.default.resolve(bootstrapPath, `${deviceInfo.udid}_${sdkVersion}.xctestrun`),
|
|
240
241
|
sdkVersion,
|
|
241
242
|
];
|
|
242
243
|
// Next try Platform path, for earlier Xcode versions
|
|
243
244
|
const platformBased = [
|
|
244
|
-
|
|
245
|
+
node_path_1.default.resolve(bootstrapPath, `${deviceInfo.udid}_${deviceInfo.platformVersion}.xctestrun`),
|
|
245
246
|
deviceInfo.platformVersion,
|
|
246
247
|
];
|
|
247
248
|
for (const [filePath, version] of [sdkBased, platformBased]) {
|
|
248
249
|
if (await support_1.fs.exists(filePath)) {
|
|
249
|
-
logger_1.
|
|
250
|
+
logger_1.log.info(`Using '${filePath}' as xctestrun file`);
|
|
250
251
|
return filePath;
|
|
251
252
|
}
|
|
252
|
-
const originalXctestrunFile =
|
|
253
|
+
const originalXctestrunFile = node_path_1.default.resolve(bootstrapPath, getXctestrunFileName(deviceInfo, version));
|
|
253
254
|
if (await support_1.fs.exists(originalXctestrunFile)) {
|
|
254
255
|
// If this is first time run for given device, then first generate xctestrun file for device.
|
|
255
256
|
// We need to have a xctestrun file **per device** because we cant not have same wda port for all devices.
|
|
256
257
|
await support_1.fs.copyFile(originalXctestrunFile, filePath);
|
|
257
|
-
logger_1.
|
|
258
|
+
logger_1.log.info(`Using '${filePath}' as xctestrun file copied by '${originalXctestrunFile}'`);
|
|
258
259
|
return filePath;
|
|
259
260
|
}
|
|
260
261
|
}
|
|
261
262
|
throw new Error(`If you are using 'useXctestrunFile' capability then you ` +
|
|
262
263
|
`need to have a xctestrun file (expected: ` +
|
|
263
|
-
`'${
|
|
264
|
+
`'${node_path_1.default.resolve(bootstrapPath, getXctestrunFileName(deviceInfo, sdkVersion))}')`);
|
|
264
265
|
}
|
|
265
266
|
/**
|
|
266
267
|
* Return the name of xctestrun file
|
|
267
|
-
* @param
|
|
268
|
-
* @param
|
|
269
|
-
* @return
|
|
268
|
+
* @param deviceInfo
|
|
269
|
+
* @param version - The Xcode SDK version of OS.
|
|
270
|
+
* @return returns xctestrunFilePath for given device
|
|
270
271
|
*/
|
|
271
272
|
function getXctestrunFileName(deviceInfo, version) {
|
|
272
273
|
const archSuffix = deviceInfo.isRealDevice
|
|
273
274
|
? `os${version}-arm64`
|
|
274
|
-
: `simulator${version}-${(0,
|
|
275
|
+
: `simulator${version}-${(0, node_os_1.arch)() === 'arm64' ? 'arm64' : 'x86_64'}`;
|
|
275
276
|
return `WebDriverAgentRunner_${isTvOS(deviceInfo.platformName) ? 'tvOS_appletv' : 'iphone'}${archSuffix}.xctestrun`;
|
|
276
277
|
}
|
|
277
278
|
/**
|
|
278
279
|
* Ensures the process is killed after the timeout
|
|
279
|
-
*
|
|
280
|
-
* @param {string} name
|
|
281
|
-
* @param {import('teen_process').SubProcess} proc
|
|
282
|
-
* @returns {Promise<void>}
|
|
283
280
|
*/
|
|
284
281
|
async function killProcess(name, proc) {
|
|
285
282
|
if (!proc || !proc.isRunning) {
|
|
286
283
|
return;
|
|
287
284
|
}
|
|
288
|
-
logger_1.
|
|
289
|
-
logger_1.
|
|
285
|
+
logger_1.log.info(`Shutting down '${name}' process (pid '${proc.proc?.pid}')`);
|
|
286
|
+
logger_1.log.info(`Sending 'SIGTERM'...`);
|
|
290
287
|
try {
|
|
291
288
|
await proc.stop('SIGTERM', 1000);
|
|
292
289
|
return;
|
|
@@ -295,9 +292,9 @@ async function killProcess(name, proc) {
|
|
|
295
292
|
if (!err.message.includes(`Process didn't end after`)) {
|
|
296
293
|
throw err;
|
|
297
294
|
}
|
|
298
|
-
logger_1.
|
|
295
|
+
logger_1.log.debug(`${name} process did not end in a timely fashion: '${err.message}'.`);
|
|
299
296
|
}
|
|
300
|
-
logger_1.
|
|
297
|
+
logger_1.log.info(`Sending 'SIGKILL'...`);
|
|
301
298
|
try {
|
|
302
299
|
await proc.stop('SIGKILL');
|
|
303
300
|
}
|
|
@@ -310,21 +307,16 @@ async function killProcess(name, proc) {
|
|
|
310
307
|
}
|
|
311
308
|
}
|
|
312
309
|
/**
|
|
313
|
-
* Generate a random integer.
|
|
314
|
-
*
|
|
315
|
-
* @return {number} A random integer number in range [low, hight). `low`` is inclusive and `high` is exclusive.
|
|
310
|
+
* Generate a random integer in range [low, high). `low` is inclusive and `high` is exclusive.
|
|
316
311
|
*/
|
|
317
312
|
function randomInt(low, high) {
|
|
318
313
|
return Math.floor(Math.random() * (high - low) + low);
|
|
319
314
|
}
|
|
320
315
|
/**
|
|
321
|
-
* Retrieves WDA upgrade timestamp
|
|
322
|
-
*
|
|
323
|
-
* @return {Promise<number?>} The UNIX timestamp of the package manifest. The manifest only gets modified on
|
|
324
|
-
* package upgrade.
|
|
316
|
+
* Retrieves WDA upgrade timestamp. The manifest only gets modified on package upgrade.
|
|
325
317
|
*/
|
|
326
318
|
async function getWDAUpgradeTimestamp() {
|
|
327
|
-
const packageManifest =
|
|
319
|
+
const packageManifest = node_path_1.default.resolve(getModuleRoot(), 'package.json');
|
|
328
320
|
if (!await support_1.fs.exists(packageManifest)) {
|
|
329
321
|
return null;
|
|
330
322
|
}
|
|
@@ -333,9 +325,6 @@ async function getWDAUpgradeTimestamp() {
|
|
|
333
325
|
}
|
|
334
326
|
/**
|
|
335
327
|
* Kills running XCTest processes for the particular device.
|
|
336
|
-
*
|
|
337
|
-
* @param {string} udid - The device UDID.
|
|
338
|
-
* @param {boolean} isSimulator - Equals to true if the current device is a Simulator
|
|
339
328
|
*/
|
|
340
329
|
async function resetTestProcesses(udid, isSimulator) {
|
|
341
330
|
const processPatterns = [`xcodebuild.*${udid}`];
|
|
@@ -344,7 +333,7 @@ async function resetTestProcesses(udid, isSimulator) {
|
|
|
344
333
|
// The pattern to find in case idb was used
|
|
345
334
|
processPatterns.push(`xctest.*${udid}`);
|
|
346
335
|
}
|
|
347
|
-
logger_1.
|
|
336
|
+
logger_1.log.debug(`Killing running processes '${processPatterns.join(', ')}' for the device ${udid}...`);
|
|
348
337
|
await bluebird_1.default.all(processPatterns.map(killAppUsingPattern));
|
|
349
338
|
}
|
|
350
339
|
/**
|
|
@@ -352,13 +341,13 @@ async function resetTestProcesses(udid, isSimulator) {
|
|
|
352
341
|
* It is also possible to apply additional filtering based on the
|
|
353
342
|
* process command line.
|
|
354
343
|
*
|
|
355
|
-
* @param
|
|
356
|
-
* @param
|
|
344
|
+
* @param port - The port number.
|
|
345
|
+
* @param filteringFunc - Optional lambda function, which
|
|
357
346
|
* receives command line string of the particular process
|
|
358
347
|
* listening on given port, and is expected to return
|
|
359
348
|
* either true or false to include/exclude the corresponding PID
|
|
360
349
|
* from the resulting array.
|
|
361
|
-
* @returns
|
|
350
|
+
* @returns - the list of matched process ids.
|
|
362
351
|
*/
|
|
363
352
|
async function getPIDsListeningOnPort(port, filteringFunc = null) {
|
|
364
353
|
const result = [];
|
|
@@ -370,7 +359,7 @@ async function getPIDsListeningOnPort(port, filteringFunc = null) {
|
|
|
370
359
|
catch (e) {
|
|
371
360
|
if (e.code !== 1) {
|
|
372
361
|
// code 1 means no processes. Other errors need reporting
|
|
373
|
-
logger_1.
|
|
362
|
+
logger_1.log.debug(`Error getting processes listening on port '${port}': ${e.stderr || e.message}`);
|
|
374
363
|
}
|
|
375
364
|
return result;
|
|
376
365
|
}
|
|
@@ -392,4 +381,29 @@ async function getPIDsListeningOnPort(port, filteringFunc = null) {
|
|
|
392
381
|
return await filteringFunc(stdout);
|
|
393
382
|
});
|
|
394
383
|
}
|
|
384
|
+
// Private functions
|
|
385
|
+
async function getPIDsUsingPattern(pattern) {
|
|
386
|
+
const args = [
|
|
387
|
+
'-if', // case insensitive, full cmdline match
|
|
388
|
+
pattern,
|
|
389
|
+
];
|
|
390
|
+
try {
|
|
391
|
+
const { stdout } = await (0, teen_process_1.exec)('pgrep', args);
|
|
392
|
+
return stdout.split(/\s+/)
|
|
393
|
+
.map((x) => parseInt(x, 10))
|
|
394
|
+
.filter(lodash_1.default.isInteger)
|
|
395
|
+
.map((x) => `${x}`);
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
logger_1.log.debug(`'pgrep ${args.join(' ')}' didn't detect any matching processes. Return code: ${err.code}`);
|
|
399
|
+
return [];
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
async function replaceInFile(file, find, replace) {
|
|
403
|
+
const contents = await support_1.fs.readFile(file, 'utf8');
|
|
404
|
+
const newContents = contents.replace(find, replace);
|
|
405
|
+
if (newContents !== contents) {
|
|
406
|
+
await support_1.fs.writeFile(file, newContents, 'utf8');
|
|
407
|
+
}
|
|
408
|
+
}
|
|
395
409
|
//# sourceMappingURL=utils.js.map
|
package/build/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,kDAqCC;AAOD,wBAEC;AAQD,8CAYC;AAMD,4CAeC;AAED,sDAKC;AA2BD,4CASC;AASD,0DAWC;AAQD,oDAgCC;AASD,oDAKC;AAKD,kCA4BC;AAKD,8BAEC;AAKD,wDAOC;AAKD,gDASC;AAeD,wDA8BC;AA3WD,6CAA4C;AAC5C,+CAAgD;AAChD,uDAA0C;AAC1C,uCAAyC;AACzC,qCAA+B;AAC/B,oDAAuB;AACvB,2CAAuE;AACvE,wDAAyB;AACzB,sDAA0B;AAC1B,uCAA4C;AAC5C,qCAA+B;AAG/B,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,wDAAwD;AACxD,MAAM,eAAe,GACnB,OAAO,UAAU,KAAK,WAAW;IAC/B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAI,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAE9D,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,eAAe,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,gBAAC,CAAC,OAAO,CAAC,SAAS,aAAa;IACpD,IAAI,UAAU,GAAG,cAAc,CAAC;IAChC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,IAAI,iBAAG,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,iBAAG,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACxF,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,UAAU,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,aAAa,EAAE,CAAC;AAEvC,KAAK,UAAU,mBAAmB,CAAE,YAAoB;IAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,gBAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,IAAA,mBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,YAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,MAAM,KAAK,gBAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,yCAAyC;YACzC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAA,2BAAgB,EAAC,KAAK,IAAI,EAAE;gBAChC,MAAM,gBAAgB,GAAG,WAAW;qBACjC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,mBAAI,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACrC,6BAA6B;qBAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;oBAClB,sBAAsB;qBACrB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACnB,CAAC;gBACJ,OAAO,CAAC,MAAM,kBAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;qBACnC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC9B,CAAC,EAAE;gBACD,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAE,YAAoB;IAC1C,OAAO,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,gBAAC,CAAC,OAAO,CAAC,8BAAkB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAE,SAAiB,EAAE,WAAmB;IAC7E,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,qFAAqF;QACrF,MAAM,YAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,eAAe,MAAM,CAAC,CAAC;QAC7D,MAAM,aAAa,CAAC,eAAe,EAAE,IAAI,MAAM,CAAC,gBAAC,CAAC,YAAY,CAAC,gCAAoB,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QACzG,YAAG,CAAC,KAAK,CAAC,yBAAyB,eAAe,qBAAqB,WAAW,GAAG,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,YAAG,CAAC,IAAI,CAAC,kCAAkC,eAAe,SAAS;YACjE,cAAc,WAAW,iCAAiC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAE,SAAiB;IACvD,MAAM,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,mBAAmB;QAC7B,CAAC;QACD,MAAM,YAAE,CAAC,EAAE,CAAC,GAAG,eAAe,MAAM,EAAE,eAAe,CAAC,CAAC;QACvD,YAAG,CAAC,KAAK,CAAC,uBAAuB,eAAe,qBAAqB,gCAAoB,GAAG,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,YAAG,CAAC,IAAI,CAAC,iCAAiC,eAAe,SAAS;YAChE,cAAc,gCAAoB,6BAA6B;YAC/D,kDAAkD,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAE,YAAoB,EAAE,gBAAwB;IACzF,YAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC7C,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IACrE,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IACxF,MAAM,IAAA,mBAAI,EAAC,UAAU,EAAE,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACtF,CAAC;AAaD;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,gBAAgB,CAAE,IAAuB;IAC7D,MAAM,EAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC;IAClF,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5F,MAAM,gBAAgB,GAAG,MAAM,eAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,uBAAuB,CAAC,UAAU,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IACpG,MAAM,mBAAmB,GAAG,gBAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,eAAK,CAAC,eAAe,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAE1E,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAE,YAAoB,EAAE,aAA8B,EAAE,YAAqB;IAClH,MAAM,MAAM,GAAG,uBAAuB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5E,OAAO;QACL,CAAC,MAAM,CAAC,EAAE;YACR,oBAAoB,EAAE;gBACpB,4BAA4B;gBAC5B,QAAQ,EAAE,GAAG,aAAa,EAAE;gBAC5B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CAAE,UAAsB,EAAE,UAAkB,EAAE,aAAqB;IAC3G,kDAAkD;IAClD,MAAM,QAAQ,GAAqB;QACjC,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,YAAY,CAAC;QACzE,UAAU;KACX,CAAC;IACF,qDAAqD;IACrD,MAAM,aAAa,GAAqB;QACtC,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,eAAe,YAAY,CAAC;QACzF,UAAU,CAAC,eAAe;KAC3B,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;QAC5D,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,YAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,qBAAqB,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,qBAAqB,GAAG,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACrG,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3C,6FAA6F;YAC7F,0GAA0G;YAC1G,MAAM,YAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACnD,YAAG,CAAC,IAAI,CAAC,UAAU,QAAQ,kCAAkC,qBAAqB,GAAG,CAAC,CAAC;YACvF,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0DAA0D;QAC1D,2CAA2C;QAC3C,IAAI,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAClF,CAAC;AACJ,CAAC;AAGD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAE,UAAsB,EAAE,OAAe;IAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY;QACxC,CAAC,CAAC,KAAK,OAAO,QAAQ;QACtB,CAAC,CAAC,YAAY,OAAO,IAAI,IAAA,cAAI,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,OAAO,wBAAwB,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,YAAY,CAAC;AACtH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAAE,IAAY,EAAE,IAAmC;IAClF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,YAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,mBAAmB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAEtE,YAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACtD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,YAAG,CAAC,KAAK,CAAC,GAAG,IAAI,8CAA8C,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,YAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAClD,6DAA6D;YAC7D,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAE,GAAW,EAAE,IAAY;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,sBAAsB;IAC1C,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,YAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAE,IAAY,EAAE,WAAoB;IAC1E,MAAM,eAAe,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;QAC3C,2CAA2C;QAC3C,eAAe,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,YAAG,CAAC,KAAK,CAAC,8BAA8B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;IACjG,MAAM,kBAAC,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,sBAAsB,CAAE,IAAqB,EAAE,gBAA0E,IAAI;IACjJ,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjB,yDAAyD;YACzD,YAAG,CAAC,KAAK,CAAC,8CAA8C,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,kBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,CAAC,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACjB,gEAAgE;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oBAAoB;AAEpB,KAAK,UAAU,mBAAmB,CAAE,OAAe;IACjD,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,uCAAuC;QAC9C,OAAO;KACR,CAAC;IACF,IAAI,CAAC;QACH,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC3B,MAAM,CAAC,gBAAC,CAAC,SAAS,CAAC;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,wDAAwD,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAE,IAAY,EAAE,IAAqB,EAAE,OAAe;IAChF,MAAM,QAAQ,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|