rebrowser-playwright-core 1.49.0 → 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 -595
- 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 +353 -432
- 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 -645
- 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-DVQi6prl.js +24 -0
- 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 +196 -75
- 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/codeMirrorModule-AFvV6hAs.js +0 -24
- package/lib/vite/recorder/assets/index-_cTWgVuJ.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-KatbITLF.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-DdpLd2bb.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-CdYbzWFD.js +0 -9
- package/lib/vite/traceViewer/embedded.6m3UZh7r.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.WUV-8boJ.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.OT2tVHgn.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.BZBTyvGn.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
package/lib/server/transport.js
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
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 transport_exports = {};
|
|
20
|
+
__export(transport_exports, {
|
|
21
|
+
WebSocketTransport: () => WebSocketTransport,
|
|
22
|
+
perMessageDeflate: () => perMessageDeflate
|
|
5
23
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
13
|
-
*
|
|
14
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
-
* you may not use this file except in compliance with the License.
|
|
16
|
-
* You may obtain a copy of the License at
|
|
17
|
-
*
|
|
18
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
-
*
|
|
20
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
21
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
22
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
23
|
-
* See the License for the specific language governing permissions and
|
|
24
|
-
* limitations under the License.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
const perMessageDeflate = exports.perMessageDeflate = {
|
|
24
|
+
module.exports = __toCommonJS(transport_exports);
|
|
25
|
+
var import_utils = require("../utils");
|
|
26
|
+
var import_happyEyeballs = require("./utils/happyEyeballs");
|
|
27
|
+
var import_utilsBundle = require("../utilsBundle");
|
|
28
|
+
const perMessageDeflate = {
|
|
29
|
+
clientNoContextTakeover: true,
|
|
28
30
|
zlibDeflateOptions: {
|
|
29
31
|
level: 3
|
|
30
32
|
},
|
|
@@ -34,158 +36,148 @@ const perMessageDeflate = exports.perMessageDeflate = {
|
|
|
34
36
|
threshold: 10 * 1024
|
|
35
37
|
};
|
|
36
38
|
class WebSocketTransport {
|
|
37
|
-
|
|
38
|
-
return await WebSocketTransport._connect(progress, url, headers || {}, {
|
|
39
|
-
follow: !!followRedirects,
|
|
40
|
-
hadRedirects: false
|
|
41
|
-
}, debugLogHeader);
|
|
42
|
-
}
|
|
43
|
-
static async _connect(progress, url, headers, redirect, debugLogHeader) {
|
|
44
|
-
const logUrl = stripQueryParams(url);
|
|
45
|
-
progress === null || progress === void 0 || progress.log(`<ws connecting> ${logUrl}`);
|
|
46
|
-
const transport = new WebSocketTransport(progress, url, logUrl, headers, redirect.follow && redirect.hadRedirects, debugLogHeader);
|
|
47
|
-
let success = false;
|
|
48
|
-
progress === null || progress === void 0 || progress.cleanupWhenAborted(async () => {
|
|
49
|
-
if (!success) await transport.closeAndWait().catch(e => null);
|
|
50
|
-
});
|
|
51
|
-
const result = await new Promise((fulfill, reject) => {
|
|
52
|
-
transport._ws.on('open', async () => {
|
|
53
|
-
progress === null || progress === void 0 || progress.log(`<ws connected> ${logUrl}`);
|
|
54
|
-
fulfill({
|
|
55
|
-
transport
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
transport._ws.on('error', event => {
|
|
59
|
-
progress === null || progress === void 0 || progress.log(`<ws connect error> ${logUrl} ${event.message}`);
|
|
60
|
-
reject(new Error('WebSocket error: ' + event.message));
|
|
61
|
-
transport._ws.close();
|
|
62
|
-
});
|
|
63
|
-
transport._ws.on('unexpected-response', (request, response) => {
|
|
64
|
-
if (redirect.follow && !redirect.hadRedirects && (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308)) {
|
|
65
|
-
fulfill({
|
|
66
|
-
redirect: response
|
|
67
|
-
});
|
|
68
|
-
transport._ws.close();
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
for (let i = 0; i < response.rawHeaders.length; i += 2) {
|
|
72
|
-
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 || progress.log(response.rawHeaders[i + 1]);
|
|
73
|
-
}
|
|
74
|
-
const chunks = [];
|
|
75
|
-
const errorPrefix = `${logUrl} ${response.statusCode} ${response.statusMessage}`;
|
|
76
|
-
response.on('data', chunk => chunks.push(chunk));
|
|
77
|
-
response.on('close', () => {
|
|
78
|
-
const error = chunks.length ? `${errorPrefix}\n${Buffer.concat(chunks)}` : errorPrefix;
|
|
79
|
-
progress === null || progress === void 0 || progress.log(`<ws unexpected response> ${error}`);
|
|
80
|
-
reject(new Error('WebSocket error: ' + error));
|
|
81
|
-
transport._ws.close();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
if (result.redirect) {
|
|
86
|
-
// Strip authorization headers from the redirected request.
|
|
87
|
-
const newHeaders = Object.fromEntries(Object.entries(headers || {}).filter(([name]) => {
|
|
88
|
-
return !name.includes('access-key') && name.toLowerCase() !== 'authorization';
|
|
89
|
-
}));
|
|
90
|
-
return WebSocketTransport._connect(progress, result.redirect.headers.location, newHeaders, {
|
|
91
|
-
follow: true,
|
|
92
|
-
hadRedirects: true
|
|
93
|
-
}, debugLogHeader);
|
|
94
|
-
}
|
|
95
|
-
success = true;
|
|
96
|
-
return transport;
|
|
97
|
-
}
|
|
98
|
-
constructor(progress, url, logUrl, headers, followRedirects, debugLogHeader) {
|
|
99
|
-
var _progress$timeUntilDe;
|
|
100
|
-
this._ws = void 0;
|
|
101
|
-
this._progress = void 0;
|
|
102
|
-
this._logUrl = void 0;
|
|
103
|
-
this.onmessage = void 0;
|
|
104
|
-
this.onclose = void 0;
|
|
105
|
-
this.wsEndpoint = void 0;
|
|
39
|
+
constructor(progress, url, logUrl, options) {
|
|
106
40
|
this.headers = [];
|
|
107
41
|
this.wsEndpoint = url;
|
|
108
42
|
this._logUrl = logUrl;
|
|
109
|
-
this._ws = new
|
|
43
|
+
this._ws = new import_utilsBundle.ws(url, [], {
|
|
110
44
|
maxPayload: 256 * 1024 * 1024,
|
|
111
45
|
// 256Mb,
|
|
112
46
|
// Prevent internal http client error when passing negative timeout.
|
|
113
|
-
handshakeTimeout: Math.max(
|
|
114
|
-
headers,
|
|
115
|
-
followRedirects,
|
|
116
|
-
agent: /^(https|wss):\/\//.test(url) ?
|
|
47
|
+
handshakeTimeout: Math.max(progress?.timeUntilDeadline() ?? 3e4, 1),
|
|
48
|
+
headers: options.headers,
|
|
49
|
+
followRedirects: options.followRedirects,
|
|
50
|
+
agent: /^(https|wss):\/\//.test(url) ? import_happyEyeballs.httpsHappyEyeballsAgent : import_happyEyeballs.httpHappyEyeballsAgent,
|
|
117
51
|
perMessageDeflate
|
|
118
52
|
});
|
|
119
|
-
this._ws.on(
|
|
53
|
+
this._ws.on("upgrade", (response) => {
|
|
120
54
|
for (let i = 0; i < response.rawHeaders.length; i += 2) {
|
|
121
|
-
this.headers.push({
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
125
|
-
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 || progress.log(response.rawHeaders[i + 1]);
|
|
55
|
+
this.headers.push({ name: response.rawHeaders[i], value: response.rawHeaders[i + 1] });
|
|
56
|
+
if (options.debugLogHeader && response.rawHeaders[i] === options.debugLogHeader)
|
|
57
|
+
progress?.log(response.rawHeaders[i + 1]);
|
|
126
58
|
}
|
|
127
59
|
});
|
|
128
60
|
this._progress = progress;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
// are dispatched into separate tasks, so there's no need
|
|
132
|
-
// to do anything extra.
|
|
133
|
-
const messageWrap = (0, _utils.makeWaitForNextTask)();
|
|
134
|
-
this._ws.addEventListener('message', event => {
|
|
61
|
+
const messageWrap = (0, import_utils.makeWaitForNextTask)();
|
|
62
|
+
this._ws.addEventListener("message", (event) => {
|
|
135
63
|
messageWrap(() => {
|
|
136
64
|
const eventData = event.data;
|
|
137
65
|
let parsedJson;
|
|
138
66
|
try {
|
|
139
67
|
parsedJson = JSON.parse(eventData);
|
|
140
68
|
} catch (e) {
|
|
141
|
-
|
|
142
|
-
(_this$_progress = this._progress) === null || _this$_progress === void 0 || _this$_progress.log(`<closing ws> Closing websocket due to malformed JSON. eventData=${eventData} e=${e === null || e === void 0 ? void 0 : e.message}`);
|
|
69
|
+
this._progress?.log(`<closing ws> Closing websocket due to malformed JSON. eventData=${eventData} e=${e?.message}`);
|
|
143
70
|
this._ws.close();
|
|
144
71
|
return;
|
|
145
72
|
}
|
|
146
73
|
try {
|
|
147
|
-
if (this.onmessage)
|
|
74
|
+
if (this.onmessage)
|
|
75
|
+
this.onmessage.call(null, parsedJson);
|
|
148
76
|
} catch (e) {
|
|
149
|
-
|
|
150
|
-
(_this$_progress2 = this._progress) === null || _this$_progress2 === void 0 || _this$_progress2.log(`<closing ws> Closing websocket due to failed onmessage callback. eventData=${eventData} e=${e === null || e === void 0 ? void 0 : e.message}`);
|
|
77
|
+
this._progress?.log(`<closing ws> Closing websocket due to failed onmessage callback. eventData=${eventData} e=${e?.message}`);
|
|
151
78
|
this._ws.close();
|
|
152
79
|
}
|
|
153
80
|
});
|
|
154
81
|
});
|
|
155
|
-
this._ws.addEventListener(
|
|
156
|
-
|
|
157
|
-
(
|
|
158
|
-
|
|
82
|
+
this._ws.addEventListener("close", (event) => {
|
|
83
|
+
this._progress?.log(`<ws disconnected> ${logUrl} code=${event.code} reason=${event.reason}`);
|
|
84
|
+
if (this.onclose)
|
|
85
|
+
this.onclose.call(null, event.reason);
|
|
86
|
+
});
|
|
87
|
+
this._ws.addEventListener("error", (error) => this._progress?.log(`<ws error> ${logUrl} ${error.type} ${error.message}`));
|
|
88
|
+
}
|
|
89
|
+
static async connect(progress, url, options = {}) {
|
|
90
|
+
return await WebSocketTransport._connect(
|
|
91
|
+
progress,
|
|
92
|
+
url,
|
|
93
|
+
options,
|
|
94
|
+
false
|
|
95
|
+
/* hadRedirects */
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
static async _connect(progress, url, options, hadRedirects) {
|
|
99
|
+
const logUrl = stripQueryParams(url);
|
|
100
|
+
progress?.log(`<ws connecting> ${logUrl}`);
|
|
101
|
+
const transport = new WebSocketTransport(progress, url, logUrl, { ...options, followRedirects: !!options.followRedirects && hadRedirects });
|
|
102
|
+
let success = false;
|
|
103
|
+
progress?.cleanupWhenAborted(async () => {
|
|
104
|
+
if (!success)
|
|
105
|
+
await transport.closeAndWait().catch((e) => null);
|
|
159
106
|
});
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
107
|
+
const result = await new Promise((fulfill, reject) => {
|
|
108
|
+
transport._ws.on("open", async () => {
|
|
109
|
+
progress?.log(`<ws connected> ${logUrl}`);
|
|
110
|
+
fulfill({ transport });
|
|
111
|
+
});
|
|
112
|
+
transport._ws.on("error", (event) => {
|
|
113
|
+
progress?.log(`<ws connect error> ${logUrl} ${event.message}`);
|
|
114
|
+
reject(new Error("WebSocket error: " + event.message));
|
|
115
|
+
transport._ws.close();
|
|
116
|
+
});
|
|
117
|
+
transport._ws.on("unexpected-response", (request, response) => {
|
|
118
|
+
if (options.followRedirects && !hadRedirects && (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308)) {
|
|
119
|
+
fulfill({ redirect: response });
|
|
120
|
+
transport._ws.close();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
for (let i = 0; i < response.rawHeaders.length; i += 2) {
|
|
124
|
+
if (options.debugLogHeader && response.rawHeaders[i] === options.debugLogHeader)
|
|
125
|
+
progress?.log(response.rawHeaders[i + 1]);
|
|
126
|
+
}
|
|
127
|
+
const chunks = [];
|
|
128
|
+
const errorPrefix = `${logUrl} ${response.statusCode} ${response.statusMessage}`;
|
|
129
|
+
response.on("data", (chunk) => chunks.push(chunk));
|
|
130
|
+
response.on("close", () => {
|
|
131
|
+
const error = chunks.length ? `${errorPrefix}
|
|
132
|
+
${Buffer.concat(chunks)}` : errorPrefix;
|
|
133
|
+
progress?.log(`<ws unexpected response> ${error}`);
|
|
134
|
+
reject(new Error("WebSocket error: " + error));
|
|
135
|
+
transport._ws.close();
|
|
136
|
+
});
|
|
137
|
+
});
|
|
164
138
|
});
|
|
139
|
+
if (result.redirect) {
|
|
140
|
+
const newHeaders = Object.fromEntries(Object.entries(options.headers || {}).filter(([name]) => {
|
|
141
|
+
return !name.includes("access-key") && name.toLowerCase() !== "authorization";
|
|
142
|
+
}));
|
|
143
|
+
return WebSocketTransport._connect(
|
|
144
|
+
progress,
|
|
145
|
+
result.redirect.headers.location,
|
|
146
|
+
{ ...options, headers: newHeaders },
|
|
147
|
+
true
|
|
148
|
+
/* hadRedirects */
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
success = true;
|
|
152
|
+
return transport;
|
|
165
153
|
}
|
|
166
154
|
send(message) {
|
|
167
155
|
this._ws.send(JSON.stringify(message));
|
|
168
156
|
}
|
|
169
157
|
close() {
|
|
170
|
-
|
|
171
|
-
(_this$_progress5 = this._progress) === null || _this$_progress5 === void 0 || _this$_progress5.log(`<ws disconnecting> ${this._logUrl}`);
|
|
158
|
+
this._progress?.log(`<ws disconnecting> ${this._logUrl}`);
|
|
172
159
|
this._ws.close();
|
|
173
160
|
}
|
|
174
161
|
async closeAndWait() {
|
|
175
|
-
if (this._ws.readyState ===
|
|
176
|
-
|
|
162
|
+
if (this._ws.readyState === import_utilsBundle.ws.CLOSED)
|
|
163
|
+
return;
|
|
164
|
+
const promise = new Promise((f) => this._ws.once("close", f));
|
|
177
165
|
this.close();
|
|
178
|
-
await promise;
|
|
166
|
+
await promise;
|
|
179
167
|
}
|
|
180
168
|
}
|
|
181
|
-
exports.WebSocketTransport = WebSocketTransport;
|
|
182
169
|
function stripQueryParams(url) {
|
|
183
170
|
try {
|
|
184
171
|
const u = new URL(url);
|
|
185
|
-
u.search =
|
|
186
|
-
u.hash =
|
|
172
|
+
u.search = "";
|
|
173
|
+
u.hash = "";
|
|
187
174
|
return u.toString();
|
|
188
175
|
} catch {
|
|
189
176
|
return url;
|
|
190
177
|
}
|
|
191
|
-
}
|
|
178
|
+
}
|
|
179
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
180
|
+
0 && (module.exports = {
|
|
181
|
+
WebSocketTransport,
|
|
182
|
+
perMessageDeflate
|
|
183
|
+
});
|
package/lib/server/types.js
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
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 types_exports = {};
|
|
20
|
+
__export(types_exports, {
|
|
21
|
+
kLifecycleEvents: () => kLifecycleEvents
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(types_exports);
|
|
24
|
+
const kLifecycleEvents = /* @__PURE__ */ new Set(["load", "domcontentloaded", "networkidle", "commit"]);
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
kLifecycleEvents
|
|
5
28
|
});
|
|
6
|
-
exports.kLifecycleEvents = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Copyright 2018 Google Inc. All rights reserved.
|
|
9
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
10
|
-
*
|
|
11
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
-
* you may not use this file except in compliance with the License.
|
|
13
|
-
* You may obtain a copy of the License at
|
|
14
|
-
*
|
|
15
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
-
*
|
|
17
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
-
* See the License for the specific language governing permissions and
|
|
21
|
-
* limitations under the License.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
const kLifecycleEvents = exports.kLifecycleEvents = new Set(['load', 'domcontentloaded', 'networkidle', 'commit']);
|