@limrun/playwright-core 1.56.1-lim.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 (338) hide show
  1. package/README.md +3 -0
  2. package/ThirdPartyNotices.txt +1502 -0
  3. package/bin/install_media_pack.ps1 +5 -0
  4. package/bin/install_webkit_wsl.ps1 +35 -0
  5. package/bin/reinstall_chrome_beta_linux.sh +42 -0
  6. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  7. package/bin/reinstall_chrome_beta_win.ps1 +24 -0
  8. package/bin/reinstall_chrome_stable_linux.sh +42 -0
  9. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  10. package/bin/reinstall_chrome_stable_win.ps1 +24 -0
  11. package/bin/reinstall_msedge_beta_linux.sh +48 -0
  12. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  13. package/bin/reinstall_msedge_beta_win.ps1 +23 -0
  14. package/bin/reinstall_msedge_dev_linux.sh +48 -0
  15. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  16. package/bin/reinstall_msedge_dev_win.ps1 +23 -0
  17. package/bin/reinstall_msedge_stable_linux.sh +48 -0
  18. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  19. package/bin/reinstall_msedge_stable_win.ps1 +24 -0
  20. package/browsers.json +80 -0
  21. package/cli.js +18 -0
  22. package/index.d.ts +17 -0
  23. package/index.js +32 -0
  24. package/index.mjs +28 -0
  25. package/lib/androidServerImpl.js +65 -0
  26. package/lib/browserServerImpl.js +120 -0
  27. package/lib/cli/driver.js +97 -0
  28. package/lib/cli/program.js +633 -0
  29. package/lib/cli/programWithTestStub.js +74 -0
  30. package/lib/client/accessibility.js +49 -0
  31. package/lib/client/android.js +361 -0
  32. package/lib/client/api.js +137 -0
  33. package/lib/client/artifact.js +79 -0
  34. package/lib/client/browser.js +163 -0
  35. package/lib/client/browserContext.js +529 -0
  36. package/lib/client/browserType.js +184 -0
  37. package/lib/client/cdpSession.js +51 -0
  38. package/lib/client/channelOwner.js +194 -0
  39. package/lib/client/clientHelper.js +64 -0
  40. package/lib/client/clientInstrumentation.js +55 -0
  41. package/lib/client/clientStackTrace.js +69 -0
  42. package/lib/client/clock.js +68 -0
  43. package/lib/client/connection.js +314 -0
  44. package/lib/client/consoleMessage.js +54 -0
  45. package/lib/client/coverage.js +44 -0
  46. package/lib/client/dialog.js +56 -0
  47. package/lib/client/download.js +62 -0
  48. package/lib/client/electron.js +138 -0
  49. package/lib/client/elementHandle.js +281 -0
  50. package/lib/client/errors.js +77 -0
  51. package/lib/client/eventEmitter.js +314 -0
  52. package/lib/client/events.js +99 -0
  53. package/lib/client/fetch.js +369 -0
  54. package/lib/client/fileChooser.js +46 -0
  55. package/lib/client/fileUtils.js +34 -0
  56. package/lib/client/frame.js +408 -0
  57. package/lib/client/harRouter.js +87 -0
  58. package/lib/client/input.js +84 -0
  59. package/lib/client/jsHandle.js +109 -0
  60. package/lib/client/jsonPipe.js +39 -0
  61. package/lib/client/localUtils.js +60 -0
  62. package/lib/client/locator.js +366 -0
  63. package/lib/client/network.js +747 -0
  64. package/lib/client/page.js +721 -0
  65. package/lib/client/platform.js +74 -0
  66. package/lib/client/playwright.js +75 -0
  67. package/lib/client/selectors.js +55 -0
  68. package/lib/client/stream.js +39 -0
  69. package/lib/client/timeoutSettings.js +79 -0
  70. package/lib/client/tracing.js +117 -0
  71. package/lib/client/types.js +28 -0
  72. package/lib/client/video.js +59 -0
  73. package/lib/client/waiter.js +142 -0
  74. package/lib/client/webError.js +39 -0
  75. package/lib/client/webSocket.js +93 -0
  76. package/lib/client/worker.js +63 -0
  77. package/lib/client/writableStream.js +39 -0
  78. package/lib/generated/bindingsControllerSource.js +28 -0
  79. package/lib/generated/clockSource.js +28 -0
  80. package/lib/generated/injectedScriptSource.js +28 -0
  81. package/lib/generated/pollingRecorderSource.js +28 -0
  82. package/lib/generated/storageScriptSource.js +28 -0
  83. package/lib/generated/utilityScriptSource.js +28 -0
  84. package/lib/generated/webSocketMockSource.js +336 -0
  85. package/lib/inProcessFactory.js +62 -0
  86. package/lib/inprocess.js +3 -0
  87. package/lib/outofprocess.js +76 -0
  88. package/lib/protocol/serializers.js +192 -0
  89. package/lib/protocol/validator.js +2912 -0
  90. package/lib/protocol/validatorPrimitives.js +193 -0
  91. package/lib/remote/playwrightConnection.js +129 -0
  92. package/lib/remote/playwrightServer.js +335 -0
  93. package/lib/server/accessibility.js +69 -0
  94. package/lib/server/android/android.js +465 -0
  95. package/lib/server/android/backendAdb.js +177 -0
  96. package/lib/server/artifact.js +127 -0
  97. package/lib/server/bidi/bidiBrowser.js +490 -0
  98. package/lib/server/bidi/bidiChromium.js +153 -0
  99. package/lib/server/bidi/bidiConnection.js +212 -0
  100. package/lib/server/bidi/bidiExecutionContext.js +221 -0
  101. package/lib/server/bidi/bidiFirefox.js +130 -0
  102. package/lib/server/bidi/bidiInput.js +146 -0
  103. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  104. package/lib/server/bidi/bidiOverCdp.js +102 -0
  105. package/lib/server/bidi/bidiPage.js +552 -0
  106. package/lib/server/bidi/bidiPdf.js +106 -0
  107. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  108. package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
  109. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  110. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  111. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  112. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  113. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  114. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  115. package/lib/server/browser.js +149 -0
  116. package/lib/server/browserContext.js +696 -0
  117. package/lib/server/browserType.js +328 -0
  118. package/lib/server/callLog.js +82 -0
  119. package/lib/server/chromium/appIcon.png +0 -0
  120. package/lib/server/chromium/chromium.js +391 -0
  121. package/lib/server/chromium/chromiumSwitches.js +95 -0
  122. package/lib/server/chromium/crAccessibility.js +263 -0
  123. package/lib/server/chromium/crBrowser.js +502 -0
  124. package/lib/server/chromium/crConnection.js +202 -0
  125. package/lib/server/chromium/crCoverage.js +235 -0
  126. package/lib/server/chromium/crDevTools.js +113 -0
  127. package/lib/server/chromium/crDragDrop.js +131 -0
  128. package/lib/server/chromium/crExecutionContext.js +146 -0
  129. package/lib/server/chromium/crInput.js +187 -0
  130. package/lib/server/chromium/crNetworkManager.js +666 -0
  131. package/lib/server/chromium/crPage.js +1069 -0
  132. package/lib/server/chromium/crPdf.js +121 -0
  133. package/lib/server/chromium/crProtocolHelper.js +145 -0
  134. package/lib/server/chromium/crServiceWorker.js +123 -0
  135. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  136. package/lib/server/chromium/protocol.d.js +16 -0
  137. package/lib/server/chromium/videoRecorder.js +113 -0
  138. package/lib/server/clock.js +149 -0
  139. package/lib/server/codegen/csharp.js +327 -0
  140. package/lib/server/codegen/java.js +274 -0
  141. package/lib/server/codegen/javascript.js +270 -0
  142. package/lib/server/codegen/jsonl.js +52 -0
  143. package/lib/server/codegen/language.js +132 -0
  144. package/lib/server/codegen/languages.js +68 -0
  145. package/lib/server/codegen/python.js +279 -0
  146. package/lib/server/codegen/types.js +16 -0
  147. package/lib/server/console.js +53 -0
  148. package/lib/server/cookieStore.js +206 -0
  149. package/lib/server/debugController.js +191 -0
  150. package/lib/server/debugger.js +119 -0
  151. package/lib/server/deviceDescriptors.js +39 -0
  152. package/lib/server/deviceDescriptorsSource.json +1779 -0
  153. package/lib/server/dialog.js +116 -0
  154. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  155. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  156. package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
  157. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  158. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  159. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  160. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  161. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  162. package/lib/server/dispatchers/dispatcher.js +371 -0
  163. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  164. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  165. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  166. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  167. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  168. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  169. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  170. package/lib/server/dispatchers/pageDispatcher.js +401 -0
  171. package/lib/server/dispatchers/playwrightDispatcher.js +112 -0
  172. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  173. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  174. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  175. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  176. package/lib/server/dom.js +806 -0
  177. package/lib/server/download.js +70 -0
  178. package/lib/server/electron/electron.js +270 -0
  179. package/lib/server/electron/loader.js +29 -0
  180. package/lib/server/errors.js +69 -0
  181. package/lib/server/fetch.js +621 -0
  182. package/lib/server/fileChooser.js +43 -0
  183. package/lib/server/fileUploadUtils.js +84 -0
  184. package/lib/server/firefox/ffAccessibility.js +238 -0
  185. package/lib/server/firefox/ffBrowser.js +428 -0
  186. package/lib/server/firefox/ffConnection.js +147 -0
  187. package/lib/server/firefox/ffExecutionContext.js +150 -0
  188. package/lib/server/firefox/ffInput.js +159 -0
  189. package/lib/server/firefox/ffNetworkManager.js +256 -0
  190. package/lib/server/firefox/ffPage.js +503 -0
  191. package/lib/server/firefox/firefox.js +105 -0
  192. package/lib/server/firefox/protocol.d.js +16 -0
  193. package/lib/server/formData.js +147 -0
  194. package/lib/server/frameSelectors.js +156 -0
  195. package/lib/server/frames.js +1448 -0
  196. package/lib/server/har/harRecorder.js +147 -0
  197. package/lib/server/har/harTracer.js +607 -0
  198. package/lib/server/harBackend.js +157 -0
  199. package/lib/server/helper.js +96 -0
  200. package/lib/server/index.js +58 -0
  201. package/lib/server/input.js +273 -0
  202. package/lib/server/instrumentation.js +69 -0
  203. package/lib/server/javascript.js +291 -0
  204. package/lib/server/launchApp.js +128 -0
  205. package/lib/server/localUtils.js +218 -0
  206. package/lib/server/macEditingCommands.js +143 -0
  207. package/lib/server/network.js +629 -0
  208. package/lib/server/page.js +870 -0
  209. package/lib/server/pipeTransport.js +89 -0
  210. package/lib/server/playwright.js +71 -0
  211. package/lib/server/progress.js +112 -0
  212. package/lib/server/protocolError.js +52 -0
  213. package/lib/server/recorder/chat.js +161 -0
  214. package/lib/server/recorder/recorderApp.js +387 -0
  215. package/lib/server/recorder/recorderRunner.js +138 -0
  216. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  217. package/lib/server/recorder/recorderUtils.js +157 -0
  218. package/lib/server/recorder/throttledFile.js +57 -0
  219. package/lib/server/recorder.js +498 -0
  220. package/lib/server/registry/browserFetcher.js +175 -0
  221. package/lib/server/registry/dependencies.js +371 -0
  222. package/lib/server/registry/index.js +1333 -0
  223. package/lib/server/registry/nativeDeps.js +1280 -0
  224. package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
  225. package/lib/server/screenshotter.js +333 -0
  226. package/lib/server/selectors.js +112 -0
  227. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  228. package/lib/server/socksInterceptor.js +95 -0
  229. package/lib/server/trace/recorder/snapshotter.js +147 -0
  230. package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
  231. package/lib/server/trace/recorder/tracing.js +602 -0
  232. package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
  233. package/lib/server/trace/viewer/traceViewer.js +240 -0
  234. package/lib/server/transport.js +181 -0
  235. package/lib/server/types.js +28 -0
  236. package/lib/server/usKeyboardLayout.js +145 -0
  237. package/lib/server/utils/ascii.js +44 -0
  238. package/lib/server/utils/comparators.js +161 -0
  239. package/lib/server/utils/crypto.js +216 -0
  240. package/lib/server/utils/debug.js +42 -0
  241. package/lib/server/utils/debugLogger.js +122 -0
  242. package/lib/server/utils/env.js +73 -0
  243. package/lib/server/utils/eventsHelper.js +39 -0
  244. package/lib/server/utils/expectUtils.js +38 -0
  245. package/lib/server/utils/fileUtils.js +191 -0
  246. package/lib/server/utils/happyEyeballs.js +207 -0
  247. package/lib/server/utils/hostPlatform.js +111 -0
  248. package/lib/server/utils/httpServer.js +218 -0
  249. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  250. package/lib/server/utils/image_tools/compare.js +109 -0
  251. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  252. package/lib/server/utils/image_tools/stats.js +102 -0
  253. package/lib/server/utils/linuxUtils.js +71 -0
  254. package/lib/server/utils/network.js +227 -0
  255. package/lib/server/utils/nodePlatform.js +148 -0
  256. package/lib/server/utils/pipeTransport.js +84 -0
  257. package/lib/server/utils/processLauncher.js +241 -0
  258. package/lib/server/utils/profiler.js +65 -0
  259. package/lib/server/utils/socksProxy.js +511 -0
  260. package/lib/server/utils/spawnAsync.js +41 -0
  261. package/lib/server/utils/task.js +51 -0
  262. package/lib/server/utils/userAgent.js +98 -0
  263. package/lib/server/utils/wsServer.js +121 -0
  264. package/lib/server/utils/zipFile.js +74 -0
  265. package/lib/server/utils/zones.js +57 -0
  266. package/lib/server/webkit/protocol.d.js +16 -0
  267. package/lib/server/webkit/webkit.js +119 -0
  268. package/lib/server/webkit/wkAccessibility.js +237 -0
  269. package/lib/server/webkit/wkBrowser.js +339 -0
  270. package/lib/server/webkit/wkConnection.js +149 -0
  271. package/lib/server/webkit/wkExecutionContext.js +154 -0
  272. package/lib/server/webkit/wkInput.js +181 -0
  273. package/lib/server/webkit/wkInterceptableRequest.js +169 -0
  274. package/lib/server/webkit/wkPage.js +1134 -0
  275. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  276. package/lib/server/webkit/wkWorkers.js +104 -0
  277. package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
  278. package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
  279. package/lib/third_party/pixelmatch.js +255 -0
  280. package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
  281. package/lib/utils/isomorphic/assert.js +31 -0
  282. package/lib/utils/isomorphic/colors.js +72 -0
  283. package/lib/utils/isomorphic/cssParser.js +245 -0
  284. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  285. package/lib/utils/isomorphic/headers.js +53 -0
  286. package/lib/utils/isomorphic/locatorGenerators.js +673 -0
  287. package/lib/utils/isomorphic/locatorParser.js +176 -0
  288. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  289. package/lib/utils/isomorphic/manualPromise.js +114 -0
  290. package/lib/utils/isomorphic/mimeType.js +459 -0
  291. package/lib/utils/isomorphic/multimap.js +80 -0
  292. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  293. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  294. package/lib/utils/isomorphic/rtti.js +43 -0
  295. package/lib/utils/isomorphic/selectorParser.js +386 -0
  296. package/lib/utils/isomorphic/semaphore.js +54 -0
  297. package/lib/utils/isomorphic/stackTrace.js +158 -0
  298. package/lib/utils/isomorphic/stringUtils.js +155 -0
  299. package/lib/utils/isomorphic/time.js +49 -0
  300. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  301. package/lib/utils/isomorphic/traceUtils.js +58 -0
  302. package/lib/utils/isomorphic/types.js +16 -0
  303. package/lib/utils/isomorphic/urlMatch.js +176 -0
  304. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  305. package/lib/utils.js +107 -0
  306. package/lib/utilsBundle.js +109 -0
  307. package/lib/utilsBundleImpl/index.js +218 -0
  308. package/lib/utilsBundleImpl/xdg-open +1066 -0
  309. package/lib/vite/htmlReport/index.html +84 -0
  310. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
  311. package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
  312. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  313. package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
  314. package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
  315. package/lib/vite/recorder/index.html +29 -0
  316. package/lib/vite/recorder/playwright-logo.svg +9 -0
  317. package/lib/vite/traceViewer/assets/codeMirrorModule-eyVcHN77.js +24 -0
  318. package/lib/vite/traceViewer/assets/defaultSettingsView-w0zYjHsW.js +265 -0
  319. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  320. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
  321. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  322. package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
  323. package/lib/vite/traceViewer/index.Bx16ehp1.js +2 -0
  324. package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
  325. package/lib/vite/traceViewer/index.html +43 -0
  326. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  327. package/lib/vite/traceViewer/snapshot.html +21 -0
  328. package/lib/vite/traceViewer/sw.bundle.js +3 -0
  329. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  330. package/lib/vite/traceViewer/uiMode.DRQ310U5.js +5 -0
  331. package/lib/vite/traceViewer/uiMode.html +17 -0
  332. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  333. package/lib/zipBundle.js +34 -0
  334. package/lib/zipBundleImpl.js +5 -0
  335. package/package.json +42 -0
  336. package/types/protocol.d.ts +23130 -0
  337. package/types/structs.d.ts +45 -0
  338. package/types/types.d.ts +22853 -0
@@ -0,0 +1,149 @@
1
+ "use strict";
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 wkConnection_exports = {};
20
+ __export(wkConnection_exports, {
21
+ WKConnection: () => WKConnection,
22
+ WKSession: () => WKSession,
23
+ kBrowserCloseMessageId: () => kBrowserCloseMessageId,
24
+ kPageProxyMessageReceived: () => kPageProxyMessageReceived
25
+ });
26
+ module.exports = __toCommonJS(wkConnection_exports);
27
+ var import_events = require("events");
28
+ var import_utils = require("../../utils");
29
+ var import_debugLogger = require("../utils/debugLogger");
30
+ var import_helper = require("../helper");
31
+ var import_protocolError = require("../protocolError");
32
+ const kBrowserCloseMessageId = -9999;
33
+ const kPageProxyMessageReceived = Symbol("kPageProxyMessageReceived");
34
+ class WKConnection {
35
+ constructor(transport, onDisconnect, protocolLogger, browserLogsCollector) {
36
+ this._lastId = 0;
37
+ this._closed = false;
38
+ this._transport = transport;
39
+ this._onDisconnect = onDisconnect;
40
+ this._protocolLogger = protocolLogger;
41
+ this._browserLogsCollector = browserLogsCollector;
42
+ this.browserSession = new WKSession(this, "", (message) => {
43
+ this.rawSend(message);
44
+ });
45
+ this._transport.onmessage = this._dispatchMessage.bind(this);
46
+ this._transport.onclose = this._onClose.bind(this);
47
+ }
48
+ nextMessageId() {
49
+ return ++this._lastId;
50
+ }
51
+ rawSend(message) {
52
+ this._protocolLogger("send", message);
53
+ this._transport.send(message);
54
+ }
55
+ _dispatchMessage(message) {
56
+ this._protocolLogger("receive", message);
57
+ if (message.id === kBrowserCloseMessageId)
58
+ return;
59
+ if (message.pageProxyId) {
60
+ const payload = { message, pageProxyId: message.pageProxyId };
61
+ this.browserSession.dispatchMessage({ method: kPageProxyMessageReceived, params: payload });
62
+ return;
63
+ }
64
+ this.browserSession.dispatchMessage(message);
65
+ }
66
+ _onClose(reason) {
67
+ this._closed = true;
68
+ this._transport.onmessage = void 0;
69
+ this._transport.onclose = void 0;
70
+ this._browserDisconnectedLogs = import_helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
71
+ this.browserSession.dispose();
72
+ this._onDisconnect();
73
+ }
74
+ isClosed() {
75
+ return this._closed;
76
+ }
77
+ close() {
78
+ if (!this._closed)
79
+ this._transport.close();
80
+ }
81
+ }
82
+ class WKSession extends import_events.EventEmitter {
83
+ constructor(connection, sessionId, rawSend) {
84
+ super();
85
+ this._disposed = false;
86
+ this._callbacks = /* @__PURE__ */ new Map();
87
+ this._crashed = false;
88
+ this.setMaxListeners(0);
89
+ this.connection = connection;
90
+ this.sessionId = sessionId;
91
+ this._rawSend = rawSend;
92
+ this.on = super.on;
93
+ this.off = super.removeListener;
94
+ this.addListener = super.addListener;
95
+ this.removeListener = super.removeListener;
96
+ this.once = super.once;
97
+ }
98
+ async send(method, params) {
99
+ if (this._crashed || this._disposed || this.connection._browserDisconnectedLogs)
100
+ throw new import_protocolError.ProtocolError(this._crashed ? "crashed" : "closed", void 0, this.connection._browserDisconnectedLogs);
101
+ const id = this.connection.nextMessageId();
102
+ const messageObj = { id, method, params };
103
+ this._rawSend(messageObj);
104
+ return new Promise((resolve, reject) => {
105
+ this._callbacks.set(id, { resolve, reject, error: new import_protocolError.ProtocolError("error", method) });
106
+ });
107
+ }
108
+ sendMayFail(method, params) {
109
+ return this.send(method, params).catch((error) => import_debugLogger.debugLogger.log("error", error));
110
+ }
111
+ markAsCrashed() {
112
+ this._crashed = true;
113
+ }
114
+ isDisposed() {
115
+ return this._disposed;
116
+ }
117
+ dispose() {
118
+ for (const callback of this._callbacks.values()) {
119
+ callback.error.type = this._crashed ? "crashed" : "closed";
120
+ callback.error.logs = this.connection._browserDisconnectedLogs;
121
+ callback.reject(callback.error);
122
+ }
123
+ this._callbacks.clear();
124
+ this._disposed = true;
125
+ }
126
+ dispatchMessage(object) {
127
+ if (object.id && this._callbacks.has(object.id)) {
128
+ const callback = this._callbacks.get(object.id);
129
+ this._callbacks.delete(object.id);
130
+ if (object.error) {
131
+ callback.error.setMessage(object.error.message);
132
+ callback.reject(callback.error);
133
+ } else {
134
+ callback.resolve(object.result);
135
+ }
136
+ } else if (object.id && !object.error) {
137
+ (0, import_utils.assert)(this.isDisposed());
138
+ } else {
139
+ Promise.resolve().then(() => this.emit(object.method, object.params));
140
+ }
141
+ }
142
+ }
143
+ // Annotate the CommonJS export names for ESM import in node:
144
+ 0 && (module.exports = {
145
+ WKConnection,
146
+ WKSession,
147
+ kBrowserCloseMessageId,
148
+ kPageProxyMessageReceived
149
+ });
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var wkExecutionContext_exports = {};
30
+ __export(wkExecutionContext_exports, {
31
+ WKExecutionContext: () => WKExecutionContext,
32
+ createHandle: () => createHandle
33
+ });
34
+ module.exports = __toCommonJS(wkExecutionContext_exports);
35
+ var js = __toESM(require("../javascript"));
36
+ var dom = __toESM(require("../dom"));
37
+ var import_protocolError = require("../protocolError");
38
+ var import_assert = require("../../utils/isomorphic/assert");
39
+ var import_utilityScriptSerializers = require("../../utils/isomorphic/utilityScriptSerializers");
40
+ class WKExecutionContext {
41
+ constructor(session, contextId) {
42
+ this._session = session;
43
+ this._contextId = contextId;
44
+ }
45
+ async rawEvaluateJSON(expression) {
46
+ try {
47
+ const response = await this._session.send("Runtime.evaluate", {
48
+ expression,
49
+ contextId: this._contextId,
50
+ returnByValue: true
51
+ });
52
+ if (response.wasThrown)
53
+ throw new js.JavaScriptErrorInEvaluate(response.result.description);
54
+ return response.result.value;
55
+ } catch (error) {
56
+ throw rewriteError(error);
57
+ }
58
+ }
59
+ async rawEvaluateHandle(context, expression) {
60
+ try {
61
+ const response = await this._session.send("Runtime.evaluate", {
62
+ expression,
63
+ contextId: this._contextId,
64
+ returnByValue: false
65
+ });
66
+ if (response.wasThrown)
67
+ throw new js.JavaScriptErrorInEvaluate(response.result.description);
68
+ return createHandle(context, response.result);
69
+ } catch (error) {
70
+ throw rewriteError(error);
71
+ }
72
+ }
73
+ async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
74
+ try {
75
+ const response = await this._session.send("Runtime.callFunctionOn", {
76
+ functionDeclaration: expression,
77
+ objectId: utilityScript._objectId,
78
+ arguments: [
79
+ { objectId: utilityScript._objectId },
80
+ ...values.map((value) => ({ value })),
81
+ ...handles.map((handle) => ({ objectId: handle._objectId }))
82
+ ],
83
+ returnByValue,
84
+ emulateUserGesture: true,
85
+ awaitPromise: true
86
+ });
87
+ if (response.wasThrown)
88
+ throw new js.JavaScriptErrorInEvaluate(response.result.description);
89
+ if (returnByValue)
90
+ return (0, import_utilityScriptSerializers.parseEvaluationResultValue)(response.result.value);
91
+ return createHandle(utilityScript._context, response.result);
92
+ } catch (error) {
93
+ throw rewriteError(error);
94
+ }
95
+ }
96
+ async getProperties(object) {
97
+ const response = await this._session.send("Runtime.getProperties", {
98
+ objectId: object._objectId,
99
+ ownProperties: true
100
+ });
101
+ const result = /* @__PURE__ */ new Map();
102
+ for (const property of response.properties) {
103
+ if (!property.enumerable || !property.value)
104
+ continue;
105
+ result.set(property.name, createHandle(object._context, property.value));
106
+ }
107
+ return result;
108
+ }
109
+ async releaseHandle(handle) {
110
+ if (!handle._objectId)
111
+ return;
112
+ await this._session.send("Runtime.releaseObject", { objectId: handle._objectId });
113
+ }
114
+ }
115
+ function potentiallyUnserializableValue(remoteObject) {
116
+ const value = remoteObject.value;
117
+ const isUnserializable = remoteObject.type === "number" && ["NaN", "-Infinity", "Infinity", "-0"].includes(remoteObject.description);
118
+ return isUnserializable ? js.parseUnserializableValue(remoteObject.description) : value;
119
+ }
120
+ function rewriteError(error) {
121
+ if (error.message.includes("Object has too long reference chain"))
122
+ throw new Error("Cannot serialize result: object reference chain is too long.");
123
+ if (!js.isJavaScriptErrorInEvaluate(error) && !(0, import_protocolError.isSessionClosedError)(error))
124
+ return new Error("Execution context was destroyed, most likely because of a navigation.");
125
+ return error;
126
+ }
127
+ function renderPreview(object) {
128
+ if (object.type === "undefined")
129
+ return "undefined";
130
+ if ("value" in object)
131
+ return String(object.value);
132
+ if (object.description === "Object" && object.preview) {
133
+ const tokens = [];
134
+ for (const { name, value } of object.preview.properties)
135
+ tokens.push(`${name}: ${value}`);
136
+ return `{${tokens.join(", ")}}`;
137
+ }
138
+ if (object.subtype === "array" && object.preview)
139
+ return js.sparseArrayToString(object.preview.properties);
140
+ return object.description;
141
+ }
142
+ function createHandle(context, remoteObject) {
143
+ if (remoteObject.subtype === "node") {
144
+ (0, import_assert.assert)(context instanceof dom.FrameExecutionContext);
145
+ return new dom.ElementHandle(context, remoteObject.objectId);
146
+ }
147
+ const isPromise = remoteObject.className === "Promise";
148
+ return new js.JSHandle(context, isPromise ? "promise" : remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
149
+ }
150
+ // Annotate the CommonJS export names for ESM import in node:
151
+ 0 && (module.exports = {
152
+ WKExecutionContext,
153
+ createHandle
154
+ });
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var wkInput_exports = {};
30
+ __export(wkInput_exports, {
31
+ RawKeyboardImpl: () => RawKeyboardImpl,
32
+ RawMouseImpl: () => RawMouseImpl,
33
+ RawTouchscreenImpl: () => RawTouchscreenImpl
34
+ });
35
+ module.exports = __toCommonJS(wkInput_exports);
36
+ var import_utils = require("../../utils");
37
+ var input = __toESM(require("../input"));
38
+ var import_macEditingCommands = require("../macEditingCommands");
39
+ function toModifiersMask(modifiers) {
40
+ let mask = 0;
41
+ if (modifiers.has("Shift"))
42
+ mask |= 1;
43
+ if (modifiers.has("Control"))
44
+ mask |= 2;
45
+ if (modifiers.has("Alt"))
46
+ mask |= 4;
47
+ if (modifiers.has("Meta"))
48
+ mask |= 8;
49
+ return mask;
50
+ }
51
+ function toButtonsMask(buttons) {
52
+ let mask = 0;
53
+ if (buttons.has("left"))
54
+ mask |= 1;
55
+ if (buttons.has("right"))
56
+ mask |= 2;
57
+ if (buttons.has("middle"))
58
+ mask |= 4;
59
+ return mask;
60
+ }
61
+ class RawKeyboardImpl {
62
+ constructor(session) {
63
+ this._pageProxySession = session;
64
+ }
65
+ setSession(session) {
66
+ this._session = session;
67
+ }
68
+ async keydown(progress, modifiers, keyName, description, autoRepeat) {
69
+ const parts = [];
70
+ for (const modifier of ["Shift", "Control", "Alt", "Meta"]) {
71
+ if (modifiers.has(modifier))
72
+ parts.push(modifier);
73
+ }
74
+ const { code, keyCode, key, text } = description;
75
+ parts.push(code);
76
+ const shortcut = parts.join("+");
77
+ let commands = import_macEditingCommands.macEditingCommands[shortcut];
78
+ if ((0, import_utils.isString)(commands))
79
+ commands = [commands];
80
+ await progress.race(this._pageProxySession.send("Input.dispatchKeyEvent", {
81
+ type: "keyDown",
82
+ modifiers: toModifiersMask(modifiers),
83
+ windowsVirtualKeyCode: keyCode,
84
+ code,
85
+ key,
86
+ text,
87
+ unmodifiedText: text,
88
+ autoRepeat,
89
+ macCommands: commands,
90
+ isKeypad: description.location === input.keypadLocation
91
+ }));
92
+ }
93
+ async keyup(progress, modifiers, keyName, description) {
94
+ const { code, key } = description;
95
+ await progress.race(this._pageProxySession.send("Input.dispatchKeyEvent", {
96
+ type: "keyUp",
97
+ modifiers: toModifiersMask(modifiers),
98
+ key,
99
+ windowsVirtualKeyCode: description.keyCode,
100
+ code,
101
+ isKeypad: description.location === input.keypadLocation
102
+ }));
103
+ }
104
+ async sendText(progress, text) {
105
+ await progress.race(this._session.send("Page.insertText", { text }));
106
+ }
107
+ }
108
+ class RawMouseImpl {
109
+ constructor(session) {
110
+ this._pageProxySession = session;
111
+ }
112
+ setSession(session) {
113
+ this._session = session;
114
+ }
115
+ async move(progress, x, y, button, buttons, modifiers, forClick) {
116
+ await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
117
+ type: "move",
118
+ button,
119
+ buttons: toButtonsMask(buttons),
120
+ x,
121
+ y,
122
+ modifiers: toModifiersMask(modifiers)
123
+ }));
124
+ }
125
+ async down(progress, x, y, button, buttons, modifiers, clickCount) {
126
+ await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
127
+ type: "down",
128
+ button,
129
+ buttons: toButtonsMask(buttons),
130
+ x,
131
+ y,
132
+ modifiers: toModifiersMask(modifiers),
133
+ clickCount
134
+ }));
135
+ }
136
+ async up(progress, x, y, button, buttons, modifiers, clickCount) {
137
+ await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
138
+ type: "up",
139
+ button,
140
+ buttons: toButtonsMask(buttons),
141
+ x,
142
+ y,
143
+ modifiers: toModifiersMask(modifiers),
144
+ clickCount
145
+ }));
146
+ }
147
+ async wheel(progress, x, y, buttons, modifiers, deltaX, deltaY) {
148
+ if (this._page?.browserContext._options.isMobile)
149
+ throw new Error("Mouse wheel is not supported in mobile WebKit");
150
+ await this._session.send("Page.updateScrollingState");
151
+ await progress.race(this._page.mainFrame().evaluateExpression(`new Promise(requestAnimationFrame)`, { world: "utility" }));
152
+ await progress.race(this._pageProxySession.send("Input.dispatchWheelEvent", {
153
+ x,
154
+ y,
155
+ deltaX,
156
+ deltaY,
157
+ modifiers: toModifiersMask(modifiers)
158
+ }));
159
+ }
160
+ setPage(page) {
161
+ this._page = page;
162
+ }
163
+ }
164
+ class RawTouchscreenImpl {
165
+ constructor(session) {
166
+ this._pageProxySession = session;
167
+ }
168
+ async tap(progress, x, y, modifiers) {
169
+ await progress.race(this._pageProxySession.send("Input.dispatchTapEvent", {
170
+ x,
171
+ y,
172
+ modifiers: toModifiersMask(modifiers)
173
+ }));
174
+ }
175
+ }
176
+ // Annotate the CommonJS export names for ESM import in node:
177
+ 0 && (module.exports = {
178
+ RawKeyboardImpl,
179
+ RawMouseImpl,
180
+ RawTouchscreenImpl
181
+ });
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var wkInterceptableRequest_exports = {};
30
+ __export(wkInterceptableRequest_exports, {
31
+ WKInterceptableRequest: () => WKInterceptableRequest,
32
+ WKRouteImpl: () => WKRouteImpl
33
+ });
34
+ module.exports = __toCommonJS(wkInterceptableRequest_exports);
35
+ var import_utils = require("../../utils");
36
+ var network = __toESM(require("../network"));
37
+ const errorReasons = {
38
+ "aborted": "Cancellation",
39
+ "accessdenied": "AccessControl",
40
+ "addressunreachable": "General",
41
+ "blockedbyclient": "Cancellation",
42
+ "blockedbyresponse": "General",
43
+ "connectionaborted": "General",
44
+ "connectionclosed": "General",
45
+ "connectionfailed": "General",
46
+ "connectionrefused": "General",
47
+ "connectionreset": "General",
48
+ "internetdisconnected": "General",
49
+ "namenotresolved": "General",
50
+ "timedout": "Timeout",
51
+ "failed": "General"
52
+ };
53
+ class WKInterceptableRequest {
54
+ constructor(session, frame, event, redirectedFrom, documentId) {
55
+ this._session = session;
56
+ this._requestId = event.requestId;
57
+ const resourceType = event.type ? event.type.toLowerCase() : redirectedFrom ? redirectedFrom.request.resourceType() : "other";
58
+ let postDataBuffer = null;
59
+ this._timestamp = event.timestamp;
60
+ this._wallTime = event.walltime * 1e3;
61
+ if (event.request.postData)
62
+ postDataBuffer = Buffer.from(event.request.postData, "base64");
63
+ this.request = new network.Request(
64
+ frame._page.browserContext,
65
+ frame,
66
+ null,
67
+ redirectedFrom?.request || null,
68
+ documentId,
69
+ event.request.url,
70
+ resourceType,
71
+ event.request.method,
72
+ postDataBuffer,
73
+ (0, import_utils.headersObjectToArray)(event.request.headers)
74
+ );
75
+ }
76
+ adoptRequestFromNewProcess(newSession, requestId) {
77
+ this._session = newSession;
78
+ this._requestId = requestId;
79
+ }
80
+ createResponse(responsePayload) {
81
+ const getResponseBody = async () => {
82
+ const response2 = await this._session.send("Network.getResponseBody", { requestId: this._requestId });
83
+ return Buffer.from(response2.body, response2.base64Encoded ? "base64" : "utf8");
84
+ };
85
+ const timingPayload = responsePayload.timing;
86
+ const timing = {
87
+ startTime: this._wallTime,
88
+ domainLookupStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.domainLookupStart) : -1,
89
+ domainLookupEnd: timingPayload ? wkMillisToRoundishMillis(timingPayload.domainLookupEnd) : -1,
90
+ connectStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.connectStart) : -1,
91
+ secureConnectionStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.secureConnectionStart) : -1,
92
+ connectEnd: timingPayload ? wkMillisToRoundishMillis(timingPayload.connectEnd) : -1,
93
+ requestStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.requestStart) : -1,
94
+ responseStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.responseStart) : -1
95
+ };
96
+ const setCookieSeparator = process.platform === "darwin" ? "," : "playwright-set-cookie-separator";
97
+ const response = new network.Response(this.request, responsePayload.status, responsePayload.statusText, (0, import_utils.headersObjectToArray)(responsePayload.headers, ",", setCookieSeparator), timing, getResponseBody, responsePayload.source === "service-worker");
98
+ response.setRawResponseHeaders(null);
99
+ response.setTransferSize(null);
100
+ if (responsePayload.requestHeaders && Object.keys(responsePayload.requestHeaders).length) {
101
+ const headers = { ...responsePayload.requestHeaders };
102
+ if (!headers["host"])
103
+ headers["Host"] = new URL(this.request.url()).host;
104
+ this.request.setRawRequestHeaders((0, import_utils.headersObjectToArray)(headers));
105
+ } else {
106
+ this.request.setRawRequestHeaders(null);
107
+ }
108
+ return response;
109
+ }
110
+ }
111
+ class WKRouteImpl {
112
+ constructor(session, requestId) {
113
+ this._session = session;
114
+ this._requestId = requestId;
115
+ }
116
+ async abort(errorCode) {
117
+ const errorType = errorReasons[errorCode];
118
+ (0, import_utils.assert)(errorType, "Unknown error code: " + errorCode);
119
+ await this._session.sendMayFail("Network.interceptRequestWithError", { requestId: this._requestId, errorType });
120
+ }
121
+ async fulfill(response) {
122
+ if (300 <= response.status && response.status < 400)
123
+ throw new Error("Cannot fulfill with redirect status: " + response.status);
124
+ let mimeType = response.isBase64 ? "application/octet-stream" : "text/plain";
125
+ const headers = (0, import_utils.headersArrayToObject)(
126
+ response.headers,
127
+ true
128
+ /* lowerCase */
129
+ );
130
+ const contentType = headers["content-type"];
131
+ if (contentType)
132
+ mimeType = contentType.split(";")[0].trim();
133
+ await this._session.sendMayFail("Network.interceptRequestWithResponse", {
134
+ requestId: this._requestId,
135
+ status: response.status,
136
+ statusText: network.statusText(response.status),
137
+ mimeType,
138
+ headers,
139
+ base64Encoded: response.isBase64,
140
+ content: response.body
141
+ });
142
+ }
143
+ async continue(overrides) {
144
+ await this._session.sendMayFail("Network.interceptWithRequest", {
145
+ requestId: this._requestId,
146
+ url: overrides.url,
147
+ method: overrides.method,
148
+ headers: overrides.headers ? (0, import_utils.headersArrayToObject)(
149
+ overrides.headers,
150
+ false
151
+ /* lowerCase */
152
+ ) : void 0,
153
+ postData: overrides.postData ? Buffer.from(overrides.postData).toString("base64") : void 0
154
+ });
155
+ }
156
+ }
157
+ function wkMillisToRoundishMillis(value) {
158
+ if (value === -1e3)
159
+ return -1;
160
+ if (value <= 0) {
161
+ return -1;
162
+ }
163
+ return (value * 1e3 | 0) / 1e3;
164
+ }
165
+ // Annotate the CommonJS export names for ESM import in node:
166
+ 0 && (module.exports = {
167
+ WKInterceptableRequest,
168
+ WKRouteImpl
169
+ });