@keepsnappy/appium-driver 0.1.0-alpha.17 → 0.1.0-alpha.18

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
@@ -63,7 +63,7 @@ await scrollCycles(t, {
63
63
  });
64
64
  ```
65
65
 
66
- `longScroll` sends Android native flings at 12000 dp/s (density cached per driver) or iOS 150 ms swipes. `flingUntilShown` stops when any part of the target shows: three gestures maximum, five toward the top on iOS. `scrollUntilShown` exposes the same capped look/move loop for custom checks. `waitCoasted` waits for two matching row frames 300 ms apart (up to 3000 ms); `holdBeforeScroll` captures a row before an iOS gesture so coast checks can reuse its handle.
66
+ `scrollList(t, { list, row, field, screen, above }, toward, { cache, hold })` is the one way the driver scrolls a list; every helper below sends its gesture through it. With `mustMove` (a to-top pass, the first fling of an end pass) the gesture is checked: one the device did not take (Android: no view-scrolled event; iOS: the held row's frame unchanged) is confirmed by the row ids inside the list's frame, sent once more and counted in the driver log's `defects`; a second one throws `GestureNotTaken`. `longScroll` is its list gesture on a given rectangle: Android native flings at 12000 dp/s (density cached per driver) or iOS 150 ms swipes. `flingUntilShown` stops when any part of the target shows: three gestures maximum, five toward the top on iOS. `scrollUntilShown` exposes the same capped look/move loop for custom checks. `waitCoasted` waits for two matching row frames 300 ms apart (up to 3000 ms); `holdBeforeScroll` captures a row before an iOS gesture so coast checks can reuse its handle.
67
67
 
68
68
  `scrollToEnd` performs three long scrolls. Each page marker starts a 3000 ms load wait after coast stops (6000 ms Android, 10000 ms iOS); scrolls without a page marker pause 500 ms. Supply `beforePages` to permit exactly one additional fling when the loaded end was missed. `scrollCycles` repeats three end/top pairs, waiting for page markers only in cycle one and checking `lastPage` loaded in every cycle. `pageNumbers` preserves numeric page labels in command summaries; otherwise summaries use selector descriptions. Page sizes and seed data stay in the journey's page selectors. Options expose the counts and timeouts; their defaults are exported constants. `frameTimeoutMs` (20000) bounds the wait for the list frame to stop moving, `checkTimeoutMs` (20000) bounds a step check (`passChecked`, `endChecked`; in `scrollCycles` the top check reads `fling.checkTimeoutMs`), and `lookWindowMs` (1000) is the window in which a look after a gesture is retried. The `lookMs` field in the log stays the cumulative time spent looking.
69
69
 
@@ -1,6 +1,5 @@
1
1
  import type { Session } from './session.js';
2
- import { type SelectorLike } from './selectors.js';
3
- import type { Rect } from './webdriver.js';
2
+ import type { SelectorLike } from './selectors.js';
4
3
  export type ScrollDirection = 'end' | 'top';
5
4
  export interface Point {
6
5
  x: number;
@@ -35,16 +34,6 @@ export declare const BURST_GAP_MS = 45;
35
34
  export declare const ROW_TOP_SWIPE_MS = 400;
36
35
  export declare const ROW_TOP_SCREEN_FRACTION = 0.98;
37
36
  export declare const ROW_END_SCREEN_FRACTION = 0.1;
38
- /**
39
- * One long scroll inside window rectangle `r`, after readiness. Android sends a native fling at 12000 dp/s over
40
- * 30–85% of the list; iOS drags 85→10% to the end or 30→95% to the top in 150 ms. Logs WebDriver commands only.
41
- */
42
- export declare function longScroll(t: Session, r: Rect, toward: ScrollDirection): Promise<void>;
43
- /**
44
- * Android inverted-list scroll extending from `list` to the window at 3000 dp/s. Top: 10% of the list to 95% of the
45
- * window, direction up; end: 90% to 10%, direction down. Reads the list frame after readiness; logs commands only.
46
- */
47
- export declare function androidScreenScroll(t: Session, list: SelectorLike, toward: ScrollDirection): Promise<void>;
48
37
  /**
49
38
  * Closes a sheet between window points. Android uses native dragGesture; iOS uses a 400 ms drag. Logs commands only.
50
39
  * Does not consume readiness itself; use closeSwipeAt/From when readiness is pending.
@@ -63,13 +52,3 @@ export declare function tapAllAt(t: Session, points: readonly Point[], { holdMs,
63
52
  holdMs?: number;
64
53
  gapMs?: number;
65
54
  }): Promise<void>;
66
- /**
67
- * Scrolls an inverted list using drawn `row` elements. Android delegates to androidScreenScroll. iOS top starts on the
68
- * lowest row whose visible attribute is 'true' and that ends above `above` (or the lowest drawn row when none does or no
69
- * `above` is given), chosen by frame, not tree order, dragging to 98% of the screen in 400 ms. End selects the bottommost visible
70
- * row, clamps its centre inside `list` when found, and drags to 10% in 150 ms. Fails without a drawn row using missingMessage (default 'no drawn row to scroll from'). Logs commands only.
71
- */
72
- export declare function scrollFromDrawnRow(t: Session, list: SelectorLike, row: SelectorLike, toward: ScrollDirection, { missingMessage, above }?: {
73
- missingMessage?: string;
74
- above?: SelectorLike;
75
- }): Promise<void>;
@@ -1,4 +1,3 @@
1
- import { toSelector } from './selectors.js';
2
1
  /** Default scroll budget; the third gesture is logged as extra. */
3
2
  export const LONG_SCROLL_CAP = 3;
4
3
  export const LONG_SCROLL_PLANNED = 2;
@@ -16,47 +15,6 @@ export const BURST_GAP_MS = 45;
16
15
  export const ROW_TOP_SWIPE_MS = 400;
17
16
  export const ROW_TOP_SCREEN_FRACTION = 0.98;
18
17
  export const ROW_END_SCREEN_FRACTION = 0.1;
19
- const density = (t) => t.driver.density();
20
- /**
21
- * One long scroll inside window rectangle `r`, after readiness. Android sends a native fling at 12000 dp/s over
22
- * 30–85% of the list; iOS drags 85→10% to the end or 30→95% to the top in 150 ms. Logs WebDriver commands only.
23
- */
24
- export async function longScroll(t, r, toward) {
25
- await t.ready();
26
- if (t.driver.platform.name === 'android') {
27
- const { from, to, dpPerSecond } = LONG_SCROLL.android;
28
- const top = Math.round(r.y + r.height * from);
29
- const bottom = Math.min(Math.round(r.y + r.height * to), await t.driver.safeBottomY());
30
- await t.driver.execute('mobile: flingGesture', {
31
- left: r.x, top, width: r.width, height: bottom - top,
32
- direction: toward === 'end' ? 'down' : 'up', speed: Math.round(dpPerSecond * (await density(t))),
33
- });
34
- }
35
- else {
36
- const [from, to] = LONG_SCROLL.ios[toward];
37
- const x = Math.round(r.x + r.width / 2);
38
- await t.driver.drag({ x, y: Math.round(r.y + r.height * from) }, { x, y: Math.round(r.y + r.height * to) }, LONG_SCROLL.ios.ms);
39
- }
40
- }
41
- /**
42
- * Android inverted-list scroll extending from `list` to the window at 3000 dp/s. Top: 10% of the list to 95% of the
43
- * window, direction up; end: 90% to 10%, direction down. Reads the list frame after readiness; logs commands only.
44
- */
45
- export async function androidScreenScroll(t, list, toward) {
46
- await t.ready();
47
- const r = (await t.frameOf(list, await t.waitVisible(list))).rect;
48
- const w = await t.driver.screen();
49
- const [inList, onScreen] = LONG_SCROLL.androidScreen[toward];
50
- const start = Math.round(r.y + r.height * inList);
51
- const end = Math.round(w.height * onScreen);
52
- const limit = await t.driver.safeBottomY();
53
- const top = Math.min(start, end);
54
- const bottom = Math.max(top, Math.min(Math.max(start, end), limit));
55
- await t.driver.execute('mobile: flingGesture', {
56
- left: r.x, top, width: r.width, height: bottom - top,
57
- direction: toward === 'top' ? 'up' : 'down', speed: Math.round(LONG_SCROLL.androidScreen.dpPerSecond * (await density(t))),
58
- });
59
- }
60
18
  /**
61
19
  * Closes a sheet between window points. Android uses native dragGesture; iOS uses a 400 ms drag. Logs commands only.
62
20
  * Does not consume readiness itself; use closeSwipeAt/From when readiness is pending.
@@ -97,55 +55,4 @@ export async function tapAllAt(t, points, { holdMs = TAP_HOLD_MS, gapMs = BURST_
97
55
  ]) }] });
98
56
  await t.driver.cmd('DELETE', '/actions').catch(() => null);
99
57
  }
100
- /**
101
- * Scrolls an inverted list using drawn `row` elements. Android delegates to androidScreenScroll. iOS top starts on the
102
- * lowest row whose visible attribute is 'true' and that ends above `above` (or the lowest drawn row when none does or no
103
- * `above` is given), chosen by frame, not tree order, dragging to 98% of the screen in 400 ms. End selects the bottommost visible
104
- * row, clamps its centre inside `list` when found, and drags to 10% in 150 ms. Fails without a drawn row using missingMessage (default 'no drawn row to scroll from'). Logs commands only.
105
- */
106
- export async function scrollFromDrawnRow(t, list, row, toward, { missingMessage = 'no drawn row to scroll from', above } = {}) {
107
- if (t.driver.platform.name !== 'ios') {
108
- await androidScreenScroll(t, list, toward);
109
- return;
110
- }
111
- await t.ready();
112
- const { using, value } = t.driver.platform.locators(toSelector(row))[0];
113
- let start = null;
114
- if (toward === 'top') {
115
- // iOS lists rows outside the visible area too, and a drawn row in the list's faded top zone passes touches through:
116
- // start on the lowest drawn row that ends above `above` (or the lowest drawn row), chosen by frame, never by tree order.
117
- const limit = above ? (await t.driver.cmd('GET', `/element/${await t.waitVisible(toSelector(above))}/rect`)).y : Infinity;
118
- let lowest = null;
119
- for (const el of await t.driver.findAll(using, value)) {
120
- if ((await t.driver.cmd('GET', `/element/${el}/attribute/visible`)) !== 'true')
121
- continue;
122
- const r = await t.driver.cmd('GET', `/element/${el}/rect`);
123
- if (!lowest || r.y > lowest.y)
124
- lowest = r;
125
- if (r.y + r.height <= limit && (!start || r.y > start.y))
126
- start = r;
127
- }
128
- start ??= lowest;
129
- }
130
- else {
131
- for (const el of await t.driver.findAll(using, `${value} AND visible == 1`)) {
132
- const r = await t.driver.cmd('GET', `/element/${el}/rect`);
133
- if (!start || r.y > start.y)
134
- start = r;
135
- }
136
- }
137
- if (!start)
138
- throw new Error(missingMessage);
139
- const w = await t.driver.screen();
140
- const x = Math.round(start.x + start.width / 2);
141
- let y = Math.round(start.y + start.height / 2);
142
- if (toward === 'end') {
143
- const listEl = await t.driver.findShown(toSelector(list));
144
- if (listEl) {
145
- const l = await t.driver.cmd('GET', `/element/${listEl}/rect`);
146
- y = Math.min(Math.max(y, l.y + 1), l.y + l.height - 1);
147
- }
148
- }
149
- await t.driver.drag({ x, y }, { x, y: Math.round(w.height * (toward === 'top' ? ROW_TOP_SCREEN_FRACTION : ROW_END_SCREEN_FRACTION)) }, toward === 'top' ? ROW_TOP_SWIPE_MS : LONG_SCROLL.ios.ms);
150
- }
151
58
  //# sourceMappingURL=gestures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../src/gestures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../src/gestures.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ export { END_GC_DEFAULT, RUN_DEFAULTS, acceptAlert, activationLink, flushLink, g
3
3
  export { defineJourney, type JourneyContext, type JourneyFn, type JourneyModule } from './journey.js';
4
4
  export { ANDROID, IOS, PLATFORMS, platformOf, type Platform, type PlatformName } from './platform.js';
5
5
  export { androidLocators, childOf, describeSelector, id, idText, locator, text, toSelector, type Selector, type SelectorLike } from './selectors.js';
6
- export { FLUSH_END_RUN_FAILED, FLUSH_ERROR, FLUSH_OFF, FLUSH_NOT_ACKNOWLEDGED, FLUSH_RESEND_MS, FLUSH_UNREADABLE, FLUSH_WAIT_MS, type FlushEvidence, HOST_CLOCK_TRIPS, Session, sendMarkers, type ActionGc, type ClockTrip, type Condition, type Marker } from './session.js';
6
+ export { FLUSH_END_RUN_FAILED, FLUSH_ERROR, FLUSH_OFF, FLUSH_NOT_ACKNOWLEDGED, FLUSH_RESEND_MS, FLUSH_UNREADABLE, FLUSH_WAIT_MS, type FlushEvidence, HOST_CLOCK_TRIPS, Session, sendMarkers, type ActionGc, type GestureDefect, type ClockTrip, type Condition, type Marker } from './session.js';
7
7
  export { loadElements, parseTokensJs, plan, type PlannedRun } from './tokens.js';
8
8
  export { runDriver, DRIVER_OPTIONS, type IterationRecord, type RunDeps } from './run.js';
9
9
  export { loadJourneyModule, main } from './load.js';
10
10
  export { DRIVER_NAME, driverVersion, journeyVersion } from './version.js';
11
- export { longScroll, androidScreenScroll, closeSwipe, closeSwipeAt, closeSwipeFrom, tapAllAt, scrollFromDrawnRow, LONG_SCROLL, LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA, CLOSE_SWIPE_MS, TAP_HOLD_MS, BURST_GAP_MS, ROW_TOP_SWIPE_MS, ROW_TOP_SCREEN_FRACTION, ROW_END_SCREEN_FRACTION, type ScrollDirection, type Point } from './gestures.js';
12
- export { rowAlternatives, rowAtOrBelow, scrollUntilShown, waitCoasted, holdBeforeScroll, scrollCap, flingUntilShown, passChecked, scrollToEnd, endChecked, scrollCycles, scrollToTarget, END_SCROLLS, SCROLL_CYCLES, PAGE_PAUSE_MS, PAGE_WAIT_MS, PAGE_POLL_MS, PAGE_COAST_MAX_MS, PAGE_COAST_MAX_MS_IOS, COAST_POLL_MS, COAST_MAX_MS, LOOK_MS, LOOK_POLL_MS, CHECK_TIMEOUT_MS, TARGET_SETTLE_MS, type RowField, type ListHandle, type RowHold, type ListCache, type UntilShownOptions, type FlingUntilShownOptions, type ScrollToEndOptions, type EndCheckOptions, type PassCheckOptions, type ScrollCyclesOptions, type ScrollToTargetOptions } from './lists.js';
11
+ export { closeSwipe, closeSwipeAt, closeSwipeFrom, tapAllAt, LONG_SCROLL, LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA, CLOSE_SWIPE_MS, TAP_HOLD_MS, BURST_GAP_MS, ROW_TOP_SWIPE_MS, ROW_TOP_SCREEN_FRACTION, ROW_END_SCREEN_FRACTION, type ScrollDirection, type Point } from './gestures.js';
12
+ export { rowAlternatives, rowAtOrBelow, scrollUntilShown, scrollCap, flingUntilShown, passChecked, scrollToEnd, endChecked, scrollCycles, scrollToTarget, END_SCROLLS, SCROLL_CYCLES, PAGE_PAUSE_MS, PAGE_WAIT_MS, PAGE_POLL_MS, PAGE_COAST_MAX_MS, PAGE_COAST_MAX_MS_IOS, LOOK_MS, LOOK_POLL_MS, CHECK_TIMEOUT_MS, TARGET_SETTLE_MS, type UntilShownOptions, type FlingUntilShownOptions, type ScrollToEndOptions, type EndCheckOptions, type PassCheckOptions, type ScrollCyclesOptions, type ScrollToTargetOptions } from './lists.js';
13
+ export { scrollList, GestureNotTaken, longScroll, androidScreenScroll, scrollFromDrawnRow, waitCoasted, holdBeforeScroll, FLING_UNMOVED_MS, COAST_POLL_MS, COAST_MAX_MS, type ScrollSpec, type ScrollOptions, type ScrollResult, type RowField, type ListHandle, type RowHold, type ListCache } from './scroll.js';
package/dist/src/index.js CHANGED
@@ -8,6 +8,7 @@ export { loadElements, parseTokensJs, plan } from './tokens.js';
8
8
  export { runDriver, DRIVER_OPTIONS } from './run.js';
9
9
  export { loadJourneyModule, main } from './load.js';
10
10
  export { DRIVER_NAME, driverVersion, journeyVersion } from './version.js';
11
- export { longScroll, androidScreenScroll, closeSwipe, closeSwipeAt, closeSwipeFrom, tapAllAt, scrollFromDrawnRow, LONG_SCROLL, LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA, CLOSE_SWIPE_MS, TAP_HOLD_MS, BURST_GAP_MS, ROW_TOP_SWIPE_MS, ROW_TOP_SCREEN_FRACTION, ROW_END_SCREEN_FRACTION } from './gestures.js';
12
- export { rowAlternatives, rowAtOrBelow, scrollUntilShown, waitCoasted, holdBeforeScroll, scrollCap, flingUntilShown, passChecked, scrollToEnd, endChecked, scrollCycles, scrollToTarget, END_SCROLLS, SCROLL_CYCLES, PAGE_PAUSE_MS, PAGE_WAIT_MS, PAGE_POLL_MS, PAGE_COAST_MAX_MS, PAGE_COAST_MAX_MS_IOS, COAST_POLL_MS, COAST_MAX_MS, LOOK_MS, LOOK_POLL_MS, CHECK_TIMEOUT_MS, TARGET_SETTLE_MS } from './lists.js';
11
+ export { closeSwipe, closeSwipeAt, closeSwipeFrom, tapAllAt, LONG_SCROLL, LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA, CLOSE_SWIPE_MS, TAP_HOLD_MS, BURST_GAP_MS, ROW_TOP_SWIPE_MS, ROW_TOP_SCREEN_FRACTION, ROW_END_SCREEN_FRACTION } from './gestures.js';
12
+ export { rowAlternatives, rowAtOrBelow, scrollUntilShown, scrollCap, flingUntilShown, passChecked, scrollToEnd, endChecked, scrollCycles, scrollToTarget, END_SCROLLS, SCROLL_CYCLES, PAGE_PAUSE_MS, PAGE_WAIT_MS, PAGE_POLL_MS, PAGE_COAST_MAX_MS, PAGE_COAST_MAX_MS_IOS, LOOK_MS, LOOK_POLL_MS, CHECK_TIMEOUT_MS, TARGET_SETTLE_MS } from './lists.js';
13
+ export { scrollList, GestureNotTaken, longScroll, androidScreenScroll, scrollFromDrawnRow, waitCoasted, holdBeforeScroll, FLING_UNMOVED_MS, COAST_POLL_MS, COAST_MAX_MS } from './scroll.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAmD,MAAM,gBAAgB,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAC5J,OAAO,EAAE,aAAa,EAA2D,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAoC,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AACrJ,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAsB,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAA8D,MAAM,cAAc,CAAC;AAC9Q,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAmB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,EAAoC,MAAM,eAAe,CAAC;AAC3V,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAiP,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAmD,MAAM,gBAAgB,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAC5J,OAAO,EAAE,aAAa,EAA2D,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAoC,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AACrJ,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAsB,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAkF,MAAM,cAAc,CAAC;AAClS,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAmB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAsC,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,EAAoC,MAAM,eAAe,CAAC;AACtS,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAmL,MAAM,YAAY,CAAC;AAC1gB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAwH,MAAM,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Session } from './session.js';
2
2
  import { type SelectorLike } from './selectors.js';
3
- import type { Rect } from './webdriver.js';
4
3
  import { type ScrollDirection } from './gestures.js';
4
+ import { type ListCache, type RowField } from './scroll.js';
5
5
  /** Default fixed end-pass gesture count. */
6
6
  export declare const END_SCROLLS = 3;
7
7
  /** Default end/top cycle count. */
@@ -15,32 +15,12 @@ export declare const PAGE_POLL_MS = 300;
15
15
  export declare const PAGE_COAST_MAX_MS = 6000;
16
16
  /** iOS page-loading coast bound. */
17
17
  export declare const PAGE_COAST_MAX_MS_IOS = 10000;
18
- export declare const COAST_POLL_MS = 300;
19
- /** Default non-page coast bound; a timeout returns false rather than failing. */
20
- export declare const COAST_MAX_MS = 3000;
21
18
  export declare const LOOK_MS = 1000;
22
19
  export declare const LOOK_POLL_MS = 100;
23
20
  /** Default settled-frame and pass-check timeout. */
24
21
  export declare const CHECK_TIMEOUT_MS = 20000;
25
22
  /** Initial visibility wait before trying an indicator or fallback scroll. */
26
23
  export declare const TARGET_SETTLE_MS = 10000;
27
- export type RowField = 'text' | 'description';
28
- export interface ListHandle {
29
- sel: SelectorLike;
30
- el?: string;
31
- }
32
- export interface RowHold {
33
- el?: string | null;
34
- }
35
- /** Mutable frame/row cache for one visit to a list; share it with pass checks to share the gesture budget. */
36
- export interface ListCache {
37
- at?: {
38
- el: string;
39
- rect: Rect;
40
- };
41
- hold?: RowHold;
42
- used?: number;
43
- }
44
24
  export interface UntilShownOptions {
45
25
  cmd: string;
46
26
  field: string;
@@ -119,23 +99,13 @@ export interface ScrollToTargetOptions {
119
99
  * Logs cmd with the gesture count under field, blind/cap, looks/lookMs, status, duration, optional extra and planned overrun.
120
100
  */
121
101
  export declare function scrollUntilShown(t: Session, { cmd, field, cap, blind, planned, settle, look: once, move, missing, extra, lookWindowMs, lookPollMs }: UntilShownOptions): Promise<number>;
122
- /**
123
- * Captures a drawn row before a scroll when hold is provided and empty; lookup failures clear the hold. Use for iOS
124
- * where visible-row queries during momentum can consume the coast budget. Logs lookup commands only.
125
- */
126
- export declare function holdBeforeScroll(t: Session, row: SelectorLike, list?: ListHandle, field?: RowField, hold?: RowHold): Promise<void>;
127
- /**
128
- * Waits for two matching row frames 300 ms apart, up to maxMs (3000), always attempting at least two reads.
129
- * Optional list scopes the row and is re-found at most twice on missing/stale reads; field selects an Android text
130
- * attribute. An optional hold reuses one row across calls until stale. Returns false when still moving. Logs commands only.
131
- */
132
- export declare function waitCoasted(t: Session, row: SelectorLike, list?: ListHandle, field?: RowField, maxMs?: number, hold?: RowHold): Promise<boolean>;
133
102
  /** Platform gesture budget: cap (3), plus iosTopExtra (2) only when returning to the top on iOS. No commands or logs. */
134
103
  export declare const scrollCap: (t: Session, toward: ScrollDirection, cap?: number, iosTopExtra?: number) => number;
135
104
  /**
136
105
  * Long-scrolls list toward a partly visible target; scoped defaults true. Refetches missing/stale list handles before
137
106
  * moving and rereads the frame before every gesture. A shared cache stores the settled frame, held iOS row and moves used.
138
107
  * Defaults: 3 gestures (5 to top on iOS), 2 planned, 20 s frameTimeoutMs, 3 s coast. used subtracts the prior pass budget.
108
+ * A to-top gesture is checked (scrollList `mustMove`); its retry is a logged defect and does not use the budget.
139
109
  * Logs fling-to-end/top with flings, blind/cap, looks/lookMs, extra, relists, settled, status and duration, including failures.
140
110
  */
141
111
  export declare function flingUntilShown(t: Session, list: SelectorLike, target: SelectorLike, toward: ScrollDirection, { scoped, blind, cache, row, used, cap, planned, iosTopExtra, frameTimeoutMs, coastMaxMs, lookWindowMs, lookPollMs }?: FlingUntilShownOptions): Promise<void>;
@@ -149,7 +119,9 @@ export declare function passChecked(t: Session, list: SelectorLike, target: Sele
149
119
  * Performs scrolls (3) end gestures. A gesture with no page marker pauses pauseMs (500). Otherwise it waits for coast
150
120
  * (Android 6000 ms, iOS 10000), optionally adds one gesture if beforePages was not reached, then waits pageWaitMs (3000)
151
121
  * for the page's first loaded row, polling every pagePollMs (300). scoped defaults true; field narrows Android lookups.
152
- * Logs fling-to-end: flings, supplied pageNumbers (or descriptions), coastMs, waitMs, per-page extra, pauseMs, settled,
122
+ * The pass is taken to start at the top, so its first gesture is checked (scrollList `mustMove`): one that moved nothing is
123
+ * sent once more and counted in `t.defects`; `unmoved` is 1 then, and 2 when the retry moved nothing either (GestureNotTaken).
124
+ * Logs fling-to-end: flings, supplied pageNumbers (or descriptions), coastMs, waitMs, per-page extra, unmoved, pauseMs, settled,
153
125
  * status and duration. Page checks do not require visibility. All limits and frameTimeoutMs (20000) are configurable.
154
126
  */
155
127
  export declare function scrollToEnd(t: Session, list: SelectorLike, cache: ListCache, { pages, pageNumbers, beforePages, scoped, field, any, scrolls, pauseMs, pageWaitMs, pagePollMs, coastMaxMs, coastMaxMsIos, frameTimeoutMs }: ScrollToEndOptions): Promise<void>;
package/dist/src/lists.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { describeSelector, toSelector } from './selectors.js';
2
- import { longScroll, LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA } from './gestures.js';
2
+ import { LONG_SCROLL_CAP, LONG_SCROLL_PLANNED, IOS_TOP_EXTRA } from './gestures.js';
3
+ import { COAST_MAX_MS, GestureNotTaken, scrollList, waitCoasted } from './scroll.js';
3
4
  /** Default fixed end-pass gesture count. */
4
5
  export const END_SCROLLS = 3;
5
6
  /** Default end/top cycle count. */
@@ -13,9 +14,6 @@ export const PAGE_POLL_MS = 300;
13
14
  export const PAGE_COAST_MAX_MS = 6_000;
14
15
  /** iOS page-loading coast bound. */
15
16
  export const PAGE_COAST_MAX_MS_IOS = 10_000;
16
- export const COAST_POLL_MS = 300;
17
- /** Default non-page coast bound; a timeout returns false rather than failing. */
18
- export const COAST_MAX_MS = 3_000;
19
17
  export const LOOK_MS = 1_000;
20
18
  export const LOOK_POLL_MS = 100;
21
19
  /** Default settled-frame and pass-check timeout. */
@@ -85,88 +83,6 @@ export async function scrollUntilShown(t, { cmd, field, cap, blind = 0, planned,
85
83
  t.driver.log.push({ ...t.driver.context, cmd, t: t.now(), ms: t.now() - start, status, [field]: moves, blind, cap, looks, lookMs, ...over, ...extra() });
86
84
  }
87
85
  }
88
- /** First drawn row; Android can restrict its text attribute, iOS predicates ask visible == 1. Logs lookups only. */
89
- async function firstDrawn(t, row, listEl, field, scopedOrField) {
90
- if (!scopedOrField) {
91
- return t.driver.findShown(toSelector(row));
92
- }
93
- const { childOf: _list, ...inList } = toSelector(row);
94
- const all = t.driver.platform.locators(inList);
95
- const call = field === 'text' ? /textMatches/ : /descriptionMatches/;
96
- const own = t.driver.platform.name === 'android' && field ? all.filter(l => call.test(l.value)) : all;
97
- for (const { using, value } of own.length ? own : all) {
98
- const drawn = t.driver.platform.name === 'ios' && using === '-ios predicate string' ? `${value} AND visible == 1` : value;
99
- const found = await t.driver.find(using, drawn, listEl);
100
- if (found) {
101
- return found;
102
- }
103
- }
104
- return null;
105
- }
106
- /**
107
- * Captures a drawn row before a scroll when hold is provided and empty; lookup failures clear the hold. Use for iOS
108
- * where visible-row queries during momentum can consume the coast budget. Logs lookup commands only.
109
- */
110
- export async function holdBeforeScroll(t, row, list, field, hold) {
111
- if (!hold || hold.el) {
112
- return;
113
- }
114
- try {
115
- hold.el = await firstDrawn(t, row, list?.el, field, Boolean(list || field));
116
- }
117
- catch {
118
- hold.el = null;
119
- }
120
- }
121
- /**
122
- * Waits for two matching row frames 300 ms apart, up to maxMs (3000), always attempting at least two reads.
123
- * Optional list scopes the row and is re-found at most twice on missing/stale reads; field selects an Android text
124
- * attribute. An optional hold reuses one row across calls until stale. Returns false when still moving. Logs commands only.
125
- */
126
- export async function waitCoasted(t, row, list, field, maxMs = COAST_MAX_MS, hold) {
127
- const until = t.now() + maxMs;
128
- let el = list?.el;
129
- let refinds = 0;
130
- const read = async () => {
131
- if (hold?.el) {
132
- try {
133
- return await t.driver.cmd('GET', `/element/${hold.el}/rect`);
134
- }
135
- catch {
136
- hold.el = null;
137
- }
138
- }
139
- const found = await firstDrawn(t, row, el, field, Boolean(list || field));
140
- if (found && hold) {
141
- hold.el = found;
142
- }
143
- return found ? t.driver.cmd('GET', `/element/${found}/rect`) : null;
144
- };
145
- let last = null;
146
- let reads = 0;
147
- for (;;) {
148
- let r = null;
149
- reads++;
150
- try {
151
- r = await read();
152
- }
153
- catch {
154
- r = null;
155
- }
156
- if (r === null && list && refinds < 2) {
157
- refinds++;
158
- el = await t.waitVisible(list.sel);
159
- continue;
160
- }
161
- const frame = r && `${r.x},${r.y},${r.width},${r.height}`;
162
- if (frame && frame === last)
163
- return true;
164
- if (t.now() >= until && reads >= 2)
165
- return false;
166
- last = frame;
167
- await t.driver.sleep(COAST_POLL_MS);
168
- }
169
- }
170
86
  /** Platform gesture budget: cap (3), plus iosTopExtra (2) only when returning to the top on iOS. No commands or logs. */
171
87
  export const scrollCap = (t, toward, cap = LONG_SCROLL_CAP, iosTopExtra = IOS_TOP_EXTRA) => cap + (t.driver.platform.name === 'ios' && toward === 'top' ? iosTopExtra : 0);
172
88
  const iosHold = (t, cache) => t.driver.platform.name === 'ios' ? (cache.hold ??= {}) : undefined;
@@ -174,6 +90,7 @@ const iosHold = (t, cache) => t.driver.platform.name === 'ios' ? (cache.hold ??=
174
90
  * Long-scrolls list toward a partly visible target; scoped defaults true. Refetches missing/stale list handles before
175
91
  * moving and rereads the frame before every gesture. A shared cache stores the settled frame, held iOS row and moves used.
176
92
  * Defaults: 3 gestures (5 to top on iOS), 2 planned, 20 s frameTimeoutMs, 3 s coast. used subtracts the prior pass budget.
93
+ * A to-top gesture is checked (scrollList `mustMove`); its retry is a logged defect and does not use the budget.
177
94
  * Logs fling-to-end/top with flings, blind/cap, looks/lookMs, extra, relists, settled, status and duration, including failures.
178
95
  */
179
96
  export async function flingUntilShown(t, list, target, toward, { scoped = true, blind = 0, cache = {}, row, used = 0, cap = LONG_SCROLL_CAP, planned = LONG_SCROLL_PLANNED, iosTopExtra = IOS_TOP_EXTRA, frameTimeoutMs = CHECK_TIMEOUT_MS, coastMaxMs = COAST_MAX_MS, lookWindowMs, lookPollMs } = {}) {
@@ -223,8 +140,9 @@ export async function flingUntilShown(t, list, target, toward, { scoped = true,
223
140
  }
224
141
  },
225
142
  async move() {
226
- cache.at = await t.frameOf(list, (await frame()).el);
227
- await longScroll(t, cache.at.rect, toward);
143
+ await frame();
144
+ // Before a to-top gesture the first row was not shown, so the list has room: the gesture is checked.
145
+ await scrollList(t, { list, row: row ?? target, scoped }, toward, toward === 'top' ? { cache, mustMove: true, hold: iosHold(t, cache), coastMaxMs } : { cache });
228
146
  },
229
147
  missing: () => `${selectorLabel(target)} not on screen after ${scrollCap(t, toward, cap, iosTopExtra)} long scrolls to the ${toward} of ${selectorLabel(list)}`,
230
148
  });
@@ -283,7 +201,9 @@ async function rowLoaded(t, list, row, scoped, listEl, field) {
283
201
  * Performs scrolls (3) end gestures. A gesture with no page marker pauses pauseMs (500). Otherwise it waits for coast
284
202
  * (Android 6000 ms, iOS 10000), optionally adds one gesture if beforePages was not reached, then waits pageWaitMs (3000)
285
203
  * for the page's first loaded row, polling every pagePollMs (300). scoped defaults true; field narrows Android lookups.
286
- * Logs fling-to-end: flings, supplied pageNumbers (or descriptions), coastMs, waitMs, per-page extra, pauseMs, settled,
204
+ * The pass is taken to start at the top, so its first gesture is checked (scrollList `mustMove`): one that moved nothing is
205
+ * sent once more and counted in `t.defects`; `unmoved` is 1 then, and 2 when the retry moved nothing either (GestureNotTaken).
206
+ * Logs fling-to-end: flings, supplied pageNumbers (or descriptions), coastMs, waitMs, per-page extra, unmoved, pauseMs, settled,
287
207
  * status and duration. Page checks do not require visibility. All limits and frameTimeoutMs (20000) are configurable.
288
208
  */
289
209
  export async function scrollToEnd(t, list, cache, { pages, pageNumbers, beforePages = [], scoped = true, field, any, scrolls = END_SCROLLS, pauseMs = PAGE_PAUSE_MS, pageWaitMs = PAGE_WAIT_MS, pagePollMs = PAGE_POLL_MS, coastMaxMs = PAGE_COAST_MAX_MS, coastMaxMsIos = PAGE_COAST_MAX_MS_IOS, frameTimeoutMs = CHECK_TIMEOUT_MS }) {
@@ -294,18 +214,29 @@ export async function scrollToEnd(t, list, cache, { pages, pageNumbers, beforePa
294
214
  const coastMs = [];
295
215
  const waitMs = [];
296
216
  const extra = [];
217
+ let unmoved = 0;
218
+ const spec = { list, row: any, field, scoped };
297
219
  try {
298
220
  if (!cache.at) {
299
221
  cache.at = await t.settledFrame(list, frameTimeoutMs);
300
222
  settled = true;
301
223
  }
302
224
  for (let i = 0; i < scrolls; i++) {
303
- cache.at = await t.frameOf(list, cache.at.el);
304
- await holdBeforeScroll(t, any, scoped ? { sel: list, el: cache.at.el } : undefined, field, iosHold(t, cache));
305
- await longScroll(t, cache.at.rect, 'end');
225
+ // A pass starts at the top, so its first fling has room and is checked.
226
+ let sent;
227
+ try {
228
+ sent = await scrollList(t, spec, 'end', { cache, hold: iosHold(t, cache), mustMove: i === 0, coastMaxMs: t.driver.platform.name === 'ios' ? coastMaxMsIos : coastMaxMs });
229
+ }
230
+ catch (e) {
231
+ if (e instanceof GestureNotTaken)
232
+ unmoved = 2;
233
+ throw e;
234
+ }
235
+ if (sent.retried)
236
+ unmoved = 1;
306
237
  const page = pages[i];
307
238
  if (!page) {
308
- await t.driver.sleep(pauseMs);
239
+ await t.driver.sleep(Math.max(0, pauseMs - (t.now() - sent.sentAt)));
309
240
  continue;
310
241
  }
311
242
  const coastFrom = t.now();
@@ -329,8 +260,7 @@ export async function scrollToEnd(t, list, cache, { pages, pageNumbers, beforePa
329
260
  }
330
261
  if (!reached) {
331
262
  extra[i] = 1;
332
- cache.at = await t.frameOf(list, cache.at.el);
333
- await longScroll(t, cache.at.rect, 'end');
263
+ await scrollList(t, spec, 'end', { cache });
334
264
  if (!(await waitCoasted(t, any, scoped ? { sel: list, el: cache.at.el } : undefined, field, (t.driver.platform.name === 'ios' ? coastMaxMsIos : coastMaxMs), iosHold(t, cache)))) {
335
265
  throw new Error(`${selectorLabel(list)} still moving ${(t.driver.platform.name === 'ios' ? coastMaxMsIos : coastMaxMs)} ms after a long scroll to the end`);
336
266
  }
@@ -361,7 +291,7 @@ export async function scrollToEnd(t, list, cache, { pages, pageNumbers, beforePa
361
291
  }
362
292
  finally {
363
293
  const numbers = pageNumbers ?? pages.map(p => describeSelector(toSelector(p)));
364
- t.driver.log.push({ ...t.driver.context, cmd: 'fling-to-end', t: t.now(), ms: t.now() - start, status, flings: scrolls, pages: numbers, coastMs, waitMs, extra, pauseMs, settled });
294
+ t.driver.log.push({ ...t.driver.context, cmd: 'fling-to-end', t: t.now(), ms: t.now() - start, status, flings: scrolls, pages: numbers, coastMs, waitMs, extra, unmoved, pauseMs, settled });
365
295
  }
366
296
  }
367
297
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/lists.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/lists.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AAEhG,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAmF,MAAM,aAAa,CAAC;AAEtK,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,mCAAmC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,wCAAwC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,oCAAoC;AACpC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAuEvC,iGAAiG;AACjG,KAAK,UAAU,OAAO,CAAC,CAAU,EAAE,MAAc,EAAE,MAAoB;IACrE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACzD,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,EAAE,UAAU,GAAG,YAAY,EAAqB;IACrN,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,MAAM,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,SAAS,CAAC;oBACR,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,KAAK,EAAE,CAAC;oBACR,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;wBACjB,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC;wBAC9C,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QACF,OAAO,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACvB,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,IAAI,EAAE,CAAC;YACb,KAAK,EAAE,CAAC;QACV,CAAC;QACD,MAAM,GAAG,CAAC,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QAClF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3J,CAAC;AACH,CAAC;AAED,yHAAyH;AACzH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAE,MAAuB,EAAE,GAAG,GAAG,eAAe,EAAE,WAAW,GAAG,aAAa,EAAU,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7M,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,KAAgB,EAAuB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE1I;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,CAAU,EAAE,IAAkB,EAAE,MAAoB,EAAE,MAAuB,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,eAAe,EAAE,OAAO,GAAG,mBAAmB,EAAE,WAAW,GAAG,aAAa,EAAE,cAAc,GAAG,gBAAgB,EAAE,UAAU,GAAG,YAAY,EAAE,YAAY,EAAE,UAAU,KAA6B,EAAE;IAClX,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACtD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,GAAG,MAAM,gBAAgB,CAAC,CAAC,EAAE;QACrC,GAAG,EAAE,YAAY,MAAM,EAAE;QACzB,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU;QACzC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;QAC/D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACpC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3I,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI;YACR,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,MAAM,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAK,CAAiC,EAAE,OAAO,KAAK,yBAAyB,EAAE,CAAC;oBAC9E,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YACD,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAK,CAAiC,EAAE,OAAO,KAAK,yBAAyB,EAAE,CAAC;oBAC9E,MAAM,CAAC,CAAC;gBACV,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,KAAK,EAAE,CAAC;YACd,qGAAqG;YACrG,MAAM,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnK,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,wBAAwB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,wBAAwB,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE;KAChK,CAAC,CAAC;AACL,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,GAAiB,EAAU,EAAE;IAClD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF,gDAAgD;AAChD,SAAS,OAAO,CAAC,GAAiB,EAAE,MAAe;IACjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,IAAkB,EAAE,MAAoB,EAAE,MAAuB,EAAE,MAAe,EAAE,KAAgB,EAAE,GAAkB,EAAE,UAA4B,EAAE;IAC9L,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAgC,CAAC,CAAC;YACjH,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7I,CAAC;QACD,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,IAAI,gBAAgB,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,kHAAkH;AAClH,KAAK,UAAU,SAAS,CAAC,CAAU,EAAE,IAAkB,EAAE,GAAiB,EAAE,MAAe,EAAE,MAAe,EAAE,KAAgB;IAC5H,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACrE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3G,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAChE,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAAiC,EAAE,OAAO,KAAK,yBAAyB;YAAE,OAAO,OAAO,CAAC;QAC9F,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAU,EAAE,IAAkB,EAAE,KAAgB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,GAAG,aAAa,EAAE,UAAU,GAAG,YAAY,EAAE,UAAU,GAAG,YAAY,EAAE,UAAU,GAAG,iBAAiB,EAAE,aAAa,GAAG,qBAAqB,EAAE,cAAc,GAAG,gBAAgB,EAAsB;IACzX,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACtD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,wEAAwE;YACxE,IAAI,IAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5K,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,eAAe;oBAAE,OAAO,GAAG,CAAC,CAAC;gBAC9C,MAAM,CAAC,CAAC;YACV,CAAC;YACD,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1L,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;YAC1K,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACnD,IAAI,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACzE,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;oBACpD,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1D,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjL,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;gBAC9J,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,GAAW,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC;YACtB,SAAS,CAAC;gBACR,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,KAAK,KAAK,IAAI;oBAAE,MAAM;gBAC1B,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI;wBAAE,MAAM;gBAC9E,CAAC;gBACD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,UAAU,yCAAyC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjI,CAAC;gBACD,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/L,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,IAAkB,EAAE,QAAsB,EAAE,MAAe,EAAE,KAAgB,EAAE,EAAE,cAAc,GAAG,gBAAgB,EAAE,UAAU,GAAG,YAAY,EAAE,OAAO,GAAG,WAAW,KAAsB,EAAE;IACjO,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,SAAS,CAAC;YACR,IAAI,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,IAAI,CAAC,UAAU,OAAO,0BAA0B,CAAC,CAAC;YACpJ,CAAC;YACD,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,EAAuB;IACrJ,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,EAC9I,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAC3F,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EAAE,GAAG,GAAG,eAAe,EAAE,OAAO,GAAG,mBAAmB,EAAE,GAAG,GAAG,kBAAkB,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,wBAAwB,CAAC,eAAe,EAAyB;IACpS,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC;QACH,IAAI,SAAS,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,GAA0B,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1K;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAU,EAAE,GAAiB,EAAE,QAAsB;IACtF,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAU,CAAA,CAAC,CAAC,CAAC;IACpG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAU,CAAA,CAAC,CAAC,IAAI,GAAG,CAAC;AAC5F,CAAC"}
package/dist/src/run.d.ts CHANGED
@@ -97,7 +97,7 @@ export declare const DRIVER_OPTIONS: {
97
97
  };
98
98
  readonly 'end-gc': {
99
99
  readonly type: "string";
100
- readonly default: "off" | "on";
100
+ readonly default: "on" | "off";
101
101
  };
102
102
  readonly capture: {
103
103
  readonly type: "string";
package/dist/src/run.js CHANGED
@@ -97,7 +97,7 @@ export async function runDriver(argv, module, deps = realRunDeps()) {
97
97
  const { api, tokens } = parseTokensJs(readFileSync(String(a['tokens-js']), 'utf8'));
98
98
  const log = [];
99
99
  const driver = new Driver({ hub: HUB, log, headers: { Authorization: auth }, bundleId: module.app.bundleId, platform, fetch: deps.fetch, now: deps.now, sleep: deps.sleep });
100
- const t = new Session({ driver, scheme: module.app.scheme, fetch: deps.fetch, api, actionGc: a['action-gc'] === 'on', endGc: a['end-gc'] === 'on' });
100
+ const t = new Session({ driver, scheme: module.app.scheme, fetch: deps.fetch, api, actionGc: a['action-gc'] === 'on', endGc: a['end-gc'] === 'on', capture: capture ? 'on' : 'off' });
101
101
  const sessionName = module.sessionName ?? 'keepsnappy (appium)';
102
102
  const device = String(a.device);
103
103
  const ctx = { fetch: deps.fetch, tokens, journeys, repeat, args: a };
@@ -121,7 +121,7 @@ export async function runDriver(argv, module, deps = realRunDeps()) {
121
121
  driver: 'appium', status, device, unit: driver.deviceUnit ?? null, capture, appUrl, session: driver.sessionId, buildId, linkMode: t.linkState.linkMode ?? null, actionGc: t.actionGc, endGc: t.endGc, linkError: t.linkState.linkError ?? null,
122
122
  startedAt, endedAt, total_ms: (endedAt ?? deps.now()) - startedAt, error: error?.message ?? null, signal,
123
123
  lastStep: last ? { name: last.name, t: last.t, journey: last.journey ?? null, iteration: last.iteration ?? null } : null,
124
- flushNotAcknowledged, flushError, flushOff, finalFlush, steps: t.stepLog, iterations, commands: log,
124
+ flushNotAcknowledged, flushError, flushOff, finalFlush, defects: t.defects, steps: t.stepLog, iterations, commands: log,
125
125
  };
126
126
  writeAtomic(logFile, `${JSON.stringify(body, null, 2)}\n`);
127
127
  };