patchright-core 1.51.2 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/browsers.json +15 -13
  2. package/lib/androidServerImpl.js +42 -48
  3. package/lib/browserServerImpl.js +54 -67
  4. package/lib/cli/driver.js +71 -69
  5. package/lib/cli/program.js +312 -328
  6. package/lib/cli/programWithTestStub.js +51 -45
  7. package/lib/client/accessibility.js +31 -32
  8. package/lib/client/android.js +141 -228
  9. package/lib/client/api.js +135 -283
  10. package/lib/client/artifact.js +39 -36
  11. package/lib/client/browser.js +57 -61
  12. package/lib/client/browserContext.js +297 -326
  13. package/lib/client/browserType.js +92 -106
  14. package/lib/client/cdpSession.js +29 -31
  15. package/lib/client/channelOwner.js +82 -95
  16. package/lib/client/clientHelper.js +46 -38
  17. package/lib/client/clientInstrumentation.js +40 -37
  18. package/lib/client/clientStackTrace.js +41 -37
  19. package/lib/client/clock.js +36 -36
  20. package/lib/client/connection.js +190 -212
  21. package/lib/client/consoleMessage.js +31 -28
  22. package/lib/client/coverage.js +25 -22
  23. package/lib/client/dialog.js +30 -31
  24. package/lib/client/download.js +25 -25
  25. package/lib/client/electron.js +73 -75
  26. package/lib/client/elementHandle.js +111 -147
  27. package/lib/client/errors.js +53 -53
  28. package/lib/client/eventEmitter.js +124 -121
  29. package/lib/client/events.js +72 -68
  30. package/lib/client/fetch.js +135 -158
  31. package/lib/client/fileChooser.js +25 -24
  32. package/lib/client/fileUtils.js +31 -28
  33. package/lib/client/frame.js +187 -306
  34. package/lib/client/harRouter.js +42 -52
  35. package/lib/client/input.js +40 -69
  36. package/lib/client/jsHandle.js +54 -69
  37. package/lib/client/jsonPipe.js +27 -23
  38. package/lib/client/localUtils.js +29 -28
  39. package/lib/client/locator.js +161 -245
  40. package/lib/client/network.js +277 -295
  41. package/lib/client/page.js +270 -318
  42. package/lib/client/platform.js +46 -43
  43. package/lib/client/playwright.js +51 -66
  44. package/lib/client/selectors.js +48 -46
  45. package/lib/client/stream.js +29 -25
  46. package/lib/client/timeoutSettings.js +49 -39
  47. package/lib/client/tracing.js +48 -84
  48. package/lib/client/types.js +26 -22
  49. package/lib/client/video.js +35 -27
  50. package/lib/client/waiter.js +69 -88
  51. package/lib/client/webError.js +25 -23
  52. package/lib/client/webSocket.js +61 -56
  53. package/lib/client/worker.js +48 -58
  54. package/lib/client/writableStream.js +27 -23
  55. package/lib/generated/clockSource.js +26 -5
  56. package/lib/generated/consoleApiSource.js +26 -5
  57. package/lib/generated/injectedScriptSource.js +26 -5
  58. package/lib/generated/pollingRecorderSource.js +26 -5
  59. package/lib/generated/utilityScriptSource.js +26 -5
  60. package/lib/generated/webSocketMockSource.js +375 -4
  61. package/lib/inProcessFactory.js +53 -53
  62. package/lib/inprocess.js +2 -19
  63. package/lib/outofprocess.js +53 -46
  64. package/lib/protocol/debug.js +209 -25
  65. package/lib/protocol/serializers.js +153 -134
  66. package/lib/protocol/validator.js +2714 -2714
  67. package/lib/protocol/validatorPrimitives.js +114 -73
  68. package/lib/remote/playwrightConnection.js +140 -157
  69. package/lib/remote/playwrightServer.js +99 -84
  70. package/lib/server/accessibility.js +44 -37
  71. package/lib/server/android/android.js +216 -209
  72. package/lib/server/android/backendAdb.js +89 -82
  73. package/lib/server/artifact.js +78 -55
  74. package/lib/server/bidi/bidiBrowser.js +221 -155
  75. package/lib/server/bidi/bidiChromium.js +106 -79
  76. package/lib/server/bidi/bidiConnection.js +66 -83
  77. package/lib/server/bidi/bidiExecutionContext.js +128 -113
  78. package/lib/server/bidi/bidiFirefox.js +76 -69
  79. package/lib/server/bidi/bidiInput.js +86 -97
  80. package/lib/server/bidi/bidiNetworkManager.js +137 -154
  81. package/lib/server/bidi/bidiOverCdp.js +57 -58
  82. package/lib/server/bidi/bidiPage.js +247 -219
  83. package/lib/server/bidi/bidiPdf.js +52 -86
  84. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  85. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  86. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  87. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  88. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  89. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  90. package/lib/server/browser.js +76 -84
  91. package/lib/server/browserContext.js +321 -346
  92. package/lib/server/browserType.js +169 -182
  93. package/lib/server/callLog.js +47 -44
  94. package/lib/server/chromium/chromium.js +212 -190
  95. package/lib/server/chromium/chromiumSwitches.js +86 -64
  96. package/lib/server/chromium/crAccessibility.js +157 -131
  97. package/lib/server/chromium/crBrowser.js +253 -273
  98. package/lib/server/chromium/crConnection.js +91 -116
  99. package/lib/server/chromium/crCoverage.js +113 -127
  100. package/lib/server/chromium/crDevTools.js +59 -51
  101. package/lib/server/chromium/crDragDrop.js +62 -79
  102. package/lib/server/chromium/crExecutionContext.js +88 -83
  103. package/lib/server/chromium/crInput.js +97 -95
  104. package/lib/server/chromium/crNetworkManager.js +288 -403
  105. package/lib/server/chromium/crPage.js +522 -608
  106. package/lib/server/chromium/crPdf.js +54 -86
  107. package/lib/server/chromium/crProtocolHelper.js +92 -80
  108. package/lib/server/chromium/crServiceWorker.js +82 -67
  109. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  110. package/lib/server/chromium/protocol.d.js +16 -0
  111. package/lib/server/chromium/videoRecorder.js +65 -99
  112. package/lib/server/clock.js +62 -50
  113. package/lib/server/codegen/csharp.js +185 -160
  114. package/lib/server/codegen/java.js +155 -128
  115. package/lib/server/codegen/javascript.js +163 -148
  116. package/lib/server/codegen/jsonl.js +32 -28
  117. package/lib/server/codegen/language.js +75 -52
  118. package/lib/server/codegen/languages.js +65 -27
  119. package/lib/server/codegen/python.js +140 -125
  120. package/lib/server/codegen/types.js +15 -4
  121. package/lib/server/console.js +28 -32
  122. package/lib/server/cookieStore.js +105 -86
  123. package/lib/server/debugController.js +97 -124
  124. package/lib/server/debugger.js +82 -78
  125. package/lib/server/deviceDescriptors.js +37 -24
  126. package/lib/server/deviceDescriptorsSource.json +50 -50
  127. package/lib/server/dialog.js +36 -35
  128. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  129. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  130. package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
  131. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  132. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  133. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  134. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
  135. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  136. package/lib/server/dispatchers/dispatcher.js +169 -220
  137. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  138. package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
  139. package/lib/server/dispatchers/frameDispatcher.js +99 -163
  140. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  141. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  142. package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
  143. package/lib/server/dispatchers/networkDispatchers.js +90 -107
  144. package/lib/server/dispatchers/pageDispatcher.js +128 -169
  145. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  146. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  147. package/lib/server/dispatchers/streamDispatcher.js +42 -45
  148. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  149. package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
  150. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
  151. package/lib/server/dom.js +413 -443
  152. package/lib/server/download.js +45 -35
  153. package/lib/server/electron/electron.js +156 -176
  154. package/lib/server/electron/loader.js +8 -36
  155. package/lib/server/errors.js +47 -46
  156. package/lib/server/fetch.js +289 -323
  157. package/lib/server/fileChooser.js +25 -24
  158. package/lib/server/fileUploadUtils.js +65 -59
  159. package/lib/server/firefox/ffAccessibility.js +153 -131
  160. package/lib/server/firefox/ffBrowser.js +213 -277
  161. package/lib/server/firefox/ffConnection.js +63 -84
  162. package/lib/server/firefox/ffExecutionContext.js +91 -73
  163. package/lib/server/firefox/ffInput.js +67 -69
  164. package/lib/server/firefox/ffNetworkManager.js +131 -110
  165. package/lib/server/firefox/ffPage.js +236 -273
  166. package/lib/server/firefox/firefox.js +76 -67
  167. package/lib/server/firefox/protocol.d.js +16 -0
  168. package/lib/server/formData.js +107 -35
  169. package/lib/server/frameSelectors.js +77 -111
  170. package/lib/server/frames.js +741 -891
  171. package/lib/server/har/harRecorder.js +85 -77
  172. package/lib/server/har/harTracer.js +287 -222
  173. package/lib/server/harBackend.js +80 -80
  174. package/lib/server/helper.js +56 -59
  175. package/lib/server/index.js +59 -99
  176. package/lib/server/input.js +134 -163
  177. package/lib/server/instrumentation.js +49 -44
  178. package/lib/server/javascript.js +143 -134
  179. package/lib/server/launchApp.js +92 -73
  180. package/lib/server/localUtils.js +130 -122
  181. package/lib/server/macEditingCommands.js +141 -137
  182. package/lib/server/network.js +262 -296
  183. package/lib/server/page.js +329 -426
  184. package/lib/server/pageBinding.js +88 -0
  185. package/lib/server/pipeTransport.js +49 -45
  186. package/lib/server/playwright.js +60 -67
  187. package/lib/server/progress.js +56 -51
  188. package/lib/server/protocolError.js +34 -31
  189. package/lib/server/recorder/chat.js +70 -86
  190. package/lib/server/recorder/contextRecorder.js +134 -138
  191. package/lib/server/recorder/recorderApp.js +127 -136
  192. package/lib/server/recorder/recorderCollection.js +56 -44
  193. package/lib/server/recorder/recorderFrontend.js +15 -4
  194. package/lib/server/recorder/recorderRunner.js +79 -103
  195. package/lib/server/recorder/recorderUtils.js +56 -45
  196. package/lib/server/recorder/throttledFile.js +42 -30
  197. package/lib/server/recorder.js +177 -186
  198. package/lib/server/registry/browserFetcher.js +106 -101
  199. package/lib/server/registry/dependencies.js +245 -196
  200. package/lib/server/registry/index.js +904 -792
  201. package/lib/server/registry/nativeDeps.js +1073 -464
  202. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  203. package/lib/server/screenshotter.js +166 -182
  204. package/lib/server/selectors.js +85 -46
  205. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  206. package/lib/server/socksInterceptor.js +62 -70
  207. package/lib/server/storageScript.js +94 -100
  208. package/lib/server/timeoutSettings.js +58 -43
  209. package/lib/server/trace/recorder/snapshotter.js +70 -89
  210. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  211. package/lib/server/trace/recorder/tracing.js +321 -333
  212. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  213. package/lib/server/trace/viewer/traceViewer.js +168 -146
  214. package/lib/server/transport.js +124 -133
  215. package/lib/server/types.js +26 -22
  216. package/lib/server/usKeyboardLayout.js +135 -545
  217. package/lib/server/utils/ascii.js +39 -26
  218. package/lib/server/utils/comparators.js +105 -103
  219. package/lib/server/utils/crypto.js +157 -112
  220. package/lib/server/utils/debug.js +37 -28
  221. package/lib/server/utils/debugLogger.js +69 -48
  222. package/lib/server/utils/env.js +52 -37
  223. package/lib/server/utils/eventsHelper.js +29 -28
  224. package/lib/server/utils/expectUtils.js +31 -26
  225. package/lib/server/utils/fileUtils.js +123 -136
  226. package/lib/server/utils/happyEyeballs.js +138 -123
  227. package/lib/server/utils/hostPlatform.js +84 -120
  228. package/lib/server/utils/httpServer.js +106 -121
  229. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  230. package/lib/server/utils/image_tools/compare.js +44 -43
  231. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  232. package/lib/server/utils/image_tools/stats.js +40 -40
  233. package/lib/server/utils/linuxUtils.js +50 -37
  234. package/lib/server/utils/network.js +143 -86
  235. package/lib/server/utils/nodePlatform.js +87 -79
  236. package/lib/server/utils/pipeTransport.js +44 -42
  237. package/lib/server/utils/processLauncher.js +111 -121
  238. package/lib/server/utils/profiler.js +52 -39
  239. package/lib/server/utils/socksProxy.js +280 -339
  240. package/lib/server/utils/spawnAsync.js +37 -41
  241. package/lib/server/utils/task.js +31 -38
  242. package/lib/server/utils/userAgent.js +73 -66
  243. package/lib/server/utils/wsServer.js +73 -69
  244. package/lib/server/utils/zipFile.js +36 -37
  245. package/lib/server/utils/zones.js +37 -34
  246. package/lib/server/webkit/protocol.d.js +16 -0
  247. package/lib/server/webkit/webkit.js +76 -63
  248. package/lib/server/webkit/wkAccessibility.js +161 -118
  249. package/lib/server/webkit/wkBrowser.js +159 -176
  250. package/lib/server/webkit/wkConnection.js +59 -83
  251. package/lib/server/webkit/wkExecutionContext.js +84 -70
  252. package/lib/server/webkit/wkInput.js +82 -80
  253. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  254. package/lib/server/webkit/wkPage.js +525 -619
  255. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  256. package/lib/server/webkit/wkWorkers.js +77 -77
  257. package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
  258. package/lib/utils/isomorphic/assert.js +28 -22
  259. package/lib/utils/isomorphic/builtins.js +90 -0
  260. package/lib/utils/isomorphic/colors.js +66 -59
  261. package/lib/utils/isomorphic/cssParser.js +121 -125
  262. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  263. package/lib/utils/isomorphic/headers.js +38 -37
  264. package/lib/utils/isomorphic/locatorGenerators.js +340 -357
  265. package/lib/utils/isomorphic/locatorParser.js +96 -105
  266. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  267. package/lib/utils/isomorphic/manualPromise.js +47 -39
  268. package/lib/utils/isomorphic/mimeType.js +448 -25
  269. package/lib/utils/isomorphic/multimap.js +35 -27
  270. package/lib/utils/isomorphic/rtti.js +35 -33
  271. package/lib/utils/isomorphic/selectorParser.js +183 -193
  272. package/lib/utils/isomorphic/semaphore.js +27 -24
  273. package/lib/utils/isomorphic/stackTrace.js +87 -98
  274. package/lib/utils/isomorphic/stringUtils.js +113 -106
  275. package/lib/utils/isomorphic/time.js +41 -22
  276. package/lib/utils/isomorphic/timeoutRunner.js +55 -54
  277. package/lib/utils/isomorphic/traceUtils.js +38 -41
  278. package/lib/utils/isomorphic/types.js +15 -4
  279. package/lib/utils/isomorphic/urlMatch.js +112 -67
  280. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  281. package/lib/utils.js +97 -443
  282. package/lib/utilsBundle.js +101 -52
  283. package/lib/vite/htmlReport/index.html +21 -15
  284. package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
  285. package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-DpJ-EmBQ.js → codeMirrorModule-dvXVzLxY.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
  291. package/lib/vite/traceViewer/index.html +3 -3
  292. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  293. package/lib/vite/traceViewer/uiMode.html +3 -3
  294. package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
  295. package/lib/zipBundle.js +32 -23
  296. package/package.json +1 -1
  297. package/types/protocol.d.ts +436 -17
  298. package/types/types.d.ts +35 -16
  299. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  300. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  301. package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +0 -259
  302. package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
@@ -1,161 +1,159 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var fetch_exports = {};
20
+ __export(fetch_exports, {
21
+ APIRequest: () => APIRequest,
22
+ APIRequestContext: () => APIRequestContext,
23
+ APIResponse: () => APIResponse
5
24
  });
6
- exports.APIResponse = exports.APIRequestContext = exports.APIRequest = void 0;
7
- var _browserContext = require("./browserContext");
8
- var _channelOwner = require("./channelOwner");
9
- var _errors = require("./errors");
10
- var _network = require("./network");
11
- var _tracing = require("./tracing");
12
- var _assert = require("../utils/isomorphic/assert");
13
- var _fileUtils = require("./fileUtils");
14
- var _headers = require("../utils/isomorphic/headers");
15
- var _rtti = require("../utils/isomorphic/rtti");
16
- /**
17
- * Copyright (c) Microsoft Corporation.
18
- *
19
- * Licensed under the Apache License, Version 2.0 (the "License");
20
- * you may not use this file except in compliance with the License.
21
- * You may obtain a copy of the License at
22
- *
23
- * http://www.apache.org/licenses/LICENSE-2.0
24
- *
25
- * Unless required by applicable law or agreed to in writing, software
26
- * distributed under the License is distributed on an "AS IS" BASIS,
27
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
- * See the License for the specific language governing permissions and
29
- * limitations under the License.
30
- */
31
-
25
+ module.exports = __toCommonJS(fetch_exports);
26
+ var import_browserContext = require("./browserContext");
27
+ var import_channelOwner = require("./channelOwner");
28
+ var import_errors = require("./errors");
29
+ var import_network = require("./network");
30
+ var import_tracing = require("./tracing");
31
+ var import_assert = require("../utils/isomorphic/assert");
32
+ var import_fileUtils = require("./fileUtils");
33
+ var import_headers = require("../utils/isomorphic/headers");
34
+ var import_rtti = require("../utils/isomorphic/rtti");
32
35
  class APIRequest {
33
36
  constructor(playwright) {
34
- this._playwright = void 0;
35
- this._contexts = new Set();
37
+ this._contexts = /* @__PURE__ */ new Set();
36
38
  this._playwright = playwright;
37
39
  }
38
40
  async newContext(options = {}) {
39
- var _this$_playwright$_de, _this$_playwright$_de2;
40
41
  options = {
41
42
  ...this._playwright._defaultContextOptions,
42
43
  timeout: this._playwright._defaultContextTimeout,
43
44
  ...options
44
45
  };
45
- const storageState = typeof options.storageState === 'string' ? JSON.parse(await this._playwright._platform.fs().promises.readFile(options.storageState, 'utf8')) : options.storageState;
46
+ const storageState = typeof options.storageState === "string" ? JSON.parse(await this._playwright._platform.fs().promises.readFile(options.storageState, "utf8")) : options.storageState;
46
47
  const context = APIRequestContext.from((await this._playwright._channel.newRequest({
47
48
  ...options,
48
- extraHTTPHeaders: options.extraHTTPHeaders ? (0, _headers.headersObjectToArray)(options.extraHTTPHeaders) : undefined,
49
+ extraHTTPHeaders: options.extraHTTPHeaders ? (0, import_headers.headersObjectToArray)(options.extraHTTPHeaders) : void 0,
49
50
  storageState,
50
- tracesDir: (_this$_playwright$_de = this._playwright._defaultLaunchOptions) === null || _this$_playwright$_de === void 0 ? void 0 : _this$_playwright$_de.tracesDir,
51
+ tracesDir: this._playwright._defaultLaunchOptions?.tracesDir,
51
52
  // We do not expose tracesDir in the API, so do not allow options to accidentally override it.
52
- clientCertificates: await (0, _browserContext.toClientCertificatesProtocol)(this._playwright._platform, options.clientCertificates)
53
+ clientCertificates: await (0, import_browserContext.toClientCertificatesProtocol)(this._playwright._platform, options.clientCertificates)
53
54
  })).request);
54
55
  this._contexts.add(context);
55
56
  context._request = this;
56
- context._tracing._tracesDir = (_this$_playwright$_de2 = this._playwright._defaultLaunchOptions) === null || _this$_playwright$_de2 === void 0 ? void 0 : _this$_playwright$_de2.tracesDir;
57
+ context._tracing._tracesDir = this._playwright._defaultLaunchOptions?.tracesDir;
57
58
  await context._instrumentation.runAfterCreateRequestContext(context);
58
59
  return context;
59
60
  }
60
61
  }
61
- exports.APIRequest = APIRequest;
62
- class APIRequestContext extends _channelOwner.ChannelOwner {
62
+ class APIRequestContext extends import_channelOwner.ChannelOwner {
63
63
  static from(channel) {
64
64
  return channel._object;
65
65
  }
66
66
  constructor(parent, type, guid, initializer) {
67
67
  super(parent, type, guid, initializer);
68
- this._request = void 0;
69
- this._tracing = void 0;
70
- this._closeReason = void 0;
71
- this._tracing = _tracing.Tracing.from(initializer.tracing);
68
+ this._tracing = import_tracing.Tracing.from(initializer.tracing);
72
69
  }
73
70
  async [Symbol.asyncDispose]() {
74
71
  await this.dispose();
75
72
  }
76
73
  async dispose(options = {}) {
77
- var _this$_request;
78
74
  this._closeReason = options.reason;
79
75
  await this._instrumentation.runBeforeCloseRequestContext(this);
80
76
  try {
81
77
  await this._channel.dispose(options);
82
78
  } catch (e) {
83
- if ((0, _errors.isTargetClosedError)(e)) return;
79
+ if ((0, import_errors.isTargetClosedError)(e))
80
+ return;
84
81
  throw e;
85
82
  }
86
83
  this._tracing._resetStackCounter();
87
- (_this$_request = this._request) === null || _this$_request === void 0 || _this$_request._contexts.delete(this);
84
+ this._request?._contexts.delete(this);
88
85
  }
89
86
  async delete(url, options) {
90
87
  return await this.fetch(url, {
91
88
  ...options,
92
- method: 'DELETE'
89
+ method: "DELETE"
93
90
  });
94
91
  }
95
92
  async head(url, options) {
96
93
  return await this.fetch(url, {
97
94
  ...options,
98
- method: 'HEAD'
95
+ method: "HEAD"
99
96
  });
100
97
  }
101
98
  async get(url, options) {
102
99
  return await this.fetch(url, {
103
100
  ...options,
104
- method: 'GET'
101
+ method: "GET"
105
102
  });
106
103
  }
107
104
  async patch(url, options) {
108
105
  return await this.fetch(url, {
109
106
  ...options,
110
- method: 'PATCH'
107
+ method: "PATCH"
111
108
  });
112
109
  }
113
110
  async post(url, options) {
114
111
  return await this.fetch(url, {
115
112
  ...options,
116
- method: 'POST'
113
+ method: "POST"
117
114
  });
118
115
  }
119
116
  async put(url, options) {
120
117
  return await this.fetch(url, {
121
118
  ...options,
122
- method: 'PUT'
119
+ method: "PUT"
123
120
  });
124
121
  }
125
122
  async fetch(urlOrRequest, options = {}) {
126
- const url = (0, _rtti.isString)(urlOrRequest) ? urlOrRequest : undefined;
127
- const request = (0, _rtti.isString)(urlOrRequest) ? undefined : urlOrRequest;
128
- return await this._innerFetch({
129
- url,
130
- request,
131
- ...options
132
- });
123
+ const url = (0, import_rtti.isString)(urlOrRequest) ? urlOrRequest : void 0;
124
+ const request = (0, import_rtti.isString)(urlOrRequest) ? void 0 : urlOrRequest;
125
+ return await this._innerFetch({ url, request, ...options });
133
126
  }
134
127
  async _innerFetch(options = {}) {
135
128
  return await this._wrapApiCall(async () => {
136
- var _options$request, _options$request2, _options$request3;
137
- if (this._closeReason) throw new _errors.TargetClosedError(this._closeReason);
138
- (0, _assert.assert)(options.request || typeof options.url === 'string', 'First argument must be either URL string or Request');
139
- (0, _assert.assert)((options.data === undefined ? 0 : 1) + (options.form === undefined ? 0 : 1) + (options.multipart === undefined ? 0 : 1) <= 1, `Only one of 'data', 'form' or 'multipart' can be specified`);
140
- (0, _assert.assert)(options.maxRedirects === undefined || options.maxRedirects >= 0, `'maxRedirects' must be greater than or equal to '0'`);
141
- (0, _assert.assert)(options.maxRetries === undefined || options.maxRetries >= 0, `'maxRetries' must be greater than or equal to '0'`);
142
- const url = options.url !== undefined ? options.url : options.request.url();
143
- const method = options.method || ((_options$request = options.request) === null || _options$request === void 0 ? void 0 : _options$request.method());
144
- let encodedParams = undefined;
145
- if (typeof options.params === 'string') encodedParams = options.params;else if (options.params instanceof URLSearchParams) encodedParams = options.params.toString();
146
- // Cannot call allHeaders() here as the request may be paused inside route handler.
147
- const headersObj = options.headers || ((_options$request2 = options.request) === null || _options$request2 === void 0 ? void 0 : _options$request2.headers());
148
- const headers = headersObj ? (0, _headers.headersObjectToArray)(headersObj) : undefined;
129
+ if (this._closeReason)
130
+ throw new import_errors.TargetClosedError(this._closeReason);
131
+ (0, import_assert.assert)(options.request || typeof options.url === "string", "First argument must be either URL string or Request");
132
+ (0, import_assert.assert)((options.data === void 0 ? 0 : 1) + (options.form === void 0 ? 0 : 1) + (options.multipart === void 0 ? 0 : 1) <= 1, `Only one of 'data', 'form' or 'multipart' can be specified`);
133
+ (0, import_assert.assert)(options.maxRedirects === void 0 || options.maxRedirects >= 0, `'maxRedirects' must be greater than or equal to '0'`);
134
+ (0, import_assert.assert)(options.maxRetries === void 0 || options.maxRetries >= 0, `'maxRetries' must be greater than or equal to '0'`);
135
+ const url = options.url !== void 0 ? options.url : options.request.url();
136
+ const method = options.method || options.request?.method();
137
+ let encodedParams = void 0;
138
+ if (typeof options.params === "string")
139
+ encodedParams = options.params;
140
+ else if (options.params instanceof URLSearchParams)
141
+ encodedParams = options.params.toString();
142
+ const headersObj = options.headers || options.request?.headers();
143
+ const headers = headersObj ? (0, import_headers.headersObjectToArray)(headersObj) : void 0;
149
144
  let jsonData;
150
145
  let formData;
151
146
  let multipartData;
152
147
  let postDataBuffer;
153
- if (options.data !== undefined) {
154
- if ((0, _rtti.isString)(options.data)) {
155
- if (isJsonContentType(headers)) jsonData = isJsonParsable(options.data) ? options.data : JSON.stringify(options.data);else postDataBuffer = Buffer.from(options.data, 'utf8');
148
+ if (options.data !== void 0) {
149
+ if ((0, import_rtti.isString)(options.data)) {
150
+ if (isJsonContentType(headers))
151
+ jsonData = isJsonParsable(options.data) ? options.data : JSON.stringify(options.data);
152
+ else
153
+ postDataBuffer = Buffer.from(options.data, "utf8");
156
154
  } else if (Buffer.isBuffer(options.data)) {
157
155
  postDataBuffer = options.data;
158
- } else if (typeof options.data === 'object' || typeof options.data === 'number' || typeof options.data === 'boolean') {
156
+ } else if (typeof options.data === "object" || typeof options.data === "number" || typeof options.data === "boolean") {
159
157
  jsonData = JSON.stringify(options.data);
160
158
  } else {
161
159
  throw new Error(`Unexpected 'data' type`);
@@ -164,11 +162,9 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
164
162
  if (globalThis.FormData && options.form instanceof FormData) {
165
163
  formData = [];
166
164
  for (const [name, value] of options.form.entries()) {
167
- if (typeof value !== 'string') throw new Error(`Expected string for options.form["${name}"], found File. Please use options.multipart instead.`);
168
- formData.push({
169
- name,
170
- value
171
- });
165
+ if (typeof value !== "string")
166
+ throw new Error(`Expected string for options.form["${name}"], found File. Please use options.multipart instead.`);
167
+ formData.push({ name, value });
172
168
  }
173
169
  } else {
174
170
  formData = objectToArray(options.form);
@@ -178,35 +174,30 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
178
174
  if (globalThis.FormData && options.multipart instanceof FormData) {
179
175
  const form = options.multipart;
180
176
  for (const [name, value] of form.entries()) {
181
- if ((0, _rtti.isString)(value)) {
182
- multipartData.push({
183
- name,
184
- value
185
- });
177
+ if ((0, import_rtti.isString)(value)) {
178
+ multipartData.push({ name, value });
186
179
  } else {
187
180
  const file = {
188
181
  name: value.name,
189
182
  mimeType: value.type,
190
183
  buffer: Buffer.from(await value.arrayBuffer())
191
184
  };
192
- multipartData.push({
193
- name,
194
- file
195
- });
185
+ multipartData.push({ name, file });
196
186
  }
197
187
  }
198
188
  } else {
199
- // Convert file-like values to ServerFilePayload structs.
200
- for (const [name, value] of Object.entries(options.multipart)) multipartData.push(await toFormField(this._platform, name, value));
189
+ for (const [name, value] of Object.entries(options.multipart))
190
+ multipartData.push(await toFormField(this._platform, name, value));
201
191
  }
202
192
  }
203
- if (postDataBuffer === undefined && jsonData === undefined && formData === undefined && multipartData === undefined) postDataBuffer = ((_options$request3 = options.request) === null || _options$request3 === void 0 ? void 0 : _options$request3.postDataBuffer()) || undefined;
193
+ if (postDataBuffer === void 0 && jsonData === void 0 && formData === void 0 && multipartData === void 0)
194
+ postDataBuffer = options.request?.postDataBuffer() || void 0;
204
195
  const fixtures = {
205
196
  __testHookLookup: options.__testHookLookup
206
197
  };
207
198
  const result = await this._channel.fetch({
208
199
  url,
209
- params: typeof options.params === 'object' ? objectToArray(options.params) : undefined,
200
+ params: typeof options.params === "object" ? objectToArray(options.params) : void 0,
210
201
  encodedParams,
211
202
  method,
212
203
  headers,
@@ -225,56 +216,47 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
225
216
  });
226
217
  }
227
218
  async storageState(options = {}) {
228
- const state = await this._channel.storageState({
229
- indexedDB: options.indexedDB
230
- });
219
+ const state = await this._channel.storageState({ indexedDB: options.indexedDB });
231
220
  if (options.path) {
232
- await (0, _fileUtils.mkdirIfNeeded)(this._platform, options.path);
233
- await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state, undefined, 2), 'utf8');
221
+ await (0, import_fileUtils.mkdirIfNeeded)(this._platform, options.path);
222
+ await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state, void 0, 2), "utf8");
234
223
  }
235
224
  return state;
236
225
  }
237
226
  }
238
- exports.APIRequestContext = APIRequestContext;
239
227
  async function toFormField(platform, name, value) {
240
228
  const typeOfValue = typeof value;
241
229
  if (isFilePayload(value)) {
242
230
  const payload = value;
243
- if (!Buffer.isBuffer(payload.buffer)) throw new Error(`Unexpected buffer type of 'data.${name}'`);
244
- return {
245
- name,
246
- file: filePayloadToJson(payload)
247
- };
248
- } else if (typeOfValue === 'string' || typeOfValue === 'number' || typeOfValue === 'boolean') {
249
- return {
250
- name,
251
- value: String(value)
252
- };
231
+ if (!Buffer.isBuffer(payload.buffer))
232
+ throw new Error(`Unexpected buffer type of 'data.${name}'`);
233
+ return { name, file: filePayloadToJson(payload) };
234
+ } else if (typeOfValue === "string" || typeOfValue === "number" || typeOfValue === "boolean") {
235
+ return { name, value: String(value) };
253
236
  } else {
254
- return {
255
- name,
256
- file: await readStreamToJson(platform, value)
257
- };
237
+ return { name, file: await readStreamToJson(platform, value) };
258
238
  }
259
239
  }
260
240
  function isJsonParsable(value) {
261
- if (typeof value !== 'string') return false;
241
+ if (typeof value !== "string")
242
+ return false;
262
243
  try {
263
244
  JSON.parse(value);
264
245
  return true;
265
246
  } catch (e) {
266
- if (e instanceof SyntaxError) return false;else throw e;
247
+ if (e instanceof SyntaxError)
248
+ return false;
249
+ else
250
+ throw e;
267
251
  }
268
252
  }
269
253
  class APIResponse {
270
254
  constructor(context, initializer) {
271
- this._initializer = void 0;
272
- this._headers = void 0;
273
- this._request = void 0;
274
255
  this._request = context;
275
256
  this._initializer = initializer;
276
- this._headers = new _network.RawHeaders(this._initializer.headers);
277
- if (context._platform.inspectCustom) this[context._platform.inspectCustom] = () => this._inspect();
257
+ this._headers = new import_network.RawHeaders(this._initializer.headers);
258
+ if (context._platform.inspectCustom)
259
+ this[context._platform.inspectCustom] = () => this._inspect();
278
260
  }
279
261
  ok() {
280
262
  return this._initializer.status >= 200 && this._initializer.status <= 299;
@@ -297,20 +279,20 @@ class APIResponse {
297
279
  async body() {
298
280
  return await this._request._wrapApiCall(async () => {
299
281
  try {
300
- const result = await this._request._channel.fetchResponseBody({
301
- fetchUid: this._fetchUid()
302
- });
303
- if (result.binary === undefined) throw new Error('Response has been disposed');
282
+ const result = await this._request._channel.fetchResponseBody({ fetchUid: this._fetchUid() });
283
+ if (result.binary === void 0)
284
+ throw new Error("Response has been disposed");
304
285
  return result.binary;
305
286
  } catch (e) {
306
- if ((0, _errors.isTargetClosedError)(e)) throw new Error('Response has been disposed');
287
+ if ((0, import_errors.isTargetClosedError)(e))
288
+ throw new Error("Response has been disposed");
307
289
  throw e;
308
290
  }
309
291
  }, true);
310
292
  }
311
293
  async text() {
312
294
  const content = await this.body();
313
- return content.toString('utf8');
295
+ return content.toString("utf8");
314
296
  }
315
297
  async json() {
316
298
  const content = await this.text();
@@ -320,30 +302,21 @@ class APIResponse {
320
302
  await this.dispose();
321
303
  }
322
304
  async dispose() {
323
- await this._request._channel.disposeAPIResponse({
324
- fetchUid: this._fetchUid()
325
- });
305
+ await this._request._channel.disposeAPIResponse({ fetchUid: this._fetchUid() });
326
306
  }
327
307
  _inspect() {
328
- const headers = this.headersArray().map(({
329
- name,
330
- value
331
- }) => ` ${name}: ${value}`);
332
- return `APIResponse: ${this.status()} ${this.statusText()}\n${headers.join('\n')}`;
308
+ const headers = this.headersArray().map(({ name, value }) => ` ${name}: ${value}`);
309
+ return `APIResponse: ${this.status()} ${this.statusText()}
310
+ ${headers.join("\n")}`;
333
311
  }
334
312
  _fetchUid() {
335
313
  return this._initializer.fetchUid;
336
314
  }
337
315
  async _fetchLog() {
338
- const {
339
- log
340
- } = await this._request._channel.fetchLog({
341
- fetchUid: this._fetchUid()
342
- });
316
+ const { log } = await this._request._channel.fetchLog({ fetchUid: this._fetchUid() });
343
317
  return log;
344
318
  }
345
319
  }
346
- exports.APIResponse = APIResponse;
347
320
  function filePayloadToJson(payload) {
348
321
  return {
349
322
  name: payload.name,
@@ -354,37 +327,41 @@ function filePayloadToJson(payload) {
354
327
  async function readStreamToJson(platform, stream) {
355
328
  const buffer = await new Promise((resolve, reject) => {
356
329
  const chunks = [];
357
- stream.on('data', chunk => chunks.push(chunk));
358
- stream.on('end', () => resolve(Buffer.concat(chunks)));
359
- stream.on('error', err => reject(err));
330
+ stream.on("data", (chunk) => chunks.push(chunk));
331
+ stream.on("end", () => resolve(Buffer.concat(chunks)));
332
+ stream.on("error", (err) => reject(err));
360
333
  });
361
- const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString('utf8') : stream.path;
334
+ const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString("utf8") : stream.path;
362
335
  return {
363
336
  name: platform.path().basename(streamPath),
364
337
  buffer
365
338
  };
366
339
  }
367
340
  function isJsonContentType(headers) {
368
- if (!headers) return false;
369
- for (const {
370
- name,
371
- value
372
- } of headers) {
373
- if (name.toLocaleLowerCase() === 'content-type') return value === 'application/json';
341
+ if (!headers)
342
+ return false;
343
+ for (const { name, value } of headers) {
344
+ if (name.toLocaleLowerCase() === "content-type")
345
+ return value === "application/json";
374
346
  }
375
347
  return false;
376
348
  }
377
349
  function objectToArray(map) {
378
- if (!map) return undefined;
350
+ if (!map)
351
+ return void 0;
379
352
  const result = [];
380
353
  for (const [name, value] of Object.entries(map)) {
381
- if (value !== undefined) result.push({
382
- name,
383
- value: String(value)
384
- });
354
+ if (value !== void 0)
355
+ result.push({ name, value: String(value) });
385
356
  }
386
357
  return result;
387
358
  }
388
359
  function isFilePayload(value) {
389
- return typeof value === 'object' && value['name'] && value['mimeType'] && value['buffer'];
390
- }
360
+ return typeof value === "object" && value["name"] && value["mimeType"] && value["buffer"];
361
+ }
362
+ // Annotate the CommonJS export names for ESM import in node:
363
+ 0 && (module.exports = {
364
+ APIRequest,
365
+ APIRequestContext,
366
+ APIResponse
367
+ });
@@ -1,30 +1,28 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var fileChooser_exports = {};
20
+ __export(fileChooser_exports, {
21
+ FileChooser: () => FileChooser
5
22
  });
6
- exports.FileChooser = void 0;
7
- /**
8
- * Copyright (c) Microsoft Corporation.
9
- *
10
- * Licensed under the Apache License, Version 2.0 (the "License");
11
- * you may not use this file except in compliance with the License.
12
- * You may obtain a copy of the License at
13
- *
14
- * http://www.apache.org/licenses/LICENSE-2.0
15
- *
16
- * Unless required by applicable law or agreed to in writing, software
17
- * distributed under the License is distributed on an "AS IS" BASIS,
18
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- * See the License for the specific language governing permissions and
20
- * limitations under the License.
21
- */
22
-
23
+ module.exports = __toCommonJS(fileChooser_exports);
23
24
  class FileChooser {
24
25
  constructor(page, elementHandle, isMultiple) {
25
- this._page = void 0;
26
- this._elementHandle = void 0;
27
- this._isMultiple = void 0;
28
26
  this._page = page;
29
27
  this._elementHandle = elementHandle;
30
28
  this._isMultiple = isMultiple;
@@ -42,4 +40,7 @@ class FileChooser {
42
40
  return await this._elementHandle.setInputFiles(files, options);
43
41
  }
44
42
  }
45
- exports.FileChooser = FileChooser;
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ FileChooser
46
+ });
@@ -1,31 +1,34 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var fileUtils_exports = {};
20
+ __export(fileUtils_exports, {
21
+ fileUploadSizeLimit: () => fileUploadSizeLimit,
22
+ mkdirIfNeeded: () => mkdirIfNeeded
5
23
  });
6
- exports.fileUploadSizeLimit = void 0;
7
- exports.mkdirIfNeeded = mkdirIfNeeded;
8
- /**
9
- * Copyright (c) Microsoft Corporation.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
22
- */
23
-
24
- // Keep in sync with the server.
25
- const fileUploadSizeLimit = exports.fileUploadSizeLimit = 50 * 1024 * 1024;
24
+ module.exports = __toCommonJS(fileUtils_exports);
25
+ const fileUploadSizeLimit = 50 * 1024 * 1024;
26
26
  async function mkdirIfNeeded(platform, filePath) {
27
- // This will harmlessly throw on windows if the dirname is the root directory.
28
- await platform.fs().promises.mkdir(platform.path().dirname(filePath), {
29
- recursive: true
30
- }).catch(() => {});
31
- }
27
+ await platform.fs().promises.mkdir(platform.path().dirname(filePath), { recursive: true }).catch(() => {
28
+ });
29
+ }
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ fileUploadSizeLimit,
33
+ mkdirIfNeeded
34
+ });