@checkly/playwright-core 1.41.21 → 1.41.23

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.
Files changed (126) hide show
  1. package/lib/browserServerImpl.js +1 -1
  2. package/lib/cli/driver.js +11 -3
  3. package/lib/cli/program.js +13 -5
  4. package/lib/client/android.js +1 -1
  5. package/lib/client/artifact.js +2 -2
  6. package/lib/client/browserContext.js +5 -5
  7. package/lib/client/browserType.js +1 -1
  8. package/lib/client/channelOwner.js +3 -3
  9. package/lib/client/clientHelper.js +5 -1
  10. package/lib/client/connection.js +2 -2
  11. package/lib/client/consoleMessage.js +3 -3
  12. package/lib/client/electron.js +3 -0
  13. package/lib/client/events.js +1 -0
  14. package/lib/client/fetch.js +3 -3
  15. package/lib/client/frame.js +4 -3
  16. package/lib/client/harRouter.js +7 -1
  17. package/lib/client/locator.js +2 -2
  18. package/lib/client/page.js +26 -7
  19. package/lib/common/socksProxy.js +12 -17
  20. package/lib/generated/consoleApiSource.js +1 -1
  21. package/lib/generated/injectedScriptSource.js +1 -1
  22. package/lib/generated/recorderSource.js +1 -1
  23. package/lib/outofprocess.js +3 -3
  24. package/lib/protocol/validator.js +46 -29
  25. package/lib/remote/playwrightConnection.js +2 -2
  26. package/lib/remote/playwrightServer.js +72 -166
  27. package/lib/server/android/android.js +2 -2
  28. package/lib/server/android/backendAdb.js +2 -2
  29. package/lib/server/browser.js +2 -2
  30. package/lib/server/browserContext.js +8 -9
  31. package/lib/server/browserType.js +5 -5
  32. package/lib/server/chromium/chromium.js +5 -4
  33. package/lib/server/chromium/crBrowser.js +2 -3
  34. package/lib/server/chromium/crConnection.js +2 -2
  35. package/lib/server/chromium/crExecutionContext.js +2 -2
  36. package/lib/server/chromium/crInput.js +2 -2
  37. package/lib/server/chromium/crNetworkManager.js +10 -11
  38. package/lib/server/chromium/crPage.js +48 -7
  39. package/lib/server/chromium/crServiceWorker.js +2 -3
  40. package/lib/server/console.js +1 -3
  41. package/lib/server/debugController.js +0 -3
  42. package/lib/server/deviceDescriptorsSource.json +50 -50
  43. package/lib/server/dispatchers/browserContextDispatcher.js +7 -6
  44. package/lib/server/dispatchers/dispatcher.js +19 -20
  45. package/lib/server/dispatchers/electronDispatcher.js +13 -0
  46. package/lib/server/dispatchers/frameDispatcher.js +0 -6
  47. package/lib/server/dispatchers/localUtilsDispatcher.js +4 -4
  48. package/lib/server/dispatchers/pageDispatcher.js +14 -10
  49. package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
  50. package/lib/server/dispatchers/writableStreamDispatcher.js +2 -2
  51. package/lib/server/dom.js +133 -170
  52. package/lib/server/electron/electron.js +40 -14
  53. package/lib/server/electron/loader.js +4 -2
  54. package/lib/server/fetch.js +4 -4
  55. package/lib/server/firefox/ffAccessibility.js +2 -1
  56. package/lib/server/firefox/ffBrowser.js +3 -3
  57. package/lib/server/firefox/ffConnection.js +1 -1
  58. package/lib/server/firefox/ffExecutionContext.js +2 -2
  59. package/lib/server/firefox/ffNetworkManager.js +7 -7
  60. package/lib/server/firefox/ffPage.js +3 -5
  61. package/lib/server/firefox/firefox.js +2 -2
  62. package/lib/server/frames.js +42 -23
  63. package/lib/server/har/harTracer.js +6 -6
  64. package/lib/server/helper.js +1 -1
  65. package/lib/server/input.js +2 -2
  66. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -1
  67. package/lib/server/javascript.js +2 -2
  68. package/lib/server/page.js +51 -7
  69. package/lib/server/pipeTransport.js +1 -1
  70. package/lib/server/playwright.js +1 -1
  71. package/lib/server/progress.js +5 -14
  72. package/lib/server/recorder/csharp.js +1 -1
  73. package/lib/server/recorder/recorderUtils.js +2 -2
  74. package/lib/server/recorder.js +14 -14
  75. package/lib/server/registry/browserFetcher.js +1 -2
  76. package/lib/server/registry/dependencies.js +7 -6
  77. package/lib/server/registry/index.js +50 -33
  78. package/lib/server/registry/nativeDeps.js +0 -94
  79. package/lib/server/registry/oopDownloadBrowserMain.js +2 -2
  80. package/lib/server/screenshotter.js +0 -1
  81. package/lib/server/socksInterceptor.js +2 -2
  82. package/lib/server/trace/recorder/snapshotter.js +2 -2
  83. package/lib/server/trace/recorder/tracing.js +12 -11
  84. package/lib/server/trace/test/inMemorySnapshotter.js +1 -1
  85. package/lib/server/trace/viewer/traceViewer.js +2 -2
  86. package/lib/server/transport.js +15 -13
  87. package/lib/server/webkit/wkBrowser.js +3 -3
  88. package/lib/server/webkit/wkConnection.js +1 -1
  89. package/lib/server/webkit/wkExecutionContext.js +2 -2
  90. package/lib/server/webkit/wkInput.js +2 -2
  91. package/lib/server/webkit/wkInterceptableRequest.js +2 -2
  92. package/lib/server/webkit/wkPage.js +10 -12
  93. package/lib/utils/comparators.js +4 -4
  94. package/lib/utils/fileUtils.js +4 -0
  95. package/lib/utils/happy-eyeballs.js +5 -4
  96. package/lib/utils/hostPlatform.js +1 -1
  97. package/lib/utils/index.js +11 -0
  98. package/lib/utils/isomorphic/cssParser.js +2 -2
  99. package/lib/utils/isomorphic/locatorParser.js +6 -4
  100. package/lib/utils/isomorphic/selectorParser.js +0 -1
  101. package/lib/utils/network.js +33 -0
  102. package/lib/utils/processLauncher.js +9 -2
  103. package/lib/utils/profiler.js +2 -2
  104. package/lib/utils/zipFile.js +1 -1
  105. package/lib/vite/htmlReport/index.html +12 -13
  106. package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +1 -0
  107. package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +24 -0
  108. package/lib/vite/recorder/assets/{index-64ce22d5.css → index-ljsTwXtJ.css} +1 -1
  109. package/lib/vite/recorder/assets/index-yg8ypzl6.js +47 -0
  110. package/lib/vite/recorder/index.html +2 -3
  111. package/lib/vite/traceViewer/assets/codeMirrorModule-A2_PGeGB.js +24 -0
  112. package/lib/vite/{recorder/assets/codeMirrorModule-85487eb6.js → traceViewer/assets/codeMirrorModule-aUzO-LID.js} +1 -1
  113. package/lib/vite/traceViewer/assets/wsPort-L8WBvZfK.js +69 -0
  114. package/lib/vite/traceViewer/assets/wsPort-uVqol1LI.js +69 -0
  115. package/lib/vite/traceViewer/index.4xhUWj1f.js +2 -0
  116. package/lib/vite/traceViewer/index.html +4 -5
  117. package/lib/vite/traceViewer/index.o6j3Cv4u.js +2 -0
  118. package/lib/vite/traceViewer/sw.bundle.js +4 -4
  119. package/lib/vite/traceViewer/uiMode.PlLkrJDI.js +10 -0
  120. package/lib/vite/traceViewer/uiMode.html +4 -5
  121. package/lib/vite/traceViewer/uiMode.qpn6w4df.js +10 -0
  122. package/lib/vite/traceViewer/wsPort.zR1WIy9-.css +1 -0
  123. package/package.json +1 -1
  124. package/lib/vite/recorder/assets/codeMirrorModule-5d0f417c.css +0 -1
  125. package/lib/vite/recorder/assets/index-b14c63fe.js +0 -41
  126. /package/lib/vite/recorder/assets/{codicon-79f233d0.ttf → codicon-zGuYmc9o.ttf} +0 -0
@@ -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 ? void 0 : progress.log(`<ws connecting> ${logUrl}`);
45
+ progress === null || progress === 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 ? void 0 : progress.cleanupWhenAborted(async () => {
48
+ progress === null || progress === 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 ? void 0 : progress.log(`<ws connected> ${logUrl}`);
53
+ progress === null || progress === 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 ? void 0 : progress.log(`<ws connect error> ${logUrl} ${event.message}`);
59
+ progress === null || progress === 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,22 +69,24 @@ 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 ? void 0 : progress.log(response.rawHeaders[i + 1]);
72
+ if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === 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 ? void 0 : progress.log(`<ws unexpected response> ${error}`);
79
+ progress === null || progress === 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 access key headers from the redirected request.
87
- const newHeaders = Object.fromEntries(Object.entries(headers || {}).filter(([name]) => !name.includes('access-key')));
86
+ // Strip authorization headers from the redirected request.
87
+ const newHeaders = Object.fromEntries(Object.entries(headers || {}).filter(([name]) => {
88
+ return !name.includes('access-key') && name.toLowerCase() !== 'authorization';
89
+ }));
88
90
  return WebSocketTransport._connect(progress, result.redirect.headers.location, newHeaders, {
89
91
  follow: true,
90
92
  hadRedirects: true
@@ -120,7 +122,7 @@ class WebSocketTransport {
120
122
  name: response.rawHeaders[i],
121
123
  value: response.rawHeaders[i + 1]
122
124
  });
123
- if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 ? void 0 : progress.log(response.rawHeaders[i + 1]);
125
+ if (debugLogHeader && response.rawHeaders[i] === debugLogHeader) progress === null || progress === void 0 || progress.log(response.rawHeaders[i + 1]);
124
126
  }
125
127
  });
126
128
  this._progress = progress;
@@ -137,7 +139,7 @@ class WebSocketTransport {
137
139
  parsedJson = JSON.parse(eventData);
138
140
  } catch (e) {
139
141
  var _this$_progress;
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}`);
142
+ (_this$_progress = this._progress) === null || _this$_progress === void 0 || _this$_progress.log(`<closing ws> Closing websocket due to malformed JSON. eventData=${eventData} e=${e === null || e === void 0 ? void 0 : e.message}`);
141
143
  this._ws.close();
142
144
  return;
143
145
  }
@@ -145,14 +147,14 @@ class WebSocketTransport {
145
147
  if (this.onmessage) this.onmessage.call(null, parsedJson);
146
148
  } catch (e) {
147
149
  var _this$_progress2;
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}`);
150
+ (_this$_progress2 = this._progress) === null || _this$_progress2 === void 0 || _this$_progress2.log(`<closing ws> Closing websocket due to failed onmessage callback. eventData=${eventData} e=${e === null || e === void 0 ? void 0 : e.message}`);
149
151
  this._ws.close();
150
152
  }
151
153
  });
152
154
  });
153
155
  this._ws.addEventListener('close', event => {
154
156
  var _this$_progress3;
155
- (_this$_progress3 = this._progress) === null || _this$_progress3 === void 0 ? void 0 : _this$_progress3.log(`<ws disconnected> ${logUrl} code=${event.code} reason=${event.reason}`);
157
+ (_this$_progress3 = this._progress) === null || _this$_progress3 === void 0 || _this$_progress3.log(`<ws disconnected> ${logUrl} code=${event.code} reason=${event.reason}`);
156
158
  if (this.onclose) this.onclose.call(null);
157
159
  });
158
160
  // Prevent Error: read ECONNRESET.
@@ -166,7 +168,7 @@ class WebSocketTransport {
166
168
  }
167
169
  close() {
168
170
  var _this$_progress5;
169
- (_this$_progress5 = this._progress) === null || _this$_progress5 === void 0 ? void 0 : _this$_progress5.log(`<ws disconnecting> ${this._logUrl}`);
171
+ (_this$_progress5 = this._progress) === null || _this$_progress5 === void 0 || _this$_progress5.log(`<ws disconnecting> ${this._logUrl}`);
170
172
  this._ws.close();
171
173
  }
172
174
  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(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; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ 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; }
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 ? void 0 : _this$_takeVideo.reportFinished();
123
+ (_this$_takeVideo = this._takeVideo(payload.screencastId)) === null || _this$_takeVideo === 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("../../common/debugLogger");
9
+ var _debugLogger = require("../../utils/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(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; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ 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; }
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(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; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ 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; }
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(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; }
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ 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
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("../../common/debugLogger");
25
+ var _debugLogger = require("../../utils/debugLogger");
26
26
  var _manualPromise = require("../../utils/manualPromise");
27
27
  var _browserContext = require("../browserContext");
28
28
  var _errors = require("../errors");
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; }
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
30
+ 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; }
31
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
32
  /**
33
33
  * Copyright 2017 Google Inc. All rights reserved.
@@ -641,7 +641,6 @@ class WKPage {
641
641
  headers: (0, _utils.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
642
642
  });
643
643
  }
644
-
645
644
  _calculateExtraHTTPHeaders() {
646
645
  const locale = this._browserContext._options.locale;
647
646
  const headers = network.mergeHeaders([this._browserContext._options.extraHTTPHeaders, this._page.extraHTTPHeaders(), locale ? network.singleHeader('Accept-Language', locale) : undefined]);
@@ -727,7 +726,6 @@ class WKPage {
727
726
  enabled
728
727
  }).catch(() => {}); // target can be closed.
729
728
  }
730
-
731
729
  async reload() {
732
730
  await this._session.send('Page.reload');
733
731
  }
@@ -766,7 +764,7 @@ class WKPage {
766
764
  scripts.push('delete window.ondevicemotion');
767
765
  scripts.push('delete window.ondeviceorientation');
768
766
  }
769
- scripts.push('if (!window.safari) window.safari = {};');
767
+ scripts.push('if (!window.safari) window.safari = { pushNotification: { toString() { return "[object SafariRemoteNotification]"; } } };');
770
768
  scripts.push('if (!window.GestureEvent) window.GestureEvent = function GestureEvent() {};');
771
769
  for (const binding of this._page.allBindings()) scripts.push(binding.source);
772
770
  scripts.push(...this._browserContext.initScripts);
@@ -1072,14 +1070,14 @@ class WKPage {
1072
1070
  // event from protocol. @see https://crbug.com/883475
1073
1071
  const response = request.request._existingResponse();
1074
1072
  if (response) {
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;
1073
+ var _event$metrics, _event$metrics2, _responseReceivedPayl, _responseReceivedPayl2, _responseReceivedPayl3, _event$metrics3, _event$metrics$respon, _event$metrics4, _event$metrics$respon2, _event$metrics5;
1076
1074
  const responseReceivedPayload = this._requestIdToResponseReceivedPayloadEvent.get(request._requestId);
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));
1075
+ response._serverAddrFinished(parseRemoteAddress(event === null || event === void 0 || (_event$metrics = event.metrics) === null || _event$metrics === void 0 ? void 0 : _event$metrics.remoteAddress));
1078
1076
  response._securityDetailsFinished({
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
1077
+ protocol: isLoadedSecurely(response.url(), response.timing()) ? (_event$metrics2 = event.metrics) === null || _event$metrics2 === void 0 || (_event$metrics2 = _event$metrics2.securityConnection) === null || _event$metrics2 === void 0 ? void 0 : _event$metrics2.protocol : undefined,
1078
+ subjectName: responseReceivedPayload === null || responseReceivedPayload === void 0 || (_responseReceivedPayl = responseReceivedPayload.response.security) === null || _responseReceivedPayl === void 0 || (_responseReceivedPayl = _responseReceivedPayl.certificate) === null || _responseReceivedPayl === void 0 ? void 0 : _responseReceivedPayl.subject,
1079
+ validFrom: responseReceivedPayload === null || responseReceivedPayload === void 0 || (_responseReceivedPayl2 = responseReceivedPayload.response.security) === null || _responseReceivedPayl2 === void 0 || (_responseReceivedPayl2 = _responseReceivedPayl2.certificate) === null || _responseReceivedPayl2 === void 0 ? void 0 : _responseReceivedPayl2.validFrom,
1080
+ validTo: responseReceivedPayload === null || responseReceivedPayload === void 0 || (_responseReceivedPayl3 = responseReceivedPayload.response.security) === null || _responseReceivedPayl3 === void 0 || (_responseReceivedPayl3 = _responseReceivedPayl3.certificate) === null || _responseReceivedPayl3 === void 0 ? void 0 : _responseReceivedPayl3.validUntil
1083
1081
  });
1084
1082
  if ((_event$metrics3 = event.metrics) !== null && _event$metrics3 !== void 0 && _event$metrics3.protocol) response._setHttpVersion(event.metrics.protocol);
1085
1083
  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);
@@ -49,7 +49,7 @@ function compareBuffersOrStrings(actualBuffer, expectedBuffer) {
49
49
  return null;
50
50
  }
51
51
  function compareImages(mimeType, actualBuffer, expectedBuffer, options = {}) {
52
- var _options$_comparator, _ref;
52
+ var _options$comparator, _ref;
53
53
  if (!actualBuffer || !(actualBuffer instanceof Buffer)) return {
54
54
  errorMessage: 'Actual result should be a Buffer.'
55
55
  };
@@ -75,19 +75,19 @@ function compareImages(mimeType, actualBuffer, expectedBuffer, options = {}) {
75
75
  height: size.height
76
76
  });
77
77
  let count;
78
- if (options._comparator === 'ssim-cie94') {
78
+ if (options.comparator === 'ssim-cie94') {
79
79
  count = (0, _compare.compare)(expected.data, actual.data, diff.data, size.width, size.height, {
80
80
  // All ΔE* formulae are originally designed to have the difference of 1.0 stand for a "just noticeable difference" (JND).
81
81
  // See https://en.wikipedia.org/wiki/Color_difference#CIELAB_%CE%94E*
82
82
  maxColorDeltaE94: 1.0
83
83
  });
84
- } else if (((_options$_comparator = options._comparator) !== null && _options$_comparator !== void 0 ? _options$_comparator : 'pixelmatch') === 'pixelmatch') {
84
+ } else if (((_options$comparator = options.comparator) !== null && _options$comparator !== void 0 ? _options$comparator : 'pixelmatch') === 'pixelmatch') {
85
85
  var _options$threshold;
86
86
  count = pixelmatch(expected.data, actual.data, diff.data, size.width, size.height, {
87
87
  threshold: (_options$threshold = options.threshold) !== null && _options$threshold !== void 0 ? _options$threshold : 0.2
88
88
  });
89
89
  } else {
90
- throw new Error(`Configuration specifies unknown comparator "${options._comparator}"`);
90
+ throw new Error(`Configuration specifies unknown comparator "${options.comparator}"`);
91
91
  }
92
92
  const maxDiffPixels1 = options.maxDiffPixels;
93
93
  const maxDiffPixels2 = options.maxDiffPixelRatio !== undefined ? expected.width * expected.height * options.maxDiffPixelRatio : undefined;
@@ -9,6 +9,7 @@ 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;
12
13
  var _fs = _interopRequireDefault(require("fs"));
13
14
  var _path = _interopRequireDefault(require("path"));
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -59,4 +60,7 @@ async function copyFileAndMakeWritable(from, to) {
59
60
  }
60
61
  function sanitizeForFilePath(s) {
61
62
  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);
62
66
  }
@@ -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(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; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ 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; }
16
16
  /**
17
17
  * Copyright (c) Microsoft Corporation.
18
18
  *
@@ -31,6 +31,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
31
 
32
32
  // Implementation(partial) of Happy Eyeballs 2 algorithm described in
33
33
  // https://www.rfc-editor.org/rfc/rfc8305
34
+
34
35
  // Same as in Chromium (https://source.chromium.org/chromium/chromium/src/+/5666ff4f5077a7e2f72902f3a95f5d553ea0d88d:net/socket/transport_connect_job.cc;l=102)
35
36
  const connectionAttemptDelayMs = 300;
36
37
  const timings = {
@@ -93,7 +94,7 @@ async function createConnectionAsync(options, oncreate, useTLS) {
93
94
  if (!sockets.delete(socket)) return;
94
95
  ++errorCount;
95
96
  (_firstError = firstError) !== null && _firstError !== void 0 ? _firstError : firstError = err;
96
- if (errorCount === addresses.length) oncreate === null || oncreate === void 0 ? void 0 : oncreate(firstError);
97
+ if (errorCount === addresses.length) oncreate === null || oncreate === void 0 || oncreate(firstError);
97
98
  };
98
99
  const connected = new _manualPromise.ManualPromise();
99
100
  for (const {
@@ -117,7 +118,7 @@ async function createConnectionAsync(options, oncreate, useTLS) {
117
118
  socket.on('connect', () => {
118
119
  timings.values.connect = performance.now() - timings.values.startTimeNow;
119
120
  connected.resolve();
120
- oncreate === null || oncreate === void 0 ? void 0 : oncreate(null, socket);
121
+ oncreate === null || oncreate === void 0 || oncreate(null, socket);
121
122
  // TODO: Cache the result?
122
123
  // Close other outstanding sockets.
123
124
  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: false
67
67
  };
68
68
  if (parseInt(distroInfo.version, 10) <= 21) return {
69
69
  hostPlatform: 'ubuntu20.04' + archSuffix,
@@ -201,6 +201,17 @@ 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
+ });
204
215
  var _spawnAsync = require("./spawnAsync");
205
216
  Object.keys(_spawnAsync).forEach(function (key) {
206
217
  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(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; }
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ 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; }
13
13
  /**
14
14
  * Copyright (c) Microsoft Corporation.
15
15
  *
@@ -167,11 +167,13 @@ 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(locator);
171
- if (locators.some(candidate => digestForComparison(candidate) === digest)) return selector;
170
+ const digest = digestForComparison(language, locator);
171
+ if (locators.some(candidate => digestForComparison(language, candidate) === digest)) return selector;
172
172
  } catch (e) {}
173
173
  return '';
174
174
  }
175
- function digestForComparison(locator) {
176
- return locator.replace(/\s/g, '').replace(/["`]/g, '\'');
175
+ function digestForComparison(language, locator) {
176
+ locator = locator.replace(/\s/g, '');
177
+ if (language === 'javascript') locator = locator.replace(/\\?["`]/g, '\'');
178
+ return locator;
177
179
  }
@@ -252,7 +252,6 @@ function parseAttributeSelector(selector, allowUnquotedStrings) {
252
252
  || char === '\u005f' // "_"
253
253
  || char === '\u002d'; // "-"
254
254
  }
255
-
256
255
  function readIdentifier() {
257
256
  let result = '';
258
257
  skipSpaces();
@@ -9,6 +9,7 @@ exports.createHttpServer = createHttpServer;
9
9
  exports.createHttpsServer = createHttpsServer;
10
10
  exports.fetchData = fetchData;
11
11
  exports.httpRequest = httpRequest;
12
+ exports.isURLAvailable = isURLAvailable;
12
13
  exports.urlMatches = urlMatches;
13
14
  exports.urlMatchesEqual = urlMatchesEqual;
14
15
  var _http = _interopRequireDefault(require("http"));
@@ -141,6 +142,38 @@ function createHttpsServer(...args) {
141
142
  decorateServer(server);
142
143
  return server;
143
144
  }
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
+ }
144
177
  function decorateServer(server) {
145
178
  const sockets = new Set();
146
179
  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(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; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ 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; }
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
  /**
20
20
  * Copyright 2017 Google Inc. All rights reserved.
@@ -95,6 +95,11 @@ 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
+ }
98
103
  async function launchProcess(options) {
99
104
  const stdio = options.stdio === 'pipe' ? ['ignore', 'pipe', 'pipe', 'pipe', 'pipe'] : ['pipe', 'pipe', 'pipe'];
100
105
  options.log(`<launching> ${options.command} ${options.args ? options.args.join(' ') : ''}`);
@@ -149,6 +154,7 @@ async function launchProcess(options) {
149
154
  processClosed = true;
150
155
  gracefullyCloseSet.delete(gracefullyClose);
151
156
  killSet.delete(killProcessAndCleanup);
157
+ removeProcessHandlersIfNeeded();
152
158
  options.onExit(exitCode, signal);
153
159
  // Cleanup as process exits.
154
160
  cleanup().then(fulfillCleanup);
@@ -182,6 +188,7 @@ async function launchProcess(options) {
182
188
  function killProcess() {
183
189
  gracefullyCloseSet.delete(gracefullyClose);
184
190
  killSet.delete(killProcessAndCleanup);
191
+ removeProcessHandlersIfNeeded();
185
192
  options.log(`[pid=${spawnedProcess.pid}] <kill>`);
186
193
  if (spawnedProcess.pid && !spawnedProcess.killed && !processClosed) {
187
194
  options.log(`[pid=${spawnedProcess.pid}] <will force kill>`);
@@ -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(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; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ 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; }
12
12
  /**
13
13
  * Copyright Microsoft Corporation. All rights reserved.
14
14
  *
@@ -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 ? void 0 : _this$_zipFile.close();
72
+ (_this$_zipFile = this._zipFile) === null || _this$_zipFile === void 0 || _this$_zipFile.close();
73
73
  }
74
74
  }
75
75
  exports.ZipFile = ZipFile;