appium-uiautomator2-driver 2.7.1 → 2.9.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 (40) hide show
  1. package/README.md +10 -6
  2. package/build/index.js +1 -4
  3. package/build/lib/commands/actions.js +3 -12
  4. package/build/lib/commands/actions.js.map +1 -1
  5. package/build/lib/commands/alert.js +3 -9
  6. package/build/lib/commands/alert.js.map +1 -1
  7. package/build/lib/commands/battery.js +3 -5
  8. package/build/lib/commands/battery.js.map +1 -1
  9. package/build/lib/commands/element.js +3 -36
  10. package/build/lib/commands/element.js.map +1 -1
  11. package/build/lib/commands/find.js +2 -9
  12. package/build/lib/commands/find.js.map +1 -1
  13. package/build/lib/commands/general.js +5 -36
  14. package/build/lib/commands/general.js.map +1 -1
  15. package/build/lib/commands/gestures.js +1 -15
  16. package/build/lib/commands/gestures.js.map +1 -1
  17. package/build/lib/commands/index.js +3 -15
  18. package/build/lib/commands/index.js.map +1 -1
  19. package/build/lib/commands/screenshot.js +1 -8
  20. package/build/lib/commands/screenshot.js.map +1 -1
  21. package/build/lib/commands/touch.js +2 -8
  22. package/build/lib/commands/touch.js.map +1 -1
  23. package/build/lib/commands/viewport.js +3 -9
  24. package/build/lib/commands/viewport.js.map +1 -1
  25. package/build/lib/css-converter.js +1 -42
  26. package/build/lib/css-converter.js.map +1 -1
  27. package/build/lib/desired-caps.js +1 -4
  28. package/build/lib/desired-caps.js.map +1 -1
  29. package/build/lib/driver.js +24 -102
  30. package/build/lib/driver.js.map +1 -1
  31. package/build/lib/extensions.js +1 -3
  32. package/build/lib/extensions.js.map +1 -1
  33. package/build/lib/helpers.js +1 -15
  34. package/build/lib/helpers.js.map +1 -1
  35. package/build/lib/logger.js +1 -5
  36. package/build/lib/logger.js.map +1 -1
  37. package/build/lib/uiautomator2.js +1 -70
  38. package/build/lib/uiautomator2.js.map +1 -1
  39. package/npm-shrinkwrap.json +262 -279
  40. package/package.json +3 -3
package/README.md CHANGED
@@ -75,7 +75,7 @@ appium:intentFlags | Set an optional intent flags to be applied when starting th
75
75
  appium:optionalIntentArguments | Set an optional intent arguments to be applied when starting the given appActivity by [Activity Manager](https://developer.android.com/studio/command-line/adb#am)
76
76
  appium:dontStopAppOnReset | Set it to `true` if you don't want the application to be restarted if it was already running. `false` by default
77
77
  appium:autoLaunch | Whether to launch the application under test automatically (`true`, the default value) after a test starts
78
- appium:autoGrantPermissions | Whether to grant all the requested application permissions automatically when a test starts(`true`). `false` by default
78
+ appium:autoGrantPermissions | Whether to grant all the requested application permissions automatically when a test starts(`true`). The targetSdkVersion in the application manifest must be greater or equal to 23 and the Android version on the device under test must be greater or equal to Android 6 (API level 23) to grant permissions. Applications whose targetSdkVersion is lower than or equal to 22 must be reisntalled to grant permissions, for example, by setting the `appium:fullReset` capability as `true` for Android 6+ devices. `false` by default
79
79
  appium:otherApps | Allows to set one or more comma-separated paths to Android packages that are going to be installed along with the main application under test. This might be useful if the tested app has dependencies
80
80
  appium:uninstallOtherPackages | Allows to set one or more comma-separated package identifiers to be uninstalled from the device before a test starts
81
81
  appium:allowTestPackages | If set to `true` then it would be possible to use packages built with the test flag for the automated testing (literally adds `-t` flag to the `adb install` command). `false` by default
@@ -438,7 +438,7 @@ Changes package permissions in runtime.
438
438
 
439
439
  Name | Type | Required | Description | Example
440
440
  --- | --- | --- | --- | ---
441
- permissions | string or Array<string> | yes | The full name of the permission to be changed or a list of permissions. Mandatory argument. | `['android.permission.ACCESS_FINE_LOCATION', 'android.permission.BROADCAST_SMS']`
441
+ permissions | string or Array<string> | yes | The full name of the permission to be changed or a list of permissions. Consider checking [the full list](https://developer.android.com/reference/android/Manifest.permission) of standard Android permission names. If `all` magic string is passed (available since driver version 2.8.0) then the chosen action is going to be applied to all permissions requested/granted by the 'appPackage'. | `['android.permission.ACCESS_FINE_LOCATION', 'android.permission.BROADCAST_SMS']` `all`
442
442
  appPackage | string | no | The application package to set change permissions on. Defaults to the package name under test | com.mycompany.myapp
443
443
  action | string | no | Either `grant` (the default action) or `revoke` | grant
444
444
 
@@ -720,14 +720,19 @@ True is the app has been found on the device and successfully removed. Otherwise
720
720
 
721
721
  ### mobile: terminateApp
722
722
 
723
- Terminates the app if it is running.
723
+ Terminates the app and waits until the app is terminated up to the given timeout
724
+ by checking the app state to ensure if the app process is actually stopped.
725
+
726
+ The app state check can be skipped if the given timeout is lower or equal to zero since UIAutomator driver 2.9.0.
727
+ The skip helps when you want to terminate the app process but do not want to check the process existence
728
+ because the app under test may, for example, restart it automatically.
724
729
 
725
730
  #### Arguments
726
731
 
727
732
  Name | Type | Required | Description | Example
728
733
  --- | --- | --- | --- | ---
729
734
  appId | string | yes | The identifier of the application package to be terminated | `my.app.id`
730
- timeout | number | no | The count of milliseconds to wait until the app is terminated. 500ms by default. | 1500
735
+ timeout | number | no | The count of milliseconds to wait until the app is terminated. 500ms by default. | 1500, 0
731
736
 
732
737
  #### Returned Result
733
738
 
@@ -745,7 +750,7 @@ appPath | string | yes | The local .apk(s) path on the server filesystem or a re
745
750
  timeout | number | no | The count of milliseconds to wait until the app is installed.. 6000ms by default. | 120000
746
751
  allowTestPackages | boolean | no | Set to true in order to allow test packages installation. false by default | true
747
752
  useSdcard | boolean | no | Set to true to install the app on sdcard instead of the device memory. false by default | true
748
- grantPermissions | boolean | no | Set to true in order to grant all the permissions requested in the application's manifest automatically after the installation is completed under Android 6+. false by default | true
753
+ grantPermissions | boolean | no | Set to true in order to grant all the permissions requested in the application's manifest automatically after the installation is completed under Android 6+. The targetSdkVersion in the application manifest must be greater or equal to 23 and the Android version on the device under test must be greater or equal to Android 6 (API level 23) to grant permissions. Applications whose targetSdkVersion is lower than or equal to 22 must be reisntalled to grant permissions for Android 6+ devices. false by default | true
749
754
  replace | boolean | no | Set it to false if you don't want the application to be upgraded/reinstalled if it is already present on the device, but throw an error instead. true by default | false
750
755
 
751
756
  ### mobile: clearApp
@@ -1308,4 +1313,3 @@ Functional tests:
1308
1313
  ```
1309
1314
  npm run e2e-test
1310
1315
  ```
1311
-
package/build/index.js CHANGED
@@ -10,11 +10,8 @@ Object.defineProperty(exports, "AndroidUiautomator2Driver", {
10
10
  }
11
11
  });
12
12
  exports.default = void 0;
13
-
14
13
  require("source-map-support/register");
15
-
16
14
  var _driver = require("./lib/driver");
17
-
18
15
  var _default = _driver.AndroidUiautomator2Driver;
19
16
  exports.default = _default;
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbmRyb2lkVWlhdXRvbWF0b3IyRHJpdmVyIl0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1haW5cblxuaW1wb3J0IHsgQW5kcm9pZFVpYXV0b21hdG9yMkRyaXZlciB9IGZyb20gJy4vbGliL2RyaXZlcic7XG5cbmV4cG9ydCB7IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXIgfTtcbmV4cG9ydCBkZWZhdWx0IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztlQUdlQSxpQyJ9
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbmRyb2lkVWlhdXRvbWF0b3IyRHJpdmVyIl0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1haW5cblxuaW1wb3J0IHsgQW5kcm9pZFVpYXV0b21hdG9yMkRyaXZlciB9IGZyb20gJy4vbGliL2RyaXZlcic7XG5cbmV4cG9ydCB7IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXIgfTtcbmV4cG9ydCBkZWZhdWx0IEFuZHJvaWRVaWF1dG9tYXRvcjJEcml2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUF5RCxlQUcxQ0EsaUNBQXlCO0FBQUEifQ==
@@ -4,15 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.helpers = exports.default = exports.commands = void 0;
7
-
8
7
  require("source-map-support/register");
9
-
10
8
  let commands = {},
11
- helpers = {},
12
- extensions = {};
9
+ helpers = {},
10
+ extensions = {};
13
11
  exports.helpers = helpers;
14
12
  exports.commands = commands;
15
-
16
13
  commands.pressKeyCode = async function (keycode, metastate = null, flags = null) {
17
14
  return await this.uiautomator2.jwproxy.command('/appium/device/press_keycode', 'POST', {
18
15
  keycode,
@@ -20,7 +17,6 @@ commands.pressKeyCode = async function (keycode, metastate = null, flags = null)
20
17
  flags
21
18
  });
22
19
  };
23
-
24
20
  commands.longPressKeyCode = async function (keycode, metastate = null, flags = null) {
25
21
  return await this.uiautomator2.jwproxy.command('/appium/device/long_press_keycode', 'POST', {
26
22
  keycode,
@@ -28,27 +24,22 @@ commands.longPressKeyCode = async function (keycode, metastate = null, flags = n
28
24
  flags
29
25
  });
30
26
  };
31
-
32
27
  commands.doSwipe = async function (swipeOpts) {
33
28
  return await this.uiautomator2.jwproxy.command(`/touch/perform`, 'POST', swipeOpts);
34
29
  };
35
-
36
30
  commands.doDrag = async function (dragOpts) {
37
31
  return await this.uiautomator2.jwproxy.command(`/touch/drag`, 'POST', dragOpts);
38
32
  };
39
-
40
33
  commands.getOrientation = async function () {
41
34
  return await this.uiautomator2.jwproxy.command(`/orientation`, 'GET', {});
42
35
  };
43
-
44
36
  commands.setOrientation = async function (orientation) {
45
37
  orientation = orientation.toUpperCase();
46
38
  return await this.uiautomator2.jwproxy.command(`/orientation`, 'POST', {
47
39
  orientation
48
40
  });
49
41
  };
50
-
51
42
  Object.assign(extensions, commands, helpers);
52
43
  var _default = extensions;
53
44
  exports.default = _default;
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwicHJlc3NLZXlDb2RlIiwia2V5Y29kZSIsIm1ldGFzdGF0ZSIsImZsYWdzIiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJsb25nUHJlc3NLZXlDb2RlIiwiZG9Td2lwZSIsInN3aXBlT3B0cyIsImRvRHJhZyIsImRyYWdPcHRzIiwiZ2V0T3JpZW50YXRpb24iLCJzZXRPcmllbnRhdGlvbiIsIm9yaWVudGF0aW9uIiwidG9VcHBlckNhc2UiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb21tYW5kcy5wcmVzc0tleUNvZGUgPSBhc3luYyBmdW5jdGlvbiAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCwgZmxhZ3MgPSBudWxsKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL3ByZXNzX2tleWNvZGUnLCAnUE9TVCcsIHtcbiAgICBrZXljb2RlLFxuICAgIG1ldGFzdGF0ZSxcbiAgICBmbGFncyxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5sb25nUHJlc3NLZXlDb2RlID0gYXN5bmMgZnVuY3Rpb24gKGtleWNvZGUsIG1ldGFzdGF0ZSA9IG51bGwsIGZsYWdzID0gbnVsbCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9sb25nX3ByZXNzX2tleWNvZGUnLCAnUE9TVCcsIHtcbiAgICBrZXljb2RlLFxuICAgIG1ldGFzdGF0ZSxcbiAgICBmbGFnc1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLmRvU3dpcGUgPSBhc3luYyBmdW5jdGlvbiAoc3dpcGVPcHRzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9wZXJmb3JtYCwgJ1BPU1QnLCBzd2lwZU9wdHMpO1xufTtcblxuY29tbWFuZHMuZG9EcmFnID0gYXN5bmMgZnVuY3Rpb24gKGRyYWdPcHRzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9kcmFnYCwgJ1BPU1QnLCBkcmFnT3B0cyk7XG59O1xuXG5jb21tYW5kcy5nZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL29yaWVudGF0aW9uYCwgJ0dFVCcsIHt9KTtcbn07XG5cbmNvbW1hbmRzLnNldE9yaWVudGF0aW9uID0gYXN5bmMgZnVuY3Rpb24gKG9yaWVudGF0aW9uKSB7XG4gIG9yaWVudGF0aW9uID0gb3JpZW50YXRpb24udG9VcHBlckNhc2UoKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL29yaWVudGF0aW9uYCwgJ1BPU1QnLCB7b3JpZW50YXRpb259KTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7Ozs7QUFFQUYsUUFBUSxDQUFDRyxZQUFULEdBQXdCLGdCQUFnQkMsT0FBaEIsRUFBeUJDLFNBQVMsR0FBRyxJQUFyQyxFQUEyQ0MsS0FBSyxHQUFHLElBQW5ELEVBQXlEO0VBQy9FLE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0MsOEJBQWxDLEVBQWtFLE1BQWxFLEVBQTBFO0lBQ3JGTCxPQURxRjtJQUVyRkMsU0FGcUY7SUFHckZDO0VBSHFGLENBQTFFLENBQWI7QUFLRCxDQU5EOztBQVFBTixRQUFRLENBQUNVLGdCQUFULEdBQTRCLGdCQUFnQk4sT0FBaEIsRUFBeUJDLFNBQVMsR0FBRyxJQUFyQyxFQUEyQ0MsS0FBSyxHQUFHLElBQW5ELEVBQXlEO0VBQ25GLE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0MsbUNBQWxDLEVBQXVFLE1BQXZFLEVBQStFO0lBQzFGTCxPQUQwRjtJQUUxRkMsU0FGMEY7SUFHMUZDO0VBSDBGLENBQS9FLENBQWI7QUFLRCxDQU5EOztBQVFBTixRQUFRLENBQUNXLE9BQVQsR0FBbUIsZ0JBQWdCQyxTQUFoQixFQUEyQjtFQUM1QyxPQUFPLE1BQU0sS0FBS0wsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQW1DLGdCQUFuQyxFQUFvRCxNQUFwRCxFQUE0REcsU0FBNUQsQ0FBYjtBQUNELENBRkQ7O0FBSUFaLFFBQVEsQ0FBQ2EsTUFBVCxHQUFrQixnQkFBZ0JDLFFBQWhCLEVBQTBCO0VBQzFDLE9BQU8sTUFBTSxLQUFLUCxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBbUMsYUFBbkMsRUFBaUQsTUFBakQsRUFBeURLLFFBQXpELENBQWI7QUFDRCxDQUZEOztBQUlBZCxRQUFRLENBQUNlLGNBQVQsR0FBMEIsa0JBQWtCO0VBQzFDLE9BQU8sTUFBTSxLQUFLUixZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBbUMsY0FBbkMsRUFBa0QsS0FBbEQsRUFBeUQsRUFBekQsQ0FBYjtBQUNELENBRkQ7O0FBSUFULFFBQVEsQ0FBQ2dCLGNBQVQsR0FBMEIsZ0JBQWdCQyxXQUFoQixFQUE2QjtFQUNyREEsV0FBVyxHQUFHQSxXQUFXLENBQUNDLFdBQVosRUFBZDtFQUNBLE9BQU8sTUFBTSxLQUFLWCxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBbUMsY0FBbkMsRUFBa0QsTUFBbEQsRUFBMEQ7SUFBQ1E7RUFBRCxDQUExRCxDQUFiO0FBQ0QsQ0FIRDs7QUFLQUUsTUFBTSxDQUFDQyxNQUFQLENBQWNsQixVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSJ9
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwicHJlc3NLZXlDb2RlIiwia2V5Y29kZSIsIm1ldGFzdGF0ZSIsImZsYWdzIiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJsb25nUHJlc3NLZXlDb2RlIiwiZG9Td2lwZSIsInN3aXBlT3B0cyIsImRvRHJhZyIsImRyYWdPcHRzIiwiZ2V0T3JpZW50YXRpb24iLCJzZXRPcmllbnRhdGlvbiIsIm9yaWVudGF0aW9uIiwidG9VcHBlckNhc2UiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb21tYW5kcy5wcmVzc0tleUNvZGUgPSBhc3luYyBmdW5jdGlvbiAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCwgZmxhZ3MgPSBudWxsKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL3ByZXNzX2tleWNvZGUnLCAnUE9TVCcsIHtcbiAgICBrZXljb2RlLFxuICAgIG1ldGFzdGF0ZSxcbiAgICBmbGFncyxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5sb25nUHJlc3NLZXlDb2RlID0gYXN5bmMgZnVuY3Rpb24gKGtleWNvZGUsIG1ldGFzdGF0ZSA9IG51bGwsIGZsYWdzID0gbnVsbCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9sb25nX3ByZXNzX2tleWNvZGUnLCAnUE9TVCcsIHtcbiAgICBrZXljb2RlLFxuICAgIG1ldGFzdGF0ZSxcbiAgICBmbGFnc1xuICB9KTtcbn07XG5cbmNvbW1hbmRzLmRvU3dpcGUgPSBhc3luYyBmdW5jdGlvbiAoc3dpcGVPcHRzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9wZXJmb3JtYCwgJ1BPU1QnLCBzd2lwZU9wdHMpO1xufTtcblxuY29tbWFuZHMuZG9EcmFnID0gYXN5bmMgZnVuY3Rpb24gKGRyYWdPcHRzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9kcmFnYCwgJ1BPU1QnLCBkcmFnT3B0cyk7XG59O1xuXG5jb21tYW5kcy5nZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL29yaWVudGF0aW9uYCwgJ0dFVCcsIHt9KTtcbn07XG5cbmNvbW1hbmRzLnNldE9yaWVudGF0aW9uID0gYXN5bmMgZnVuY3Rpb24gKG9yaWVudGF0aW9uKSB7XG4gIG9yaWVudGF0aW9uID0gb3JpZW50YXRpb24udG9VcHBlckNhc2UoKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL29yaWVudGF0aW9uYCwgJ1BPU1QnLCB7b3JpZW50YXRpb259KTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxJQUFJQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFBRUMsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUFDO0FBQUE7QUFFakRGLFFBQVEsQ0FBQ0csWUFBWSxHQUFHLGdCQUFnQkMsT0FBTyxFQUFFQyxTQUFTLEdBQUcsSUFBSSxFQUFFQyxLQUFLLEdBQUcsSUFBSSxFQUFFO0VBQy9FLE9BQU8sTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsTUFBTSxFQUFFO0lBQ3JGTCxPQUFPO0lBQ1BDLFNBQVM7SUFDVEM7RUFDRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUROLFFBQVEsQ0FBQ1UsZ0JBQWdCLEdBQUcsZ0JBQWdCTixPQUFPLEVBQUVDLFNBQVMsR0FBRyxJQUFJLEVBQUVDLEtBQUssR0FBRyxJQUFJLEVBQUU7RUFDbkYsT0FBTyxNQUFNLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNLEVBQUU7SUFDMUZMLE9BQU87SUFDUEMsU0FBUztJQUNUQztFQUNGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRE4sUUFBUSxDQUFDVyxPQUFPLEdBQUcsZ0JBQWdCQyxTQUFTLEVBQUU7RUFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQ0wsWUFBWSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBRSxnQkFBZSxFQUFFLE1BQU0sRUFBRUcsU0FBUyxDQUFDO0FBQ3JGLENBQUM7QUFFRFosUUFBUSxDQUFDYSxNQUFNLEdBQUcsZ0JBQWdCQyxRQUFRLEVBQUU7RUFDMUMsT0FBTyxNQUFNLElBQUksQ0FBQ1AsWUFBWSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBRSxhQUFZLEVBQUUsTUFBTSxFQUFFSyxRQUFRLENBQUM7QUFDakYsQ0FBQztBQUVEZCxRQUFRLENBQUNlLGNBQWMsR0FBRyxrQkFBa0I7RUFDMUMsT0FBTyxNQUFNLElBQUksQ0FBQ1IsWUFBWSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBRSxjQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRFQsUUFBUSxDQUFDZ0IsY0FBYyxHQUFHLGdCQUFnQkMsV0FBVyxFQUFFO0VBQ3JEQSxXQUFXLEdBQUdBLFdBQVcsQ0FBQ0MsV0FBVyxFQUFFO0VBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUNYLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUUsY0FBYSxFQUFFLE1BQU0sRUFBRTtJQUFDUTtFQUFXLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBRURFLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDbEIsVUFBVSxFQUFFRixRQUFRLEVBQUVDLE9BQU8sQ0FBQztBQUFDLGVBRTlCQyxVQUFVO0FBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["commands","helpers","extensions","pressKeyCode","keycode","metastate","flags","uiautomator2","jwproxy","command","longPressKeyCode","doSwipe","swipeOpts","doDrag","dragOpts","getOrientation","setOrientation","orientation","toUpperCase","Object","assign"],"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\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":";;;;;;;;;AAEA,IAAIA,QAAQ,GAAG,EAAf;AAAA,IAAmBC,OAAO,GAAG,EAA7B;AAAA,IAAiCC,UAAU,GAAG,EAA9C;;;;AAEAF,QAAQ,CAACG,YAAT,GAAwB,gBAAgBC,OAAhB,EAAyBC,SAAS,GAAG,IAArC,EAA2CC,KAAK,GAAG,IAAnD,EAAyD;EAC/E,OAAO,MAAM,KAAKC,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,8BAAlC,EAAkE,MAAlE,EAA0E;IACrFL,OADqF;IAErFC,SAFqF;IAGrFC;EAHqF,CAA1E,CAAb;AAKD,CAND;;AAQAN,QAAQ,CAACU,gBAAT,GAA4B,gBAAgBN,OAAhB,EAAyBC,SAAS,GAAG,IAArC,EAA2CC,KAAK,GAAG,IAAnD,EAAyD;EACnF,OAAO,MAAM,KAAKC,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,mCAAlC,EAAuE,MAAvE,EAA+E;IAC1FL,OAD0F;IAE1FC,SAF0F;IAG1FC;EAH0F,CAA/E,CAAb;AAKD,CAND;;AAQAN,QAAQ,CAACW,OAAT,GAAmB,gBAAgBC,SAAhB,EAA2B;EAC5C,OAAO,MAAM,KAAKL,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAmC,gBAAnC,EAAoD,MAApD,EAA4DG,SAA5D,CAAb;AACD,CAFD;;AAIAZ,QAAQ,CAACa,MAAT,GAAkB,gBAAgBC,QAAhB,EAA0B;EAC1C,OAAO,MAAM,KAAKP,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAmC,aAAnC,EAAiD,MAAjD,EAAyDK,QAAzD,CAAb;AACD,CAFD;;AAIAd,QAAQ,CAACe,cAAT,GAA0B,kBAAkB;EAC1C,OAAO,MAAM,KAAKR,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAmC,cAAnC,EAAkD,KAAlD,EAAyD,EAAzD,CAAb;AACD,CAFD;;AAIAT,QAAQ,CAACgB,cAAT,GAA0B,gBAAgBC,WAAhB,EAA6B;EACrDA,WAAW,GAAGA,WAAW,CAACC,WAAZ,EAAd;EACA,OAAO,MAAM,KAAKX,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAmC,cAAnC,EAAkD,MAAlD,EAA0D;IAACQ;EAAD,CAA1D,CAAb;AACD,CAHD;;AAKAE,MAAM,CAACC,MAAP,CAAclB,UAAd,EAA0BF,QAA1B,EAAoCC,OAApC;eAEeC,U"}
1
+ {"version":3,"file":"actions.js","names":["commands","helpers","extensions","pressKeyCode","keycode","metastate","flags","uiautomator2","jwproxy","command","longPressKeyCode","doSwipe","swipeOpts","doDrag","dragOpts","getOrientation","setOrientation","orientation","toUpperCase","Object","assign"],"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\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":";;;;;;;AAEA,IAAIA,QAAQ,GAAG,CAAC,CAAC;EAAEC,OAAO,GAAG,CAAC,CAAC;EAAEC,UAAU,GAAG,CAAC,CAAC;AAAC;AAAA;AAEjDF,QAAQ,CAACG,YAAY,GAAG,gBAAgBC,OAAO,EAAEC,SAAS,GAAG,IAAI,EAAEC,KAAK,GAAG,IAAI,EAAE;EAC/E,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,8BAA8B,EAAE,MAAM,EAAE;IACrFL,OAAO;IACPC,SAAS;IACTC;EACF,CAAC,CAAC;AACJ,CAAC;AAEDN,QAAQ,CAACU,gBAAgB,GAAG,gBAAgBN,OAAO,EAAEC,SAAS,GAAG,IAAI,EAAEC,KAAK,GAAG,IAAI,EAAE;EACnF,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,mCAAmC,EAAE,MAAM,EAAE;IAC1FL,OAAO;IACPC,SAAS;IACTC;EACF,CAAC,CAAC;AACJ,CAAC;AAEDN,QAAQ,CAACW,OAAO,GAAG,gBAAgBC,SAAS,EAAE;EAC5C,OAAO,MAAM,IAAI,CAACL,YAAY,CAACC,OAAO,CAACC,OAAO,CAAE,gBAAe,EAAE,MAAM,EAAEG,SAAS,CAAC;AACrF,CAAC;AAEDZ,QAAQ,CAACa,MAAM,GAAG,gBAAgBC,QAAQ,EAAE;EAC1C,OAAO,MAAM,IAAI,CAACP,YAAY,CAACC,OAAO,CAACC,OAAO,CAAE,aAAY,EAAE,MAAM,EAAEK,QAAQ,CAAC;AACjF,CAAC;AAEDd,QAAQ,CAACe,cAAc,GAAG,kBAAkB;EAC1C,OAAO,MAAM,IAAI,CAACR,YAAY,CAACC,OAAO,CAACC,OAAO,CAAE,cAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAEDT,QAAQ,CAACgB,cAAc,GAAG,gBAAgBC,WAAW,EAAE;EACrDA,WAAW,GAAGA,WAAW,CAACC,WAAW,EAAE;EACvC,OAAO,MAAM,IAAI,CAACX,YAAY,CAACC,OAAO,CAACC,OAAO,CAAE,cAAa,EAAE,MAAM,EAAE;IAACQ;EAAW,CAAC,CAAC;AACvF,CAAC;AAEDE,MAAM,CAACC,MAAM,CAAClB,UAAU,EAAEF,QAAQ,EAAEC,OAAO,CAAC;AAAC,eAE9BC,UAAU;AAAA"}
@@ -4,15 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.helpers = exports.default = exports.commands = void 0;
7
-
8
7
  require("source-map-support/register");
9
-
10
8
  let commands = {},
11
- helpers = {},
12
- extensions = {};
9
+ helpers = {},
10
+ extensions = {};
13
11
  exports.helpers = helpers;
14
12
  exports.commands = commands;
15
-
16
13
  commands.getAlertText = async function () {
17
14
  return await this.uiautomator2.jwproxy.command('/alert/text', 'GET', {});
18
15
  };
@@ -20,7 +17,6 @@ commands.getAlertText = async function () {
20
17
  commands.mobileAcceptAlert = async function (opts = {}) {
21
18
  return await this.uiautomator2.jwproxy.command('/alert/accept', 'POST', opts);
22
19
  };
23
-
24
20
  commands.postAcceptAlert = async function () {
25
21
  return await this.mobileAcceptAlert();
26
22
  };
@@ -28,12 +24,10 @@ commands.postAcceptAlert = async function () {
28
24
  commands.mobileDismissAlert = async function (opts = {}) {
29
25
  return await this.uiautomator2.jwproxy.command('/alert/dismiss', 'POST', opts);
30
26
  };
31
-
32
27
  commands.postDismissAlert = async function () {
33
28
  return await this.mobileDismissAlert();
34
29
  };
35
-
36
30
  Object.assign(extensions, commands, helpers);
37
31
  var _default = extensions;
38
32
  exports.default = _default;
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0QWxlcnRUZXh0IiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJtb2JpbGVBY2NlcHRBbGVydCIsIm9wdHMiLCJwb3N0QWNjZXB0QWxlcnQiLCJtb2JpbGVEaXNtaXNzQWxlcnQiLCJwb3N0RGlzbWlzc0FsZXJ0IiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2FsZXJ0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QWxlcnRUZXh0ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYWxlcnQvdGV4dCcsICdHRVQnLCB7fSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFjY2VwdEFsZXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBidXR0b25MYWJlbCAtIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gdG8gY2xpY2sgaW4gb3JkZXIgdG9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQgdGhlIGFsZXJ0LiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHRoZSBzY3JpcHQgd2lsbCB0cnkgdG8gZGV0ZWN0IHRoZSBidXR0b25cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogQHBhcmFtIHtBY2NlcHRBbGVydE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0ludmFsaWRFbGVtZW50U3RhdGVFcnJvcn0gSWYgbm8gbWF0Y2hpbmcgYnV0dG9uLCB0aGF0IGNhbiBhY2NlcHQgdGhlIGFsZXJ0LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgZm91bmRcbiAqIEB0aHJvd3Mge05vQWxlcnRPcGVuRXJyb3J9IElmIG5vIGFsZXJ0IGlzIHByZXNlbnRcbiAqL1xuY29tbWFuZHMubW9iaWxlQWNjZXB0QWxlcnQgPSBhc3luYyBmdW5jdGlvbiAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hbGVydC9hY2NlcHQnLCAnUE9TVCcsIG9wdHMpO1xufTtcblxuY29tbWFuZHMucG9zdEFjY2VwdEFsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVBY2NlcHRBbGVydCgpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEaXNtaXNzQWxlcnRPcHRpb25zXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGJ1dHRvbkxhYmVsIC0gVGhlIG5hbWUgb2YgdGhlIGJ1dHRvbiB0byBjbGljayBpbiBvcmRlciB0b1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc21pc3MgdGhlIGFsZXJ0LiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHRoZSBzY3JpcHQgd2lsbCB0cnkgdG8gZGV0ZWN0IHRoZSBidXR0b25cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogQHBhcmFtIHtEaXNtaXNzQWxlcnRPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtJbnZhbGlkRWxlbWVudFN0YXRlRXJyb3J9IElmIG5vIG1hdGNoaW5nIGJ1dHRvbiwgdGhhdCBjYW4gZGlzbWlzcyB0aGUgYWxlcnQsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmb3VuZFxuICogQHRocm93cyB7Tm9BbGVydE9wZW5FcnJvcn0gSWYgbm8gYWxlcnQgaXMgcHJlc2VudFxuICovXG5jb21tYW5kcy5tb2JpbGVEaXNtaXNzQWxlcnQgPSBhc3luYyBmdW5jdGlvbiAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hbGVydC9kaXNtaXNzJywgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLnBvc3REaXNtaXNzQWxlcnQgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZURpc21pc3NBbGVydCgpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7OztBQUVBRixRQUFRLENBQUNHLFlBQVQsR0FBd0Isa0JBQWtCO0VBQ3hDLE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0MsYUFBbEMsRUFBaUQsS0FBakQsRUFBd0QsRUFBeEQsQ0FBYjtBQUNELENBRkQ7O0FBa0JBTixRQUFRLENBQUNPLGlCQUFULEdBQTZCLGdCQUFnQkMsSUFBSSxHQUFHLEVBQXZCLEVBQTJCO0VBQ3RELE9BQU8sTUFBTSxLQUFLSixZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0MsZUFBbEMsRUFBbUQsTUFBbkQsRUFBMkRFLElBQTNELENBQWI7QUFDRCxDQUZEOztBQUlBUixRQUFRLENBQUNTLGVBQVQsR0FBMkIsa0JBQWtCO0VBQzNDLE9BQU8sTUFBTSxLQUFLRixpQkFBTCxFQUFiO0FBQ0QsQ0FGRDs7QUFrQkFQLFFBQVEsQ0FBQ1Usa0JBQVQsR0FBOEIsZ0JBQWdCRixJQUFJLEdBQUcsRUFBdkIsRUFBMkI7RUFDdkQsT0FBTyxNQUFNLEtBQUtKLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFrQyxnQkFBbEMsRUFBb0QsTUFBcEQsRUFBNERFLElBQTVELENBQWI7QUFDRCxDQUZEOztBQUlBUixRQUFRLENBQUNXLGdCQUFULEdBQTRCLGtCQUFrQjtFQUM1QyxPQUFPLE1BQU0sS0FBS0Qsa0JBQUwsRUFBYjtBQUNELENBRkQ7O0FBSUFFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjWCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSJ9
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0QWxlcnRUZXh0IiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJtb2JpbGVBY2NlcHRBbGVydCIsIm9wdHMiLCJwb3N0QWNjZXB0QWxlcnQiLCJtb2JpbGVEaXNtaXNzQWxlcnQiLCJwb3N0RGlzbWlzc0FsZXJ0IiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2FsZXJ0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QWxlcnRUZXh0ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvYWxlcnQvdGV4dCcsICdHRVQnLCB7fSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFjY2VwdEFsZXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBidXR0b25MYWJlbCAtIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gdG8gY2xpY2sgaW4gb3JkZXIgdG9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQgdGhlIGFsZXJ0LiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHRoZSBzY3JpcHQgd2lsbCB0cnkgdG8gZGV0ZWN0IHRoZSBidXR0b25cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogQHBhcmFtIHtBY2NlcHRBbGVydE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0ludmFsaWRFbGVtZW50U3RhdGVFcnJvcn0gSWYgbm8gbWF0Y2hpbmcgYnV0dG9uLCB0aGF0IGNhbiBhY2NlcHQgdGhlIGFsZXJ0LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgZm91bmRcbiAqIEB0aHJvd3Mge05vQWxlcnRPcGVuRXJyb3J9IElmIG5vIGFsZXJ0IGlzIHByZXNlbnRcbiAqL1xuY29tbWFuZHMubW9iaWxlQWNjZXB0QWxlcnQgPSBhc3luYyBmdW5jdGlvbiAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hbGVydC9hY2NlcHQnLCAnUE9TVCcsIG9wdHMpO1xufTtcblxuY29tbWFuZHMucG9zdEFjY2VwdEFsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVBY2NlcHRBbGVydCgpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEaXNtaXNzQWxlcnRPcHRpb25zXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGJ1dHRvbkxhYmVsIC0gVGhlIG5hbWUgb2YgdGhlIGJ1dHRvbiB0byBjbGljayBpbiBvcmRlciB0b1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc21pc3MgdGhlIGFsZXJ0LiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHRoZSBzY3JpcHQgd2lsbCB0cnkgdG8gZGV0ZWN0IHRoZSBidXR0b25cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogQHBhcmFtIHtEaXNtaXNzQWxlcnRPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtJbnZhbGlkRWxlbWVudFN0YXRlRXJyb3J9IElmIG5vIG1hdGNoaW5nIGJ1dHRvbiwgdGhhdCBjYW4gZGlzbWlzcyB0aGUgYWxlcnQsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBmb3VuZFxuICogQHRocm93cyB7Tm9BbGVydE9wZW5FcnJvcn0gSWYgbm8gYWxlcnQgaXMgcHJlc2VudFxuICovXG5jb21tYW5kcy5tb2JpbGVEaXNtaXNzQWxlcnQgPSBhc3luYyBmdW5jdGlvbiAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoJy9hbGVydC9kaXNtaXNzJywgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLnBvc3REaXNtaXNzQWxlcnQgPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZURpc21pc3NBbGVydCgpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLFFBQVEsR0FBRyxDQUFDLENBQUM7RUFBRUMsT0FBTyxHQUFHLENBQUMsQ0FBQztFQUFFQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQUM7QUFBQTtBQUVqREYsUUFBUSxDQUFDRyxZQUFZLEdBQUcsa0JBQWtCO0VBQ3hDLE9BQU8sTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDOztBQWdCRE4sUUFBUSxDQUFDTyxpQkFBaUIsR0FBRyxnQkFBZ0JDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUN0RCxPQUFPLE1BQU0sSUFBSSxDQUFDSixZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUVFLElBQUksQ0FBQztBQUMvRSxDQUFDO0FBRURSLFFBQVEsQ0FBQ1MsZUFBZSxHQUFHLGtCQUFrQjtFQUMzQyxPQUFPLE1BQU0sSUFBSSxDQUFDRixpQkFBaUIsRUFBRTtBQUN2QyxDQUFDOztBQWdCRFAsUUFBUSxDQUFDVSxrQkFBa0IsR0FBRyxnQkFBZ0JGLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDSixZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRUUsSUFBSSxDQUFDO0FBQ2hGLENBQUM7QUFFRFIsUUFBUSxDQUFDVyxnQkFBZ0IsR0FBRyxrQkFBa0I7RUFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQ0Qsa0JBQWtCLEVBQUU7QUFDeEMsQ0FBQztBQUVERSxNQUFNLENBQUNDLE1BQU0sQ0FBQ1gsVUFBVSxFQUFFRixRQUFRLEVBQUVDLE9BQU8sQ0FBQztBQUFDLGVBRTlCQyxVQUFVO0FBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":["commands","helpers","extensions","getAlertText","uiautomator2","jwproxy","command","mobileAcceptAlert","opts","postAcceptAlert","mobileDismissAlert","postDismissAlert","Object","assign"],"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,EAAf;AAAA,IAAmBC,OAAO,GAAG,EAA7B;AAAA,IAAiCC,UAAU,GAAG,EAA9C;;;;AAEAF,QAAQ,CAACG,YAAT,GAAwB,kBAAkB;EACxC,OAAO,MAAM,KAAKC,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,aAAlC,EAAiD,KAAjD,EAAwD,EAAxD,CAAb;AACD,CAFD;;AAkBAN,QAAQ,CAACO,iBAAT,GAA6B,gBAAgBC,IAAI,GAAG,EAAvB,EAA2B;EACtD,OAAO,MAAM,KAAKJ,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,eAAlC,EAAmD,MAAnD,EAA2DE,IAA3D,CAAb;AACD,CAFD;;AAIAR,QAAQ,CAACS,eAAT,GAA2B,kBAAkB;EAC3C,OAAO,MAAM,KAAKF,iBAAL,EAAb;AACD,CAFD;;AAkBAP,QAAQ,CAACU,kBAAT,GAA8B,gBAAgBF,IAAI,GAAG,EAAvB,EAA2B;EACvD,OAAO,MAAM,KAAKJ,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,gBAAlC,EAAoD,MAApD,EAA4DE,IAA5D,CAAb;AACD,CAFD;;AAIAR,QAAQ,CAACW,gBAAT,GAA4B,kBAAkB;EAC5C,OAAO,MAAM,KAAKD,kBAAL,EAAb;AACD,CAFD;;AAIAE,MAAM,CAACC,MAAP,CAAcX,UAAd,EAA0BF,QAA1B,EAAoCC,OAApC;eAEeC,U"}
1
+ {"version":3,"file":"alert.js","names":["commands","helpers","extensions","getAlertText","uiautomator2","jwproxy","command","mobileAcceptAlert","opts","postAcceptAlert","mobileDismissAlert","postDismissAlert","Object","assign"],"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;AAAC;AAAA;AAEjDF,QAAQ,CAACG,YAAY,GAAG,kBAAkB;EACxC,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,OAAO,CAACC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;;AAgBDN,QAAQ,CAACO,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;AAEDR,QAAQ,CAACS,eAAe,GAAG,kBAAkB;EAC3C,OAAO,MAAM,IAAI,CAACF,iBAAiB,EAAE;AACvC,CAAC;;AAgBDP,QAAQ,CAACU,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;AAEDR,QAAQ,CAACW,gBAAgB,GAAG,kBAAkB;EAC5C,OAAO,MAAM,IAAI,CAACD,kBAAkB,EAAE;AACxC,CAAC;AAEDE,MAAM,CAACC,MAAM,CAACX,UAAU,EAAEF,QAAQ,EAAEC,OAAO,CAAC;AAAC,eAE9BC,UAAU;AAAA"}
@@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.commands = void 0;
7
-
8
7
  require("source-map-support/register");
9
-
10
8
  let extensions = {},
11
- commands = {};
9
+ commands = {};
10
+
12
11
  exports.commands = commands;
13
12
 
14
13
  commands.mobileGetBatteryInfo = async function () {
@@ -17,8 +16,7 @@ commands.mobileGetBatteryInfo = async function () {
17
16
  delete result.status;
18
17
  return result;
19
18
  };
20
-
21
19
  Object.assign(extensions, commands);
22
20
  var _default = extensions;
23
21
  exports.default = _default;
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJtb2JpbGVHZXRCYXR0ZXJ5SW5mbyIsInJlc3VsdCIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwic3RhdGUiLCJzdGF0dXMiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvYmF0dGVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXh0ZW5zaW9ucyA9IHt9LCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEJhdHRlcnlJbmZvXG4gKlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGxldmVsIC0gQmF0dGVyeSBsZXZlbCBpbiByYW5nZSBbMC4wLCAxLjBdLCB3aGVyZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wIG1lYW5zIDEwMCUgY2hhcmdlLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xIGlzIHJldHVybmVkIGlmIHRoZSBhY3R1YWwgdmFsdWUgY2Fubm90IGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZWQgZnJvbSB0aGUgc3lzdGVtLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHN0YXRlIC0gQmF0dGVyeSBzdGF0ZS4gVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHBvc3NpYmxlOlxuICogICBCQVRURVJZX1NUQVRVU19VTktOT1dOID0gMVxuICogICBCQVRURVJZX1NUQVRVU19DSEFSR0lORyA9IDJcbiAqICAgQkFUVEVSWV9TVEFUVVNfRElTQ0hBUkdJTkcgPSAzXG4gKiAgIEJBVFRFUllfU1RBVFVTX05PVF9DSEFSR0lORyA9IDRcbiAqICAgQkFUVEVSWV9TVEFUVVNfRlVMTCA9IDVcbiAqICAgLTEgaXMgcmV0dXJuZWQgaWYgdGhlIGFjdHVhbCB2YWx1ZSBjYW5ub3QgYmUgcmV0cmlldmVkIGZyb20gdGhlIHN5c3RlbS5cbiAqL1xuXG4vKipcbiAqIFJlYWRzIHRoZSBiYXR0ZXJ5IGluZm9ybWF0aW9uIGZyb20gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtCYXR0ZXJ5SW5mb30gVGhlIGFjdHVhbCBiYXR0ZXJ5IGluZm9cbiAqL1xuY29tbWFuZHMubW9iaWxlR2V0QmF0dGVyeUluZm8gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvYmF0dGVyeV9pbmZvJywgJ0dFVCcsIHt9KTtcbiAgLy8gR2l2ZSBpdCB0aGUgc2FtZSBuYW1lIGFzIGluIGlPU1xuICByZXN1bHQuc3RhdGUgPSByZXN1bHQuc3RhdHVzO1xuICBkZWxldGUgcmVzdWx0LnN0YXR1cztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMpO1xuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQXFCQyxRQUFRLEdBQUcsRUFBaEM7OztBQXVCQUEsUUFBUSxDQUFDQyxvQkFBVCxHQUFnQyxrQkFBa0I7RUFDaEQsTUFBTUMsTUFBTSxHQUFHLE1BQU0sS0FBS0MsWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJDLE9BQTFCLENBQWtDLDZCQUFsQyxFQUFpRSxLQUFqRSxFQUF3RSxFQUF4RSxDQUFyQjtFQUVBSCxNQUFNLENBQUNJLEtBQVAsR0FBZUosTUFBTSxDQUFDSyxNQUF0QjtFQUNBLE9BQU9MLE1BQU0sQ0FBQ0ssTUFBZDtFQUNBLE9BQU9MLE1BQVA7QUFDRCxDQU5EOztBQVFBTSxNQUFNLENBQUNDLE1BQVAsQ0FBY1YsVUFBZCxFQUEwQkMsUUFBMUI7ZUFFZUQsVSJ9
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJtb2JpbGVHZXRCYXR0ZXJ5SW5mbyIsInJlc3VsdCIsInVpYXV0b21hdG9yMiIsImp3cHJveHkiLCJjb21tYW5kIiwic3RhdGUiLCJzdGF0dXMiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvYmF0dGVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXh0ZW5zaW9ucyA9IHt9LCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEJhdHRlcnlJbmZvXG4gKlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGxldmVsIC0gQmF0dGVyeSBsZXZlbCBpbiByYW5nZSBbMC4wLCAxLjBdLCB3aGVyZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wIG1lYW5zIDEwMCUgY2hhcmdlLlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xIGlzIHJldHVybmVkIGlmIHRoZSBhY3R1YWwgdmFsdWUgY2Fubm90IGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZWQgZnJvbSB0aGUgc3lzdGVtLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHN0YXRlIC0gQmF0dGVyeSBzdGF0ZS4gVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHBvc3NpYmxlOlxuICogICBCQVRURVJZX1NUQVRVU19VTktOT1dOID0gMVxuICogICBCQVRURVJZX1NUQVRVU19DSEFSR0lORyA9IDJcbiAqICAgQkFUVEVSWV9TVEFUVVNfRElTQ0hBUkdJTkcgPSAzXG4gKiAgIEJBVFRFUllfU1RBVFVTX05PVF9DSEFSR0lORyA9IDRcbiAqICAgQkFUVEVSWV9TVEFUVVNfRlVMTCA9IDVcbiAqICAgLTEgaXMgcmV0dXJuZWQgaWYgdGhlIGFjdHVhbCB2YWx1ZSBjYW5ub3QgYmUgcmV0cmlldmVkIGZyb20gdGhlIHN5c3RlbS5cbiAqL1xuXG4vKipcbiAqIFJlYWRzIHRoZSBiYXR0ZXJ5IGluZm9ybWF0aW9uIGZyb20gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICpcbiAqIEByZXR1cm5zIHtCYXR0ZXJ5SW5mb30gVGhlIGFjdHVhbCBiYXR0ZXJ5IGluZm9cbiAqL1xuY29tbWFuZHMubW9iaWxlR2V0QmF0dGVyeUluZm8gPSBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvYmF0dGVyeV9pbmZvJywgJ0dFVCcsIHt9KTtcbiAgLy8gR2l2ZSBpdCB0aGUgc2FtZSBuYW1lIGFzIGluIGlPU1xuICByZXN1bHQuc3RhdGUgPSByZXN1bHQuc3RhdHVzO1xuICBkZWxldGUgcmVzdWx0LnN0YXR1cztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMpO1xuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFJQSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLFFBQVEsR0FBRyxDQUFDLENBQUM7O0FBQUM7O0FBdUJuQ0EsUUFBUSxDQUFDQyxvQkFBb0IsR0FBRyxrQkFBa0I7RUFDaEQsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDQyxZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztFQUVoR0gsTUFBTSxDQUFDSSxLQUFLLEdBQUdKLE1BQU0sQ0FBQ0ssTUFBTTtFQUM1QixPQUFPTCxNQUFNLENBQUNLLE1BQU07RUFDcEIsT0FBT0wsTUFBTTtBQUNmLENBQUM7QUFFRE0sTUFBTSxDQUFDQyxNQUFNLENBQUNWLFVBQVUsRUFBRUMsUUFBUSxDQUFDO0FBQUMsZUFFckJELFVBQVU7QUFBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"battery.js","names":["extensions","commands","mobileGetBatteryInfo","result","uiautomator2","jwproxy","command","state","status","Object","assign"],"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,EAAjB;AAAA,IAAqBC,QAAQ,GAAG,EAAhC;;;AAuBAA,QAAQ,CAACC,oBAAT,GAAgC,kBAAkB;EAChD,MAAMC,MAAM,GAAG,MAAM,KAAKC,YAAL,CAAkBC,OAAlB,CAA0BC,OAA1B,CAAkC,6BAAlC,EAAiE,KAAjE,EAAwE,EAAxE,CAArB;EAEAH,MAAM,CAACI,KAAP,GAAeJ,MAAM,CAACK,MAAtB;EACA,OAAOL,MAAM,CAACK,MAAd;EACA,OAAOL,MAAP;AACD,CAND;;AAQAM,MAAM,CAACC,MAAP,CAAcV,UAAd,EAA0BC,QAA1B;eAEeD,U"}
1
+ {"version":3,"file":"battery.js","names":["extensions","commands","mobileGetBatteryInfo","result","uiautomator2","jwproxy","command","state","status","Object","assign"],"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;;AAAC;;AAuBnCA,QAAQ,CAACC,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,CAACV,UAAU,EAAEC,QAAQ,CAAC;AAAC,eAErBD,UAAU;AAAA"}
@@ -1,62 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.helpers = exports.default = exports.commands = void 0;
9
-
10
8
  require("source-map-support/register");
11
-
12
9
  var _lodash = _interopRequireDefault(require("lodash"));
13
-
14
10
  var _support = require("appium/support");
15
-
16
11
  var _driver = require("appium/driver");
17
-
18
12
  let commands = {},
19
- helpers = {},
20
- extensions = {};
13
+ helpers = {},
14
+ extensions = {};
21
15
  exports.helpers = helpers;
22
16
  exports.commands = commands;
23
-
24
17
  function toBool(s) {
25
18
  return _lodash.default.isString(s) ? s.toLowerCase() === 'true' : !!s;
26
19
  }
27
-
28
20
  commands.active = async function active() {
29
21
  return await this.uiautomator2.jwproxy.command('/element/active', 'GET');
30
22
  };
31
-
32
23
  commands.getAttribute = async function (attribute, elementId) {
33
24
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/attribute/${attribute}`, 'GET', {});
34
25
  };
35
-
36
26
  commands.elementDisplayed = async function (elementId) {
37
27
  return toBool(await this.getAttribute('displayed', elementId));
38
28
  };
39
-
40
29
  commands.elementEnabled = async function (elementId) {
41
30
  return toBool(await this.getAttribute('enabled', elementId));
42
31
  };
43
-
44
32
  commands.elementSelected = async function (elementId) {
45
33
  return toBool(await this.getAttribute('selected', elementId));
46
34
  };
47
-
48
35
  commands.getName = async function (elementId) {
49
36
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/name`, 'GET', {});
50
37
  };
51
-
52
38
  commands.getLocation = async function (elementId) {
53
39
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/location`, 'GET', {});
54
40
  };
55
-
56
41
  commands.getSize = async function (elementId) {
57
42
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/size`, 'GET', {});
58
43
  };
59
-
60
44
  commands.touchLongClick = async function (element, x, y, duration) {
61
45
  let params = {
62
46
  element,
@@ -68,7 +52,6 @@ commands.touchLongClick = async function (element, x, y, duration) {
68
52
  params
69
53
  });
70
54
  };
71
-
72
55
  commands.touchDown = async function (element, x, y) {
73
56
  let params = {
74
57
  element,
@@ -79,7 +62,6 @@ commands.touchDown = async function (element, x, y) {
79
62
  params
80
63
  });
81
64
  };
82
-
83
65
  commands.touchUp = async function (element, x, y) {
84
66
  let params = {
85
67
  element,
@@ -90,7 +72,6 @@ commands.touchUp = async function (element, x, y) {
90
72
  params
91
73
  });
92
74
  };
93
-
94
75
  commands.touchMove = async function (element, x, y) {
95
76
  let params = {
96
77
  element,
@@ -101,11 +82,9 @@ commands.touchMove = async function (element, x, y) {
101
82
  params
102
83
  });
103
84
  };
104
-
105
85
  helpers.doSetElementValue = async function (params) {
106
86
  return await this.uiautomator2.jwproxy.command(`/element/${params.elementId}/value`, 'POST', params);
107
87
  };
108
-
109
88
  commands.setValueImmediate = async function (keys, elementId) {
110
89
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/value`, 'POST', {
111
90
  elementId,
@@ -114,28 +93,22 @@ commands.setValueImmediate = async function (keys, elementId) {
114
93
  unicodeKeyboard: this.opts.unicodeKeyboard
115
94
  });
116
95
  };
117
-
118
96
  commands.getText = async function (elementId) {
119
97
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/text`, 'GET', {});
120
98
  };
121
-
122
99
  commands.click = async function (element) {
123
100
  return await this.uiautomator2.jwproxy.command(`/element/${element}/click`, 'POST', {
124
101
  element
125
102
  });
126
103
  };
127
-
128
104
  commands.getElementScreenshot = async function (element) {
129
105
  return await this.uiautomator2.jwproxy.command(`/element/${element}/screenshot`, 'GET', {});
130
106
  };
131
-
132
107
  commands.tap = async function (elementId = null, x = null, y = null, count = 1) {
133
108
  const areCoordinatesDefined = _support.util.hasValue(x) && _support.util.hasValue(y);
134
-
135
109
  if (!_support.util.hasValue(elementId) && !areCoordinatesDefined) {
136
110
  throw new Error(`Either element id to tap or both absolute coordinates should be defined`);
137
111
  }
138
-
139
112
  for (let i = 0; i < count; i++) {
140
113
  if (_support.util.hasValue(elementId) && !areCoordinatesDefined) {
141
114
  await this.uiautomator2.jwproxy.command(`/element/${elementId}/click`, 'POST');
@@ -148,17 +121,14 @@ commands.tap = async function (elementId = null, x = null, y = null, count = 1)
148
121
  }
149
122
  }
150
123
  };
151
-
152
124
  commands.clear = async function (elementId) {
153
125
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/clear`, 'POST', {
154
126
  elementId
155
127
  });
156
128
  };
157
-
158
129
  commands.getElementRect = async function (elementId) {
159
130
  if (this.isWebContext()) {
160
131
  this.log.debug(`Detected downstream chromedriver protocol: ${this.chromedriver.jwproxy.downstreamProtocol}`);
161
-
162
132
  if (this.chromedriver.jwproxy.downstreamProtocol === _driver.PROTOCOLS.MJSONWP) {
163
133
  const {
164
134
  x,
@@ -175,14 +145,11 @@ commands.getElementRect = async function (elementId) {
175
145
  height
176
146
  };
177
147
  }
178
-
179
148
  return await this.chromedriver.jwproxy.command(`/element/${elementId}/rect`, 'GET');
180
149
  }
181
-
182
150
  return await this.uiautomator2.jwproxy.command(`/element/${elementId}/rect`, 'GET');
183
151
  };
184
-
185
152
  Object.assign(extensions, commands, helpers);
186
153
  var _default = extensions;
187
154
  exports.default = _default;
188
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwidG9Cb29sIiwicyIsIl8iLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwiYWN0aXZlIiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJnZXRBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJlbGVtZW50SWQiLCJlbGVtZW50RGlzcGxheWVkIiwiZWxlbWVudEVuYWJsZWQiLCJlbGVtZW50U2VsZWN0ZWQiLCJnZXROYW1lIiwiZ2V0TG9jYXRpb24iLCJnZXRTaXplIiwidG91Y2hMb25nQ2xpY2siLCJlbGVtZW50IiwieCIsInkiLCJkdXJhdGlvbiIsInBhcmFtcyIsInRvdWNoRG93biIsInRvdWNoVXAiLCJ0b3VjaE1vdmUiLCJkb1NldEVsZW1lbnRWYWx1ZSIsInNldFZhbHVlSW1tZWRpYXRlIiwia2V5cyIsInRleHQiLCJpc0FycmF5Iiwiam9pbiIsInJlcGxhY2UiLCJ1bmljb2RlS2V5Ym9hcmQiLCJvcHRzIiwiZ2V0VGV4dCIsImNsaWNrIiwiZ2V0RWxlbWVudFNjcmVlbnNob3QiLCJ0YXAiLCJjb3VudCIsImFyZUNvb3JkaW5hdGVzRGVmaW5lZCIsInV0aWwiLCJoYXNWYWx1ZSIsIkVycm9yIiwiaSIsIlczQ19FTEVNRU5UX0tFWSIsImNsZWFyIiwiZ2V0RWxlbWVudFJlY3QiLCJpc1dlYkNvbnRleHQiLCJsb2ciLCJkZWJ1ZyIsImNocm9tZWRyaXZlciIsImRvd25zdHJlYW1Qcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJ3aWR0aCIsImhlaWdodCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgUFJPVE9DT0xTLCBXM0NfRUxFTUVOVF9LRVkgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiB0b0Jvb2wgKHMpIHtcbiAgcmV0dXJuIF8uaXNTdHJpbmcocykgPyAocy50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpIDogISFzO1xufVxuXG5jb21tYW5kcy5hY3RpdmUgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmUgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvZWxlbWVudC9hY3RpdmUnLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5nZXRBdHRyaWJ1dGUgPSBhc3luYyBmdW5jdGlvbiAoYXR0cmlidXRlLCBlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L2F0dHJpYnV0ZS8ke2F0dHJpYnV0ZX1gLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZWxlbWVudERpc3BsYXllZCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIHRvQm9vbChhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RW5hYmxlZCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIHRvQm9vbChhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkpO1xufTtcblxuY29tbWFuZHMuZWxlbWVudFNlbGVjdGVkID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gdG9Cb29sKGF3YWl0IHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIGVsZW1lbnRJZCkpO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L25hbWVgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZ2V0TG9jYXRpb24gPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9sb2NhdGlvbmAsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5nZXRTaXplID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnRJZH0vc2l6ZWAsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50LCB4LCB5LCBkdXJhdGlvbikge1xuICBsZXQgcGFyYW1zID0ge2VsZW1lbnQsIHgsIHksIGR1cmF0aW9ufTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL3RvdWNoL2xvbmdjbGlja2AsICdQT1NUJywge3BhcmFtc30pO1xufTtcblxuY29tbWFuZHMudG91Y2hEb3duID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50LCB4LCB5fTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL3RvdWNoL2Rvd25gLCAnUE9TVCcsIHtwYXJhbXN9KTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCwgeCwgeSkge1xuICBsZXQgcGFyYW1zID0ge2VsZW1lbnQsIHgsIHl9O1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvdG91Y2gvdXBgLCAnUE9TVCcsIHtwYXJhbXN9KTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50LCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudCwgeCwgeX07XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9tb3ZlYCwgJ1BPU1QnLCB7cGFyYW1zfSk7XG59O1xuXG5oZWxwZXJzLmRvU2V0RWxlbWVudFZhbHVlID0gYXN5bmMgZnVuY3Rpb24gKHBhcmFtcykge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke3BhcmFtcy5lbGVtZW50SWR9L3ZhbHVlYCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS92YWx1ZWAsICdQT1NUJywge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0OiBfLmlzQXJyYXkoa2V5cykgPyBrZXlzLmpvaW4oJycpIDoga2V5cyxcbiAgICByZXBsYWNlOiBmYWxzZSxcbiAgICB1bmljb2RlS2V5Ym9hcmQ6IHRoaXMub3B0cy51bmljb2RlS2V5Ym9hcmQsXG4gIH0pO1xufTtcblxuY29tbWFuZHMuZ2V0VGV4dCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L3RleHRgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuY2xpY2sgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnR9L2NsaWNrYCwgJ1BPU1QnLCB7ZWxlbWVudH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFNjcmVlbnNob3QgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnR9L3NjcmVlbnNob3RgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMudGFwID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCA9IG51bGwsIHggPSBudWxsLCB5ID0gbnVsbCwgY291bnQgPSAxKSB7XG4gIGNvbnN0IGFyZUNvb3JkaW5hdGVzRGVmaW5lZCA9IHV0aWwuaGFzVmFsdWUoeCkgJiYgdXRpbC5oYXNWYWx1ZSh5KTtcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKGVsZW1lbnRJZCkgJiYgIWFyZUNvb3JkaW5hdGVzRGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgaWQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGlmICh1dGlsLmhhc1ZhbHVlKGVsZW1lbnRJZCkgJiYgIWFyZUNvb3JkaW5hdGVzRGVmaW5lZCkge1xuICAgICAgLy8gd2UgYXJlIGVpdGhlciB0YXBwaW5nIG9uIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBlbGVtZW50XG4gICAgICAvLyBvciBhbiBvZmZzZXQgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyXG4gICAgICBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9jbGlja2AsICdQT1NUJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS90YXBgLCAnUE9TVCcsIHtcbiAgICAgICAgeCwgeSxcbiAgICAgICAgW1czQ19FTEVNRU5UX0tFWV06IGVsZW1lbnRJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufTtcblxuY29tbWFuZHMuY2xlYXIgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9jbGVhcmAsICdQT1NUJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYERldGVjdGVkIGRvd25zdHJlYW0gY2hyb21lZHJpdmVyIHByb3RvY29sOiAke3RoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuZG93bnN0cmVhbVByb3RvY29sfWApO1xuICAgIGlmICh0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1ApIHtcbiAgICAgIGNvbnN0IHt4LCB5fSA9IGF3YWl0IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L2xvY2F0aW9uYCwgJ0dFVCcpO1xuICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gYXdhaXQgdGhpcy5jaHJvbWVkcml2ZXIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnRJZH0vc2l6ZWAsICdHRVQnKTtcbiAgICAgIHJldHVybiB7eCwgeSwgd2lkdGgsIGhlaWdodH07XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9yZWN0YCwgJ0dFVCcpO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9yZWN0YCwgJ0dFVCcpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7O0FBRUEsU0FBU0MsTUFBVCxDQUFpQkMsQ0FBakIsRUFBb0I7RUFDbEIsT0FBT0MsZUFBQSxDQUFFQyxRQUFGLENBQVdGLENBQVgsSUFBaUJBLENBQUMsQ0FBQ0csV0FBRixPQUFvQixNQUFyQyxHQUErQyxDQUFDLENBQUNILENBQXhEO0FBQ0Q7O0FBRURKLFFBQVEsQ0FBQ1EsTUFBVCxHQUFrQixlQUFlQSxNQUFmLEdBQXlCO0VBQ3pDLE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsT0FBMUIsQ0FBa0MsaUJBQWxDLEVBQXFELEtBQXJELENBQWI7QUFDRCxDQUZEOztBQUlBWCxRQUFRLENBQUNZLFlBQVQsR0FBd0IsZ0JBQWdCQyxTQUFoQixFQUEyQkMsU0FBM0IsRUFBc0M7RUFDNUQsT0FBTyxNQUFNLEtBQUtMLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxPQUExQixDQUFtQyxZQUFXRyxTQUFVLGNBQWFELFNBQVUsRUFBL0UsRUFBa0YsS0FBbEYsRUFBeUYsRUFBekYsQ0FBYjtBQUNELENBRkQ7O0FBSUFiLFFBQVEsQ0FBQ2UsZ0JBQVQsR0FBNEIsZ0JB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
155
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwidG9Cb29sIiwicyIsIl8iLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwiYWN0aXZlIiwidWlhdXRvbWF0b3IyIiwiandwcm94eSIsImNvbW1hbmQiLCJnZXRBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJlbGVtZW50SWQiLCJlbGVtZW50RGlzcGxheWVkIiwiZWxlbWVudEVuYWJsZWQiLCJlbGVtZW50U2VsZWN0ZWQiLCJnZXROYW1lIiwiZ2V0TG9jYXRpb24iLCJnZXRTaXplIiwidG91Y2hMb25nQ2xpY2siLCJlbGVtZW50IiwieCIsInkiLCJkdXJhdGlvbiIsInBhcmFtcyIsInRvdWNoRG93biIsInRvdWNoVXAiLCJ0b3VjaE1vdmUiLCJkb1NldEVsZW1lbnRWYWx1ZSIsInNldFZhbHVlSW1tZWRpYXRlIiwia2V5cyIsInRleHQiLCJpc0FycmF5Iiwiam9pbiIsInJlcGxhY2UiLCJ1bmljb2RlS2V5Ym9hcmQiLCJvcHRzIiwiZ2V0VGV4dCIsImNsaWNrIiwiZ2V0RWxlbWVudFNjcmVlbnNob3QiLCJ0YXAiLCJjb3VudCIsImFyZUNvb3JkaW5hdGVzRGVmaW5lZCIsInV0aWwiLCJoYXNWYWx1ZSIsIkVycm9yIiwiaSIsIlczQ19FTEVNRU5UX0tFWSIsImNsZWFyIiwiZ2V0RWxlbWVudFJlY3QiLCJpc1dlYkNvbnRleHQiLCJsb2ciLCJkZWJ1ZyIsImNocm9tZWRyaXZlciIsImRvd25zdHJlYW1Qcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJ3aWR0aCIsImhlaWdodCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgUFJPVE9DT0xTLCBXM0NfRUxFTUVOVF9LRVkgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiB0b0Jvb2wgKHMpIHtcbiAgcmV0dXJuIF8uaXNTdHJpbmcocykgPyAocy50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpIDogISFzO1xufVxuXG5jb21tYW5kcy5hY3RpdmUgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmUgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKCcvZWxlbWVudC9hY3RpdmUnLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5nZXRBdHRyaWJ1dGUgPSBhc3luYyBmdW5jdGlvbiAoYXR0cmlidXRlLCBlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L2F0dHJpYnV0ZS8ke2F0dHJpYnV0ZX1gLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZWxlbWVudERpc3BsYXllZCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIHRvQm9vbChhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RW5hYmxlZCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIHRvQm9vbChhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkpO1xufTtcblxuY29tbWFuZHMuZWxlbWVudFNlbGVjdGVkID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gdG9Cb29sKGF3YWl0IHRoaXMuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIGVsZW1lbnRJZCkpO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L25hbWVgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuZ2V0TG9jYXRpb24gPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9sb2NhdGlvbmAsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5nZXRTaXplID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnRJZH0vc2l6ZWAsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50LCB4LCB5LCBkdXJhdGlvbikge1xuICBsZXQgcGFyYW1zID0ge2VsZW1lbnQsIHgsIHksIGR1cmF0aW9ufTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL3RvdWNoL2xvbmdjbGlja2AsICdQT1NUJywge3BhcmFtc30pO1xufTtcblxuY29tbWFuZHMudG91Y2hEb3duID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50LCB4LCB5fTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL3RvdWNoL2Rvd25gLCAnUE9TVCcsIHtwYXJhbXN9KTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCwgeCwgeSkge1xuICBsZXQgcGFyYW1zID0ge2VsZW1lbnQsIHgsIHl9O1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvdG91Y2gvdXBgLCAnUE9TVCcsIHtwYXJhbXN9KTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50LCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudCwgeCwgeX07XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC90b3VjaC9tb3ZlYCwgJ1BPU1QnLCB7cGFyYW1zfSk7XG59O1xuXG5oZWxwZXJzLmRvU2V0RWxlbWVudFZhbHVlID0gYXN5bmMgZnVuY3Rpb24gKHBhcmFtcykge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke3BhcmFtcy5lbGVtZW50SWR9L3ZhbHVlYCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS92YWx1ZWAsICdQT1NUJywge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0OiBfLmlzQXJyYXkoa2V5cykgPyBrZXlzLmpvaW4oJycpIDoga2V5cyxcbiAgICByZXBsYWNlOiBmYWxzZSxcbiAgICB1bmljb2RlS2V5Ym9hcmQ6IHRoaXMub3B0cy51bmljb2RlS2V5Ym9hcmQsXG4gIH0pO1xufTtcblxuY29tbWFuZHMuZ2V0VGV4dCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L3RleHRgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMuY2xpY2sgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnR9L2NsaWNrYCwgJ1BPU1QnLCB7ZWxlbWVudH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFNjcmVlbnNob3QgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy51aWF1dG9tYXRvcjIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnR9L3NjcmVlbnNob3RgLCAnR0VUJywge30pO1xufTtcblxuY29tbWFuZHMudGFwID0gYXN5bmMgZnVuY3Rpb24gKGVsZW1lbnRJZCA9IG51bGwsIHggPSBudWxsLCB5ID0gbnVsbCwgY291bnQgPSAxKSB7XG4gIGNvbnN0IGFyZUNvb3JkaW5hdGVzRGVmaW5lZCA9IHV0aWwuaGFzVmFsdWUoeCkgJiYgdXRpbC5oYXNWYWx1ZSh5KTtcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKGVsZW1lbnRJZCkgJiYgIWFyZUNvb3JkaW5hdGVzRGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgaWQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGlmICh1dGlsLmhhc1ZhbHVlKGVsZW1lbnRJZCkgJiYgIWFyZUNvb3JkaW5hdGVzRGVmaW5lZCkge1xuICAgICAgLy8gd2UgYXJlIGVpdGhlciB0YXBwaW5nIG9uIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBlbGVtZW50XG4gICAgICAvLyBvciBhbiBvZmZzZXQgZnJvbSB0aGUgdG9wIGxlZnQgY29ybmVyXG4gICAgICBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9jbGlja2AsICdQT1NUJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMudWlhdXRvbWF0b3IyLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS90YXBgLCAnUE9TVCcsIHtcbiAgICAgICAgeCwgeSxcbiAgICAgICAgW1czQ19FTEVNRU5UX0tFWV06IGVsZW1lbnRJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufTtcblxuY29tbWFuZHMuY2xlYXIgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9jbGVhcmAsICdQT1NUJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiAoZWxlbWVudElkKSB7XG4gIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYERldGVjdGVkIGRvd25zdHJlYW0gY2hyb21lZHJpdmVyIHByb3RvY29sOiAke3RoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuZG93bnN0cmVhbVByb3RvY29sfWApO1xuICAgIGlmICh0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1ApIHtcbiAgICAgIGNvbnN0IHt4LCB5fSA9IGF3YWl0IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZChgL2VsZW1lbnQvJHtlbGVtZW50SWR9L2xvY2F0aW9uYCwgJ0dFVCcpO1xuICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gYXdhaXQgdGhpcy5jaHJvbWVkcml2ZXIuandwcm94eS5jb21tYW5kKGAvZWxlbWVudC8ke2VsZW1lbnRJZH0vc2l6ZWAsICdHRVQnKTtcbiAgICAgIHJldHVybiB7eCwgeSwgd2lkdGgsIGhlaWdodH07XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9yZWN0YCwgJ0dFVCcpO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnVpYXV0b21hdG9yMi5qd3Byb3h5LmNvbW1hbmQoYC9lbGVtZW50LyR7ZWxlbWVudElkfS9yZWN0YCwgJ0dFVCcpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0VBQUVDLE9BQU8sR0FBRyxDQUFDLENBQUM7RUFBRUMsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUFDO0FBQUE7QUFFakQsU0FBU0MsTUFBTSxDQUFFQyxDQUFDLEVBQUU7RUFDbEIsT0FBT0MsZUFBQyxDQUFDQyxRQUFRLENBQUNGLENBQUMsQ0FBQyxHQUFJQSxDQUFDLENBQUNHLFdBQVcsRUFBRSxLQUFLLE1BQU0sR0FBSSxDQUFDLENBQUNILENBQUM7QUFDM0Q7QUFFQUosUUFBUSxDQUFDUSxNQUFNLEdBQUcsZUFBZUEsTUFBTSxHQUFJO0VBQ3pDLE9BQU8sTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDO0FBQzFFLENBQUM7QUFFRFgsUUFBUSxDQUFDWSxZQUFZLEdBQUcsZ0JBQWdCQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtFQUM1RCxPQUFPLE1BQU0sSUFBSSxDQUFDTCxZQUFZLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFFLFlBQVdHLFNBQVUsY0FBYUQsU0FBVSxFQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUFFRGIsUUFBUSxDQUFDZSxnQkFBZ0IsR0FBRyxnQkFBZ0JE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
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["commands","helpers","extensions","toBool","s","_","isString","toLowerCase","active","uiautomator2","jwproxy","command","getAttribute","attribute","elementId","elementDisplayed","elementEnabled","elementSelected","getName","getLocation","getSize","touchLongClick","element","x","y","duration","params","touchDown","touchUp","touchMove","doSetElementValue","setValueImmediate","keys","text","isArray","join","replace","unicodeKeyboard","opts","getText","click","getElementScreenshot","tap","count","areCoordinatesDefined","util","hasValue","Error","i","W3C_ELEMENT_KEY","clear","getElementRect","isWebContext","log","debug","chromedriver","downstreamProtocol","PROTOCOLS","MJSONWP","width","height","Object","assign"],"sources":["../../../lib/commands/element.js"],"sourcesContent":["import _ from 'lodash';\nimport { util } from 'appium/support';\nimport { PROTOCOLS, W3C_ELEMENT_KEY } from 'appium/driver';\n\nlet commands = {}, helpers = {}, extensions = {};\n\nfunction toBool (s) {\n return _.isString(s) ? (s.toLowerCase() === 'true') : !!s;\n}\n\ncommands.active = async function active () {\n return await this.uiautomator2.jwproxy.command('/element/active', 'GET');\n};\n\ncommands.getAttribute = async function (attribute, elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/attribute/${attribute}`, 'GET', {});\n};\n\ncommands.elementDisplayed = async function (elementId) {\n return toBool(await this.getAttribute('displayed', elementId));\n};\n\ncommands.elementEnabled = async function (elementId) {\n return toBool(await this.getAttribute('enabled', elementId));\n};\n\ncommands.elementSelected = async function (elementId) {\n return toBool(await this.getAttribute('selected', elementId));\n};\n\ncommands.getName = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/name`, 'GET', {});\n};\n\ncommands.getLocation = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/location`, 'GET', {});\n};\n\ncommands.getSize = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/size`, 'GET', {});\n};\n\ncommands.touchLongClick = async function (element, x, y, duration) {\n let params = {element, x, y, duration};\n return await this.uiautomator2.jwproxy.command(`/touch/longclick`, 'POST', {params});\n};\n\ncommands.touchDown = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/down`, 'POST', {params});\n};\n\ncommands.touchUp = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/up`, 'POST', {params});\n};\n\ncommands.touchMove = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/move`, 'POST', {params});\n};\n\nhelpers.doSetElementValue = async function (params) {\n return await this.uiautomator2.jwproxy.command(`/element/${params.elementId}/value`, 'POST', params);\n};\n\ncommands.setValueImmediate = async function (keys, elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/value`, 'POST', {\n elementId,\n text: _.isArray(keys) ? keys.join('') : keys,\n replace: false,\n unicodeKeyboard: this.opts.unicodeKeyboard,\n });\n};\n\ncommands.getText = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/text`, 'GET', {});\n};\n\ncommands.click = async function (element) {\n return await this.uiautomator2.jwproxy.command(`/element/${element}/click`, 'POST', {element});\n};\n\ncommands.getElementScreenshot = async function (element) {\n return await this.uiautomator2.jwproxy.command(`/element/${element}/screenshot`, 'GET', {});\n};\n\ncommands.tap = async function (elementId = null, x = null, y = null, count = 1) {\n const areCoordinatesDefined = util.hasValue(x) && util.hasValue(y);\n if (!util.hasValue(elementId) && !areCoordinatesDefined) {\n throw new Error(`Either element id to tap or both absolute coordinates should be defined`);\n }\n\n for (let i = 0; i < count; i++) {\n if (util.hasValue(elementId) && !areCoordinatesDefined) {\n // we are either tapping on the default location of the element\n // or an offset from the top left corner\n await this.uiautomator2.jwproxy.command(`/element/${elementId}/click`, 'POST');\n } else {\n await this.uiautomator2.jwproxy.command(`/appium/tap`, 'POST', {\n x, y,\n [W3C_ELEMENT_KEY]: elementId,\n });\n }\n }\n};\n\ncommands.clear = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/clear`, 'POST', {elementId});\n};\n\ncommands.getElementRect = async function (elementId) {\n if (this.isWebContext()) {\n this.log.debug(`Detected downstream chromedriver protocol: ${this.chromedriver.jwproxy.downstreamProtocol}`);\n if (this.chromedriver.jwproxy.downstreamProtocol === PROTOCOLS.MJSONWP) {\n const {x, y} = await this.chromedriver.jwproxy.command(`/element/${elementId}/location`, 'GET');\n const {width, height} = await this.chromedriver.jwproxy.command(`/element/${elementId}/size`, 'GET');\n return {x, y, width, height};\n }\n return await this.chromedriver.jwproxy.command(`/element/${elementId}/rect`, 'GET');\n }\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/rect`, 'GET');\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}
1
+ {"version":3,"file":"element.js","names":["commands","helpers","extensions","toBool","s","_","isString","toLowerCase","active","uiautomator2","jwproxy","command","getAttribute","attribute","elementId","elementDisplayed","elementEnabled","elementSelected","getName","getLocation","getSize","touchLongClick","element","x","y","duration","params","touchDown","touchUp","touchMove","doSetElementValue","setValueImmediate","keys","text","isArray","join","replace","unicodeKeyboard","opts","getText","click","getElementScreenshot","tap","count","areCoordinatesDefined","util","hasValue","Error","i","W3C_ELEMENT_KEY","clear","getElementRect","isWebContext","log","debug","chromedriver","downstreamProtocol","PROTOCOLS","MJSONWP","width","height","Object","assign"],"sources":["../../../lib/commands/element.js"],"sourcesContent":["import _ from 'lodash';\nimport { util } from 'appium/support';\nimport { PROTOCOLS, W3C_ELEMENT_KEY } from 'appium/driver';\n\nlet commands = {}, helpers = {}, extensions = {};\n\nfunction toBool (s) {\n return _.isString(s) ? (s.toLowerCase() === 'true') : !!s;\n}\n\ncommands.active = async function active () {\n return await this.uiautomator2.jwproxy.command('/element/active', 'GET');\n};\n\ncommands.getAttribute = async function (attribute, elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/attribute/${attribute}`, 'GET', {});\n};\n\ncommands.elementDisplayed = async function (elementId) {\n return toBool(await this.getAttribute('displayed', elementId));\n};\n\ncommands.elementEnabled = async function (elementId) {\n return toBool(await this.getAttribute('enabled', elementId));\n};\n\ncommands.elementSelected = async function (elementId) {\n return toBool(await this.getAttribute('selected', elementId));\n};\n\ncommands.getName = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/name`, 'GET', {});\n};\n\ncommands.getLocation = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/location`, 'GET', {});\n};\n\ncommands.getSize = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/size`, 'GET', {});\n};\n\ncommands.touchLongClick = async function (element, x, y, duration) {\n let params = {element, x, y, duration};\n return await this.uiautomator2.jwproxy.command(`/touch/longclick`, 'POST', {params});\n};\n\ncommands.touchDown = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/down`, 'POST', {params});\n};\n\ncommands.touchUp = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/up`, 'POST', {params});\n};\n\ncommands.touchMove = async function (element, x, y) {\n let params = {element, x, y};\n return await this.uiautomator2.jwproxy.command(`/touch/move`, 'POST', {params});\n};\n\nhelpers.doSetElementValue = async function (params) {\n return await this.uiautomator2.jwproxy.command(`/element/${params.elementId}/value`, 'POST', params);\n};\n\ncommands.setValueImmediate = async function (keys, elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/value`, 'POST', {\n elementId,\n text: _.isArray(keys) ? keys.join('') : keys,\n replace: false,\n unicodeKeyboard: this.opts.unicodeKeyboard,\n });\n};\n\ncommands.getText = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/text`, 'GET', {});\n};\n\ncommands.click = async function (element) {\n return await this.uiautomator2.jwproxy.command(`/element/${element}/click`, 'POST', {element});\n};\n\ncommands.getElementScreenshot = async function (element) {\n return await this.uiautomator2.jwproxy.command(`/element/${element}/screenshot`, 'GET', {});\n};\n\ncommands.tap = async function (elementId = null, x = null, y = null, count = 1) {\n const areCoordinatesDefined = util.hasValue(x) && util.hasValue(y);\n if (!util.hasValue(elementId) && !areCoordinatesDefined) {\n throw new Error(`Either element id to tap or both absolute coordinates should be defined`);\n }\n\n for (let i = 0; i < count; i++) {\n if (util.hasValue(elementId) && !areCoordinatesDefined) {\n // we are either tapping on the default location of the element\n // or an offset from the top left corner\n await this.uiautomator2.jwproxy.command(`/element/${elementId}/click`, 'POST');\n } else {\n await this.uiautomator2.jwproxy.command(`/appium/tap`, 'POST', {\n x, y,\n [W3C_ELEMENT_KEY]: elementId,\n });\n }\n }\n};\n\ncommands.clear = async function (elementId) {\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/clear`, 'POST', {elementId});\n};\n\ncommands.getElementRect = async function (elementId) {\n if (this.isWebContext()) {\n this.log.debug(`Detected downstream chromedriver protocol: ${this.chromedriver.jwproxy.downstreamProtocol}`);\n if (this.chromedriver.jwproxy.downstreamProtocol === PROTOCOLS.MJSONWP) {\n const {x, y} = await this.chromedriver.jwproxy.command(`/element/${elementId}/location`, 'GET');\n const {width, height} = await this.chromedriver.jwproxy.command(`/element/${elementId}/size`, 'GET');\n return {x, y, width, height};\n }\n return await this.chromedriver.jwproxy.command(`/element/${elementId}/rect`, 'GET');\n }\n return await this.uiautomator2.jwproxy.command(`/element/${elementId}/rect`, 'GET');\n};\n\nObject.assign(extensions, commands, helpers);\nexport { commands, helpers };\nexport default extensions;\n"],"mappings":"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"}