appium-uiautomator2-driver 2.29.10 → 2.30.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 (135) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/index.d.ts +4 -0
  3. package/build/index.d.ts.map +1 -0
  4. package/build/index.js +8 -16
  5. package/build/index.js.map +1 -0
  6. package/build/lib/commands/actions.d.ts +2 -0
  7. package/build/lib/commands/actions.d.ts.map +1 -0
  8. package/build/lib/commands/actions.js +67 -65
  9. package/build/lib/commands/actions.js.map +1 -1
  10. package/build/lib/commands/alert.d.ts +2 -0
  11. package/build/lib/commands/alert.d.ts.map +1 -0
  12. package/build/lib/commands/alert.js +28 -29
  13. package/build/lib/commands/alert.js.map +1 -1
  14. package/build/lib/commands/app-strings.d.ts +3 -0
  15. package/build/lib/commands/app-strings.d.ts.map +1 -0
  16. package/build/lib/commands/app-strings.js +86 -58
  17. package/build/lib/commands/app-strings.js.map +1 -1
  18. package/build/lib/commands/battery.d.ts +2 -0
  19. package/build/lib/commands/battery.d.ts.map +1 -0
  20. package/build/lib/commands/battery.js +26 -18
  21. package/build/lib/commands/battery.js.map +1 -1
  22. package/build/lib/commands/element.d.ts +2 -0
  23. package/build/lib/commands/element.d.ts.map +1 -0
  24. package/build/lib/commands/element.js +140 -162
  25. package/build/lib/commands/element.js.map +1 -1
  26. package/build/lib/commands/find.d.ts +2 -0
  27. package/build/lib/commands/find.d.ts.map +1 -0
  28. package/build/lib/commands/find.js +39 -27
  29. package/build/lib/commands/find.js.map +1 -1
  30. package/build/lib/commands/general.d.ts +4 -0
  31. package/build/lib/commands/general.d.ts.map +1 -0
  32. package/build/lib/commands/general.js +217 -216
  33. package/build/lib/commands/general.js.map +1 -1
  34. package/build/lib/commands/gestures.d.ts +2 -0
  35. package/build/lib/commands/gestures.d.ts.map +1 -0
  36. package/build/lib/commands/gestures.js +206 -194
  37. package/build/lib/commands/gestures.js.map +1 -1
  38. package/build/lib/commands/index.d.ts +2 -0
  39. package/build/lib/commands/index.d.ts.map +1 -0
  40. package/build/lib/commands/index.js +13 -23
  41. package/build/lib/commands/index.js.map +1 -1
  42. package/build/lib/commands/mixins.d.ts +84 -0
  43. package/build/lib/commands/mixins.d.ts.map +1 -0
  44. package/build/lib/commands/mixins.js +23 -0
  45. package/build/lib/commands/mixins.js.map +1 -0
  46. package/build/lib/commands/screenshot.d.ts +2 -0
  47. package/build/lib/commands/screenshot.d.ts.map +1 -0
  48. package/build/lib/commands/screenshot.js +77 -63
  49. package/build/lib/commands/screenshot.js.map +1 -1
  50. package/build/lib/commands/touch.d.ts +2 -0
  51. package/build/lib/commands/touch.d.ts.map +1 -0
  52. package/build/lib/commands/touch.js +48 -39
  53. package/build/lib/commands/touch.js.map +1 -1
  54. package/build/lib/commands/types.d.ts +452 -0
  55. package/build/lib/commands/types.d.ts.map +1 -0
  56. package/build/lib/commands/types.js +3 -0
  57. package/build/lib/commands/types.js.map +1 -0
  58. package/build/lib/commands/viewport.d.ts +2 -0
  59. package/build/lib/commands/viewport.d.ts.map +1 -0
  60. package/build/lib/commands/viewport.js +37 -37
  61. package/build/lib/commands/viewport.js.map +1 -1
  62. package/build/lib/constraints.d.ts +334 -0
  63. package/build/lib/constraints.d.ts.map +1 -0
  64. package/build/lib/constraints.js +51 -0
  65. package/build/lib/constraints.js.map +1 -0
  66. package/build/lib/css-converter.d.ts +45 -0
  67. package/build/lib/css-converter.d.ts.map +1 -0
  68. package/build/lib/css-converter.js +272 -176
  69. package/build/lib/css-converter.js.map +1 -1
  70. package/build/lib/driver.d.ts +912 -0
  71. package/build/lib/driver.d.ts.map +1 -0
  72. package/build/lib/driver.js +738 -483
  73. package/build/lib/driver.js.map +1 -1
  74. package/build/lib/execute-method-map.d.ts +477 -0
  75. package/build/lib/execute-method-map.d.ts.map +1 -0
  76. package/build/lib/execute-method-map.js +542 -0
  77. package/build/lib/execute-method-map.js.map +1 -0
  78. package/build/lib/extensions.d.ts +3 -0
  79. package/build/lib/extensions.d.ts.map +1 -0
  80. package/build/lib/extensions.js +3 -7
  81. package/build/lib/extensions.js.map +1 -1
  82. package/build/lib/helpers.d.ts +7 -0
  83. package/build/lib/helpers.d.ts.map +1 -0
  84. package/build/lib/helpers.js +36 -30
  85. package/build/lib/helpers.js.map +1 -1
  86. package/build/lib/logger.d.ts +3 -0
  87. package/build/lib/logger.d.ts.map +1 -0
  88. package/build/lib/logger.js +5 -11
  89. package/build/lib/logger.js.map +1 -1
  90. package/build/lib/method-map.d.ts +389 -0
  91. package/build/lib/method-map.d.ts.map +1 -0
  92. package/build/lib/method-map.js +11 -18
  93. package/build/lib/method-map.js.map +1 -1
  94. package/build/lib/types.d.ts +45 -0
  95. package/build/lib/types.d.ts.map +1 -0
  96. package/build/lib/types.js +3 -0
  97. package/build/lib/types.js.map +1 -0
  98. package/build/lib/uiautomator2.d.ts +45 -0
  99. package/build/lib/uiautomator2.d.ts.map +1 -0
  100. package/build/lib/uiautomator2.js +334 -297
  101. package/build/lib/uiautomator2.js.map +1 -1
  102. package/build/lib/utils.d.ts +10 -0
  103. package/build/lib/utils.d.ts.map +1 -0
  104. package/build/lib/utils.js +23 -16
  105. package/build/lib/utils.js.map +1 -1
  106. package/build/tsconfig.tsbuildinfo +1 -0
  107. package/index.js +5 -3
  108. package/lib/commands/actions.js +115 -101
  109. package/lib/commands/alert.js +36 -44
  110. package/lib/commands/app-strings.js +79 -58
  111. package/lib/commands/battery.js +27 -28
  112. package/lib/commands/element.js +231 -134
  113. package/lib/commands/find.js +40 -21
  114. package/lib/commands/general.js +271 -336
  115. package/lib/commands/gestures.js +252 -366
  116. package/lib/commands/index.js +11 -31
  117. package/lib/commands/mixins.ts +167 -0
  118. package/lib/commands/screenshot.js +80 -76
  119. package/lib/commands/touch.js +64 -31
  120. package/lib/commands/types.ts +473 -0
  121. package/lib/commands/viewport.js +43 -31
  122. package/lib/constraints.ts +53 -0
  123. package/lib/css-converter.js +9 -1
  124. package/lib/{driver.js → driver.ts} +383 -225
  125. package/lib/execute-method-map.ts +573 -0
  126. package/lib/method-map.ts +11 -0
  127. package/lib/types.ts +59 -0
  128. package/lib/uiautomator2.js +21 -2
  129. package/lib/utils.js +2 -2
  130. package/npm-shrinkwrap.json +396 -528
  131. package/package.json +96 -70
  132. package/build/lib/desired-caps.js +0 -72
  133. package/build/lib/desired-caps.js.map +0 -1
  134. package/lib/desired-caps.js +0 -70
  135. package/lib/method-map.js +0 -11
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [2.30.0](https://github.com/appium/appium-uiautomator2-driver/compare/v2.29.11...v2.30.0) (2023-10-13)
2
+
3
+
4
+ ### Features
5
+
6
+ * add all the types ([#635](https://github.com/appium/appium-uiautomator2-driver/issues/635)) ([623f49b](https://github.com/appium/appium-uiautomator2-driver/commit/623f49ba363bcfd930021fb5fa7cfe030b5683fb))
7
+
8
+ ## [2.29.11](https://github.com/appium/appium-uiautomator2-driver/compare/v2.29.10...v2.29.11) (2023-10-08)
9
+
10
+
11
+ ### Miscellaneous Chores
12
+
13
+ * Bump appium-adb ([92e9884](https://github.com/appium/appium-uiautomator2-driver/commit/92e98841a2bb5c6dfd7924d55a82bb65194c8b11))
14
+
1
15
  ## [2.29.10](https://github.com/appium/appium-uiautomator2-driver/compare/v2.29.9...v2.29.10) (2023-09-24)
2
16
 
3
17
 
@@ -0,0 +1,4 @@
1
+ export { AndroidUiautomator2Driver };
2
+ export default AndroidUiautomator2Driver;
3
+ import { AndroidUiautomator2Driver } from './lib/driver';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":";;0CAIwC,cAAc"}
package/build/index.js CHANGED
@@ -1,17 +1,9 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "AndroidUiautomator2Driver", {
7
- enumerable: true,
8
- get: function () {
9
- return _driver.AndroidUiautomator2Driver;
10
- }
11
- });
12
- exports.default = void 0;
13
- require("source-map-support/register");
14
- var _driver = require("./lib/driver");
15
- var _default = _driver.AndroidUiautomator2Driver;
16
- exports.default = _default;
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZHJpdmVyIiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiQW5kcm9pZFVpYXV0b21hdG9yMkRyaXZlciIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1haW5cblxuaW1wb3J0IHsgQW5kcm9pZFVpYXV0b21hdG9yMkRyaXZlciB9IGZyb20gJy4vbGliL2RyaXZlcic7XG5cbmV4cG9ydCB7IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXIgfTtcbmV4cG9ydCBkZWZhdWx0IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFBeUQsSUFBQUMsUUFBQSxHQUcxQ0MsaUNBQXlCO0FBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUFBSCxRQUFBIn0=
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AndroidUiautomator2Driver = void 0;
4
+ const source_map_support_1 = require("source-map-support");
5
+ (0, source_map_support_1.install)();
6
+ const driver_1 = require("./lib/driver");
7
+ Object.defineProperty(exports, "AndroidUiautomator2Driver", { enumerable: true, get: function () { return driver_1.AndroidUiautomator2Driver; } });
8
+ exports.default = driver_1.AndroidUiautomator2Driver;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":";;;AAAA,2DAA2C;AAE3C,IAAA,4BAAO,GAAE,CAAC;AAEV,yCAAuD;AAE/C,0GAFA,kCAAyB,OAEA;AACjC,kBAAe,kCAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type UiAutomator2Server = import('../uiautomator2').UiAutomator2Server;
2
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../lib/commands/actions.js"],"names":[],"mappings":"iCA0Ha,OAAO,iBAAiB,EAAE,kBAAkB"}
@@ -1,67 +1,69 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.helpers = exports.default = exports.commands = void 0;
7
- require("source-map-support/register");
8
- let commands = {},
9
- helpers = {},
10
- extensions = {};
11
- exports.helpers = helpers;
12
- exports.commands = commands;
13
- commands.pressKeyCode = async function (keycode, metastate = null, flags = null) {
14
- return await this.uiautomator2.jwproxy.command('/appium/device/press_keycode', 'POST', {
15
- keycode,
16
- metastate,
17
- flags
18
- });
2
+ // @ts-check
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const mixins_1 = require("./mixins");
5
+ /**
6
+ * @type {import('./mixins').UIA2ActionsMixin}
7
+ * @satisfies {import('@appium/types').ExternalDriver}
8
+ */
9
+ const ActionsMixin = {
10
+ async pressKeyCode(keycode, metastate, flags) {
11
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/device/press_keycode', 'POST', {
12
+ keycode,
13
+ metastate,
14
+ flags,
15
+ });
16
+ },
17
+ async longPressKeyCode(keycode, metastate, flags) {
18
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/device/long_press_keycode', 'POST', {
19
+ keycode,
20
+ metastate,
21
+ flags,
22
+ });
23
+ },
24
+ async doSwipe(swipeOpts) {
25
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command(`/touch/perform`, 'POST', swipeOpts);
26
+ },
27
+ async doDrag(dragOpts) {
28
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command(`/touch/drag`, 'POST', dragOpts);
29
+ },
30
+ async getOrientation() {
31
+ return /** @type {import('@appium/types').Orientation} */ (await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command(`/orientation`, 'GET', {}));
32
+ },
33
+ async setOrientation(orientation) {
34
+ orientation = /** @type {import('@appium/types').Orientation} */ (orientation.toUpperCase());
35
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command(`/orientation`, 'POST', { orientation });
36
+ },
37
+ async mobilePressKey(opts) {
38
+ const { keycode, metastate, flags, isLongPress = false } = opts;
39
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command(`/appium/device/${isLongPress ? 'long_' : ''}press_keycode`, 'POST', {
40
+ keycode,
41
+ metastate,
42
+ flags,
43
+ });
44
+ },
45
+ /**
46
+ * See https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-scheduleaction
47
+ * @param {Record<string, any>} opts
48
+ */
49
+ async mobileScheduleAction(opts = {}) {
50
+ return await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/schedule_action', 'POST', opts);
51
+ },
52
+ /**
53
+ * @see https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-getactionhistory
54
+ */
55
+ async mobileGetActionHistory(opts) {
56
+ return /** @type {import('./types').ActionResult} */ (await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/action_history', 'POST', opts ?? {}));
57
+ },
58
+ /**
59
+ * @see https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-unscheduleaction
60
+ */
61
+ async mobileUnscheduleAction(opts) {
62
+ return await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/unschedule_action', 'POST', opts ?? {});
63
+ },
19
64
  };
20
- commands.longPressKeyCode = async function (keycode, metastate = null, flags = null) {
21
- return await this.uiautomator2.jwproxy.command('/appium/device/long_press_keycode', 'POST', {
22
- keycode,
23
- metastate,
24
- flags
25
- });
26
- };
27
- commands.doSwipe = async function (swipeOpts) {
28
- return await this.uiautomator2.jwproxy.command(`/touch/perform`, 'POST', swipeOpts);
29
- };
30
- commands.doDrag = async function (dragOpts) {
31
- return await this.uiautomator2.jwproxy.command(`/touch/drag`, 'POST', dragOpts);
32
- };
33
- commands.getOrientation = async function () {
34
- return await this.uiautomator2.jwproxy.command(`/orientation`, 'GET', {});
35
- };
36
- commands.setOrientation = async function (orientation) {
37
- orientation = orientation.toUpperCase();
38
- return await this.uiautomator2.jwproxy.command(`/orientation`, 'POST', {
39
- orientation
40
- });
41
- };
42
- commands.mobilePressKey = async function mobilePressKey(opts = {}) {
43
- const {
44
- keycode,
45
- metastate,
46
- flags,
47
- isLongPress = false
48
- } = opts;
49
- return await this.uiautomator2.jwproxy.command(`/appium/device/${isLongPress ? 'long_' : ''}press_keycode`, 'POST', {
50
- keycode,
51
- metastate,
52
- flags
53
- });
54
- };
55
- commands.mobileScheduleAction = async function mobileScheduleAction(opts = {}) {
56
- return await this.uiautomator2.jwproxy.command('/appium/schedule_action', 'POST', opts);
57
- };
58
- commands.mobileGetActionHistory = async function mobileGetActionHistory(opts) {
59
- return await this.uiautomator2.jwproxy.command('/appium/action_history', 'POST', opts ?? {});
60
- };
61
- commands.mobileUnscheduleAction = async function mobileUnscheduleAction(opts) {
62
- return await this.uiautomator2.jwproxy.command('/appium/unschedule_action', 'POST', opts ?? {});
63
- };
64
- Object.assign(extensions, commands, helpers);
65
- var _default = extensions;
66
- exports.default = _default;
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZXhwb3J0cyIsInByZXNzS2V5Q29kZSIsImtleWNvZGUiLCJtZXRhc3RhdGUiLCJmbGFncyIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwibG9uZ1ByZXNzS2V5Q29kZSIsImRvU3dpcGUiLCJzd2lwZU9wdHMiLCJkb0RyYWciLCJkcmFnT3B0cyIsImdldE9yaWVudGF0aW9uIiwic2V0T3JpZW50YXRpb24iLCJvcmllbnRhdGlvbiIsInRvVXBwZXJDYXNlIiwibW9iaWxlUHJlc3NLZXkiLCJvcHRzIiwiaXNMb25nUHJlc3MiLCJtb2JpbGVTY2hlZHVsZUFjdGlvbiIsIm1vYmlsZUdldEFjdGlvbkhpc3RvcnkiLCJtb2JpbGVVbnNjaGVkdWxlQWN0aW9uIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2FjdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMucHJlc3NLZXlDb2RlID0gYXN5bmMgZnVuY3Rpb24gKGtleWNvZGUsIG1ldGFzdGF0ZSA9IG51bGwsIGZsYWdzID0gbnVsbCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9wcmVzc19rZXljb2RlJywgJ1BPU1QnLCB7XG4gICAga2V5Y29kZSxcbiAgICBtZXRhc3RhdGUsXG4gICAgZmxhZ3MsXG4gIH0pO1xufTtcblxuY29tbWFuZHMubG9uZ1ByZXNzS2V5Q29kZSA9IGFzeW5jIGZ1bmN0aW9uIChrZXljb2RlLCBtZXRhc3RhdGUgPSBudWxsLCBmbGFncyA9IG51bGwpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvbG9uZ19wcmVzc19rZXljb2RlJywgJ1BPU1QnLCB7XG4gICAga2V5Y29kZSxcbiAgICBtZXRhc3RhdGUsXG4gICAgZmxhZ3NcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5kb1N3aXBlID0gYXN5bmMgZnVuY3Rpb24gKHN3aXBlT3B0cykge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvdG91Y2gvcGVyZm9ybWAsICdQT1NUJywgc3dpcGVPcHRzKTtcbn07XG5cbmNvbW1hbmRzLmRvRHJhZyA9IGFzeW5jIGZ1bmN0aW9uIChkcmFnT3B0cykge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvdG91Y2gvZHJhZ2AsICdQT1NUJywgZHJhZ09wdHMpO1xufTtcblxuY29tbWFuZHMuZ2V0T3JpZW50YXRpb24gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9vcmllbnRhdGlvbmAsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5zZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIChvcmllbnRhdGlvbikge1xuICBvcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uLnRvVXBwZXJDYXNlKCk7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9vcmllbnRhdGlvbmAsICdQT1NUJywge29yaWVudGF0aW9ufSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFByZXNzS2V5T3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGtleWNvZGUgQSB2YWxpZCBBbmRyb2lkIGtleSBjb2RlLiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvdmlldy9LZXlFdmVudFxuICogZm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBrZXkgY29kZXNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyP30gbWV0YXN0YXRlIEFuIGludGVnZXIgaW4gd2hpY2ggZWFjaCBiaXQgc2V0IHRvIDEgcmVwcmVzZW50cyBhIHByZXNzZWQgbWV0YSBrZXkuIFNlZVxuICogaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvdmlldy9LZXlFdmVudCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHByb3BlcnR5IHtzdHJpbmc/fSBmbGFncyBGbGFncyBmb3IgdGhlIHBhcnRpY3VsYXIga2V5IGV2ZW50LiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL3ZpZXcvS2V5RXZlbnQgZm9yIG1vcmUgZGV0YWlscy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNMb25nUHJlc3MgW2ZhbHNlXSBXaGV0aGVyIHRvIGVtdWxhdGUgbG9uZyBrZXkgcHJlc3NcbiovXG5cbi8qKlxuICogRW11bGF0ZXMgc2luZ2xlIGtleSBwcmVzcyBvZiB0aGUga2V5IHdpdGggdGhlIGdpdmVuIGNvZGUuXG4gKlxuICogQHBhcmFtIHtQcmVzc0tleU9wdGlvbnN9IG9wdHNcbiAqL1xuY29tbWFuZHMubW9iaWxlUHJlc3NLZXkgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVQcmVzc0tleShvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIGtleWNvZGUsXG4gICAgbWV0YXN0YXRlLFxuICAgIGZsYWdzLFxuICAgIGlzTG9uZ1ByZXNzID0gZmFsc2UsXG4gIH0gPSBvcHRzO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoXG4gICAgYC9hcHBpdW0vZGV2aWNlLyR7aXNMb25nUHJlc3MgPyAnbG9uZ18nIDogJyd9cHJlc3Nfa2V5Y29kZWAsXG4gICAgJ1BPU1QnLCB7XG4gICAgICBrZXljb2RlLFxuICAgICAgbWV0YXN0YXRlLFxuICAgICAgZmxhZ3NcbiAgICB9XG4gICk7XG59O1xuXG4vKipcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyL2Jsb2IvbWFzdGVyL2RvY3Mvc2NoZWR1bGVkLWFjdGlvbnMubWQjbW9iaWxlLXNjaGVkdWxlYWN0aW9uXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9wdHNcbiAqL1xuY29tbWFuZHMubW9iaWxlU2NoZWR1bGVBY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTY2hlZHVsZUFjdGlvbiAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vc2NoZWR1bGVfYWN0aW9uJywgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQWN0aW9uUmVzdWx0XG4gKiBAcHJvcGVydHkge251bWJlcn0gcmVwZWF0c1xuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBhbnk+W11bXX1cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFjdGlvbkFyZ3NcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lXG4gKi9cblxuLyoqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlci9ibG9iL21hc3Rlci9kb2NzL3NjaGVkdWxlZC1hY3Rpb25zLm1kI21vYmlsZS1nZXRhY3Rpb25oaXN0b3J5XG4gKiBAcGFyYW0ge0FjdGlvbkFyZ3N9IG9wdHNcbiAqIEByZXR1cm5zIHtQcm9taXNlPEFjdGlvblJlc3VsdD59XG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldEFjdGlvbkhpc3RvcnkgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRBY3Rpb25IaXN0b3J5IChvcHRzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vYWN0aW9uX2hpc3RvcnknLCAnUE9TVCcsIG9wdHMgPz8ge30pO1xufTtcblxuLyoqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlci9ibG9iL21hc3Rlci9kb2NzL3NjaGVkdWxlZC1hY3Rpb25zLm1kI21vYmlsZS11bnNjaGVkdWxlYWN0aW9uXG4gKiBAcGFyYW0ge0FjdGlvbkFyZ3N9IG9wdHNcbiAqL1xuY29tbWFuZHMubW9iaWxlVW5zY2hlZHVsZUFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVuc2NoZWR1bGVBY3Rpb24gKG9wdHMpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS91bnNjaGVkdWxlX2FjdGlvbicsICdQT1NUJywgb3B0cyA/PyB7fSk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUEsSUFBSUEsUUFBUSxHQUFHLENBQUMsQ0FBQztFQUFFQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFBQ0MsT0FBQSxDQUFBRixPQUFBLEdBQUFBLE9BQUE7QUFBQUUsT0FBQSxDQUFBSCxRQUFBLEdBQUFBLFFBQUE7QUFFakRBLFFBQVEsQ0FBQ0ksWUFBWSxHQUFHLGdCQUFnQkMsT0FBTyxFQUFFQyxTQUFTLEdBQUcsSUFBSSxFQUFFQyxLQUFLLEdBQUcsSUFBSSxFQUFFO0VBQy9FLE9BQU8sTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsTUFBTSxFQUFFO0lBQ3JGTCxPQUFPO0lBQ1BDLFNBQVM7SUFDVEM7RUFDRixDQUFDLENBQUM7QUFDSixD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
65
+ (0, mixins_1.mixin)(ActionsMixin);
66
+ /**
67
+ * @typedef {import('../uiautomator2').UiAutomator2Server} UiAutomator2Server
68
+ */
69
+ //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["commands","helpers","extensions","exports","pressKeyCode","keycode","metastate","flags","uiautomator2","jwproxy","command","longPressKeyCode","doSwipe","swipeOpts","doDrag","dragOpts","getOrientation","setOrientation","orientation","toUpperCase","mobilePressKey","opts","isLongPress","mobileScheduleAction","mobileGetActionHistory","mobileUnscheduleAction","Object","assign","_default","default"],"sources":["../../../lib/commands/actions.js"],"sourcesContent":["\n\nlet commands = {}, helpers = {}, extensions = {};\n\ncommands.pressKeyCode = async function (keycode, metastate = null, flags = null) {\n return await this.uiautomator2.jwproxy.command('/appium/device/press_keycode', 'POST', {\n keycode,\n metastate,\n flags,\n });\n};\n\ncommands.longPressKeyCode = async function (keycode, metastate = null, flags = null) {\n return await this.uiautomator2.jwproxy.command('/appium/device/long_press_keycode', 'POST', {\n keycode,\n metastate,\n flags\n });\n};\n\ncommands.doSwipe = async function (swipeOpts) {\n return await this.uiautomator2.jwproxy.command(`/touch/perform`, 'POST', swipeOpts);\n};\n\ncommands.doDrag = async function (dragOpts) {\n return await this.uiautomator2.jwproxy.command(`/touch/drag`, 'POST', dragOpts);\n};\n\ncommands.getOrientation = async function () {\n return await this.uiautomator2.jwproxy.command(`/orientation`, 'GET', {});\n};\n\ncommands.setOrientation = async function (orientation) {\n orientation = orientation.toUpperCase();\n return await this.uiautomator2.jwproxy.command(`/orientation`, 'POST', {orientation});\n};\n\n/**\n * @typedef {Object} PressKeyOptions\n * @property {number} keycode A valid Android key code. See https://developer.android.com/reference/android/view/KeyEvent\n * for the list of available key codes\n * @property {number?} metastate An integer in which each bit set to 1 represents a pressed meta key. See\n * https://developer.android.com/reference/android/view/KeyEvent for more details.\n * @property {string?} flags Flags for the particular key event. See\n * https://developer.android.com/reference/android/view/KeyEvent for more details.\n * @property {boolean} isLongPress [false] Whether to emulate long key press\n*/\n\n/**\n * Emulates single key press of the key with the given code.\n *\n * @param {PressKeyOptions} opts\n */\ncommands.mobilePressKey = async function mobilePressKey(opts = {}) {\n const {\n keycode,\n metastate,\n flags,\n isLongPress = false,\n } = opts;\n\n return await this.uiautomator2.jwproxy.command(\n `/appium/device/${isLongPress ? 'long_' : ''}press_keycode`,\n 'POST', {\n keycode,\n metastate,\n flags\n }\n );\n};\n\n/**\n * See https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-scheduleaction\n * @param {Record<string, any>} opts\n */\ncommands.mobileScheduleAction = async function mobileScheduleAction (opts = {}) {\n return await this.uiautomator2.jwproxy.command('/appium/schedule_action', 'POST', opts);\n};\n\n/**\n * @typedef {Object} ActionResult\n * @property {number} repeats\n * @property {Record<string, any>[][]}\n */\n\n/**\n * @typedef {Object} ActionArgs\n * @property {string} name\n */\n\n/**\n * See https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-getactionhistory\n * @param {ActionArgs} opts\n * @returns {Promise<ActionResult>}\n */\ncommands.mobileGetActionHistory = async function mobileGetActionHistory (opts) {\n return await this.uiautomator2.jwproxy.command('/appium/action_history', 'POST', opts ?? {});\n};\n\n/**\n * See https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/scheduled-actions.md#mobile-unscheduleaction\n * @param {ActionArgs} opts\n */\ncommands.mobileUnscheduleAction = async function mobileUnscheduleAction (opts) {\n return await this.uiautomator2.jwproxy.command('/appium/unschedule_action', 'POST', opts ?? {});\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../lib/commands/actions.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type UiAutomator2Server = import('../uiautomator2').UiAutomator2Server;
2
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../lib/commands/alert.js"],"names":[],"mappings":"iCA2Ca,OAAO,iBAAiB,EAAE,kBAAkB"}
@@ -1,31 +1,30 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.helpers = exports.default = exports.commands = void 0;
7
- require("source-map-support/register");
8
- let commands = {},
9
- helpers = {},
10
- extensions = {};
11
- exports.helpers = helpers;
12
- exports.commands = commands;
13
- commands.getAlertText = async function () {
14
- return await this.uiautomator2.jwproxy.command('/alert/text', 'GET', {});
2
+ // @ts-check
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const mixins_1 = require("./mixins");
5
+ /**
6
+ * @type {import('./mixins').UIA2AlertMixin}
7
+ * @satisfies {import('@appium/types').ExternalDriver}
8
+ */
9
+ const AlertMixin = {
10
+ async getAlertText() {
11
+ return String(await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/alert/text', 'GET', {}));
12
+ },
13
+ async mobileAcceptAlert(opts = {}) {
14
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/alert/accept', 'POST', opts);
15
+ },
16
+ async postAcceptAlert() {
17
+ await this.mobileAcceptAlert();
18
+ },
19
+ async mobileDismissAlert(opts = {}) {
20
+ await /** @type {UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/alert/dismiss', 'POST', opts);
21
+ },
22
+ async postDismissAlert() {
23
+ await this.mobileDismissAlert();
24
+ },
15
25
  };
16
- commands.mobileAcceptAlert = async function (opts = {}) {
17
- return await this.uiautomator2.jwproxy.command('/alert/accept', 'POST', opts);
18
- };
19
- commands.postAcceptAlert = async function () {
20
- return await this.mobileAcceptAlert();
21
- };
22
- commands.mobileDismissAlert = async function (opts = {}) {
23
- return await this.uiautomator2.jwproxy.command('/alert/dismiss', 'POST', opts);
24
- };
25
- commands.postDismissAlert = async function () {
26
- return await this.mobileDismissAlert();
27
- };
28
- Object.assign(extensions, commands, helpers);
29
- var _default = extensions;
30
- exports.default = _default;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZXhwb3J0cyIsImdldEFsZXJ0VGV4dCIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlQWNjZXB0QWxlcnQiLCJvcHRzIiwicG9zdEFjY2VwdEFsZXJ0IiwibW9iaWxlRGlzbWlzc0FsZXJ0IiwicG9zdERpc21pc3NBbGVydCIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZhdWx0IiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9hbGVydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmNvbW1hbmRzLmdldEFsZXJ0VGV4dCA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FsZXJ0L3RleHQnLCAnR0VUJywge30pO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBY2NlcHRBbGVydE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gYnV0dG9uTGFiZWwgLSBUaGUgbmFtZSBvZiB0aGUgYnV0dG9uIHRvIGNsaWNrIGluIG9yZGVyIHRvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0IHRoZSBhbGVydC4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiB0aGUgc2NyaXB0IHdpbGwgdHJ5IHRvIGRldGVjdCB0aGUgYnV0dG9uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7QWNjZXB0QWxlcnRPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtJbnZhbGlkRWxlbWVudFN0YXRlRXJyb3J9IElmIG5vIG1hdGNoaW5nIGJ1dHRvbiwgdGhhdCBjYW4gYWNjZXB0IHRoZSBhbGVydCxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGJlIGZvdW5kXG4gKiBAdGhyb3dzIHtOb0FsZXJ0T3BlbkVycm9yfSBJZiBubyBhbGVydCBpcyBwcmVzZW50XG4gKi9cbmNvbW1hbmRzLm1vYmlsZUFjY2VwdEFsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYWxlcnQvYWNjZXB0JywgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLnBvc3RBY2NlcHRBbGVydCA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlQWNjZXB0QWxlcnQoKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGlzbWlzc0FsZXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBidXR0b25MYWJlbCAtIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gdG8gY2xpY2sgaW4gb3JkZXIgdG9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNtaXNzIHRoZSBhbGVydC4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiB0aGUgc2NyaXB0IHdpbGwgdHJ5IHRvIGRldGVjdCB0aGUgYnV0dG9uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7RGlzbWlzc0FsZXJ0T3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7SW52YWxpZEVsZW1lbnRTdGF0ZUVycm9yfSBJZiBubyBtYXRjaGluZyBidXR0b24sIHRoYXQgY2FuIGRpc21pc3MgdGhlIGFsZXJ0LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgZm91bmRcbiAqIEB0aHJvd3Mge05vQWxlcnRPcGVuRXJyb3J9IElmIG5vIGFsZXJ0IGlzIHByZXNlbnRcbiAqL1xuY29tbWFuZHMubW9iaWxlRGlzbWlzc0FsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYWxlcnQvZGlzbWlzcycsICdQT1NUJywgb3B0cyk7XG59O1xuXG5jb21tYW5kcy5wb3N0RGlzbWlzc0FsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVEaXNtaXNzQWxlcnQoKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFJQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFBRUMsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUFDQyxPQUFBLENBQUFGLE9BQUEsR0FBQUEsT0FBQTtBQUFBRSxPQUFBLENBQUFILFFBQUEsR0FBQUEsUUFBQTtBQUVqREEsUUFBUSxDQUFDSSxZQUFZLEdBQUcsa0JBQWtCO0VBQ3hDLE9BQU8sTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBZ0JEUCxRQUFRLENBQUNRLGlCQUFpQixHQUFHLGdCQUFnQkMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ3RELE9BQU8sTUFBTSxJQUFJLENBQUNKLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRUUsSUFBSSxDQUFDO0FBQy9FLENBQUM7QUFFRFQsUUFBUSxDQUFDVSxlQUFlLEdBQUcsa0JBQWtCO0VBQzNDLE9BQU8sTUFBTSxJQUFJLENBQUNGLGlCQUFpQixDQUFDLENBQUM7QUFDdkMsQ0FBQztBQWdCRFIsUUFBUSxDQUFDVyxrQkFBa0IsR0FBRyxnQkFBZ0JGLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDSixZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRUUsSUFBSSxDQUFDO0FBQ2hGLENBQUM7QUFFRFQsUUFBUSxDQUFDWSxnQkFBZ0IsR0FBRyxrQkFBa0I7RUFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQ0Qsa0JBQWtCLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRURFLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDWixVQUFVLEVBQUVGLFFBQVEsRUFBRUMsT0FBTyxDQUFDO0FBQUMsSUFBQWMsUUFBQSxHQUU5QmIsVUFBVTtBQUFBQyxPQUFBLENBQUFhLE9BQUEsR0FBQUQsUUFBQSJ9
26
+ (0, mixins_1.mixin)(AlertMixin);
27
+ /**
28
+ * @typedef {import('../uiautomator2').UiAutomator2Server} UiAutomator2Server
29
+ */
30
+ //# sourceMappingURL=alert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":["commands","helpers","extensions","exports","getAlertText","uiautomator2","jwproxy","command","mobileAcceptAlert","opts","postAcceptAlert","mobileDismissAlert","postDismissAlert","Object","assign","_default","default"],"sources":["../../../lib/commands/alert.js"],"sourcesContent":["let commands = {}, helpers = {}, extensions = {};\n\ncommands.getAlertText = async function () {\n return await this.uiautomator2.jwproxy.command('/alert/text', 'GET', {});\n};\n\n/**\n * @typedef {Object} AcceptAlertOptions\n * @property {?string} buttonLabel - The name of the button to click in order to\n * accept the alert. If the name is not provided\n * then the script will try to detect the button\n * automatically.\n */\n\n/**\n * @param {AcceptAlertOptions} opts\n * @throws {InvalidElementStateError} If no matching button, that can accept the alert,\n * can be found\n * @throws {NoAlertOpenError} If no alert is present\n */\ncommands.mobileAcceptAlert = async function (opts = {}) {\n return await this.uiautomator2.jwproxy.command('/alert/accept', 'POST', opts);\n};\n\ncommands.postAcceptAlert = async function () {\n return await this.mobileAcceptAlert();\n};\n\n/**\n * @typedef {Object} DismissAlertOptions\n * @property {?string} buttonLabel - The name of the button to click in order to\n * dismiss the alert. If the name is not provided\n * then the script will try to detect the button\n * automatically.\n */\n\n/**\n * @param {DismissAlertOptions} opts\n * @throws {InvalidElementStateError} If no matching button, that can dismiss the alert,\n * can be found\n * @throws {NoAlertOpenError} If no alert is present\n */\ncommands.mobileDismissAlert = async function (opts = {}) {\n return await this.uiautomator2.jwproxy.command('/alert/dismiss', 'POST', opts);\n};\n\ncommands.postDismissAlert = async function () {\n return await this.mobileDismissAlert();\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":";;;;;;;AAAA,IAAIA,QAAQ,GAAG,CAAC,CAAC;EAAEC,OAAO,GAAG,CAAC,CAAC;EAAEC,UAAU,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAF,OAAA,GAAAA,OAAA;AAAAE,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAEjDA,QAAQ,CAACI,YAAY,GAAG,kBAAkB;EACxC,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAgBDP,QAAQ,CAACQ,iBAAiB,GAAG,gBAAgBC,IAAI,GAAG,CAAC,CAAC,EAAE;EACtD,OAAO,MAAM,IAAI,CAACJ,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAEE,IAAI,CAAC;AAC/E,CAAC;AAEDT,QAAQ,CAACU,eAAe,GAAG,kBAAkB;EAC3C,OAAO,MAAM,IAAI,CAACF,iBAAiB,CAAC,CAAC;AACvC,CAAC;AAgBDR,QAAQ,CAACW,kBAAkB,GAAG,gBAAgBF,IAAI,GAAG,CAAC,CAAC,EAAE;EACvD,OAAO,MAAM,IAAI,CAACJ,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAEE,IAAI,CAAC;AAChF,CAAC;AAEDT,QAAQ,CAACY,gBAAgB,GAAG,kBAAkB;EAC5C,OAAO,MAAM,IAAI,CAACD,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAEDE,MAAM,CAACC,MAAM,CAACZ,UAAU,EAAEF,QAAQ,EAAEC,OAAO,CAAC;AAAC,IAAAc,QAAA,GAE9Bb,UAAU;AAAAC,OAAA,CAAAa,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../lib/commands/alert.js"],"names":[],"mappings":";AAAA,YAAY;;AAEZ,qCAA+B;AAE/B;;;GAGG;AACH,MAAM,UAAU,GAAG;IACjB,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,CACX,MAAM,iCAAiC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CACzE,aAAa,EACb,KAAK,EACL,EAAE,CACH,CACF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,EAAE;QAC/B,MAAM,iCAAiC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CACzE,eAAe,EACf,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE;QAChC,MAAM,iCAAiC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,CACzE,gBAAgB,EAChB,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;CACF,CAAC;AAEF,IAAA,cAAK,EAAC,UAAU,CAAC,CAAC;AAElB;;GAEG"}
@@ -0,0 +1,3 @@
1
+ export type ADB = import('appium-adb').ADB;
2
+ export type StringRecord = import('@appium/types').StringRecord;
3
+ //# sourceMappingURL=app-strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-strings.d.ts","sourceRoot":"","sources":["../../../lib/commands/app-strings.js"],"names":[],"mappings":"kBA8Fa,OAAO,YAAY,EAAE,GAAG;2BACxB,OAAO,eAAe,EAAE,YAAY"}
@@ -1,61 +1,89 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- require("source-map-support/register");
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
- var _support = require("appium/support");
11
- const commands = {};
12
- commands.getStrings = async function (language) {
13
- if (!language) {
14
- language = await this.adb.getDeviceLanguage();
15
- this.log.info(`No language specified, returning strings for: ${language}`);
16
- }
17
- const preprocessStringsMap = function (mapping) {
18
- const result = {};
19
- for (const [key, value] of _lodash.default.toPairs(mapping)) {
20
- result[key] = _lodash.default.isString(value) ? value : JSON.stringify(value);
21
- }
22
- return result;
23
- };
24
- if (this.apkStrings[language]) {
25
- return preprocessStringsMap(this.apkStrings[language]);
26
- }
27
- if (!this.opts.app && !this.opts.appPackage) {
28
- this.log.errorAndThrow("One of 'app' or 'appPackage' capabilities should must be specified");
29
- }
30
- let app = this.opts.app;
31
- const tmpRoot = await _support.tempDir.openDir();
32
- try {
33
- if (!app) {
34
- try {
35
- app = await this.adb.pullApk(this.opts.appPackage, tmpRoot);
36
- } catch (err) {
37
- this.log.errorAndThrow(`Failed to pull an apk from '${this.opts.appPackage}'. Original error: ${err.message}`);
38
- }
39
- }
40
- if (!(await _support.fs.exists(app))) {
41
- this.log.errorAndThrow(`The app at '${app}' does not exist`);
42
- }
43
- try {
44
- const {
45
- apkStrings
46
- } = await this.adb.extractStringsFromApk(app, language, tmpRoot);
47
- this.apkStrings[language] = apkStrings;
48
- return preprocessStringsMap(apkStrings);
49
- } catch (err) {
50
- this.log.errorAndThrow(`Cannot extract strings from '${app}'. Original error: ${err.message}`);
51
- }
52
- } finally {
53
- await _support.fs.rimraf(tmpRoot);
54
- }
2
+ // @ts-check
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
5
  };
56
- commands.mobileGetAppStrings = async function mobileGetAppStrings(opts = {}) {
57
- return await this.getStrings(opts.language);
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const mixins_1 = require("./mixins");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const support_1 = require("appium/support");
10
+ /**
11
+ * @type {import('./mixins').UIA2AppStringsMixin}
12
+ * @satisfies {import('@appium/types').ExternalDriver}
13
+ */
14
+ const AppStringsMixin = {
15
+ async getStrings(language) {
16
+ const adb = /** @type {ADB} */ (this.adb);
17
+ if (!language) {
18
+ language = await adb.getDeviceLanguage();
19
+ this.log.info(`No language specified, returning strings for: ${language}`);
20
+ }
21
+ /**
22
+ * Clients require the resulting mapping to have both keys
23
+ * and values of type string
24
+ * @param {StringRecord} mapping
25
+ */
26
+ const preprocessStringsMap = function (mapping) {
27
+ /** @type {StringRecord} */
28
+ const result = {};
29
+ for (const [key, value] of lodash_1.default.toPairs(mapping)) {
30
+ result[key] = lodash_1.default.isString(value) ? value : JSON.stringify(value);
31
+ }
32
+ return result;
33
+ };
34
+ if (this.apkStrings[language]) {
35
+ // Return cached strings
36
+ return preprocessStringsMap(this.apkStrings[language]);
37
+ }
38
+ if (!this.opts.app && !this.opts.appPackage) {
39
+ this.log.errorAndThrow("One of 'app' or 'appPackage' capabilities should must be specified");
40
+ throw new Error(); // unreachable
41
+ }
42
+ let app = this.opts.app;
43
+ const tmpRoot = await support_1.tempDir.openDir();
44
+ try {
45
+ if (!app) {
46
+ try {
47
+ app = await adb.pullApk(/** @type {string} */ (this.opts.appPackage), tmpRoot);
48
+ }
49
+ catch (err) {
50
+ this.log.errorAndThrow(`Failed to pull an apk from '${this.opts.appPackage}'. Original error: ${
51
+ /** @type {Error} */ (err).message}`);
52
+ throw new Error(); // unreachable
53
+ }
54
+ }
55
+ if (!(await support_1.fs.exists(app))) {
56
+ this.log.errorAndThrow(`The app at '${app}' does not exist`);
57
+ throw new Error(); // unreachable
58
+ }
59
+ try {
60
+ const { apkStrings } = await adb.extractStringsFromApk(app, language, tmpRoot);
61
+ this.apkStrings[language] = apkStrings;
62
+ return preprocessStringsMap(apkStrings);
63
+ }
64
+ catch (err) {
65
+ this.log.errorAndThrow(`Cannot extract strings from '${app}'. Original error: ${
66
+ /** @type {Error} */ (err).message}`);
67
+ throw new Error(); // unreachable
68
+ }
69
+ }
70
+ finally {
71
+ await support_1.fs.rimraf(tmpRoot);
72
+ }
73
+ },
74
+ /**
75
+ * Retrives app strings from its resources for the given language
76
+ * or the default device language.
77
+ *
78
+ * @returns App strings map
79
+ */
80
+ async mobileGetAppStrings(opts) {
81
+ return await this.getStrings(opts?.language);
82
+ },
58
83
  };
59
- var _default = commands;
60
- exports.default = _default;
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc3VwcG9ydCIsImNvbW1hbmRzIiwiZ2V0U3RyaW5ncyIsImxhbmd1YWdlIiwiYWRiIiwiZ2V0RGV2aWNlTGFuZ3VhZ2UiLCJsb2ciLCJpbmZvIiwicHJlcHJvY2Vzc1N0cmluZ3NNYXAiLCJtYXBwaW5nIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJfIiwidG9QYWlycyIsImlzU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImFwa1N0cmluZ3MiLCJvcHRzIiwiYXBwIiwiYXBwUGFja2FnZSIsImVycm9yQW5kVGhyb3ciLCJ0bXBSb290IiwidGVtcERpciIsIm9wZW5EaXIiLCJwdWxsQXBrIiwiZXJyIiwibWVzc2FnZSIsImZzIiwiZXhpc3RzIiwiZXh0cmFjdFN0cmluZ3NGcm9tQXBrIiwicmltcmFmIiwibW9iaWxlR2V0QXBwU3RyaW5ncyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvYXBwLXN0cmluZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGZzLCB0ZW1wRGlyIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5jb21tYW5kcy5nZXRTdHJpbmdzID0gYXN5bmMgZnVuY3Rpb24gKGxhbmd1YWdlKSB7XG4gIGlmICghbGFuZ3VhZ2UpIHtcbiAgICBsYW5ndWFnZSA9IGF3YWl0IHRoaXMuYWRiLmdldERldmljZUxhbmd1YWdlKCk7XG4gICAgdGhpcy5sb2cuaW5mbyhgTm8gbGFuZ3VhZ2Ugc3BlY2lmaWVkLCByZXR1cm5pbmcgc3RyaW5ncyBmb3I6ICR7bGFuZ3VhZ2V9YCk7XG4gIH1cblxuICAvLyBDbGllbnRzIHJlcXVpcmUgdGhlIHJlc3VsdGluZyBtYXBwaW5nIHRvIGhhdmUgYm90aCBrZXlzXG4gIC8vIGFuZCB2YWx1ZXMgb2YgdHlwZSBzdHJpbmdcbiAgY29uc3QgcHJlcHJvY2Vzc1N0cmluZ3NNYXAgPSBmdW5jdGlvbiAobWFwcGluZykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhtYXBwaW5nKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSBfLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGlmICh0aGlzLmFwa1N0cmluZ3NbbGFuZ3VhZ2VdKSB7XG4gICAgLy8gUmV0dXJuIGNhY2hlZCBzdHJpbmdzXG4gICAgcmV0dXJuIHByZXByb2Nlc3NTdHJpbmdzTWFwKHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0pO1xuICB9XG5cbiAgaWYgKCF0aGlzLm9wdHMuYXBwICYmICF0aGlzLm9wdHMuYXBwUGFja2FnZSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coXCJPbmUgb2YgJ2FwcCcgb3IgJ2FwcFBhY2thZ2UnIGNhcGFiaWxpdGllcyBzaG91bGQgbXVzdCBiZSBzcGVjaWZpZWRcIik7XG4gIH1cblxuICBsZXQgYXBwID0gdGhpcy5vcHRzLmFwcDtcbiAgY29uc3QgdG1wUm9vdCA9IGF3YWl0IHRlbXBEaXIub3BlbkRpcigpO1xuICB0cnkge1xuICAgIGlmICghYXBwKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhcHAgPSBhd2FpdCB0aGlzLmFkYi5wdWxsQXBrKHRoaXMub3B0cy5hcHBQYWNrYWdlLCB0bXBSb290KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBGYWlsZWQgdG8gcHVsbCBhbiBhcGsgZnJvbSAnJHt0aGlzLm9wdHMuYXBwUGFja2FnZX0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhhcHApKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgYXBwIGF0ICcke2FwcH0nIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHthcGtTdHJpbmdzfSA9IGF3YWl0IHRoaXMuYWRiLmV4dHJhY3RTdHJpbmdzRnJvbUFwayhhcHAsIGxhbmd1YWdlLCB0bXBSb290KTtcbiAgICAgIHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0gPSBhcGtTdHJpbmdzO1xuICAgICAgcmV0dXJuIHByZXByb2Nlc3NTdHJpbmdzTWFwKGFwa1N0cmluZ3MpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgQ2Fubm90IGV4dHJhY3Qgc3RyaW5ncyBmcm9tICcke2FwcH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZnMucmltcmFmKHRtcFJvb3QpO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEdldEFwcFN0cmluZ3NPcHRpb25zXG4gKiBAcHJvcGVydHkge3N0cmluZz99IGxhbmd1YWdlIFRoZSBsYW5ndWFnZSBhYmJyZXZpYXRpb24gdG8gZmV0Y2ggYXBwIHN0cmluZ3MgbWFwcGluZyBmb3IuIElmIG5vXG4gKiBsYW5ndWFnZSBpcyBwcm92aWRlZCB0aGVuIHN0cmluZ3MgZm9yIHRoZSBkZWZhdWx0IGxhbmd1YWdlIG9uIHRoZSBkZXZpY2UgdW5kZXIgdGVzdFxuICogd291bGQgYmUgcmV0dXJuZWQuIEV4YW1wbGVzOiBlbiwgZnJcbiAqL1xuXG4vKipcbiAqIFJldHJpdmVzIGFwcCBzdHJpbmdzIGZyb20gaXRzIHJlc291cmNlcyBmb3IgdGhlIGdpdmVuIGxhbmd1YWdlXG4gKiBvciB0aGUgZGVmYXVsdCBkZXZpY2UgbGFuZ3VhZ2UuXG4gKlxuICogQHBhcmFtIHtHZXRBcHBTdHJpbmdzT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge1Byb21pc2U8b2JqZWN0Pn0gQXBwIHN0cmluZ3MgbWFwXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldEFwcFN0cmluZ3MgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRBcHBTdHJpbmdzIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U3RyaW5ncyhvcHRzLmxhbmd1YWdlKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFFQSxNQUFNRSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRW5CQSxRQUFRLENBQUNDLFVBQVUsR0FBRyxnQkFBZ0JDLFFBQVEsRUFBRTtFQUM5QyxJQUFJLENBQUNBLFFBQVEsRUFBRTtJQUNiQSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0MsSUFBSSxDQUFFLGlEQUFnREosUUFBUyxFQUFDLENBQUM7RUFDNUU7RUFJQSxNQUFNSyxvQkFBb0IsR0FBRyxTQUFBQSxDQUFVQyxPQUFPLEVBQUU7SUFDOUMsTUFBTUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQixLQUFLLE1BQU0sQ0FBQ0MsR0FBRyxFQUFFQyxLQUFLLENBQUMsSUFBSUMsZUFBQyxDQUFDQyxPQUFPLENBQUNMLE9BQU8sQ0FBQyxFQUFFO01BQzdDQyxNQUFNLENBQUNDLEdBQUcsQ0FBQyxHQUFHRSxlQUFDLENBQUNFLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDLEdBQUdBLEtBQUssR0FBR0ksSUFBSSxDQUFDQyxTQUFTLENBQUNMLEtBQUssQ0FBQztJQUNqRTtJQUNBLE9BQU9GLE1BQU07RUFDZixDQUFDO0VBRUQsSUFBSSxJQUFJLENBQUNRLFVBQVUsQ0FBQ2YsUUFBUSxDQUFDLEVBQUU7SUFFN0IsT0FBT0ssb0JBQW9CLENBQUMsSUFBSSxDQUFDVSxVQUFVLENBQUNmLFFBQVEsQ0FBQyxDQUFDO0VBQ3hEO0VBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2dCLElBQUksQ0FBQ0MsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDRCxJQUFJLENBQUNFLFVBQVUsRUFBRTtJQUMzQyxJQUFJLENBQUNmLEdBQUcsQ0FBQ2dCLGFBQWEsQ0FBQyxvRUFBb0UsQ0FBQztFQUM5RjtFQUVBLElBQUlGLEdBQUcsR0FBRyxJQUFJLENBQUNELElBQUksQ0FBQ0MsR0FBRztFQUN2QixNQUFNRyxPQUFPLEdBQUcsTUFBTUMsZ0JBQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDdkMsSUFBSTtJQUNGLElBQUksQ0FBQ0wsR0FBRyxFQUFFO01BQ1IsSUFBSTtRQUNGQSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUNoQixHQUFHLENBQUNzQixPQUFPLENBQUMsSUFBSSxDQUFDUCxJQUFJLENBQUNFLFVBQVUsRUFBRUUsT0FBTyxDQUFDO01BQzdELENBQUMsQ0FBQyxPQUFPSSxHQUFHLEVBQUU7UUFDWixJQUFJLENBQUNyQixHQUFHLENBQUNnQixhQUFhLENBQUUsK0JBQThCLElBQUksQ0FBQ0gsSUFBSSxDQUFDRSxVQUFXLHNCQUFxQk0sR0FBRyxDQUFDQyxPQUFRLEVBQUMsQ0FBQztNQUNoSDtJQUNGO0lBRUEsSUFBSSxFQUFDLE1BQU1DLFdBQUUsQ0FBQ0MsTUFBTSxDQUFDVixHQUFHLENBQUMsR0FBRTtNQUN6QixJQUFJLENBQUNkLEdBQUcsQ0FBQ2dCLGFBQWEsQ0FBRSxlQUFjRixHQUFJLGtCQUFpQixDQUFDO0lBQzlEO0lBRUEsSUFBSTtNQUNGLE1BQU07UUFBQ0Y7TUFBVSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUNkLEdBQUcsQ0FBQzJCLHFCQUFxQixDQUFDWCxHQUFHLEVBQUVqQixRQUFRLEVBQUVvQixPQUFPLENBQUM7TUFDakYsSUFBSSxDQUFDTCxVQUFVLENBQUNmLFFBQVEsQ0FBQyxHQUFHZSxVQUFVO01BQ3RDLE9BQU9WLG9CQUFvQixDQUFDVSxVQUFVLENBQUM7SUFDekMsQ0FBQyxDQUFDLE9BQU9TLEdBQUcsRUFBRTtNQUNaLElBQUksQ0FBQ3JCLEdBQUcsQ0FBQ2dCLGFBQWEsQ0FBRSxnQ0FBK0JGLEdBQUksc0JBQXFCTyxHQUFHLENBQUNDLE9BQVEsRUFBQyxDQUFDO0lBQ2hHO0VBQ0YsQ0FBQyxTQUFTO0lBQ1IsTUFBTUMsV0FBRSxDQUFDRyxNQUFNLENBQUNULE9BQU8sQ0FBQztFQUMxQjtBQUNGLENBQUM7QUFnQkR0QixRQUFRLENBQUNnQyxtQkFBbUIsR0FBRyxlQUFlQSxtQkFBbUJBLENBQUVkLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUM1RSxPQUFPLE1BQU0sSUFBSSxDQUFDakIsVUFBVSxDQUFDaUIsSUFBSSxDQUFDaEIsUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFBQyxJQUFBK0IsUUFBQSxHQUVhakMsUUFBUTtBQUFBa0MsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
84
+ (0, mixins_1.mixin)(AppStringsMixin);
85
+ /**
86
+ * @typedef {import('appium-adb').ADB} ADB
87
+ * @typedef {import('@appium/types').StringRecord} StringRecord
88
+ */
89
+ //# sourceMappingURL=app-strings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-strings.js","names":["_lodash","_interopRequireDefault","require","_support","commands","getStrings","language","adb","getDeviceLanguage","log","info","preprocessStringsMap","mapping","result","key","value","_","toPairs","isString","JSON","stringify","apkStrings","opts","app","appPackage","errorAndThrow","tmpRoot","tempDir","openDir","pullApk","err","message","fs","exists","extractStringsFromApk","rimraf","mobileGetAppStrings","_default","exports","default"],"sources":["../../../lib/commands/app-strings.js"],"sourcesContent":["import _ from 'lodash';\nimport { fs, tempDir } from 'appium/support';\n\nconst commands = {};\n\ncommands.getStrings = async function (language) {\n if (!language) {\n language = await this.adb.getDeviceLanguage();\n this.log.info(`No language specified, returning strings for: ${language}`);\n }\n\n // Clients require the resulting mapping to have both keys\n // and values of type string\n const preprocessStringsMap = function (mapping) {\n const result = {};\n for (const [key, value] of _.toPairs(mapping)) {\n result[key] = _.isString(value) ? value : JSON.stringify(value);\n }\n return result;\n };\n\n if (this.apkStrings[language]) {\n // Return cached strings\n return preprocessStringsMap(this.apkStrings[language]);\n }\n\n if (!this.opts.app && !this.opts.appPackage) {\n this.log.errorAndThrow(\"One of 'app' or 'appPackage' capabilities should must be specified\");\n }\n\n let app = this.opts.app;\n const tmpRoot = await tempDir.openDir();\n try {\n if (!app) {\n try {\n app = await this.adb.pullApk(this.opts.appPackage, tmpRoot);\n } catch (err) {\n this.log.errorAndThrow(`Failed to pull an apk from '${this.opts.appPackage}'. Original error: ${err.message}`);\n }\n }\n\n if (!await fs.exists(app)) {\n this.log.errorAndThrow(`The app at '${app}' does not exist`);\n }\n\n try {\n const {apkStrings} = await this.adb.extractStringsFromApk(app, language, tmpRoot);\n this.apkStrings[language] = apkStrings;\n return preprocessStringsMap(apkStrings);\n } catch (err) {\n this.log.errorAndThrow(`Cannot extract strings from '${app}'. Original error: ${err.message}`);\n }\n } finally {\n await fs.rimraf(tmpRoot);\n }\n};\n\n/**\n * @typedef {Object} GetAppStringsOptions\n * @property {string?} language The language abbreviation to fetch app strings mapping for. If no\n * language is provided then strings for the default language on the device under test\n * would be returned. Examples: en, fr\n */\n\n/**\n * Retrives app strings from its resources for the given language\n * or the default device language.\n *\n * @param {GetAppStringsOptions} opts\n * @returns {Promise<object>} App strings map\n */\ncommands.mobileGetAppStrings = async function mobileGetAppStrings (opts = {}) {\n return await this.getStrings(opts.language);\n};\n\nexport default commands;"],"mappings":"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"}
1
+ {"version":3,"file":"app-strings.js","sourceRoot":"","sources":["../../../lib/commands/app-strings.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type BatteryInfo = import('./types').BatteryInfo;
2
+ //# sourceMappingURL=battery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"battery.d.ts","sourceRoot":"","sources":["../../../lib/commands/battery.js"],"names":[],"mappings":"0BA+Ba,OAAO,SAAS,EAAE,WAAW"}
@@ -1,20 +1,28 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.commands = void 0;
7
- require("source-map-support/register");
8
- let extensions = {},
9
- commands = {};
10
- exports.commands = commands;
11
- commands.mobileGetBatteryInfo = async function () {
12
- const result = await this.uiautomator2.jwproxy.command('/appium/device/battery_info', 'GET', {});
13
- result.state = result.status;
14
- delete result.status;
15
- return result;
2
+ // @ts-check
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const mixins_1 = require("./mixins");
5
+ /**
6
+ * @type {import('./mixins').UIA2BatteryMixin}
7
+ * @satisfies {import('@appium/types').ExternalDriver}
8
+ */
9
+ const BatteryMixin = {
10
+ /**
11
+ * Reads the battery information from the device under test.
12
+ *
13
+ * @returns The actual battery info
14
+ */
15
+ async mobileGetBatteryInfo() {
16
+ const result = /** @type {import('./types').MapKey<BatteryInfo, 'state', 'status'>} */ (await /** @type {import('../uiautomator2').UiAutomator2Server} */ (this.uiautomator2).jwproxy.command('/appium/device/battery_info', 'GET', {}));
17
+ const batteryInfo = /** @type {any} */ (result);
18
+ // Give it the same name as in iOS
19
+ batteryInfo.state = result.status;
20
+ delete batteryInfo.status;
21
+ return /** @type {BatteryInfo} */ (batteryInfo);
22
+ },
16
23
  };
17
- Object.assign(extensions, commands);
18
- var _default = extensions;
19
- exports.default = _default;
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJleHBvcnRzIiwibW9iaWxlR2V0QmF0dGVyeUluZm8iLCJyZXN1bHQiLCJ1aWF1dG9tYXRvcjIiLCJqd3Byb3h5IiwiY29tbWFuZCIsInN0YXRlIiwic3RhdHVzIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2JhdHRlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCYXR0ZXJ5SW5mb1xuICpcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsZXZlbCAtIEJhdHRlcnkgbGV2ZWwgaW4gcmFuZ2UgWzAuMCwgMS4wXSwgd2hlcmVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMCBtZWFucyAxMDAlIGNoYXJnZS5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSBpcyByZXR1cm5lZCBpZiB0aGUgYWN0dWFsIHZhbHVlIGNhbm5vdCBiZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cmlldmVkIGZyb20gdGhlIHN5c3RlbS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzdGF0ZSAtIEJhdHRlcnkgc3RhdGUuIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBwb3NzaWJsZTpcbiAqICAgQkFUVEVSWV9TVEFUVVNfVU5LTk9XTiA9IDFcbiAqICAgQkFUVEVSWV9TVEFUVVNfQ0hBUkdJTkcgPSAyXG4gKiAgIEJBVFRFUllfU1RBVFVTX0RJU0NIQVJHSU5HID0gM1xuICogICBCQVRURVJZX1NUQVRVU19OT1RfQ0hBUkdJTkcgPSA0XG4gKiAgIEJBVFRFUllfU1RBVFVTX0ZVTEwgPSA1XG4gKiAgIC0xIGlzIHJldHVybmVkIGlmIHRoZSBhY3R1YWwgdmFsdWUgY2Fubm90IGJlIHJldHJpZXZlZCBmcm9tIHRoZSBzeXN0ZW0uXG4gKi9cblxuLyoqXG4gKiBSZWFkcyB0aGUgYmF0dGVyeSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkZXZpY2UgdW5kZXIgdGVzdC5cbiAqXG4gKiBAcmV0dXJucyB7QmF0dGVyeUluZm99IFRoZSBhY3R1YWwgYmF0dGVyeSBpbmZvXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldEJhdHRlcnlJbmZvID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2JhdHRlcnlfaW5mbycsICdHRVQnLCB7fSk7XG4gIC8vIEdpdmUgaXQgdGhlIHNhbWUgbmFtZSBhcyBpbiBpT1NcbiAgcmVzdWx0LnN0YXRlID0gcmVzdWx0LnN0YXR1cztcbiAgZGVsZXRlIHJlc3VsdC5zdGF0dXM7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzKTtcbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBSUEsVUFBVSxHQUFHLENBQUMsQ0FBQztFQUFFQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQUNDLE9BQUEsQ0FBQUQsUUFBQSxHQUFBQSxRQUFBO0FBdUJuQ0EsUUFBUSxDQUFDRSxvQkFBb0IsR0FBRyxrQkFBa0I7RUFDaEQsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDQyxZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztFQUVoR0gsTUFBTSxDQUFDSSxLQUFLLEdBQUdKLE1BQU0sQ0FBQ0ssTUFBTTtFQUM1QixPQUFPTCxNQUFNLENBQUNLLE1BQU07RUFDcEIsT0FBT0wsTUFBTTtBQUNmLENBQUM7QUFFRE0sTUFBTSxDQUFDQyxNQUFNLENBQUNYLFVBQVUsRUFBRUMsUUFBUSxDQUFDO0FBQUMsSUFBQVcsUUFBQSxHQUVyQlosVUFBVTtBQUFBRSxPQUFBLENBQUFXLE9BQUEsR0FBQUQsUUFBQSJ9
24
+ (0, mixins_1.mixin)(BatteryMixin);
25
+ /**
26
+ * @typedef {import('./types').BatteryInfo} BatteryInfo
27
+ */
28
+ //# sourceMappingURL=battery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"battery.js","names":["extensions","commands","exports","mobileGetBatteryInfo","result","uiautomator2","jwproxy","command","state","status","Object","assign","_default","default"],"sources":["../../../lib/commands/battery.js"],"sourcesContent":["let extensions = {}, commands = {};\n\n/**\n * @typedef {Object} BatteryInfo\n *\n * @property {number} level - Battery level in range [0.0, 1.0], where\n * 1.0 means 100% charge.\n * -1 is returned if the actual value cannot be\n * retrieved from the system.\n * @property {number} state - Battery state. The following values are possible:\n * BATTERY_STATUS_UNKNOWN = 1\n * BATTERY_STATUS_CHARGING = 2\n * BATTERY_STATUS_DISCHARGING = 3\n * BATTERY_STATUS_NOT_CHARGING = 4\n * BATTERY_STATUS_FULL = 5\n * -1 is returned if the actual value cannot be retrieved from the system.\n */\n\n/**\n * Reads the battery information from the device under test.\n *\n * @returns {BatteryInfo} The actual battery info\n */\ncommands.mobileGetBatteryInfo = async function () {\n const result = await this.uiautomator2.jwproxy.command('/appium/device/battery_info', 'GET', {});\n // Give it the same name as in iOS\n result.state = result.status;\n delete result.status;\n return result;\n};\n\nObject.assign(extensions, commands);\nexport { commands };\nexport default extensions;\n"],"mappings":";;;;;;;AAAA,IAAIA,UAAU,GAAG,CAAC,CAAC;EAAEC,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAuBnCA,QAAQ,CAACE,oBAAoB,GAAG,kBAAkB;EAChD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,6BAA6B,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;EAEhGH,MAAM,CAACI,KAAK,GAAGJ,MAAM,CAACK,MAAM;EAC5B,OAAOL,MAAM,CAACK,MAAM;EACpB,OAAOL,MAAM;AACf,CAAC;AAEDM,MAAM,CAACC,MAAM,CAACX,UAAU,EAAEC,QAAQ,CAAC;AAAC,IAAAW,QAAA,GAErBZ,UAAU;AAAAE,OAAA,CAAAW,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"battery.js","sourceRoot":"","sources":["../../../lib/commands/battery.js"],"names":[],"mappings":";AAAA,YAAY;;AAEZ,qCAA+B;AAE/B;;;GAGG;AACH,MAAM,YAAY,GAAG;IACnB;;;;OAIG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,uEAAuE,CAAC,CACrF,MAAM,2DAA2D,CAAC,CAChE,IAAI,CAAC,YAAY,CAClB,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5D,CAAC;QACF,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;QAChD,kCAAkC;QAClC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,OAAO,WAAW,CAAC,MAAM,CAAC;QAC1B,OAAO,0BAA0B,CAAC,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAEF,IAAA,cAAK,EAAC,YAAY,CAAC,CAAC;AAEpB;;GAEG"}