patchright-core 1.50.0 → 1.51.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/browsers.json +22 -10
- package/index.js +0 -1
- package/lib/androidServerImpl.js +4 -4
- package/lib/browserServerImpl.js +18 -9
- package/lib/cli/driver.js +6 -6
- package/lib/cli/program.js +9 -9
- package/lib/cli/programWithTestStub.js +2 -1
- package/lib/client/android.js +37 -58
- package/lib/client/artifact.js +4 -7
- package/lib/client/browser.js +10 -15
- package/lib/client/browserContext.js +77 -73
- package/lib/client/browserType.js +30 -64
- package/lib/client/channelOwner.js +23 -20
- package/lib/client/clientHelper.js +5 -7
- package/lib/client/clientStackTrace.js +65 -0
- package/lib/client/connection.js +46 -39
- package/lib/client/consoleMessage.js +4 -7
- package/lib/client/electron.js +10 -10
- package/lib/client/elementHandle.js +32 -33
- package/lib/client/errors.js +2 -2
- package/lib/client/eventEmitter.js +5 -8
- package/lib/client/fetch.js +60 -61
- package/lib/client/fileUtils.js +31 -0
- package/lib/client/frame.js +30 -29
- package/lib/client/harRouter.js +7 -9
- package/lib/client/jsHandle.js +3 -4
- package/lib/client/localUtils.js +24 -0
- package/lib/client/locator.js +37 -18
- package/lib/client/network.js +40 -40
- package/lib/client/page.js +59 -55
- package/lib/client/platform.js +71 -0
- package/lib/client/playwright.js +21 -1
- package/lib/client/selectors.js +8 -2
- package/lib/client/stream.js +2 -21
- package/lib/client/timeoutSettings.js +65 -0
- package/lib/client/tracing.js +10 -7
- package/lib/client/video.js +2 -2
- package/lib/client/waiter.js +5 -6
- package/lib/client/webSocket.js +106 -0
- package/lib/client/worker.js +12 -10
- package/lib/client/writableStream.js +2 -21
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/inProcessFactory.js +6 -3
- package/lib/outofprocess.js +12 -8
- package/lib/protocol/validator.js +64 -13
- package/lib/protocol/validatorPrimitives.js +1 -2
- package/lib/remote/playwrightConnection.js +18 -10
- package/lib/remote/playwrightServer.js +20 -7
- package/lib/server/android/android.js +17 -14
- package/lib/server/android/backendAdb.js +14 -14
- package/lib/server/artifact.js +3 -3
- package/lib/server/bidi/bidiBrowser.js +2 -2
- package/lib/server/bidi/bidiChromium.js +4 -3
- package/lib/server/bidi/bidiConnection.js +1 -1
- package/lib/server/bidi/bidiExecutionContext.js +70 -40
- package/lib/server/bidi/bidiFirefox.js +4 -3
- package/lib/server/bidi/bidiInput.js +5 -8
- package/lib/server/bidi/bidiNetworkManager.js +3 -3
- package/lib/server/bidi/bidiOverCdp.js +2 -2
- package/lib/server/bidi/bidiPage.js +30 -46
- package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +37 -40
- package/lib/server/browserType.js +18 -17
- package/lib/{utils/sequence.js → server/callLog.js} +18 -3
- package/lib/server/chromium/chromium.js +14 -14
- package/lib/server/chromium/chromiumSwitches.js +32 -1
- package/lib/server/chromium/crBrowser.js +15 -14
- package/lib/server/chromium/crConnection.js +2 -2
- package/lib/server/chromium/crCoverage.js +1 -1
- package/lib/server/chromium/crDevTools.js +1 -1
- package/lib/server/chromium/crDragDrop.js +1 -1
- package/lib/server/chromium/crExecutionContext.js +25 -17
- package/lib/server/chromium/crInput.js +2 -2
- package/lib/server/chromium/crNetworkManager.js +73 -26
- package/lib/server/chromium/crPage.js +22 -23
- package/lib/server/chromium/crPdf.js +1 -1
- package/lib/server/chromium/crProtocolHelper.js +3 -3
- package/lib/server/chromium/crServiceWorker.js +2 -2
- package/lib/server/chromium/videoRecorder.js +2 -2
- package/lib/server/clock.js +1 -1
- package/lib/server/codegen/javascript.js +1 -1
- package/lib/server/codegen/languages.js +2 -2
- package/lib/server/debugController.js +3 -3
- package/lib/server/deviceDescriptors.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dispatchers/androidDispatcher.js +1 -1
- package/lib/server/dispatchers/artifactDispatcher.js +3 -3
- package/lib/server/dispatchers/browserContextDispatcher.js +19 -19
- package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
- package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
- package/lib/server/dispatchers/dispatcher.js +27 -25
- package/lib/server/dispatchers/electronDispatcher.js +3 -3
- package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
- package/lib/server/dispatchers/frameDispatcher.js +4 -4
- package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
- package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +25 -298
- package/lib/server/dispatchers/networkDispatchers.js +3 -3
- package/lib/server/dispatchers/pageDispatcher.js +11 -9
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/streamDispatcher.js +4 -3
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +8 -7
- package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
- package/lib/server/dom.js +18 -12
- package/lib/server/download.js +1 -1
- package/lib/server/electron/electron.js +17 -16
- package/lib/server/errors.js +1 -1
- package/lib/server/fetch.js +50 -45
- package/lib/server/fileUploadUtils.js +7 -4
- package/lib/server/firefox/ffBrowser.js +11 -3
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +25 -17
- package/lib/server/firefox/ffNetworkManager.js +2 -2
- package/lib/server/firefox/ffPage.js +15 -21
- package/lib/server/firefox/firefox.js +7 -9
- package/lib/server/frameSelectors.js +1 -1
- package/lib/server/frames.js +366 -209
- package/lib/server/har/harRecorder.js +4 -4
- package/lib/server/har/harTracer.js +7 -8
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +2 -2
- package/lib/server/index.js +1 -8
- package/lib/server/input.js +1 -1
- package/lib/server/instrumentation.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
- package/lib/server/javascript.js +46 -33
- package/lib/server/launchApp.js +2 -2
- package/lib/server/localUtils.js +203 -0
- package/lib/server/network.js +3 -3
- package/lib/server/page.js +41 -22
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +5 -5
- package/lib/server/progress.js +1 -1
- package/lib/server/protocolError.js +1 -1
- package/lib/server/recorder/contextRecorder.js +3 -3
- package/lib/server/recorder/recorderApp.js +18 -12
- package/lib/server/recorder/recorderCollection.js +4 -4
- package/lib/server/recorder/throttledFile.js +3 -4
- package/lib/server/recorder.js +7 -5
- package/lib/server/registry/browserFetcher.js +9 -7
- package/lib/server/registry/dependencies.js +15 -15
- package/lib/server/registry/index.js +38 -44
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
- package/lib/server/screenshotter.js +1 -1
- package/lib/server/selectors.js +3 -3
- package/lib/server/socksClientCertificatesInterceptor.js +9 -9
- package/lib/server/socksInterceptor.js +8 -5
- package/lib/server/storageScript.js +160 -0
- package/lib/{common → server}/timeoutSettings.js +6 -5
- package/lib/server/trace/recorder/snapshotter.js +9 -8
- package/lib/server/trace/recorder/tracing.js +40 -31
- package/lib/server/trace/test/inMemorySnapshotter.js +4 -4
- package/lib/server/trace/viewer/traceViewer.js +13 -5
- package/lib/server/transport.js +2 -2
- package/lib/{utils → server/utils}/comparators.js +4 -4
- package/lib/{utils → server/utils}/crypto.js +4 -4
- package/lib/{utils → server/utils}/debug.js +4 -12
- package/lib/{utils → server/utils}/debugLogger.js +2 -2
- package/lib/{utils → server/utils}/env.js +4 -0
- package/lib/{utils → server/utils}/expectUtils.js +1 -1
- package/lib/{utils → server/utils}/fileUtils.js +4 -5
- package/lib/{utils/happy-eyeballs.js → server/utils/happyEyeballs.js} +22 -24
- package/lib/{utils → server/utils}/hostPlatform.js +1 -1
- package/lib/{utils → server/utils}/httpServer.js +8 -12
- package/lib/{utils → server/utils}/linuxUtils.js +3 -23
- package/lib/{utils → server/utils}/network.js +5 -5
- package/lib/server/utils/nodePlatform.js +140 -0
- package/lib/{protocol/transport.js → server/utils/pipeTransport.js} +2 -2
- package/lib/{utils → server/utils}/processLauncher.js +5 -5
- package/lib/{utils → server/utils}/profiler.js +5 -6
- package/lib/{common → server/utils}/socksProxy.js +10 -9
- package/lib/{utils → server/utils}/userAgent.js +2 -16
- package/lib/{utils → server/utils}/wsServer.js +3 -3
- package/lib/{utils → server/utils}/zipFile.js +1 -1
- package/lib/{utils → server/utils}/zones.js +9 -24
- package/lib/server/webkit/webkit.js +4 -4
- package/lib/server/webkit/wkBrowser.js +4 -4
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +25 -17
- package/lib/server/webkit/wkInput.js +2 -2
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +41 -40
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +2 -2
- package/lib/utils/isomorphic/ariaSnapshot.js +2 -1
- package/lib/utils/isomorphic/assert.js +25 -0
- package/lib/utils/isomorphic/colors.js +65 -0
- package/lib/utils/isomorphic/cssParser.js +1 -1
- package/lib/utils/isomorphic/locatorGenerators.js +13 -1
- package/lib/utils/isomorphic/locatorParser.js +2 -2
- package/lib/utils/{manualPromise.js → isomorphic/manualPromise.js} +3 -5
- package/lib/utils/isomorphic/mimeType.js +11 -3
- package/lib/utils/{multimap.js → isomorphic/multimap.js} +1 -3
- package/lib/utils/{rtti.js → isomorphic/rtti.js} +2 -5
- package/lib/utils/isomorphic/stackTrace.js +169 -0
- package/lib/utils/isomorphic/stringUtils.js +1 -1
- package/lib/utils/{time.js → isomorphic/time.js} +1 -13
- package/lib/utils/{timeoutRunner.js → isomorphic/timeoutRunner.js} +4 -4
- package/lib/utils/isomorphic/traceUtils.js +23 -0
- package/lib/{utils/index.js → utils.js} +200 -121
- package/lib/utilsBundle.js +1 -25
- package/lib/utilsBundleImpl/index.js +119 -121
- package/lib/vite/htmlReport/index.html +20 -20
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DpJ-EmBQ.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +259 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.5fN5lw10.css +1 -0
- package/lib/vite/traceViewer/index.CUq7VgrV.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -4
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +123 -99
- package/types/types.d.ts +110 -38
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/traceUtils.js +0 -44
- package/lib/vite/recorder/assets/codeMirrorModule-3Qn3tPnZ.js +0 -24
- package/lib/vite/recorder/assets/index-Bek6JFv8.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-aLkSUGpW.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-CxUo6zd3.js +0 -243
- package/lib/vite/traceViewer/defaultSettingsView.DtIkrKWn.css +0 -1
- package/lib/vite/traceViewer/index.Bhu5cv5R.js +0 -2
- package/lib/vite/traceViewer/uiMode.BBy7FOVd.js +0 -5
- /package/lib/{utils → server/utils}/ascii.js +0 -0
- /package/lib/{utils → server/utils}/eventsHelper.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/colorUtils.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/compare.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/imageChannel.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/stats.js +0 -0
- /package/lib/{utils → server/utils}/spawnAsync.js +0 -0
- /package/lib/{utils → server/utils}/task.js +0 -0
- /package/lib/utils/{headers.js → isomorphic/headers.js} +0 -0
- /package/lib/utils/{semaphore.js → isomorphic/semaphore.js} +0 -0
- /package/lib/{common → utils/isomorphic}/types.js +0 -0
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/recorder/assets/{index-CAQewHss.css → index-eHBmevrY.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/{uiMode.Be_ME-Go.css → uiMode.BatfzHMG.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Snapshotter = void 0;
|
|
7
|
-
var _browserContext = require("../../browserContext");
|
|
8
|
-
var _page = require("../../page");
|
|
9
|
-
var _eventsHelper = require("../../../utils/eventsHelper");
|
|
10
|
-
var _debugLogger = require("../../../utils/debugLogger");
|
|
11
7
|
var _snapshotterInjected = require("./snapshotterInjected");
|
|
12
|
-
var
|
|
8
|
+
var _time = require("../../../utils/isomorphic/time");
|
|
9
|
+
var _crypto = require("../../utils/crypto");
|
|
10
|
+
var _debugLogger = require("../../utils/debugLogger");
|
|
11
|
+
var _eventsHelper = require("../../utils/eventsHelper");
|
|
13
12
|
var _utilsBundle = require("../../../utilsBundle");
|
|
13
|
+
var _browserContext = require("../../browserContext");
|
|
14
|
+
var _page = require("../../page");
|
|
14
15
|
/**
|
|
15
16
|
* Copyright (c) Microsoft Corporation.
|
|
16
17
|
*
|
|
@@ -37,7 +38,7 @@ class Snapshotter {
|
|
|
37
38
|
this._started = false;
|
|
38
39
|
this._context = context;
|
|
39
40
|
this._delegate = delegate;
|
|
40
|
-
const guid = (0,
|
|
41
|
+
const guid = (0, _crypto.createGuid)();
|
|
41
42
|
this._snapshotStreamer = '__playwright_snapshot_streamer_' + guid;
|
|
42
43
|
}
|
|
43
44
|
started() {
|
|
@@ -99,7 +100,7 @@ class Snapshotter {
|
|
|
99
100
|
doctype: data.doctype,
|
|
100
101
|
html: data.html,
|
|
101
102
|
viewport: data.viewport,
|
|
102
|
-
timestamp: (0,
|
|
103
|
+
timestamp: (0, _time.monotonicTime)(),
|
|
103
104
|
wallTime: data.wallTime,
|
|
104
105
|
collectionTime: data.collectionTime,
|
|
105
106
|
resourceOverrides: [],
|
|
@@ -112,7 +113,7 @@ class Snapshotter {
|
|
|
112
113
|
} of data.resourceOverrides) {
|
|
113
114
|
if (typeof content === 'string') {
|
|
114
115
|
const buffer = Buffer.from(content);
|
|
115
|
-
const sha1 = (0,
|
|
116
|
+
const sha1 = (0, _crypto.calculateSha1)(buffer) + '.' + (_utilsBundle.mime.getExtension(contentType) || 'dat');
|
|
116
117
|
this._delegate.onSnapshotterBlob({
|
|
117
118
|
sha1,
|
|
118
119
|
buffer
|
|
@@ -8,17 +8,21 @@ exports.shouldCaptureSnapshot = shouldCaptureSnapshot;
|
|
|
8
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
9
9
|
var _os = _interopRequireDefault(require("os"));
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
|
+
var _snapshotter = require("./snapshotter");
|
|
11
12
|
var _debug = require("../../../protocol/debug");
|
|
12
|
-
var
|
|
13
|
+
var _assert = require("../../../utils/isomorphic/assert");
|
|
14
|
+
var _time = require("../../../utils/isomorphic/time");
|
|
15
|
+
var _eventsHelper = require("../../utils/eventsHelper");
|
|
16
|
+
var _crypto = require("../../utils/crypto");
|
|
13
17
|
var _artifact = require("../../artifact");
|
|
14
18
|
var _browserContext = require("../../browserContext");
|
|
15
|
-
var _instrumentation = require("../../instrumentation");
|
|
16
|
-
var _page = require("../../page");
|
|
17
|
-
var _harTracer = require("../../har/harTracer");
|
|
18
|
-
var _snapshotter = require("./snapshotter");
|
|
19
19
|
var _dispatcher = require("../../dispatchers/dispatcher");
|
|
20
20
|
var _errors = require("../../errors");
|
|
21
|
-
|
|
21
|
+
var _fileUtils = require("../../utils/fileUtils");
|
|
22
|
+
var _harTracer = require("../../har/harTracer");
|
|
23
|
+
var _instrumentation = require("../../instrumentation");
|
|
24
|
+
var _page = require("../../page");
|
|
25
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
26
|
/**
|
|
23
27
|
* Copyright (c) Microsoft Corporation.
|
|
24
28
|
*
|
|
@@ -44,7 +48,7 @@ const kScreencastOptions = {
|
|
|
44
48
|
class Tracing extends _instrumentation.SdkObject {
|
|
45
49
|
constructor(context, tracesDir) {
|
|
46
50
|
super(context, 'tracing');
|
|
47
|
-
this._fs = new
|
|
51
|
+
this._fs = new _fileUtils.SerializedFS();
|
|
48
52
|
this._snapshotter = void 0;
|
|
49
53
|
this._harTracer = void 0;
|
|
50
54
|
this._screencastListeners = [];
|
|
@@ -77,11 +81,12 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
77
81
|
wallTime: 0,
|
|
78
82
|
monotonicTime: 0,
|
|
79
83
|
sdkLanguage: context.attribution.playwright.options.sdkLanguage,
|
|
80
|
-
testIdAttributeName
|
|
84
|
+
testIdAttributeName,
|
|
85
|
+
contextId: context.guid
|
|
81
86
|
};
|
|
82
87
|
if (context instanceof _browserContext.BrowserContext) {
|
|
83
88
|
this._snapshotter = new _snapshotter.Snapshotter(context, this);
|
|
84
|
-
(0,
|
|
89
|
+
(0, _assert.assert)(tracesDir, 'tracesDir must be specified for BrowserContext');
|
|
85
90
|
this._contextCreatedEvent.browserName = context._browser.options.name;
|
|
86
91
|
this._contextCreatedEvent.channel = context._browser.options.channel;
|
|
87
92
|
this._contextCreatedEvent.options = context._options;
|
|
@@ -105,7 +110,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
105
110
|
|
|
106
111
|
// TODO: passing the same name for two contexts makes them write into a single file
|
|
107
112
|
// and conflict.
|
|
108
|
-
const traceName = options.name || (0,
|
|
113
|
+
const traceName = options.name || (0, _crypto.createGuid)();
|
|
109
114
|
const tracesDir = this._createTracesDirIfNeeded();
|
|
110
115
|
|
|
111
116
|
// Init the state synchronously.
|
|
@@ -139,17 +144,23 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
139
144
|
if (this._isStopping) throw new Error('Cannot start a trace chunk while stopping');
|
|
140
145
|
this._state.recording = true;
|
|
141
146
|
this._state.callIds.clear();
|
|
142
|
-
|
|
147
|
+
|
|
148
|
+
// - Browser context network trace is shared across chunks as it contains resources
|
|
149
|
+
// used to serve page snapshots, so make a copy with the new name.
|
|
150
|
+
// - APIRequestContext network traces are chunk-specific, always start from scratch.
|
|
151
|
+
const preserveNetworkResources = this._context instanceof _browserContext.BrowserContext;
|
|
152
|
+
if (options.name && options.name !== this._state.traceName) this._changeTraceName(this._state, options.name, preserveNetworkResources);else this._allocateNewTraceFile(this._state);
|
|
153
|
+
if (!preserveNetworkResources) this._fs.writeFile(this._state.networkFile, '');
|
|
143
154
|
this._fs.mkdir(_path.default.dirname(this._state.traceFile));
|
|
144
155
|
const event = {
|
|
145
156
|
...this._contextCreatedEvent,
|
|
146
157
|
title: options.title,
|
|
147
158
|
wallTime: Date.now(),
|
|
148
|
-
monotonicTime: (0,
|
|
159
|
+
monotonicTime: (0, _time.monotonicTime)()
|
|
149
160
|
};
|
|
150
161
|
this._appendTraceEvent(event);
|
|
151
162
|
this._context.instrumentation.addListener(this, this._context);
|
|
152
|
-
this._eventListeners.push(
|
|
163
|
+
this._eventListeners.push(_eventsHelper.eventsHelper.addEventListener(this._context, _browserContext.BrowserContext.Events.Console, this._onConsoleMessage.bind(this)), _eventsHelper.eventsHelper.addEventListener(this._context, _browserContext.BrowserContext.Events.PageError, this._onPageError.bind(this)));
|
|
153
164
|
if (this._state.options.screenshots) this._startScreencast();
|
|
154
165
|
if (this._state.options.snapshots) await ((_this$_snapshotter2 = this._snapshotter) === null || _this$_snapshotter2 === void 0 ? void 0 : _this$_snapshotter2.start());
|
|
155
166
|
return {
|
|
@@ -198,17 +209,17 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
198
209
|
const event = {
|
|
199
210
|
type: 'after',
|
|
200
211
|
callId,
|
|
201
|
-
endTime: (0,
|
|
212
|
+
endTime: (0, _time.monotonicTime)()
|
|
202
213
|
};
|
|
203
214
|
this._appendTraceEvent(event);
|
|
204
215
|
}
|
|
205
216
|
_startScreencast() {
|
|
206
217
|
if (!(this._context instanceof _browserContext.BrowserContext)) return;
|
|
207
218
|
for (const page of this._context.pages()) this._startScreencastInPage(page);
|
|
208
|
-
this._screencastListeners.push(
|
|
219
|
+
this._screencastListeners.push(_eventsHelper.eventsHelper.addEventListener(this._context, _browserContext.BrowserContext.Events.Page, this._startScreencastInPage.bind(this)));
|
|
209
220
|
}
|
|
210
221
|
_stopScreencast() {
|
|
211
|
-
|
|
222
|
+
_eventsHelper.eventsHelper.removeEventListeners(this._screencastListeners);
|
|
212
223
|
if (!(this._context instanceof _browserContext.BrowserContext)) return;
|
|
213
224
|
for (const page of this._context.pages()) page.setScreencastOptions(null);
|
|
214
225
|
}
|
|
@@ -217,14 +228,12 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
217
228
|
state.chunkOrdinal++;
|
|
218
229
|
state.traceFile = _path.default.join(state.tracesDir, `${state.traceName}${suffix}.trace`);
|
|
219
230
|
}
|
|
220
|
-
_changeTraceName(state, name) {
|
|
231
|
+
_changeTraceName(state, name, preserveNetworkResources) {
|
|
221
232
|
state.traceName = name;
|
|
222
233
|
state.chunkOrdinal = 0; // Reset ordinal for the new name.
|
|
223
234
|
this._allocateNewTraceFile(state);
|
|
224
|
-
|
|
225
|
-
// Network file survives across chunks, so make a copy with the new name.
|
|
226
235
|
const newNetworkFile = _path.default.join(state.tracesDir, name + '.network');
|
|
227
|
-
this._fs.copyFile(state.networkFile, newNetworkFile);
|
|
236
|
+
if (preserveNetworkResources) this._fs.copyFile(state.networkFile, newNetworkFile);
|
|
228
237
|
state.networkFile = newNetworkFile;
|
|
229
238
|
}
|
|
230
239
|
async stop() {
|
|
@@ -238,7 +247,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
238
247
|
this._state = undefined;
|
|
239
248
|
}
|
|
240
249
|
async deleteTmpTracesDir() {
|
|
241
|
-
if (this._tracesTmpDir) await (0,
|
|
250
|
+
if (this._tracesTmpDir) await (0, _fileUtils.removeFolders)([this._tracesTmpDir]);
|
|
242
251
|
}
|
|
243
252
|
_createTracesDirIfNeeded() {
|
|
244
253
|
if (this._precreatedTracesDir) return this._precreatedTracesDir;
|
|
@@ -268,7 +277,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
268
277
|
}
|
|
269
278
|
this._closeAllGroups();
|
|
270
279
|
this._context.instrumentation.removeListener(this);
|
|
271
|
-
|
|
280
|
+
_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
|
|
272
281
|
if (this._state.options.screenshots) this._stopScreencast();
|
|
273
282
|
if (this._state.options.snapshots) await ((_this$_snapshotter4 = this._snapshotter) === null || _this$_snapshotter4 === void 0 ? void 0 : _this$_snapshotter4.stop());
|
|
274
283
|
this.flushHarEntries();
|
|
@@ -421,7 +430,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
421
430
|
value: a.rawValue()
|
|
422
431
|
})),
|
|
423
432
|
location: message.location(),
|
|
424
|
-
time: (0,
|
|
433
|
+
time: (0, _time.monotonicTime)(),
|
|
425
434
|
pageId: (_message$page = message.page()) === null || _message$page === void 0 ? void 0 : _message$page.guid
|
|
426
435
|
};
|
|
427
436
|
this._appendTraceEvent(event);
|
|
@@ -429,7 +438,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
429
438
|
onDialog(dialog) {
|
|
430
439
|
const event = {
|
|
431
440
|
type: 'event',
|
|
432
|
-
time: (0,
|
|
441
|
+
time: (0, _time.monotonicTime)(),
|
|
433
442
|
class: 'BrowserContext',
|
|
434
443
|
method: 'dialog',
|
|
435
444
|
params: {
|
|
@@ -444,7 +453,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
444
453
|
onDownload(page, download) {
|
|
445
454
|
const event = {
|
|
446
455
|
type: 'event',
|
|
447
|
-
time: (0,
|
|
456
|
+
time: (0, _time.monotonicTime)(),
|
|
448
457
|
class: 'BrowserContext',
|
|
449
458
|
method: 'download',
|
|
450
459
|
params: {
|
|
@@ -459,7 +468,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
459
468
|
var _page$opener;
|
|
460
469
|
const event = {
|
|
461
470
|
type: 'event',
|
|
462
|
-
time: (0,
|
|
471
|
+
time: (0, _time.monotonicTime)(),
|
|
463
472
|
class: 'BrowserContext',
|
|
464
473
|
method: 'page',
|
|
465
474
|
params: {
|
|
@@ -472,7 +481,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
472
481
|
onPageClose(page) {
|
|
473
482
|
const event = {
|
|
474
483
|
type: 'event',
|
|
475
|
-
time: (0,
|
|
484
|
+
time: (0, _time.monotonicTime)(),
|
|
476
485
|
class: 'BrowserContext',
|
|
477
486
|
method: 'pageClosed',
|
|
478
487
|
params: {
|
|
@@ -484,7 +493,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
484
493
|
_onPageError(error, page) {
|
|
485
494
|
const event = {
|
|
486
495
|
type: 'event',
|
|
487
|
-
time: (0,
|
|
496
|
+
time: (0, _time.monotonicTime)(),
|
|
488
497
|
class: 'BrowserContext',
|
|
489
498
|
method: 'pageError',
|
|
490
499
|
params: {
|
|
@@ -497,7 +506,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
497
506
|
_startScreencastInPage(page) {
|
|
498
507
|
page.setScreencastOptions(kScreencastOptions);
|
|
499
508
|
const prefix = page.guid;
|
|
500
|
-
this._screencastListeners.push(
|
|
509
|
+
this._screencastListeners.push(_eventsHelper.eventsHelper.addEventListener(page, _page.Page.Events.ScreencastFrame, params => {
|
|
501
510
|
const suffix = params.timestamp || Date.now();
|
|
502
511
|
const sha1 = `${prefix}-${suffix}.jpeg`;
|
|
503
512
|
const event = {
|
|
@@ -506,7 +515,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
506
515
|
sha1,
|
|
507
516
|
width: params.width,
|
|
508
517
|
height: params.height,
|
|
509
|
-
timestamp: (0,
|
|
518
|
+
timestamp: (0, _time.monotonicTime)(),
|
|
510
519
|
frameSwapWallTime: params.frameSwapWallTime
|
|
511
520
|
};
|
|
512
521
|
// Make sure to write the screencast frame before adding a reference to it.
|
|
@@ -578,7 +587,7 @@ function createActionLogTraceEvent(metadata, message) {
|
|
|
578
587
|
return {
|
|
579
588
|
type: 'log',
|
|
580
589
|
callId: metadata.id,
|
|
581
|
-
time: (0,
|
|
590
|
+
time: (0, _time.monotonicTime)(),
|
|
582
591
|
message
|
|
583
592
|
};
|
|
584
593
|
}
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.InMemorySnapshotter = void 0;
|
|
7
7
|
var _snapshotStorage = require("../../../../../trace-viewer/src/sw/snapshotStorage");
|
|
8
|
-
var _snapshotter = require("../recorder/snapshotter");
|
|
9
|
-
var _harTracer = require("../../har/harTracer");
|
|
10
8
|
var _utils = require("../../../utils");
|
|
9
|
+
var _harTracer = require("../../har/harTracer");
|
|
10
|
+
var _snapshotter = require("../recorder/snapshotter");
|
|
11
11
|
/**
|
|
12
12
|
* Copyright (c) Microsoft Corporation.
|
|
13
13
|
*
|
|
@@ -69,7 +69,7 @@ class InMemorySnapshotter {
|
|
|
69
69
|
}
|
|
70
70
|
onEntryStarted(entry) {}
|
|
71
71
|
onEntryFinished(entry) {
|
|
72
|
-
this._storage.addResource(entry);
|
|
72
|
+
this._storage.addResource('', entry);
|
|
73
73
|
}
|
|
74
74
|
onContentBlob(sha1, buffer) {
|
|
75
75
|
this._blobs.set(sha1, buffer);
|
|
@@ -80,7 +80,7 @@ class InMemorySnapshotter {
|
|
|
80
80
|
onFrameSnapshot(snapshot) {
|
|
81
81
|
var _this$_snapshotReadyP;
|
|
82
82
|
++this._snapshotCount;
|
|
83
|
-
const renderer = this._storage.addFrameSnapshot(snapshot, []);
|
|
83
|
+
const renderer = this._storage.addFrameSnapshot('', snapshot, []);
|
|
84
84
|
(_this$_snapshotReadyP = this._snapshotReadyPromises.get(snapshot.snapshotName || '')) === null || _this$_snapshotReadyP === void 0 || _this$_snapshotReadyP.resolve(renderer);
|
|
85
85
|
}
|
|
86
86
|
async resourceContentForTest(sha1) {
|
|
@@ -9,16 +9,16 @@ exports.openTraceViewerApp = openTraceViewerApp;
|
|
|
9
9
|
exports.runTraceInBrowser = runTraceInBrowser;
|
|
10
10
|
exports.runTraceViewerApp = runTraceViewerApp;
|
|
11
11
|
exports.startTraceViewerServer = startTraceViewerServer;
|
|
12
|
-
var _path = _interopRequireDefault(require("path"));
|
|
13
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
|
-
var
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
15
14
|
var _utils = require("../../../utils");
|
|
16
|
-
var
|
|
15
|
+
var _httpServer = require("../../utils/httpServer");
|
|
16
|
+
var _utilsBundle = require("../../../utilsBundle");
|
|
17
17
|
var _instrumentation = require("../../instrumentation");
|
|
18
|
+
var _launchApp = require("../../launchApp");
|
|
18
19
|
var _playwright = require("../../playwright");
|
|
19
20
|
var _progress = require("../../progress");
|
|
20
|
-
|
|
21
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
22
|
/**
|
|
23
23
|
* Copyright (c) Microsoft Corporation.
|
|
24
24
|
*
|
|
@@ -48,6 +48,10 @@ async function startTraceViewerServer(options) {
|
|
|
48
48
|
server.routePrefix('/trace', (request, response) => {
|
|
49
49
|
const url = new URL('http://localhost' + request.url);
|
|
50
50
|
const relativePath = url.pathname.slice('/trace'.length);
|
|
51
|
+
if (process.env.PW_HMR) {
|
|
52
|
+
// When running in Vite HMR mode, port is hardcoded in build.js
|
|
53
|
+
response.appendHeader('Access-Control-Allow-Origin', 'http://localhost:44223');
|
|
54
|
+
}
|
|
51
55
|
if (relativePath.endsWith('/stall.js')) return true;
|
|
52
56
|
if (relativePath.startsWith('/file')) {
|
|
53
57
|
try {
|
|
@@ -103,6 +107,10 @@ async function installRootRedirect(server, traceUrls, options) {
|
|
|
103
107
|
server.routePath('/', (_, response) => {
|
|
104
108
|
response.statusCode = 302;
|
|
105
109
|
response.setHeader('Location', urlPath);
|
|
110
|
+
if (process.env.EXPERIMENTAL_OPENAI_API_KEY) response.appendHeader('Set-Cookie', `openai_api_key=${process.env.EXPERIMENTAL_OPENAI_API_KEY}`);
|
|
111
|
+
if (process.env.OPENAI_BASE_URL) response.appendHeader('Set-Cookie', `openai_base_url=${process.env.OPENAI_BASE_URL}`);
|
|
112
|
+
if (process.env.EXPERIMENTAL_ANTHROPIC_API_KEY) response.appendHeader('Set-Cookie', `anthropic_api_key=${process.env.EXPERIMENTAL_ANTHROPIC_API_KEY}`);
|
|
113
|
+
if (process.env.ANTHROPIC_BASE_URL) response.appendHeader('Set-Cookie', `anthropic_base_url=${process.env.ANTHROPIC_BASE_URL}`);
|
|
106
114
|
response.end();
|
|
107
115
|
return true;
|
|
108
116
|
});
|
package/lib/server/transport.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.perMessageDeflate = exports.WebSocketTransport = void 0;
|
|
7
|
-
var _utilsBundle = require("../utilsBundle");
|
|
8
7
|
var _utils = require("../utils");
|
|
9
|
-
var _happyEyeballs = require("
|
|
8
|
+
var _happyEyeballs = require("./utils/happyEyeballs");
|
|
9
|
+
var _utilsBundle = require("../utilsBundle");
|
|
10
10
|
/**
|
|
11
11
|
* Copyright 2018 Google Inc. All rights reserved.
|
|
12
12
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.compareBuffersOrStrings = compareBuffersOrStrings;
|
|
7
7
|
exports.getComparator = getComparator;
|
|
8
|
-
var
|
|
9
|
-
var _pixelmatch = _interopRequireDefault(require("
|
|
10
|
-
var
|
|
11
|
-
function _interopRequireDefault(
|
|
8
|
+
var _compare = require("./image_tools/compare");
|
|
9
|
+
var _pixelmatch = _interopRequireDefault(require("../../third_party/pixelmatch"));
|
|
10
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
14
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -7,8 +7,8 @@ exports.calculateSha1 = calculateSha1;
|
|
|
7
7
|
exports.createGuid = createGuid;
|
|
8
8
|
exports.generateSelfSignedCertificate = generateSelfSignedCertificate;
|
|
9
9
|
var _crypto = _interopRequireDefault(require("crypto"));
|
|
10
|
-
var
|
|
11
|
-
function _interopRequireDefault(
|
|
10
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -52,7 +52,7 @@ class DER {
|
|
|
52
52
|
return this._encode(0x30, Buffer.concat(data));
|
|
53
53
|
}
|
|
54
54
|
static encodeInteger(data) {
|
|
55
|
-
(0,
|
|
55
|
+
(0, _assert.assert)(data >= -128 && data <= 127);
|
|
56
56
|
return this._encode(0x02, Buffer.from([data]));
|
|
57
57
|
}
|
|
58
58
|
static encodeObjectIdentifier(oid) {
|
|
@@ -66,7 +66,7 @@ class DER {
|
|
|
66
66
|
return Buffer.from([0x05, 0x00]);
|
|
67
67
|
}
|
|
68
68
|
static encodeSet(data) {
|
|
69
|
-
(0,
|
|
69
|
+
(0, _assert.assert)(data.length === 1, 'Only one item in the set is supported. We\'d need to sort the data to support more.');
|
|
70
70
|
// We expect the data to be already sorted.
|
|
71
71
|
return this._encode(0x31, Buffer.concat(data));
|
|
72
72
|
}
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.assert = assert;
|
|
7
|
-
exports.debugAssert = debugAssert;
|
|
8
6
|
exports.debugMode = debugMode;
|
|
9
7
|
exports.isUnderTest = isUnderTest;
|
|
10
8
|
exports.setUnderTest = setUnderTest;
|
|
@@ -25,17 +23,11 @@ var _env = require("./env");
|
|
|
25
23
|
* limitations under the License.
|
|
26
24
|
*/
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
if (!value) throw new Error(message || 'Assertion error');
|
|
30
|
-
}
|
|
31
|
-
function debugAssert(value, message) {
|
|
32
|
-
if (isUnderTest() && !value) throw new Error(message);
|
|
33
|
-
}
|
|
34
|
-
const debugEnv = (0, _env.getFromENV)('PWDEBUG') || '';
|
|
26
|
+
const _debugMode = (0, _env.getFromENV)('PWDEBUG') || '';
|
|
35
27
|
function debugMode() {
|
|
36
|
-
if (
|
|
37
|
-
if (
|
|
38
|
-
return
|
|
28
|
+
if (_debugMode === 'console') return 'console';
|
|
29
|
+
if (_debugMode === '0' || _debugMode === 'false') return '';
|
|
30
|
+
return _debugMode ? 'inspector' : '';
|
|
39
31
|
}
|
|
40
32
|
let _isUnderTest = !!process.env.PWTEST_UNDER_TEST;
|
|
41
33
|
function setUnderTest() {
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.debugLogger = exports.RecentLogsCollector = void 0;
|
|
7
|
-
var _utilsBundle = require("../utilsBundle");
|
|
8
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
9
|
-
|
|
8
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|
|
@@ -7,6 +7,7 @@ exports.getAsBooleanFromENV = getAsBooleanFromENV;
|
|
|
7
7
|
exports.getFromENV = getFromENV;
|
|
8
8
|
exports.getPackageManager = getPackageManager;
|
|
9
9
|
exports.getPackageManagerExecCommand = getPackageManagerExecCommand;
|
|
10
|
+
exports.isLikelyNpxGlobal = isLikelyNpxGlobal;
|
|
10
11
|
/**
|
|
11
12
|
* Copyright (c) Microsoft Corporation.
|
|
12
13
|
*
|
|
@@ -46,4 +47,7 @@ function getPackageManagerExecCommand() {
|
|
|
46
47
|
if (packageManager === 'yarn') return 'yarn';
|
|
47
48
|
if (packageManager === 'pnpm') return 'pnpm exec';
|
|
48
49
|
return 'npx';
|
|
50
|
+
}
|
|
51
|
+
function isLikelyNpxGlobal() {
|
|
52
|
+
return process.argv.length >= 2 && process.argv[1].includes('_npx');
|
|
49
53
|
}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.serializeExpectedTextValues = serializeExpectedTextValues;
|
|
7
|
-
var _rtti = require("
|
|
7
|
+
var _rtti = require("../../utils/isomorphic/rtti");
|
|
8
8
|
/**
|
|
9
9
|
* Copyright (c) Microsoft Corporation.
|
|
10
10
|
*
|
|
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SerializedFS = void 0;
|
|
7
7
|
exports.canAccessFile = canAccessFile;
|
|
8
8
|
exports.copyFileAndMakeWritable = copyFileAndMakeWritable;
|
|
9
|
-
exports.
|
|
9
|
+
exports.existsAsync = void 0;
|
|
10
10
|
exports.mkdirIfNeeded = mkdirIfNeeded;
|
|
11
11
|
exports.removeFolders = removeFolders;
|
|
12
12
|
exports.sanitizeForFilePath = sanitizeForFilePath;
|
|
13
13
|
exports.toPosixPath = toPosixPath;
|
|
14
14
|
var _fs = _interopRequireDefault(require("fs"));
|
|
15
15
|
var _path = _interopRequireDefault(require("path"));
|
|
16
|
-
var _manualPromise = require("
|
|
17
|
-
var _zipBundle = require("
|
|
18
|
-
function _interopRequireDefault(
|
|
16
|
+
var _manualPromise = require("../../utils/isomorphic/manualPromise");
|
|
17
|
+
var _zipBundle = require("../../zipBundle");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
/**
|
|
20
20
|
* Copyright (c) Microsoft Corporation.
|
|
21
21
|
*
|
|
@@ -32,7 +32,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
32
32
|
* limitations under the License.
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
-
const fileUploadSizeLimit = exports.fileUploadSizeLimit = 50 * 1024 * 1024;
|
|
36
35
|
const existsAsync = path => new Promise(resolve => _fs.default.stat(path, err => resolve(!err)));
|
|
37
36
|
exports.existsAsync = existsAsync;
|
|
38
37
|
async function mkdirIfNeeded(filePath) {
|
|
@@ -8,16 +8,15 @@ exports.createSocket = createSocket;
|
|
|
8
8
|
exports.createTLSSocket = createTLSSocket;
|
|
9
9
|
exports.httpsHappyEyeballsAgent = exports.httpHappyEyeballsAgent = void 0;
|
|
10
10
|
exports.timingForSocket = timingForSocket;
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var _time = require("
|
|
19
|
-
function
|
|
20
|
-
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 && Object.prototype.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; }
|
|
11
|
+
var _dns = _interopRequireDefault(require("dns"));
|
|
12
|
+
var _http = _interopRequireDefault(require("http"));
|
|
13
|
+
var _https = _interopRequireDefault(require("https"));
|
|
14
|
+
var _net = _interopRequireDefault(require("net"));
|
|
15
|
+
var _tls = _interopRequireDefault(require("tls"));
|
|
16
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
17
|
+
var _manualPromise = require("../../utils/isomorphic/manualPromise");
|
|
18
|
+
var _time = require("../../utils/isomorphic/time");
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
20
|
/**
|
|
22
21
|
* Copyright (c) Microsoft Corporation.
|
|
23
22
|
*
|
|
@@ -41,17 +40,17 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
41
40
|
const connectionAttemptDelayMs = 300;
|
|
42
41
|
const kDNSLookupAt = Symbol('kDNSLookupAt');
|
|
43
42
|
const kTCPConnectionAt = Symbol('kTCPConnectionAt');
|
|
44
|
-
class HttpHappyEyeballsAgent extends
|
|
43
|
+
class HttpHappyEyeballsAgent extends _http.default.Agent {
|
|
45
44
|
createConnection(options, oncreate) {
|
|
46
45
|
// There is no ambiguity in case of IP address.
|
|
47
|
-
if (
|
|
46
|
+
if (_net.default.isIP(clientRequestArgsToHostName(options))) return _net.default.createConnection(options);
|
|
48
47
|
createConnectionAsync(options, oncreate, /* useTLS */false).catch(err => oncreate === null || oncreate === void 0 ? void 0 : oncreate(err));
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
|
-
class HttpsHappyEyeballsAgent extends
|
|
50
|
+
class HttpsHappyEyeballsAgent extends _https.default.Agent {
|
|
52
51
|
createConnection(options, oncreate) {
|
|
53
52
|
// There is no ambiguity in case of IP address.
|
|
54
|
-
if (
|
|
53
|
+
if (_net.default.isIP(clientRequestArgsToHostName(options))) return _tls.default.connect(options);
|
|
55
54
|
createConnectionAsync(options, oncreate, /* useTLS */true).catch(err => oncreate === null || oncreate === void 0 ? void 0 : oncreate(err));
|
|
56
55
|
}
|
|
57
56
|
}
|
|
@@ -65,8 +64,8 @@ const httpHappyEyeballsAgent = exports.httpHappyEyeballsAgent = new HttpHappyEye
|
|
|
65
64
|
});
|
|
66
65
|
async function createSocket(host, port) {
|
|
67
66
|
return new Promise((resolve, reject) => {
|
|
68
|
-
if (
|
|
69
|
-
const socket =
|
|
67
|
+
if (_net.default.isIP(host)) {
|
|
68
|
+
const socket = _net.default.createConnection({
|
|
70
69
|
host,
|
|
71
70
|
port
|
|
72
71
|
});
|
|
@@ -85,9 +84,9 @@ async function createSocket(host, port) {
|
|
|
85
84
|
}
|
|
86
85
|
async function createTLSSocket(options) {
|
|
87
86
|
return new Promise((resolve, reject) => {
|
|
88
|
-
(0,
|
|
89
|
-
if (
|
|
90
|
-
const socket =
|
|
87
|
+
(0, _assert.assert)(options.host, 'host is required');
|
|
88
|
+
if (_net.default.isIP(options.host)) {
|
|
89
|
+
const socket = _tls.default.connect(options);
|
|
91
90
|
socket.on('secureConnect', () => resolve(socket));
|
|
92
91
|
socket.on('error', error => reject(error));
|
|
93
92
|
} else {
|
|
@@ -110,22 +109,21 @@ async function createConnectionAsync(options, oncreate, useTLS) {
|
|
|
110
109
|
let firstError;
|
|
111
110
|
let errorCount = 0;
|
|
112
111
|
const handleError = (socket, err) => {
|
|
113
|
-
var _firstError;
|
|
114
112
|
if (!sockets.delete(socket)) return;
|
|
115
113
|
++errorCount;
|
|
116
|
-
|
|
114
|
+
firstError !== null && firstError !== void 0 ? firstError : firstError = err;
|
|
117
115
|
if (errorCount === addresses.length) oncreate === null || oncreate === void 0 || oncreate(firstError);
|
|
118
116
|
};
|
|
119
117
|
const connected = new _manualPromise.ManualPromise();
|
|
120
118
|
for (const {
|
|
121
119
|
address
|
|
122
120
|
} of addresses) {
|
|
123
|
-
const socket = useTLS ?
|
|
121
|
+
const socket = useTLS ? _tls.default.connect({
|
|
124
122
|
...options,
|
|
125
123
|
port: options.port,
|
|
126
124
|
host: address,
|
|
127
125
|
servername: hostname
|
|
128
|
-
}) :
|
|
126
|
+
}) : _net.default.createConnection({
|
|
129
127
|
...options,
|
|
130
128
|
port: options.port,
|
|
131
129
|
host: address
|
|
@@ -156,7 +154,7 @@ async function createConnectionAsync(options, oncreate, useTLS) {
|
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
156
|
async function lookupAddresses(hostname) {
|
|
159
|
-
const addresses = await
|
|
157
|
+
const addresses = await _dns.default.promises.lookup(hostname, {
|
|
160
158
|
all: true,
|
|
161
159
|
family: 0,
|
|
162
160
|
verbatim: true
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.isOfficiallySupportedPlatform = exports.hostPlatform = void 0;
|
|
7
7
|
var _os = _interopRequireDefault(require("os"));
|
|
8
8
|
var _linuxUtils = require("./linuxUtils");
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|