appium-espresso-driver 2.8.4 → 2.10.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/README.md CHANGED
@@ -283,6 +283,7 @@ el | `Map<string, long>` | Intent long integer parameters | {'foo': 1L, 'bar': 2
283
283
  ef | `Map<string, float>` | Intent float parameters | {'foo': 1.ff, 'bar': 2.2f}
284
284
  eu | `Map<string, string>` | Intent URI-data parameters | {'foo': 'content://contacts/people/1'}
285
285
  ecn | `Map<string, string>` | Intent component name parameters | {'foo': 'com.example.app/.ExampleActivity'}
286
+ esa | `Map<string, List<string>>` | Intent string array parameters | {'foo': ['bar1','bar2','bar3','bar4']}
286
287
  eia | `Map<string, string>` | Intent integer array parameters | {'foo': '1,2,3,4'}
287
288
  ela | `Map<string, string>` | Intent long array parameters | {'foo': '1L,2L,3L,4L'}
288
289
  efa | `Map<string, string>` | Intent float array parameters | {'foo': '1.1,2.2,3.2,4.4'}
@@ -720,6 +721,45 @@ Name | Type | Required | Description | Example
720
721
  --- | --- | --- | --- | ---
721
722
  timeoutMs | number | no | The maximum number of milliseconds to block until GPS cache is refreshed. If the API call does not receive a confirmation about successful cache refresh within this timeout then an error is thrown. Providing zero or a negative value to it skips waiting completely and does not check for any errors. 20000 ms by default. | 60000
722
723
 
724
+ ### mobile: pullFile
725
+
726
+ Pulls a remote file from the device.
727
+
728
+ #### Arguments
729
+
730
+ Name | Type | Required | Description | Example
731
+ --- | --- | --- | --- | ---
732
+ remotePath | string | yes | The full path to the remote file or a specially formatted path, which points to an item inside an app bundle, for example `@my.app.id/my/path`. It is mandatory for the app bundle to have [debugging enabled](https://developer.android.com/studio/debug) in order to use the latter remotePath format. If the file with the given name does not exist then an exception will be thrown. | /sdcard/foo.bar
733
+
734
+ #### Returned Result
735
+
736
+ Base64-encoded string, which represents the content of the remote file.
737
+
738
+ ### mobile: pushFile
739
+
740
+ Pushes a local file to the device.
741
+
742
+ #### Arguments
743
+
744
+ Name | Type | Required | Description | Example
745
+ --- | --- | --- | --- | ---
746
+ remotePath | string | yes | The path on the device to where the payload should be written. The value format is similar to the one used in [pullFile](#mobile-pullfile) extension. If the file with the same name already exists then it will be silently overridden. | /sdcard/foo.bar
747
+ payload | string | yes | Base64-encoded content of the file to be pushed. | QXBwaXVt
748
+
749
+ ### mobile: pullFolder
750
+
751
+ Pulls a remote folder from the device.
752
+
753
+ #### Arguments
754
+
755
+ Name | Type | Required | Description | Example
756
+ --- | --- | --- | --- | ---
757
+ remotePath | string | yes | Same as for [pullFile](#mobile-pullfile) extension, but should be pointing to a remote folder | /sdcard/yolo/
758
+
759
+ #### Returned Result
760
+
761
+ Base64-encoded string, which represents the zipped content of the remote folder.
762
+
723
763
  ### mobile: deleteFile
724
764
 
725
765
  Deletes a file on the remote device.
@@ -730,6 +770,111 @@ Name | Type | Required | Description | Example
730
770
  --- | --- | --- | --- | ---
731
771
  remotePath | string | yes | The full path to the remote file or a file inside an application bundle | `/sdcard/myfile.txt` or `@my.app.id/path/in/bundle`
732
772
 
773
+ ### mobile: isAppInstalled
774
+
775
+ Verify whether an application is installed on the device under test.
776
+
777
+ #### Arguments
778
+
779
+ Name | Type | Required | Description | Example
780
+ --- | --- | --- | --- | ---
781
+ appId | string | yes | The identifier of the application package to be checked | `my.app.id`
782
+
783
+ #### Returned Result
784
+
785
+ True or false
786
+
787
+ ### mobile: queryAppState
788
+
789
+ Queries the current state of the app.
790
+
791
+ #### Arguments
792
+
793
+ Name | Type | Required | Description | Example
794
+ --- | --- | --- | --- | ---
795
+ appId | string | yes | The identifier of the application package to be checked | `my.app.id`
796
+
797
+ #### Returned Result
798
+
799
+ The following numbers could returned:
800
+ - The app is not installed: `0`
801
+ - The app is installed and is not running: `1`
802
+ - The app is running in background: `3`
803
+ - The app is running in foreground: `4`
804
+
805
+ ### mobile: activateApp
806
+
807
+ Activates the given application or launches it if necessary.
808
+ The action literally simulates
809
+ clicking the corresponding application icon on the dashboard.
810
+
811
+ #### Arguments
812
+
813
+ Name | Type | Required | Description | Example
814
+ --- | --- | --- | --- | ---
815
+ appId | string | yes | The identifier of the application package to be activated | `my.app.id`
816
+
817
+ ### mobile: removeApp
818
+
819
+ Remove the corresponding application if is installed.
820
+ The call is ignored if the app is not installed.
821
+
822
+ #### Arguments
823
+
824
+ Name | Type | Required | Description | Example
825
+ --- | --- | --- | --- | ---
826
+ appId | string | yes | The identifier of the application package to be removed | `my.app.id`
827
+
828
+ #### Returned Result
829
+
830
+ True is the app has been found on the device and successfully removed. Otherwise false.
831
+
832
+ ### mobile: terminateApp
833
+
834
+ Terminates the app if it is running.
835
+
836
+ #### Arguments
837
+
838
+ Name | Type | Required | Description | Example
839
+ --- | --- | --- | --- | ---
840
+ appId | string | yes | The identifier of the application package to be terminated | `my.app.id`
841
+ timeout | number | no | The count of milliseconds to wait until the app is terminated. 500ms by default. | 1500
842
+
843
+ #### Returned Result
844
+
845
+ True if the app has been successfully terminated.
846
+
847
+ ### mobile: installApp
848
+
849
+ Installs the given application package to the device under test.
850
+
851
+ #### Arguments
852
+
853
+ Name | Type | Required | Description | Example
854
+ --- | --- | --- | --- | ---
855
+ appPath | string | yes | The local .apk(s) path on the server filesystem or a remote url. | `/app/path.apk`
856
+ timeout | number | no | The count of milliseconds to wait until the app is installed.. 6000ms by default. | 120000
857
+ allowTestPackages | boolean | no | Set to true in order to allow test packages installation. false by default | true
858
+ useSdcard | boolean | no | Set to true to install the app on sdcard instead of the device memory. false by default | true
859
+ 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
860
+ 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
861
+
862
+ ### mobile: clearApp
863
+
864
+ Deletes all data associated with a package. Calls `adb shell pm clear` under the hood.
865
+ The app should be accessible, should not be running,
866
+ and should exist on the device under test for this extension to work properly.
867
+
868
+ #### Arguments
869
+
870
+ Name | Type | Required | Description | Example
871
+ --- | --- | --- | --- | ---
872
+ appId | string | yes | The identifier of the application package to be cleared | `my.app.id`
873
+
874
+ #### Returned Result
875
+
876
+ Stdout of the corresponding adb command.
877
+
733
878
  ### mobile: startActivity
734
879
 
735
880
  Starts the given activity with intent options, activity options and locale. Activity could only be executed in scope of the current app package.
@@ -766,6 +911,32 @@ Name | Type | Required | Description | Example
766
911
  intent | string | yes | The name of the service intent to stop. Only services in the app's under test scope could be stopped. | `com.some.package.name/.YourServiceSubClassName`
767
912
  user | number or string | no | The user ID for which the service is started. The `current` user id is used by default | 1006
768
913
 
914
+ ### mobile: broadcast
915
+
916
+ Send a broadcast Intent. Invokes `am broadcast` command under the hood.
917
+
918
+ #### Arguments
919
+
920
+ Name | Type | Required | Description | Example
921
+ --- | --- | --- | --- | ---
922
+ intent | string | no | The full name of the intent to broadcast | `com.some.package.name/.YourIntentClassName`
923
+ user | number or string | no | Specify which user to send to; if not specified then send to all users. Possible values are `all`/`current`/`<numeric user id>` | current
924
+ receiverPermission | string | no | Require receiver to hold the given permission | android.permission.READ_PROFILE
925
+ allowBackgroundActivityStarts | boolean | no | The receiver may start activities even if in the background if set to `true` | false
926
+ action | string | no | Action name. The actual value for the Activity Manager's `-a` argument. | android.intent.action.MAIN
927
+ uri | string | no | Unified resource identifier. The actual value for the Activity Manager's `-d` argument. | https://appium.io
928
+ mimeType | string | no | Mime type. The actual value for the Activity Manager's `-t` argument. | application/json
929
+ identifier | string | no | Optional identifier. The actual value for the Activity Manager's `-i` argument. | my_identifier
930
+ categories | string or Array&lt;string&gt; | no | One or more category names. The actual value(s) for the Activity Manager's `-c` argument. | android.intent.category.LAUNCHER
931
+ component | string | no | Component name. The actual value for the Activity Manager's `-n` argument. | com.myapp/com.myapp.SplashActivity
932
+ package | string | no | Package name. The actual value for the Activity Manager's `-p` argument. | com.myapp
933
+ extras | Array&lt;Array&lt;string&gt;&gt; | no | Optional intent arguments. Must be represented as an array of arrays, where each subarray item contains two (only in case it no value is required for the given type) or three string items: value type, key (variable name) and the value itself. Supported value types are: `s`: string. Value must be a valid string; `sn`: null. Value is ignored for this type; `z`: boolean. Value must be either `true` or `false`; `i`: integer. Value must be a valid 4-byte integer number; `l`: long. Value must be a valid 8-byte long number; `f`: float: Value must be a valid float number; `u`: uri. Value must be a valid uniform resource identifier string; `cn`: component name. Value must be a valid component name string; `ia`: Integer[]. Value must be a string of comma-separated integers; `ial`: List&lt;Integer&gt;. Value must be a string of comma-separated integers; `la`: Long[]. Value must be a string of comma-separated long numbers; `lal`: List&lt;Long&gt;. Value must be a string of comma-separated long numbers; `fa`: Float[]. Value must be a string of comma-separated float numbers; `fal`: List&lt;Float&gt;. Value must be a string of comma-separated float numbers; `sa`: String[]. Value must be comma-separated strings. To embed a comma into a string escape it using "\,"; `sal`: List&lt;String&gt;. Value must be comma-separated strings. To embed a comma into a string, escape it using "\," | [['s', 'varName1', 'My String1'], ['s', 'varName2', 'My String2'], ['ia', 'arrName', '1,2,3,4']]
934
+ flags | string | no | Intent startup-specific flags as a hexadecimal string. Check [Intent documentation](https://developer.android.com/reference/android/content/Intent.html) for the list of available flag values (constants starting with `FLAG_ACTIVITY_`). Flag values could be merged using the logical 'or' operation. | 0x10200000 is the combination of two flags: 0x10000000 `FLAG_ACTIVITY_NEW_TASK` `|` 0x00200000 `FLAG_ACTIVITY_RESET_TASK_IF_NEEDED`
935
+
936
+ #### Returned Result
937
+
938
+ The actual stdout of the downstream `am` command.
939
+
769
940
  ### mobile: getDeviceTime
770
941
 
771
942
  Retrieves the current device's timestamp.
@@ -45,10 +45,21 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
45
45
  getNotifications: 'mobileGetNotifications',
46
46
  listSms: 'mobileListSms',
47
47
  sensorSet: 'sensorSet',
48
+ pushFile: 'mobilePushFile',
49
+ pullFile: 'mobilePullFile',
50
+ pullFolder: 'mobilePullFolder',
48
51
  deleteFile: 'mobileDeleteFile',
52
+ isAppInstalled: 'mobileIsAppInstalled',
53
+ queryAppState: 'mobileQueryAppState',
54
+ activateApp: 'mobileActivateApp',
55
+ removeApp: 'mobileRemoveApp',
56
+ terminateApp: 'mobileTerminateApp',
57
+ installApp: 'mobileInstallApp',
58
+ clearApp: 'mobileClearApp',
49
59
  startActivity: 'mobileStartActivity',
50
60
  startService: 'mobileStartService',
51
61
  stopService: 'mobileStopService',
62
+ broadcast: 'mobileBroadcast',
52
63
  registerIdlingResources: 'mobileRegisterIdlingResources',
53
64
  unregisterIdlingResources: 'mobileUnregisterIdlingResources',
54
65
  listIdlingResources: 'mobileListIdlingResources',
@@ -68,4 +79,4 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
68
79
 
69
80
  var _default = extensions;
70
81
  exports.default = _default;
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZU1vYmlsZSIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsInN3aXBlIiwic2Nyb2xsVG9QYWdlIiwibmF2aWdhdGVUbyIsImNsaWNrQWN0aW9uIiwiZGV2aWNlSW5mbyIsImlzVG9hc3RWaXNpYmxlIiwib3BlbkRyYXdlciIsImNsb3NlRHJhd2VyIiwic2V0RGF0ZSIsInNldFRpbWUiLCJnZXREZXZpY2VUaW1lIiwiYmFja2Rvb3IiLCJmbGFzaEVsZW1lbnQiLCJ1aWF1dG9tYXRvciIsInVpYXV0b21hdG9yUGFnZVNvdXJjZSIsIndlYkF0b21zIiwiZ2V0Q29udGV4dHMiLCJkaXNtaXNzQXV0b2ZpbGwiLCJnZXROb3RpZmljYXRpb25zIiwibGlzdFNtcyIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJzdGFydEFjdGl2aXR5Iiwic3RhcnRTZXJ2aWNlIiwic3RvcFNlcnZpY2UiLCJyZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsInVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJsaXN0SWRsaW5nUmVzb3VyY2VzIiwidW5sb2NrIiwicmVmcmVzaEdwc0NhY2hlIiwic3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmciLCJpc01lZGlhUHJvamVjdGlvblJlY29yZGluZ1J1bm5pbmciLCJzdG9wTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nIiwiXyIsImhhcyIsImVycm9ycyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBzdGFydFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nJyxcbiAgICBzdG9wU2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZycsXG5cbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICBzY3JvbGxUb1BhZ2U6ICdtb2JpbGVTY3JvbGxUb1BhZ2UnLFxuICAgIG5hdmlnYXRlVG86ICdtb2JpbGVOYXZpZ2F0ZVRvJyxcbiAgICBjbGlja0FjdGlvbjogJ21vYmlsZUNsaWNrQWN0aW9uJyxcblxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcblxuICAgIGlzVG9hc3RWaXNpYmxlOiAnbW9iaWxlSXNUb2FzdFZpc2libGUnLFxuXG4gICAgb3BlbkRyYXdlcjogJ21vYmlsZU9wZW5EcmF3ZXInLFxuICAgIGNsb3NlRHJhd2VyOiAnbW9iaWxlQ2xvc2VEcmF3ZXInLFxuXG4gICAgc2V0RGF0ZTogJ21vYmlsZVNldERhdGUnLFxuICAgIHNldFRpbWU6ICdtb2JpbGVTZXRUaW1lJyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIGJhY2tkb29yOiAnbW9iaWxlQmFja2Rvb3InLFxuXG4gICAgZmxhc2hFbGVtZW50OiAnbW9iaWxlRmxhc2hFbGVtZW50JyxcblxuICAgIHVpYXV0b21hdG9yOiAnbW9iaWxlVWlhdXRvbWF0b3InLFxuICAgIHVpYXV0b21hdG9yUGFnZVNvdXJjZTogJ21vYmlsZVVpYXV0b21hdG9yUGFnZVNvdXJjZScsXG5cbiAgICB3ZWJBdG9tczogJ21vYmlsZVdlYkF0b21zJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIGRpc21pc3NBdXRvZmlsbDogJ21vYmlsZURpc21pc3NBdXRvZmlsbCcsXG5cbiAgICBnZXROb3RpZmljYXRpb25zOiAnbW9iaWxlR2V0Tm90aWZpY2F0aW9ucycsXG5cbiAgICBsaXN0U21zOiAnbW9iaWxlTGlzdFNtcycsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgc3RhcnRBY3Rpdml0eTogJ21vYmlsZVN0YXJ0QWN0aXZpdHknLFxuXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcblxuICAgIHJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIHVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICBsaXN0SWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuXG4gICAgcmVmcmVzaEdwc0NhY2hlOiAnbW9iaWxlUmVmcmVzaEdwc0NhY2hlJyxcblxuICAgIHN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICAgIGlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZzogJ21vYmlsZUlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZycsXG4gICAgc3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmcnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBRyxFQUFuQjs7QUFFQUEsVUFBVSxDQUFDQyxhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJDLGFBQTlCLEVBQTZDQyxJQUFJLEdBQUcsRUFBcEQsRUFBd0Q7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLG1CQUFtQixFQUFFLDJCQUxPO0lBTzVCQyxpQkFBaUIsRUFBRSx5QkFQUztJQVE1QkMsY0FBYyxFQUFFLHNCQVJZO0lBVTVCQyxvQkFBb0IsRUFBRSw0QkFWTTtJQVc1QkMsbUJBQW1CLEVBQUUsMkJBWE87SUFhNUJDLEtBQUssRUFBRSxhQWJxQjtJQWM1QkMsWUFBWSxFQUFFLG9CQWRjO0lBZTVCQyxVQUFVLEVBQUUsa0JBZmdCO0lBZ0I1QkMsV0FBVyxFQUFFLG1CQWhCZTtJQWtCNUJDLFVBQVUsRUFBRSxxQkFsQmdCO0lBb0I1QkMsY0FBYyxFQUFFLHNCQXBCWTtJQXNCNUJDLFVBQVUsRUFBRSxrQkF0QmdCO0lBdUI1QkMsV0FBVyxFQUFFLG1CQXZCZTtJQXlCNUJDLE9BQU8sRUFBRSxlQXpCbUI7SUEwQjVCQyxPQUFPLEVBQUUsZUExQm1CO0lBNEI1QkMsYUFBYSxFQUFFLHFCQTVCYTtJQThCNUJDLFFBQVEsRUFBRSxnQkE5QmtCO0lBZ0M1QkMsWUFBWSxFQUFFLG9CQWhDYztJQWtDNUJDLFdBQVcsRUFBRSxtQkFsQ2U7SUFtQzVCQyxxQkFBcUIsRUFBRSw2QkFuQ0s7SUFxQzVCQyxRQUFRLEVBQUUsZ0JBckNrQjtJQXNDNUJDLFdBQVcsRUFBRSxtQkF0Q2U7SUF3QzVCQyxlQUFlLEVBQUUsdUJBeENXO0lBMEM1QkMsZ0JBQWdCLEVBQUUsd0JBMUNVO0lBNEM1QkMsT0FBTyxFQUFFLGVBNUNtQjtJQThDNUJDLFNBQVMsRUFBRSxXQTlDaUI7SUFnRDVCQyxVQUFVLEVBQUUsa0JBaERnQjtJQWtENUJDLGFBQWEsRUFBRSxxQkFsRGE7SUFvRDVCQyxZQUFZLEVBQUUsb0JBcERjO0lBcUQ1QkMsV0FBVyxFQUFFLG1CQXJEZTtJQXVENUJDLHVCQUF1QixFQUFFLCtCQXZERztJQXdENUJDLHlCQUF5QixFQUFFLGlDQXhEQztJQXlENUJDLG1CQUFtQixFQUFFLDJCQXpETztJQTJENUJDLE1BQU0sRUFBRSxjQTNEb0I7SUE2RDVCQyxlQUFlLEVBQUUsdUJBN0RXO0lBK0Q1QkMsNkJBQTZCLEVBQUUscUNBL0RIO0lBZ0U1QkMsaUNBQWlDLEVBQUUseUNBaEVQO0lBaUU1QkMsNEJBQTRCLEVBQUU7RUFqRUYsQ0FBOUI7O0VBb0VBLElBQUksQ0FBQ0MsZUFBQSxDQUFFQyxHQUFGLENBQU0xQyxxQkFBTixFQUE2QkYsYUFBN0IsQ0FBTCxFQUFrRDtJQUNoRCxNQUFNLElBQUk2QyxjQUFBLENBQU9DLG1CQUFYLENBQWdDLDJCQUEwQjlDLGFBQWMsS0FBekMsR0FDbEMsUUFBTzJDLGVBQUEsQ0FBRUksSUFBRixDQUFPN0MscUJBQVAsQ0FBOEIsMEJBRGxDLENBQU47RUFFRDs7RUFDRCxPQUFPLE1BQU0sS0FBS0EscUJBQXFCLENBQUNGLGFBQUQsQ0FBMUIsRUFBMkNDLElBQTNDLENBQWI7QUFDRCxDQTFFRDs7ZUE0RWVILFUifQ==
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZU1vYmlsZSIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsInN3aXBlIiwic2Nyb2xsVG9QYWdlIiwibmF2aWdhdGVUbyIsImNsaWNrQWN0aW9uIiwiZGV2aWNlSW5mbyIsImlzVG9hc3RWaXNpYmxlIiwib3BlbkRyYXdlciIsImNsb3NlRHJhd2VyIiwic2V0RGF0ZSIsInNldFRpbWUiLCJnZXREZXZpY2VUaW1lIiwiYmFja2Rvb3IiLCJmbGFzaEVsZW1lbnQiLCJ1aWF1dG9tYXRvciIsInVpYXV0b21hdG9yUGFnZVNvdXJjZSIsIndlYkF0b21zIiwiZ2V0Q29udGV4dHMiLCJkaXNtaXNzQXV0b2ZpbGwiLCJnZXROb3RpZmljYXRpb25zIiwibGlzdFNtcyIsInNlbnNvclNldCIsInB1c2hGaWxlIiwicHVsbEZpbGUiLCJwdWxsRm9sZGVyIiwiZGVsZXRlRmlsZSIsImlzQXBwSW5zdGFsbGVkIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwicmVtb3ZlQXBwIiwidGVybWluYXRlQXBwIiwiaW5zdGFsbEFwcCIsImNsZWFyQXBwIiwic3RhcnRBY3Rpdml0eSIsInN0YXJ0U2VydmljZSIsInN0b3BTZXJ2aWNlIiwiYnJvYWRjYXN0IiwicmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJ1bnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwibGlzdElkbGluZ1Jlc291cmNlcyIsInVubG9jayIsInJlZnJlc2hHcHNDYWNoZSIsInN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nIiwiaXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nIiwic3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsIl8iLCJoYXMiLCJlcnJvcnMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgbW9iaWxlQ29tbWFuZHNNYXBwaW5nID0ge1xuICAgIHNoZWxsOiAnbW9iaWxlU2hlbGwnLFxuXG4gICAgZXhlY0VtdUNvbnNvbGVDb21tYW5kOiAnbW9iaWxlRXhlY0VtdUNvbnNvbGVDb21tYW5kJyxcblxuICAgIHBlcmZvcm1FZGl0b3JBY3Rpb246ICdtb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uJyxcblxuICAgIGNoYW5nZVBlcm1pc3Npb25zOiAnbW9iaWxlQ2hhbmdlUGVybWlzc2lvbnMnLFxuICAgIGdldFBlcm1pc3Npb25zOiAnbW9iaWxlR2V0UGVybWlzc2lvbnMnLFxuXG4gICAgc3RhcnRTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZycsXG4gICAgc3RvcFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0b3BTY3JlZW5TdHJlYW1pbmcnLFxuXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgc2Nyb2xsVG9QYWdlOiAnbW9iaWxlU2Nyb2xsVG9QYWdlJyxcbiAgICBuYXZpZ2F0ZVRvOiAnbW9iaWxlTmF2aWdhdGVUbycsXG4gICAgY2xpY2tBY3Rpb246ICdtb2JpbGVDbGlja0FjdGlvbicsXG5cbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG5cbiAgICBpc1RvYXN0VmlzaWJsZTogJ21vYmlsZUlzVG9hc3RWaXNpYmxlJyxcblxuICAgIG9wZW5EcmF3ZXI6ICdtb2JpbGVPcGVuRHJhd2VyJyxcbiAgICBjbG9zZURyYXdlcjogJ21vYmlsZUNsb3NlRHJhd2VyJyxcblxuICAgIHNldERhdGU6ICdtb2JpbGVTZXREYXRlJyxcbiAgICBzZXRUaW1lOiAnbW9iaWxlU2V0VGltZScsXG5cbiAgICBnZXREZXZpY2VUaW1lOiAnbW9iaWxlR2V0RGV2aWNlVGltZScsXG5cbiAgICBiYWNrZG9vcjogJ21vYmlsZUJhY2tkb29yJyxcblxuICAgIGZsYXNoRWxlbWVudDogJ21vYmlsZUZsYXNoRWxlbWVudCcsXG5cbiAgICB1aWF1dG9tYXRvcjogJ21vYmlsZVVpYXV0b21hdG9yJyxcbiAgICB1aWF1dG9tYXRvclBhZ2VTb3VyY2U6ICdtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UnLFxuXG4gICAgd2ViQXRvbXM6ICdtb2JpbGVXZWJBdG9tcycsXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICBkaXNtaXNzQXV0b2ZpbGw6ICdtb2JpbGVEaXNtaXNzQXV0b2ZpbGwnLFxuXG4gICAgZ2V0Tm90aWZpY2F0aW9uczogJ21vYmlsZUdldE5vdGlmaWNhdGlvbnMnLFxuXG4gICAgbGlzdFNtczogJ21vYmlsZUxpc3RTbXMnLFxuXG4gICAgc2Vuc29yU2V0OiAnc2Vuc29yU2V0JyxcblxuICAgIHB1c2hGaWxlOiAnbW9iaWxlUHVzaEZpbGUnLFxuICAgIHB1bGxGaWxlOiAnbW9iaWxlUHVsbEZpbGUnLFxuICAgIHB1bGxGb2xkZXI6ICdtb2JpbGVQdWxsRm9sZGVyJyxcbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG5cbiAgICBpc0FwcEluc3RhbGxlZDogJ21vYmlsZUlzQXBwSW5zdGFsbGVkJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgcmVtb3ZlQXBwOiAnbW9iaWxlUmVtb3ZlQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGluc3RhbGxBcHA6ICdtb2JpbGVJbnN0YWxsQXBwJyxcbiAgICBjbGVhckFwcDogJ21vYmlsZUNsZWFyQXBwJyxcblxuICAgIHN0YXJ0QWN0aXZpdHk6ICdtb2JpbGVTdGFydEFjdGl2aXR5JyxcbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuICAgIGJyb2FkY2FzdDogJ21vYmlsZUJyb2FkY2FzdCcsXG5cbiAgICByZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICB1bnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgbGlzdElkbGluZ1Jlc291cmNlczogJ21vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMnLFxuXG4gICAgdW5sb2NrOiAnbW9iaWxlVW5sb2NrJyxcblxuICAgIHJlZnJlc2hHcHNDYWNoZTogJ21vYmlsZVJlZnJlc2hHcHNDYWNoZScsXG5cbiAgICBzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nJyxcbiAgICBpc01lZGlhUHJvamVjdGlvblJlY29yZGluZ1J1bm5pbmc6ICdtb2JpbGVJc01lZGlhUHJvamVjdGlvblJlY29yZGluZ1J1bm5pbmcnLFxuICAgIHN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmc6ICdtb2JpbGVTdG9wTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKG1vYmlsZUNvbW1hbmRzTWFwcGluZywgbW9iaWxlQ29tbWFuZCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3IoYFVua25vd24gbW9iaWxlIGNvbW1hbmQgXCIke21vYmlsZUNvbW1hbmR9XCIuIGAgK1xuICAgICAgYE9ubHkgJHtfLmtleXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nKX0gY29tbWFuZHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpc1ttb2JpbGVDb21tYW5kc01hcHBpbmdbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUFBLFVBQVUsQ0FBQ0MsYUFBWCxHQUEyQixlQUFlQSxhQUFmLENBQThCQyxhQUE5QixFQUE2Q0MsSUFBSSxHQUFHLEVBQXBELEVBQXdEO0VBQ2pGLE1BQU1DLHFCQUFxQixHQUFHO0lBQzVCQyxLQUFLLEVBQUUsYUFEcUI7SUFHNUJDLHFCQUFxQixFQUFFLDZCQUhLO0lBSzVCQyxtQkFBbUIsRUFBRSwyQkFMTztJQU81QkMsaUJBQWlCLEVBQUUseUJBUFM7SUFRNUJDLGNBQWMsRUFBRSxzQkFSWTtJQVU1QkMsb0JBQW9CLEVBQUUsNEJBVk07SUFXNUJDLG1CQUFtQixFQUFFLDJCQVhPO0lBYTVCQyxLQUFLLEVBQUUsYUFicUI7SUFjNUJDLFlBQVksRUFBRSxvQkFkYztJQWU1QkMsVUFBVSxFQUFFLGtCQWZnQjtJQWdCNUJDLFdBQVcsRUFBRSxtQkFoQmU7SUFrQjVCQyxVQUFVLEVBQUUscUJBbEJnQjtJQW9CNUJDLGNBQWMsRUFBRSxzQkFwQlk7SUFzQjVCQyxVQUFVLEVBQUUsa0JBdEJnQjtJQXVCNUJDLFdBQVcsRUFBRSxtQkF2QmU7SUF5QjVCQyxPQUFPLEVBQUUsZUF6Qm1CO0lBMEI1QkMsT0FBTyxFQUFFLGVBMUJtQjtJQTRCNUJDLGFBQWEsRUFBRSxxQkE1QmE7SUE4QjVCQyxRQUFRLEVBQUUsZ0JBOUJrQjtJQWdDNUJDLFlBQVksRUFBRSxvQkFoQ2M7SUFrQzVCQyxXQUFXLEVBQUUsbUJBbENlO0lBbUM1QkMscUJBQXFCLEVBQUUsNkJBbkNLO0lBcUM1QkMsUUFBUSxFQUFFLGdCQXJDa0I7SUFzQzVCQyxXQUFXLEVBQUUsbUJBdENlO0lBd0M1QkMsZUFBZSxFQUFFLHVCQXhDVztJQTBDNUJDLGdCQUFnQixFQUFFLHdCQTFDVTtJQTRDNUJDLE9BQU8sRUFBRSxlQTVDbUI7SUE4QzVCQyxTQUFTLEVBQUUsV0E5Q2lCO0lBZ0Q1QkMsUUFBUSxFQUFFLGdCQWhEa0I7SUFpRDVCQyxRQUFRLEVBQUUsZ0JBakRrQjtJQWtENUJDLFVBQVUsRUFBRSxrQkFsRGdCO0lBbUQ1QkMsVUFBVSxFQUFFLGtCQW5EZ0I7SUFxRDVCQyxjQUFjLEVBQUUsc0JBckRZO0lBc0Q1QkMsYUFBYSxFQUFFLHFCQXREYTtJQXVENUJDLFdBQVcsRUFBRSxtQkF2RGU7SUF3RDVCQyxTQUFTLEVBQUUsaUJBeERpQjtJQXlENUJDLFlBQVksRUFBRSxvQkF6RGM7SUEwRDVCQyxVQUFVLEVBQUUsa0JBMURnQjtJQTJENUJDLFFBQVEsRUFBRSxnQkEzRGtCO0lBNkQ1QkMsYUFBYSxFQUFFLHFCQTdEYTtJQThENUJDLFlBQVksRUFBRSxvQkE5RGM7SUErRDVCQyxXQUFXLEVBQUUsbUJBL0RlO0lBZ0U1QkMsU0FBUyxFQUFFLGlCQWhFaUI7SUFrRTVCQyx1QkFBdUIsRUFBRSwrQkFsRUc7SUFtRTVCQyx5QkFBeUIsRUFBRSxpQ0FuRUM7SUFvRTVCQyxtQkFBbUIsRUFBRSwyQkFwRU87SUFzRTVCQyxNQUFNLEVBQUUsY0F0RW9CO0lBd0U1QkMsZUFBZSxFQUFFLHVCQXhFVztJQTBFNUJDLDZCQUE2QixFQUFFLHFDQTFFSDtJQTJFNUJDLGlDQUFpQyxFQUFFLHlDQTNFUDtJQTRFNUJDLDRCQUE0QixFQUFFO0VBNUVGLENBQTlCOztFQStFQSxJQUFJLENBQUNDLGVBQUEsQ0FBRUMsR0FBRixDQUFNckQscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7SUFDaEQsTUFBTSxJQUFJd0QsY0FBQSxDQUFPQyxtQkFBWCxDQUFnQywyQkFBMEJ6RCxhQUFjLEtBQXpDLEdBQ2xDLFFBQU9zRCxlQUFBLENBQUVJLElBQUYsQ0FBT3hELHFCQUFQLENBQThCLDBCQURsQyxDQUFOO0VBRUQ7O0VBQ0QsT0FBTyxNQUFNLEtBQUtBLHFCQUFxQixDQUFDRixhQUFELENBQTFCLEVBQTJDQyxJQUEzQyxDQUFiO0FBQ0QsQ0FyRkQ7O2VBdUZlSCxVIn0=
@@ -142,6 +142,8 @@ private fun String.toComponentName(): ComponentName = ComponentName.unflattenFro
142
142
  * keys and values of type string->string, such as {'foo': 'content://contacts/people/1'}
143
143
  * - `ecn`: Component name data as key-value pairs stored in a map with
144
144
  * keys and values of type string->string, such as {'foo': 'com.example.app/.ExampleActivity'}
145
+ * - `esa`: Array of strings data as key-value pairs stored in a map with
146
+ * keys and values of type string->list, such as {'foo': ['bar1','bar2','bar3','bar4']}
145
147
  * - `eia`: Array of integers data as key-value pairs stored in a map with
146
148
  * keys and values of type string->string, such as {'foo': '1,2,3,4'}
147
149
  * - `ela`: Array of long data as key-value pairs stored in a map with
@@ -243,6 +245,18 @@ fun makeIntent(context: Context?, options: Map<String, Any?>): Intent {
243
245
  intent.putExtra(it.key as String, requireBool(it.key as String, it.value))
244
246
  }
245
247
  },
248
+ "esa" to fun(key, value) {
249
+ requireMap(key, value)
250
+ .filter { it.key is String }
251
+ .forEach { entry ->
252
+ requireList(entry.key as String, entry.value)
253
+ .map {
254
+ it.toString()
255
+ }
256
+ .toTypedArray()
257
+ .let { intent.putExtra(entry.key as String, it) }
258
+ }
259
+ },
246
260
  "eia" to fun(key, value) {
247
261
  requireMap(key, value)
248
262
  .filter { it.key is String }
@@ -53,9 +53,9 @@ import io.appium.espressoserver.lib.handlers.exceptions.InvalidElementStateExcep
53
53
  import io.appium.espressoserver.lib.model.toJsonMatcher
54
54
  import io.appium.espressoserver.lib.viewmatcher.withView
55
55
  import io.appium.espressoserver.lib.viewmatcher.withXPath
56
- import org.hamcrest.CoreMatchers.allOf
57
- import org.hamcrest.CoreMatchers.equalTo
58
- import org.hamcrest.CoreMatchers.`is`
56
+ import org.hamcrest.Matchers.allOf
57
+ import org.hamcrest.Matchers.equalTo
58
+ import org.hamcrest.Matchers.`is`
59
59
  import org.hamcrest.Matchers.endsWith
60
60
  import org.hamcrest.Matchers.hasEntry
61
61
  import org.hamcrest.Matchers.instanceOf
@@ -109,4 +109,13 @@ class HamcrestMatcherTest {
109
109
  {"args": "Hello World!"}
110
110
  """.trimIndent(), HamcrestMatcher::class.java)
111
111
  }
112
- }
112
+
113
+ @Test
114
+ fun `should parse Hamcrest matcher that have regex as an arg` () {
115
+ val matcher = g.fromJson("""
116
+ {"name": "matchesRegex", "args": "[A-Za-z ]*"}
117
+ """.trimIndent(), HamcrestMatcher::class.java)
118
+ assertTrue(matcher.invoke().matches("Hello World"))
119
+ assertFalse(matcher.invoke().matches("Hello World!"))
120
+ }
121
+ }
@@ -52,12 +52,23 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
52
52
 
53
53
  sensorSet: 'sensorSet',
54
54
 
55
+ pushFile: 'mobilePushFile',
56
+ pullFile: 'mobilePullFile',
57
+ pullFolder: 'mobilePullFolder',
55
58
  deleteFile: 'mobileDeleteFile',
56
59
 
57
- startActivity: 'mobileStartActivity',
60
+ isAppInstalled: 'mobileIsAppInstalled',
61
+ queryAppState: 'mobileQueryAppState',
62
+ activateApp: 'mobileActivateApp',
63
+ removeApp: 'mobileRemoveApp',
64
+ terminateApp: 'mobileTerminateApp',
65
+ installApp: 'mobileInstallApp',
66
+ clearApp: 'mobileClearApp',
58
67
 
68
+ startActivity: 'mobileStartActivity',
59
69
  startService: 'mobileStartService',
60
70
  stopService: 'mobileStopService',
71
+ broadcast: 'mobileBroadcast',
61
72
 
62
73
  registerIdlingResources: 'mobileRegisterIdlingResources',
63
74
  unregisterIdlingResources: 'mobileUnregisterIdlingResources',
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "appium-espresso-driver",
3
- "version": "2.8.4",
3
+ "version": "2.10.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-espresso-driver",
9
- "version": "2.8.4",
9
+ "version": "2.10.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@babel/runtime": "^7.4.3",
13
13
  "appium-adb": "^9.10.2",
14
- "appium-android-driver": "^5.2.7",
14
+ "appium-android-driver": "^5.4.0",
15
15
  "asyncbox": "^2.3.1",
16
16
  "bluebird": "^3.5.0",
17
17
  "lodash": "^4.17.11",
@@ -93,6 +93,17 @@
93
93
  "npm": ">=8"
94
94
  }
95
95
  },
96
+ "node_modules/@appium/base-driver/node_modules/@babel/runtime": {
97
+ "version": "7.18.9",
98
+ "extraneous": true,
99
+ "license": "MIT",
100
+ "dependencies": {
101
+ "regenerator-runtime": "^0.13.4"
102
+ },
103
+ "engines": {
104
+ "node": ">=6.9.0"
105
+ }
106
+ },
96
107
  "node_modules/@appium/base-plugin": {
97
108
  "version": "1.10.2",
98
109
  "extraneous": true,
@@ -123,6 +134,17 @@
123
134
  "npm": ">=8"
124
135
  }
125
136
  },
137
+ "node_modules/@appium/docutils/node_modules/@babel/runtime": {
138
+ "version": "7.18.9",
139
+ "extraneous": true,
140
+ "license": "MIT",
141
+ "dependencies": {
142
+ "regenerator-runtime": "^0.13.4"
143
+ },
144
+ "engines": {
145
+ "node": ">=6.9.0"
146
+ }
147
+ },
126
148
  "node_modules/@appium/docutils/node_modules/teen_process": {
127
149
  "version": "1.16.0",
128
150
  "engines": [
@@ -220,6 +242,16 @@
220
242
  "npm": ">=8"
221
243
  }
222
244
  },
245
+ "node_modules/@appium/support/node_modules/@babel/runtime": {
246
+ "version": "7.18.9",
247
+ "license": "MIT",
248
+ "dependencies": {
249
+ "regenerator-runtime": "^0.13.4"
250
+ },
251
+ "engines": {
252
+ "node": ">=6.9.0"
253
+ }
254
+ },
223
255
  "node_modules/@appium/support/node_modules/brace-expansion": {
224
256
  "version": "2.0.1",
225
257
  "license": "MIT",
@@ -321,6 +353,17 @@
321
353
  "appium": "^2.0.0-beta.35"
322
354
  }
323
355
  },
356
+ "node_modules/@appium/test-support/node_modules/@babel/runtime": {
357
+ "version": "7.18.9",
358
+ "extraneous": true,
359
+ "license": "MIT",
360
+ "dependencies": {
361
+ "regenerator-runtime": "^0.13.4"
362
+ },
363
+ "engines": {
364
+ "node": ">=6.9.0"
365
+ }
366
+ },
324
367
  "node_modules/@appium/test-support/node_modules/teen_process": {
325
368
  "version": "1.16.0",
326
369
  "engines": [
@@ -382,7 +425,7 @@
382
425
  }
383
426
  },
384
427
  "node_modules/@babel/parser": {
385
- "version": "7.18.13",
428
+ "version": "7.19.0",
386
429
  "extraneous": true,
387
430
  "license": "MIT",
388
431
  "bin": {
@@ -393,7 +436,7 @@
393
436
  }
394
437
  },
395
438
  "node_modules/@babel/runtime": {
396
- "version": "7.18.9",
439
+ "version": "7.19.0",
397
440
  "license": "MIT",
398
441
  "dependencies": {
399
442
  "regenerator-runtime": "^0.13.4"
@@ -1039,10 +1082,6 @@
1039
1082
  "@types/node": "*"
1040
1083
  }
1041
1084
  },
1042
- "node_modules/@types/json-buffer": {
1043
- "version": "3.0.0",
1044
- "license": "MIT"
1045
- },
1046
1085
  "node_modules/@types/json-schema": {
1047
1086
  "version": "7.0.11",
1048
1087
  "license": "MIT"
@@ -1112,7 +1151,7 @@
1112
1151
  }
1113
1152
  },
1114
1153
  "node_modules/@types/node": {
1115
- "version": "18.7.14",
1154
+ "version": "18.7.15",
1116
1155
  "license": "MIT"
1117
1156
  },
1118
1157
  "node_modules/@types/normalize-package-data": {
@@ -1352,7 +1391,7 @@
1352
1391
  }
1353
1392
  },
1354
1393
  "node_modules/appium-android-driver": {
1355
- "version": "5.2.12",
1394
+ "version": "5.4.0",
1356
1395
  "license": "Apache-2.0",
1357
1396
  "dependencies": {
1358
1397
  "@babel/runtime": "^7.0.0",
@@ -1967,17 +2006,6 @@
1967
2006
  "version": "5.0.1",
1968
2007
  "license": "MIT"
1969
2008
  },
1970
- "node_modules/compress-brotli": {
1971
- "version": "1.3.8",
1972
- "license": "MIT",
1973
- "dependencies": {
1974
- "@types/json-buffer": "~3.0.0",
1975
- "json-buffer": "~3.0.1"
1976
- },
1977
- "engines": {
1978
- "node": ">= 12"
1979
- }
1980
- },
1981
2009
  "node_modules/compress-commons": {
1982
2010
  "version": "4.1.1",
1983
2011
  "license": "MIT",
@@ -2269,7 +2297,7 @@
2269
2297
  }
2270
2298
  },
2271
2299
  "node_modules/es-abstract": {
2272
- "version": "1.20.1",
2300
+ "version": "1.20.2",
2273
2301
  "extraneous": true,
2274
2302
  "license": "MIT",
2275
2303
  "dependencies": {
@@ -2277,7 +2305,7 @@
2277
2305
  "es-to-primitive": "^1.2.1",
2278
2306
  "function-bind": "^1.1.1",
2279
2307
  "function.prototype.name": "^1.1.5",
2280
- "get-intrinsic": "^1.1.1",
2308
+ "get-intrinsic": "^1.1.2",
2281
2309
  "get-symbol-description": "^1.0.0",
2282
2310
  "has": "^1.0.3",
2283
2311
  "has-property-descriptors": "^1.0.0",
@@ -2289,9 +2317,9 @@
2289
2317
  "is-shared-array-buffer": "^1.0.2",
2290
2318
  "is-string": "^1.0.7",
2291
2319
  "is-weakref": "^1.0.2",
2292
- "object-inspect": "^1.12.0",
2320
+ "object-inspect": "^1.12.2",
2293
2321
  "object-keys": "^1.1.1",
2294
- "object.assign": "^4.1.2",
2322
+ "object.assign": "^4.1.4",
2295
2323
  "regexp.prototype.flags": "^1.4.3",
2296
2324
  "string.prototype.trimend": "^1.0.5",
2297
2325
  "string.prototype.trimstart": "^1.0.5",
@@ -3307,10 +3335,9 @@
3307
3335
  "license": "MIT"
3308
3336
  },
3309
3337
  "node_modules/keyv": {
3310
- "version": "4.4.1",
3338
+ "version": "4.5.0",
3311
3339
  "license": "MIT",
3312
3340
  "dependencies": {
3313
- "compress-brotli": "^1.3.8",
3314
3341
  "json-buffer": "3.0.1"
3315
3342
  }
3316
3343
  },
@@ -4993,6 +5020,16 @@
4993
5020
  "npm": ">=6"
4994
5021
  }
4995
5022
  },
5023
+ "node_modules/teen_process/node_modules/@babel/runtime": {
5024
+ "version": "7.18.9",
5025
+ "license": "MIT",
5026
+ "dependencies": {
5027
+ "regenerator-runtime": "^0.13.4"
5028
+ },
5029
+ "engines": {
5030
+ "node": ">=6.9.0"
5031
+ }
5032
+ },
4996
5033
  "node_modules/text-hex": {
4997
5034
  "version": "1.0.0",
4998
5035
  "extraneous": true,
@@ -5509,6 +5546,15 @@
5509
5546
  "source-map-support": "0.5.21",
5510
5547
  "type-fest": "2.18.0",
5511
5548
  "validate.js": "0.13.1"
5549
+ },
5550
+ "dependencies": {
5551
+ "@babel/runtime": {
5552
+ "version": "7.18.9",
5553
+ "extraneous": true,
5554
+ "requires": {
5555
+ "regenerator-runtime": "^0.13.4"
5556
+ }
5557
+ }
5512
5558
  }
5513
5559
  },
5514
5560
  "@appium/base-plugin": {
@@ -5531,6 +5577,13 @@
5531
5577
  "teen_process": "1.16.0"
5532
5578
  },
5533
5579
  "dependencies": {
5580
+ "@babel/runtime": {
5581
+ "version": "7.18.9",
5582
+ "extraneous": true,
5583
+ "requires": {
5584
+ "regenerator-runtime": "^0.13.4"
5585
+ }
5586
+ },
5534
5587
  "teen_process": {
5535
5588
  "version": "1.16.0",
5536
5589
  "extraneous": true,
@@ -5616,6 +5669,12 @@
5616
5669
  "yauzl": "2.10.0"
5617
5670
  },
5618
5671
  "dependencies": {
5672
+ "@babel/runtime": {
5673
+ "version": "7.18.9",
5674
+ "requires": {
5675
+ "regenerator-runtime": "^0.13.4"
5676
+ }
5677
+ },
5619
5678
  "brace-expansion": {
5620
5679
  "version": "2.0.1",
5621
5680
  "requires": {
@@ -5680,6 +5739,13 @@
5680
5739
  "teen_process": "1.16.0"
5681
5740
  },
5682
5741
  "dependencies": {
5742
+ "@babel/runtime": {
5743
+ "version": "7.18.9",
5744
+ "extraneous": true,
5745
+ "requires": {
5746
+ "regenerator-runtime": "^0.13.4"
5747
+ }
5748
+ },
5683
5749
  "teen_process": {
5684
5750
  "version": "1.16.0",
5685
5751
  "extraneous": true,
@@ -5722,11 +5788,11 @@
5722
5788
  }
5723
5789
  },
5724
5790
  "@babel/parser": {
5725
- "version": "7.18.13",
5791
+ "version": "7.19.0",
5726
5792
  "extraneous": true
5727
5793
  },
5728
5794
  "@babel/runtime": {
5729
- "version": "7.18.9",
5795
+ "version": "7.19.0",
5730
5796
  "requires": {
5731
5797
  "regenerator-runtime": "^0.13.4"
5732
5798
  }
@@ -6172,9 +6238,6 @@
6172
6238
  "@types/node": "*"
6173
6239
  }
6174
6240
  },
6175
- "@types/json-buffer": {
6176
- "version": "3.0.0"
6177
- },
6178
6241
  "@types/json-schema": {
6179
6242
  "version": "7.0.11"
6180
6243
  },
@@ -6232,7 +6295,7 @@
6232
6295
  }
6233
6296
  },
6234
6297
  "@types/node": {
6235
- "version": "18.7.14"
6298
+ "version": "18.7.15"
6236
6299
  },
6237
6300
  "@types/normalize-package-data": {
6238
6301
  "version": "2.4.1"
@@ -6402,7 +6465,7 @@
6402
6465
  }
6403
6466
  },
6404
6467
  "appium-android-driver": {
6405
- "version": "5.2.12",
6468
+ "version": "5.4.0",
6406
6469
  "requires": {
6407
6470
  "@babel/runtime": "^7.0.0",
6408
6471
  "appium-adb": "^9.10.9",
@@ -6814,13 +6877,6 @@
6814
6877
  "compare-versions": {
6815
6878
  "version": "5.0.1"
6816
6879
  },
6817
- "compress-brotli": {
6818
- "version": "1.3.8",
6819
- "requires": {
6820
- "@types/json-buffer": "~3.0.0",
6821
- "json-buffer": "~3.0.1"
6822
- }
6823
- },
6824
6880
  "compress-commons": {
6825
6881
  "version": "4.1.1",
6826
6882
  "requires": {
@@ -6990,14 +7046,14 @@
6990
7046
  }
6991
7047
  },
6992
7048
  "es-abstract": {
6993
- "version": "1.20.1",
7049
+ "version": "1.20.2",
6994
7050
  "extraneous": true,
6995
7051
  "requires": {
6996
7052
  "call-bind": "^1.0.2",
6997
7053
  "es-to-primitive": "^1.2.1",
6998
7054
  "function-bind": "^1.1.1",
6999
7055
  "function.prototype.name": "^1.1.5",
7000
- "get-intrinsic": "^1.1.1",
7056
+ "get-intrinsic": "^1.1.2",
7001
7057
  "get-symbol-description": "^1.0.0",
7002
7058
  "has": "^1.0.3",
7003
7059
  "has-property-descriptors": "^1.0.0",
@@ -7009,9 +7065,9 @@
7009
7065
  "is-shared-array-buffer": "^1.0.2",
7010
7066
  "is-string": "^1.0.7",
7011
7067
  "is-weakref": "^1.0.2",
7012
- "object-inspect": "^1.12.0",
7068
+ "object-inspect": "^1.12.2",
7013
7069
  "object-keys": "^1.1.1",
7014
- "object.assign": "^4.1.2",
7070
+ "object.assign": "^4.1.4",
7015
7071
  "regexp.prototype.flags": "^1.4.3",
7016
7072
  "string.prototype.trimend": "^1.0.5",
7017
7073
  "string.prototype.trimstart": "^1.0.5",
@@ -7649,9 +7705,8 @@
7649
7705
  "dev": true
7650
7706
  },
7651
7707
  "keyv": {
7652
- "version": "4.4.1",
7708
+ "version": "4.5.0",
7653
7709
  "requires": {
7654
- "compress-brotli": "^1.3.8",
7655
7710
  "json-buffer": "3.0.1"
7656
7711
  }
7657
7712
  },
@@ -8770,6 +8825,14 @@
8770
8825
  "shell-quote": "1.7.3",
8771
8826
  "source-map-support": "0.5.21",
8772
8827
  "which": "2.0.2"
8828
+ },
8829
+ "dependencies": {
8830
+ "@babel/runtime": {
8831
+ "version": "7.18.9",
8832
+ "requires": {
8833
+ "regenerator-runtime": "^0.13.4"
8834
+ }
8835
+ }
8773
8836
  }
8774
8837
  },
8775
8838
  "text-hex": {
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "automated testing",
8
8
  "android"
9
9
  ],
10
- "version": "2.8.4",
10
+ "version": "2.10.0",
11
11
  "author": "Appium Contributors",
12
12
  "license": "Apache-2.0",
13
13
  "repository": {
@@ -62,7 +62,7 @@
62
62
  "dependencies": {
63
63
  "@babel/runtime": "^7.4.3",
64
64
  "appium-adb": "^9.10.2",
65
- "appium-android-driver": "^5.2.7",
65
+ "appium-android-driver": "^5.4.0",
66
66
  "asyncbox": "^2.3.1",
67
67
  "bluebird": "^3.5.0",
68
68
  "lodash": "^4.17.11",
@@ -77,6 +77,7 @@
77
77
  "build:server": "cd espresso-server && ./gradlew clean assembleAndroidTest || cd ..",
78
78
  "dev": "npm run build -- --watch",
79
79
  "lint": "eslint .",
80
+ "lint:server": "cd espresso-server && ./gradlew lint || cd ..",
80
81
  "lint:fix": "npm run lint -- --fix",
81
82
  "precommit-msg": "echo 'Pre-commit checks...' && exit 0",
82
83
  "precommit-lint": "lint-staged",