appium-chromedriver 8.0.31 → 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.
@@ -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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"}
@@ -3,24 +3,27 @@ import path from 'path';
3
3
  import {logger} from '@appium/support';
4
4
  import * as semver from 'semver';
5
5
  import {ARCH, CPU} from '../constants';
6
+ import type {ChromedriverDetailsMapping} from '../types';
6
7
 
7
8
  const log = logger.getLogger('ChromedriverChromelabsStorageClient');
8
9
 
9
10
  /**
10
- * Parses The output of the corresponding JSON API
11
- * that retrieves Chromedriver versions. See
12
- * https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints
13
- * for more details.
11
+ * Parses the output of the JSON API that retrieves Chromedriver versions
14
12
  *
15
- * @param {string} jsonStr
16
- * @returns {ChromedriverDetailsMapping}
13
+ * See https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints for more details.
14
+ *
15
+ * @param jsonStr - The JSON string from the known-good-versions-with-downloads API
16
+ * @returns A mapping of chromedriver entry keys to their details
17
+ * @throws {Error} if the JSON cannot be parsed or has an unsupported format
17
18
  */
18
- export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
19
- let json;
19
+ export function parseKnownGoodVersionsWithDownloadsJson(
20
+ jsonStr: string
21
+ ): ChromedriverDetailsMapping {
22
+ let json: KnownGoodVersionsJson;
20
23
  try {
21
24
  json = JSON.parse(jsonStr);
22
25
  } catch (e) {
23
- const err = /** @type {Error} */ (e);
26
+ const err = e as Error;
24
27
  throw new Error(`Storage JSON cannot be parsed. Original error: ${err.message}`);
25
28
  }
26
29
  /**
@@ -60,8 +63,7 @@ export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
60
63
  * "version":"113.0.5672.35",
61
64
  * ...
62
65
  */
63
- /** @type {ChromedriverDetailsMapping} */
64
- const mapping = {};
66
+ const mapping: ChromedriverDetailsMapping = {};
65
67
  if (!_.isArray(json?.versions)) {
66
68
  log.debug(jsonStr);
67
69
  throw new Error('The format of the storage JSON is not supported');
@@ -80,10 +82,13 @@ export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
80
82
  }
81
83
  const osNameMatch = /^[a-z]+/i.exec(downloadEntry.platform);
82
84
  if (!osNameMatch) {
83
- log.debug(`The entry '${downloadEntry.url}' does not contain valid platform name. Skipping it`);
85
+ log.debug(
86
+ `The entry '${downloadEntry.url}' does not contain valid platform name. Skipping it`
87
+ );
84
88
  continue;
85
89
  }
86
- const key = `${path.basename(path.dirname(path.dirname(downloadEntry.url)))}/` +
90
+ const key =
91
+ `${path.basename(path.dirname(path.dirname(downloadEntry.url)))}/` +
87
92
  `${path.basename(downloadEntry.url)}`;
88
93
  mapping[key] = {
89
94
  url: downloadEntry.url,
@@ -94,7 +99,7 @@ export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
94
99
  name: osNameMatch[0],
95
100
  arch: downloadEntry.platform.includes(ARCH.X64) ? ARCH.X64 : ARCH.X86,
96
101
  cpu: downloadEntry.platform.includes(CPU.ARM) ? CPU.ARM : CPU.INTEL,
97
- }
102
+ },
98
103
  };
99
104
  }
100
105
  }
@@ -103,20 +108,20 @@ export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
103
108
  }
104
109
 
105
110
  /**
106
- * Parses The output of the corresponding JSON API
107
- * that retrieves the most recent stable Chromedriver version. See
108
- * https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints
109
- * for more details.
111
+ * Parses the output of the JSON API that retrieves the most recent stable Chromedriver version
112
+ *
113
+ * See https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints for more details.
110
114
  *
111
- * @param {string} jsonStr
112
- * @returns {string} The most recent available chromedriver version
115
+ * @param jsonStr - The JSON string from the last-known-good-versions API
116
+ * @returns The most recent available chromedriver version string
117
+ * @throws {Error} if the JSON cannot be parsed or has an unsupported format
113
118
  */
114
- export function parseLatestKnownGoodVersionsJson(jsonStr) {
115
- let json;
119
+ export function parseLatestKnownGoodVersionsJson(jsonStr: string): string {
120
+ let json: LatestKnownGoodVersionsJson;
116
121
  try {
117
122
  json = JSON.parse(jsonStr);
118
123
  } catch (e) {
119
- const err = /** @type {Error} */ (e);
124
+ const err = e as Error;
120
125
  throw new Error(`Storage JSON cannot be parsed. Original error: ${err.message}`);
121
126
  }
122
127
  /**
@@ -136,6 +141,29 @@ export function parseLatestKnownGoodVersionsJson(jsonStr) {
136
141
  return json.channels.Stable.version;
137
142
  }
138
143
 
139
- /**
140
- * @typedef {import('../types').ChromedriverDetailsMapping} ChromedriverDetailsMapping
141
- */
144
+ interface VersionEntry {
145
+ version: string;
146
+ revision?: string;
147
+ downloads?: {
148
+ chromedriver?: Array<{
149
+ platform: string;
150
+ url: string;
151
+ }>;
152
+ };
153
+ }
154
+
155
+ interface KnownGoodVersionsJson {
156
+ timestamp?: string;
157
+ versions?: VersionEntry[];
158
+ }
159
+
160
+ interface LatestKnownGoodVersionsJson {
161
+ timestamp?: string;
162
+ channels?: {
163
+ Stable?: {
164
+ channel?: string;
165
+ version?: string;
166
+ revision?: string;
167
+ };
168
+ };
169
+ }