appium-android-driver 7.8.3 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/lib/commands/app-management.d.ts +129 -5
  3. package/build/lib/commands/app-management.d.ts.map +1 -1
  4. package/build/lib/commands/app-management.js +433 -128
  5. package/build/lib/commands/app-management.js.map +1 -1
  6. package/build/lib/commands/appearance.d.ts +17 -4
  7. package/build/lib/commands/appearance.d.ts.map +1 -1
  8. package/build/lib/commands/appearance.js +32 -33
  9. package/build/lib/commands/appearance.js.map +1 -1
  10. package/build/lib/commands/context/cache.d.ts +19 -0
  11. package/build/lib/commands/context/cache.d.ts.map +1 -0
  12. package/build/lib/commands/context/cache.js +32 -0
  13. package/build/lib/commands/context/cache.js.map +1 -0
  14. package/build/lib/commands/context/exports.d.ts +141 -0
  15. package/build/lib/commands/context/exports.d.ts.map +1 -0
  16. package/build/lib/commands/context/exports.js +351 -0
  17. package/build/lib/commands/context/exports.js.map +1 -0
  18. package/build/lib/commands/context/helpers.d.ts +98 -0
  19. package/build/lib/commands/context/helpers.d.ts.map +1 -0
  20. package/build/lib/commands/context/helpers.js +715 -0
  21. package/build/lib/commands/context/helpers.js.map +1 -0
  22. package/build/lib/commands/device/common.d.ts +23 -0
  23. package/build/lib/commands/device/common.d.ts.map +1 -0
  24. package/build/lib/commands/device/common.js +230 -0
  25. package/build/lib/commands/device/common.js.map +1 -0
  26. package/build/lib/commands/device/emulator-actions.d.ts +114 -0
  27. package/build/lib/commands/device/emulator-actions.d.ts.map +1 -0
  28. package/build/lib/commands/device/emulator-actions.js +197 -0
  29. package/build/lib/commands/device/emulator-actions.js.map +1 -0
  30. package/build/lib/commands/device/emulator-console.d.ts +7 -0
  31. package/build/lib/commands/device/emulator-console.d.ts.map +1 -0
  32. package/build/lib/commands/device/emulator-console.js +24 -0
  33. package/build/lib/commands/device/emulator-console.js.map +1 -0
  34. package/build/lib/commands/device/utils.d.ts +50 -0
  35. package/build/lib/commands/device/utils.d.ts.map +1 -0
  36. package/build/lib/commands/device/utils.js +238 -0
  37. package/build/lib/commands/device/utils.js.map +1 -0
  38. package/build/lib/commands/deviceidle.d.ts +8 -5
  39. package/build/lib/commands/deviceidle.d.ts.map +1 -1
  40. package/build/lib/commands/deviceidle.js +31 -37
  41. package/build/lib/commands/deviceidle.js.map +1 -1
  42. package/build/lib/commands/element.d.ts +99 -5
  43. package/build/lib/commands/element.d.ts.map +1 -1
  44. package/build/lib/commands/element.js +152 -116
  45. package/build/lib/commands/element.js.map +1 -1
  46. package/build/lib/commands/execute.d.ts +12 -4
  47. package/build/lib/commands/execute.d.ts.map +1 -1
  48. package/build/lib/commands/execute.js +83 -78
  49. package/build/lib/commands/execute.js.map +1 -1
  50. package/build/lib/commands/file-actions.d.ts +42 -5
  51. package/build/lib/commands/file-actions.d.ts.map +1 -1
  52. package/build/lib/commands/file-actions.js +230 -194
  53. package/build/lib/commands/file-actions.js.map +1 -1
  54. package/build/lib/commands/find.d.ts +5 -4
  55. package/build/lib/commands/find.d.ts.map +1 -1
  56. package/build/lib/commands/find.js +7 -10
  57. package/build/lib/commands/find.js.map +1 -1
  58. package/build/lib/commands/geolocation.d.ts +45 -0
  59. package/build/lib/commands/geolocation.d.ts.map +1 -0
  60. package/build/lib/commands/geolocation.js +182 -0
  61. package/build/lib/commands/geolocation.js.map +1 -0
  62. package/build/lib/commands/ime.d.ts +25 -5
  63. package/build/lib/commands/ime.d.ts.map +1 -1
  64. package/build/lib/commands/ime.js +59 -42
  65. package/build/lib/commands/ime.js.map +1 -1
  66. package/build/lib/commands/intent.d.ts +56 -5
  67. package/build/lib/commands/intent.d.ts.map +1 -1
  68. package/build/lib/commands/intent.js +135 -83
  69. package/build/lib/commands/intent.js.map +1 -1
  70. package/build/lib/commands/keyboard.d.ts +58 -4
  71. package/build/lib/commands/keyboard.d.ts.map +1 -1
  72. package/build/lib/commands/keyboard.js +119 -17
  73. package/build/lib/commands/keyboard.js.map +1 -1
  74. package/build/lib/commands/lock/exports.d.ts +301 -0
  75. package/build/lib/commands/lock/exports.d.ts.map +1 -0
  76. package/build/lib/commands/lock/exports.js +121 -0
  77. package/build/lib/commands/lock/exports.js.map +1 -0
  78. package/build/lib/commands/lock/helpers.d.ts +349 -0
  79. package/build/lib/commands/lock/helpers.d.ts.map +1 -0
  80. package/build/lib/commands/lock/helpers.js +375 -0
  81. package/build/lib/commands/lock/helpers.js.map +1 -0
  82. package/build/lib/commands/log.d.ts +59 -5
  83. package/build/lib/commands/log.d.ts.map +1 -1
  84. package/build/lib/commands/log.js +150 -140
  85. package/build/lib/commands/log.js.map +1 -1
  86. package/build/lib/commands/media-projection.d.ts +16 -5
  87. package/build/lib/commands/media-projection.d.ts.map +1 -1
  88. package/build/lib/commands/media-projection.js +69 -58
  89. package/build/lib/commands/media-projection.js.map +1 -1
  90. package/build/lib/commands/memory.d.ts +9 -5
  91. package/build/lib/commands/memory.d.ts.map +1 -1
  92. package/build/lib/commands/memory.js +19 -24
  93. package/build/lib/commands/memory.js.map +1 -1
  94. package/build/lib/commands/misc.d.ts +42 -0
  95. package/build/lib/commands/misc.d.ts.map +1 -0
  96. package/build/lib/commands/misc.js +100 -0
  97. package/build/lib/commands/misc.js.map +1 -0
  98. package/build/lib/commands/network.d.ts +61 -5
  99. package/build/lib/commands/network.d.ts.map +1 -1
  100. package/build/lib/commands/network.js +196 -189
  101. package/build/lib/commands/network.js.map +1 -1
  102. package/build/lib/commands/performance.d.ts +67 -27
  103. package/build/lib/commands/performance.d.ts.map +1 -1
  104. package/build/lib/commands/performance.js +105 -80
  105. package/build/lib/commands/performance.js.map +1 -1
  106. package/build/lib/commands/permissions.d.ts +12 -6
  107. package/build/lib/commands/permissions.d.ts.map +1 -1
  108. package/build/lib/commands/permissions.js +65 -62
  109. package/build/lib/commands/permissions.js.map +1 -1
  110. package/build/lib/commands/recordscreen.d.ts +44 -5
  111. package/build/lib/commands/recordscreen.d.ts.map +1 -1
  112. package/build/lib/commands/recordscreen.js +131 -126
  113. package/build/lib/commands/recordscreen.js.map +1 -1
  114. package/build/lib/commands/resources.d.ts +16 -0
  115. package/build/lib/commands/resources.d.ts.map +1 -0
  116. package/build/lib/commands/resources.js +91 -0
  117. package/build/lib/commands/resources.js.map +1 -0
  118. package/build/lib/commands/shell.d.ts +8 -5
  119. package/build/lib/commands/shell.d.ts.map +1 -1
  120. package/build/lib/commands/shell.js +29 -33
  121. package/build/lib/commands/shell.js.map +1 -1
  122. package/build/lib/commands/streamscreen.d.ts +34 -6
  123. package/build/lib/commands/streamscreen.d.ts.map +1 -1
  124. package/build/lib/commands/streamscreen.js +166 -162
  125. package/build/lib/commands/streamscreen.js.map +1 -1
  126. package/build/lib/commands/system-bars.d.ts +18 -13
  127. package/build/lib/commands/system-bars.d.ts.map +1 -1
  128. package/build/lib/commands/system-bars.js +68 -64
  129. package/build/lib/commands/system-bars.js.map +1 -1
  130. package/build/lib/commands/time.d.ts +14 -0
  131. package/build/lib/commands/time.d.ts.map +1 -0
  132. package/build/lib/commands/time.js +39 -0
  133. package/build/lib/commands/time.js.map +1 -0
  134. package/build/lib/commands/touch.d.ts +99 -6
  135. package/build/lib/commands/touch.d.ts.map +1 -1
  136. package/build/lib/commands/touch.js +399 -280
  137. package/build/lib/commands/touch.js.map +1 -1
  138. package/build/lib/commands/types.d.ts +110 -2
  139. package/build/lib/commands/types.d.ts.map +1 -1
  140. package/build/lib/doctor/checks.d.ts.map +1 -1
  141. package/build/lib/doctor/checks.js +4 -4
  142. package/build/lib/doctor/checks.js.map +1 -1
  143. package/build/lib/driver.d.ts +224 -27
  144. package/build/lib/driver.d.ts.map +1 -1
  145. package/build/lib/driver.js +232 -7
  146. package/build/lib/driver.js.map +1 -1
  147. package/build/lib/index.d.ts +1 -4
  148. package/build/lib/index.d.ts.map +1 -1
  149. package/build/lib/index.js +1 -13
  150. package/build/lib/index.js.map +1 -1
  151. package/build/lib/logger.js.map +1 -1
  152. package/build/lib/method-map.d.ts +0 -23
  153. package/build/lib/method-map.d.ts.map +1 -1
  154. package/build/lib/method-map.js +0 -11
  155. package/build/lib/method-map.js.map +1 -1
  156. package/build/lib/utils.d.ts +12 -0
  157. package/build/lib/utils.d.ts.map +1 -1
  158. package/build/lib/utils.js +38 -2
  159. package/build/lib/utils.js.map +1 -1
  160. package/lib/commands/app-management.js +470 -145
  161. package/lib/commands/appearance.js +29 -36
  162. package/lib/commands/context/cache.js +29 -0
  163. package/lib/commands/context/exports.js +379 -0
  164. package/lib/commands/context/helpers.js +802 -0
  165. package/lib/commands/device/common.js +264 -0
  166. package/lib/commands/device/emulator-actions.js +194 -0
  167. package/lib/commands/device/emulator-console.js +24 -0
  168. package/lib/commands/device/utils.js +285 -0
  169. package/lib/commands/deviceidle.js +31 -44
  170. package/lib/commands/element.js +149 -142
  171. package/lib/commands/execute.js +86 -87
  172. package/lib/commands/file-actions.js +249 -222
  173. package/lib/commands/find.ts +13 -19
  174. package/lib/commands/geolocation.js +179 -0
  175. package/lib/commands/ime.js +53 -45
  176. package/lib/commands/intent.js +149 -91
  177. package/lib/commands/keyboard.js +114 -17
  178. package/lib/commands/lock/exports.js +139 -0
  179. package/lib/commands/lock/helpers.js +379 -0
  180. package/lib/commands/log.js +170 -166
  181. package/lib/commands/media-projection.js +75 -70
  182. package/lib/commands/memory.js +17 -29
  183. package/lib/commands/misc.js +94 -0
  184. package/lib/commands/network.js +209 -223
  185. package/lib/commands/performance.js +88 -73
  186. package/lib/commands/permissions.js +83 -84
  187. package/lib/commands/recordscreen.js +171 -170
  188. package/lib/commands/resources.js +96 -0
  189. package/lib/commands/shell.js +28 -42
  190. package/lib/commands/streamscreen.js +207 -206
  191. package/lib/commands/system-bars.js +76 -77
  192. package/lib/commands/time.js +36 -0
  193. package/lib/commands/touch.js +442 -346
  194. package/lib/commands/types.ts +123 -2
  195. package/lib/doctor/checks.js +24 -16
  196. package/lib/driver.ts +454 -12
  197. package/lib/index.ts +1 -13
  198. package/lib/logger.js +1 -1
  199. package/lib/method-map.js +0 -11
  200. package/lib/utils.js +40 -3
  201. package/package.json +1 -1
  202. package/build/lib/commands/actions.d.ts +0 -8
  203. package/build/lib/commands/actions.d.ts.map +0 -1
  204. package/build/lib/commands/actions.js +0 -207
  205. package/build/lib/commands/actions.js.map +0 -1
  206. package/build/lib/commands/alert.d.ts +0 -8
  207. package/build/lib/commands/alert.d.ts.map +0 -1
  208. package/build/lib/commands/alert.js +0 -29
  209. package/build/lib/commands/alert.js.map +0 -1
  210. package/build/lib/commands/context.d.ts +0 -10
  211. package/build/lib/commands/context.d.ts.map +0 -1
  212. package/build/lib/commands/context.js +0 -431
  213. package/build/lib/commands/context.js.map +0 -1
  214. package/build/lib/commands/emu-console.d.ts +0 -7
  215. package/build/lib/commands/emu-console.d.ts.map +0 -1
  216. package/build/lib/commands/emu-console.js +0 -27
  217. package/build/lib/commands/emu-console.js.map +0 -1
  218. package/build/lib/commands/general.d.ts +0 -9
  219. package/build/lib/commands/general.d.ts.map +0 -1
  220. package/build/lib/commands/general.js +0 -293
  221. package/build/lib/commands/general.js.map +0 -1
  222. package/build/lib/commands/index.d.ts +0 -28
  223. package/build/lib/commands/index.d.ts.map +0 -1
  224. package/build/lib/commands/index.js +0 -57
  225. package/build/lib/commands/index.js.map +0 -1
  226. package/build/lib/commands/mixins.d.ts +0 -747
  227. package/build/lib/commands/mixins.d.ts.map +0 -1
  228. package/build/lib/commands/mixins.js +0 -19
  229. package/build/lib/commands/mixins.js.map +0 -1
  230. package/build/lib/helpers/android.d.ts +0 -163
  231. package/build/lib/helpers/android.d.ts.map +0 -1
  232. package/build/lib/helpers/android.js +0 -818
  233. package/build/lib/helpers/android.js.map +0 -1
  234. package/build/lib/helpers/index.d.ts +0 -7
  235. package/build/lib/helpers/index.d.ts.map +0 -1
  236. package/build/lib/helpers/index.js +0 -29
  237. package/build/lib/helpers/index.js.map +0 -1
  238. package/build/lib/helpers/types.d.ts +0 -122
  239. package/build/lib/helpers/types.d.ts.map +0 -1
  240. package/build/lib/helpers/types.js +0 -3
  241. package/build/lib/helpers/types.js.map +0 -1
  242. package/build/lib/helpers/unlock.d.ts +0 -32
  243. package/build/lib/helpers/unlock.d.ts.map +0 -1
  244. package/build/lib/helpers/unlock.js +0 -273
  245. package/build/lib/helpers/unlock.js.map +0 -1
  246. package/build/lib/helpers/webview.d.ts +0 -74
  247. package/build/lib/helpers/webview.d.ts.map +0 -1
  248. package/build/lib/helpers/webview.js +0 -448
  249. package/build/lib/helpers/webview.js.map +0 -1
  250. package/lib/commands/actions.js +0 -244
  251. package/lib/commands/alert.js +0 -34
  252. package/lib/commands/context.js +0 -507
  253. package/lib/commands/emu-console.js +0 -31
  254. package/lib/commands/general.js +0 -343
  255. package/lib/commands/index.ts +0 -54
  256. package/lib/commands/mixins.ts +0 -976
  257. package/lib/helpers/android.ts +0 -1153
  258. package/lib/helpers/index.ts +0 -6
  259. package/lib/helpers/types.ts +0 -136
  260. package/lib/helpers/unlock.ts +0 -329
  261. package/lib/helpers/webview.ts +0 -610
@@ -1,125 +1,161 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/no-unused-vars */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- const mixins_1 = require("./mixins");
5
- const asyncbox_1 = require("asyncbox");
4
+ exports.getLocationInView = exports.setValueImmediate = exports.replaceValue = exports.setValue = exports.doSetElementValue = exports.setElementValue = exports.elementSelected = exports.elementEnabled = exports.elementDisplayed = exports.getName = exports.getSize = exports.getLocation = exports.getText = exports.click = exports.getAttribute = void 0;
6
5
  const driver_1 = require("appium/driver");
7
6
  /**
8
- * @type {import('./mixins').ElementMixin & ThisType<import('../driver').AndroidDriver>}
9
- * @satisfies {import('@appium/types').ExternalDriver}
7
+ * @this {import('../driver').AndroidDriver}
8
+ * @param {string} attribute
9
+ * @param {string} elementId
10
+ * @returns {Promise<string?>}
10
11
  */
11
- const ElementMixin = {
12
- async getAttribute(attribute, elementId) {
13
- throw new driver_1.errors.NotImplementedError('Not implemented');
14
- },
15
- async getName(elementId) {
16
- return await this.getAttribute('className', elementId);
17
- },
18
- async elementDisplayed(elementId) {
19
- return (await this.getAttribute('displayed', elementId)) === 'true';
20
- },
21
- async elementEnabled(elementId) {
22
- return (await this.getAttribute('enabled', elementId)) === 'true';
23
- },
24
- async elementSelected(elementId) {
25
- return (await this.getAttribute('selected', elementId)) === 'true';
26
- },
27
- async setElementValue(keys, elementId, replace = false) {
28
- const text = keys instanceof Array ? keys.join('') : keys;
29
- return await this.doSetElementValue({
30
- elementId,
31
- text: String(text),
32
- replace,
33
- });
34
- },
35
- /**
36
- * Reason for isolating doSetElementValue from setElementValue is for reusing setElementValue
37
- * across android-drivers (like appium-uiautomator2-driver) and to avoid code duplication.
38
- * Other android-drivers (like appium-uiautomator2-driver) need to override doSetElementValue
39
- * to facilitate setElementValue.
40
- */
41
- async doSetElementValue(params) {
42
- throw new driver_1.errors.NotImplementedError('Not implemented');
43
- },
44
- async setValue(keys, elementId) {
45
- return await this.setElementValue(keys, elementId, false);
46
- },
47
- async replaceValue(keys, elementId) {
48
- return await this.setElementValue(keys, elementId, true);
49
- },
50
- async setValueImmediate(keys, elementId) {
51
- let text = keys;
52
- if (keys instanceof Array) {
53
- text = keys.join('');
54
- }
55
- // first, make sure we are focused on the element
56
- await this.click(elementId);
57
- // then send through adb
58
- await this.adb.inputText(/** @type {string} */ (text));
59
- },
60
- async getText(elementId) {
61
- throw new driver_1.errors.NotImplementedError('Not implemented');
62
- },
63
- async clear(elementId) {
64
- let text = (await this.getText(elementId)) || '';
65
- let length = text.length;
66
- if (length === 0) {
67
- // if length is zero there are two possibilities:
68
- // 1. there is nothing in the text field
69
- // 2. it is a password field
70
- // since there is little overhead to the adb call, delete 100 elements
71
- // if we get zero, just in case it is #2
72
- length = 100;
73
- }
74
- await this.click(elementId);
75
- this.log.debug(`Sending up to ${length} clear characters to device`);
76
- await (0, asyncbox_1.retryInterval)(5, 500, async () => {
77
- let remainingLength = length;
78
- while (remainingLength > 0) {
79
- let lengthToSend = remainingLength < 50 ? remainingLength : 50;
80
- this.log.debug(`Sending ${lengthToSend} clear characters to device`);
81
- await this.adb.clearTextField(lengthToSend);
82
- remainingLength -= lengthToSend;
83
- }
84
- });
85
- },
86
- async click(elementId) {
87
- throw new driver_1.errors.NotImplementedError('Not implemented');
88
- },
89
- async getLocation(elementId) {
90
- throw new driver_1.errors.NotImplementedError('Not implemented');
91
- },
92
- async getLocationInView(elementId) {
93
- return await this.getLocation(elementId);
94
- },
95
- async getSize(elementId) {
96
- throw new driver_1.errors.NotImplementedError('Not implemented');
97
- },
98
- async getElementRect(elementId) {
99
- throw new driver_1.errors.NotImplementedError('Not implemented');
100
- },
101
- async touchLongClick(elementId, x, y, duration) {
102
- throw new driver_1.errors.NotImplementedError('Not implemented');
103
- },
104
- async touchDown(elementId, x, y) {
105
- throw new driver_1.errors.NotImplementedError('Not implemented');
106
- },
107
- async touchUp(elementId, x, y) {
108
- throw new driver_1.errors.NotImplementedError('Not implemented');
109
- },
110
- async touchMove(elementId, x, y) {
111
- throw new driver_1.errors.NotImplementedError('Not implemented');
112
- },
113
- async complexTap(tapCount, touchCount, duration, x, y) {
114
- throw new driver_1.errors.NotImplementedError('Not implemented');
115
- },
116
- async tap(elementId = null, x = null, y = null, count = 1) {
117
- throw new driver_1.errors.NotImplementedError('Not implemented');
118
- },
119
- };
120
- (0, mixins_1.mixin)(ElementMixin);
121
- exports.default = ElementMixin;
12
+ async function getAttribute(attribute, elementId) {
13
+ throw new driver_1.errors.NotImplementedError('Not implemented');
14
+ }
15
+ exports.getAttribute = getAttribute;
122
16
  /**
123
- * @typedef {import('appium-adb').ADB} ADB
17
+ * @this {import('../driver').AndroidDriver}
18
+ * @param {string} elementId
19
+ * @returns {Promise<void>}
124
20
  */
21
+ async function click(elementId) {
22
+ throw new driver_1.errors.NotImplementedError('Not implemented');
23
+ }
24
+ exports.click = click;
25
+ /**
26
+ * @this {import('../driver').AndroidDriver}
27
+ * @param {string} elementId
28
+ * @returns {Promise<string>}
29
+ */
30
+ async function getText(elementId) {
31
+ throw new driver_1.errors.NotImplementedError('Not implemented');
32
+ }
33
+ exports.getText = getText;
34
+ /**
35
+ * @this {import('../driver').AndroidDriver}
36
+ * @param {string} elementId
37
+ * @returns {Promise<import('@appium/types').Position>}
38
+ */
39
+ async function getLocation(elementId) {
40
+ throw new driver_1.errors.NotImplementedError('Not implemented');
41
+ }
42
+ exports.getLocation = getLocation;
43
+ /**
44
+ * @this {import('../driver').AndroidDriver}
45
+ * @param {string} elementId
46
+ * @returns {Promise<import('@appium/types').Size>}
47
+ */
48
+ async function getSize(elementId) {
49
+ throw new driver_1.errors.NotImplementedError('Not implemented');
50
+ }
51
+ exports.getSize = getSize;
52
+ /**
53
+ * @this {import('../driver').AndroidDriver}
54
+ * @param {string} elementId
55
+ * @returns {Promise<string>}
56
+ */
57
+ async function getName(elementId) {
58
+ return /** @type {string} */ (await this.getAttribute('className', elementId));
59
+ }
60
+ exports.getName = getName;
61
+ /**
62
+ * @this {import('../driver').AndroidDriver}
63
+ * @param {string} elementId
64
+ * @returns {Promise<boolean>}
65
+ */
66
+ async function elementDisplayed(elementId) {
67
+ return (await this.getAttribute('displayed', elementId)) === 'true';
68
+ }
69
+ exports.elementDisplayed = elementDisplayed;
70
+ /**
71
+ * @this {import('../driver').AndroidDriver}
72
+ * @param {string} elementId
73
+ * @returns {Promise<boolean>}
74
+ */
75
+ async function elementEnabled(elementId) {
76
+ return (await this.getAttribute('enabled', elementId)) === 'true';
77
+ }
78
+ exports.elementEnabled = elementEnabled;
79
+ /**
80
+ * @this {import('../driver').AndroidDriver}
81
+ * @param {string} elementId
82
+ * @returns {Promise<boolean>}
83
+ */
84
+ async function elementSelected(elementId) {
85
+ return (await this.getAttribute('selected', elementId)) === 'true';
86
+ }
87
+ exports.elementSelected = elementSelected;
88
+ /**
89
+ * @this {import('../driver').AndroidDriver}
90
+ * @param {string|string[]} keys
91
+ * @param {string} elementId
92
+ * @param {boolean} [replace=false]
93
+ * @returns {Promise<void>}
94
+ */
95
+ async function setElementValue(keys, elementId, replace = false) {
96
+ const text = keys instanceof Array ? keys.join('') : keys;
97
+ return await this.doSetElementValue({
98
+ elementId,
99
+ text: String(text),
100
+ replace,
101
+ });
102
+ }
103
+ exports.setElementValue = setElementValue;
104
+ /**
105
+ * Reason for isolating doSetElementValue from setElementValue is for reusing setElementValue
106
+ * across android-drivers (like appium-uiautomator2-driver) and to avoid code duplication.
107
+ * Other android-drivers (like appium-uiautomator2-driver) need to override doSetElementValue
108
+ * to facilitate setElementValue.
109
+ *
110
+ * @this {import('../driver').AndroidDriver}
111
+ * @param {import('./types').DoSetElementValueOpts} params
112
+ * @returns {Promise<void>}
113
+ */
114
+ async function doSetElementValue(params) {
115
+ throw new driver_1.errors.NotImplementedError('Not implemented');
116
+ }
117
+ exports.doSetElementValue = doSetElementValue;
118
+ /**
119
+ * @this {import('../driver').AndroidDriver}
120
+ * @param {string|string[]} keys
121
+ * @param {string} elementId
122
+ * @returns {Promise<void>}
123
+ */
124
+ async function setValue(keys, elementId) {
125
+ return await this.setElementValue(keys, elementId, false);
126
+ }
127
+ exports.setValue = setValue;
128
+ /**
129
+ * @this {import('../driver').AndroidDriver}
130
+ * @param {string|string[]} keys
131
+ * @param {string} elementId
132
+ * @returns {Promise<void>}
133
+ */
134
+ async function replaceValue(keys, elementId) {
135
+ return await this.setElementValue(keys, elementId, true);
136
+ }
137
+ exports.replaceValue = replaceValue;
138
+ /**
139
+ * @this {import('../driver').AndroidDriver}
140
+ * @param {string|string[]} keys
141
+ * @param {string} elementId
142
+ * @returns {Promise<void>}
143
+ */
144
+ async function setValueImmediate(keys, elementId) {
145
+ const text = Array.isArray(keys) ? keys.join('') : keys;
146
+ // first, make sure we are focused on the element
147
+ await this.click(elementId);
148
+ // then send through adb
149
+ await this.adb.inputText(/** @type {string} */ (text));
150
+ }
151
+ exports.setValueImmediate = setValueImmediate;
152
+ /**
153
+ * @this {import('../driver').AndroidDriver}
154
+ * @param {string} elementId
155
+ * @returns {Promise<import('@appium/types').Position>}
156
+ */
157
+ async function getLocationInView(elementId) {
158
+ return await this.getLocation(elementId);
159
+ }
160
+ exports.getLocationInView = getLocationInView;
125
161
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":";AAAA,sDAAsD;;;AAEtD,0CAAqC;AAErC;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,SAAS,EAAE,SAAS;IACrD,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,oCAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,KAAK,CAAC,SAAS;IACnC,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,sBAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,SAAS;IACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAAC,SAAS;IACzC,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,kCAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,SAAS;IACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,SAAS;IACrC,OAAO,qBAAqB,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAS;IAC9C,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,KAAK,MAAM,CAAC;AACtE,CAAC;AAFD,4CAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,SAAS;IAC5C,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,MAAM,CAAC;AACpE,CAAC;AAFD,wCAEC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,SAAS;IAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,MAAM,CAAC;AACrE,CAAC;AAFD,0CAEC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK;IACpE,MAAM,IAAI,GAAG,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC;QAClC,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAPD,0CAOC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CAAC,MAAM;IAC5C,MAAM,IAAI,eAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAFD,8CAEC;AAED;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAI,EAAE,SAAS;IAC5C,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAFD,4BAEC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,SAAS;IAChD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAFD,oCAEC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAC,IAAI,EAAE,SAAS;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,iDAAiD;IACjD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5B,wBAAwB;IACxB,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAND,8CAMC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CAAC,SAAS;IAC/C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAFD,8CAEC"}
@@ -1,7 +1,15 @@
1
- export default ExecuteMixin;
2
1
  /**
3
- * @type {import('./mixins').ExecuteMixin & ThisType<import('../driver').AndroidDriver>}
4
- * @satisfies {import('@appium/types').ExternalDriver}
2
+ * @this {import('../driver').AndroidDriver}
3
+ * @param {string} script
4
+ * @param {any[]} [args]
5
+ * @returns {Promise<any>}
5
6
  */
6
- declare const ExecuteMixin: import('./mixins').ExecuteMixin & ThisType<import('../driver').AndroidDriver>;
7
+ export function execute(this: import("../driver").AndroidDriver, script: string, args?: any[] | undefined): Promise<any>;
8
+ /**
9
+ * @this {import('../driver').AndroidDriver}
10
+ * @param {string} mobileCommand
11
+ * @param {import('@appium/types').StringRecord} [opts={}]
12
+ * @returns {Promise<any>}
13
+ */
14
+ export function executeMobile(this: import("../driver").AndroidDriver, mobileCommand: string, opts?: import("@appium/types").StringRecord<any> | undefined): Promise<any>;
7
15
  //# sourceMappingURL=execute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":";AAMA;;;GAGG;AACH,4BAHU,OAAO,UAAU,EAAE,YAAY,GAAG,SAAS,OAAO,WAAW,EAAE,aAAa,CAAC,CAuGrF"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,yEAJW,MAAM,6BAEJ,QAAQ,GAAG,CAAC,CAyBxB;AAED;;;;;GAKG;AACH,sFAJW,MAAM,iEAEJ,QAAQ,GAAG,CAAC,CA2ExB"}
@@ -1,88 +1,93 @@
1
1
  "use strict";
2
- // @ts-check
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
6
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.executeMobile = exports.execute = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const driver_1 = require("appium/driver");
9
- const mixins_1 = require("./mixins");
10
9
  /**
11
- * @type {import('./mixins').ExecuteMixin & ThisType<import('../driver').AndroidDriver>}
12
- * @satisfies {import('@appium/types').ExternalDriver}
10
+ * @this {import('../driver').AndroidDriver}
11
+ * @param {string} script
12
+ * @param {any[]} [args]
13
+ * @returns {Promise<any>}
13
14
  */
14
- const ExecuteMixin = {
15
- async execute(script, args) {
16
- if (script.match(/^mobile:/)) {
17
- this.log.info(`Executing native command '${script}'`);
18
- script = script.replace(/^mobile:/, '').trim();
19
- return await this.executeMobile(script, lodash_1.default.isArray(args) ? /** @type {import('@appium/types').StringRecord} */ (args[0]) : args);
20
- }
21
- if (!this.isWebContext()) {
22
- throw new driver_1.errors.NotImplementedError();
23
- }
24
- const endpoint =
25
- /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy
26
- .downstreamProtocol === driver_1.PROTOCOLS.MJSONWP
27
- ? '/execute'
28
- : '/execute/sync';
29
- return await /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy.command(endpoint, 'POST', {
30
- script,
31
- args,
32
- });
33
- },
34
- async executeMobile(mobileCommand, opts = {}) {
35
- const mobileCommandsMapping = {
36
- shell: 'mobileShell',
37
- execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',
38
- startLogsBroadcast: 'mobileStartLogsBroadcast',
39
- stopLogsBroadcast: 'mobileStopLogsBroadcast',
40
- changePermissions: 'mobileChangePermissions',
41
- getPermissions: 'mobileGetPermissions',
42
- performEditorAction: 'mobilePerformEditorAction',
43
- sensorSet: 'sensorSet',
44
- getDeviceTime: 'mobileGetDeviceTime',
45
- startScreenStreaming: 'mobileStartScreenStreaming',
46
- stopScreenStreaming: 'mobileStopScreenStreaming',
47
- getNotifications: 'mobileGetNotifications',
48
- listSms: 'mobileListSms',
49
- pushFile: 'mobilePushFile',
50
- pullFile: 'mobilePullFile',
51
- pullFolder: 'mobilePullFolder',
52
- deleteFile: 'mobileDeleteFile',
53
- isAppInstalled: 'mobileIsAppInstalled',
54
- queryAppState: 'mobileQueryAppState',
55
- activateApp: 'mobileActivateApp',
56
- removeApp: 'mobileRemoveApp',
57
- terminateApp: 'mobileTerminateApp',
58
- installApp: 'mobileInstallApp',
59
- clearApp: 'mobileClearApp',
60
- startService: 'mobileStartService',
61
- stopService: 'mobileStopService',
62
- startActivity: 'mobileStartActivity',
63
- broadcast: 'mobileBroadcast',
64
- getContexts: 'mobileGetContexts',
65
- lock: 'mobileLock',
66
- unlock: 'mobileUnlock',
67
- refreshGpsCache: 'mobileRefreshGpsCache',
68
- startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',
69
- isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',
70
- stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',
71
- getConnectivity: 'mobileGetConnectivity',
72
- setConnectivity: 'mobileSetConnectivity',
73
- hideKeyboard: 'hideKeyboard',
74
- isKeyboardShown: 'isKeyboardShown',
75
- deviceidle: 'mobileDeviceidle',
76
- setUiMode: 'mobileSetUiMode',
77
- getUiMode: 'mobileGetUiMode',
78
- };
79
- if (!lodash_1.default.has(mobileCommandsMapping, mobileCommand)) {
80
- throw new driver_1.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` +
81
- `Only ${lodash_1.default.keys(mobileCommandsMapping)} commands are supported.`);
82
- }
83
- return await this[mobileCommandsMapping[mobileCommand]](opts);
84
- },
85
- };
86
- (0, mixins_1.mixin)(ExecuteMixin);
87
- exports.default = ExecuteMixin;
15
+ async function execute(script, args) {
16
+ if (script.match(/^mobile:/)) {
17
+ this.log.info(`Executing native command '${script}'`);
18
+ script = script.replace(/^mobile:/, '').trim();
19
+ return await this.executeMobile(script, lodash_1.default.isArray(args) ? /** @type {import('@appium/types').StringRecord} */ (args[0]) : args);
20
+ }
21
+ if (!this.isWebContext()) {
22
+ throw new driver_1.errors.NotImplementedError();
23
+ }
24
+ const endpoint =
25
+ /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy
26
+ .downstreamProtocol === driver_1.PROTOCOLS.MJSONWP
27
+ ? '/execute'
28
+ : '/execute/sync';
29
+ return await /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy.command(endpoint, 'POST', {
30
+ script,
31
+ args,
32
+ });
33
+ }
34
+ exports.execute = execute;
35
+ /**
36
+ * @this {import('../driver').AndroidDriver}
37
+ * @param {string} mobileCommand
38
+ * @param {import('@appium/types').StringRecord} [opts={}]
39
+ * @returns {Promise<any>}
40
+ */
41
+ async function executeMobile(mobileCommand, opts = {}) {
42
+ const mobileCommandsMapping = {
43
+ shell: 'mobileShell',
44
+ execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',
45
+ startLogsBroadcast: 'mobileStartLogsBroadcast',
46
+ stopLogsBroadcast: 'mobileStopLogsBroadcast',
47
+ changePermissions: 'mobileChangePermissions',
48
+ getPermissions: 'mobileGetPermissions',
49
+ performEditorAction: 'mobilePerformEditorAction',
50
+ sensorSet: 'sensorSet',
51
+ getDeviceTime: 'mobileGetDeviceTime',
52
+ startScreenStreaming: 'mobileStartScreenStreaming',
53
+ stopScreenStreaming: 'mobileStopScreenStreaming',
54
+ getNotifications: 'mobileGetNotifications',
55
+ listSms: 'mobileListSms',
56
+ pushFile: 'mobilePushFile',
57
+ pullFile: 'mobilePullFile',
58
+ pullFolder: 'mobilePullFolder',
59
+ deleteFile: 'mobileDeleteFile',
60
+ isAppInstalled: 'mobileIsAppInstalled',
61
+ queryAppState: 'mobileQueryAppState',
62
+ activateApp: 'mobileActivateApp',
63
+ removeApp: 'mobileRemoveApp',
64
+ terminateApp: 'mobileTerminateApp',
65
+ installApp: 'mobileInstallApp',
66
+ clearApp: 'mobileClearApp',
67
+ startService: 'mobileStartService',
68
+ stopService: 'mobileStopService',
69
+ startActivity: 'mobileStartActivity',
70
+ broadcast: 'mobileBroadcast',
71
+ getContexts: 'mobileGetContexts',
72
+ lock: 'mobileLock',
73
+ unlock: 'mobileUnlock',
74
+ refreshGpsCache: 'mobileRefreshGpsCache',
75
+ startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',
76
+ isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',
77
+ stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',
78
+ getConnectivity: 'mobileGetConnectivity',
79
+ setConnectivity: 'mobileSetConnectivity',
80
+ hideKeyboard: 'hideKeyboard',
81
+ isKeyboardShown: 'isKeyboardShown',
82
+ deviceidle: 'mobileDeviceidle',
83
+ setUiMode: 'mobileSetUiMode',
84
+ getUiMode: 'mobileGetUiMode',
85
+ };
86
+ if (!lodash_1.default.has(mobileCommandsMapping, mobileCommand)) {
87
+ throw new driver_1.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` +
88
+ `Only ${lodash_1.default.keys(mobileCommandsMapping)} commands are supported.`);
89
+ }
90
+ return await this[mobileCommandsMapping[mobileCommand]](opts);
91
+ }
92
+ exports.executeMobile = executeMobile;
88
93
  //# sourceMappingURL=execute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"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"}
@@ -1,8 +1,45 @@
1
- export default FileActionsMixin;
2
- export type ADB = import('appium-adb').ADB;
3
1
  /**
4
- * @type {import('./mixins').FileActionsMixin & ThisType<import('../driver').AndroidDriver>}
5
- * @satisfies {import('@appium/types').ExternalDriver}
2
+ * @this {import('../driver').AndroidDriver}
3
+ * @param {string} remotePath
4
+ * @returns {Promise<string>}
5
+ */
6
+ export function pullFile(this: import("../driver").AndroidDriver, remotePath: string): Promise<string>;
7
+ /**
8
+ * @this {import('../driver').AndroidDriver}
9
+ * @param {import('./types').PullFileOpts} opts
10
+ * @returns {Promise<string>}
11
+ */
12
+ export function mobilePullFile(this: import("../driver").AndroidDriver, opts: import('./types').PullFileOpts): Promise<string>;
13
+ /**
14
+ * @this {import('../driver').AndroidDriver}
15
+ * @param {string} remotePath
16
+ * @param {string} base64Data
17
+ * @returns {Promise<void>}
18
+ */
19
+ export function pushFile(this: import("../driver").AndroidDriver, remotePath: string, base64Data: string): Promise<void>;
20
+ /**
21
+ * @this {import('../driver').AndroidDriver}
22
+ * @param {import('./types').PushFileOpts} opts
23
+ * @returns {Promise<void>}
6
24
  */
7
- declare const FileActionsMixin: import('./mixins').FileActionsMixin & ThisType<import('../driver').AndroidDriver>;
25
+ export function mobilePushFile(this: import("../driver").AndroidDriver, opts: import('./types').PushFileOpts): Promise<void>;
26
+ /**
27
+ * @this {import('../driver').AndroidDriver}
28
+ * @param {string} remotePath
29
+ * @returns {Promise<string>}
30
+ */
31
+ export function pullFolder(this: import("../driver").AndroidDriver, remotePath: string): Promise<string>;
32
+ /**
33
+ * @this {import('../driver').AndroidDriver}
34
+ * @param {import('./types').PullFolderOpts} opts
35
+ * @returns {Promise<string>}
36
+ */
37
+ export function mobilePullFolder(this: import("../driver").AndroidDriver, opts: import('./types').PullFolderOpts): Promise<string>;
38
+ /**
39
+ * @this {import('../driver').AndroidDriver}
40
+ * @param {import('./types').DeleteFileOpts} opts
41
+ * @returns {Promise<boolean>}
42
+ */
43
+ export function mobileDeleteFile(this: import("../driver").AndroidDriver, opts: import('./types').DeleteFileOpts): Promise<boolean>;
44
+ export type ADB = import('appium-adb').ADB;
8
45
  //# sourceMappingURL=file-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-actions.d.ts","sourceRoot":"","sources":["../../../lib/commands/file-actions.js"],"names":[],"mappings":";kBAmVa,OAAO,YAAY,EAAE,GAAG;AAnQrC;;;GAGG;AACH,gCAHU,OAAO,UAAU,EAAE,gBAAgB,GAAG,SAAS,OAAO,WAAW,EAAE,aAAa,CAAC,CAqJzF"}
1
+ {"version":3,"file":"file-actions.d.ts","sourceRoot":"","sources":["../../../lib/commands/file-actions.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,8EAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CA2C3B;AAED;;;;GAIG;AACH,8EAHW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,MAAM,CAAC,CAK3B;AAED;;;;;GAKG;AACH,8EAJW,MAAM,cACN,MAAM,GACJ,QAAQ,IAAI,CAAC,CA+DzB;AAED;;;;GAIG;AACH,8EAHW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAKzB;AAED;;;;GAIG;AACH,gFAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAc3B;AAED;;;;GAIG;AACH,gFAHW,OAAO,SAAS,EAAE,cAAc,GAC9B,QAAQ,MAAM,CAAC,CAK3B;AAED;;;;GAIG;AACH,gFAHW,OAAO,SAAS,EAAE,cAAc,GAC9B,QAAQ,OAAO,CAAC,CAW5B;kBAiLY,OAAO,YAAY,EAAE,GAAG"}