appium-chromedriver 8.0.31 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/lib/chromedriver.d.ts +88 -117
- package/build/lib/chromedriver.d.ts.map +1 -1
- package/build/lib/chromedriver.js +273 -284
- package/build/lib/chromedriver.js.map +1 -1
- package/build/lib/constants.d.ts +18 -18
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js.map +1 -1
- package/build/lib/protocol-helpers.d.ts +14 -13
- package/build/lib/protocol-helpers.d.ts.map +1 -1
- package/build/lib/protocol-helpers.js +13 -12
- package/build/lib/protocol-helpers.js.map +1 -1
- package/build/lib/storage-client/chromelabs.d.ts +15 -15
- package/build/lib/storage-client/chromelabs.d.ts.map +1 -1
- package/build/lib/storage-client/chromelabs.js +15 -19
- package/build/lib/storage-client/chromelabs.js.map +1 -1
- package/build/lib/storage-client/googleapis.d.ts +14 -16
- package/build/lib/storage-client/googleapis.d.ts.map +1 -1
- package/build/lib/storage-client/googleapis.js +25 -41
- package/build/lib/storage-client/googleapis.js.map +1 -1
- package/build/lib/storage-client/storage-client.d.ts +41 -56
- package/build/lib/storage-client/storage-client.d.ts.map +1 -1
- package/build/lib/storage-client/storage-client.js +118 -137
- package/build/lib/storage-client/storage-client.js.map +1 -1
- package/build/lib/utils.d.ts +55 -41
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +51 -54
- package/build/lib/utils.js.map +1 -1
- package/lib/{chromedriver.js → chromedriver.ts} +344 -333
- package/lib/{constants.js → constants.ts} +5 -4
- package/lib/protocol-helpers.ts +44 -0
- package/lib/storage-client/{chromelabs.js → chromelabs.ts} +54 -26
- package/lib/storage-client/{googleapis.js → googleapis.ts} +55 -54
- package/lib/storage-client/{storage-client.js → storage-client.ts} +188 -182
- package/lib/utils.ts +185 -0
- package/package.json +2 -1
- package/lib/protocol-helpers.js +0 -44
- package/lib/utils.js +0 -189
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"googleapis.js","sourceRoot":"","sources":["../../../lib/storage-client/googleapis.
|
|
1
|
+
{"version":3,"file":"googleapis.js","sourceRoot":"","sources":["../../../lib/storage-client/googleapis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,88 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
constructor(args?:
|
|
7
|
-
chromedriverDir: string;
|
|
8
|
-
timeout: number;
|
|
9
|
-
/** @type {ChromedriverDetailsMapping} */
|
|
10
|
-
mapping: ChromedriverDetailsMapping;
|
|
1
|
+
import type { ChromedriverStorageClientOpts, SyncOptions, ChromedriverDetailsMapping } from '../types';
|
|
2
|
+
export declare class ChromedriverStorageClient {
|
|
3
|
+
readonly chromedriverDir: string;
|
|
4
|
+
readonly timeout: number;
|
|
5
|
+
private mapping;
|
|
6
|
+
constructor(args?: ChromedriverStorageClientOpts);
|
|
11
7
|
/**
|
|
12
8
|
* Retrieves chromedriver mapping from the storage
|
|
13
9
|
*
|
|
14
|
-
* @param
|
|
10
|
+
* @param shouldParseNotes [true] - if set to `true`
|
|
15
11
|
* then additional chromedrivers info is going to be retrieved and
|
|
16
12
|
* parsed from release notes
|
|
17
|
-
* @returns
|
|
13
|
+
* @returns Promise<ChromedriverDetailsMapping>
|
|
18
14
|
*/
|
|
19
15
|
retrieveMapping(shouldParseNotes?: boolean): Promise<ChromedriverDetailsMapping>;
|
|
20
16
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
17
|
+
* Retrieves chromedrivers from the remote storage to the local file system
|
|
18
|
+
*
|
|
19
|
+
* @param opts - Synchronization options (versions, minBrowserVersion, osInfo)
|
|
20
|
+
* @throws {Error} if there was a problem while retrieving the drivers
|
|
21
|
+
* @returns The list of successfully synchronized driver keys
|
|
22
|
+
*/
|
|
23
|
+
syncDrivers(opts?: SyncOptions): Promise<string[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Returns the latest chromedriver version for Chrome for Testing
|
|
23
26
|
*
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
27
|
+
* @returns The latest stable chromedriver version string
|
|
28
|
+
* @throws {Error} if the version cannot be fetched from the remote API
|
|
26
29
|
*/
|
|
27
|
-
|
|
30
|
+
getLatestKnownGoodVersion(): Promise<string>;
|
|
28
31
|
/**
|
|
29
|
-
* Filters `this.mapping` to only select matching
|
|
30
|
-
*
|
|
31
|
-
* and/or additional synchronization options (if provided)
|
|
32
|
+
* Filters `this.mapping` to only select matching chromedriver entries
|
|
33
|
+
* by operating system information and/or additional synchronization options
|
|
32
34
|
*
|
|
33
|
-
* @param
|
|
34
|
-
* @param
|
|
35
|
-
* @returns
|
|
36
|
-
* entry names (version/archive name)
|
|
35
|
+
* @param osInfo - Operating system information to match against
|
|
36
|
+
* @param opts - Synchronization options (versions, minBrowserVersion)
|
|
37
|
+
* @returns The list of filtered chromedriver entry names (version/archive name)
|
|
37
38
|
*/
|
|
38
|
-
selectMatchingDrivers
|
|
39
|
+
private selectMatchingDrivers;
|
|
39
40
|
/**
|
|
40
41
|
* Checks whether the given chromedriver matches the operating system to run on
|
|
41
42
|
*
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
44
|
-
* @returns
|
|
43
|
+
* @param cdName - The chromedriver entry key in the mapping
|
|
44
|
+
* @param osInfo - Operating system information to match against
|
|
45
|
+
* @returns True if the chromedriver matches the OS info
|
|
45
46
|
*/
|
|
46
|
-
doesMatchForOsInfo
|
|
47
|
+
private doesMatchForOsInfo;
|
|
47
48
|
/**
|
|
48
49
|
* Retrieves the given chromedriver from the storage
|
|
49
50
|
* and unpacks it into `this.chromedriverDir` folder
|
|
50
51
|
*
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @param
|
|
52
|
+
* @param index - The unique driver index
|
|
53
|
+
* @param driverKey - The driver key in `this.mapping`
|
|
54
|
+
* @param archivesRoot - The temporary folder path to extract
|
|
54
55
|
* downloaded archives to
|
|
55
|
-
* @param
|
|
56
|
+
* @param isStrict [true] - Whether to throw an error (`true`)
|
|
56
57
|
* or return a boolean result if the driver retrieval process fails
|
|
57
58
|
* @throws {Error} if there was a failure while retrieving the driver
|
|
58
59
|
* and `isStrict` is set to `true`
|
|
59
|
-
* @returns
|
|
60
|
+
* @returns if `true` then the chromedriver is successfully
|
|
60
61
|
* downloaded and extracted.
|
|
61
62
|
*/
|
|
62
|
-
retrieveDriver
|
|
63
|
+
private retrieveDriver;
|
|
63
64
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
65
|
+
* Extracts downloaded chromedriver archive
|
|
66
|
+
* into the given destination
|
|
66
67
|
*
|
|
67
|
-
* @param
|
|
68
|
-
* @
|
|
69
|
-
* the drivers
|
|
70
|
-
* @returns {Promise<string[]>} The list of successfully synchronized driver keys
|
|
68
|
+
* @param src - The source archive path
|
|
69
|
+
* @param dst - The destination chromedriver path
|
|
71
70
|
*/
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Return latest chromedriver version for Chrome for Testing.
|
|
75
|
-
* @returns {Promise<string>}
|
|
76
|
-
*/
|
|
77
|
-
getLatestKnownGoodVersion(): Promise<string>;
|
|
71
|
+
private unzipDriver;
|
|
78
72
|
}
|
|
79
|
-
export default ChromedriverStorageClient;
|
|
80
|
-
export type SyncOptions = import("../types").SyncOptions;
|
|
81
|
-
export type OSInfo = import("../types").OSInfo;
|
|
82
|
-
export type ChromedriverDetails = import("../types").ChromedriverDetails;
|
|
83
|
-
export type ChromedriverDetailsMapping = import("../types").ChromedriverDetailsMapping;
|
|
84
|
-
export type StorageInfo = {
|
|
85
|
-
url: string;
|
|
86
|
-
accept: string;
|
|
87
|
-
};
|
|
88
73
|
//# sourceMappingURL=storage-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-client.d.ts","sourceRoot":"","sources":["../../../lib/storage-client/storage-client.
|
|
1
|
+
{"version":3,"file":"storage-client.d.ts","sourceRoot":"","sources":["../../../lib/storage-client/storage-client.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,6BAA6B,EAC7B,WAAW,EAEX,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AA6BlB,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,IAAI,GAAE,6BAAkC;IAOpD;;;;;;;OAOG;IACG,eAAe,CAAC,gBAAgB,UAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAuCnF;;;;;;OAMG;IACG,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqD5D;;;;;OAKG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBlD;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IA6H7B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;;;;;;;;;OAcG;YACW,cAAc;IAgD5B;;;;;;OAMG;YACW,WAAW;CAuB1B"}
|
|
@@ -48,48 +48,42 @@ const chromelabs_1 = require("./chromelabs");
|
|
|
48
48
|
const compare_versions_1 = require("compare-versions");
|
|
49
49
|
const semver = __importStar(require("semver"));
|
|
50
50
|
const MAX_PARALLEL_DOWNLOADS = 5;
|
|
51
|
-
const STORAGE_INFOS =
|
|
51
|
+
const STORAGE_INFOS = [
|
|
52
|
+
{
|
|
52
53
|
url: constants_1.GOOGLEAPIS_CDN,
|
|
53
54
|
accept: 'application/xml',
|
|
54
|
-
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
55
57
|
url: `${constants_1.CHROMELABS_URL}/chrome-for-testing/known-good-versions-with-downloads.json`,
|
|
56
58
|
accept: 'application/json',
|
|
57
|
-
}
|
|
59
|
+
},
|
|
60
|
+
];
|
|
58
61
|
const CHROME_FOR_TESTING_LAST_GOOD_VERSIONS = `${constants_1.CHROMELABS_URL}/chrome-for-testing/last-known-good-versions.json`;
|
|
59
62
|
const log = support_1.logger.getLogger('ChromedriverStorageClient');
|
|
60
|
-
/**
|
|
61
|
-
*
|
|
62
|
-
* @param {string} src
|
|
63
|
-
* @param {string} checksum
|
|
64
|
-
* @returns {Promise<boolean>}
|
|
65
|
-
*/
|
|
66
63
|
async function isCrcOk(src, checksum) {
|
|
67
64
|
const md5 = await support_1.fs.hash(src, 'md5');
|
|
68
65
|
return lodash_1.default.toLower(md5) === lodash_1.default.toLower(checksum);
|
|
69
66
|
}
|
|
70
67
|
class ChromedriverStorageClient {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*/
|
|
68
|
+
chromedriverDir;
|
|
69
|
+
timeout;
|
|
70
|
+
mapping;
|
|
75
71
|
constructor(args = {}) {
|
|
76
72
|
const { chromedriverDir = (0, utils_1.getChromedriverDir)(), timeout = constants_1.STORAGE_REQ_TIMEOUT_MS } = args;
|
|
77
73
|
this.chromedriverDir = chromedriverDir;
|
|
78
74
|
this.timeout = timeout;
|
|
79
|
-
/** @type {ChromedriverDetailsMapping} */
|
|
80
75
|
this.mapping = {};
|
|
81
76
|
}
|
|
82
77
|
/**
|
|
83
78
|
* Retrieves chromedriver mapping from the storage
|
|
84
79
|
*
|
|
85
|
-
* @param
|
|
80
|
+
* @param shouldParseNotes [true] - if set to `true`
|
|
86
81
|
* then additional chromedrivers info is going to be retrieved and
|
|
87
82
|
* parsed from release notes
|
|
88
|
-
* @returns
|
|
83
|
+
* @returns Promise<ChromedriverDetailsMapping>
|
|
89
84
|
*/
|
|
90
85
|
async retrieveMapping(shouldParseNotes = true) {
|
|
91
|
-
|
|
92
|
-
const retrieveResponseSafely = async (/** @type {StorageInfo} */ { url, accept }) => {
|
|
86
|
+
const retrieveResponseSafely = async ({ url, accept }) => {
|
|
93
87
|
try {
|
|
94
88
|
return await (0, utils_1.retrieveData)(url, {
|
|
95
89
|
'user-agent': constants_1.USER_AGENT,
|
|
@@ -97,10 +91,11 @@ class ChromedriverStorageClient {
|
|
|
97
91
|
}, { timeout: this.timeout });
|
|
98
92
|
}
|
|
99
93
|
catch (e) {
|
|
100
|
-
|
|
94
|
+
const err = e;
|
|
95
|
+
log.debug(err.stack);
|
|
101
96
|
log.warn(`Cannot retrieve Chromedrivers info from ${url}. ` +
|
|
102
97
|
`Make sure this URL is accessible from your network. ` +
|
|
103
|
-
`Original error: ${
|
|
98
|
+
`Original error: ${err.message}`);
|
|
104
99
|
}
|
|
105
100
|
};
|
|
106
101
|
const [xmlStr, jsonStr] = await bluebird_1.default.all(STORAGE_INFOS.map(retrieveResponseSafely));
|
|
@@ -119,38 +114,87 @@ class ChromedriverStorageClient {
|
|
|
119
114
|
return this.mapping;
|
|
120
115
|
}
|
|
121
116
|
/**
|
|
122
|
-
*
|
|
123
|
-
* into the given destination
|
|
117
|
+
* Retrieves chromedrivers from the remote storage to the local file system
|
|
124
118
|
*
|
|
125
|
-
* @param
|
|
126
|
-
* @
|
|
119
|
+
* @param opts - Synchronization options (versions, minBrowserVersion, osInfo)
|
|
120
|
+
* @throws {Error} if there was a problem while retrieving the drivers
|
|
121
|
+
* @returns The list of successfully synchronized driver keys
|
|
127
122
|
*/
|
|
128
|
-
async
|
|
129
|
-
|
|
123
|
+
async syncDrivers(opts = {}) {
|
|
124
|
+
if (lodash_1.default.isEmpty(this.mapping)) {
|
|
125
|
+
await this.retrieveMapping(!!opts.minBrowserVersion);
|
|
126
|
+
}
|
|
127
|
+
if (lodash_1.default.isEmpty(this.mapping)) {
|
|
128
|
+
throw new Error('Cannot retrieve chromedrivers mapping from Google storage');
|
|
129
|
+
}
|
|
130
|
+
const driversToSync = this.selectMatchingDrivers(opts.osInfo ?? (await (0, utils_1.getOsInfo)()), opts);
|
|
131
|
+
if (lodash_1.default.isEmpty(driversToSync)) {
|
|
132
|
+
log.debug(`There are no drivers to sync. Exiting`);
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
log.debug(`Got ${support_1.util.pluralize('driver', driversToSync.length, true)} to sync: ` +
|
|
136
|
+
JSON.stringify(driversToSync, null, 2));
|
|
137
|
+
const synchronizedDrivers = [];
|
|
138
|
+
const promises = [];
|
|
139
|
+
const chunk = [];
|
|
140
|
+
const archivesRoot = await support_1.tempDir.openDir();
|
|
130
141
|
try {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
142
|
+
for (const [idx, driverKey] of driversToSync.entries()) {
|
|
143
|
+
const promise = bluebird_1.default.resolve((async () => {
|
|
144
|
+
if (await this.retrieveDriver(idx, driverKey, archivesRoot, !lodash_1.default.isEmpty(opts))) {
|
|
145
|
+
synchronizedDrivers.push(driverKey);
|
|
146
|
+
}
|
|
147
|
+
})());
|
|
148
|
+
promises.push(promise);
|
|
149
|
+
chunk.push(promise);
|
|
150
|
+
if (chunk.length >= MAX_PARALLEL_DOWNLOADS) {
|
|
151
|
+
await bluebird_1.default.any(chunk);
|
|
152
|
+
}
|
|
153
|
+
lodash_1.default.remove(chunk, (p) => p.isFulfilled());
|
|
135
154
|
}
|
|
136
|
-
|
|
137
|
-
await support_1.fs.mv(chromedriverPath, dst, {
|
|
138
|
-
mkdirp: true,
|
|
139
|
-
});
|
|
155
|
+
await bluebird_1.default.all(promises);
|
|
140
156
|
}
|
|
141
157
|
finally {
|
|
142
|
-
await support_1.fs.rimraf(
|
|
158
|
+
await support_1.fs.rimraf(archivesRoot);
|
|
159
|
+
}
|
|
160
|
+
if (!lodash_1.default.isEmpty(synchronizedDrivers)) {
|
|
161
|
+
log.info(`Successfully synchronized ` +
|
|
162
|
+
`${support_1.util.pluralize('chromedriver', synchronizedDrivers.length, true)}`);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
log.info(`No chromedrivers were synchronized`);
|
|
166
|
+
}
|
|
167
|
+
return synchronizedDrivers;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Returns the latest chromedriver version for Chrome for Testing
|
|
171
|
+
*
|
|
172
|
+
* @returns The latest stable chromedriver version string
|
|
173
|
+
* @throws {Error} if the version cannot be fetched from the remote API
|
|
174
|
+
*/
|
|
175
|
+
async getLatestKnownGoodVersion() {
|
|
176
|
+
let jsonStr;
|
|
177
|
+
try {
|
|
178
|
+
jsonStr = await (0, utils_1.retrieveData)(CHROME_FOR_TESTING_LAST_GOOD_VERSIONS, {
|
|
179
|
+
'user-agent': constants_1.USER_AGENT,
|
|
180
|
+
accept: `application/json, */*`,
|
|
181
|
+
}, { timeout: constants_1.STORAGE_REQ_TIMEOUT_MS });
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
const err = e;
|
|
185
|
+
throw new Error(`Cannot fetch the latest Chromedriver version. ` +
|
|
186
|
+
`Make sure you can access ${CHROME_FOR_TESTING_LAST_GOOD_VERSIONS} from your machine or provide a mirror by setting ` +
|
|
187
|
+
`a custom value to CHROMELABS_URL environment variable. Original error: ${err.message}`);
|
|
143
188
|
}
|
|
189
|
+
return (0, chromelabs_1.parseLatestKnownGoodVersionsJson)(jsonStr);
|
|
144
190
|
}
|
|
145
191
|
/**
|
|
146
|
-
* Filters `this.mapping` to only select matching
|
|
147
|
-
*
|
|
148
|
-
* and/or additional synchronization options (if provided)
|
|
192
|
+
* Filters `this.mapping` to only select matching chromedriver entries
|
|
193
|
+
* by operating system information and/or additional synchronization options
|
|
149
194
|
*
|
|
150
|
-
* @param
|
|
151
|
-
* @param
|
|
152
|
-
* @returns
|
|
153
|
-
* entry names (version/archive name)
|
|
195
|
+
* @param osInfo - Operating system information to match against
|
|
196
|
+
* @param opts - Synchronization options (versions, minBrowserVersion)
|
|
197
|
+
* @returns The list of filtered chromedriver entry names (version/archive name)
|
|
154
198
|
*/
|
|
155
199
|
selectMatchingDrivers(osInfo, opts = {}) {
|
|
156
200
|
const { minBrowserVersion, versions = [] } = opts;
|
|
@@ -195,13 +239,17 @@ class ChromedriverStorageClient {
|
|
|
195
239
|
if (lodash_1.default.isEmpty(result) && arch === constants_1.ARCH.X64 && cpu === constants_1.CPU.INTEL) {
|
|
196
240
|
// Fallback to X86 if X64 architecture is not available for this driver
|
|
197
241
|
result = driversToSync.filter((cdName) => this.doesMatchForOsInfo(cdName, {
|
|
198
|
-
name,
|
|
242
|
+
name,
|
|
243
|
+
arch: constants_1.ARCH.X86,
|
|
244
|
+
cpu,
|
|
199
245
|
}));
|
|
200
246
|
}
|
|
201
247
|
if (lodash_1.default.isEmpty(result) && name === constants_1.OS.MAC && cpu === constants_1.CPU.ARM) {
|
|
202
248
|
// Fallback to Intel/Rosetta if ARM architecture is not available for this driver
|
|
203
249
|
result = driversToSync.filter((cdName) => this.doesMatchForOsInfo(cdName, {
|
|
204
|
-
name,
|
|
250
|
+
name,
|
|
251
|
+
arch,
|
|
252
|
+
cpu: constants_1.CPU.INTEL,
|
|
205
253
|
}));
|
|
206
254
|
}
|
|
207
255
|
driversToSync = result;
|
|
@@ -209,7 +257,6 @@ class ChromedriverStorageClient {
|
|
|
209
257
|
}
|
|
210
258
|
if (!lodash_1.default.isEmpty(driversToSync)) {
|
|
211
259
|
log.debug('Excluding older patches if present');
|
|
212
|
-
/** @type {{[key: string]: string[]}} */
|
|
213
260
|
const patchesMap = {};
|
|
214
261
|
// Older chromedrivers must not be excluded as they follow a different
|
|
215
262
|
// versioning pattern
|
|
@@ -234,7 +281,7 @@ class ChromedriverStorageClient {
|
|
|
234
281
|
if (patchesMap[majorVersion].length <= 1) {
|
|
235
282
|
continue;
|
|
236
283
|
}
|
|
237
|
-
patchesMap[majorVersion].sort((
|
|
284
|
+
patchesMap[majorVersion].sort((a, b) => (0, compare_versions_1.compareVersions)(b, a));
|
|
238
285
|
}
|
|
239
286
|
if (!lodash_1.default.isEmpty(patchesMap)) {
|
|
240
287
|
log.debug('Versions mapping: ' + JSON.stringify(patchesMap, null, 2));
|
|
@@ -249,9 +296,9 @@ class ChromedriverStorageClient {
|
|
|
249
296
|
/**
|
|
250
297
|
* Checks whether the given chromedriver matches the operating system to run on
|
|
251
298
|
*
|
|
252
|
-
* @param
|
|
253
|
-
* @param
|
|
254
|
-
* @returns
|
|
299
|
+
* @param cdName - The chromedriver entry key in the mapping
|
|
300
|
+
* @param osInfo - Operating system information to match against
|
|
301
|
+
* @returns True if the chromedriver matches the OS info
|
|
255
302
|
*/
|
|
256
303
|
doesMatchForOsInfo(cdName, { name, arch, cpu }) {
|
|
257
304
|
const cdInfo = this.mapping[cdName];
|
|
@@ -270,15 +317,15 @@ class ChromedriverStorageClient {
|
|
|
270
317
|
* Retrieves the given chromedriver from the storage
|
|
271
318
|
* and unpacks it into `this.chromedriverDir` folder
|
|
272
319
|
*
|
|
273
|
-
* @param
|
|
274
|
-
* @param
|
|
275
|
-
* @param
|
|
320
|
+
* @param index - The unique driver index
|
|
321
|
+
* @param driverKey - The driver key in `this.mapping`
|
|
322
|
+
* @param archivesRoot - The temporary folder path to extract
|
|
276
323
|
* downloaded archives to
|
|
277
|
-
* @param
|
|
324
|
+
* @param isStrict [true] - Whether to throw an error (`true`)
|
|
278
325
|
* or return a boolean result if the driver retrieval process fails
|
|
279
326
|
* @throws {Error} if there was a failure while retrieving the driver
|
|
280
327
|
* and `isStrict` is set to `true`
|
|
281
|
-
* @returns
|
|
328
|
+
* @returns if `true` then the chromedriver is successfully
|
|
282
329
|
* downloaded and extracted.
|
|
283
330
|
*/
|
|
284
331
|
async retrieveDriver(index, driverKey, archivesRoot, isStrict = false) {
|
|
@@ -292,7 +339,7 @@ class ChromedriverStorageClient {
|
|
|
292
339
|
});
|
|
293
340
|
}
|
|
294
341
|
catch (e) {
|
|
295
|
-
const err =
|
|
342
|
+
const err = e;
|
|
296
343
|
const msg = `Cannot download chromedriver archive. Original error: ${err.message}`;
|
|
297
344
|
if (isStrict) {
|
|
298
345
|
throw new Error(msg);
|
|
@@ -316,7 +363,7 @@ class ChromedriverStorageClient {
|
|
|
316
363
|
log.debug(`Permissions of the file '${targetPath}' have been changed to 755`);
|
|
317
364
|
}
|
|
318
365
|
catch (e) {
|
|
319
|
-
const err =
|
|
366
|
+
const err = e;
|
|
320
367
|
if (isStrict) {
|
|
321
368
|
throw err;
|
|
322
369
|
}
|
|
@@ -326,95 +373,29 @@ class ChromedriverStorageClient {
|
|
|
326
373
|
return true;
|
|
327
374
|
}
|
|
328
375
|
/**
|
|
329
|
-
*
|
|
330
|
-
*
|
|
376
|
+
* Extracts downloaded chromedriver archive
|
|
377
|
+
* into the given destination
|
|
331
378
|
*
|
|
332
|
-
* @param
|
|
333
|
-
* @
|
|
334
|
-
* the drivers
|
|
335
|
-
* @returns {Promise<string[]>} The list of successfully synchronized driver keys
|
|
379
|
+
* @param src - The source archive path
|
|
380
|
+
* @param dst - The destination chromedriver path
|
|
336
381
|
*/
|
|
337
|
-
async
|
|
338
|
-
|
|
339
|
-
await this.retrieveMapping(!!opts.minBrowserVersion);
|
|
340
|
-
}
|
|
341
|
-
if (lodash_1.default.isEmpty(this.mapping)) {
|
|
342
|
-
throw new Error('Cannot retrieve chromedrivers mapping from Google storage');
|
|
343
|
-
}
|
|
344
|
-
const driversToSync = this.selectMatchingDrivers(opts.osInfo ?? (await (0, utils_1.getOsInfo)()), opts);
|
|
345
|
-
if (lodash_1.default.isEmpty(driversToSync)) {
|
|
346
|
-
log.debug(`There are no drivers to sync. Exiting`);
|
|
347
|
-
return [];
|
|
348
|
-
}
|
|
349
|
-
log.debug(`Got ${support_1.util.pluralize('driver', driversToSync.length, true)} to sync: ` +
|
|
350
|
-
JSON.stringify(driversToSync, null, 2));
|
|
351
|
-
/**
|
|
352
|
-
* @type {string[]}
|
|
353
|
-
*/
|
|
354
|
-
const synchronizedDrivers = [];
|
|
355
|
-
const promises = [];
|
|
356
|
-
const chunk = [];
|
|
357
|
-
const archivesRoot = await support_1.tempDir.openDir();
|
|
382
|
+
async unzipDriver(src, dst) {
|
|
383
|
+
const tmpRoot = await support_1.tempDir.openDir();
|
|
358
384
|
try {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
}
|
|
364
|
-
})());
|
|
365
|
-
promises.push(promise);
|
|
366
|
-
chunk.push(promise);
|
|
367
|
-
if (chunk.length >= MAX_PARALLEL_DOWNLOADS) {
|
|
368
|
-
await bluebird_1.default.any(chunk);
|
|
369
|
-
}
|
|
370
|
-
lodash_1.default.remove(chunk, (p) => p.isFulfilled());
|
|
385
|
+
await support_1.zip.extractAllTo(src, tmpRoot);
|
|
386
|
+
const chromedriverPath = await support_1.fs.walkDir(tmpRoot, true, (itemPath, isDirectory) => !isDirectory && lodash_1.default.toLower(path_1.default.parse(itemPath).name) === 'chromedriver');
|
|
387
|
+
if (!chromedriverPath) {
|
|
388
|
+
throw new Error('The archive was unzipped properly, but we could not find any chromedriver executable');
|
|
371
389
|
}
|
|
372
|
-
|
|
390
|
+
log.debug(`Moving the extracted '${path_1.default.basename(chromedriverPath)}' to '${dst}'`);
|
|
391
|
+
await support_1.fs.mv(chromedriverPath, dst, {
|
|
392
|
+
mkdirp: true,
|
|
393
|
+
});
|
|
373
394
|
}
|
|
374
395
|
finally {
|
|
375
|
-
await support_1.fs.rimraf(
|
|
376
|
-
}
|
|
377
|
-
if (!lodash_1.default.isEmpty(synchronizedDrivers)) {
|
|
378
|
-
log.info(`Successfully synchronized ` +
|
|
379
|
-
`${support_1.util.pluralize('chromedriver', synchronizedDrivers.length, true)}`);
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
log.info(`No chromedrivers were synchronized`);
|
|
383
|
-
}
|
|
384
|
-
return synchronizedDrivers;
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Return latest chromedriver version for Chrome for Testing.
|
|
388
|
-
* @returns {Promise<string>}
|
|
389
|
-
*/
|
|
390
|
-
async getLatestKnownGoodVersion() {
|
|
391
|
-
let jsonStr;
|
|
392
|
-
try {
|
|
393
|
-
jsonStr = await (0, utils_1.retrieveData)(CHROME_FOR_TESTING_LAST_GOOD_VERSIONS, {
|
|
394
|
-
'user-agent': constants_1.USER_AGENT,
|
|
395
|
-
accept: `application/json, */*`,
|
|
396
|
-
}, { timeout: constants_1.STORAGE_REQ_TIMEOUT_MS });
|
|
397
|
-
}
|
|
398
|
-
catch (e) {
|
|
399
|
-
const err = /** @type {Error} */ (e);
|
|
400
|
-
throw new Error(`Cannot fetch the latest Chromedriver version. ` +
|
|
401
|
-
`Make sure you can access ${CHROME_FOR_TESTING_LAST_GOOD_VERSIONS} from your machine or provide a mirror by setting ` +
|
|
402
|
-
`a custom value to CHROMELABS_URL environment variable. Original error: ${err.message}`);
|
|
396
|
+
await support_1.fs.rimraf(tmpRoot);
|
|
403
397
|
}
|
|
404
|
-
return (0, chromelabs_1.parseLatestKnownGoodVersionsJson)(jsonStr);
|
|
405
398
|
}
|
|
406
399
|
}
|
|
407
400
|
exports.ChromedriverStorageClient = ChromedriverStorageClient;
|
|
408
|
-
exports.default = ChromedriverStorageClient;
|
|
409
|
-
/**
|
|
410
|
-
* @typedef {import('../types').SyncOptions} SyncOptions
|
|
411
|
-
* @typedef {import('../types').OSInfo} OSInfo
|
|
412
|
-
* @typedef {import('../types').ChromedriverDetails} ChromedriverDetails
|
|
413
|
-
* @typedef {import('../types').ChromedriverDetailsMapping} ChromedriverDetailsMapping
|
|
414
|
-
*/
|
|
415
|
-
/**
|
|
416
|
-
* @typedef {Object} StorageInfo
|
|
417
|
-
* @property {string} url
|
|
418
|
-
* @property {string} accept
|
|
419
|
-
*/
|
|
420
401
|
//# sourceMappingURL=storage-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-client.js","sourceRoot":"","sources":["../../../lib/storage-client/storage-client.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage-client.js","sourceRoot":"","sources":["../../../lib/storage-client/storage-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAMkB;AAClB,oDAAuB;AACvB,wDAAyB;AACzB,gDAAwB;AACxB,6CAA4E;AAC5E,4CAQsB;AACtB,6CAAsD;AACtD,6CAAuG;AACvG,uDAAiD;AACjD,+CAAiC;AAQjC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAOjC,MAAM,aAAa,GAA2B;IAC5C;QACE,GAAG,EAAE,0BAAc;QACnB,MAAM,EAAE,iBAAiB;KAC1B;IACD;QACE,GAAG,EAAE,GAAG,0BAAc,6DAA6D;QACnF,MAAM,EAAE,kBAAkB;KAC3B;CACF,CAAC;AAEF,MAAM,qCAAqC,GAAG,GAAG,0BAAc,mDAAmD,CAAC;AAEnH,MAAM,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;AAE1D,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,QAAgB;IAClD,MAAM,GAAG,GAAG,MAAM,YAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,gBAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,MAAa,yBAAyB;IAC3B,eAAe,CAAS;IACxB,OAAO,CAAS;IACjB,OAAO,CAA6B;IAE5C,YAAY,OAAsC,EAAE;QAClD,MAAM,EAAC,eAAe,GAAG,IAAA,0BAAkB,GAAE,EAAE,OAAO,GAAG,kCAAsB,EAAC,GAAG,IAAI,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI;QAC3C,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAAC,GAAG,EAAE,MAAM,EAAc,EAA+B,EAAE;YAC/F,IAAI,CAAC;gBACH,OAAO,MAAM,IAAA,oBAAY,EACvB,GAAG,EACH;oBACE,YAAY,EAAE,sBAAU;oBACxB,MAAM,EAAE,GAAG,MAAM,OAAO;iBACzB,EACD,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CACxB,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAU,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,GAAG,CAAC,IAAI,CACN,2CAA2C,GAAG,IAAI;oBAChD,sDAAsD;oBACtD,mBAAmB,GAAG,CAAC,OAAO,EAAE,CACnC,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,kBAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjF,6FAA6F;QAC7F,2EAA2E;QAC3E,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,qEAAqE;gBACnE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,8CAA8C;gBAClF,6DAA6D;gBAC7D,2CAA2C,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,qCAAwB,EAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAA,oDAAuC,EAAC,OAAO,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,OAAoB,EAAE;QACtC,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAA,iBAAS,GAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3F,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,KAAK,CACP,OAAO,cAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY;YACrE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CACzC,CAAC;QAEF,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,kBAAC,CAAC,OAAO,CACvB,CAAC,KAAK,IAAI,EAAE;oBACV,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC9E,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC,CAAC,EAAE,CACL,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;oBAC3C,MAAM,kBAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBACD,gBAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAE,CAAa,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,kBAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,MAAM,YAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CACN,4BAA4B;gBAC1B,GAAG,cAAI,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,yBAAyB;QAC7B,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAA,oBAAY,EAC1B,qCAAqC,EACrC;gBACE,YAAY,EAAE,sBAAU;gBACxB,MAAM,EAAE,uBAAuB;aAChC,EACD,EAAC,OAAO,EAAE,kCAAsB,EAAC,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,gDAAgD;gBAC9C,4BAA4B,qCAAqC,oDAAoD;gBACrH,0EAA0E,GAAG,CAAC,OAAO,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,6CAAgC,EAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,MAAc,EAAE,OAAoB,EAAE;QAClE,MAAM,EAAC,iBAAiB,EAAE,QAAQ,GAAG,EAAE,EAAC,GAAG,IAAI,CAAC;QAChD,IAAI,aAAa,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,6CAA6C;YAC7C,GAAG,CAAC,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC;YACzE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9C,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CACrD,CAAC;YAEF,GAAG,CAAC,KAAK,CAAC,OAAO,cAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAA,oBAAY,EAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;YAClC,gHAAgH;YAChH,GAAG,CAAC,KAAK,CACP,8EAA8E,oBAAoB,EAAE,CACrG,CAAC;YACF,IAAI,2BAA2B,GAAG,CAAC,CAAC;YACpC,0DAA0D;YAC1D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,wBAAwB,GAAG,QAAQ,CACvC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,EAC9C,EAAE,CACH,CAAC;gBACF,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC;oBACvC,wBAAwB,IAAI,oBAAoB;oBAChD,2BAA2B,GAAG,wBAAwB,EACtD,CAAC;oBACD,2BAA2B,GAAG,wBAAwB,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE;gBAC3C,GAAG,2BAA2B,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAC5F,CAAC;YAEF,GAAG,CAAC,KAAK,CAAC,OAAO,cAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,GAAG,CAAC,KAAK,CACP,yBAAyB,cAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;gBACxE,iBAAiB,gBAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAC1F,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,0DAA0D;YAC1D,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAA,kBAAU,GAAE,EAAC,GAAG,MAAM,CAAC;YAChD,GAAG,CAAC,KAAK,CAAC,qDAAqD,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;YACrF,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACvF,IAAI,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,gBAAI,CAAC,GAAG,IAAI,GAAG,KAAK,eAAG,CAAC,KAAK,EAAE,CAAC;gBAChE,uEAAuE;gBACvE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBAC9B,IAAI;oBACJ,IAAI,EAAE,gBAAI,CAAC,GAAG;oBACd,GAAG;iBACJ,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,cAAE,CAAC,GAAG,IAAI,GAAG,KAAK,eAAG,CAAC,GAAG,EAAE,CAAC;gBAC5D,iFAAiF;gBACjF,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBAC9B,IAAI;oBACJ,IAAI;oBACJ,GAAG,EAAE,eAAG,CAAC,KAAK;iBACf,CAAC,CACH,CAAC;YACJ,CAAC;YACD,aAAa,GAAG,MAAM,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,OAAO,cAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAChD,MAAM,UAAU,GAA8B,EAAE,CAAC;YACjD,sEAAsE;YACtE,qBAAqB;YACrB,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;YACrD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7C,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAChC,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAChC,CAAC;gBACD,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,MAAM,YAAY,IAAI,gBAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACzC,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAA,kCAAe,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtE,KAAK,MAAM,cAAc,IAAI,gBAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBACD,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9C,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,MAAc,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAS;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,SAAiB,EACjB,YAAoB,EACpB,QAAQ,GAAG,KAAK;QAEhB,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,WAAW,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,aAAG,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE;gBACvC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,kCAAsB;aAChC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,MAAM,GAAG,GAAG,yDAAyD,GAAG,CAAC,OAAO,EAAE,CAAC;YACnF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,iDAAiD,SAAS,iBAAiB,CAAC;YACxF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,GAAG,CAAC,gBAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,YAAE,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,4BAA4B,UAAU,4BAA4B,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,GAAW;QAChD,MAAM,OAAO,GAAG,MAAM,iBAAO,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,aAAG,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,gBAAgB,GAAG,MAAM,YAAE,CAAC,OAAO,CACvC,OAAO,EACP,IAAI,EACJ,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CACxB,CAAC,WAAW,IAAI,gBAAC,CAAC,OAAO,CAAC,cAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,cAAc,CAC1E,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,yBAAyB,cAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;YACnF,MAAM,YAAE,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBACjC,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,YAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF;AA5YD,8DA4YC"}
|