webdriverio 9.4.4 → 9.5.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/build/commands/browser/mock.d.ts +3 -3
- package/build/commands/browser.d.ts +5 -0
- package/build/commands/browser.d.ts.map +1 -1
- package/build/commands/element/scrollIntoView.d.ts +11 -5
- package/build/commands/element/scrollIntoView.d.ts.map +1 -1
- package/build/commands/element.d.ts +1 -0
- package/build/commands/element.d.ts.map +1 -1
- package/build/commands/mobile/dragAndDrop.d.ts +1 -0
- package/build/commands/mobile/dragAndDrop.d.ts.map +1 -1
- package/build/commands/mobile/longPress.d.ts +1 -0
- package/build/commands/mobile/longPress.d.ts.map +1 -1
- package/build/commands/mobile/pinch.d.ts +1 -0
- package/build/commands/mobile/pinch.d.ts.map +1 -1
- package/build/commands/mobile/scrollIntoView.d.ts +12 -6
- package/build/commands/mobile/scrollIntoView.d.ts.map +1 -1
- package/build/commands/mobile/swipe.d.ts +64 -0
- package/build/commands/mobile/swipe.d.ts.map +1 -0
- package/build/commands/mobile/tap.d.ts +84 -0
- package/build/commands/mobile/tap.d.ts.map +1 -0
- package/build/commands/mobile/zoom.d.ts +1 -0
- package/build/commands/mobile/zoom.d.ts.map +1 -1
- package/build/commands/mobile.d.ts +1 -0
- package/build/commands/mobile.d.ts.map +1 -1
- package/build/index.js +410 -194
- package/build/scripts/isElementStable.js +1 -1
- package/build/types.d.ts +16 -2
- package/build/types.d.ts.map +1 -1
- package/build/utils/bidi/index.d.ts +1 -1
- package/build/utils/bidi/index.d.ts.map +1 -1
- package/build/utils/mobile.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -37,7 +37,7 @@ export declare const SESSION_MOCKS: Record<string, Set<WebDriverInterception>>;
|
|
|
37
37
|
const strictMock = await browser.mock('**', {
|
|
38
38
|
// mock all json responses
|
|
39
39
|
statusCode: 200,
|
|
40
|
-
|
|
40
|
+
requestHeaders: { 'Content-Type': 'application/json' },
|
|
41
41
|
responseHeaders: { 'Cache-Control': 'no-cache' },
|
|
42
42
|
postData: 'foobar'
|
|
43
43
|
})
|
|
@@ -45,7 +45,7 @@ export declare const SESSION_MOCKS: Record<string, Set<WebDriverInterception>>;
|
|
|
45
45
|
// comparator function
|
|
46
46
|
const apiV1Mock = await browser.mock('**' + '/api/v1', {
|
|
47
47
|
statusCode: (statusCode) => statusCode >= 200 && statusCode <= 203,
|
|
48
|
-
|
|
48
|
+
requestHeaders: (headers) => headers['Authorization'] && headers['Authorization'].startsWith('Bearer '),
|
|
49
49
|
responseHeaders: (headers) => headers['Impersonation'],
|
|
50
50
|
postData: (data) => typeof data === 'string' && data.includes('foo')
|
|
51
51
|
})
|
|
@@ -99,7 +99,7 @@ export declare const SESSION_MOCKS: Record<string, Set<WebDriverInterception>>;
|
|
|
99
99
|
* @param {String} url url to mock
|
|
100
100
|
* @param {MockFilterOptions=} filterOptions filter mock resource by additional options
|
|
101
101
|
* @param {String|Function=} filterOptions.method filter resource by HTTP method
|
|
102
|
-
* @param {Object|Function=} filterOptions.
|
|
102
|
+
* @param {Object|Function=} filterOptions.requestHeaders filter resource by specific request headers
|
|
103
103
|
* @param {Object|Function=} filterOptions.responseHeaders filter resource by specific response headers
|
|
104
104
|
* @param {String|Function=} filterOptions.postData filter resource by request postData
|
|
105
105
|
* @param {Number|Function=} filterOptions.statusCode filter resource by response statusCode
|
|
@@ -42,4 +42,9 @@ export * from './browser/touchAction.js';
|
|
|
42
42
|
export * from './browser/uploadFile.js';
|
|
43
43
|
export * from './browser/url.js';
|
|
44
44
|
export * from './browser/waitUntil.js';
|
|
45
|
+
/**
|
|
46
|
+
* Add it to the Browser scope, but not to the docs by providing a different folder
|
|
47
|
+
*/
|
|
48
|
+
export * from './mobile/swipe.js';
|
|
49
|
+
export * from './mobile/tap.js';
|
|
45
50
|
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC;;GAEG;AACH,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
|
|
@@ -5,9 +5,7 @@ import type { CustomScrollIntoViewOptions } from '../../types.js';
|
|
|
5
5
|
*
|
|
6
6
|
* :::info
|
|
7
7
|
*
|
|
8
|
-
* Scrolling for Mobile Native Apps is done based on
|
|
9
|
-
* - [appium-uiautomator2-driver](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/android-mobile-gestures.md#mobile-scrollgesture) for Android
|
|
10
|
-
* - [appium-xcuitest-driver](https://appium.github.io/appium-xcuitest-driver/latest/reference/execute-methods/#mobile-scroll) for iOS
|
|
8
|
+
* Scrolling for Mobile Native Apps is done based on the mobile `swipe` command.
|
|
11
9
|
*
|
|
12
10
|
* :::
|
|
13
11
|
*
|
|
@@ -29,18 +27,26 @@ import type { CustomScrollIntoViewOptions } from '../../types.js';
|
|
|
29
27
|
// scroll to a specific element in the default scrollable element for Android or iOS for a maximum of 10 scrolls
|
|
30
28
|
await elem.scrollIntoView();
|
|
31
29
|
// Scroll to the left in the scrollable element called '#scrollable' for a maximum of 5 scrolls
|
|
32
|
-
await elem.scrollIntoView({
|
|
30
|
+
await elem.scrollIntoView({
|
|
31
|
+
direction: 'left',
|
|
32
|
+
maxScrolls: 5,
|
|
33
|
+
scrollableElement: $('#scrollable')
|
|
34
|
+
});
|
|
33
35
|
});
|
|
34
36
|
* </example>
|
|
35
37
|
*
|
|
36
38
|
* @alias element.scrollIntoView
|
|
37
39
|
* @param {object|boolean=} options options for `Element.scrollIntoView()`. Default for desktop/mobile web: <br/> `{ block: 'start', inline: 'nearest' }` <br /> Default for Mobile Native App <br /> `{ maxScrolls: 10, scrollDirection: 'down' }`
|
|
40
|
+
* @rowInfo Desktop/Mobile Web Only
|
|
38
41
|
* @param {string=} options.behavior See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
39
42
|
* @param {string=} options.block See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
40
43
|
* @param {string=} options.inline See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
41
|
-
* @
|
|
44
|
+
* @rowInfo Mobile Native App Only
|
|
45
|
+
* @param {string=} options.direction Can be one of `down`, `up`, `left` or `right`, default is `up`. <br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
42
46
|
* @param {number=} options.maxScrolls The max amount of scrolls until it will stop searching for the element, default is `10`. <br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
47
|
+
* @param {number=} options.duration The duration in milliseconds for the swipe. Default is `1500` ms. The lower the value, the faster the swipe.<br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
43
48
|
* @param {Element=} options.scrollableElement Element that is used to scroll within. If no element is provided it will use the following selector for iOS `-ios predicate string:type == "XCUIElementTypeApplication"` and the following for Android `//android.widget.ScrollView'`. If more elements match the default selector, then by default it will pick the first matching element. <br /> <strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
49
|
+
* @param {number=} options.percent The percentage of the (default) scrollable element to swipe. This is a value between 0 and 1. Default is `0.95`.<br /><strong>NEVER</strong> swipe from the exact top|bottom|left|right of the screen, you might trigger for example the notification bar or other OS/App features which can lead to unexpected results.<br /> <strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
44
50
|
* @uses protocol/execute
|
|
45
51
|
* @type utility
|
|
46
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollIntoView.d.ts","sourceRoot":"","sources":["../../../src/commands/element/scrollIntoView.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAA+B,MAAM,gBAAgB,CAAA;AAK9F
|
|
1
|
+
{"version":3,"file":"scrollIntoView.d.ts","sourceRoot":"","sources":["../../../src/commands/element/scrollIntoView.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAA+B,MAAM,gBAAgB,CAAA;AAK9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,cAAc,CAChC,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,OAAO,GAAE,2BAA2B,GAAG,OAA+C,GACvF,OAAO,CAAC,IAAI,GAAC,OAAO,CAAC,CA6EvB"}
|
|
@@ -59,5 +59,6 @@ export * from './element/waitUntil.js';
|
|
|
59
59
|
export * from './mobile/dragAndDrop.js';
|
|
60
60
|
export * from './mobile/longPress.js';
|
|
61
61
|
export * from './mobile/pinch.js';
|
|
62
|
+
export * from './mobile/tap.js';
|
|
62
63
|
export * from './mobile/zoom.js';
|
|
63
64
|
//# sourceMappingURL=element.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/commands/element.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC;;GAEG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC;;GAEG;AACH,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/commands/element.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC;;GAEG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC;;GAEG;AACH,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
@@ -31,5 +31,6 @@ export {};
|
|
|
31
31
|
* @param {Element|DragAndDropCoordinate} target destination element or object with x and y properties
|
|
32
32
|
* @param {DragAndDropOptions=} options dragAndDrop command options
|
|
33
33
|
* @param {Number=} options.duration how long the drag should take place
|
|
34
|
+
* @mobileElement
|
|
34
35
|
*/
|
|
35
36
|
//# sourceMappingURL=dragAndDrop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dragAndDrop.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/dragAndDrop.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"dragAndDrop.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/dragAndDrop.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}
|
|
@@ -33,6 +33,7 @@ import type { LongPressOptions } from '../../types.js';
|
|
|
33
33
|
* @param {number=} options.x Number (optional)
|
|
34
34
|
* @param {number=} options.y Number (optional)
|
|
35
35
|
* @param {number=} options.duration Duration of the press in ms, default is 1500 ms <br /><strong>MOBILE-ONLY</strong>
|
|
36
|
+
* @mobileElement
|
|
36
37
|
*/
|
|
37
38
|
export declare function longPress(this: WebdriverIO.Element, options?: Partial<LongPressOptions>): Promise<void>;
|
|
38
39
|
//# sourceMappingURL=longPress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"longPress.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/longPress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"longPress.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/longPress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,iBAwBtC"}
|
|
@@ -26,6 +26,7 @@ import type { PinchAndZoomOptions } from '../../types.js';
|
|
|
26
26
|
* @param {PinchOptions=} options pinch options (optional)
|
|
27
27
|
* @param {number=} options.duration The duration in millisecond of how fast the pinch should be executed, minimal is 500 ms and max is 10000 ms. The default is 1500 ms (1.5 seconds) (optional)
|
|
28
28
|
* @param {number=} options.scale The scale of how big the pinch should be according to the screen. Valid values must be float numbers in range 0..1, where 1.0 is 100% (optional)
|
|
29
|
+
* @mobileElement
|
|
29
30
|
*/
|
|
30
31
|
export declare function pinch(this: WebdriverIO.Element, options?: Partial<PinchAndZoomOptions>): Promise<unknown>;
|
|
31
32
|
//# sourceMappingURL=pinch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinch.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/pinch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGzD
|
|
1
|
+
{"version":3,"file":"pinch.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/pinch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,KAAK,CACvB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,oBAuB7C"}
|
|
@@ -5,9 +5,7 @@ export {};
|
|
|
5
5
|
*
|
|
6
6
|
* :::info
|
|
7
7
|
*
|
|
8
|
-
* Scrolling for Mobile Native Apps is done based on
|
|
9
|
-
* - [appium-uiautomator2-driver](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/android-mobile-gestures.md#mobile-scrollgesture) for Android
|
|
10
|
-
* - [appium-xcuitest-driver](https://appium.github.io/appium-xcuitest-driver/latest/reference/execute-methods/#mobile-scroll) for iOS
|
|
8
|
+
* Scrolling for Mobile Native Apps is done based on the mobile `swipe` command.
|
|
11
9
|
*
|
|
12
10
|
* :::
|
|
13
11
|
*
|
|
@@ -29,20 +27,28 @@ export {};
|
|
|
29
27
|
// scroll to a specific element in the default scrollable element for Android or iOS for a maximum of 10 scrolls
|
|
30
28
|
await elem.scrollIntoView();
|
|
31
29
|
// Scroll to the left in the scrollable element called '#scrollable' for a maximum of 5 scrolls
|
|
32
|
-
await elem.scrollIntoView({
|
|
30
|
+
await elem.scrollIntoView({
|
|
31
|
+
direction: 'left',
|
|
32
|
+
maxScrolls: 5,
|
|
33
|
+
scrollableElement: $('#scrollable')
|
|
34
|
+
});
|
|
33
35
|
});
|
|
34
36
|
* </example>
|
|
35
37
|
*
|
|
36
38
|
* @alias element.scrollIntoView
|
|
37
39
|
* @param {object|boolean=} options options for `Element.scrollIntoView()`. Default for desktop/mobile web: <br/> `{ block: 'start', inline: 'nearest' }` <br /> Default for Mobile Native App <br /> `{ maxScrolls: 10, scrollDirection: 'down' }`
|
|
40
|
+
* @rowInfo Desktop/Mobile Web Only
|
|
38
41
|
* @param {string=} options.behavior See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
39
42
|
* @param {string=} options.block See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
40
43
|
* @param {string=} options.inline See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView). <br /><strong>WEB-ONLY</strong> (Desktop/Mobile)
|
|
41
|
-
* @
|
|
44
|
+
* @rowInfo Mobile Native App Only
|
|
45
|
+
* @param {string=} options.direction Can be one of `down`, `up`, `left` or `right`, default is `up`. <br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
42
46
|
* @param {number=} options.maxScrolls The max amount of scrolls until it will stop searching for the element, default is `10`. <br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
47
|
+
* @param {number=} options.duration The duration in milliseconds for the swipe. Default is `1500` ms. The lower the value, the faster the swipe.<br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
43
48
|
* @param {Element=} options.scrollableElement Element that is used to scroll within. If no element is provided it will use the following selector for iOS `-ios predicate string:type == "XCUIElementTypeApplication"` and the following for Android `//android.widget.ScrollView'`. If more elements match the default selector, then by default it will pick the first matching element. <br /> <strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
49
|
+
* @param {number=} options.percent The percentage of the (default) scrollable element to swipe. This is a value between 0 and 1. Default is `0.95`.<br /><strong>NEVER</strong> swipe from the exact top|bottom|left|right of the screen, you might trigger for example the notification bar or other OS/App features which can lead to unexpected results.<br /> <strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
44
50
|
* @uses protocol/execute
|
|
45
51
|
* @type utility
|
|
46
|
-
*
|
|
52
|
+
* @skipUsage
|
|
47
53
|
*/
|
|
48
54
|
//# sourceMappingURL=scrollIntoView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollIntoView.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/scrollIntoView.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"scrollIntoView.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/scrollIntoView.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { SwipeOptions } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Swipe in a specific direction within viewport or element for Desktop/Mobile Web <strong>AND</strong> Mobile Native Apps.
|
|
5
|
+
*
|
|
6
|
+
* :::info
|
|
7
|
+
*
|
|
8
|
+
* Swiping for Mobile Native Apps is based on the W3C-actions protocol, simulating a finger press and movement.
|
|
9
|
+
* This is different from the [`mobile: scrollGesture`](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/android-mobile-gestures.md#mobile-scrollgesture) for Android
|
|
10
|
+
* or [`mobile: scroll`](https://appium.github.io/appium-xcuitest-driver/latest/reference/execute-methods/#mobile-scroll) for iOS command which is based on the Appium Driver protocol and is
|
|
11
|
+
* only available for mobile platforms in the NATIVE context.
|
|
12
|
+
*
|
|
13
|
+
* :::
|
|
14
|
+
*
|
|
15
|
+
* :::caution Swiping based on coordinates
|
|
16
|
+
*
|
|
17
|
+
* Avoid using `from` and `to` options unless absolutely necessary. These are device-specific and may not work consistently across devices.
|
|
18
|
+
* Use the `scrollableElement` option for reliable swipes within an element.
|
|
19
|
+
*
|
|
20
|
+
* :::
|
|
21
|
+
*
|
|
22
|
+
* <example>
|
|
23
|
+
:swipe.js
|
|
24
|
+
it('should execute a default swipe', async () => {
|
|
25
|
+
// Default will be a swipe from the bottom to the top, meaning it will swipe UP
|
|
26
|
+
await browser.swipe();
|
|
27
|
+
});
|
|
28
|
+
* </example>
|
|
29
|
+
*
|
|
30
|
+
* <example>
|
|
31
|
+
:swipe.with.options.js
|
|
32
|
+
it('should execute a swipe with options', async () => {
|
|
33
|
+
await browser.swipe({
|
|
34
|
+
direction: 'left', // Swipe from right to left
|
|
35
|
+
duration: 5000, // Last for 5 seconds
|
|
36
|
+
percent: 0.5, // Swipe 50% of the scrollableElement
|
|
37
|
+
scrollableElement: $('~carousel'), // The element to swipe within
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
* </example>
|
|
41
|
+
*
|
|
42
|
+
* @alias element.scrollIntoView
|
|
43
|
+
* @param {object|boolean=} options options for `Element.scrollIntoView()`. Default for desktop/mobile web: <br/> `{ block: 'start', inline: 'nearest' }` <br /> Default for Mobile Native App <br /> `{ maxScrolls: 10, scrollDirection: 'down' }`
|
|
44
|
+
* @param {string=} options.direction Can be one of `down`, `up`, `left` or `right`, default is `up`. <br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
45
|
+
* @rowInfo Down ::<strong>Starting Point:</strong><br/>You place your finger towards the top of the screen.<br/><strong>Movement:</strong><br/>You slide your finger downwards towards the bottom of the screen.<br/><strong>Action:</strong><br/>This also varies by context:<br />- On the home screen or in applications, it typically scrolls the content upwards.<br />- From the top edge, it often opens the notifications panel or quick settings.<br />- In browsers or reading apps, it can be used to scroll through content.
|
|
46
|
+
* @rowInfo Left ::<strong>Starting Point:</strong><br/>You place your finger on the right side of the screen.<br/><strong>Movement:</strong><br/>You slide your finger horizontally to the left.><br/><strong>Action:</strong><br/>The response to this gesture depends on the application:<br />- It can move to the next item in a carousel or a set of images.<br />- In a navigation context, it might go back to the previous page or close the current view.<br />- On the home screen, it usually switches to the next virtual desktop or screen.
|
|
47
|
+
* @rowInfo Right ::<strong>Starting Point:</strong><br/>You place your finger on the left side of the screen.<br/><strong>Movement:</strong><br/>You slide your finger horizontally to the right.<br/><strong>Action:</strong><br/>Similar to swiping left, but in the opposite direction:<br />-- It often moves to the previous item in a carousel or gallery.<br />- Can be used to open side menus or navigation drawers in apps.<br />- On the home screen, it typically switches to the previous virtual desktop.
|
|
48
|
+
* @rowInfo Up ::<strong>Starting Point:</strong><br/>You place your finger towards the bottom of the screen.<br/><strong>Movement:</strong><br/>You slide your finger upwards towards the top of the screen.><br/><strong>Action:</strong><br/>Depending on the context, different actions can occur:<br />- On the home screen or in a list, this usually scrolls the content downwards.<br />- In a full-screen app, it might open additional options or the app drawer.<br />- On certain interfaces, it could trigger a 'refresh' action or open a search bar.
|
|
49
|
+
* @param {number=} options.duration The duration in milliseconds for the swipe. Default is `1500` ms. The lower the value, the faster the swipe.
|
|
50
|
+
* @param {Element=} options.scrollableElement Element that is used to swipe within. If no element is provided it will use the following selector for iOS `-ios predicate string:type == "XCUIElementTypeApplication"` and the following for Android `//android.widget.ScrollView'`. If more elements match the default selector, then by default it will pick the first matching element. <br /> <strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
51
|
+
* @param {number=} options.percent The percentage of the (default) scrollable element to swipe. This is a value between 0 and 1. Default is `0.95`.<br /><strong>NEVER</strong> swipe from the exact top|bottom|left|right of the screen, you might trigger for example the notification bar or other OS/App features which can lead to unexpected results.<br />This has no effect if `from` and `to` are provided.
|
|
52
|
+
* @rowInfo The below values <strong>ONLY</strong> have an effect if the `scrollableElement` is <strong>NOT</strong> provided, otherwise they are ignored.
|
|
53
|
+
* @param {object=} options.from The x and y coordinates of the start of the swipe. If a `scrollableElement` is provided, then these coordinates have no effect.
|
|
54
|
+
* @param {number=} options.from.x The x-coordinate of the start of the swipe.
|
|
55
|
+
* @param {number=} options.from.y The y-coordinate of the start of the swipe.
|
|
56
|
+
* @param {object=} options.to The x and y coordinates of the end of the swipe. If a `scrollableElement` is provided, then these coordinates have no effect.
|
|
57
|
+
* @param {number=} options.to.x The x-coordinate of the end of the swipe.
|
|
58
|
+
* @param {number=} options.to.y The y-coordinate of the end of the swipe.
|
|
59
|
+
* @uses protocol/execute
|
|
60
|
+
* @type utility
|
|
61
|
+
* @skipUsage
|
|
62
|
+
*/
|
|
63
|
+
export declare function swipe(this: WebdriverIO.Browser, options?: SwipeOptions): Promise<void | unknown>;
|
|
64
|
+
//# sourceMappingURL=swipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipe.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/swipe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAM,MAAM,gBAAgB,CAAA;AAUtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAsB,KAAK,CACvB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,IAAI,GAAC,OAAO,CAAC,CAuBvB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { TapOptions } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Performs a tap gesture on:
|
|
5
|
+
* - or the given element. It will **automatically scroll** if it can't be found.
|
|
6
|
+
* - or the screen on a mobile device by providing `x` and `y` coordinates
|
|
7
|
+
*
|
|
8
|
+
* Internally it uses:
|
|
9
|
+
* - Element tap:
|
|
10
|
+
* - the `click` command for Web environments (Chrome/Safari browsers, or hybrid apps)
|
|
11
|
+
* - the Android [`mobile: clickGesture`](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/android-mobile-gestures.md#mobile-clickgesture)
|
|
12
|
+
* or iOS [`mobile: tap`](https://appium.github.io/appium-xcuitest-driver/latest/reference/execute-methods/#mobile-tap) for Natives apps, including the `scrollIntoView`
|
|
13
|
+
* command for automatic scrolling
|
|
14
|
+
* - Screen tap:
|
|
15
|
+
* - the `action` command for Web environments (Chrome/Safari browsers, or hybrid apps)
|
|
16
|
+
* - the Android [`mobile: clickGesture`](https://github.com/appium/appium-uiautomator2-driver/blob/master/docs/android-mobile-gestures.md#mobile-clickgesture)
|
|
17
|
+
* or iOS [`mobile: tap`](https://appium.github.io/appium-xcuitest-driver/latest/reference/execute-methods/#mobile-tap) for Natives apps
|
|
18
|
+
*
|
|
19
|
+
* This difference makes the `tap` command a more reliable alternative to the `click` command for mobile apps.
|
|
20
|
+
*
|
|
21
|
+
* For Native Apps, this command differs from the `click` command as it will <strong>automatically swipe</strong> to the element using the `scrollIntoView command`,
|
|
22
|
+
* which is not supported for native apps with the `click` command. In hybrid apps or web environments, automatic scrolling is supported for both `click` and `tap` commands.
|
|
23
|
+
*
|
|
24
|
+
* :::caution For Screen taps
|
|
25
|
+
*
|
|
26
|
+
* If you want to tap on a specific coordinate on the screen and you use a screenshot to determine the coordinates, remember that the
|
|
27
|
+
* the coordinates for iOS are based on the device's screen size, and not the screenshot size. The screenshot size is larger due to the device pixel ratio.
|
|
28
|
+
* The average device pixel ratio until the iPhone 8 and the current iPads is 2, for iPhones from the iPhone X the ratio is 3. This means that the screenshot
|
|
29
|
+
* size is 2 or 3 times larger than the device's screen size which means that ff you find the coordinates on the screenshot, divide them by the device pixel
|
|
30
|
+
* ratio to get the correct screen coordinates. For example:
|
|
31
|
+
*
|
|
32
|
+
* ```js
|
|
33
|
+
* const screenshotCoordinates = { x: 600, y: 900 };
|
|
34
|
+
* const dpr = 3; // Example for iPhone 16
|
|
35
|
+
* const screenCoordinates = {
|
|
36
|
+
* x: screenshotCoordinates.x / dpr,
|
|
37
|
+
* y: screenshotCoordinates.y / dpr
|
|
38
|
+
* };
|
|
39
|
+
* await browser.tap(screenCoordinates);
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* :::
|
|
43
|
+
*
|
|
44
|
+
* <example>
|
|
45
|
+
:element.tap.example.js
|
|
46
|
+
it('should be able to tap an on element', async () => {
|
|
47
|
+
const elem = $('~myElement')
|
|
48
|
+
// It will automatically scroll to the element if it's not already in the viewport
|
|
49
|
+
await elem.tap()
|
|
50
|
+
})
|
|
51
|
+
* </example>
|
|
52
|
+
*
|
|
53
|
+
* <example>
|
|
54
|
+
:element.tap.scroll.options.example.js
|
|
55
|
+
it('should be able to swipe right 3 times in a custom scroll areas to an element and tap on the element', async () => {
|
|
56
|
+
const elem = $('~myElement')
|
|
57
|
+
// Swipe right 3 times in the custom scrollable element to find the element
|
|
58
|
+
await elem.tap({
|
|
59
|
+
direction: 'right',
|
|
60
|
+
maxScrolls: 3,
|
|
61
|
+
scrollableElement: $('#scrollable')
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
* </example>
|
|
65
|
+
*
|
|
66
|
+
* <example>
|
|
67
|
+
:screen.tap.example.js
|
|
68
|
+
it('should be able to tap on screen coordinates', async () => {
|
|
69
|
+
await browser.tap({ x: 200, y: 400 })
|
|
70
|
+
})
|
|
71
|
+
* </example>
|
|
72
|
+
*
|
|
73
|
+
* @param {TapOptions=} options Tap options (optional)
|
|
74
|
+
* @rowInfo Element tap options
|
|
75
|
+
* @param {number=} options.x Number (optional, mandatory if y is set) <br /><strong>Only for SCREEN tap, not for ELEMENT tap</strong>
|
|
76
|
+
* @param {number=} options.y Number (optional, mandatory if x is set) <br /><strong>Only for SCREEN tap, not for ELEMENT tap</strong>
|
|
77
|
+
* @rowInfo Screen tap options
|
|
78
|
+
* @param {string=} options.direction Can be one of `down`, `up`, `left` or `right`, default is `down`. <br /><strong>Only for ELEMENT tap, not for SCREEN tap</strong><br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
79
|
+
* @param {number=} options.maxScrolls The max amount of scrolls until it will stop searching for the element, default is `10`. <br /><strong>Only for ELEMENT tap, not for SCREEN tap</strong><br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
80
|
+
* @param {Element=} options.scrollableElement Element that is used to scroll within. If no element is provided it will use the following selector for iOS `-ios predicate string:type == "XCUIElementTypeApplication"` and the following for Android `//android.widget.ScrollView'`. If more elements match the default selector, then by default it will pick the first matching element. <br /><strong>Only for ELEMENT tap, not for SCREEN tap</strong><br /><strong>MOBILE-NATIVE-APP-ONLY</strong>
|
|
81
|
+
* @skipUsage
|
|
82
|
+
*/
|
|
83
|
+
export declare function tap(this: WebdriverIO.Browser | WebdriverIO.Element, options?: TapOptions): Promise<unknown>;
|
|
84
|
+
//# sourceMappingURL=tap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/tap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA+B,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,wBAAsB,GAAG,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,OAAO,CAAC,EAAE,UAAU,oBAqBvB"}
|
|
@@ -26,6 +26,7 @@ import type { PinchAndZoomOptions } from '../../types.js';
|
|
|
26
26
|
* @param {PinchAndZoomOptions=} options Zoom options (optional)
|
|
27
27
|
* @param {number=} options.duration The duration in millisecond of how fast the zoom should be executed, minimal is 500 ms and max is 10000 ms. The default is 1500 ms (1.5 seconds) (optional)
|
|
28
28
|
* @param {number=} options.scale The scale of how big the zoom should be according to the screen. Valid values must be float numbers in range 0..1, where 1.0 is 100% (optional)
|
|
29
|
+
* @mobileElement
|
|
29
30
|
*/
|
|
30
31
|
export declare function zoom(this: WebdriverIO.Element, options?: Partial<PinchAndZoomOptions>): Promise<unknown>;
|
|
31
32
|
//# sourceMappingURL=zoom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/zoom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGzD
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/commands/mobile/zoom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,IAAI,CACtB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,oBAuB7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/commands/mobile.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/commands/mobile.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|