playwright-codegen-pro-core 1.0.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/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +3 -0
- package/ThirdPartyNotices.txt +3552 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/install_webkit_wsl.ps1 +33 -0
- package/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/browsers.json +81 -0
- package/bundles/mcp/package-lock.json +1135 -0
- package/bundles/mcp/package.json +10 -0
- package/bundles/mcp/raw-body.ts +43 -0
- package/bundles/utils/package-lock.json +466 -0
- package/bundles/utils/package.json +40 -0
- package/bundles/zip/package-lock.json +257 -0
- package/bundles/zip/package.json +16 -0
- package/cli.js +18 -0
- package/index.d.ts +17 -0
- package/index.js +32 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +65 -0
- package/lib/browserServerImpl.js +120 -0
- package/lib/cli/driver.js +98 -0
- package/lib/cli/program.js +599 -0
- package/lib/cli/programWithTestStub.js +74 -0
- package/lib/client/android.js +361 -0
- package/lib/client/api.js +137 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +169 -0
- package/lib/client/browserContext.js +563 -0
- package/lib/client/browserType.js +153 -0
- package/lib/client/cdpSession.js +55 -0
- package/lib/client/channelOwner.js +194 -0
- package/lib/client/clientHelper.js +64 -0
- package/lib/client/clientInstrumentation.js +55 -0
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +68 -0
- package/lib/client/connect.js +143 -0
- package/lib/client/connection.js +322 -0
- package/lib/client/consoleMessage.js +61 -0
- package/lib/client/coverage.js +44 -0
- package/lib/client/debugger.js +57 -0
- package/lib/client/dialog.js +56 -0
- package/lib/client/disposable.js +76 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +138 -0
- package/lib/client/elementHandle.js +281 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/eventEmitter.js +314 -0
- package/lib/client/events.js +103 -0
- package/lib/client/fetch.js +367 -0
- package/lib/client/fileChooser.js +46 -0
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +404 -0
- package/lib/client/harRouter.js +99 -0
- package/lib/client/input.js +84 -0
- package/lib/client/jsHandle.js +105 -0
- package/lib/client/jsonPipe.js +39 -0
- package/lib/client/localUtils.js +60 -0
- package/lib/client/locator.js +367 -0
- package/lib/client/network.js +750 -0
- package/lib/client/page.js +729 -0
- package/lib/client/platform.js +77 -0
- package/lib/client/playwright.js +71 -0
- package/lib/client/screencast.js +48 -0
- package/lib/client/selectors.js +57 -0
- package/lib/client/stream.js +39 -0
- package/lib/client/timeoutSettings.js +79 -0
- package/lib/client/tracing.js +126 -0
- package/lib/client/types.js +28 -0
- package/lib/client/video.js +68 -0
- package/lib/client/waiter.js +142 -0
- package/lib/client/webError.js +39 -0
- package/lib/client/worker.js +85 -0
- package/lib/client/writableStream.js +39 -0
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +28 -0
- package/lib/generated/injectedScriptSource.js +28 -0
- package/lib/generated/pollingRecorderSource.js +28 -0
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +28 -0
- package/lib/generated/webSocketMockSource.js +336 -0
- package/lib/inProcessFactory.js +60 -0
- package/lib/inprocess.js +3 -0
- package/lib/mcpBundle.js +81 -0
- package/lib/mcpBundleImpl/index.js +91 -0
- package/lib/outofprocess.js +76 -0
- package/lib/protocol/serializers.js +197 -0
- package/lib/protocol/validator.js +3035 -0
- package/lib/protocol/validatorPrimitives.js +193 -0
- package/lib/remote/playwrightConnection.js +131 -0
- package/lib/remote/playwrightPipeServer.js +100 -0
- package/lib/remote/playwrightServer.js +339 -0
- package/lib/remote/playwrightWebSocketServer.js +73 -0
- package/lib/remote/serverTransport.js +96 -0
- package/lib/server/android/android.js +465 -0
- package/lib/server/android/backendAdb.js +177 -0
- package/lib/server/artifact.js +127 -0
- package/lib/server/bidi/bidiBrowser.js +571 -0
- package/lib/server/bidi/bidiChromium.js +162 -0
- package/lib/server/bidi/bidiConnection.js +213 -0
- package/lib/server/bidi/bidiDeserializer.js +116 -0
- package/lib/server/bidi/bidiExecutionContext.js +267 -0
- package/lib/server/bidi/bidiFirefox.js +128 -0
- package/lib/server/bidi/bidiInput.js +146 -0
- package/lib/server/bidi/bidiNetworkManager.js +411 -0
- package/lib/server/bidi/bidiOverCdp.js +102 -0
- package/lib/server/bidi/bidiPage.js +599 -0
- package/lib/server/bidi/bidiPdf.js +106 -0
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
- package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
- package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
- package/lib/server/bidi/third_party/firefoxPrefs.js +261 -0
- package/lib/server/browser.js +223 -0
- package/lib/server/browserContext.js +703 -0
- package/lib/server/browserType.js +338 -0
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +399 -0
- package/lib/server/chromium/chromiumSwitches.js +104 -0
- package/lib/server/chromium/crBrowser.js +532 -0
- package/lib/server/chromium/crConnection.js +197 -0
- package/lib/server/chromium/crCoverage.js +235 -0
- package/lib/server/chromium/crDevTools.js +111 -0
- package/lib/server/chromium/crDragDrop.js +131 -0
- package/lib/server/chromium/crExecutionContext.js +146 -0
- package/lib/server/chromium/crInput.js +187 -0
- package/lib/server/chromium/crNetworkManager.js +711 -0
- package/lib/server/chromium/crPage.js +1004 -0
- package/lib/server/chromium/crPdf.js +121 -0
- package/lib/server/chromium/crProtocolHelper.js +145 -0
- package/lib/server/chromium/crServiceWorker.js +137 -0
- package/lib/server/chromium/defaultFontFamilies.js +162 -0
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/clock.js +149 -0
- package/lib/server/codegen/csharp.js +327 -0
- package/lib/server/codegen/java.js +274 -0
- package/lib/server/codegen/javascript.js +247 -0
- package/lib/server/codegen/jsonl.js +52 -0
- package/lib/server/codegen/language.js +132 -0
- package/lib/server/codegen/languages.js +68 -0
- package/lib/server/codegen/python.js +279 -0
- package/lib/server/codegen/types.js +16 -0
- package/lib/server/console.js +61 -0
- package/lib/server/cookieStore.js +206 -0
- package/lib/server/debugController.js +197 -0
- package/lib/server/debugger.js +117 -0
- package/lib/server/deviceDescriptors.js +39 -0
- package/lib/server/deviceDescriptorsSource.json +1779 -0
- package/lib/server/dialog.js +116 -0
- package/lib/server/dispatchers/androidDispatcher.js +325 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +381 -0
- package/lib/server/dispatchers/browserDispatcher.js +124 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +71 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +47 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
- package/lib/server/dispatchers/debuggerDispatcher.js +80 -0
- package/lib/server/dispatchers/dialogDispatcher.js +47 -0
- package/lib/server/dispatchers/dispatcher.js +364 -0
- package/lib/server/dispatchers/disposableDispatcher.js +39 -0
- package/lib/server/dispatchers/electronDispatcher.js +90 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
- package/lib/server/dispatchers/frameDispatcher.js +227 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +185 -0
- package/lib/server/dispatchers/networkDispatchers.js +214 -0
- package/lib/server/dispatchers/pageDispatcher.js +430 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
- package/lib/server/dispatchers/streamDispatcher.js +67 -0
- package/lib/server/dispatchers/tracingDispatcher.js +68 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +164 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
- package/lib/server/disposable.js +41 -0
- package/lib/server/dom.js +833 -0
- package/lib/server/download.js +71 -0
- package/lib/server/electron/electron.js +272 -0
- package/lib/server/electron/loader.js +29 -0
- package/lib/server/errors.js +69 -0
- package/lib/server/fetch.js +621 -0
- package/lib/server/fileChooser.js +43 -0
- package/lib/server/fileUploadUtils.js +84 -0
- package/lib/server/firefox/ffBrowser.js +415 -0
- package/lib/server/firefox/ffConnection.js +142 -0
- package/lib/server/firefox/ffExecutionContext.js +150 -0
- package/lib/server/firefox/ffInput.js +175 -0
- package/lib/server/firefox/ffNetworkManager.js +256 -0
- package/lib/server/firefox/ffPage.js +495 -0
- package/lib/server/firefox/firefox.js +114 -0
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +147 -0
- package/lib/server/frameSelectors.js +160 -0
- package/lib/server/frames.js +1495 -0
- package/lib/server/har/harRecorder.js +147 -0
- package/lib/server/har/harTracer.js +608 -0
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +96 -0
- package/lib/server/index.js +58 -0
- package/lib/server/input.js +322 -0
- package/lib/server/instrumentation.js +72 -0
- package/lib/server/javascript.js +291 -0
- package/lib/server/launchApp.js +127 -0
- package/lib/server/localUtils.js +214 -0
- package/lib/server/macEditingCommands.js +143 -0
- package/lib/server/network.js +668 -0
- package/lib/server/page.js +884 -0
- package/lib/server/pipeTransport.js +89 -0
- package/lib/server/playwright.js +69 -0
- package/lib/server/progress.js +136 -0
- package/lib/server/protocolError.js +52 -0
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/networkCapture.js +282 -0
- package/lib/server/recorder/recorderApp.js +581 -0
- package/lib/server/recorder/recorderRunner.js +138 -0
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +157 -0
- package/lib/server/recorder/sessionExporter.js +40 -0
- package/lib/server/recorder/sessionPromptBuilder.js +128 -0
- package/lib/server/recorder/sessionRedactor.js +74 -0
- package/lib/server/recorder/throttledFile.js +57 -0
- package/lib/server/recorder.js +538 -0
- package/lib/server/registry/browserFetcher.js +177 -0
- package/lib/server/registry/dependencies.js +371 -0
- package/lib/server/registry/index.js +1395 -0
- package/lib/server/registry/nativeDeps.js +1281 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +127 -0
- package/lib/server/screencast.js +238 -0
- package/lib/server/screenshotter.js +333 -0
- package/lib/server/selectors.js +112 -0
- package/lib/server/socksClientCertificatesInterceptor.js +383 -0
- package/lib/server/socksInterceptor.js +95 -0
- package/lib/server/trace/recorder/snapshotter.js +147 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +561 -0
- package/lib/server/trace/recorder/tracing.js +615 -0
- package/lib/server/trace/viewer/traceViewer.js +244 -0
- package/lib/server/transport.js +181 -0
- package/lib/server/types.js +28 -0
- package/lib/server/usKeyboardLayout.js +152 -0
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +139 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +42 -0
- package/lib/server/utils/debugLogger.js +122 -0
- package/lib/server/utils/disposable.js +32 -0
- package/lib/server/utils/env.js +73 -0
- package/lib/server/utils/eventsHelper.js +41 -0
- package/lib/server/utils/expectUtils.js +123 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +123 -0
- package/lib/server/utils/httpServer.js +205 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/server/utils/image_tools/compare.js +109 -0
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +243 -0
- package/lib/server/utils/nodePlatform.js +154 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +243 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +121 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- package/lib/server/videoRecorder.js +133 -0
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +108 -0
- package/lib/server/webkit/wkBrowser.js +331 -0
- package/lib/server/webkit/wkConnection.js +144 -0
- package/lib/server/webkit/wkExecutionContext.js +154 -0
- package/lib/server/webkit/wkInput.js +181 -0
- package/lib/server/webkit/wkInterceptableRequest.js +197 -0
- package/lib/server/webkit/wkPage.js +1164 -0
- package/lib/server/webkit/wkProvisionalPage.js +83 -0
- package/lib/server/webkit/wkWorkers.js +106 -0
- package/lib/serverRegistry.js +147 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/tools/backend/browserBackend.js +79 -0
- package/lib/tools/backend/common.js +63 -0
- package/lib/tools/backend/config.js +41 -0
- package/lib/tools/backend/console.js +66 -0
- package/lib/tools/backend/context.js +290 -0
- package/lib/tools/backend/cookies.js +152 -0
- package/lib/tools/backend/devtools.js +69 -0
- package/lib/tools/backend/dialogs.js +59 -0
- package/lib/tools/backend/evaluate.js +64 -0
- package/lib/tools/backend/files.js +60 -0
- package/lib/tools/backend/form.js +64 -0
- package/lib/tools/backend/keyboard.js +155 -0
- package/lib/tools/backend/logFile.js +95 -0
- package/lib/tools/backend/mouse.js +168 -0
- package/lib/tools/backend/navigate.js +106 -0
- package/lib/tools/backend/network.js +135 -0
- package/lib/tools/backend/pdf.js +48 -0
- package/lib/tools/backend/recorder.js +74 -0
- package/lib/tools/backend/response.js +302 -0
- package/lib/tools/backend/route.js +140 -0
- package/lib/tools/backend/runCode.js +76 -0
- package/lib/tools/backend/screenshot.js +88 -0
- package/lib/tools/backend/sessionLog.js +74 -0
- package/lib/tools/backend/snapshot.js +208 -0
- package/lib/tools/backend/storage.js +67 -0
- package/lib/tools/backend/tab.js +445 -0
- package/lib/tools/backend/tabs.js +67 -0
- package/lib/tools/backend/tool.js +47 -0
- package/lib/tools/backend/tools.js +104 -0
- package/lib/tools/backend/tracing.js +75 -0
- package/lib/tools/backend/utils.js +83 -0
- package/lib/tools/backend/verify.js +151 -0
- package/lib/tools/backend/video.js +89 -0
- package/lib/tools/backend/wait.js +63 -0
- package/lib/tools/backend/webstorage.js +223 -0
- package/lib/tools/cli-client/cli.js +6 -0
- package/lib/tools/cli-client/help.json +101 -0
- package/lib/tools/cli-client/minimist.js +128 -0
- package/lib/tools/cli-client/program.js +382 -0
- package/lib/tools/cli-client/registry.js +176 -0
- package/lib/tools/cli-client/session.js +289 -0
- package/lib/tools/cli-client/skill/SKILL.md +326 -0
- package/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
- package/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
- package/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
- package/lib/tools/cli-client/skill/references/running-code.md +231 -0
- package/lib/tools/cli-client/skill/references/session-management.md +169 -0
- package/lib/tools/cli-client/skill/references/storage-state.md +275 -0
- package/lib/tools/cli-client/skill/references/test-generation.md +88 -0
- package/lib/tools/cli-client/skill/references/tracing.md +139 -0
- package/lib/tools/cli-client/skill/references/video-recording.md +46 -0
- package/lib/tools/cli-daemon/command.js +73 -0
- package/lib/tools/cli-daemon/commands.js +933 -0
- package/lib/tools/cli-daemon/daemon.js +178 -0
- package/lib/tools/cli-daemon/helpGenerator.js +173 -0
- package/lib/tools/cli-daemon/program.js +118 -0
- package/lib/tools/dashboard/appIcon.png +0 -0
- package/lib/tools/dashboard/dashboardApp.js +286 -0
- package/lib/tools/dashboard/dashboardController.js +296 -0
- package/lib/tools/exports.js +60 -0
- package/lib/tools/mcp/browserFactory.js +233 -0
- package/lib/tools/mcp/cdpRelay.js +353 -0
- package/lib/tools/mcp/cli-stub.js +7 -0
- package/lib/tools/mcp/config.d.js +16 -0
- package/lib/tools/mcp/config.js +401 -0
- package/lib/tools/mcp/configIni.js +189 -0
- package/lib/tools/mcp/extensionContextFactory.js +59 -0
- package/lib/tools/mcp/index.js +62 -0
- package/lib/tools/mcp/log.js +35 -0
- package/lib/tools/mcp/program.js +107 -0
- package/lib/tools/mcp/protocol.js +28 -0
- package/lib/tools/mcp/watchdog.js +44 -0
- package/lib/tools/trace/SKILL.md +163 -0
- package/lib/tools/trace/installSkill.js +48 -0
- package/lib/tools/trace/traceActions.js +142 -0
- package/lib/tools/trace/traceAttachments.js +69 -0
- package/lib/tools/trace/traceCli.js +80 -0
- package/lib/tools/trace/traceConsole.js +97 -0
- package/lib/tools/trace/traceErrors.js +55 -0
- package/lib/tools/trace/traceOpen.js +69 -0
- package/lib/tools/trace/traceParser.js +96 -0
- package/lib/tools/trace/traceRequests.js +158 -0
- package/lib/tools/trace/traceScreenshot.js +68 -0
- package/lib/tools/trace/traceSnapshot.js +149 -0
- package/lib/tools/trace/traceUtils.js +135 -0
- package/lib/tools/utils/connect.js +32 -0
- package/lib/tools/utils/mcp/http.js +152 -0
- package/lib/tools/utils/mcp/server.js +230 -0
- package/lib/tools/utils/mcp/tool.js +47 -0
- package/lib/tools/utils/socketConnection.js +108 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +455 -0
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +245 -0
- package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
- package/lib/utils/isomorphic/formatUtils.js +64 -0
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/imageUtils.js +141 -0
- package/lib/utils/isomorphic/locatorGenerators.js +689 -0
- package/lib/utils/isomorphic/locatorParser.js +176 -0
- package/lib/utils/isomorphic/locatorUtils.js +81 -0
- package/lib/utils/isomorphic/lruCache.js +51 -0
- package/lib/utils/isomorphic/manualPromise.js +114 -0
- package/lib/utils/isomorphic/mimeType.js +464 -0
- package/lib/utils/isomorphic/multimap.js +80 -0
- package/lib/utils/isomorphic/protocolFormatter.js +81 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +347 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +386 -0
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +204 -0
- package/lib/utils/isomorphic/time.js +49 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/trace/entries.js +16 -0
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +492 -0
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
- package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
- package/lib/utils/isomorphic/trace/traceModel.js +366 -0
- package/lib/utils/isomorphic/trace/traceModernizer.js +401 -0
- package/lib/utils/isomorphic/trace/traceUtils.js +58 -0
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +243 -0
- package/lib/utils/isomorphic/utilityScriptSerializers.js +262 -0
- package/lib/utils/isomorphic/yaml.js +84 -0
- package/lib/utils.js +113 -0
- package/lib/utilsBundle.js +91 -0
- package/lib/utilsBundleImpl/index.js +218 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/dashboard/assets/index-Bn2lDGZX.js +50 -0
- package/lib/vite/dashboard/assets/index-DDWrEWMc.css +1 -0
- package/lib/vite/dashboard/index.html +28 -0
- package/lib/vite/htmlReport/index.html +89 -0
- package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-RoSmqW0t.js +32 -0
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-CLrDthbi.js +193 -0
- package/lib/vite/recorder/assets/index-OFPIkgDs.css +1 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-Cigrr2OM.js +32 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-ConrJv9G.js +262 -0
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.B4dS75f0.css +1 -0
- package/lib/vite/traceViewer/index.CzXZzn5A.css +1 -0
- package/lib/vite/traceViewer/index.EVGp-u_4.js +2 -0
- package/lib/vite/traceViewer/index.html +43 -0
- package/lib/vite/traceViewer/manifest.webmanifest +16 -0
- package/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/snapshot.html +21 -0
- package/lib/vite/traceViewer/sw.bundle.js +5 -0
- package/lib/vite/traceViewer/uiMode.Bewj7-uD.js +6 -0
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
- package/lib/vite/traceViewer/uiMode.html +17 -0
- package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
- package/lib/zipBundle.js +34 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +46 -0
- package/types/protocol.d.ts +24365 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +23498 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
class Xs{constructor(t,e){this._snapshotIds=new Map,this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,n){const i=this._snapshot(t,e);if(!i)return new Response(null,{status:404});const r=i.render();return this._snapshotIds.set(n,i),new Response(r.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const n=this._snapshot(t,e),i=n==null?void 0:n.closestScreenshot();return i?new Response(await this._resourceLoader(i)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const n=this._snapshot(t,e);return this._respondWithJson(n?{viewport:n.viewport(),url:n.snapshot().frameUrl,timestamp:n.snapshot().timestamp,wallTime:n.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const n=e.get("name");return this._snapshotStorage.snapshotByName(t,n)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,n){let i;const r=this._snapshotIds.get(n);for(const R of t)if(i=r==null?void 0:r.resourceByUrl($s(R),e),i)break;if(!i)return new Response(null,{status:404});const a=i.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=i.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const d=new Headers;l!=="x-unknown"&&d.set("Content-Type",l);for(const{name:R,value:A}of i.response.headers)d.set(R,A);d.delete("Content-Encoding"),d.delete("Access-Control-Allow-Origin"),d.set("Access-Control-Allow-Origin","*"),d.delete("Content-Length"),d.set("Content-Length",String(o.size)),this._snapshotStorage.hasResourceOverride(i.request.url)?d.set("Cache-Control","no-store, no-cache, max-age=0"):d.set("Cache-Control","public, max-age=31536000");const{status:p}=i.response,b=p===101||p===204||p===205||p===304;return new Response(b?null:o,{headers:d,status:i.response.status,statusText:i.response.statusText})}}function $s(s){try{const t=new URL(s);return t.hash="",t.toString()}catch{return s}}function Js(s){const t=new Map,{files:e,stacks:n}=s;for(const i of n){const[r,a]=i;t.set(`call@${r}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}const Un={"&":"&","<":"<",">":">",'"':""","'":"'"};function Qs(s){return s.replace(/[&<>"']/ug,t=>Un[t])}function zs(s){return s.replace(/[&<]/ug,t=>Un[t])}function Mt(s,t,e){return s.find((n,i)=>{if(i===s.length-1)return!0;const r=s[i+1];return Math.abs(t(n)-e)<Math.abs(t(r)-e)})}function Wn(s){return Array.isArray(s)&&typeof s[0]=="string"}function er(s){return Array.isArray(s)&&Array.isArray(s[0])}class tr{constructor(t,e,n,i,r){this._htmlCache=t,this._resources=e,this._snapshots=n,this._index=r,this._snapshot=n[r],this._callId=n[r].callId,this._screencastFrames=i,this.snapshotName=n[r].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var i;const{wallTime:t,timestamp:e}=this.snapshot(),n=t&&((i=this._screencastFrames[0])!=null&&i.frameSwapWallTime)?Mt(this._screencastFrames,r=>r.frameSwapWallTime,t):Mt(this._screencastFrames,r=>r.timestamp,e);return n==null?void 0:n.sha1}render(){const t=[],e=(r,a,o,l)=>{if(typeof r=="string"){o==="STYLE"||o==="style"?t.push(lr(ar(r))):t.push(zs(r));return}if(er(r)){const _=a-r[0][0];if(_>=0&&_<=a){const d=sr(this._snapshots[_]),p=r[0][1];if(p>=0&&p<d.length)return e(d[p],_,o,l)}}else if(Wn(r)){const[_,d,...p]=r,b=_==="NOSCRIPT"?"X-NOSCRIPT":_,R=Object.entries(d||{});t.push("<",b);const A="__playwright_current_src__",f=b==="IFRAME"||b==="FRAME",c=b==="A",u=b==="IMG",g=u&&R.some(w=>w[0]===A),m=b==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(w=>w[0]===A));for(const[w,S]of R){let h=w;f&&w.toLowerCase()==="src"&&(h="__playwright_src__"),u&&w===A&&(h="src"),["src","srcset"].includes(w.toLowerCase())&&(g||m)&&(h="_"+h);let E=S;!c&&(w.toLowerCase()==="href"||w.toLowerCase()==="src"||w===A)&&(E=lt(S)),t.push(" ",h,'="',Qs(E),'"')}t.push(">");for(const w of p)e(w,a,b,R);nr.has(b)||t.push("</",b,">");return}else return},n=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(n.html,this._index,void 0,void 0);const a=(n.doctype?`<!DOCTYPE ${n.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${rr(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:n.pageId,frameId:n.frameId,index:this._index}}resourceByUrl(t,e){const n=this._snapshot;let i,r;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=n.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===n.frameId?i=o:r=o)}let a=i??r;if(a&&e.toUpperCase()==="GET"){let o=n.resourceOverrides.find(l=>l.url===t);if(o!=null&&o.ref){const l=this._index-o.ref;l>=0&&l<this._snapshots.length&&(o=this._snapshots[l].resourceOverrides.find(_=>_.url===t))}o!=null&&o.sha1&&(a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}})}return a}}const nr=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function sr(s){if(!s._nodes){const t=[],e=n=>{if(typeof n=="string")t.push(n);else if(Wn(n)){const[,,...i]=n;for(const r of i)e(r);t.push(n)}};e(s.html),s._nodes=t}return s._nodes}function rr(s,...t){function e(n,...i){const r=window,a=new URLSearchParams(r.location.search),o=a.has("shouldPopulateCanvasFromScreenshot"),l=a.has("isUnderTest"),_={viewport:n,frames:new WeakMap};r.__playwright_frame_bounding_rects__=_;const d="Recorded click position in absolute coordinates did not match the center of the clicked element. This is either due to the use of provided offset, or due to a difference between the test runner and the trace viewer operating systems.",p=[],b=[],R=[],A=[];let f=r;for(;f!==f.parent&&!f.location.pathname.match(/\/page@[a-z0-9]+$/);)f=f.parent;const c=m=>{for(const w of m.querySelectorAll("[__playwright_scroll_top_]"))p.push(w);for(const w of m.querySelectorAll("[__playwright_scroll_left_]"))b.push(w);for(const w of m.querySelectorAll("[__playwright_value_]")){const S=w;S.type!=="file"&&(S.value=S.getAttribute("__playwright_value_")),w.removeAttribute("__playwright_value_")}for(const w of m.querySelectorAll("[__playwright_checked_]"))w.checked=w.getAttribute("__playwright_checked_")==="true",w.removeAttribute("__playwright_checked_");for(const w of m.querySelectorAll("[__playwright_selected_]"))w.selected=w.getAttribute("__playwright_selected_")==="true",w.removeAttribute("__playwright_selected_");for(const w of m.querySelectorAll("[__playwright_popover_open_]")){try{w.showPopover()}catch{}w.removeAttribute("__playwright_popover_open_")}for(const w of m.querySelectorAll("[__playwright_dialog_open_]")){try{w.getAttribute("__playwright_dialog_open_")==="modal"?w.showModal():w.show()}catch{}w.removeAttribute("__playwright_dialog_open_")}for(const w of i)for(const S of m.querySelectorAll(`[__playwright_target__="${w}"]`)){const h=S.style;h.outline="2px solid #006ab1",h.backgroundColor="#6fa8dc7f",R.push(S)}for(const w of m.querySelectorAll("iframe, frame")){const S=w.getAttribute("__playwright_bounding_rect__");w.removeAttribute("__playwright_bounding_rect__");const h=S?JSON.parse(S):void 0;h&&_.frames.set(w,{boundingRect:h,scrollLeft:0,scrollTop:0});const E=w.getAttribute("__playwright_src__");if(!E)w.setAttribute("src",fr);else{const T=new URL(r.location.href),O=T.pathname.lastIndexOf("/snapshot/");O!==-1&&(T.pathname=T.pathname.substring(0,O+1)),T.pathname+=E.substring(1),w.setAttribute("src",T.toString())}}{const w=m.querySelector("body[__playwright_custom_elements__]");if(w&&r.customElements){const S=(w.getAttribute("__playwright_custom_elements__")||"").split(",");for(const h of S)r.customElements.define(h,class extends HTMLElement{})}}for(const w of m.querySelectorAll("template[__playwright_shadow_root_]")){const S=w,h=S.parentElement.attachShadow({mode:"open"});h.appendChild(S.content),S.remove(),c(h)}for(const w of m.querySelectorAll("a"))w.addEventListener("click",S=>{S.preventDefault()});if("adoptedStyleSheets"in m){const w=[...m.adoptedStyleSheets];for(const S of m.querySelectorAll("template[__playwright_style_sheet_]")){const h=S,E=new CSSStyleSheet;E.replaceSync(h.getAttribute("__playwright_style_sheet_")),w.push(E)}m.adoptedStyleSheets=w}A.push(...m.querySelectorAll("canvas"))},u=()=>{r.removeEventListener("load",u);for(const S of p)S.scrollTop=+S.getAttribute("__playwright_scroll_top_"),S.removeAttribute("__playwright_scroll_top_"),_.frames.has(S)&&(_.frames.get(S).scrollTop=S.scrollTop);for(const S of b)S.scrollLeft=+S.getAttribute("__playwright_scroll_left_"),S.removeAttribute("__playwright_scroll_left_"),_.frames.has(S)&&(_.frames.get(S).scrollLeft=S.scrollLeft);r.document.styleSheets[0].disabled=!0;const m=new URL(r.location.href).searchParams;if(r===f&&m.get("pointX")&&m.get("pointY")){const S=+m.get("pointX"),h=+m.get("pointY"),E=r.document.createElement("x-pw-pointer");E.style.position="fixed",E.style.backgroundColor="#f44336",E.style.width="20px",E.style.height="20px",E.style.borderRadius="10px",E.style.margin="-10px 0 0 -10px",E.style.zIndex="2147483646",E.style.display="flex",E.style.alignItems="center",E.style.justifyContent="center";const T=R[0],O=T==null?void 0:T.getBoundingClientRect(),x=T?{x:O.left+O.width/2,y:O.top+O.height/2}:null;if(E.style.left=((x==null?void 0:x.x)??S)+"px",E.style.top=((x==null?void 0:x.y)??h)+"px",!(!x||Math.abs(x.x-S)<=10&&Math.abs(x.y-h)<=10)){const C=r.document.createElement("x-pw-pointer-warning");C.textContent="⚠",C.style.fontSize="19px",C.style.color="white",C.style.marginTop="-3.5px",C.style.userSelect="none",E.appendChild(C),E.setAttribute("title",d)}r.document.documentElement.appendChild(E)}if(A.length>0){let S=function(E,T){function O(){const x=r.document.createElement("canvas");x.width=x.width/Math.floor(x.width/24),x.height=x.height/Math.floor(x.height/24);const y=x.getContext("2d");return y.fillStyle="lightgray",y.fillRect(0,0,x.width,x.height),y.fillStyle="white",y.fillRect(0,0,x.width/2,x.height/2),y.fillRect(x.width/2,x.height/2,x.width,x.height),y.createPattern(x,"repeat")}E.fillStyle=O(),E.fillRect(0,0,T.width,T.height)};const h=new Image;h.onload=()=>{var E;for(const T of A){const O=T.getContext("2d"),x=T.getAttribute("__playwright_bounding_rect__");if(T.removeAttribute("__playwright_bounding_rect__"),!x)continue;let y;try{y=JSON.parse(x)}catch{continue}let C=r;for(;C!==f;){const M=C.frameElement;C=C.parent;const L=(E=C.__playwright_frame_bounding_rects__)==null?void 0:E.frames.get(M);if(!(L!=null&&L.boundingRect))break;const V=L.boundingRect.left-L.scrollLeft,N=L.boundingRect.top-L.scrollTop;y.left+=V,y.top+=N,y.right+=V,y.bottom+=N}const{width:I,height:k}=f.__playwright_frame_bounding_rects__.viewport;y.left=y.left/I,y.top=y.top/k,y.right=y.right/I,y.bottom=y.bottom/k;const P=y.right>1||y.bottom>1;if(y.left>1||y.top>1){T.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}S(O,T),o?(O.drawImage(h,y.left*h.width,y.top*h.height,(y.right-y.left)*h.width,(y.bottom-y.top)*h.height,0,0,T.width,T.height),P?T.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":T.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):T.title="Canvas content display is disabled.",l&&console.log("canvas drawn:",JSON.stringify([y.left,y.top,y.right-y.left,y.bottom-y.top].map(M=>Math.floor(M*100))))}},h.onerror=()=>{for(const E of A){const T=E.getContext("2d");S(T,E),E.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},h.src=location.href.replace("/snapshot","/closest-screenshot")}},g=()=>c(r.document);r.addEventListener("load",u),r.addEventListener("DOMContentLoaded",g)}return`
|
|
2
|
+
(${e.toString()})(${JSON.stringify(s)}${t.map(n=>`, "${n}"`).join("")})`}const Hn=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Ut="http://playwright.bloburl/#";function lt(s){s.startsWith(Ut)&&(s=s.substring(Ut.length));try{const t=new URL(s);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",n=t.protocol==="file:";if(!e&&!n&&Hn.includes(t.protocol))return s;const i="pw-"+t.protocol.slice(0,t.protocol.length-1);return n||(t.protocol="https:"),t.hostname=t.hostname?`${i}--${t.hostname}`:i,n&&(t.protocol="https:"),t.toString()}catch{return s}}const ir=/url\(['"]?([\w-]+:)\/\//ig;function ar(s){return s.replace(ir,(t,e)=>!(e==="blob:")&&!(e==="file:")&&Hn.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}const or=/url\(\s*'([^']*)'\s*\)/ig,cr=/url\(\s*"([^"]*)"\s*\)/ig;function lr(s){const t=(e,n)=>n.includes("</")?e.replace(n,encodeURI(n)):e;return s.replace(or,t).replace(cr,t)}const fr="data:text/html;base64,"+btoa("<body></body><style>body { color-scheme: light dark; background: light-dark(white, #333) }</style>");class ur{constructor(t){this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const i=this._map.get(t);return this._map.delete(t),this._map.set(t,i),i.value}const n=e();for(;this._map.size&&this._size+n.size>this._maxSize;){const[i,r]=this._map.entries().next().value;this._size-=r.size,this._map.delete(i)}return this._map.set(t,n),this._size+=n.size,n.value}}class dr{constructor(){this._frameSnapshots=new Map,this._cache=new ur(1e8),this._contextToResources=new Map,this._resourceUrlsWithOverrides=new Set}addResource(t,e){e.request.url=lt(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,n){for(const o of e.resourceOverrides)o.url=lt(o.url);let i=this._frameSnapshots.get(e.frameId);i||(i={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,i),e.isMainFrame&&this._frameSnapshots.set(e.pageId,i)),i.raw.push(e);const r=this._ensureResourcesForContext(t),a=new tr(this._cache,r,i.raw,n,i.raw.length-1);return i.renderers.push(a),a}snapshotByName(t,e){const n=this._frameSnapshots.get(t);return n==null?void 0:n.renderers.find(i=>i.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,n)=>(e._monotonicTime||0)-(n._monotonicTime||0));for(const t of this._frameSnapshots.values())for(const e of t.raw)for(const n of e.resourceOverrides)this._resourceUrlsWithOverrides.add(n.url)}hasResourceOverride(t){return this._resourceUrlsWithOverrides.has(t)}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Bn extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const Wt=8;class _r{constructor(t,e){this._actionMap=new Map,this._pageEntries=new Map,this._jsHandles=new Map,this._consoleObjects=new Map,this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
|
|
3
|
+
`))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const n of e)this._innerAppendEvent(n)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Wt)throw new Bn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.playwrightVersion=t.playwrightVersion,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"",e.testTimeout=t.testTimeout;break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const n=this._actionMap.get(t.callId);n.inputSnapshot=t.inputSnapshot,n.point=t.point;break}case"log":{const n=this._actionMap.get(t.callId);if(!n)return;n.log.push({time:t.time,message:t.message});break}case"after":{const n=this._actionMap.get(t.callId);n.afterSnapshot=t.afterSnapshot,n.endTime=t.endTime,n.result=t.result,n.error=t.error,n.attachments=t.attachments,n.annotations=t.annotations,t.point&&(n.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,n=[t];for(;e<Wt;++e)n=this[`_modernize_${e}_to_${e+1}`].call(this,n);return n}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const n of t)n.type!=="frame-snapshot"||!n.snapshot.isMainFrame||(n.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const n=e.snapshot;e.snapshot={_frameref:n.frameId,request:{url:n.url,method:n.method,headers:n.requestHeaders,postData:n.requestSha1?{_sha1:n.requestSha1}:void 0},response:{status:n.status,headers:n.responseHeaders,content:{mimeType:n.contentType,_sha1:n.responseSha1}},_monotonicTime:n.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const n of t){const i=this._modernize_event_3_to_4(n);i&&e.push(i)}return e}_modernize_event_3_to_4(t){var n,i,r,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(n=e.snapshots.find(o=>o.title==="before"))==null?void 0:n.snapshotName,inputSnapshot:(i=e.snapshots.find(o=>o.title==="input"))==null?void 0:i.snapshotName,afterSnapshot:(r=e.snapshots.find(o=>o.title==="after"))==null?void 0:r.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const n of t){const i=this._modernize_event_4_to_5(n);i&&e.push(i)}return e}_modernize_event_4_to_5(t){var e,n;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const i=(e=t.initializer.args)==null?void 0:e.map(r=>{if(r.guid){const a=this._jsHandles.get(r.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:r.preview||"",value:r.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:i}),null}if(t.type==="event"&&t.method==="console"){const i=this._consoleObjects.get(((n=t.params.message)==null?void 0:n.guid)||"");return i?{type:"console",time:t.time,pageId:t.pageId,messageType:i.type,text:i.text,args:i.args,location:i.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const n of t)if(e.push(n),!(n.type!=="after"||!n.log.length))for(const i of n.log)e.push({type:"log",callId:n.callId,message:i,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const n={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(n)}for(const n of t){if(n.type==="context-options"){e.push({...n,monotonicTime:0,origin:"library",contextId:""});continue}if(n.type==="before"||n.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=n.wallTime);const i=n,r=n;r.stepId=`${i.apiName}@${i.wallTime}`,e.push(r)}else e.push(n)}return e}_modernize_7_to_8(t){const e=[];for(const n of t)if(n.type==="before"||n.type==="action"){const i=n,r=n;i.apiName&&(r.title=i.apiName,delete r.apiName),r.stepId=i.stepId??i.callId,e.push(r)}else e.push(n);return e}}class hr{constructor(){this.contextEntries=[],this._resourceToContentType=new Map}async load(t,e){var o,l;this._backend=t;const n=[];let i=!1;for(const _ of await this._backend.entryNames()){const d=_.match(/(.+)\.trace$/);d&&n.push(d[1]||""),_.includes("src@")&&(i=!0)}if(!n.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new dr;const r=n.length*3;let a=0;for(const _ of n){const d=pr();d.hasSource=i;const p=new _r(d,this._snapshotStorage),b=await this._backend.readText(_+".trace")||"";p.appendTrace(b),e(++a,r);const R=await this._backend.readText(_+".network")||"";if(p.appendTrace(R),e(++a,r),d.actions=p.actions().sort((f,c)=>f.startTime-c.startTime),!t.isLive()){for(const f of d.actions.slice().reverse())if(!f.endTime&&!f.error)for(const c of d.actions)c.parentId===f.callId&&f.endTime<c.endTime&&(f.endTime=c.endTime)}const A=await this._backend.readText(_+".stacks");if(A){const f=Js(JSON.parse(A));for(const c of d.actions)c.stack=c.stack||f.get(c.callId)}e(++a,r);for(const f of d.resources)(o=f.request.postData)!=null&&o._sha1&&this._resourceToContentType.set(f.request.postData._sha1,Ht(f.request.postData.mimeType)),(l=f.response.content)!=null&&l._sha1&&this._resourceToContentType.set(f.response.content._sha1,Ht(f.response.content.mimeType));this.contextEntries.push(d)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),n=this._resourceToContentType.get(t);return!e||n===void 0||n==="x-unknown"?e:new Blob([e],{type:n})}storage(){return this._snapshotStorage}}function Ht(s){const t=s.match(/^(.*);\s*charset=.*$/);return t?t[1]:s}function pr(){return{origin:"testRunner",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}function mr(s,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((n,i)=>(r,a)=>{e[i]=r/a*t[i]*1e3,s(e.reduce((o,l)=>o+l,0),1e3)})}const wr=15,v=0,ne=1,gr=2,K=-2,H=-3,Bt=-4,se=-5,X=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],jn=1440,br=0,yr=4,Er=9,xr=5,Tr=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Sr=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Rr=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ar=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Or=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Ir=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ie=15;function ft(){const s=this;let t,e,n,i,r,a;function o(_,d,p,b,R,A,f,c,u,g,m){let w,S,h,E,T,O,x,y,C,I,k,P,D,M,L;I=0,T=p;do n[_[d+I]]++,I++,T--;while(T!==0);if(n[0]==p)return f[0]=-1,c[0]=0,v;for(y=c[0],O=1;O<=ie&&n[O]===0;O++);for(x=O,y<O&&(y=O),T=ie;T!==0&&n[T]===0;T--);for(h=T,y>T&&(y=T),c[0]=y,M=1<<O;O<T;O++,M<<=1)if((M-=n[O])<0)return H;if((M-=n[T])<0)return H;for(n[T]+=M,a[1]=O=0,I=1,D=2;--T!==0;)a[D]=O+=n[I],D++,I++;T=0,I=0;do(O=_[d+I])!==0&&(m[a[O]++]=T),I++;while(++T<p);for(p=a[h],a[0]=T=0,I=0,E=-1,P=-y,r[0]=0,k=0,L=0;x<=h;x++)for(w=n[x];w--!==0;){for(;x>P+y;){if(E++,P+=y,L=h-P,L=L>y?y:L,(S=1<<(O=x-P))>w+1&&(S-=w+1,D=x,O<L))for(;++O<L&&!((S<<=1)<=n[++D]);)S-=n[D];if(L=1<<O,g[0]+L>jn)return H;r[E]=k=g[0],g[0]+=L,E!==0?(a[E]=T,i[0]=O,i[1]=y,O=T>>>P-y,i[2]=k-r[E-1]-O,u.set(i,(r[E-1]+O)*3)):f[0]=k}for(i[1]=x-P,I>=p?i[0]=192:m[I]<b?(i[0]=m[I]<256?0:96,i[2]=m[I++]):(i[0]=A[m[I]-b]+16+64,i[2]=R[m[I++]-b]),S=1<<x-P,O=T>>>P;O<L;O+=S)u.set(i,(k+O)*3);for(O=1<<x-1;(T&O)!==0;O>>>=1)T^=O;for(T^=O,C=(1<<P)-1;(T&C)!=a[E];)E--,P-=y,C=(1<<P)-1}return M!==0&&h!=1?se:v}function l(_){let d;for(t||(t=[],e=[],n=new Int32Array(ie+1),i=[],r=new Int32Array(ie),a=new Int32Array(ie+1)),e.length<_&&(e=[]),d=0;d<_;d++)e[d]=0;for(d=0;d<ie+1;d++)n[d]=0;for(d=0;d<3;d++)i[d]=0;r.set(n.subarray(0,ie),0),a.set(n.subarray(0,ie+1),0)}s.inflate_trees_bits=function(_,d,p,b,R){let A;return l(19),t[0]=0,A=o(_,0,19,19,null,null,p,d,b,t,e),A==H?R.msg="oversubscribed dynamic bit lengths tree":(A==se||d[0]===0)&&(R.msg="incomplete dynamic bit lengths tree",A=H),A},s.inflate_trees_dynamic=function(_,d,p,b,R,A,f,c,u){let g;return l(288),t[0]=0,g=o(p,0,_,257,Rr,Ar,A,b,c,t,e),g!=v||b[0]===0?(g==H?u.msg="oversubscribed literal/length tree":g!=Bt&&(u.msg="incomplete literal/length tree",g=H),g):(l(288),g=o(p,_,d,0,Or,Ir,f,R,c,t,e),g!=v||R[0]===0&&_>257?(g==H?u.msg="oversubscribed distance tree":g==se?(u.msg="incomplete distance tree",g=H):g!=Bt&&(u.msg="empty distance tree with lengths",g=H),g):v)}}ft.inflate_trees_fixed=function(s,t,e,n){return s[0]=Er,t[0]=xr,e[0]=Tr,n[0]=Sr,v};const We=0,jt=1,Gt=2,Yt=3,qt=4,Vt=5,Zt=6,ze=7,Kt=8,He=9;function Cr(){const s=this;let t,e=0,n,i=0,r=0,a=0,o=0,l=0,_=0,d=0,p,b=0,R,A=0;function f(c,u,g,m,w,S,h,E){let T,O,x,y,C,I,k,P,D,M,L,V,N,J,F,U;k=E.next_in_index,P=E.avail_in,C=h.bitb,I=h.bitk,D=h.write,M=D<h.read?h.read-D-1:h.end-D,L=X[c],V=X[u];do{for(;I<20;)P--,C|=(E.read_byte(k++)&255)<<I,I+=8;if(T=C&L,O=g,x=m,U=(x+T)*3,(y=O[U])===0){C>>=O[U+1],I-=O[U+1],h.win[D++]=O[U+2],M--;continue}do{if(C>>=O[U+1],I-=O[U+1],(y&16)!==0){for(y&=15,N=O[U+2]+(C&X[y]),C>>=y,I-=y;I<15;)P--,C|=(E.read_byte(k++)&255)<<I,I+=8;T=C&V,O=w,x=S,U=(x+T)*3,y=O[U];do if(C>>=O[U+1],I-=O[U+1],(y&16)!==0){for(y&=15;I<y;)P--,C|=(E.read_byte(k++)&255)<<I,I+=8;if(J=O[U+2]+(C&X[y]),C>>=y,I-=y,M-=N,D>=J)F=D-J,D-F>0&&2>D-F?(h.win[D++]=h.win[F++],h.win[D++]=h.win[F++],N-=2):(h.win.set(h.win.subarray(F,F+2),D),D+=2,F+=2,N-=2);else{F=D-J;do F+=h.end;while(F<0);if(y=h.end-F,N>y){if(N-=y,D-F>0&&y>D-F)do h.win[D++]=h.win[F++];while(--y!==0);else h.win.set(h.win.subarray(F,F+y),D),D+=y,F+=y,y=0;F=0}}if(D-F>0&&N>D-F)do h.win[D++]=h.win[F++];while(--N!==0);else h.win.set(h.win.subarray(F,F+N),D),D+=N,F+=N,N=0;break}else if((y&64)===0)T+=O[U+2],T+=C&X[y],U=(x+T)*3,y=O[U];else return E.msg="invalid distance code",N=E.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,h.bitb=C,h.bitk=I,E.avail_in=P,E.total_in+=k-E.next_in_index,E.next_in_index=k,h.write=D,H;while(!0);break}if((y&64)===0){if(T+=O[U+2],T+=C&X[y],U=(x+T)*3,(y=O[U])===0){C>>=O[U+1],I-=O[U+1],h.win[D++]=O[U+2],M--;break}}else return(y&32)!==0?(N=E.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,h.bitb=C,h.bitk=I,E.avail_in=P,E.total_in+=k-E.next_in_index,E.next_in_index=k,h.write=D,ne):(E.msg="invalid literal/length code",N=E.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,h.bitb=C,h.bitk=I,E.avail_in=P,E.total_in+=k-E.next_in_index,E.next_in_index=k,h.write=D,H)}while(!0)}while(M>=258&&P>=10);return N=E.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,h.bitb=C,h.bitk=I,E.avail_in=P,E.total_in+=k-E.next_in_index,E.next_in_index=k,h.write=D,v}s.init=function(c,u,g,m,w,S){t=We,_=c,d=u,p=g,b=m,R=w,A=S,n=null},s.proc=function(c,u,g){let m,w,S,h=0,E=0,T=0,O,x,y,C;for(T=u.next_in_index,O=u.avail_in,h=c.bitb,E=c.bitk,x=c.write,y=x<c.read?c.read-x-1:c.end-x;;)switch(t){case We:if(y>=258&&O>=10&&(c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,g=f(_,d,p,b,R,A,c,u),T=u.next_in_index,O=u.avail_in,h=c.bitb,E=c.bitk,x=c.write,y=x<c.read?c.read-x-1:c.end-x,g!=v)){t=g==ne?ze:He;break}r=_,n=p,i=b,t=jt;case jt:for(m=r;E<m;){if(O!==0)g=v;else return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);O--,h|=(u.read_byte(T++)&255)<<E,E+=8}if(w=(i+(h&X[m]))*3,h>>>=n[w+1],E-=n[w+1],S=n[w],S===0){a=n[w+2],t=Zt;break}if((S&16)!==0){o=S&15,e=n[w+2],t=Gt;break}if((S&64)===0){r=S,i=w/3+n[w+2];break}if((S&32)!==0){t=ze;break}return t=He,u.msg="invalid literal/length code",g=H,c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);case Gt:for(m=o;E<m;){if(O!==0)g=v;else return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);O--,h|=(u.read_byte(T++)&255)<<E,E+=8}e+=h&X[m],h>>=m,E-=m,r=d,n=R,i=A,t=Yt;case Yt:for(m=r;E<m;){if(O!==0)g=v;else return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);O--,h|=(u.read_byte(T++)&255)<<E,E+=8}if(w=(i+(h&X[m]))*3,h>>=n[w+1],E-=n[w+1],S=n[w],(S&16)!==0){o=S&15,l=n[w+2],t=qt;break}if((S&64)===0){r=S,i=w/3+n[w+2];break}return t=He,u.msg="invalid distance code",g=H,c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);case qt:for(m=o;E<m;){if(O!==0)g=v;else return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);O--,h|=(u.read_byte(T++)&255)<<E,E+=8}l+=h&X[m],h>>=m,E-=m,t=Vt;case Vt:for(C=x-l;C<0;)C+=c.end;for(;e!==0;){if(y===0&&(x==c.end&&c.read!==0&&(x=0,y=x<c.read?c.read-x-1:c.end-x),y===0&&(c.write=x,g=c.inflate_flush(u,g),x=c.write,y=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,y=x<c.read?c.read-x-1:c.end-x),y===0)))return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);c.win[x++]=c.win[C++],y--,C==c.end&&(C=0),e--}t=We;break;case Zt:if(y===0&&(x==c.end&&c.read!==0&&(x=0,y=x<c.read?c.read-x-1:c.end-x),y===0&&(c.write=x,g=c.inflate_flush(u,g),x=c.write,y=x<c.read?c.read-x-1:c.end-x,x==c.end&&c.read!==0&&(x=0,y=x<c.read?c.read-x-1:c.end-x),y===0)))return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);g=v,c.win[x++]=a,y--,t=We;break;case ze:if(E>7&&(E-=8,O++,T--),c.write=x,g=c.inflate_flush(u,g),x=c.write,y=x<c.read?c.read-x-1:c.end-x,c.read!=c.write)return c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);t=Kt;case Kt:return g=ne,c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);case He:return g=H,c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g);default:return g=K,c.bitb=h,c.bitk=E,u.avail_in=O,u.total_in+=T-u.next_in_index,u.next_in_index=T,c.write=x,c.inflate_flush(u,g)}},s.free=function(){}}const Xt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],we=0,et=1,$t=2,Jt=3,Qt=4,zt=5,Be=6,je=7,en=8,he=9;function Nr(s,t){const e=this;let n=we,i=0,r=0,a=0,o;const l=[0],_=[0],d=new Cr;let p=0,b=new Int32Array(jn*3);const R=0,A=new ft;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(f,c){c&&(c[0]=R),n==Be&&d.free(f),n=we,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(s,null),e.inflate_flush=function(f,c){let u,g,m;return g=f.next_out_index,m=e.read,u=(m<=e.write?e.write:e.end)-m,u>f.avail_out&&(u=f.avail_out),u!==0&&c==se&&(c=v),f.avail_out-=u,f.total_out+=u,f.next_out.set(e.win.subarray(m,m+u),g),g+=u,m+=u,m==e.end&&(m=0,e.write==e.end&&(e.write=0),u=e.write-m,u>f.avail_out&&(u=f.avail_out),u!==0&&c==se&&(c=v),f.avail_out-=u,f.total_out+=u,f.next_out.set(e.win.subarray(m,m+u),g),g+=u,m+=u),f.next_out_index=g,e.read=m,c},e.proc=function(f,c){let u,g,m,w,S,h,E,T;for(w=f.next_in_index,S=f.avail_in,g=e.bitb,m=e.bitk,h=e.write,E=h<e.read?e.read-h-1:e.end-h;;){let O,x,y,C,I,k,P,D;switch(n){case we:for(;m<3;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}switch(u=g&7,p=u&1,u>>>1){case 0:g>>>=3,m-=3,u=m&7,g>>>=u,m-=u,n=et;break;case 1:O=[],x=[],y=[[]],C=[[]],ft.inflate_trees_fixed(O,x,y,C),d.init(O[0],x[0],y[0],0,C[0],0),g>>>=3,m-=3,n=Be;break;case 2:g>>>=3,m-=3,n=Jt;break;case 3:return g>>>=3,m-=3,n=he,f.msg="invalid block type",c=H,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c)}break;case et:for(;m<32;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}if((~g>>>16&65535)!=(g&65535))return n=he,f.msg="invalid stored block lengths",c=H,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);i=g&65535,g=m=0,n=i!==0?$t:p!==0?je:we;break;case $t:if(S===0||E===0&&(h==e.end&&e.read!==0&&(h=0,E=h<e.read?e.read-h-1:e.end-h),E===0&&(e.write=h,c=e.inflate_flush(f,c),h=e.write,E=h<e.read?e.read-h-1:e.end-h,h==e.end&&e.read!==0&&(h=0,E=h<e.read?e.read-h-1:e.end-h),E===0)))return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);if(c=v,u=i,u>S&&(u=S),u>E&&(u=E),e.win.set(f.read_buf(w,u),h),w+=u,S-=u,h+=u,E-=u,(i-=u)!==0)break;n=p!==0?je:we;break;case Jt:for(;m<14;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}if(r=u=g&16383,(u&31)>29||(u>>5&31)>29)return n=he,f.msg="too many length or distance symbols",c=H,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);if(u=258+(u&31)+(u>>5&31),!o||o.length<u)o=[];else for(T=0;T<u;T++)o[T]=0;g>>>=14,m-=14,a=0,n=Qt;case Qt:for(;a<4+(r>>>10);){for(;m<3;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}o[Xt[a++]]=g&7,g>>>=3,m-=3}for(;a<19;)o[Xt[a++]]=0;if(l[0]=7,u=A.inflate_trees_bits(o,l,_,b,f),u!=v)return c=u,c==H&&(o=null,n=he),e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);a=0,n=zt;case zt:for(;u=r,!(a>=258+(u&31)+(u>>5&31));){let M,L;for(u=l[0];m<u;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}if(u=b[(_[0]+(g&X[u]))*3+1],L=b[(_[0]+(g&X[u]))*3+2],L<16)g>>>=u,m-=u,o[a++]=L;else{for(T=L==18?7:L-14,M=L==18?11:3;m<u+T;){if(S!==0)c=v;else return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);S--,g|=(f.read_byte(w++)&255)<<m,m+=8}if(g>>>=u,m-=u,M+=g&X[T],g>>>=T,m-=T,T=a,u=r,T+M>258+(u&31)+(u>>5&31)||L==16&&T<1)return o=null,n=he,f.msg="invalid bit length repeat",c=H,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);L=L==16?o[T-1]:0;do o[T++]=L;while(--M!==0);a=T}}if(_[0]=-1,I=[],k=[],P=[],D=[],I[0]=9,k[0]=6,u=r,u=A.inflate_trees_dynamic(257+(u&31),1+(u>>5&31),o,I,k,P,D,b,f),u!=v)return u==H&&(o=null,n=he),c=u,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);d.init(I[0],k[0],b,P[0],b,D[0]),n=Be;case Be:if(e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,(c=d.proc(e,f,c))!=ne)return e.inflate_flush(f,c);if(c=v,d.free(f),w=f.next_in_index,S=f.avail_in,g=e.bitb,m=e.bitk,h=e.write,E=h<e.read?e.read-h-1:e.end-h,p===0){n=we;break}n=je;case je:if(e.write=h,c=e.inflate_flush(f,c),h=e.write,E=h<e.read?e.read-h-1:e.end-h,e.read!=e.write)return e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);n=en;case en:return c=ne,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);case he:return c=H,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c);default:return c=K,e.bitb=g,e.bitk=m,f.avail_in=S,f.total_in+=w-f.next_in_index,f.next_in_index=w,e.write=h,e.inflate_flush(f,c)}}},e.free=function(f){e.reset(f,null),e.win=null,b=null},e.set_dictionary=function(f,c,u){e.win.set(f.subarray(c,c+u),0),e.read=e.write=u},e.sync_point=function(){return n==et?1:0}}const Dr=32,Pr=8,kr=0,tn=1,nn=2,sn=3,rn=4,an=5,tt=6,Se=7,on=12,ae=13,Lr=[0,0,255,255];function vr(){const s=this;s.mode=0,s.method=0,s.was=[0],s.need=0,s.marker=0,s.wbits=0;function t(e){return!e||!e.istate?K:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=Se,e.istate.blocks.reset(e,null),v)}s.inflateEnd=function(e){return s.blocks&&s.blocks.free(e),s.blocks=null,v},s.inflateInit=function(e,n){return e.msg=null,s.blocks=null,n<8||n>15?(s.inflateEnd(e),K):(s.wbits=n,e.istate.blocks=new Nr(e,1<<n),t(e),v)},s.inflate=function(e,n){let i,r;if(!e||!e.istate||!e.next_in)return K;const a=e.istate;for(n=n==yr?se:v,i=se;;)switch(a.mode){case kr:if(e.avail_in===0)return i;if(i=n,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Pr){a.mode=ae,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=ae,e.msg="invalid win size",a.marker=5;break}a.mode=tn;case tn:if(e.avail_in===0)return i;if(i=n,e.avail_in--,e.total_in++,r=e.read_byte(e.next_in_index++)&255,((a.method<<8)+r)%31!==0){a.mode=ae,e.msg="incorrect header check",a.marker=5;break}if((r&Dr)===0){a.mode=Se;break}a.mode=nn;case nn:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=sn;case sn:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=rn;case rn:if(e.avail_in===0)return i;i=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=an;case an:return e.avail_in===0?i:(i=n,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=tt,gr);case tt:return a.mode=ae,e.msg="need dictionary",a.marker=0,K;case Se:if(i=a.blocks.proc(e,i),i==H){a.mode=ae,a.marker=0;break}if(i==v&&(i=n),i!=ne)return i;i=n,a.blocks.reset(e,a.was),a.mode=on;case on:return e.avail_in=0,ne;case ae:return H;default:return K}},s.inflateSetDictionary=function(e,n,i){let r=0,a=i;if(!e||!e.istate||e.istate.mode!=tt)return K;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,r=i-a),o.blocks.set_dictionary(n,r,a),o.mode=Se,v},s.inflateSync=function(e){let n,i,r,a,o;if(!e||!e.istate)return K;const l=e.istate;if(l.mode!=ae&&(l.mode=ae,l.marker=0),(n=e.avail_in)===0)return se;for(i=e.next_in_index,r=l.marker;n!==0&&r<4;)e.read_byte(i)==Lr[r]?r++:e.read_byte(i)!==0?r=0:r=4-r,i++,n--;return e.total_in+=i-e.next_in_index,e.next_in_index=i,e.avail_in=n,l.marker=r,r!=4?H:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=Se,v)},s.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?K:e.istate.blocks.sync_point()}}function Gn(){}Gn.prototype={inflateInit(s){const t=this;return t.istate=new vr,s||(s=wr),t.istate.inflateInit(t,s)},inflate(s){const t=this;return t.istate?t.istate.inflate(t,s):K},inflateEnd(){const s=this;if(!s.istate)return K;const t=s.istate.inflateEnd(s);return s.istate=null,t},inflateSync(){const s=this;return s.istate?s.istate.inflateSync(s):K},inflateSetDictionary(s,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,s,t):K},read_byte(s){return this.next_in[s]},read_buf(s,t){return this.next_in.subarray(s,s+t)}};function Fr(s){const t=this,e=new Gn,n=s&&s.chunkSize?Math.floor(s.chunkSize*2):128*1024,i=br,r=new Uint8Array(n);let a=!1;e.inflateInit(),e.next_out=r,t.append=function(o,l){const _=[];let d,p,b=0,R=0,A=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=n,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),d=e.inflate(i),a&&d===se){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(d!==v&&d!==ne)throw new Error("inflating: "+e.msg);if((a||d===ne)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===n?_.push(new Uint8Array(r)):_.push(r.subarray(0,e.next_out_index))),A+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=b&&(l(e.next_in_index),b=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(p=new Uint8Array(A),_.forEach(function(f){p.set(f,R),R+=f.length})):p=_[0]?new Uint8Array(_[0]):new Uint8Array,p}},t.flush=function(){e.inflateEnd()}}const pe=4294967295,le=65535,Mr=8,Ur=0,Wr=99,Hr=67324752,Yn=134695760,Br=Yn,cn=33639248,jr=101010256,ln=101075792,Gr=117853008,te=22,nt=20,st=56,Yr=12,qr=20,fn=4,Vr=1,Zr=39169,Kr=10,Xr=1,$r=21589,Jr=28789,Qr=25461,zr=6534,un=1,ei=6,dn=8,_n=2048,hn=16,ti=61440,ni=16384,si=73,pn="/",rt=30,ri=10,ii=14,ai=18,j=void 0,de="undefined",Pe="function";class mn{constructor(t){return class extends TransformStream{constructor(e,n){const i=new t(n);super({transform(r,a){a.enqueue(i.append(r))},flush(r){const a=i.flush();a&&r.enqueue(a)}})}}}}const oi=64;let qn=2;try{typeof navigator!=de&&navigator.hardwareConcurrency&&(qn=navigator.hardwareConcurrency)}catch{}const ci={chunkSize:512*1024,maxWorkers:qn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:j,CompressionStreamNative:typeof CompressionStream!=de&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=de&&DecompressionStream},fe=Object.assign({},ci);function Vn(){return fe}function li(s){return Math.max(s.chunkSize,oi)}function Zn(s){const{baseURL:t,chunkSize:e,maxWorkers:n,terminateWorkerTimeout:i,useCompressionStream:r,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:d,workerScripts:p}=s;if(oe("baseURL",t),oe("chunkSize",e),oe("maxWorkers",n),oe("terminateWorkerTimeout",i),oe("useCompressionStream",r),oe("useWebWorkers",a),o&&(fe.CompressionStream=new mn(o)),l&&(fe.DecompressionStream=new mn(l)),oe("CompressionStream",_),oe("DecompressionStream",d),p!==j){const{deflate:b,inflate:R}=p;if((b||R)&&(fe.workerScripts||(fe.workerScripts={})),b){if(!Array.isArray(b))throw new Error("workerScripts.deflate must be an array");fe.workerScripts.deflate=b}if(R){if(!Array.isArray(R))throw new Error("workerScripts.inflate must be an array");fe.workerScripts.inflate=R}}}function oe(s,t){t!==j&&(fe[s]=t)}function fi(){return"application/octet-stream"}const Kn=[];for(let s=0;s<256;s++){let t=s;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;Kn[s]=t}class Ve{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let n=0,i=t.length|0;n<i;n++)e=e>>>8^Kn[(e^t[n])&255];this.crc=e}get(){return~this.crc}}class Xn extends TransformStream{constructor(){let t;const e=new Ve;super({transform(n,i){e.append(n),i.enqueue(n)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function ui(s){if(typeof TextEncoder==de){s=unescape(encodeURIComponent(s));const t=new Uint8Array(s.length);for(let e=0;e<t.length;e++)t[e]=s.charCodeAt(e);return t}else return new TextEncoder().encode(s)}const Z={concat(s,t){if(s.length===0||t.length===0)return s.concat(t);const e=s[s.length-1],n=Z.getPartial(e);return n===32?s.concat(t):Z._shiftRight(t,n,e|0,s.slice(0,s.length-1))},bitLength(s){const t=s.length;if(t===0)return 0;const e=s[t-1];return(t-1)*32+Z.getPartial(e)},clamp(s,t){if(s.length*32<t)return s;s=s.slice(0,Math.ceil(t/32));const e=s.length;return t=t&31,e>0&&t&&(s[e-1]=Z.partial(t,s[e-1]&2147483648>>t-1,1)),s},partial(s,t,e){return s===32?t:(e?t|0:t<<32-s)+s*1099511627776},getPartial(s){return Math.round(s/1099511627776)||32},_shiftRight(s,t,e,n){for(n===void 0&&(n=[]);t>=32;t-=32)n.push(e),e=0;if(t===0)return n.concat(s);for(let a=0;a<s.length;a++)n.push(e|s[a]>>>t),e=s[a]<<32-t;const i=s.length?s[s.length-1]:0,r=Z.getPartial(i);return n.push(Z.partial(t+r&31,t+r>32?e:n.pop(),1)),n}},Ze={bytes:{fromBits(s){const e=Z.bitLength(s)/8,n=new Uint8Array(e);let i;for(let r=0;r<e;r++)(r&3)===0&&(i=s[r/4]),n[r]=i>>>24,i<<=8;return n},toBits(s){const t=[];let e,n=0;for(e=0;e<s.length;e++)n=n<<8|s[e],(e&3)===3&&(t.push(n),n=0);return e&3&&t.push(Z.partial(8*(e&3),n)),t}}},$n={};$n.sha1=class{constructor(s){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],s?(t._h=s._h.slice(0),t._buffer=s._buffer.slice(0),t._length=s._length):t.reset()}reset(){const s=this;return s._h=s._init.slice(0),s._buffer=[],s._length=0,s}update(s){const t=this;typeof s=="string"&&(s=Ze.utf8String.toBits(s));const e=t._buffer=Z.concat(t._buffer,s),n=t._length,i=t._length=n+Z.bitLength(s);if(i>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const r=new Uint32Array(e);let a=0;for(let o=t.blockSize+n-(t.blockSize+n&t.blockSize-1);o<=i;o+=t.blockSize)t._block(r.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const s=this;let t=s._buffer;const e=s._h;t=Z.concat(t,[Z.partial(1,1)]);for(let n=t.length+2;n&15;n++)t.push(0);for(t.push(Math.floor(s._length/4294967296)),t.push(s._length|0);t.length;)s._block(t.splice(0,16));return s.reset(),e}_f(s,t,e,n){if(s<=19)return t&e|~t&n;if(s<=39)return t^e^n;if(s<=59)return t&e|t&n|e&n;if(s<=79)return t^e^n}_S(s,t){return t<<s|t>>>32-s}_block(s){const t=this,e=t._h,n=Array(80);for(let _=0;_<16;_++)n[_]=s[_];let i=e[0],r=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(n[_]=t._S(1,n[_-3]^n[_-8]^n[_-14]^n[_-16]));const d=t._S(5,i)+t._f(_,r,a,o)+l+n[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,r),r=i,i=d}e[0]=e[0]+i|0,e[1]=e[1]+r|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const Jn={};Jn.aes=class{constructor(s){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],n=t._tables[1],i=s.length;let r,a,o,l=1;if(i!==4&&i!==6&&i!==8)throw new Error("invalid aes key size");for(t._key=[a=s.slice(0),o=[]],r=i;r<4*i+28;r++){let _=a[r-1];(r%i===0||i===8&&r%i===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],r%i===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[r]=a[r-i]^_}for(let _=0;r;_++,r--){const d=a[_&3?r:r-4];r<=4||_<4?o[_]=d:o[_]=n[0][e[d>>>24]]^n[1][e[d>>16&255]]^n[2][e[d>>8&255]]^n[3][e[d&255]]}}encrypt(s){return this._crypt(s,0)}decrypt(s){return this._crypt(s,1)}_precompute(){const s=this._tables[0],t=this._tables[1],e=s[4],n=t[4],i=[],r=[];let a,o,l,_;for(let d=0;d<256;d++)r[(i[d]=d<<1^(d>>7)*283)^d]=d;for(let d=a=0;!e[d];d^=o||1,a=r[a]||1){let p=a^a<<1^a<<2^a<<3^a<<4;p=p>>8^p&255^99,e[d]=p,n[p]=d,_=i[l=i[o=i[d]]];let b=_*16843009^l*65537^o*257^d*16843008,R=i[p]*257^p*16843008;for(let A=0;A<4;A++)s[A][d]=R=R<<24^R>>>8,t[A][p]=b=b<<24^b>>>8}for(let d=0;d<5;d++)s[d]=s[d].slice(0),t[d]=t[d].slice(0)}_crypt(s,t){if(s.length!==4)throw new Error("invalid aes block size");const e=this._key[t],n=e.length/4-2,i=[0,0,0,0],r=this._tables[t],a=r[0],o=r[1],l=r[2],_=r[3],d=r[4];let p=s[0]^e[0],b=s[t?3:1]^e[1],R=s[2]^e[2],A=s[t?1:3]^e[3],f=4,c,u,g;for(let m=0;m<n;m++)c=a[p>>>24]^o[b>>16&255]^l[R>>8&255]^_[A&255]^e[f],u=a[b>>>24]^o[R>>16&255]^l[A>>8&255]^_[p&255]^e[f+1],g=a[R>>>24]^o[A>>16&255]^l[p>>8&255]^_[b&255]^e[f+2],A=a[A>>>24]^o[p>>16&255]^l[b>>8&255]^_[R&255]^e[f+3],f+=4,p=c,b=u,R=g;for(let m=0;m<4;m++)i[t?3&-m:m]=d[p>>>24]<<24^d[b>>16&255]<<16^d[R>>8&255]<<8^d[A&255]^e[f++],c=p,p=b,b=R,R=A,A=c;return i}};const di={getRandomValues(s){const t=new Uint32Array(s.buffer),e=n=>{let i=987654321;const r=4294967295;return function(){return i=36969*(i&65535)+(i>>16)&r,n=18e3*(n&65535)+(n>>16)&r,(((i<<16)+n&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n=0,i;n<s.length;n+=4){const r=e((i||Math.random())*4294967296);i=r()*987654071,t[n/4]=r()*4294967296|0}return s}},Qn={};Qn.ctrGladman=class{constructor(s,t){this._prf=s,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(s){return this.calculate(this._prf,s,this._iv)}incWord(s){if((s>>24&255)===255){let t=s>>16&255,e=s>>8&255,n=s&255;t===255?(t=0,e===255?(e=0,n===255?n=0:++n):++e):++t,s=0,s+=t<<16,s+=e<<8,s+=n}else s+=1<<24;return s}incCounter(s){(s[0]=this.incWord(s[0]))===0&&(s[1]=this.incWord(s[1]))}calculate(s,t,e){let n;if(!(n=t.length))return[];const i=Z.bitLength(t);for(let r=0;r<n;r+=4){this.incCounter(e);const a=s.encrypt(e);t[r]^=a[0],t[r+1]^=a[1],t[r+2]^=a[2],t[r+3]^=a[3]}return Z.clamp(t,i)}};const me={importKey(s){return new me.hmacSha1(Ze.bytes.toBits(s))},pbkdf2(s,t,e,n){if(e=e||1e4,n<0||e<0)throw new Error("invalid params to pbkdf2");const i=(n>>5)+1<<2;let r,a,o,l,_;const d=new ArrayBuffer(i),p=new DataView(d);let b=0;const R=Z;for(t=Ze.bytes.toBits(t),_=1;b<(i||1);_++){for(r=a=s.encrypt(R.concat(t,[_])),o=1;o<e;o++)for(a=s.encrypt(a),l=0;l<a.length;l++)r[l]^=a[l];for(o=0;b<(i||1)&&o<r.length;o++)p.setInt32(b,r[o]),b+=4}return d.slice(0,n/8)}};me.hmacSha1=class{constructor(s){const t=this,e=t._hash=$n.sha1,n=[[],[]];t._baseHash=[new e,new e];const i=t._baseHash[0].blockSize/32;s.length>i&&(s=new e().update(s).finalize());for(let r=0;r<i;r++)n[0][r]=s[r]^909522486,n[1][r]=s[r]^1549556828;t._baseHash[0].update(n[0]),t._baseHash[1].update(n[1]),t._resultHash=new e(t._baseHash[0])}reset(){const s=this;s._resultHash=new s._hash(s._baseHash[0]),s._updated=!1}update(s){const t=this;t._updated=!0,t._resultHash.update(s)}digest(){const s=this,t=s._resultHash.finalize(),e=new s._hash(s._baseHash[1]).update(t).finalize();return s.reset(),e}encrypt(s){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(s),this.digest(s)}};const _i=typeof crypto!=de&&typeof crypto.getRandomValues==Pe,yt="Invalid password",Et="Invalid signature",xt="zipjs-abort-check-password";function zn(s){return _i?crypto.getRandomValues(s):di.getRandomValues(s)}const ge=16,hi="raw",es={name:"PBKDF2"},pi={name:"HMAC"},mi="SHA-1",wi=Object.assign({hash:pi},es),ut=Object.assign({iterations:1e3,hash:{name:mi}},es),gi=["deriveBits"],Ie=[8,12,16],Re=[16,24,32],ce=10,bi=[0,0,0,0],$e=typeof crypto!=de,ke=$e&&crypto.subtle,ts=$e&&typeof ke!=de,z=Ze.bytes,yi=Jn.aes,Ei=Qn.ctrGladman,xi=me.hmacSha1;let wn=$e&&ts&&typeof ke.importKey==Pe,gn=$e&&ts&&typeof ke.deriveBits==Pe;class Ti extends TransformStream{constructor({password:t,rawPassword:e,signed:n,encryptionStrength:i,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:rs(t,e),signed:n,strength:i-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:d,resolveReady:p,ready:b}=l;_?(await Ri(l,d,_,$(a,0,Ie[d]+2)),a=$(a,Ie[d]+2),r?o.error(new Error(xt)):p()):await b;const R=new Uint8Array(a.length-ce-(a.length-ce)%ge);o.enqueue(ns(l,a,R,0,ce,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:d,ready:p}=this;if(_&&l){await p;const b=$(d,0,d.length-ce),R=$(d,d.length-ce);let A=new Uint8Array;if(b.length){const f=Ne(z,b);_.update(f);const c=l.update(f);A=Ce(z,c)}if(o){const f=$(Ce(z,_.digest()),0,ce);for(let c=0;c<ce;c++)if(f[c]!=R[c])throw new Error(Et)}a.enqueue(A)}}})}}class Si extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){let i;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:rs(t,e),strength:n-1,pending:new Uint8Array})},async transform(r,a){const o=this,{password:l,strength:_,resolveReady:d,ready:p}=o;let b=new Uint8Array;l?(b=await Ai(o,_,l),d()):await p;const R=new Uint8Array(b.length+r.length-r.length%ge);R.set(b,0),a.enqueue(ns(o,r,R,b.length,0))},async flush(r){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let d=new Uint8Array;if(l.length){const p=a.update(Ne(z,l));o.update(p),d=Ce(z,p)}i.signature=Ce(z,o.digest()).slice(0,ce),r.enqueue(Tt(d,i.signature))}}}),i=this}}function ns(s,t,e,n,i,r){const{ctr:a,hmac:o,pending:l}=s,_=t.length-i;l.length&&(t=Tt(l,t),e=Ci(e,_-_%ge));let d;for(d=0;d<=_-ge;d+=ge){const p=Ne(z,$(t,d,d+ge));r&&o.update(p);const b=a.update(p);r||o.update(b),e.set(Ce(z,b),d+n)}return s.pending=$(t,d),e}async function Ri(s,t,e,n){const i=await ss(s,t,e,$(n,0,Ie[t])),r=$(n,Ie[t]);if(i[0]!=r[0]||i[1]!=r[1])throw new Error(yt)}async function Ai(s,t,e){const n=zn(new Uint8Array(Ie[t])),i=await ss(s,t,e,n);return Tt(n,i)}async function ss(s,t,e,n){s.password=null;const i=await Oi(hi,e,wi,!1,gi),r=await Ii(Object.assign({salt:n},ut),i,8*(Re[t]*2+2)),a=new Uint8Array(r),o=Ne(z,$(a,0,Re[t])),l=Ne(z,$(a,Re[t],Re[t]*2)),_=$(a,Re[t]*2);return Object.assign(s,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new Ei(new yi(o),Array.from(bi)),hmac:new xi(l)}),_}async function Oi(s,t,e,n,i){if(wn)try{return await ke.importKey(s,t,e,n,i)}catch{return wn=!1,me.importKey(t)}else return me.importKey(t)}async function Ii(s,t,e){if(gn)try{return await ke.deriveBits(s,t,e)}catch{return gn=!1,me.pbkdf2(t,s.salt,ut.iterations,e)}else return me.pbkdf2(t,s.salt,ut.iterations,e)}function rs(s,t){return t===j?ui(s):t}function Tt(s,t){let e=s;return s.length+t.length&&(e=new Uint8Array(s.length+t.length),e.set(s,0),e.set(t,s.length)),e}function Ci(s,t){if(t&&t>s.length){const e=s;s=new Uint8Array(t),s.set(e,0)}return s}function $(s,t,e){return s.subarray(t,e)}function Ce(s,t){return s.fromBits(t)}function Ne(s,t){return s.toBits(t)}const Oe=12;class Ni extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),is(this,t)},transform(i,r){const a=this;if(a.password){const o=bn(a,i.subarray(0,Oe));if(a.password=null,o.at(-1)!=a.passwordVerification)throw new Error(yt);i=i.subarray(Oe)}n?r.error(new Error(xt)):r.enqueue(bn(a,i))}})}}class Di extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),is(this,t)},transform(n,i){const r=this;let a,o;if(r.password){r.password=null;const l=zn(new Uint8Array(Oe));l[Oe-1]=r.passwordVerification,a=new Uint8Array(n.length+l.length),a.set(yn(r,l),0),o=Oe}else a=new Uint8Array(n.length),o=0;a.set(yn(r,n),o),i.enqueue(a)}})}}function bn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=as(s)^t[n],St(s,e[n]);return e}function yn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=as(s)^t[n],St(s,t[n]);return e}function is(s,t){const e=[305419896,591751049,878082192];Object.assign(s,{keys:e,crcKey0:new Ve(e[0]),crcKey2:new Ve(e[2])});for(let n=0;n<t.length;n++)St(s,t.charCodeAt(n))}function St(s,t){let[e,n,i]=s.keys;s.crcKey0.append([t]),e=~s.crcKey0.get(),n=En(Math.imul(En(n+os(e)),134775813)+1),s.crcKey2.append([n>>>24]),i=~s.crcKey2.get(),s.keys=[e,n,i]}function as(s){const t=s.keys[2]|2;return os(Math.imul(t,t^1)>>>8)}function os(s){return s&255}function En(s){return s&4294967295}const Rt="Invalid uncompressed size",xn="deflate-raw";class Pi extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:n,CompressionStreamNative:i}){super({});const{compressed:r,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:d}=t,p=this;let b,R,A=super.readable;(!a||l)&&_&&(b=new Xn,A=re(A,b)),r&&(A=ls(A,o,{level:d,chunkSize:e},i,n)),a&&(l?A=re(A,new Di(t)):(R=new Si(t),A=re(A,R))),cs(p,A,()=>{let f;a&&!l&&(f=R.signature),(!a||l)&&_&&(f=new DataView(b.value.buffer).getUint32(0)),p.signature=f})}}class ki extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:n,DecompressionStreamNative:i}){super({});const{zipCrypto:r,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:d}=t;let p,b,R=super.readable;a&&(r?R=re(R,new Ni(t)):(b=new Ti(t),R=re(R,b))),_&&(R=ls(R,d,{chunkSize:e},i,n)),(!a||r)&&o&&(p=new Xn,R=re(R,p)),cs(this,R,()=>{if((!a||r)&&o){const A=new DataView(p.value.buffer);if(l!=A.getUint32(0,!1))throw new Error(Et)}})}}function cs(s,t,e){t=re(t,new TransformStream({flush:e})),Object.defineProperty(s,"readable",{get(){return t}})}function ls(s,t,e,n,i){try{const r=t&&n?n:i;s=re(s,new r(xn,e))}catch(r){if(t)s=re(s,new i(xn,e));else throw r}return s}function re(s,t){return s.pipeThrough(t)}const Li="message",vi="start",Fi="pull",Tn="data",Mi="ack",Sn="close",Ui="deflate",fs="inflate";class Wi extends TransformStream{constructor(t,e){super({});const n=this,{codecType:i}=t;let r;i.startsWith(Ui)?r=Pi:i.startsWith(fs)&&(r=ki),n.outputSize=0;let a=0;const o=new r(t,e),l=super.readable,_=new TransformStream({transform(p,b){p&&p.length&&(a+=p.length,b.enqueue(p))},flush(){Object.assign(n,{inputSize:a})}}),d=new TransformStream({transform(p,b){if(p&&p.length&&(b.enqueue(p),n.outputSize+=p.length,t.outputSize&&n.outputSize>t.outputSize))throw new Error(Rt)},flush(){const{signature:p}=o;Object.assign(n,{signature:p,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return l.pipeThrough(_).pipeThrough(o).pipeThrough(d)}})}}class Hi extends TransformStream{constructor(t){let e;super({transform:n,flush(i){e&&e.length&&i.enqueue(e)}});function n(i,r){if(e){const a=new Uint8Array(e.length+i.length);a.set(e),a.set(i,e.length),i=a,e=null}i.length>t?(r.enqueue(i.slice(0,t)),n(i.slice(t),r)):e=i}}}let us=typeof Worker!=de;class it{constructor(t,{readable:e,writable:n},{options:i,config:r,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},d){const{signal:p}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new Hi(r.chunkSize)).pipeThrough(new Bi(a),{signal:p}),writable:n,options:Object.assign({},i),scripts:_,transferStreams:l,terminate(){return new Promise(b=>{const{worker:R,busy:A}=t;R?(A?t.resolveTerminated=b:(R.terminate(),b()),t.interface=null):b()})},onTaskFinished(){const{resolveTerminated:b}=t;b&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),b()),t.busy=!1,d(t)}}),(o&&us?ji:ds)(t,r)}}class Bi extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:i}){let r=0;super({async start(){t&&await at(t,n)},async transform(a,o){r+=a.length,e&&await at(e,r,n),o.enqueue(a)},async flush(){i&&await at(i,r)}})}}async function at(s,...t){try{await s(...t)}catch{}}function ds(s,t){return{run:()=>Gi(s,t)}}function ji(s,t){const{baseURL:e,chunkSize:n}=t;if(!s.interface){let i;try{i=Vi(s.scripts[0],e,s)}catch{return us=!1,ds(s,t)}Object.assign(s,{worker:i,interface:{run:()=>Yi(s,{chunkSize:n})}})}return s.interface}async function Gi({options:s,readable:t,writable:e,onTaskFinished:n},i){let r;try{r=new Wi(s,i),await t.pipeThrough(r).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=r;return{signature:a,inputSize:o,outputSize:l}}catch(a){throw r&&(a.outputSize=r.outputSize),a}finally{n()}}async function Yi(s,t){let e,n;const i=new Promise((b,R)=>{e=b,n=R});Object.assign(s,{reader:null,writer:null,resolveResult:e,rejectResult:n,result:i});const{readable:r,options:a,scripts:o}=s,{writable:l,closed:_}=qi(s.writable),d=Ge({type:vi,scripts:o.slice(1),options:a,config:t,readable:r,writable:l},s);d||Object.assign(s,{reader:r.getReader(),writer:l.getWriter()});const p=await i;return d||await l.getWriter().close(),await _,p}function qi(s){let t;const e=new Promise(i=>t=i);return{writable:new WritableStream({async write(i){const r=s.getWriter();await r.ready,await r.write(i),r.releaseLock()},close(){t()},abort(i){return s.getWriter().abort(i)}}),closed:e}}let Rn=!0,An=!0;function Vi(s,t,e){const n={type:"module"};let i,r;typeof s==Pe&&(s=s());try{i=new URL(s,t)}catch{i=s}if(Rn)try{r=new Worker(i)}catch{Rn=!1,r=new Worker(i,n)}else r=new Worker(i,n);return r.addEventListener(Li,a=>Zi(a,e)),r}function Ge(s,{worker:t,writer:e,onTaskFinished:n,transferStreams:i}){try{const{value:r,readable:a,writable:o}=s,l=[];if(r&&(r.byteLength<r.buffer.byteLength?s.value=r.buffer.slice(0,r.byteLength):s.value=r.buffer,l.push(s.value)),i&&An?(a&&l.push(a),o&&l.push(o)):s.readable=s.writable=null,l.length)try{return t.postMessage(s,l),!0}catch{An=!1,s.readable=s.writable=null,t.postMessage(s)}else t.postMessage(s)}catch(r){throw e&&e.releaseLock(),n(),r}}async function Zi({data:s},t){const{type:e,value:n,messageId:i,result:r,error:a}=s,{reader:o,writer:l,resolveResult:_,rejectResult:d,onTaskFinished:p}=t;try{if(a){const{message:R,stack:A,code:f,name:c,outputSize:u}=a,g=new Error(R);Object.assign(g,{stack:A,code:f,name:c,outputSize:u}),b(g)}else{if(e==Fi){const{value:R,done:A}=await o.read();Ge({type:Tn,value:R,done:A,messageId:i},t)}e==Tn&&(await l.ready,await l.write(new Uint8Array(n)),Ge({type:Mi,messageId:i},t)),e==Sn&&b(null,r)}}catch(R){Ge({type:Sn,messageId:i},t),b(R)}function b(R,A){R?d(R):_(A),l&&l.releaseLock(),p()}}let ue=[];const ot=[];let On=0;async function Ki(s,t){const{options:e,config:n}=t,{transferStreams:i,useWebWorkers:r,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:d}=e,{workerScripts:p,maxWorkers:b}=n;t.transferStreams=i||i===j;const R=!l&&!_&&!d&&!t.transferStreams;return t.useWebWorkers=!R&&(r||r===j&&n.useWebWorkers),t.scripts=t.useWebWorkers&&p?p[o]:[],e.useCompressionStream=a||a===j&&n.useCompressionStream,(await A()).run();async function A(){const c=ue.find(u=>!u.busy);if(c)return dt(c),new it(c,s,t,f);if(ue.length<b){const u={indexWorker:On};return On++,ue.push(u),new it(u,s,t,f)}else return new Promise(u=>ot.push({resolve:u,stream:s,workerOptions:t}))}function f(c){if(ot.length){const[{resolve:u,stream:g,workerOptions:m}]=ot.splice(0,1);u(new it(c,g,m,f))}else c.worker?(dt(c),Xi(c,t)):ue=ue.filter(u=>u!=c)}}function Xi(s,t){const{config:e}=t,{terminateWorkerTimeout:n}=e;Number.isFinite(n)&&n>=0&&(s.terminated?s.terminated=!1:s.terminateTimeout=setTimeout(async()=>{ue=ue.filter(i=>i!=s);try{await s.terminate()}catch{}},n))}function dt(s){const{terminateTimeout:t}=s;t&&(clearTimeout(t),s.terminateTimeout=null)}async function $i(){await Promise.allSettled(ue.map(s=>(dt(s),s.terminate())))}const _s="HTTP error ",Le="HTTP Range not supported",hs="Writer iterator completed too soon",ps="Writer not initialized",Ji="text/plain",Qi="Content-Length",zi="Content-Range",ea="Accept-Ranges",ta="Range",na="Content-Type",sa="HEAD",At="GET",ms="bytes",ra=64*1024,Ot="writable";class Je{constructor(){this.size=0}init(){this.initialized=!0}}class _e extends Je{get readable(){const t=this,{chunkSize:e=ra}=t,n=new ReadableStream({start(){this.chunkOffset=0},async pull(i){const{offset:r=0,size:a,diskNumberStart:o}=n,{chunkOffset:l}=this,_=a===j?e:Math.min(e,a-l),d=await G(t,r+l,_,o);i.enqueue(d),l+e>a||a===j&&!d.length&&_?i.close():this.chunkOffset+=e}});return n}}class It extends Je{constructor(){super();const t=this,e=new WritableStream({write(n){if(!t.initialized)throw new Error(ps);return t.writeUint8Array(n)}});Object.defineProperty(t,Ot,{get(){return e}})}writeUint8Array(){}}class ia extends _e{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor((e-n)*.75)})}readUint8Array(t,e){const{dataStart:n,dataURI:i}=this,r=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(i.substring(a+n,Math.ceil((t+e)/3)*4+n)),l=t-Math.floor(a/4)*3;let _=0;for(let d=l;d<l+e&&d<o.length;d++)r[d-l]=o.charCodeAt(d),_++;return _<r.length?r.subarray(0,_):r}}class aa extends It{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n=0,i=e.pending;const r=e.pending.length;for(e.pending="",n=0;n<Math.floor((r+t.length)/3)*3-r;n++)i+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=String.fromCharCode(t[n]);i.length&&(i.length>2?e.data+=btoa(i):e.pending+=i)}getData(){return this.data+btoa(this.pending)}}class Ct extends _e{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const n=this,i=t+e;let a=await(t||i<n.size?n.blob.slice(t,i):n.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,i)),new Uint8Array(a)}}class ws extends Je{constructor(t){super();const e=this,n=new TransformStream,i=[];t&&i.push([na,t]),Object.defineProperty(e,Ot,{get(){return n.writable}}),e.blob=new Response(n.readable,{headers:i}).blob()}getData(){return this.blob}}class oa extends Ct{constructor(t){super(new Blob([t],{type:Ji}))}}class ca extends ws{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();if(n.text&&e)return n.text();{const i=new FileReader;return new Promise((r,a)=>{Object.assign(i,{onload:({target:o})=>r(o.result),onerror:()=>a(i.error)}),i.readAsText(n,t)})}}}class la extends _e{constructor(t,e){super(),gs(this,t,e)}async init(){await bs(this,_t,In),super.init()}readUint8Array(t,e){return ys(this,t,e,_t,In)}}class fa extends _e{constructor(t,e){super(),gs(this,t,e)}async init(){await bs(this,ht,Cn),super.init()}readUint8Array(t,e){return ys(this,t,e,ht,Cn)}}function gs(s,t,e){const{preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(s,{url:t,options:e,preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:a})}async function bs(s,t,e){const{url:n,preventHeadRequest:i,useRangeHeader:r,forceRangeRequests:a,combineSizeEocd:o}=s;if(ha(n)&&(r||a)&&(typeof i>"u"||i)){const l=await t(At,s,Es(s,o?-te:void 0));if(!a&&l.headers.get(ea)!=ms)throw new Error(Le);{o&&(s.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const d=l.headers.get(zi);if(d){const p=d.trim().split(/\s*\/\s*/);if(p.length){const b=p[1];b&&b!="*"&&(_=Number(b))}}_===j?await Nn(s,t,e):s.size=_}}else await Nn(s,t,e)}async function ys(s,t,e,n,i){const{useRangeHeader:r,forceRangeRequests:a,eocdCache:o,size:l,options:_}=s;if(r||a){if(o&&t==l-te&&e==te)return o;if(t>=l)return new Uint8Array;{t+e>l&&(e=l-t);const d=await n(At,s,Es(s,t,e));if(d.status!=206)throw new Error(Le);return new Uint8Array(await d.arrayBuffer())}}else{const{data:d}=s;return d||await i(s,_),new Uint8Array(s.data.subarray(t,t+e))}}function Es(s,t=0,e=1){return Object.assign({},Nt(s),{[ta]:ms+"="+(t<0?t:t+"-"+(t+e-1))})}function Nt({options:s}){const{headers:t}=s;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function In(s){await xs(s,_t)}async function Cn(s){await xs(s,ht)}async function xs(s,t){const e=await t(At,s,Nt(s));s.data=new Uint8Array(await e.arrayBuffer()),s.size||(s.size=s.data.length)}async function Nn(s,t,e){if(s.preventHeadRequest)await e(s,s.options);else{const i=(await t(sa,s,Nt(s))).headers.get(Qi);i?s.size=Number(i):await e(s,s.options)}}async function _t(s,{options:t,url:e},n){const i=await fetch(e,Object.assign({},t,{method:s,headers:n}));if(i.status<400)return i;throw i.status==416?new Error(Le):new Error(_s+(i.statusText||i.status))}function ht(s,{url:t},e){return new Promise((n,i)=>{const r=new XMLHttpRequest;if(r.addEventListener("load",()=>{if(r.status<400){const a=[];r.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),n({status:r.status,arrayBuffer:()=>r.response,headers:new Map(a)})}else i(r.status==416?new Error(Le):new Error(_s+(r.statusText||r.status)))},!1),r.addEventListener("error",a=>i(a.detail?a.detail.error:new Error("Network error")),!1),r.open(s,t),e)for(const a of Object.entries(e))r.setRequestHeader(a[0],a[1]);r.responseType="arraybuffer",r.send()})}class Ts extends _e{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new fa(t,e):new la(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class ua extends Ts{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class da extends _e{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class _a extends It{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const n=e.array;e.array=new Uint8Array(n.length+t.length),e.array.set(n)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class Dt extends _e{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(n,i)=>{await n.init(),i!=e.length-1&&(t.lastDiskOffset+=n.size),t.size+=n.size})),super.init()}async readUint8Array(t,e,n=0){const i=this,{readers:r}=this;let a,o=n;o==-1&&(o=r.length-1);let l=t;for(;r[o]&&l>=r[o].size;)l-=r[o].size,o++;const _=r[o];if(_){const d=_.size;if(l+e<=d)a=await G(_,l,e);else{const p=d-l;a=new Uint8Array(e);const b=await G(_,l,p);a.set(b,0);const R=await i.readUint8Array(t+p,e-p,n);a.set(R,p),b.length+R.length<e&&(a=a.subarray(0,b.length+R.length))}}else a=new Uint8Array;return i.lastDiskNumber=Math.max(o,i.lastDiskNumber),a}}class Ke extends Je{constructor(t,e=4294967295){super();const n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let i,r,a;const o=new WritableStream({async write(d){const{availableSize:p}=n;if(a)d.length>=p?(await l(d.subarray(0,p)),await _(),n.diskOffset+=i.size,n.diskNumber++,a=null,await this.write(d.subarray(p))):await l(d);else{const{value:b,done:R}=await t.next();if(R&&!b)throw new Error(hs);i=b,i.size=0,i.maxSize&&(n.maxSize=i.maxSize),n.availableSize=n.maxSize,await De(i),r=b.writable,a=r.getWriter(),await this.write(d)}},async close(){await a.ready,await _()}});Object.defineProperty(n,Ot,{get(){return o}});async function l(d){const p=d.length;p&&(await a.ready,await a.write(d),i.size+=p,n.size+=p,n.availableSize-=p)}async function _(){await a.close()}}}class Ss{constructor(t){return Array.isArray(t)&&(t=new Dt(t)),t instanceof ReadableStream&&(t={readable:t}),t}}class Rs{constructor(t){return t.writable===j&&typeof t.next==Pe&&(t=new Ke(t)),t instanceof WritableStream&&(t={writable:t}),t.size===j&&(t.size=0),t instanceof Ke||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}}function ha(s){const{baseURL:t}=Vn(),{protocol:e}=new URL(s,t);return e=="http:"||e=="https:"}async function De(s,t){if(s.init&&!s.initialized)await s.init(t);else return Promise.resolve()}function G(s,t,e,n){return s.readUint8Array(t,e,n)}const pa=Dt,ma=Ke,As="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),wa=As.length==256;function ga(s){if(wa){let t="";for(let e=0;e<s.length;e++)t+=As[s[e]];return t}else return new TextDecoder().decode(s)}function Ye(s,t){return t&&t.trim().toLowerCase()=="cp437"?ga(s):new TextDecoder(t).decode(s)}const Os="filename",Is="rawFilename",Cs="comment",Ns="rawComment",Ds="uncompressedSize",Ps="compressedSize",ks="offset",pt="diskNumberStart",mt="lastModDate",wt="rawLastModDate",Ls="lastAccessDate",ba="rawLastAccessDate",vs="creationDate",ya="rawCreationDate",Ea="internalFileAttribute",xa="internalFileAttributes",Ta="externalFileAttribute",Sa="externalFileAttributes",Ra="msDosCompatible",Aa="zip64",Oa="encrypted",Ia="version",Ca="versionMadeBy",Na="zipCrypto",Da="directory",Pa="executable",ka="compressionMethod",La="signature",va="extraField",Fa=[Os,Is,Ps,Ds,mt,wt,Cs,Ns,Ls,vs,ks,pt,pt,Ea,xa,Ta,Sa,Ra,Aa,Oa,Ia,Ca,Na,Da,Pa,ka,La,va,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Dn{constructor(t){Fa.forEach(e=>this[e]=t[e])}}const Ma="filenameEncoding",Ua="commentEncoding",Wa="decodeText",Ha="extractPrependedData",Ba="extractAppendedData",ja="password",Ga="rawPassword",Ya="passThrough",qa="signal",Va="checkPasswordOnly",Za="checkOverlappingEntryOnly",Ka="checkOverlappingEntry",Xa="checkSignature",$a="useWebWorkers",Ja="useCompressionStream",Qa="transferStreams",za="preventClose",qe="File format is not recognized",Fs="End of central directory not found",Ms="End of Zip64 central directory locator not found",Us="Central directory header not found",Ws="Local file header not found",Hs="Zip64 extra field not found",Bs="File contains encrypted entry",js="Encryption method not supported",gt="Compression method not supported",bt="Split zip file",Gs="Overlapping entry found",Pn="utf-8",kn="cp437",eo=[[Ds,pe],[Ps,pe],[ks,pe],[pt,le]],to={[le]:{getValue:W,bytes:4},[pe]:{getValue:ye,bytes:8}};class Ys{constructor(t,e={}){Object.assign(this,{reader:new Ss(t),options:e,config:Vn(),readRanges:[]})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;const{config:i}=e;if(await De(n),(n.size===j||!n.readUint8Array)&&(n=new Ct(await new Response(n.readable).blob()),await De(n)),n.size<te)throw new Error(qe);n.chunkSize=li(i);const r=await lo(n,jr,n.size,te,le*16);if(!r){const x=await G(n,0,4),y=B(x);throw W(y)==Yn?new Error(bt):new Error(Fs)}const a=B(r);let o=W(a,12),l=W(a,16);const _=r.offset,d=Y(a,20),p=_+te+d;let b=Y(a,4);const R=n.lastDiskNumber||0;let A=Y(a,6),f=Y(a,8),c=0,u=0;if(l==pe||o==pe||f==le||A==le){const x=await G(n,r.offset-nt,nt),y=B(x);if(W(y,0)==Gr){l=ye(y,8);let C=await G(n,l,st,-1),I=B(C);const k=r.offset-nt-st;if(W(I,0)!=ln&&l!=k){const P=l;l=k,l>P&&(c=l-P),C=await G(n,l,st,-1),I=B(C)}if(W(I,0)!=ln)throw new Error(Ms);b==le&&(b=W(I,16)),A==le&&(A=W(I,20)),f==le&&(f=ye(I,32)),o==pe&&(o=ye(I,40)),l-=o}}if(l>=n.size&&(c=n.size-l-o-te,l=n.size-o-te),R!=b)throw new Error(bt);if(l<0)throw new Error(qe);let g=0,m=await G(n,l,o,A),w=B(m);if(o){const x=r.offset-o;if(W(w,g)!=cn&&l!=x){const y=l;l=x,l>y&&(c+=l-y),m=await G(n,l,o,A),w=B(m)}}const S=r.offset-l-(n.lastDiskOffset||0);if(o!=S&&S>=0&&(o=S,m=await G(n,l,o,A),w=B(m)),l<0||l>=n.size)throw new Error(qe);const h=q(e,t,Ma),E=q(e,t,Ua);for(let x=0;x<f;x++){const y=new so(n,i,e.options);if(W(w,g)!=cn)throw new Error(Us);qs(y,w,g+6);const C=!!y.bitFlag.languageEncodingFlag,I=g+46,k=I+y.filenameLength,P=k+y.extraFieldLength,D=Y(w,g+4),M=D>>8==0,L=D>>8==3,V=m.subarray(I,k),N=Y(w,g+32),J=P+N,F=m.subarray(P,J),U=C,ve=C,xe=W(w,g+38),ee=M&&(be(w,g+38)&hn)==hn||L&&(xe>>16&ti)==ni||V.length&&V.at(-1)==pn.charCodeAt(0),Q=L&&(xe>>16&si)!=0,Pt=W(w,g+42)+c;Object.assign(y,{versionMadeBy:D,msDosCompatible:M,compressedSize:0,uncompressedSize:0,commentLength:N,directory:ee,offset:Pt,diskNumberStart:Y(w,g+34),internalFileAttributes:Y(w,g+36),externalFileAttributes:xe,rawFilename:V,filenameUTF8:U,commentUTF8:ve,rawExtraField:m.subarray(k,P),executable:Q}),y.internalFileAttribute=y.internalFileAttributes,y.externalFileAttribute=y.externalFileAttributes;const kt=q(e,t,Wa)||Ye,Lt=U?Pn:h||kn,vt=ve?Pn:E||kn;let Fe=kt(V,Lt);Fe===j&&(Fe=Ye(V,Lt));let Qe=kt(F,vt);Qe===j&&(Qe=Ye(F,vt)),Object.assign(y,{rawComment:F,filename:Fe,comment:Qe,directory:ee||Fe.endsWith(pn)}),u=Math.max(Pt,u),Vs(y,y,w,g+6),y.zipCrypto=y.encrypted&&!y.extraFieldAES;const Te=new Dn(y);Te.getData=(Me,Ue)=>y.getData(Me,Te,e.readRanges,Ue),Te.arrayBuffer=async Me=>{const Ue=new TransformStream,[Ks]=await Promise.all([new Response(Ue.readable).arrayBuffer(),y.getData(Ue,Te,e.readRanges,Me)]);return Ks},g=J;const{onprogress:Ft}=t;if(Ft)try{await Ft(x+1,f,new Dn(y))}catch{}yield Te}const T=q(e,t,Ha),O=q(e,t,Ba);return T&&(e.prependedData=u>0?await G(n,0,u):new Uint8Array),e.comment=d?await G(n,_+te,d):new Uint8Array,O&&(e.appendedData=p<n.size?await G(n,p,n.size-p):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class no{constructor(t={}){const{readable:e,writable:n}=new TransformStream,i=new Ys(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(r){const{done:a,value:o}=await i.next();if(a)return r.close();const l={...o,readable:(function(){const{readable:_,writable:d}=new TransformStream;if(o.getData)return o.getData(d),_})()};delete l.getData,r.enqueue(l)}}),this.writable=n}}class so{constructor(t,e,n){Object.assign(this,{reader:t,config:e,options:n})}async getData(t,e,n,i={}){const r=this,{reader:a,offset:o,diskNumberStart:l,extraFieldAES:_,extraFieldZip64:d,compressionMethod:p,config:b,bitFlag:R,signature:A,rawLastModDate:f,uncompressedSize:c,compressedSize:u}=r,{dataDescriptor:g}=R,m=e.localDirectory={},w=await G(a,o,rt,l),S=B(w);let h=q(r,i,ja),E=q(r,i,Ga);const T=q(r,i,Ya);if(h=h&&h.length&&h,E=E&&E.length&&E,_&&_.originalCompressionMethod!=Wr)throw new Error(gt);if(p!=Ur&&p!=Mr&&!T)throw new Error(gt);if(W(S,0)!=Hr)throw new Error(Ws);qs(m,S,4);const{extraFieldLength:O,filenameLength:x,lastAccessDate:y,creationDate:C}=m;m.rawExtraField=O?await G(a,o+rt+x,O,l):new Uint8Array,Vs(r,m,S,4,!0),Object.assign(e,{lastAccessDate:y,creationDate:C});const I=r.encrypted&&m.encrypted&&!T,k=I&&!_;if(T||(e.zipCrypto=k),I){if(!k&&_.strength===j)throw new Error(js);if(!h&&!E)throw new Error(Bs)}const P=o+rt+x+O,D=u,M=a.readable;Object.assign(M,{diskNumberStart:l,offset:P,size:D});const L=q(r,i,qa),V=q(r,i,Va);let N=q(r,i,Ka);const J=q(r,i,Za);J&&(N=!0);const{onstart:F,onprogress:U,onend:ve}=i,xe={options:{codecType:fs,password:h,rawPassword:E,zipCrypto:k,encryptionStrength:_&&_.strength,signed:q(r,i,Xa)&&!T,passwordVerification:k&&(g?f>>>8&255:A>>>24&255),outputSize:c,signature:A,compressed:p!=0&&!T,encrypted:r.encrypted&&!T,useWebWorkers:q(r,i,$a),useCompressionStream:q(r,i,Ja),transferStreams:q(r,i,Qa),checkPasswordOnly:V},config:b,streamOptions:{signal:L,size:D,onstart:F,onprogress:U,onend:ve}};N&&await co({reader:a,fileEntry:e,offset:o,diskNumberStart:l,signature:A,compressedSize:u,uncompressedSize:c,dataOffset:P,dataDescriptor:g||m.bitFlag.dataDescriptor,extraFieldZip64:d||m.extraFieldZip64,readRanges:n});let ee;try{if(!J){V&&(t=new WritableStream),t=new Rs(t),await De(t,T?u:c),{writable:ee}=t;const{outputSize:Q}=await Ki({readable:M,writable:ee},xe);if(t.size+=Q,Q!=(T?u:c))throw new Error(Rt)}}catch(Q){if(Q.outputSize!==j&&(t.size+=Q.outputSize),!V||Q.message!=xt)throw Q}finally{!q(r,i,za)&&ee&&!ee.locked&&await ee.getWriter().close()}return V||J?j:t.getData?t.getData():ee}}function qs(s,t,e){const n=s.rawBitFlag=Y(t,e+2),i=(n&un)==un,r=W(t,e+6);Object.assign(s,{encrypted:i,version:Y(t,e),bitFlag:{level:(n&ei)>>1,dataDescriptor:(n&dn)==dn,languageEncodingFlag:(n&_n)==_n},rawLastModDate:r,lastModDate:fo(r),filenameLength:Y(t,e+22),extraFieldLength:Y(t,e+24)})}function Vs(s,t,e,n,i){const{rawExtraField:r}=t,a=t.extraField=new Map,o=B(new Uint8Array(r));let l=0;try{for(;l<r.length;){const u=Y(o,l),g=Y(o,l+2);a.set(u,{type:u,data:r.slice(l+4,l+4+g)}),l+=4+g}}catch{}const _=Y(e,n+4);Object.assign(t,{signature:W(e,n+ri),compressedSize:W(e,n+ii),uncompressedSize:W(e,n+ai)});const d=a.get(Vr);d&&(ro(d,t),t.extraFieldZip64=d);const p=a.get(Jr);p&&(Ln(p,Os,Is,t,s),t.extraFieldUnicodePath=p);const b=a.get(Qr);b&&(Ln(b,Cs,Ns,t,s),t.extraFieldUnicodeComment=b);const R=a.get(Zr);R?(io(R,t,_),t.extraFieldAES=R):t.compressionMethod=_;const A=a.get(Kr);A&&(ao(A,t),t.extraFieldNTFS=A);const f=a.get($r);f&&(oo(f,t,i),t.extraFieldExtendedTimestamp=f);const c=a.get(zr);c&&(t.extraFieldUSDZ=c)}function ro(s,t){t.zip64=!0;const e=B(s.data),n=eo.filter(([i,r])=>t[i]==r);for(let i=0,r=0;i<n.length;i++){const[a,o]=n[i];if(t[a]==o){const l=to[o];t[a]=s[a]=l.getValue(e,r),r+=l.bytes}else if(s[a])throw new Error(Hs)}}function Ln(s,t,e,n,i){const r=B(s.data),a=new Ve;a.append(i[e]);const o=B(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=W(r,1);Object.assign(s,{version:be(r,0),[t]:Ye(s.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==W(o,0)}),s.valid&&(n[t]=s[t],n[t+"UTF8"]=!0)}function io(s,t,e){const n=B(s.data),i=be(n,4);Object.assign(s,{vendorVersion:be(n,0),vendorId:be(n,2),strength:i,originalCompressionMethod:e,compressionMethod:Y(n,5)}),t.compressionMethod=s.compressionMethod}function ao(s,t){const e=B(s.data);let n=4,i;try{for(;n<s.data.length&&!i;){const r=Y(e,n),a=Y(e,n+2);r==Xr&&(i=s.data.slice(n+4,n+4+a)),n+=4+a}}catch{}try{if(i&&i.length==24){const r=B(i),a=r.getBigUint64(0,!0),o=r.getBigUint64(8,!0),l=r.getBigUint64(16,!0);Object.assign(s,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=ct(a),d=ct(o),p=ct(l),b={lastModDate:_,lastAccessDate:d,creationDate:p};Object.assign(s,b),Object.assign(t,b)}}catch{}}function oo(s,t,e){const n=B(s.data),i=be(n,0),r=[],a=[];e?((i&1)==1&&(r.push(mt),a.push(wt)),(i&2)==2&&(r.push(Ls),a.push(ba)),(i&4)==4&&(r.push(vs),a.push(ya))):s.data.length>=5&&(r.push(mt),a.push(wt));let o=1;r.forEach((l,_)=>{if(s.data.length>=o+4){const d=W(n,o);t[l]=s[l]=new Date(d*1e3);const p=a[_];s[p]=d}o+=4})}async function co({reader:s,fileEntry:t,offset:e,diskNumberStart:n,signature:i,compressedSize:r,uncompressedSize:a,dataOffset:o,dataDescriptor:l,extraFieldZip64:_,readRanges:d}){let p=0;if(n)for(let A=0;A<n;A++){const f=s.readers[A];p+=f.size}let b=0;if(l&&(_?b=qr:b=Yr),b){const A=await G(s,o+r,b+fn,n);if(W(B(A),0)==Br){const c=W(B(A),4);let u,g;_?(u=ye(B(A),8),g=ye(B(A),16)):(u=W(B(A),8),g=W(B(A),12)),(t.encrypted&&!t.zipCrypto||c==i)&&u==r&&g==a&&(b+=fn)}}const R={start:p+e,end:p+o+r+b,fileEntry:t};for(const A of d)if(A.fileEntry!=t&&R.start>=A.start&&R.start<A.end){const f=new Error(Gs);throw f.overlappingEntry=A.fileEntry,f}d.push(R)}async function lo(s,t,e,n,i){const r=new Uint8Array(4),a=B(r);uo(a,0,t);const o=n+i;return await l(n)||await l(Math.min(o,e));async function l(_){const d=e-_,p=await G(s,d,_);for(let b=p.length-n;b>=0;b--)if(p[b]==r[0]&&p[b+1]==r[1]&&p[b+2]==r[2]&&p[b+3]==r[3])return{offset:d+b,buffer:p.slice(b,b+n).buffer}}}function q(s,t,e){return t[e]===j?s.options[e]:t[e]}function fo(s){const t=(s&4294901760)>>16,e=s&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function ct(s){return new Date(Number(s/BigInt(1e4)-BigInt(116444736e5)))}function be(s,t){return s.getUint8(t)}function Y(s,t){return s.getUint16(t,!0)}function W(s,t){return s.getUint32(t,!0)}function ye(s,t){return Number(s.getBigUint64(t,!0))}function uo(s,t,e){s.setUint32(t,e,!0)}function B(s){return new DataView(s.buffer)}Zn({Inflate:Fr});const _o=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Ct,BlobWriter:ws,Data64URIReader:ia,Data64URIWriter:aa,ERR_BAD_FORMAT:qe,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Us,ERR_ENCRYPTED:Bs,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ms,ERR_EOCDR_NOT_FOUND:Fs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Hs,ERR_HTTP_RANGE:Le,ERR_INVALID_PASSWORD:yt,ERR_INVALID_SIGNATURE:Et,ERR_INVALID_UNCOMPRESSED_SIZE:Rt,ERR_ITERATOR_COMPLETED_TOO_SOON:hs,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Ws,ERR_OVERLAPPING_ENTRY:Gs,ERR_SPLIT_ZIP_FILE:bt,ERR_UNSUPPORTED_COMPRESSION:gt,ERR_UNSUPPORTED_ENCRYPTION:js,ERR_WRITER_NOT_INITIALIZED:ps,GenericReader:Ss,GenericWriter:Rs,HttpRangeReader:ua,HttpReader:Ts,Reader:_e,SplitDataReader:Dt,SplitDataWriter:Ke,SplitZipReader:pa,SplitZipWriter:ma,TextReader:oa,TextWriter:ca,Uint8ArrayReader:da,Uint8ArrayWriter:_a,Writer:It,ZipReader:Ys,ZipReaderStream:no,configure:Zn,getMimeType:fi,initStream:De,readUint8Array:G,terminateWorkers:$i},Symbol.toStringTag,{value:"Module"})),Ae=_o;class ho{constructor(t,e){Ae.configure({baseURL:self.location.href}),this._zipReader=new Ae.ZipReader(new Ae.HttpReader(this._resolveTraceURI(t),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:e}).then(n=>{const i=new Map;for(const r of n)i.set(r.filename,r);return i})}_resolveTraceURI(t){return t.startsWith("https://www.dropbox.com/")?"https://dl.dropboxusercontent.com/"+t.substring(24):t}isLive(){return!1}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var r;const n=(await this._entriesPromise).get(t);if(!n)return;const i=new Ae.TextWriter;return await((r=n.getData)==null?void 0:r.call(n,i)),i.getData()}async readBlob(t){const n=(await this._entriesPromise).get(t);if(!n)return;const i=new Ae.BlobWriter;return await n.getData(i),i.getData()}}class po{constructor(t){this._entriesPromise=this._readFile(t).then(async e=>{if(!e)throw new Error("File not found");const n=await e.json(),i=new Map;for(const r of n.entries)i.set(r.name,r.path);return i})}isLive(){return!0}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const n=(await this._entriesPromise).get(t);if(n)return this._readFile(n)}async _readFile(t){const e=await fetch(t);if(e.status!==404)return e}}self.addEventListener("install",function(s){self.skipWaiting()});self.addEventListener("activate",function(s){s.waitUntil(self.clients.claim())});const mo=new URL(self.registration.scope).pathname,Ee=new Map,Xe=new Map,vn=self.registration.scope.startsWith("https://");function wo(){Ee.clear(),Xe.clear()}async function Fn(s,t,e){try{return{loadedTrace:await Zs(s,t,e)}}catch(n){return{errorResponse:new Response(JSON.stringify({error:n==null?void 0:n.message}),{status:500,headers:{"Content-Type":"application/json"}})}}}function Zs(s,t,e){const n=t.searchParams.get("trace");if(!n)throw new Error("trace parameter is missing");Xe.set(s,n);const i=Ee.get(n);if(i)return i;const r=go(n,e);return Ee.set(n,r),r.catch(()=>Ee.delete(n)),r}async function go(s,t){var i;await Eo();const e=new hr;try{const[r,a]=mr(t,[.5,.4,.1]),o=To(s)||s.endsWith("traces.dir")?new po(s):new ho(s,r);await e.load(o,a)}catch(r){if(console.error(r),(i=r==null?void 0:r.message)!=null&&i.includes("Cannot find .trace file")&&await e.hasEntry("index.html"))throw new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server.");if(r instanceof Bn)throw new Error(`Could not load trace from ${s}. ${r.message}`);let a=`Could not load trace from ${s}. Make sure a valid Playwright Trace is accessible over this url.`;const o=await navigator.permissions.query({name:"local-network-access"}).catch(()=>{});throw o&&o.state!=="granted"&&(a+=`
|
|
4
|
+
|
|
5
|
+
If your trace is in a local or private network, please grant permission for Local Network Access.`),new Error(a)}const n=new Xs(e.storage(),r=>e.resourceForSha1(r));return{traceLoader:e,snapshotServer:n}}async function bo(s){const t=s.request;if(t.url.startsWith("chrome-extension://"))return fetch(t);const e=new URL(t.url);let n;if(t.url.startsWith(self.registration.scope)&&(n=e.pathname.substring(mo.length-1)),n==="/restartServiceWorker")return wo(),new Response(null,{status:200});if(n==="/ping")return new Response(null,{status:200});const i=!!s.resultingClientId,r=s.clientId?await self.clients.get(s.clientId):void 0;if(i&&!(n!=null&&n.startsWith("/sha1/"))){if(n!=null&&n.startsWith("/snapshot/")){const{errorResponse:a,loadedTrace:o}=await Fn(s.resultingClientId,e,xo);if(a)return a;const l=n.substring(10),_=o.snapshotServer.serveSnapshot(l,e.searchParams,e.href);return vn&&_.headers.set("Content-Security-Policy","upgrade-insecure-requests"),_}return fetch(s.request)}if(!n){if(!r)return new Response("Sub-resource without a client",{status:500});const{snapshotServer:a}=await Zs(r.id,new URL(r.url),Mn(r));if(!a)return new Response(null,{status:404});const o=[t.url];return vn&&t.url.startsWith("https://")&&o.push(t.url.replace(/^https/,"http")),a.serveResource(o,t.method,r.url)}if(n==="/contexts"||n.startsWith("/snapshotInfo/")||n.startsWith("/closest-screenshot/")||n.startsWith("/sha1/")){if(!r)return new Response("Sub-resource without a client",{status:500});const{errorResponse:a,loadedTrace:o}=await Fn(r.id,e,Mn(r));if(a)return a;if(n==="/contexts")return new Response(JSON.stringify(o.traceLoader.contextEntries),{status:200,headers:{"Content-Type":"application/json"}});if(n.startsWith("/snapshotInfo/")){const l=n.substring(14);return o.snapshotServer.serveSnapshotInfo(l,e.searchParams)}if(n.startsWith("/closest-screenshot/")){const l=n.substring(20);return o.snapshotServer.serveClosestScreenshot(l,e.searchParams)}if(n.startsWith("/sha1/")){const l=await o.traceLoader.resourceForSha1(n.slice(6));return l?new Response(l,{status:200,headers:yo(e.searchParams)}):new Response(null,{status:404})}}return fetch(s.request)}function yo(s){const t=s.get("dn"),e=s.get("dct");if(!t)return;const n=new Headers;return n.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&n.set("Content-Type",e),n}async function Eo(){const s=await self.clients.matchAll(),t=new Set;for(const[e,n]of Xe){if(!s.find(i=>i.id===e)){Xe.delete(e);continue}t.add(n)}for(const e of Ee.keys())t.has(e)||Ee.delete(e)}function Mn(s){return(t,e)=>{s.postMessage({method:"progress",params:{done:t,total:e}})}}function xo(s,t){}function To(s){const e=new URL(s,"http://localhost").searchParams.get("path");return!!(e!=null&&e.endsWith(".json"))}self.addEventListener("fetch",function(s){if(s.request.headers.get("x-pw-serviceworker")==="skip")return!1;s.respondWith(bo(s))});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/xtermModule-CsJ4vdCR.js","./xtermModule.DYP7pi_n.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{u as Vt,r as H,g as $t,_ as Ht,h as qt,i as Yt,j as n,R as d,E as Qt,s as Et,k as _t,l as Xt,t as Jt,m as Zt,n as q,o as F,T as Rt,c as Gt,p as G,a as te,W as ee,S as se,q as ie,b as oe,e as ne,f as re}from"./assets/defaultSettingsView-ConrJv9G.js";var ae={};class gt{constructor(t,e={}){this.isListing=!1,this._tests=new Map,this._rootSuite=new tt("","root"),this._options=e,this._reporter=t}reset(){this._rootSuite._entries=[],this._tests.clear()}dispatch(t){const{method:e,params:s}=t;if(e==="onConfigure"){this._onConfigure(s.config);return}if(e==="onProject"){this._onProject(s.project);return}if(e==="onBegin"){this._onBegin();return}if(e==="onTestBegin"){this._onTestBegin(s.testId,s.result);return}if(e==="onTestPaused"){this._onTestPaused(s.testId,s.resultId,s.errors);return}if(e==="onTestEnd"){this._onTestEnd(s.test,s.result);return}if(e==="onStepBegin"){this._onStepBegin(s.testId,s.resultId,s.step);return}if(e==="onAttach"){this._onAttach(s.testId,s.resultId,s.attachments);return}if(e==="onStepEnd"){this._onStepEnd(s.testId,s.resultId,s.step);return}if(e==="onError"){this._onError(s.error);return}if(e==="onStdIO"){this._onStdIO(s.type,s.testId,s.resultId,s.data,s.isBase64);return}if(e==="onEnd")return this._onEnd(s.result);if(e==="onExit")return this._onExit()}_onConfigure(t){var e,s;this._rootDir=t.rootDir,this._config=this._parseConfig(t),(s=(e=this._reporter).onConfigure)==null||s.call(e,this._config)}_onProject(t){let e=this._options.mergeProjects?this._rootSuite.suites.find(a=>a.project().name===t.name):void 0;e||(e=new tt(t.name,"project"),this._rootSuite._addSuite(e));const s=this._parseProject(t);e._project=s;let i=-1;this._options.mergeProjects&&(i=this._config.projects.findIndex(a=>a.name===t.name)),i===-1?this._config.projects.push(s):this._config.projects[i]=s;for(const a of t.suites)this._mergeSuiteInto(a,e)}_onBegin(){var t,e;(e=(t=this._reporter).onBegin)==null||e.call(t,this._rootSuite)}_onTestBegin(t,e){var a,r;const s=this._tests.get(t);this._options.clearPreviousResultsWhenTestBegins&&(s.results=[]);const i=s._createTestResult(e.id);i.retry=e.retry,i.workerIndex=e.workerIndex,i.parallelIndex=e.parallelIndex,i.setStartTimeNumber(e.startTime),(r=(a=this._reporter).onTestBegin)==null||r.call(a,s,i)}_onTestPaused(t,e,s){var r,_;const i=this._tests.get(t),a=i.results.find(c=>c._id===e);a.errors.push(...s),a.error=a.errors[0],(_=(r=this._reporter).onTestPaused)==null||_.call(r,i,a)}_onTestEnd(t,e){var a,r;const s=this._tests.get(t.testId);s.timeout=t.timeout,s.expectedStatus=t.expectedStatus;const i=s.results.find(_=>_._id===e.id);i.duration=e.duration,i.status=e.status,i.errors.push(...e.errors??[]),i.error=i.errors[0],e.attachments&&(i.attachments=this._parseAttachments(e.attachments)),e.annotations&&(this._absoluteAnnotationLocationsInplace(e.annotations),i.annotations=e.annotations,s.annotations=e.annotations),(r=(a=this._reporter).onTestEnd)==null||r.call(a,s,i),i._stepMap=new Map}_onStepBegin(t,e,s){var p,l;const i=this._tests.get(t),a=i.results.find(w=>w._id===e),r=s.parentStepId?a._stepMap.get(s.parentStepId):void 0,_=this._absoluteLocation(s.location),c=new ce(s,r,_,a);r?r.steps.push(c):a.steps.push(c),a._stepMap.set(s.id,c),(l=(p=this._reporter).onStepBegin)==null||l.call(p,i,a,c)}_onStepEnd(t,e,s){var _,c;const i=this._tests.get(t),a=i.results.find(p=>p._id===e),r=a._stepMap.get(s.id);r._endPayload=s,r.duration=s.duration,r.error=s.error,(c=(_=this._reporter).onStepEnd)==null||c.call(_,i,a,r)}_onAttach(t,e,s){this._tests.get(t).results.find(r=>r._id===e).attachments.push(...s.map(r=>({name:r.name,contentType:r.contentType,path:r.path,body:r.base64&&globalThis.Buffer?Buffer.from(r.base64,"base64"):void 0})))}_onError(t){var e,s;(s=(e=this._reporter).onError)==null||s.call(e,t)}_onStdIO(t,e,s,i,a){var p,l,w,x;const r=a?globalThis.Buffer?Buffer.from(i,"base64"):atob(i):i,_=e?this._tests.get(e):void 0,c=_&&s?_.results.find(h=>h._id===s):void 0;t==="stdout"?(c==null||c.stdout.push(r),(l=(p=this._reporter).onStdOut)==null||l.call(p,r,_,c)):(c==null||c.stderr.push(r),(x=(w=this._reporter).onStdErr)==null||x.call(w,r,_,c))}async _onEnd(t){var e,s;await((s=(e=this._reporter).onEnd)==null?void 0:s.call(e,fe(t)))}_onExit(){var t,e;return(e=(t=this._reporter).onExit)==null?void 0:e.call(t)}_parseConfig(t){const e=pe(t);return this._options.configOverrides&&(e.configFile=this._options.configOverrides.configFile,e.reportSlowTests=this._options.configOverrides.reportSlowTests,e.quiet=this._options.configOverrides.quiet,e.reporter=[...this._options.configOverrides.reporter]),e}_parseProject(t){return{metadata:t.metadata,name:t.name,outputDir:this._absolutePath(t.outputDir),repeatEach:t.repeatEach,retries:t.retries,testDir:this._absolutePath(t.testDir),testIgnore:ct(t.testIgnore),testMatch:ct(t.testMatch),timeout:t.timeout,grep:ct(t.grep),grepInvert:ct(t.grepInvert),dependencies:t.dependencies,teardown:t.teardown,snapshotDir:this._absolutePath(t.snapshotDir),ignoreSnapshots:t.ignoreSnapshots??!1,use:t.use}}_parseAttachments(t){return t.map(e=>({...e,body:e.base64&&globalThis.Buffer?Buffer.from(e.base64,"base64"):void 0}))}_mergeSuiteInto(t,e){let s=e.suites.find(i=>i.title===t.title);s||(s=new tt(t.title,e.type==="project"?"file":"describe"),e._addSuite(s)),s.location=this._absoluteLocation(t.location),t.entries.forEach(i=>{"testId"in i?this._mergeTestInto(i,s):this._mergeSuiteInto(i,s)})}_mergeTestInto(t,e){let s=this._options.mergeTestCases?e.tests.find(i=>i.title===t.title&&i.repeatEachIndex===t.repeatEachIndex):void 0;s||(s=new le(t.testId,t.title,this._absoluteLocation(t.location),t.repeatEachIndex),e._addTest(s),this._tests.set(s.id,s)),this._updateTest(t,s)}_updateTest(t,e){return e.id=t.testId,e.location=this._absoluteLocation(t.location),e.retries=t.retries,e.tags=t.tags??[],e.annotations=t.annotations??[],this._absoluteAnnotationLocationsInplace(e.annotations),e}_absoluteAnnotationLocationsInplace(t){for(const e of t)e.location&&(e.location=this._absoluteLocation(e.location))}_absoluteLocation(t){return t&&{...t,file:this._absolutePath(t.file)}}_absolutePath(t){if(t!==void 0)return this._options.resolvePath?this._options.resolvePath(this._rootDir,t):this._rootDir+"/"+t}}class tt{constructor(t,e){this._entries=[],this._requireFile="",this._parallelMode="none",this.title=t,this._type=e}get type(){return this._type}get suites(){return this._entries.filter(t=>t.type!=="test")}get tests(){return this._entries.filter(t=>t.type==="test")}entries(){return this._entries}allTests(){const t=[],e=s=>{for(const i of s.entries())i.type==="test"?t.push(i):e(i)};return e(this),t}titlePath(){const t=this.parent?this.parent.titlePath():[];return(this.title||this._type!=="describe")&&t.push(this.title),t}project(){var t;return this._project??((t=this.parent)==null?void 0:t.project())}_addTest(t){t.parent=this,this._entries.push(t)}_addSuite(t){t.parent=this,this._entries.push(t)}}class le{constructor(t,e,s,i){this.fn=()=>{},this.results=[],this.type="test",this.expectedStatus="passed",this.timeout=0,this.annotations=[],this.retries=0,this.tags=[],this.repeatEachIndex=0,this.id=t,this.title=e,this.location=s,this.repeatEachIndex=i}titlePath(){const t=this.parent?this.parent.titlePath():[];return t.push(this.title),t}outcome(){return he(this)}ok(){const t=this.outcome();return t==="expected"||t==="flaky"||t==="skipped"}_createTestResult(t){const e=new de(this.results.length,t);return this.results.push(e),e}}class ce{constructor(t,e,s,i){this.duration=-1,this.steps=[],this._startTime=0,this.title=t.title,this.category=t.category,this.location=s,this.parent=e,this._startTime=t.startTime,this._result=i}titlePath(){var e;return[...((e=this.parent)==null?void 0:e.titlePath())||[],this.title]}get startTime(){return new Date(this._startTime)}set startTime(t){this._startTime=+t}get attachments(){var t,e;return((e=(t=this._endPayload)==null?void 0:t.attachments)==null?void 0:e.map(s=>this._result.attachments[s]))??[]}get annotations(){var t;return((t=this._endPayload)==null?void 0:t.annotations)??[]}}class de{constructor(t,e){this.parallelIndex=-1,this.workerIndex=-1,this.duration=-1,this.stdout=[],this.stderr=[],this.attachments=[],this.annotations=[],this.status="skipped",this.steps=[],this.errors=[],this._stepMap=new Map,this._startTime=0,this.retry=t,this._id=e}setStartTimeNumber(t){this._startTime=t}get startTime(){return new Date(this._startTime)}set startTime(t){this._startTime=+t}}const ue={forbidOnly:!1,fullyParallel:!1,globalSetup:null,globalTeardown:null,globalTimeout:0,grep:/.*/,grepInvert:null,maxFailures:0,metadata:{},preserveOutput:"always",projects:[],reporter:[[ae.CI?"dot":"list"]],reportSlowTests:{max:5,threshold:3e5},configFile:"",rootDir:"",quiet:!1,shard:null,tags:[],updateSnapshots:"missing",updateSourceMethod:"patch",version:"",workers:0,webServer:null};function ct(o){return o.map(t=>t.s!==void 0?t.s:new RegExp(t.r.source,t.r.flags))}function he(o){let t=0,e=0,s=0;for(const i of o.results)i.status==="interrupted"||(i.status==="skipped"&&o.expectedStatus==="skipped"?++t:i.status==="skipped"||(i.status===o.expectedStatus?++e:++s));return e===0&&s===0?"skipped":s===0?"expected":e===0&&t===0?"unexpected":"flaky"}function fe(o){return{status:o.status,startTime:new Date(o.startTime),duration:o.duration}}function pe(o){return{...ue,...o}}class mt{constructor(t,e,s,i,a,r){this._treeItemById=new Map,this._treeItemByTestId=new Map;const _=i&&[...i.values()].some(Boolean);this.pathSeparator=a,this.rootItem={kind:"group",subKind:"folder",id:t,title:"",location:{file:"",line:0,column:0},duration:0,parent:void 0,children:[],status:"none",hasLoadErrors:!1},this._treeItemById.set(t,this.rootItem);const c=(p,l,w,x)=>{for(const h of x==="tests"?[]:l.suites){if(!h.title){c(p,h,w,"all");continue}let I=w.children.find(u=>u.kind==="group"&&u.title===h.title);I||(I={kind:"group",subKind:"describe",id:"suite:"+l.titlePath().join("")+""+h.title,title:h.title,location:h.location,duration:0,parent:w,children:[],status:"none",hasLoadErrors:!1},this._addChild(w,I)),c(p,h,I,"all")}for(const h of x==="suites"?[]:l.tests){const I=h.title;let u=w.children.find(E=>E.kind!=="group"&&E.title===I);u||(u={kind:"case",id:"test:"+h.titlePath().join(""),title:I,parent:w,children:[],tests:[],location:h.location,duration:0,status:"none",project:void 0,test:void 0,tags:h.tags},this._addChild(w,u));const b=h.results[0];let S="none";(b==null?void 0:b[et])==="scheduled"?S="scheduled":(b==null?void 0:b[et])==="running"?S="running":(b==null?void 0:b.status)==="skipped"?S="skipped":(b==null?void 0:b.status)==="interrupted"?S="none":b&&h.outcome()!=="expected"?S="failed":b&&h.outcome()==="expected"&&(S="passed"),u.tests.push(h);const j={kind:"test",id:h.id,title:p.name,location:h.location,test:h,parent:u,children:[],status:S,duration:h.results.length?Math.max(0,h.results[0].duration):0,project:p};this._addChild(u,j),this._treeItemByTestId.set(h.id,j),u.duration=u.children.reduce((E,y)=>E+y.duration,0)}};for(const p of(e==null?void 0:e.suites)||[])if(!(_&&!i.get(p.title)))for(const l of p.suites)if(r){if(c(p.project(),l,this.rootItem,"suites"),l.tests.length){const w=this._defaultDescribeItem();c(p.project(),l,w,"tests")}}else{const w=this._fileItem(l.location.file.split(a),!0);c(p.project(),l,w,"all")}for(const p of s){if(!p.location)continue;const l=this._fileItem(p.location.file.split(a),!0);l.hasLoadErrors=!0}}_addChild(t,e){t.children.push(e),e.parent=t,this._treeItemById.set(e.id,e)}filterTree(t,e,s){const i=t.trim().toLowerCase().split(" "),a=[...e.values()].some(Boolean),r=c=>{const p=[...c.tests[0].titlePath(),...c.tests[0].tags].join(" ").toLowerCase();return!i.every(l=>p.includes(l))&&!c.tests.some(l=>s==null?void 0:s.has(l.id))?!1:(c.children=c.children.filter(l=>!a||(s==null?void 0:s.has(l.test.id))||e.get(l.status)),c.tests=c.children.map(l=>l.test),!!c.children.length)},_=c=>{const p=[];for(const l of c.children)l.kind==="case"?r(l)&&p.push(l):(_(l),(l.children.length||l.hasLoadErrors)&&p.push(l));c.children=p};_(this.rootItem)}_fileItem(t,e){if(t.length===0)return this.rootItem;const s=t.join(this.pathSeparator),i=this._treeItemById.get(s);if(i)return i;const a=this._fileItem(t.slice(0,t.length-1),!1),r={kind:"group",subKind:e?"file":"folder",id:s,title:t[t.length-1],location:{file:s,line:0,column:0},duration:0,parent:a,children:[],status:"none",hasLoadErrors:!1};return this._addChild(a,r),r}_defaultDescribeItem(){let t=this._treeItemById.get("<anonymous>");return t||(t={kind:"group",subKind:"describe",id:"<anonymous>",title:"<anonymous>",location:{file:"",line:0,column:0},duration:0,parent:this.rootItem,children:[],status:"none",hasLoadErrors:!1},this._addChild(this.rootItem,t)),t}sortAndPropagateStatus(){Ct(this.rootItem)}flattenForSingleProject(){const t=e=>{e.kind==="case"&&e.children.length===1?(e.project=e.children[0].project,e.test=e.children[0].test,e.children=[],this._treeItemByTestId.set(e.test.id,e)):e.children.forEach(t)};t(this.rootItem)}shortenRoot(){let t=this.rootItem;for(;t.children.length===1&&t.children[0].kind==="group"&&t.children[0].subKind==="folder";)t=t.children[0];t.location=this.rootItem.location,this.rootItem=t}fileNames(){const t=new Set,e=s=>{s.kind==="group"&&s.subKind==="file"?t.add(s.id):s.children.forEach(e)};return e(this.rootItem),[...t]}flatTreeItems(){const t=[],e=s=>{t.push(s),s.children.forEach(e)};return e(this.rootItem),t}treeItemById(t){return this._treeItemById.get(t)}collectTestIds(t){return ge(t)}}function Ct(o){for(const r of o.children)Ct(r);o.kind==="group"&&o.children.sort((r,_)=>r.location.file.localeCompare(_.location.file)||r.location.line-_.location.line);let t=o.children.length>0,e=o.children.length>0,s=!1,i=!1,a=!1;for(const r of o.children)e=e&&r.status==="skipped",t=t&&(r.status==="passed"||r.status==="skipped"),s=s||r.status==="failed",i=i||r.status==="running",a=a||r.status==="scheduled";i?o.status="running":a?o.status="scheduled":s?o.status="failed":e?o.status="skipped":t&&(o.status="passed")}function ge(o){const t=new Set,e=new Set,s=i=>{if(i.kind!=="test"&&i.kind!=="case"){i.children.forEach(s);return}let a=i;for(;a&&a.parent&&!(a.kind==="group"&&a.subKind==="file");)a=a.parent;e.add(a.location.file),i.kind==="case"?i.tests.forEach(r=>t.add(r.id)):t.add(i.id)};return s(o),{testIds:t,locations:e}}const et=Symbol("statusEx");class me{constructor(t){this.loadErrors=[],this.progress={total:0,passed:0,failed:0,skipped:0},this._lastRunTestCount=0,this._receiver=new gt(this._createReporter(),{mergeProjects:!0,mergeTestCases:!0,resolvePath:kt(t.pathSeparator),clearPreviousResultsWhenTestBegins:!0}),this._options=t}_createReporter(){return{version:()=>"v2",onConfigure:t=>{this.config=t,this._lastRunReceiver=new gt({version:()=>"v2",onBegin:e=>{this._lastRunTestCount=e.allTests().length,this._lastRunReceiver=void 0}},{mergeProjects:!0,mergeTestCases:!1,resolvePath:kt(this._options.pathSeparator)}),this._lastRunReceiver.dispatch({method:"onConfigure",params:{config:t}})},onBegin:t=>{var e;if(this.rootSuite||(this.rootSuite=t),this._testResultsSnapshot){for(const s of this.rootSuite.allTests())s.results=((e=this._testResultsSnapshot)==null?void 0:e.get(s.id))||s.results;this._testResultsSnapshot=void 0}this.progress.total=this._lastRunTestCount,this.progress.passed=0,this.progress.failed=0,this.progress.skipped=0,this._options.onUpdate(!0)},onEnd:()=>{this._options.onUpdate(!0)},onTestBegin:(t,e)=>{e[et]="running",this._options.onUpdate()},onTestEnd:(t,e)=>{t.outcome()==="skipped"?++this.progress.skipped:t.outcome()==="unexpected"?++this.progress.failed:++this.progress.passed,e[et]=e.status,this._options.onUpdate()},onError:t=>this._handleOnError(t),printsToStdio:()=>!1}}processGlobalReport(t){const e=new gt({version:()=>"v2",onConfigure:s=>{this.config=s},onError:s=>this._handleOnError(s)});for(const s of t)e.dispatch(s)}processListReport(t){var s;const e=((s=this.rootSuite)==null?void 0:s.allTests())||[];this._testResultsSnapshot=new Map(e.map(i=>[i.id,i.results])),this._receiver.reset();for(const i of t)this._receiver.dispatch(i)}processTestReportEvent(t){var e,s,i;(s=(e=this._lastRunReceiver)==null?void 0:e.dispatch(t))==null||s.catch(()=>{}),(i=this._receiver.dispatch(t))==null||i.catch(()=>{})}_handleOnError(t){var e,s;this.loadErrors.push(t),(s=(e=this._options).onError)==null||s.call(e,t),this._options.onUpdate()}asModel(){return{rootSuite:this.rootSuite||new tt("","root"),config:this.config,loadErrors:this.loadErrors,progress:this.progress}}}function kt(o){return(t,e)=>{const s=[];for(const i of[...t.split(o),...e.split(o)]){const a=o==="\\"&&s.length===1&&s[0].endsWith(":"),r=!s.length;if(!(!i&&!r&&!a)&&i!=="."){if(i===".."){s.pop();continue}s.push(i)}}return s.join(o)}}const _e=({source:o})=>{const[t,e]=Vt(),[s,i]=H.useState($t()),[a]=H.useState(Ht(()=>import("./assets/xtermModule-CsJ4vdCR.js"),__vite__mapDeps([0,1]),import.meta.url).then(_=>_.default)),r=H.useRef(null);return H.useEffect(()=>(qt(i),()=>Yt(i)),[]),H.useEffect(()=>{const _=o.write,c=o.clear;return(async()=>{const{Terminal:p,FitAddon:l}=await a,w=e.current;if(!w)return;const x=s==="dark-mode"?we:ve;if(r.current&&r.current.terminal.options.theme===x)return;r.current&&(w.textContent="");const h=new p({convertEol:!0,fontSize:13,scrollback:1e4,fontFamily:"monospace",theme:x}),I=new l;h.loadAddon(I);for(const u of o.pending)h.write(u);o.write=(u=>{o.pending.push(u),h.write(u)}),o.clear=()=>{o.pending=[],h.clear()},h.open(w),I.fit(),r.current={terminal:h,fitAddon:I}})(),()=>{o.clear=c,o.write=_}},[a,r,e,o,s]),H.useEffect(()=>{setTimeout(()=>{r.current&&(r.current.fitAddon.fit(),o.resize(r.current.terminal.cols,r.current.terminal.rows))},250)},[t,o]),n.jsx("div",{"data-testid":"output",className:"xterm-wrapper",style:{flex:"auto"},ref:e})},ve={foreground:"#383a42",background:"#fafafa",cursor:"#383a42",black:"#000000",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#4078f2",magenta:"#a626a4",cyan:"#0184bc",white:"#a0a0a0",brightBlack:"#000000",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#d19a66",brightBlue:"#4078f2",brightMagenta:"#a626a4",brightCyan:"#0184bc",brightWhite:"#383a42",selectionBackground:"#d7d7d7",selectionForeground:"#383a42"},we={foreground:"#f8f8f2",background:"#1e1e1e",cursor:"#f8f8f0",black:"#000000",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#bfbfbf",brightBlack:"#4d4d4d",brightRed:"#ff6e6e",brightGreen:"#69ff94",brightYellow:"#ffffa5",brightBlue:"#d6acff",brightMagenta:"#ff92df",brightCyan:"#a4ffff",brightWhite:"#e6e6e6",selectionBackground:"#44475a",selectionForeground:"#f8f8f2"},be=({filterText:o,setFilterText:t,statusFilters:e,setStatusFilters:s,projectFilters:i,setProjectFilters:a,onlyChanged:r,setOnlyChanged:_,testModel:c,runTests:p})=>{const[l,w]=d.useState(!1),x=d.useRef(null);d.useEffect(()=>{var u;(u=x.current)==null||u.focus()},[]);const h=[...e.entries()].filter(([u,b])=>b).map(([u])=>u).join(" ")||"all",I=[...i.entries()].filter(([u,b])=>b).map(([u])=>u).join(" ")||"all";return n.jsxs("div",{className:"filters",children:[n.jsx(Qt,{expanded:l,setExpanded:w,title:n.jsx("input",{ref:x,type:"search",placeholder:"Filter (e.g. text, @tag)",spellCheck:!1,value:o,onChange:u=>{t(u.target.value)},onKeyDown:u=>{u.key==="Enter"&&p()}})}),n.jsxs("div",{className:"filter-summary",title:"Status: "+h+`
|
|
3
|
+
Projects: `+I+(r?`
|
|
4
|
+
Only changed`:""),onClick:()=>w(!l),children:[n.jsx("span",{className:"filter-label",children:"Status:"})," ",h,n.jsx("span",{className:"filter-label",children:"Projects:"})," ",I,r&&n.jsx(n.Fragment,{children:n.jsx("span",{className:"filter-label",children:"Only changed"})})]}),l&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"hbox",style:{marginLeft:14,maxHeight:200,overflowY:"auto"},children:[n.jsx("div",{className:"filter-list",role:"list","data-testid":"status-filters",children:[...e.entries()].map(([u,b])=>n.jsx("div",{className:"filter-entry",role:"listitem",children:n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:b,onChange:()=>{const S=new Map(e);S.set(u,!S.get(u)),s(S)}}),n.jsx("div",{children:u})]})},u))}),n.jsx("div",{className:"filter-list",role:"list","data-testid":"project-filters",children:[...i.entries()].map(([u,b])=>n.jsx("div",{className:"filter-entry",role:"listitem",children:n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:b,onChange:()=>{var E;const S=new Map(i);S.set(u,!S.get(u)),a(S);const j=(E=c==null?void 0:c.config)==null?void 0:E.configFile;j&&Et.setObject(j+":projects",[...S.entries()].filter(([y,W])=>W).map(([y])=>y))}}),n.jsx("div",{children:u||"untitled"})]})},u))})]}),n.jsx("div",{className:"filter-entry",style:{marginLeft:24},children:n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:r,onChange:()=>_(!r)}),n.jsx("div",{children:"Show only changed files"})]})})]})]})},xe=({tag:o,style:t,onClick:e})=>n.jsx("span",{className:_t("tag",`tag-color-${Se(o)}`),onClick:e,style:{margin:"6px 0 0 6px",...t},title:`Click to filter by tag: ${o}`,children:o});function Se(o){let t=0;for(let e=0;e<o.length;e++)t=o.charCodeAt(e)+((t<<8)-t);return Math.abs(t%6)}const Te=Xt,ke=({filterText:o,testModel:t,testServerConnection:e,testTree:s,runTests:i,runningState:a,watchAll:r,watchedTreeIds:_,setWatchedTreeIds:c,isLoading:p,onItemSelected:l,requestedCollapseAllCount:w,requestedExpandAllCount:x,setFilterText:h,onRevealSource:I})=>{const[u,b]=d.useState({expandedItems:new Map}),[S,j]=d.useState(),[E,y]=d.useState(w),[W,st]=d.useState(x);d.useEffect(()=>{if(E!==w){u.expandedItems.clear();for(const k of s.flatTreeItems())u.expandedItems.set(k.id,!1);y(w),j(void 0),b({...u});return}if(W!==x){u.expandedItems.clear();for(const k of s.flatTreeItems())u.expandedItems.set(k.id,!0);st(x),j(void 0),b({...u});return}if(!a||a.itemSelectedByUser)return;let f;const B=k=>{var M;k.children.forEach(B),!f&&k.status==="failed"&&(k.kind==="test"&&a.testIds.has(k.test.id)||k.kind==="case"&&a.testIds.has((M=k.tests[0])==null?void 0:M.id))&&(f=k)};B(s.rootItem),f&&j(f.id)},[a,j,s,E,y,w,W,st,x,u,b]);const N=d.useMemo(()=>{if(S)return s.treeItemById(S)},[S,s]);d.useEffect(()=>{if(!t)return;const f=je(N,t);let B;(N==null?void 0:N.kind)==="test"?B=N.test:(N==null?void 0:N.kind)==="case"&&N.tests.length===1&&(B=N.tests[0]),l({treeItem:N,testCase:B,testFile:f})},[t,N,l]),d.useEffect(()=>{if(!p)if(r)e==null||e.watchNoReply({fileNames:s.fileNames()});else{const f=new Set;for(const B of _.value){const k=s.treeItemById(B),M=k==null?void 0:k.location.file;M&&f.add(M)}e==null||e.watchNoReply({fileNames:[...f]})}},[p,s,r,_,e]);const $=f=>{j(f.id),i("bounce-if-busy",s.collectTestIds(f))},K=(f,B)=>{if(f.preventDefault(),f.stopPropagation(),f.metaKey||f.ctrlKey){const k=o.split(" ");k.includes(B)?h(k.filter(M=>M!==B).join(" ").trim()):h((o+" "+B).trim())}else h((o.split(" ").filter(k=>!k.startsWith("@")).join(" ")+" "+B).trim())};return n.jsx(Te,{name:"tests",treeState:u,setTreeState:b,rootItem:s.rootItem,dataTestId:"test-tree",render:f=>{const B=f.id.replace(/[^\w\d-_]/g,"-"),k=B+"-label",M=B+"-time";return n.jsxs("div",{className:"hbox ui-mode-tree-item","aria-labelledby":`${k} ${M}`,children:[n.jsxs("div",{id:k,className:"ui-mode-tree-item-title",children:[n.jsx("span",{children:f.title}),f.kind==="case"?f.tags.map(Y=>n.jsx(xe,{tag:Y.slice(1),onClick:dt=>K(dt,Y)},Y)):null]}),!!f.duration&&f.status!=="skipped"&&n.jsx("div",{id:M,className:"ui-mode-tree-item-time",children:Zt(f.duration)}),n.jsxs(q,{noMinHeight:!0,noShadow:!0,children:[n.jsx(F,{icon:"play",title:"Run",onClick:()=>$(f),disabled:!!a&&!a.completed}),n.jsx(F,{icon:"go-to-file",title:"Show source",onClick:I,style:f.kind==="group"&&f.subKind==="folder"?{visibility:"hidden"}:{}}),!r&&n.jsx(F,{icon:"eye",title:"Watch",onClick:()=>{_.value.has(f.id)?_.value.delete(f.id):_.value.add(f.id),c({..._})},toggled:_.value.has(f.id)})]})]})},icon:f=>Jt(f.status),title:f=>f.title,selectedItem:N,onAccepted:$,onSelected:f=>{a&&(a.itemSelectedByUser=!0),j(f.id)},isError:f=>f.kind==="group"?f.hasLoadErrors:!1,autoExpandDepth:o?5:1,noItemsMessage:p?"Loading…":"No tests"})};function je(o,t){if(!(!o||!t))return{file:o.location.file,line:o.location.line,column:o.location.column,source:{errors:t.loadErrors.filter(e=>{var s;return((s=e.location)==null?void 0:s.file)===o.location.file}).map(e=>({line:e.location.line,message:e.message})),content:void 0}}}function ye(o){return`.playwright-artifacts-${o}`}const Ie=({item:o,rootDir:t,onOpenExternally:e,revealSource:s,pathSeparator:i})=>{var w,x;const[a,r]=d.useState(void 0),[_,c]=d.useState(0),p=d.useRef(null),{outputDir:l}=d.useMemo(()=>({outputDir:o.testCase?Ee(o.testCase):void 0}),[o]);return d.useEffect(()=>{var b,S,j;p.current&&clearTimeout(p.current);const h=(b=o.testCase)==null?void 0:b.results[0];if(!h||((S=o.treeItem)==null?void 0:S.status)==="scheduled"){r(void 0);return}const I=h&&h.duration>=0&&h.attachments.find(E=>E.name==="trace");if(I&&I.path){jt(I.path,h.startTime.getTime()).then(E=>r({model:E,isLive:!1}));return}if(!l){r(void 0);return}const u=[l,ye(h.workerIndex),"traces",`${(j=o.testCase)==null?void 0:j.id}.json`].join(i);return p.current=setTimeout(async()=>{try{const E=await jt(u,Date.now());r({model:E,isLive:!0})}catch{const E=new Rt("",[]);E.errorDescriptors.push(...h.errors.flatMap(y=>y.message?[{message:y.message}]:[])),r({model:E,isLive:!1})}finally{c(_+1)}},500),()=>{p.current&&clearTimeout(p.current)}},[l,o,r,_,c,i]),n.jsx(Gt,{model:a==null?void 0:a.model,showSourcesFirst:!0,rootDir:t,fallbackLocation:o.testFile,isLive:a==null?void 0:a.isLive,status:(w=o.treeItem)==null?void 0:w.status,annotations:((x=o.testCase)==null?void 0:x.annotations)??[],onOpenExternally:e,revealSource:s},"workbench")},Ee=o=>{var t;for(let e=o.parent;e;e=e.parent)if(e.project())return(t=e.project())==null?void 0:t.outputDir};async function jt(o,t){const e=`file?path=${encodeURIComponent(o)}×tamp=${t}`,s=new URLSearchParams;s.set("trace",e);const a=await(await fetch(`contexts?${s.toString()}`)).json();return new Rt(e,a)}let yt={cols:80};const z={pending:[],clear:()=>{},write:o=>z.pending.push(o),resize:()=>{}},A=new URLSearchParams(window.location.search),Re=new URL(A.get("server")??"../",window.location.href),vt=new URL(A.get("ws"),Re);vt.protocol=vt.protocol==="https:"?"wss:":"ws:";const P={args:A.getAll("arg"),grep:A.get("grep")||void 0,grepInvert:A.get("grepInvert")||void 0,projects:A.getAll("project"),workers:A.get("workers")||void 0,headed:A.has("headed"),updateSnapshots:A.get("updateSnapshots")||void 0,reporters:A.has("reporter")?A.getAll("reporter"):void 0,pathSeparator:A.get("pathSeparator")||"/"};P.updateSnapshots&&!["all","changed","none","missing"].includes(P.updateSnapshots)&&(P.updateSnapshots=void 0);const It=navigator.platform==="MacIntel";function Ce(o){return o.startsWith("/")&&(o=o.substring(1)),o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const Be=({})=>{var St;const[o,t]=d.useState(""),[e,s]=d.useState(!1),[i,a]=d.useState(!1),[r,_]=d.useState(new Map([["passed",!1],["failed",!1],["skipped",!1]])),[c,p]=d.useState(new Map),[l,w]=d.useState(),[x,h]=d.useState(),[I,u]=d.useState({}),[b,S]=d.useState(!1),[j,E]=d.useState(),y=j&&!j.completed,[W,st]=G("watch-all",!1),[N,$]=d.useState({value:new Set}),K=d.useRef(Promise.resolve()),f=d.useRef({testIds:new Set,locations:new Set}),[B,k]=d.useState(0),[M,Y]=d.useState(0),[dt,Bt]=d.useState(!1),[wt,bt]=d.useState(!0),[v,Pt]=d.useState(),[it,Nt]=d.useState(),[ot,Dt]=d.useState(!1),[nt,Lt]=d.useState(!1),[Mt,xt]=d.useState(!1),Ft=d.useCallback(()=>xt(!0),[xt]),[ut,Ot]=G("single-worker",!1),[ht,At]=G("updateSnapshots","missing"),[Q,Ut]=G("only-changed",!1),[X]=G("mergeFiles",!1),Wt=d.useRef(null),rt=d.useCallback(()=>{Pt(g=>(g==null||g.close(),new te(new ee(vt))))},[]);d.useEffect(()=>{var g;(g=Wt.current)==null||g.focus(),S(!0),rt()},[rt]),d.useEffect(()=>{if(!v)return;const g=[v.onStdio(m=>{if(m.buffer){const T=atob(m.buffer);z.write(T)}else z.write(m.text);m.type==="stderr"&&a(!0)}),v.onClose(()=>Bt(!0))];return z.resize=(m,T)=>{yt={cols:m,rows:T},v.resizeTerminalNoReply({cols:m,rows:T})},()=>{for(const m of g)m.dispose()}},[v]),d.useEffect(()=>{if(!v)return;let g;const m=new me({onUpdate:T=>{clearTimeout(g),g=void 0,T?w(m.asModel()):g||(g=setTimeout(()=>{w(m.asModel())},250))},onError:T=>{z.write((T.stack||T.value||"")+`
|
|
5
|
+
`),a(!0)},pathSeparator:P.pathSeparator});return Nt(m),w(void 0),S(!0),$({value:new Set}),(async()=>{try{await v.initialize({interceptStdio:!0,watchTestDirs:!0});const{status:T,report:C}=await v.runGlobalSetup({});if(m.processGlobalReport(C),T!=="passed")return;const D=await v.listTests({projects:P.projects,locations:P.args,grep:P.grep,grepInvert:P.grepInvert,onlyChanged:Q?"HEAD":void 0});m.processListReport(D.report),v.onReport(V=>{m.processTestReportEvent(V)});const{hasBrowsers:O}=await v.checkBrowsers({});bt(O)}finally{S(!1)}})(),()=>{clearTimeout(g)}},[Q,v]),d.useEffect(()=>{if(!l)return;const{config:g,rootSuite:m}=l,T=g.configFile?Et.getObject(g.configFile+":projects",void 0):void 0,C=new Map(c);for(const D of C.keys())m.suites.find(O=>O.title===D)||C.delete(D);for(const D of m.suites)C.has(D.title)||C.set(D.title,!!(T!=null&&T.includes(D.title)));!T&&C.size&&![...C.values()].includes(!0)&&C.set(C.entries().next().value[0],!0),(c.size!==C.size||[...c].some(([D,O])=>C.get(D)!==O))&&p(C)},[c,l]),d.useEffect(()=>{y&&(l!=null&&l.progress)?h(l.progress):l||h(void 0)},[l,y]);const{testTree:at}=d.useMemo(()=>{if(!l)return{testTree:new mt("",new tt("","root"),[],c,P.pathSeparator,X)};const g=new mt("",l.rootSuite,l.loadErrors,c,P.pathSeparator,X);return g.filterTree(o,r,y?j==null?void 0:j.testIds:void 0),g.sortAndPropagateStatus(),g.shortenRoot(),g.flattenForSingleProject(),{testTree:g}},[o,l,r,c,j,y,X]),J=d.useCallback((g,m)=>{if(!(!v||!l)&&!(g==="bounce-if-busy"&&y)){for(const T of m.testIds)f.current.testIds.add(T);for(const T of m.locations)f.current.locations.add(T);K.current=K.current.then(async()=>{var O,V,U;const{testIds:T,locations:C}=f.current;if(f.current={testIds:new Set,locations:new Set},!T.size)return;{for(const R of((O=l.rootSuite)==null?void 0:O.allTests())||[])if(T.has(R.id)){R.results=[];const L=R._createTestResult("pending");L[et]="scheduled"}w({...l})}const D=" ["+new Date().toLocaleTimeString()+"]";z.write("\x1B[2m—".repeat(Math.max(0,yt.cols-D.length))+D+"\x1B[22m"),h({total:0,passed:0,failed:0,skipped:0}),E({testIds:T}),await v.runTests({locations:[...C].map(Ce),grep:P.grep,grepInvert:P.grepInvert,testIds:[...T],projects:[...c].filter(([R,L])=>L).map(([R])=>R),updateSnapshots:ht,reporters:P.reporters,workers:ut?1:void 0,trace:"on"});for(const R of((V=l.rootSuite)==null?void 0:V.allTests())||[])((U=R.results[0])==null?void 0:U.duration)===-1&&(R.results=[]);w({...l}),E(R=>R?{...R,completed:!0}:void 0)})}},[c,y,l,v,ht,ut]),lt=d.useCallback(()=>J("bounce-if-busy",at.collectTestIds(at.rootItem)),[J,at]);d.useEffect(()=>{if(!v||!it)return;const g=v.onTestFilesChanged(async m=>{if(K.current=K.current.then(async()=>{S(!0);try{const U=await v.listTests({projects:P.projects,locations:P.args,grep:P.grep,grepInvert:P.grepInvert,onlyChanged:Q?"HEAD":void 0});it.processListReport(U.report)}catch(U){console.log(U)}finally{S(!1)}}),await K.current,m.testFiles.length===0)return;const T=it.asModel(),C=new mt("",T.rootSuite,T.loadErrors,c,P.pathSeparator,X),D=[],O=[],V=new Set(m.testFiles);if(W){const U=R=>{const L=R.location.file;if(L&&V.has(L)){const Z=C.collectTestIds(R);D.push(...Z.locations),O.push(...Z.testIds)}R.kind==="group"&&R.subKind==="folder"&&R.children.forEach(U)};U(C.rootItem)}else for(const U of N.value){const R=C.treeItemById(U);if(!R)continue;let L=R;for(;!(L.kind==="group"&&(L.subKind==="file"||L.subKind==="folder"))&&L.parent;)L=L.parent;const Z=L==null?void 0:L.location.file;if(Z&&V.has(Z)){const Tt=C.collectTestIds(R);D.push(...Tt.locations),O.push(...Tt.testIds)}}J("queue-if-busy",{locations:D,testIds:O})});return()=>g.dispose()},[J,v,W,N,it,c,X,Q]),d.useEffect(()=>{if(!v)return;const g=m=>{m.code==="Backquote"&&m.ctrlKey?(m.preventDefault(),s(!e)):m.code==="F5"&&m.shiftKey?(m.preventDefault(),v==null||v.stopTestsNoReply({})):m.code==="F5"&&(m.preventDefault(),lt())};return addEventListener("keydown",g),()=>{removeEventListener("keydown",g)}},[lt,rt,v,e]);const ft=d.useRef(null),zt=d.useCallback(g=>{var m;g.preventDefault(),g.stopPropagation(),(m=ft.current)==null||m.showModal()},[]),pt=d.useCallback(g=>{var m;g.preventDefault(),g.stopPropagation(),(m=ft.current)==null||m.close()},[]),Kt=d.useCallback(g=>{pt(g),s(!0),v==null||v.installBrowsers({}).then(async()=>{s(!1);const{hasBrowsers:m}=await(v==null?void 0:v.checkBrowsers({}));bt(m)})},[pt,v]);return n.jsxs("div",{className:"vbox ui-mode",children:[!wt&&n.jsxs("dialog",{ref:ft,children:[n.jsxs("div",{className:"title",children:[n.jsx("span",{className:"codicon codicon-lightbulb"}),"Install browsers"]}),n.jsxs("div",{className:"body",children:["Playwright did not find installed browsers.",n.jsx("br",{}),"Would you like to run `playwright install`?",n.jsx("br",{}),n.jsx("button",{className:"button",onClick:Kt,children:"Install"}),n.jsx("button",{className:"button secondary",onClick:pt,children:"Dismiss"})]})]}),dt&&n.jsxs("div",{className:"disconnected",children:[n.jsx("div",{className:"title",children:"UI Mode disconnected"}),n.jsxs("div",{children:[n.jsx("a",{href:"#",onClick:()=>window.location.href="/",children:"Reload the page"})," to reconnect"]})]}),n.jsx(se,{sidebarSize:250,minSidebarSize:150,orientation:"horizontal",sidebarIsFirst:!0,settingName:"testListSidebar",main:n.jsxs("div",{className:"vbox",children:[n.jsxs("div",{className:_t("vbox",!e&&"hidden"),children:[n.jsxs(q,{children:[n.jsx("div",{className:"section-title",style:{flex:"none"},children:"Output"}),n.jsx(F,{icon:"circle-slash",title:"Clear output",onClick:()=>{z.clear(),a(!1)}}),n.jsx("div",{className:"spacer"}),n.jsx(F,{icon:"close",title:"Close",onClick:()=>s(!1)})]}),n.jsx(_e,{source:z})]}),n.jsx("div",{className:_t("vbox",e&&"hidden"),children:n.jsx(Ie,{pathSeparator:P.pathSeparator,item:I,rootDir:(St=l==null?void 0:l.config)==null?void 0:St.rootDir,revealSource:Mt,onOpenExternally:g=>v==null?void 0:v.openNoReply({location:{file:g.file,line:g.line,column:g.column}})})})]}),sidebar:n.jsxs("div",{className:"vbox ui-mode-sidebar",children:[n.jsxs(q,{noShadow:!0,noMinHeight:!0,children:[n.jsx("img",{src:"playwright-logo.svg",alt:"Playwright logo"}),n.jsx("div",{className:"section-title",children:"Playwright"}),n.jsx(F,{icon:"refresh",title:"Reload",onClick:()=>rt(),disabled:y||b}),n.jsxs("div",{style:{position:"relative"},children:[n.jsx(F,{icon:"terminal",title:"Toggle output — "+(It?"⌃`":"Ctrl + `"),toggled:e,onClick:()=>{s(!e)}}),i&&n.jsx("div",{title:"Output contains error",style:{position:"absolute",top:2,right:2,width:7,height:7,borderRadius:"50%",backgroundColor:"var(--vscode-notificationsErrorIcon-foreground)"}})]}),!wt&&n.jsx(F,{icon:"lightbulb-autofix",style:{color:"var(--vscode-list-warningForeground)"},title:"Playwright browsers are missing",onClick:zt})]}),n.jsx(be,{filterText:o,setFilterText:t,statusFilters:r,setStatusFilters:_,projectFilters:c,setProjectFilters:p,onlyChanged:Q,setOnlyChanged:Ut,testModel:l,runTests:lt}),n.jsxs(q,{className:"section-toolbar",noMinHeight:!0,children:[!y&&!x&&n.jsx("div",{className:"section-title",children:"Tests"}),!y&&x&&n.jsx("div",{"data-testid":"status-line",className:"status-line",children:n.jsxs("div",{children:[x.passed,"/",x.total," passed (",x.passed/x.total*100|0,"%)"]})}),y&&x&&n.jsx("div",{"data-testid":"status-line",className:"status-line",children:n.jsxs("div",{children:["Running ",x.passed,"/",j.testIds.size," passed (",x.passed/j.testIds.size*100|0,"%)"]})}),n.jsx(F,{icon:"play",title:"Run all — F5",onClick:lt,disabled:y||b}),n.jsx(F,{icon:"debug-stop",title:"Stop — "+(It?"⇧F5":"Shift + F5"),onClick:()=>v==null?void 0:v.stopTests({}),disabled:!y||b,testId:"stop-button"}),n.jsx(F,{icon:"eye",title:"Watch all",toggled:W,onClick:()=>{$({value:new Set}),st(!W)}}),n.jsx(F,{icon:"collapse-all",title:"Collapse all",onClick:()=>{k(B+1)}}),n.jsx(F,{icon:"expand-all",title:"Expand all",onClick:()=>{Y(M+1)}})]}),n.jsx(ke,{filterText:o,testModel:l,testTree:at,testServerConnection:v,runningState:j,runTests:J,onItemSelected:u,watchAll:W,watchedTreeIds:N,setWatchedTreeIds:$,isLoading:b,requestedCollapseAllCount:B,requestedExpandAllCount:M,setFilterText:t,onRevealSource:Ft}),n.jsxs(q,{noShadow:!0,noMinHeight:!0,className:"settings-toolbar",onClick:()=>Lt(!nt),children:[n.jsx("span",{className:`codicon codicon-${nt?"chevron-down":"chevron-right"}`,style:{marginLeft:5},title:nt?"Hide Testing Options":"Show Testing Options"}),n.jsx("div",{className:"section-title",children:"Testing Options"})]}),nt&&n.jsx(ie,{settings:[{type:"check",value:ut,set:Ot,name:"Single worker"},{type:"select",options:[{label:"All",value:"all"},{label:"Changed",value:"changed"},{label:"Missing",value:"missing"},{label:"None",value:"none"}],value:ht,set:At,name:"Update snapshots"}]}),n.jsxs(q,{noShadow:!0,noMinHeight:!0,className:"settings-toolbar",onClick:()=>Dt(!ot),children:[n.jsx("span",{className:`codicon codicon-${ot?"chevron-down":"chevron-right"}`,style:{marginLeft:5},title:ot?"Hide Settings":"Show Settings"}),n.jsx("div",{className:"section-title",children:"Settings"})]}),ot&&n.jsx(oe,{location:"ui-mode"})]})})]})};(async()=>{if(ne(),window.location.protocol!=="file:"){if(window.location.href.includes("isUnderTest=true")&&await new Promise(o=>setTimeout(o,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
|
|
6
|
+
Make sure to serve the website (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(o=>{navigator.serviceWorker.oncontrollerchange=()=>o()}),setInterval(function(){fetch("ping")},1e4)}re.createRoot(document.querySelector("#root")).render(n.jsx(Be,{}))})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ui-mode-sidebar{background-color:var(--vscode-sideBar-background)}.ui-mode-sidebar>.settings-toolbar{border-top:1px solid var(--vscode-panel-border);cursor:pointer}.ui-mode-sidebar>.settings-view{margin:0 0 8px 23px}.ui-mode-sidebar .toolbar-button:not([disabled]) .codicon-play{color:var(--vscode-debugIcon-restartForeground)}.ui-mode-sidebar .toolbar-button:not([disabled]) .codicon-debug-stop{color:var(--vscode-debugIcon-stopForeground)}.ui-mode .section-toolbar{border-top:1px solid var(--vscode-panel-border)}.ui-mode .section-title{display:flex;flex:auto;flex-direction:row;align-items:center;font-size:11px;text-transform:uppercase;font-weight:700;text-overflow:ellipsis;overflow:hidden;padding:8px;height:30px}.ui-mode-sidebar img{flex:none;margin-left:6px;width:24px;height:24px}.ui-mode .disconnected{display:flex;align-items:center;justify-content:center;flex:auto;flex-direction:column;background-color:var(--vscode-editor-background);position:absolute;top:0;right:0;bottom:0;left:0;z-index:1000;line-height:24px}.disconnected .title{font-size:24px;font-weight:700;margin-bottom:30px}.status-line{flex:auto;white-space:nowrap;line-height:22px;padding-left:10px;display:flex;flex-direction:row;align-items:center;height:30px}.status-line>div{overflow:hidden;text-overflow:ellipsis}.ui-mode-sidebar input[type=search]{flex:auto;padding:0 5px;line-height:24px;outline:none;margin:0 4px;border:none;color:var(--vscode-input-foreground);background-color:var(--vscode-input-background)}.ui-mode-sidebar select{flex:auto;padding:0 5px;height:24px;line-height:24px;outline:none;border:none;color:var(--vscode-input-foreground);background-color:var(--vscode-input-background)}:root{--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #616161;--vscode-disabledForeground: rgba(97, 97, 97, .5);--vscode-errorForeground: #a1260d;--vscode-descriptionForeground: #717171;--vscode-icon-foreground: #424242;--vscode-focusBorder: #0090f1;--vscode-textSeparator-foreground: rgba(0, 0, 0, .18);--vscode-textLink-foreground: #006ab1;--vscode-textLink-activeForeground: #006ab1;--vscode-textPreformat-foreground: #a31515;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(220, 220, 220, .4);--vscode-widget-shadow: rgba(0, 0, 0, .16);--vscode-input-background: #ffffff;--vscode-input-foreground: #616161;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(184, 184, 184, .31);--vscode-inputOption-activeBackground: rgba(0, 144, 241, .2);--vscode-inputOption-activeForeground: #000000;--vscode-input-placeholderForeground: #767676;--vscode-inputValidation-infoBackground: #d6ecf2;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #f6f5d2;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #f2dede;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #ffffff;--vscode-dropdown-border: #cecece;--vscode-checkbox-background: #ffffff;--vscode-checkbox-border: #cecece;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #007acc;--vscode-button-hoverBackground: #0062a3;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #5f6a79;--vscode-button-secondaryHoverBackground: #4c5561;--vscode-badge-background: #c4c4c4;--vscode-badge-foreground: #333333;--vscode-scrollbar-shadow: #dddddd;--vscode-scrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #e51400;--vscode-editorWarning-foreground: #bf8803;--vscode-editorInfo-foreground: #1a85ff;--vscode-editorHint-foreground: #6c6c6c;--vscode-sash-hoverBorder: #0090f1;--vscode-editor-background: #ffffff;--vscode-editor-foreground: #000000;--vscode-editorStickyScroll-background: #ffffff;--vscode-editorStickyScrollHover-background: #f0f0f0;--vscode-editorWidget-background: #f3f3f3;--vscode-editorWidget-foreground: #616161;--vscode-editorWidget-border: #c8c8c8;--vscode-quickInput-background: #f3f3f3;--vscode-quickInput-foreground: #616161;--vscode-quickInputTitle-background: rgba(0, 0, 0, .06);--vscode-pickerGroup-foreground: #0066bf;--vscode-pickerGroup-border: #cccedb;--vscode-keybindingLabel-background: rgba(221, 221, 221, .4);--vscode-keybindingLabel-foreground: #555555;--vscode-keybindingLabel-border: rgba(204, 204, 204, .4);--vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, .4);--vscode-editor-selectionBackground: #add6ff;--vscode-editor-inactiveSelectionBackground: #e5ebf1;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .5);--vscode-editor-findMatchBackground: #a8ac94;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(180, 180, 180, .3);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(173, 214, 255, .15);--vscode-editorHoverWidget-background: #f3f3f3;--vscode-editorHoverWidget-foreground: #616161;--vscode-editorHoverWidget-border: #c8c8c8;--vscode-editorHoverWidget-statusBarBackground: #e7e7e7;--vscode-editorLink-activeForeground: #0000ff;--vscode-editorInlayHint-foreground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-background: rgba(196, 196, 196, .3);--vscode-editorInlayHint-typeForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-typeBackground: rgba(196, 196, 196, .3);--vscode-editorInlayHint-parameterForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-parameterBackground: rgba(196, 196, 196, .3);--vscode-editorLightBulb-foreground: #ddb100;--vscode-editorLightBulbAutoFix-foreground: #007acc;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .4);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .3);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(34, 34, 34, .2);--vscode-list-focusOutline: #0090f1;--vscode-list-focusAndSelectionOutline: #90c2f9;--vscode-list-activeSelectionBackground: #0060c0;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #e4e6f1;--vscode-list-hoverBackground: #e8e8e8;--vscode-list-dropBackground: #d6ebff;--vscode-list-highlightForeground: #0066bf;--vscode-list-focusHighlightForeground: #bbe7ff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #b01011;--vscode-list-warningForeground: #855f00;--vscode-listFilterWidget-background: #f3f3f3;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .16);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #a9a9a9;--vscode-tree-tableColumnsBorder: rgba(97, 97, 97, .13);--vscode-tree-tableOddRowsBackground: rgba(97, 97, 97, .04);--vscode-list-deemphasizedForeground: #8e8e90;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #0060c0;--vscode-menu-foreground: #616161;--vscode-menu-background: #ffffff;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #0060c0;--vscode-menu-separatorBackground: #d4d4d4;--vscode-toolbar-hoverBackground: rgba(184, 184, 184, .31);--vscode-toolbar-activeBackground: rgba(166, 166, 166, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(10, 50, 100, .2);--vscode-editor-snippetFinalTabstopHighlightBorder: rgba(10, 50, 100, .5);--vscode-breadcrumb-foreground: rgba(97, 97, 97, .8);--vscode-breadcrumb-background: #ffffff;--vscode-breadcrumb-focusForeground: #4e4e4e;--vscode-breadcrumb-activeSelectionForeground: #4e4e4e;--vscode-breadcrumbPicker-background: #f3f3f3;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #c9c9c9;--vscode-minimap-selectionHighlight: #add6ff;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #bf8803;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(100, 100, 100, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(0, 0, 0, .3);--vscode-problemsErrorIcon-foreground: #e51400;--vscode-problemsWarningIcon-foreground: #bf8803;--vscode-problemsInfoIcon-foreground: #1a85ff;--vscode-charts-foreground: #616161;--vscode-charts-lines: rgba(97, 97, 97, .5);--vscode-charts-red: #e51400;--vscode-charts-blue: #1a85ff;--vscode-charts-yellow: #bf8803;--vscode-charts-orange: #d18616;--vscode-charts-green: #388a34;--vscode-charts-purple: #652d90;--vscode-editor-lineHighlightBorder: #eeeeee;--vscode-editor-rangeHighlightBackground: rgba(253, 255, 0, .2);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #000000;--vscode-editorWhitespace-foreground: rgba(51, 51, 51, .2);--vscode-editorIndentGuide-background: #d3d3d3;--vscode-editorIndentGuide-activeBackground: #939393;--vscode-editorLineNumber-foreground: #237893;--vscode-editorActiveLineNumber-foreground: #0b216f;--vscode-editorLineNumber-activeForeground: #0b216f;--vscode-editorRuler-foreground: #d3d3d3;--vscode-editorCodeLens-foreground: #919191;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #b9b9b9;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #ffffff;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .47);--vscode-editorGhostText-foreground: rgba(0, 0, 0, .47);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #bf8803;--vscode-editorOverviewRuler-infoForeground: #1a85ff;--vscode-editorBracketHighlight-foreground1: #0431fa;--vscode-editorBracketHighlight-foreground2: #319331;--vscode-editorBracketHighlight-foreground3: #7b3814;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #cea33d;--vscode-editorUnicodeHighlight-background: rgba(206, 163, 61, .08);--vscode-symbolIcon-arrayForeground: #616161;--vscode-symbolIcon-booleanForeground: #616161;--vscode-symbolIcon-classForeground: #d67e00;--vscode-symbolIcon-colorForeground: #616161;--vscode-symbolIcon-constantForeground: #616161;--vscode-symbolIcon-constructorForeground: #652d90;--vscode-symbolIcon-enumeratorForeground: #d67e00;--vscode-symbolIcon-enumeratorMemberForeground: #007acc;--vscode-symbolIcon-eventForeground: #d67e00;--vscode-symbolIcon-fieldForeground: #007acc;--vscode-symbolIcon-fileForeground: #616161;--vscode-symbolIcon-folderForeground: #616161;--vscode-symbolIcon-functionForeground: #652d90;--vscode-symbolIcon-interfaceForeground: #007acc;--vscode-symbolIcon-keyForeground: #616161;--vscode-symbolIcon-keywordForeground: #616161;--vscode-symbolIcon-methodForeground: #652d90;--vscode-symbolIcon-moduleForeground: #616161;--vscode-symbolIcon-namespaceForeground: #616161;--vscode-symbolIcon-nullForeground: #616161;--vscode-symbolIcon-numberForeground: #616161;--vscode-symbolIcon-objectForeground: #616161;--vscode-symbolIcon-operatorForeground: #616161;--vscode-symbolIcon-packageForeground: #616161;--vscode-symbolIcon-propertyForeground: #616161;--vscode-symbolIcon-referenceForeground: #616161;--vscode-symbolIcon-snippetForeground: #616161;--vscode-symbolIcon-stringForeground: #616161;--vscode-symbolIcon-structForeground: #616161;--vscode-symbolIcon-textForeground: #616161;--vscode-symbolIcon-typeParameterForeground: #616161;--vscode-symbolIcon-unitForeground: #616161;--vscode-symbolIcon-variableForeground: #007acc;--vscode-editorHoverWidget-highlightForeground: #0066bf;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(173, 214, 255, .3);--vscode-editorGutter-foldingControlForeground: #424242;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .25);--vscode-editor-wordHighlightStrongBackground: rgba(14, 99, 156, .25);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(26, 133, 255, .1);--vscode-peekViewTitleLabel-foreground: #000000;--vscode-peekViewTitleDescription-foreground: #616161;--vscode-peekView-border: #1a85ff;--vscode-peekViewResult-background: #f3f3f3;--vscode-peekViewResult-lineForeground: #646465;--vscode-peekViewResult-fileForeground: #1e1e1e;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #6c6c6c;--vscode-peekViewEditor-background: #f2f8fc;--vscode-peekViewEditorGutter-background: #f2f8fc;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(245, 216, 2, .87);--vscode-editorMarkerNavigationError-background: #e51400;--vscode-editorMarkerNavigationError-headerBackground: rgba(229, 20, 0, .1);--vscode-editorMarkerNavigationWarning-background: #bf8803;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(191, 136, 3, .1);--vscode-editorMarkerNavigationInfo-background: #1a85ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(26, 133, 255, .1);--vscode-editorMarkerNavigation-background: #ffffff;--vscode-editorSuggestWidget-background: #f3f3f3;--vscode-editorSuggestWidget-border: #c8c8c8;--vscode-editorSuggestWidget-foreground: #000000;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #0060c0;--vscode-editorSuggestWidget-highlightForeground: #0066bf;--vscode-editorSuggestWidget-focusHighlightForeground: #bbe7ff;--vscode-editorSuggestWidgetStatus-foreground: rgba(0, 0, 0, .5);--vscode-tab-activeBackground: #ffffff;--vscode-tab-unfocusedActiveBackground: #ffffff;--vscode-tab-inactiveBackground: #ececec;--vscode-tab-unfocusedInactiveBackground: #ececec;--vscode-tab-activeForeground: #333333;--vscode-tab-inactiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedActiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedInactiveForeground: rgba(51, 51, 51, .35);--vscode-tab-border: #f3f3f3;--vscode-tab-lastPinnedBorder: rgba(97, 97, 97, .19);--vscode-tab-activeModifiedBorder: #33aaee;--vscode-tab-inactiveModifiedBorder: rgba(51, 170, 238, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 170, 238, .7);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 170, 238, .25);--vscode-editorPane-background: #ffffff;--vscode-editorGroupHeader-tabsBackground: #f3f3f3;--vscode-editorGroupHeader-noTabsBackground: #ffffff;--vscode-editorGroup-border: #e7e7e7;--vscode-editorGroup-dropBackground: rgba(38, 119, 203, .18);--vscode-editorGroup-dropIntoPromptForeground: #616161;--vscode-editorGroup-dropIntoPromptBackground: #f3f3f3;--vscode-sideBySideEditor-horizontalBorder: #e7e7e7;--vscode-sideBySideEditor-verticalBorder: #e7e7e7;--vscode-panel-background: #ffffff;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #424242;--vscode-panelTitle-inactiveForeground: rgba(66, 66, 66, .75);--vscode-panelTitle-activeBorder: #424242;--vscode-panelInput-border: #dddddd;--vscode-panel-dropBorder: #424242;--vscode-panelSection-dropBackground: rgba(38, 119, 203, .18);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #004386;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #1a85ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #725102;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #2c2c2c;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #f3f3f3;--vscode-sideBarTitle-foreground: #6f6f6f;--vscode-sideBar-dropBackground: rgba(38, 119, 203, .18);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(97, 97, 97, .19);--vscode-titleBar-activeForeground: #333333;--vscode-titleBar-inactiveForeground: rgba(51, 51, 51, .6);--vscode-titleBar-activeBackground: #dddddd;--vscode-titleBar-inactiveBackground: rgba(221, 221, 221, .6);--vscode-menubar-selectionForeground: #333333;--vscode-menubar-selectionBackground: rgba(184, 184, 184, .31);--vscode-notifications-foreground: #616161;--vscode-notifications-background: #f3f3f3;--vscode-notificationLink-foreground: #006ab1;--vscode-notificationCenterHeader-background: #e7e7e7;--vscode-notifications-border: #e7e7e7;--vscode-notificationsErrorIcon-foreground: #e51400;--vscode-notificationsWarningIcon-foreground: #bf8803;--vscode-notificationsInfoIcon-foreground: #1a85ff;--vscode-commandCenter-foreground: #333333;--vscode-commandCenter-activeForeground: #333333;--vscode-commandCenter-activeBackground: rgba(184, 184, 184, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(97, 97, 97, .5);--vscode-editorCommentsWidget-unresolvedBorder: #1a85ff;--vscode-editorCommentsWidget-rangeBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(26, 133, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(26, 133, 255, .4);--vscode-editorGutter-commentRangeForeground: #d5d8e9;--vscode-debugToolBar-background: #f3f3f3;--vscode-debugIcon-startForeground: #388a34;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 102, .45);--vscode-editor-focusedStackFrameHighlightBackground: rgba(206, 231, 206, .45);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .4);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #444444;--vscode-settings-modifiedItemIndicator: #66afe0;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #ffffff;--vscode-settings-dropdownBorder: #cecece;--vscode-settings-dropdownListBorder: #c8c8c8;--vscode-settings-checkboxBackground: #ffffff;--vscode-settings-checkboxBorder: #cecece;--vscode-settings-textInputBackground: #ffffff;--vscode-settings-textInputForeground: #616161;--vscode-settings-textInputBorder: #cecece;--vscode-settings-numberInputBackground: #ffffff;--vscode-settings-numberInputForeground: #616161;--vscode-settings-numberInputBorder: #cecece;--vscode-settings-focusedRowBackground: rgba(232, 232, 232, .6);--vscode-settings-rowHoverBackground: rgba(232, 232, 232, .3);--vscode-settings-focusedRowBorder: rgba(0, 0, 0, .12);--vscode-terminal-foreground: #333333;--vscode-terminal-selectionBackground: #add6ff;--vscode-terminal-inactiveSelectionBackground: #e5ebf1;--vscode-terminalCommandDecoration-defaultBackground: rgba(0, 0, 0, .25);--vscode-terminalCommandDecoration-successBackground: #2090d3;--vscode-terminalCommandDecoration-errorBackground: #e51400;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #a8ac94;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(38, 119, 203, .18);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #e51400;--vscode-testing-peekHeaderBackground: rgba(229, 20, 0, .1);--vscode-testing-message\.error\.decorationForeground: #e51400;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(0, 0, 0, .5);--vscode-welcomePage-tileBackground: #f3f3f3;--vscode-welcomePage-tileHoverBackground: #dbdbdb;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .16);--vscode-welcomePage-progress\.background: #ffffff;--vscode-welcomePage-progress\.foreground: #006ab1;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #f1dfde;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(0, 0, 0, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #2090d3;--vscode-editorGutter-addedBackground: #48985d;--vscode-editorGutter-deletedBackground: #e51400;--vscode-minimapGutter-modifiedBackground: #2090d3;--vscode-minimapGutter-addedBackground: #48985d;--vscode-minimapGutter-deletedBackground: #e51400;--vscode-editorOverviewRuler-modifiedForeground: rgba(32, 144, 211, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 152, 93, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(229, 20, 0, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #be8700;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #e8e8e8;--vscode-notebook-focusedEditorBorder: #0090f1;--vscode-notebookStatusSuccessIcon-foreground: #388a34;--vscode-notebookStatusErrorIcon-foreground: #a1260d;--vscode-notebookStatusRunningIcon-foreground: #616161;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: rgba(200, 221, 241, .31);--vscode-notebook-selectedCellBorder: #e8e8e8;--vscode-notebook-focusedCellBorder: #0090f1;--vscode-notebook-inactiveFocusedCellBorder: #e8e8e8;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(0, 0, 0, .08);--vscode-notebook-cellInsertionIndicator: #0090f1;--vscode-notebookScrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-notebook-symbolHighlightBackground: rgba(253, 255, 0, .2);--vscode-notebook-cellEditorBackground: #f3f3f3;--vscode-notebook-editorBackground: #ffffff;--vscode-keybindingTable-headerBackground: rgba(97, 97, 97, .04);--vscode-keybindingTable-rowsBackground: rgba(97, 97, 97, .04);--vscode-scm-providerBorder: #c8c8c8;--vscode-searchEditor-textInputBorder: #cecece;--vscode-debugTokenExpression-name: #9b46b0;--vscode-debugTokenExpression-value: rgba(108, 108, 108, .8);--vscode-debugTokenExpression-string: #a31515;--vscode-debugTokenExpression-boolean: #0000ff;--vscode-debugTokenExpression-number: #098658;--vscode-debugTokenExpression-error: #e51400;--vscode-debugView-exceptionLabelForeground: #ffffff;--vscode-debugView-exceptionLabelBackground: #a31515;--vscode-debugView-stateLabelForeground: #616161;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #1a85ff;--vscode-debugConsole-warningForeground: #bf8803;--vscode-debugConsole-errorForeground: #a1260d;--vscode-debugConsole-sourceForeground: #616161;--vscode-debugConsoleInputIcon-foreground: #616161;--vscode-debugIcon-pauseForeground: #007acc;--vscode-debugIcon-stopForeground: #a1260d;--vscode-debugIcon-disconnectForeground: #a1260d;--vscode-debugIcon-restartForeground: #388a34;--vscode-debugIcon-stepOverForeground: #007acc;--vscode-debugIcon-stepIntoForeground: #007acc;--vscode-debugIcon-stepOutForeground: #007acc;--vscode-debugIcon-continueForeground: #007acc;--vscode-debugIcon-stepBackForeground: #007acc;--vscode-extensionButton-prominentBackground: #007acc;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #0062a3;--vscode-extensionIcon-starForeground: #df6100;--vscode-extensionIcon-verifiedForeground: #006ab1;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #b51e78;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #00bc00;--vscode-terminal-ansiYellow: #949800;--vscode-terminal-ansiBlue: #0451a5;--vscode-terminal-ansiMagenta: #bc05bc;--vscode-terminal-ansiCyan: #0598bc;--vscode-terminal-ansiWhite: #555555;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #cd3131;--vscode-terminal-ansiBrightGreen: #14ce14;--vscode-terminal-ansiBrightYellow: #b5ba00;--vscode-terminal-ansiBrightBlue: #0451a5;--vscode-terminal-ansiBrightMagenta: #bc05bc;--vscode-terminal-ansiBrightCyan: #0598bc;--vscode-terminal-ansiBrightWhite: #a5a5a5;--vscode-interactive-activeCodeBorder: #1a85ff;--vscode-interactive-inactiveCodeBorder: #e4e6f1;--vscode-gitDecoration-addedResourceForeground: #587c0c;--vscode-gitDecoration-modifiedResourceForeground: #895503;--vscode-gitDecoration-deletedResourceForeground: #ad0707;--vscode-gitDecoration-renamedResourceForeground: #007100;--vscode-gitDecoration-untrackedResourceForeground: #007100;--vscode-gitDecoration-ignoredResourceForeground: #8e8e90;--vscode-gitDecoration-stageModifiedResourceForeground: #895503;--vscode-gitDecoration-stageDeletedResourceForeground: #ad0707;--vscode-gitDecoration-conflictingResourceForeground: #ad0707;--vscode-gitDecoration-submoduleResourceForeground: #1258a7}:root.light-mode{color-scheme:light}:root.dark-mode{color-scheme:dark;--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #cccccc;--vscode-disabledForeground: rgba(204, 204, 204, .5);--vscode-errorForeground: #f48771;--vscode-descriptionForeground: rgba(204, 204, 204, .7);--vscode-icon-foreground: #c5c5c5;--vscode-focusBorder: #007fd4;--vscode-textSeparator-foreground: rgba(255, 255, 255, .18);--vscode-textLink-foreground: #3794ff;--vscode-textLink-activeForeground: #3794ff;--vscode-textPreformat-foreground: #d7ba7d;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(10, 10, 10, .4);--vscode-widget-shadow: rgba(0, 0, 0, .36);--vscode-input-background: #3c3c3c;--vscode-input-foreground: #cccccc;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(90, 93, 94, .5);--vscode-inputOption-activeBackground: rgba(0, 127, 212, .4);--vscode-inputOption-activeForeground: #ffffff;--vscode-input-placeholderForeground: #a6a6a6;--vscode-inputValidation-infoBackground: #063b49;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #352a05;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #5a1d1d;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #3c3c3c;--vscode-dropdown-foreground: #f0f0f0;--vscode-dropdown-border: #3c3c3c;--vscode-checkbox-background: #3c3c3c;--vscode-checkbox-foreground: #f0f0f0;--vscode-checkbox-border: #3c3c3c;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #0e639c;--vscode-button-hoverBackground: #1177bb;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #3a3d41;--vscode-button-secondaryHoverBackground: #45494e;--vscode-badge-background: #4d4d4d;--vscode-badge-foreground: #ffffff;--vscode-scrollbar-shadow: #000000;--vscode-scrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #f14c4c;--vscode-editorWarning-foreground: #cca700;--vscode-editorInfo-foreground: #3794ff;--vscode-editorHint-foreground: rgba(238, 238, 238, .7);--vscode-sash-hoverBorder: #007fd4;--vscode-editor-background: #1e1e1e;--vscode-editor-foreground: #d4d4d4;--vscode-editorStickyScroll-background: #1e1e1e;--vscode-editorStickyScrollHover-background: #2a2d2e;--vscode-editorWidget-background: #252526;--vscode-editorWidget-foreground: #cccccc;--vscode-editorWidget-border: #454545;--vscode-quickInput-background: #252526;--vscode-quickInput-foreground: #cccccc;--vscode-quickInputTitle-background: rgba(255, 255, 255, .1);--vscode-pickerGroup-foreground: #3794ff;--vscode-pickerGroup-border: #3f3f46;--vscode-keybindingLabel-background: rgba(128, 128, 128, .17);--vscode-keybindingLabel-foreground: #cccccc;--vscode-keybindingLabel-border: rgba(51, 51, 51, .6);--vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, .6);--vscode-editor-selectionBackground: #264f78;--vscode-editor-inactiveSelectionBackground: #3a3d41;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .15);--vscode-editor-findMatchBackground: #515c6a;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(58, 61, 65, .4);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(38, 79, 120, .25);--vscode-editorHoverWidget-background: #252526;--vscode-editorHoverWidget-foreground: #cccccc;--vscode-editorHoverWidget-border: #454545;--vscode-editorHoverWidget-statusBarBackground: #2c2c2d;--vscode-editorLink-activeForeground: #4e94ce;--vscode-editorInlayHint-foreground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-background: rgba(77, 77, 77, .6);--vscode-editorInlayHint-typeForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-typeBackground: rgba(77, 77, 77, .6);--vscode-editorInlayHint-parameterForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-parameterBackground: rgba(77, 77, 77, .6);--vscode-editorLightBulb-foreground: #ffcc00;--vscode-editorLightBulbAutoFix-foreground: #75beff;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .2);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .4);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(204, 204, 204, .2);--vscode-list-focusOutline: #007fd4;--vscode-list-activeSelectionBackground: #04395e;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #37373d;--vscode-list-hoverBackground: #2a2d2e;--vscode-list-dropBackground: #383b3d;--vscode-list-highlightForeground: #2aaaff;--vscode-list-focusHighlightForeground: #2aaaff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #f88070;--vscode-list-warningForeground: #cca700;--vscode-listFilterWidget-background: #252526;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .36);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #585858;--vscode-tree-tableColumnsBorder: rgba(204, 204, 204, .13);--vscode-tree-tableOddRowsBackground: rgba(204, 204, 204, .04);--vscode-list-deemphasizedForeground: #8c8c8c;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #04395e;--vscode-menu-foreground: #cccccc;--vscode-menu-background: #303031;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #04395e;--vscode-menu-separatorBackground: #606060;--vscode-toolbar-hoverBackground: rgba(90, 93, 94, .31);--vscode-toolbar-activeBackground: rgba(99, 102, 103, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(124, 124, 124, .3);--vscode-editor-snippetFinalTabstopHighlightBorder: #525252;--vscode-breadcrumb-foreground: rgba(204, 204, 204, .8);--vscode-breadcrumb-background: #1e1e1e;--vscode-breadcrumb-focusForeground: #e0e0e0;--vscode-breadcrumb-activeSelectionForeground: #e0e0e0;--vscode-breadcrumbPicker-background: #252526;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #676767;--vscode-minimap-selectionHighlight: #264f78;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #cca700;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(121, 121, 121, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(191, 191, 191, .2);--vscode-problemsErrorIcon-foreground: #f14c4c;--vscode-problemsWarningIcon-foreground: #cca700;--vscode-problemsInfoIcon-foreground: #3794ff;--vscode-charts-foreground: #cccccc;--vscode-charts-lines: rgba(204, 204, 204, .5);--vscode-charts-red: #f14c4c;--vscode-charts-blue: #3794ff;--vscode-charts-yellow: #cca700;--vscode-charts-orange: #d18616;--vscode-charts-green: #89d185;--vscode-charts-purple: #b180d7;--vscode-editor-lineHighlightBorder: #282828;--vscode-editor-rangeHighlightBackground: rgba(255, 255, 255, .04);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #aeafad;--vscode-editorWhitespace-foreground: rgba(227, 228, 226, .16);--vscode-editorIndentGuide-background: #404040;--vscode-editorIndentGuide-activeBackground: #707070;--vscode-editorLineNumber-foreground: #858585;--vscode-editorActiveLineNumber-foreground: #c6c6c6;--vscode-editorLineNumber-activeForeground: #c6c6c6;--vscode-editorRuler-foreground: #5a5a5a;--vscode-editorCodeLens-foreground: #999999;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #888888;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #1e1e1e;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .67);--vscode-editorGhostText-foreground: rgba(255, 255, 255, .34);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #cca700;--vscode-editorOverviewRuler-infoForeground: #3794ff;--vscode-editorBracketHighlight-foreground1: #ffd700;--vscode-editorBracketHighlight-foreground2: #da70d6;--vscode-editorBracketHighlight-foreground3: #179fff;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #bd9b03;--vscode-editorUnicodeHighlight-background: rgba(189, 155, 3, .15);--vscode-symbolIcon-arrayForeground: #cccccc;--vscode-symbolIcon-booleanForeground: #cccccc;--vscode-symbolIcon-classForeground: #ee9d28;--vscode-symbolIcon-colorForeground: #cccccc;--vscode-symbolIcon-constantForeground: #cccccc;--vscode-symbolIcon-constructorForeground: #b180d7;--vscode-symbolIcon-enumeratorForeground: #ee9d28;--vscode-symbolIcon-enumeratorMemberForeground: #75beff;--vscode-symbolIcon-eventForeground: #ee9d28;--vscode-symbolIcon-fieldForeground: #75beff;--vscode-symbolIcon-fileForeground: #cccccc;--vscode-symbolIcon-folderForeground: #cccccc;--vscode-symbolIcon-functionForeground: #b180d7;--vscode-symbolIcon-interfaceForeground: #75beff;--vscode-symbolIcon-keyForeground: #cccccc;--vscode-symbolIcon-keywordForeground: #cccccc;--vscode-symbolIcon-methodForeground: #b180d7;--vscode-symbolIcon-moduleForeground: #cccccc;--vscode-symbolIcon-namespaceForeground: #cccccc;--vscode-symbolIcon-nullForeground: #cccccc;--vscode-symbolIcon-numberForeground: #cccccc;--vscode-symbolIcon-objectForeground: #cccccc;--vscode-symbolIcon-operatorForeground: #cccccc;--vscode-symbolIcon-packageForeground: #cccccc;--vscode-symbolIcon-propertyForeground: #cccccc;--vscode-symbolIcon-referenceForeground: #cccccc;--vscode-symbolIcon-snippetForeground: #cccccc;--vscode-symbolIcon-stringForeground: #cccccc;--vscode-symbolIcon-structForeground: #cccccc;--vscode-symbolIcon-textForeground: #cccccc;--vscode-symbolIcon-typeParameterForeground: #cccccc;--vscode-symbolIcon-unitForeground: #cccccc;--vscode-symbolIcon-variableForeground: #75beff;--vscode-editorHoverWidget-highlightForeground: #2aaaff;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(38, 79, 120, .3);--vscode-editorGutter-foldingControlForeground: #c5c5c5;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .72);--vscode-editor-wordHighlightStrongBackground: rgba(0, 73, 114, .72);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(55, 148, 255, .1);--vscode-peekViewTitleLabel-foreground: #ffffff;--vscode-peekViewTitleDescription-foreground: rgba(204, 204, 204, .7);--vscode-peekView-border: #3794ff;--vscode-peekViewResult-background: #252526;--vscode-peekViewResult-lineForeground: #bbbbbb;--vscode-peekViewResult-fileForeground: #ffffff;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #ffffff;--vscode-peekViewEditor-background: #001f33;--vscode-peekViewEditorGutter-background: #001f33;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(255, 143, 0, .6);--vscode-editorMarkerNavigationError-background: #f14c4c;--vscode-editorMarkerNavigationError-headerBackground: rgba(241, 76, 76, .1);--vscode-editorMarkerNavigationWarning-background: #cca700;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(204, 167, 0, .1);--vscode-editorMarkerNavigationInfo-background: #3794ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(55, 148, 255, .1);--vscode-editorMarkerNavigation-background: #1e1e1e;--vscode-editorSuggestWidget-background: #252526;--vscode-editorSuggestWidget-border: #454545;--vscode-editorSuggestWidget-foreground: #d4d4d4;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #04395e;--vscode-editorSuggestWidget-highlightForeground: #2aaaff;--vscode-editorSuggestWidget-focusHighlightForeground: #2aaaff;--vscode-editorSuggestWidgetStatus-foreground: rgba(212, 212, 212, .5);--vscode-tab-activeBackground: #1e1e1e;--vscode-tab-unfocusedActiveBackground: #1e1e1e;--vscode-tab-inactiveBackground: #2d2d2d;--vscode-tab-unfocusedInactiveBackground: #2d2d2d;--vscode-tab-activeForeground: #ffffff;--vscode-tab-inactiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedActiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedInactiveForeground: rgba(255, 255, 255, .25);--vscode-tab-border: #252526;--vscode-tab-lastPinnedBorder: rgba(204, 204, 204, .2);--vscode-tab-activeModifiedBorder: #3399cc;--vscode-tab-inactiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 153, 204, .25);--vscode-editorPane-background: #1e1e1e;--vscode-editorGroupHeader-tabsBackground: #252526;--vscode-editorGroupHeader-noTabsBackground: #1e1e1e;--vscode-editorGroup-border: #444444;--vscode-editorGroup-dropBackground: rgba(83, 89, 93, .5);--vscode-editorGroup-dropIntoPromptForeground: #cccccc;--vscode-editorGroup-dropIntoPromptBackground: #252526;--vscode-sideBySideEditor-horizontalBorder: #444444;--vscode-sideBySideEditor-verticalBorder: #444444;--vscode-panel-background: #1e1e1e;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #e7e7e7;--vscode-panelTitle-inactiveForeground: rgba(231, 231, 231, .6);--vscode-panelTitle-activeBorder: #e7e7e7;--vscode-panel-dropBorder: #e7e7e7;--vscode-panelSection-dropBackground: rgba(83, 89, 93, .5);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #04395e;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #3794ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #7a6400;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #333333;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #252526;--vscode-sideBarTitle-foreground: #bbbbbb;--vscode-sideBar-dropBackground: rgba(83, 89, 93, .5);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(204, 204, 204, .2);--vscode-titleBar-activeForeground: #cccccc;--vscode-titleBar-inactiveForeground: rgba(204, 204, 204, .6);--vscode-titleBar-activeBackground: #3c3c3c;--vscode-titleBar-inactiveBackground: rgba(60, 60, 60, .6);--vscode-menubar-selectionForeground: #cccccc;--vscode-menubar-selectionBackground: rgba(90, 93, 94, .31);--vscode-notifications-foreground: #cccccc;--vscode-notifications-background: #252526;--vscode-notificationLink-foreground: #3794ff;--vscode-notificationCenterHeader-background: #303031;--vscode-notifications-border: #303031;--vscode-notificationsErrorIcon-foreground: #f14c4c;--vscode-notificationsWarningIcon-foreground: #cca700;--vscode-notificationsInfoIcon-foreground: #3794ff;--vscode-commandCenter-foreground: #cccccc;--vscode-commandCenter-activeForeground: #cccccc;--vscode-commandCenter-activeBackground: rgba(90, 93, 94, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(204, 204, 204, .5);--vscode-editorCommentsWidget-unresolvedBorder: #3794ff;--vscode-editorCommentsWidget-rangeBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(55, 148, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(55, 148, 255, .4);--vscode-editorGutter-commentRangeForeground: #37373d;--vscode-debugToolBar-background: #333333;--vscode-debugIcon-startForeground: #89d185;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 0, .2);--vscode-editor-focusedStackFrameHighlightBackground: rgba(122, 189, 122, .3);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .2);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #e7e7e7;--vscode-settings-modifiedItemIndicator: #0c7d9d;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #3c3c3c;--vscode-settings-dropdownForeground: #f0f0f0;--vscode-settings-dropdownBorder: #3c3c3c;--vscode-settings-dropdownListBorder: #454545;--vscode-settings-checkboxBackground: #3c3c3c;--vscode-settings-checkboxForeground: #f0f0f0;--vscode-settings-checkboxBorder: #3c3c3c;--vscode-settings-textInputBackground: #3c3c3c;--vscode-settings-textInputForeground: #cccccc;--vscode-settings-numberInputBackground: #3c3c3c;--vscode-settings-numberInputForeground: #cccccc;--vscode-settings-focusedRowBackground: rgba(42, 45, 46, .6);--vscode-settings-rowHoverBackground: rgba(42, 45, 46, .3);--vscode-settings-focusedRowBorder: rgba(255, 255, 255, .12);--vscode-terminal-foreground: #cccccc;--vscode-terminal-selectionBackground: #264f78;--vscode-terminal-inactiveSelectionBackground: #3a3d41;--vscode-terminalCommandDecoration-defaultBackground: rgba(255, 255, 255, .25);--vscode-terminalCommandDecoration-successBackground: #1b81a8;--vscode-terminalCommandDecoration-errorBackground: #f14c4c;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #515c6a;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(83, 89, 93, .5);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #f14c4c;--vscode-testing-peekHeaderBackground: rgba(241, 76, 76, .1);--vscode-testing-message\.error\.decorationForeground: #f14c4c;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(212, 212, 212, .5);--vscode-welcomePage-tileBackground: #252526;--vscode-welcomePage-tileHoverBackground: #2c2c2d;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .36);--vscode-welcomePage-progress\.background: #3c3c3c;--vscode-welcomePage-progress\.foreground: #3794ff;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #420b0d;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(255, 255, 255, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #1b81a8;--vscode-editorGutter-addedBackground: #487e02;--vscode-editorGutter-deletedBackground: #f14c4c;--vscode-minimapGutter-modifiedBackground: #1b81a8;--vscode-minimapGutter-addedBackground: #487e02;--vscode-minimapGutter-deletedBackground: #f14c4c;--vscode-editorOverviewRuler-modifiedForeground: rgba(27, 129, 168, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 126, 2, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(241, 76, 76, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #ffcc00;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #37373d;--vscode-notebook-focusedEditorBorder: #007fd4;--vscode-notebookStatusSuccessIcon-foreground: #89d185;--vscode-notebookStatusErrorIcon-foreground: #f48771;--vscode-notebookStatusRunningIcon-foreground: #cccccc;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: #37373d;--vscode-notebook-selectedCellBorder: #37373d;--vscode-notebook-focusedCellBorder: #007fd4;--vscode-notebook-inactiveFocusedCellBorder: #37373d;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(255, 255, 255, .15);--vscode-notebook-cellInsertionIndicator: #007fd4;--vscode-notebookScrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-notebook-symbolHighlightBackground: rgba(255, 255, 255, .04);--vscode-notebook-cellEditorBackground: #252526;--vscode-notebook-editorBackground: #1e1e1e;--vscode-keybindingTable-headerBackground: rgba(204, 204, 204, .04);--vscode-keybindingTable-rowsBackground: rgba(204, 204, 204, .04);--vscode-scm-providerBorder: #454545;--vscode-debugTokenExpression-name: #c586c0;--vscode-debugTokenExpression-value: rgba(204, 204, 204, .6);--vscode-debugTokenExpression-string: #ce9178;--vscode-debugTokenExpression-boolean: #4e94ce;--vscode-debugTokenExpression-number: #b5cea8;--vscode-debugTokenExpression-error: #f48771;--vscode-debugView-exceptionLabelForeground: #cccccc;--vscode-debugView-exceptionLabelBackground: #6c2022;--vscode-debugView-stateLabelForeground: #cccccc;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #3794ff;--vscode-debugConsole-warningForeground: #cca700;--vscode-debugConsole-errorForeground: #f48771;--vscode-debugConsole-sourceForeground: #cccccc;--vscode-debugConsoleInputIcon-foreground: #cccccc;--vscode-debugIcon-pauseForeground: #75beff;--vscode-debugIcon-stopForeground: #f48771;--vscode-debugIcon-disconnectForeground: #f48771;--vscode-debugIcon-restartForeground: #89d185;--vscode-debugIcon-stepOverForeground: #75beff;--vscode-debugIcon-stepIntoForeground: #75beff;--vscode-debugIcon-stepOutForeground: #75beff;--vscode-debugIcon-continueForeground: #75beff;--vscode-debugIcon-stepBackForeground: #75beff;--vscode-extensionButton-prominentBackground: #0e639c;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #1177bb;--vscode-extensionIcon-starForeground: #ff8e00;--vscode-extensionIcon-verifiedForeground: #3794ff;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #d758b3;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #0dbc79;--vscode-terminal-ansiYellow: #e5e510;--vscode-terminal-ansiBlue: #2472c8;--vscode-terminal-ansiMagenta: #bc3fbc;--vscode-terminal-ansiCyan: #11a8cd;--vscode-terminal-ansiWhite: #e5e5e5;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #f14c4c;--vscode-terminal-ansiBrightGreen: #23d18b;--vscode-terminal-ansiBrightYellow: #f5f543;--vscode-terminal-ansiBrightBlue: #3b8eea;--vscode-terminal-ansiBrightMagenta: #d670d6;--vscode-terminal-ansiBrightCyan: #29b8db;--vscode-terminal-ansiBrightWhite: #e5e5e5;--vscode-interactive-activeCodeBorder: #3794ff;--vscode-interactive-inactiveCodeBorder: #37373d;--vscode-gitDecoration-addedResourceForeground: #81b88b;--vscode-gitDecoration-modifiedResourceForeground: #e2c08d;--vscode-gitDecoration-deletedResourceForeground: #c74e39;--vscode-gitDecoration-renamedResourceForeground: #73c991;--vscode-gitDecoration-untrackedResourceForeground: #73c991;--vscode-gitDecoration-ignoredResourceForeground: #8c8c8c;--vscode-gitDecoration-stageModifiedResourceForeground: #e2c08d;--vscode-gitDecoration-stageDeletedResourceForeground: #c74e39;--vscode-gitDecoration-conflictingResourceForeground: #e4676b;--vscode-gitDecoration-submoduleResourceForeground: #8db9e2}.xterm-wrapper{padding-left:5px}.xterm-wrapper .xterm-viewport{background-color:var(--vscode-panel-background)!important;color:var(--vscode-foreground)!important}.filters{flex:none;display:flex;flex-direction:column;margin:2px 0}.filter-list{padding:0 10px 10px;-webkit-user-select:none;user-select:none}.filter-title,.filter-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer}.filter-label{color:var(--vscode-disabledForeground)}.filter-summary{line-height:24px;margin-left:24px}.filter-summary .filter-label{margin-left:5px}.filter-entry{line-height:24px}.filter-entry label{display:flex;align-items:center;cursor:pointer}.filter-entry input{flex:none;display:flex;align-items:center;cursor:pointer}.filter-entry label div{overflow:hidden;text-overflow:ellipsis}.ui-mode-tree-item{flex:auto}.ui-mode-tree-item-title{flex:auto;text-overflow:ellipsis;overflow:hidden}.ui-mode-tree-item-time{flex:none;color:var(--vscode-editorCodeLens-foreground);margin:0 4px;-webkit-user-select:none;user-select:none}.tests-tree-view .tree-view-entry.selected .ui-mode-tree-item-time,.tests-tree-view .tree-view-entry.highlighted .ui-mode-tree-item-time{display:none}.tests-tree-view .tree-view-entry:not(.highlighted):not(.selected) .toolbar-button:not(.toggled){display:none}.tag{display:inline-block;padding:0 8px;font-size:12px;font-weight:500;line-height:18px;border:1px solid transparent;border-radius:2em;background-color:#8c959f;color:#fff;margin:0 10px;flex:none;font-weight:600}.tag-color-0{background-color:#ddf4ff;color:#0550ae;border:1px solid #218bff}.tag-color-1{background-color:#fff8c5;color:#7d4e00;border:1px solid #bf8700}.tag-color-2{background-color:#fbefff;color:#6e40c9;border:1px solid #a475f9}.tag-color-3{background-color:#ffeff7;color:#99286e;border:1px solid #e85aad}.tag-color-4{background-color:#fff0eb;color:#9e2f1c;border:1px solid #EA6045}.tag-color-5{background-color:#fff1e5;color:#9b4215;border:1px solid #e16f24}.dark-mode .tag-color-0{background-color:#051d4d;color:#80ccff;border:1px solid #218bff}.dark-mode .tag-color-1{background-color:#3b2300;color:#eac54f;border:1px solid #bf8700}.dark-mode .tag-color-2{background-color:#271052;color:#d2a8ff;border:1px solid #a475f9}.dark-mode .tag-color-3{background-color:#42062a;color:#ff9bce;border:1px solid #e85aad}.dark-mode .tag-color-4{background-color:#460701;color:#ffa28b;border:1px solid #EC6547}.dark-mode .tag-color-5{background-color:#471700;color:#ffa657;border:1px solid #e16f24}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang="en" translate="no">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<link rel="icon" href="./playwright-logo.svg" type="image/svg+xml">
|
|
8
|
+
<title>Playwright Test</title>
|
|
9
|
+
<script type="module" crossorigin src="./uiMode.Bewj7-uD.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="./assets/defaultSettingsView-ConrJv9G.js">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="./defaultSettingsView.B4dS75f0.css">
|
|
12
|
+
<link rel="stylesheet" crossorigin href="./uiMode.Btcz36p_.css">
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="root"></div>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
|
3
|
+
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
4
|
+
* https://github.com/chjj/term.js
|
|
5
|
+
* @license MIT
|
|
6
|
+
*
|
|
7
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
* in the Software without restriction, including without limitation the rights
|
|
10
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
* furnished to do so, subject to the following conditions:
|
|
13
|
+
*
|
|
14
|
+
* The above copyright notice and this permission notice shall be included in
|
|
15
|
+
* all copies or substantial portions of the Software.
|
|
16
|
+
*
|
|
17
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
* THE SOFTWARE.
|
|
24
|
+
*
|
|
25
|
+
* Originally forked from (with the author's permission):
|
|
26
|
+
* Fabrice Bellard's javascript vt100 for jslinux:
|
|
27
|
+
* http://bellard.org/jslinux/
|
|
28
|
+
* Copyright (c) 2011 Fabrice Bellard
|
|
29
|
+
* The original design remains. The terminal itself
|
|
30
|
+
* has been extended to include xterm CSI codes, among
|
|
31
|
+
* other features.
|
|
32
|
+
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
|
package/lib/zipBundle.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
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 zipBundle_exports = {};
|
|
20
|
+
__export(zipBundle_exports, {
|
|
21
|
+
extract: () => extract,
|
|
22
|
+
yauzl: () => yauzl,
|
|
23
|
+
yazl: () => yazl
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(zipBundle_exports);
|
|
26
|
+
const yazl = require("./zipBundleImpl").yazl;
|
|
27
|
+
const yauzl = require("./zipBundleImpl").yauzl;
|
|
28
|
+
const extract = require("./zipBundleImpl").extract;
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
extract,
|
|
32
|
+
yauzl,
|
|
33
|
+
yazl
|
|
34
|
+
});
|