@stablyai/internal-playwright-core 0.1.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 (405) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +1134 -0
  5. package/bin/install_media_pack.ps1 +5 -0
  6. package/bin/install_webkit_wsl.ps1 +35 -0
  7. package/bin/reinstall_chrome_beta_linux.sh +42 -0
  8. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  9. package/bin/reinstall_chrome_beta_win.ps1 +24 -0
  10. package/bin/reinstall_chrome_stable_linux.sh +42 -0
  11. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  12. package/bin/reinstall_chrome_stable_win.ps1 +24 -0
  13. package/bin/reinstall_msedge_beta_linux.sh +48 -0
  14. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  15. package/bin/reinstall_msedge_beta_win.ps1 +23 -0
  16. package/bin/reinstall_msedge_dev_linux.sh +48 -0
  17. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  18. package/bin/reinstall_msedge_dev_win.ps1 +23 -0
  19. package/bin/reinstall_msedge_stable_linux.sh +48 -0
  20. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  21. package/bin/reinstall_msedge_stable_win.ps1 +24 -0
  22. package/browsers.json +80 -0
  23. package/cli.js +18 -0
  24. package/index.d.ts +17 -0
  25. package/index.js +32 -0
  26. package/index.mjs +28 -0
  27. package/lib/androidServerImpl.js +65 -0
  28. package/lib/browserServerImpl.js +120 -0
  29. package/lib/cli/cli.js +58 -0
  30. package/lib/cli/driver.js +97 -0
  31. package/lib/cli/program.js +634 -0
  32. package/lib/cli/programWithTestStub.js +74 -0
  33. package/lib/client/accessibility.js +49 -0
  34. package/lib/client/android.js +361 -0
  35. package/lib/client/api.js +137 -0
  36. package/lib/client/artifact.js +79 -0
  37. package/lib/client/browser.js +163 -0
  38. package/lib/client/browserContext.js +529 -0
  39. package/lib/client/browserType.js +184 -0
  40. package/lib/client/cdpSession.js +51 -0
  41. package/lib/client/channelOwner.js +194 -0
  42. package/lib/client/clientHelper.js +64 -0
  43. package/lib/client/clientInstrumentation.js +55 -0
  44. package/lib/client/clientStackTrace.js +69 -0
  45. package/lib/client/clock.js +68 -0
  46. package/lib/client/connection.js +314 -0
  47. package/lib/client/consoleMessage.js +54 -0
  48. package/lib/client/coverage.js +44 -0
  49. package/lib/client/dialog.js +56 -0
  50. package/lib/client/download.js +62 -0
  51. package/lib/client/electron.js +138 -0
  52. package/lib/client/elementHandle.js +281 -0
  53. package/lib/client/errors.js +77 -0
  54. package/lib/client/eventEmitter.js +314 -0
  55. package/lib/client/events.js +99 -0
  56. package/lib/client/fetch.js +369 -0
  57. package/lib/client/fileChooser.js +46 -0
  58. package/lib/client/fileUtils.js +34 -0
  59. package/lib/client/frame.js +408 -0
  60. package/lib/client/harRouter.js +87 -0
  61. package/lib/client/input.js +84 -0
  62. package/lib/client/jsHandle.js +109 -0
  63. package/lib/client/jsonPipe.js +39 -0
  64. package/lib/client/localUtils.js +60 -0
  65. package/lib/client/locator.js +368 -0
  66. package/lib/client/network.js +747 -0
  67. package/lib/client/page.js +721 -0
  68. package/lib/client/platform.js +74 -0
  69. package/lib/client/playwright.js +71 -0
  70. package/lib/client/selectors.js +55 -0
  71. package/lib/client/stream.js +39 -0
  72. package/lib/client/timeoutSettings.js +79 -0
  73. package/lib/client/tracing.js +117 -0
  74. package/lib/client/types.js +28 -0
  75. package/lib/client/video.js +59 -0
  76. package/lib/client/waiter.js +142 -0
  77. package/lib/client/webError.js +39 -0
  78. package/lib/client/webSocket.js +93 -0
  79. package/lib/client/worker.js +63 -0
  80. package/lib/client/writableStream.js +39 -0
  81. package/lib/common/debugLogger.js +90 -0
  82. package/lib/common/socksProxy.js +569 -0
  83. package/lib/common/timeoutSettings.js +73 -0
  84. package/lib/common/types.js +5 -0
  85. package/lib/generated/bindingsControllerSource.js +28 -0
  86. package/lib/generated/clockSource.js +28 -0
  87. package/lib/generated/consoleApiSource.js +28 -0
  88. package/lib/generated/injectedScriptSource.js +28 -0
  89. package/lib/generated/pollingRecorderSource.js +28 -0
  90. package/lib/generated/recorderSource.js +28 -0
  91. package/lib/generated/storageScriptSource.js +28 -0
  92. package/lib/generated/utilityScriptSource.js +28 -0
  93. package/lib/generated/webSocketMockSource.js +336 -0
  94. package/lib/image_tools/colorUtils.js +98 -0
  95. package/lib/image_tools/compare.js +108 -0
  96. package/lib/image_tools/imageChannel.js +70 -0
  97. package/lib/image_tools/stats.js +102 -0
  98. package/lib/inProcessFactory.js +60 -0
  99. package/lib/index.js +19 -0
  100. package/lib/inprocess.js +3 -0
  101. package/lib/outofprocess.js +76 -0
  102. package/lib/protocol/debug.js +27 -0
  103. package/lib/protocol/serializers.js +192 -0
  104. package/lib/protocol/transport.js +82 -0
  105. package/lib/protocol/validator.js +2919 -0
  106. package/lib/protocol/validatorPrimitives.js +193 -0
  107. package/lib/remote/playwrightConnection.js +129 -0
  108. package/lib/remote/playwrightServer.js +335 -0
  109. package/lib/server/accessibility.js +69 -0
  110. package/lib/server/android/android.js +465 -0
  111. package/lib/server/android/backendAdb.js +177 -0
  112. package/lib/server/artifact.js +127 -0
  113. package/lib/server/bidi/bidiBrowser.js +490 -0
  114. package/lib/server/bidi/bidiChromium.js +153 -0
  115. package/lib/server/bidi/bidiConnection.js +212 -0
  116. package/lib/server/bidi/bidiExecutionContext.js +221 -0
  117. package/lib/server/bidi/bidiFirefox.js +130 -0
  118. package/lib/server/bidi/bidiInput.js +146 -0
  119. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  120. package/lib/server/bidi/bidiOverCdp.js +102 -0
  121. package/lib/server/bidi/bidiPage.js +552 -0
  122. package/lib/server/bidi/bidiPdf.js +106 -0
  123. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  124. package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
  125. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  126. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  127. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  128. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  129. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  130. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  131. package/lib/server/browser.js +149 -0
  132. package/lib/server/browserContext.js +695 -0
  133. package/lib/server/browserType.js +328 -0
  134. package/lib/server/callLog.js +82 -0
  135. package/lib/server/chromium/appIcon.png +0 -0
  136. package/lib/server/chromium/chromium.js +402 -0
  137. package/lib/server/chromium/chromiumSwitches.js +95 -0
  138. package/lib/server/chromium/crAccessibility.js +263 -0
  139. package/lib/server/chromium/crBrowser.js +501 -0
  140. package/lib/server/chromium/crConnection.js +202 -0
  141. package/lib/server/chromium/crCoverage.js +235 -0
  142. package/lib/server/chromium/crDevTools.js +113 -0
  143. package/lib/server/chromium/crDragDrop.js +131 -0
  144. package/lib/server/chromium/crExecutionContext.js +146 -0
  145. package/lib/server/chromium/crInput.js +187 -0
  146. package/lib/server/chromium/crNetworkManager.js +666 -0
  147. package/lib/server/chromium/crPage.js +1069 -0
  148. package/lib/server/chromium/crPdf.js +121 -0
  149. package/lib/server/chromium/crProtocolHelper.js +145 -0
  150. package/lib/server/chromium/crServiceWorker.js +123 -0
  151. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  152. package/lib/server/chromium/protocol.d.js +16 -0
  153. package/lib/server/chromium/videoRecorder.js +113 -0
  154. package/lib/server/clock.js +149 -0
  155. package/lib/server/codegen/csharp.js +327 -0
  156. package/lib/server/codegen/java.js +274 -0
  157. package/lib/server/codegen/javascript.js +270 -0
  158. package/lib/server/codegen/jsonl.js +52 -0
  159. package/lib/server/codegen/language.js +132 -0
  160. package/lib/server/codegen/languages.js +68 -0
  161. package/lib/server/codegen/python.js +279 -0
  162. package/lib/server/codegen/types.js +16 -0
  163. package/lib/server/console.js +53 -0
  164. package/lib/server/cookieStore.js +206 -0
  165. package/lib/server/debugController.js +191 -0
  166. package/lib/server/debugger.js +119 -0
  167. package/lib/server/deviceDescriptors.js +39 -0
  168. package/lib/server/deviceDescriptorsSource.json +1779 -0
  169. package/lib/server/dialog.js +116 -0
  170. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  171. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  172. package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
  173. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  174. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  175. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  176. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  177. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  178. package/lib/server/dispatchers/dispatcher.js +371 -0
  179. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  180. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  181. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  182. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  183. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  184. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  185. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  186. package/lib/server/dispatchers/pageDispatcher.js +401 -0
  187. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  188. package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  189. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  190. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  191. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  192. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  193. package/lib/server/dom.js +806 -0
  194. package/lib/server/download.js +70 -0
  195. package/lib/server/electron/electron.js +270 -0
  196. package/lib/server/electron/loader.js +29 -0
  197. package/lib/server/errors.js +69 -0
  198. package/lib/server/fetch.js +621 -0
  199. package/lib/server/fileChooser.js +43 -0
  200. package/lib/server/fileUploadUtils.js +84 -0
  201. package/lib/server/firefox/ffAccessibility.js +238 -0
  202. package/lib/server/firefox/ffBrowser.js +428 -0
  203. package/lib/server/firefox/ffConnection.js +147 -0
  204. package/lib/server/firefox/ffExecutionContext.js +150 -0
  205. package/lib/server/firefox/ffInput.js +159 -0
  206. package/lib/server/firefox/ffNetworkManager.js +256 -0
  207. package/lib/server/firefox/ffPage.js +503 -0
  208. package/lib/server/firefox/firefox.js +116 -0
  209. package/lib/server/firefox/protocol.d.js +16 -0
  210. package/lib/server/formData.js +147 -0
  211. package/lib/server/frameSelectors.js +156 -0
  212. package/lib/server/frames.js +1502 -0
  213. package/lib/server/har/harRecorder.js +147 -0
  214. package/lib/server/har/harTracer.js +607 -0
  215. package/lib/server/harBackend.js +157 -0
  216. package/lib/server/helper.js +96 -0
  217. package/lib/server/index.js +58 -0
  218. package/lib/server/input.js +273 -0
  219. package/lib/server/instrumentation.js +69 -0
  220. package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
  221. package/lib/server/javascript.js +291 -0
  222. package/lib/server/launchApp.js +128 -0
  223. package/lib/server/localUtils.js +218 -0
  224. package/lib/server/macEditingCommands.js +143 -0
  225. package/lib/server/network.js +629 -0
  226. package/lib/server/page.js +871 -0
  227. package/lib/server/pipeTransport.js +89 -0
  228. package/lib/server/playwright.js +69 -0
  229. package/lib/server/progress.js +112 -0
  230. package/lib/server/protocolError.js +52 -0
  231. package/lib/server/recorder/chat.js +161 -0
  232. package/lib/server/recorder/codeGenerator.js +153 -0
  233. package/lib/server/recorder/csharp.js +310 -0
  234. package/lib/server/recorder/java.js +248 -0
  235. package/lib/server/recorder/javascript.js +229 -0
  236. package/lib/server/recorder/jsonl.js +47 -0
  237. package/lib/server/recorder/language.js +44 -0
  238. package/lib/server/recorder/python.js +276 -0
  239. package/lib/server/recorder/recorderActions.js +5 -0
  240. package/lib/server/recorder/recorderApp.js +387 -0
  241. package/lib/server/recorder/recorderRunner.js +138 -0
  242. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  243. package/lib/server/recorder/recorderUtils.js +157 -0
  244. package/lib/server/recorder/throttledFile.js +57 -0
  245. package/lib/server/recorder/utils.js +45 -0
  246. package/lib/server/recorder.js +499 -0
  247. package/lib/server/registry/browserFetcher.js +175 -0
  248. package/lib/server/registry/dependencies.js +371 -0
  249. package/lib/server/registry/index.js +1331 -0
  250. package/lib/server/registry/nativeDeps.js +1280 -0
  251. package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
  252. package/lib/server/screenshotter.js +333 -0
  253. package/lib/server/selectors.js +112 -0
  254. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  255. package/lib/server/socksInterceptor.js +95 -0
  256. package/lib/server/stably/ai-tools/http-request.js +70 -0
  257. package/lib/server/stably/ai-tools/stablyApiCaller.js +137 -0
  258. package/lib/server/stably/autohealing/elementHandleFromCoordinates.js +64 -0
  259. package/lib/server/stably/autohealing/healingService.js +228 -0
  260. package/lib/server/stably/autohealing/screenshotFrame.js +41 -0
  261. package/lib/server/stably/constants.js +31 -0
  262. package/lib/server/trace/recorder/snapshotter.js +147 -0
  263. package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
  264. package/lib/server/trace/recorder/tracing.js +602 -0
  265. package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
  266. package/lib/server/trace/viewer/traceViewer.js +240 -0
  267. package/lib/server/transport.js +181 -0
  268. package/lib/server/types.js +28 -0
  269. package/lib/server/usKeyboardLayout.js +145 -0
  270. package/lib/server/utils/ascii.js +44 -0
  271. package/lib/server/utils/comparators.js +161 -0
  272. package/lib/server/utils/crypto.js +216 -0
  273. package/lib/server/utils/debug.js +42 -0
  274. package/lib/server/utils/debugLogger.js +122 -0
  275. package/lib/server/utils/env.js +73 -0
  276. package/lib/server/utils/eventsHelper.js +39 -0
  277. package/lib/server/utils/expectUtils.js +38 -0
  278. package/lib/server/utils/fileUtils.js +191 -0
  279. package/lib/server/utils/happyEyeballs.js +207 -0
  280. package/lib/server/utils/hostPlatform.js +111 -0
  281. package/lib/server/utils/httpServer.js +218 -0
  282. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  283. package/lib/server/utils/image_tools/compare.js +109 -0
  284. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  285. package/lib/server/utils/image_tools/stats.js +102 -0
  286. package/lib/server/utils/linuxUtils.js +71 -0
  287. package/lib/server/utils/network.js +233 -0
  288. package/lib/server/utils/nodePlatform.js +148 -0
  289. package/lib/server/utils/pipeTransport.js +84 -0
  290. package/lib/server/utils/processLauncher.js +241 -0
  291. package/lib/server/utils/profiler.js +65 -0
  292. package/lib/server/utils/socksProxy.js +511 -0
  293. package/lib/server/utils/spawnAsync.js +41 -0
  294. package/lib/server/utils/task.js +51 -0
  295. package/lib/server/utils/userAgent.js +98 -0
  296. package/lib/server/utils/wsServer.js +121 -0
  297. package/lib/server/utils/zipFile.js +74 -0
  298. package/lib/server/utils/zones.js +57 -0
  299. package/lib/server/webkit/protocol.d.js +16 -0
  300. package/lib/server/webkit/webkit.js +119 -0
  301. package/lib/server/webkit/wkAccessibility.js +237 -0
  302. package/lib/server/webkit/wkBrowser.js +339 -0
  303. package/lib/server/webkit/wkConnection.js +149 -0
  304. package/lib/server/webkit/wkExecutionContext.js +154 -0
  305. package/lib/server/webkit/wkInput.js +181 -0
  306. package/lib/server/webkit/wkInterceptableRequest.js +169 -0
  307. package/lib/server/webkit/wkPage.js +1134 -0
  308. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  309. package/lib/server/webkit/wkWorkers.js +104 -0
  310. package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
  311. package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
  312. package/lib/third_party/diff_match_patch.js +2222 -0
  313. package/lib/third_party/pixelmatch.js +255 -0
  314. package/lib/utils/ascii.js +31 -0
  315. package/lib/utils/comparators.js +171 -0
  316. package/lib/utils/crypto.js +33 -0
  317. package/lib/utils/debug.js +46 -0
  318. package/lib/utils/debugLogger.js +89 -0
  319. package/lib/utils/env.js +49 -0
  320. package/lib/utils/eventsHelper.js +38 -0
  321. package/lib/utils/fileUtils.js +205 -0
  322. package/lib/utils/glob.js +83 -0
  323. package/lib/utils/happy-eyeballs.js +160 -0
  324. package/lib/utils/headers.js +52 -0
  325. package/lib/utils/hostPlatform.js +128 -0
  326. package/lib/utils/httpServer.js +236 -0
  327. package/lib/utils/index.js +346 -0
  328. package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
  329. package/lib/utils/isomorphic/assert.js +31 -0
  330. package/lib/utils/isomorphic/colors.js +72 -0
  331. package/lib/utils/isomorphic/cssParser.js +245 -0
  332. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  333. package/lib/utils/isomorphic/headers.js +53 -0
  334. package/lib/utils/isomorphic/locatorGenerators.js +673 -0
  335. package/lib/utils/isomorphic/locatorParser.js +176 -0
  336. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  337. package/lib/utils/isomorphic/manualPromise.js +114 -0
  338. package/lib/utils/isomorphic/mimeType.js +459 -0
  339. package/lib/utils/isomorphic/multimap.js +80 -0
  340. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  341. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  342. package/lib/utils/isomorphic/rtti.js +43 -0
  343. package/lib/utils/isomorphic/selectorParser.js +386 -0
  344. package/lib/utils/isomorphic/semaphore.js +54 -0
  345. package/lib/utils/isomorphic/stackTrace.js +158 -0
  346. package/lib/utils/isomorphic/stringUtils.js +155 -0
  347. package/lib/utils/isomorphic/time.js +49 -0
  348. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  349. package/lib/utils/isomorphic/traceUtils.js +58 -0
  350. package/lib/utils/isomorphic/types.js +16 -0
  351. package/lib/utils/isomorphic/urlMatch.js +176 -0
  352. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  353. package/lib/utils/linuxUtils.js +78 -0
  354. package/lib/utils/manualPromise.js +109 -0
  355. package/lib/utils/mimeType.js +29 -0
  356. package/lib/utils/multimap.js +75 -0
  357. package/lib/utils/network.js +188 -0
  358. package/lib/utils/processLauncher.js +248 -0
  359. package/lib/utils/profiler.js +53 -0
  360. package/lib/utils/rtti.js +44 -0
  361. package/lib/utils/semaphore.js +51 -0
  362. package/lib/utils/spawnAsync.js +45 -0
  363. package/lib/utils/stackTrace.js +121 -0
  364. package/lib/utils/task.js +58 -0
  365. package/lib/utils/time.js +37 -0
  366. package/lib/utils/timeoutRunner.js +66 -0
  367. package/lib/utils/traceUtils.js +44 -0
  368. package/lib/utils/userAgent.js +105 -0
  369. package/lib/utils/wsServer.js +127 -0
  370. package/lib/utils/zipFile.js +75 -0
  371. package/lib/utils/zones.js +62 -0
  372. package/lib/utils.js +107 -0
  373. package/lib/utilsBundle.js +109 -0
  374. package/lib/utilsBundleImpl/index.js +218 -0
  375. package/lib/utilsBundleImpl/xdg-open +1066 -0
  376. package/lib/vite/htmlReport/index.html +84 -0
  377. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
  378. package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
  379. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  380. package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
  381. package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
  382. package/lib/vite/recorder/index.html +29 -0
  383. package/lib/vite/recorder/playwright-logo.svg +9 -0
  384. package/lib/vite/traceViewer/assets/codeMirrorModule-Bhnc5o2x.js +24 -0
  385. package/lib/vite/traceViewer/assets/defaultSettingsView-ClwvkA2N.js +265 -0
  386. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  387. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
  388. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  389. package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
  390. package/lib/vite/traceViewer/index.DFO9NNF5.js +2 -0
  391. package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
  392. package/lib/vite/traceViewer/index.html +43 -0
  393. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  394. package/lib/vite/traceViewer/snapshot.html +21 -0
  395. package/lib/vite/traceViewer/sw.bundle.js +3 -0
  396. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  397. package/lib/vite/traceViewer/uiMode.Shu3QS-1.js +5 -0
  398. package/lib/vite/traceViewer/uiMode.html +17 -0
  399. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  400. package/lib/zipBundle.js +34 -0
  401. package/lib/zipBundleImpl.js +5 -0
  402. package/package.json +43 -0
  403. package/types/protocol.d.ts +23130 -0
  404. package/types/structs.d.ts +45 -0
  405. package/types/types.d.ts +22857 -0
@@ -0,0 +1,74 @@
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 platform_exports = {};
20
+ __export(platform_exports, {
21
+ emptyPlatform: () => emptyPlatform
22
+ });
23
+ module.exports = __toCommonJS(platform_exports);
24
+ var import_colors = require("../utils/isomorphic/colors");
25
+ const noopZone = {
26
+ push: () => noopZone,
27
+ pop: () => noopZone,
28
+ run: (func) => func(),
29
+ data: () => void 0
30
+ };
31
+ const emptyPlatform = {
32
+ name: "empty",
33
+ boxedStackPrefixes: () => [],
34
+ calculateSha1: async () => {
35
+ throw new Error("Not implemented");
36
+ },
37
+ colors: import_colors.webColors,
38
+ createGuid: () => {
39
+ throw new Error("Not implemented");
40
+ },
41
+ defaultMaxListeners: () => 10,
42
+ env: {},
43
+ fs: () => {
44
+ throw new Error("Not implemented");
45
+ },
46
+ inspectCustom: void 0,
47
+ isDebugMode: () => false,
48
+ isJSDebuggerAttached: () => false,
49
+ isLogEnabled(name) {
50
+ return false;
51
+ },
52
+ isUnderTest: () => false,
53
+ log(name, message) {
54
+ },
55
+ path: () => {
56
+ throw new Error("Function not implemented.");
57
+ },
58
+ pathSeparator: "/",
59
+ showInternalStackFrames: () => false,
60
+ streamFile(path, writable) {
61
+ throw new Error("Streams are not available");
62
+ },
63
+ streamReadable: (channel) => {
64
+ throw new Error("Streams are not available");
65
+ },
66
+ streamWritable: (channel) => {
67
+ throw new Error("Streams are not available");
68
+ },
69
+ zones: { empty: noopZone, current: () => noopZone }
70
+ };
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 && (module.exports = {
73
+ emptyPlatform
74
+ });
@@ -0,0 +1,71 @@
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 playwright_exports = {};
20
+ __export(playwright_exports, {
21
+ Playwright: () => Playwright
22
+ });
23
+ module.exports = __toCommonJS(playwright_exports);
24
+ var import_android = require("./android");
25
+ var import_browser = require("./browser");
26
+ var import_browserType = require("./browserType");
27
+ var import_channelOwner = require("./channelOwner");
28
+ var import_electron = require("./electron");
29
+ var import_errors = require("./errors");
30
+ var import_fetch = require("./fetch");
31
+ var import_selectors = require("./selectors");
32
+ class Playwright extends import_channelOwner.ChannelOwner {
33
+ constructor(parent, type, guid, initializer) {
34
+ super(parent, type, guid, initializer);
35
+ this.request = new import_fetch.APIRequest(this);
36
+ this.chromium = import_browserType.BrowserType.from(initializer.chromium);
37
+ this.chromium._playwright = this;
38
+ this.firefox = import_browserType.BrowserType.from(initializer.firefox);
39
+ this.firefox._playwright = this;
40
+ this.webkit = import_browserType.BrowserType.from(initializer.webkit);
41
+ this.webkit._playwright = this;
42
+ this._android = import_android.Android.from(initializer.android);
43
+ this._android._playwright = this;
44
+ this._electron = import_electron.Electron.from(initializer.electron);
45
+ this._electron._playwright = this;
46
+ this.devices = this._connection.localUtils()?.devices ?? {};
47
+ this.selectors = new import_selectors.Selectors(this._connection._platform);
48
+ this.errors = { TimeoutError: import_errors.TimeoutError };
49
+ }
50
+ static from(channel) {
51
+ return channel._object;
52
+ }
53
+ _browserTypes() {
54
+ return [this.chromium, this.firefox, this.webkit];
55
+ }
56
+ _preLaunchedBrowser() {
57
+ const browser = import_browser.Browser.from(this._initializer.preLaunchedBrowser);
58
+ browser._connectToBrowserType(this[browser._name], {}, void 0);
59
+ return browser;
60
+ }
61
+ _allContexts() {
62
+ return this._browserTypes().flatMap((type) => [...type._contexts]);
63
+ }
64
+ _allPages() {
65
+ return this._allContexts().flatMap((context) => context.pages());
66
+ }
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ Playwright
71
+ });
@@ -0,0 +1,55 @@
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 selectors_exports = {};
20
+ __export(selectors_exports, {
21
+ Selectors: () => Selectors
22
+ });
23
+ module.exports = __toCommonJS(selectors_exports);
24
+ var import_clientHelper = require("./clientHelper");
25
+ var import_locator = require("./locator");
26
+ class Selectors {
27
+ constructor(platform) {
28
+ this._selectorEngines = [];
29
+ this._contextsForSelectors = /* @__PURE__ */ new Set();
30
+ this._platform = platform;
31
+ }
32
+ async register(name, script, options = {}) {
33
+ if (this._selectorEngines.some((engine) => engine.name === name))
34
+ throw new Error(`selectors.register: "${name}" selector engine has been already registered`);
35
+ const source = await (0, import_clientHelper.evaluationScript)(this._platform, script, void 0, false);
36
+ const selectorEngine = { ...options, name, source };
37
+ for (const context of this._contextsForSelectors)
38
+ await context._channel.registerSelectorEngine({ selectorEngine });
39
+ this._selectorEngines.push(selectorEngine);
40
+ }
41
+ setTestIdAttribute(attributeName) {
42
+ this._testIdAttributeName = attributeName;
43
+ (0, import_locator.setTestIdAttribute)(attributeName);
44
+ for (const context of this._contextsForSelectors)
45
+ context._channel.setTestIdAttributeName({ testIdAttributeName: attributeName }).catch(() => {
46
+ });
47
+ }
48
+ _withSelectorOptions(options) {
49
+ return { ...options, selectorEngines: this._selectorEngines, testIdAttributeName: this._testIdAttributeName };
50
+ }
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ Selectors
55
+ });
@@ -0,0 +1,39 @@
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 stream_exports = {};
20
+ __export(stream_exports, {
21
+ Stream: () => Stream
22
+ });
23
+ module.exports = __toCommonJS(stream_exports);
24
+ var import_channelOwner = require("./channelOwner");
25
+ class Stream extends import_channelOwner.ChannelOwner {
26
+ static from(Stream2) {
27
+ return Stream2._object;
28
+ }
29
+ constructor(parent, type, guid, initializer) {
30
+ super(parent, type, guid, initializer);
31
+ }
32
+ stream() {
33
+ return this._platform.streamReadable(this._channel);
34
+ }
35
+ }
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ Stream
39
+ });
@@ -0,0 +1,79 @@
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 timeoutSettings_exports = {};
20
+ __export(timeoutSettings_exports, {
21
+ TimeoutSettings: () => TimeoutSettings
22
+ });
23
+ module.exports = __toCommonJS(timeoutSettings_exports);
24
+ var import_time = require("../utils/isomorphic/time");
25
+ class TimeoutSettings {
26
+ constructor(platform, parent) {
27
+ this._parent = parent;
28
+ this._platform = platform;
29
+ }
30
+ setDefaultTimeout(timeout) {
31
+ this._defaultTimeout = timeout;
32
+ }
33
+ setDefaultNavigationTimeout(timeout) {
34
+ this._defaultNavigationTimeout = timeout;
35
+ }
36
+ defaultNavigationTimeout() {
37
+ return this._defaultNavigationTimeout;
38
+ }
39
+ defaultTimeout() {
40
+ return this._defaultTimeout;
41
+ }
42
+ navigationTimeout(options) {
43
+ if (typeof options.timeout === "number")
44
+ return options.timeout;
45
+ if (this._defaultNavigationTimeout !== void 0)
46
+ return this._defaultNavigationTimeout;
47
+ if (this._platform.isDebugMode())
48
+ return 0;
49
+ if (this._defaultTimeout !== void 0)
50
+ return this._defaultTimeout;
51
+ if (this._parent)
52
+ return this._parent.navigationTimeout(options);
53
+ return import_time.DEFAULT_PLAYWRIGHT_TIMEOUT;
54
+ }
55
+ timeout(options) {
56
+ if (typeof options.timeout === "number")
57
+ return options.timeout;
58
+ if (this._platform.isDebugMode())
59
+ return 0;
60
+ if (this._defaultTimeout !== void 0)
61
+ return this._defaultTimeout;
62
+ if (this._parent)
63
+ return this._parent.timeout(options);
64
+ return import_time.DEFAULT_PLAYWRIGHT_TIMEOUT;
65
+ }
66
+ launchTimeout(options) {
67
+ if (typeof options.timeout === "number")
68
+ return options.timeout;
69
+ if (this._platform.isDebugMode())
70
+ return 0;
71
+ if (this._parent)
72
+ return this._parent.launchTimeout(options);
73
+ return import_time.DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT;
74
+ }
75
+ }
76
+ // Annotate the CommonJS export names for ESM import in node:
77
+ 0 && (module.exports = {
78
+ TimeoutSettings
79
+ });
@@ -0,0 +1,117 @@
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 tracing_exports = {};
20
+ __export(tracing_exports, {
21
+ Tracing: () => Tracing
22
+ });
23
+ module.exports = __toCommonJS(tracing_exports);
24
+ var import_artifact = require("./artifact");
25
+ var import_channelOwner = require("./channelOwner");
26
+ class Tracing extends import_channelOwner.ChannelOwner {
27
+ constructor(parent, type, guid, initializer) {
28
+ super(parent, type, guid, initializer);
29
+ this._includeSources = false;
30
+ this._isTracing = false;
31
+ }
32
+ static from(channel) {
33
+ return channel._object;
34
+ }
35
+ async start(options = {}) {
36
+ await this._wrapApiCall(async () => {
37
+ this._includeSources = !!options.sources;
38
+ await this._channel.tracingStart({
39
+ name: options.name,
40
+ snapshots: options.snapshots,
41
+ screenshots: options.screenshots,
42
+ live: options._live
43
+ });
44
+ const { traceName } = await this._channel.tracingStartChunk({ name: options.name, title: options.title });
45
+ await this._startCollectingStacks(traceName);
46
+ });
47
+ }
48
+ async startChunk(options = {}) {
49
+ await this._wrapApiCall(async () => {
50
+ const { traceName } = await this._channel.tracingStartChunk(options);
51
+ await this._startCollectingStacks(traceName);
52
+ });
53
+ }
54
+ async group(name, options = {}) {
55
+ await this._channel.tracingGroup({ name, location: options.location });
56
+ }
57
+ async groupEnd() {
58
+ await this._channel.tracingGroupEnd();
59
+ }
60
+ async _startCollectingStacks(traceName) {
61
+ if (!this._isTracing) {
62
+ this._isTracing = true;
63
+ this._connection.setIsTracing(true);
64
+ }
65
+ const result = await this._connection.localUtils()?.tracingStarted({ tracesDir: this._tracesDir, traceName });
66
+ this._stacksId = result?.stacksId;
67
+ }
68
+ async stopChunk(options = {}) {
69
+ await this._wrapApiCall(async () => {
70
+ await this._doStopChunk(options.path);
71
+ });
72
+ }
73
+ async stop(options = {}) {
74
+ await this._wrapApiCall(async () => {
75
+ await this._doStopChunk(options.path);
76
+ await this._channel.tracingStop();
77
+ });
78
+ }
79
+ async _doStopChunk(filePath) {
80
+ this._resetStackCounter();
81
+ if (!filePath) {
82
+ await this._channel.tracingStopChunk({ mode: "discard" });
83
+ if (this._stacksId)
84
+ await this._connection.localUtils().traceDiscarded({ stacksId: this._stacksId });
85
+ return;
86
+ }
87
+ const localUtils = this._connection.localUtils();
88
+ if (!localUtils)
89
+ throw new Error("Cannot save trace in thin clients");
90
+ const isLocal = !this._connection.isRemote();
91
+ if (isLocal) {
92
+ const result2 = await this._channel.tracingStopChunk({ mode: "entries" });
93
+ await localUtils.zip({ zipFile: filePath, entries: result2.entries, mode: "write", stacksId: this._stacksId, includeSources: this._includeSources });
94
+ return;
95
+ }
96
+ const result = await this._channel.tracingStopChunk({ mode: "archive" });
97
+ if (!result.artifact) {
98
+ if (this._stacksId)
99
+ await localUtils.traceDiscarded({ stacksId: this._stacksId });
100
+ return;
101
+ }
102
+ const artifact = import_artifact.Artifact.from(result.artifact);
103
+ await artifact.saveAs(filePath);
104
+ await artifact.delete();
105
+ await localUtils.zip({ zipFile: filePath, entries: [], mode: "append", stacksId: this._stacksId, includeSources: this._includeSources });
106
+ }
107
+ _resetStackCounter() {
108
+ if (this._isTracing) {
109
+ this._isTracing = false;
110
+ this._connection.setIsTracing(false);
111
+ }
112
+ }
113
+ }
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ Tracing
117
+ });
@@ -0,0 +1,28 @@
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 types_exports = {};
20
+ __export(types_exports, {
21
+ kLifecycleEvents: () => kLifecycleEvents
22
+ });
23
+ module.exports = __toCommonJS(types_exports);
24
+ const kLifecycleEvents = /* @__PURE__ */ new Set(["load", "domcontentloaded", "networkidle", "commit"]);
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ kLifecycleEvents
28
+ });
@@ -0,0 +1,59 @@
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 video_exports = {};
20
+ __export(video_exports, {
21
+ Video: () => Video
22
+ });
23
+ module.exports = __toCommonJS(video_exports);
24
+ var import_manualPromise = require("../utils/isomorphic/manualPromise");
25
+ class Video {
26
+ constructor(page, connection) {
27
+ this._artifact = null;
28
+ this._artifactReadyPromise = new import_manualPromise.ManualPromise();
29
+ this._isRemote = false;
30
+ this._isRemote = connection.isRemote();
31
+ this._artifact = page._closedOrCrashedScope.safeRace(this._artifactReadyPromise);
32
+ }
33
+ _artifactReady(artifact) {
34
+ this._artifactReadyPromise.resolve(artifact);
35
+ }
36
+ async path() {
37
+ if (this._isRemote)
38
+ throw new Error(`Path is not available when connecting remotely. Use saveAs() to save a local copy.`);
39
+ const artifact = await this._artifact;
40
+ if (!artifact)
41
+ throw new Error("Page did not produce any video frames");
42
+ return artifact._initializer.absolutePath;
43
+ }
44
+ async saveAs(path) {
45
+ const artifact = await this._artifact;
46
+ if (!artifact)
47
+ throw new Error("Page did not produce any video frames");
48
+ return await artifact.saveAs(path);
49
+ }
50
+ async delete() {
51
+ const artifact = await this._artifact;
52
+ if (artifact)
53
+ await artifact.delete();
54
+ }
55
+ }
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ Video
59
+ });
@@ -0,0 +1,142 @@
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 waiter_exports = {};
20
+ __export(waiter_exports, {
21
+ Waiter: () => Waiter
22
+ });
23
+ module.exports = __toCommonJS(waiter_exports);
24
+ var import_errors = require("./errors");
25
+ var import_stackTrace = require("../utils/isomorphic/stackTrace");
26
+ class Waiter {
27
+ constructor(channelOwner, event) {
28
+ this._failures = [];
29
+ this._logs = [];
30
+ this._waitId = channelOwner._platform.createGuid();
31
+ this._channelOwner = channelOwner;
32
+ this._savedZone = channelOwner._platform.zones.current().pop();
33
+ this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "before", event } }).catch(() => {
34
+ });
35
+ this._dispose = [
36
+ () => this._channelOwner._wrapApiCall(async () => {
37
+ await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "after", error: this._error } });
38
+ }, { internal: true }).catch(() => {
39
+ })
40
+ ];
41
+ }
42
+ static createForEvent(channelOwner, event) {
43
+ return new Waiter(channelOwner, event);
44
+ }
45
+ async waitForEvent(emitter, event, predicate) {
46
+ const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
47
+ return await this.waitForPromise(promise, dispose);
48
+ }
49
+ rejectOnEvent(emitter, event, error, predicate) {
50
+ const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
51
+ this._rejectOn(promise.then(() => {
52
+ throw typeof error === "function" ? error() : error;
53
+ }), dispose);
54
+ }
55
+ rejectOnTimeout(timeout, message) {
56
+ if (!timeout)
57
+ return;
58
+ const { promise, dispose } = waitForTimeout(timeout);
59
+ this._rejectOn(promise.then(() => {
60
+ throw new import_errors.TimeoutError(message);
61
+ }), dispose);
62
+ }
63
+ rejectImmediately(error) {
64
+ this._immediateError = error;
65
+ }
66
+ dispose() {
67
+ for (const dispose of this._dispose)
68
+ dispose();
69
+ }
70
+ async waitForPromise(promise, dispose) {
71
+ try {
72
+ if (this._immediateError)
73
+ throw this._immediateError;
74
+ const result = await Promise.race([promise, ...this._failures]);
75
+ if (dispose)
76
+ dispose();
77
+ return result;
78
+ } catch (e) {
79
+ if (dispose)
80
+ dispose();
81
+ this._error = e.message;
82
+ this.dispose();
83
+ (0, import_stackTrace.rewriteErrorMessage)(e, e.message + formatLogRecording(this._logs));
84
+ throw e;
85
+ }
86
+ }
87
+ log(s) {
88
+ this._logs.push(s);
89
+ this._channelOwner._wrapApiCall(async () => {
90
+ await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "log", message: s } });
91
+ }, { internal: true }).catch(() => {
92
+ });
93
+ }
94
+ _rejectOn(promise, dispose) {
95
+ this._failures.push(promise);
96
+ if (dispose)
97
+ this._dispose.push(dispose);
98
+ }
99
+ }
100
+ function waitForEvent(emitter, event, savedZone, predicate) {
101
+ let listener;
102
+ const promise = new Promise((resolve, reject) => {
103
+ listener = async (eventArg) => {
104
+ await savedZone.run(async () => {
105
+ try {
106
+ if (predicate && !await predicate(eventArg))
107
+ return;
108
+ emitter.removeListener(event, listener);
109
+ resolve(eventArg);
110
+ } catch (e) {
111
+ emitter.removeListener(event, listener);
112
+ reject(e);
113
+ }
114
+ });
115
+ };
116
+ emitter.addListener(event, listener);
117
+ });
118
+ const dispose = () => emitter.removeListener(event, listener);
119
+ return { promise, dispose };
120
+ }
121
+ function waitForTimeout(timeout) {
122
+ let timeoutId;
123
+ const promise = new Promise((resolve) => timeoutId = setTimeout(resolve, timeout));
124
+ const dispose = () => clearTimeout(timeoutId);
125
+ return { promise, dispose };
126
+ }
127
+ function formatLogRecording(log) {
128
+ if (!log.length)
129
+ return "";
130
+ const header = ` logs `;
131
+ const headerLength = 60;
132
+ const leftLength = (headerLength - header.length) / 2;
133
+ const rightLength = headerLength - header.length - leftLength;
134
+ return `
135
+ ${"=".repeat(leftLength)}${header}${"=".repeat(rightLength)}
136
+ ${log.join("\n")}
137
+ ${"=".repeat(headerLength)}`;
138
+ }
139
+ // Annotate the CommonJS export names for ESM import in node:
140
+ 0 && (module.exports = {
141
+ Waiter
142
+ });