appium-chromedriver 8.0.30 → 8.1.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.
@@ -1,88 +1,73 @@
1
- export class ChromedriverStorageClient {
2
- /**
3
- *
4
- * @param {import('../types').ChromedriverStorageClientOpts} args
5
- */
6
- constructor(args?: import("../types").ChromedriverStorageClientOpts);
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 {boolean} shouldParseNotes [true] - if set to `true`
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 {Promise<ChromedriverDetailsMapping>}
13
+ * @returns Promise<ChromedriverDetailsMapping>
18
14
  */
19
15
  retrieveMapping(shouldParseNotes?: boolean): Promise<ChromedriverDetailsMapping>;
20
16
  /**
21
- * Extracts downloaded chromedriver archive
22
- * into the given destination
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
- * @param {string} src - The source archive path
25
- * @param {string} dst - The destination chromedriver path
27
+ * @returns The latest stable chromedriver version string
28
+ * @throws {Error} if the version cannot be fetched from the remote API
26
29
  */
27
- unzipDriver(src: string, dst: string): Promise<void>;
30
+ getLatestKnownGoodVersion(): Promise<string>;
28
31
  /**
29
- * Filters `this.mapping` to only select matching
30
- * chromedriver entries by operating system information
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 {OSInfo} osInfo
34
- * @param {SyncOptions} opts
35
- * @returns {Array<String>} The list of filtered chromedriver
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(osInfo: OSInfo, opts?: SyncOptions): Array<string>;
39
+ private selectMatchingDrivers;
39
40
  /**
40
41
  * Checks whether the given chromedriver matches the operating system to run on
41
42
  *
42
- * @param {string} cdName
43
- * @param {OSInfo} osInfo
44
- * @returns {boolean}
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(cdName: string, { name, arch, cpu }: OSInfo): boolean;
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 {number} index - The unique driver index
52
- * @param {string} driverKey - The driver key in `this.mapping`
53
- * @param {string} archivesRoot - The temporary folder path to extract
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 {boolean} isStrict [true] - Whether to throw an error (`true`)
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 {Promise<boolean>} if `true` then the chromedriver is successfully
60
+ * @returns if `true` then the chromedriver is successfully
60
61
  * downloaded and extracted.
61
62
  */
62
- retrieveDriver(index: number, driverKey: string, archivesRoot: string, isStrict?: boolean): Promise<boolean>;
63
+ private retrieveDriver;
63
64
  /**
64
- * Retrieves chromedrivers from the remote storage
65
- * to the local file system
65
+ * Extracts downloaded chromedriver archive
66
+ * into the given destination
66
67
  *
67
- * @param {SyncOptions} opts
68
- * @throws {Error} if there was a problem while retrieving
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
- syncDrivers(opts?: SyncOptions): Promise<string[]>;
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.js"],"names":[],"mappings":"AAiDA;IACE;;;OAGG;IACH,mBAFW,OAAO,UAAU,EAAE,6BAA6B,EAQ1D;IAJC,wBAAsC;IACtC,gBAAsB;IACtB,yCAAyC;IACzC,SADW,0BAA0B,CACpB;IAGnB;;;;;;;OAOG;IACH,mCALW,OAAO,GAGL,OAAO,CAAC,0BAA0B,CAAC,CAmC/C;IAED;;;;;;OAMG;IACH,iBAHW,MAAM,OACN,MAAM,iBAwBhB;IAED;;;;;;;;;OASG;IACH,8BALW,MAAM,SACN,WAAW,GACT,KAAK,QAAQ,CAyHzB;IAED;;;;;;OAMG;IACH,2BAJW,MAAM,uBACN,MAAM,GACJ,OAAO,CAgBnB;IAED;;;;;;;;;;;;;;OAcG;IACH,sBAXW,MAAM,aACN,MAAM,gBACN,MAAM,aAEN,OAAO,GAIL,OAAO,CAAC,OAAO,CAAC,CA4C5B;IAED;;;;;;;;OAQG;IACH,mBALW,WAAW,GAGT,OAAO,CAAC,MAAM,EAAE,CAAC,CAwD7B;IAED;;;OAGG;IACH,6BAFa,OAAO,CAAC,MAAM,CAAC,CAmB3B;CACF;;0BAKY,OAAO,UAAU,EAAE,WAAW;qBAC9B,OAAO,UAAU,EAAE,MAAM;kCACzB,OAAO,UAAU,EAAE,mBAAmB;yCACtC,OAAO,UAAU,EAAE,0BAA0B;;SAK5C,MAAM;YACN,MAAM"}
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 = /** @type {readonly StorageInfo[]} */ ([{
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
- * @param {import('../types').ChromedriverStorageClientOpts} args
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 {boolean} shouldParseNotes [true] - if set to `true`
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 {Promise<ChromedriverDetailsMapping>}
83
+ * @returns Promise<ChromedriverDetailsMapping>
89
84
  */
90
85
  async retrieveMapping(shouldParseNotes = true) {
91
- /** @type {(si: StorageInfo) => Promise<string|undefined>} */
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
- log.debug(/** @type {Error} */ (e).stack);
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: ${ /** @type {Error} */(e).message}`);
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
- * Extracts downloaded chromedriver archive
123
- * into the given destination
117
+ * Retrieves chromedrivers from the remote storage to the local file system
124
118
  *
125
- * @param {string} src - The source archive path
126
- * @param {string} dst - The destination chromedriver path
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 unzipDriver(src, dst) {
129
- const tmpRoot = await support_1.tempDir.openDir();
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
- await support_1.zip.extractAllTo(src, tmpRoot);
132
- const chromedriverPath = await support_1.fs.walkDir(tmpRoot, true, (itemPath, isDirectory) => !isDirectory && lodash_1.default.toLower(path_1.default.parse(itemPath).name) === 'chromedriver');
133
- if (!chromedriverPath) {
134
- throw new Error('The archive was unzipped properly, but we could not find any chromedriver executable');
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
- log.debug(`Moving the extracted '${path_1.default.basename(chromedriverPath)}' to '${dst}'`);
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(tmpRoot);
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
- * chromedriver entries by operating system information
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 {OSInfo} osInfo
151
- * @param {SyncOptions} opts
152
- * @returns {Array<String>} The list of filtered chromedriver
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, arch: constants_1.ARCH.X86, cpu
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, arch, cpu: constants_1.CPU.INTEL
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((/** @type {string} */ a, /** @type {string}} */ b) => (0, compare_versions_1.compareVersions)(b, a));
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 {string} cdName
253
- * @param {OSInfo} osInfo
254
- * @returns {boolean}
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 {number} index - The unique driver index
274
- * @param {string} driverKey - The driver key in `this.mapping`
275
- * @param {string} archivesRoot - The temporary folder path to extract
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 {boolean} isStrict [true] - Whether to throw an error (`true`)
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 {Promise<boolean>} if `true` then the chromedriver is successfully
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 = /** @type {Error} */ (e);
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 = /** @type {Error} */ (e);
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
- * Retrieves chromedrivers from the remote storage
330
- * to the local file system
376
+ * Extracts downloaded chromedriver archive
377
+ * into the given destination
331
378
  *
332
- * @param {SyncOptions} opts
333
- * @throws {Error} if there was a problem while retrieving
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 syncDrivers(opts = {}) {
338
- if (lodash_1.default.isEmpty(this.mapping)) {
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
- for (const [idx, driverKey] of driversToSync.entries()) {
360
- const promise = bluebird_1.default.resolve((async () => {
361
- if (await this.retrieveDriver(idx, driverKey, archivesRoot, !lodash_1.default.isEmpty(opts))) {
362
- synchronizedDrivers.push(driverKey);
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
- await bluebird_1.default.all(promises);
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(archivesRoot);
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":"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"}
@@ -69,6 +69,10 @@ export class Chromedriver extends events.EventEmitter {
69
69
  this.bundleId = bundleId;
70
70
  this.executableVerified = false;
71
71
  this.state = Chromedriver.STATE_STOPPED;
72
+
73
+ // to mock in unit test
74
+ this._execFunc = exec;
75
+
72
76
  /** @type {Record<string, any>} */
73
77
  const proxyOpts = {
74
78
  server: this.proxyHost,
@@ -187,7 +191,7 @@ export class Chromedriver extends events.EventEmitter {
187
191
  let stdout;
188
192
  let stderr;
189
193
  try {
190
- ({stdout, stderr} = await exec(executable, ['--version'], {
194
+ ({stdout, stderr} = await this._execFunc(executable, ['--version'], {
191
195
  timeout: CD_VERSION_TIMEOUT,
192
196
  }));
193
197
  } catch (e) {