rebrowser-playwright-core 1.49.1 → 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 (372) 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 -597
  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 +351 -434
  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 -647
  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-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
  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 +181 -69
  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/index-m0XdVJHe.js +0 -184
  355. package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
  356. package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
  357. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
  358. package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
  359. package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
  360. package/lib/vite/traceViewer/embedded.html +0 -18
  361. package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
  362. package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
  363. package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
  364. package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
  365. package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
  366. package/lib/vite/traceViewer/recorder.html +0 -17
  367. package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
  368. package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
  369. /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
  370. /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
  371. /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
  372. /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
@@ -0,0 +1,161 @@
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 chat_exports = {};
20
+ __export(chat_exports, {
21
+ Chat: () => Chat,
22
+ asString: () => asString
23
+ });
24
+ module.exports = __toCommonJS(chat_exports);
25
+ var import_transport = require("../transport");
26
+ class Chat {
27
+ constructor(wsEndpoint) {
28
+ this._history = [];
29
+ this._chatSinks = /* @__PURE__ */ new Map();
30
+ this._wsEndpoint = wsEndpoint;
31
+ }
32
+ clearHistory() {
33
+ this._history = [];
34
+ }
35
+ async post(prompt) {
36
+ await this._append("user", prompt);
37
+ let text = await asString(await this._post());
38
+ if (text.startsWith("```json") && text.endsWith("```"))
39
+ text = text.substring("```json".length, text.length - "```".length);
40
+ for (let i = 0; i < 3; ++i) {
41
+ try {
42
+ return JSON.parse(text);
43
+ } catch (e) {
44
+ await this._append("user", String(e));
45
+ }
46
+ }
47
+ throw new Error("Failed to parse response: " + text);
48
+ }
49
+ async _append(user, content) {
50
+ this._history.push({ user, content });
51
+ }
52
+ async _connection() {
53
+ if (!this._connectionPromise) {
54
+ this._connectionPromise = import_transport.WebSocketTransport.connect(void 0, this._wsEndpoint).then((transport) => {
55
+ return new Connection(transport, (method, params) => this._dispatchEvent(method, params), () => {
56
+ });
57
+ });
58
+ }
59
+ return this._connectionPromise;
60
+ }
61
+ _dispatchEvent(method, params) {
62
+ if (method === "chatChunk") {
63
+ const { chatId, chunk } = params;
64
+ const chunkSink = this._chatSinks.get(chatId);
65
+ chunkSink(chunk);
66
+ if (!chunk)
67
+ this._chatSinks.delete(chatId);
68
+ }
69
+ }
70
+ async _post() {
71
+ const connection = await this._connection();
72
+ const result = await connection.send("chat", { history: this._history });
73
+ const { chatId } = result;
74
+ const { iterable, addChunk } = iterablePump();
75
+ this._chatSinks.set(chatId, addChunk);
76
+ return iterable;
77
+ }
78
+ }
79
+ async function asString(stream) {
80
+ let result = "";
81
+ for await (const chunk of stream)
82
+ result += chunk;
83
+ return result;
84
+ }
85
+ function iterablePump() {
86
+ let controller;
87
+ const stream = new ReadableStream({ start: (c) => controller = c });
88
+ const iterable = async function* () {
89
+ const reader = stream.getReader();
90
+ while (true) {
91
+ const { done, value } = await reader.read();
92
+ if (done)
93
+ break;
94
+ yield value;
95
+ }
96
+ }();
97
+ return {
98
+ iterable,
99
+ addChunk: (chunk) => {
100
+ if (chunk)
101
+ controller.enqueue(chunk);
102
+ else
103
+ controller.close();
104
+ }
105
+ };
106
+ }
107
+ class Connection {
108
+ constructor(transport, onEvent, onClose) {
109
+ this._lastId = 0;
110
+ this._closed = false;
111
+ this._pending = /* @__PURE__ */ new Map();
112
+ this._transport = transport;
113
+ this._onEvent = onEvent;
114
+ this._onClose = onClose;
115
+ this._transport.onmessage = this._dispatchMessage.bind(this);
116
+ this._transport.onclose = this._close.bind(this);
117
+ }
118
+ send(method, params) {
119
+ const id = this._lastId++;
120
+ const message = { id, method, params };
121
+ this._transport.send(message);
122
+ return new Promise((resolve, reject) => {
123
+ this._pending.set(id, { resolve, reject });
124
+ });
125
+ }
126
+ _dispatchMessage(message) {
127
+ if (message.id === void 0) {
128
+ this._onEvent(message.method, message.params);
129
+ return;
130
+ }
131
+ const callback = this._pending.get(message.id);
132
+ this._pending.delete(message.id);
133
+ if (!callback)
134
+ return;
135
+ if (message.error) {
136
+ callback.reject(new Error(message.error.message));
137
+ return;
138
+ }
139
+ callback.resolve(message.result);
140
+ }
141
+ _close() {
142
+ this._closed = true;
143
+ this._transport.onmessage = void 0;
144
+ this._transport.onclose = void 0;
145
+ for (const { reject } of this._pending.values())
146
+ reject(new Error("Connection closed"));
147
+ this._onClose();
148
+ }
149
+ isClosed() {
150
+ return this._closed;
151
+ }
152
+ close() {
153
+ if (!this._closed)
154
+ this._transport.close();
155
+ }
156
+ }
157
+ // Annotate the CommonJS export names for ESM import in node:
158
+ 0 && (module.exports = {
159
+ Chat,
160
+ asString
161
+ });
@@ -1,88 +1,76 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 contextRecorder_exports = {};
30
+ __export(contextRecorder_exports, {
31
+ ContextRecorder: () => ContextRecorder,
32
+ generateFrameSelector: () => generateFrameSelector
5
33
  });
6
- exports.ContextRecorder = void 0;
7
- exports.generateFrameSelector = generateFrameSelector;
8
- var _events = require("events");
9
- var recorderSource = _interopRequireWildcard(require("../../generated/pollingRecorderSource"));
10
- var _utils = require("../../utils");
11
- var _timeoutRunner = require("../../utils/timeoutRunner");
12
- var _browserContext = require("../browserContext");
13
- var _languages = require("../codegen/languages");
14
- var _frames = require("../frames");
15
- var _page = require("../page");
16
- var _throttledFile = require("./throttledFile");
17
- var _recorderCollection = require("./recorderCollection");
18
- var _language = require("../codegen/language");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- /**
22
- * Copyright (c) Microsoft Corporation.
23
- *
24
- * Licensed under the Apache License, Version 2.0 (the "License");
25
- * you may not use this file except in compliance with the License.
26
- * You may obtain a copy of the License at
27
- *
28
- * http://www.apache.org/licenses/LICENSE-2.0
29
- *
30
- * Unless required by applicable law or agreed to in writing, software
31
- * distributed under the License is distributed on an "AS IS" BASIS,
32
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33
- * See the License for the specific language governing permissions and
34
- * limitations under the License.
35
- */
36
-
37
- class ContextRecorder extends _events.EventEmitter {
38
- constructor(codegenMode, context, params, delegate) {
34
+ module.exports = __toCommonJS(contextRecorder_exports);
35
+ var import_events = require("events");
36
+ var import_recorderCollection = require("./recorderCollection");
37
+ var recorderSource = __toESM(require("../../generated/pollingRecorderSource"));
38
+ var import_utils = require("../../utils");
39
+ var import_timeoutRunner = require("../../utils/isomorphic/timeoutRunner");
40
+ var import_browserContext = require("../browserContext");
41
+ var import_languages = require("../codegen/languages");
42
+ var import_frames = require("../frames");
43
+ var import_page = require("../page");
44
+ var import_throttledFile = require("./throttledFile");
45
+ var import_language = require("../codegen/language");
46
+ class ContextRecorder extends import_events.EventEmitter {
47
+ constructor(context, params, delegate) {
39
48
  super();
40
- this._collection = void 0;
41
- this._pageAliases = new Map();
49
+ this._pageAliases = /* @__PURE__ */ new Map();
42
50
  this._lastPopupOrdinal = 0;
43
51
  this._lastDialogOrdinal = -1;
44
52
  this._lastDownloadOrdinal = -1;
45
- this._context = void 0;
46
- this._params = void 0;
47
- this._delegate = void 0;
48
- this._recorderSources = void 0;
49
53
  this._throttledOutputFile = null;
50
54
  this._orderedLanguages = [];
51
55
  this._listeners = [];
52
- this._codegenMode = void 0;
53
- this._codegenMode = codegenMode;
54
56
  this._context = context;
55
57
  this._params = params;
56
58
  this._delegate = delegate;
57
59
  this._recorderSources = [];
58
60
  const language = params.language || context.attribution.playwright.options.sdkLanguage;
59
61
  this.setOutput(language, params.outputFile);
60
-
61
- // Make a copy of options to modify them later.
62
62
  const languageGeneratorOptions = {
63
63
  browserName: context._browser.options.name,
64
- launchOptions: {
65
- headless: false,
66
- ...params.launchOptions,
67
- tracesDir: undefined
68
- },
69
- contextOptions: {
70
- ...params.contextOptions
71
- },
64
+ launchOptions: { headless: false, ...params.launchOptions, tracesDir: void 0 },
65
+ contextOptions: { ...params.contextOptions },
72
66
  deviceName: params.device,
73
67
  saveStorage: params.saveStorage
74
68
  };
75
- this._collection = new _recorderCollection.RecorderCollection(this._pageAliases);
76
- this._collection.on('change', actions => {
69
+ this._collection = new import_recorderCollection.RecorderCollection(this._pageAliases);
70
+ this._collection.on("change", (actions) => {
77
71
  this._recorderSources = [];
78
72
  for (const languageGenerator of this._orderedLanguages) {
79
- var _this$_throttledOutpu;
80
- const {
81
- header,
82
- footer,
83
- actionTexts,
84
- text
85
- } = (0, _language.generateCode)(actions, languageGenerator, languageGeneratorOptions);
73
+ const { header, footer, actionTexts, text } = (0, import_language.generateCode)(actions, languageGenerator, languageGeneratorOptions);
86
74
  const source = {
87
75
  isRecorded: true,
88
76
  label: languageGenerator.name,
@@ -95,88 +83,93 @@ class ContextRecorder extends _events.EventEmitter {
95
83
  language: languageGenerator.highlighter,
96
84
  highlight: []
97
85
  };
98
- source.revealLine = text.split('\n').length - 1;
86
+ source.revealLine = text.split("\n").length - 1;
99
87
  this._recorderSources.push(source);
100
- if (languageGenerator === this._orderedLanguages[0]) (_this$_throttledOutpu = this._throttledOutputFile) === null || _this$_throttledOutpu === void 0 || _this$_throttledOutpu.setContent(source.text);
88
+ if (languageGenerator === this._orderedLanguages[0])
89
+ this._throttledOutputFile?.setContent(source.text);
101
90
  }
102
91
  this.emit(ContextRecorder.Events.Change, {
103
92
  sources: this._recorderSources,
104
93
  actions
105
94
  });
106
95
  });
107
- context.on(_browserContext.BrowserContext.Events.BeforeClose, () => {
108
- var _this$_throttledOutpu2;
109
- (_this$_throttledOutpu2 = this._throttledOutputFile) === null || _this$_throttledOutpu2 === void 0 || _this$_throttledOutpu2.flush();
96
+ context.on(import_browserContext.BrowserContext.Events.BeforeClose, () => {
97
+ this._throttledOutputFile?.flush();
110
98
  });
111
- this._listeners.push(_utils.eventsHelper.addEventListener(process, 'exit', () => {
112
- var _this$_throttledOutpu3;
113
- (_this$_throttledOutpu3 = this._throttledOutputFile) === null || _this$_throttledOutpu3 === void 0 || _this$_throttledOutpu3.flush();
99
+ this._listeners.push(import_utils.eventsHelper.addEventListener(process, "exit", () => {
100
+ this._throttledOutputFile?.flush();
114
101
  }));
115
- this.setEnabled(true);
102
+ this.setEnabled(params.mode === "recording");
103
+ }
104
+ static {
105
+ this.Events = {
106
+ Change: "change"
107
+ };
116
108
  }
117
109
  setOutput(codegenId, outputFile) {
118
- var _this$_collection;
119
- const languages = (0, _languages.languageSet)();
120
- const primaryLanguage = [...languages].find(l => l.id === codegenId);
121
- if (!primaryLanguage) throw new Error(`\n===============================\nUnsupported language: '${codegenId}'\n===============================\n`);
110
+ const languages = (0, import_languages.languageSet)();
111
+ const primaryLanguage = [...languages].find((l) => l.id === codegenId);
112
+ if (!primaryLanguage)
113
+ throw new Error(`
114
+ ===============================
115
+ Unsupported language: '${codegenId}'
116
+ ===============================
117
+ `);
122
118
  languages.delete(primaryLanguage);
123
119
  this._orderedLanguages = [primaryLanguage, ...languages];
124
- this._throttledOutputFile = outputFile ? new _throttledFile.ThrottledFile(outputFile) : null;
125
- (_this$_collection = this._collection) === null || _this$_collection === void 0 || _this$_collection.restart();
120
+ this._throttledOutputFile = outputFile ? new import_throttledFile.ThrottledFile(outputFile) : null;
121
+ this._collection?.restart();
126
122
  }
127
123
  languageName(id) {
128
124
  for (const lang of this._orderedLanguages) {
129
- if (!id || lang.id === id) return lang.highlighter;
125
+ if (!id || lang.id === id)
126
+ return lang.highlighter;
130
127
  }
131
- return 'javascript';
128
+ return "javascript";
132
129
  }
133
130
  async install() {
134
- this._context.on(_browserContext.BrowserContext.Events.Page, page => this._onPage(page));
135
- for (const page of this._context.pages()) this._onPage(page);
136
- this._context.on(_browserContext.BrowserContext.Events.Dialog, dialog => this._onDialog(dialog.page()));
137
-
138
- // Input actions that potentially lead to navigation are intercepted on the page and are
139
- // performed by the Playwright.
140
- await this._context.exposeBinding('__pw_recorderPerformAction', false, (source, action) => this._performAction(source.frame, action));
141
-
142
- // Other non-essential actions are simply being recorded.
143
- await this._context.exposeBinding('__pw_recorderRecordAction', false, (source, action) => this._recordAction(source.frame, action));
131
+ this._context.on(import_browserContext.BrowserContext.Events.Page, (page) => this._onPage(page));
132
+ for (const page of this._context.pages())
133
+ this._onPage(page);
134
+ this._context.on(import_browserContext.BrowserContext.Events.Dialog, (dialog) => this._onDialog(dialog.page()));
135
+ await this._context.exposeBinding(
136
+ "__pw_recorderPerformAction",
137
+ false,
138
+ (source, action) => this._performAction(source.frame, action)
139
+ );
140
+ await this._context.exposeBinding(
141
+ "__pw_recorderRecordAction",
142
+ false,
143
+ (source, action) => this._recordAction(source.frame, action)
144
+ );
144
145
  await this._context.extendInjectedScript(recorderSource.source);
145
146
  }
146
147
  setEnabled(enabled) {
147
148
  this._collection.setEnabled(enabled);
148
- if (this._codegenMode === 'trace-events') {
149
- if (enabled) this._context.tracing.startChunk({
150
- name: 'trace',
151
- title: 'trace'
152
- }).catch(() => {});else this._context.tracing.stopChunk({
153
- mode: 'discard'
154
- }).catch(() => {});
155
- }
156
149
  }
157
150
  dispose() {
158
- _utils.eventsHelper.removeEventListeners(this._listeners);
151
+ import_utils.eventsHelper.removeEventListeners(this._listeners);
159
152
  }
160
153
  async _onPage(page) {
161
- // First page is called page, others are called popup1, popup2, etc.
162
154
  const frame = page.mainFrame();
163
- page.on('close', () => {
155
+ page.on("close", () => {
164
156
  this._collection.addRecordedAction({
165
157
  frame: this._describeMainFrame(page),
166
158
  action: {
167
- name: 'closePage',
159
+ name: "closePage",
168
160
  signals: []
169
161
  },
170
- startTime: (0, _utils.monotonicTime)()
162
+ startTime: (0, import_utils.monotonicTime)()
171
163
  });
172
164
  this._pageAliases.delete(page);
173
165
  });
174
- frame.on(_frames.Frame.Events.InternalNavigation, event => {
175
- if (event.isPublic) this._onFrameNavigated(frame, page);
166
+ frame.on(import_frames.Frame.Events.InternalNavigation, (event) => {
167
+ if (event.isPublic)
168
+ this._onFrameNavigated(frame, page);
176
169
  });
177
- page.on(_page.Page.Events.Download, () => this._onDownload(page));
178
- const suffix = this._pageAliases.size ? String(++this._lastPopupOrdinal) : '';
179
- const pageAlias = 'page' + suffix;
170
+ page.on(import_page.Page.Events.Download, () => this._onDownload(page));
171
+ const suffix = this._pageAliases.size ? String(++this._lastPopupOrdinal) : "";
172
+ const pageAlias = "page" + suffix;
180
173
  this._pageAliases.set(page, pageAlias);
181
174
  if (page.opener()) {
182
175
  this._onPopup(page.opener(), page);
@@ -184,20 +177,23 @@ class ContextRecorder extends _events.EventEmitter {
184
177
  this._collection.addRecordedAction({
185
178
  frame: this._describeMainFrame(page),
186
179
  action: {
187
- name: 'openPage',
180
+ name: "openPage",
188
181
  url: page.mainFrame().url(),
189
182
  signals: []
190
183
  },
191
- startTime: (0, _utils.monotonicTime)()
184
+ startTime: (0, import_utils.monotonicTime)()
192
185
  });
193
186
  }
194
187
  }
195
188
  clearScript() {
196
189
  this._collection.restart();
197
- if (this._params.mode === 'recording') {
198
- for (const page of this._context.pages()) this._onFrameNavigated(page.mainFrame(), page);
190
+ if (this._params.mode === "recording") {
191
+ for (const page of this._context.pages())
192
+ this._onFrameNavigated(page.mainFrame(), page);
199
193
  }
200
194
  }
195
+ runTask(task) {
196
+ }
201
197
  _describeMainFrame(page) {
202
198
  return {
203
199
  pageAlias: this._pageAliases.get(page),
@@ -211,18 +207,17 @@ class ContextRecorder extends _events.EventEmitter {
211
207
  };
212
208
  }
213
209
  testIdAttributeName() {
214
- return this._params.testIdAttributeName || this._context.selectors().testIdAttributeName() || 'data-testid';
210
+ return this._params.testIdAttributeName || this._context.selectors().testIdAttributeName() || "data-testid";
215
211
  }
216
212
  async _createActionInContext(frame, action) {
217
- var _this$_delegate$rewri, _this$_delegate;
218
213
  const frameDescription = await this._describeFrame(frame);
219
214
  const actionInContext = {
220
215
  frame: frameDescription,
221
216
  action,
222
- description: undefined,
223
- startTime: (0, _utils.monotonicTime)()
217
+ description: void 0,
218
+ startTime: (0, import_utils.monotonicTime)()
224
219
  };
225
- await ((_this$_delegate$rewri = (_this$_delegate = this._delegate).rewriteActionInContext) === null || _this$_delegate$rewri === void 0 ? void 0 : _this$_delegate$rewri.call(_this$_delegate, this._pageAliases, actionInContext));
220
+ await this._delegate.rewriteActionInContext?.(this._pageAliases, actionInContext);
226
221
  return actionInContext;
227
222
  }
228
223
  async _performAction(frame, action) {
@@ -233,45 +228,30 @@ class ContextRecorder extends _events.EventEmitter {
233
228
  }
234
229
  _onFrameNavigated(frame, page) {
235
230
  const pageAlias = this._pageAliases.get(page);
236
- this._collection.signal(pageAlias, frame, {
237
- name: 'navigation',
238
- url: frame.url()
239
- });
231
+ this._collection.signal(pageAlias, frame, { name: "navigation", url: frame.url() });
240
232
  }
241
233
  _onPopup(page, popup) {
242
234
  const pageAlias = this._pageAliases.get(page);
243
235
  const popupAlias = this._pageAliases.get(popup);
244
- this._collection.signal(pageAlias, page.mainFrame(), {
245
- name: 'popup',
246
- popupAlias
247
- });
236
+ this._collection.signal(pageAlias, page.mainFrame(), { name: "popup", popupAlias });
248
237
  }
249
238
  _onDownload(page) {
250
239
  const pageAlias = this._pageAliases.get(page);
251
240
  ++this._lastDownloadOrdinal;
252
- this._collection.signal(pageAlias, page.mainFrame(), {
253
- name: 'download',
254
- downloadAlias: this._lastDownloadOrdinal ? String(this._lastDownloadOrdinal) : ''
255
- });
241
+ this._collection.signal(pageAlias, page.mainFrame(), { name: "download", downloadAlias: this._lastDownloadOrdinal ? String(this._lastDownloadOrdinal) : "" });
256
242
  }
257
243
  _onDialog(page) {
258
244
  const pageAlias = this._pageAliases.get(page);
259
245
  ++this._lastDialogOrdinal;
260
- this._collection.signal(pageAlias, page.mainFrame(), {
261
- name: 'dialog',
262
- dialogAlias: this._lastDialogOrdinal ? String(this._lastDialogOrdinal) : ''
263
- });
246
+ this._collection.signal(pageAlias, page.mainFrame(), { name: "dialog", dialogAlias: this._lastDialogOrdinal ? String(this._lastDialogOrdinal) : "" });
264
247
  }
265
248
  }
266
- exports.ContextRecorder = ContextRecorder;
267
- ContextRecorder.Events = {
268
- Change: 'change'
269
- };
270
249
  async function generateFrameSelector(frame) {
271
250
  const selectorPromises = [];
272
251
  while (frame) {
273
252
  const parent = frame.parentFrame();
274
- if (!parent) break;
253
+ if (!parent)
254
+ break;
275
255
  selectorPromises.push(generateFrameSelectorInParent(parent, frame));
276
256
  frame = parent;
277
257
  }
@@ -279,21 +259,28 @@ async function generateFrameSelector(frame) {
279
259
  return result.reverse();
280
260
  }
281
261
  async function generateFrameSelectorInParent(parent, frame) {
282
- const result = await (0, _timeoutRunner.raceAgainstDeadline)(async () => {
262
+ const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
283
263
  try {
284
264
  const frameElement = await frame.frameElement();
285
- if (!frameElement || !parent) return;
265
+ if (!frameElement || !parent)
266
+ return;
286
267
  const utility = await parent._utilityContext();
287
268
  const injected = await utility.injectedScript();
288
- const selector = await injected.evaluate((injected, element) => {
289
- return injected.generateSelectorSimple(element);
269
+ const selector = await injected.evaluate((injected2, element) => {
270
+ return injected2.generateSelectorSimple(element);
290
271
  }, frameElement);
291
272
  return selector;
292
273
  } catch (e) {
293
- return e.toString();
294
274
  }
295
- }, (0, _utils.monotonicTime)() + 2000);
296
- if (!result.timedOut && result.result) return result.result;
297
- if (frame.name()) return `iframe[name=${(0, _utils.quoteCSSAttributeValue)(frame.name())}]`;
298
- return `iframe[src=${(0, _utils.quoteCSSAttributeValue)(frame.url())}]`;
299
- }
275
+ }, (0, import_utils.monotonicTime)() + 2e3);
276
+ if (!result.timedOut && result.result)
277
+ return result.result;
278
+ if (frame.name())
279
+ return `iframe[name=${(0, import_utils.quoteCSSAttributeValue)(frame.name())}]`;
280
+ return `iframe[src=${(0, import_utils.quoteCSSAttributeValue)(frame.url())}]`;
281
+ }
282
+ // Annotate the CommonJS export names for ESM import in node:
283
+ 0 && (module.exports = {
284
+ ContextRecorder,
285
+ generateFrameSelector
286
+ });