patchright-bun-core 1.58.0 → 1.58.2
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/README.md +2 -2
- package/ThirdPartyNotices.txt +4075 -4075
- package/bin/install_media_pack.ps1 +5 -5
- package/bin/install_webkit_wsl.ps1 +32 -32
- package/bin/reinstall_chrome_beta_linux.sh +42 -42
- package/bin/reinstall_chrome_beta_mac.sh +13 -13
- package/bin/reinstall_chrome_beta_win.ps1 +24 -24
- package/bin/reinstall_chrome_stable_linux.sh +42 -42
- package/bin/reinstall_chrome_stable_mac.sh +12 -12
- package/bin/reinstall_chrome_stable_win.ps1 +24 -24
- package/bin/reinstall_msedge_beta_linux.sh +48 -48
- package/bin/reinstall_msedge_beta_mac.sh +11 -11
- package/bin/reinstall_msedge_beta_win.ps1 +23 -23
- package/bin/reinstall_msedge_dev_linux.sh +48 -48
- package/bin/reinstall_msedge_dev_mac.sh +11 -11
- package/bin/reinstall_msedge_dev_win.ps1 +23 -23
- package/bin/reinstall_msedge_stable_linux.sh +48 -48
- package/bin/reinstall_msedge_stable_mac.sh +11 -11
- package/bin/reinstall_msedge_stable_win.ps1 +23 -23
- package/browsers.json +79 -79
- package/cli.js +18 -18
- package/index.d.ts +17 -17
- package/index.js +32 -32
- package/index.mjs +28 -28
- package/lib/androidServerImpl.js +65 -65
- package/lib/browserServerImpl.js +120 -120
- package/lib/cli/driver.js +97 -97
- package/lib/cli/program.js +589 -589
- package/lib/cli/programWithTestStub.js +74 -74
- package/lib/client/android.js +361 -361
- package/lib/client/api.js +137 -137
- package/lib/client/artifact.js +79 -79
- package/lib/client/browser.js +161 -161
- package/lib/client/browserContext.js +582 -582
- package/lib/client/browserType.js +185 -185
- package/lib/client/cdpSession.js +51 -51
- package/lib/client/channelOwner.js +194 -194
- package/lib/client/clientHelper.js +64 -64
- package/lib/client/clientInstrumentation.js +55 -55
- package/lib/client/clientStackTrace.js +69 -69
- package/lib/client/clock.js +68 -68
- package/lib/client/connection.js +318 -318
- package/lib/client/consoleMessage.js +58 -58
- package/lib/client/coverage.js +44 -44
- package/lib/client/dialog.js +56 -56
- package/lib/client/download.js +62 -62
- package/lib/client/electron.js +138 -138
- package/lib/client/elementHandle.js +284 -284
- package/lib/client/errors.js +77 -77
- package/lib/client/eventEmitter.js +314 -314
- package/lib/client/events.js +103 -103
- package/lib/client/fetch.js +368 -368
- package/lib/client/fileChooser.js +46 -46
- package/lib/client/fileUtils.js +34 -34
- package/lib/client/frame.js +409 -409
- package/lib/client/harRouter.js +87 -87
- package/lib/client/input.js +84 -84
- package/lib/client/jsHandle.js +109 -109
- package/lib/client/jsonPipe.js +39 -39
- package/lib/client/localUtils.js +60 -60
- package/lib/client/locator.js +369 -369
- package/lib/client/network.js +747 -747
- package/lib/client/page.js +745 -745
- package/lib/client/pageAgent.js +64 -64
- package/lib/client/platform.js +77 -77
- package/lib/client/playwright.js +71 -71
- package/lib/client/selectors.js +55 -55
- package/lib/client/stream.js +39 -39
- package/lib/client/timeoutSettings.js +79 -79
- package/lib/client/tracing.js +119 -119
- package/lib/client/types.js +28 -28
- package/lib/client/video.js +59 -59
- package/lib/client/waiter.js +142 -142
- package/lib/client/webError.js +39 -39
- package/lib/client/webSocket.js +93 -93
- package/lib/client/worker.js +85 -85
- package/lib/client/writableStream.js +39 -39
- package/lib/generated/bindingsControllerSource.js +28 -28
- package/lib/generated/clockSource.js +28 -28
- package/lib/generated/injectedScriptSource.js +28 -28
- package/lib/generated/pollingRecorderSource.js +28 -28
- package/lib/generated/storageScriptSource.js +28 -28
- package/lib/generated/utilityScriptSource.js +28 -28
- package/lib/generated/webSocketMockSource.js +336 -336
- package/lib/inProcessFactory.js +60 -60
- package/lib/inprocess.js +3 -3
- package/lib/mcpBundle.js +84 -84
- package/lib/mcpBundleImpl/index.js +147 -147
- package/lib/outofprocess.js +76 -76
- package/lib/protocol/serializers.js +197 -197
- package/lib/protocol/validator.js +2969 -2969
- package/lib/protocol/validatorPrimitives.js +193 -193
- package/lib/remote/playwrightConnection.js +129 -129
- package/lib/remote/playwrightServer.js +334 -334
- package/lib/server/agent/actionRunner.js +335 -335
- package/lib/server/agent/actions.js +128 -128
- package/lib/server/agent/codegen.js +111 -111
- package/lib/server/agent/context.js +150 -150
- package/lib/server/agent/expectTools.js +156 -156
- package/lib/server/agent/pageAgent.js +204 -204
- package/lib/server/agent/performTools.js +262 -262
- package/lib/server/agent/tool.js +109 -109
- package/lib/server/android/android.js +465 -465
- package/lib/server/android/backendAdb.js +177 -177
- package/lib/server/artifact.js +127 -127
- package/lib/server/bidi/bidiBrowser.js +549 -549
- package/lib/server/bidi/bidiChromium.js +149 -148
- package/lib/server/bidi/bidiConnection.js +213 -213
- package/lib/server/bidi/bidiDeserializer.js +116 -116
- package/lib/server/bidi/bidiExecutionContext.js +267 -267
- package/lib/server/bidi/bidiFirefox.js +128 -128
- package/lib/server/bidi/bidiInput.js +146 -146
- package/lib/server/bidi/bidiNetworkManager.js +383 -383
- package/lib/server/bidi/bidiOverCdp.js +102 -102
- package/lib/server/bidi/bidiPage.js +583 -583
- package/lib/server/bidi/bidiPdf.js +106 -106
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -22
- package/lib/server/bidi/third_party/bidiKeyboard.js +256 -256
- package/lib/server/bidi/third_party/bidiProtocol.js +24 -24
- package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -180
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -42
- package/lib/server/bidi/third_party/bidiSerializer.js +148 -148
- package/lib/server/bidi/third_party/firefoxPrefs.js +259 -259
- package/lib/server/browser.js +149 -149
- package/lib/server/browserContext.js +702 -702
- package/lib/server/browserType.js +336 -336
- package/lib/server/callLog.js +82 -82
- package/lib/server/chromium/chromium.js +397 -395
- package/lib/server/chromium/chromiumSwitches.js +104 -104
- package/lib/server/chromium/crBrowser.js +520 -511
- package/lib/server/chromium/crConnection.js +197 -197
- package/lib/server/chromium/crCoverage.js +235 -235
- package/lib/server/chromium/crDevTools.js +111 -111
- package/lib/server/chromium/crDragDrop.js +131 -131
- package/lib/server/chromium/crExecutionContext.js +146 -146
- package/lib/server/chromium/crInput.js +187 -187
- package/lib/server/chromium/crNetworkManager.js +707 -707
- package/lib/server/chromium/crPage.js +1001 -1001
- package/lib/server/chromium/crPdf.js +121 -121
- package/lib/server/chromium/crProtocolHelper.js +145 -145
- package/lib/server/chromium/crServiceWorker.js +136 -136
- package/lib/server/chromium/defaultFontFamilies.js +162 -162
- package/lib/server/chromium/protocol.d.js +16 -16
- package/lib/server/clock.js +149 -149
- package/lib/server/codegen/csharp.js +327 -327
- package/lib/server/codegen/java.js +274 -274
- package/lib/server/codegen/javascript.js +247 -247
- package/lib/server/codegen/jsonl.js +52 -52
- package/lib/server/codegen/language.js +132 -132
- package/lib/server/codegen/languages.js +68 -68
- package/lib/server/codegen/python.js +279 -279
- package/lib/server/codegen/types.js +16 -16
- package/lib/server/console.js +57 -57
- package/lib/server/cookieStore.js +206 -206
- package/lib/server/debugController.js +191 -191
- package/lib/server/debugger.js +119 -119
- package/lib/server/deviceDescriptors.js +39 -39
- package/lib/server/deviceDescriptorsSource.json +1778 -1778
- package/lib/server/dialog.js +116 -116
- package/lib/server/dispatchers/androidDispatcher.js +325 -325
- package/lib/server/dispatchers/artifactDispatcher.js +118 -118
- package/lib/server/dispatchers/browserContextDispatcher.js +384 -384
- package/lib/server/dispatchers/browserDispatcher.js +118 -118
- package/lib/server/dispatchers/browserTypeDispatcher.js +64 -64
- package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -44
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -78
- package/lib/server/dispatchers/dialogDispatcher.js +47 -47
- package/lib/server/dispatchers/dispatcher.js +364 -364
- package/lib/server/dispatchers/electronDispatcher.js +89 -89
- package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -181
- package/lib/server/dispatchers/frameDispatcher.js +227 -227
- package/lib/server/dispatchers/jsHandleDispatcher.js +85 -85
- package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -58
- package/lib/server/dispatchers/localUtilsDispatcher.js +149 -149
- package/lib/server/dispatchers/networkDispatchers.js +213 -213
- package/lib/server/dispatchers/pageAgentDispatcher.js +96 -96
- package/lib/server/dispatchers/pageDispatcher.js +393 -393
- package/lib/server/dispatchers/playwrightDispatcher.js +108 -108
- package/lib/server/dispatchers/streamDispatcher.js +67 -67
- package/lib/server/dispatchers/tracingDispatcher.js +68 -68
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -165
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -79
- package/lib/server/dom.js +815 -815
- package/lib/server/download.js +70 -70
- package/lib/server/electron/electron.js +273 -273
- package/lib/server/electron/loader.js +29 -29
- package/lib/server/errors.js +69 -69
- package/lib/server/fetch.js +621 -621
- package/lib/server/fileChooser.js +43 -43
- package/lib/server/fileUploadUtils.js +84 -84
- package/lib/server/firefox/ffBrowser.js +418 -418
- package/lib/server/firefox/ffConnection.js +142 -142
- package/lib/server/firefox/ffExecutionContext.js +150 -150
- package/lib/server/firefox/ffInput.js +159 -159
- package/lib/server/firefox/ffNetworkManager.js +256 -256
- package/lib/server/firefox/ffPage.js +497 -497
- package/lib/server/firefox/firefox.js +114 -114
- package/lib/server/firefox/protocol.d.js +16 -16
- package/lib/server/formData.js +147 -147
- package/lib/server/frameSelectors.js +160 -160
- package/lib/server/frames.js +1471 -1471
- package/lib/server/har/harRecorder.js +147 -147
- package/lib/server/har/harTracer.js +607 -607
- package/lib/server/harBackend.js +157 -157
- package/lib/server/helper.js +96 -96
- package/lib/server/index.js +58 -58
- package/lib/server/input.js +277 -277
- package/lib/server/instrumentation.js +72 -72
- package/lib/server/javascript.js +291 -291
- package/lib/server/launchApp.js +128 -128
- package/lib/server/localUtils.js +214 -214
- package/lib/server/macEditingCommands.js +143 -143
- package/lib/server/network.js +667 -667
- package/lib/server/page.js +830 -830
- package/lib/server/pipeTransport.js +89 -89
- package/lib/server/playwright.js +69 -69
- package/lib/server/progress.js +132 -132
- package/lib/server/protocolError.js +52 -52
- package/lib/server/recorder/chat.js +161 -161
- package/lib/server/recorder/recorderApp.js +366 -366
- package/lib/server/recorder/recorderRunner.js +138 -138
- package/lib/server/recorder/recorderSignalProcessor.js +83 -83
- package/lib/server/recorder/recorderUtils.js +157 -157
- package/lib/server/recorder/throttledFile.js +57 -57
- package/lib/server/recorder.js +499 -499
- package/lib/server/registry/browserFetcher.js +177 -177
- package/lib/server/registry/dependencies.js +371 -371
- package/lib/server/registry/index.js +1422 -1422
- package/lib/server/registry/nativeDeps.js +1280 -1280
- package/lib/server/registry/oopDownloadBrowserMain.js +127 -127
- package/lib/server/screencast.js +190 -190
- package/lib/server/screenshotter.js +333 -333
- package/lib/server/selectors.js +112 -112
- package/lib/server/socksClientCertificatesInterceptor.js +383 -383
- package/lib/server/socksInterceptor.js +95 -95
- package/lib/server/trace/recorder/snapshotter.js +147 -147
- package/lib/server/trace/recorder/snapshotterInjected.js +561 -561
- package/lib/server/trace/recorder/tracing.js +604 -604
- package/lib/server/trace/viewer/traceParser.js +72 -72
- package/lib/server/trace/viewer/traceViewer.js +245 -245
- package/lib/server/transport.js +254 -254
- package/lib/server/types.js +28 -28
- package/lib/server/usKeyboardLayout.js +145 -145
- package/lib/server/utils/ascii.js +44 -44
- package/lib/server/utils/comparators.js +139 -139
- package/lib/server/utils/crypto.js +216 -216
- package/lib/server/utils/debug.js +42 -42
- package/lib/server/utils/debugLogger.js +122 -122
- package/lib/server/utils/env.js +73 -73
- package/lib/server/utils/eventsHelper.js +39 -39
- package/lib/server/utils/expectUtils.js +123 -123
- package/lib/server/utils/fileUtils.js +191 -191
- package/lib/server/utils/happyEyeballs.js +207 -207
- package/lib/server/utils/hostPlatform.js +138 -123
- package/lib/server/utils/httpServer.js +203 -203
- package/lib/server/utils/imageUtils.js +141 -141
- package/lib/server/utils/image_tools/colorUtils.js +89 -89
- package/lib/server/utils/image_tools/compare.js +109 -109
- package/lib/server/utils/image_tools/imageChannel.js +78 -78
- package/lib/server/utils/image_tools/stats.js +102 -102
- package/lib/server/utils/linuxUtils.js +71 -71
- package/lib/server/utils/network.js +242 -242
- package/lib/server/utils/nodePlatform.js +154 -154
- package/lib/server/utils/pipeTransport.js +84 -84
- package/lib/server/utils/processLauncher.js +241 -241
- package/lib/server/utils/profiler.js +65 -65
- package/lib/server/utils/socksProxy.js +511 -511
- package/lib/server/utils/spawnAsync.js +41 -41
- package/lib/server/utils/task.js +51 -51
- package/lib/server/utils/userAgent.js +98 -98
- package/lib/server/utils/wsServer.js +121 -121
- package/lib/server/utils/zipFile.js +74 -74
- package/lib/server/utils/zones.js +57 -57
- package/lib/server/videoRecorder.js +124 -124
- package/lib/server/webkit/protocol.d.js +16 -16
- package/lib/server/webkit/webkit.js +108 -108
- package/lib/server/webkit/wkBrowser.js +335 -335
- package/lib/server/webkit/wkConnection.js +144 -144
- package/lib/server/webkit/wkExecutionContext.js +154 -154
- package/lib/server/webkit/wkInput.js +181 -181
- package/lib/server/webkit/wkInterceptableRequest.js +197 -197
- package/lib/server/webkit/wkPage.js +1159 -1158
- package/lib/server/webkit/wkProvisionalPage.js +83 -83
- package/lib/server/webkit/wkWorkers.js +105 -105
- package/lib/third_party/pixelmatch.js +255 -255
- package/lib/utils/isomorphic/ariaSnapshot.js +455 -455
- package/lib/utils/isomorphic/assert.js +31 -31
- package/lib/utils/isomorphic/colors.js +72 -72
- package/lib/utils/isomorphic/cssParser.js +245 -245
- package/lib/utils/isomorphic/cssTokenizer.js +1051 -1051
- package/lib/utils/isomorphic/headers.js +53 -53
- package/lib/utils/isomorphic/locatorGenerators.js +689 -689
- package/lib/utils/isomorphic/locatorParser.js +176 -176
- package/lib/utils/isomorphic/locatorUtils.js +81 -81
- package/lib/utils/isomorphic/lruCache.js +51 -51
- package/lib/utils/isomorphic/manualPromise.js +114 -114
- package/lib/utils/isomorphic/mimeType.js +459 -459
- package/lib/utils/isomorphic/multimap.js +80 -80
- package/lib/utils/isomorphic/protocolFormatter.js +81 -81
- package/lib/utils/isomorphic/protocolMetainfo.js +330 -330
- package/lib/utils/isomorphic/rtti.js +43 -43
- package/lib/utils/isomorphic/selectorParser.js +386 -386
- package/lib/utils/isomorphic/semaphore.js +54 -54
- package/lib/utils/isomorphic/stackTrace.js +158 -158
- package/lib/utils/isomorphic/stringUtils.js +204 -204
- package/lib/utils/isomorphic/time.js +49 -49
- package/lib/utils/isomorphic/timeoutRunner.js +66 -66
- package/lib/utils/isomorphic/trace/entries.js +16 -16
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -499
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -120
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -89
- package/lib/utils/isomorphic/trace/traceLoader.js +131 -131
- package/lib/utils/isomorphic/trace/traceModel.js +365 -365
- package/lib/utils/isomorphic/trace/traceModernizer.js +400 -400
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -16
- package/lib/utils/isomorphic/traceUtils.js +58 -58
- package/lib/utils/isomorphic/types.js +16 -16
- package/lib/utils/isomorphic/urlMatch.js +190 -190
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -251
- package/lib/utils/isomorphic/yaml.js +84 -84
- package/lib/utils.js +111 -111
- package/lib/utilsBundle.js +109 -109
- package/lib/utilsBundleImpl/index.js +218 -218
- package/lib/utilsBundleImpl/xdg-open +1066 -1066
- package/lib/vite/htmlReport/index.html +84 -84
- package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +32 -32
- package/lib/vite/recorder/assets/index-BSjZa4pk.css +1 -1
- package/lib/vite/recorder/assets/index-BhTWtUlo.js +193 -193
- package/lib/vite/recorder/index.html +29 -29
- package/lib/vite/recorder/playwright-logo.svg +9 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-a5XoALAZ.js +32 -32
- package/lib/vite/traceViewer/assets/defaultSettingsView-CJSZINFr.js +266 -266
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -9
- package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -1
- package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -1
- package/lib/vite/traceViewer/{index.Bk2uYQRV.js → index.BDwrLSGN.js} +2 -2
- package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -1
- package/lib/vite/traceViewer/index.html +43 -43
- package/lib/vite/traceViewer/manifest.webmanifest +16 -16
- package/lib/vite/traceViewer/playwright-logo.svg +9 -9
- package/lib/vite/traceViewer/snapshot.html +21 -21
- package/lib/vite/traceViewer/sw.bundle.js +5 -5
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -1
- package/lib/vite/traceViewer/uiMode.CQJ9SCIQ.js +5 -5
- package/lib/vite/traceViewer/uiMode.html +17 -17
- package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -32
- package/lib/zipBundle.js +34 -34
- package/lib/zipBundleImpl.js +5 -5
- package/package.json +1 -1
- package/types/protocol.d.ts +23824 -23824
- package/types/structs.d.ts +45 -45
- package/types/types.d.ts +22843 -22843
package/lib/client/waiter.js
CHANGED
|
@@ -1,142 +1,142 @@
|
|
|
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 waiter_exports = {};
|
|
20
|
-
__export(waiter_exports, {
|
|
21
|
-
Waiter: () => Waiter
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(waiter_exports);
|
|
24
|
-
var import_errors = require("./errors");
|
|
25
|
-
var import_stackTrace = require("../utils/isomorphic/stackTrace");
|
|
26
|
-
class Waiter {
|
|
27
|
-
constructor(channelOwner, event) {
|
|
28
|
-
this._failures = [];
|
|
29
|
-
this._logs = [];
|
|
30
|
-
this._waitId = channelOwner._platform.createGuid();
|
|
31
|
-
this._channelOwner = channelOwner;
|
|
32
|
-
this._savedZone = channelOwner._platform.zones.current().pop();
|
|
33
|
-
this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "before", event } }).catch(() => {
|
|
34
|
-
});
|
|
35
|
-
this._dispose = [
|
|
36
|
-
() => this._channelOwner._wrapApiCall(async () => {
|
|
37
|
-
await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "after", error: this._error } });
|
|
38
|
-
}, { internal: true }).catch(() => {
|
|
39
|
-
})
|
|
40
|
-
];
|
|
41
|
-
}
|
|
42
|
-
static createForEvent(channelOwner, event) {
|
|
43
|
-
return new Waiter(channelOwner, event);
|
|
44
|
-
}
|
|
45
|
-
async waitForEvent(emitter, event, predicate) {
|
|
46
|
-
const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
47
|
-
return await this.waitForPromise(promise, dispose);
|
|
48
|
-
}
|
|
49
|
-
rejectOnEvent(emitter, event, error, predicate) {
|
|
50
|
-
const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
51
|
-
this._rejectOn(promise.then(() => {
|
|
52
|
-
throw typeof error === "function" ? error() : error;
|
|
53
|
-
}), dispose);
|
|
54
|
-
}
|
|
55
|
-
rejectOnTimeout(timeout, message) {
|
|
56
|
-
if (!timeout)
|
|
57
|
-
return;
|
|
58
|
-
const { promise, dispose } = waitForTimeout(timeout);
|
|
59
|
-
this._rejectOn(promise.then(() => {
|
|
60
|
-
throw new import_errors.TimeoutError(message);
|
|
61
|
-
}), dispose);
|
|
62
|
-
}
|
|
63
|
-
rejectImmediately(error) {
|
|
64
|
-
this._immediateError = error;
|
|
65
|
-
}
|
|
66
|
-
dispose() {
|
|
67
|
-
for (const dispose of this._dispose)
|
|
68
|
-
dispose();
|
|
69
|
-
}
|
|
70
|
-
async waitForPromise(promise, dispose) {
|
|
71
|
-
try {
|
|
72
|
-
if (this._immediateError)
|
|
73
|
-
throw this._immediateError;
|
|
74
|
-
const result = await Promise.race([promise, ...this._failures]);
|
|
75
|
-
if (dispose)
|
|
76
|
-
dispose();
|
|
77
|
-
return result;
|
|
78
|
-
} catch (e) {
|
|
79
|
-
if (dispose)
|
|
80
|
-
dispose();
|
|
81
|
-
this._error = e.message;
|
|
82
|
-
this.dispose();
|
|
83
|
-
(0, import_stackTrace.rewriteErrorMessage)(e, e.message + formatLogRecording(this._logs));
|
|
84
|
-
throw e;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
log(s) {
|
|
88
|
-
this._logs.push(s);
|
|
89
|
-
this._channelOwner._wrapApiCall(async () => {
|
|
90
|
-
await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "log", message: s } });
|
|
91
|
-
}, { internal: true }).catch(() => {
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
_rejectOn(promise, dispose) {
|
|
95
|
-
this._failures.push(promise);
|
|
96
|
-
if (dispose)
|
|
97
|
-
this._dispose.push(dispose);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
function waitForEvent(emitter, event, savedZone, predicate) {
|
|
101
|
-
let listener;
|
|
102
|
-
const promise = new Promise((resolve, reject) => {
|
|
103
|
-
listener = async (eventArg) => {
|
|
104
|
-
await savedZone.run(async () => {
|
|
105
|
-
try {
|
|
106
|
-
if (predicate && !await predicate(eventArg))
|
|
107
|
-
return;
|
|
108
|
-
emitter.removeListener(event, listener);
|
|
109
|
-
resolve(eventArg);
|
|
110
|
-
} catch (e) {
|
|
111
|
-
emitter.removeListener(event, listener);
|
|
112
|
-
reject(e);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
emitter.addListener(event, listener);
|
|
117
|
-
});
|
|
118
|
-
const dispose = () => emitter.removeListener(event, listener);
|
|
119
|
-
return { promise, dispose };
|
|
120
|
-
}
|
|
121
|
-
function waitForTimeout(timeout) {
|
|
122
|
-
let timeoutId;
|
|
123
|
-
const promise = new Promise((resolve) => timeoutId = setTimeout(resolve, timeout));
|
|
124
|
-
const dispose = () => clearTimeout(timeoutId);
|
|
125
|
-
return { promise, dispose };
|
|
126
|
-
}
|
|
127
|
-
function formatLogRecording(log) {
|
|
128
|
-
if (!log.length)
|
|
129
|
-
return "";
|
|
130
|
-
const header = ` logs `;
|
|
131
|
-
const headerLength = 60;
|
|
132
|
-
const leftLength = (headerLength - header.length) / 2;
|
|
133
|
-
const rightLength = headerLength - header.length - leftLength;
|
|
134
|
-
return `
|
|
135
|
-
${"=".repeat(leftLength)}${header}${"=".repeat(rightLength)}
|
|
136
|
-
${log.join("\n")}
|
|
137
|
-
${"=".repeat(headerLength)}`;
|
|
138
|
-
}
|
|
139
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
-
0 && (module.exports = {
|
|
141
|
-
Waiter
|
|
142
|
-
});
|
|
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 waiter_exports = {};
|
|
20
|
+
__export(waiter_exports, {
|
|
21
|
+
Waiter: () => Waiter
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(waiter_exports);
|
|
24
|
+
var import_errors = require("./errors");
|
|
25
|
+
var import_stackTrace = require("../utils/isomorphic/stackTrace");
|
|
26
|
+
class Waiter {
|
|
27
|
+
constructor(channelOwner, event) {
|
|
28
|
+
this._failures = [];
|
|
29
|
+
this._logs = [];
|
|
30
|
+
this._waitId = channelOwner._platform.createGuid();
|
|
31
|
+
this._channelOwner = channelOwner;
|
|
32
|
+
this._savedZone = channelOwner._platform.zones.current().pop();
|
|
33
|
+
this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "before", event } }).catch(() => {
|
|
34
|
+
});
|
|
35
|
+
this._dispose = [
|
|
36
|
+
() => this._channelOwner._wrapApiCall(async () => {
|
|
37
|
+
await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "after", error: this._error } });
|
|
38
|
+
}, { internal: true }).catch(() => {
|
|
39
|
+
})
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
static createForEvent(channelOwner, event) {
|
|
43
|
+
return new Waiter(channelOwner, event);
|
|
44
|
+
}
|
|
45
|
+
async waitForEvent(emitter, event, predicate) {
|
|
46
|
+
const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
47
|
+
return await this.waitForPromise(promise, dispose);
|
|
48
|
+
}
|
|
49
|
+
rejectOnEvent(emitter, event, error, predicate) {
|
|
50
|
+
const { promise, dispose } = waitForEvent(emitter, event, this._savedZone, predicate);
|
|
51
|
+
this._rejectOn(promise.then(() => {
|
|
52
|
+
throw typeof error === "function" ? error() : error;
|
|
53
|
+
}), dispose);
|
|
54
|
+
}
|
|
55
|
+
rejectOnTimeout(timeout, message) {
|
|
56
|
+
if (!timeout)
|
|
57
|
+
return;
|
|
58
|
+
const { promise, dispose } = waitForTimeout(timeout);
|
|
59
|
+
this._rejectOn(promise.then(() => {
|
|
60
|
+
throw new import_errors.TimeoutError(message);
|
|
61
|
+
}), dispose);
|
|
62
|
+
}
|
|
63
|
+
rejectImmediately(error) {
|
|
64
|
+
this._immediateError = error;
|
|
65
|
+
}
|
|
66
|
+
dispose() {
|
|
67
|
+
for (const dispose of this._dispose)
|
|
68
|
+
dispose();
|
|
69
|
+
}
|
|
70
|
+
async waitForPromise(promise, dispose) {
|
|
71
|
+
try {
|
|
72
|
+
if (this._immediateError)
|
|
73
|
+
throw this._immediateError;
|
|
74
|
+
const result = await Promise.race([promise, ...this._failures]);
|
|
75
|
+
if (dispose)
|
|
76
|
+
dispose();
|
|
77
|
+
return result;
|
|
78
|
+
} catch (e) {
|
|
79
|
+
if (dispose)
|
|
80
|
+
dispose();
|
|
81
|
+
this._error = e.message;
|
|
82
|
+
this.dispose();
|
|
83
|
+
(0, import_stackTrace.rewriteErrorMessage)(e, e.message + formatLogRecording(this._logs));
|
|
84
|
+
throw e;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
log(s) {
|
|
88
|
+
this._logs.push(s);
|
|
89
|
+
this._channelOwner._wrapApiCall(async () => {
|
|
90
|
+
await this._channelOwner._channel.waitForEventInfo({ info: { waitId: this._waitId, phase: "log", message: s } });
|
|
91
|
+
}, { internal: true }).catch(() => {
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
_rejectOn(promise, dispose) {
|
|
95
|
+
this._failures.push(promise);
|
|
96
|
+
if (dispose)
|
|
97
|
+
this._dispose.push(dispose);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function waitForEvent(emitter, event, savedZone, predicate) {
|
|
101
|
+
let listener;
|
|
102
|
+
const promise = new Promise((resolve, reject) => {
|
|
103
|
+
listener = async (eventArg) => {
|
|
104
|
+
await savedZone.run(async () => {
|
|
105
|
+
try {
|
|
106
|
+
if (predicate && !await predicate(eventArg))
|
|
107
|
+
return;
|
|
108
|
+
emitter.removeListener(event, listener);
|
|
109
|
+
resolve(eventArg);
|
|
110
|
+
} catch (e) {
|
|
111
|
+
emitter.removeListener(event, listener);
|
|
112
|
+
reject(e);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
emitter.addListener(event, listener);
|
|
117
|
+
});
|
|
118
|
+
const dispose = () => emitter.removeListener(event, listener);
|
|
119
|
+
return { promise, dispose };
|
|
120
|
+
}
|
|
121
|
+
function waitForTimeout(timeout) {
|
|
122
|
+
let timeoutId;
|
|
123
|
+
const promise = new Promise((resolve) => timeoutId = setTimeout(resolve, timeout));
|
|
124
|
+
const dispose = () => clearTimeout(timeoutId);
|
|
125
|
+
return { promise, dispose };
|
|
126
|
+
}
|
|
127
|
+
function formatLogRecording(log) {
|
|
128
|
+
if (!log.length)
|
|
129
|
+
return "";
|
|
130
|
+
const header = ` logs `;
|
|
131
|
+
const headerLength = 60;
|
|
132
|
+
const leftLength = (headerLength - header.length) / 2;
|
|
133
|
+
const rightLength = headerLength - header.length - leftLength;
|
|
134
|
+
return `
|
|
135
|
+
${"=".repeat(leftLength)}${header}${"=".repeat(rightLength)}
|
|
136
|
+
${log.join("\n")}
|
|
137
|
+
${"=".repeat(headerLength)}`;
|
|
138
|
+
}
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
Waiter
|
|
142
|
+
});
|
package/lib/client/webError.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
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 webError_exports = {};
|
|
20
|
-
__export(webError_exports, {
|
|
21
|
-
WebError: () => WebError
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(webError_exports);
|
|
24
|
-
class WebError {
|
|
25
|
-
constructor(page, error) {
|
|
26
|
-
this._page = page;
|
|
27
|
-
this._error = error;
|
|
28
|
-
}
|
|
29
|
-
page() {
|
|
30
|
-
return this._page;
|
|
31
|
-
}
|
|
32
|
-
error() {
|
|
33
|
-
return this._error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
-
0 && (module.exports = {
|
|
38
|
-
WebError
|
|
39
|
-
});
|
|
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 webError_exports = {};
|
|
20
|
+
__export(webError_exports, {
|
|
21
|
+
WebError: () => WebError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(webError_exports);
|
|
24
|
+
class WebError {
|
|
25
|
+
constructor(page, error) {
|
|
26
|
+
this._page = page;
|
|
27
|
+
this._error = error;
|
|
28
|
+
}
|
|
29
|
+
page() {
|
|
30
|
+
return this._page;
|
|
31
|
+
}
|
|
32
|
+
error() {
|
|
33
|
+
return this._error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
WebError
|
|
39
|
+
});
|
package/lib/client/webSocket.js
CHANGED
|
@@ -1,93 +1,93 @@
|
|
|
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 webSocket_exports = {};
|
|
20
|
-
__export(webSocket_exports, {
|
|
21
|
-
connectOverWebSocket: () => connectOverWebSocket
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(webSocket_exports);
|
|
24
|
-
var import_connection = require("./connection");
|
|
25
|
-
async function connectOverWebSocket(parentConnection, params) {
|
|
26
|
-
const localUtils = parentConnection.localUtils();
|
|
27
|
-
const transport = localUtils ? new JsonPipeTransport(localUtils) : new WebSocketTransport();
|
|
28
|
-
const connectHeaders = await transport.connect(params);
|
|
29
|
-
const connection = new import_connection.Connection(parentConnection._platform, localUtils, parentConnection._instrumentation, connectHeaders);
|
|
30
|
-
connection.markAsRemote();
|
|
31
|
-
connection.on("close", () => transport.close());
|
|
32
|
-
let closeError;
|
|
33
|
-
const onTransportClosed = (reason) => {
|
|
34
|
-
connection.close(reason || closeError);
|
|
35
|
-
};
|
|
36
|
-
transport.onClose((reason) => onTransportClosed(reason));
|
|
37
|
-
connection.onmessage = (message) => transport.send(message).catch(() => onTransportClosed());
|
|
38
|
-
transport.onMessage((message) => {
|
|
39
|
-
try {
|
|
40
|
-
connection.dispatch(message);
|
|
41
|
-
} catch (e) {
|
|
42
|
-
closeError = String(e);
|
|
43
|
-
transport.close().catch(() => {
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
return connection;
|
|
48
|
-
}
|
|
49
|
-
class JsonPipeTransport {
|
|
50
|
-
constructor(owner) {
|
|
51
|
-
this._owner = owner;
|
|
52
|
-
}
|
|
53
|
-
async connect(params) {
|
|
54
|
-
const { pipe, headers: connectHeaders } = await this._owner._channel.connect(params);
|
|
55
|
-
this._pipe = pipe;
|
|
56
|
-
return connectHeaders;
|
|
57
|
-
}
|
|
58
|
-
async send(message) {
|
|
59
|
-
await this._pipe.send({ message });
|
|
60
|
-
}
|
|
61
|
-
onMessage(callback) {
|
|
62
|
-
this._pipe.on("message", ({ message }) => callback(message));
|
|
63
|
-
}
|
|
64
|
-
onClose(callback) {
|
|
65
|
-
this._pipe.on("closed", ({ reason }) => callback(reason));
|
|
66
|
-
}
|
|
67
|
-
async close() {
|
|
68
|
-
await this._pipe.close().catch(() => {
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
class WebSocketTransport {
|
|
73
|
-
async connect(params) {
|
|
74
|
-
this._ws = new window.WebSocket(params.wsEndpoint);
|
|
75
|
-
return [];
|
|
76
|
-
}
|
|
77
|
-
async send(message) {
|
|
78
|
-
this._ws.send(JSON.stringify(message));
|
|
79
|
-
}
|
|
80
|
-
onMessage(callback) {
|
|
81
|
-
this._ws.addEventListener("message", (event) => callback(JSON.parse(event.data)));
|
|
82
|
-
}
|
|
83
|
-
onClose(callback) {
|
|
84
|
-
this._ws.addEventListener("close", () => callback());
|
|
85
|
-
}
|
|
86
|
-
async close() {
|
|
87
|
-
this._ws.close();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
-
0 && (module.exports = {
|
|
92
|
-
connectOverWebSocket
|
|
93
|
-
});
|
|
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 webSocket_exports = {};
|
|
20
|
+
__export(webSocket_exports, {
|
|
21
|
+
connectOverWebSocket: () => connectOverWebSocket
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(webSocket_exports);
|
|
24
|
+
var import_connection = require("./connection");
|
|
25
|
+
async function connectOverWebSocket(parentConnection, params) {
|
|
26
|
+
const localUtils = parentConnection.localUtils();
|
|
27
|
+
const transport = localUtils ? new JsonPipeTransport(localUtils) : new WebSocketTransport();
|
|
28
|
+
const connectHeaders = await transport.connect(params);
|
|
29
|
+
const connection = new import_connection.Connection(parentConnection._platform, localUtils, parentConnection._instrumentation, connectHeaders);
|
|
30
|
+
connection.markAsRemote();
|
|
31
|
+
connection.on("close", () => transport.close());
|
|
32
|
+
let closeError;
|
|
33
|
+
const onTransportClosed = (reason) => {
|
|
34
|
+
connection.close(reason || closeError);
|
|
35
|
+
};
|
|
36
|
+
transport.onClose((reason) => onTransportClosed(reason));
|
|
37
|
+
connection.onmessage = (message) => transport.send(message).catch(() => onTransportClosed());
|
|
38
|
+
transport.onMessage((message) => {
|
|
39
|
+
try {
|
|
40
|
+
connection.dispatch(message);
|
|
41
|
+
} catch (e) {
|
|
42
|
+
closeError = String(e);
|
|
43
|
+
transport.close().catch(() => {
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return connection;
|
|
48
|
+
}
|
|
49
|
+
class JsonPipeTransport {
|
|
50
|
+
constructor(owner) {
|
|
51
|
+
this._owner = owner;
|
|
52
|
+
}
|
|
53
|
+
async connect(params) {
|
|
54
|
+
const { pipe, headers: connectHeaders } = await this._owner._channel.connect(params);
|
|
55
|
+
this._pipe = pipe;
|
|
56
|
+
return connectHeaders;
|
|
57
|
+
}
|
|
58
|
+
async send(message) {
|
|
59
|
+
await this._pipe.send({ message });
|
|
60
|
+
}
|
|
61
|
+
onMessage(callback) {
|
|
62
|
+
this._pipe.on("message", ({ message }) => callback(message));
|
|
63
|
+
}
|
|
64
|
+
onClose(callback) {
|
|
65
|
+
this._pipe.on("closed", ({ reason }) => callback(reason));
|
|
66
|
+
}
|
|
67
|
+
async close() {
|
|
68
|
+
await this._pipe.close().catch(() => {
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
class WebSocketTransport {
|
|
73
|
+
async connect(params) {
|
|
74
|
+
this._ws = new window.WebSocket(params.wsEndpoint);
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
async send(message) {
|
|
78
|
+
this._ws.send(JSON.stringify(message));
|
|
79
|
+
}
|
|
80
|
+
onMessage(callback) {
|
|
81
|
+
this._ws.addEventListener("message", (event) => callback(JSON.parse(event.data)));
|
|
82
|
+
}
|
|
83
|
+
onClose(callback) {
|
|
84
|
+
this._ws.addEventListener("close", () => callback());
|
|
85
|
+
}
|
|
86
|
+
async close() {
|
|
87
|
+
this._ws.close();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
+
0 && (module.exports = {
|
|
92
|
+
connectOverWebSocket
|
|
93
|
+
});
|