appium 3.5.0 → 3.5.2

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 (195) hide show
  1. package/build/lib/appium.d.ts.map +1 -1
  2. package/build/lib/appium.js +43 -45
  3. package/build/lib/appium.js.map +1 -1
  4. package/build/lib/bidi-commands.d.ts.map +1 -1
  5. package/build/lib/bidi-commands.js +34 -29
  6. package/build/lib/bidi-commands.js.map +1 -1
  7. package/build/lib/bootstrap/appium-initializer.d.ts.map +1 -1
  8. package/build/lib/bootstrap/appium-initializer.js +13 -13
  9. package/build/lib/bootstrap/appium-initializer.js.map +1 -1
  10. package/build/lib/bootstrap/appium-main-runner.d.ts.map +1 -1
  11. package/build/lib/bootstrap/appium-main-runner.js +2 -2
  12. package/build/lib/bootstrap/appium-main-runner.js.map +1 -1
  13. package/build/lib/bootstrap/config-file.d.ts.map +1 -1
  14. package/build/lib/bootstrap/config-file.js +11 -11
  15. package/build/lib/bootstrap/config-file.js.map +1 -1
  16. package/build/lib/bootstrap/grid-v3-register.d.ts.map +1 -1
  17. package/build/lib/bootstrap/grid-v3-register.js +9 -6
  18. package/build/lib/bootstrap/grid-v3-register.js.map +1 -1
  19. package/build/lib/bootstrap/main-helpers.d.ts +1 -1
  20. package/build/lib/bootstrap/main-helpers.d.ts.map +1 -1
  21. package/build/lib/bootstrap/main-helpers.js +19 -20
  22. package/build/lib/bootstrap/main-helpers.js.map +1 -1
  23. package/build/lib/bootstrap/node-helpers.d.ts +1 -1
  24. package/build/lib/bootstrap/node-helpers.d.ts.map +1 -1
  25. package/build/lib/bootstrap/node-helpers.js +7 -14
  26. package/build/lib/bootstrap/node-helpers.js.map +1 -1
  27. package/build/lib/bootstrap/startup-config.d.ts.map +1 -1
  28. package/build/lib/bootstrap/startup-config.js +32 -30
  29. package/build/lib/bootstrap/startup-config.js.map +1 -1
  30. package/build/lib/cli/args.d.ts +3 -2
  31. package/build/lib/cli/args.d.ts.map +1 -1
  32. package/build/lib/cli/args.js +2 -5
  33. package/build/lib/cli/args.js.map +1 -1
  34. package/build/lib/cli/driver-command.d.ts +1 -2
  35. package/build/lib/cli/driver-command.d.ts.map +1 -1
  36. package/build/lib/cli/driver-command.js +7 -8
  37. package/build/lib/cli/driver-command.js.map +1 -1
  38. package/build/lib/cli/extension-command.d.ts +2 -2
  39. package/build/lib/cli/extension-command.d.ts.map +1 -1
  40. package/build/lib/cli/extension-command.js +100 -66
  41. package/build/lib/cli/extension-command.js.map +1 -1
  42. package/build/lib/cli/extension.d.ts.map +1 -1
  43. package/build/lib/cli/extension.js.map +1 -1
  44. package/build/lib/cli/parser.d.ts.map +1 -1
  45. package/build/lib/cli/parser.js +21 -14
  46. package/build/lib/cli/parser.js.map +1 -1
  47. package/build/lib/cli/plugin-command.d.ts +1 -1
  48. package/build/lib/cli/plugin-command.d.ts.map +1 -1
  49. package/build/lib/cli/plugin-command.js +5 -5
  50. package/build/lib/cli/plugin-command.js.map +1 -1
  51. package/build/lib/cli/setup-command.d.ts +1 -1
  52. package/build/lib/cli/setup-command.d.ts.map +1 -1
  53. package/build/lib/cli/setup-command.js +14 -19
  54. package/build/lib/cli/setup-command.js.map +1 -1
  55. package/build/lib/cli/utils.d.ts.map +1 -1
  56. package/build/lib/cli/utils.js +3 -2
  57. package/build/lib/cli/utils.js.map +1 -1
  58. package/build/lib/doctor/doctor.d.ts +0 -1
  59. package/build/lib/doctor/doctor.d.ts.map +1 -1
  60. package/build/lib/doctor/doctor.js +12 -17
  61. package/build/lib/doctor/doctor.js.map +1 -1
  62. package/build/lib/extension/driver-config.d.ts.map +1 -1
  63. package/build/lib/extension/driver-config.js +11 -12
  64. package/build/lib/extension/driver-config.js.map +1 -1
  65. package/build/lib/extension/extension-config.d.ts.map +1 -1
  66. package/build/lib/extension/extension-config.js +28 -27
  67. package/build/lib/extension/extension-config.js.map +1 -1
  68. package/build/lib/extension/index.d.ts.map +1 -1
  69. package/build/lib/extension/index.js +13 -16
  70. package/build/lib/extension/index.js.map +1 -1
  71. package/build/lib/extension/manifest.d.ts +3 -2
  72. package/build/lib/extension/manifest.d.ts.map +1 -1
  73. package/build/lib/extension/manifest.js +19 -22
  74. package/build/lib/extension/manifest.js.map +1 -1
  75. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  76. package/build/lib/extension/plugin-config.js +7 -9
  77. package/build/lib/extension/plugin-config.js.map +1 -1
  78. package/build/lib/helpers/build.d.ts +0 -1
  79. package/build/lib/helpers/build.d.ts.map +1 -1
  80. package/build/lib/helpers/build.js +2 -4
  81. package/build/lib/helpers/build.js.map +1 -1
  82. package/build/lib/helpers/capability.d.ts.map +1 -1
  83. package/build/lib/helpers/capability.js +27 -22
  84. package/build/lib/helpers/capability.js.map +1 -1
  85. package/build/lib/helpers/network.d.ts.map +1 -1
  86. package/build/lib/helpers/network.js +4 -3
  87. package/build/lib/helpers/network.js.map +1 -1
  88. package/build/lib/insecure-features.d.ts.map +1 -1
  89. package/build/lib/insecure-features.js +9 -13
  90. package/build/lib/insecure-features.js.map +1 -1
  91. package/build/lib/inspector-commands.d.ts.map +1 -1
  92. package/build/lib/inspector-commands.js +29 -28
  93. package/build/lib/inspector-commands.js.map +1 -1
  94. package/build/lib/logsink.d.ts.map +1 -1
  95. package/build/lib/logsink.js +8 -7
  96. package/build/lib/logsink.js.map +1 -1
  97. package/build/lib/schema/arg-spec.d.ts.map +1 -1
  98. package/build/lib/schema/arg-spec.js +5 -8
  99. package/build/lib/schema/arg-spec.js.map +1 -1
  100. package/build/lib/schema/cli-args.d.ts.map +1 -1
  101. package/build/lib/schema/cli-args.js +20 -19
  102. package/build/lib/schema/cli-args.js.map +1 -1
  103. package/build/lib/schema/cli-transformers.d.ts.map +1 -1
  104. package/build/lib/schema/cli-transformers.js.map +1 -1
  105. package/build/lib/schema/schema.d.ts.map +1 -1
  106. package/build/lib/schema/schema.js +28 -21
  107. package/build/lib/schema/schema.js.map +1 -1
  108. package/build/lib/utils/hash.d.ts +5 -0
  109. package/build/lib/utils/hash.d.ts.map +1 -0
  110. package/build/lib/{utils.js → utils/hash.js} +3 -21
  111. package/build/lib/utils/hash.js.map +1 -0
  112. package/build/lib/utils/index.d.ts +8 -0
  113. package/build/lib/utils/index.d.ts.map +1 -0
  114. package/build/lib/utils/index.js +31 -0
  115. package/build/lib/utils/index.js.map +1 -0
  116. package/build/lib/utils/is-package-changed.d.ts +16 -0
  117. package/build/lib/utils/is-package-changed.d.ts.map +1 -0
  118. package/build/lib/utils/is-package-changed.js +62 -0
  119. package/build/lib/utils/is-package-changed.js.map +1 -0
  120. package/build/lib/utils/object.d.ts +120 -0
  121. package/build/lib/utils/object.d.ts.map +1 -0
  122. package/build/lib/utils/object.js +288 -0
  123. package/build/lib/utils/object.js.map +1 -0
  124. package/build/lib/{extension → utils}/package-changed.d.ts +0 -1
  125. package/build/lib/utils/package-changed.d.ts.map +1 -0
  126. package/build/lib/{extension → utils}/package-changed.js +3 -4
  127. package/build/lib/utils/package-changed.js.map +1 -0
  128. package/build/lib/utils/package-json.d.ts +9 -0
  129. package/build/lib/utils/package-json.d.ts.map +1 -0
  130. package/build/lib/utils/package-json.js +32 -0
  131. package/build/lib/utils/package-json.js.map +1 -0
  132. package/build/lib/utils/resolve-from.d.ts +11 -0
  133. package/build/lib/utils/resolve-from.d.ts.map +1 -0
  134. package/build/lib/utils/resolve-from.js +41 -0
  135. package/build/lib/utils/resolve-from.js.map +1 -0
  136. package/build/types/cli.d.ts.map +1 -1
  137. package/build/types/index.d.ts.map +1 -1
  138. package/build/types/manifest/base.d.ts.map +1 -1
  139. package/build/types/manifest/v3.d.ts.map +1 -1
  140. package/build/types/manifest/v4.d.ts.map +1 -1
  141. package/lib/appium.ts +59 -55
  142. package/lib/bidi-commands.ts +106 -60
  143. package/lib/bootstrap/appium-initializer.ts +27 -19
  144. package/lib/bootstrap/appium-main-runner.ts +8 -4
  145. package/lib/bootstrap/config-file.ts +33 -16
  146. package/lib/bootstrap/grid-v3-register.ts +26 -19
  147. package/lib/bootstrap/main-helpers.ts +25 -19
  148. package/lib/bootstrap/node-helpers.ts +19 -22
  149. package/lib/bootstrap/startup-config.ts +42 -39
  150. package/lib/cli/args.ts +3 -4
  151. package/lib/cli/driver-command.ts +19 -13
  152. package/lib/cli/extension-command.ts +208 -143
  153. package/lib/cli/extension.ts +4 -6
  154. package/lib/cli/parser.ts +32 -30
  155. package/lib/cli/plugin-command.ts +20 -9
  156. package/lib/cli/setup-command.ts +54 -39
  157. package/lib/cli/utils.ts +4 -3
  158. package/lib/doctor/doctor.ts +15 -17
  159. package/lib/extension/driver-config.ts +22 -17
  160. package/lib/extension/extension-config.ts +74 -66
  161. package/lib/extension/index.ts +42 -25
  162. package/lib/extension/manifest.ts +34 -31
  163. package/lib/extension/plugin-config.ts +15 -10
  164. package/lib/helpers/build.ts +6 -5
  165. package/lib/helpers/capability.ts +40 -35
  166. package/lib/helpers/network.ts +6 -5
  167. package/lib/insecure-features.ts +16 -14
  168. package/lib/inspector-commands.ts +72 -40
  169. package/lib/logsink.ts +22 -26
  170. package/lib/schema/arg-spec.ts +9 -8
  171. package/lib/schema/cli-args-guards.ts +4 -4
  172. package/lib/schema/cli-args.ts +25 -21
  173. package/lib/schema/cli-transformers.ts +6 -2
  174. package/lib/schema/format-errors.ts +1 -1
  175. package/lib/schema/schema.ts +52 -38
  176. package/lib/{utils.ts → utils/hash.ts} +2 -19
  177. package/lib/utils/index.ts +23 -0
  178. package/lib/utils/is-package-changed.ts +78 -0
  179. package/lib/utils/object.ts +312 -0
  180. package/lib/{extension → utils}/package-changed.ts +6 -7
  181. package/lib/utils/package-json.ts +36 -0
  182. package/lib/utils/resolve-from.ts +40 -0
  183. package/package.json +13 -16
  184. package/scripts/autoinstall-extensions.js +8 -8
  185. package/tsconfig.json +8 -2
  186. package/types/cli.ts +18 -18
  187. package/types/index.ts +2 -2
  188. package/types/manifest/base.ts +2 -2
  189. package/types/manifest/v3.ts +2 -2
  190. package/types/manifest/v4.ts +2 -2
  191. package/build/lib/extension/package-changed.d.ts.map +0 -1
  192. package/build/lib/extension/package-changed.js.map +0 -1
  193. package/build/lib/utils.d.ts +0 -13
  194. package/build/lib/utils.d.ts.map +0 -1
  195. package/build/lib/utils.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ export { adler32 } from './hash';
2
+ export { isPackageChanged } from './is-package-changed';
3
+ export type { IsPackageChangedOptions, IsPackageChangedResult } from './is-package-changed';
4
+ export { appiumPackageRoot, npmPackage } from './package-json';
5
+ export { packageDidChange } from './package-changed';
6
+ export { resolveFrom } from './resolve-from';
7
+ export { bindAll, camelCase, capitalize, compact, defaultsDeep, difference, getPath, kebabCase, mapKeys, mapValues, omitKeys, pickBy, pull, setPath, zip, } from './object';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAC,uBAAuB,EAAE,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAC,iBAAiB,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,YAAY,EACZ,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,OAAO,EACP,GAAG,GACJ,MAAM,UAAU,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zip = exports.setPath = exports.pull = exports.pickBy = exports.omitKeys = exports.mapValues = exports.mapKeys = exports.kebabCase = exports.getPath = exports.difference = exports.defaultsDeep = exports.compact = exports.capitalize = exports.camelCase = exports.bindAll = exports.resolveFrom = exports.packageDidChange = exports.npmPackage = exports.appiumPackageRoot = exports.isPackageChanged = exports.adler32 = void 0;
4
+ var hash_1 = require("./hash");
5
+ Object.defineProperty(exports, "adler32", { enumerable: true, get: function () { return hash_1.adler32; } });
6
+ var is_package_changed_1 = require("./is-package-changed");
7
+ Object.defineProperty(exports, "isPackageChanged", { enumerable: true, get: function () { return is_package_changed_1.isPackageChanged; } });
8
+ var package_json_1 = require("./package-json");
9
+ Object.defineProperty(exports, "appiumPackageRoot", { enumerable: true, get: function () { return package_json_1.appiumPackageRoot; } });
10
+ Object.defineProperty(exports, "npmPackage", { enumerable: true, get: function () { return package_json_1.npmPackage; } });
11
+ var package_changed_1 = require("./package-changed");
12
+ Object.defineProperty(exports, "packageDidChange", { enumerable: true, get: function () { return package_changed_1.packageDidChange; } });
13
+ var resolve_from_1 = require("./resolve-from");
14
+ Object.defineProperty(exports, "resolveFrom", { enumerable: true, get: function () { return resolve_from_1.resolveFrom; } });
15
+ var object_1 = require("./object");
16
+ Object.defineProperty(exports, "bindAll", { enumerable: true, get: function () { return object_1.bindAll; } });
17
+ Object.defineProperty(exports, "camelCase", { enumerable: true, get: function () { return object_1.camelCase; } });
18
+ Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return object_1.capitalize; } });
19
+ Object.defineProperty(exports, "compact", { enumerable: true, get: function () { return object_1.compact; } });
20
+ Object.defineProperty(exports, "defaultsDeep", { enumerable: true, get: function () { return object_1.defaultsDeep; } });
21
+ Object.defineProperty(exports, "difference", { enumerable: true, get: function () { return object_1.difference; } });
22
+ Object.defineProperty(exports, "getPath", { enumerable: true, get: function () { return object_1.getPath; } });
23
+ Object.defineProperty(exports, "kebabCase", { enumerable: true, get: function () { return object_1.kebabCase; } });
24
+ Object.defineProperty(exports, "mapKeys", { enumerable: true, get: function () { return object_1.mapKeys; } });
25
+ Object.defineProperty(exports, "mapValues", { enumerable: true, get: function () { return object_1.mapValues; } });
26
+ Object.defineProperty(exports, "omitKeys", { enumerable: true, get: function () { return object_1.omitKeys; } });
27
+ Object.defineProperty(exports, "pickBy", { enumerable: true, get: function () { return object_1.pickBy; } });
28
+ Object.defineProperty(exports, "pull", { enumerable: true, get: function () { return object_1.pull; } });
29
+ Object.defineProperty(exports, "setPath", { enumerable: true, get: function () { return object_1.setPath; } });
30
+ Object.defineProperty(exports, "zip", { enumerable: true, get: function () { return object_1.zip; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/utils/index.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAAvB,+FAAA,OAAO,OAAA;AACf,2DAAsD;AAA9C,sHAAA,gBAAgB,OAAA;AAExB,+CAA6D;AAArD,iHAAA,iBAAiB,OAAA;AAAE,0GAAA,UAAU,OAAA;AACrC,qDAAmD;AAA3C,mHAAA,gBAAgB,OAAA;AACxB,+CAA2C;AAAnC,2GAAA,WAAW,OAAA;AACnB,mCAgBkB;AAfhB,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,iGAAA,OAAO,OAAA;AACP,sGAAA,YAAY,OAAA;AACZ,oGAAA,UAAU,OAAA;AACV,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,kGAAA,QAAQ,OAAA;AACR,gGAAA,MAAM,OAAA;AACN,8FAAA,IAAI,OAAA;AACJ,iGAAA,OAAO,OAAA;AACP,6FAAA,GAAG,OAAA"}
@@ -0,0 +1,16 @@
1
+ export interface IsPackageChangedOptions {
2
+ cwd?: string;
3
+ hashFilename?: string;
4
+ }
5
+ export interface IsPackageChangedResult {
6
+ hash: string;
7
+ isChanged: boolean;
8
+ oldHash?: string;
9
+ writeHash: () => Promise<void>;
10
+ }
11
+ /**
12
+ * Detects whether `package.json` dependencies changed since the last hash write.
13
+ * Inlined from the `package-changed` package (lockfile support omitted; unused by Appium).
14
+ */
15
+ export declare function isPackageChanged(options?: IsPackageChangedOptions): Promise<IsPackageChangedResult>;
16
+ //# sourceMappingURL=is-package-changed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-package-changed.d.ts","sourceRoot":"","sources":["../../../lib/utils/is-package-changed.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAyBjC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
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.isPackageChanged = isPackageChanged;
7
+ const support_1 = require("@appium/support");
8
+ const node_crypto_1 = __importDefault(require("node:crypto"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ /**
11
+ * Detects whether `package.json` dependencies changed since the last hash write.
12
+ * Inlined from the `package-changed` package (lockfile support omitted; unused by Appium).
13
+ */
14
+ async function isPackageChanged(options = {}) {
15
+ const { hashFilename = '.packagehash', cwd = process.cwd() } = options;
16
+ const packagePath = await findPackageJson(cwd);
17
+ if (!packagePath) {
18
+ throw new Error(`Cannot find package.json travelling up from "${cwd}".`);
19
+ }
20
+ const packageHashPath = node_path_1.default.join(cwd, hashFilename);
21
+ const packageHashPathExists = await support_1.fs.exists(packageHashPath);
22
+ const recentDigest = await getPackageHash(packagePath);
23
+ const previousDigest = packageHashPathExists
24
+ ? await support_1.fs.readFile(packageHashPath, 'utf-8')
25
+ : undefined;
26
+ const isChanged = !packageHashPathExists || previousDigest !== recentDigest;
27
+ const writeHash = async () => {
28
+ await support_1.fs.writeFile(packageHashPath, recentDigest, 'utf-8');
29
+ };
30
+ return {
31
+ hash: recentDigest,
32
+ isChanged,
33
+ oldHash: previousDigest || undefined,
34
+ writeHash,
35
+ };
36
+ }
37
+ async function findPackageJson(cwd) {
38
+ let current = cwd;
39
+ while (true) {
40
+ const search = node_path_1.default.join(current, 'package.json');
41
+ if (await support_1.fs.exists(search)) {
42
+ return search;
43
+ }
44
+ const parent = node_path_1.default.dirname(current);
45
+ if (parent === current) {
46
+ return;
47
+ }
48
+ current = parent;
49
+ }
50
+ }
51
+ async function getPackageHash(packagePath) {
52
+ const contents = await support_1.fs.readFile(packagePath, 'utf-8');
53
+ const packageBlob = JSON.parse(contents);
54
+ const dependencies = {
55
+ dependencies: packageBlob.dependencies ?? {},
56
+ devDependencies: packageBlob.devDependencies ?? {},
57
+ };
58
+ const hashSum = node_crypto_1.default.createHash('md5');
59
+ hashSum.update(Buffer.from(JSON.stringify(dependencies)));
60
+ return hashSum.digest('hex');
61
+ }
62
+ //# sourceMappingURL=is-package-changed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-package-changed.js","sourceRoot":"","sources":["../../../lib/utils/is-package-changed.ts"],"names":[],"mappings":";;;;;AAoBA,4CA2BC;AA/CD,6CAAmC;AACnC,8DAAiC;AACjC,0DAA6B;AAc7B;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAAmC,EAAE;IAErC,MAAM,EAAC,YAAY,GAAG,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAC,GAAG,OAAO,CAAC;IACrE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,qBAAqB;QAC1C,CAAC,CAAC,MAAM,YAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,CAAC,qBAAqB,IAAI,cAAc,KAAK,YAAY,CAAC;IAE5E,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,YAAE,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,SAAS;QACT,OAAO,EAAE,cAAc,IAAI,SAAS;QACpC,SAAS;KACV,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAClD,IAAI,MAAM,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAmB;IAC/C,MAAM,QAAQ,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAGtC,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;QAC5C,eAAe,EAAE,WAAW,CAAC,eAAe,IAAI,EAAE;KACnD,CAAC;IACF,MAAM,OAAO,GAAG,qBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Converts a string to kebab-case (for Appium CLI and schema property names).
3
+ *
4
+ * @param value - Input string
5
+ * @returns Kebab-cased string
6
+ */
7
+ export declare function kebabCase(value: string): string;
8
+ /**
9
+ * Converts a string to camelCase.
10
+ *
11
+ * @param value - Input string
12
+ * @returns camelCased string
13
+ */
14
+ export declare function camelCase(value: string): string;
15
+ /**
16
+ * Uppercases the first character of a string.
17
+ *
18
+ * @param value - Input string
19
+ * @returns Capitalized string, or empty string when input is empty
20
+ */
21
+ export declare function capitalize(value: string): string;
22
+ /**
23
+ * Returns a shallow copy of `obj` without any of `keys`. Non-plain objects are returned unchanged.
24
+ *
25
+ * @param obj - Source object
26
+ * @param keys - Property names to omit
27
+ * @returns Shallow copy without the listed keys
28
+ */
29
+ export declare function omitKeys<T extends Record<string, unknown>>(obj: T, keys: readonly string[]): T;
30
+ /**
31
+ * Returns a shallow copy of `obj` whose entries pass `predicate`.
32
+ *
33
+ * @param obj - Source object
34
+ * @param predicate - Filter invoked with each value and key
35
+ * @returns Shallow copy containing only matching entries
36
+ */
37
+ export declare function pickBy<T extends Record<string, unknown>>(obj: T, predicate: (value: T[keyof T], key: keyof T) => boolean): Partial<T>;
38
+ /**
39
+ * Returns an object with the same keys as `obj` and values transformed by `fn`.
40
+ *
41
+ * @param obj - Source object
42
+ * @param fn - Mapper invoked with each value and key
43
+ * @returns Object with transformed values
44
+ */
45
+ export declare function mapValues<T extends Record<string, unknown>, R>(obj: T, fn: (value: T[keyof T], key: keyof T) => R): Record<string, R>;
46
+ /**
47
+ * Returns an object with keys renamed by `fn` and original values preserved.
48
+ *
49
+ * @param obj - Source object
50
+ * @param fn - Key mapper invoked with each value and key
51
+ * @returns Object with renamed keys
52
+ */
53
+ export declare function mapKeys<T extends Record<string, unknown>>(obj: T, fn: (value: T[keyof T], key: keyof T) => string): Record<string, unknown>;
54
+ /**
55
+ * Reads a dot-separated path on `obj`, returning `defaultValue` when any segment is missing.
56
+ *
57
+ * @param obj - Object to read from
58
+ * @param path - Dot-separated property path
59
+ * @param defaultValue - Value returned when the path cannot be resolved
60
+ * @returns Value at the path, or `defaultValue`
61
+ */
62
+ export declare function getPath(obj: unknown, path: string, defaultValue?: unknown): unknown;
63
+ /**
64
+ * Assigns `value` at a dot-separated path on `obj`, creating plain object segments as needed.
65
+ *
66
+ * No-ops when the path contains empty segments or keys that could trigger prototype pollution
67
+ * (`__proto__`, `constructor`, `prototype`).
68
+ *
69
+ * @param obj - Object to mutate
70
+ * @param path - Dot-separated property path
71
+ * @param value - Value to assign at the path
72
+ */
73
+ export declare function setPath(obj: Record<string, unknown>, path: string, value: unknown): void;
74
+ /**
75
+ * Binds listed methods on `obj` so they keep the correct `this` when passed as callbacks.
76
+ *
77
+ * @param obj - Target object
78
+ * @param methodNames - Method names to bind
79
+ * @returns `obj` (mutated in place)
80
+ */
81
+ export declare function bindAll<T extends object>(obj: T, methodNames: readonly string[]): T;
82
+ /**
83
+ * Returns a copy of `arr` with falsy entries removed.
84
+ *
85
+ * @param arr - Input array
86
+ * @returns Array containing only truthy elements
87
+ */
88
+ export declare function compact<T>(arr: Array<T | null | undefined | false | '' | 0>): T[];
89
+ /**
90
+ * Removes all occurrences of `values` from `arr` (mutates `arr`).
91
+ *
92
+ * @param arr - Array to modify
93
+ * @param values - Values to remove
94
+ * @returns `arr`
95
+ */
96
+ export declare function pull<T>(arr: T[], ...values: T[]): T[];
97
+ /**
98
+ * Zips two arrays into tuples `[a[i], b[i]]`.
99
+ *
100
+ * @param a - First array
101
+ * @param b - Second array
102
+ * @returns Array of zipped pairs
103
+ */
104
+ export declare function zip<A, B>(a: readonly A[], b: readonly B[]): Array<[A, B | undefined]>;
105
+ /**
106
+ * Returns elements in `a` that are not present in `b`.
107
+ *
108
+ * @param a - Source array
109
+ * @param b - Values to exclude
110
+ * @returns Filtered array
111
+ */
112
+ export declare function difference<T>(a: readonly T[], b: readonly T[]): T[];
113
+ /**
114
+ * Deep-defaults merge: each source fills only `undefined` properties in the result (recursive for plain objects).
115
+ *
116
+ * @param sources - Objects merged in order; null/undefined sources are skipped
117
+ * @returns Merged object
118
+ */
119
+ export declare function defaultsDeep<T extends Record<string, unknown>>(...sources: Array<Partial<T> | undefined>): T;
120
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../lib/utils/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kebabCase = kebabCase;
4
+ exports.camelCase = camelCase;
5
+ exports.capitalize = capitalize;
6
+ exports.omitKeys = omitKeys;
7
+ exports.pickBy = pickBy;
8
+ exports.mapValues = mapValues;
9
+ exports.mapKeys = mapKeys;
10
+ exports.getPath = getPath;
11
+ exports.setPath = setPath;
12
+ exports.bindAll = bindAll;
13
+ exports.compact = compact;
14
+ exports.pull = pull;
15
+ exports.zip = zip;
16
+ exports.difference = difference;
17
+ exports.defaultsDeep = defaultsDeep;
18
+ const support_1 = require("@appium/support");
19
+ const UNSAFE_PATH_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
20
+ /**
21
+ * Converts a string to kebab-case (for Appium CLI and schema property names).
22
+ *
23
+ * @param value - Input string
24
+ * @returns Kebab-cased string
25
+ */
26
+ function kebabCase(value) {
27
+ return splitWords(value).join('-').toLowerCase();
28
+ }
29
+ /**
30
+ * Converts a string to camelCase.
31
+ *
32
+ * @param value - Input string
33
+ * @returns camelCased string
34
+ */
35
+ function camelCase(value) {
36
+ const words = splitWords(value);
37
+ if (words.length === 0) {
38
+ return '';
39
+ }
40
+ return (words[0].toLowerCase() +
41
+ words
42
+ .slice(1)
43
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
44
+ .join(''));
45
+ }
46
+ /**
47
+ * Uppercases the first character of a string.
48
+ *
49
+ * @param value - Input string
50
+ * @returns Capitalized string, or empty string when input is empty
51
+ */
52
+ function capitalize(value) {
53
+ return value ? value.charAt(0).toUpperCase() + value.slice(1) : value;
54
+ }
55
+ /**
56
+ * Returns a shallow copy of `obj` without any of `keys`. Non-plain objects are returned unchanged.
57
+ *
58
+ * @param obj - Source object
59
+ * @param keys - Property names to omit
60
+ * @returns Shallow copy without the listed keys
61
+ */
62
+ function omitKeys(obj, keys) {
63
+ if (!support_1.util.isPlainObject(obj) || keys.length === 0) {
64
+ return obj;
65
+ }
66
+ const omit = new Set(keys);
67
+ return Object.fromEntries(Object.entries(obj).filter(([k]) => !omit.has(k)));
68
+ }
69
+ /**
70
+ * Returns a shallow copy of `obj` whose entries pass `predicate`.
71
+ *
72
+ * @param obj - Source object
73
+ * @param predicate - Filter invoked with each value and key
74
+ * @returns Shallow copy containing only matching entries
75
+ */
76
+ function pickBy(obj, predicate) {
77
+ return Object.fromEntries(Object.entries(obj).filter(([key, value]) => predicate(value, key)));
78
+ }
79
+ /**
80
+ * Returns an object with the same keys as `obj` and values transformed by `fn`.
81
+ *
82
+ * @param obj - Source object
83
+ * @param fn - Mapper invoked with each value and key
84
+ * @returns Object with transformed values
85
+ */
86
+ function mapValues(obj, fn) {
87
+ return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value, key)]));
88
+ }
89
+ /**
90
+ * Returns an object with keys renamed by `fn` and original values preserved.
91
+ *
92
+ * @param obj - Source object
93
+ * @param fn - Key mapper invoked with each value and key
94
+ * @returns Object with renamed keys
95
+ */
96
+ function mapKeys(obj, fn) {
97
+ return Object.fromEntries(Object.entries(obj).map(([key, value]) => [fn(value, key), value]));
98
+ }
99
+ /**
100
+ * Reads a dot-separated path on `obj`, returning `defaultValue` when any segment is missing.
101
+ *
102
+ * @param obj - Object to read from
103
+ * @param path - Dot-separated property path
104
+ * @param defaultValue - Value returned when the path cannot be resolved
105
+ * @returns Value at the path, or `defaultValue`
106
+ */
107
+ function getPath(obj, path, defaultValue) {
108
+ const parts = path.split('.');
109
+ let current = obj;
110
+ for (const part of parts) {
111
+ if (current == null || (typeof current !== 'object' && typeof current !== 'function')) {
112
+ return defaultValue;
113
+ }
114
+ current = current[part];
115
+ }
116
+ return current === undefined ? defaultValue : current;
117
+ }
118
+ /**
119
+ * Assigns `value` at a dot-separated path on `obj`, creating plain object segments as needed.
120
+ *
121
+ * No-ops when the path contains empty segments or keys that could trigger prototype pollution
122
+ * (`__proto__`, `constructor`, `prototype`).
123
+ *
124
+ * @param obj - Object to mutate
125
+ * @param path - Dot-separated property path
126
+ * @param value - Value to assign at the path
127
+ */
128
+ function setPath(obj, path, value) {
129
+ const parts = path.split('.');
130
+ if (!parts.every(isSafePathKey)) {
131
+ return;
132
+ }
133
+ let current = obj;
134
+ for (let i = 0; i < parts.length - 1; i++) {
135
+ const part = parts[i];
136
+ const next = current[part];
137
+ if (!support_1.util.isPlainObject(next)) {
138
+ current[part] = {};
139
+ }
140
+ current = current[part];
141
+ }
142
+ current[parts[parts.length - 1]] = value;
143
+ }
144
+ /**
145
+ * Binds listed methods on `obj` so they keep the correct `this` when passed as callbacks.
146
+ *
147
+ * @param obj - Target object
148
+ * @param methodNames - Method names to bind
149
+ * @returns `obj` (mutated in place)
150
+ */
151
+ function bindAll(obj, methodNames) {
152
+ for (const name of methodNames) {
153
+ const method = obj[name];
154
+ if (typeof method === 'function') {
155
+ obj[name] = method.bind(obj);
156
+ }
157
+ }
158
+ return obj;
159
+ }
160
+ /**
161
+ * Returns a copy of `arr` with falsy entries removed.
162
+ *
163
+ * @param arr - Input array
164
+ * @returns Array containing only truthy elements
165
+ */
166
+ function compact(arr) {
167
+ return arr.filter((x) => Boolean(x));
168
+ }
169
+ /**
170
+ * Removes all occurrences of `values` from `arr` (mutates `arr`).
171
+ *
172
+ * @param arr - Array to modify
173
+ * @param values - Values to remove
174
+ * @returns `arr`
175
+ */
176
+ function pull(arr, ...values) {
177
+ for (const v of values) {
178
+ let idx;
179
+ while ((idx = arr.indexOf(v)) !== -1) {
180
+ arr.splice(idx, 1);
181
+ }
182
+ }
183
+ return arr;
184
+ }
185
+ /**
186
+ * Zips two arrays into tuples `[a[i], b[i]]`.
187
+ *
188
+ * @param a - First array
189
+ * @param b - Second array
190
+ * @returns Array of zipped pairs
191
+ */
192
+ function zip(a, b) {
193
+ return a.map((item, i) => [item, b[i]]);
194
+ }
195
+ /**
196
+ * Returns elements in `a` that are not present in `b`.
197
+ *
198
+ * @param a - Source array
199
+ * @param b - Values to exclude
200
+ * @returns Filtered array
201
+ */
202
+ function difference(a, b) {
203
+ const bSet = new Set(b);
204
+ return a.filter((x) => !bSet.has(x));
205
+ }
206
+ /**
207
+ * Deep-defaults merge: each source fills only `undefined` properties in the result (recursive for plain objects).
208
+ *
209
+ * @param sources - Objects merged in order; null/undefined sources are skipped
210
+ * @returns Merged object
211
+ */
212
+ function defaultsDeep(...sources) {
213
+ let result = {};
214
+ for (const source of sources) {
215
+ if (source == null) {
216
+ continue;
217
+ }
218
+ result = fillUndefinedDeep(result, source);
219
+ }
220
+ return result;
221
+ }
222
+ /**
223
+ * Splits a string into words (lodash-compatible), including acronym boundaries.
224
+ *
225
+ * @param value - Input string
226
+ * @returns Word tokens
227
+ */
228
+ function splitWords(value) {
229
+ return value
230
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
231
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
232
+ .replace(/[-_\s]+/g, ' ')
233
+ .trim()
234
+ .split(/\s+/)
235
+ .filter(Boolean);
236
+ }
237
+ function isSafePathKey(key) {
238
+ return key.length > 0 && !UNSAFE_PATH_KEYS.has(key);
239
+ }
240
+ /**
241
+ * Copies a value for {@link defaultsDeep}: plain objects are copied recursively;
242
+ * other values (including functions) are reused by reference.
243
+ *
244
+ * @param value - Value to copy
245
+ * @returns Copy safe for further defaults merging
246
+ */
247
+ function copyForDefaultsDeep(value) {
248
+ if (!support_1.util.isPlainObject(value)) {
249
+ return value;
250
+ }
251
+ const out = {};
252
+ for (const [key, val] of Object.entries(value)) {
253
+ out[key] = copyForDefaultsDeep(val);
254
+ }
255
+ return out;
256
+ }
257
+ /**
258
+ * Fills `undefined` keys in a clone of `target` from `source` (recursive for plain objects).
259
+ *
260
+ * @param target - Destination object
261
+ * @param source - Default values
262
+ * @returns Merged clone
263
+ */
264
+ function fillUndefinedDeep(target, source) {
265
+ const out = copyForDefaultsDeep(target);
266
+ const stack = [
267
+ { dest: out, src: source },
268
+ ];
269
+ while (stack.length) {
270
+ const next = stack.pop();
271
+ if (!next) {
272
+ continue;
273
+ }
274
+ const { dest, src } = next;
275
+ for (const [key, srcVal] of Object.entries(src)) {
276
+ const destVal = dest[key];
277
+ if (destVal === undefined) {
278
+ dest[key] = copyForDefaultsDeep(srcVal);
279
+ continue;
280
+ }
281
+ if (support_1.util.isPlainObject(destVal) && support_1.util.isPlainObject(srcVal)) {
282
+ stack.push({ dest: destVal, src: srcVal });
283
+ }
284
+ }
285
+ }
286
+ return out;
287
+ }
288
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../lib/utils/object.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * If they have, we need to sync them with the `extensions.yaml` manifest.
5
5
  *
6
- * _Warning: this makes a blocking call to `writeFileSync`._
7
6
  */
8
7
  export declare function packageDidChange(appiumHome: string): Promise<boolean>;
9
8
  //# sourceMappingURL=package-changed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-changed.d.ts","sourceRoot":"","sources":["../../../lib/utils/package-changed.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2C3E"}
@@ -5,16 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.packageDidChange = packageDidChange;
7
7
  const support_1 = require("@appium/support");
8
- const package_changed_1 = require("package-changed");
9
8
  const node_path_1 = __importDefault(require("node:path"));
10
9
  const constants_1 = require("../constants");
11
10
  const logger_1 = require("../logger");
11
+ const is_package_changed_1 = require("./is-package-changed");
12
12
  /**
13
13
  * Determines if extensions have changed, and updates a hash the `package.json` in `appiumHome` if so.
14
14
  *
15
15
  * If they have, we need to sync them with the `extensions.yaml` manifest.
16
16
  *
17
- * _Warning: this makes a blocking call to `writeFileSync`._
18
17
  */
19
18
  async function packageDidChange(appiumHome) {
20
19
  const hashFilename = node_path_1.default.join(appiumHome, constants_1.PKG_HASHFILE_RELATIVE_PATH);
@@ -31,7 +30,7 @@ async function packageDidChange(appiumHome) {
31
30
  let oldHash;
32
31
  let hash;
33
32
  try {
34
- ({ isChanged, writeHash, oldHash, hash } = await (0, package_changed_1.isPackageChanged)({
33
+ ({ isChanged, writeHash, oldHash, hash } = await (0, is_package_changed_1.isPackageChanged)({
35
34
  cwd: appiumHome,
36
35
  hashFilename: constants_1.PKG_HASHFILE_RELATIVE_PATH,
37
36
  }));
@@ -42,7 +41,7 @@ async function packageDidChange(appiumHome) {
42
41
  }
43
42
  if (isChanged) {
44
43
  try {
45
- writeHash();
44
+ await writeHash();
46
45
  logger_1.log.debug(`Updated hash of ${appiumHome}/package.json from: ${oldHash ?? '(none)'} to: ${hash}`);
47
46
  }
48
47
  catch (err) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-changed.js","sourceRoot":"","sources":["../../../lib/utils/package-changed.ts"],"names":[],"mappings":";;;;;AAYA,4CA2CC;AAvDD,6CAAmC;AACnC,0DAA6B;AAC7B,4CAAwD;AACxD,sCAA8B;AAC9B,6DAAsD;AAEtD;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sCAA0B,CAAC,CAAC;IAEvE,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,YAAG,CAAC,KAAK,CAAC,iCAAiC,eAAe,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,YAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,wDAAwD,eAAe,qBAAqB,GAAG,CAAC,OAAO,EAAE,EACzG,EAAC,KAAK,EAAE,GAAG,EAAC,CACb,CAAC;IACJ,CAAC;IAED,IAAI,SAAkB,CAAC;IACvB,IAAI,SAA8B,CAAC;IACnC,IAAI,OAA2B,CAAC;IAChC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,CAAC,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,MAAM,IAAA,qCAAgB,EAAC;YAC9D,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,sCAA0B;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC;YAClB,YAAG,CAAC,KAAK,CACP,mBAAmB,UAAU,uBAAuB,OAAO,IAAI,QAAQ,QAAQ,IAAI,EAAE,CACtF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,qBAAqB,GAAG,CAAC,OAAO,EAAE,EACtF,EAAC,KAAK,EAAE,GAAG,EAAC,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PackageJson } from 'type-fest';
2
+ type AppiumPackageJson = PackageJson & {
3
+ name: string;
4
+ version: string;
5
+ };
6
+ export declare const npmPackage: AppiumPackageJson;
7
+ export declare const appiumPackageRoot: string;
8
+ export {};
9
+ //# sourceMappingURL=package-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../lib/utils/package-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAE3C,KAAK,iBAAiB,GAAG,WAAW,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA2BF,eAAO,MAAM,UAAU,mBAAM,CAAC;AAC9B,eAAO,MAAM,iBAAiB,QAAU,CAAC"}