rebrowser-playwright-core 1.49.1 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +381 -55
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +28 -13
- package/index.js +0 -1
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +60 -64
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +314 -354
- package/lib/cli/programWithTestStub.js +51 -44
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +146 -254
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -39
- package/lib/client/browser.js +59 -68
- package/lib/client/browserContext.js +302 -322
- package/lib/client/browserType.js +95 -143
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +109 -139
- package/lib/client/clientHelper.js +49 -42
- package/lib/client/clientInstrumentation.js +40 -35
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +203 -218
- package/lib/client/consoleMessage.js +33 -33
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +74 -76
- package/lib/client/elementHandle.js +126 -163
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +127 -127
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +154 -178
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +189 -307
- package/lib/client/harRouter.js +44 -56
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +55 -71
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +53 -28
- package/lib/client/locator.js +144 -230
- package/lib/client/network.js +285 -301
- package/lib/client/page.js +273 -312
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +62 -57
- package/lib/client/selectors.js +51 -43
- package/lib/client/stream.js +30 -45
- package/lib/client/timeoutSettings.js +75 -0
- package/lib/client/tracing.js +49 -82
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +71 -91
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +111 -0
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +28 -43
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -48
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -42
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2712 -2667
- package/lib/protocol/validatorPrimitives.js +115 -75
- package/lib/remote/playwrightConnection.js +144 -152
- package/lib/remote/playwrightServer.js +106 -77
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -206
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +227 -158
- package/lib/server/bidi/bidiChromium.js +106 -78
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +161 -97
- package/lib/server/bidi/bidiFirefox.js +76 -68
- package/lib/server/bidi/bidiInput.js +90 -102
- package/lib/server/bidi/bidiNetworkManager.js +141 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +262 -261
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +241 -223
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +343 -360
- package/lib/server/browserType.js +169 -181
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +99 -44
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +262 -280
- package/lib/server/chromium/crConnection.js +121 -178
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +64 -55
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +100 -91
- package/lib/server/chromium/crInput.js +101 -88
- package/lib/server/chromium/crNetworkManager.js +269 -370
- package/lib/server/chromium/crPage.js +509 -597
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +85 -69
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +58 -46
- package/lib/server/codegen/csharp.js +191 -156
- package/lib/server/codegen/java.js +163 -125
- package/lib/server/codegen/javascript.js +166 -143
- package/lib/server/codegen/jsonl.js +33 -29
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +102 -154
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +180 -229
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
- package/lib/server/dispatchers/frameDispatcher.js +93 -162
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
- package/lib/server/dispatchers/networkDispatchers.js +92 -109
- package/lib/server/dispatchers/pageDispatcher.js +130 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -44
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
- package/lib/server/dom.js +424 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -175
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +302 -331
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -57
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +218 -274
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +103 -77
- package/lib/server/firefox/ffInput.js +72 -63
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +244 -302
- package/lib/server/firefox/firefox.js +76 -69
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +719 -855
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +288 -224
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -106
- package/lib/server/input.js +136 -166
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +157 -151
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +211 -0
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +263 -297
- package/lib/server/page.js +351 -434
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/contextRecorder.js +135 -148
- package/lib/server/recorder/recorderApp.js +129 -132
- package/lib/server/recorder/recorderCollection.js +57 -57
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +80 -100
- package/lib/server/recorder/recorderUtils.js +59 -72
- package/lib/server/recorder/throttledFile.js +42 -31
- package/lib/server/recorder.js +186 -190
- package/lib/server/registry/browserFetcher.js +107 -100
- package/lib/server/registry/dependencies.js +247 -198
- package/lib/server/registry/index.js +928 -709
- package/lib/server/registry/nativeDeps.js +1073 -461
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -67
- package/lib/server/storageScript.js +154 -0
- package/lib/server/timeoutSettings.js +89 -0
- package/lib/server/trace/recorder/snapshotter.js +70 -88
- package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
- package/lib/server/trace/recorder/tracing.js +324 -327
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +172 -137
- package/lib/server/transport.js +125 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- 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 +47 -0
- package/lib/server/utils/debugLogger.js +114 -0
- package/lib/server/utils/env.js +68 -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 +109 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +217 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +238 -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 +132 -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 +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +163 -180
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +96 -73
- package/lib/server/webkit/wkInput.js +87 -75
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +536 -647
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +123 -127
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +344 -349
- package/lib/utils/isomorphic/locatorParser.js +103 -106
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +115 -0
- package/lib/utils/isomorphic/mimeType.js +453 -22
- package/lib/utils/isomorphic/multimap.js +81 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +44 -0
- package/lib/utils/isomorphic/timeoutRunner.js +67 -0
- package/lib/utils/isomorphic/traceUtils.js +52 -32
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +114 -71
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +101 -0
- package/lib/utilsBundle.js +101 -76
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +26 -20
- package/lib/vite/recorder/assets/{codeMirrorModule-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
- package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +819 -127
- package/types/types.d.ts +181 -69
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/protocol/transport.js +0 -82
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -153
- package/lib/utils/crypto.js +0 -171
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/expectUtils.js +0 -33
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -194
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -139
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/sequence.js +0 -64
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -71
- package/lib/vite/recorder/assets/index-m0XdVJHe.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
- package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -1,58 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _zones = require("../utils/zones");
|
|
13
|
-
/**
|
|
14
|
-
* Copyright (c) Microsoft Corporation.
|
|
15
|
-
*
|
|
16
|
-
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
17
|
-
* you may not use this file except in compliance with the License.
|
|
18
|
-
* You may obtain a copy of the License at
|
|
19
|
-
*
|
|
20
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
21
|
-
*
|
|
22
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
23
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
25
|
-
* See the License for the specific language governing permissions and
|
|
26
|
-
* limitations under the License.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
class ChannelOwner extends _eventEmitter.EventEmitter {
|
|
23
|
+
module.exports = __toCommonJS(channelOwner_exports);
|
|
24
|
+
var import_eventEmitter = require("./eventEmitter");
|
|
25
|
+
var import_validator = require("../protocol/validator");
|
|
26
|
+
var import_clientStackTrace = require("./clientStackTrace");
|
|
27
|
+
var import_stackTrace = require("../utils/isomorphic/stackTrace");
|
|
28
|
+
class ChannelOwner extends import_eventEmitter.EventEmitter {
|
|
30
29
|
constructor(parent, type, guid, initializer) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this._type = void 0;
|
|
36
|
-
this._guid = void 0;
|
|
37
|
-
this._channel = void 0;
|
|
38
|
-
this._initializer = void 0;
|
|
39
|
-
this._logger = void 0;
|
|
40
|
-
this._instrumentation = void 0;
|
|
41
|
-
this._eventToSubscriptionMapping = new Map();
|
|
30
|
+
const connection = parent instanceof ChannelOwner ? parent._connection : parent;
|
|
31
|
+
super(connection._platform);
|
|
32
|
+
this._objects = /* @__PURE__ */ new Map();
|
|
33
|
+
this._eventToSubscriptionMapping = /* @__PURE__ */ new Map();
|
|
42
34
|
this._isInternalType = false;
|
|
43
35
|
this._wasCollected = false;
|
|
44
36
|
this.setMaxListeners(0);
|
|
45
|
-
this._connection =
|
|
37
|
+
this._connection = connection;
|
|
46
38
|
this._type = type;
|
|
47
39
|
this._guid = guid;
|
|
48
|
-
this._parent = parent instanceof ChannelOwner ? parent :
|
|
40
|
+
this._parent = parent instanceof ChannelOwner ? parent : void 0;
|
|
49
41
|
this._instrumentation = this._connection._instrumentation;
|
|
50
42
|
this._connection._objects.set(guid, this);
|
|
51
43
|
if (this._parent) {
|
|
52
44
|
this._parent._objects.set(guid, this);
|
|
53
45
|
this._logger = this._parent._logger;
|
|
54
46
|
}
|
|
55
|
-
this._channel = this._createChannel(new
|
|
47
|
+
this._channel = this._createChannel(new import_eventEmitter.EventEmitter(connection._platform));
|
|
56
48
|
this._initializer = initializer;
|
|
57
49
|
}
|
|
58
50
|
markAsInternalType() {
|
|
@@ -65,36 +57,39 @@ class ChannelOwner extends _eventEmitter.EventEmitter {
|
|
|
65
57
|
const protocolEvent = this._eventToSubscriptionMapping.get(String(event));
|
|
66
58
|
if (protocolEvent) {
|
|
67
59
|
this._wrapApiCall(async () => {
|
|
68
|
-
await this._channel.updateSubscription({
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
}, true).catch(() => {});
|
|
60
|
+
await this._channel.updateSubscription({ event: protocolEvent, enabled });
|
|
61
|
+
}, true).catch(() => {
|
|
62
|
+
});
|
|
73
63
|
}
|
|
74
64
|
}
|
|
75
65
|
on(event, listener) {
|
|
76
|
-
if (!this.listenerCount(event))
|
|
66
|
+
if (!this.listenerCount(event))
|
|
67
|
+
this._updateSubscription(event, true);
|
|
77
68
|
super.on(event, listener);
|
|
78
69
|
return this;
|
|
79
70
|
}
|
|
80
71
|
addListener(event, listener) {
|
|
81
|
-
if (!this.listenerCount(event))
|
|
72
|
+
if (!this.listenerCount(event))
|
|
73
|
+
this._updateSubscription(event, true);
|
|
82
74
|
super.addListener(event, listener);
|
|
83
75
|
return this;
|
|
84
76
|
}
|
|
85
77
|
prependListener(event, listener) {
|
|
86
|
-
if (!this.listenerCount(event))
|
|
78
|
+
if (!this.listenerCount(event))
|
|
79
|
+
this._updateSubscription(event, true);
|
|
87
80
|
super.prependListener(event, listener);
|
|
88
81
|
return this;
|
|
89
82
|
}
|
|
90
83
|
off(event, listener) {
|
|
91
84
|
super.off(event, listener);
|
|
92
|
-
if (!this.listenerCount(event))
|
|
85
|
+
if (!this.listenerCount(event))
|
|
86
|
+
this._updateSubscription(event, false);
|
|
93
87
|
return this;
|
|
94
88
|
}
|
|
95
89
|
removeListener(event, listener) {
|
|
96
90
|
super.removeListener(event, listener);
|
|
97
|
-
if (!this.listenerCount(event))
|
|
91
|
+
if (!this.listenerCount(event))
|
|
92
|
+
this._updateSubscription(event, false);
|
|
98
93
|
return this;
|
|
99
94
|
}
|
|
100
95
|
_adopt(child) {
|
|
@@ -103,53 +98,44 @@ class ChannelOwner extends _eventEmitter.EventEmitter {
|
|
|
103
98
|
child._parent = this;
|
|
104
99
|
}
|
|
105
100
|
_dispose(reason) {
|
|
106
|
-
|
|
107
|
-
|
|
101
|
+
if (this._parent)
|
|
102
|
+
this._parent._objects.delete(this._guid);
|
|
108
103
|
this._connection._objects.delete(this._guid);
|
|
109
|
-
this._wasCollected = reason ===
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
for (const object of [...this._objects.values()]) object._dispose(reason);
|
|
104
|
+
this._wasCollected = reason === "gc";
|
|
105
|
+
for (const object of [...this._objects.values()])
|
|
106
|
+
object._dispose(reason);
|
|
113
107
|
this._objects.clear();
|
|
114
108
|
}
|
|
115
109
|
_debugScopeState() {
|
|
116
110
|
return {
|
|
117
111
|
_guid: this._guid,
|
|
118
|
-
objects: Array.from(this._objects.values()).map(o => o._debugScopeState())
|
|
112
|
+
objects: Array.from(this._objects.values()).map((o) => o._debugScopeState())
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
_validatorToWireContext() {
|
|
116
|
+
return {
|
|
117
|
+
tChannelImpl: tChannelImplToWire,
|
|
118
|
+
binary: this._connection.rawBuffers() ? "buffer" : "toBase64",
|
|
119
|
+
isUnderTest: () => this._platform.isUnderTest()
|
|
119
120
|
};
|
|
120
121
|
}
|
|
121
122
|
_createChannel(base) {
|
|
122
123
|
const channel = new Proxy(base, {
|
|
123
124
|
get: (obj, prop) => {
|
|
124
|
-
if (typeof prop ===
|
|
125
|
-
const validator = (0,
|
|
125
|
+
if (typeof prop === "string") {
|
|
126
|
+
const validator = (0, import_validator.maybeFindValidator)(this._type, prop, "Params");
|
|
126
127
|
if (validator) {
|
|
127
|
-
return async params => {
|
|
128
|
-
return await this._wrapApiCall(async apiZone => {
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
apiName: undefined,
|
|
137
|
-
csi: undefined,
|
|
138
|
-
callCookie: undefined,
|
|
139
|
-
frames: [],
|
|
140
|
-
stepId: undefined
|
|
141
|
-
} : apiZone;
|
|
142
|
-
apiZone.reported = true;
|
|
143
|
-
let currentStepId = stepId;
|
|
144
|
-
if (csi && apiName) {
|
|
145
|
-
const out = {};
|
|
146
|
-
csi.onApiCallBegin(apiName, params, frames, callCookie, out);
|
|
147
|
-
currentStepId = out.stepId;
|
|
128
|
+
return async (params) => {
|
|
129
|
+
return await this._wrapApiCall(async (apiZone) => {
|
|
130
|
+
const validatedParams = validator(params, "", this._validatorToWireContext());
|
|
131
|
+
if (!apiZone.isInternal && !apiZone.reported) {
|
|
132
|
+
apiZone.params = params;
|
|
133
|
+
apiZone.reported = true;
|
|
134
|
+
this._instrumentation.onApiCallBegin(apiZone);
|
|
135
|
+
logApiCall(this._platform, this._logger, `=> ${apiZone.apiName} started`);
|
|
136
|
+
return await this._connection.sendMessageToServer(this, prop, validatedParams, apiZone.apiName, apiZone.frames, apiZone.stepId);
|
|
148
137
|
}
|
|
149
|
-
return await this._connection.sendMessageToServer(this, prop,
|
|
150
|
-
tChannelImpl: tChannelImplToWire,
|
|
151
|
-
binary: this._connection.rawBuffers() ? 'buffer' : 'toBase64'
|
|
152
|
-
}), apiName, frames, currentStepId);
|
|
138
|
+
return await this._connection.sendMessageToServer(this, prop, validatedParams, void 0, [], void 0);
|
|
153
139
|
});
|
|
154
140
|
};
|
|
155
141
|
}
|
|
@@ -162,74 +148,58 @@ class ChannelOwner extends _eventEmitter.EventEmitter {
|
|
|
162
148
|
}
|
|
163
149
|
async _wrapApiCall(func, isInternal) {
|
|
164
150
|
const logger = this._logger;
|
|
165
|
-
const
|
|
166
|
-
if (
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
// Enclosing zone could have provided the apiName and wallTime.
|
|
174
|
-
const expectZone = _zones.zones.zoneData('expectZone');
|
|
175
|
-
const stepId = expectZone === null || expectZone === void 0 ? void 0 : expectZone.stepId;
|
|
176
|
-
if (!isInternal && expectZone) apiName = expectZone.title;
|
|
177
|
-
|
|
178
|
-
// If we are coming from the expectZone, there is no need to generate a new
|
|
179
|
-
// step for the API call, since it will be generated by the expect itself.
|
|
180
|
-
const csi = isInternal || expectZone ? undefined : this._instrumentation;
|
|
181
|
-
const callCookie = {};
|
|
151
|
+
const existingApiZone = this._platform.zones.current().data();
|
|
152
|
+
if (existingApiZone)
|
|
153
|
+
return await func(existingApiZone);
|
|
154
|
+
if (isInternal === void 0)
|
|
155
|
+
isInternal = this._isInternalType;
|
|
156
|
+
const stackTrace = (0, import_clientStackTrace.captureLibraryStackTrace)(this._platform);
|
|
157
|
+
const apiZone = { apiName: stackTrace.apiName, frames: stackTrace.frames, isInternal, reported: false, userData: void 0, stepId: void 0 };
|
|
182
158
|
try {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
apiName
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
reported: false,
|
|
189
|
-
csi,
|
|
190
|
-
callCookie,
|
|
191
|
-
stepId
|
|
192
|
-
};
|
|
193
|
-
const result = await _zones.zones.run('apiZone', apiZone, async () => await func(apiZone));
|
|
194
|
-
csi === null || csi === void 0 || csi.onApiCallEnd(callCookie);
|
|
195
|
-
logApiCall(logger, `<= ${apiName} succeeded`, isInternal);
|
|
159
|
+
const result = await this._platform.zones.current().push(apiZone).run(async () => await func(apiZone));
|
|
160
|
+
if (!isInternal) {
|
|
161
|
+
logApiCall(this._platform, logger, `<= ${apiZone.apiName} succeeded`);
|
|
162
|
+
this._instrumentation.onApiCallEnd(apiZone);
|
|
163
|
+
}
|
|
196
164
|
return result;
|
|
197
165
|
} catch (e) {
|
|
198
|
-
const innerError = (
|
|
199
|
-
if (apiName && !apiName.includes(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
166
|
+
const innerError = (this._platform.showInternalStackFrames() || this._platform.isUnderTest()) && e.stack ? "\n<inner error>\n" + e.stack : "";
|
|
167
|
+
if (apiZone.apiName && !apiZone.apiName.includes("<anonymous>"))
|
|
168
|
+
e.message = apiZone.apiName + ": " + e.message;
|
|
169
|
+
const stackFrames = "\n" + (0, import_stackTrace.stringifyStackFrames)(stackTrace.frames).join("\n") + innerError;
|
|
170
|
+
if (stackFrames.trim())
|
|
171
|
+
e.stack = e.message + stackFrames;
|
|
172
|
+
else
|
|
173
|
+
e.stack = "";
|
|
174
|
+
if (!isInternal) {
|
|
175
|
+
apiZone.error = e;
|
|
176
|
+
logApiCall(this._platform, logger, `<= ${apiZone.apiName} failed`);
|
|
177
|
+
this._instrumentation.onApiCallEnd(apiZone);
|
|
178
|
+
}
|
|
204
179
|
throw e;
|
|
205
180
|
}
|
|
206
181
|
}
|
|
207
182
|
_toImpl() {
|
|
208
|
-
|
|
209
|
-
return (_this$_connection$toI = (_this$_connection = this._connection).toImpl) === null || _this$_connection$toI === void 0 ? void 0 : _this$_connection$toI.call(_this$_connection, this);
|
|
183
|
+
return this._connection.toImpl?.(this);
|
|
210
184
|
}
|
|
211
185
|
toJSON() {
|
|
212
|
-
// Jest's expect library tries to print objects sometimes.
|
|
213
|
-
// RPC objects can contain links to lots of other objects,
|
|
214
|
-
// which can cause jest to crash. Let's help it out
|
|
215
|
-
// by just returning the important values.
|
|
216
186
|
return {
|
|
217
187
|
_type: this._type,
|
|
218
188
|
_guid: this._guid
|
|
219
189
|
};
|
|
220
190
|
}
|
|
221
191
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
color: 'cyan'
|
|
227
|
-
});
|
|
228
|
-
_debugLogger.debugLogger.log('api', message);
|
|
192
|
+
function logApiCall(platform, logger, message) {
|
|
193
|
+
if (logger && logger.isEnabled("api", "info"))
|
|
194
|
+
logger.log("api", "info", message, [], { color: "cyan" });
|
|
195
|
+
platform.log("api", message);
|
|
229
196
|
}
|
|
230
197
|
function tChannelImplToWire(names, arg, path, context) {
|
|
231
|
-
if (arg._object instanceof ChannelOwner && (names ===
|
|
232
|
-
guid: arg._object._guid
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
|
|
198
|
+
if (arg._object instanceof ChannelOwner && (names === "*" || names.includes(arg._object._type)))
|
|
199
|
+
return { guid: arg._object._guid };
|
|
200
|
+
throw new import_validator.ValidationError(`${path}: expected channel ${names.toString()}`);
|
|
201
|
+
}
|
|
202
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
203
|
+
0 && (module.exports = {
|
|
204
|
+
ChannelOwner
|
|
205
|
+
});
|
|
@@ -1,57 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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
|
|
5
24
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
exports.evaluationScript = evaluationScript;
|
|
9
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
10
|
-
var _utils = require("../utils");
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
/**
|
|
13
|
-
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
15
|
-
*
|
|
16
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17
|
-
* you may not use this file except in compliance with the License.
|
|
18
|
-
* You may obtain a copy of the License at
|
|
19
|
-
*
|
|
20
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
21
|
-
*
|
|
22
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
23
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
25
|
-
* See the License for the specific language governing permissions and
|
|
26
|
-
* limitations under the License.
|
|
27
|
-
*/
|
|
28
|
-
|
|
25
|
+
module.exports = __toCommonJS(clientHelper_exports);
|
|
26
|
+
var import_rtti = require("../utils/isomorphic/rtti");
|
|
29
27
|
function envObjectToArray(env) {
|
|
30
28
|
const result = [];
|
|
31
29
|
for (const name in env) {
|
|
32
|
-
if (!Object.is(env[name],
|
|
33
|
-
name,
|
|
34
|
-
value: String(env[name])
|
|
35
|
-
});
|
|
30
|
+
if (!Object.is(env[name], void 0))
|
|
31
|
+
result.push({ name, value: String(env[name]) });
|
|
36
32
|
}
|
|
37
33
|
return result;
|
|
38
34
|
}
|
|
39
|
-
async function evaluationScript(fun, arg, addSourceUrl = true) {
|
|
40
|
-
if (typeof fun ===
|
|
35
|
+
async function evaluationScript(platform, fun, arg, addSourceUrl = true) {
|
|
36
|
+
if (typeof fun === "function") {
|
|
41
37
|
const source = fun.toString();
|
|
42
|
-
const argString = Object.is(arg,
|
|
38
|
+
const argString = Object.is(arg, void 0) ? "undefined" : JSON.stringify(arg);
|
|
43
39
|
return `(${source})(${argString})`;
|
|
44
40
|
}
|
|
45
|
-
if (arg !==
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
51
|
return source;
|
|
52
52
|
}
|
|
53
|
-
throw new Error(
|
|
53
|
+
throw new Error("Either path or content property must be present");
|
|
54
54
|
}
|
|
55
55
|
function addSourceUrlToScript(source, path) {
|
|
56
|
-
return `${source}
|
|
57
|
-
}
|
|
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
|
+
});
|
|
@@ -1,50 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
/**
|
|
8
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
-
*
|
|
10
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
-
* you may not use this file except in compliance with the License.
|
|
12
|
-
* You may obtain a copy of the License at
|
|
13
|
-
*
|
|
14
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
-
*
|
|
16
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
-
* See the License for the specific language governing permissions and
|
|
20
|
-
* limitations under the License.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
+
module.exports = __toCommonJS(clientInstrumentation_exports);
|
|
23
24
|
function createInstrumentation() {
|
|
24
25
|
const listeners = [];
|
|
25
26
|
return new Proxy({}, {
|
|
26
27
|
get: (obj, prop) => {
|
|
27
|
-
if (typeof prop !==
|
|
28
|
-
|
|
29
|
-
if (prop ===
|
|
30
|
-
|
|
31
|
-
if (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")) {
|
|
32
37
|
return async (...params) => {
|
|
33
|
-
for (const listener of listeners)
|
|
34
|
-
|
|
35
|
-
await ((_prop = (_ref = listener)[prop]) === null || _prop === void 0 ? void 0 : _prop.call(_ref, ...params));
|
|
36
|
-
}
|
|
38
|
+
for (const listener of listeners)
|
|
39
|
+
await listener[prop]?.(...params);
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
|
-
if (prop.startsWith(
|
|
42
|
+
if (prop.startsWith("on")) {
|
|
40
43
|
return (...params) => {
|
|
41
|
-
for (const listener of listeners)
|
|
42
|
-
|
|
43
|
-
(_prop2 = (_ref2 = listener)[prop]) === null || _prop2 === void 0 || _prop2.call(_ref2, ...params);
|
|
44
|
-
}
|
|
44
|
+
for (const listener of listeners)
|
|
45
|
+
listener[prop]?.(...params);
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
48
|
return obj[prop];
|
|
48
49
|
}
|
|
49
50
|
});
|
|
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
|
+
});
|