appium-espresso-driver 2.18.1 → 2.19.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [2.19.0](https://github.com/appium/appium-espresso-driver/compare/v2.18.1...v2.19.0) (2023-03-26)
2
+
3
+
4
+ ### Features
5
+
6
+ * Expose API to Wait For UI Thread ([#864](https://github.com/appium/appium-espresso-driver/issues/864)) ([18d71f6](https://github.com/appium/appium-espresso-driver/commit/18d71f60f4c55be608f5e80ebf69e615a900e9f5))
7
+
1
8
  ## [2.18.1](https://github.com/appium/appium-espresso-driver/compare/v2.18.0...v2.18.1) (2023-03-22)
2
9
 
3
10
 
package/README.md CHANGED
@@ -1121,6 +1121,12 @@ Lists all the previously registered [idling resources](https://developer.android
1121
1121
 
1122
1122
  List of fully qualified class names of currently registered idling resources or an empty list if no resources have been registered yet.
1123
1123
 
1124
+ ### mobile: waitForUIThread
1125
+
1126
+ - Wait for the UI thread to become idle, in other words, wait for the APP to become idle(https://developer.android.com/reference/androidx/test/espresso/UiController#loopMainThreadUntilIdle()).
1127
+ - Use case: On compose and native combination screens, it's possible for the Espresso API to block the UI thread, which can cause the app to freeze. To resolve this issue, it's recommended to explicitly call the `mobile:waitForUIThread` API, which can help to unfreeze the UI thread.
1128
+
1129
+
1124
1130
  ### mobile: unlock
1125
1131
 
1126
1132
  Unlocks the device if it is locked. Noop if the device's screen is not locked.
@@ -57,6 +57,7 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
57
57
  registerIdlingResources: 'mobileRegisterIdlingResources',
58
58
  unregisterIdlingResources: 'mobileUnregisterIdlingResources',
59
59
  listIdlingResources: 'mobileListIdlingResources',
60
+ waitForUIThread: 'mobileWaitForUIThread',
60
61
  unlock: 'mobileUnlock',
61
62
  refreshGpsCache: 'mobileRefreshGpsCache',
62
63
  startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',
@@ -70,4 +71,4 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
70
71
  };
71
72
  var _default = extensions;
72
73
  exports.default = _default;
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiZXh0ZW5zaW9ucyIsImV4ZWN1dGVNb2JpbGUiLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJzdGFydFNjcmVlblN0cmVhbWluZyIsInN0b3BTY3JlZW5TdHJlYW1pbmciLCJzd2lwZSIsInNjcm9sbFRvUGFnZSIsIm5hdmlnYXRlVG8iLCJjbGlja0FjdGlvbiIsImRldmljZUluZm8iLCJpc1RvYXN0VmlzaWJsZSIsIm9wZW5EcmF3ZXIiLCJjbG9zZURyYXdlciIsInNldERhdGUiLCJzZXRUaW1lIiwiZ2V0RGV2aWNlVGltZSIsImJhY2tkb29yIiwiZmxhc2hFbGVtZW50IiwidWlhdXRvbWF0b3IiLCJ1aWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJ3ZWJBdG9tcyIsImdldENvbnRleHRzIiwiZGlzbWlzc0F1dG9maWxsIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJzZW5zb3JTZXQiLCJwdXNoRmlsZSIsInB1bGxGaWxlIiwicHVsbEZvbGRlciIsImRlbGV0ZUZpbGUiLCJpc0FwcEluc3RhbGxlZCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsInJlbW92ZUFwcCIsInRlcm1pbmF0ZUFwcCIsImluc3RhbGxBcHAiLCJjbGVhckFwcCIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZyIsInN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmciLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBzdGFydFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nJyxcbiAgICBzdG9wU2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZycsXG5cbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICBzY3JvbGxUb1BhZ2U6ICdtb2JpbGVTY3JvbGxUb1BhZ2UnLFxuICAgIG5hdmlnYXRlVG86ICdtb2JpbGVOYXZpZ2F0ZVRvJyxcbiAgICBjbGlja0FjdGlvbjogJ21vYmlsZUNsaWNrQWN0aW9uJyxcblxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcblxuICAgIGlzVG9hc3RWaXNpYmxlOiAnbW9iaWxlSXNUb2FzdFZpc2libGUnLFxuXG4gICAgb3BlbkRyYXdlcjogJ21vYmlsZU9wZW5EcmF3ZXInLFxuICAgIGNsb3NlRHJhd2VyOiAnbW9iaWxlQ2xvc2VEcmF3ZXInLFxuXG4gICAgc2V0RGF0ZTogJ21vYmlsZVNldERhdGUnLFxuICAgIHNldFRpbWU6ICdtb2JpbGVTZXRUaW1lJyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIGJhY2tkb29yOiAnbW9iaWxlQmFja2Rvb3InLFxuXG4gICAgZmxhc2hFbGVtZW50OiAnbW9iaWxlRmxhc2hFbGVtZW50JyxcblxuICAgIHVpYXV0b21hdG9yOiAnbW9iaWxlVWlhdXRvbWF0b3InLFxuICAgIHVpYXV0b21hdG9yUGFnZVNvdXJjZTogJ21vYmlsZVVpYXV0b21hdG9yUGFnZVNvdXJjZScsXG5cbiAgICB3ZWJBdG9tczogJ21vYmlsZVdlYkF0b21zJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIGRpc21pc3NBdXRvZmlsbDogJ21vYmlsZURpc21pc3NBdXRvZmlsbCcsXG5cbiAgICBnZXROb3RpZmljYXRpb25zOiAnbW9iaWxlR2V0Tm90aWZpY2F0aW9ucycsXG5cbiAgICBsaXN0U21zOiAnbW9iaWxlTGlzdFNtcycsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgcHVzaEZpbGU6ICdtb2JpbGVQdXNoRmlsZScsXG4gICAgcHVsbEZpbGU6ICdtb2JpbGVQdWxsRmlsZScsXG4gICAgcHVsbEZvbGRlcjogJ21vYmlsZVB1bGxGb2xkZXInLFxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcblxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHF1ZXJ5QXBwU3RhdGU6ICdtb2JpbGVRdWVyeUFwcFN0YXRlJyxcbiAgICBhY3RpdmF0ZUFwcDogJ21vYmlsZUFjdGl2YXRlQXBwJyxcbiAgICByZW1vdmVBcHA6ICdtb2JpbGVSZW1vdmVBcHAnLFxuICAgIHRlcm1pbmF0ZUFwcDogJ21vYmlsZVRlcm1pbmF0ZUFwcCcsXG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGNsZWFyQXBwOiAnbW9iaWxlQ2xlYXJBcHAnLFxuXG4gICAgc3RhcnRBY3Rpdml0eTogJ21vYmlsZVN0YXJ0QWN0aXZpdHknLFxuICAgIHN0YXJ0U2VydmljZTogJ21vYmlsZVN0YXJ0U2VydmljZScsXG4gICAgc3RvcFNlcnZpY2U6ICdtb2JpbGVTdG9wU2VydmljZScsXG4gICAgYnJvYWRjYXN0OiAnbW9iaWxlQnJvYWRjYXN0JyxcblxuICAgIHJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIHVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICBsaXN0SWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuXG4gICAgcmVmcmVzaEdwc0NhY2hlOiAnbW9iaWxlUmVmcmVzaEdwc0NhY2hlJyxcblxuICAgIHN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICAgIGlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZzogJ21vYmlsZUlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZycsXG4gICAgc3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUVBLE1BQU1FLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFFckJBLFVBQVUsQ0FBQ0MsYUFBYSxHQUFHLGVBQWVBLGFBQWFBLENBQUVDLGFBQWEsRUFBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ2pGLE1BQU1DLHFCQUFxQixHQUFHO0lBQzVCQyxLQUFLLEVBQUUsYUFBYTtJQUVwQkMscUJBQXFCLEVBQUUsNkJBQTZCO0lBRXBEQyxtQkFBbUIsRUFBRSwyQkFBMkI7SUFFaERDLGlCQUFpQixFQUFFLHlCQUF5QjtJQUM1Q0MsY0FBYyxFQUFFLHNCQUFzQjtJQUV0Q0Msb0JBQW9CLEVBQUUsNEJBQTRCO0lBQ2xEQyxtQkFBbUIsRUFBRSwyQkFBMkI7SUFFaERDLEtBQUssRUFBRSxhQUFhO0lBQ3BCQyxZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCQyxXQUFXLEVBQUUsbUJBQW1CO0lBRWhDQyxVQUFVLEVBQUUscUJBQXFCO0lBRWpDQyxjQUFjLEVBQUUsc0JBQXNCO0lBRXRDQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCQyxXQUFXLEVBQUUsbUJBQW1CO0lBRWhDQyxPQUFPLEVBQUUsZUFBZTtJQUN4QkMsT0FBTyxFQUFFLGVBQWU7SUFFeEJDLGFBQWEsRUFBRSxxQkFBcUI7SUFFcENDLFFBQVEsRUFBRSxnQkFBZ0I7SUFFMUJDLFlBQVksRUFBRSxvQkFBb0I7SUFFbENDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaENDLHFCQUFxQixFQUFFLDZCQUE2QjtJQUVwREMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQkMsV0FBVyxFQUFFLG1CQUFtQjtJQUVoQ0MsZUFBZSxFQUFFLHVCQUF1QjtJQUV4Q0MsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBRTFDQyxPQUFPLEVBQUUsZUFBZTtJQUV4QkMsU0FBUyxFQUFFLFdBQVc7SUFFdEJDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUJDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUJDLFVBQVUsRUFBRSxrQkFBa0I7SUFFOUJDLGNBQWMsRUFBRSxzQkFBc0I7SUFDdENDLGFBQWEsRUFBRSxxQkFBcUI7SUFDcENDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaENDLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUJDLFlBQVksRUFBRSxvQkFBb0I7SUFDbENDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUJDLFFBQVEsRUFBRSxnQkFBZ0I7SUFFMUJDLGFBQWEsRUFBRSxxQkFBcUI7SUFDcENDLFlBQVksRUFBRSxvQkFBb0I7SUFDbENDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaENDLFNBQVMsRUFBRSxpQkFBaUI7SUFFNUJDLHVCQUF1QixFQUFFLCtCQUErQjtJQUN4REMseUJBQXlCLEVBQUUsaUNBQWlDO0lBQzVEQyxtQkFBbUIsRUFBRSwyQkFBMkI7SUFFaERDLE1BQU0sRUFBRSxjQUFjO0lBRXRCQyxlQUFlLEVBQUUsdUJBQXVCO0lBRXhDQyw2QkFBNkIsRUFBRSxxQ0FBcUM7SUFDcEVDLGlDQUFpQyxFQUFFLHlDQUF5QztJQUM1RUMsNEJBQTRCLEVBQUU7RUFDaEMsQ0FBQztFQUVELElBQUksQ0FBQ0MsZUFBQyxDQUFDQyxHQUFHLENBQUNyRCxxQkFBcUIsRUFBRUYsYUFBYSxDQUFDLEVBQUU7SUFDaEQsTUFBTSxJQUFJd0QsY0FBTSxDQUFDQyxtQkFBbUIsQ0FBRSwyQkFBMEJ6RCxhQUFjLEtBQUksR0FDL0UsUUFBT3NELGVBQUMsQ0FBQ0ksSUFBSSxDQUFDeEQscUJBQXFCLENBQUUsMEJBQXlCLENBQUM7RUFDcEU7RUFDQSxPQUFPLE1BQU0sSUFBSSxDQUFDQSxxQkFBcUIsQ0FBQ0YsYUFBYSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0FBQy9ELENBQUM7QUFBQyxJQUFBMEQsUUFBQSxHQUVhN0QsVUFBVTtBQUFBOEQsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
74
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiZXh0ZW5zaW9ucyIsImV4ZWN1dGVNb2JpbGUiLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJzdGFydFNjcmVlblN0cmVhbWluZyIsInN0b3BTY3JlZW5TdHJlYW1pbmciLCJzd2lwZSIsInNjcm9sbFRvUGFnZSIsIm5hdmlnYXRlVG8iLCJjbGlja0FjdGlvbiIsImRldmljZUluZm8iLCJpc1RvYXN0VmlzaWJsZSIsIm9wZW5EcmF3ZXIiLCJjbG9zZURyYXdlciIsInNldERhdGUiLCJzZXRUaW1lIiwiZ2V0RGV2aWNlVGltZSIsImJhY2tkb29yIiwiZmxhc2hFbGVtZW50IiwidWlhdXRvbWF0b3IiLCJ1aWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJ3ZWJBdG9tcyIsImdldENvbnRleHRzIiwiZGlzbWlzc0F1dG9maWxsIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJzZW5zb3JTZXQiLCJwdXNoRmlsZSIsInB1bGxGaWxlIiwicHVsbEZvbGRlciIsImRlbGV0ZUZpbGUiLCJpc0FwcEluc3RhbGxlZCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsInJlbW92ZUFwcCIsInRlcm1pbmF0ZUFwcCIsImluc3RhbGxBcHAiLCJjbGVhckFwcCIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ3YWl0Rm9yVUlUaHJlYWQiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZyIsInN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmciLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBzdGFydFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nJyxcbiAgICBzdG9wU2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZycsXG5cbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICBzY3JvbGxUb1BhZ2U6ICdtb2JpbGVTY3JvbGxUb1BhZ2UnLFxuICAgIG5hdmlnYXRlVG86ICdtb2JpbGVOYXZpZ2F0ZVRvJyxcbiAgICBjbGlja0FjdGlvbjogJ21vYmlsZUNsaWNrQWN0aW9uJyxcblxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcblxuICAgIGlzVG9hc3RWaXNpYmxlOiAnbW9iaWxlSXNUb2FzdFZpc2libGUnLFxuXG4gICAgb3BlbkRyYXdlcjogJ21vYmlsZU9wZW5EcmF3ZXInLFxuICAgIGNsb3NlRHJhd2VyOiAnbW9iaWxlQ2xvc2VEcmF3ZXInLFxuXG4gICAgc2V0RGF0ZTogJ21vYmlsZVNldERhdGUnLFxuICAgIHNldFRpbWU6ICdtb2JpbGVTZXRUaW1lJyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIGJhY2tkb29yOiAnbW9iaWxlQmFja2Rvb3InLFxuXG4gICAgZmxhc2hFbGVtZW50OiAnbW9iaWxlRmxhc2hFbGVtZW50JyxcblxuICAgIHVpYXV0b21hdG9yOiAnbW9iaWxlVWlhdXRvbWF0b3InLFxuICAgIHVpYXV0b21hdG9yUGFnZVNvdXJjZTogJ21vYmlsZVVpYXV0b21hdG9yUGFnZVNvdXJjZScsXG5cbiAgICB3ZWJBdG9tczogJ21vYmlsZVdlYkF0b21zJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIGRpc21pc3NBdXRvZmlsbDogJ21vYmlsZURpc21pc3NBdXRvZmlsbCcsXG5cbiAgICBnZXROb3RpZmljYXRpb25zOiAnbW9iaWxlR2V0Tm90aWZpY2F0aW9ucycsXG5cbiAgICBsaXN0U21zOiAnbW9iaWxlTGlzdFNtcycsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgcHVzaEZpbGU6ICdtb2JpbGVQdXNoRmlsZScsXG4gICAgcHVsbEZpbGU6ICdtb2JpbGVQdWxsRmlsZScsXG4gICAgcHVsbEZvbGRlcjogJ21vYmlsZVB1bGxGb2xkZXInLFxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcblxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHF1ZXJ5QXBwU3RhdGU6ICdtb2JpbGVRdWVyeUFwcFN0YXRlJyxcbiAgICBhY3RpdmF0ZUFwcDogJ21vYmlsZUFjdGl2YXRlQXBwJyxcbiAgICByZW1vdmVBcHA6ICdtb2JpbGVSZW1vdmVBcHAnLFxuICAgIHRlcm1pbmF0ZUFwcDogJ21vYmlsZVRlcm1pbmF0ZUFwcCcsXG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGNsZWFyQXBwOiAnbW9iaWxlQ2xlYXJBcHAnLFxuXG4gICAgc3RhcnRBY3Rpdml0eTogJ21vYmlsZVN0YXJ0QWN0aXZpdHknLFxuICAgIHN0YXJ0U2VydmljZTogJ21vYmlsZVN0YXJ0U2VydmljZScsXG4gICAgc3RvcFNlcnZpY2U6ICdtb2JpbGVTdG9wU2VydmljZScsXG4gICAgYnJvYWRjYXN0OiAnbW9iaWxlQnJvYWRjYXN0JyxcblxuICAgIHJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIHVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICBsaXN0SWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcycsXG4gICAgd2FpdEZvclVJVGhyZWFkOiAnbW9iaWxlV2FpdEZvclVJVGhyZWFkJyxcblxuICAgIHVubG9jazogJ21vYmlsZVVubG9jaycsXG5cbiAgICByZWZyZXNoR3BzQ2FjaGU6ICdtb2JpbGVSZWZyZXNoR3BzQ2FjaGUnLFxuXG4gICAgc3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmc6ICdtb2JpbGVTdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZycsXG4gICAgaXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nOiAnbW9iaWxlSXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nJyxcbiAgICBzdG9wTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZycsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhtb2JpbGVDb21tYW5kc01hcHBpbmcsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kIFwiJHttb2JpbGVDb21tYW5kfVwiLiBgICtcbiAgICAgIGBPbmx5ICR7Xy5rZXlzKG1vYmlsZUNvbW1hbmRzTWFwcGluZyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbbW9iaWxlQ29tbWFuZHNNYXBwaW5nW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsTUFBTUUsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVyQkEsVUFBVSxDQUFDQyxhQUFhLEdBQUcsZUFBZUEsYUFBYUEsQ0FBRUMsYUFBYSxFQUFFQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQUFhO0lBRXBCQyxxQkFBcUIsRUFBRSw2QkFBNkI7SUFFcERDLG1CQUFtQixFQUFFLDJCQUEyQjtJQUVoREMsaUJBQWlCLEVBQUUseUJBQXlCO0lBQzVDQyxjQUFjLEVBQUUsc0JBQXNCO0lBRXRDQyxvQkFBb0IsRUFBRSw0QkFBNEI7SUFDbERDLG1CQUFtQixFQUFFLDJCQUEyQjtJQUVoREMsS0FBSyxFQUFFLGFBQWE7SUFDcEJDLFlBQVksRUFBRSxvQkFBb0I7SUFDbENDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUJDLFdBQVcsRUFBRSxtQkFBbUI7SUFFaENDLFVBQVUsRUFBRSxxQkFBcUI7SUFFakNDLGNBQWMsRUFBRSxzQkFBc0I7SUFFdENDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUJDLFdBQVcsRUFBRSxtQkFBbUI7SUFFaENDLE9BQU8sRUFBRSxlQUFlO0lBQ3hCQyxPQUFPLEVBQUUsZUFBZTtJQUV4QkMsYUFBYSxFQUFFLHFCQUFxQjtJQUVwQ0MsUUFBUSxFQUFFLGdCQUFnQjtJQUUxQkMsWUFBWSxFQUFFLG9CQUFvQjtJQUVsQ0MsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQ0MscUJBQXFCLEVBQUUsNkJBQTZCO0lBRXBEQyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCQyxXQUFXLEVBQUUsbUJBQW1CO0lBRWhDQyxlQUFlLEVBQUUsdUJBQXVCO0lBRXhDQyxnQkFBZ0IsRUFBRSx3QkFBd0I7SUFFMUNDLE9BQU8sRUFBRSxlQUFlO0lBRXhCQyxTQUFTLEVBQUUsV0FBVztJQUV0QkMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQkMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQkMsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QkMsVUFBVSxFQUFFLGtCQUFrQjtJQUU5QkMsY0FBYyxFQUFFLHNCQUFzQjtJQUN0Q0MsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQ0MsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQ0MsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QkMsWUFBWSxFQUFFLG9CQUFvQjtJQUNsQ0MsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QkMsUUFBUSxFQUFFLGdCQUFnQjtJQUUxQkMsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQ0MsWUFBWSxFQUFFLG9CQUFvQjtJQUNsQ0MsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQ0MsU0FBUyxFQUFFLGlCQUFpQjtJQUU1QkMsdUJBQXVCLEVBQUUsK0JBQStCO0lBQ3hEQyx5QkFBeUIsRUFBRSxpQ0FBaUM7SUFDNURDLG1CQUFtQixFQUFFLDJCQUEyQjtJQUNoREMsZUFBZSxFQUFFLHVCQUF1QjtJQUV4Q0MsTUFBTSxFQUFFLGNBQWM7SUFFdEJDLGVBQWUsRUFBRSx1QkFBdUI7SUFFeENDLDZCQUE2QixFQUFFLHFDQUFxQztJQUNwRUMsaUNBQWlDLEVBQUUseUNBQXlDO0lBQzVFQyw0QkFBNEIsRUFBRTtFQUNoQyxDQUFDO0VBRUQsSUFBSSxDQUFDQyxlQUFDLENBQUNDLEdBQUcsQ0FBQ3RELHFCQUFxQixFQUFFRixhQUFhLENBQUMsRUFBRTtJQUNoRCxNQUFNLElBQUl5RCxjQUFNLENBQUNDLG1CQUFtQixDQUFFLDJCQUEwQjFELGFBQWMsS0FBSSxHQUMvRSxRQUFPdUQsZUFBQyxDQUFDSSxJQUFJLENBQUN6RCxxQkFBcUIsQ0FBRSwwQkFBeUIsQ0FBQztFQUNwRTtFQUNBLE9BQU8sTUFBTSxJQUFJLENBQUNBLHFCQUFxQixDQUFDRixhQUFhLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUM7QUFDL0QsQ0FBQztBQUFDLElBQUEyRCxRQUFBLEdBRWE5RCxVQUFVO0FBQUErRCxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","names":["_lodash","_interopRequireDefault","require","_driver","extensions","executeMobile","mobileCommand","opts","mobileCommandsMapping","shell","execEmuConsoleCommand","performEditorAction","changePermissions","getPermissions","startScreenStreaming","stopScreenStreaming","swipe","scrollToPage","navigateTo","clickAction","deviceInfo","isToastVisible","openDrawer","closeDrawer","setDate","setTime","getDeviceTime","backdoor","flashElement","uiautomator","uiautomatorPageSource","webAtoms","getContexts","dismissAutofill","getNotifications","listSms","sensorSet","pushFile","pullFile","pullFolder","deleteFile","isAppInstalled","queryAppState","activateApp","removeApp","terminateApp","installApp","clearApp","startActivity","startService","stopService","broadcast","registerIdlingResources","unregisterIdlingResources","listIdlingResources","unlock","refreshGpsCache","startMediaProjectionRecording","isMediaProjectionRecordingRunning","stopMediaProjectionRecording","_","has","errors","UnknownCommandError","keys","_default","exports","default"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport { errors } from 'appium/driver';\n\nconst extensions = {};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const mobileCommandsMapping = {\n shell: 'mobileShell',\n\n execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',\n\n performEditorAction: 'mobilePerformEditorAction',\n\n changePermissions: 'mobileChangePermissions',\n getPermissions: 'mobileGetPermissions',\n\n startScreenStreaming: 'mobileStartScreenStreaming',\n stopScreenStreaming: 'mobileStopScreenStreaming',\n\n swipe: 'mobileSwipe',\n scrollToPage: 'mobileScrollToPage',\n navigateTo: 'mobileNavigateTo',\n clickAction: 'mobileClickAction',\n\n deviceInfo: 'mobileGetDeviceInfo',\n\n isToastVisible: 'mobileIsToastVisible',\n\n openDrawer: 'mobileOpenDrawer',\n closeDrawer: 'mobileCloseDrawer',\n\n setDate: 'mobileSetDate',\n setTime: 'mobileSetTime',\n\n getDeviceTime: 'mobileGetDeviceTime',\n\n backdoor: 'mobileBackdoor',\n\n flashElement: 'mobileFlashElement',\n\n uiautomator: 'mobileUiautomator',\n uiautomatorPageSource: 'mobileUiautomatorPageSource',\n\n webAtoms: 'mobileWebAtoms',\n getContexts: 'mobileGetContexts',\n\n dismissAutofill: 'mobileDismissAutofill',\n\n getNotifications: 'mobileGetNotifications',\n\n listSms: 'mobileListSms',\n\n sensorSet: 'sensorSet',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n\n isAppInstalled: 'mobileIsAppInstalled',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n removeApp: 'mobileRemoveApp',\n terminateApp: 'mobileTerminateApp',\n installApp: 'mobileInstallApp',\n clearApp: 'mobileClearApp',\n\n startActivity: 'mobileStartActivity',\n startService: 'mobileStartService',\n stopService: 'mobileStopService',\n broadcast: 'mobileBroadcast',\n\n registerIdlingResources: 'mobileRegisterIdlingResources',\n unregisterIdlingResources: 'mobileUnregisterIdlingResources',\n listIdlingResources: 'mobileListIdlingResources',\n\n unlock: 'mobileUnlock',\n\n refreshGpsCache: 'mobileRefreshGpsCache',\n\n startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',\n isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',\n stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',\n };\n\n if (!_.has(mobileCommandsMapping, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command \"${mobileCommand}\". ` +\n `Only ${_.keys(mobileCommandsMapping)} commands are supported.`);\n }\n return await this[mobileCommandsMapping[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,UAAU,GAAG,CAAC,CAAC;AAErBA,UAAU,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAEC,aAAa,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACjF,MAAMC,qBAAqB,GAAG;IAC5BC,KAAK,EAAE,aAAa;IAEpBC,qBAAqB,EAAE,6BAA6B;IAEpDC,mBAAmB,EAAE,2BAA2B;IAEhDC,iBAAiB,EAAE,yBAAyB;IAC5CC,cAAc,EAAE,sBAAsB;IAEtCC,oBAAoB,EAAE,4BAA4B;IAClDC,mBAAmB,EAAE,2BAA2B;IAEhDC,KAAK,EAAE,aAAa;IACpBC,YAAY,EAAE,oBAAoB;IAClCC,UAAU,EAAE,kBAAkB;IAC9BC,WAAW,EAAE,mBAAmB;IAEhCC,UAAU,EAAE,qBAAqB;IAEjCC,cAAc,EAAE,sBAAsB;IAEtCC,UAAU,EAAE,kBAAkB;IAC9BC,WAAW,EAAE,mBAAmB;IAEhCC,OAAO,EAAE,eAAe;IACxBC,OAAO,EAAE,eAAe;IAExBC,aAAa,EAAE,qBAAqB;IAEpCC,QAAQ,EAAE,gBAAgB;IAE1BC,YAAY,EAAE,oBAAoB;IAElCC,WAAW,EAAE,mBAAmB;IAChCC,qBAAqB,EAAE,6BAA6B;IAEpDC,QAAQ,EAAE,gBAAgB;IAC1BC,WAAW,EAAE,mBAAmB;IAEhCC,eAAe,EAAE,uBAAuB;IAExCC,gBAAgB,EAAE,wBAAwB;IAE1CC,OAAO,EAAE,eAAe;IAExBC,SAAS,EAAE,WAAW;IAEtBC,QAAQ,EAAE,gBAAgB;IAC1BC,QAAQ,EAAE,gBAAgB;IAC1BC,UAAU,EAAE,kBAAkB;IAC9BC,UAAU,EAAE,kBAAkB;IAE9BC,cAAc,EAAE,sBAAsB;IACtCC,aAAa,EAAE,qBAAqB;IACpCC,WAAW,EAAE,mBAAmB;IAChCC,SAAS,EAAE,iBAAiB;IAC5BC,YAAY,EAAE,oBAAoB;IAClCC,UAAU,EAAE,kBAAkB;IAC9BC,QAAQ,EAAE,gBAAgB;IAE1BC,aAAa,EAAE,qBAAqB;IACpCC,YAAY,EAAE,oBAAoB;IAClCC,WAAW,EAAE,mBAAmB;IAChCC,SAAS,EAAE,iBAAiB;IAE5BC,uBAAuB,EAAE,+BAA+B;IACxDC,yBAAyB,EAAE,iCAAiC;IAC5DC,mBAAmB,EAAE,2BAA2B;IAEhDC,MAAM,EAAE,cAAc;IAEtBC,eAAe,EAAE,uBAAuB;IAExCC,6BAA6B,EAAE,qCAAqC;IACpEC,iCAAiC,EAAE,yCAAyC;IAC5EC,4BAA4B,EAAE;EAChC,CAAC;EAED,IAAI,CAACC,eAAC,CAACC,GAAG,CAACrD,qBAAqB,EAAEF,aAAa,CAAC,EAAE;IAChD,MAAM,IAAIwD,cAAM,CAACC,mBAAmB,CAAE,2BAA0BzD,aAAc,KAAI,GAC/E,QAAOsD,eAAC,CAACI,IAAI,CAACxD,qBAAqB,CAAE,0BAAyB,CAAC;EACpE;EACA,OAAO,MAAM,IAAI,CAACA,qBAAqB,CAACF,aAAa,CAAC,CAAC,CAACC,IAAI,CAAC;AAC/D,CAAC;AAAC,IAAA0D,QAAA,GAEa7D,UAAU;AAAA8D,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"file":"execute.js","names":["_lodash","_interopRequireDefault","require","_driver","extensions","executeMobile","mobileCommand","opts","mobileCommandsMapping","shell","execEmuConsoleCommand","performEditorAction","changePermissions","getPermissions","startScreenStreaming","stopScreenStreaming","swipe","scrollToPage","navigateTo","clickAction","deviceInfo","isToastVisible","openDrawer","closeDrawer","setDate","setTime","getDeviceTime","backdoor","flashElement","uiautomator","uiautomatorPageSource","webAtoms","getContexts","dismissAutofill","getNotifications","listSms","sensorSet","pushFile","pullFile","pullFolder","deleteFile","isAppInstalled","queryAppState","activateApp","removeApp","terminateApp","installApp","clearApp","startActivity","startService","stopService","broadcast","registerIdlingResources","unregisterIdlingResources","listIdlingResources","waitForUIThread","unlock","refreshGpsCache","startMediaProjectionRecording","isMediaProjectionRecordingRunning","stopMediaProjectionRecording","_","has","errors","UnknownCommandError","keys","_default","exports","default"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport { errors } from 'appium/driver';\n\nconst extensions = {};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const mobileCommandsMapping = {\n shell: 'mobileShell',\n\n execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',\n\n performEditorAction: 'mobilePerformEditorAction',\n\n changePermissions: 'mobileChangePermissions',\n getPermissions: 'mobileGetPermissions',\n\n startScreenStreaming: 'mobileStartScreenStreaming',\n stopScreenStreaming: 'mobileStopScreenStreaming',\n\n swipe: 'mobileSwipe',\n scrollToPage: 'mobileScrollToPage',\n navigateTo: 'mobileNavigateTo',\n clickAction: 'mobileClickAction',\n\n deviceInfo: 'mobileGetDeviceInfo',\n\n isToastVisible: 'mobileIsToastVisible',\n\n openDrawer: 'mobileOpenDrawer',\n closeDrawer: 'mobileCloseDrawer',\n\n setDate: 'mobileSetDate',\n setTime: 'mobileSetTime',\n\n getDeviceTime: 'mobileGetDeviceTime',\n\n backdoor: 'mobileBackdoor',\n\n flashElement: 'mobileFlashElement',\n\n uiautomator: 'mobileUiautomator',\n uiautomatorPageSource: 'mobileUiautomatorPageSource',\n\n webAtoms: 'mobileWebAtoms',\n getContexts: 'mobileGetContexts',\n\n dismissAutofill: 'mobileDismissAutofill',\n\n getNotifications: 'mobileGetNotifications',\n\n listSms: 'mobileListSms',\n\n sensorSet: 'sensorSet',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n\n isAppInstalled: 'mobileIsAppInstalled',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n removeApp: 'mobileRemoveApp',\n terminateApp: 'mobileTerminateApp',\n installApp: 'mobileInstallApp',\n clearApp: 'mobileClearApp',\n\n startActivity: 'mobileStartActivity',\n startService: 'mobileStartService',\n stopService: 'mobileStopService',\n broadcast: 'mobileBroadcast',\n\n registerIdlingResources: 'mobileRegisterIdlingResources',\n unregisterIdlingResources: 'mobileUnregisterIdlingResources',\n listIdlingResources: 'mobileListIdlingResources',\n waitForUIThread: 'mobileWaitForUIThread',\n\n unlock: 'mobileUnlock',\n\n refreshGpsCache: 'mobileRefreshGpsCache',\n\n startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',\n isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',\n stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',\n };\n\n if (!_.has(mobileCommandsMapping, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command \"${mobileCommand}\". ` +\n `Only ${_.keys(mobileCommandsMapping)} commands are supported.`);\n }\n return await this[mobileCommandsMapping[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,UAAU,GAAG,CAAC,CAAC;AAErBA,UAAU,CAACC,aAAa,GAAG,eAAeA,aAAaA,CAAEC,aAAa,EAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACjF,MAAMC,qBAAqB,GAAG;IAC5BC,KAAK,EAAE,aAAa;IAEpBC,qBAAqB,EAAE,6BAA6B;IAEpDC,mBAAmB,EAAE,2BAA2B;IAEhDC,iBAAiB,EAAE,yBAAyB;IAC5CC,cAAc,EAAE,sBAAsB;IAEtCC,oBAAoB,EAAE,4BAA4B;IAClDC,mBAAmB,EAAE,2BAA2B;IAEhDC,KAAK,EAAE,aAAa;IACpBC,YAAY,EAAE,oBAAoB;IAClCC,UAAU,EAAE,kBAAkB;IAC9BC,WAAW,EAAE,mBAAmB;IAEhCC,UAAU,EAAE,qBAAqB;IAEjCC,cAAc,EAAE,sBAAsB;IAEtCC,UAAU,EAAE,kBAAkB;IAC9BC,WAAW,EAAE,mBAAmB;IAEhCC,OAAO,EAAE,eAAe;IACxBC,OAAO,EAAE,eAAe;IAExBC,aAAa,EAAE,qBAAqB;IAEpCC,QAAQ,EAAE,gBAAgB;IAE1BC,YAAY,EAAE,oBAAoB;IAElCC,WAAW,EAAE,mBAAmB;IAChCC,qBAAqB,EAAE,6BAA6B;IAEpDC,QAAQ,EAAE,gBAAgB;IAC1BC,WAAW,EAAE,mBAAmB;IAEhCC,eAAe,EAAE,uBAAuB;IAExCC,gBAAgB,EAAE,wBAAwB;IAE1CC,OAAO,EAAE,eAAe;IAExBC,SAAS,EAAE,WAAW;IAEtBC,QAAQ,EAAE,gBAAgB;IAC1BC,QAAQ,EAAE,gBAAgB;IAC1BC,UAAU,EAAE,kBAAkB;IAC9BC,UAAU,EAAE,kBAAkB;IAE9BC,cAAc,EAAE,sBAAsB;IACtCC,aAAa,EAAE,qBAAqB;IACpCC,WAAW,EAAE,mBAAmB;IAChCC,SAAS,EAAE,iBAAiB;IAC5BC,YAAY,EAAE,oBAAoB;IAClCC,UAAU,EAAE,kBAAkB;IAC9BC,QAAQ,EAAE,gBAAgB;IAE1BC,aAAa,EAAE,qBAAqB;IACpCC,YAAY,EAAE,oBAAoB;IAClCC,WAAW,EAAE,mBAAmB;IAChCC,SAAS,EAAE,iBAAiB;IAE5BC,uBAAuB,EAAE,+BAA+B;IACxDC,yBAAyB,EAAE,iCAAiC;IAC5DC,mBAAmB,EAAE,2BAA2B;IAChDC,eAAe,EAAE,uBAAuB;IAExCC,MAAM,EAAE,cAAc;IAEtBC,eAAe,EAAE,uBAAuB;IAExCC,6BAA6B,EAAE,qCAAqC;IACpEC,iCAAiC,EAAE,yCAAyC;IAC5EC,4BAA4B,EAAE;EAChC,CAAC;EAED,IAAI,CAACC,eAAC,CAACC,GAAG,CAACtD,qBAAqB,EAAEF,aAAa,CAAC,EAAE;IAChD,MAAM,IAAIyD,cAAM,CAACC,mBAAmB,CAAE,2BAA0B1D,aAAc,KAAI,GAC/E,QAAOuD,eAAC,CAACI,IAAI,CAACzD,qBAAqB,CAAE,0BAAyB,CAAC;EACpE;EACA,OAAO,MAAM,IAAI,CAACA,qBAAqB,CAACF,aAAa,CAAC,CAAC,CAACC,IAAI,CAAC;AAC/D,CAAC;AAAC,IAAA2D,QAAA,GAEa9D,UAAU;AAAA+D,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -17,6 +17,9 @@ commands.mobileUnregisterIdlingResources = async function mobileUnregisterIdling
17
17
  commands.mobileListIdlingResources = async function mobileListIdlingResources() {
18
18
  return await this.espresso.jwproxy.command('/appium/execute_mobile/list_idling_resources', 'GET');
19
19
  };
20
+ commands.mobileWaitForUIThread = async function mobileWaitForUIThread() {
21
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/ui_thread_sync', 'POST');
22
+ };
20
23
  var _default = commands;
21
24
  exports.default = _default;
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiY29tbWFuZHMiLCJleHBvcnRzIiwibW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJvcHRzIiwiZXNwcmVzc28iLCJqd3Byb3h5IiwiY29tbWFuZCIsInJlcXVpcmVPcHRpb25zIiwibW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsIm1vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMiLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvaWRsaW5nLXJlc291cmNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1aXJlT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJZGxpbmdSZXNvdXJjZXNPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IGNsYXNzTmFtZXMgLSBUaGUgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaWRsaW5nIHJlc291cmNlcyBjbGFzcyBuYW1lcy5cbiAqIEVhY2ggbmFtZSBtdXN0IGJlIGEgZnVsbC1xdWFsaWZpZWQgamF2YSBjbGFzcyBuYW1lLCBsaWtlIGBpby5hcHBpdW0uZXNwcmVzc29zZXJ2ZXIubGliLk15SWRsaW5nUmVzb3VyY2VgLlxuICogRWFjaCBjbGFzcyBpbiB0aGUgYXBwIHNvdXJjZSBtdXN0IGltcGxlbWVudCBhIHNpbmdsZXRvbiBwYXR0ZXJuIGFuZCBoYXZlIGEgc3RhdGljIGBnZXRJbnN0YW5jZSgpYFxuICogbWV0aG9kIHJldHVybmluZyB0aGUgY2xhc3MgaW5zdGFuY2UsIHdoaWNoIGltcGxlbWVudHMgYGFuZHJvaWR4LnRlc3QuZXNwcmVzc28uSWRsaW5nUmVzb3VyY2VgXG4gKiBpbnRlcmZhY2UuIFJlYWRcbiAqIC0gaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvdGVzdGluZy9lc3ByZXNzby9pZGxpbmctcmVzb3VyY2VcbiAqIC0gaHR0cHM6Ly9hbmRyb2lkLmpsZWxzZS5ldS9pbnRlZ3JhdGUtZXNwcmVzc28taWRsaW5nLXJlc291cmNlcy1pbi15b3VyLWFwcC10by1idWlsZC1mbGV4aWJsZS11aS10ZXN0cy1jNzc5ZTI0ZjUwNTdcbiAqIGZvciBtb3JlIGRldGFpbHMgb24gaG93IHRvIGRlc2lnbiBhbmQgdXNlIGlkbGluZyByZXNvdXJjZXMgY29uY2VwdCBpbiBFc3ByZXNzby5cbiAqL1xuXG4vKipcbiAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBpZGxpbmcgcmVzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJZGxpbmdSZXNvdXJjZXNPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBwYXJzaW5nIG9wdGlvbnMgb3IgcmVnaXN0ZXJpbmdcbiAqIHRoZSBhY3R1YWwgaW5zdGFuY2VzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvcmVnaXN0ZXJfaWRsaW5nX3Jlc291cmNlcycsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2NsYXNzTmFtZXMnXSkpO1xufTtcblxuLyoqXG4gKiBVbnJlZ2lzdGVycyBvbmUgb3IgbW9yZSBpZGxpbmcgcmVzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJZGxpbmdSZXNvdXJjZXNPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBwYXJzaW5nIG9wdGlvbnMgb3IgdW5yZWdpc3RlcmluZ1xuICogdGhlIGFjdHVhbCBpbnN0YW5jZXNcbiAqL1xuY29tbWFuZHMubW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdW5yZWdpc3Rlcl9pZGxpbmdfcmVzb3VyY2VzJywgJ1BPU1QnLFxuICAgIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnY2xhc3NOYW1lcyddKSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIGN1cnJlbnRseSByZWdpc3RlcmVkIGlkbGluZyByZXNvdXJjZXNcbiAqIG9yIGFuIGVtcHR5IGxpc3QgaWYgbm8gcmVzb3VyY2VzIGhhdmUgYmVlbiByZWdpc3RlcmVkIHlldC5cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn0gVGhlIGxpc3Qgb2YgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWVzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL2xpc3RfaWRsaW5nX3Jlc291cmNlcycsICdHRVQnKTtcbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFBQ0MsT0FBQSxDQUFBRCxRQUFBLEdBQUFBLFFBQUE7QUFxQnBCQSxRQUFRLENBQUNFLDZCQUE2QixHQUFHLGVBQWVBLDZCQUE2QkEsQ0FBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ2hHLE9BQU8sTUFBTSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsa0RBQWtELEVBQUUsTUFBTSxFQUNuRyxJQUFBQyxxQkFBYyxFQUFDSixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFTREgsUUFBUSxDQUFDUSwrQkFBK0IsR0FBRyxlQUFlQSwrQkFBK0JBLENBQUVMLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUNwRyxPQUFPLE1BQU0sSUFBSSxDQUFDQyxRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLG9EQUFvRCxFQUFFLE1BQU0sRUFDckcsSUFBQUMscUJBQWMsRUFBQ0osSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBUURILFFBQVEsQ0FBQ1MseUJBQXlCLEdBQUcsZUFBZUEseUJBQXlCQSxDQUFBLEVBQUk7RUFDL0UsT0FBTyxNQUFNLElBQUksQ0FBQ0wsUUFBUSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLENBQUM7QUFDbkcsQ0FBQztBQUFDLElBQUFJLFFBQUEsR0FHYVYsUUFBUTtBQUFBQyxPQUFBLENBQUFVLE9BQUEsR0FBQUQsUUFBQSJ9
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiY29tbWFuZHMiLCJleHBvcnRzIiwibW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJvcHRzIiwiZXNwcmVzc28iLCJqd3Byb3h5IiwiY29tbWFuZCIsInJlcXVpcmVPcHRpb25zIiwibW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsIm1vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMiLCJtb2JpbGVXYWl0Rm9yVUlUaHJlYWQiLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvaWRsaW5nLXJlc291cmNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1aXJlT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJZGxpbmdSZXNvdXJjZXNPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IGNsYXNzTmFtZXMgLSBUaGUgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaWRsaW5nIHJlc291cmNlcyBjbGFzcyBuYW1lcy5cbiAqIEVhY2ggbmFtZSBtdXN0IGJlIGEgZnVsbC1xdWFsaWZpZWQgamF2YSBjbGFzcyBuYW1lLCBsaWtlIGBpby5hcHBpdW0uZXNwcmVzc29zZXJ2ZXIubGliLk15SWRsaW5nUmVzb3VyY2VgLlxuICogRWFjaCBjbGFzcyBpbiB0aGUgYXBwIHNvdXJjZSBtdXN0IGltcGxlbWVudCBhIHNpbmdsZXRvbiBwYXR0ZXJuIGFuZCBoYXZlIGEgc3RhdGljIGBnZXRJbnN0YW5jZSgpYFxuICogbWV0aG9kIHJldHVybmluZyB0aGUgY2xhc3MgaW5zdGFuY2UsIHdoaWNoIGltcGxlbWVudHMgYGFuZHJvaWR4LnRlc3QuZXNwcmVzc28uSWRsaW5nUmVzb3VyY2VgXG4gKiBpbnRlcmZhY2UuIFJlYWRcbiAqIC0gaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvdGVzdGluZy9lc3ByZXNzby9pZGxpbmctcmVzb3VyY2VcbiAqIC0gaHR0cHM6Ly9hbmRyb2lkLmpsZWxzZS5ldS9pbnRlZ3JhdGUtZXNwcmVzc28taWRsaW5nLXJlc291cmNlcy1pbi15b3VyLWFwcC10by1idWlsZC1mbGV4aWJsZS11aS10ZXN0cy1jNzc5ZTI0ZjUwNTdcbiAqIGZvciBtb3JlIGRldGFpbHMgb24gaG93IHRvIGRlc2lnbiBhbmQgdXNlIGlkbGluZyByZXNvdXJjZXMgY29uY2VwdCBpbiBFc3ByZXNzby5cbiAqL1xuXG4vKipcbiAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBpZGxpbmcgcmVzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJZGxpbmdSZXNvdXJjZXNPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBwYXJzaW5nIG9wdGlvbnMgb3IgcmVnaXN0ZXJpbmdcbiAqIHRoZSBhY3R1YWwgaW5zdGFuY2VzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvcmVnaXN0ZXJfaWRsaW5nX3Jlc291cmNlcycsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2NsYXNzTmFtZXMnXSkpO1xufTtcblxuLyoqXG4gKiBVbnJlZ2lzdGVycyBvbmUgb3IgbW9yZSBpZGxpbmcgcmVzb3VyY2VzXG4gKlxuICogQHBhcmFtIHtJZGxpbmdSZXNvdXJjZXNPcHRpb25zfSBvcHRzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBwYXJzaW5nIG9wdGlvbnMgb3IgdW5yZWdpc3RlcmluZ1xuICogdGhlIGFjdHVhbCBpbnN0YW5jZXNcbiAqL1xuY29tbWFuZHMubW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdW5yZWdpc3Rlcl9pZGxpbmdfcmVzb3VyY2VzJywgJ1BPU1QnLFxuICAgIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnY2xhc3NOYW1lcyddKSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIGN1cnJlbnRseSByZWdpc3RlcmVkIGlkbGluZyByZXNvdXJjZXNcbiAqIG9yIGFuIGVtcHR5IGxpc3QgaWYgbm8gcmVzb3VyY2VzIGhhdmUgYmVlbiByZWdpc3RlcmVkIHlldC5cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn0gVGhlIGxpc3Qgb2YgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWVzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL2xpc3RfaWRsaW5nX3Jlc291cmNlcycsICdHRVQnKTtcbn07XG5cbi8qKlxuICogV2FpdCBmb3IgVUkgdGhyZWFkIHRvIGJlIGlkbGUuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVdhaXRGb3JVSVRocmVhZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVdhaXRGb3JVSVRocmVhZCAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS91aV90aHJlYWRfc3luYycsICdQT1NUJyk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxNQUFNQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQUNDLE9BQUEsQ0FBQUQsUUFBQSxHQUFBQSxRQUFBO0FBcUJwQkEsUUFBUSxDQUFDRSw2QkFBNkIsR0FBRyxlQUFlQSw2QkFBNkJBLENBQUVDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRTtFQUNoRyxPQUFPLE1BQU0sSUFBSSxDQUFDQyxRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLGtEQUFrRCxFQUFFLE1BQU0sRUFDbkcsSUFBQUMscUJBQWMsRUFBQ0osSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBU0RILFFBQVEsQ0FBQ1EsK0JBQStCLEdBQUcsZUFBZUEsK0JBQStCQSxDQUFFTCxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDcEcsT0FBTyxNQUFNLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxvREFBb0QsRUFBRSxNQUFNLEVBQ3JHLElBQUFDLHFCQUFjLEVBQUNKLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQVFESCxRQUFRLENBQUNTLHlCQUF5QixHQUFHLGVBQWVBLHlCQUF5QkEsQ0FBQSxFQUFJO0VBQy9FLE9BQU8sTUFBTSxJQUFJLENBQUNMLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsOENBQThDLEVBQUUsS0FBSyxDQUFDO0FBQ25HLENBQUM7QUFLRE4sUUFBUSxDQUFDVSxxQkFBcUIsR0FBRyxlQUFlQSxxQkFBcUJBLENBQUEsRUFBSTtFQUN2RSxPQUFPLE1BQU0sSUFBSSxDQUFDTixRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLE1BQU0sQ0FBQztBQUM3RixDQUFDO0FBQUMsSUFBQUssUUFBQSxHQUdhWCxRQUFRO0FBQUFDLE9BQUEsQ0FBQVcsT0FBQSxHQUFBRCxRQUFBIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"idling-resources.js","names":["_utils","require","commands","exports","mobileRegisterIdlingResources","opts","espresso","jwproxy","command","requireOptions","mobileUnregisterIdlingResources","mobileListIdlingResources","_default","default"],"sources":["../../../lib/commands/idling-resources.js"],"sourcesContent":["import { requireOptions } from '../utils';\n\nconst commands = {};\n\n/**\n * @typedef {Object} IdlingResourcesOptions\n * @property {!string} classNames - The comma-separated list of idling resources class names.\n * Each name must be a full-qualified java class name, like `io.appium.espressoserver.lib.MyIdlingResource`.\n * Each class in the app source must implement a singleton pattern and have a static `getInstance()`\n * method returning the class instance, which implements `androidx.test.espresso.IdlingResource`\n * interface. Read\n * - https://developer.android.com/training/testing/espresso/idling-resource\n * - https://android.jlelse.eu/integrate-espresso-idling-resources-in-your-app-to-build-flexible-ui-tests-c779e24f5057\n * for more details on how to design and use idling resources concept in Espresso.\n */\n\n/**\n * Registers one or more idling resources\n *\n * @param {IdlingResourcesOptions} opts\n * @throws {Error} If there was a failure while parsing options or registering\n * the actual instances\n */\ncommands.mobileRegisterIdlingResources = async function mobileRegisterIdlingResources (opts = {}) {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/register_idling_resources', 'POST',\n requireOptions(opts, ['classNames']));\n};\n\n/**\n * Unregisters one or more idling resources\n *\n * @param {IdlingResourcesOptions} opts\n * @throws {Error} If there was a failure while parsing options or unregistering\n * the actual instances\n */\ncommands.mobileUnregisterIdlingResources = async function mobileUnregisterIdlingResources (opts = {}) {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/unregister_idling_resources', 'POST',\n requireOptions(opts, ['classNames']));\n};\n\n/**\n * Returns a list of currently registered idling resources\n * or an empty list if no resources have been registered yet.\n *\n * @returns {Array<string>} The list of fully qualified class names\n */\ncommands.mobileListIdlingResources = async function mobileListIdlingResources () {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/list_idling_resources', 'GET');\n};\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAqBpBA,QAAQ,CAACE,6BAA6B,GAAG,eAAeA,6BAA6BA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EAChG,OAAO,MAAM,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,kDAAkD,EAAE,MAAM,EACnG,IAAAC,qBAAc,EAACJ,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACzC,CAAC;AASDH,QAAQ,CAACQ,+BAA+B,GAAG,eAAeA,+BAA+BA,CAAEL,IAAI,GAAG,CAAC,CAAC,EAAE;EACpG,OAAO,MAAM,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,oDAAoD,EAAE,MAAM,EACrG,IAAAC,qBAAc,EAACJ,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACzC,CAAC;AAQDH,QAAQ,CAACS,yBAAyB,GAAG,eAAeA,yBAAyBA,CAAA,EAAI;EAC/E,OAAO,MAAM,IAAI,CAACL,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACnG,CAAC;AAAC,IAAAI,QAAA,GAGaV,QAAQ;AAAAC,OAAA,CAAAU,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"file":"idling-resources.js","names":["_utils","require","commands","exports","mobileRegisterIdlingResources","opts","espresso","jwproxy","command","requireOptions","mobileUnregisterIdlingResources","mobileListIdlingResources","mobileWaitForUIThread","_default","default"],"sources":["../../../lib/commands/idling-resources.js"],"sourcesContent":["import { requireOptions } from '../utils';\n\nconst commands = {};\n\n/**\n * @typedef {Object} IdlingResourcesOptions\n * @property {!string} classNames - The comma-separated list of idling resources class names.\n * Each name must be a full-qualified java class name, like `io.appium.espressoserver.lib.MyIdlingResource`.\n * Each class in the app source must implement a singleton pattern and have a static `getInstance()`\n * method returning the class instance, which implements `androidx.test.espresso.IdlingResource`\n * interface. Read\n * - https://developer.android.com/training/testing/espresso/idling-resource\n * - https://android.jlelse.eu/integrate-espresso-idling-resources-in-your-app-to-build-flexible-ui-tests-c779e24f5057\n * for more details on how to design and use idling resources concept in Espresso.\n */\n\n/**\n * Registers one or more idling resources\n *\n * @param {IdlingResourcesOptions} opts\n * @throws {Error} If there was a failure while parsing options or registering\n * the actual instances\n */\ncommands.mobileRegisterIdlingResources = async function mobileRegisterIdlingResources (opts = {}) {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/register_idling_resources', 'POST',\n requireOptions(opts, ['classNames']));\n};\n\n/**\n * Unregisters one or more idling resources\n *\n * @param {IdlingResourcesOptions} opts\n * @throws {Error} If there was a failure while parsing options or unregistering\n * the actual instances\n */\ncommands.mobileUnregisterIdlingResources = async function mobileUnregisterIdlingResources (opts = {}) {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/unregister_idling_resources', 'POST',\n requireOptions(opts, ['classNames']));\n};\n\n/**\n * Returns a list of currently registered idling resources\n * or an empty list if no resources have been registered yet.\n *\n * @returns {Array<string>} The list of fully qualified class names\n */\ncommands.mobileListIdlingResources = async function mobileListIdlingResources () {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/list_idling_resources', 'GET');\n};\n\n/**\n * Wait for UI thread to be idle.\n */\ncommands.mobileWaitForUIThread = async function mobileWaitForUIThread () {\n return await this.espresso.jwproxy.command('/appium/execute_mobile/ui_thread_sync', 'POST');\n};\n\nexport { commands };\nexport default commands;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAD,QAAA,GAAAA,QAAA;AAqBpBA,QAAQ,CAACE,6BAA6B,GAAG,eAAeA,6BAA6BA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EAChG,OAAO,MAAM,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,kDAAkD,EAAE,MAAM,EACnG,IAAAC,qBAAc,EAACJ,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACzC,CAAC;AASDH,QAAQ,CAACQ,+BAA+B,GAAG,eAAeA,+BAA+BA,CAAEL,IAAI,GAAG,CAAC,CAAC,EAAE;EACpG,OAAO,MAAM,IAAI,CAACC,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,oDAAoD,EAAE,MAAM,EACrG,IAAAC,qBAAc,EAACJ,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACzC,CAAC;AAQDH,QAAQ,CAACS,yBAAyB,GAAG,eAAeA,yBAAyBA,CAAA,EAAI;EAC/E,OAAO,MAAM,IAAI,CAACL,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACnG,CAAC;AAKDN,QAAQ,CAACU,qBAAqB,GAAG,eAAeA,qBAAqBA,CAAA,EAAI;EACvE,OAAO,MAAM,IAAI,CAACN,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC;AAC7F,CAAC;AAAC,IAAAK,QAAA,GAGaX,QAAQ;AAAAC,OAAA,CAAAW,OAAA,GAAAD,QAAA"}
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Licensed under the Apache License, Version 2.0 (the "License");
3
+ * you may not use this file except in compliance with the License.
4
+ * See the NOTICE file distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package io.appium.espressoserver.lib.handlers
18
+
19
+ import androidx.test.espresso.UiController
20
+ import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
21
+ import io.appium.espressoserver.lib.model.AppiumParams
22
+ import io.appium.espressoserver.lib.viewaction.UiControllerPerformer
23
+ import io.appium.espressoserver.lib.viewaction.UiControllerRunnable
24
+
25
+ class UIThreadSynchronizer : RequestHandler<AppiumParams, Void?> {
26
+ override fun handleInternal(params: AppiumParams): Void? {
27
+ val runnable = object : UiControllerRunnable<Void?> {
28
+ override fun run(uiController: UiController): Void? {
29
+ uiController.loopMainThreadUntilIdle()
30
+ return null
31
+ }
32
+ }
33
+
34
+ return UiControllerPerformer(runnable).run()
35
+ }
36
+ }
@@ -143,6 +143,8 @@ internal class Router {
143
143
  routeMap.addRoute(RouteDefinition(Method.POST, "/session/:sessionId/appium/execute_mobile/register_idling_resources", RegisterIdlingResources(), IdlingResourcesParams::class.java))
144
144
  routeMap.addRoute(RouteDefinition(Method.POST, "/session/:sessionId/appium/execute_mobile/unregister_idling_resources", UnregisterIdlingResources(), IdlingResourcesParams::class.java))
145
145
  routeMap.addRoute(RouteDefinition(Method.GET, "/session/:sessionId/appium/execute_mobile/list_idling_resources", ListIdlingResources(), AppiumParams::class.java))
146
+ routeMap.addRoute(RouteDefinition(Method.POST, "/session/:sessionId/appium/execute_mobile/ui_thread_sync", UIThreadSynchronizer(), AppiumParams::class.java))
147
+
146
148
 
147
149
  // Not implemented
148
150
  routeMap.addRoute(RouteDefinition(Method.POST, "/session/:sessionId/touch/flick", NotYetImplemented(), AppiumParams::class.java))
@@ -73,6 +73,7 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
73
73
  registerIdlingResources: 'mobileRegisterIdlingResources',
74
74
  unregisterIdlingResources: 'mobileUnregisterIdlingResources',
75
75
  listIdlingResources: 'mobileListIdlingResources',
76
+ waitForUIThread: 'mobileWaitForUIThread',
76
77
 
77
78
  unlock: 'mobileUnlock',
78
79
 
@@ -48,5 +48,12 @@ commands.mobileListIdlingResources = async function mobileListIdlingResources ()
48
48
  return await this.espresso.jwproxy.command('/appium/execute_mobile/list_idling_resources', 'GET');
49
49
  };
50
50
 
51
+ /**
52
+ * Wait for UI thread to be idle.
53
+ */
54
+ commands.mobileWaitForUIThread = async function mobileWaitForUIThread () {
55
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/ui_thread_sync', 'POST');
56
+ };
57
+
51
58
  export { commands };
52
59
  export default commands;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-espresso-driver",
3
- "version": "2.18.1",
3
+ "version": "2.19.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-espresso-driver",
9
- "version": "2.18.1",
9
+ "version": "2.19.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@babel/runtime": "^7.4.3",
@@ -1124,7 +1124,7 @@
1124
1124
  }
1125
1125
  },
1126
1126
  "node_modules/@types/node": {
1127
- "version": "18.15.5",
1127
+ "version": "18.15.10",
1128
1128
  "license": "MIT"
1129
1129
  },
1130
1130
  "node_modules/@types/normalize-package-data": {
@@ -1379,7 +1379,7 @@
1379
1379
  "license": "ISC"
1380
1380
  },
1381
1381
  "node_modules/appium-android-driver": {
1382
- "version": "5.8.11",
1382
+ "version": "5.8.12",
1383
1383
  "license": "Apache-2.0",
1384
1384
  "dependencies": {
1385
1385
  "@babel/runtime": "^7.0.0",
@@ -1445,7 +1445,7 @@
1445
1445
  "license": "ISC"
1446
1446
  },
1447
1447
  "node_modules/appium-chromedriver": {
1448
- "version": "5.3.1",
1448
+ "version": "5.3.2",
1449
1449
  "hasInstallScript": true,
1450
1450
  "license": "Apache-2.0",
1451
1451
  "dependencies": {
@@ -3252,7 +3252,7 @@
3252
3252
  }
3253
3253
  },
3254
3254
  "node_modules/mkdirp": {
3255
- "version": "2.1.5",
3255
+ "version": "2.1.6",
3256
3256
  "license": "MIT",
3257
3257
  "bin": {
3258
3258
  "mkdirp": "dist/cjs/src/bin.js"
@@ -3272,7 +3272,7 @@
3272
3272
  }
3273
3273
  },
3274
3274
  "node_modules/moment-timezone": {
3275
- "version": "0.5.41",
3275
+ "version": "0.5.42",
3276
3276
  "license": "MIT",
3277
3277
  "dependencies": {
3278
3278
  "moment": "^2.29.4"
@@ -4575,7 +4575,7 @@
4575
4575
  }
4576
4576
  },
4577
4577
  "node_modules/typedoc/node_modules/minimatch": {
4578
- "version": "7.4.2",
4578
+ "version": "7.4.3",
4579
4579
  "extraneous": true,
4580
4580
  "license": "ISC",
4581
4581
  "dependencies": {
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "2.18.1",
10
+ "version": "2.19.0",
11
11
  "author": "Appium Contributors",
12
12
  "license": "Apache-2.0",
13
13
  "repository": {