patchright-core 1.51.3 → 1.52.1

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 (303) hide show
  1. package/browsers.json +15 -13
  2. package/lib/androidServerImpl.js +42 -48
  3. package/lib/browserServerImpl.js +54 -67
  4. package/lib/cli/driver.js +71 -69
  5. package/lib/cli/program.js +312 -328
  6. package/lib/cli/programWithTestStub.js +51 -45
  7. package/lib/client/accessibility.js +31 -32
  8. package/lib/client/android.js +141 -228
  9. package/lib/client/api.js +135 -283
  10. package/lib/client/artifact.js +39 -36
  11. package/lib/client/browser.js +57 -61
  12. package/lib/client/browserContext.js +297 -326
  13. package/lib/client/browserType.js +92 -106
  14. package/lib/client/cdpSession.js +29 -31
  15. package/lib/client/channelOwner.js +82 -95
  16. package/lib/client/clientHelper.js +46 -38
  17. package/lib/client/clientInstrumentation.js +40 -37
  18. package/lib/client/clientStackTrace.js +41 -37
  19. package/lib/client/clock.js +36 -36
  20. package/lib/client/connection.js +190 -212
  21. package/lib/client/consoleMessage.js +31 -28
  22. package/lib/client/coverage.js +25 -22
  23. package/lib/client/dialog.js +30 -31
  24. package/lib/client/download.js +25 -25
  25. package/lib/client/electron.js +73 -75
  26. package/lib/client/elementHandle.js +111 -147
  27. package/lib/client/errors.js +53 -53
  28. package/lib/client/eventEmitter.js +124 -121
  29. package/lib/client/events.js +72 -68
  30. package/lib/client/fetch.js +135 -158
  31. package/lib/client/fileChooser.js +25 -24
  32. package/lib/client/fileUtils.js +31 -28
  33. package/lib/client/frame.js +187 -306
  34. package/lib/client/harRouter.js +42 -52
  35. package/lib/client/input.js +40 -69
  36. package/lib/client/jsHandle.js +56 -71
  37. package/lib/client/jsonPipe.js +27 -23
  38. package/lib/client/localUtils.js +29 -28
  39. package/lib/client/locator.js +161 -245
  40. package/lib/client/network.js +277 -295
  41. package/lib/client/page.js +270 -318
  42. package/lib/client/platform.js +46 -43
  43. package/lib/client/playwright.js +51 -66
  44. package/lib/client/selectors.js +48 -46
  45. package/lib/client/stream.js +29 -25
  46. package/lib/client/timeoutSettings.js +49 -39
  47. package/lib/client/tracing.js +48 -84
  48. package/lib/client/types.js +26 -22
  49. package/lib/client/video.js +35 -27
  50. package/lib/client/waiter.js +69 -88
  51. package/lib/client/webError.js +25 -23
  52. package/lib/client/webSocket.js +61 -56
  53. package/lib/client/worker.js +48 -58
  54. package/lib/client/writableStream.js +27 -23
  55. package/lib/generated/clockSource.js +26 -5
  56. package/lib/generated/consoleApiSource.js +26 -5
  57. package/lib/generated/injectedScriptSource.js +26 -5
  58. package/lib/generated/pollingRecorderSource.js +26 -5
  59. package/lib/generated/utilityScriptSource.js +26 -5
  60. package/lib/generated/webSocketMockSource.js +371 -4
  61. package/lib/inProcessFactory.js +53 -53
  62. package/lib/inprocess.js +2 -19
  63. package/lib/outofprocess.js +53 -46
  64. package/lib/protocol/debug.js +209 -25
  65. package/lib/protocol/serializers.js +153 -134
  66. package/lib/protocol/validator.js +2714 -2714
  67. package/lib/protocol/validatorPrimitives.js +114 -73
  68. package/lib/remote/playwrightConnection.js +140 -157
  69. package/lib/remote/playwrightServer.js +99 -84
  70. package/lib/server/accessibility.js +44 -37
  71. package/lib/server/android/android.js +216 -209
  72. package/lib/server/android/backendAdb.js +89 -82
  73. package/lib/server/artifact.js +78 -55
  74. package/lib/server/bidi/bidiBrowser.js +221 -155
  75. package/lib/server/bidi/bidiChromium.js +106 -79
  76. package/lib/server/bidi/bidiConnection.js +66 -83
  77. package/lib/server/bidi/bidiExecutionContext.js +128 -113
  78. package/lib/server/bidi/bidiFirefox.js +76 -69
  79. package/lib/server/bidi/bidiInput.js +86 -97
  80. package/lib/server/bidi/bidiNetworkManager.js +137 -154
  81. package/lib/server/bidi/bidiOverCdp.js +57 -58
  82. package/lib/server/bidi/bidiPage.js +247 -219
  83. package/lib/server/bidi/bidiPdf.js +52 -86
  84. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  85. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  86. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  87. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  88. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  89. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  90. package/lib/server/browser.js +76 -84
  91. package/lib/server/browserContext.js +321 -346
  92. package/lib/server/browserType.js +169 -182
  93. package/lib/server/callLog.js +47 -44
  94. package/lib/server/chromium/chromium.js +212 -190
  95. package/lib/server/chromium/chromiumSwitches.js +86 -64
  96. package/lib/server/chromium/crAccessibility.js +157 -131
  97. package/lib/server/chromium/crBrowser.js +253 -273
  98. package/lib/server/chromium/crConnection.js +91 -116
  99. package/lib/server/chromium/crCoverage.js +113 -127
  100. package/lib/server/chromium/crDevTools.js +59 -51
  101. package/lib/server/chromium/crDragDrop.js +62 -79
  102. package/lib/server/chromium/crExecutionContext.js +88 -83
  103. package/lib/server/chromium/crInput.js +97 -95
  104. package/lib/server/chromium/crNetworkManager.js +284 -404
  105. package/lib/server/chromium/crPage.js +522 -608
  106. package/lib/server/chromium/crPdf.js +54 -86
  107. package/lib/server/chromium/crProtocolHelper.js +92 -80
  108. package/lib/server/chromium/crServiceWorker.js +82 -67
  109. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  110. package/lib/server/chromium/protocol.d.js +16 -0
  111. package/lib/server/chromium/videoRecorder.js +65 -99
  112. package/lib/server/clock.js +62 -50
  113. package/lib/server/codegen/csharp.js +185 -160
  114. package/lib/server/codegen/java.js +155 -128
  115. package/lib/server/codegen/javascript.js +163 -148
  116. package/lib/server/codegen/jsonl.js +32 -28
  117. package/lib/server/codegen/language.js +75 -52
  118. package/lib/server/codegen/languages.js +65 -27
  119. package/lib/server/codegen/python.js +140 -125
  120. package/lib/server/codegen/types.js +15 -4
  121. package/lib/server/console.js +28 -32
  122. package/lib/server/cookieStore.js +105 -86
  123. package/lib/server/debugController.js +97 -124
  124. package/lib/server/debugger.js +82 -78
  125. package/lib/server/deviceDescriptors.js +37 -24
  126. package/lib/server/deviceDescriptorsSource.json +50 -50
  127. package/lib/server/dialog.js +36 -35
  128. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  129. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  130. package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
  131. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  132. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  133. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  134. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
  135. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  136. package/lib/server/dispatchers/dispatcher.js +169 -220
  137. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  138. package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
  139. package/lib/server/dispatchers/frameDispatcher.js +99 -163
  140. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  141. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  142. package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
  143. package/lib/server/dispatchers/networkDispatchers.js +90 -107
  144. package/lib/server/dispatchers/pageDispatcher.js +128 -169
  145. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  146. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  147. package/lib/server/dispatchers/streamDispatcher.js +42 -45
  148. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  149. package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
  150. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
  151. package/lib/server/dom.js +413 -443
  152. package/lib/server/download.js +45 -35
  153. package/lib/server/electron/electron.js +156 -176
  154. package/lib/server/electron/loader.js +8 -36
  155. package/lib/server/errors.js +47 -46
  156. package/lib/server/fetch.js +289 -323
  157. package/lib/server/fileChooser.js +25 -24
  158. package/lib/server/fileUploadUtils.js +65 -59
  159. package/lib/server/firefox/ffAccessibility.js +153 -131
  160. package/lib/server/firefox/ffBrowser.js +213 -277
  161. package/lib/server/firefox/ffConnection.js +63 -84
  162. package/lib/server/firefox/ffExecutionContext.js +91 -73
  163. package/lib/server/firefox/ffInput.js +67 -69
  164. package/lib/server/firefox/ffNetworkManager.js +131 -110
  165. package/lib/server/firefox/ffPage.js +236 -273
  166. package/lib/server/firefox/firefox.js +76 -67
  167. package/lib/server/firefox/protocol.d.js +16 -0
  168. package/lib/server/formData.js +107 -35
  169. package/lib/server/frameSelectors.js +221 -112
  170. package/lib/server/frames.js +731 -894
  171. package/lib/server/har/harRecorder.js +85 -77
  172. package/lib/server/har/harTracer.js +287 -222
  173. package/lib/server/harBackend.js +80 -80
  174. package/lib/server/helper.js +56 -59
  175. package/lib/server/index.js +59 -99
  176. package/lib/server/input.js +134 -163
  177. package/lib/server/instrumentation.js +49 -44
  178. package/lib/server/javascript.js +143 -134
  179. package/lib/server/launchApp.js +92 -73
  180. package/lib/server/localUtils.js +130 -122
  181. package/lib/server/macEditingCommands.js +141 -137
  182. package/lib/server/network.js +262 -296
  183. package/lib/server/page.js +326 -423
  184. package/lib/server/pageBinding.js +88 -0
  185. package/lib/server/pipeTransport.js +49 -45
  186. package/lib/server/playwright.js +60 -67
  187. package/lib/server/progress.js +56 -51
  188. package/lib/server/protocolError.js +34 -31
  189. package/lib/server/recorder/chat.js +70 -86
  190. package/lib/server/recorder/contextRecorder.js +134 -138
  191. package/lib/server/recorder/recorderApp.js +127 -136
  192. package/lib/server/recorder/recorderCollection.js +56 -44
  193. package/lib/server/recorder/recorderFrontend.js +15 -4
  194. package/lib/server/recorder/recorderRunner.js +79 -103
  195. package/lib/server/recorder/recorderUtils.js +56 -45
  196. package/lib/server/recorder/throttledFile.js +42 -30
  197. package/lib/server/recorder.js +177 -186
  198. package/lib/server/registry/browserFetcher.js +106 -101
  199. package/lib/server/registry/dependencies.js +245 -196
  200. package/lib/server/registry/index.js +904 -792
  201. package/lib/server/registry/nativeDeps.js +1073 -464
  202. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  203. package/lib/server/screenshotter.js +166 -182
  204. package/lib/server/selectors.js +85 -46
  205. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  206. package/lib/server/socksInterceptor.js +62 -70
  207. package/lib/server/storageScript.js +94 -100
  208. package/lib/server/timeoutSettings.js +58 -43
  209. package/lib/server/trace/recorder/snapshotter.js +70 -89
  210. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  211. package/lib/server/trace/recorder/tracing.js +321 -333
  212. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  213. package/lib/server/trace/viewer/traceViewer.js +168 -146
  214. package/lib/server/transport.js +124 -133
  215. package/lib/server/types.js +26 -22
  216. package/lib/server/usKeyboardLayout.js +135 -545
  217. package/lib/server/utils/ascii.js +39 -26
  218. package/lib/server/utils/comparators.js +105 -103
  219. package/lib/server/utils/crypto.js +157 -112
  220. package/lib/server/utils/debug.js +37 -28
  221. package/lib/server/utils/debugLogger.js +69 -48
  222. package/lib/server/utils/env.js +52 -37
  223. package/lib/server/utils/eventsHelper.js +29 -28
  224. package/lib/server/utils/expectUtils.js +31 -26
  225. package/lib/server/utils/fileUtils.js +123 -136
  226. package/lib/server/utils/happyEyeballs.js +138 -123
  227. package/lib/server/utils/hostPlatform.js +84 -120
  228. package/lib/server/utils/httpServer.js +106 -121
  229. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  230. package/lib/server/utils/image_tools/compare.js +44 -43
  231. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  232. package/lib/server/utils/image_tools/stats.js +40 -40
  233. package/lib/server/utils/linuxUtils.js +50 -37
  234. package/lib/server/utils/network.js +143 -86
  235. package/lib/server/utils/nodePlatform.js +87 -79
  236. package/lib/server/utils/pipeTransport.js +44 -42
  237. package/lib/server/utils/processLauncher.js +111 -121
  238. package/lib/server/utils/profiler.js +52 -39
  239. package/lib/server/utils/socksProxy.js +280 -339
  240. package/lib/server/utils/spawnAsync.js +37 -41
  241. package/lib/server/utils/task.js +31 -38
  242. package/lib/server/utils/userAgent.js +73 -66
  243. package/lib/server/utils/wsServer.js +73 -69
  244. package/lib/server/utils/zipFile.js +36 -37
  245. package/lib/server/utils/zones.js +37 -34
  246. package/lib/server/webkit/protocol.d.js +16 -0
  247. package/lib/server/webkit/webkit.js +76 -63
  248. package/lib/server/webkit/wkAccessibility.js +161 -118
  249. package/lib/server/webkit/wkBrowser.js +159 -176
  250. package/lib/server/webkit/wkConnection.js +59 -83
  251. package/lib/server/webkit/wkExecutionContext.js +84 -70
  252. package/lib/server/webkit/wkInput.js +82 -80
  253. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  254. package/lib/server/webkit/wkPage.js +525 -619
  255. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  256. package/lib/server/webkit/wkWorkers.js +77 -77
  257. package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
  258. package/lib/utils/isomorphic/assert.js +28 -22
  259. package/lib/utils/isomorphic/builtins.js +86 -0
  260. package/lib/utils/isomorphic/colors.js +66 -59
  261. package/lib/utils/isomorphic/cssParser.js +121 -125
  262. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  263. package/lib/utils/isomorphic/headers.js +38 -37
  264. package/lib/utils/isomorphic/locatorGenerators.js +340 -357
  265. package/lib/utils/isomorphic/locatorParser.js +96 -105
  266. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  267. package/lib/utils/isomorphic/manualPromise.js +47 -39
  268. package/lib/utils/isomorphic/mimeType.js +448 -25
  269. package/lib/utils/isomorphic/multimap.js +35 -27
  270. package/lib/utils/isomorphic/rtti.js +35 -33
  271. package/lib/utils/isomorphic/selectorParser.js +183 -193
  272. package/lib/utils/isomorphic/semaphore.js +27 -24
  273. package/lib/utils/isomorphic/stackTrace.js +87 -98
  274. package/lib/utils/isomorphic/stringUtils.js +113 -106
  275. package/lib/utils/isomorphic/time.js +41 -22
  276. package/lib/utils/isomorphic/timeoutRunner.js +55 -54
  277. package/lib/utils/isomorphic/traceUtils.js +38 -41
  278. package/lib/utils/isomorphic/types.js +15 -4
  279. package/lib/utils/isomorphic/urlMatch.js +112 -67
  280. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  281. package/lib/utils.js +97 -443
  282. package/lib/utilsBundle.js +101 -52
  283. package/lib/vite/htmlReport/index.html +21 -15
  284. package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-CXVeovup.js} +1 -1
  285. package/lib/vite/recorder/assets/index-BsWQsSGl.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-_GLjJL-7.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.cFZzK9RN.js +2 -0
  291. package/lib/vite/traceViewer/index.html +3 -3
  292. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  293. package/lib/vite/traceViewer/uiMode.XVPIqBeS.js +5 -0
  294. package/lib/vite/traceViewer/uiMode.html +3 -3
  295. package/lib/zipBundle.js +32 -23
  296. package/package.json +1 -1
  297. package/types/protocol.d.ts +436 -17
  298. package/types/types.d.ts +35 -16
  299. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  300. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  301. package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
  302. package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
@@ -1,92 +1,84 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var android_exports = {};
20
+ __export(android_exports, {
21
+ Android: () => Android,
22
+ AndroidDevice: () => AndroidDevice,
23
+ AndroidInput: () => AndroidInput,
24
+ AndroidSocket: () => AndroidSocket,
25
+ AndroidWebView: () => AndroidWebView
5
26
  });
6
- exports.AndroidWebView = exports.AndroidSocket = exports.AndroidInput = exports.AndroidDevice = exports.Android = void 0;
7
- var _eventEmitter = require("./eventEmitter");
8
- var _browserContext = require("./browserContext");
9
- var _channelOwner = require("./channelOwner");
10
- var _errors = require("./errors");
11
- var _events = require("./events");
12
- var _waiter = require("./waiter");
13
- var _timeoutSettings = require("./timeoutSettings");
14
- var _rtti = require("../utils/isomorphic/rtti");
15
- var _time = require("../utils/isomorphic/time");
16
- var _timeoutRunner = require("../utils/isomorphic/timeoutRunner");
17
- var _webSocket = require("./webSocket");
18
- /**
19
- * Copyright (c) Microsoft Corporation.
20
- *
21
- * Licensed under the Apache License, Version 2.0 (the "License");
22
- * you may not use this file except in compliance with the License.
23
- * You may obtain a copy of the License at
24
- *
25
- * http://www.apache.org/licenses/LICENSE-2.0
26
- *
27
- * Unless required by applicable law or agreed to in writing, software
28
- * distributed under the License is distributed on an "AS IS" BASIS,
29
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30
- * See the License for the specific language governing permissions and
31
- * limitations under the License.
32
- */
33
-
34
- class Android extends _channelOwner.ChannelOwner {
27
+ module.exports = __toCommonJS(android_exports);
28
+ var import_eventEmitter = require("./eventEmitter");
29
+ var import_browserContext = require("./browserContext");
30
+ var import_channelOwner = require("./channelOwner");
31
+ var import_errors = require("./errors");
32
+ var import_events = require("./events");
33
+ var import_waiter = require("./waiter");
34
+ var import_timeoutSettings = require("./timeoutSettings");
35
+ var import_rtti = require("../utils/isomorphic/rtti");
36
+ var import_time = require("../utils/isomorphic/time");
37
+ var import_timeoutRunner = require("../utils/isomorphic/timeoutRunner");
38
+ var import_webSocket = require("./webSocket");
39
+ class Android extends import_channelOwner.ChannelOwner {
35
40
  static from(android) {
36
41
  return android._object;
37
42
  }
38
43
  constructor(parent, type, guid, initializer) {
39
44
  super(parent, type, guid, initializer);
40
- this._timeoutSettings = void 0;
41
- this._serverLauncher = void 0;
42
- this._timeoutSettings = new _timeoutSettings.TimeoutSettings(this._platform);
45
+ this._timeoutSettings = new import_timeoutSettings.TimeoutSettings(this._platform);
43
46
  }
44
47
  setDefaultTimeout(timeout) {
45
48
  this._timeoutSettings.setDefaultTimeout(timeout);
46
49
  this._wrapApiCall(async () => {
47
- await this._channel.setDefaultTimeoutNoReply({
48
- timeout
49
- });
50
- }, true).catch(() => {});
50
+ await this._channel.setDefaultTimeoutNoReply({ timeout });
51
+ }, true).catch(() => {
52
+ });
51
53
  }
52
54
  async devices(options = {}) {
53
- const {
54
- devices
55
- } = await this._channel.devices(options);
56
- return devices.map(d => AndroidDevice.from(d));
55
+ const { devices } = await this._channel.devices(options);
56
+ return devices.map((d) => AndroidDevice.from(d));
57
57
  }
58
58
  async launchServer(options = {}) {
59
- if (!this._serverLauncher) throw new Error('Launching server is not supported');
59
+ if (!this._serverLauncher)
60
+ throw new Error("Launching server is not supported");
60
61
  return await this._serverLauncher.launchServer(options);
61
62
  }
62
63
  async connect(wsEndpoint, options = {}) {
63
64
  return await this._wrapApiCall(async () => {
64
- const deadline = options.timeout ? (0, _time.monotonicTime)() + options.timeout : 0;
65
- const headers = {
66
- 'x-playwright-browser': 'android',
67
- ...options.headers
68
- };
69
- const connectParams = {
70
- wsEndpoint,
71
- headers,
72
- slowMo: options.slowMo,
73
- timeout: options.timeout
74
- };
75
- const connection = await (0, _webSocket.connectOverWebSocket)(this._connection, connectParams);
65
+ const deadline = options.timeout ? (0, import_time.monotonicTime)() + options.timeout : 0;
66
+ const headers = { "x-playwright-browser": "android", ...options.headers };
67
+ const connectParams = { wsEndpoint, headers, slowMo: options.slowMo, timeout: options.timeout };
68
+ const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
76
69
  let device;
77
- connection.on('close', () => {
78
- var _device;
79
- (_device = device) === null || _device === void 0 || _device._didClose();
70
+ connection.on("close", () => {
71
+ device?._didClose();
80
72
  });
81
- const result = await (0, _timeoutRunner.raceAgainstDeadline)(async () => {
73
+ const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
82
74
  const playwright = await connection.initializePlaywright();
83
75
  if (!playwright._initializer.preConnectedAndroidDevice) {
84
76
  connection.close();
85
- throw new Error('Malformed endpoint. Did you use Android.launchServer method?');
77
+ throw new Error("Malformed endpoint. Did you use Android.launchServer method?");
86
78
  }
87
79
  device = AndroidDevice.from(playwright._initializer.preConnectedAndroidDevice);
88
80
  device._shouldCloseConnectionOnClose = true;
89
- device.on(_events.Events.AndroidDevice.Close, () => connection.close());
81
+ device.on(import_events.Events.AndroidDevice.Close, () => connection.close());
90
82
  return device;
91
83
  }, deadline);
92
84
  if (!result.timedOut) {
@@ -98,44 +90,37 @@ class Android extends _channelOwner.ChannelOwner {
98
90
  });
99
91
  }
100
92
  }
101
- exports.Android = Android;
102
- class AndroidDevice extends _channelOwner.ChannelOwner {
103
- static from(androidDevice) {
104
- return androidDevice._object;
105
- }
93
+ class AndroidDevice extends import_channelOwner.ChannelOwner {
106
94
  constructor(parent, type, guid, initializer) {
107
95
  super(parent, type, guid, initializer);
108
- this._timeoutSettings = void 0;
109
- this._webViews = new Map();
96
+ this._webViews = /* @__PURE__ */ new Map();
110
97
  this._shouldCloseConnectionOnClose = false;
111
- this.input = void 0;
112
98
  this.input = new AndroidInput(this);
113
- this._timeoutSettings = new _timeoutSettings.TimeoutSettings(this._platform, parent._timeoutSettings);
114
- this._channel.on('webViewAdded', ({
115
- webView
116
- }) => this._onWebViewAdded(webView));
117
- this._channel.on('webViewRemoved', ({
118
- socketName
119
- }) => this._onWebViewRemoved(socketName));
120
- this._channel.on('close', () => this._didClose());
99
+ this._timeoutSettings = new import_timeoutSettings.TimeoutSettings(this._platform, parent._timeoutSettings);
100
+ this._channel.on("webViewAdded", ({ webView }) => this._onWebViewAdded(webView));
101
+ this._channel.on("webViewRemoved", ({ socketName }) => this._onWebViewRemoved(socketName));
102
+ this._channel.on("close", () => this._didClose());
103
+ }
104
+ static from(androidDevice) {
105
+ return androidDevice._object;
121
106
  }
122
107
  _onWebViewAdded(webView) {
123
108
  const view = new AndroidWebView(this, webView);
124
109
  this._webViews.set(webView.socketName, view);
125
- this.emit(_events.Events.AndroidDevice.WebView, view);
110
+ this.emit(import_events.Events.AndroidDevice.WebView, view);
126
111
  }
127
112
  _onWebViewRemoved(socketName) {
128
113
  const view = this._webViews.get(socketName);
129
114
  this._webViews.delete(socketName);
130
- if (view) view.emit(_events.Events.AndroidWebView.Close);
115
+ if (view)
116
+ view.emit(import_events.Events.AndroidWebView.Close);
131
117
  }
132
118
  setDefaultTimeout(timeout) {
133
119
  this._timeoutSettings.setDefaultTimeout(timeout);
134
120
  this._wrapApiCall(async () => {
135
- await this._channel.setDefaultTimeoutNoReply({
136
- timeout
137
- });
138
- }, true).catch(() => {});
121
+ await this._channel.setDefaultTimeoutNoReply({ timeout });
122
+ }, true).catch(() => {
123
+ });
139
124
  }
140
125
  serial() {
141
126
  return this._initializer.serial;
@@ -147,101 +132,59 @@ class AndroidDevice extends _channelOwner.ChannelOwner {
147
132
  return [...this._webViews.values()];
148
133
  }
149
134
  async webView(selector, options) {
150
- const predicate = v => {
151
- if (selector.pkg) return v.pkg() === selector.pkg;
152
- if (selector.socketName) return v._socketName() === selector.socketName;
135
+ const predicate = (v) => {
136
+ if (selector.pkg)
137
+ return v.pkg() === selector.pkg;
138
+ if (selector.socketName)
139
+ return v._socketName() === selector.socketName;
153
140
  return false;
154
141
  };
155
142
  const webView = [...this._webViews.values()].find(predicate);
156
- if (webView) return webView;
157
- return await this.waitForEvent('webview', {
158
- ...options,
159
- predicate
160
- });
143
+ if (webView)
144
+ return webView;
145
+ return await this.waitForEvent("webview", { ...options, predicate });
161
146
  }
162
147
  async wait(selector, options) {
163
- await this._channel.wait({
164
- selector: toSelectorChannel(selector),
165
- ...options
166
- });
148
+ await this._channel.wait({ selector: toSelectorChannel(selector), ...options });
167
149
  }
168
150
  async fill(selector, text, options) {
169
- await this._channel.fill({
170
- selector: toSelectorChannel(selector),
171
- text,
172
- ...options
173
- });
151
+ await this._channel.fill({ selector: toSelectorChannel(selector), text, ...options });
174
152
  }
175
153
  async press(selector, key, options) {
176
154
  await this.tap(selector, options);
177
155
  await this.input.press(key);
178
156
  }
179
157
  async tap(selector, options) {
180
- await this._channel.tap({
181
- selector: toSelectorChannel(selector),
182
- ...options
183
- });
158
+ await this._channel.tap({ selector: toSelectorChannel(selector), ...options });
184
159
  }
185
160
  async drag(selector, dest, options) {
186
- await this._channel.drag({
187
- selector: toSelectorChannel(selector),
188
- dest,
189
- ...options
190
- });
161
+ await this._channel.drag({ selector: toSelectorChannel(selector), dest, ...options });
191
162
  }
192
163
  async fling(selector, direction, options) {
193
- await this._channel.fling({
194
- selector: toSelectorChannel(selector),
195
- direction,
196
- ...options
197
- });
164
+ await this._channel.fling({ selector: toSelectorChannel(selector), direction, ...options });
198
165
  }
199
166
  async longTap(selector, options) {
200
- await this._channel.longTap({
201
- selector: toSelectorChannel(selector),
202
- ...options
203
- });
167
+ await this._channel.longTap({ selector: toSelectorChannel(selector), ...options });
204
168
  }
205
169
  async pinchClose(selector, percent, options) {
206
- await this._channel.pinchClose({
207
- selector: toSelectorChannel(selector),
208
- percent,
209
- ...options
210
- });
170
+ await this._channel.pinchClose({ selector: toSelectorChannel(selector), percent, ...options });
211
171
  }
212
172
  async pinchOpen(selector, percent, options) {
213
- await this._channel.pinchOpen({
214
- selector: toSelectorChannel(selector),
215
- percent,
216
- ...options
217
- });
173
+ await this._channel.pinchOpen({ selector: toSelectorChannel(selector), percent, ...options });
218
174
  }
219
175
  async scroll(selector, direction, percent, options) {
220
- await this._channel.scroll({
221
- selector: toSelectorChannel(selector),
222
- direction,
223
- percent,
224
- ...options
225
- });
176
+ await this._channel.scroll({ selector: toSelectorChannel(selector), direction, percent, ...options });
226
177
  }
227
178
  async swipe(selector, direction, percent, options) {
228
- await this._channel.swipe({
229
- selector: toSelectorChannel(selector),
230
- direction,
231
- percent,
232
- ...options
233
- });
179
+ await this._channel.swipe({ selector: toSelectorChannel(selector), direction, percent, ...options });
234
180
  }
235
181
  async info(selector) {
236
- return (await this._channel.info({
237
- selector: toSelectorChannel(selector)
238
- })).info;
182
+ return (await this._channel.info({ selector: toSelectorChannel(selector) })).info;
239
183
  }
240
184
  async screenshot(options = {}) {
241
- const {
242
- binary
243
- } = await this._channel.screenshot();
244
- if (options.path) await this._platform.fs().promises.writeFile(options.path, binary);
185
+ const { binary } = await this._channel.screenshot();
186
+ if (options.path)
187
+ await this._platform.fs().promises.writeFile(options.path, binary);
245
188
  return binary;
246
189
  }
247
190
  async [Symbol.asyncDispose]() {
@@ -249,77 +192,64 @@ class AndroidDevice extends _channelOwner.ChannelOwner {
249
192
  }
250
193
  async close() {
251
194
  try {
252
- if (this._shouldCloseConnectionOnClose) this._connection.close();else await this._channel.close();
195
+ if (this._shouldCloseConnectionOnClose)
196
+ this._connection.close();
197
+ else
198
+ await this._channel.close();
253
199
  } catch (e) {
254
- if ((0, _errors.isTargetClosedError)(e)) return;
200
+ if ((0, import_errors.isTargetClosedError)(e))
201
+ return;
255
202
  throw e;
256
203
  }
257
204
  }
258
205
  _didClose() {
259
- this.emit(_events.Events.AndroidDevice.Close, this);
206
+ this.emit(import_events.Events.AndroidDevice.Close, this);
260
207
  }
261
208
  async shell(command) {
262
- const {
263
- result
264
- } = await this._channel.shell({
265
- command
266
- });
209
+ const { result } = await this._channel.shell({ command });
267
210
  return result;
268
211
  }
269
212
  async open(command) {
270
- return AndroidSocket.from((await this._channel.open({
271
- command
272
- })).socket);
213
+ return AndroidSocket.from((await this._channel.open({ command })).socket);
273
214
  }
274
215
  async installApk(file, options) {
275
- await this._channel.installApk({
276
- file: await loadFile(this._platform, file),
277
- args: options && options.args
278
- });
216
+ await this._channel.installApk({ file: await loadFile(this._platform, file), args: options && options.args });
279
217
  }
280
218
  async push(file, path, options) {
281
- await this._channel.push({
282
- file: await loadFile(this._platform, file),
283
- path,
284
- mode: options ? options.mode : undefined
285
- });
219
+ await this._channel.push({ file: await loadFile(this._platform, file), path, mode: options ? options.mode : void 0 });
286
220
  }
287
221
  async launchBrowser(options = {}) {
288
- const contextOptions = await (0, _browserContext.prepareBrowserContextParams)(this._platform, options);
222
+ const contextOptions = await (0, import_browserContext.prepareBrowserContextParams)(this._platform, options);
289
223
  const result = await this._channel.launchBrowser(contextOptions);
290
- const context = _browserContext.BrowserContext.from(result.context);
224
+ const context = import_browserContext.BrowserContext.from(result.context);
291
225
  context._setOptions(contextOptions, {});
292
226
  return context;
293
227
  }
294
228
  async waitForEvent(event, optionsOrPredicate = {}) {
295
229
  return await this._wrapApiCall(async () => {
296
- const timeout = this._timeoutSettings.timeout(typeof optionsOrPredicate === 'function' ? {} : optionsOrPredicate);
297
- const predicate = typeof optionsOrPredicate === 'function' ? optionsOrPredicate : optionsOrPredicate.predicate;
298
- const waiter = _waiter.Waiter.createForEvent(this, event);
230
+ const timeout = this._timeoutSettings.timeout(typeof optionsOrPredicate === "function" ? {} : optionsOrPredicate);
231
+ const predicate = typeof optionsOrPredicate === "function" ? optionsOrPredicate : optionsOrPredicate.predicate;
232
+ const waiter = import_waiter.Waiter.createForEvent(this, event);
299
233
  waiter.rejectOnTimeout(timeout, `Timeout ${timeout}ms exceeded while waiting for event "${event}"`);
300
- if (event !== _events.Events.AndroidDevice.Close) waiter.rejectOnEvent(this, _events.Events.AndroidDevice.Close, () => new _errors.TargetClosedError());
234
+ if (event !== import_events.Events.AndroidDevice.Close)
235
+ waiter.rejectOnEvent(this, import_events.Events.AndroidDevice.Close, () => new import_errors.TargetClosedError());
301
236
  const result = await waiter.waitForEvent(this, event, predicate);
302
237
  waiter.dispose();
303
238
  return result;
304
239
  });
305
240
  }
306
241
  }
307
- exports.AndroidDevice = AndroidDevice;
308
- class AndroidSocket extends _channelOwner.ChannelOwner {
242
+ class AndroidSocket extends import_channelOwner.ChannelOwner {
309
243
  static from(androidDevice) {
310
244
  return androidDevice._object;
311
245
  }
312
246
  constructor(parent, type, guid, initializer) {
313
247
  super(parent, type, guid, initializer);
314
- this._channel.on('data', ({
315
- data
316
- }) => this.emit(_events.Events.AndroidSocket.Data, data));
317
- this._channel.on('close', () => this.emit(_events.Events.AndroidSocket.Close));
248
+ this._channel.on("data", ({ data }) => this.emit(import_events.Events.AndroidSocket.Data, data));
249
+ this._channel.on("close", () => this.emit(import_events.Events.AndroidSocket.Close));
318
250
  }
319
251
  async write(data) {
320
- await this._channel.write({
321
- data
322
- });
252
+ await this._channel.write({ data });
323
253
  }
324
254
  async close() {
325
255
  await this._channel.close();
@@ -328,46 +258,31 @@ class AndroidSocket extends _channelOwner.ChannelOwner {
328
258
  await this.close();
329
259
  }
330
260
  }
331
- exports.AndroidSocket = AndroidSocket;
332
261
  async function loadFile(platform, file) {
333
- if ((0, _rtti.isString)(file)) return await platform.fs().promises.readFile(file);
262
+ if ((0, import_rtti.isString)(file))
263
+ return await platform.fs().promises.readFile(file);
334
264
  return file;
335
265
  }
336
266
  class AndroidInput {
337
267
  constructor(device) {
338
- this._device = void 0;
339
268
  this._device = device;
340
269
  }
341
270
  async type(text) {
342
- await this._device._channel.inputType({
343
- text
344
- });
271
+ await this._device._channel.inputType({ text });
345
272
  }
346
273
  async press(key) {
347
- await this._device._channel.inputPress({
348
- key
349
- });
274
+ await this._device._channel.inputPress({ key });
350
275
  }
351
276
  async tap(point) {
352
- await this._device._channel.inputTap({
353
- point
354
- });
277
+ await this._device._channel.inputTap({ point });
355
278
  }
356
279
  async swipe(from, segments, steps) {
357
- await this._device._channel.inputSwipe({
358
- segments,
359
- steps
360
- });
280
+ await this._device._channel.inputSwipe({ segments, steps });
361
281
  }
362
282
  async drag(from, to, steps) {
363
- await this._device._channel.inputDrag({
364
- from,
365
- to,
366
- steps
367
- });
283
+ await this._device._channel.inputDrag({ from, to, steps });
368
284
  }
369
285
  }
370
- exports.AndroidInput = AndroidInput;
371
286
  function toSelectorChannel(selector) {
372
287
  const {
373
288
  checkable,
@@ -388,10 +303,12 @@ function toSelectorChannel(selector) {
388
303
  selected,
389
304
  text
390
305
  } = selector;
391
- const toRegex = value => {
392
- if (value === undefined) return undefined;
393
- if ((0, _rtti.isRegExp)(value)) return value.source;
394
- return '^' + value.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d') + '$';
306
+ const toRegex = (value) => {
307
+ if (value === void 0)
308
+ return void 0;
309
+ if ((0, import_rtti.isRegExp)(value))
310
+ return value.source;
311
+ return "^" + value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d") + "$";
395
312
  };
396
313
  return {
397
314
  checkable,
@@ -406,24 +323,16 @@ function toSelectorChannel(selector) {
406
323
  enabled,
407
324
  focusable,
408
325
  focused,
409
- hasChild: hasChild ? {
410
- selector: toSelectorChannel(hasChild.selector)
411
- } : undefined,
412
- hasDescendant: hasDescendant ? {
413
- selector: toSelectorChannel(hasDescendant.selector),
414
- maxDepth: hasDescendant.maxDepth
415
- } : undefined,
326
+ hasChild: hasChild ? { selector: toSelectorChannel(hasChild.selector) } : void 0,
327
+ hasDescendant: hasDescendant ? { selector: toSelectorChannel(hasDescendant.selector), maxDepth: hasDescendant.maxDepth } : void 0,
416
328
  longClickable,
417
329
  scrollable,
418
330
  selected
419
331
  };
420
332
  }
421
- class AndroidWebView extends _eventEmitter.EventEmitter {
333
+ class AndroidWebView extends import_eventEmitter.EventEmitter {
422
334
  constructor(device, data) {
423
335
  super(device._platform);
424
- this._device = void 0;
425
- this._data = void 0;
426
- this._pagePromise = void 0;
427
336
  this._device = device;
428
337
  this._data = data;
429
338
  }
@@ -437,16 +346,20 @@ class AndroidWebView extends _eventEmitter.EventEmitter {
437
346
  return this._data.socketName;
438
347
  }
439
348
  async page() {
440
- if (!this._pagePromise) this._pagePromise = this._fetchPage();
349
+ if (!this._pagePromise)
350
+ this._pagePromise = this._fetchPage();
441
351
  return await this._pagePromise;
442
352
  }
443
353
  async _fetchPage() {
444
- const {
445
- context
446
- } = await this._device._channel.connectToWebView({
447
- socketName: this._data.socketName
448
- });
449
- return _browserContext.BrowserContext.from(context).pages()[0];
354
+ const { context } = await this._device._channel.connectToWebView({ socketName: this._data.socketName });
355
+ return import_browserContext.BrowserContext.from(context).pages()[0];
450
356
  }
451
357
  }
452
- exports.AndroidWebView = AndroidWebView;
358
+ // Annotate the CommonJS export names for ESM import in node:
359
+ 0 && (module.exports = {
360
+ Android,
361
+ AndroidDevice,
362
+ AndroidInput,
363
+ AndroidSocket,
364
+ AndroidWebView
365
+ });