@pedropaulovc/playwright-core 1.59.0-alpha-1769214875000

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 (364) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +4076 -0
  5. package/bin/install_media_pack.ps1 +5 -0
  6. package/bin/install_webkit_wsl.ps1 +33 -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 +79 -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/driver.js +97 -0
  30. package/lib/cli/program.js +601 -0
  31. package/lib/cli/programWithTestStub.js +74 -0
  32. package/lib/client/android.js +361 -0
  33. package/lib/client/api.js +137 -0
  34. package/lib/client/artifact.js +79 -0
  35. package/lib/client/browser.js +161 -0
  36. package/lib/client/browserContext.js +582 -0
  37. package/lib/client/browserType.js +185 -0
  38. package/lib/client/cdpSession.js +51 -0
  39. package/lib/client/channelOwner.js +194 -0
  40. package/lib/client/clientHelper.js +64 -0
  41. package/lib/client/clientInstrumentation.js +55 -0
  42. package/lib/client/clientStackTrace.js +69 -0
  43. package/lib/client/clock.js +68 -0
  44. package/lib/client/connection.js +318 -0
  45. package/lib/client/consoleMessage.js +58 -0
  46. package/lib/client/coverage.js +44 -0
  47. package/lib/client/dialog.js +56 -0
  48. package/lib/client/download.js +62 -0
  49. package/lib/client/electron.js +138 -0
  50. package/lib/client/elementHandle.js +284 -0
  51. package/lib/client/errors.js +77 -0
  52. package/lib/client/eventEmitter.js +314 -0
  53. package/lib/client/events.js +103 -0
  54. package/lib/client/fetch.js +368 -0
  55. package/lib/client/fileChooser.js +46 -0
  56. package/lib/client/fileUtils.js +34 -0
  57. package/lib/client/frame.js +409 -0
  58. package/lib/client/harRouter.js +87 -0
  59. package/lib/client/input.js +84 -0
  60. package/lib/client/jsHandle.js +109 -0
  61. package/lib/client/jsonPipe.js +39 -0
  62. package/lib/client/localUtils.js +60 -0
  63. package/lib/client/locator.js +369 -0
  64. package/lib/client/network.js +747 -0
  65. package/lib/client/page.js +743 -0
  66. package/lib/client/pageAgent.js +64 -0
  67. package/lib/client/platform.js +77 -0
  68. package/lib/client/playwright.js +71 -0
  69. package/lib/client/selectors.js +55 -0
  70. package/lib/client/stream.js +39 -0
  71. package/lib/client/timeoutSettings.js +79 -0
  72. package/lib/client/tracing.js +119 -0
  73. package/lib/client/types.js +28 -0
  74. package/lib/client/video.js +59 -0
  75. package/lib/client/waiter.js +142 -0
  76. package/lib/client/webError.js +39 -0
  77. package/lib/client/webSocket.js +93 -0
  78. package/lib/client/worker.js +85 -0
  79. package/lib/client/writableStream.js +39 -0
  80. package/lib/generated/bindingsControllerSource.js +28 -0
  81. package/lib/generated/clockSource.js +28 -0
  82. package/lib/generated/injectedScriptSource.js +28 -0
  83. package/lib/generated/pollingRecorderSource.js +28 -0
  84. package/lib/generated/storageScriptSource.js +28 -0
  85. package/lib/generated/utilityScriptSource.js +28 -0
  86. package/lib/generated/webSocketMockSource.js +336 -0
  87. package/lib/inProcessFactory.js +60 -0
  88. package/lib/inprocess.js +3 -0
  89. package/lib/mcpBundle.js +84 -0
  90. package/lib/mcpBundleImpl/index.js +147 -0
  91. package/lib/outofprocess.js +76 -0
  92. package/lib/protocol/serializers.js +197 -0
  93. package/lib/protocol/validator.js +2969 -0
  94. package/lib/protocol/validatorPrimitives.js +193 -0
  95. package/lib/remote/playwrightConnection.js +129 -0
  96. package/lib/remote/playwrightServer.js +334 -0
  97. package/lib/server/agent/actionRunner.js +335 -0
  98. package/lib/server/agent/actions.js +128 -0
  99. package/lib/server/agent/codegen.js +111 -0
  100. package/lib/server/agent/context.js +150 -0
  101. package/lib/server/agent/expectTools.js +156 -0
  102. package/lib/server/agent/pageAgent.js +204 -0
  103. package/lib/server/agent/performTools.js +262 -0
  104. package/lib/server/agent/tool.js +109 -0
  105. package/lib/server/android/android.js +465 -0
  106. package/lib/server/android/backendAdb.js +177 -0
  107. package/lib/server/artifact.js +127 -0
  108. package/lib/server/bidi/bidiBrowser.js +549 -0
  109. package/lib/server/bidi/bidiChromium.js +148 -0
  110. package/lib/server/bidi/bidiConnection.js +213 -0
  111. package/lib/server/bidi/bidiDeserializer.js +116 -0
  112. package/lib/server/bidi/bidiExecutionContext.js +267 -0
  113. package/lib/server/bidi/bidiFirefox.js +128 -0
  114. package/lib/server/bidi/bidiInput.js +146 -0
  115. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  116. package/lib/server/bidi/bidiOverCdp.js +102 -0
  117. package/lib/server/bidi/bidiPage.js +583 -0
  118. package/lib/server/bidi/bidiPdf.js +106 -0
  119. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  120. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  121. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  122. package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -0
  123. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  124. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  125. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  126. package/lib/server/browser.js +149 -0
  127. package/lib/server/browserContext.js +702 -0
  128. package/lib/server/browserType.js +336 -0
  129. package/lib/server/callLog.js +82 -0
  130. package/lib/server/chromium/appIcon.png +0 -0
  131. package/lib/server/chromium/chromium.js +395 -0
  132. package/lib/server/chromium/chromiumSwitches.js +104 -0
  133. package/lib/server/chromium/crBrowser.js +511 -0
  134. package/lib/server/chromium/crConnection.js +197 -0
  135. package/lib/server/chromium/crCoverage.js +235 -0
  136. package/lib/server/chromium/crDevTools.js +111 -0
  137. package/lib/server/chromium/crDragDrop.js +131 -0
  138. package/lib/server/chromium/crExecutionContext.js +146 -0
  139. package/lib/server/chromium/crInput.js +187 -0
  140. package/lib/server/chromium/crNetworkManager.js +707 -0
  141. package/lib/server/chromium/crPage.js +1001 -0
  142. package/lib/server/chromium/crPdf.js +121 -0
  143. package/lib/server/chromium/crProtocolHelper.js +145 -0
  144. package/lib/server/chromium/crServiceWorker.js +136 -0
  145. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  146. package/lib/server/chromium/protocol.d.js +16 -0
  147. package/lib/server/clock.js +149 -0
  148. package/lib/server/codegen/csharp.js +327 -0
  149. package/lib/server/codegen/java.js +274 -0
  150. package/lib/server/codegen/javascript.js +247 -0
  151. package/lib/server/codegen/jsonl.js +52 -0
  152. package/lib/server/codegen/language.js +132 -0
  153. package/lib/server/codegen/languages.js +68 -0
  154. package/lib/server/codegen/python.js +279 -0
  155. package/lib/server/codegen/types.js +16 -0
  156. package/lib/server/console.js +57 -0
  157. package/lib/server/cookieStore.js +206 -0
  158. package/lib/server/debugController.js +191 -0
  159. package/lib/server/debugger.js +119 -0
  160. package/lib/server/deviceDescriptors.js +39 -0
  161. package/lib/server/deviceDescriptorsSource.json +1779 -0
  162. package/lib/server/dialog.js +116 -0
  163. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  164. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  165. package/lib/server/dispatchers/browserContextDispatcher.js +384 -0
  166. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  167. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  168. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  169. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  170. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  171. package/lib/server/dispatchers/dispatcher.js +364 -0
  172. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  173. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  174. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  175. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  176. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  177. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  178. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  179. package/lib/server/dispatchers/pageAgentDispatcher.js +96 -0
  180. package/lib/server/dispatchers/pageDispatcher.js +393 -0
  181. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  182. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  183. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  184. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  185. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  186. package/lib/server/dom.js +815 -0
  187. package/lib/server/download.js +70 -0
  188. package/lib/server/electron/electron.js +273 -0
  189. package/lib/server/electron/loader.js +29 -0
  190. package/lib/server/errors.js +69 -0
  191. package/lib/server/fetch.js +621 -0
  192. package/lib/server/fileChooser.js +43 -0
  193. package/lib/server/fileUploadUtils.js +84 -0
  194. package/lib/server/firefox/ffBrowser.js +418 -0
  195. package/lib/server/firefox/ffConnection.js +142 -0
  196. package/lib/server/firefox/ffExecutionContext.js +150 -0
  197. package/lib/server/firefox/ffInput.js +159 -0
  198. package/lib/server/firefox/ffNetworkManager.js +256 -0
  199. package/lib/server/firefox/ffPage.js +497 -0
  200. package/lib/server/firefox/firefox.js +114 -0
  201. package/lib/server/firefox/protocol.d.js +16 -0
  202. package/lib/server/formData.js +147 -0
  203. package/lib/server/frameSelectors.js +160 -0
  204. package/lib/server/frames.js +1471 -0
  205. package/lib/server/har/harRecorder.js +147 -0
  206. package/lib/server/har/harTracer.js +607 -0
  207. package/lib/server/harBackend.js +157 -0
  208. package/lib/server/helper.js +96 -0
  209. package/lib/server/index.js +58 -0
  210. package/lib/server/input.js +277 -0
  211. package/lib/server/instrumentation.js +72 -0
  212. package/lib/server/javascript.js +291 -0
  213. package/lib/server/launchApp.js +128 -0
  214. package/lib/server/localUtils.js +214 -0
  215. package/lib/server/macEditingCommands.js +143 -0
  216. package/lib/server/network.js +667 -0
  217. package/lib/server/page.js +830 -0
  218. package/lib/server/pipeTransport.js +89 -0
  219. package/lib/server/playwright.js +69 -0
  220. package/lib/server/progress.js +132 -0
  221. package/lib/server/protocolError.js +52 -0
  222. package/lib/server/recorder/chat.js +161 -0
  223. package/lib/server/recorder/recorderApp.js +366 -0
  224. package/lib/server/recorder/recorderRunner.js +138 -0
  225. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  226. package/lib/server/recorder/recorderUtils.js +157 -0
  227. package/lib/server/recorder/throttledFile.js +57 -0
  228. package/lib/server/recorder.js +499 -0
  229. package/lib/server/registry/browserFetcher.js +177 -0
  230. package/lib/server/registry/dependencies.js +371 -0
  231. package/lib/server/registry/index.js +1422 -0
  232. package/lib/server/registry/nativeDeps.js +1280 -0
  233. package/lib/server/registry/oopDownloadBrowserMain.js +127 -0
  234. package/lib/server/screencast.js +190 -0
  235. package/lib/server/screenshotter.js +333 -0
  236. package/lib/server/selectors.js +112 -0
  237. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  238. package/lib/server/socksInterceptor.js +95 -0
  239. package/lib/server/trace/exporter/traceExporter.js +1102 -0
  240. package/lib/server/trace/recorder/snapshotter.js +147 -0
  241. package/lib/server/trace/recorder/snapshotterInjected.js +561 -0
  242. package/lib/server/trace/recorder/tracing.js +604 -0
  243. package/lib/server/trace/viewer/traceParser.js +72 -0
  244. package/lib/server/trace/viewer/traceViewer.js +245 -0
  245. package/lib/server/transport.js +181 -0
  246. package/lib/server/types.js +28 -0
  247. package/lib/server/usKeyboardLayout.js +145 -0
  248. package/lib/server/utils/ascii.js +44 -0
  249. package/lib/server/utils/comparators.js +139 -0
  250. package/lib/server/utils/crypto.js +216 -0
  251. package/lib/server/utils/debug.js +42 -0
  252. package/lib/server/utils/debugLogger.js +122 -0
  253. package/lib/server/utils/env.js +73 -0
  254. package/lib/server/utils/eventsHelper.js +39 -0
  255. package/lib/server/utils/expectUtils.js +123 -0
  256. package/lib/server/utils/fileUtils.js +191 -0
  257. package/lib/server/utils/happyEyeballs.js +207 -0
  258. package/lib/server/utils/hostPlatform.js +123 -0
  259. package/lib/server/utils/httpServer.js +203 -0
  260. package/lib/server/utils/imageUtils.js +141 -0
  261. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  262. package/lib/server/utils/image_tools/compare.js +109 -0
  263. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  264. package/lib/server/utils/image_tools/stats.js +102 -0
  265. package/lib/server/utils/linuxUtils.js +71 -0
  266. package/lib/server/utils/network.js +242 -0
  267. package/lib/server/utils/nodePlatform.js +154 -0
  268. package/lib/server/utils/pipeTransport.js +84 -0
  269. package/lib/server/utils/processLauncher.js +241 -0
  270. package/lib/server/utils/profiler.js +65 -0
  271. package/lib/server/utils/socksProxy.js +511 -0
  272. package/lib/server/utils/spawnAsync.js +41 -0
  273. package/lib/server/utils/task.js +51 -0
  274. package/lib/server/utils/userAgent.js +98 -0
  275. package/lib/server/utils/wsServer.js +121 -0
  276. package/lib/server/utils/zipFile.js +74 -0
  277. package/lib/server/utils/zones.js +57 -0
  278. package/lib/server/videoRecorder.js +124 -0
  279. package/lib/server/webkit/protocol.d.js +16 -0
  280. package/lib/server/webkit/webkit.js +108 -0
  281. package/lib/server/webkit/wkBrowser.js +335 -0
  282. package/lib/server/webkit/wkConnection.js +144 -0
  283. package/lib/server/webkit/wkExecutionContext.js +154 -0
  284. package/lib/server/webkit/wkInput.js +181 -0
  285. package/lib/server/webkit/wkInterceptableRequest.js +197 -0
  286. package/lib/server/webkit/wkPage.js +1158 -0
  287. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  288. package/lib/server/webkit/wkWorkers.js +105 -0
  289. package/lib/third_party/pixelmatch.js +255 -0
  290. package/lib/utils/isomorphic/ariaSnapshot.js +455 -0
  291. package/lib/utils/isomorphic/assert.js +31 -0
  292. package/lib/utils/isomorphic/colors.js +72 -0
  293. package/lib/utils/isomorphic/cssParser.js +245 -0
  294. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  295. package/lib/utils/isomorphic/headers.js +53 -0
  296. package/lib/utils/isomorphic/locatorGenerators.js +689 -0
  297. package/lib/utils/isomorphic/locatorParser.js +176 -0
  298. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  299. package/lib/utils/isomorphic/lruCache.js +51 -0
  300. package/lib/utils/isomorphic/manualPromise.js +114 -0
  301. package/lib/utils/isomorphic/mimeType.js +459 -0
  302. package/lib/utils/isomorphic/multimap.js +80 -0
  303. package/lib/utils/isomorphic/protocolFormatter.js +81 -0
  304. package/lib/utils/isomorphic/protocolMetainfo.js +330 -0
  305. package/lib/utils/isomorphic/rtti.js +43 -0
  306. package/lib/utils/isomorphic/selectorParser.js +386 -0
  307. package/lib/utils/isomorphic/semaphore.js +54 -0
  308. package/lib/utils/isomorphic/stackTrace.js +158 -0
  309. package/lib/utils/isomorphic/stringUtils.js +204 -0
  310. package/lib/utils/isomorphic/time.js +49 -0
  311. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  312. package/lib/utils/isomorphic/trace/entries.js +16 -0
  313. package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -0
  314. package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
  315. package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
  316. package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
  317. package/lib/utils/isomorphic/trace/traceModel.js +365 -0
  318. package/lib/utils/isomorphic/trace/traceModernizer.js +400 -0
  319. package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
  320. package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
  321. package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
  322. package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
  323. package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
  324. package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
  325. package/lib/utils/isomorphic/traceUtils.js +58 -0
  326. package/lib/utils/isomorphic/types.js +16 -0
  327. package/lib/utils/isomorphic/urlMatch.js +190 -0
  328. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  329. package/lib/utils/isomorphic/yaml.js +84 -0
  330. package/lib/utils.js +111 -0
  331. package/lib/utilsBundle.js +112 -0
  332. package/lib/utilsBundleImpl/index.js +218 -0
  333. package/lib/utilsBundleImpl/xdg-open +1066 -0
  334. package/lib/vite/htmlReport/index.html +84 -0
  335. package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -0
  336. package/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +32 -0
  337. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  338. package/lib/vite/recorder/assets/index-BSjZa4pk.css +1 -0
  339. package/lib/vite/recorder/assets/index-BhTWtUlo.js +193 -0
  340. package/lib/vite/recorder/index.html +29 -0
  341. package/lib/vite/recorder/playwright-logo.svg +9 -0
  342. package/lib/vite/traceViewer/assets/codeMirrorModule-a5XoALAZ.js +32 -0
  343. package/lib/vite/traceViewer/assets/defaultSettingsView-CJSZINFr.js +266 -0
  344. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  345. package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
  346. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  347. package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -0
  348. package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
  349. package/lib/vite/traceViewer/index.Dd9jebqr.js +2 -0
  350. package/lib/vite/traceViewer/index.html +43 -0
  351. package/lib/vite/traceViewer/manifest.webmanifest +16 -0
  352. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  353. package/lib/vite/traceViewer/snapshot.html +21 -0
  354. package/lib/vite/traceViewer/sw.bundle.js +5 -0
  355. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  356. package/lib/vite/traceViewer/uiMode.CQJ9SCIQ.js +5 -0
  357. package/lib/vite/traceViewer/uiMode.html +17 -0
  358. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  359. package/lib/zipBundle.js +34 -0
  360. package/lib/zipBundleImpl.js +5 -0
  361. package/package.json +43 -0
  362. package/types/protocol.d.ts +23824 -0
  363. package/types/structs.d.ts +45 -0
  364. package/types/types.d.ts +23170 -0
@@ -0,0 +1,89 @@
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 snapshotStorage_exports = {};
20
+ __export(snapshotStorage_exports, {
21
+ SnapshotStorage: () => SnapshotStorage
22
+ });
23
+ module.exports = __toCommonJS(snapshotStorage_exports);
24
+ var import_snapshotRenderer = require("./snapshotRenderer");
25
+ var import_lruCache = require("../lruCache");
26
+ class SnapshotStorage {
27
+ constructor() {
28
+ this._frameSnapshots = /* @__PURE__ */ new Map();
29
+ this._cache = new import_lruCache.LRUCache(1e8);
30
+ // 100MB per each trace
31
+ this._contextToResources = /* @__PURE__ */ new Map();
32
+ this._resourceUrlsWithOverrides = /* @__PURE__ */ new Set();
33
+ }
34
+ addResource(contextId, resource) {
35
+ resource.request.url = (0, import_snapshotRenderer.rewriteURLForCustomProtocol)(resource.request.url);
36
+ this._ensureResourcesForContext(contextId).push(resource);
37
+ }
38
+ addFrameSnapshot(contextId, snapshot, screencastFrames) {
39
+ for (const override of snapshot.resourceOverrides)
40
+ override.url = (0, import_snapshotRenderer.rewriteURLForCustomProtocol)(override.url);
41
+ let frameSnapshots = this._frameSnapshots.get(snapshot.frameId);
42
+ if (!frameSnapshots) {
43
+ frameSnapshots = {
44
+ raw: [],
45
+ renderers: []
46
+ };
47
+ this._frameSnapshots.set(snapshot.frameId, frameSnapshots);
48
+ if (snapshot.isMainFrame)
49
+ this._frameSnapshots.set(snapshot.pageId, frameSnapshots);
50
+ }
51
+ frameSnapshots.raw.push(snapshot);
52
+ const resources = this._ensureResourcesForContext(contextId);
53
+ const renderer = new import_snapshotRenderer.SnapshotRenderer(this._cache, resources, frameSnapshots.raw, screencastFrames, frameSnapshots.raw.length - 1);
54
+ frameSnapshots.renderers.push(renderer);
55
+ return renderer;
56
+ }
57
+ snapshotByName(pageOrFrameId, snapshotName) {
58
+ const snapshot = this._frameSnapshots.get(pageOrFrameId);
59
+ return snapshot?.renderers.find((r) => r.snapshotName === snapshotName);
60
+ }
61
+ snapshotsForTest() {
62
+ return [...this._frameSnapshots.keys()];
63
+ }
64
+ finalize() {
65
+ for (const resources of this._contextToResources.values())
66
+ resources.sort((a, b) => (a._monotonicTime || 0) - (b._monotonicTime || 0));
67
+ for (const frameSnapshots of this._frameSnapshots.values()) {
68
+ for (const snapshot of frameSnapshots.raw) {
69
+ for (const override of snapshot.resourceOverrides)
70
+ this._resourceUrlsWithOverrides.add(override.url);
71
+ }
72
+ }
73
+ }
74
+ hasResourceOverride(url) {
75
+ return this._resourceUrlsWithOverrides.has(url);
76
+ }
77
+ _ensureResourcesForContext(contextId) {
78
+ let resources = this._contextToResources.get(contextId);
79
+ if (!resources) {
80
+ resources = [];
81
+ this._contextToResources.set(contextId, resources);
82
+ }
83
+ return resources;
84
+ }
85
+ }
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ SnapshotStorage
89
+ });
@@ -0,0 +1,131 @@
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 traceLoader_exports = {};
20
+ __export(traceLoader_exports, {
21
+ TraceLoader: () => TraceLoader
22
+ });
23
+ module.exports = __toCommonJS(traceLoader_exports);
24
+ var import_traceUtils = require("@isomorphic/traceUtils");
25
+ var import_snapshotStorage = require("./snapshotStorage");
26
+ var import_traceModernizer = require("./traceModernizer");
27
+ class TraceLoader {
28
+ constructor() {
29
+ this.contextEntries = [];
30
+ this._resourceToContentType = /* @__PURE__ */ new Map();
31
+ }
32
+ async load(backend, unzipProgress) {
33
+ this._backend = backend;
34
+ const ordinals = [];
35
+ let hasSource = false;
36
+ for (const entryName of await this._backend.entryNames()) {
37
+ const match = entryName.match(/(.+)\.trace$/);
38
+ if (match)
39
+ ordinals.push(match[1] || "");
40
+ if (entryName.includes("src@"))
41
+ hasSource = true;
42
+ }
43
+ if (!ordinals.length)
44
+ throw new Error("Cannot find .trace file");
45
+ this._snapshotStorage = new import_snapshotStorage.SnapshotStorage();
46
+ const total = ordinals.length * 3;
47
+ let done = 0;
48
+ for (const ordinal of ordinals) {
49
+ const contextEntry = createEmptyContext();
50
+ contextEntry.hasSource = hasSource;
51
+ const modernizer = new import_traceModernizer.TraceModernizer(contextEntry, this._snapshotStorage);
52
+ const trace = await this._backend.readText(ordinal + ".trace") || "";
53
+ modernizer.appendTrace(trace);
54
+ unzipProgress(++done, total);
55
+ const network = await this._backend.readText(ordinal + ".network") || "";
56
+ modernizer.appendTrace(network);
57
+ unzipProgress(++done, total);
58
+ contextEntry.actions = modernizer.actions().sort((a1, a2) => a1.startTime - a2.startTime);
59
+ if (!backend.isLive()) {
60
+ for (const action of contextEntry.actions.slice().reverse()) {
61
+ if (!action.endTime && !action.error) {
62
+ for (const a of contextEntry.actions) {
63
+ if (a.parentId === action.callId && action.endTime < a.endTime)
64
+ action.endTime = a.endTime;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ const stacks = await this._backend.readText(ordinal + ".stacks");
70
+ if (stacks) {
71
+ const callMetadata = (0, import_traceUtils.parseClientSideCallMetadata)(JSON.parse(stacks));
72
+ for (const action of contextEntry.actions)
73
+ action.stack = action.stack || callMetadata.get(action.callId);
74
+ }
75
+ unzipProgress(++done, total);
76
+ for (const resource of contextEntry.resources) {
77
+ if (resource.request.postData?._sha1)
78
+ this._resourceToContentType.set(resource.request.postData._sha1, stripEncodingFromContentType(resource.request.postData.mimeType));
79
+ if (resource.response.content?._sha1)
80
+ this._resourceToContentType.set(resource.response.content._sha1, stripEncodingFromContentType(resource.response.content.mimeType));
81
+ }
82
+ this.contextEntries.push(contextEntry);
83
+ }
84
+ this._snapshotStorage.finalize();
85
+ }
86
+ async hasEntry(filename) {
87
+ return this._backend.hasEntry(filename);
88
+ }
89
+ async resourceForSha1(sha1) {
90
+ const blob = await this._backend.readBlob("resources/" + sha1);
91
+ const contentType = this._resourceToContentType.get(sha1);
92
+ if (!blob || contentType === void 0 || contentType === "x-unknown")
93
+ return blob;
94
+ return new Blob([blob], { type: contentType });
95
+ }
96
+ storage() {
97
+ return this._snapshotStorage;
98
+ }
99
+ }
100
+ function stripEncodingFromContentType(contentType) {
101
+ const charset = contentType.match(/^(.*);\s*charset=.*$/);
102
+ if (charset)
103
+ return charset[1];
104
+ return contentType;
105
+ }
106
+ function createEmptyContext() {
107
+ return {
108
+ origin: "testRunner",
109
+ startTime: Number.MAX_SAFE_INTEGER,
110
+ wallTime: Number.MAX_SAFE_INTEGER,
111
+ endTime: 0,
112
+ browserName: "",
113
+ options: {
114
+ deviceScaleFactor: 1,
115
+ isMobile: false,
116
+ viewport: { width: 1280, height: 800 }
117
+ },
118
+ pages: [],
119
+ resources: [],
120
+ actions: [],
121
+ events: [],
122
+ errors: [],
123
+ stdio: [],
124
+ hasSource: false,
125
+ contextId: ""
126
+ };
127
+ }
128
+ // Annotate the CommonJS export names for ESM import in node:
129
+ 0 && (module.exports = {
130
+ TraceLoader
131
+ });
@@ -0,0 +1,365 @@
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 traceModel_exports = {};
20
+ __export(traceModel_exports, {
21
+ TraceModel: () => TraceModel,
22
+ buildActionTree: () => buildActionTree,
23
+ context: () => context,
24
+ eventsForAction: () => eventsForAction,
25
+ nextActionByStartTime: () => nextActionByStartTime,
26
+ previousActionByEndTime: () => previousActionByEndTime,
27
+ stats: () => stats
28
+ });
29
+ module.exports = __toCommonJS(traceModel_exports);
30
+ var import_protocolFormatter = require("@isomorphic/protocolFormatter");
31
+ const contextSymbol = Symbol("context");
32
+ const nextInContextSymbol = Symbol("nextInContext");
33
+ const prevByEndTimeSymbol = Symbol("prevByEndTime");
34
+ const nextByStartTimeSymbol = Symbol("nextByStartTime");
35
+ const eventsSymbol = Symbol("events");
36
+ class TraceModel {
37
+ constructor(traceUri, contexts) {
38
+ contexts.forEach((contextEntry) => indexModel(contextEntry));
39
+ const libraryContext = contexts.find((context2) => context2.origin === "library");
40
+ this.traceUri = traceUri;
41
+ this.browserName = libraryContext?.browserName || "";
42
+ this.sdkLanguage = libraryContext?.sdkLanguage;
43
+ this.channel = libraryContext?.channel;
44
+ this.testIdAttributeName = libraryContext?.testIdAttributeName;
45
+ this.platform = libraryContext?.platform || "";
46
+ this.playwrightVersion = contexts.find((c) => c.playwrightVersion)?.playwrightVersion;
47
+ this.title = libraryContext?.title || "";
48
+ this.options = libraryContext?.options || {};
49
+ this.actions = mergeActionsAndUpdateTiming(contexts);
50
+ this.pages = [].concat(...contexts.map((c) => c.pages));
51
+ this.wallTime = contexts.map((c) => c.wallTime).reduce((prev, cur) => Math.min(prev || Number.MAX_VALUE, cur), Number.MAX_VALUE);
52
+ this.startTime = contexts.map((c) => c.startTime).reduce((prev, cur) => Math.min(prev, cur), Number.MAX_VALUE);
53
+ this.endTime = contexts.map((c) => c.endTime).reduce((prev, cur) => Math.max(prev, cur), Number.MIN_VALUE);
54
+ this.events = [].concat(...contexts.map((c) => c.events));
55
+ this.stdio = [].concat(...contexts.map((c) => c.stdio));
56
+ this.errors = [].concat(...contexts.map((c) => c.errors));
57
+ this.hasSource = contexts.some((c) => c.hasSource);
58
+ this.hasStepData = contexts.some((context2) => context2.origin === "testRunner");
59
+ this.resources = [...contexts.map((c) => c.resources)].flat();
60
+ this.attachments = this.actions.flatMap((action) => action.attachments?.map((attachment) => ({ ...attachment, callId: action.callId, traceUri })) ?? []);
61
+ this.visibleAttachments = this.attachments.filter((attachment) => !attachment.name.startsWith("_"));
62
+ this.events.sort((a1, a2) => a1.time - a2.time);
63
+ this.resources.sort((a1, a2) => a1._monotonicTime - a2._monotonicTime);
64
+ this.errorDescriptors = this.hasStepData ? this._errorDescriptorsFromTestRunner() : this._errorDescriptorsFromActions();
65
+ this.sources = collectSources(this.actions, this.errorDescriptors);
66
+ this.actionCounters = /* @__PURE__ */ new Map();
67
+ for (const action of this.actions) {
68
+ action.group = action.group ?? (0, import_protocolFormatter.getActionGroup)({ type: action.class, method: action.method });
69
+ if (action.group)
70
+ this.actionCounters.set(action.group, 1 + (this.actionCounters.get(action.group) || 0));
71
+ }
72
+ }
73
+ createRelativeUrl(path) {
74
+ const url = new URL("http://localhost/" + path);
75
+ url.searchParams.set("trace", this.traceUri);
76
+ return url.toString().substring("http://localhost/".length);
77
+ }
78
+ failedAction() {
79
+ return this.actions.findLast((a) => a.error);
80
+ }
81
+ filteredActions(actionsFilter) {
82
+ const filter = new Set(actionsFilter);
83
+ return this.actions.filter((action) => !action.group || filter.has(action.group));
84
+ }
85
+ renderActionTree(filter) {
86
+ const actions = this.filteredActions(filter ?? []);
87
+ const { rootItem } = buildActionTree(actions);
88
+ const actionTree = [];
89
+ const visit = (actionItem, indent) => {
90
+ const title = (0, import_protocolFormatter.renderTitleForCall)({ ...actionItem.action, type: actionItem.action.class });
91
+ actionTree.push(`${indent}${title || actionItem.id}`);
92
+ for (const child of actionItem.children)
93
+ visit(child, indent + " ");
94
+ };
95
+ rootItem.children.forEach((a) => visit(a, ""));
96
+ return actionTree;
97
+ }
98
+ _errorDescriptorsFromActions() {
99
+ const errors = [];
100
+ for (const action of this.actions || []) {
101
+ if (!action.error?.message)
102
+ continue;
103
+ errors.push({
104
+ action,
105
+ stack: action.stack,
106
+ message: action.error.message
107
+ });
108
+ }
109
+ return errors;
110
+ }
111
+ _errorDescriptorsFromTestRunner() {
112
+ return this.errors.filter((e) => !!e.message).map((error, i) => ({
113
+ stack: error.stack,
114
+ message: error.message
115
+ }));
116
+ }
117
+ }
118
+ function indexModel(context2) {
119
+ for (const page of context2.pages)
120
+ page[contextSymbol] = context2;
121
+ for (let i = 0; i < context2.actions.length; ++i) {
122
+ const action = context2.actions[i];
123
+ action[contextSymbol] = context2;
124
+ }
125
+ let lastNonRouteAction = void 0;
126
+ for (let i = context2.actions.length - 1; i >= 0; i--) {
127
+ const action = context2.actions[i];
128
+ action[nextInContextSymbol] = lastNonRouteAction;
129
+ if (action.class !== "Route")
130
+ lastNonRouteAction = action;
131
+ }
132
+ for (const event of context2.events)
133
+ event[contextSymbol] = context2;
134
+ for (const resource of context2.resources)
135
+ resource[contextSymbol] = context2;
136
+ }
137
+ function mergeActionsAndUpdateTiming(contexts) {
138
+ const result = [];
139
+ const actions = mergeActionsAndUpdateTimingSameTrace(contexts);
140
+ result.push(...actions);
141
+ result.sort((a1, a2) => {
142
+ if (a2.parentId === a1.callId)
143
+ return 1;
144
+ if (a1.parentId === a2.callId)
145
+ return -1;
146
+ return a1.endTime - a2.endTime;
147
+ });
148
+ for (let i = 1; i < result.length; ++i)
149
+ result[i][prevByEndTimeSymbol] = result[i - 1];
150
+ result.sort((a1, a2) => {
151
+ if (a2.parentId === a1.callId)
152
+ return -1;
153
+ if (a1.parentId === a2.callId)
154
+ return 1;
155
+ return a1.startTime - a2.startTime;
156
+ });
157
+ for (let i = 0; i + 1 < result.length; ++i)
158
+ result[i][nextByStartTimeSymbol] = result[i + 1];
159
+ return result;
160
+ }
161
+ let lastTmpStepId = 0;
162
+ function mergeActionsAndUpdateTimingSameTrace(contexts) {
163
+ const map = /* @__PURE__ */ new Map();
164
+ const libraryContexts = contexts.filter((context2) => context2.origin === "library");
165
+ const testRunnerContexts = contexts.filter((context2) => context2.origin === "testRunner");
166
+ if (!testRunnerContexts.length || !libraryContexts.length) {
167
+ return contexts.map((context2) => {
168
+ return context2.actions.map((action) => ({ ...action, context: context2 }));
169
+ }).flat();
170
+ }
171
+ for (const context2 of libraryContexts) {
172
+ for (const action of context2.actions) {
173
+ map.set(action.stepId || `tmp-step@${++lastTmpStepId}`, { ...action, context: context2 });
174
+ }
175
+ }
176
+ const delta = monotonicTimeDeltaBetweenLibraryAndRunner(testRunnerContexts, map);
177
+ if (delta)
178
+ adjustMonotonicTime(libraryContexts, delta);
179
+ const nonPrimaryIdToPrimaryId = /* @__PURE__ */ new Map();
180
+ for (const context2 of testRunnerContexts) {
181
+ for (const action of context2.actions) {
182
+ const existing = action.stepId && map.get(action.stepId);
183
+ if (existing) {
184
+ nonPrimaryIdToPrimaryId.set(action.callId, existing.callId);
185
+ if (action.error)
186
+ existing.error = action.error;
187
+ if (action.attachments)
188
+ existing.attachments = action.attachments;
189
+ if (action.annotations)
190
+ existing.annotations = action.annotations;
191
+ if (action.parentId)
192
+ existing.parentId = nonPrimaryIdToPrimaryId.get(action.parentId) ?? action.parentId;
193
+ if (action.group)
194
+ existing.group = action.group;
195
+ existing.startTime = action.startTime;
196
+ existing.endTime = action.endTime;
197
+ continue;
198
+ }
199
+ if (action.parentId)
200
+ action.parentId = nonPrimaryIdToPrimaryId.get(action.parentId) ?? action.parentId;
201
+ map.set(action.stepId || `tmp-step@${++lastTmpStepId}`, { ...action, context: context2 });
202
+ }
203
+ }
204
+ return [...map.values()];
205
+ }
206
+ function adjustMonotonicTime(contexts, monotonicTimeDelta) {
207
+ for (const context2 of contexts) {
208
+ context2.startTime += monotonicTimeDelta;
209
+ context2.endTime += monotonicTimeDelta;
210
+ for (const action of context2.actions) {
211
+ if (action.startTime)
212
+ action.startTime += monotonicTimeDelta;
213
+ if (action.endTime)
214
+ action.endTime += monotonicTimeDelta;
215
+ }
216
+ for (const event of context2.events)
217
+ event.time += monotonicTimeDelta;
218
+ for (const event of context2.stdio)
219
+ event.timestamp += monotonicTimeDelta;
220
+ for (const page of context2.pages) {
221
+ for (const frame of page.screencastFrames)
222
+ frame.timestamp += monotonicTimeDelta;
223
+ }
224
+ for (const resource of context2.resources) {
225
+ if (resource._monotonicTime)
226
+ resource._monotonicTime += monotonicTimeDelta;
227
+ }
228
+ }
229
+ }
230
+ function monotonicTimeDeltaBetweenLibraryAndRunner(nonPrimaryContexts, libraryActions) {
231
+ for (const context2 of nonPrimaryContexts) {
232
+ for (const action of context2.actions) {
233
+ if (!action.startTime)
234
+ continue;
235
+ const libraryAction = action.stepId ? libraryActions.get(action.stepId) : void 0;
236
+ if (libraryAction)
237
+ return action.startTime - libraryAction.startTime;
238
+ }
239
+ }
240
+ return 0;
241
+ }
242
+ function buildActionTree(actions) {
243
+ const itemMap = /* @__PURE__ */ new Map();
244
+ for (const action of actions) {
245
+ itemMap.set(action.callId, {
246
+ id: action.callId,
247
+ parent: void 0,
248
+ children: [],
249
+ action
250
+ });
251
+ }
252
+ const rootItem = { action: { ...kFakeRootAction }, id: "", parent: void 0, children: [] };
253
+ for (const item of itemMap.values()) {
254
+ rootItem.action.startTime = Math.min(rootItem.action.startTime, item.action.startTime);
255
+ rootItem.action.endTime = Math.max(rootItem.action.endTime, item.action.endTime);
256
+ const parent = item.action.parentId ? itemMap.get(item.action.parentId) || rootItem : rootItem;
257
+ parent.children.push(item);
258
+ item.parent = parent;
259
+ }
260
+ const inheritStack = (item) => {
261
+ for (const child of item.children) {
262
+ child.action.stack = child.action.stack ?? item.action.stack;
263
+ inheritStack(child);
264
+ }
265
+ };
266
+ inheritStack(rootItem);
267
+ return { rootItem, itemMap };
268
+ }
269
+ function context(action) {
270
+ return action[contextSymbol];
271
+ }
272
+ function nextInContext(action) {
273
+ return action[nextInContextSymbol];
274
+ }
275
+ function previousActionByEndTime(action) {
276
+ return action[prevByEndTimeSymbol];
277
+ }
278
+ function nextActionByStartTime(action) {
279
+ return action[nextByStartTimeSymbol];
280
+ }
281
+ function stats(action) {
282
+ let errors = 0;
283
+ let warnings = 0;
284
+ for (const event of eventsForAction(action)) {
285
+ if (event.type === "console") {
286
+ const type = event.messageType;
287
+ if (type === "warning")
288
+ ++warnings;
289
+ else if (type === "error")
290
+ ++errors;
291
+ }
292
+ if (event.type === "event" && event.method === "pageError")
293
+ ++errors;
294
+ }
295
+ return { errors, warnings };
296
+ }
297
+ function eventsForAction(action) {
298
+ let result = action[eventsSymbol];
299
+ if (result)
300
+ return result;
301
+ const nextAction = nextInContext(action);
302
+ result = context(action).events.filter((event) => {
303
+ return event.time >= action.startTime && (!nextAction || event.time < nextAction.startTime);
304
+ });
305
+ action[eventsSymbol] = result;
306
+ return result;
307
+ }
308
+ function collectSources(actions, errorDescriptors) {
309
+ const result = /* @__PURE__ */ new Map();
310
+ for (const action of actions) {
311
+ for (const frame of action.stack || []) {
312
+ let source = result.get(frame.file);
313
+ if (!source) {
314
+ source = { errors: [], content: void 0 };
315
+ result.set(frame.file, source);
316
+ }
317
+ }
318
+ }
319
+ for (const error of errorDescriptors) {
320
+ const { action, stack, message } = error;
321
+ if (!action || !stack)
322
+ continue;
323
+ result.get(stack[0].file)?.errors.push({
324
+ line: stack[0].line || 0,
325
+ message
326
+ });
327
+ }
328
+ return result;
329
+ }
330
+ const kFakeRootAction = {
331
+ type: "action",
332
+ callId: "",
333
+ startTime: 0,
334
+ endTime: 0,
335
+ class: "",
336
+ method: "",
337
+ params: {},
338
+ log: [],
339
+ context: {
340
+ origin: "library",
341
+ startTime: 0,
342
+ endTime: 0,
343
+ browserName: "",
344
+ wallTime: 0,
345
+ options: {},
346
+ pages: [],
347
+ resources: [],
348
+ actions: [],
349
+ events: [],
350
+ stdio: [],
351
+ errors: [],
352
+ hasSource: false,
353
+ contextId: ""
354
+ }
355
+ };
356
+ // Annotate the CommonJS export names for ESM import in node:
357
+ 0 && (module.exports = {
358
+ TraceModel,
359
+ buildActionTree,
360
+ context,
361
+ eventsForAction,
362
+ nextActionByStartTime,
363
+ previousActionByEndTime,
364
+ stats
365
+ });