rebrowser-playwright-core 1.49.0 → 1.52.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 (373) hide show
  1. package/ThirdPartyNotices.txt +381 -55
  2. package/bin/reinstall_msedge_beta_linux.sh +6 -0
  3. package/bin/reinstall_msedge_dev_linux.sh +6 -0
  4. package/bin/reinstall_msedge_stable_linux.sh +6 -0
  5. package/browsers.json +28 -13
  6. package/index.js +0 -1
  7. package/lib/androidServerImpl.js +42 -48
  8. package/lib/browserServerImpl.js +60 -64
  9. package/lib/cli/driver.js +71 -69
  10. package/lib/cli/program.js +314 -354
  11. package/lib/cli/programWithTestStub.js +51 -44
  12. package/lib/client/accessibility.js +31 -32
  13. package/lib/client/android.js +146 -254
  14. package/lib/client/api.js +135 -283
  15. package/lib/client/artifact.js +39 -39
  16. package/lib/client/browser.js +59 -68
  17. package/lib/client/browserContext.js +302 -322
  18. package/lib/client/browserType.js +95 -143
  19. package/lib/client/cdpSession.js +29 -31
  20. package/lib/client/channelOwner.js +109 -139
  21. package/lib/client/clientHelper.js +49 -42
  22. package/lib/client/clientInstrumentation.js +40 -35
  23. package/lib/client/clientStackTrace.js +69 -0
  24. package/lib/client/clock.js +36 -36
  25. package/lib/client/connection.js +203 -218
  26. package/lib/client/consoleMessage.js +33 -33
  27. package/lib/client/coverage.js +25 -22
  28. package/lib/client/dialog.js +30 -31
  29. package/lib/client/download.js +25 -25
  30. package/lib/client/electron.js +74 -76
  31. package/lib/client/elementHandle.js +126 -163
  32. package/lib/client/errors.js +53 -53
  33. package/lib/client/eventEmitter.js +127 -127
  34. package/lib/client/events.js +72 -68
  35. package/lib/client/fetch.js +154 -178
  36. package/lib/client/fileChooser.js +25 -24
  37. package/lib/client/fileUtils.js +34 -0
  38. package/lib/client/frame.js +189 -307
  39. package/lib/client/harRouter.js +44 -56
  40. package/lib/client/input.js +40 -69
  41. package/lib/client/jsHandle.js +55 -71
  42. package/lib/client/jsonPipe.js +27 -23
  43. package/lib/client/localUtils.js +53 -28
  44. package/lib/client/locator.js +144 -230
  45. package/lib/client/network.js +285 -301
  46. package/lib/client/page.js +273 -312
  47. package/lib/client/platform.js +74 -0
  48. package/lib/client/playwright.js +62 -57
  49. package/lib/client/selectors.js +51 -43
  50. package/lib/client/stream.js +30 -45
  51. package/lib/client/timeoutSettings.js +75 -0
  52. package/lib/client/tracing.js +49 -82
  53. package/lib/client/types.js +26 -22
  54. package/lib/client/video.js +35 -27
  55. package/lib/client/waiter.js +71 -91
  56. package/lib/client/webError.js +25 -23
  57. package/lib/client/webSocket.js +111 -0
  58. package/lib/client/worker.js +48 -56
  59. package/lib/client/writableStream.js +28 -43
  60. package/lib/generated/clockSource.js +26 -5
  61. package/lib/generated/consoleApiSource.js +26 -5
  62. package/lib/generated/injectedScriptSource.js +26 -5
  63. package/lib/generated/pollingRecorderSource.js +26 -5
  64. package/lib/generated/utilityScriptSource.js +26 -5
  65. package/lib/generated/webSocketMockSource.js +375 -4
  66. package/lib/inProcessFactory.js +53 -48
  67. package/lib/inprocess.js +2 -19
  68. package/lib/outofprocess.js +53 -42
  69. package/lib/protocol/debug.js +209 -25
  70. package/lib/protocol/serializers.js +153 -134
  71. package/lib/protocol/validator.js +2712 -2667
  72. package/lib/protocol/validatorPrimitives.js +115 -75
  73. package/lib/remote/playwrightConnection.js +144 -152
  74. package/lib/remote/playwrightServer.js +106 -77
  75. package/lib/server/accessibility.js +44 -37
  76. package/lib/server/android/android.js +216 -206
  77. package/lib/server/android/backendAdb.js +89 -82
  78. package/lib/server/artifact.js +78 -55
  79. package/lib/server/bidi/bidiBrowser.js +227 -158
  80. package/lib/server/bidi/bidiChromium.js +106 -78
  81. package/lib/server/bidi/bidiConnection.js +66 -83
  82. package/lib/server/bidi/bidiExecutionContext.js +161 -97
  83. package/lib/server/bidi/bidiFirefox.js +76 -68
  84. package/lib/server/bidi/bidiInput.js +90 -102
  85. package/lib/server/bidi/bidiNetworkManager.js +141 -159
  86. package/lib/server/bidi/bidiOverCdp.js +57 -58
  87. package/lib/server/bidi/bidiPage.js +262 -261
  88. package/lib/server/bidi/bidiPdf.js +52 -86
  89. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  90. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  91. package/lib/server/bidi/third_party/bidiKeyboard.js +241 -223
  92. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  93. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  94. package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
  95. package/lib/server/browser.js +76 -84
  96. package/lib/server/browserContext.js +343 -360
  97. package/lib/server/browserType.js +169 -181
  98. package/lib/server/callLog.js +82 -0
  99. package/lib/server/chromium/chromium.js +212 -190
  100. package/lib/server/chromium/chromiumSwitches.js +99 -44
  101. package/lib/server/chromium/crAccessibility.js +157 -131
  102. package/lib/server/chromium/crBrowser.js +262 -280
  103. package/lib/server/chromium/crConnection.js +121 -178
  104. package/lib/server/chromium/crCoverage.js +113 -127
  105. package/lib/server/chromium/crDevTools.js +64 -55
  106. package/lib/server/chromium/crDragDrop.js +62 -79
  107. package/lib/server/chromium/crExecutionContext.js +100 -91
  108. package/lib/server/chromium/crInput.js +101 -88
  109. package/lib/server/chromium/crNetworkManager.js +269 -370
  110. package/lib/server/chromium/crPage.js +509 -595
  111. package/lib/server/chromium/crPdf.js +54 -86
  112. package/lib/server/chromium/crProtocolHelper.js +92 -80
  113. package/lib/server/chromium/crServiceWorker.js +85 -69
  114. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  115. package/lib/server/chromium/protocol.d.js +16 -0
  116. package/lib/server/chromium/videoRecorder.js +65 -99
  117. package/lib/server/clock.js +58 -46
  118. package/lib/server/codegen/csharp.js +191 -156
  119. package/lib/server/codegen/java.js +163 -125
  120. package/lib/server/codegen/javascript.js +166 -143
  121. package/lib/server/codegen/jsonl.js +33 -29
  122. package/lib/server/codegen/language.js +75 -52
  123. package/lib/server/codegen/languages.js +65 -27
  124. package/lib/server/codegen/python.js +141 -125
  125. package/lib/server/codegen/types.js +15 -4
  126. package/lib/server/console.js +28 -32
  127. package/lib/server/cookieStore.js +105 -86
  128. package/lib/server/debugController.js +102 -154
  129. package/lib/server/debugger.js +82 -78
  130. package/lib/server/deviceDescriptors.js +37 -24
  131. package/lib/server/deviceDescriptorsSource.json +131 -131
  132. package/lib/server/dialog.js +36 -35
  133. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  134. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  135. package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
  136. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  137. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  138. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  139. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
  140. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  141. package/lib/server/dispatchers/dispatcher.js +180 -229
  142. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  143. package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
  144. package/lib/server/dispatchers/frameDispatcher.js +93 -162
  145. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  146. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  147. package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
  148. package/lib/server/dispatchers/networkDispatchers.js +92 -109
  149. package/lib/server/dispatchers/pageDispatcher.js +130 -169
  150. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  151. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  152. package/lib/server/dispatchers/streamDispatcher.js +42 -44
  153. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  154. package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
  155. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
  156. package/lib/server/dom.js +424 -443
  157. package/lib/server/download.js +45 -35
  158. package/lib/server/electron/electron.js +156 -175
  159. package/lib/server/electron/loader.js +8 -36
  160. package/lib/server/errors.js +47 -46
  161. package/lib/server/fetch.js +302 -331
  162. package/lib/server/fileChooser.js +25 -24
  163. package/lib/server/fileUploadUtils.js +66 -57
  164. package/lib/server/firefox/ffAccessibility.js +153 -131
  165. package/lib/server/firefox/ffBrowser.js +218 -274
  166. package/lib/server/firefox/ffConnection.js +63 -84
  167. package/lib/server/firefox/ffExecutionContext.js +103 -77
  168. package/lib/server/firefox/ffInput.js +72 -63
  169. package/lib/server/firefox/ffNetworkManager.js +131 -110
  170. package/lib/server/firefox/ffPage.js +244 -302
  171. package/lib/server/firefox/firefox.js +76 -69
  172. package/lib/server/firefox/protocol.d.js +16 -0
  173. package/lib/server/formData.js +107 -35
  174. package/lib/server/frameSelectors.js +77 -111
  175. package/lib/server/frames.js +719 -855
  176. package/lib/server/har/harRecorder.js +85 -77
  177. package/lib/server/har/harTracer.js +288 -224
  178. package/lib/server/harBackend.js +157 -0
  179. package/lib/server/helper.js +56 -59
  180. package/lib/server/index.js +59 -106
  181. package/lib/server/input.js +136 -166
  182. package/lib/server/instrumentation.js +49 -44
  183. package/lib/server/javascript.js +157 -151
  184. package/lib/server/launchApp.js +92 -73
  185. package/lib/server/localUtils.js +211 -0
  186. package/lib/server/macEditingCommands.js +141 -137
  187. package/lib/server/network.js +263 -297
  188. package/lib/server/page.js +353 -432
  189. package/lib/server/pageBinding.js +88 -0
  190. package/lib/server/pipeTransport.js +49 -45
  191. package/lib/server/playwright.js +60 -67
  192. package/lib/server/progress.js +56 -51
  193. package/lib/server/protocolError.js +34 -31
  194. package/lib/server/recorder/chat.js +161 -0
  195. package/lib/server/recorder/contextRecorder.js +135 -148
  196. package/lib/server/recorder/recorderApp.js +129 -132
  197. package/lib/server/recorder/recorderCollection.js +57 -57
  198. package/lib/server/recorder/recorderFrontend.js +15 -4
  199. package/lib/server/recorder/recorderRunner.js +80 -100
  200. package/lib/server/recorder/recorderUtils.js +59 -72
  201. package/lib/server/recorder/throttledFile.js +42 -31
  202. package/lib/server/recorder.js +186 -190
  203. package/lib/server/registry/browserFetcher.js +107 -100
  204. package/lib/server/registry/dependencies.js +247 -198
  205. package/lib/server/registry/index.js +928 -709
  206. package/lib/server/registry/nativeDeps.js +1073 -461
  207. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  208. package/lib/server/screenshotter.js +166 -182
  209. package/lib/server/selectors.js +85 -46
  210. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  211. package/lib/server/socksInterceptor.js +62 -67
  212. package/lib/server/storageScript.js +154 -0
  213. package/lib/server/timeoutSettings.js +89 -0
  214. package/lib/server/trace/recorder/snapshotter.js +70 -88
  215. package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
  216. package/lib/server/trace/recorder/tracing.js +324 -327
  217. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  218. package/lib/server/trace/viewer/traceViewer.js +172 -137
  219. package/lib/server/transport.js +125 -133
  220. package/lib/server/types.js +26 -22
  221. package/lib/server/usKeyboardLayout.js +135 -545
  222. package/lib/server/utils/ascii.js +44 -0
  223. package/lib/server/utils/comparators.js +161 -0
  224. package/lib/server/utils/crypto.js +216 -0
  225. package/lib/server/utils/debug.js +47 -0
  226. package/lib/server/utils/debugLogger.js +114 -0
  227. package/lib/server/utils/env.js +68 -0
  228. package/lib/server/utils/eventsHelper.js +39 -0
  229. package/lib/server/utils/expectUtils.js +38 -0
  230. package/lib/server/utils/fileUtils.js +191 -0
  231. package/lib/server/utils/happyEyeballs.js +207 -0
  232. package/lib/server/utils/hostPlatform.js +109 -0
  233. package/lib/server/utils/httpServer.js +218 -0
  234. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  235. package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
  236. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  237. package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
  238. package/lib/server/utils/linuxUtils.js +71 -0
  239. package/lib/server/utils/network.js +217 -0
  240. package/lib/server/utils/nodePlatform.js +148 -0
  241. package/lib/server/utils/pipeTransport.js +84 -0
  242. package/lib/server/utils/processLauncher.js +238 -0
  243. package/lib/server/utils/profiler.js +65 -0
  244. package/lib/server/utils/socksProxy.js +511 -0
  245. package/lib/server/utils/spawnAsync.js +41 -0
  246. package/lib/server/utils/task.js +51 -0
  247. package/lib/server/utils/userAgent.js +98 -0
  248. package/lib/server/utils/wsServer.js +132 -0
  249. package/lib/server/utils/zipFile.js +74 -0
  250. package/lib/server/utils/zones.js +57 -0
  251. package/lib/server/webkit/protocol.d.js +16 -0
  252. package/lib/server/webkit/webkit.js +76 -63
  253. package/lib/server/webkit/wkAccessibility.js +161 -118
  254. package/lib/server/webkit/wkBrowser.js +163 -180
  255. package/lib/server/webkit/wkConnection.js +59 -83
  256. package/lib/server/webkit/wkExecutionContext.js +96 -73
  257. package/lib/server/webkit/wkInput.js +87 -75
  258. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  259. package/lib/server/webkit/wkPage.js +536 -645
  260. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  261. package/lib/server/webkit/wkWorkers.js +77 -77
  262. package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
  263. package/lib/utils/isomorphic/assert.js +31 -0
  264. package/lib/utils/isomorphic/builtins.js +90 -0
  265. package/lib/utils/isomorphic/colors.js +72 -0
  266. package/lib/utils/isomorphic/cssParser.js +123 -127
  267. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  268. package/lib/utils/isomorphic/headers.js +53 -0
  269. package/lib/utils/isomorphic/locatorGenerators.js +344 -349
  270. package/lib/utils/isomorphic/locatorParser.js +103 -106
  271. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  272. package/lib/utils/isomorphic/manualPromise.js +115 -0
  273. package/lib/utils/isomorphic/mimeType.js +453 -22
  274. package/lib/utils/isomorphic/multimap.js +81 -0
  275. package/lib/utils/isomorphic/rtti.js +43 -0
  276. package/lib/utils/isomorphic/selectorParser.js +183 -193
  277. package/lib/utils/isomorphic/semaphore.js +54 -0
  278. package/lib/utils/isomorphic/stackTrace.js +158 -0
  279. package/lib/utils/isomorphic/stringUtils.js +113 -106
  280. package/lib/utils/isomorphic/time.js +44 -0
  281. package/lib/utils/isomorphic/timeoutRunner.js +67 -0
  282. package/lib/utils/isomorphic/traceUtils.js +52 -32
  283. package/lib/utils/isomorphic/types.js +16 -0
  284. package/lib/utils/isomorphic/urlMatch.js +114 -71
  285. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  286. package/lib/utils.js +101 -0
  287. package/lib/utilsBundle.js +101 -76
  288. package/lib/utilsBundleImpl/index.js +114 -116
  289. package/lib/vite/htmlReport/index.html +26 -20
  290. package/lib/vite/recorder/assets/codeMirrorModule-DVQi6prl.js +24 -0
  291. package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
  292. package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
  293. package/lib/vite/recorder/index.html +2 -2
  294. package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
  295. package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
  296. package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
  297. package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
  298. package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
  299. package/lib/vite/traceViewer/index.html +4 -7
  300. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  301. package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
  302. package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
  303. package/lib/vite/traceViewer/uiMode.html +4 -7
  304. package/lib/zipBundle.js +32 -23
  305. package/lib/zipBundleImpl.js +4 -4
  306. package/package.json +7 -7
  307. package/types/protocol.d.ts +819 -127
  308. package/types/types.d.ts +196 -75
  309. package/bin/PrintDeps.exe +0 -0
  310. package/bin/README.md +0 -2
  311. package/lib/common/socksProxy.js +0 -569
  312. package/lib/common/timeoutSettings.js +0 -73
  313. package/lib/common/types.js +0 -5
  314. package/lib/image_tools/colorUtils.js +0 -98
  315. package/lib/image_tools/imageChannel.js +0 -70
  316. package/lib/protocol/transport.js +0 -82
  317. package/lib/server/ariaSnapshot.js +0 -33
  318. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
  319. package/lib/server/recorder/recorderInTraceViewer.js +0 -144
  320. package/lib/utils/ascii.js +0 -31
  321. package/lib/utils/comparators.js +0 -153
  322. package/lib/utils/crypto.js +0 -171
  323. package/lib/utils/debug.js +0 -46
  324. package/lib/utils/debugLogger.js +0 -91
  325. package/lib/utils/env.js +0 -49
  326. package/lib/utils/eventsHelper.js +0 -38
  327. package/lib/utils/expectUtils.js +0 -33
  328. package/lib/utils/fileUtils.js +0 -205
  329. package/lib/utils/happy-eyeballs.js +0 -194
  330. package/lib/utils/headers.js +0 -52
  331. package/lib/utils/hostPlatform.js +0 -139
  332. package/lib/utils/httpServer.js +0 -237
  333. package/lib/utils/index.js +0 -368
  334. package/lib/utils/isomorphic/recorderUtils.js +0 -227
  335. package/lib/utils/linuxUtils.js +0 -78
  336. package/lib/utils/manualPromise.js +0 -109
  337. package/lib/utils/multimap.js +0 -75
  338. package/lib/utils/network.js +0 -160
  339. package/lib/utils/processLauncher.js +0 -248
  340. package/lib/utils/profiler.js +0 -53
  341. package/lib/utils/rtti.js +0 -44
  342. package/lib/utils/semaphore.js +0 -51
  343. package/lib/utils/sequence.js +0 -64
  344. package/lib/utils/spawnAsync.js +0 -45
  345. package/lib/utils/stackTrace.js +0 -134
  346. package/lib/utils/task.js +0 -58
  347. package/lib/utils/time.js +0 -37
  348. package/lib/utils/timeoutRunner.js +0 -66
  349. package/lib/utils/traceUtils.js +0 -44
  350. package/lib/utils/userAgent.js +0 -105
  351. package/lib/utils/wsServer.js +0 -127
  352. package/lib/utils/zipFile.js +0 -75
  353. package/lib/utils/zones.js +0 -71
  354. package/lib/vite/recorder/assets/codeMirrorModule-AFvV6hAs.js +0 -24
  355. package/lib/vite/recorder/assets/index-_cTWgVuJ.js +0 -184
  356. package/lib/vite/traceViewer/assets/codeMirrorModule-KatbITLF.js +0 -24
  357. package/lib/vite/traceViewer/assets/inspectorTab-DdpLd2bb.js +0 -68
  358. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
  359. package/lib/vite/traceViewer/assets/workbench-CdYbzWFD.js +0 -9
  360. package/lib/vite/traceViewer/embedded.6m3UZh7r.js +0 -2
  361. package/lib/vite/traceViewer/embedded.html +0 -18
  362. package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
  363. package/lib/vite/traceViewer/index.WUV-8boJ.js +0 -2
  364. package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
  365. package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
  366. package/lib/vite/traceViewer/recorder.OT2tVHgn.js +0 -2
  367. package/lib/vite/traceViewer/recorder.html +0 -17
  368. package/lib/vite/traceViewer/uiMode.BZBTyvGn.js +0 -5
  369. package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
  370. /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
  371. /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
  372. /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
  373. /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
@@ -1,36 +1,42 @@
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 dispatcher_exports = {};
20
+ __export(dispatcher_exports, {
21
+ Dispatcher: () => Dispatcher,
22
+ DispatcherConnection: () => DispatcherConnection,
23
+ RootDispatcher: () => RootDispatcher,
24
+ dispatcherSymbol: () => dispatcherSymbol,
25
+ existingDispatcher: () => existingDispatcher,
26
+ setMaxDispatchersForTest: () => setMaxDispatchersForTest
5
27
  });
6
- exports.dispatcherSymbol = exports.RootDispatcher = exports.DispatcherConnection = exports.Dispatcher = void 0;
7
- exports.existingDispatcher = existingDispatcher;
8
- exports.setMaxDispatchersForTest = setMaxDispatchersForTest;
9
- var _events = require("events");
10
- var _validator = require("../../protocol/validator");
11
- var _utils = require("../../utils");
12
- var _errors = require("../errors");
13
- var _instrumentation = require("../instrumentation");
14
- var _eventsHelper = require("../..//utils/eventsHelper");
15
- var _protocolError = require("../protocolError");
16
- /**
17
- * Copyright (c) Microsoft Corporation.
18
- *
19
- * Licensed under the Apache License, Version 2.0 (the "License");
20
- * you may not use this file except in compliance with the License.
21
- * You may obtain a copy of the License at
22
- *
23
- * http://www.apache.org/licenses/LICENSE-2.0
24
- *
25
- * Unless required by applicable law or agreed to in writing, software
26
- * distributed under the License is distributed on an "AS IS" BASIS,
27
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
- * See the License for the specific language governing permissions and
29
- * limitations under the License.
30
- */
31
-
32
- const dispatcherSymbol = exports.dispatcherSymbol = Symbol('dispatcher');
33
- const metadataValidator = (0, _validator.createMetadataValidator)();
28
+ module.exports = __toCommonJS(dispatcher_exports);
29
+ var import_events = require("events");
30
+ var import_eventsHelper = require("../utils/eventsHelper");
31
+ var import_validator = require("../../protocol/validator");
32
+ var import_utils = require("../../utils");
33
+ var import_debug = require("../utils/debug");
34
+ var import_errors = require("../errors");
35
+ var import_instrumentation = require("../instrumentation");
36
+ var import_protocolError = require("../protocolError");
37
+ var import_callLog = require("../callLog");
38
+ const dispatcherSymbol = Symbol("dispatcher");
39
+ const metadataValidator = (0, import_validator.createMetadataValidator)();
34
40
  function existingDispatcher(object) {
35
41
  return object[dispatcherSymbol];
36
42
  }
@@ -39,51 +45,45 @@ function setMaxDispatchersForTest(value) {
39
45
  maxDispatchersOverride = value;
40
46
  }
41
47
  function maxDispatchersForBucket(gcBucket) {
42
- var _ref, _maxDispatchersOverri;
43
- return (_ref = (_maxDispatchersOverri = maxDispatchersOverride) !== null && _maxDispatchersOverri !== void 0 ? _maxDispatchersOverri : {
44
- 'JSHandle': 100000,
45
- 'ElementHandle': 100000
46
- }[gcBucket]) !== null && _ref !== void 0 ? _ref : 10000;
48
+ return maxDispatchersOverride ?? {
49
+ "JSHandle": 1e5,
50
+ "ElementHandle": 1e5
51
+ }[gcBucket] ?? 1e4;
47
52
  }
48
- class Dispatcher extends _events.EventEmitter {
53
+ class Dispatcher extends import_events.EventEmitter {
49
54
  constructor(parent, object, type, initializer, gcBucket) {
50
55
  super();
51
- this._connection = void 0;
52
- // Parent is always "isScope".
53
- this._parent = void 0;
54
56
  // Only "isScope" channel owners have registered dispatchers inside.
55
- this._dispatchers = new Map();
57
+ this._dispatchers = /* @__PURE__ */ new Map();
56
58
  this._disposed = false;
57
59
  this._eventListeners = [];
58
- this._guid = void 0;
59
- this._type = void 0;
60
- this._gcBucket = void 0;
61
- this._object = void 0;
62
- this._openScope = new _utils.LongStandingScope();
60
+ this._openScope = new import_utils.LongStandingScope();
63
61
  this._connection = parent instanceof DispatcherConnection ? parent : parent._connection;
64
- this._parent = parent instanceof DispatcherConnection ? undefined : parent;
62
+ this._parent = parent instanceof DispatcherConnection ? void 0 : parent;
65
63
  const guid = object.guid;
66
64
  this._guid = guid;
67
65
  this._type = type;
68
66
  this._object = object;
69
- this._gcBucket = gcBucket !== null && gcBucket !== void 0 ? gcBucket : type;
67
+ this._gcBucket = gcBucket ?? type;
70
68
  object[dispatcherSymbol] = this;
71
69
  this._connection.registerDispatcher(this);
72
70
  if (this._parent) {
73
- (0, _utils.assert)(!this._parent._dispatchers.has(guid));
71
+ (0, import_utils.assert)(!this._parent._dispatchers.has(guid));
74
72
  this._parent._dispatchers.set(guid, this);
75
73
  }
76
- if (this._parent) this._connection.sendCreate(this._parent, type, guid, initializer);
74
+ if (this._parent)
75
+ this._connection.sendCreate(this._parent, type, guid, initializer);
77
76
  this._connection.maybeDisposeStaleDispatchers(this._gcBucket);
78
77
  }
79
78
  parentScope() {
80
79
  return this._parent;
81
80
  }
82
81
  addObjectListener(eventName, handler) {
83
- this._eventListeners.push(_eventsHelper.eventsHelper.addEventListener(this._object, eventName, handler));
82
+ this._eventListeners.push(import_eventsHelper.eventsHelper.addEventListener(this._object, eventName, handler));
84
83
  }
85
84
  adopt(child) {
86
- if (child._parent === this) return;
85
+ if (child._parent === this)
86
+ return;
87
87
  const oldParent = child._parent;
88
88
  oldParent._dispatchers.delete(child._guid);
89
89
  this._dispatchers.set(child._guid, child);
@@ -95,38 +95,36 @@ class Dispatcher extends _events.EventEmitter {
95
95
  try {
96
96
  return await this._openScope.race(commandPromise);
97
97
  } catch (e) {
98
- if (callMetadata.potentiallyClosesScope && (0, _errors.isTargetClosedError)(e)) return await commandPromise;
98
+ if (callMetadata.potentiallyClosesScope && (0, import_errors.isTargetClosedError)(e))
99
+ return await commandPromise;
99
100
  throw e;
100
101
  }
101
102
  }
102
103
  _dispatchEvent(method, params) {
103
104
  if (this._disposed) {
104
- if ((0, _utils.isUnderTest)()) throw new Error(`${this._guid} is sending "${String(method)}" event after being disposed`);
105
- // Just ignore this event outside of tests.
105
+ if ((0, import_debug.isUnderTest)())
106
+ throw new Error(`${this._guid} is sending "${String(method)}" event after being disposed`);
106
107
  return;
107
108
  }
108
109
  this._connection.sendEvent(this, method, params);
109
110
  }
110
111
  _dispose(reason) {
111
- this._disposeRecursively(new _errors.TargetClosedError());
112
+ this._disposeRecursively(new import_errors.TargetClosedError());
112
113
  this._connection.sendDispose(this, reason);
113
114
  }
114
- _onDispose() {}
115
+ _onDispose() {
116
+ }
115
117
  _disposeRecursively(error) {
116
- var _this$_parent;
117
- (0, _utils.assert)(!this._disposed, `${this._guid} is disposed more than once`);
118
+ (0, import_utils.assert)(!this._disposed, `${this._guid} is disposed more than once`);
118
119
  this._onDispose();
119
120
  this._disposed = true;
120
- _eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
121
-
122
- // Clean up from parent and connection.
123
- (_this$_parent = this._parent) === null || _this$_parent === void 0 || _this$_parent._dispatchers.delete(this._guid);
121
+ import_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
122
+ this._parent?._dispatchers.delete(this._guid);
124
123
  const list = this._connection._dispatchersByBucket.get(this._gcBucket);
125
- list === null || list === void 0 || list.delete(this._guid);
124
+ list?.delete(this._guid);
126
125
  this._connection._dispatchers.delete(this._guid);
127
-
128
- // Dispose all children.
129
- for (const dispatcher of [...this._dispatchers.values()]) dispatcher._disposeRecursively(error);
126
+ for (const dispatcher of [...this._dispatchers.values()])
127
+ dispatcher._disposeRecursively(error);
130
128
  this._dispatchers.clear();
131
129
  delete this._object[dispatcherSymbol];
132
130
  this._openScope.close(error);
@@ -134,112 +132,92 @@ class Dispatcher extends _events.EventEmitter {
134
132
  _debugScopeState() {
135
133
  return {
136
134
  _guid: this._guid,
137
- objects: Array.from(this._dispatchers.values()).map(o => o._debugScopeState())
135
+ objects: Array.from(this._dispatchers.values()).map((o) => o._debugScopeState())
138
136
  };
139
137
  }
140
138
  async waitForEventInfo() {
141
- // Instrumentation takes care of this.
142
139
  }
143
140
  }
144
- exports.Dispatcher = Dispatcher;
145
141
  class RootDispatcher extends Dispatcher {
146
142
  constructor(connection, createPlaywright) {
147
- super(connection, {
148
- guid: ''
149
- }, 'Root', {});
150
- this._initialized = false;
143
+ super(connection, { guid: "" }, "Root", {});
151
144
  this.createPlaywright = createPlaywright;
145
+ this._initialized = false;
152
146
  }
153
147
  async initialize(params) {
154
- (0, _utils.assert)(this.createPlaywright);
155
- (0, _utils.assert)(!this._initialized);
148
+ (0, import_utils.assert)(this.createPlaywright);
149
+ (0, import_utils.assert)(!this._initialized);
156
150
  this._initialized = true;
157
151
  return {
158
152
  playwright: await this.createPlaywright(this, params)
159
153
  };
160
154
  }
161
155
  }
162
- exports.RootDispatcher = RootDispatcher;
163
156
  class DispatcherConnection {
164
157
  constructor(isLocal) {
165
- this._dispatchers = new Map();
166
- this._dispatchersByBucket = new Map();
167
- this.onmessage = message => {};
168
- this._waitOperations = new Map();
169
- this._isLocal = void 0;
158
+ this._dispatchers = /* @__PURE__ */ new Map();
159
+ this._dispatchersByBucket = /* @__PURE__ */ new Map();
160
+ this.onmessage = (message) => {
161
+ };
162
+ this._waitOperations = /* @__PURE__ */ new Map();
170
163
  this._isLocal = !!isLocal;
171
164
  }
172
165
  sendEvent(dispatcher, event, params) {
173
- const validator = (0, _validator.findValidator)(dispatcher._type, event, 'Event');
174
- params = validator(params, '', {
175
- tChannelImpl: this._tChannelImplToWire.bind(this),
176
- binary: this._isLocal ? 'buffer' : 'toBase64'
177
- });
178
- this.onmessage({
179
- guid: dispatcher._guid,
180
- method: event,
181
- params
182
- });
166
+ const validator = (0, import_validator.findValidator)(dispatcher._type, event, "Event");
167
+ params = validator(params, "", this._validatorToWireContext());
168
+ this.onmessage({ guid: dispatcher._guid, method: event, params });
183
169
  }
184
170
  sendCreate(parent, type, guid, initializer) {
185
- const validator = (0, _validator.findValidator)(type, '', 'Initializer');
186
- initializer = validator(initializer, '', {
187
- tChannelImpl: this._tChannelImplToWire.bind(this),
188
- binary: this._isLocal ? 'buffer' : 'toBase64'
189
- });
190
- this.onmessage({
191
- guid: parent._guid,
192
- method: '__create__',
193
- params: {
194
- type,
195
- initializer,
196
- guid
197
- }
198
- });
171
+ const validator = (0, import_validator.findValidator)(type, "", "Initializer");
172
+ initializer = validator(initializer, "", this._validatorToWireContext());
173
+ this.onmessage({ guid: parent._guid, method: "__create__", params: { type, initializer, guid } });
199
174
  }
200
175
  sendAdopt(parent, dispatcher) {
201
- this.onmessage({
202
- guid: parent._guid,
203
- method: '__adopt__',
204
- params: {
205
- guid: dispatcher._guid
206
- }
207
- });
176
+ this.onmessage({ guid: parent._guid, method: "__adopt__", params: { guid: dispatcher._guid } });
208
177
  }
209
178
  sendDispose(dispatcher, reason) {
210
- this.onmessage({
211
- guid: dispatcher._guid,
212
- method: '__dispose__',
213
- params: {
214
- reason
215
- }
216
- });
179
+ this.onmessage({ guid: dispatcher._guid, method: "__dispose__", params: { reason } });
180
+ }
181
+ _validatorToWireContext() {
182
+ return {
183
+ tChannelImpl: this._tChannelImplToWire.bind(this),
184
+ binary: this._isLocal ? "buffer" : "toBase64",
185
+ isUnderTest: import_debug.isUnderTest
186
+ };
187
+ }
188
+ _validatorFromWireContext() {
189
+ return {
190
+ tChannelImpl: this._tChannelImplFromWire.bind(this),
191
+ binary: this._isLocal ? "buffer" : "fromBase64",
192
+ isUnderTest: import_debug.isUnderTest
193
+ };
217
194
  }
218
195
  _tChannelImplFromWire(names, arg, path, context) {
219
- if (arg && typeof arg === 'object' && typeof arg.guid === 'string') {
196
+ if (arg && typeof arg === "object" && typeof arg.guid === "string") {
220
197
  const guid = arg.guid;
221
198
  const dispatcher = this._dispatchers.get(guid);
222
- if (!dispatcher) throw new _validator.ValidationError(`${path}: no object with guid ${guid}`);
223
- if (names !== '*' && !names.includes(dispatcher._type)) throw new _validator.ValidationError(`${path}: object with guid ${guid} has type ${dispatcher._type}, expected ${names.toString()}`);
199
+ if (!dispatcher)
200
+ throw new import_validator.ValidationError(`${path}: no object with guid ${guid}`);
201
+ if (names !== "*" && !names.includes(dispatcher._type))
202
+ throw new import_validator.ValidationError(`${path}: object with guid ${guid} has type ${dispatcher._type}, expected ${names.toString()}`);
224
203
  return dispatcher;
225
204
  }
226
- throw new _validator.ValidationError(`${path}: expected guid for ${names.toString()}`);
205
+ throw new import_validator.ValidationError(`${path}: expected guid for ${names.toString()}`);
227
206
  }
228
207
  _tChannelImplToWire(names, arg, path, context) {
229
208
  if (arg instanceof Dispatcher) {
230
- if (names !== '*' && !names.includes(arg._type)) throw new _validator.ValidationError(`${path}: dispatcher with guid ${arg._guid} has type ${arg._type}, expected ${names.toString()}`);
231
- return {
232
- guid: arg._guid
233
- };
209
+ if (names !== "*" && !names.includes(arg._type))
210
+ throw new import_validator.ValidationError(`${path}: dispatcher with guid ${arg._guid} has type ${arg._type}, expected ${names.toString()}`);
211
+ return { guid: arg._guid };
234
212
  }
235
- throw new _validator.ValidationError(`${path}: expected dispatcher ${names.toString()}`);
213
+ throw new import_validator.ValidationError(`${path}: expected dispatcher ${names.toString()}`);
236
214
  }
237
215
  registerDispatcher(dispatcher) {
238
- (0, _utils.assert)(!this._dispatchers.has(dispatcher._guid));
216
+ (0, import_utils.assert)(!this._dispatchers.has(dispatcher._guid));
239
217
  this._dispatchers.set(dispatcher._guid, dispatcher);
240
218
  let list = this._dispatchersByBucket.get(dispatcher._gcBucket);
241
219
  if (!list) {
242
- list = new Set();
220
+ list = /* @__PURE__ */ new Set();
243
221
  this._dispatchersByBucket.set(dispatcher._gcBucket, list);
244
222
  }
245
223
  list.add(dispatcher._guid);
@@ -247,149 +225,122 @@ class DispatcherConnection {
247
225
  maybeDisposeStaleDispatchers(gcBucket) {
248
226
  const maxDispatchers = maxDispatchersForBucket(gcBucket);
249
227
  const list = this._dispatchersByBucket.get(gcBucket);
250
- if (!list || list.size <= maxDispatchers) return;
228
+ if (!list || list.size <= maxDispatchers)
229
+ return;
251
230
  const dispatchersArray = [...list];
252
231
  const disposeCount = maxDispatchers / 10 | 0;
253
232
  this._dispatchersByBucket.set(gcBucket, new Set(dispatchersArray.slice(disposeCount)));
254
233
  for (let i = 0; i < disposeCount; ++i) {
255
234
  const d = this._dispatchers.get(dispatchersArray[i]);
256
- if (!d) continue;
257
- d._dispose('gc');
235
+ if (!d)
236
+ continue;
237
+ d._dispose("gc");
258
238
  }
259
239
  }
260
240
  async dispatch(message) {
261
- var _sdkObject$attributio, _sdkObject$attributio2, _params$info;
262
- const {
263
- id,
264
- guid,
265
- method,
266
- params,
267
- metadata
268
- } = message;
241
+ const { id, guid, method, params, metadata } = message;
269
242
  const dispatcher = this._dispatchers.get(guid);
270
243
  if (!dispatcher) {
271
- this.onmessage({
272
- id,
273
- error: (0, _errors.serializeError)(new _errors.TargetClosedError())
274
- });
244
+ this.onmessage({ id, error: (0, import_errors.serializeError)(new import_errors.TargetClosedError()) });
275
245
  return;
276
246
  }
277
247
  let validParams;
278
248
  let validMetadata;
279
249
  try {
280
- const validator = (0, _validator.findValidator)(dispatcher._type, method, 'Params');
281
- validParams = validator(params, '', {
282
- tChannelImpl: this._tChannelImplFromWire.bind(this),
283
- binary: this._isLocal ? 'buffer' : 'fromBase64'
284
- });
285
- validMetadata = metadataValidator(metadata, '', {
286
- tChannelImpl: this._tChannelImplFromWire.bind(this),
287
- binary: this._isLocal ? 'buffer' : 'fromBase64'
288
- });
289
- if (typeof dispatcher[method] !== 'function') throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
250
+ const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Params");
251
+ const validatorContext = this._validatorFromWireContext();
252
+ validParams = validator(params, "", validatorContext);
253
+ validMetadata = metadataValidator(metadata, "", validatorContext);
254
+ if (typeof dispatcher[method] !== "function")
255
+ throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
290
256
  } catch (e) {
291
- this.onmessage({
292
- id,
293
- error: (0, _errors.serializeError)(e)
294
- });
257
+ this.onmessage({ id, error: (0, import_errors.serializeError)(e) });
295
258
  return;
296
259
  }
297
- const sdkObject = dispatcher._object instanceof _instrumentation.SdkObject ? dispatcher._object : undefined;
260
+ const sdkObject = dispatcher._object instanceof import_instrumentation.SdkObject ? dispatcher._object : void 0;
298
261
  const callMetadata = {
299
262
  id: `call@${id}`,
300
263
  location: validMetadata.location,
301
264
  apiName: validMetadata.apiName,
302
265
  internal: validMetadata.internal,
303
266
  stepId: validMetadata.stepId,
304
- objectId: sdkObject === null || sdkObject === void 0 ? void 0 : sdkObject.guid,
305
- pageId: sdkObject === null || sdkObject === void 0 || (_sdkObject$attributio = sdkObject.attribution) === null || _sdkObject$attributio === void 0 || (_sdkObject$attributio = _sdkObject$attributio.page) === null || _sdkObject$attributio === void 0 ? void 0 : _sdkObject$attributio.guid,
306
- frameId: sdkObject === null || sdkObject === void 0 || (_sdkObject$attributio2 = sdkObject.attribution) === null || _sdkObject$attributio2 === void 0 || (_sdkObject$attributio2 = _sdkObject$attributio2.frame) === null || _sdkObject$attributio2 === void 0 ? void 0 : _sdkObject$attributio2.guid,
307
- startTime: (0, _utils.monotonicTime)(),
267
+ objectId: sdkObject?.guid,
268
+ pageId: sdkObject?.attribution?.page?.guid,
269
+ frameId: sdkObject?.attribution?.frame?.guid,
270
+ startTime: (0, import_utils.monotonicTime)(),
308
271
  endTime: 0,
309
272
  type: dispatcher._type,
310
273
  method,
311
274
  params: params || {},
312
275
  log: []
313
276
  };
314
- if (sdkObject && params !== null && params !== void 0 && (_params$info = params.info) !== null && _params$info !== void 0 && _params$info.waitId) {
315
- // Process logs for waitForNavigation/waitForLoadState/etc.
277
+ if (sdkObject && params?.info?.waitId) {
316
278
  const info = params.info;
317
279
  switch (info.phase) {
318
- case 'before':
319
- {
320
- this._waitOperations.set(info.waitId, callMetadata);
321
- await sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata);
322
- this.onmessage({
323
- id
324
- });
325
- return;
326
- }
327
- case 'log':
328
- {
329
- const originalMetadata = this._waitOperations.get(info.waitId);
330
- originalMetadata.log.push(info.message);
331
- sdkObject.instrumentation.onCallLog(sdkObject, originalMetadata, 'api', info.message);
332
- this.onmessage({
333
- id
334
- });
335
- return;
336
- }
337
- case 'after':
338
- {
339
- const originalMetadata = this._waitOperations.get(info.waitId);
340
- originalMetadata.endTime = (0, _utils.monotonicTime)();
341
- originalMetadata.error = info.error ? {
342
- error: {
343
- name: 'Error',
344
- message: info.error
345
- }
346
- } : undefined;
347
- this._waitOperations.delete(info.waitId);
348
- await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
349
- this.onmessage({
350
- id
351
- });
352
- return;
353
- }
280
+ case "before": {
281
+ this._waitOperations.set(info.waitId, callMetadata);
282
+ await sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata);
283
+ this.onmessage({ id });
284
+ return;
285
+ }
286
+ case "log": {
287
+ const originalMetadata = this._waitOperations.get(info.waitId);
288
+ originalMetadata.log.push(info.message);
289
+ sdkObject.instrumentation.onCallLog(sdkObject, originalMetadata, "api", info.message);
290
+ this.onmessage({ id });
291
+ return;
292
+ }
293
+ case "after": {
294
+ const originalMetadata = this._waitOperations.get(info.waitId);
295
+ originalMetadata.endTime = (0, import_utils.monotonicTime)();
296
+ originalMetadata.error = info.error ? { error: { name: "Error", message: info.error } } : void 0;
297
+ this._waitOperations.delete(info.waitId);
298
+ await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
299
+ this.onmessage({ id });
300
+ return;
301
+ }
354
302
  }
355
303
  }
356
- await (sdkObject === null || sdkObject === void 0 ? void 0 : sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata));
357
- const response = {
358
- id
359
- };
304
+ await sdkObject?.instrumentation.onBeforeCall(sdkObject, callMetadata);
305
+ const response = { id };
360
306
  try {
361
307
  const result = await dispatcher._handleCommand(callMetadata, method, validParams);
362
- const validator = (0, _validator.findValidator)(dispatcher._type, method, 'Result');
363
- response.result = validator(result, '', {
364
- tChannelImpl: this._tChannelImplToWire.bind(this),
365
- binary: this._isLocal ? 'buffer' : 'toBase64'
366
- });
308
+ const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Result");
309
+ response.result = validator(result, "", this._validatorToWireContext());
367
310
  callMetadata.result = result;
368
311
  } catch (e) {
369
- if ((0, _errors.isTargetClosedError)(e) && sdkObject) {
312
+ if ((0, import_errors.isTargetClosedError)(e) && sdkObject) {
370
313
  const reason = closeReason(sdkObject);
371
- if (reason) (0, _utils.rewriteErrorMessage)(e, reason);
372
- } else if ((0, _protocolError.isProtocolError)(e)) {
373
- if (e.type === 'closed') {
374
- const reason = sdkObject ? closeReason(sdkObject) : undefined;
375
- e = new _errors.TargetClosedError(reason, e.browserLogMessage());
376
- } else if (e.type === 'crashed') {
377
- (0, _utils.rewriteErrorMessage)(e, 'Target crashed ' + e.browserLogMessage());
314
+ if (reason)
315
+ (0, import_utils.rewriteErrorMessage)(e, reason);
316
+ } else if ((0, import_protocolError.isProtocolError)(e)) {
317
+ if (e.type === "closed") {
318
+ const reason = sdkObject ? closeReason(sdkObject) : void 0;
319
+ e = new import_errors.TargetClosedError(reason, e.browserLogMessage());
320
+ } else if (e.type === "crashed") {
321
+ (0, import_utils.rewriteErrorMessage)(e, "Target crashed " + e.browserLogMessage());
378
322
  }
379
323
  }
380
- response.error = (0, _errors.serializeError)(e);
381
- // The command handler could have set error in the metadata, do not reset it if there was no exception.
324
+ response.error = (0, import_errors.serializeError)(e);
382
325
  callMetadata.error = response.error;
383
326
  } finally {
384
- callMetadata.endTime = (0, _utils.monotonicTime)();
385
- await (sdkObject === null || sdkObject === void 0 ? void 0 : sdkObject.instrumentation.onAfterCall(sdkObject, callMetadata));
327
+ callMetadata.endTime = (0, import_utils.monotonicTime)();
328
+ await sdkObject?.instrumentation.onAfterCall(sdkObject, callMetadata);
386
329
  }
387
- if (response.error) response.log = (0, _utils.compressCallLog)(callMetadata.log);
330
+ if (response.error)
331
+ response.log = (0, import_callLog.compressCallLog)(callMetadata.log);
388
332
  this.onmessage(response);
389
333
  }
390
334
  }
391
- exports.DispatcherConnection = DispatcherConnection;
392
335
  function closeReason(sdkObject) {
393
- var _sdkObject$attributio3, _sdkObject$attributio4, _sdkObject$attributio5;
394
- return ((_sdkObject$attributio3 = sdkObject.attribution.page) === null || _sdkObject$attributio3 === void 0 ? void 0 : _sdkObject$attributio3._closeReason) || ((_sdkObject$attributio4 = sdkObject.attribution.context) === null || _sdkObject$attributio4 === void 0 ? void 0 : _sdkObject$attributio4._closeReason) || ((_sdkObject$attributio5 = sdkObject.attribution.browser) === null || _sdkObject$attributio5 === void 0 ? void 0 : _sdkObject$attributio5._closeReason);
395
- }
336
+ return sdkObject.attribution.page?._closeReason || sdkObject.attribution.context?._closeReason || sdkObject.attribution.browser?._closeReason;
337
+ }
338
+ // Annotate the CommonJS export names for ESM import in node:
339
+ 0 && (module.exports = {
340
+ Dispatcher,
341
+ DispatcherConnection,
342
+ RootDispatcher,
343
+ dispatcherSymbol,
344
+ existingDispatcher,
345
+ setMaxDispatchersForTest
346
+ });