@appium/support 2.61.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/build/lib/console.d.ts +1 -1
  2. package/build/lib/console.js +169 -105
  3. package/build/lib/console.js.map +1 -1
  4. package/build/lib/env.d.ts.map +1 -1
  5. package/build/lib/env.js +144 -117
  6. package/build/lib/env.js.map +1 -1
  7. package/build/lib/fs.d.ts +9 -2
  8. package/build/lib/fs.d.ts.map +1 -1
  9. package/build/lib/fs.js +358 -246
  10. package/build/lib/fs.js.map +1 -1
  11. package/build/lib/image-util.js +139 -124
  12. package/build/lib/image-util.js.map +1 -1
  13. package/build/lib/index.js +64 -103
  14. package/build/lib/index.js.map +1 -1
  15. package/build/lib/log-internal.d.ts +4 -27
  16. package/build/lib/log-internal.d.ts.map +1 -1
  17. package/build/lib/log-internal.js +141 -123
  18. package/build/lib/log-internal.js.map +1 -1
  19. package/build/lib/logger.d.ts +1 -1
  20. package/build/lib/logger.d.ts.map +1 -1
  21. package/build/lib/logger.js +5 -14
  22. package/build/lib/logger.js.map +1 -1
  23. package/build/lib/logging.d.ts +3 -4
  24. package/build/lib/logging.d.ts.map +1 -1
  25. package/build/lib/logging.js +139 -110
  26. package/build/lib/logging.js.map +1 -1
  27. package/build/lib/mjpeg.js +169 -141
  28. package/build/lib/mjpeg.js.map +1 -1
  29. package/build/lib/mkdirp.js +7 -13
  30. package/build/lib/mkdirp.js.map +1 -1
  31. package/build/lib/net.d.ts.map +1 -1
  32. package/build/lib/net.js +278 -254
  33. package/build/lib/net.js.map +1 -1
  34. package/build/lib/node.js +203 -192
  35. package/build/lib/node.js.map +1 -1
  36. package/build/lib/npm.d.ts +19 -4
  37. package/build/lib/npm.d.ts.map +1 -1
  38. package/build/lib/npm.js +277 -228
  39. package/build/lib/npm.js.map +1 -1
  40. package/build/lib/plist.js +145 -136
  41. package/build/lib/plist.js.map +1 -1
  42. package/build/lib/process.js +41 -42
  43. package/build/lib/process.js.map +1 -1
  44. package/build/lib/system.js +39 -56
  45. package/build/lib/system.js.map +1 -1
  46. package/build/lib/tempdir.js +112 -73
  47. package/build/lib/tempdir.js.map +1 -1
  48. package/build/lib/timing.js +99 -84
  49. package/build/lib/timing.js.map +1 -1
  50. package/build/lib/util.js +454 -356
  51. package/build/lib/util.js.map +1 -1
  52. package/build/lib/zip.js +469 -423
  53. package/build/lib/zip.js.map +1 -1
  54. package/build/tsconfig.tsbuildinfo +1 -1
  55. package/lib/env.js +6 -4
  56. package/lib/fs.js +15 -1
  57. package/lib/log-internal.js +12 -16
  58. package/lib/logging.js +2 -3
  59. package/lib/net.js +15 -6
  60. package/lib/npm.js +28 -18
  61. package/package.json +20 -19
package/build/lib/env.js CHANGED
@@ -1,128 +1,155 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.findAppiumDependencyPackage = exports.MANIFEST_RELATIVE_PATH = exports.MANIFEST_BASENAME = exports.DEFAULT_APPIUM_HOME = void 0;
7
- exports.hasAppiumDependency = hasAppiumDependency;
8
- exports.resolveManifestPath = exports.resolveAppiumHome = exports.readPackageInDir = void 0;
9
-
10
- require("source-map-support/register");
11
-
12
- var _lodash = _interopRequireDefault(require("lodash"));
13
-
14
- var _os = require("os");
15
-
16
- var _path = _interopRequireDefault(require("path"));
17
-
18
- var _readPkg = _interopRequireDefault(require("read-pkg"));
19
-
20
- var _npm = require("./npm");
21
-
22
- var _logger = _interopRequireDefault(require("./logger"));
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- const DEFAULT_APPIUM_HOME = _path.default.resolve((0, _os.homedir)(), '.appium');
27
-
28
- exports.DEFAULT_APPIUM_HOME = DEFAULT_APPIUM_HOME;
29
- const MANIFEST_BASENAME = 'extensions.yaml';
30
- exports.MANIFEST_BASENAME = MANIFEST_BASENAME;
31
-
32
- const MANIFEST_RELATIVE_PATH = _path.default.join('node_modules', '.cache', 'appium', MANIFEST_BASENAME);
33
-
34
- exports.MANIFEST_RELATIVE_PATH = MANIFEST_RELATIVE_PATH;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveManifestPath = exports.resolveAppiumHome = exports.readPackageInDir = exports.findAppiumDependencyPackage = exports.hasAppiumDependency = exports.MANIFEST_RELATIVE_PATH = exports.MANIFEST_BASENAME = exports.DEFAULT_APPIUM_HOME = void 0;
7
+ // @ts-check
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const os_1 = require("os");
10
+ const path_1 = __importDefault(require("path"));
11
+ const read_pkg_1 = __importDefault(require("read-pkg"));
12
+ const npm_1 = require("./npm");
13
+ const logger_1 = __importDefault(require("./logger"));
14
+ /**
15
+ * Path to the default `APPIUM_HOME` dir (`~/.appium`).
16
+ * @type {string}
17
+ */
18
+ exports.DEFAULT_APPIUM_HOME = path_1.default.resolve((0, os_1.homedir)(), '.appium');
19
+ /**
20
+ * Basename of extension manifest file.
21
+ * @type {string}
22
+ */
23
+ exports.MANIFEST_BASENAME = 'extensions.yaml';
24
+ /**
25
+ * Relative path to extension manifest file from `APPIUM_HOME`.
26
+ * @type {string}
27
+ */
28
+ exports.MANIFEST_RELATIVE_PATH = path_1.default.join('node_modules', '.cache', 'appium', exports.MANIFEST_BASENAME);
35
29
  const OLD_VERSION_REGEX = /^[01]/;
36
-
30
+ /**
31
+ * Resolves `true` if an `appium` dependency can be found somewhere in the given `cwd`.
32
+ *
33
+ * @param {string} cwd
34
+ * @returns {Promise<boolean>}
35
+ */
37
36
  async function hasAppiumDependency(cwd) {
38
- return Boolean(await findAppiumDependencyPackage(cwd));
37
+ return Boolean(await (0, exports.findAppiumDependencyPackage)(cwd));
39
38
  }
40
-
41
- const findAppiumDependencyPackage = _lodash.default.memoize(async (cwd = process.cwd()) => {
42
- const readPkg = async cwd => {
43
- let pkgPath;
44
-
39
+ exports.hasAppiumDependency = hasAppiumDependency;
40
+ /**
41
+ * Given `cwd`, use `npm` to find the closest package _or workspace root_, and return the path if the root depends upon `appium`.
42
+ *
43
+ * Looks at `dependencies` and `devDependencies` for `appium`.
44
+ */
45
+ exports.findAppiumDependencyPackage = lodash_1.default.memoize(
46
+ /**
47
+ * @param {string} [cwd]
48
+ * @returns {Promise<string|undefined>}
49
+ */
50
+ async (cwd = process.cwd()) => {
51
+ /**
52
+ * Tries to read `package.json` in `cwd` and resolves the identity if it depends on `appium`;
53
+ * otherwise resolves `undefined`.
54
+ * @param {string} cwd
55
+ * @returns {Promise<string|undefined>}
56
+ */
57
+ const readPkg = async (cwd) => {
58
+ /** @type {string|undefined} */
59
+ let pkgPath;
60
+ try {
61
+ const pkg = await (0, exports.readPackageInDir)(cwd);
62
+ const version = pkg?.dependencies?.appium ??
63
+ pkg?.devDependencies?.appium ??
64
+ pkg?.peerDependencies?.appium;
65
+ pkgPath = version && !OLD_VERSION_REGEX.test(String(version)) ? cwd : undefined;
66
+ }
67
+ catch { }
68
+ if (pkgPath) {
69
+ logger_1.default.debug(`Found package.json having current Appium dep in ${pkgPath}`);
70
+ }
71
+ else {
72
+ logger_1.default.debug(`No package.json having current Appium dep in ${cwd}`);
73
+ }
74
+ return pkgPath;
75
+ };
76
+ cwd = path_1.default.resolve(cwd);
77
+ /** @type {string} */
78
+ let pkgDir;
45
79
  try {
46
- var _pkg$dependencies, _pkg$devDependencies, _pkg$peerDependencies;
47
-
48
- const pkg = await readPackageInDir(cwd);
49
- const version = (pkg === null || pkg === void 0 ? void 0 : (_pkg$dependencies = pkg.dependencies) === null || _pkg$dependencies === void 0 ? void 0 : _pkg$dependencies.appium) ?? (pkg === null || pkg === void 0 ? void 0 : (_pkg$devDependencies = pkg.devDependencies) === null || _pkg$devDependencies === void 0 ? void 0 : _pkg$devDependencies.appium) ?? (pkg === null || pkg === void 0 ? void 0 : (_pkg$peerDependencies = pkg.peerDependencies) === null || _pkg$peerDependencies === void 0 ? void 0 : _pkg$peerDependencies.appium);
50
- pkgPath = version && !OLD_VERSION_REGEX.test(String(version)) ? cwd : undefined;
51
- } catch {}
52
-
53
- if (pkgPath) {
54
- _logger.default.debug(`Found package.json having current Appium dep in ${pkgPath}`);
55
- } else {
56
- _logger.default.debug(`No package.json having current Appium dep in ${cwd}`);
80
+ const { json: list } = await npm_1.npm.exec('list', ['--long', '--json'], { cwd });
81
+ ({ path: pkgDir } = list);
82
+ if (pkgDir !== cwd) {
83
+ if (pkgDir) {
84
+ logger_1.default.debug(`Determined package/workspace root from ${cwd} => ${pkgDir}`);
85
+ }
86
+ else {
87
+ pkgDir = cwd;
88
+ }
89
+ }
57
90
  }
58
-
59
- return pkgPath;
60
- };
61
-
62
- cwd = _path.default.resolve(cwd);
63
- let pkgDir;
64
-
65
- try {
66
- const {
67
- json: list
68
- } = await _npm.npm.exec('list', ['--long', '--json'], {
69
- cwd
70
- });
71
- ({
72
- path: pkgDir
73
- } = list);
74
-
75
- if (pkgDir) {
76
- _logger.default.debug(`Determined package/workspace root from ${cwd} => ${pkgDir}`);
77
- } else {
78
- pkgDir = cwd;
91
+ catch {
92
+ pkgDir = cwd;
79
93
  }
80
- } catch {
81
- pkgDir = cwd;
82
- }
83
-
84
- return await readPkg(pkgDir);
94
+ return await readPkg(pkgDir);
85
95
  });
86
-
87
- exports.findAppiumDependencyPackage = findAppiumDependencyPackage;
88
-
89
- const readPackageInDir = _lodash.default.memoize(async function _readPackageInDir(cwd) {
90
- return await (0, _readPkg.default)({
91
- cwd,
92
- normalize: true
93
- });
96
+ /**
97
+ * Read a `package.json` in dir `cwd`. If none found, return `undefined`.
98
+ */
99
+ exports.readPackageInDir = lodash_1.default.memoize(
100
+ /**
101
+ *
102
+ * @param {string} cwd - Directory ostensibly having a `package.json`
103
+ * @returns {Promise<import('read-pkg').NormalizedPackageJson|undefined>}
104
+ */
105
+ async function _readPackageInDir(cwd) {
106
+ return await (0, read_pkg_1.default)({ cwd, normalize: true });
94
107
  });
95
-
96
- exports.readPackageInDir = readPackageInDir;
97
-
98
- const resolveAppiumHome = _lodash.default.memoize(async function _resolveAppiumHome(cwd = process.cwd()) {
99
- if (!_path.default.isAbsolute(cwd)) {
100
- throw new TypeError('`cwd` parameter must be an absolute path');
101
- }
102
-
103
- if (process.env.APPIUM_HOME) {
104
- _logger.default.debug(`Using APPIUM_HOME from env: ${process.env.APPIUM_HOME}`);
105
-
106
- return _path.default.resolve(cwd, process.env.APPIUM_HOME);
107
- }
108
-
109
- const pkgPath = await findAppiumDependencyPackage(cwd);
110
-
111
- if (pkgPath) {
112
- return pkgPath;
113
- }
114
-
115
- _logger.default.debug(`Using default APPIUM_HOME: ${DEFAULT_APPIUM_HOME}`);
116
-
117
- return DEFAULT_APPIUM_HOME;
108
+ /**
109
+ * Determines location of Appium's "home" dir
110
+ *
111
+ * - If `APPIUM_HOME` is set in the environment, use that
112
+ * - If we find a `package.json` in or above `cwd` and it has an `appium` dependency, use that.
113
+ *
114
+ * All returned paths will be absolute.
115
+ */
116
+ exports.resolveAppiumHome = lodash_1.default.memoize(
117
+ /**
118
+ * @param {string} [cwd] - Current working directory. _Must_ be absolute, if specified.
119
+ * @returns {Promise<string>}
120
+ */
121
+ async function _resolveAppiumHome(cwd = process.cwd()) {
122
+ if (!path_1.default.isAbsolute(cwd)) {
123
+ throw new TypeError('`cwd` parameter must be an absolute path');
124
+ }
125
+ if (process.env.APPIUM_HOME) {
126
+ logger_1.default.debug(`Using APPIUM_HOME from env: ${process.env.APPIUM_HOME}`);
127
+ return path_1.default.resolve(cwd, process.env.APPIUM_HOME);
128
+ }
129
+ const pkgPath = await (0, exports.findAppiumDependencyPackage)(cwd);
130
+ if (pkgPath) {
131
+ return pkgPath;
132
+ }
133
+ logger_1.default.debug(`Using default APPIUM_HOME: ${exports.DEFAULT_APPIUM_HOME}`);
134
+ return exports.DEFAULT_APPIUM_HOME;
118
135
  });
119
-
120
- exports.resolveAppiumHome = resolveAppiumHome;
121
-
122
- const resolveManifestPath = _lodash.default.memoize(async function _resolveManifestPath(appiumHome) {
123
- appiumHome = appiumHome ?? (await resolveAppiumHome());
124
- return _path.default.join(appiumHome, MANIFEST_RELATIVE_PATH);
136
+ /**
137
+ * Figure out manifest path based on `appiumHome`.
138
+ *
139
+ * The assumption is that, if `appiumHome` has been provided, it was resolved via {@link resolveAppiumHome `resolveAppiumHome()`}! If unsure,
140
+ * don't pass a parameter and let `resolveAppiumHome()` handle it.
141
+ */
142
+ exports.resolveManifestPath = lodash_1.default.memoize(
143
+ /**
144
+ * @param {string} [appiumHome] - Appium home directory
145
+ * @returns {Promise<string>}
146
+ */
147
+ async function _resolveManifestPath(appiumHome) {
148
+ // can you "await" in a default parameter? is that a good idea?
149
+ appiumHome = appiumHome ?? (await (0, exports.resolveAppiumHome)());
150
+ return path_1.default.join(appiumHome, exports.MANIFEST_RELATIVE_PATH);
125
151
  });
126
-
127
- exports.resolveManifestPath = resolveManifestPath;
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX0FQUElVTV9IT01FIiwicGF0aCIsInJlc29sdmUiLCJob21lZGlyIiwiTUFOSUZFU1RfQkFTRU5BTUUiLCJNQU5JRkVTVF9SRUxBVElWRV9QQVRIIiwiam9pbiIsIk9MRF9WRVJTSU9OX1JFR0VYIiwiaGFzQXBwaXVtRGVwZW5kZW5jeSIsImN3ZCIsIkJvb2xlYW4iLCJmaW5kQXBwaXVtRGVwZW5kZW5jeVBhY2thZ2UiLCJfIiwibWVtb2l6ZSIsInByb2Nlc3MiLCJyZWFkUGtnIiwicGtnUGF0aCIsInBrZyIsInJlYWRQYWNrYWdlSW5EaXIiLCJ2ZXJzaW9uIiwiZGVwZW5kZW5jaWVzIiwiYXBwaXVtIiwiZGV2RGVwZW5kZW5jaWVzIiwicGVlckRlcGVuZGVuY2llcyIsInRlc3QiLCJTdHJpbmciLCJ1bmRlZmluZWQiLCJsb2ciLCJkZWJ1ZyIsInBrZ0RpciIsImpzb24iLCJsaXN0IiwibnBtIiwiZXhlYyIsIl9yZWFkUGFja2FnZUluRGlyIiwibm9ybWFsaXplIiwicmVzb2x2ZUFwcGl1bUhvbWUiLCJfcmVzb2x2ZUFwcGl1bUhvbWUiLCJpc0Fic29sdXRlIiwiVHlwZUVycm9yIiwiZW52IiwiQVBQSVVNX0hPTUUiLCJyZXNvbHZlTWFuaWZlc3RQYXRoIiwiX3Jlc29sdmVNYW5pZmVzdFBhdGgiLCJhcHBpdW1Ib21lIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2Vudi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2hvbWVkaXJ9IGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHJlYWRQa2cgZnJvbSAncmVhZC1wa2cnO1xuaW1wb3J0IHtucG19IGZyb20gJy4vbnBtJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG4vKipcbiAqIFBhdGggdG8gdGhlIGRlZmF1bHQgYEFQUElVTV9IT01FYCBkaXIgKGB+Ly5hcHBpdW1gKS5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FQUElVTV9IT01FID0gcGF0aC5yZXNvbHZlKGhvbWVkaXIoKSwgJy5hcHBpdW0nKTtcblxuLyoqXG4gKiBCYXNlbmFtZSBvZiBleHRlbnNpb24gbWFuaWZlc3QgZmlsZS5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBNQU5JRkVTVF9CQVNFTkFNRSA9ICdleHRlbnNpb25zLnlhbWwnO1xuXG4vKipcbiAqIFJlbGF0aXZlIHBhdGggdG8gZXh0ZW5zaW9uIG1hbmlmZXN0IGZpbGUgZnJvbSBgQVBQSVVNX0hPTUVgLlxuICogQHR5cGUge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IE1BTklGRVNUX1JFTEFUSVZFX1BBVEggPSBwYXRoLmpvaW4oXG4gICdub2RlX21vZHVsZXMnLFxuICAnLmNhY2hlJyxcbiAgJ2FwcGl1bScsXG4gIE1BTklGRVNUX0JBU0VOQU1FXG4pO1xuXG5jb25zdCBPTERfVkVSU0lPTl9SRUdFWCA9IC9eWzAxXS87XG5cbi8qKlxuICogUmVzb2x2ZXMgYHRydWVgIGlmIGFuIGBhcHBpdW1gIGRlcGVuZGVuY3kgY2FuIGJlIGZvdW5kIHNvbWV3aGVyZSBpbiB0aGUgZ2l2ZW4gYGN3ZGAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNBcHBpdW1EZXBlbmRlbmN5KGN3ZCkge1xuICByZXR1cm4gQm9vbGVhbihhd2FpdCBmaW5kQXBwaXVtRGVwZW5kZW5jeVBhY2thZ2UoY3dkKSk7XG59XG5cbi8qKlxuICogR2l2ZW4gYGN3ZGAsIHVzZSBgbnBtYCB0byBmaW5kIHRoZSBjbG9zZXN0IHBhY2thZ2UgX29yIHdvcmtzcGFjZSByb290XywgYW5kIHJldHVybiB0aGUgcGF0aCBpZiB0aGUgcm9vdCBkZXBlbmRzIHVwb24gYGFwcGl1bWAuXG4gKlxuICogTG9va3MgYXQgYGRlcGVuZGVuY2llc2AgYW5kIGBkZXZEZXBlbmRlbmNpZXNgIGZvciBgYXBwaXVtYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGZpbmRBcHBpdW1EZXBlbmRlbmN5UGFja2FnZSA9IF8ubWVtb2l6ZShcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY3dkXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmd8dW5kZWZpbmVkPn1cbiAgICovXG4gIGFzeW5jIChjd2QgPSBwcm9jZXNzLmN3ZCgpKSA9PiB7XG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gcmVhZCBgcGFja2FnZS5qc29uYCBpbiBgY3dkYCBhbmQgcmVzb2x2ZXMgdGhlIGlkZW50aXR5IGlmIGl0IGRlcGVuZHMgb24gYGFwcGl1bWA7XG4gICAgICogb3RoZXJ3aXNlIHJlc29sdmVzIGB1bmRlZmluZWRgLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmd8dW5kZWZpbmVkPn1cbiAgICAgKi9cbiAgICBjb25zdCByZWFkUGtnID0gYXN5bmMgKGN3ZCkgPT4ge1xuICAgICAgLyoqIEB0eXBlIHtzdHJpbmd8dW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHBrZ1BhdGg7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwa2cgPSBhd2FpdCByZWFkUGFja2FnZUluRGlyKGN3ZCk7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPVxuICAgICAgICAgIHBrZz8uZGVwZW5kZW5jaWVzPy5hcHBpdW0gPz9cbiAgICAgICAgICBwa2c/LmRldkRlcGVuZGVuY2llcz8uYXBwaXVtID8/XG4gICAgICAgICAgcGtnPy5wZWVyRGVwZW5kZW5jaWVzPy5hcHBpdW07XG4gICAgICAgIHBrZ1BhdGggPSB2ZXJzaW9uICYmICFPTERfVkVSU0lPTl9SRUdFWC50ZXN0KFN0cmluZyh2ZXJzaW9uKSkgPyBjd2QgOiB1bmRlZmluZWQ7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgICBpZiAocGtnUGF0aCkge1xuICAgICAgICBsb2cuZGVidWcoYEZvdW5kIHBhY2thZ2UuanNvbiBoYXZpbmcgY3VycmVudCBBcHBpdW0gZGVwIGluICR7cGtnUGF0aH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgTm8gcGFja2FnZS5qc29uIGhhdmluZyBjdXJyZW50IEFwcGl1bSBkZXAgaW4gJHtjd2R9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGtnUGF0aDtcbiAgICB9O1xuXG4gICAgY3dkID0gcGF0aC5yZXNvbHZlKGN3ZCk7XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcGtnRGlyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7anNvbjogbGlzdH0gPSBhd2FpdCBucG0uZXhlYygnbGlzdCcsIFsnLS1sb25nJywgJy0tanNvbiddLCB7Y3dkfSk7XG4gICAgICAoe3BhdGg6IHBrZ0Rpcn0gPSBsaXN0KTtcbiAgICAgIGlmIChwa2dEaXIpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBEZXRlcm1pbmVkIHBhY2thZ2Uvd29ya3NwYWNlIHJvb3QgZnJvbSAke2N3ZH0gPT4gJHtwa2dEaXJ9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwa2dEaXIgPSBjd2Q7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICBwa2dEaXIgPSBjd2Q7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCByZWFkUGtnKHBrZ0Rpcik7XG4gIH1cbik7XG5cbi8qKlxuICogUmVhZCBhIGBwYWNrYWdlLmpzb25gIGluIGRpciBgY3dkYC4gIElmIG5vbmUgZm91bmQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlYWRQYWNrYWdlSW5EaXIgPSBfLm1lbW9pemUoXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkIC0gRGlyZWN0b3J5IG9zdGVuc2libHkgaGF2aW5nIGEgYHBhY2thZ2UuanNvbmBcbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCdyZWFkLXBrZycpLk5vcm1hbGl6ZWRQYWNrYWdlSnNvbnx1bmRlZmluZWQ+fVxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gX3JlYWRQYWNrYWdlSW5EaXIoY3dkKSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlYWRQa2coe2N3ZCwgbm9ybWFsaXplOiB0cnVlfSk7XG4gIH1cbik7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBsb2NhdGlvbiBvZiBBcHBpdW0ncyBcImhvbWVcIiBkaXJcbiAqXG4gKiAtIElmIGBBUFBJVU1fSE9NRWAgaXMgc2V0IGluIHRoZSBlbnZpcm9ubWVudCwgdXNlIHRoYXRcbiAqIC0gSWYgd2UgZmluZCBhIGBwYWNrYWdlLmpzb25gIGluIG9yIGFib3ZlIGBjd2RgIGFuZCBpdCBoYXMgYW4gYGFwcGl1bWAgZGVwZW5kZW5jeSwgdXNlIHRoYXQuXG4gKlxuICogQWxsIHJldHVybmVkIHBhdGhzIHdpbGwgYmUgYWJzb2x1dGUuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlQXBwaXVtSG9tZSA9IF8ubWVtb2l6ZShcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY3dkXSAtIEN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuICBfTXVzdF8gYmUgYWJzb2x1dGUsIGlmIHNwZWNpZmllZC5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn1cbiAgICovXG4gIGFzeW5jIGZ1bmN0aW9uIF9yZXNvbHZlQXBwaXVtSG9tZShjd2QgPSBwcm9jZXNzLmN3ZCgpKSB7XG4gICAgaWYgKCFwYXRoLmlzQWJzb2x1dGUoY3dkKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGN3ZGAgcGFyYW1ldGVyIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aCcpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5BUFBJVU1fSE9NRSkge1xuICAgICAgbG9nLmRlYnVnKGBVc2luZyBBUFBJVU1fSE9NRSBmcm9tIGVudjogJHtwcm9jZXNzLmVudi5BUFBJVU1fSE9NRX1gKTtcbiAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoY3dkLCBwcm9jZXNzLmVudi5BUFBJVU1fSE9NRSk7XG4gICAgfVxuXG4gICAgY29uc3QgcGtnUGF0aCA9IGF3YWl0IGZpbmRBcHBpdW1EZXBlbmRlbmN5UGFja2FnZShjd2QpO1xuICAgIGlmIChwa2dQYXRoKSB7XG4gICAgICByZXR1cm4gcGtnUGF0aDtcbiAgICB9XG4gICAgbG9nLmRlYnVnKGBVc2luZyBkZWZhdWx0IEFQUElVTV9IT01FOiAke0RFRkFVTFRfQVBQSVVNX0hPTUV9YCk7XG4gICAgcmV0dXJuIERFRkFVTFRfQVBQSVVNX0hPTUU7XG4gIH1cbik7XG5cbi8qKlxuICogRmlndXJlIG91dCBtYW5pZmVzdCBwYXRoIGJhc2VkIG9uIGBhcHBpdW1Ib21lYC5cbiAqXG4gKiBUaGUgYXNzdW1wdGlvbiBpcyB0aGF0LCBpZiBgYXBwaXVtSG9tZWAgaGFzIGJlZW4gcHJvdmlkZWQsIGl0IHdhcyByZXNvbHZlZCB2aWEge0BsaW5rIHJlc29sdmVBcHBpdW1Ib21lIGByZXNvbHZlQXBwaXVtSG9tZSgpYH0hICBJZiB1bnN1cmUsXG4gKiBkb24ndCBwYXNzIGEgcGFyYW1ldGVyIGFuZCBsZXQgYHJlc29sdmVBcHBpdW1Ib21lKClgIGhhbmRsZSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVNYW5pZmVzdFBhdGggPSBfLm1lbW9pemUoXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FwcGl1bUhvbWVdIC0gQXBwaXVtIGhvbWUgZGlyZWN0b3J5XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59XG4gICAqL1xuICBhc3luYyBmdW5jdGlvbiBfcmVzb2x2ZU1hbmlmZXN0UGF0aChhcHBpdW1Ib21lKSB7XG4gICAgLy8gY2FuIHlvdSBcImF3YWl0XCIgaW4gYSBkZWZhdWx0IHBhcmFtZXRlcj8gaXMgdGhhdCBhIGdvb2QgaWRlYT9cbiAgICBhcHBpdW1Ib21lID0gYXBwaXVtSG9tZSA/PyAoYXdhaXQgcmVzb2x2ZUFwcGl1bUhvbWUoKSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihhcHBpdW1Ib21lLCBNQU5JRkVTVF9SRUxBVElWRV9QQVRIKTtcbiAgfVxuKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdyZWFkLXBrZycpLk5vcm1hbGl6ZWRQYWNrYWdlSnNvbn0gTm9ybWFsaXplZFBhY2thZ2VKc29uXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQU1PLE1BQU1BLG1CQUFtQixHQUFHQyxhQUFBLENBQUtDLE9BQUwsQ0FBYSxJQUFBQyxXQUFBLEdBQWIsRUFBd0IsU0FBeEIsQ0FBNUI7OztBQU1BLE1BQU1DLGlCQUFpQixHQUFHLGlCQUExQjs7O0FBTUEsTUFBTUMsc0JBQXNCLEdBQUdKLGFBQUEsQ0FBS0ssSUFBTCxDQUNwQyxjQURvQyxFQUVwQyxRQUZvQyxFQUdwQyxRQUhvQyxFQUlwQ0YsaUJBSm9DLENBQS9COzs7QUFPUCxNQUFNRyxpQkFBaUIsR0FBRyxPQUExQjs7QUFRTyxlQUFlQyxtQkFBZixDQUFtQ0MsR0FBbkMsRUFBd0M7RUFDN0MsT0FBT0MsT0FBTyxDQUFDLE1BQU1DLDJCQUEyQixDQUFDRixHQUFELENBQWxDLENBQWQ7QUFDRDs7QUFPTSxNQUFNRSwyQkFBMkIsR0FBR0MsZUFBQSxDQUFFQyxPQUFGLENBS3pDLE9BQU9KLEdBQUcsR0FBR0ssT0FBTyxDQUFDTCxHQUFSLEVBQWIsS0FBK0I7RUFPN0IsTUFBTU0sT0FBTyxHQUFHLE1BQU9OLEdBQVAsSUFBZTtJQUU3QixJQUFJTyxPQUFKOztJQUNBLElBQUk7TUFBQTs7TUFDRixNQUFNQyxHQUFHLEdBQUcsTUFBTUMsZ0JBQWdCLENBQUNULEdBQUQsQ0FBbEM7TUFDQSxNQUFNVSxPQUFPLEdBQ1gsQ0FBQUYsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCxpQ0FBQUEsR0FBRyxDQUFFRyxZQUFMLHdFQUFtQkMsTUFBbkIsTUFDQUosR0FEQSxhQUNBQSxHQURBLCtD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
152
+ /**
153
+ * @typedef {import('read-pkg').NormalizedPackageJson} NormalizedPackageJson
154
+ */
155
+ //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","names":["DEFAULT_APPIUM_HOME","path","resolve","homedir","MANIFEST_BASENAME","MANIFEST_RELATIVE_PATH","join","OLD_VERSION_REGEX","hasAppiumDependency","cwd","Boolean","findAppiumDependencyPackage","_","memoize","process","readPkg","pkgPath","pkg","readPackageInDir","version","dependencies","appium","devDependencies","peerDependencies","test","String","undefined","log","debug","pkgDir","json","list","npm","exec","_readPackageInDir","normalize","resolveAppiumHome","_resolveAppiumHome","isAbsolute","TypeError","env","APPIUM_HOME","resolveManifestPath","_resolveManifestPath","appiumHome"],"sources":["../../lib/env.js"],"sourcesContent":["// @ts-check\nimport _ from 'lodash';\nimport {homedir} from 'os';\nimport path from 'path';\nimport readPkg from 'read-pkg';\nimport {npm} from './npm';\nimport log from './logger';\n\n/**\n * Path to the default `APPIUM_HOME` dir (`~/.appium`).\n * @type {string}\n */\nexport const DEFAULT_APPIUM_HOME = path.resolve(homedir(), '.appium');\n\n/**\n * Basename of extension manifest file.\n * @type {string}\n */\nexport const MANIFEST_BASENAME = 'extensions.yaml';\n\n/**\n * Relative path to extension manifest file from `APPIUM_HOME`.\n * @type {string}\n */\nexport const MANIFEST_RELATIVE_PATH = path.join(\n 'node_modules',\n '.cache',\n 'appium',\n MANIFEST_BASENAME\n);\n\nconst OLD_VERSION_REGEX = /^[01]/;\n\n/**\n * Resolves `true` if an `appium` dependency can be found somewhere in the given `cwd`.\n *\n * @param {string} cwd\n * @returns {Promise<boolean>}\n */\nexport async function hasAppiumDependency(cwd) {\n return Boolean(await findAppiumDependencyPackage(cwd));\n}\n\n/**\n * Given `cwd`, use `npm` to find the closest package _or workspace root_, and return the path if the root depends upon `appium`.\n *\n * Looks at `dependencies` and `devDependencies` for `appium`.\n */\nexport const findAppiumDependencyPackage = _.memoize(\n /**\n * @param {string} [cwd]\n * @returns {Promise<string|undefined>}\n */\n async (cwd = process.cwd()) => {\n /**\n * Tries to read `package.json` in `cwd` and resolves the identity if it depends on `appium`;\n * otherwise resolves `undefined`.\n * @param {string} cwd\n * @returns {Promise<string|undefined>}\n */\n const readPkg = async (cwd) => {\n /** @type {string|undefined} */\n let pkgPath;\n try {\n const pkg = await readPackageInDir(cwd);\n const version =\n pkg?.dependencies?.appium ??\n pkg?.devDependencies?.appium ??\n pkg?.peerDependencies?.appium;\n pkgPath = version && !OLD_VERSION_REGEX.test(String(version)) ? cwd : undefined;\n } catch {}\n if (pkgPath) {\n log.debug(`Found package.json having current Appium dep in ${pkgPath}`);\n } else {\n log.debug(`No package.json having current Appium dep in ${cwd}`);\n }\n return pkgPath;\n };\n\n cwd = path.resolve(cwd);\n\n /** @type {string} */\n let pkgDir;\n try {\n const {json: list} = await npm.exec('list', ['--long', '--json'], {cwd});\n ({path: pkgDir} = list);\n if (pkgDir) {\n log.debug(`Determined package/workspace root from ${cwd} => ${pkgDir}`);\n } else {\n pkgDir = cwd;\n }\n } catch {\n pkgDir = cwd;\n }\n return await readPkg(pkgDir);\n }\n);\n\n/**\n * Read a `package.json` in dir `cwd`. If none found, return `undefined`.\n */\nexport const readPackageInDir = _.memoize(\n /**\n *\n * @param {string} cwd - Directory ostensibly having a `package.json`\n * @returns {Promise<import('read-pkg').NormalizedPackageJson|undefined>}\n */\n async function _readPackageInDir(cwd) {\n return await readPkg({cwd, normalize: true});\n }\n);\n\n/**\n * Determines location of Appium's \"home\" dir\n *\n * - If `APPIUM_HOME` is set in the environment, use that\n * - If we find a `package.json` in or above `cwd` and it has an `appium` dependency, use that.\n *\n * All returned paths will be absolute.\n */\nexport const resolveAppiumHome = _.memoize(\n /**\n * @param {string} [cwd] - Current working directory. _Must_ be absolute, if specified.\n * @returns {Promise<string>}\n */\n async function _resolveAppiumHome(cwd = process.cwd()) {\n if (!path.isAbsolute(cwd)) {\n throw new TypeError('`cwd` parameter must be an absolute path');\n }\n\n if (process.env.APPIUM_HOME) {\n log.debug(`Using APPIUM_HOME from env: ${process.env.APPIUM_HOME}`);\n return path.resolve(cwd, process.env.APPIUM_HOME);\n }\n\n const pkgPath = await findAppiumDependencyPackage(cwd);\n if (pkgPath) {\n return pkgPath;\n }\n log.debug(`Using default APPIUM_HOME: ${DEFAULT_APPIUM_HOME}`);\n return DEFAULT_APPIUM_HOME;\n }\n);\n\n/**\n * Figure out manifest path based on `appiumHome`.\n *\n * The assumption is that, if `appiumHome` has been provided, it was resolved via {@link resolveAppiumHome `resolveAppiumHome()`}! If unsure,\n * don't pass a parameter and let `resolveAppiumHome()` handle it.\n */\nexport const resolveManifestPath = _.memoize(\n /**\n * @param {string} [appiumHome] - Appium home directory\n * @returns {Promise<string>}\n */\n async function _resolveManifestPath(appiumHome) {\n // can you \"await\" in a default parameter? is that a good idea?\n appiumHome = appiumHome ?? (await resolveAppiumHome());\n return path.join(appiumHome, MANIFEST_RELATIVE_PATH);\n }\n);\n\n/**\n * @typedef {import('read-pkg').NormalizedPackageJson} NormalizedPackageJson\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../lib/env.js"],"names":[],"mappings":"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"}
package/build/lib/fs.d.ts CHANGED
@@ -7,6 +7,10 @@ export type WalkDirCallback = (itemPath: string, isDirectory: boolean) => boolea
7
7
  export type glob = typeof glob;
8
8
  export type mv = typeof mv;
9
9
  export type PathLike = import('fs').PathLike;
10
+ export type ReadFn<TBuffer extends NodeJS.ArrayBufferView> = (fd: number, buffer: TBuffer | import('node:fs').ReadAsyncOptions<TBuffer>, offset?: number | undefined, length?: number | undefined, position?: number | null | undefined) => B<{
11
+ bytesRead: number;
12
+ buffer: TBuffer;
13
+ }>;
10
14
  export namespace fs {
11
15
  /**
12
16
  * Resolves `true` if `path` is _readable_, which differs from Node.js' default behavior of "can we see it?"
@@ -219,7 +223,10 @@ export namespace fs {
219
223
  export const open: (path: import("fs").PathLike, flags: import("fs").OpenMode, mode?: import("fs").Mode | undefined) => Promise<number>;
220
224
  export const openFile: typeof fsPromises.open;
221
225
  export const readdir: typeof fsPromises.readdir;
222
- export function read<TBuffer extends NodeJS.ArrayBufferView>(arg1: number, arg2: TBuffer, arg3: number, arg4: number, arg5: import("fs").ReadPosition | null): B<number>;
226
+ export function read(fd: number, buffer: NodeJS.ArrayBufferView | import("fs").ReadAsyncOptions<NodeJS.ArrayBufferView>, offset: number | undefined, length: number | undefined, position: number | null | undefined): B<{
227
+ bytesRead: number;
228
+ buffer: NodeJS.ArrayBufferView;
229
+ }>;
223
230
  export const readFile: typeof fsPromises.readFile;
224
231
  export const readlink: typeof fsPromises.readlink;
225
232
  export const realpath: typeof fsPromises.realpath;
@@ -236,9 +243,9 @@ export namespace fs {
236
243
  }
237
244
  import glob from "glob";
238
245
  import mv from "mv";
246
+ import B from "bluebird";
239
247
  import rimrafIdx from "rimraf";
240
248
  import ncp from "ncp";
241
- import B from "bluebird";
242
249
  import which from "which";
243
250
  import sanitize from "sanitize-filename";
244
251
  import klaw from "klaw";
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../lib/fs.js"],"names":[],"mappings":";;;;;yCA8XW,MAAM,eACN,OAAO,KACN,OAAO;;;uBAMN,OAAO,IAAI,EAAE,QAAQ;;IAjWhC;;;;;;;;OAQG;IACH,yEAOC;IAhBD;;;;;;;;OAQG;IACH,yEAOC;IAED;;;;;;;;OAQG;IACH,4EAUC;IAnBD;;;;;;;;OAQG;IACH,4EAUC;IAED;;;OAGG;IACH,sEAEC;IAND;;;OAGG;IACH,sEAEC;IAMkB,6FAAmE;;IAUtF;;;;;;;OAOG;IACH,0IAQC;IAhBD;;;;;;;OAOG;IACH,0IAQC;IACD;;;;;;;OAOG;IACH,6GAKC;IAbD;;;;;;;OAOG;IACH,6GAKC;IAED;;;;OAIG;IACH,sEAEC;IAPD;;;;OAIG;IACH,sEAEC;IAKc,uFAAwD;;;IAYtD,uFAAsD;;;IAQvE;;;;;OAKG;IACH,uGAcC;IApBD;;;;;OAKG;IACH,uGAcC;IAED;;;;;;;OAOG;IACH,gFAEC;IAVD;;;;;;;OAOG;IACH,gFAEC;IAED;;;;OAIG;IACH,gFAEC;IAPD;;;;OAIG;IACH,gFAEC;IAED;;;;;;;OAOG;IACH,4GAyEC;IAjFD;;;;;;;OAOG;IACH,4GAyEC;IACD;;;;;;OAMG;IACH,0FAQC;IAfD;;;;;;OAMG;IACH,0FAQC;IACD;;;;;;OAMG;IACH,8CASC;IAhBD;;;;;;OAMG;IACH,8CASC;;;;;;;;;;;;IAyEo2lB,yKAAkE"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../lib/fs.js"],"names":[],"mappings":";;;;;yCAiYW,MAAM,eACN,OAAO,KACN,OAAO;;;uBAMN,OAAO,IAAI,EAAE,QAAQ;kEAMvB,MAAM,UACN,OAAO,GAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,qGAIjD,EAAE;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC;;IA/WlD;;;;;;;;OAQG;IACH,yEAOC;IAhBD;;;;;;;;OAQG;IACH,yEAOC;IAED;;;;;;;;OAQG;IACH,4EAUC;IAnBD;;;;;;;;OAQG;IACH,4EAUC;IAED;;;OAGG;IACH,sEAEC;IAND;;;OAGG;IACH,sEAEC;IAMkB,6FAAmE;;IAUtF;;;;;;;OAOG;IACH,0IAQC;IAhBD;;;;;;;OAOG;IACH,0IAQC;IACD;;;;;;;OAOG;IACH,6GAKC;IAbD;;;;;;;OAOG;IACH,6GAKC;IAED;;;;OAIG;IACH,sEAEC;IAPD;;;;OAIG;IACH,sEAEC;IAKc,uFAAwD;;;IAYtD,uFAAsD;;;IAQvE;;;;;OAKG;IACH,uGAcC;IApBD;;;;;OAKG;IACH,uGAcC;IAED;;;;;;;OAOG;IACH,gFAEC;IAVD;;;;;;;OAOG;IACH,gFAEC;IAED;;;;OAIG;IACH,gFAEC;IAPD;;;;OAIG;IACH,gFAEC;IAED;;;;;;;OAOG;IACH,4GAyEC;IAjFD;;;;;;;OAOG;IACH,4GAyEC;IACD;;;;;;OAMG;IACH,0FAQC;IAfD;;;;;;OAMG;IACH,0FAQC;IACD;;;;;;OAMG;IACH,8CASC;IAhBD;;;;;;OAMG;IACH,8CASC;;;;;;;;;;;;IA+EA;;;OAOF"}