@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.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.
- package/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -35
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +90 -113
- package/lib/client/clientHelper.js +48 -39
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +188 -214
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +80 -77
- package/lib/client/elementHandle.js +120 -159
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +36 -32
- package/lib/server/utils/debugLogger.js +77 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +141 -126
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +152 -96
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +68 -75
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
- package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
- package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
- package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
- package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
- package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var Ut=Object.defineProperty;var Gt=(e,t,s)=>t in e?Ut(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var J=(e,t,s)=>Gt(e,typeof t!="symbol"?t+"":t,s);import{r as f,j as n,f as P,k as Vt,l as Qt,n as qt,m as F,T as ue,o as it,P as ce,C as Kt,L as Zt,p as Jt,q as Yt,u as Ee,v as en,w as tn,x as nn,y as sn,z as rn,A as an,B as cn,D as rt,G as on,h as He,E as ln,F as dn,S as Xe,H as Be,I as hn,J as un,K as pn,N as mn,O as fn}from"./inspectorTab-6Tru8Mn_.js";const Ue=new Map;function xn({name:e,rootItem:t,render:s,title:r,icon:l,isError:c,isVisible:a,selectedItem:d,onAccepted:u,onSelected:m,onHighlighted:p,treeState:x,setTreeState:i,noItemsMessage:h,dataTestId:o,autoExpandDepth:g}){const v=f.useMemo(()=>gn(t,d,x.expandedItems,g||0,a),[t,d,x,g,a]),b=f.useRef(null),[N,L]=f.useState(),[A,j]=f.useState(!1);f.useEffect(()=>{p==null||p(N)},[p,N]),f.useEffect(()=>{const y=b.current;if(!y)return;const T=()=>{Ue.set(e,y.scrollTop)};return y.addEventListener("scroll",T,{passive:!0}),()=>y.removeEventListener("scroll",T)},[e]),f.useEffect(()=>{b.current&&(b.current.scrollTop=Ue.get(e)||0)},[e]);const M=f.useCallback(y=>{const{expanded:T}=v.get(y);if(T){for(let E=d;E;E=E.parent)if(E===y){m==null||m(y);break}x.expandedItems.set(y.id,!1)}else x.expandedItems.set(y.id,!0);i({...x})},[v,d,m,x,i]);return n.jsx("div",{className:P("tree-view vbox",e+"-tree-view"),role:"tree","data-testid":o||e+"-tree",children:n.jsxs("div",{className:P("tree-view-content"),tabIndex:0,onKeyDown:y=>{if(d&&y.key==="Enter"){u==null||u(d);return}if(y.key!=="ArrowDown"&&y.key!=="ArrowUp"&&y.key!=="ArrowLeft"&&y.key!=="ArrowRight")return;if(y.stopPropagation(),y.preventDefault(),d&&y.key==="ArrowLeft"){const{expanded:E,parent:k}=v.get(d);E?(x.expandedItems.set(d.id,!1),i({...x})):k&&(m==null||m(k));return}if(d&&y.key==="ArrowRight"){d.children.length&&(x.expandedItems.set(d.id,!0),i({...x}));return}let T=d;if(y.key==="ArrowDown"&&(d?T=v.get(d).next:v.size&&(T=[...v.keys()][0])),y.key==="ArrowUp"){if(d)T=v.get(d).prev;else if(v.size){const E=[...v.keys()];T=E[E.length-1]}}p==null||p(void 0),T&&(j(!0),m==null||m(T)),L(void 0)},ref:b,children:[h&&v.size===0&&n.jsx("div",{className:"tree-view-empty",children:h}),t.children.map(y=>v.get(y)&&n.jsx(at,{item:y,treeItems:v,selectedItem:d,onSelected:m,onAccepted:u,isError:c,toggleExpanded:M,highlightedItem:N,setHighlightedItem:L,render:s,icon:l,title:r,isKeyboardNavigation:A,setIsKeyboardNavigation:j},y.id))]})})}function at({item:e,treeItems:t,selectedItem:s,onSelected:r,highlightedItem:l,setHighlightedItem:c,isError:a,onAccepted:d,toggleExpanded:u,render:m,title:p,icon:x,isKeyboardNavigation:i,setIsKeyboardNavigation:h}){const o=f.useId(),g=f.useRef(null);f.useEffect(()=>{s===e&&i&&g.current&&(Vt(g.current),h(!1))},[e,s,i,h]);const v=t.get(e),b=v.depth,N=v.expanded;let L="codicon-blank";typeof N=="boolean"&&(L=N?"codicon-chevron-down":"codicon-chevron-right");const A=m(e),j=N&&e.children.length?e.children:[],M=p==null?void 0:p(e),y=(x==null?void 0:x(e))||"codicon-blank";return n.jsxs("div",{ref:g,role:"treeitem","aria-selected":e===s,"aria-expanded":N,"aria-controls":o,title:M,className:"vbox",style:{flex:"none"},children:[n.jsxs("div",{onDoubleClick:()=>d==null?void 0:d(e),className:P("tree-view-entry",s===e&&"selected",l===e&&"highlighted",(a==null?void 0:a(e))&&"error"),onClick:()=>r==null?void 0:r(e),onMouseEnter:()=>c(e),onMouseLeave:()=>c(void 0),children:[b?new Array(b).fill(0).map((T,E)=>n.jsx("div",{className:"tree-view-indent"},"indent-"+E)):void 0,n.jsx("div",{"aria-hidden":"true",className:"codicon "+L,style:{minWidth:16,marginRight:4},onDoubleClick:T=>{T.preventDefault(),T.stopPropagation()},onClick:T=>{T.stopPropagation(),T.preventDefault(),u(e)}}),x&&n.jsx("div",{className:"codicon "+y,style:{minWidth:16,marginRight:4},"aria-label":"["+y.replace("codicon","icon")+"]"}),typeof A=="string"?n.jsx("div",{style:{textOverflow:"ellipsis",overflow:"hidden"},children:A}):A]}),!!j.length&&n.jsx("div",{id:o,role:"group",children:j.map(T=>t.get(T)&&n.jsx(at,{item:T,treeItems:t,selectedItem:s,onSelected:r,onAccepted:d,isError:a,toggleExpanded:u,highlightedItem:l,setHighlightedItem:c,render:m,title:p,icon:x,isKeyboardNavigation:i,setIsKeyboardNavigation:h},T.id))})]})}function gn(e,t,s,r,l=()=>!0){if(!l(e))return new Map;const c=new Map,a=new Set;for(let m=t==null?void 0:t.parent;m;m=m.parent)a.add(m.id);let d=null;const u=(m,p)=>{for(const x of m.children){if(!l(x))continue;const i=a.has(x.id)||s.get(x.id),h=r>p&&c.size<25&&i!==!1,o=x.children.length?i??h:void 0,g={depth:p,expanded:o,parent:e===m?null:m,next:null,prev:d};d&&(c.get(d).next=x),d=x,c.set(x,g),o&&u(x,p+1)}};return u(e,0),c}function ct(e){return e==="scheduled"?"codicon-clock":e==="running"?"codicon-loading":e==="failed"?"codicon-error":e==="passed"?"codicon-check":e==="skipped"?"codicon-circle-slash":"codicon-circle-outline"}function vn(e){return e==="scheduled"?"Pending":e==="running"?"Running":e==="failed"?"Failed":e==="passed"?"Passed":e==="skipped"?"Skipped":"Did not run"}const yn=xn,wn=({actions:e,selectedAction:t,selectedTime:s,setSelectedTime:r,sdkLanguage:l,onSelected:c,onHighlighted:a,revealConsole:d,revealAttachment:u,isLive:m})=>{const[p,x]=f.useState({expandedItems:new Map}),{rootItem:i,itemMap:h}=f.useMemo(()=>Qt(e),[e]),{selectedItem:o}=f.useMemo(()=>({selectedItem:t?h.get(t.callId):void 0}),[h,t]),g=f.useCallback(j=>{var M,y;return!!((y=(M=j.action)==null?void 0:M.error)!=null&&y.message)},[]),v=f.useCallback(j=>r({minimum:j.action.startTime,maximum:j.action.endTime}),[r]),b=f.useCallback(j=>ze(j.action,{sdkLanguage:l,revealConsole:d,revealAttachment:u,isLive:m,showDuration:!0,showBadges:!0}),[m,d,u,l]),N=f.useCallback(j=>!s||!j.action||j.action.startTime<=s.maximum&&j.action.endTime>=s.minimum,[s]),L=f.useCallback(j=>{c==null||c(j.action)},[c]),A=f.useCallback(j=>{a==null||a(j==null?void 0:j.action)},[a]);return n.jsxs("div",{className:"vbox",children:[s&&n.jsxs("div",{className:"action-list-show-all",onClick:()=>r(void 0),children:[n.jsx("span",{className:"codicon codicon-triangle-left"}),"Show all"]}),n.jsx(yn,{name:"actions",rootItem:i,treeState:p,setTreeState:x,selectedItem:o,onSelected:L,onHighlighted:A,onAccepted:v,isError:g,isVisible:N,render:b})]})},ze=(e,t)=>{var o,g;const{sdkLanguage:s,revealConsole:r,revealAttachment:l,isLive:c,showDuration:a,showBadges:d}=t,{errors:u,warnings:m}=qt(e),p=!!((o=e.attachments)!=null&&o.length)&&!!l,x=ot(e,s||"javascript"),i=e.class==="Test"&&e.method==="step"&&((g=e.annotations)==null?void 0:g.some(v=>v.type==="skip"));let h="";return e.endTime?h=F(e.endTime-e.startTime):e.error?h="Timed out":c||(h="-"),n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"action-title",title:e.apiName,children:[n.jsx("span",{children:e.apiName}),x&&(x.type==="locator"?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"action-parameter action-locator-parameter",children:x.value}),x.childDisplayString&&n.jsx("span",{className:"action-parameter action-generic-parameter",children:x.childDisplayString.value})]}):n.jsx("span",{className:"action-parameter action-generic-parameter",children:x.value})),e.method==="goto"&&e.params.url&&n.jsx("div",{className:"action-url",title:e.params.url,children:e.params.url}),e.class==="APIRequestContext"&&e.params.url&&n.jsx("div",{className:"action-url",title:e.params.url,children:jn(e.params.url)})]}),(a||d||p||i)&&n.jsx("div",{className:"spacer"}),p&&n.jsx(ue,{icon:"attach",title:"Open Attachment",onClick:()=>l(e.attachments[0])}),a&&!i&&n.jsx("div",{className:"action-duration",children:h||n.jsx("span",{className:"codicon codicon-loading"})}),i&&n.jsx("span",{className:P("action-skipped","codicon",ct("skipped")),title:"skipped"}),d&&n.jsxs("div",{className:"action-icons",onClick:()=>r==null?void 0:r(),children:[!!u&&n.jsxs("div",{className:"action-icon",children:[n.jsx("span",{className:"codicon codicon-error"}),n.jsx("span",{className:"action-icon-value",children:u})]}),!!m&&n.jsxs("div",{className:"action-icon",children:[n.jsx("span",{className:"codicon codicon-warning"}),n.jsx("span",{className:"action-icon-value",children:m})]})]})]})};function jn(e){try{const t=new URL(e);return t.pathname+t.search}catch{return e}}const kn=e=>{switch(e.method){case"clockPauseAt":case"clockSetFixedTime":case"clockSetSystemTime":return e.params.timeString===void 0&&e.params.timeNumber===void 0?void 0:{type:"generic",value:new Date(e.params.timeString??e.params.timeNumber).toLocaleString(void 0,{timeZone:"UTC"})};case"clockFastForward":case"clockRunFor":return e.params.ticksNumber===void 0&&e.params.ticksString===void 0?void 0:{type:"generic",value:e.params.ticksString??`${e.params.ticksNumber}ms`}}},bn=e=>{switch(e.method){case"press":case"keyboardPress":case"keyboardDown":case"keyboardUp":return e.params.key===void 0?void 0:{type:"generic",value:e.params.key};case"type":case"fill":case"keyboardType":case"keyboardInsertText":{const t=e.params.text??e.params.value;return t===void 0?void 0:{type:"generic",value:`"${t}"`}}}},Nn=e=>{switch(e.method){case"click":case"dblclick":case"mouseClick":case"mouseMove":return e.params.x===void 0||e.params.y===void 0?void 0:{type:"generic",value:`(${e.params.x}, ${e.params.y})`};case"mouseWheel":return e.params.deltaX===void 0||e.params.deltaY===void 0?void 0:{type:"generic",value:`(${e.params.deltaX}, ${e.params.deltaY})`}}},Cn=e=>{switch(e.method){case"tap":return e.params.x===void 0||e.params.y===void 0?void 0:{type:"generic",value:`(${e.params.x}, ${e.params.y})`}}},ot=(e,t,s=!1)=>{const r=e.params;if(!s&&r.selector!==void 0)return{type:"locator",value:it(t,r.selector),childDisplayString:ot(e,t,!0)};switch(e.class.toLowerCase()){case"browsercontext":return kn(e);case"page":case"frame":case"elementhandle":return bn(e)??Nn(e)??Cn(e)}},Tn=({action:e,startTimeOffset:t,sdkLanguage:s})=>{const r=f.useMemo(()=>Object.keys((e==null?void 0:e.params)??{}).filter(a=>a!=="info"),[e]);if(!e)return n.jsx(ce,{text:"No action selected"});const l=e.startTime-t,c=F(l);return n.jsxs("div",{className:"call-tab",children:[n.jsx("div",{className:"call-line",children:e.apiName}),n.jsx("div",{className:"call-section",children:"Time"}),n.jsx(Ge,{name:"start:",value:c}),n.jsx(Ge,{name:"duration:",value:Sn(e)}),!!r.length&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"call-section",children:"Parameters"}),r.map(a=>Ve(Qe(e,a,e.params[a],s)))]}),!!e.result&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"call-section",children:"Return value"}),Object.keys(e.result).map(a=>Ve(Qe(e,a,e.result[a],s)))]})]})},Ge=({name:e,value:t})=>n.jsxs("div",{className:"call-line",children:[e,n.jsx("span",{className:"call-value datetime",title:t,children:t})]});function Sn(e){return e.endTime?F(e.endTime-e.startTime):e.error?"Timed Out":"Running"}function Ve(e){let t=e.text.replace(/\n/g,"↵");return e.type==="string"&&(t=`"${t}"`),n.jsxs("div",{className:"call-line",children:[e.name,":",n.jsx("span",{className:P("call-value",e.type),title:e.text,children:t}),["string","number","object","locator"].includes(e.type)&&n.jsx(Kt,{value:e.text})]},e.name)}function Qe(e,t,s,r){const l=e.method.includes("eval")||e.method==="waitForFunction";if(t==="files")return{text:"<files>",type:"string",name:t};if((t==="eventInit"||t==="expectedValue"||t==="arg"&&l)&&(s=pe(s.value,new Array(10).fill({handle:"<handle>"}))),(t==="value"&&l||t==="received"&&e.method==="expect")&&(s=pe(s,new Array(10).fill({handle:"<handle>"}))),t==="selector")return{text:it(r||"javascript",e.params.selector),type:"locator",name:"locator"};const c=typeof s;return c!=="object"||s===null?{text:String(s),type:c,name:t}:s.guid?{text:"<handle>",type:"handle",name:t}:{text:JSON.stringify(s).slice(0,1e3),type:"object",name:t}}function pe(e,t){if(e.n!==void 0)return e.n;if(e.s!==void 0)return e.s;if(e.b!==void 0)return e.b;if(e.v!==void 0){if(e.v==="undefined")return;if(e.v==="null")return null;if(e.v==="NaN")return NaN;if(e.v==="Infinity")return 1/0;if(e.v==="-Infinity")return-1/0;if(e.v==="-0")return-0}if(e.d!==void 0)return new Date(e.d);if(e.r!==void 0)return new RegExp(e.r.p,e.r.f);if(e.a!==void 0)return e.a.map(s=>pe(s,t));if(e.o!==void 0){const s={};for(const{k:r,v:l}of e.o)s[r]=pe(l,t);return s}return e.h!==void 0?t===void 0?"<object>":t[e.h]:"<object>"}const Mn=Zt,Ln=({action:e,isLive:t})=>{const s=f.useMemo(()=>{var a;if(!e||!e.log.length)return[];const r=e.log,l=e.context.wallTime-e.context.startTime,c=[];for(let d=0;d<r.length;++d){let u="";if(r[d].time!==-1){const m=(a=r[d])==null?void 0:a.time;d+1<r.length?u=F(r[d+1].time-m):e.endTime>0?u=F(e.endTime-m):t?u=F(Date.now()-l-m):u="-"}c.push({message:r[d].message,time:u})}return c},[e,t]);return s.length?n.jsx(Mn,{name:"log",items:s,render:r=>n.jsxs("div",{className:"log-list-item",children:[n.jsx("span",{className:"log-list-duration",children:r.time}),r.message]}),notSelectable:!0}):n.jsx(ce,{text:"No log entries"})},An=({error:e})=>{const t=f.useMemo(()=>Jt(e),[e]);return n.jsx("div",{className:"error-message",dangerouslySetInnerHTML:{__html:t||""}})};function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e},Y.apply(this,arguments)}const En=["children","options"],C={blockQuote:"0",breakLine:"1",breakThematic:"2",codeBlock:"3",codeFenced:"4",codeInline:"5",footnote:"6",footnoteReference:"7",gfmTask:"8",heading:"9",headingSetext:"10",htmlBlock:"11",htmlComment:"12",htmlSelfClosing:"13",image:"14",link:"15",linkAngleBraceStyleDetector:"16",linkBareUrlDetector:"17",linkMailtoDetector:"18",newlineCoalescer:"19",orderedList:"20",paragraph:"21",ref:"22",refImage:"23",refLink:"24",table:"25",text:"27",textBolded:"28",textEmphasized:"29",textEscaped:"30",textMarked:"31",textStrikethroughed:"32",unorderedList:"33"};var qe;(function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"})(qe||(qe={}));const Ke=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce((e,t)=>(e[t.toLowerCase()]=t,e),{class:"className",for:"htmlFor"}),Ze={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},zn=["style","script"],Dn=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,Rn=/mailto:/i,In=/\n{2,}$/,lt=/^(\s*>[\s\S]*?)(?=\n\n|$)/,$n=/^ *> ?/gm,_n=/^(?:\[!([^\]]*)\]\n)?([\s\S]*)/,Pn=/^ {2,}\n/,Wn=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,dt=/^(?: {1,3})?(`{3,}|~{3,}) *(\S+)? *([^\n]*?)?\n([\s\S]*?)(?:\1\n?|$)/,ht=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,Fn=/^(`+)((?:\\`|[^`])+)\1/,On=/^(?:\n *)*\n/,Hn=/\r\n?/g,Xn=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,Bn=/^\[\^([^\]]+)]/,Un=/\f/g,Gn=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,Vn=/^\s*?\[(x|\s)\]/,ut=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,pt=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,mt=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,Me=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,Qn=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,ft=/^<!--[\s\S]*?(?:-->)/,qn=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,Le=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,Kn=/^\{.*\}$/,Zn=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,Jn=/^<([^ >]+@[^ >]+)>/,Yn=/^<([^ >]+:\/[^ >]+)>/,es=/-([a-z])?/gi,xt=/^(\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,ts=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,ns=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,ss=/^\[([^\]]*)\] ?\[([^\]]*)\]/,is=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,rs=/\t/g,as=/(^ *\||\| *$)/g,cs=/^ *:-+: *$/,os=/^ *:-+ *$/,ls=/^ *-+: *$/,me="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|\\\\\\1|[\\s\\S])+?)",ds=new RegExp(`^([*_])\\1${me}\\1\\1(?!\\1)`),hs=new RegExp(`^([*_])${me}\\1(?!\\1)`),us=new RegExp(`^(==)${me}\\1`),ps=new RegExp(`^(~~)${me}\\1`),ms=/^\\([^0-9A-Za-z\s])/,ke=/\\([^0-9A-Za-z\s])/g,fs=/^([\s\S](?:(?! |[0-9]\.)[^*_~\-\n<`\\\[!])*)/,xs=/^\n+/,gs=/^([ \t]*)/,vs=/\\([^\\])/g,ys=/(?:^|\n)( *)$/,De="(?:\\d+\\.)",Re="(?:[*+-])";function gt(e){return"( *)("+(e===1?De:Re)+") +"}const vt=gt(1),yt=gt(2);function wt(e){return new RegExp("^"+(e===1?vt:yt))}const ws=wt(1),js=wt(2);function jt(e){return new RegExp("^"+(e===1?vt:yt)+"[^\\n]*(?:\\n(?!\\1"+(e===1?De:Re)+" )[^\\n]*)*(\\n|$)","gm")}const ks=jt(1),bs=jt(2);function kt(e){const t=e===1?De:Re;return new RegExp("^( *)("+t+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+t+" (?!"+t+" ))\\n*|\\s*\\n*$)")}const bt=kt(1),Nt=kt(2);function Je(e,t){const s=t===1,r=s?bt:Nt,l=s?ks:bs,c=s?ws:js;return{match:ne(function(a,d){const u=ys.exec(d.prevCapture);return u&&(d.list||!d.inline&&!d.simple)?r.exec(a=u[1]+a):null}),order:1,parse(a,d,u){const m=s?+a[2]:void 0,p=a[0].replace(In,`
|
|
2
|
-
`).match(l);let x=!1;return{items:p.map(function(i,h){const o=c.exec(i)[0].length,g=new RegExp("^ {1,"+o+"}","gm"),v=i.replace(g,"").replace(c,""),b=h===p.length-1,N=v.indexOf(`
|
|
3
|
-
|
|
4
|
-
`)!==-1||b&&x;x=N;const L=u.inline,A=u.list;let j;u.list=!0,N?(u.inline=!1,j=ae(v)+`
|
|
5
|
-
|
|
6
|
-
`):(u.inline=!0,j=ae(v));const M=d(j,u);return u.inline=L,u.list=A,M}),ordered:s,start:m}},render:(a,d,u)=>e(a.ordered?"ol":"ul",{key:u.key,start:a.type===C.orderedList?a.start:void 0},a.items.map(function(m,p){return e("li",{key:p},d(m,u))}))}}const Ns=new RegExp(`^\\[((?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*)\\]\\(\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['"]([\\s\\S]*?)['"])?\\s*\\)`),Cs=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,Ct=[lt,dt,ht,ut,mt,pt,xt,bt,Nt],Ts=[...Ct,/^[^\n]+(?: \n|\n{2,})/,Me,ft,Le];function ae(e){let t=e.length;for(;t>0&&e[t-1]<=" ";)t--;return e.slice(0,t)}function ie(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function Ss(e){return ls.test(e)?"right":cs.test(e)?"center":os.test(e)?"left":null}function Ye(e,t,s,r){const l=s.inTable;s.inTable=!0;let c=[[]],a="";function d(){if(!a)return;const u=c[c.length-1];u.push.apply(u,t(a,s)),a=""}return e.trim().split(/(`[^`]*`|\\\||\|)/).filter(Boolean).forEach((u,m,p)=>{u.trim()==="|"&&(d(),r)?m!==0&&m!==p.length-1&&c.push([]):a+=u}),d(),s.inTable=l,c}function Ms(e,t,s){s.inline=!0;const r=e[2]?e[2].replace(as,"").split("|").map(Ss):[],l=e[3]?function(a,d,u){return a.trim().split(`
|
|
7
|
-
`).map(function(m){return Ye(m,d,u,!0)})}(e[3],t,s):[],c=Ye(e[1],t,s,!!l.length);return s.inline=!1,l.length?{align:r,cells:l,header:c,type:C.table}:{children:c,type:C.paragraph}}function et(e,t){return e.align[t]==null?{}:{textAlign:e.align[t]}}function ne(e){return e.inline=1,e}function Q(e){return ne(function(t,s){return s.inline?e.exec(t):null})}function q(e){return ne(function(t,s){return s.inline||s.simple?e.exec(t):null})}function X(e){return function(t,s){return s.inline||s.simple?null:e.exec(t)}}function re(e){return ne(function(t){return e.exec(t)})}function Ls(e,t){if(t.inline||t.simple)return null;let s="";e.split(`
|
|
8
|
-
`).every(l=>(l+=`
|
|
9
|
-
`,!Ct.some(c=>c.test(l))&&(s+=l,!!l.trim())));const r=ae(s);return r==""?null:[s,,r]}function As(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return null}catch{return null}return e}function tt(e){return e.replace(vs,"$1")}function de(e,t,s){const r=s.inline||!1,l=s.simple||!1;s.inline=!0,s.simple=!0;const c=e(t,s);return s.inline=r,s.simple=l,c}function Es(e,t,s){const r=s.inline||!1,l=s.simple||!1;s.inline=!1,s.simple=!0;const c=e(t,s);return s.inline=r,s.simple=l,c}function zs(e,t,s){const r=s.inline||!1;s.inline=!1;const l=e(t,s);return s.inline=r,l}const be=(e,t,s)=>({children:de(t,e[2],s)});function Ne(){return{}}function Ce(){return null}function Ds(...e){return e.filter(Boolean).join(" ")}function Te(e,t,s){let r=e;const l=t.split(".");for(;l.length&&(r=r[l[0]],r!==void 0);)l.shift();return r||s}function Rs(e="",t={}){function s(i,h,...o){const g=Te(t.overrides,`${i}.props`,{});return t.createElement(function(v,b){const N=Te(b,v);return N?typeof N=="function"||typeof N=="object"&&"render"in N?N:Te(b,`${v}.component`,v):v}(i,t.overrides),Y({},h,g,{className:Ds(h==null?void 0:h.className,g.className)||void 0}),...o)}function r(i){i=i.replace(Gn,"");let h=!1;t.forceInline?h=!0:t.forceBlock||(h=is.test(i)===!1);const o=m(u(h?i:`${ae(i).replace(xs,"")}
|
|
10
|
-
|
|
11
|
-
`,{inline:h}));for(;typeof o[o.length-1]=="string"&&!o[o.length-1].trim();)o.pop();if(t.wrapper===null)return o;const g=t.wrapper||(h?"span":"div");let v;if(o.length>1||t.forceWrapper)v=o;else{if(o.length===1)return v=o[0],typeof v=="string"?s("span",{key:"outer"},v):v;v=null}return t.createElement(g,{key:"outer"},v)}function l(i,h){const o=h.match(Dn);return o?o.reduce(function(g,v){const b=v.indexOf("=");if(b!==-1){const N=function(M){return M.indexOf("-")!==-1&&M.match(qn)===null&&(M=M.replace(es,function(y,T){return T.toUpperCase()})),M}(v.slice(0,b)).trim(),L=function(M){const y=M[0];return(y==='"'||y==="'")&&M.length>=2&&M[M.length-1]===y?M.slice(1,-1):M}(v.slice(b+1).trim()),A=Ke[N]||N;if(A==="ref")return g;const j=g[A]=function(M,y,T,E){return y==="style"?T.split(/;\s?/).reduce(function(k,w){const z=w.slice(0,w.indexOf(":"));return k[z.trim().replace(/(-[a-z])/g,D=>D[1].toUpperCase())]=w.slice(z.length+1).trim(),k},{}):y==="href"||y==="src"?E(T,M,y):(T.match(Kn)&&(T=T.slice(1,T.length-1)),T==="true"||T!=="false"&&T)}(i,N,L,t.sanitizer);typeof j=="string"&&(Me.test(j)||Le.test(j))&&(g[A]=r(j.trim()))}else v!=="style"&&(g[Ke[v]||v]=!0);return g},{}):null}t.overrides=t.overrides||{},t.sanitizer=t.sanitizer||As,t.slugify=t.slugify||ie,t.namedCodesToUnicode=t.namedCodesToUnicode?Y({},Ze,t.namedCodesToUnicode):Ze,t.createElement=t.createElement||f.createElement;const c=[],a={},d={[C.blockQuote]:{match:X(lt),order:1,parse(i,h,o){const[,g,v]=i[0].replace($n,"").match(_n);return{alert:g,children:h(v,o)}},render(i,h,o){const g={key:o.key};return i.alert&&(g.className="markdown-alert-"+t.slugify(i.alert.toLowerCase(),ie),i.children.unshift({attrs:{},children:[{type:C.text,text:i.alert}],noInnerParse:!0,type:C.htmlBlock,tag:"header"})),s("blockquote",g,h(i.children,o))}},[C.breakLine]:{match:re(Pn),order:1,parse:Ne,render:(i,h,o)=>s("br",{key:o.key})},[C.breakThematic]:{match:X(Wn),order:1,parse:Ne,render:(i,h,o)=>s("hr",{key:o.key})},[C.codeBlock]:{match:X(ht),order:0,parse:i=>({lang:void 0,text:ae(i[0].replace(/^ {4}/gm,"")).replace(ke,"$1")}),render:(i,h,o)=>s("pre",{key:o.key},s("code",Y({},i.attrs,{className:i.lang?`lang-${i.lang}`:""}),i.text))},[C.codeFenced]:{match:X(dt),order:0,parse:i=>({attrs:l("code",i[3]||""),lang:i[2]||void 0,text:i[4].replace(ke,"$1"),type:C.codeBlock})},[C.codeInline]:{match:q(Fn),order:3,parse:i=>({text:i[2].replace(ke,"$1")}),render:(i,h,o)=>s("code",{key:o.key},i.text)},[C.footnote]:{match:X(Xn),order:0,parse:i=>(c.push({footnote:i[2],identifier:i[1]}),{}),render:Ce},[C.footnoteReference]:{match:Q(Bn),order:1,parse:i=>({target:`#${t.slugify(i[1],ie)}`,text:i[1]}),render:(i,h,o)=>s("a",{key:o.key,href:t.sanitizer(i.target,"a","href")},s("sup",{key:o.key},i.text))},[C.gfmTask]:{match:Q(Vn),order:1,parse:i=>({completed:i[1].toLowerCase()==="x"}),render:(i,h,o)=>s("input",{checked:i.completed,key:o.key,readOnly:!0,type:"checkbox"})},[C.heading]:{match:X(t.enforceAtxHeadings?pt:ut),order:1,parse:(i,h,o)=>({children:de(h,i[2],o),id:t.slugify(i[2],ie),level:i[1].length}),render:(i,h,o)=>s(`h${i.level}`,{id:i.id,key:o.key},h(i.children,o))},[C.headingSetext]:{match:X(mt),order:0,parse:(i,h,o)=>({children:de(h,i[1],o),level:i[2]==="="?1:2,type:C.heading})},[C.htmlBlock]:{match:re(Me),order:1,parse(i,h,o){const[,g]=i[3].match(gs),v=new RegExp(`^${g}`,"gm"),b=i[3].replace(v,""),N=(L=b,Ts.some(T=>T.test(L))?zs:de);var L;const A=i[1].toLowerCase(),j=zn.indexOf(A)!==-1,M=(j?A:i[1]).trim(),y={attrs:l(M,i[2]),noInnerParse:j,tag:M};return o.inAnchor=o.inAnchor||A==="a",j?y.text=i[3]:y.children=N(h,b,o),o.inAnchor=!1,y},render:(i,h,o)=>s(i.tag,Y({key:o.key},i.attrs),i.text||(i.children?h(i.children,o):""))},[C.htmlSelfClosing]:{match:re(Le),order:1,parse(i){const h=i[1].trim();return{attrs:l(h,i[2]||""),tag:h}},render:(i,h,o)=>s(i.tag,Y({},i.attrs,{key:o.key}))},[C.htmlComment]:{match:re(ft),order:1,parse:()=>({}),render:Ce},[C.image]:{match:q(Cs),order:1,parse:i=>({alt:i[1],target:tt(i[2]),title:i[3]}),render:(i,h,o)=>s("img",{key:o.key,alt:i.alt||void 0,title:i.title||void 0,src:t.sanitizer(i.target,"img","src")})},[C.link]:{match:Q(Ns),order:3,parse:(i,h,o)=>({children:Es(h,i[1],o),target:tt(i[2]),title:i[3]}),render:(i,h,o)=>s("a",{key:o.key,href:t.sanitizer(i.target,"a","href"),title:i.title},h(i.children,o))},[C.linkAngleBraceStyleDetector]:{match:Q(Yn),order:0,parse:i=>({children:[{text:i[1],type:C.text}],target:i[1],type:C.link})},[C.linkBareUrlDetector]:{match:ne((i,h)=>h.inAnchor||t.disableAutoLink?null:Q(Zn)(i,h)),order:0,parse:i=>({children:[{text:i[1],type:C.text}],target:i[1],title:void 0,type:C.link})},[C.linkMailtoDetector]:{match:Q(Jn),order:0,parse(i){let h=i[1],o=i[1];return Rn.test(o)||(o="mailto:"+o),{children:[{text:h.replace("mailto:",""),type:C.text}],target:o,type:C.link}}},[C.orderedList]:Je(s,1),[C.unorderedList]:Je(s,2),[C.newlineCoalescer]:{match:X(On),order:3,parse:Ne,render:()=>`
|
|
12
|
-
`},[C.paragraph]:{match:ne(Ls),order:3,parse:be,render:(i,h,o)=>s("p",{key:o.key},h(i.children,o))},[C.ref]:{match:Q(ts),order:0,parse:i=>(a[i[1]]={target:i[2],title:i[4]},{}),render:Ce},[C.refImage]:{match:q(ns),order:0,parse:i=>({alt:i[1]||void 0,ref:i[2]}),render:(i,h,o)=>a[i.ref]?s("img",{key:o.key,alt:i.alt,src:t.sanitizer(a[i.ref].target,"img","src"),title:a[i.ref].title}):null},[C.refLink]:{match:Q(ss),order:0,parse:(i,h,o)=>({children:h(i[1],o),fallbackChildren:i[0],ref:i[2]}),render:(i,h,o)=>a[i.ref]?s("a",{key:o.key,href:t.sanitizer(a[i.ref].target,"a","href"),title:a[i.ref].title},h(i.children,o)):s("span",{key:o.key},i.fallbackChildren)},[C.table]:{match:X(xt),order:1,parse:Ms,render(i,h,o){const g=i;return s("table",{key:o.key},s("thead",null,s("tr",null,g.header.map(function(v,b){return s("th",{key:b,style:et(g,b)},h(v,o))}))),s("tbody",null,g.cells.map(function(v,b){return s("tr",{key:b},v.map(function(N,L){return s("td",{key:L,style:et(g,L)},h(N,o))}))})))}},[C.text]:{match:re(fs),order:4,parse:i=>({text:i[0].replace(Qn,(h,o)=>t.namedCodesToUnicode[o]?t.namedCodesToUnicode[o]:h)}),render:i=>i.text},[C.textBolded]:{match:q(ds),order:2,parse:(i,h,o)=>({children:h(i[2],o)}),render:(i,h,o)=>s("strong",{key:o.key},h(i.children,o))},[C.textEmphasized]:{match:q(hs),order:3,parse:(i,h,o)=>({children:h(i[2],o)}),render:(i,h,o)=>s("em",{key:o.key},h(i.children,o))},[C.textEscaped]:{match:q(ms),order:1,parse:i=>({text:i[1],type:C.text})},[C.textMarked]:{match:q(us),order:3,parse:be,render:(i,h,o)=>s("mark",{key:o.key},h(i.children,o))},[C.textStrikethroughed]:{match:q(ps),order:3,parse:be,render:(i,h,o)=>s("del",{key:o.key},h(i.children,o))}};t.disableParsingRawHTML===!0&&(delete d[C.htmlBlock],delete d[C.htmlSelfClosing]);const u=function(i){let h=Object.keys(i);function o(g,v){let b,N,L=[],A="",j="";for(v.prevCapture=v.prevCapture||"";g;){let M=0;for(;M<h.length;){if(A=h[M],b=i[A],v.inline&&!b.match.inline){M++;continue}const y=b.match(g,v);if(y){j=y[0],v.prevCapture+=j,g=g.substring(j.length),N=b.parse(y,o,v),N.type==null&&(N.type=A),L.push(N);break}M++}}return v.prevCapture="",L}return h.sort(function(g,v){let b=i[g].order,N=i[v].order;return b!==N?b-N:g<v?-1:1}),function(g,v){return o(function(b){return b.replace(Hn,`
|
|
13
|
-
`).replace(Un,"").replace(rs," ")}(g),v)}}(d),m=(p=function(i,h){return function(o,g,v){const b=i[o.type].render;return h?h(()=>b(o,g,v),o,g,v):b(o,g,v)}}(d,t.renderRule),function i(h,o={}){if(Array.isArray(h)){const g=o.key,v=[];let b=!1;for(let N=0;N<h.length;N++){o.key=N;const L=i(h[N],o),A=typeof L=="string";A&&b?v[v.length-1]+=L:L!==null&&v.push(L),b=A}return o.key=g,v}return p(h,i,o)});var p;const x=r(e);return c.length?s("div",null,x,s("footer",{key:"footer"},c.map(function(i){return s("div",{id:t.slugify(i.identifier,ie),key:i.identifier},i.identifier,m(u(i.footnote,{inline:!0})))}))):x}const Is=e=>{let{children:t="",options:s}=e,r=function(l,c){if(l==null)return{};var a,d,u={},m=Object.keys(l);for(d=0;d<m.length;d++)c.indexOf(a=m[d])>=0||(u[a]=l[a]);return u}(e,En);return f.cloneElement(Rs(t,s),r)};var nt;(e=>{function t(s){for(const r of s.splice(0))r.dispose()}e.disposeAll=t})(nt||(nt={}));class $s{constructor(){this._listeners=new Set,this.event=(t,s)=>{this._listeners.add(t);let r=!1;const l=this,c={dispose(){r||(r=!0,l._listeners.delete(t))}};return s&&s.push(c),c}}fire(t){const s=!this._deliveryQueue;this._deliveryQueue||(this._deliveryQueue=[]);for(const r of this._listeners)this._deliveryQueue.push({listener:r,event:t});if(s){for(let r=0;r<this._deliveryQueue.length;r++){const{listener:l,event:c}=this._deliveryQueue[r];l.call(null,c)}this._deliveryQueue=void 0}}dispose(){this._listeners.clear(),this._deliveryQueue&&(this._deliveryQueue=[])}}async function*Tt(e){const t=e.pipeThrough(new TextDecoderStream).getReader();let s="",r="",l="",c="";for(;;){const{value:a,done:d}=await t.read();if(d)break;s+=a;const u=s.split(`
|
|
14
|
-
`);s=u.pop();for(const m of u){if(m.length===0){if(c===""){c="",l="";continue}c[c.length-1]===`
|
|
15
|
-
`&&(c=c.substring(0,c.length-1));const h={type:l||"message",data:c,id:r};l="",c="",yield h}if(m[0]===":")continue;let p="",x="";const i=m.indexOf(":");switch(i===-1?p=m:(p=m.substring(0,i),x=m[i+1]===" "?m.substring(i+2):m.substring(i+1)),p){case"event":l=x;break;case"data":c+=x+`
|
|
16
|
-
`;break;case"id":r=x;break}}}}class _s{constructor(t,s="https://api.openai.com"){J(this,"name","OpenAI");this.apiKey=t,this.baseURL=s}async*chatCompletion(t,s){const r=new URL("./v1/chat/completions",this.baseURL),l=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"x-pw-serviceworker":"forward"},body:JSON.stringify({model:"gpt-4o",messages:t.map(({role:c,content:a})=>({role:c,content:a})),stream:!0}),signal:s});if(l.status!==200||!l.body)throw new Error("Failed to chat with OpenAI, unexpected status: "+l.status+await l.text());for await(const c of Tt(l.body)){const a=JSON.parse(c.data);if(a.object==="chat.completion.chunk"){if(a.choices[0].finish_reason)break;yield a.choices[0].delta.content}}}}class Ps{constructor(t,s="https://api.anthropic.com"){J(this,"name","Anthropic");this.apiKey=t,this.baseURL=s}async*chatCompletion(t,s){var l;const r=await fetch(new URL("./v1/messages",this.baseURL),{method:"POST",headers:{"Content-Type":"application/json","x-api-key":this.apiKey,"anthropic-version":"2023-06-01","x-pw-serviceworker":"forward"},body:JSON.stringify({model:"claude-3-5-sonnet-20241022",messages:t.filter(({role:c})=>c!=="developer").map(({role:c,content:a})=>({role:c,content:a})),system:(l=t.find(({role:c})=>c==="developer"))==null?void 0:l.content,max_tokens:1024,stream:!0}),signal:s});if(r.status!==200||!r.body)throw new Error("Failed to chat with Anthropic, unexpected status: "+r.status+await r.text());for await(const c of Tt(r.body)){const a=JSON.parse(c.data);a.type==="content_block_delta"&&(yield a.delta.text)}}}class st{constructor(t){J(this,"conversations",new Map);this.api=t}getConversation(t){return this.conversations.get(t)}startConversation(t,s){const r=new Ws(this,s);return this.conversations.set(t,r),r}}class Ws{constructor(t,s){J(this,"history");J(this,"onChange",new $s);J(this,"_abortControllers",new Set);this.chat=t,this.history=[{role:"developer",content:s}]}async send(t,s){const r={role:"assistant",content:""};this.history.push({role:"user",content:t,displayContent:s},r);const l=new AbortController;this._abortControllers.add(l),this.onChange.fire();try{for await(const c of this.chat.api.chatCompletion(this.history,l.signal))r.content+=c,this.onChange.fire()}finally{this._abortControllers.delete(l),this.onChange.fire()}}isSending(){return this._abortControllers.size>0}abortSending(){for(const t of this._abortControllers)t.abort();this._abortControllers.clear(),this.onChange.fire()}isEmpty(){return this.history.length<2}}const Ie=f.createContext(void 0);function pi({children:e}){const t=Yt(),s=f.useMemo(()=>{const r=Object.fromEntries(t);if(r.openai_api_key)return new st(new _s(r.openai_api_key,r.openai_base_url));if(r.anthropic_api_key)return new st(new Ps(r.anthropic_api_key,r.anthropic_base_url))},[t]);return n.jsx(Ie.Provider,{value:s,children:e})}function St(){const e=f.useContext(Ie);if(!e)throw new Error("No LLM chat available, make sure theres a LLMProvider above");return e}function Fs(){return!!f.useContext(Ie)}function Os(e){const t=St().getConversation(e);if(!t)throw new Error("No conversation found for id: "+e);const[s,r]=f.useState(t.history);return f.useEffect(()=>{function l(){r([...t.history])}return l(),t.onChange.event(l).dispose},[t]),[s,t]}function Hs({conversationId:e}){const[t,s]=Os(e),[r,l]=f.useState(""),c=f.useCallback(()=>{l(a=>(s.send(a),""))},[s]);return n.jsxs("div",{className:"chat-container",children:[n.jsxs("p",{className:"chat-disclaimer",children:["Chat based on ",s.chat.api.name,". Check for mistakes."]}),n.jsx("hr",{}),n.jsx("div",{className:"messages-container",children:t.filter(({role:a})=>a!=="developer").map((a,d)=>n.jsxs("div",{className:P("message",a.role==="user"&&"user-message"),children:[a.role==="assistant"&&n.jsx("div",{className:"message-icon",children:n.jsx("img",{src:"playwright-logo.svg"})}),n.jsx("div",{className:"message-content",children:n.jsx(Is,{options:{disableParsingRawHTML:!0},children:a.displayContent??a.content})})]},""+d))}),n.jsxs("div",{className:"input-form",children:[n.jsx("textarea",{name:"content",value:r,onChange:a=>l(a.target.value),onKeyDown:a=>{a.key==="Enter"&&!a.shiftKey&&(a.preventDefault(),c())},placeholder:"Ask a question...",className:"message-input"}),s.isSending()?n.jsx("button",{type:"button",className:"send-button",onClick:a=>{a.preventDefault(),s.abortSending()},children:"Cancel"}):n.jsx("button",{className:"send-button",disabled:!r.trim(),onClick:c,children:"Send"})]})]})}async function Se(e){const t=new Image;return e&&(t.src=e,await new Promise((s,r)=>{t.onload=s,t.onerror=s})),t}const Ae={backgroundImage:`linear-gradient(45deg, #80808020 25%, transparent 25%),
|
|
17
|
-
linear-gradient(-45deg, #80808020 25%, transparent 25%),
|
|
18
|
-
linear-gradient(45deg, transparent 75%, #80808020 75%),
|
|
19
|
-
linear-gradient(-45deg, transparent 75%, #80808020 75%)`,backgroundSize:"20px 20px",backgroundPosition:"0 0, 0 10px, 10px -10px, -10px 0px",boxShadow:`rgb(0 0 0 / 10%) 0px 1.8px 1.9px,
|
|
20
|
-
rgb(0 0 0 / 15%) 0px 6.1px 6.3px,
|
|
21
|
-
rgb(0 0 0 / 10%) 0px -2px 4px,
|
|
22
|
-
rgb(0 0 0 / 15%) 0px -6.1px 12px,
|
|
23
|
-
rgb(0 0 0 / 25%) 0px 6px 12px`},Xs=({diff:e,noTargetBlank:t,hideDetails:s})=>{const[r,l]=f.useState(e.diff?"diff":"actual"),[c,a]=f.useState(!1),[d,u]=f.useState(null),[m,p]=f.useState("Expected"),[x,i]=f.useState(null),[h,o]=f.useState(null),[g,v]=Ee();f.useEffect(()=>{(async()=>{var E,k,w,z;u(await Se((E=e.expected)==null?void 0:E.attachment.path)),p(((k=e.expected)==null?void 0:k.title)||"Expected"),i(await Se((w=e.actual)==null?void 0:w.attachment.path)),o(await Se((z=e.diff)==null?void 0:z.attachment.path))})()},[e]);const b=d&&x&&h,N=b?Math.max(d.naturalWidth,x.naturalWidth,200):500,L=b?Math.max(d.naturalHeight,x.naturalHeight,200):500,A=Math.min(1,(g.width-30)/N),j=Math.min(1,(g.width-50)/N/2),M=N*A,y=L*A,T={flex:"none",margin:"0 10px",cursor:"pointer",userSelect:"none"};return n.jsx("div",{"data-testid":"test-result-image-mismatch",style:{display:"flex",flexDirection:"column",alignItems:"center",flex:"auto"},ref:v,children:b&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{"data-testid":"test-result-image-mismatch-tabs",style:{display:"flex",margin:"10px 0 20px"},children:[e.diff&&n.jsx("div",{style:{...T,fontWeight:r==="diff"?600:"initial"},onClick:()=>l("diff"),children:"Diff"}),n.jsx("div",{style:{...T,fontWeight:r==="actual"?600:"initial"},onClick:()=>l("actual"),children:"Actual"}),n.jsx("div",{style:{...T,fontWeight:r==="expected"?600:"initial"},onClick:()=>l("expected"),children:m}),n.jsx("div",{style:{...T,fontWeight:r==="sxs"?600:"initial"},onClick:()=>l("sxs"),children:"Side by side"}),n.jsx("div",{style:{...T,fontWeight:r==="slider"?600:"initial"},onClick:()=>l("slider"),children:"Slider"})]}),n.jsxs("div",{style:{display:"flex",justifyContent:"center",flex:"auto",minHeight:y+60},children:[e.diff&&r==="diff"&&n.jsx(B,{image:h,alt:"Diff",hideSize:s,canvasWidth:M,canvasHeight:y,scale:A}),e.diff&&r==="actual"&&n.jsx(B,{image:x,alt:"Actual",hideSize:s,canvasWidth:M,canvasHeight:y,scale:A}),e.diff&&r==="expected"&&n.jsx(B,{image:d,alt:m,hideSize:s,canvasWidth:M,canvasHeight:y,scale:A}),e.diff&&r==="slider"&&n.jsx(Bs,{expectedImage:d,actualImage:x,hideSize:s,canvasWidth:M,canvasHeight:y,scale:A,expectedTitle:m}),e.diff&&r==="sxs"&&n.jsxs("div",{style:{display:"flex"},children:[n.jsx(B,{image:d,title:m,hideSize:s,canvasWidth:j*N,canvasHeight:j*L,scale:j}),n.jsx(B,{image:c?h:x,title:c?"Diff":"Actual",onClick:()=>a(!c),hideSize:s,canvasWidth:j*N,canvasHeight:j*L,scale:j})]}),!e.diff&&r==="actual"&&n.jsx(B,{image:x,title:"Actual",hideSize:s,canvasWidth:M,canvasHeight:y,scale:A}),!e.diff&&r==="expected"&&n.jsx(B,{image:d,title:m,hideSize:s,canvasWidth:M,canvasHeight:y,scale:A}),!e.diff&&r==="sxs"&&n.jsxs("div",{style:{display:"flex"},children:[n.jsx(B,{image:d,title:m,canvasWidth:j*N,canvasHeight:j*L,scale:j}),n.jsx(B,{image:x,title:"Actual",canvasWidth:j*N,canvasHeight:j*L,scale:j})]})]}),!s&&n.jsxs("div",{style:{alignSelf:"start",lineHeight:"18px",marginLeft:"15px"},children:[n.jsx("div",{children:e.diff&&n.jsx("a",{target:"_blank",href:e.diff.attachment.path,rel:"noreferrer",children:e.diff.attachment.name})}),n.jsx("div",{children:n.jsx("a",{target:t?"":"_blank",href:e.actual.attachment.path,rel:"noreferrer",children:e.actual.attachment.name})}),n.jsx("div",{children:n.jsx("a",{target:t?"":"_blank",href:e.expected.attachment.path,rel:"noreferrer",children:e.expected.attachment.name})})]})]})})},Bs=({expectedImage:e,actualImage:t,canvasWidth:s,canvasHeight:r,scale:l,expectedTitle:c,hideSize:a})=>{const d={position:"absolute",top:0,left:0},[u,m]=f.useState(s/2),p=e.naturalWidth===t.naturalWidth&&e.naturalHeight===t.naturalHeight;return n.jsxs("div",{style:{flex:"none",display:"flex",alignItems:"center",flexDirection:"column",userSelect:"none"},children:[!a&&n.jsxs("div",{style:{margin:5},children:[!p&&n.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"Expected "}),n.jsx("span",{children:e.naturalWidth}),n.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),n.jsx("span",{children:e.naturalHeight}),!p&&n.jsx("span",{style:{flex:"none",margin:"0 5px 0 15px"},children:"Actual "}),!p&&n.jsx("span",{children:t.naturalWidth}),!p&&n.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),!p&&n.jsx("span",{children:t.naturalHeight})]}),n.jsxs("div",{style:{position:"relative",width:s,height:r,margin:15,...Ae},children:[n.jsx(en,{orientation:"horizontal",offsets:[u],setOffsets:x=>m(x[0]),resizerColor:"#57606a80",resizerWidth:6}),n.jsx("img",{alt:c,style:{width:e.naturalWidth*l,height:e.naturalHeight*l},draggable:"false",src:e.src}),n.jsx("div",{style:{...d,bottom:0,overflow:"hidden",width:u,...Ae},children:n.jsx("img",{alt:"Actual",style:{width:t.naturalWidth*l,height:t.naturalHeight*l},draggable:"false",src:t.src})})]})]})},B=({image:e,title:t,alt:s,hideSize:r,canvasWidth:l,canvasHeight:c,scale:a,onClick:d})=>n.jsxs("div",{style:{flex:"none",display:"flex",alignItems:"center",flexDirection:"column"},children:[!r&&n.jsxs("div",{style:{margin:5},children:[t&&n.jsx("span",{style:{flex:"none",margin:"0 5px"},children:t}),n.jsx("span",{children:e.naturalWidth}),n.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),n.jsx("span",{children:e.naturalHeight})]}),n.jsx("div",{style:{display:"flex",flex:"none",width:l,height:c,margin:15,...Ae},children:n.jsx("img",{width:e.naturalWidth*a,height:e.naturalHeight*a,alt:t||s,style:{cursor:d?"pointer":"initial"},draggable:"false",src:e.src,onClick:d})})]});function Us(e){return!!e.match(/^(text\/.*?|application\/(json|(x-)?javascript|xml.*?|ecmascript|graphql|x-www-form-urlencoded)|image\/svg(\+xml)?|application\/.*?(\+json|\+xml))(;\s*charset=.*)?$/)}const Gs=({title:e,children:t,setExpanded:s,expanded:r,expandOnTitleClick:l})=>{const c=f.useId();return n.jsxs("div",{className:P("expandable",r&&"expanded"),children:[n.jsxs("div",{role:"button","aria-expanded":r,"aria-controls":c,className:"expandable-title",onClick:()=>l&&s(!r),children:[n.jsx("div",{className:P("codicon",r?"codicon-chevron-down":"codicon-chevron-right"),style:{cursor:"pointer",color:"var(--vscode-foreground)",marginLeft:"5px"},onClick:()=>!l&&s(!r)}),e]}),r&&n.jsx("div",{id:c,role:"region",style:{marginLeft:25},children:t})]})};function Mt(e){const t=[];let s=0,r;for(;(r=tn.exec(e))!==null;){const c=e.substring(s,r.index);c&&t.push(c);const a=r[0];t.push(Vs(a)),s=r.index+a.length}const l=e.substring(s);return l&&t.push(l),t}function Vs(e){let t=e;return t.startsWith("www.")&&(t="https://"+t),n.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",children:e})}const Qs=({attachment:e,reveal:t})=>{const[s,r]=f.useState(!1),[l,c]=f.useState(null),[a,d]=f.useState(null),[u,m]=nn(),p=f.useRef(null),x=Us(e.contentType),i=!!e.sha1||!!e.path;f.useEffect(()=>{var g;if(t)return(g=p.current)==null||g.scrollIntoView({behavior:"smooth"}),m()},[t,m]),f.useEffect(()=>{s&&l===null&&a===null&&(d("Loading ..."),fetch(fe(e)).then(g=>g.text()).then(g=>{c(g),d(null)}).catch(g=>{d("Failed to load: "+g.message)}))},[s,l,a,e]);const h=f.useMemo(()=>{const g=l?l.split(`
|
|
24
|
-
`).length:0;return Math.min(Math.max(5,g),20)*sn},[l]),o=n.jsxs("span",{style:{marginLeft:5},ref:p,"aria-label":e.name,children:[n.jsx("span",{children:Mt(e.name)}),i&&n.jsx("a",{style:{marginLeft:5},href:he(e),children:"download"})]});return!x||!i?n.jsx("div",{style:{marginLeft:20},children:o}):n.jsxs("div",{className:P(u&&"yellow-flash"),children:[n.jsx(Gs,{title:o,expanded:s,setExpanded:r,expandOnTitleClick:!0,children:a&&n.jsx("i",{children:a})}),s&&l!==null&&n.jsx("div",{className:"vbox",style:{height:h},children:n.jsx(rn,{text:l,readOnly:!0,mimeType:e.contentType,linkify:!0,lineNumbers:!0,wrapLines:!1})})]})},qs=({model:e,revealedAttachment:t})=>{const{diffMap:s,screenshots:r,attachments:l}=f.useMemo(()=>{const c=new Set((e==null?void 0:e.visibleAttachments)??[]),a=new Set,d=new Map;for(const u of c){if(!u.path&&!u.sha1)continue;const m=u.name.match(/^(.*)-(expected|actual|diff)\.png$/);if(m){const p=m[1],x=m[2],i=d.get(p)||{expected:void 0,actual:void 0,diff:void 0};i[x]=u,d.set(p,i),c.delete(u)}else u.contentType.startsWith("image/")&&(a.add(u),c.delete(u))}return{diffMap:d,attachments:c,screenshots:a}},[e]);return!s.size&&!r.size&&!l.size?n.jsx(ce,{text:"No attachments"}):n.jsxs("div",{className:"attachments-tab",children:[[...s.values()].map(({expected:c,actual:a,diff:d})=>n.jsxs(n.Fragment,{children:[c&&a&&n.jsx("div",{className:"attachments-section",children:"Image diff"}),c&&a&&n.jsx(Xs,{noTargetBlank:!0,diff:{name:"Image diff",expected:{attachment:{...c,path:he(c)},title:"Expected"},actual:{attachment:{...a,path:he(a)}},diff:d?{attachment:{...d,path:he(d)}}:void 0}})]})),r.size?n.jsx("div",{className:"attachments-section",children:"Screenshots"}):void 0,[...r.values()].map((c,a)=>{const d=fe(c);return n.jsxs("div",{className:"attachment-item",children:[n.jsx("div",{children:n.jsx("img",{draggable:"false",src:d})}),n.jsx("div",{children:n.jsx("a",{target:"_blank",href:d,rel:"noreferrer",children:c.name})})]},`screenshot-${a}`)}),l.size?n.jsx("div",{className:"attachments-section",children:"Attachments"}):void 0,[...l.values()].map((c,a)=>n.jsx("div",{className:"attachment-item",children:n.jsx(Qs,{attachment:c,reveal:t&&Ks(c,t[0])?t:void 0})},Zs(c,a)))]})};function Ks(e,t){return e.name===t.name&&e.path===t.path&&e.sha1===t.sha1}function fe(e,t={}){const s=new URLSearchParams(t);return e.sha1?(s.set("trace",e.traceUrl),"sha1/"+e.sha1+"?"+s.toString()):(s.set("path",e.path),"file?"+s.toString())}function he(e){const t={dn:e.name};return e.contentType&&(t.dct=e.contentType),fe(e,t)}function Zs(e,t){return t+"-"+(e.sha1?"sha1-"+e.sha1:"path-"+e.path)}const Js=({prompt:e})=>n.jsx(cn,{value:e,description:"Copy prompt",copiedDescription:n.jsxs(n.Fragment,{children:["Copied ",n.jsx("span",{className:"codicon codicon-copy",style:{marginLeft:"5px"}})]}),style:{width:"120px",justifyContent:"center"}});function Ys(e){return f.useMemo(()=>{if(!e)return{errors:new Map};const t=new Map;for(const s of e.errorDescriptors)t.set(s.message,s);return{errors:t}},[e])}function ei({message:e,error:t,errorId:s,sdkLanguage:r,revealInSource:l}){var i;const[c,a]=f.useState(!1),d=Fs();let u,m;const p=(i=t.stack)==null?void 0:i[0];p&&(u=p.file.replace(/.*[/\\](.*)/,"$1")+":"+p.line,m=p.file+":"+p.line);const x=an(async()=>t.prompt?await(await fetch(fe(t.prompt))).text():void 0,[t],void 0);return n.jsxs("div",{style:{display:"flex",flexDirection:"column",overflowX:"clip"},children:[n.jsxs("div",{className:"hbox",style:{alignItems:"center",padding:"5px 10px",minHeight:36,fontWeight:"bold",color:"var(--vscode-errorForeground)",flex:0},children:[t.action&&ze(t.action,{sdkLanguage:r}),u&&n.jsxs("div",{className:"action-location",children:["@ ",n.jsx("span",{title:m,onClick:()=>l(t),children:u})]}),n.jsx("span",{style:{position:"absolute",right:"5px"},children:x&&(d?n.jsx(ti,{conversationId:s,onChange:a,value:c,prompt:x}):n.jsx(Js,{prompt:x}))})]}),n.jsx(An,{error:e}),c&&n.jsx(Hs,{conversationId:s})]})}function ti({conversationId:e,value:t,onChange:s,prompt:r}){const l=St();return n.jsx(ue,{onClick:()=>{if(!l.getConversation(e)){const c=l.startConversation(e,["My Playwright test failed. What's going wrong?","Please give me a suggestion how to fix it, and then explain what went wrong. Be very concise and apply Playwright best practices.","Don't include many headings in your output. Make sure what you're saying is correct, and take into account whether there might be a bug in the app."].join(`
|
|
25
|
-
`));let a="Help me with the error above.";const d=r.includes("Local changes:"),u=r.includes("Page snapshot:");d?a+=` Take the code diff${u?" and page snapshot":""} into account.`:u&&(a+=" Take the page snapshot into account."),c.send(r,a)}s(c=>!c)},style:{width:"96px",justifyContent:"center"},title:"Fix with AI",className:"copy-to-clipboard-text-button",children:t?"Hide AI":"Fix with AI"})}const ni=({errorsModel:e,sdkLanguage:t,revealInSource:s,wallTime:r})=>e.errors.size?n.jsx("div",{className:"fill",style:{overflow:"auto"},children:[...e.errors.entries()].map(([l,c])=>{const a=`error-${r}-${l}`;return n.jsx(ei,{errorId:a,message:l,error:c,revealInSource:s,sdkLanguage:t},a)})}):n.jsx(ce,{text:"No errors"}),Lt={width:200,height:45},te=2.5,si=Lt.height+te*2,ii=({model:e,boundaries:t,previewPoint:s})=>{var p,x;const[r,l]=Ee(),c=f.useRef(null);let a=0;if(c.current&&s){const i=c.current.getBoundingClientRect();a=(s.clientY-i.top+c.current.scrollTop)/si|0}const d=(x=(p=e==null?void 0:e.pages)==null?void 0:p[a])==null?void 0:x.screencastFrames;let u,m;if(s!==void 0&&d&&d.length){const i=t.minimum+(t.maximum-t.minimum)*s.x/r.width;u=d[rt(d,i,At)-1];const h={width:Math.min(800,window.innerWidth/2|0),height:Math.min(800,window.innerHeight/2|0)};m=u?Et({width:u.width,height:u.height},h):void 0}return n.jsxs("div",{className:"film-strip",ref:l,children:[n.jsx("div",{className:"film-strip-lanes",ref:c,children:e==null?void 0:e.pages.map((i,h)=>i.screencastFrames.length?n.jsx(ri,{boundaries:t,page:i,width:r.width},h):null)}),(s==null?void 0:s.x)!==void 0&&n.jsxs("div",{className:"film-strip-hover",style:{top:r.bottom+5,left:Math.min(s.x,r.width-(m?m.width:0)-10)},children:[s.action&&n.jsx("div",{className:"film-strip-hover-title",children:ze(s.action,s)}),u&&m&&n.jsx("div",{style:{width:m.width,height:m.height},children:n.jsx("img",{src:`sha1/${u.sha1}`,width:m.width,height:m.height})})]})]})},ri=({boundaries:e,page:t,width:s})=>{const r={width:0,height:0},l=t.screencastFrames;for(const g of l)r.width=Math.max(r.width,g.width),r.height=Math.max(r.height,g.height);const c=Et(r,Lt),a=l[0].timestamp,d=l[l.length-1].timestamp,u=e.maximum-e.minimum,m=(a-e.minimum)/u*s,p=(e.maximum-d)/u*s,i=(d-a)/u*s/(c.width+2*te)|0,h=(d-a)/i,o=[];for(let g=0;a&&h&&g<i;++g){const v=a+h*g,b=rt(l,v,At)-1;o.push(n.jsx("div",{className:"film-strip-frame",style:{width:c.width,height:c.height,backgroundImage:`url(sha1/${l[b].sha1})`,backgroundSize:`${c.width}px ${c.height}px`,margin:te,marginRight:te}},g))}return o.push(n.jsx("div",{className:"film-strip-frame",style:{width:c.width,height:c.height,backgroundImage:`url(sha1/${l[l.length-1].sha1})`,backgroundSize:`${c.width}px ${c.height}px`,margin:te,marginRight:te}},o.length)),n.jsx("div",{className:"film-strip-lane",style:{marginLeft:m+"px",marginRight:p+"px"},children:o})};function At(e,t){return e-t.timestamp}function Et(e,t){const s=Math.max(e.width/t.width,e.height/t.height);return{width:e.width/s|0,height:e.height/s|0}}const ai=({model:e,boundaries:t,consoleEntries:s,onSelected:r,highlightedAction:l,highlightedEntry:c,highlightedConsoleEntry:a,selectedTime:d,setSelectedTime:u,sdkLanguage:m})=>{const[p,x]=Ee(),[i,h]=f.useState(),[o,g]=f.useState(),{offsets:v,curtainLeft:b,curtainRight:N}=f.useMemo(()=>{let k=d||t;if(i&&i.startX!==i.endX){const R=W(p.width,t,i.startX),I=W(p.width,t,i.endX);k={minimum:Math.min(R,I),maximum:Math.max(R,I)}}const w=$(p.width,t,k.minimum),D=$(p.width,t,t.maximum)-$(p.width,t,k.maximum);return{offsets:ci(p.width,t),curtainLeft:w,curtainRight:D}},[d,t,i,p]),L=f.useMemo(()=>{const k=[];for(const w of(e==null?void 0:e.actions)||[])w.class!=="Test"&&k.push({action:w,leftTime:w.startTime,rightTime:w.endTime||t.maximum,leftPosition:$(p.width,t,w.startTime),rightPosition:$(p.width,t,w.endTime||t.maximum),active:!1,error:!!w.error});for(const w of(e==null?void 0:e.resources)||[]){const z=w._monotonicTime,D=w._monotonicTime+w.time;k.push({resource:w,leftTime:z,rightTime:D,leftPosition:$(p.width,t,z),rightPosition:$(p.width,t,D),active:!1,error:!1})}for(const w of s||[])k.push({consoleMessage:w,leftTime:w.timestamp,rightTime:w.timestamp,leftPosition:$(p.width,t,w.timestamp),rightPosition:$(p.width,t,w.timestamp),active:!1,error:w.isError});return k},[e,s,t,p]);f.useMemo(()=>{for(const k of L)l?k.active=k.action===l:c?k.active=k.resource===c:a?k.active=k.consoleMessage===a:k.active=!1},[L,l,c,a]);const A=f.useCallback(k=>{if(g(void 0),!x.current)return;const w=k.clientX-x.current.getBoundingClientRect().left,z=W(p.width,t,w),D=d?$(p.width,t,d.minimum):0,R=d?$(p.width,t,d.maximum):0;d&&Math.abs(w-D)<10?h({startX:R,endX:w,type:"resize"}):d&&Math.abs(w-R)<10?h({startX:D,endX:w,type:"resize"}):d&&z>d.minimum&&z<d.maximum&&k.clientY-x.current.getBoundingClientRect().top<20?h({startX:D,endX:R,pivot:w,type:"move"}):h({startX:w,endX:w,type:"resize"})},[t,p,x,d]),j=f.useCallback(k=>{if(!x.current)return;const w=k.clientX-x.current.getBoundingClientRect().left,z=W(p.width,t,w),D=e==null?void 0:e.actions.findLast(O=>O.startTime<=z);if(!k.buttons){h(void 0);return}if(D&&r(D),!i)return;let R=i;if(i.type==="resize")R={...i,endX:w};else{const O=w-i.pivot;let G=i.startX+O,K=i.endX+O;G<0&&(G=0,K=G+(i.endX-i.startX)),K>p.width&&(K=p.width,G=K-(i.endX-i.startX)),R={...i,startX:G,endX:K,pivot:w}}h(R);const I=W(p.width,t,R.startX),U=W(p.width,t,R.endX);I!==U&&u({minimum:Math.min(I,U),maximum:Math.max(I,U)})},[t,i,p,e,r,x,u]),M=f.useCallback(()=>{if(g(void 0),!!i){if(i.startX!==i.endX){const k=W(p.width,t,i.startX),w=W(p.width,t,i.endX);u({minimum:Math.min(k,w),maximum:Math.max(k,w)})}else{const k=W(p.width,t,i.startX),w=e==null?void 0:e.actions.findLast(z=>z.startTime<=k);w&&r(w),u(void 0)}h(void 0)}},[t,i,p,e,u,r]),y=f.useCallback(k=>{if(!x.current)return;const w=k.clientX-x.current.getBoundingClientRect().left,z=W(p.width,t,w),D=e==null?void 0:e.actions.findLast(R=>R.startTime<=z);g({x:w,clientY:k.clientY,action:D,sdkLanguage:m})},[t,p,e,x,m]),T=f.useCallback(()=>{g(void 0)},[]),E=f.useCallback(()=>{u(void 0)},[u]);return n.jsxs("div",{style:{flex:"none",borderBottom:"1px solid var(--vscode-panel-border)"},children:[!!i&&n.jsx(on,{cursor:(i==null?void 0:i.type)==="resize"?"ew-resize":"grab",onPaneMouseUp:M,onPaneMouseMove:j,onPaneDoubleClick:E}),n.jsxs("div",{ref:x,className:"timeline-view",onMouseDown:A,onMouseMove:y,onMouseLeave:T,children:[n.jsx("div",{className:"timeline-grid",children:v.map((k,w)=>n.jsx("div",{className:"timeline-divider",style:{left:k.position+"px"},children:n.jsx("div",{className:"timeline-time",children:F(k.time-t.minimum)})},w))}),n.jsx("div",{style:{height:8}}),n.jsx(ii,{model:e,boundaries:t,previewPoint:o}),n.jsx("div",{className:"timeline-bars",children:L.map((k,w)=>n.jsx("div",{className:P("timeline-bar",k.action&&"action",k.resource&&"network",k.consoleMessage&&"console-message",k.active&&"active",k.error&&"error"),style:{left:k.leftPosition,width:Math.max(5,k.rightPosition-k.leftPosition),top:oi(k),bottom:0}},w))}),n.jsx("div",{className:"timeline-marker",style:{display:o!==void 0?"block":"none",left:((o==null?void 0:o.x)||0)+"px"}}),d&&n.jsxs("div",{className:"timeline-window",children:[n.jsx("div",{className:"timeline-window-curtain left",style:{width:b}}),n.jsx("div",{className:"timeline-window-resizer",style:{left:-5}}),n.jsx("div",{className:"timeline-window-center",children:n.jsx("div",{className:"timeline-window-drag"})}),n.jsx("div",{className:"timeline-window-resizer",style:{left:5}}),n.jsx("div",{className:"timeline-window-curtain right",style:{width:N}})]})]})]})};function ci(e,t){let r=e/64;const l=t.maximum-t.minimum,c=e/l;let a=l/r;const d=Math.ceil(Math.log(a)/Math.LN10);a=Math.pow(10,d),a*c>=5*64&&(a=a/5),a*c>=2*64&&(a=a/2);const u=t.minimum;let m=t.maximum;m+=64/c,r=Math.ceil((m-u)/a),a||(r=0);const p=[];for(let x=0;x<r;++x){const i=u+a*x;p.push({position:$(e,t,i),time:i})}return p}function $(e,t,s){return(s-t.minimum)/(t.maximum-t.minimum)*e}function W(e,t,s){return s/e*(t.maximum-t.minimum)+t.minimum}function oi(e){return e.resource?25:20}const li=({model:e})=>{var s,r;if(!e)return n.jsx(n.Fragment,{});const t=e.wallTime!==void 0?new Date(e.wallTime).toLocaleString(void 0,{timeZoneName:"short"}):void 0;return n.jsxs("div",{"data-testid":"metadata-view",className:"vbox",style:{flexShrink:0},children:[n.jsx("div",{className:"call-section",style:{paddingTop:2},children:"Time"}),!!t&&n.jsxs("div",{className:"call-line",children:["start time:",n.jsx("span",{className:"call-value datetime",title:t,children:t})]}),n.jsxs("div",{className:"call-line",children:["duration:",n.jsx("span",{className:"call-value number",title:F(e.endTime-e.startTime),children:F(e.endTime-e.startTime)})]}),n.jsx("div",{className:"call-section",children:"Browser"}),n.jsxs("div",{className:"call-line",children:["engine:",n.jsx("span",{className:"call-value string",title:e.browserName,children:e.browserName})]}),e.channel&&n.jsxs("div",{className:"call-line",children:["channel:",n.jsx("span",{className:"call-value string",title:e.channel,children:e.channel})]}),e.platform&&n.jsxs("div",{className:"call-line",children:["platform:",n.jsx("span",{className:"call-value string",title:e.platform,children:e.platform})]}),e.options.userAgent&&n.jsxs("div",{className:"call-line",children:["user agent:",n.jsx("span",{className:"call-value datetime",title:e.options.userAgent,children:e.options.userAgent})]}),e.options.baseURL&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"call-section",style:{paddingTop:2},children:"Config"}),n.jsxs("div",{className:"call-line",children:["baseURL:",n.jsx("a",{className:"call-value string",href:e.options.baseURL,title:e.options.baseURL,target:"_blank",rel:"noopener noreferrer",children:e.options.baseURL})]})]}),n.jsx("div",{className:"call-section",children:"Viewport"}),e.options.viewport&&n.jsxs("div",{className:"call-line",children:["width:",n.jsx("span",{className:"call-value number",title:String(!!((s=e.options.viewport)!=null&&s.width)),children:e.options.viewport.width})]}),e.options.viewport&&n.jsxs("div",{className:"call-line",children:["height:",n.jsx("span",{className:"call-value number",title:String(!!((r=e.options.viewport)!=null&&r.height)),children:e.options.viewport.height})]}),n.jsxs("div",{className:"call-line",children:["is mobile:",n.jsx("span",{className:"call-value boolean",title:String(!!e.options.isMobile),children:String(!!e.options.isMobile)})]}),e.options.deviceScaleFactor&&n.jsxs("div",{className:"call-line",children:["device scale:",n.jsx("span",{className:"call-value number",title:String(e.options.deviceScaleFactor),children:String(e.options.deviceScaleFactor)})]}),n.jsx("div",{className:"call-section",children:"Counts"}),n.jsxs("div",{className:"call-line",children:["pages:",n.jsx("span",{className:"call-value number",children:e.pages.length})]}),n.jsxs("div",{className:"call-line",children:["actions:",n.jsx("span",{className:"call-value number",children:e.actions.length})]}),n.jsxs("div",{className:"call-line",children:["events:",n.jsx("span",{className:"call-value number",children:e.events.length})]})]})},di=({annotations:e})=>e.length?n.jsx("div",{className:"annotations-tab",children:e.map((t,s)=>n.jsxs("div",{className:"annotation-item",children:[n.jsx("span",{style:{fontWeight:"bold"},children:t.type}),t.description&&n.jsxs("span",{children:[": ",Mt(t.description)]})]},`annotation-${s}`))}):n.jsx(ce,{text:"No annotations"}),mi=({model:e,showSourcesFirst:t,rootDir:s,fallbackLocation:r,isLive:l,hideTimeline:c,status:a,annotations:d,inert:u,onOpenExternally:m,revealSource:p})=>{var Oe;const[x,i]=f.useState(void 0),[h,o]=f.useState(void 0),[g,v]=f.useState(void 0),[b,N]=f.useState(),[L,A]=f.useState(),[j,M]=f.useState(),[y,T]=f.useState("actions"),[E,k]=He("propertiesTab",t?"source":"call"),[w,z]=f.useState(!1),[D,R]=f.useState({lastEdited:"none"}),[I,U]=f.useState(),[O,G]=He("propertiesSidebarLocation","bottom"),K=!1,xe=f.useCallback(S=>{i(S==null?void 0:S.callId),o(void 0)},[]),ge=f.useMemo(()=>e==null?void 0:e.actions.find(S=>S.callId===b),[e,b]),ve=f.useCallback(S=>{N(S==null?void 0:S.callId)},[]),zt=f.useMemo(()=>(e==null?void 0:e.sources)||new Map,[e]);f.useEffect(()=>{U(void 0),o(void 0)},[e]);const oe=f.useMemo(()=>{if(x){const V=e==null?void 0:e.actions.find(H=>H.callId===x);if(V)return V}const S=e==null?void 0:e.failedAction();if(S)return S;if(e!=null&&e.actions.length){let V=e.actions.length-1;for(let H=0;H<e.actions.length;++H)if(e.actions[H].apiName==="After Hooks"&&H){V=H-1;break}return e.actions[V]}},[e,x]),Z=f.useMemo(()=>ge||oe,[oe,ge]),Dt=f.useMemo(()=>h?h.stack:Z==null?void 0:Z.stack,[Z,h]),$e=f.useCallback(S=>{xe(S),ve(void 0)},[xe,ve]),_=f.useCallback(S=>{k(S),S!=="inspector"&&z(!1)},[k]),_e=f.useCallback(S=>{!w&&S&&_("inspector"),z(S)},[z,_,w]),Rt=f.useCallback(S=>{R(S),_("inspector")},[_]),It=f.useCallback(S=>{_("attachments"),v(V=>{if(!V)return[S,0];const H=V[1];return[S,H+1]})},[_]);f.useEffect(()=>{p&&_("source")},[p,_]);const ye=ln(e,I),Pe=dn(e,I),We=Ys(e),ee=(e==null?void 0:e.sdkLanguage)||"javascript",$t={id:"inspector",title:"Locator",render:()=>n.jsx(un,{showScreenshot:K,sdkLanguage:ee,setIsInspecting:_e,highlightedElement:D,setHighlightedElement:R})},_t={id:"call",title:"Call",render:()=>n.jsx(Tn,{action:Z,startTimeOffset:(e==null?void 0:e.startTime)??0,sdkLanguage:ee})},Pt={id:"log",title:"Log",render:()=>n.jsx(Ln,{action:Z,isLive:l})},Wt={id:"errors",title:"Errors",errorCount:We.errors.size,render:()=>n.jsx(ni,{errorsModel:We,sdkLanguage:ee,revealInSource:S=>{S.action?xe(S.action):o(S),_("source")},wallTime:(e==null?void 0:e.wallTime)??0})};let Fe;!oe&&r&&(Fe=(Oe=r.source)==null?void 0:Oe.errors.length);const we={id:"source",title:"Source",errorCount:Fe,render:()=>n.jsx(fn,{stack:Dt,sources:zt,rootDir:s,stackFrameLocation:O==="bottom"?"right":"bottom",fallbackLocation:r,onOpenExternally:m})},Ft={id:"console",title:"Console",count:ye.entries.length,render:()=>n.jsx(pn,{consoleModel:ye,boundaries:je,selectedTime:I,onAccepted:S=>U({minimum:S.timestamp,maximum:S.timestamp}),onEntryHovered:M})},Ot={id:"network",title:"Network",count:Pe.resources.length,render:()=>n.jsx(mn,{boundaries:je,networkModel:Pe,onEntryHovered:A,sdkLanguage:(e==null?void 0:e.sdkLanguage)??"javascript"})},Ht={id:"attachments",title:"Attachments",count:e==null?void 0:e.visibleAttachments.length,render:()=>n.jsx(qs,{model:e,revealedAttachment:g})},se=[$t,_t,Pt,Wt,Ft,Ot,we,Ht];if(d!==void 0){const S={id:"annotations",title:"Annotations",count:d.length,render:()=>n.jsx(di,{annotations:d})};se.push(S)}if(t){const S=se.indexOf(we);se.splice(S,1),se.splice(1,0,we)}const{boundaries:je}=f.useMemo(()=>{const S={minimum:(e==null?void 0:e.startTime)||0,maximum:(e==null?void 0:e.endTime)||3e4};return S.minimum>S.maximum&&(S.minimum=0,S.maximum=3e4),S.maximum+=(S.maximum-S.minimum)/20,{boundaries:S}},[e]);let le=0;!l&&e&&e.endTime>=0?le=e.endTime-e.startTime:e&&e.wallTime&&(le=Date.now()-e.wallTime);const Xt={id:"actions",title:"Actions",component:n.jsxs("div",{className:"vbox",children:[a&&n.jsxs("div",{className:"workbench-run-status",children:[n.jsx("span",{className:P("codicon",ct(a))}),n.jsx("div",{children:vn(a)}),n.jsx("div",{className:"spacer"}),n.jsx("div",{className:"workbench-run-duration",children:le?F(le):""})]}),n.jsx(wn,{sdkLanguage:ee,actions:(e==null?void 0:e.actions)||[],selectedAction:e?oe:void 0,selectedTime:I,setSelectedTime:U,onSelected:$e,onHighlighted:ve,revealAttachment:It,revealConsole:()=>_("console"),isLive:l})]})},Bt={id:"metadata",title:"Metadata",component:n.jsx(li,{model:e})};return n.jsxs("div",{className:"vbox workbench",...u?{inert:"true"}:{},children:[!c&&n.jsx(ai,{model:e,consoleEntries:ye.entries,boundaries:je,highlightedAction:ge,highlightedEntry:L,highlightedConsoleEntry:j,onSelected:$e,sdkLanguage:ee,selectedTime:I,setSelectedTime:U}),n.jsx(Xe,{sidebarSize:250,orientation:O==="bottom"?"vertical":"horizontal",settingName:"propertiesSidebar",main:n.jsx(Xe,{sidebarSize:250,orientation:"horizontal",sidebarIsFirst:!0,settingName:"actionListSidebar",main:n.jsx(hn,{action:Z,model:e,sdkLanguage:ee,testIdAttributeName:(e==null?void 0:e.testIdAttributeName)||"data-testid",isInspecting:w,setIsInspecting:_e,highlightedElement:D,setHighlightedElement:Rt}),sidebar:n.jsx(Be,{tabs:[Xt,Bt],selectedTab:y,setSelectedTab:T})}),sidebar:n.jsx(Be,{tabs:se,selectedTab:E,setSelectedTab:_,rightToolbar:[O==="bottom"?n.jsx(ue,{title:"Dock to right",icon:"layout-sidebar-right-off",onClick:()=>{G("right")}}):n.jsx(ue,{title:"Dock to bottom",icon:"layout-panel-off",onClick:()=>{G("bottom")}})],mode:O==="bottom"?"default":"select"})})]})};export{Gs as E,pi as L,xn as T,mi as W,$s as a,ct as t};
|