doc-detective 4.22.0 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/common/src/schemas/schemas.json +274 -74
  2. package/dist/common/src/types/generated/config_v3.d.ts +1 -1
  3. package/dist/common/src/types/generated/context_v3.d.ts +1 -1
  4. package/dist/common/src/types/generated/report_v3.d.ts +1 -1
  5. package/dist/common/src/types/generated/resolvedTests_v3.d.ts +2 -2
  6. package/dist/common/src/types/generated/spec_v3.d.ts +1 -1
  7. package/dist/common/src/types/generated/test_v3.d.ts +1 -1
  8. package/dist/core/appium.d.ts +2 -1
  9. package/dist/core/appium.d.ts.map +1 -1
  10. package/dist/core/appium.js +47 -13
  11. package/dist/core/appium.js.map +1 -1
  12. package/dist/core/ptyProbeWorker.d.ts +2 -0
  13. package/dist/core/ptyProbeWorker.d.ts.map +1 -0
  14. package/dist/core/ptyProbeWorker.js +61 -0
  15. package/dist/core/ptyProbeWorker.js.map +1 -0
  16. package/dist/core/ptyWatchdog.d.ts +77 -0
  17. package/dist/core/ptyWatchdog.d.ts.map +1 -0
  18. package/dist/core/ptyWatchdog.js +179 -0
  19. package/dist/core/ptyWatchdog.js.map +1 -0
  20. package/dist/core/resolveTests.d.ts.map +1 -1
  21. package/dist/core/resolveTests.js +16 -4
  22. package/dist/core/resolveTests.js.map +1 -1
  23. package/dist/core/tests/appSurface.d.ts +21 -2
  24. package/dist/core/tests/appSurface.d.ts.map +1 -1
  25. package/dist/core/tests/appSurface.js +117 -3
  26. package/dist/core/tests/appSurface.js.map +1 -1
  27. package/dist/core/tests/browserWait.d.ts +1 -1
  28. package/dist/core/tests/browserWait.d.ts.map +1 -1
  29. package/dist/core/tests/browserWait.js +108 -84
  30. package/dist/core/tests/browserWait.js.map +1 -1
  31. package/dist/core/tests/findElement.d.ts.map +1 -1
  32. package/dist/core/tests/findElement.js +16 -5
  33. package/dist/core/tests/findElement.js.map +1 -1
  34. package/dist/core/tests/mobileBrowser.d.ts +46 -0
  35. package/dist/core/tests/mobileBrowser.d.ts.map +1 -0
  36. package/dist/core/tests/mobileBrowser.js +140 -0
  37. package/dist/core/tests/mobileBrowser.js.map +1 -0
  38. package/dist/core/tests/mobilePlatform.d.ts +1 -7
  39. package/dist/core/tests/mobilePlatform.d.ts.map +1 -1
  40. package/dist/core/tests/mobilePlatform.js +5 -27
  41. package/dist/core/tests/mobilePlatform.js.map +1 -1
  42. package/dist/core/tests.d.ts +7 -1
  43. package/dist/core/tests.d.ts.map +1 -1
  44. package/dist/core/tests.js +234 -58
  45. package/dist/core/tests.js.map +1 -1
  46. package/dist/core/utils.d.ts.map +1 -1
  47. package/dist/core/utils.js +26 -1
  48. package/dist/core/utils.js.map +1 -1
  49. package/dist/index.cjs +1039 -409
  50. package/dist/runtime/loader.d.ts.map +1 -1
  51. package/dist/runtime/loader.js +76 -0
  52. package/dist/runtime/loader.js.map +1 -1
  53. package/package.json +1 -1
@@ -2,13 +2,15 @@ export { waitForNetworkIdle, waitForDOMStable };
2
2
  // Page-readiness probes shared by goTo (navigation waitUntil) and typeKeys
3
3
  // (browser-surface waitUntil). Moved out of goTo.ts so typeKeys can reuse
4
4
  // them without a goTo → findElement → typeKeys → goTo import cycle.
5
- /**
6
- * Wait for network activity to be idle for a specified duration.
7
- * Uses a polling approach to check for network requests.
8
- */
9
- async function waitForNetworkIdle(driver, idleTime, timeout) {
10
- const startTime = Date.now(); // Only for Node.js timeout tracking
11
- // Initialize monitor with browser time only
5
+ //
6
+ // Both probes inject a monitor global and poll it. The poll treats a MISSING
7
+ // monitor as "the page changed under us" (a navigation/redirect completing
8
+ // mid-wait replaces the window and wipes the global — observed on Safari,
9
+ // including the phase A5 XCUITest web context) and re-injects instead of
10
+ // throwing, so a page swap restarts the measurement rather than failing the
11
+ // whole navigation wait.
12
+ // Inject the network monitor global (idempotent per page).
13
+ async function injectNetworkMonitor(driver) {
12
14
  await driver.execute(() => {
13
15
  if (!window.__docDetectiveNetworkMonitor) {
14
16
  const originalFetch = window.fetch;
@@ -32,59 +34,80 @@ async function waitForNetworkIdle(driver, idleTime, timeout) {
32
34
  };
33
35
  }
34
36
  });
35
- // Fast path: check after 100ms
37
+ }
38
+ // Remove the network monitor and restore the patched globals (idempotent —
39
+ // a fresh page without the monitor is a no-op).
40
+ async function cleanupNetworkMonitor(driver) {
41
+ await driver.execute(() => {
42
+ if (window.__docDetectiveNetworkMonitor) {
43
+ // Restore original methods if they were patched
44
+ if (window.__docDetectiveNetworkMonitor.originalFetch) {
45
+ window.fetch = window.__docDetectiveNetworkMonitor.originalFetch;
46
+ }
47
+ if (window.__docDetectiveNetworkMonitor.originalXHROpen) {
48
+ XMLHttpRequest.prototype.open = window.__docDetectiveNetworkMonitor.originalXHROpen;
49
+ }
50
+ delete window.__docDetectiveNetworkMonitor;
51
+ }
52
+ });
53
+ }
54
+ /**
55
+ * Wait for network activity to be idle for a specified duration.
56
+ * Uses a polling approach to check for network requests.
57
+ */
58
+ async function waitForNetworkIdle(driver, idleTime, timeout) {
59
+ const startTime = Date.now(); // Only for Node.js timeout tracking
60
+ await injectNetworkMonitor(driver);
61
+ // Fast path: check after 100ms. `null` = the monitor global vanished (page
62
+ // swap) — fall through to the poll loop, which re-injects.
36
63
  await new Promise((resolve) => setTimeout(resolve, 100));
37
64
  const initialCheck = await driver.execute(() => {
38
65
  const monitor = window.__docDetectiveNetworkMonitor;
66
+ if (!monitor)
67
+ return null;
39
68
  const now = Date.now();
40
69
  return {
41
70
  idleFor: now - monitor.lastRequestTime,
42
71
  requestCount: monitor.requestCount,
43
72
  };
44
73
  });
45
- if (initialCheck.idleFor >= idleTime && initialCheck.requestCount === 0) {
46
- // Clean up network monitor
47
- await driver.execute(() => {
48
- if (window.__docDetectiveNetworkMonitor) {
49
- // Restore original methods if they were patched
50
- if (window.__docDetectiveNetworkMonitor.originalFetch) {
51
- window.fetch = window.__docDetectiveNetworkMonitor.originalFetch;
52
- }
53
- if (window.__docDetectiveNetworkMonitor.originalXHROpen) {
54
- XMLHttpRequest.prototype.open = window.__docDetectiveNetworkMonitor.originalXHROpen;
55
- }
56
- delete window.__docDetectiveNetworkMonitor;
57
- }
58
- });
74
+ if (initialCheck &&
75
+ initialCheck.idleFor >= idleTime &&
76
+ initialCheck.requestCount === 0) {
77
+ await cleanupNetworkMonitor(driver);
59
78
  return; // Fast path
60
79
  }
61
80
  // Poll with browser-based time checks
62
81
  try {
82
+ let needsInject = !initialCheck;
63
83
  while (true) {
64
84
  if (Date.now() - startTime > timeout) {
65
- // Clean up network monitor before throwing
66
- await driver.execute(() => {
67
- if (window.__docDetectiveNetworkMonitor) {
68
- // Restore original methods if they were patched
69
- if (window.__docDetectiveNetworkMonitor.originalFetch) {
70
- window.fetch = window.__docDetectiveNetworkMonitor.originalFetch;
71
- }
72
- if (window.__docDetectiveNetworkMonitor.originalXHROpen) {
73
- XMLHttpRequest.prototype.open = window.__docDetectiveNetworkMonitor.originalXHROpen;
74
- }
75
- delete window.__docDetectiveNetworkMonitor;
76
- }
77
- });
78
85
  throw new Error("Network idle timeout exceeded");
79
86
  }
87
+ if (needsInject) {
88
+ // The page changed under the wait; re-arm the monitor on the new
89
+ // page and keep polling (the idle measurement restarts there).
90
+ await injectNetworkMonitor(driver);
91
+ needsInject = false;
92
+ }
80
93
  const state = await driver.execute(() => {
81
94
  const monitor = window.__docDetectiveNetworkMonitor;
95
+ if (!monitor)
96
+ return null;
82
97
  const now = Date.now();
83
98
  return {
84
99
  idleFor: now - monitor.lastRequestTime,
85
100
  elapsedTotal: now - monitor.startTime,
86
101
  };
87
102
  });
103
+ if (state === null || state === undefined) {
104
+ // Pace the re-injection like any other poll iteration: a page that
105
+ // keeps replacing itself must not turn this into a tight
106
+ // inject+check loop hammering the webdriver session until timeout.
107
+ needsInject = true;
108
+ await new Promise((resolve) => setTimeout(resolve, 200));
109
+ continue;
110
+ }
88
111
  if (state.idleFor >= idleTime) {
89
112
  break; // Network idle achieved
90
113
  }
@@ -93,27 +116,11 @@ async function waitForNetworkIdle(driver, idleTime, timeout) {
93
116
  }
94
117
  finally {
95
118
  // Always clean up network monitor
96
- await driver.execute(() => {
97
- if (window.__docDetectiveNetworkMonitor) {
98
- // Restore original methods if they were patched
99
- if (window.__docDetectiveNetworkMonitor.originalFetch) {
100
- window.fetch = window.__docDetectiveNetworkMonitor.originalFetch;
101
- }
102
- if (window.__docDetectiveNetworkMonitor.originalXHROpen) {
103
- XMLHttpRequest.prototype.open = window.__docDetectiveNetworkMonitor.originalXHROpen;
104
- }
105
- delete window.__docDetectiveNetworkMonitor;
106
- }
107
- });
119
+ await cleanupNetworkMonitor(driver);
108
120
  }
109
121
  }
110
- /**
111
- * Wait for the DOM to stop mutating for a specified duration.
112
- * Uses MutationObserver to detect changes.
113
- */
114
- async function waitForDOMStable(driver, idleTime, timeout) {
115
- const startTime = Date.now(); // Only for Node.js timeout tracking
116
- // Initialize monitor with browser time only
122
+ // Inject the DOM-mutation monitor global (idempotent per page).
123
+ async function injectDOMMonitor(driver) {
117
124
  await driver.execute(() => {
118
125
  if (!window.__docDetectiveDOMMonitor) {
119
126
  window.__docDetectiveDOMMonitor = {
@@ -138,41 +145,59 @@ async function waitForDOMStable(driver, idleTime, timeout) {
138
145
  window.__docDetectiveDOMMonitor.observer = observer;
139
146
  }
140
147
  });
141
- // Fast path: check after 100ms
148
+ }
149
+ // Disconnect and remove the DOM monitor (idempotent).
150
+ async function cleanupDOMMonitor(driver) {
151
+ await driver.execute(() => {
152
+ if (window.__docDetectiveDOMMonitor?.observer) {
153
+ window.__docDetectiveDOMMonitor.observer.disconnect();
154
+ }
155
+ delete window.__docDetectiveDOMMonitor;
156
+ });
157
+ }
158
+ /**
159
+ * Wait for the DOM to stop mutating for a specified duration.
160
+ * Uses a MutationObserver to detect changes.
161
+ */
162
+ async function waitForDOMStable(driver, idleTime, timeout) {
163
+ const startTime = Date.now(); // Only for Node.js timeout tracking
164
+ await injectDOMMonitor(driver);
165
+ // Fast path: check after 100ms. `null` = the monitor global vanished (page
166
+ // swap) — fall through to the poll loop, which re-injects.
142
167
  await new Promise((resolve) => setTimeout(resolve, 100));
143
168
  const initialCheck = await driver.execute(() => {
144
169
  const monitor = window.__docDetectiveDOMMonitor;
170
+ if (!monitor)
171
+ return null;
145
172
  const now = Date.now();
146
173
  return {
147
174
  idleFor: now - monitor.lastMutationTime,
148
175
  mutationCount: monitor.mutationCount,
149
176
  };
150
177
  });
151
- if (initialCheck.idleFor >= idleTime && initialCheck.mutationCount === 0) {
152
- // Clean up observer
153
- await driver.execute(() => {
154
- if (window.__docDetectiveDOMMonitor?.observer) {
155
- window.__docDetectiveDOMMonitor.observer.disconnect();
156
- delete window.__docDetectiveDOMMonitor;
157
- }
158
- });
178
+ if (initialCheck &&
179
+ initialCheck.idleFor >= idleTime &&
180
+ initialCheck.mutationCount === 0) {
181
+ await cleanupDOMMonitor(driver);
159
182
  return; // Fast path
160
183
  }
161
184
  // Poll with browser-based time checks
162
185
  try {
186
+ let needsInject = !initialCheck;
163
187
  while (true) {
164
188
  if (Date.now() - startTime > timeout) {
165
- // Clean up observer before throwing
166
- await driver.execute(() => {
167
- if (window.__docDetectiveDOMMonitor?.observer) {
168
- window.__docDetectiveDOMMonitor.observer.disconnect();
169
- delete window.__docDetectiveDOMMonitor;
170
- }
171
- });
172
189
  throw new Error("DOM stability timeout exceeded");
173
190
  }
191
+ if (needsInject) {
192
+ // The page changed under the wait; re-arm the observer on the new
193
+ // page and keep polling (the stability measurement restarts there).
194
+ await injectDOMMonitor(driver);
195
+ needsInject = false;
196
+ }
174
197
  const state = await driver.execute(() => {
175
198
  const monitor = window.__docDetectiveDOMMonitor;
199
+ if (!monitor)
200
+ return null;
176
201
  const now = Date.now();
177
202
  return {
178
203
  idleFor: now - monitor.lastMutationTime,
@@ -180,30 +205,29 @@ async function waitForDOMStable(driver, idleTime, timeout) {
180
205
  mutationCount: monitor.mutationCount,
181
206
  };
182
207
  });
208
+ if (state === null || state === undefined) {
209
+ // Pace the re-injection like any other poll iteration: a page that
210
+ // keeps replacing itself must not turn this into a tight
211
+ // inject+check loop hammering the webdriver session until timeout.
212
+ needsInject = true;
213
+ await new Promise((resolve) => setTimeout(resolve, 200));
214
+ continue;
215
+ }
183
216
  if (state.idleFor >= idleTime) {
184
- // Clean up observer before returning
185
- await driver.execute(() => {
186
- if (window.__docDetectiveDOMMonitor?.observer) {
187
- window.__docDetectiveDOMMonitor.observer.disconnect();
188
- delete window.__docDetectiveDOMMonitor;
189
- }
190
- });
191
217
  break; // DOM stable achieved
192
218
  }
193
219
  await new Promise((resolve) => setTimeout(resolve, 200));
194
220
  }
195
221
  }
196
222
  catch (error) {
197
- // Clean up observer before re-throwing
198
- await driver.execute(() => {
199
- if (window.__docDetectiveDOMMonitor?.observer) {
200
- window.__docDetectiveDOMMonitor.observer.disconnect();
201
- delete window.__docDetectiveDOMMonitor;
202
- }
203
- });
223
+ // Clean up the observer before re-throwing. Every failure keeps the
224
+ // established "DOM stability check failed" wording (including the plain
225
+ // timeout, matching the pre-refactor contract goTo callers assert on).
226
+ await cleanupDOMMonitor(driver);
204
227
  throw new Error(`DOM stability check failed: ${error.message}`, {
205
228
  cause: error,
206
229
  });
207
230
  }
231
+ await cleanupDOMMonitor(driver);
208
232
  }
209
233
  //# sourceMappingURL=browserWait.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browserWait.js","sourceRoot":"","sources":["../../../src/core/tests/browserWait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserWait.js","sourceRoot":"","sources":["../../../src/core/tests/browserWait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;AAEhD,2EAA2E;AAC3E,0EAA0E;AAC1E,oEAAoE;AACpE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,yBAAyB;AAEzB,2DAA2D;AAC3D,KAAK,UAAU,oBAAoB,CAAC,MAAW;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,CAAE,MAAc,CAAC,4BAA4B,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;YACnC,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;YAErD,MAAc,CAAC,4BAA4B,GAAG;gBAC7C,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,mBAAmB;gBAChD,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,yBAAyB;gBAChD,aAAa,EAAE,aAAa;gBAC5B,eAAe,EAAE,eAAe;aACjC,CAAC;YAEF,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;gBACpC,MAAc,CAAC,4BAA4B,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzE,MAAc,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;gBAC5D,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAyC,CAAC,CAAC;YAC9E,CAAC,CAAC;YAEF,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,GAAG,IAAW;gBACrD,MAAc,CAAC,4BAA4B,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzE,MAAc,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;gBAC5D,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAA2E,CAAC,CAAC;YAClH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,gDAAgD;AAChD,KAAK,UAAU,qBAAqB,CAAC,MAAW;IAC9C,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAK,MAAc,CAAC,4BAA4B,EAAE,CAAC;YACjD,gDAAgD;YAChD,IAAK,MAAc,CAAC,4BAA4B,CAAC,aAAa,EAAE,CAAC;gBAC/D,MAAM,CAAC,KAAK,GAAI,MAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC;YAC5E,CAAC;YACD,IAAK,MAAc,CAAC,4BAA4B,CAAC,eAAe,EAAE,CAAC;gBACjE,cAAc,CAAC,SAAS,CAAC,IAAI,GAAI,MAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC;YAC/F,CAAC;YACD,OAAQ,MAAc,CAAC,4BAA4B,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAW,EAAE,QAAa,EAAE,OAAY;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,oCAAoC;IAElE,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAEnC,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAI,MAAc,CAAC,4BAA4B,CAAC;QAC7D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe;YACtC,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IACE,YAAY;QACZ,YAAY,CAAC,OAAO,IAAI,QAAQ;QAChC,YAAY,CAAC,YAAY,KAAK,CAAC,EAC/B,CAAC;QACD,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,YAAY;IACtB,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC;QACH,IAAI,WAAW,GAAG,CAAC,YAAY,CAAC;QAChC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,iEAAiE;gBACjE,+DAA+D;gBAC/D,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACnC,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBACtC,MAAM,OAAO,GAAI,MAAc,CAAC,4BAA4B,CAAC;gBAC7D,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe;oBACtC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS;iBACtC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,mEAAmE;gBACnE,yDAAyD;gBACzD,mEAAmE;gBACnE,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,wBAAwB;YACjC,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,kCAAkC;QAClC,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,gBAAgB,CAAC,MAAW;IACzC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAI,CAAE,MAAc,CAAC,wBAAwB,EAAE,CAAC;YAC7C,MAAc,CAAC,wBAAwB,GAAG;gBACzC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,mBAAmB;gBACjD,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,yBAAyB;gBAChD,QAAQ,EAAE,IAAI;aACf,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;gBACxC,MAAc,CAAC,wBAAwB,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtE,MAAc,CAAC,wBAAwB,CAAC,aAAa,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,oEAAoE;YACpE,uEAAuE;YACvE,iEAAiE;YACjE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,EAAE;gBAC1D,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEF,MAAc,CAAC,wBAAwB,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sDAAsD;AACtD,KAAK,UAAU,iBAAiB,CAAC,MAAW;IAC1C,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,IAAK,MAAc,CAAC,wBAAwB,EAAE,QAAQ,EAAE,CAAC;YACtD,MAAc,CAAC,wBAAwB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACjE,CAAC;QACD,OAAQ,MAAc,CAAC,wBAAwB,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,QAAa,EAAE,OAAY;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,oCAAoC;IAElE,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/B,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAI,MAAc,CAAC,wBAAwB,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB;YACvC,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IACE,YAAY;QACZ,YAAY,CAAC,OAAO,IAAI,QAAQ;QAChC,YAAY,CAAC,aAAa,KAAK,CAAC,EAChC,CAAC;QACD,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,YAAY;IACtB,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC;QACH,IAAI,WAAW,GAAG,CAAC,YAAY,CAAC;QAChC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,kEAAkE;gBAClE,oEAAoE;gBACpE,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC/B,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBACtC,MAAM,OAAO,GAAI,MAAc,CAAC,wBAAwB,CAAC;gBACzD,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB;oBACvC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS;oBACrC,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,mEAAmE;gBACnE,yDAAyD;gBACzD,mEAAmE;gBACnE,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,sBAAsB;YAC/B,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,oEAAoE;QACpE,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAAE;YAC9D,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IACD,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findElement.d.ts","sourceRoot":"","sources":["../../../src/core/tests/findElement.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,CAAC;AA6BvB,iBAAe,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,gBAiP7I"}
1
+ {"version":3,"file":"findElement.d.ts","sourceRoot":"","sources":["../../../src/core/tests/findElement.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,CAAC;AA6BvB,iBAAe,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,gBA2P7I"}
@@ -140,9 +140,12 @@ async function findElement({ config, step, driver, click, appSession }) {
140
140
  result.outputs.found = true;
141
141
  await finalizeFound({ result });
142
142
  // Shorthand carries no sub-effect fields, so button defaults to left.
143
+ // Argument-less click() maps to the classic element-click endpoint;
144
+ // passing options makes wdio emit W3C pointer actions, which device
145
+ // browsers (XCUITest web context, phase A5) reject.
143
146
  if (click) {
144
147
  try {
145
- await element.click({ button: "left" });
148
+ await element.click();
146
149
  result.description += " Clicked element.";
147
150
  }
148
151
  catch (error) {
@@ -225,12 +228,20 @@ async function findElement({ config, step, driver, click, appSession }) {
225
228
  await moveTo({ config, step: moveToStep, driver, element });
226
229
  result.description = result.description + " Moved to element.";
227
230
  }
228
- // Click element
231
+ // Click element. A left/default click is argument-less: with options wdio
232
+ // emits W3C pointer actions, which device browsers (XCUITest web context,
233
+ // phase A5) reject — the bare form maps to the classic element-click
234
+ // endpoint and works everywhere. Non-left buttons genuinely need the
235
+ // actions path, so they keep the options form (desktop-only).
229
236
  if (step.find.click || click) {
230
237
  try {
231
- await element.click({
232
- button: step.find.click?.button || "left",
233
- });
238
+ const button = step.find.click?.button || "left";
239
+ if (button === "left") {
240
+ await element.click();
241
+ }
242
+ else {
243
+ await element.click({ button });
244
+ }
234
245
  result.description += " Clicked element.";
235
246
  }
236
247
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"findElement.js","sourceRoot":"","sources":["../../../src/core/tests/findElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findElement.js","sourceRoot":"","sources":["../../../src/core/tests/findElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ type MobileTarget = "android" | "ios";
2
+ declare const MOBILE_CHROMEDRIVER_DIR = "chromedriver-mobile";
3
+ export { mobileBrowserSupport, mobileBrowserConfigError, buildMobileBrowserCapabilities, defaultMobileBrowserName, mobileBrowserGate, MOBILE_CHROMEDRIVER_DIR, };
4
+ declare function defaultMobileBrowserName(platform: MobileTarget): string;
5
+ declare function mobileBrowserSupport({ platform, browserName, }: {
6
+ platform: MobileTarget;
7
+ browserName: string;
8
+ }): {
9
+ supported: true;
10
+ } | {
11
+ supported: false;
12
+ reason: string;
13
+ };
14
+ declare function mobileBrowserConfigError(browser: {
15
+ headless?: boolean;
16
+ window?: any;
17
+ viewport?: any;
18
+ } | undefined): string | null;
19
+ declare function mobileBrowserGate({ platform, browser, hasBrowserStep, hasAppStep, }: {
20
+ platform: MobileTarget;
21
+ browser?: {
22
+ name?: string;
23
+ headless?: boolean;
24
+ window?: any;
25
+ viewport?: any;
26
+ };
27
+ hasBrowserStep: boolean;
28
+ hasAppStep: boolean;
29
+ }): {
30
+ action: "proceed";
31
+ browserName: string | null;
32
+ } | {
33
+ action: "skip";
34
+ level: "warning";
35
+ reason: string;
36
+ } | {
37
+ action: "fail";
38
+ reason: string;
39
+ };
40
+ declare function buildMobileBrowserCapabilities({ platform, udid, cacheDir, timeout, }: {
41
+ platform: MobileTarget;
42
+ udid: string;
43
+ cacheDir: string;
44
+ timeout?: number;
45
+ }): Record<string, any>;
46
+ //# sourceMappingURL=mobileBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobileBrowser.d.ts","sourceRoot":"","sources":["../../../src/core/tests/mobileBrowser.ts"],"names":[],"mappings":"AAUA,KAAK,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAatC,QAAA,MAAM,uBAAuB,wBAAwB,CAAC;AAEtD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,GACxB,CAAC;AAIF,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEhE;AAKD,iBAAS,oBAAoB,CAAC,EAC5B,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAO7D;AAOD,iBAAS,wBAAwB,CAC/B,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,SAAS,GACxE,MAAM,GAAG,IAAI,CAcf;AAOD,iBAAS,iBAAiB,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,cAAc,EACd,UAAU,GACX,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB,GACG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0BrC;AAOD,iBAAS,8BAA8B,CAAC,EACtC,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAiDtB"}
@@ -0,0 +1,140 @@
1
+ // Native app surfaces phase A5: mobile web browsers on managed devices.
2
+ // With a mobile platform entry, `browsers` means the browser ON the device,
3
+ // driven through the same per-device Appium session the app surfaces use:
4
+ // Chrome on the Android emulator (UiAutomator2 + server-managed chromedriver)
5
+ // and Safari on the iOS simulator (XCUITest). Everything here is pure —
6
+ // support-matrix decisions, config rejection, and capability shapes — so the
7
+ // preflights stay unit-testable without a device.
8
+ import path from "node:path";
9
+ // The device browser each mobile target supports. There is exactly one per
10
+ // platform — the on-device browser is part of the device image, not an
11
+ // installable engine choice, so unsupported names SKIP (they can never
12
+ // become available on that target) rather than falling back.
13
+ const SUPPORTED_MOBILE_BROWSER = {
14
+ android: "chrome",
15
+ ios: "safari",
16
+ };
17
+ // Subdirectory of the Doc Detective cache where the Appium server stores the
18
+ // chromedrivers it auto-downloads to match the device's Chrome version.
19
+ const MOBILE_CHROMEDRIVER_DIR = "chromedriver-mobile";
20
+ export { mobileBrowserSupport, mobileBrowserConfigError, buildMobileBrowserCapabilities, defaultMobileBrowserName, mobileBrowserGate, MOBILE_CHROMEDRIVER_DIR, };
21
+ // The browser a mobile context gets when the runOn entry names none — the
22
+ // mobile analog of the desktop first-available default.
23
+ function defaultMobileBrowserName(platform) {
24
+ return SUPPORTED_MOBILE_BROWSER[platform];
25
+ }
26
+ // The A5 support matrix: chrome+android and safari+ios are the only pairs.
27
+ // The reason names both the rejected and the supported browser so the fix is
28
+ // one edit away.
29
+ function mobileBrowserSupport({ platform, browserName, }) {
30
+ const supported = SUPPORTED_MOBILE_BROWSER[platform];
31
+ if (browserName === supported)
32
+ return { supported: true };
33
+ return {
34
+ supported: false,
35
+ reason: `Skipping context: '${browserName}' isn't available on ${platform}. '${supported}' is the supported ${platform} browser — set browsers: "${supported}" (or omit browsers) on the ${platform} runOn entry.`,
36
+ };
37
+ }
38
+ // Device-fixed browser config is rejected loudly rather than silently
39
+ // ignored: `headless` belongs to the device descriptor, and window/viewport
40
+ // dimensions are fixed by the device's screen. `headless: true` is the
41
+ // schema-injected default (AJV useDefaults), so only an authored `false` is
42
+ // distinguishable and rejectable.
43
+ function mobileBrowserConfigError(browser) {
44
+ if (!browser)
45
+ return null;
46
+ if (browser.headless === false) {
47
+ return "browser headless is meaningless for a device browser — the device owns its display. Set headless on the device descriptor (device.headless) instead.";
48
+ }
49
+ const authoredDimensions = (value) => value && typeof value === "object" && Object.keys(value).length > 0;
50
+ if (authoredDimensions(browser.window)) {
51
+ return "browser window dimensions are fixed by the device's screen and can't be set on a mobile context. Choose a different device (device.deviceType) if you need another size.";
52
+ }
53
+ if (authoredDimensions(browser.viewport)) {
54
+ return "browser viewport dimensions are fixed by the device's screen and can't be set on a mobile context. Choose a different device (device.deviceType) if you need another size.";
55
+ }
56
+ return null;
57
+ }
58
+ // The one decision point the mobile preflights consult before any toolchain
59
+ // work: does this context get a device-browser session, a SKIP, or a FAIL?
60
+ // Order matters — the mixed guard first (a scope limit, so SKIP, and config
61
+ // on a context that can't run at all shouldn't fail the run), then the loud
62
+ // config rejection, then the support matrix with the platform default filled.
63
+ function mobileBrowserGate({ platform, browser, hasBrowserStep, hasAppStep, }) {
64
+ if (!hasBrowserStep)
65
+ return { action: "proceed", browserName: null };
66
+ if (hasAppStep) {
67
+ // Interleaving native app surfaces and the device browser in one context
68
+ // needs foreground + NATIVE_APP/WEBVIEW context switching, which lands
69
+ // with the mobile interaction vocabulary (phase A6). Both halves run
70
+ // today — in separate tests/contexts.
71
+ return {
72
+ action: "skip",
73
+ level: "warning",
74
+ reason: `Skipping context on '${platform}': mixing native app surfaces and browser steps in one mobile context isn't supported yet — put the web steps and the app steps in separate tests or contexts. Mobile-web-only and native-app-only contexts both run today.`,
75
+ };
76
+ }
77
+ const configError = mobileBrowserConfigError(browser);
78
+ if (configError) {
79
+ return {
80
+ action: "fail",
81
+ reason: `Mobile context on '${platform}': ${configError}`,
82
+ };
83
+ }
84
+ const browserName = browser?.name ?? defaultMobileBrowserName(platform);
85
+ const support = mobileBrowserSupport({ platform, browserName });
86
+ if (!support.supported) {
87
+ return { action: "skip", level: "warning", reason: support.reason };
88
+ }
89
+ return { action: "proceed", browserName };
90
+ }
91
+ // Session capabilities for the device browser. Mirrors the per-platform app
92
+ // capability shapes in appSurface.ts (APP_DRIVER_PLATFORMS) — same drivers,
93
+ // same udid pinning, same WDA timeout floor and derived-data opt-in — but
94
+ // with `browserName` in place of an app identifier, which puts the session
95
+ // in a web context from the start.
96
+ function buildMobileBrowserCapabilities({ platform, udid, cacheDir, timeout, }) {
97
+ if (platform === "android") {
98
+ return {
99
+ platformName: "Android",
100
+ "appium:automationName": "UiAutomator2",
101
+ browserName: "Chrome",
102
+ "appium:udid": udid,
103
+ "appium:newCommandTimeout": 600,
104
+ // adb operations can be slow on a cold emulator (same floor as app
105
+ // sessions).
106
+ "appium:adbExecTimeout": 120000,
107
+ "wdio:enforceWebDriverClassic": true,
108
+ // On-device chromedriver management: the server downloads a
109
+ // chromedriver matching the device's Chrome version. Requires the
110
+ // Appium server to run with
111
+ // --allow-insecure=uiautomator2:chromedriver_autodownload. The
112
+ // download lands in the Doc Detective cache so later runs reuse it.
113
+ "appium:chromedriverAutodownload": true,
114
+ "appium:chromedriverExecutableDir": path.join(cacheDir, MOBILE_CHROMEDRIVER_DIR),
115
+ };
116
+ }
117
+ const capabilities = {
118
+ platformName: "iOS",
119
+ "appium:automationName": "XCUITest",
120
+ browserName: "Safari",
121
+ "appium:udid": udid,
122
+ "appium:newCommandTimeout": 600,
123
+ "wdio:enforceWebDriverClassic": true,
124
+ };
125
+ // The first-ever XCUITest session cold-builds WebDriverAgent via
126
+ // xcodebuild (~10 min on CI). App surfaces carry an authored startSurface
127
+ // timeout for this; a mobile-web session has no step to author one on, so
128
+ // the default ceiling matches the generous one the apps-ios fixtures use.
129
+ const effectiveTimeout = timeout ?? 900000;
130
+ capabilities["appium:wdaLaunchTimeout"] = Math.max(effectiveTimeout, 120000);
131
+ capabilities["appium:wdaConnectionTimeout"] = Math.max(effectiveTimeout, 120000);
132
+ // Same opt-in derived-data sharing as iOS app sessions (see appSurface.ts
133
+ // for the caching contract).
134
+ const derivedDataPath = process.env.DOC_DETECTIVE_IOS_WDA_DERIVED_DATA_PATH;
135
+ if (derivedDataPath && derivedDataPath.trim()) {
136
+ capabilities["appium:derivedDataPath"] = derivedDataPath.trim();
137
+ }
138
+ return capabilities;
139
+ }
140
+ //# sourceMappingURL=mobileBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobileBrowser.js","sourceRoot":"","sources":["../../../src/core/tests/mobileBrowser.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,4 @@
1
- export { isMobileTargetPlatform, mobileContextSkipReason };
1
+ export { isMobileTargetPlatform };
2
2
  type MobileTarget = "android" | "ios";
3
3
  declare function isMobileTargetPlatform(platform: unknown): MobileTarget | null;
4
- declare function mobileContextSkipReason({ platform, }: {
5
- platform: MobileTarget;
6
- }): {
7
- level: "warning" | "info";
8
- reason: string;
9
- };
10
4
  //# sourceMappingURL=mobilePlatform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobilePlatform.d.ts","sourceRoot":"","sources":["../../../src/core/tests/mobilePlatform.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;AAE3D,KAAK,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAGtC,iBAAS,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAGtE;AASD,iBAAS,uBAAuB,CAAC,EAC/B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAahD"}
1
+ {"version":3,"file":"mobilePlatform.d.ts","sourceRoot":"","sources":["../../../src/core/tests/mobilePlatform.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC,KAAK,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAGtC,iBAAS,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAGtE"}