@stablyai/internal-playwright-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +3 -0
- package/ThirdPartyNotices.txt +1134 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/install_webkit_wsl.ps1 +35 -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 +80 -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/cli.js +58 -0
- package/lib/cli/driver.js +97 -0
- package/lib/cli/program.js +634 -0
- package/lib/cli/programWithTestStub.js +74 -0
- package/lib/client/accessibility.js +49 -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 +163 -0
- package/lib/client/browserContext.js +529 -0
- package/lib/client/browserType.js +184 -0
- package/lib/client/cdpSession.js +51 -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/connection.js +314 -0
- package/lib/client/consoleMessage.js +54 -0
- package/lib/client/coverage.js +44 -0
- package/lib/client/dialog.js +56 -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 +99 -0
- package/lib/client/fetch.js +369 -0
- package/lib/client/fileChooser.js +46 -0
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +408 -0
- package/lib/client/harRouter.js +87 -0
- package/lib/client/input.js +84 -0
- package/lib/client/jsHandle.js +109 -0
- package/lib/client/jsonPipe.js +39 -0
- package/lib/client/localUtils.js +60 -0
- package/lib/client/locator.js +368 -0
- package/lib/client/network.js +747 -0
- package/lib/client/page.js +721 -0
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +71 -0
- package/lib/client/selectors.js +55 -0
- package/lib/client/stream.js +39 -0
- package/lib/client/timeoutSettings.js +79 -0
- package/lib/client/tracing.js +117 -0
- package/lib/client/types.js +28 -0
- package/lib/client/video.js +59 -0
- package/lib/client/waiter.js +142 -0
- package/lib/client/webError.js +39 -0
- package/lib/client/webSocket.js +93 -0
- package/lib/client/worker.js +63 -0
- package/lib/client/writableStream.js +39 -0
- package/lib/common/debugLogger.js +90 -0
- package/lib/common/socksProxy.js +569 -0
- package/lib/common/timeoutSettings.js +73 -0
- package/lib/common/types.js +5 -0
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +28 -0
- package/lib/generated/consoleApiSource.js +28 -0
- package/lib/generated/injectedScriptSource.js +28 -0
- package/lib/generated/pollingRecorderSource.js +28 -0
- package/lib/generated/recorderSource.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/image_tools/colorUtils.js +98 -0
- package/lib/image_tools/compare.js +108 -0
- package/lib/image_tools/imageChannel.js +70 -0
- package/lib/image_tools/stats.js +102 -0
- package/lib/inProcessFactory.js +60 -0
- package/lib/index.js +19 -0
- package/lib/inprocess.js +3 -0
- package/lib/outofprocess.js +76 -0
- package/lib/protocol/debug.js +27 -0
- package/lib/protocol/serializers.js +192 -0
- package/lib/protocol/transport.js +82 -0
- package/lib/protocol/validator.js +2919 -0
- package/lib/protocol/validatorPrimitives.js +193 -0
- package/lib/remote/playwrightConnection.js +129 -0
- package/lib/remote/playwrightServer.js +335 -0
- package/lib/server/accessibility.js +69 -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 +490 -0
- package/lib/server/bidi/bidiChromium.js +153 -0
- package/lib/server/bidi/bidiConnection.js +212 -0
- package/lib/server/bidi/bidiExecutionContext.js +221 -0
- package/lib/server/bidi/bidiFirefox.js +130 -0
- package/lib/server/bidi/bidiInput.js +146 -0
- package/lib/server/bidi/bidiNetworkManager.js +383 -0
- package/lib/server/bidi/bidiOverCdp.js +102 -0
- package/lib/server/bidi/bidiPage.js +552 -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/bidiDeserializer.js +98 -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 +179 -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 +259 -0
- package/lib/server/browser.js +149 -0
- package/lib/server/browserContext.js +695 -0
- package/lib/server/browserType.js +328 -0
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +402 -0
- package/lib/server/chromium/chromiumSwitches.js +95 -0
- package/lib/server/chromium/crAccessibility.js +263 -0
- package/lib/server/chromium/crBrowser.js +501 -0
- package/lib/server/chromium/crConnection.js +202 -0
- package/lib/server/chromium/crCoverage.js +235 -0
- package/lib/server/chromium/crDevTools.js +113 -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 +666 -0
- package/lib/server/chromium/crPage.js +1069 -0
- package/lib/server/chromium/crPdf.js +121 -0
- package/lib/server/chromium/crProtocolHelper.js +145 -0
- package/lib/server/chromium/crServiceWorker.js +123 -0
- package/lib/server/chromium/defaultFontFamilies.js +162 -0
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +113 -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 +270 -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 +53 -0
- package/lib/server/cookieStore.js +206 -0
- package/lib/server/debugController.js +191 -0
- package/lib/server/debugger.js +119 -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 +364 -0
- package/lib/server/dispatchers/browserDispatcher.js +118 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
- package/lib/server/dispatchers/dialogDispatcher.js +47 -0
- package/lib/server/dispatchers/dispatcher.js +371 -0
- package/lib/server/dispatchers/electronDispatcher.js +89 -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 +149 -0
- package/lib/server/dispatchers/networkDispatchers.js +213 -0
- package/lib/server/dispatchers/pageDispatcher.js +401 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
- package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
- package/lib/server/dispatchers/streamDispatcher.js +67 -0
- package/lib/server/dispatchers/tracingDispatcher.js +68 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
- package/lib/server/dom.js +806 -0
- package/lib/server/download.js +70 -0
- package/lib/server/electron/electron.js +270 -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/ffAccessibility.js +238 -0
- package/lib/server/firefox/ffBrowser.js +428 -0
- package/lib/server/firefox/ffConnection.js +147 -0
- package/lib/server/firefox/ffExecutionContext.js +150 -0
- package/lib/server/firefox/ffInput.js +159 -0
- package/lib/server/firefox/ffNetworkManager.js +256 -0
- package/lib/server/firefox/ffPage.js +503 -0
- package/lib/server/firefox/firefox.js +116 -0
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +147 -0
- package/lib/server/frameSelectors.js +156 -0
- package/lib/server/frames.js +1502 -0
- package/lib/server/har/harRecorder.js +147 -0
- package/lib/server/har/harTracer.js +607 -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 +273 -0
- package/lib/server/instrumentation.js +69 -0
- package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
- package/lib/server/javascript.js +291 -0
- package/lib/server/launchApp.js +128 -0
- package/lib/server/localUtils.js +218 -0
- package/lib/server/macEditingCommands.js +143 -0
- package/lib/server/network.js +629 -0
- package/lib/server/page.js +871 -0
- package/lib/server/pipeTransport.js +89 -0
- package/lib/server/playwright.js +69 -0
- package/lib/server/progress.js +112 -0
- package/lib/server/protocolError.js +52 -0
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/codeGenerator.js +153 -0
- package/lib/server/recorder/csharp.js +310 -0
- package/lib/server/recorder/java.js +248 -0
- package/lib/server/recorder/javascript.js +229 -0
- package/lib/server/recorder/jsonl.js +47 -0
- package/lib/server/recorder/language.js +44 -0
- package/lib/server/recorder/python.js +276 -0
- package/lib/server/recorder/recorderActions.js +5 -0
- package/lib/server/recorder/recorderApp.js +387 -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/throttledFile.js +57 -0
- package/lib/server/recorder/utils.js +45 -0
- package/lib/server/recorder.js +499 -0
- package/lib/server/registry/browserFetcher.js +175 -0
- package/lib/server/registry/dependencies.js +371 -0
- package/lib/server/registry/index.js +1331 -0
- package/lib/server/registry/nativeDeps.js +1280 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +120 -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/stably/ai-tools/http-request.js +70 -0
- package/lib/server/stably/ai-tools/stablyApiCaller.js +137 -0
- package/lib/server/stably/autohealing/elementHandleFromCoordinates.js +64 -0
- package/lib/server/stably/autohealing/healingService.js +228 -0
- package/lib/server/stably/autohealing/screenshotFrame.js +41 -0
- package/lib/server/stably/constants.js +31 -0
- package/lib/server/trace/recorder/snapshotter.js +147 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
- package/lib/server/trace/recorder/tracing.js +602 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
- package/lib/server/trace/viewer/traceViewer.js +240 -0
- package/lib/server/transport.js +181 -0
- package/lib/server/types.js +28 -0
- package/lib/server/usKeyboardLayout.js +145 -0
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -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/env.js +73 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +111 -0
- package/lib/server/utils/httpServer.js +218 -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 +233 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +241 -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/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +119 -0
- package/lib/server/webkit/wkAccessibility.js +237 -0
- package/lib/server/webkit/wkBrowser.js +339 -0
- package/lib/server/webkit/wkConnection.js +149 -0
- package/lib/server/webkit/wkExecutionContext.js +154 -0
- package/lib/server/webkit/wkInput.js +181 -0
- package/lib/server/webkit/wkInterceptableRequest.js +169 -0
- package/lib/server/webkit/wkPage.js +1134 -0
- package/lib/server/webkit/wkProvisionalPage.js +83 -0
- package/lib/server/webkit/wkWorkers.js +104 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
- package/lib/third_party/diff_match_patch.js +2222 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/utils/ascii.js +31 -0
- package/lib/utils/comparators.js +171 -0
- package/lib/utils/crypto.js +33 -0
- package/lib/utils/debug.js +46 -0
- package/lib/utils/debugLogger.js +89 -0
- package/lib/utils/env.js +49 -0
- package/lib/utils/eventsHelper.js +38 -0
- package/lib/utils/fileUtils.js +205 -0
- package/lib/utils/glob.js +83 -0
- package/lib/utils/happy-eyeballs.js +160 -0
- package/lib/utils/headers.js +52 -0
- package/lib/utils/hostPlatform.js +128 -0
- package/lib/utils/httpServer.js +236 -0
- package/lib/utils/index.js +346 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -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/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +673 -0
- package/lib/utils/isomorphic/locatorParser.js +176 -0
- package/lib/utils/isomorphic/locatorUtils.js +81 -0
- package/lib/utils/isomorphic/manualPromise.js +114 -0
- package/lib/utils/isomorphic/mimeType.js +459 -0
- package/lib/utils/isomorphic/multimap.js +80 -0
- package/lib/utils/isomorphic/protocolFormatter.js +78 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -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 +155 -0
- package/lib/utils/isomorphic/time.js +49 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +58 -0
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +176 -0
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils/linuxUtils.js +78 -0
- package/lib/utils/manualPromise.js +109 -0
- package/lib/utils/mimeType.js +29 -0
- package/lib/utils/multimap.js +75 -0
- package/lib/utils/network.js +188 -0
- package/lib/utils/processLauncher.js +248 -0
- package/lib/utils/profiler.js +53 -0
- package/lib/utils/rtti.js +44 -0
- package/lib/utils/semaphore.js +51 -0
- package/lib/utils/spawnAsync.js +45 -0
- package/lib/utils/stackTrace.js +121 -0
- package/lib/utils/task.js +58 -0
- package/lib/utils/time.js +37 -0
- package/lib/utils/timeoutRunner.js +66 -0
- package/lib/utils/traceUtils.js +44 -0
- package/lib/utils/userAgent.js +105 -0
- package/lib/utils/wsServer.js +127 -0
- package/lib/utils/zipFile.js +75 -0
- package/lib/utils/zones.js +62 -0
- package/lib/utils.js +107 -0
- package/lib/utilsBundle.js +109 -0
- package/lib/utilsBundleImpl/index.js +218 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +84 -0
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
- package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-Bhnc5o2x.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-ClwvkA2N.js +265 -0
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
- package/lib/vite/traceViewer/index.DFO9NNF5.js +2 -0
- package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
- package/lib/vite/traceViewer/index.html +43 -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 +3 -0
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
- package/lib/vite/traceViewer/uiMode.Shu3QS-1.js +5 -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 +43 -0
- package/types/protocol.d.ts +23130 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +22857 -0
@@ -0,0 +1,184 @@
|
|
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 browserType_exports = {};
|
20
|
+
__export(browserType_exports, {
|
21
|
+
BrowserType: () => BrowserType
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(browserType_exports);
|
24
|
+
var import_browser = require("./browser");
|
25
|
+
var import_browserContext = require("./browserContext");
|
26
|
+
var import_channelOwner = require("./channelOwner");
|
27
|
+
var import_clientHelper = require("./clientHelper");
|
28
|
+
var import_events = require("./events");
|
29
|
+
var import_assert = require("../utils/isomorphic/assert");
|
30
|
+
var import_headers = require("../utils/isomorphic/headers");
|
31
|
+
var import_time = require("../utils/isomorphic/time");
|
32
|
+
var import_timeoutRunner = require("../utils/isomorphic/timeoutRunner");
|
33
|
+
var import_webSocket = require("./webSocket");
|
34
|
+
var import_timeoutSettings = require("./timeoutSettings");
|
35
|
+
class BrowserType extends import_channelOwner.ChannelOwner {
|
36
|
+
constructor() {
|
37
|
+
super(...arguments);
|
38
|
+
this._contexts = /* @__PURE__ */ new Set();
|
39
|
+
}
|
40
|
+
static from(browserType) {
|
41
|
+
return browserType._object;
|
42
|
+
}
|
43
|
+
executablePath() {
|
44
|
+
if (!this._initializer.executablePath)
|
45
|
+
throw new Error("Browser is not supported on current platform");
|
46
|
+
return this._initializer.executablePath;
|
47
|
+
}
|
48
|
+
name() {
|
49
|
+
return this._initializer.name;
|
50
|
+
}
|
51
|
+
async launch(options = {}) {
|
52
|
+
(0, import_assert.assert)(!options.userDataDir, "userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead");
|
53
|
+
(0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
|
54
|
+
const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
|
55
|
+
options = { ...this._playwright._defaultLaunchOptions, ...options };
|
56
|
+
const launchOptions = {
|
57
|
+
...options,
|
58
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
59
|
+
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
60
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0,
|
61
|
+
timeout: new import_timeoutSettings.TimeoutSettings(this._platform).launchTimeout(options)
|
62
|
+
};
|
63
|
+
return await this._wrapApiCall(async () => {
|
64
|
+
const browser = import_browser.Browser.from((await this._channel.launch(launchOptions)).browser);
|
65
|
+
browser._connectToBrowserType(this, options, logger);
|
66
|
+
return browser;
|
67
|
+
});
|
68
|
+
}
|
69
|
+
async launchServer(options = {}) {
|
70
|
+
if (!this._serverLauncher)
|
71
|
+
throw new Error("Launching server is not supported");
|
72
|
+
options = { ...this._playwright._defaultLaunchOptions, ...options };
|
73
|
+
return await this._serverLauncher.launchServer(options);
|
74
|
+
}
|
75
|
+
async launchPersistentContext(userDataDir, options = {}) {
|
76
|
+
const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
|
77
|
+
(0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
|
78
|
+
options = this._playwright.selectors._withSelectorOptions({
|
79
|
+
...this._playwright._defaultLaunchOptions,
|
80
|
+
...this._playwright._defaultContextOptions,
|
81
|
+
...options
|
82
|
+
});
|
83
|
+
const contextParams = await (0, import_browserContext.prepareBrowserContextParams)(this._platform, options);
|
84
|
+
const persistentParams = {
|
85
|
+
...contextParams,
|
86
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
87
|
+
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
88
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0,
|
89
|
+
channel: options.channel,
|
90
|
+
userDataDir: this._platform.path().isAbsolute(userDataDir) || !userDataDir ? userDataDir : this._platform.path().resolve(userDataDir),
|
91
|
+
timeout: new import_timeoutSettings.TimeoutSettings(this._platform).launchTimeout(options)
|
92
|
+
};
|
93
|
+
const context = await this._wrapApiCall(async () => {
|
94
|
+
const result = await this._channel.launchPersistentContext(persistentParams);
|
95
|
+
const browser = import_browser.Browser.from(result.browser);
|
96
|
+
browser._connectToBrowserType(this, options, logger);
|
97
|
+
const context2 = import_browserContext.BrowserContext.from(result.context);
|
98
|
+
await context2._initializeHarFromOptions(options.recordHar);
|
99
|
+
return context2;
|
100
|
+
});
|
101
|
+
await this._instrumentation.runAfterCreateBrowserContext(context);
|
102
|
+
return context;
|
103
|
+
}
|
104
|
+
async connect(optionsOrWsEndpoint, options) {
|
105
|
+
if (typeof optionsOrWsEndpoint === "string")
|
106
|
+
return await this._connect({ ...options, wsEndpoint: optionsOrWsEndpoint });
|
107
|
+
(0, import_assert.assert)(optionsOrWsEndpoint.wsEndpoint, "options.wsEndpoint is required");
|
108
|
+
return await this._connect(optionsOrWsEndpoint);
|
109
|
+
}
|
110
|
+
async _connect(params) {
|
111
|
+
const logger = params.logger;
|
112
|
+
return await this._wrapApiCall(async () => {
|
113
|
+
const deadline = params.timeout ? (0, import_time.monotonicTime)() + params.timeout : 0;
|
114
|
+
const headers = { "x-playwright-browser": this.name(), ...params.headers };
|
115
|
+
const connectParams = {
|
116
|
+
wsEndpoint: params.wsEndpoint,
|
117
|
+
headers,
|
118
|
+
exposeNetwork: params.exposeNetwork ?? params._exposeNetwork,
|
119
|
+
slowMo: params.slowMo,
|
120
|
+
timeout: params.timeout || 0
|
121
|
+
};
|
122
|
+
if (params.__testHookRedirectPortForwarding)
|
123
|
+
connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
|
124
|
+
const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
|
125
|
+
let browser;
|
126
|
+
connection.on("close", () => {
|
127
|
+
for (const context of browser?.contexts() || []) {
|
128
|
+
for (const page of context.pages())
|
129
|
+
page._onClose();
|
130
|
+
context._onClose();
|
131
|
+
}
|
132
|
+
setTimeout(() => browser?._didClose(), 0);
|
133
|
+
});
|
134
|
+
const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
|
135
|
+
if (params.__testHookBeforeCreateBrowser)
|
136
|
+
await params.__testHookBeforeCreateBrowser();
|
137
|
+
const playwright = await connection.initializePlaywright();
|
138
|
+
if (!playwright._initializer.preLaunchedBrowser) {
|
139
|
+
connection.close();
|
140
|
+
throw new Error("Malformed endpoint. Did you use BrowserType.launchServer method?");
|
141
|
+
}
|
142
|
+
playwright.selectors = this._playwright.selectors;
|
143
|
+
browser = import_browser.Browser.from(playwright._initializer.preLaunchedBrowser);
|
144
|
+
browser._connectToBrowserType(this, {}, logger);
|
145
|
+
browser._shouldCloseConnectionOnClose = true;
|
146
|
+
browser.on(import_events.Events.Browser.Disconnected, () => connection.close());
|
147
|
+
return browser;
|
148
|
+
}, deadline);
|
149
|
+
if (!result.timedOut) {
|
150
|
+
return result.result;
|
151
|
+
} else {
|
152
|
+
connection.close();
|
153
|
+
throw new Error(`Timeout ${params.timeout}ms exceeded`);
|
154
|
+
}
|
155
|
+
});
|
156
|
+
}
|
157
|
+
async connectOverCDP(endpointURLOrOptions, options) {
|
158
|
+
if (typeof endpointURLOrOptions === "string")
|
159
|
+
return await this._connectOverCDP(endpointURLOrOptions, options);
|
160
|
+
const endpointURL = "endpointURL" in endpointURLOrOptions ? endpointURLOrOptions.endpointURL : endpointURLOrOptions.wsEndpoint;
|
161
|
+
(0, import_assert.assert)(endpointURL, "Cannot connect over CDP without wsEndpoint.");
|
162
|
+
return await this.connectOverCDP(endpointURL, endpointURLOrOptions);
|
163
|
+
}
|
164
|
+
async _connectOverCDP(endpointURL, params = {}) {
|
165
|
+
if (this.name() !== "chromium")
|
166
|
+
throw new Error("Connecting over CDP is only supported in Chromium.");
|
167
|
+
const headers = params.headers ? (0, import_headers.headersObjectToArray)(params.headers) : void 0;
|
168
|
+
const result = await this._channel.connectOverCDP({
|
169
|
+
endpointURL,
|
170
|
+
headers,
|
171
|
+
slowMo: params.slowMo,
|
172
|
+
timeout: new import_timeoutSettings.TimeoutSettings(this._platform).timeout(params)
|
173
|
+
});
|
174
|
+
const browser = import_browser.Browser.from(result.browser);
|
175
|
+
browser._connectToBrowserType(this, {}, params.logger);
|
176
|
+
if (result.defaultContext)
|
177
|
+
await this._instrumentation.runAfterCreateBrowserContext(import_browserContext.BrowserContext.from(result.defaultContext));
|
178
|
+
return browser;
|
179
|
+
}
|
180
|
+
}
|
181
|
+
// Annotate the CommonJS export names for ESM import in node:
|
182
|
+
0 && (module.exports = {
|
183
|
+
BrowserType
|
184
|
+
});
|
@@ -0,0 +1,51 @@
|
|
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 cdpSession_exports = {};
|
20
|
+
__export(cdpSession_exports, {
|
21
|
+
CDPSession: () => CDPSession
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(cdpSession_exports);
|
24
|
+
var import_channelOwner = require("./channelOwner");
|
25
|
+
class CDPSession extends import_channelOwner.ChannelOwner {
|
26
|
+
static from(cdpSession) {
|
27
|
+
return cdpSession._object;
|
28
|
+
}
|
29
|
+
constructor(parent, type, guid, initializer) {
|
30
|
+
super(parent, type, guid, initializer);
|
31
|
+
this._channel.on("event", ({ method, params }) => {
|
32
|
+
this.emit(method, params);
|
33
|
+
});
|
34
|
+
this.on = super.on;
|
35
|
+
this.addListener = super.addListener;
|
36
|
+
this.off = super.removeListener;
|
37
|
+
this.removeListener = super.removeListener;
|
38
|
+
this.once = super.once;
|
39
|
+
}
|
40
|
+
async send(method, params) {
|
41
|
+
const result = await this._channel.send({ method, params });
|
42
|
+
return result.result;
|
43
|
+
}
|
44
|
+
async detach() {
|
45
|
+
return await this._channel.detach();
|
46
|
+
}
|
47
|
+
}
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
49
|
+
0 && (module.exports = {
|
50
|
+
CDPSession
|
51
|
+
});
|
@@ -0,0 +1,194 @@
|
|
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 channelOwner_exports = {};
|
20
|
+
__export(channelOwner_exports, {
|
21
|
+
ChannelOwner: () => ChannelOwner
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(channelOwner_exports);
|
24
|
+
var import_eventEmitter = require("./eventEmitter");
|
25
|
+
var import_validator = require("../protocol/validator");
|
26
|
+
var import_protocolMetainfo = require("../utils/isomorphic/protocolMetainfo");
|
27
|
+
var import_clientStackTrace = require("./clientStackTrace");
|
28
|
+
var import_stackTrace = require("../utils/isomorphic/stackTrace");
|
29
|
+
class ChannelOwner extends import_eventEmitter.EventEmitter {
|
30
|
+
constructor(parent, type, guid, initializer) {
|
31
|
+
const connection = parent instanceof ChannelOwner ? parent._connection : parent;
|
32
|
+
super(connection._platform);
|
33
|
+
this._objects = /* @__PURE__ */ new Map();
|
34
|
+
this._eventToSubscriptionMapping = /* @__PURE__ */ new Map();
|
35
|
+
this._wasCollected = false;
|
36
|
+
this.setMaxListeners(0);
|
37
|
+
this._connection = connection;
|
38
|
+
this._type = type;
|
39
|
+
this._guid = guid;
|
40
|
+
this._parent = parent instanceof ChannelOwner ? parent : void 0;
|
41
|
+
this._instrumentation = this._connection._instrumentation;
|
42
|
+
this._connection._objects.set(guid, this);
|
43
|
+
if (this._parent) {
|
44
|
+
this._parent._objects.set(guid, this);
|
45
|
+
this._logger = this._parent._logger;
|
46
|
+
}
|
47
|
+
this._channel = this._createChannel(new import_eventEmitter.EventEmitter(connection._platform));
|
48
|
+
this._initializer = initializer;
|
49
|
+
}
|
50
|
+
_setEventToSubscriptionMapping(mapping) {
|
51
|
+
this._eventToSubscriptionMapping = mapping;
|
52
|
+
}
|
53
|
+
_updateSubscription(event, enabled) {
|
54
|
+
const protocolEvent = this._eventToSubscriptionMapping.get(String(event));
|
55
|
+
if (protocolEvent)
|
56
|
+
this._channel.updateSubscription({ event: protocolEvent, enabled }).catch(() => {
|
57
|
+
});
|
58
|
+
}
|
59
|
+
on(event, listener) {
|
60
|
+
if (!this.listenerCount(event))
|
61
|
+
this._updateSubscription(event, true);
|
62
|
+
super.on(event, listener);
|
63
|
+
return this;
|
64
|
+
}
|
65
|
+
addListener(event, listener) {
|
66
|
+
if (!this.listenerCount(event))
|
67
|
+
this._updateSubscription(event, true);
|
68
|
+
super.addListener(event, listener);
|
69
|
+
return this;
|
70
|
+
}
|
71
|
+
prependListener(event, listener) {
|
72
|
+
if (!this.listenerCount(event))
|
73
|
+
this._updateSubscription(event, true);
|
74
|
+
super.prependListener(event, listener);
|
75
|
+
return this;
|
76
|
+
}
|
77
|
+
off(event, listener) {
|
78
|
+
super.off(event, listener);
|
79
|
+
if (!this.listenerCount(event))
|
80
|
+
this._updateSubscription(event, false);
|
81
|
+
return this;
|
82
|
+
}
|
83
|
+
removeListener(event, listener) {
|
84
|
+
super.removeListener(event, listener);
|
85
|
+
if (!this.listenerCount(event))
|
86
|
+
this._updateSubscription(event, false);
|
87
|
+
return this;
|
88
|
+
}
|
89
|
+
_adopt(child) {
|
90
|
+
child._parent._objects.delete(child._guid);
|
91
|
+
this._objects.set(child._guid, child);
|
92
|
+
child._parent = this;
|
93
|
+
}
|
94
|
+
_dispose(reason) {
|
95
|
+
if (this._parent)
|
96
|
+
this._parent._objects.delete(this._guid);
|
97
|
+
this._connection._objects.delete(this._guid);
|
98
|
+
this._wasCollected = reason === "gc";
|
99
|
+
for (const object of [...this._objects.values()])
|
100
|
+
object._dispose(reason);
|
101
|
+
this._objects.clear();
|
102
|
+
}
|
103
|
+
_debugScopeState() {
|
104
|
+
return {
|
105
|
+
_guid: this._guid,
|
106
|
+
objects: Array.from(this._objects.values()).map((o) => o._debugScopeState())
|
107
|
+
};
|
108
|
+
}
|
109
|
+
_validatorToWireContext() {
|
110
|
+
return {
|
111
|
+
tChannelImpl: tChannelImplToWire,
|
112
|
+
binary: this._connection.rawBuffers() ? "buffer" : "toBase64",
|
113
|
+
isUnderTest: () => this._platform.isUnderTest()
|
114
|
+
};
|
115
|
+
}
|
116
|
+
_createChannel(base) {
|
117
|
+
const channel = new Proxy(base, {
|
118
|
+
get: (obj, prop) => {
|
119
|
+
if (typeof prop === "string") {
|
120
|
+
const validator = (0, import_validator.maybeFindValidator)(this._type, prop, "Params");
|
121
|
+
const { internal } = import_protocolMetainfo.methodMetainfo.get(this._type + "." + prop) || {};
|
122
|
+
if (validator) {
|
123
|
+
return async (params) => {
|
124
|
+
return await this._wrapApiCall(async (apiZone) => {
|
125
|
+
const validatedParams = validator(params, "", this._validatorToWireContext());
|
126
|
+
if (!apiZone.internal && !apiZone.reported) {
|
127
|
+
apiZone.reported = true;
|
128
|
+
this._instrumentation.onApiCallBegin(apiZone, { type: this._type, method: prop, params });
|
129
|
+
logApiCall(this._platform, this._logger, `=> ${apiZone.apiName} started`);
|
130
|
+
return await this._connection.sendMessageToServer(this, prop, validatedParams, apiZone);
|
131
|
+
}
|
132
|
+
return await this._connection.sendMessageToServer(this, prop, validatedParams, { internal: true });
|
133
|
+
}, { internal });
|
134
|
+
};
|
135
|
+
}
|
136
|
+
}
|
137
|
+
return obj[prop];
|
138
|
+
}
|
139
|
+
});
|
140
|
+
channel._object = this;
|
141
|
+
return channel;
|
142
|
+
}
|
143
|
+
async _wrapApiCall(func, options) {
|
144
|
+
const logger = this._logger;
|
145
|
+
const existingApiZone = this._platform.zones.current().data();
|
146
|
+
if (existingApiZone)
|
147
|
+
return await func(existingApiZone);
|
148
|
+
const stackTrace = (0, import_clientStackTrace.captureLibraryStackTrace)(this._platform);
|
149
|
+
const apiZone = { title: options?.title, apiName: stackTrace.apiName, frames: stackTrace.frames, internal: options?.internal ?? false, reported: false, userData: void 0, stepId: void 0 };
|
150
|
+
try {
|
151
|
+
const result = await this._platform.zones.current().push(apiZone).run(async () => await func(apiZone));
|
152
|
+
if (!options?.internal) {
|
153
|
+
logApiCall(this._platform, logger, `<= ${apiZone.apiName} succeeded`);
|
154
|
+
this._instrumentation.onApiCallEnd(apiZone);
|
155
|
+
}
|
156
|
+
return result;
|
157
|
+
} catch (e) {
|
158
|
+
const innerError = (this._platform.showInternalStackFrames() || this._platform.isUnderTest()) && e.stack ? "\n<inner error>\n" + e.stack : "";
|
159
|
+
if (apiZone.apiName && !apiZone.apiName.includes("<anonymous>"))
|
160
|
+
e.message = apiZone.apiName + ": " + e.message;
|
161
|
+
const stackFrames = "\n" + (0, import_stackTrace.stringifyStackFrames)(stackTrace.frames).join("\n") + innerError;
|
162
|
+
if (stackFrames.trim())
|
163
|
+
e.stack = e.message + stackFrames;
|
164
|
+
else
|
165
|
+
e.stack = "";
|
166
|
+
if (!options?.internal) {
|
167
|
+
apiZone.error = e;
|
168
|
+
logApiCall(this._platform, logger, `<= ${apiZone.apiName} failed`);
|
169
|
+
this._instrumentation.onApiCallEnd(apiZone);
|
170
|
+
}
|
171
|
+
throw e;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
toJSON() {
|
175
|
+
return {
|
176
|
+
_type: this._type,
|
177
|
+
_guid: this._guid
|
178
|
+
};
|
179
|
+
}
|
180
|
+
}
|
181
|
+
function logApiCall(platform, logger, message) {
|
182
|
+
if (logger && logger.isEnabled("api", "info"))
|
183
|
+
logger.log("api", "info", message, [], { color: "cyan" });
|
184
|
+
platform.log("api", message);
|
185
|
+
}
|
186
|
+
function tChannelImplToWire(names, arg, path, context) {
|
187
|
+
if (arg._object instanceof ChannelOwner && (names === "*" || names.includes(arg._object._type)))
|
188
|
+
return { guid: arg._object._guid };
|
189
|
+
throw new import_validator.ValidationError(`${path}: expected channel ${names.toString()}`);
|
190
|
+
}
|
191
|
+
// Annotate the CommonJS export names for ESM import in node:
|
192
|
+
0 && (module.exports = {
|
193
|
+
ChannelOwner
|
194
|
+
});
|
@@ -0,0 +1,64 @@
|
|
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 clientHelper_exports = {};
|
20
|
+
__export(clientHelper_exports, {
|
21
|
+
addSourceUrlToScript: () => addSourceUrlToScript,
|
22
|
+
envObjectToArray: () => envObjectToArray,
|
23
|
+
evaluationScript: () => evaluationScript
|
24
|
+
});
|
25
|
+
module.exports = __toCommonJS(clientHelper_exports);
|
26
|
+
var import_rtti = require("../utils/isomorphic/rtti");
|
27
|
+
function envObjectToArray(env) {
|
28
|
+
const result = [];
|
29
|
+
for (const name in env) {
|
30
|
+
if (!Object.is(env[name], void 0))
|
31
|
+
result.push({ name, value: String(env[name]) });
|
32
|
+
}
|
33
|
+
return result;
|
34
|
+
}
|
35
|
+
async function evaluationScript(platform, fun, arg, addSourceUrl = true) {
|
36
|
+
if (typeof fun === "function") {
|
37
|
+
const source = fun.toString();
|
38
|
+
const argString = Object.is(arg, void 0) ? "undefined" : JSON.stringify(arg);
|
39
|
+
return `(${source})(${argString})`;
|
40
|
+
}
|
41
|
+
if (arg !== void 0)
|
42
|
+
throw new Error("Cannot evaluate a string with arguments");
|
43
|
+
if ((0, import_rtti.isString)(fun))
|
44
|
+
return fun;
|
45
|
+
if (fun.content !== void 0)
|
46
|
+
return fun.content;
|
47
|
+
if (fun.path !== void 0) {
|
48
|
+
let source = await platform.fs().promises.readFile(fun.path, "utf8");
|
49
|
+
if (addSourceUrl)
|
50
|
+
source = addSourceUrlToScript(source, fun.path);
|
51
|
+
return source;
|
52
|
+
}
|
53
|
+
throw new Error("Either path or content property must be present");
|
54
|
+
}
|
55
|
+
function addSourceUrlToScript(source, path) {
|
56
|
+
return `${source}
|
57
|
+
//# sourceURL=${path.replace(/\n/g, "")}`;
|
58
|
+
}
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
60
|
+
0 && (module.exports = {
|
61
|
+
addSourceUrlToScript,
|
62
|
+
envObjectToArray,
|
63
|
+
evaluationScript
|
64
|
+
});
|
@@ -0,0 +1,55 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
var clientInstrumentation_exports = {};
|
20
|
+
__export(clientInstrumentation_exports, {
|
21
|
+
createInstrumentation: () => createInstrumentation
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(clientInstrumentation_exports);
|
24
|
+
function createInstrumentation() {
|
25
|
+
const listeners = [];
|
26
|
+
return new Proxy({}, {
|
27
|
+
get: (obj, prop) => {
|
28
|
+
if (typeof prop !== "string")
|
29
|
+
return obj[prop];
|
30
|
+
if (prop === "addListener")
|
31
|
+
return (listener) => listeners.push(listener);
|
32
|
+
if (prop === "removeListener")
|
33
|
+
return (listener) => listeners.splice(listeners.indexOf(listener), 1);
|
34
|
+
if (prop === "removeAllListeners")
|
35
|
+
return () => listeners.splice(0, listeners.length);
|
36
|
+
if (prop.startsWith("run")) {
|
37
|
+
return async (...params) => {
|
38
|
+
for (const listener of listeners)
|
39
|
+
await listener[prop]?.(...params);
|
40
|
+
};
|
41
|
+
}
|
42
|
+
if (prop.startsWith("on")) {
|
43
|
+
return (...params) => {
|
44
|
+
for (const listener of listeners)
|
45
|
+
listener[prop]?.(...params);
|
46
|
+
};
|
47
|
+
}
|
48
|
+
return obj[prop];
|
49
|
+
}
|
50
|
+
});
|
51
|
+
}
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
53
|
+
0 && (module.exports = {
|
54
|
+
createInstrumentation
|
55
|
+
});
|
@@ -0,0 +1,69 @@
|
|
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 clientStackTrace_exports = {};
|
20
|
+
__export(clientStackTrace_exports, {
|
21
|
+
captureLibraryStackTrace: () => captureLibraryStackTrace
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(clientStackTrace_exports);
|
24
|
+
var import_stackTrace = require("../utils/isomorphic/stackTrace");
|
25
|
+
function captureLibraryStackTrace(platform) {
|
26
|
+
const stack = (0, import_stackTrace.captureRawStack)();
|
27
|
+
let parsedFrames = stack.map((line) => {
|
28
|
+
const frame = (0, import_stackTrace.parseStackFrame)(line, platform.pathSeparator, platform.showInternalStackFrames());
|
29
|
+
if (!frame || !frame.file)
|
30
|
+
return null;
|
31
|
+
const isPlaywrightLibrary = !!platform.coreDir && frame.file.startsWith(platform.coreDir);
|
32
|
+
const parsed = {
|
33
|
+
frame,
|
34
|
+
frameText: line,
|
35
|
+
isPlaywrightLibrary
|
36
|
+
};
|
37
|
+
return parsed;
|
38
|
+
}).filter(Boolean);
|
39
|
+
let apiName = "";
|
40
|
+
for (let i = 0; i < parsedFrames.length - 1; i++) {
|
41
|
+
const parsedFrame = parsedFrames[i];
|
42
|
+
if (parsedFrame.isPlaywrightLibrary && !parsedFrames[i + 1].isPlaywrightLibrary) {
|
43
|
+
apiName = apiName || normalizeAPIName(parsedFrame.frame.function);
|
44
|
+
break;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
function normalizeAPIName(name) {
|
48
|
+
if (!name)
|
49
|
+
return "";
|
50
|
+
const match = name.match(/(API|JS|CDP|[A-Z])(.*)/);
|
51
|
+
if (!match)
|
52
|
+
return name;
|
53
|
+
return match[1].toLowerCase() + match[2];
|
54
|
+
}
|
55
|
+
const filterPrefixes = platform.boxedStackPrefixes();
|
56
|
+
parsedFrames = parsedFrames.filter((f) => {
|
57
|
+
if (filterPrefixes.some((prefix) => f.frame.file.startsWith(prefix)))
|
58
|
+
return false;
|
59
|
+
return true;
|
60
|
+
});
|
61
|
+
return {
|
62
|
+
frames: parsedFrames.map((p) => p.frame),
|
63
|
+
apiName
|
64
|
+
};
|
65
|
+
}
|
66
|
+
// Annotate the CommonJS export names for ESM import in node:
|
67
|
+
0 && (module.exports = {
|
68
|
+
captureLibraryStackTrace
|
69
|
+
});
|
@@ -0,0 +1,68 @@
|
|
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 clock_exports = {};
|
20
|
+
__export(clock_exports, {
|
21
|
+
Clock: () => Clock
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(clock_exports);
|
24
|
+
class Clock {
|
25
|
+
constructor(browserContext) {
|
26
|
+
this._browserContext = browserContext;
|
27
|
+
}
|
28
|
+
async install(options = {}) {
|
29
|
+
await this._browserContext._channel.clockInstall(options.time !== void 0 ? parseTime(options.time) : {});
|
30
|
+
}
|
31
|
+
async fastForward(ticks) {
|
32
|
+
await this._browserContext._channel.clockFastForward(parseTicks(ticks));
|
33
|
+
}
|
34
|
+
async pauseAt(time) {
|
35
|
+
await this._browserContext._channel.clockPauseAt(parseTime(time));
|
36
|
+
}
|
37
|
+
async resume() {
|
38
|
+
await this._browserContext._channel.clockResume({});
|
39
|
+
}
|
40
|
+
async runFor(ticks) {
|
41
|
+
await this._browserContext._channel.clockRunFor(parseTicks(ticks));
|
42
|
+
}
|
43
|
+
async setFixedTime(time) {
|
44
|
+
await this._browserContext._channel.clockSetFixedTime(parseTime(time));
|
45
|
+
}
|
46
|
+
async setSystemTime(time) {
|
47
|
+
await this._browserContext._channel.clockSetSystemTime(parseTime(time));
|
48
|
+
}
|
49
|
+
}
|
50
|
+
function parseTime(time) {
|
51
|
+
if (typeof time === "number")
|
52
|
+
return { timeNumber: time };
|
53
|
+
if (typeof time === "string")
|
54
|
+
return { timeString: time };
|
55
|
+
if (!isFinite(time.getTime()))
|
56
|
+
throw new Error(`Invalid date: ${time}`);
|
57
|
+
return { timeNumber: time.getTime() };
|
58
|
+
}
|
59
|
+
function parseTicks(ticks) {
|
60
|
+
return {
|
61
|
+
ticksNumber: typeof ticks === "number" ? ticks : void 0,
|
62
|
+
ticksString: typeof ticks === "string" ? ticks : void 0
|
63
|
+
};
|
64
|
+
}
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
66
|
+
0 && (module.exports = {
|
67
|
+
Clock
|
68
|
+
});
|