patchright-core 1.51.2 → 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/browsers.json +15 -13
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +54 -67
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +312 -328
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +141 -228
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +57 -61
- package/lib/client/browserContext.js +297 -326
- package/lib/client/browserType.js +92 -106
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +82 -95
- package/lib/client/clientHelper.js +46 -38
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +190 -212
- package/lib/client/consoleMessage.js +31 -28
- 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 +73 -75
- package/lib/client/elementHandle.js +111 -147
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +135 -158
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +187 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -28
- package/lib/client/locator.js +161 -245
- package/lib/client/network.js +277 -295
- package/lib/client/page.js +270 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -66
- package/lib/client/selectors.js +48 -46
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +49 -39
- package/lib/client/tracing.js +48 -84
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +61 -56
- package/lib/client/worker.js +48 -58
- package/lib/client/writableStream.js +27 -23
- 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 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -46
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2714 -2714
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +140 -157
- package/lib/remote/playwrightServer.js +99 -84
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -209
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +221 -155
- package/lib/server/bidi/bidiChromium.js +106 -79
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +128 -113
- package/lib/server/bidi/bidiFirefox.js +76 -69
- package/lib/server/bidi/bidiInput.js +86 -97
- package/lib/server/bidi/bidiNetworkManager.js +137 -154
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +247 -219
- 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 +236 -220
- 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 +141 -119
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +321 -346
- package/lib/server/browserType.js +169 -182
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +86 -64
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +253 -273
- package/lib/server/chromium/crConnection.js +91 -116
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +59 -51
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +88 -83
- package/lib/server/chromium/crInput.js +97 -95
- package/lib/server/chromium/crNetworkManager.js +288 -403
- package/lib/server/chromium/crPage.js +522 -608
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +82 -67
- 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 +62 -50
- package/lib/server/codegen/csharp.js +185 -160
- package/lib/server/codegen/java.js +155 -128
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +140 -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 +97 -124
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +50 -50
- 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 +176 -205
- 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 -66
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +169 -220
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
- package/lib/server/dispatchers/frameDispatcher.js +99 -163
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
- package/lib/server/dispatchers/networkDispatchers.js +90 -107
- package/lib/server/dispatchers/pageDispatcher.js +128 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -45
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
- package/lib/server/dom.js +413 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -176
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +289 -323
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +65 -59
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +213 -277
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +91 -73
- package/lib/server/firefox/ffInput.js +67 -69
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +236 -273
- package/lib/server/firefox/firefox.js +76 -67
- 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 +741 -891
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +287 -222
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +134 -163
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +143 -134
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +130 -122
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +262 -296
- package/lib/server/page.js +329 -426
- 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 +70 -86
- package/lib/server/recorder/contextRecorder.js +134 -138
- package/lib/server/recorder/recorderApp.js +127 -136
- package/lib/server/recorder/recorderCollection.js +56 -44
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +79 -103
- package/lib/server/recorder/recorderUtils.js +56 -45
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +177 -186
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +904 -792
- package/lib/server/registry/nativeDeps.js +1073 -464
- 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 -70
- package/lib/server/storageScript.js +94 -100
- package/lib/server/timeoutSettings.js +58 -43
- package/lib/server/trace/recorder/snapshotter.js +70 -89
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +321 -333
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +168 -146
- package/lib/server/transport.js +124 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +37 -28
- package/lib/server/utils/debugLogger.js +69 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +138 -123
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +143 -86
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +73 -69
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- 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 +159 -176
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +84 -70
- package/lib/server/webkit/wkInput.js +82 -80
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +525 -619
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +121 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +340 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +47 -39
- package/lib/utils/isomorphic/mimeType.js +448 -25
- package/lib/utils/isomorphic/multimap.js +35 -27
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +41 -22
- package/lib/utils/isomorphic/timeoutRunner.js +55 -54
- package/lib/utils/isomorphic/traceUtils.js +38 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +112 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +97 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/vite/htmlReport/index.html +21 -15
- package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-DpJ-EmBQ.js → codeMirrorModule-dvXVzLxY.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
- package/lib/zipBundle.js +32 -23
- package/package.json +1 -1
- package/types/protocol.d.ts +436 -17
- package/types/types.d.ts +35 -16
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +0 -259
- package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
|
@@ -1,54 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var network_exports = {};
|
|
30
|
+
__export(network_exports, {
|
|
31
|
+
NET_DEFAULT_TIMEOUT: () => NET_DEFAULT_TIMEOUT,
|
|
32
|
+
createHttp2Server: () => createHttp2Server,
|
|
33
|
+
createHttpServer: () => createHttpServer,
|
|
34
|
+
createHttpsServer: () => createHttpsServer,
|
|
35
|
+
createProxyAgent: () => createProxyAgent,
|
|
36
|
+
fetchData: () => fetchData,
|
|
37
|
+
httpRequest: () => httpRequest,
|
|
38
|
+
isURLAvailable: () => isURLAvailable
|
|
5
39
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _http2 = _interopRequireDefault(require("http2"));
|
|
15
|
-
var _https = _interopRequireDefault(require("https"));
|
|
16
|
-
var _url = _interopRequireDefault(require("url"));
|
|
17
|
-
var _utilsBundle = require("../../utilsBundle");
|
|
18
|
-
var _happyEyeballs = require("./happyEyeballs");
|
|
19
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
-
/**
|
|
21
|
-
* Copyright (c) Microsoft Corporation.
|
|
22
|
-
*
|
|
23
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
24
|
-
* you may not use this file except in compliance with the License.
|
|
25
|
-
* You may obtain a copy of the License at
|
|
26
|
-
*
|
|
27
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
28
|
-
*
|
|
29
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
30
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
31
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
32
|
-
* See the License for the specific language governing permissions and
|
|
33
|
-
* limitations under the License.
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
const NET_DEFAULT_TIMEOUT = exports.NET_DEFAULT_TIMEOUT = 30_000;
|
|
40
|
+
module.exports = __toCommonJS(network_exports);
|
|
41
|
+
var import_http = __toESM(require("http"));
|
|
42
|
+
var import_http2 = __toESM(require("http2"));
|
|
43
|
+
var import_https = __toESM(require("https"));
|
|
44
|
+
var import_url = __toESM(require("url"));
|
|
45
|
+
var import_utilsBundle = require("../../utilsBundle");
|
|
46
|
+
var import_happyEyeballs = require("./happyEyeballs");
|
|
47
|
+
const NET_DEFAULT_TIMEOUT = 3e4;
|
|
37
48
|
function httpRequest(params, onResponse, onError) {
|
|
38
|
-
|
|
39
|
-
const parsedUrl = _url.default.parse(params.url);
|
|
49
|
+
const parsedUrl = import_url.default.parse(params.url);
|
|
40
50
|
let options = {
|
|
41
51
|
...parsedUrl,
|
|
42
|
-
agent: parsedUrl.protocol ===
|
|
43
|
-
method: params.method ||
|
|
52
|
+
agent: parsedUrl.protocol === "https:" ? import_happyEyeballs.httpsHappyEyeballsAgent : import_happyEyeballs.httpHappyEyeballsAgent,
|
|
53
|
+
method: params.method || "GET",
|
|
44
54
|
headers: params.headers
|
|
45
55
|
};
|
|
46
|
-
if (params.rejectUnauthorized !==
|
|
47
|
-
|
|
48
|
-
const
|
|
56
|
+
if (params.rejectUnauthorized !== void 0)
|
|
57
|
+
options.rejectUnauthorized = params.rejectUnauthorized;
|
|
58
|
+
const timeout = params.timeout ?? NET_DEFAULT_TIMEOUT;
|
|
59
|
+
const proxyURL = (0, import_utilsBundle.getProxyForUrl)(params.url);
|
|
49
60
|
if (proxyURL) {
|
|
50
|
-
const parsedProxyURL =
|
|
51
|
-
if (params.url.startsWith(
|
|
61
|
+
const parsedProxyURL = import_url.default.parse(proxyURL);
|
|
62
|
+
if (params.url.startsWith("http:")) {
|
|
52
63
|
options = {
|
|
53
64
|
path: parsedUrl.href,
|
|
54
65
|
host: parsedProxyURL.hostname,
|
|
@@ -57,21 +68,23 @@ function httpRequest(params, onResponse, onError) {
|
|
|
57
68
|
method: options.method
|
|
58
69
|
};
|
|
59
70
|
} else {
|
|
60
|
-
parsedProxyURL.secureProxy = parsedProxyURL.protocol ===
|
|
61
|
-
options.agent = new
|
|
71
|
+
parsedProxyURL.secureProxy = parsedProxyURL.protocol === "https:";
|
|
72
|
+
options.agent = new import_utilsBundle.HttpsProxyAgent(parsedProxyURL);
|
|
62
73
|
options.rejectUnauthorized = false;
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
|
-
const requestCallback = res => {
|
|
76
|
+
const requestCallback = (res) => {
|
|
66
77
|
const statusCode = res.statusCode || 0;
|
|
67
|
-
if (statusCode >= 300 && statusCode < 400 && res.headers.location)
|
|
68
|
-
|
|
69
|
-
url: new URL(res.headers.location, params.url).toString()
|
|
70
|
-
}
|
|
78
|
+
if (statusCode >= 300 && statusCode < 400 && res.headers.location) {
|
|
79
|
+
request.destroy();
|
|
80
|
+
httpRequest({ ...params, url: new URL(res.headers.location, params.url).toString() }, onResponse, onError);
|
|
81
|
+
} else {
|
|
82
|
+
onResponse(res);
|
|
83
|
+
}
|
|
71
84
|
};
|
|
72
|
-
const request = options.protocol ===
|
|
73
|
-
request.on(
|
|
74
|
-
if (timeout !==
|
|
85
|
+
const request = options.protocol === "https:" ? import_https.default.request(options, requestCallback) : import_http.default.request(options, requestCallback);
|
|
86
|
+
request.on("error", onError);
|
|
87
|
+
if (timeout !== void 0) {
|
|
75
88
|
const rejectOnTimeout = () => {
|
|
76
89
|
onError(new Error(`Request to ${params.url} timed out after ${timeout}ms`));
|
|
77
90
|
request.abort();
|
|
@@ -86,75 +99,119 @@ function httpRequest(params, onResponse, onError) {
|
|
|
86
99
|
}
|
|
87
100
|
function fetchData(params, onError) {
|
|
88
101
|
return new Promise((resolve, reject) => {
|
|
89
|
-
httpRequest(params, async response => {
|
|
102
|
+
httpRequest(params, async (response) => {
|
|
90
103
|
if (response.statusCode !== 200) {
|
|
91
104
|
const error = onError ? await onError(params, response) : new Error(`fetch failed: server returned code ${response.statusCode}. URL: ${params.url}`);
|
|
92
105
|
reject(error);
|
|
93
106
|
return;
|
|
94
107
|
}
|
|
95
|
-
let body =
|
|
96
|
-
response.on(
|
|
97
|
-
response.on(
|
|
98
|
-
response.on(
|
|
108
|
+
let body = "";
|
|
109
|
+
response.on("data", (chunk) => body += chunk);
|
|
110
|
+
response.on("error", (error) => reject(error));
|
|
111
|
+
response.on("end", () => resolve(body));
|
|
99
112
|
}, reject);
|
|
100
113
|
});
|
|
101
114
|
}
|
|
115
|
+
function shouldBypassProxy(url2, bypass) {
|
|
116
|
+
if (!bypass)
|
|
117
|
+
return false;
|
|
118
|
+
const domains = bypass.split(",").map((s) => {
|
|
119
|
+
s = s.trim();
|
|
120
|
+
if (!s.startsWith("."))
|
|
121
|
+
s = "." + s;
|
|
122
|
+
return s;
|
|
123
|
+
});
|
|
124
|
+
const domain = "." + url2.hostname;
|
|
125
|
+
return domains.some((d) => domain.endsWith(d));
|
|
126
|
+
}
|
|
127
|
+
function createProxyAgent(proxy, forUrl) {
|
|
128
|
+
if (!proxy)
|
|
129
|
+
return;
|
|
130
|
+
if (forUrl && proxy.bypass && shouldBypassProxy(forUrl, proxy.bypass))
|
|
131
|
+
return;
|
|
132
|
+
let proxyServer = proxy.server.trim();
|
|
133
|
+
if (!/^\w+:\/\//.test(proxyServer))
|
|
134
|
+
proxyServer = "http://" + proxyServer;
|
|
135
|
+
const proxyOpts = import_url.default.parse(proxyServer);
|
|
136
|
+
if (proxyOpts.protocol?.startsWith("socks")) {
|
|
137
|
+
return new import_utilsBundle.SocksProxyAgent({
|
|
138
|
+
host: proxyOpts.hostname,
|
|
139
|
+
port: proxyOpts.port || void 0
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
if (proxy.username)
|
|
143
|
+
proxyOpts.auth = `${proxy.username}:${proxy.password || ""}`;
|
|
144
|
+
if (forUrl && ["ws:", "wss:"].includes(forUrl.protocol)) {
|
|
145
|
+
return new import_utilsBundle.HttpsProxyAgent(proxyOpts);
|
|
146
|
+
}
|
|
147
|
+
return new import_utilsBundle.HttpsProxyAgent(proxyOpts);
|
|
148
|
+
}
|
|
102
149
|
function createHttpServer(...args) {
|
|
103
|
-
const server =
|
|
150
|
+
const server = import_http.default.createServer(...args);
|
|
104
151
|
decorateServer(server);
|
|
105
152
|
return server;
|
|
106
153
|
}
|
|
107
154
|
function createHttpsServer(...args) {
|
|
108
|
-
const server =
|
|
155
|
+
const server = import_https.default.createServer(...args);
|
|
109
156
|
decorateServer(server);
|
|
110
157
|
return server;
|
|
111
158
|
}
|
|
112
159
|
function createHttp2Server(...args) {
|
|
113
|
-
const server =
|
|
160
|
+
const server = import_http2.default.createSecureServer(...args);
|
|
114
161
|
decorateServer(server);
|
|
115
162
|
return server;
|
|
116
163
|
}
|
|
117
|
-
async function isURLAvailable(
|
|
118
|
-
let statusCode = await httpStatusCode(
|
|
119
|
-
if (statusCode === 404 &&
|
|
120
|
-
const indexUrl = new URL(
|
|
121
|
-
indexUrl.pathname =
|
|
164
|
+
async function isURLAvailable(url2, ignoreHTTPSErrors, onLog, onStdErr) {
|
|
165
|
+
let statusCode = await httpStatusCode(url2, ignoreHTTPSErrors, onLog, onStdErr);
|
|
166
|
+
if (statusCode === 404 && url2.pathname === "/") {
|
|
167
|
+
const indexUrl = new URL(url2);
|
|
168
|
+
indexUrl.pathname = "/index.html";
|
|
122
169
|
statusCode = await httpStatusCode(indexUrl, ignoreHTTPSErrors, onLog, onStdErr);
|
|
123
170
|
}
|
|
124
171
|
return statusCode >= 200 && statusCode < 404;
|
|
125
172
|
}
|
|
126
|
-
async function httpStatusCode(
|
|
127
|
-
return new Promise(resolve => {
|
|
128
|
-
onLog
|
|
173
|
+
async function httpStatusCode(url2, ignoreHTTPSErrors, onLog, onStdErr) {
|
|
174
|
+
return new Promise((resolve) => {
|
|
175
|
+
onLog?.(`HTTP GET: ${url2}`);
|
|
129
176
|
httpRequest({
|
|
130
|
-
url:
|
|
131
|
-
headers: {
|
|
132
|
-
Accept: '*/*'
|
|
133
|
-
},
|
|
177
|
+
url: url2.toString(),
|
|
178
|
+
headers: { Accept: "*/*" },
|
|
134
179
|
rejectUnauthorized: !ignoreHTTPSErrors
|
|
135
|
-
}, res => {
|
|
136
|
-
var _res$statusCode;
|
|
180
|
+
}, (res) => {
|
|
137
181
|
res.resume();
|
|
138
|
-
const statusCode =
|
|
139
|
-
onLog
|
|
182
|
+
const statusCode = res.statusCode ?? 0;
|
|
183
|
+
onLog?.(`HTTP Status: ${statusCode}`);
|
|
140
184
|
resolve(statusCode);
|
|
141
|
-
}, error => {
|
|
142
|
-
if (error.code ===
|
|
143
|
-
|
|
185
|
+
}, (error) => {
|
|
186
|
+
if (error.code === "DEPTH_ZERO_SELF_SIGNED_CERT")
|
|
187
|
+
onStdErr?.(`[WebServer] Self-signed certificate detected. Try adding ignoreHTTPSErrors: true to config.webServer.`);
|
|
188
|
+
onLog?.(`Error while checking if ${url2} is available: ${error.message}`);
|
|
144
189
|
resolve(0);
|
|
145
190
|
});
|
|
146
191
|
});
|
|
147
192
|
}
|
|
148
193
|
function decorateServer(server) {
|
|
149
|
-
const sockets = new Set();
|
|
150
|
-
server.on(
|
|
194
|
+
const sockets = /* @__PURE__ */ new Set();
|
|
195
|
+
server.on("connection", (socket) => {
|
|
151
196
|
sockets.add(socket);
|
|
152
|
-
socket.once(
|
|
197
|
+
socket.once("close", () => sockets.delete(socket));
|
|
153
198
|
});
|
|
154
199
|
const close = server.close;
|
|
155
|
-
server.close = callback => {
|
|
156
|
-
for (const socket of sockets)
|
|
200
|
+
server.close = (callback) => {
|
|
201
|
+
for (const socket of sockets)
|
|
202
|
+
socket.destroy();
|
|
157
203
|
sockets.clear();
|
|
158
204
|
return close.call(server, callback);
|
|
159
205
|
};
|
|
160
|
-
}
|
|
206
|
+
}
|
|
207
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
+
0 && (module.exports = {
|
|
209
|
+
NET_DEFAULT_TIMEOUT,
|
|
210
|
+
createHttp2Server,
|
|
211
|
+
createHttpServer,
|
|
212
|
+
createHttpsServer,
|
|
213
|
+
createProxyAgent,
|
|
214
|
+
fetchData,
|
|
215
|
+
httpRequest,
|
|
216
|
+
isURLAvailable
|
|
217
|
+
});
|
|
@@ -1,140 +1,148 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var nodePlatform_exports = {};
|
|
30
|
+
__export(nodePlatform_exports, {
|
|
31
|
+
nodePlatform: () => nodePlatform,
|
|
32
|
+
setBoxedStackPrefixes: () => setBoxedStackPrefixes
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
-
/**
|
|
22
|
-
* Copyright (c) Microsoft Corporation.
|
|
23
|
-
*
|
|
24
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
25
|
-
* you may not use this file except in compliance with the License.
|
|
26
|
-
* You may obtain a copy of the License at
|
|
27
|
-
*
|
|
28
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
29
|
-
*
|
|
30
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
31
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
32
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
33
|
-
* See the License for the specific language governing permissions and
|
|
34
|
-
* limitations under the License.
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
const pipelineAsync = util.promisify(_stream.pipeline);
|
|
34
|
+
module.exports = __toCommonJS(nodePlatform_exports);
|
|
35
|
+
var import_crypto = __toESM(require("crypto"));
|
|
36
|
+
var import_fs = __toESM(require("fs"));
|
|
37
|
+
var import_path = __toESM(require("path"));
|
|
38
|
+
var util = __toESM(require("util"));
|
|
39
|
+
var import_stream = require("stream");
|
|
40
|
+
var import_events = require("events");
|
|
41
|
+
var import_utilsBundle = require("../../utilsBundle");
|
|
42
|
+
var import_debugLogger = require("./debugLogger");
|
|
43
|
+
var import_zones = require("./zones");
|
|
44
|
+
var import_debug = require("./debug");
|
|
45
|
+
const pipelineAsync = util.promisify(import_stream.pipeline);
|
|
38
46
|
class NodeZone {
|
|
39
47
|
constructor(zone) {
|
|
40
|
-
this._zone = void 0;
|
|
41
48
|
this._zone = zone;
|
|
42
49
|
}
|
|
43
50
|
push(data) {
|
|
44
|
-
return new NodeZone(this._zone.with(
|
|
51
|
+
return new NodeZone(this._zone.with("apiZone", data));
|
|
45
52
|
}
|
|
46
53
|
pop() {
|
|
47
|
-
return new NodeZone(this._zone.without(
|
|
54
|
+
return new NodeZone(this._zone.without("apiZone"));
|
|
48
55
|
}
|
|
49
56
|
run(func) {
|
|
50
57
|
return this._zone.run(func);
|
|
51
58
|
}
|
|
52
59
|
data() {
|
|
53
|
-
return this._zone.data(
|
|
60
|
+
return this._zone.data("apiZone");
|
|
54
61
|
}
|
|
55
62
|
}
|
|
56
63
|
let boxedStackPrefixes = [];
|
|
57
64
|
function setBoxedStackPrefixes(prefixes) {
|
|
58
65
|
boxedStackPrefixes = prefixes;
|
|
59
66
|
}
|
|
60
|
-
const coreDir =
|
|
61
|
-
const nodePlatform =
|
|
62
|
-
name:
|
|
67
|
+
const coreDir = import_path.default.dirname(require.resolve("../../../package.json"));
|
|
68
|
+
const nodePlatform = {
|
|
69
|
+
name: "node",
|
|
63
70
|
boxedStackPrefixes: () => {
|
|
64
|
-
if (process.env.PWDEBUGIMPL)
|
|
71
|
+
if (process.env.PWDEBUGIMPL)
|
|
72
|
+
return [];
|
|
65
73
|
return [coreDir, ...boxedStackPrefixes];
|
|
66
74
|
},
|
|
67
|
-
calculateSha1: text => {
|
|
68
|
-
const sha1 =
|
|
75
|
+
calculateSha1: (text) => {
|
|
76
|
+
const sha1 = import_crypto.default.createHash("sha1");
|
|
69
77
|
sha1.update(text);
|
|
70
|
-
return Promise.resolve(sha1.digest(
|
|
78
|
+
return Promise.resolve(sha1.digest("hex"));
|
|
71
79
|
},
|
|
72
|
-
colors:
|
|
80
|
+
colors: import_utilsBundle.colors,
|
|
73
81
|
coreDir,
|
|
74
|
-
createGuid: () =>
|
|
75
|
-
defaultMaxListeners: () =>
|
|
76
|
-
fs: () =>
|
|
82
|
+
createGuid: () => import_crypto.default.randomBytes(16).toString("hex"),
|
|
83
|
+
defaultMaxListeners: () => import_events.EventEmitter.defaultMaxListeners,
|
|
84
|
+
fs: () => import_fs.default,
|
|
77
85
|
env: process.env,
|
|
78
86
|
inspectCustom: util.inspect.custom,
|
|
79
|
-
isDebugMode: () => !!(0,
|
|
80
|
-
isJSDebuggerAttached: () => !!require(
|
|
87
|
+
isDebugMode: () => !!(0, import_debug.debugMode)(),
|
|
88
|
+
isJSDebuggerAttached: () => !!require("inspector").url(),
|
|
81
89
|
isLogEnabled(name) {
|
|
82
|
-
return
|
|
90
|
+
return import_debugLogger.debugLogger.isEnabled(name);
|
|
83
91
|
},
|
|
84
|
-
isUnderTest: () => (0,
|
|
92
|
+
isUnderTest: () => (0, import_debug.isUnderTest)(),
|
|
85
93
|
log(name, message) {
|
|
86
|
-
|
|
94
|
+
import_debugLogger.debugLogger.log(name, message);
|
|
87
95
|
},
|
|
88
|
-
path: () =>
|
|
89
|
-
pathSeparator:
|
|
96
|
+
path: () => import_path.default,
|
|
97
|
+
pathSeparator: import_path.default.sep,
|
|
90
98
|
showInternalStackFrames: () => !!process.env.PWDEBUGIMPL,
|
|
91
|
-
async streamFile(
|
|
92
|
-
await pipelineAsync(
|
|
99
|
+
async streamFile(path2, stream) {
|
|
100
|
+
await pipelineAsync(import_fs.default.createReadStream(path2), stream);
|
|
93
101
|
},
|
|
94
|
-
streamReadable: channel => {
|
|
102
|
+
streamReadable: (channel) => {
|
|
95
103
|
return new ReadableStreamImpl(channel);
|
|
96
104
|
},
|
|
97
|
-
streamWritable: channel => {
|
|
105
|
+
streamWritable: (channel) => {
|
|
98
106
|
return new WritableStreamImpl(channel);
|
|
99
107
|
},
|
|
100
108
|
zones: {
|
|
101
|
-
current: () => new NodeZone((0,
|
|
102
|
-
empty: new NodeZone(
|
|
109
|
+
current: () => new NodeZone((0, import_zones.currentZone)()),
|
|
110
|
+
empty: new NodeZone(import_zones.emptyZone)
|
|
103
111
|
}
|
|
104
112
|
};
|
|
105
|
-
class ReadableStreamImpl extends
|
|
113
|
+
class ReadableStreamImpl extends import_stream.Readable {
|
|
106
114
|
constructor(channel) {
|
|
107
115
|
super();
|
|
108
|
-
this._channel = void 0;
|
|
109
116
|
this._channel = channel;
|
|
110
117
|
}
|
|
111
118
|
async _read() {
|
|
112
|
-
const result = await this._channel.read({
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
const result = await this._channel.read({ size: 1024 * 1024 });
|
|
120
|
+
if (result.binary.byteLength)
|
|
121
|
+
this.push(result.binary);
|
|
122
|
+
else
|
|
123
|
+
this.push(null);
|
|
116
124
|
}
|
|
117
125
|
_destroy(error, callback) {
|
|
118
|
-
|
|
119
|
-
this._channel.close().catch(e => null);
|
|
126
|
+
this._channel.close().catch((e) => null);
|
|
120
127
|
super._destroy(error, callback);
|
|
121
128
|
}
|
|
122
129
|
}
|
|
123
|
-
class WritableStreamImpl extends
|
|
130
|
+
class WritableStreamImpl extends import_stream.Writable {
|
|
124
131
|
constructor(channel) {
|
|
125
132
|
super();
|
|
126
|
-
this._channel = void 0;
|
|
127
133
|
this._channel = channel;
|
|
128
134
|
}
|
|
129
135
|
async _write(chunk, encoding, callback) {
|
|
130
|
-
const error = await this._channel.write({
|
|
131
|
-
binary: typeof chunk === 'string' ? Buffer.from(chunk) : chunk
|
|
132
|
-
}).catch(e => e);
|
|
136
|
+
const error = await this._channel.write({ binary: typeof chunk === "string" ? Buffer.from(chunk) : chunk }).catch((e) => e);
|
|
133
137
|
callback(error || null);
|
|
134
138
|
}
|
|
135
139
|
async _final(callback) {
|
|
136
|
-
|
|
137
|
-
const error = await this._channel.close().catch(e => e);
|
|
140
|
+
const error = await this._channel.close().catch((e) => e);
|
|
138
141
|
callback(error || null);
|
|
139
142
|
}
|
|
140
|
-
}
|
|
143
|
+
}
|
|
144
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
145
|
+
0 && (module.exports = {
|
|
146
|
+
nodePlatform,
|
|
147
|
+
setBoxedStackPrefixes
|
|
148
|
+
});
|
|
@@ -1,82 +1,84 @@
|
|
|
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 pipeTransport_exports = {};
|
|
20
|
+
__export(pipeTransport_exports, {
|
|
21
|
+
PipeTransport: () => PipeTransport
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
/**
|
|
9
|
-
* 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
|
-
|
|
23
|
+
module.exports = __toCommonJS(pipeTransport_exports);
|
|
24
|
+
var import_task = require("./task");
|
|
24
25
|
class PipeTransport {
|
|
25
|
-
constructor(pipeWrite, pipeRead, closeable, endian =
|
|
26
|
-
this._pipeWrite = void 0;
|
|
26
|
+
constructor(pipeWrite, pipeRead, closeable, endian = "le") {
|
|
27
27
|
this._data = Buffer.from([]);
|
|
28
|
-
this._waitForNextTask = (0,
|
|
28
|
+
this._waitForNextTask = (0, import_task.makeWaitForNextTask)();
|
|
29
29
|
this._closed = false;
|
|
30
30
|
this._bytesLeft = 0;
|
|
31
|
-
this.onmessage = void 0;
|
|
32
|
-
this.onclose = void 0;
|
|
33
|
-
this._endian = void 0;
|
|
34
|
-
this._closeableStream = void 0;
|
|
35
31
|
this._pipeWrite = pipeWrite;
|
|
36
32
|
this._endian = endian;
|
|
37
33
|
this._closeableStream = closeable;
|
|
38
|
-
pipeRead.on(
|
|
39
|
-
pipeRead.on(
|
|
34
|
+
pipeRead.on("data", (buffer) => this._dispatch(buffer));
|
|
35
|
+
pipeRead.on("close", () => {
|
|
40
36
|
this._closed = true;
|
|
41
|
-
if (this.onclose)
|
|
37
|
+
if (this.onclose)
|
|
38
|
+
this.onclose();
|
|
42
39
|
});
|
|
43
|
-
this.onmessage =
|
|
44
|
-
this.onclose =
|
|
40
|
+
this.onmessage = void 0;
|
|
41
|
+
this.onclose = void 0;
|
|
45
42
|
}
|
|
46
43
|
send(message) {
|
|
47
|
-
if (this._closed)
|
|
48
|
-
|
|
44
|
+
if (this._closed)
|
|
45
|
+
throw new Error("Pipe has been closed");
|
|
46
|
+
const data = Buffer.from(message, "utf-8");
|
|
49
47
|
const dataLength = Buffer.alloc(4);
|
|
50
|
-
if (this._endian ===
|
|
48
|
+
if (this._endian === "be")
|
|
49
|
+
dataLength.writeUInt32BE(data.length, 0);
|
|
50
|
+
else
|
|
51
|
+
dataLength.writeUInt32LE(data.length, 0);
|
|
51
52
|
this._pipeWrite.write(dataLength);
|
|
52
53
|
this._pipeWrite.write(data);
|
|
53
54
|
}
|
|
54
55
|
close() {
|
|
55
|
-
// Let it throw.
|
|
56
56
|
this._closeableStream.close();
|
|
57
57
|
}
|
|
58
58
|
_dispatch(buffer) {
|
|
59
59
|
this._data = Buffer.concat([this._data, buffer]);
|
|
60
60
|
while (true) {
|
|
61
61
|
if (!this._bytesLeft && this._data.length < 4) {
|
|
62
|
-
// Need more data.
|
|
63
62
|
break;
|
|
64
63
|
}
|
|
65
64
|
if (!this._bytesLeft) {
|
|
66
|
-
this._bytesLeft = this._endian ===
|
|
65
|
+
this._bytesLeft = this._endian === "be" ? this._data.readUInt32BE(0) : this._data.readUInt32LE(0);
|
|
67
66
|
this._data = this._data.slice(4);
|
|
68
67
|
}
|
|
69
68
|
if (!this._bytesLeft || this._data.length < this._bytesLeft) {
|
|
70
|
-
// Need more data.
|
|
71
69
|
break;
|
|
72
70
|
}
|
|
73
71
|
const message = this._data.slice(0, this._bytesLeft);
|
|
74
72
|
this._data = this._data.slice(this._bytesLeft);
|
|
75
73
|
this._bytesLeft = 0;
|
|
76
74
|
this._waitForNextTask(() => {
|
|
77
|
-
if (this.onmessage)
|
|
75
|
+
if (this.onmessage)
|
|
76
|
+
this.onmessage(message.toString("utf-8"));
|
|
78
77
|
});
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
|
-
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
PipeTransport
|
|
84
|
+
});
|