@checkly/playwright-core 1.41.2-beta.0 → 1.41.2-beta.1
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/lib/browserServerImpl.js +1 -1
- package/lib/cli/cli.js +61 -0
- package/lib/cli/driver.js +3 -11
- package/lib/cli/program.js +5 -13
- package/lib/client/android.js +1 -1
- package/lib/client/artifact.js +2 -2
- package/lib/client/browserContext.js +5 -5
- package/lib/client/browserType.js +1 -1
- package/lib/client/channelOwner.js +3 -3
- package/lib/client/clientHelper.js +1 -5
- package/lib/client/connection.js +2 -2
- package/lib/client/consoleMessage.js +2 -2
- package/lib/client/fetch.js +3 -3
- package/lib/client/frame.js +3 -4
- package/lib/client/harRouter.js +1 -1
- package/lib/client/locator.js +2 -2
- package/lib/client/page.js +1 -24
- package/lib/common/debugLogger.js +90 -0
- package/lib/common/socksProxy.js +17 -12
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/recorderSource.js +1 -1
- package/lib/outofprocess.js +3 -3
- package/lib/protocol/validator.js +7 -13
- package/lib/remote/playwrightConnection.js +2 -2
- package/lib/remote/playwrightServer.js +166 -72
- package/lib/server/android/android.js +2 -2
- package/lib/server/android/backendAdb.js +2 -2
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +9 -8
- package/lib/server/browserType.js +5 -5
- package/lib/server/chromium/chromium.js +1 -1
- package/lib/server/chromium/crBrowser.js +3 -2
- package/lib/server/chromium/crConnection.js +2 -2
- package/lib/server/chromium/crExecutionContext.js +2 -2
- package/lib/server/chromium/crInput.js +2 -2
- package/lib/server/chromium/crNetworkManager.js +23 -37
- package/lib/server/chromium/crPage.js +7 -48
- package/lib/server/chromium/crServiceWorker.js +3 -2
- package/lib/server/debugController.js +3 -0
- package/lib/server/deviceDescriptorsSource.json +50 -50
- package/lib/server/dispatchers/browserContextDispatcher.js +4 -4
- package/lib/server/dispatchers/dispatcher.js +10 -10
- package/lib/server/dispatchers/localUtilsDispatcher.js +4 -4
- package/lib/server/dispatchers/pageDispatcher.js +0 -12
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/writableStreamDispatcher.js +2 -2
- package/lib/server/dom.js +170 -133
- package/lib/server/electron/electron.js +4 -5
- package/lib/server/electron/loader.js +2 -4
- package/lib/server/fetch.js +4 -4
- package/lib/server/firefox/ffBrowser.js +3 -3
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +2 -2
- package/lib/server/firefox/ffNetworkManager.js +7 -7
- package/lib/server/firefox/ffPage.js +5 -3
- package/lib/server/firefox/firefox.js +2 -2
- package/lib/server/frames.js +23 -31
- package/lib/server/har/harTracer.js +6 -6
- package/lib/server/helper.js +1 -1
- package/lib/server/input.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +1 -0
- package/lib/server/javascript.js +2 -2
- package/lib/server/network.js +23 -5
- package/lib/server/page.js +3 -44
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +1 -1
- package/lib/server/progress.js +14 -5
- package/lib/server/recorder/csharp.js +1 -1
- package/lib/server/recorder/recorderUtils.js +2 -2
- package/lib/server/recorder.js +14 -14
- package/lib/server/registry/browserFetcher.js +2 -1
- package/lib/server/registry/dependencies.js +6 -7
- package/lib/server/registry/index.js +33 -50
- package/lib/server/registry/nativeDeps.js +94 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +2 -2
- package/lib/server/screenshotter.js +1 -0
- package/lib/server/socksInterceptor.js +2 -2
- package/lib/server/trace/recorder/snapshotter.js +2 -2
- package/lib/server/trace/recorder/tracing.js +9 -7
- package/lib/server/trace/test/inMemorySnapshotter.js +1 -1
- package/lib/server/trace/viewer/traceViewer.js +2 -2
- package/lib/server/transport.js +13 -15
- package/lib/server/webkit/wkBrowser.js +3 -3
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +2 -2
- package/lib/server/webkit/wkInput.js +2 -2
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +12 -10
- package/lib/utils/fileUtils.js +0 -4
- package/lib/utils/happy-eyeballs.js +4 -5
- package/lib/utils/hostPlatform.js +1 -1
- package/lib/utils/index.js +0 -11
- package/lib/utils/isomorphic/cssParser.js +2 -2
- package/lib/utils/isomorphic/locatorParser.js +4 -6
- package/lib/utils/isomorphic/selectorParser.js +1 -0
- package/lib/utils/network.js +0 -33
- package/lib/utils/processLauncher.js +2 -9
- package/lib/utils/profiler.js +2 -2
- package/lib/utils/zipFile.js +1 -1
- package/lib/vite/htmlReport/index.html +13 -12
- package/lib/vite/recorder/assets/codeMirrorModule-2a26f817.js +24 -0
- package/lib/vite/recorder/assets/codeMirrorModule-5d0f417c.css +1 -0
- package/lib/vite/recorder/assets/{index-ljsTwXtJ.css → index-64ce22d5.css} +1 -1
- package/lib/vite/recorder/assets/index-bbf80321.js +41 -0
- package/lib/vite/recorder/index.html +3 -2
- package/lib/vite/{recorder/assets/codeMirrorModule-I9ks4y7D.js → traceViewer/assets/codeMirrorModule-56536a77.js} +13 -13
- package/lib/vite/traceViewer/assets/wsPort-722747dc.js +64 -0
- package/lib/vite/traceViewer/assets/xtermModule-443332e6.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.5d0f417c.css +1 -0
- package/lib/vite/traceViewer/codicon.79f233d0.ttf +0 -0
- package/lib/vite/traceViewer/index.1a1fe659.css +1 -0
- package/lib/vite/traceViewer/index.d05939c9.js +2 -0
- package/lib/vite/traceViewer/index.html +5 -4
- package/lib/vite/traceViewer/sw.bundle.js +1 -1
- package/lib/vite/traceViewer/uiMode.8b41a49d.css +1 -0
- package/lib/vite/traceViewer/uiMode.8e0454c4.js +4 -0
- package/lib/vite/traceViewer/uiMode.html +5 -4
- package/lib/vite/traceViewer/wsPort.9c9a6767.css +1 -0
- package/lib/vite/traceViewer/xtermModule.6428296b.css +32 -0
- package/package.json +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +0 -1
- package/lib/vite/recorder/assets/index-yg8ypzl6.js +0 -47
- /package/lib/vite/recorder/assets/{codicon-zGuYmc9o.ttf → codicon-79f233d0.ttf} +0 -0
|
@@ -94,7 +94,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
94
94
|
mode: 'discard'
|
|
95
95
|
}).catch(() => {});
|
|
96
96
|
await this.stop();
|
|
97
|
-
(_this$_snapshotter = this._snapshotter) === null || _this$_snapshotter === void 0
|
|
97
|
+
(_this$_snapshotter = this._snapshotter) === null || _this$_snapshotter === void 0 ? void 0 : _this$_snapshotter.resetForReuse();
|
|
98
98
|
}
|
|
99
99
|
async start(options) {
|
|
100
100
|
if (this._isStopping) throw new Error('Cannot start tracing while stopping');
|
|
@@ -198,7 +198,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
198
198
|
}
|
|
199
199
|
abort() {
|
|
200
200
|
var _this$_snapshotter3;
|
|
201
|
-
(_this$_snapshotter3 = this._snapshotter) === null || _this$_snapshotter3 === void 0
|
|
201
|
+
(_this$_snapshotter3 = this._snapshotter) === null || _this$_snapshotter3 === void 0 ? void 0 : _this$_snapshotter3.dispose();
|
|
202
202
|
this._harTracer.stop();
|
|
203
203
|
}
|
|
204
204
|
async flush() {
|
|
@@ -286,9 +286,9 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
286
286
|
// IMPORTANT: no awaits before this._appendTraceEvent in this method.
|
|
287
287
|
const event = createBeforeActionTraceEvent(metadata);
|
|
288
288
|
if (!event) return Promise.resolve();
|
|
289
|
-
(_sdkObject$attributio = sdkObject.attribution.page) === null || _sdkObject$attributio === void 0
|
|
289
|
+
(_sdkObject$attributio = sdkObject.attribution.page) === null || _sdkObject$attributio === void 0 ? void 0 : _sdkObject$attributio.temporarilyDisableTracingScreencastThrottling();
|
|
290
290
|
event.beforeSnapshot = `before@${metadata.id}`;
|
|
291
|
-
(_this$_state = this._state) === null || _this$_state === void 0
|
|
291
|
+
(_this$_state = this._state) === null || _this$_state === void 0 ? void 0 : _this$_state.callIds.add(metadata.id);
|
|
292
292
|
this._appendTraceEvent(event);
|
|
293
293
|
return this._captureSnapshot(event.beforeSnapshot, sdkObject, metadata);
|
|
294
294
|
}
|
|
@@ -298,7 +298,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
298
298
|
// IMPORTANT: no awaits before this._appendTraceEvent in this method.
|
|
299
299
|
const event = createInputActionTraceEvent(metadata);
|
|
300
300
|
if (!event) return Promise.resolve();
|
|
301
|
-
(_sdkObject$attributio2 = sdkObject.attribution.page) === null || _sdkObject$attributio2 === void 0
|
|
301
|
+
(_sdkObject$attributio2 = sdkObject.attribution.page) === null || _sdkObject$attributio2 === void 0 ? void 0 : _sdkObject$attributio2.temporarilyDisableTracingScreencastThrottling();
|
|
302
302
|
event.inputSnapshot = `input@${metadata.id}`;
|
|
303
303
|
this._appendTraceEvent(event);
|
|
304
304
|
return this._captureSnapshot(event.inputSnapshot, sdkObject, metadata, element);
|
|
@@ -312,10 +312,10 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
312
312
|
async onAfterCall(sdkObject, metadata) {
|
|
313
313
|
var _this$_state3, _this$_state4, _sdkObject$attributio3;
|
|
314
314
|
if (!((_this$_state3 = this._state) !== null && _this$_state3 !== void 0 && _this$_state3.callIds.has(metadata.id))) return;
|
|
315
|
-
(_this$_state4 = this._state) === null || _this$_state4 === void 0
|
|
315
|
+
(_this$_state4 = this._state) === null || _this$_state4 === void 0 ? void 0 : _this$_state4.callIds.delete(metadata.id);
|
|
316
316
|
const event = createAfterActionTraceEvent(metadata);
|
|
317
317
|
if (!event) return;
|
|
318
|
-
(_sdkObject$attributio3 = sdkObject.attribution.page) === null || _sdkObject$attributio3 === void 0
|
|
318
|
+
(_sdkObject$attributio3 = sdkObject.attribution.page) === null || _sdkObject$attributio3 === void 0 ? void 0 : _sdkObject$attributio3.temporarilyDisableTracingScreencastThrottling();
|
|
319
319
|
event.afterSnapshot = `after@${metadata.id}`;
|
|
320
320
|
this._appendTraceEvent(event);
|
|
321
321
|
return this._captureSnapshot(event.afterSnapshot, sdkObject, metadata);
|
|
@@ -340,6 +340,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
340
340
|
const visited = visitTraceEvent(event, this._state.networkSha1s);
|
|
341
341
|
this._fs.appendFile(this._state.networkFile, JSON.stringify(visited) + '\n', true /* flush */);
|
|
342
342
|
}
|
|
343
|
+
|
|
343
344
|
flushHarEntries() {
|
|
344
345
|
const harLines = [];
|
|
345
346
|
for (const entry of this._pendingHarEntries) {
|
|
@@ -353,6 +354,7 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
353
354
|
this._pendingHarEntries.clear();
|
|
354
355
|
if (harLines.length) this._fs.appendFile(this._state.networkFile, harLines.join('\n') + '\n', true /* flush */);
|
|
355
356
|
}
|
|
357
|
+
|
|
356
358
|
onContentBlob(sha1, buffer) {
|
|
357
359
|
this._appendResource(sha1, buffer);
|
|
358
360
|
}
|
|
@@ -81,7 +81,7 @@ class InMemorySnapshotter {
|
|
|
81
81
|
var _this$_snapshotReadyP;
|
|
82
82
|
++this._snapshotCount;
|
|
83
83
|
const renderer = this._storage.addFrameSnapshot(snapshot);
|
|
84
|
-
(_this$_snapshotReadyP = this._snapshotReadyPromises.get(snapshot.snapshotName || '')) === null || _this$_snapshotReadyP === void 0
|
|
84
|
+
(_this$_snapshotReadyP = this._snapshotReadyPromises.get(snapshot.snapshotName || '')) === null || _this$_snapshotReadyP === void 0 ? void 0 : _this$_snapshotReadyP.resolve(renderer);
|
|
85
85
|
}
|
|
86
86
|
async resourceContentForTest(sha1) {
|
|
87
87
|
return this._blobs.get(sha1);
|
|
@@ -168,7 +168,7 @@ async function openTraceInBrowser(traceUrls, options) {
|
|
|
168
168
|
} = await startTraceViewerServer(traceUrls, options);
|
|
169
169
|
// eslint-disable-next-line no-console
|
|
170
170
|
console.log('\nListening on ' + url);
|
|
171
|
-
if (!(0, _utils.isUnderTest)()) await (0, _utilsBundle.open)(url
|
|
171
|
+
if (!(0, _utils.isUnderTest)()) await (0, _utilsBundle.open)(url).catch(() => {});
|
|
172
172
|
}
|
|
173
173
|
class StdinServer {
|
|
174
174
|
constructor() {
|
|
@@ -195,7 +195,7 @@ class StdinServer {
|
|
|
195
195
|
var _this$sendEvent;
|
|
196
196
|
this._traceUrl = url;
|
|
197
197
|
clearTimeout(this._pollTimer);
|
|
198
|
-
(_this$sendEvent = this.sendEvent) === null || _this$sendEvent === void 0
|
|
198
|
+
(_this$sendEvent = this.sendEvent) === null || _this$sendEvent === void 0 ? void 0 : _this$sendEvent.call(this, 'loadTrace', {
|
|
199
199
|
url
|
|
200
200
|
});
|
|
201
201
|
}
|
package/lib/server/transport.js
CHANGED
|
@@ -42,21 +42,21 @@ class WebSocketTransport {
|
|
|
42
42
|
}
|
|
43
43
|
static async _connect(progress, url, headers, redirect, debugLogHeader) {
|
|
44
44
|
const logUrl = stripQueryParams(url);
|
|
45
|
-
progress === null || progress === void 0
|
|
45
|
+
progress === null || progress === void 0 ? void 0 : progress.log(`<ws connecting> ${logUrl}`);
|
|
46
46
|
const transport = new WebSocketTransport(progress, url, logUrl, headers, redirect.follow && redirect.hadRedirects, debugLogHeader);
|
|
47
47
|
let success = false;
|
|
48
|
-
progress === null || progress === void 0
|
|
48
|
+
progress === null || progress === void 0 ? void 0 : progress.cleanupWhenAborted(async () => {
|
|
49
49
|
if (!success) await transport.closeAndWait().catch(e => null);
|
|
50
50
|
});
|
|
51
51
|
const result = await new Promise((fulfill, reject) => {
|
|
52
52
|
transport._ws.on('open', async () => {
|
|
53
|
-
progress === null || progress === void 0
|
|
53
|
+
progress === null || progress === void 0 ? void 0 : progress.log(`<ws connected> ${logUrl}`);
|
|
54
54
|
fulfill({
|
|
55
55
|
transport
|
|
56
56
|
});
|
|
57
57
|
});
|
|
58
58
|
transport._ws.on('error', event => {
|
|
59
|
-
progress === null || progress === void 0
|
|
59
|
+
progress === null || progress === void 0 ? void 0 : progress.log(`<ws connect error> ${logUrl} ${event.message}`);
|
|
60
60
|
reject(new Error('WebSocket error: ' + event.message));
|
|
61
61
|
transport._ws.close();
|
|
62
62
|
});
|
|
@@ -69,24 +69,22 @@ class WebSocketTransport {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
for (let i = 0; i < response.rawHeaders.length; i += 2) {
|
|
72
|
-
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0
|
|
72
|
+
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 ? void 0 : progress.log(response.rawHeaders[i + 1]);
|
|
73
73
|
}
|
|
74
74
|
const chunks = [];
|
|
75
75
|
const errorPrefix = `${logUrl} ${response.statusCode} ${response.statusMessage}`;
|
|
76
76
|
response.on('data', chunk => chunks.push(chunk));
|
|
77
77
|
response.on('close', () => {
|
|
78
78
|
const error = chunks.length ? `${errorPrefix}\n${Buffer.concat(chunks)}` : errorPrefix;
|
|
79
|
-
progress === null || progress === void 0
|
|
79
|
+
progress === null || progress === void 0 ? void 0 : progress.log(`<ws unexpected response> ${error}`);
|
|
80
80
|
reject(new Error('WebSocket error: ' + error));
|
|
81
81
|
transport._ws.close();
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
if (result.redirect) {
|
|
86
|
-
// Strip
|
|
87
|
-
const newHeaders = Object.fromEntries(Object.entries(headers || {}).filter(([name]) =>
|
|
88
|
-
return !name.includes('access-key') && name.toLowerCase() !== 'authorization';
|
|
89
|
-
}));
|
|
86
|
+
// Strip access key headers from the redirected request.
|
|
87
|
+
const newHeaders = Object.fromEntries(Object.entries(headers || {}).filter(([name]) => !name.includes('access-key')));
|
|
90
88
|
return WebSocketTransport._connect(progress, result.redirect.headers.location, newHeaders, {
|
|
91
89
|
follow: true,
|
|
92
90
|
hadRedirects: true
|
|
@@ -122,7 +120,7 @@ class WebSocketTransport {
|
|
|
122
120
|
name: response.rawHeaders[i],
|
|
123
121
|
value: response.rawHeaders[i + 1]
|
|
124
122
|
});
|
|
125
|
-
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0
|
|
123
|
+
if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 ? void 0 : progress.log(response.rawHeaders[i + 1]);
|
|
126
124
|
}
|
|
127
125
|
});
|
|
128
126
|
this._progress = progress;
|
|
@@ -139,7 +137,7 @@ class WebSocketTransport {
|
|
|
139
137
|
parsedJson = JSON.parse(eventData);
|
|
140
138
|
} catch (e) {
|
|
141
139
|
var _this$_progress;
|
|
142
|
-
(_this$_progress = this._progress) === null || _this$_progress === void 0
|
|
140
|
+
(_this$_progress = this._progress) === null || _this$_progress === void 0 ? 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}`);
|
|
143
141
|
this._ws.close();
|
|
144
142
|
return;
|
|
145
143
|
}
|
|
@@ -147,14 +145,14 @@ class WebSocketTransport {
|
|
|
147
145
|
if (this.onmessage) this.onmessage.call(null, parsedJson);
|
|
148
146
|
} catch (e) {
|
|
149
147
|
var _this$_progress2;
|
|
150
|
-
(_this$_progress2 = this._progress) === null || _this$_progress2 === void 0
|
|
148
|
+
(_this$_progress2 = this._progress) === null || _this$_progress2 === void 0 ? 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}`);
|
|
151
149
|
this._ws.close();
|
|
152
150
|
}
|
|
153
151
|
});
|
|
154
152
|
});
|
|
155
153
|
this._ws.addEventListener('close', event => {
|
|
156
154
|
var _this$_progress3;
|
|
157
|
-
(_this$_progress3 = this._progress) === null || _this$_progress3 === void 0
|
|
155
|
+
(_this$_progress3 = this._progress) === null || _this$_progress3 === void 0 ? void 0 : _this$_progress3.log(`<ws disconnected> ${logUrl} code=${event.code} reason=${event.reason}`);
|
|
158
156
|
if (this.onclose) this.onclose.call(null);
|
|
159
157
|
});
|
|
160
158
|
// Prevent Error: read ECONNRESET.
|
|
@@ -168,7 +166,7 @@ class WebSocketTransport {
|
|
|
168
166
|
}
|
|
169
167
|
close() {
|
|
170
168
|
var _this$_progress5;
|
|
171
|
-
(_this$_progress5 = this._progress) === null || _this$_progress5 === void 0
|
|
169
|
+
(_this$_progress5 = this._progress) === null || _this$_progress5 === void 0 ? void 0 : _this$_progress5.log(`<ws disconnecting> ${this._logUrl}`);
|
|
172
170
|
this._ws.close();
|
|
173
171
|
}
|
|
174
172
|
async closeAndWait() {
|
|
@@ -12,8 +12,8 @@ var network = _interopRequireWildcard(require("../network"));
|
|
|
12
12
|
var _wkConnection = require("./wkConnection");
|
|
13
13
|
var _wkPage = require("./wkPage");
|
|
14
14
|
var _errors = require("../errors");
|
|
15
|
-
function _getRequireWildcardCache(
|
|
16
|
-
function _interopRequireWildcard(
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
/**
|
|
18
18
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
19
19
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -120,7 +120,7 @@ class WKBrowser extends _browser.Browser {
|
|
|
120
120
|
}
|
|
121
121
|
_onScreencastFinished(payload) {
|
|
122
122
|
var _this$_takeVideo;
|
|
123
|
-
(_this$_takeVideo = this._takeVideo(payload.screencastId)) === null || _this$_takeVideo === void 0
|
|
123
|
+
(_this$_takeVideo = this._takeVideo(payload.screencastId)) === null || _this$_takeVideo === void 0 ? void 0 : _this$_takeVideo.reportFinished();
|
|
124
124
|
}
|
|
125
125
|
_onPageProxyCreated(event) {
|
|
126
126
|
const pageProxyId = event.pageProxyId;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.kPageProxyMessageReceived = exports.kBrowserCloseMessageId = exports.WKSession = exports.WKConnection = void 0;
|
|
7
7
|
var _events = require("events");
|
|
8
8
|
var _utils = require("../../utils");
|
|
9
|
-
var _debugLogger = require("../../
|
|
9
|
+
var _debugLogger = require("../../common/debugLogger");
|
|
10
10
|
var _helper = require("../helper");
|
|
11
11
|
var _protocolError = require("../protocolError");
|
|
12
12
|
/**
|
|
@@ -7,8 +7,8 @@ exports.WKExecutionContext = void 0;
|
|
|
7
7
|
var js = _interopRequireWildcard(require("../javascript"));
|
|
8
8
|
var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
|
|
9
9
|
var _protocolError = require("../protocolError");
|
|
10
|
-
function _getRequireWildcardCache(
|
|
11
|
-
function _interopRequireWildcard(
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
14
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -7,8 +7,8 @@ exports.RawTouchscreenImpl = exports.RawMouseImpl = exports.RawKeyboardImpl = vo
|
|
|
7
7
|
var input = _interopRequireWildcard(require("../input"));
|
|
8
8
|
var _macEditingCommands = require("../macEditingCommands");
|
|
9
9
|
var _utils = require("../../utils");
|
|
10
|
-
function _getRequireWildcardCache(
|
|
11
|
-
function _interopRequireWildcard(
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
14
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.WKRouteImpl = exports.WKInterceptableRequest = void 0;
|
|
7
7
|
var network = _interopRequireWildcard(require("../network"));
|
|
8
8
|
var _utils = require("../../utils");
|
|
9
|
-
function _getRequireWildcardCache(
|
|
10
|
-
function _interopRequireWildcard(
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
11
|
/**
|
|
12
12
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
13
13
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -22,12 +22,12 @@ var _wkInput = require("./wkInput");
|
|
|
22
22
|
var _wkInterceptableRequest = require("./wkInterceptableRequest");
|
|
23
23
|
var _wkProvisionalPage = require("./wkProvisionalPage");
|
|
24
24
|
var _wkWorkers = require("./wkWorkers");
|
|
25
|
-
var _debugLogger = require("../../
|
|
25
|
+
var _debugLogger = require("../../common/debugLogger");
|
|
26
26
|
var _manualPromise = require("../../utils/manualPromise");
|
|
27
27
|
var _browserContext = require("../browserContext");
|
|
28
28
|
var _errors = require("../errors");
|
|
29
|
-
function _getRequireWildcardCache(
|
|
30
|
-
function _interopRequireWildcard(
|
|
29
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
32
|
/**
|
|
33
33
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
@@ -641,6 +641,7 @@ class WKPage {
|
|
|
641
641
|
headers: (0, _utils.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
|
|
642
642
|
});
|
|
643
643
|
}
|
|
644
|
+
|
|
644
645
|
_calculateExtraHTTPHeaders() {
|
|
645
646
|
const locale = this._browserContext._options.locale;
|
|
646
647
|
const headers = network.mergeHeaders([this._browserContext._options.extraHTTPHeaders, this._page.extraHTTPHeaders(), locale ? network.singleHeader('Accept-Language', locale) : undefined]);
|
|
@@ -726,6 +727,7 @@ class WKPage {
|
|
|
726
727
|
enabled
|
|
727
728
|
}).catch(() => {}); // target can be closed.
|
|
728
729
|
}
|
|
730
|
+
|
|
729
731
|
async reload() {
|
|
730
732
|
await this._session.send('Page.reload');
|
|
731
733
|
}
|
|
@@ -764,7 +766,7 @@ class WKPage {
|
|
|
764
766
|
scripts.push('delete window.ondevicemotion');
|
|
765
767
|
scripts.push('delete window.ondeviceorientation');
|
|
766
768
|
}
|
|
767
|
-
scripts.push('if (!window.safari) window.safari = {
|
|
769
|
+
scripts.push('if (!window.safari) window.safari = {};');
|
|
768
770
|
scripts.push('if (!window.GestureEvent) window.GestureEvent = function GestureEvent() {};');
|
|
769
771
|
for (const binding of this._page.allBindings()) scripts.push(binding.source);
|
|
770
772
|
scripts.push(...this._browserContext.initScripts);
|
|
@@ -1070,14 +1072,14 @@ class WKPage {
|
|
|
1070
1072
|
// event from protocol. @see https://crbug.com/883475
|
|
1071
1073
|
const response = request.request._existingResponse();
|
|
1072
1074
|
if (response) {
|
|
1073
|
-
var _event$metrics, _event$metrics2, _responseReceivedPayl, _responseReceivedPayl2, _responseReceivedPayl3, _event$metrics3, _event$metrics$respon, _event$metrics4, _event$metrics$respon2, _event$metrics5;
|
|
1075
|
+
var _event$metrics, _event$metrics2, _event$metrics2$secur, _responseReceivedPayl, _responseReceivedPayl2, _responseReceivedPayl3, _responseReceivedPayl4, _responseReceivedPayl5, _responseReceivedPayl6, _event$metrics3, _event$metrics$respon, _event$metrics4, _event$metrics$respon2, _event$metrics5;
|
|
1074
1076
|
const responseReceivedPayload = this._requestIdToResponseReceivedPayloadEvent.get(request._requestId);
|
|
1075
|
-
response._serverAddrFinished(parseRemoteAddress(event === null || event === void 0
|
|
1077
|
+
response._serverAddrFinished(parseRemoteAddress(event === null || event === void 0 ? void 0 : (_event$metrics = event.metrics) === null || _event$metrics === void 0 ? void 0 : _event$metrics.remoteAddress));
|
|
1076
1078
|
response._securityDetailsFinished({
|
|
1077
|
-
protocol: isLoadedSecurely(response.url(), response.timing()) ? (_event$metrics2 = event.metrics) === null || _event$metrics2 === void 0
|
|
1078
|
-
subjectName: responseReceivedPayload === null || responseReceivedPayload === void 0
|
|
1079
|
-
validFrom: responseReceivedPayload === null || responseReceivedPayload === void 0
|
|
1080
|
-
validTo: responseReceivedPayload === null || responseReceivedPayload === void 0
|
|
1079
|
+
protocol: isLoadedSecurely(response.url(), response.timing()) ? (_event$metrics2 = event.metrics) === null || _event$metrics2 === void 0 ? void 0 : (_event$metrics2$secur = _event$metrics2.securityConnection) === null || _event$metrics2$secur === void 0 ? void 0 : _event$metrics2$secur.protocol : undefined,
|
|
1080
|
+
subjectName: responseReceivedPayload === null || responseReceivedPayload === void 0 ? void 0 : (_responseReceivedPayl = responseReceivedPayload.response.security) === null || _responseReceivedPayl === void 0 ? void 0 : (_responseReceivedPayl2 = _responseReceivedPayl.certificate) === null || _responseReceivedPayl2 === void 0 ? void 0 : _responseReceivedPayl2.subject,
|
|
1081
|
+
validFrom: responseReceivedPayload === null || responseReceivedPayload === void 0 ? void 0 : (_responseReceivedPayl3 = responseReceivedPayload.response.security) === null || _responseReceivedPayl3 === void 0 ? void 0 : (_responseReceivedPayl4 = _responseReceivedPayl3.certificate) === null || _responseReceivedPayl4 === void 0 ? void 0 : _responseReceivedPayl4.validFrom,
|
|
1082
|
+
validTo: responseReceivedPayload === null || responseReceivedPayload === void 0 ? void 0 : (_responseReceivedPayl5 = responseReceivedPayload.response.security) === null || _responseReceivedPayl5 === void 0 ? void 0 : (_responseReceivedPayl6 = _responseReceivedPayl5.certificate) === null || _responseReceivedPayl6 === void 0 ? void 0 : _responseReceivedPayl6.validUntil
|
|
1081
1083
|
});
|
|
1082
1084
|
if ((_event$metrics3 = event.metrics) !== null && _event$metrics3 !== void 0 && _event$metrics3.protocol) response._setHttpVersion(event.metrics.protocol);
|
|
1083
1085
|
response.setEncodedBodySize((_event$metrics$respon = (_event$metrics4 = event.metrics) === null || _event$metrics4 === void 0 ? void 0 : _event$metrics4.responseBodyBytesReceived) !== null && _event$metrics$respon !== void 0 ? _event$metrics$respon : null);
|
package/lib/utils/fileUtils.js
CHANGED
|
@@ -9,7 +9,6 @@ exports.fileUploadSizeLimit = exports.existsAsync = void 0;
|
|
|
9
9
|
exports.mkdirIfNeeded = mkdirIfNeeded;
|
|
10
10
|
exports.removeFolders = removeFolders;
|
|
11
11
|
exports.sanitizeForFilePath = sanitizeForFilePath;
|
|
12
|
-
exports.toPosixPath = toPosixPath;
|
|
13
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
14
13
|
var _path = _interopRequireDefault(require("path"));
|
|
15
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -60,7 +59,4 @@ async function copyFileAndMakeWritable(from, to) {
|
|
|
60
59
|
}
|
|
61
60
|
function sanitizeForFilePath(s) {
|
|
62
61
|
return s.replace(/[\x00-\x2C\x2E-\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]+/g, '-');
|
|
63
|
-
}
|
|
64
|
-
function toPosixPath(aPath) {
|
|
65
|
-
return aPath.split(_path.default.sep).join(_path.default.posix.sep);
|
|
66
62
|
}
|
|
@@ -11,8 +11,8 @@ var https = _interopRequireWildcard(require("https"));
|
|
|
11
11
|
var net = _interopRequireWildcard(require("net"));
|
|
12
12
|
var tls = _interopRequireWildcard(require("tls"));
|
|
13
13
|
var _manualPromise = require("./manualPromise");
|
|
14
|
-
function _getRequireWildcardCache(
|
|
15
|
-
function _interopRequireWildcard(
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
16
|
/**
|
|
17
17
|
* Copyright (c) Microsoft Corporation.
|
|
18
18
|
*
|
|
@@ -31,7 +31,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
31
31
|
|
|
32
32
|
// Implementation(partial) of Happy Eyeballs 2 algorithm described in
|
|
33
33
|
// https://www.rfc-editor.org/rfc/rfc8305
|
|
34
|
-
|
|
35
34
|
// Same as in Chromium (https://source.chromium.org/chromium/chromium/src/+/5666ff4f5077a7e2f72902f3a95f5d553ea0d88d:net/socket/transport_connect_job.cc;l=102)
|
|
36
35
|
const connectionAttemptDelayMs = 300;
|
|
37
36
|
class HttpHappyEyeballsAgent extends http.Agent {
|
|
@@ -82,7 +81,7 @@ async function createConnectionAsync(options, oncreate, useTLS) {
|
|
|
82
81
|
if (!sockets.delete(socket)) return;
|
|
83
82
|
++errorCount;
|
|
84
83
|
(_firstError = firstError) !== null && _firstError !== void 0 ? _firstError : firstError = err;
|
|
85
|
-
if (errorCount === addresses.length) oncreate === null || oncreate === void 0
|
|
84
|
+
if (errorCount === addresses.length) oncreate === null || oncreate === void 0 ? void 0 : oncreate(firstError);
|
|
86
85
|
};
|
|
87
86
|
const connected = new _manualPromise.ManualPromise();
|
|
88
87
|
for (const {
|
|
@@ -103,7 +102,7 @@ async function createConnectionAsync(options, oncreate, useTLS) {
|
|
|
103
102
|
// None of these events are fired after socket.destroy() is called.
|
|
104
103
|
socket.on('connect', () => {
|
|
105
104
|
connected.resolve();
|
|
106
|
-
oncreate === null || oncreate === void 0
|
|
105
|
+
oncreate === null || oncreate === void 0 ? void 0 : oncreate(null, socket);
|
|
107
106
|
// TODO: Cache the result?
|
|
108
107
|
// Close other outstanding sockets.
|
|
109
108
|
sockets.delete(socket);
|
|
@@ -63,7 +63,7 @@ function calculatePlatform() {
|
|
|
63
63
|
const isOfficiallySupportedPlatform = (distroInfo === null || distroInfo === void 0 ? void 0 : distroInfo.id) === 'ubuntu';
|
|
64
64
|
if (parseInt(distroInfo.version, 10) <= 19) return {
|
|
65
65
|
hostPlatform: 'ubuntu18.04' + archSuffix,
|
|
66
|
-
isOfficiallySupportedPlatform
|
|
66
|
+
isOfficiallySupportedPlatform
|
|
67
67
|
};
|
|
68
68
|
if (parseInt(distroInfo.version, 10) <= 21) return {
|
|
69
69
|
hostPlatform: 'ubuntu20.04' + archSuffix,
|
package/lib/utils/index.js
CHANGED
|
@@ -201,17 +201,6 @@ Object.keys(_rtti).forEach(function (key) {
|
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
203
|
});
|
|
204
|
-
var _semaphore = require("./semaphore");
|
|
205
|
-
Object.keys(_semaphore).forEach(function (key) {
|
|
206
|
-
if (key === "default" || key === "__esModule") return;
|
|
207
|
-
if (key in exports && exports[key] === _semaphore[key]) return;
|
|
208
|
-
Object.defineProperty(exports, key, {
|
|
209
|
-
enumerable: true,
|
|
210
|
-
get: function () {
|
|
211
|
-
return _semaphore[key];
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
204
|
var _spawnAsync = require("./spawnAsync");
|
|
216
205
|
Object.keys(_spawnAsync).forEach(function (key) {
|
|
217
206
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -8,8 +8,8 @@ exports.isInvalidSelectorError = isInvalidSelectorError;
|
|
|
8
8
|
exports.parseCSS = parseCSS;
|
|
9
9
|
exports.serializeSelector = serializeSelector;
|
|
10
10
|
var css = _interopRequireWildcard(require("./cssTokenizer"));
|
|
11
|
-
function _getRequireWildcardCache(
|
|
12
|
-
function _interopRequireWildcard(
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
13
|
/**
|
|
14
14
|
* Copyright (c) Microsoft Corporation.
|
|
15
15
|
*
|
|
@@ -167,13 +167,11 @@ function locatorOrSelectorAsSelector(language, locator, testIdAttributeName) {
|
|
|
167
167
|
preferredQuote
|
|
168
168
|
} = parseLocator(locator, testIdAttributeName);
|
|
169
169
|
const locators = (0, _locatorGenerators.asLocators)(language, selector, undefined, undefined, preferredQuote);
|
|
170
|
-
const digest = digestForComparison(
|
|
171
|
-
if (locators.some(candidate => digestForComparison(
|
|
170
|
+
const digest = digestForComparison(locator);
|
|
171
|
+
if (locators.some(candidate => digestForComparison(candidate) === digest)) return selector;
|
|
172
172
|
} catch (e) {}
|
|
173
173
|
return '';
|
|
174
174
|
}
|
|
175
|
-
function digestForComparison(
|
|
176
|
-
|
|
177
|
-
if (language === 'javascript') locator = locator.replace(/\\?["`]/g, '\'');
|
|
178
|
-
return locator;
|
|
175
|
+
function digestForComparison(locator) {
|
|
176
|
+
return locator.replace(/\s/g, '').replace(/["`]/g, '\'');
|
|
179
177
|
}
|
package/lib/utils/network.js
CHANGED
|
@@ -9,7 +9,6 @@ exports.createHttpServer = createHttpServer;
|
|
|
9
9
|
exports.createHttpsServer = createHttpsServer;
|
|
10
10
|
exports.fetchData = fetchData;
|
|
11
11
|
exports.httpRequest = httpRequest;
|
|
12
|
-
exports.isURLAvailable = isURLAvailable;
|
|
13
12
|
exports.urlMatches = urlMatches;
|
|
14
13
|
exports.urlMatchesEqual = urlMatchesEqual;
|
|
15
14
|
var _http = _interopRequireDefault(require("http"));
|
|
@@ -142,38 +141,6 @@ function createHttpsServer(...args) {
|
|
|
142
141
|
decorateServer(server);
|
|
143
142
|
return server;
|
|
144
143
|
}
|
|
145
|
-
async function isURLAvailable(url, ignoreHTTPSErrors, onLog, onStdErr) {
|
|
146
|
-
let statusCode = await httpStatusCode(url, ignoreHTTPSErrors, onLog, onStdErr);
|
|
147
|
-
if (statusCode === 404 && url.pathname === '/') {
|
|
148
|
-
const indexUrl = new URL(url);
|
|
149
|
-
indexUrl.pathname = '/index.html';
|
|
150
|
-
statusCode = await httpStatusCode(indexUrl, ignoreHTTPSErrors, onLog, onStdErr);
|
|
151
|
-
}
|
|
152
|
-
return statusCode >= 200 && statusCode < 404;
|
|
153
|
-
}
|
|
154
|
-
async function httpStatusCode(url, ignoreHTTPSErrors, onLog, onStdErr) {
|
|
155
|
-
return new Promise(resolve => {
|
|
156
|
-
onLog === null || onLog === void 0 || onLog(`HTTP HEAD: ${url}`);
|
|
157
|
-
httpRequest({
|
|
158
|
-
method: 'HEAD',
|
|
159
|
-
url: url.toString(),
|
|
160
|
-
headers: {
|
|
161
|
-
Accept: '*/*'
|
|
162
|
-
},
|
|
163
|
-
rejectUnauthorized: !ignoreHTTPSErrors
|
|
164
|
-
}, res => {
|
|
165
|
-
var _res$statusCode;
|
|
166
|
-
res.resume();
|
|
167
|
-
const statusCode = (_res$statusCode = res.statusCode) !== null && _res$statusCode !== void 0 ? _res$statusCode : 0;
|
|
168
|
-
onLog === null || onLog === void 0 || onLog(`HTTP Status: ${statusCode}`);
|
|
169
|
-
resolve(statusCode);
|
|
170
|
-
}, error => {
|
|
171
|
-
if (error.code === 'DEPTH_ZERO_SELF_SIGNED_CERT') onStdErr === null || onStdErr === void 0 || onStdErr(`[WebServer] Self-signed certificate detected. Try adding ignoreHTTPSErrors: true to config.webServer.`);
|
|
172
|
-
onLog === null || onLog === void 0 || onLog(`Error while checking if ${url} is available: ${error.message}`);
|
|
173
|
-
resolve(0);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
144
|
function decorateServer(server) {
|
|
178
145
|
const sockets = new Set();
|
|
179
146
|
server.on('connection', socket => {
|
|
@@ -13,8 +13,8 @@ var childProcess = _interopRequireWildcard(require("child_process"));
|
|
|
13
13
|
var readline = _interopRequireWildcard(require("readline"));
|
|
14
14
|
var _ = require("./");
|
|
15
15
|
var _fileUtils = require("./fileUtils");
|
|
16
|
-
function _getRequireWildcardCache(
|
|
17
|
-
function _interopRequireWildcard(
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
19
|
/**
|
|
20
20
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
@@ -95,11 +95,6 @@ function addProcessHandlerIfNeeded(name) {
|
|
|
95
95
|
process.on(name, processHandlers[name]);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
function removeProcessHandlersIfNeeded() {
|
|
99
|
-
if (killSet.size) return;
|
|
100
|
-
for (const handler of installedHandlers) process.off(handler, processHandlers[handler]);
|
|
101
|
-
installedHandlers.clear();
|
|
102
|
-
}
|
|
103
98
|
async function launchProcess(options) {
|
|
104
99
|
const stdio = options.stdio === 'pipe' ? ['ignore', 'pipe', 'pipe', 'pipe', 'pipe'] : ['pipe', 'pipe', 'pipe'];
|
|
105
100
|
options.log(`<launching> ${options.command} ${options.args ? options.args.join(' ') : ''}`);
|
|
@@ -154,7 +149,6 @@ async function launchProcess(options) {
|
|
|
154
149
|
processClosed = true;
|
|
155
150
|
gracefullyCloseSet.delete(gracefullyClose);
|
|
156
151
|
killSet.delete(killProcessAndCleanup);
|
|
157
|
-
removeProcessHandlersIfNeeded();
|
|
158
152
|
options.onExit(exitCode, signal);
|
|
159
153
|
// Cleanup as process exits.
|
|
160
154
|
cleanup().then(fulfillCleanup);
|
|
@@ -188,7 +182,6 @@ async function launchProcess(options) {
|
|
|
188
182
|
function killProcess() {
|
|
189
183
|
gracefullyCloseSet.delete(gracefullyClose);
|
|
190
184
|
killSet.delete(killProcessAndCleanup);
|
|
191
|
-
removeProcessHandlersIfNeeded();
|
|
192
185
|
options.log(`[pid=${spawnedProcess.pid}] <kill>`);
|
|
193
186
|
if (spawnedProcess.pid && !spawnedProcess.killed && !processClosed) {
|
|
194
187
|
options.log(`[pid=${spawnedProcess.pid}] <will force kill>`);
|
package/lib/utils/profiler.js
CHANGED
|
@@ -7,8 +7,8 @@ exports.startProfiling = startProfiling;
|
|
|
7
7
|
exports.stopProfiling = stopProfiling;
|
|
8
8
|
var fs = _interopRequireWildcard(require("fs"));
|
|
9
9
|
var path = _interopRequireWildcard(require("path"));
|
|
10
|
-
function _getRequireWildcardCache(
|
|
11
|
-
function _interopRequireWildcard(
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright Microsoft Corporation. All rights reserved.
|
|
14
14
|
*
|
package/lib/utils/zipFile.js
CHANGED
|
@@ -69,7 +69,7 @@ class ZipFile {
|
|
|
69
69
|
}
|
|
70
70
|
close() {
|
|
71
71
|
var _this$_zipFile;
|
|
72
|
-
(_this$_zipFile = this._zipFile) === null || _this$_zipFile === void 0
|
|
72
|
+
(_this$_zipFile = this._zipFile) === null || _this$_zipFile === void 0 ? void 0 : _this$_zipFile.close();
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
exports.ZipFile = ZipFile;
|