appium-chromedriver 5.5.3 → 5.6.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +14 -0
  3. package/build/lib/chromedriver.d.ts +1 -1
  4. package/build/lib/chromedriver.d.ts.map +1 -1
  5. package/build/lib/chromedriver.js +4 -4
  6. package/build/lib/chromedriver.js.map +1 -1
  7. package/build/lib/constants.d.ts +19 -0
  8. package/build/lib/constants.d.ts.map +1 -0
  9. package/build/lib/constants.js +26 -0
  10. package/build/lib/constants.js.map +1 -0
  11. package/build/lib/index.d.ts +1 -1
  12. package/build/lib/index.d.ts.map +1 -1
  13. package/build/lib/index.js +1 -1
  14. package/build/lib/index.js.map +1 -1
  15. package/build/lib/install.d.ts.map +1 -1
  16. package/build/lib/install.js +23 -8
  17. package/build/lib/install.js.map +1 -1
  18. package/build/lib/storage-client/chromelabs.d.ts +22 -0
  19. package/build/lib/storage-client/chromelabs.d.ts.map +1 -0
  20. package/build/lib/storage-client/chromelabs.js +148 -0
  21. package/build/lib/storage-client/chromelabs.js.map +1 -0
  22. package/build/lib/storage-client/googleapis.d.ts +32 -0
  23. package/build/lib/storage-client/googleapis.d.ts.map +1 -0
  24. package/build/lib/storage-client/googleapis.js +188 -0
  25. package/build/lib/storage-client/googleapis.js.map +1 -0
  26. package/build/lib/{storage-client.d.ts → storage-client/storage-client.d.ts} +14 -36
  27. package/build/lib/storage-client/storage-client.d.ts.map +1 -0
  28. package/build/lib/{storage-client.js → storage-client/storage-client.js} +105 -181
  29. package/build/lib/storage-client/storage-client.js.map +1 -0
  30. package/build/lib/types.d.ts +9 -3
  31. package/build/lib/types.d.ts.map +1 -1
  32. package/build/lib/utils.d.ts +6 -9
  33. package/build/lib/utils.d.ts.map +1 -1
  34. package/build/lib/utils.js +20 -21
  35. package/build/lib/utils.js.map +1 -1
  36. package/lib/chromedriver.js +4 -5
  37. package/lib/constants.js +24 -0
  38. package/lib/index.ts +1 -1
  39. package/lib/install.js +27 -10
  40. package/lib/storage-client/chromelabs.js +141 -0
  41. package/lib/storage-client/googleapis.js +209 -0
  42. package/lib/{storage-client.js → storage-client/storage-client.js} +124 -213
  43. package/lib/types.ts +9 -3
  44. package/lib/utils.js +20 -20
  45. package/package.json +1 -1
  46. package/build/lib/storage-client.d.ts.map +0 -1
  47. package/build/lib/storage-client.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-client.js","sourceRoot":"","sources":["../../../lib/storage-client/storage-client.js"],"names":[],"mappings":"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"}
@@ -46,15 +46,20 @@ export interface SyncOptions {
46
46
  export interface OSInfo {
47
47
  /**
48
48
  * The architecture of the host OS.
49
- * Can be either `32` or `64`
49
+ * Can be either `32`, `64``
50
50
  */
51
51
  arch: string;
52
52
  /**
53
53
  *
54
54
  * The name of the host OS.
55
- * Can be either `mac`, `windows` or `linux`
55
+ * Can be either `mac`, `win` or `linux`
56
56
  */
57
57
  name: string;
58
+ /**
59
+ * The cpu type of the host OS.
60
+ * Can be either `intel`, `arm`. `intel` is assumed by default
61
+ */
62
+ cpu?: string;
58
63
  }
59
64
  /**
60
65
  * Info about a Chromedriver version
@@ -67,12 +72,13 @@ export interface ChromedriverDetails {
67
72
  /**
68
73
  * CRC of driver archive
69
74
  */
70
- etag: string;
75
+ etag: string | null;
71
76
  /**
72
77
  * Chromedriver version
73
78
  */
74
79
  version: string;
75
80
  minBrowserVersion: string | null;
81
+ os: OSInfo;
76
82
  }
77
83
  /**
78
84
  * The keys are unique driver identifiers (version/archive name). The corresponding values have {@linkcode ChromedriverDetails} containing chromedriver details
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE7E,MAAM,WAAW,6BAA6B;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE7E,MAAM,WAAW,6BAA6B;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
@@ -12,9 +12,11 @@ export function getChromedriverDir(osName?: string): string;
12
12
  * @returns {Promise<string>}
13
13
  */
14
14
  export function getChromedriverBinaryPath(osName?: string): Promise<string>;
15
+ /**
16
+ * @returns {keyof OS}
17
+ */
15
18
  export const getOsName: (() => string) & _.MemoizedFunction;
16
19
  export const CD_BASE_DIR: string;
17
- export const CD_CDN: string;
18
20
  export const CD_VER: string;
19
21
  export const CHROMEDRIVER_CHROME_MAPPING: any;
20
22
  /**
@@ -32,14 +34,8 @@ export function getMostRecentChromedriver(mapping?: import('./types').Chromedriv
32
34
  */
33
35
  export function retrieveData(url: string, headers: import('axios').AxiosRequestConfig['headers'], opts?: Pick<import('axios').AxiosRequestConfig, 'timeout' | 'responseType'>): Promise<any>;
34
36
  export const getOsInfo: (() => Promise<import('./types').OSInfo>) & _.MemoizedFunction;
35
- export namespace OS {
36
- const linux: string;
37
- const windows: string;
38
- const mac: string;
39
- }
40
- export const X64: "64";
41
- export const X86: "32";
42
- export const APPLE_ARM_SUFFIXES: string[];
37
+ export const getCpuType: (() => string) & _.MemoizedFunction;
38
+ import { OS } from './constants';
43
39
  /**
44
40
  * Generates log prefix string
45
41
  *
@@ -56,4 +52,5 @@ export function generateLogPrefix(obj: any, sessionId?: string | null): string;
56
52
  */
57
53
  export function convertToInt(value: any): number | null;
58
54
  import _ from 'lodash';
55
+ export { OS };
59
56
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"AAyDA;;;;;GAKG;AACH,sCAJW,OAAO,YAAY,EAAE,GAAG,YACxB,MAAM,0BAMhB;AAED,4DAEC;AAED;;;;GAIG;AACH,mDAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAe3B;AAqBD,4DAQG;AAjFH,iCAA+D;AA/B/D,4BAGgD;AA0ChD,4BAG8B;AAlB9B,8CAAkG;AAGlG;;;;GAIG;AACH,oDAHW,OAAO,SAAS,EAAE,0BAA0B,GAC1C,MAAM,CAOlB;AA0CD;;;;;;GAMG;AACH,kCALW,MAAM,WACN,OAAO,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,SAC7C,KAAK,OAAO,OAAO,EAAE,kBAAkB,EAAE,SAAS,GAAC,cAAc,CAAC,gBAa5E;AAYD,+BAEe,QAAQ,OAAO,SAAS,EAAE,MAAM,CAAC,uBAQ9C;;;;;;AAnHF,uBAAiB;AACjB,uBAAiB;AACjB,0CAA+C;AAwH/C;;;;;;GAMG;AACH,uCAJW,GAAG,cACH,MAAM,UACJ,MAAM,CAOlB;AAED;;;;;GAKG;AACH,oCAHW,GAAG,GACD,MAAM,GAAG,IAAI,CAazB;cAzKa,QAAQ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.js"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,sCAJW,OAAO,YAAY,EAAE,GAAG,YACxB,MAAM,0BAMhB;AAED,4DAEC;AAED;;;;GAIG;AACH,mDAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAe3B;AAqBD;;GAEG;AACH,4DAQG;AApFH,iCAA+D;AAc/D,4BAG8B;AAlB9B,8CAAkG;AAGlG;;;;GAIG;AACH,oDAHW,OAAO,SAAS,EAAE,0BAA0B,GAC1C,MAAM,CAOlB;AA0CD;;;;;;GAMG;AACH,kCALW,MAAM,WACN,OAAO,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,SAC7C,KAAK,OAAO,OAAO,EAAE,kBAAkB,EAAE,SAAS,GAAC,cAAc,CAAC,gBAa5E;AAwBD,+BAEe,QAAQ,OAAO,SAAS,EAAE,MAAM,CAAC,uBAS9C;AApBF,gCAEe,MAAM,uBAKnB;mBAlHoB,aAAa;AAsInC;;;;;;GAMG;AACH,uCAJW,GAAG,cACH,MAAM,UACJ,MAAM,CAOlB;AAED;;;;;GAKG;AACH,oCAHW,GAAG,GACD,MAAM,GAAG,IAAI,CAazB;cA5Ka,QAAQ"}
@@ -3,29 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.convertToInt = exports.generateLogPrefix = exports.APPLE_ARM_SUFFIXES = exports.X86 = exports.X64 = exports.OS = exports.getOsInfo = exports.retrieveData = exports.getMostRecentChromedriver = exports.CHROMEDRIVER_CHROME_MAPPING = exports.CD_VER = exports.CD_CDN = exports.CD_BASE_DIR = exports.getOsName = exports.getChromedriverBinaryPath = exports.getChromedriverDir = exports.getChromeVersion = void 0;
6
+ exports.convertToInt = exports.generateLogPrefix = exports.OS = exports.getCpuType = exports.getOsInfo = exports.retrieveData = exports.getMostRecentChromedriver = exports.CHROMEDRIVER_CHROME_MAPPING = exports.CD_VER = exports.CD_BASE_DIR = exports.getOsName = exports.getChromedriverBinaryPath = exports.getChromedriverDir = exports.getChromeVersion = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const support_1 = require("@appium/support");
9
9
  const base_driver_1 = require("@appium/base-driver");
10
10
  const path_1 = __importDefault(require("path"));
11
11
  const compare_versions_1 = require("compare-versions");
12
12
  const axios_1 = __importDefault(require("axios"));
13
- const CD_CDN = process.env.npm_config_chromedriver_cdnurl ||
14
- process.env.CHROMEDRIVER_CDNURL ||
15
- 'https://chromedriver.storage.googleapis.com';
16
- exports.CD_CDN = CD_CDN;
17
- const OS = {
18
- linux: 'linux',
19
- windows: 'win',
20
- mac: 'mac',
21
- };
22
- exports.OS = OS;
23
- const X64 = '64';
24
- exports.X64 = X64;
25
- const X86 = '32';
26
- exports.X86 = X86;
27
- const APPLE_ARM_SUFFIXES = ['64_m1', '_arm64'];
28
- exports.APPLE_ARM_SUFFIXES = APPLE_ARM_SUFFIXES;
13
+ const os_1 = __importDefault(require("os"));
14
+ const constants_1 = require("./constants");
15
+ Object.defineProperty(exports, "OS", { enumerable: true, get: function () { return constants_1.OS; } });
29
16
  const CD_EXECUTABLE_PREFIX = 'chromedriver';
30
17
  const MODULE_NAME = 'appium-chromedriver';
31
18
  /**
@@ -84,7 +71,7 @@ exports.getChromedriverDir = getChromedriverDir;
84
71
  */
85
72
  async function getChromedriverBinaryPath(osName = getOsName()) {
86
73
  const rootDir = getChromedriverDir(osName);
87
- const pathSuffix = osName === OS.windows ? '.exe' : '';
74
+ const pathSuffix = osName === constants_1.OS.WINDOWS ? '.exe' : '';
88
75
  const paths = await support_1.fs.glob(`${CD_EXECUTABLE_PREFIX}*${pathSuffix}`, {
89
76
  cwd: rootDir,
90
77
  absolute: true,
@@ -114,16 +101,27 @@ async function retrieveData(url, headers, opts = {}) {
114
101
  })).data;
115
102
  }
116
103
  exports.retrieveData = retrieveData;
104
+ /**
105
+ * @returns {keyof OS}
106
+ */
117
107
  const getOsName = lodash_1.default.memoize(function getOsName() {
118
108
  if (support_1.system.isWindows()) {
119
- return OS.windows;
109
+ return constants_1.OS.WINDOWS;
120
110
  }
121
111
  if (support_1.system.isMac()) {
122
- return OS.mac;
112
+ return constants_1.OS.MAC;
123
113
  }
124
- return OS.linux;
114
+ return constants_1.OS.LINUX;
125
115
  });
126
116
  exports.getOsName = getOsName;
117
+ const getCpuType = lodash_1.default.memoize(
118
+ /**
119
+ * @returns {string}
120
+ */
121
+ function getCpuType() {
122
+ return lodash_1.default.includes(lodash_1.default.toLower(os_1.default.cpus()[0].model), 'apple') ? constants_1.CPU.ARM : constants_1.CPU.INTEL;
123
+ });
124
+ exports.getCpuType = getCpuType;
127
125
  const getOsInfo = lodash_1.default.memoize(
128
126
  /**
129
127
  * @returns {Promise<import('./types').OSInfo>}
@@ -132,6 +130,7 @@ async function getOsInfo() {
132
130
  return {
133
131
  name: getOsName(),
134
132
  arch: String(await support_1.system.arch()),
133
+ cpu: getCpuType(),
135
134
  };
136
135
  });
137
136
  exports.getOsInfo = getOsInfo;
@@ -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.js"],"names":[],"mappings":"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"}
@@ -10,14 +10,13 @@ import {
10
10
  getChromedriverDir,
11
11
  CHROMEDRIVER_CHROME_MAPPING,
12
12
  getChromedriverBinaryPath,
13
- CD_CDN,
14
13
  generateLogPrefix,
15
14
  } from './utils';
16
15
  import semver from 'semver';
17
16
  import _ from 'lodash';
18
17
  import path from 'path';
19
18
  import {compareVersions} from 'compare-versions';
20
- import ChromedriverStorageClient from './storage-client';
19
+ import ChromedriverStorageClient from './storage-client/storage-client';
21
20
  import {toW3cCapNames, getCapValue} from './protocol-helpers';
22
21
 
23
22
  const NEW_CD_VERSION_FORMAT_MAJOR_VERSION = 73;
@@ -349,7 +348,8 @@ export class Chromedriver extends events.EventEmitter {
349
348
  }
350
349
  const retrievedMapping = await this.storageClient.retrieveMapping();
351
350
  this.log.debug(
352
- 'Got chromedrivers mapping from the storage: ' + JSON.stringify(retrievedMapping, null, 2)
351
+ 'Got chromedrivers mapping from the storage: ' +
352
+ _.truncate(JSON.stringify(retrievedMapping, null, 2), {length: 500})
353
353
  );
354
354
  const driverKeys = await this.storageClient.syncDrivers({
355
355
  minBrowserVersion: chromeVersion.major,
@@ -447,8 +447,7 @@ export class Chromedriver extends events.EventEmitter {
447
447
  } catch (e) {
448
448
  const err = /** @type {Error} */ (e);
449
449
  this.log.warn(
450
- `Cannot synchronize local chromedrivers with the remote storage at ${CD_CDN}: ` +
451
- err.message
450
+ `Cannot synchronize local chromedrivers with the remote storage: ${err.message}`
452
451
  );
453
452
  this.log.debug(err.stack);
454
453
  }
@@ -0,0 +1,24 @@
1
+ export const STORAGE_REQ_TIMEOUT_MS = 15000;
2
+ export const GOOGLEAPIS_CDN =
3
+ process.env.npm_config_chromedriver_cdnurl ||
4
+ process.env.CHROMEDRIVER_CDNURL ||
5
+ 'https://chromedriver.storage.googleapis.com';
6
+ export const USER_AGENT = 'appium';
7
+ export const CHROMELABS_URL =
8
+ process.env.npm_config_chromelabs_url ||
9
+ process.env.CHROMELABS_URL ||
10
+ 'https://googlechromelabs.github.io';
11
+ export const OS = {
12
+ LINUX: 'linux',
13
+ WINDOWS: 'win',
14
+ MAC: 'mac',
15
+ };
16
+ export const ARCH = {
17
+ X64: '64',
18
+ X86: '32',
19
+ };
20
+ export const CPU = {
21
+ INTEL: 'intel',
22
+ ARM: 'arm',
23
+ };
24
+ export const APPLE_ARM_SUFFIXES = ['64_m1', '_arm64'];
package/lib/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import {Chromedriver} from './chromedriver';
2
- export {ChromedriverStorageClient} from './storage-client';
2
+ export {ChromedriverStorageClient} from './storage-client/storage-client';
3
3
  export default Chromedriver;
4
4
  export {Chromedriver};
5
5
  export type * from './types';
package/lib/install.js CHANGED
@@ -1,23 +1,40 @@
1
+ import _ from 'lodash';
1
2
  import { fs, mkdirp } from '@appium/support';
2
- import ChromedriverStorageClient from './storage-client';
3
+ import ChromedriverStorageClient from './storage-client/storage-client';
4
+ import {parseLatestKnownGoodVersionsJson} from './storage-client/chromelabs';
3
5
  import {
4
- CD_CDN, CD_VER, retrieveData, getOsInfo, getChromedriverDir,
6
+ CD_VER, retrieveData, getOsInfo, getChromedriverDir,
5
7
  } from './utils';
8
+ import { USER_AGENT, STORAGE_REQ_TIMEOUT_MS, CHROMELABS_URL } from './constants';
6
9
 
7
-
8
- const DOWNLOAD_TIMEOUT_MS = 15 * 1000;
9
10
  const LATEST_VERSION = 'LATEST';
11
+
10
12
  /**
11
13
  *
12
14
  * @param {string} ver
15
+ * @returns {Promise<string>}
13
16
  */
14
17
  async function formatCdVersion (ver) {
15
- return ver === LATEST_VERSION
16
- ? (await retrieveData(`${CD_CDN}/LATEST_RELEASE`, {
17
- 'user-agent': 'appium',
18
- accept: '*/*',
19
- }, { timeout: DOWNLOAD_TIMEOUT_MS })).trim()
20
- : ver;
18
+ if (_.toUpper(ver) !== LATEST_VERSION) {
19
+ return ver;
20
+ }
21
+
22
+ let jsonStr;
23
+ const url = `${CHROMELABS_URL}/chrome-for-testing/last-known-good-versions.json`;
24
+ try {
25
+ jsonStr = await retrieveData(
26
+ url, {
27
+ 'user-agent': USER_AGENT,
28
+ accept: `application/json, */*`,
29
+ }, {timeout: STORAGE_REQ_TIMEOUT_MS}
30
+ );
31
+ } catch (e) {
32
+ const err = /** @type {Error} */ (e);
33
+ throw new Error(`Cannot fetch the latest Chromedriver version. ` +
34
+ `Make sure you can access ${url} from your machine or provide a mirror by setting ` +
35
+ `a custom value to CHROMELABS_URL enironment variable. Original error: ${err.message}`);
36
+ }
37
+ return parseLatestKnownGoodVersionsJson(jsonStr);
21
38
  }
22
39
 
23
40
  /**
@@ -0,0 +1,141 @@
1
+ import _ from 'lodash';
2
+ import path from 'path';
3
+ import {logger} from '@appium/support';
4
+ import semver from 'semver';
5
+ import {ARCH, CPU} from '../constants';
6
+
7
+ const log = logger.getLogger('ChromedriverChromelabsStorageClient');
8
+
9
+ /**
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.
14
+ *
15
+ * @param {string} jsonStr
16
+ * @returns {ChromedriverDetailsMapping}
17
+ */
18
+ export function parseKnownGoodVersionsWithDownloadsJson(jsonStr) {
19
+ let json;
20
+ try {
21
+ json = JSON.parse(jsonStr);
22
+ } catch (e) {
23
+ const err = /** @type {Error} */ (e);
24
+ throw new Error(`Storage JSON cannot be parsed. Original error: ${err.message}`);
25
+ }
26
+ /**
27
+ * Example output:
28
+ * {
29
+ * "timestamp":"2023-07-28T13:09:17.042Z",
30
+ * "versions":[
31
+ * {
32
+ * "version":"113.0.5672.0",
33
+ * "revision":"1121455",
34
+ * "downloads":{
35
+ * "chromedriver":[
36
+ * {
37
+ * "platform":"linux64",
38
+ * "url":"https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/linux64/chrome-linux64.zip"
39
+ * },
40
+ * {
41
+ * "platform":"mac-arm64",
42
+ * "url":"https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/mac-arm64/chrome-mac-arm64.zip"
43
+ * },
44
+ * {
45
+ * "platform":"mac-x64",
46
+ * "url":"https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/mac-x64/chrome-mac-x64.zip"
47
+ * },
48
+ * {
49
+ * "platform":"win32",
50
+ * "url":"https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/win32/chrome-win32.zip"
51
+ * },
52
+ * {
53
+ * "platform":"win64",
54
+ * "url":"https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/113.0.5672.0/win64/chrome-win64.zip"
55
+ * }
56
+ * ]
57
+ * }
58
+ * },
59
+ * {
60
+ * "version":"113.0.5672.35",
61
+ * ...
62
+ */
63
+ /** @type {ChromedriverDetailsMapping} */
64
+ const mapping = {};
65
+ if (!_.isArray(json?.versions)) {
66
+ log.debug(jsonStr);
67
+ throw new Error('The format of the storage JSON is not supported');
68
+ }
69
+ for (const {version, downloads} of json.versions) {
70
+ if (!_.isArray(downloads?.chromedriver)) {
71
+ continue;
72
+ }
73
+ const versionObj = semver.parse(version, {loose: true});
74
+ if (!versionObj) {
75
+ continue;
76
+ }
77
+ for (const downloadEntry of downloads.chromedriver) {
78
+ if (!downloadEntry?.url || !downloadEntry?.platform) {
79
+ continue;
80
+ }
81
+ const osNameMatch = /^[a-z]+/i.exec(downloadEntry.platform);
82
+ if (!osNameMatch) {
83
+ log.debug(`The entry '${downloadEntry.url}' does not contain valid platform name. Skipping it`);
84
+ continue;
85
+ }
86
+ const key = `${path.basename(path.dirname(path.dirname(downloadEntry.url)))}/` +
87
+ `${path.basename(downloadEntry.url)}`;
88
+ mapping[key] = {
89
+ url: downloadEntry.url,
90
+ etag: null,
91
+ version,
92
+ minBrowserVersion: `${versionObj.major}`,
93
+ os: {
94
+ name: osNameMatch[0],
95
+ arch: downloadEntry.platform.includes(ARCH.X64) ? ARCH.X64 : ARCH.X86,
96
+ cpu: downloadEntry.platform.includes(CPU.ARM) ? CPU.ARM : CPU.INTEL,
97
+ }
98
+ };
99
+ }
100
+ }
101
+ log.info(`The total count of entries in the mapping: ${_.size(mapping)}`);
102
+ return mapping;
103
+ }
104
+
105
+ /**
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.
110
+ *
111
+ * @param {string} jsonStr
112
+ * @returns {string} The most recent available chromedriver version
113
+ */
114
+ export function parseLatestKnownGoodVersionsJson(jsonStr) {
115
+ let json;
116
+ try {
117
+ json = JSON.parse(jsonStr);
118
+ } catch (e) {
119
+ const err = /** @type {Error} */ (e);
120
+ throw new Error(`Storage JSON cannot be parsed. Original error: ${err.message}`);
121
+ }
122
+ /**
123
+ * Example output:
124
+ * "timestamp":"2023-07-28T13:09:17.036Z",
125
+ * "channels":{
126
+ * "Stable":{
127
+ * "channel":"Stable",
128
+ * "version":"115.0.5790.102",
129
+ * "revision":"1148114"
130
+ * ...
131
+ */
132
+ if (!json?.channels?.Stable?.version) {
133
+ log.debug(jsonStr);
134
+ throw new Error('The format of the storage JSON is not supported');
135
+ }
136
+ return json.channels.Stable.version;
137
+ }
138
+
139
+ /**
140
+ * @typedef {import('../types').ChromedriverDetailsMapping} ChromedriverDetailsMapping
141
+ */