brave-real-playwright-core 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +55 -0
  3. package/advanced-stealth.js +629 -0
  4. package/cli.js +18 -0
  5. package/index.d.ts +17 -0
  6. package/index.js +32 -0
  7. package/lib/androidServerImpl.js +65 -0
  8. package/lib/browserServerImpl.js +123 -0
  9. package/lib/cli/driver.js +97 -0
  10. package/lib/cli/program.js +633 -0
  11. package/lib/cli/programWithTestStub.js +74 -0
  12. package/lib/client/accessibility.js +49 -0
  13. package/lib/client/android.js +361 -0
  14. package/lib/client/api.js +137 -0
  15. package/lib/client/artifact.js +79 -0
  16. package/lib/client/browser.js +173 -0
  17. package/lib/client/browserContext.js +535 -0
  18. package/lib/client/browserType.js +184 -0
  19. package/lib/client/cdpSession.js +51 -0
  20. package/lib/client/channelOwner.js +201 -0
  21. package/lib/client/clientHelper.js +64 -0
  22. package/lib/client/clientInstrumentation.js +55 -0
  23. package/lib/client/clientStackTrace.js +69 -0
  24. package/lib/client/clock.js +68 -0
  25. package/lib/client/connection.js +314 -0
  26. package/lib/client/consoleMessage.js +55 -0
  27. package/lib/client/coverage.js +44 -0
  28. package/lib/client/dialog.js +56 -0
  29. package/lib/client/download.js +62 -0
  30. package/lib/client/electron.js +138 -0
  31. package/lib/client/elementHandle.js +281 -0
  32. package/lib/client/errors.js +77 -0
  33. package/lib/client/eventEmitter.js +314 -0
  34. package/lib/client/events.js +98 -0
  35. package/lib/client/fetch.js +369 -0
  36. package/lib/client/fileChooser.js +46 -0
  37. package/lib/client/fileUtils.js +34 -0
  38. package/lib/client/frame.js +408 -0
  39. package/lib/client/harRouter.js +87 -0
  40. package/lib/client/input.js +84 -0
  41. package/lib/client/jsHandle.js +109 -0
  42. package/lib/client/jsonPipe.js +39 -0
  43. package/lib/client/localUtils.js +60 -0
  44. package/lib/client/locator.js +366 -0
  45. package/lib/client/network.js +744 -0
  46. package/lib/client/page.js +709 -0
  47. package/lib/client/platform.js +74 -0
  48. package/lib/client/playwright.js +75 -0
  49. package/lib/client/selectors.js +55 -0
  50. package/lib/client/stream.js +39 -0
  51. package/lib/client/timeoutSettings.js +79 -0
  52. package/lib/client/tracing.js +117 -0
  53. package/lib/client/types.js +28 -0
  54. package/lib/client/video.js +59 -0
  55. package/lib/client/waiter.js +142 -0
  56. package/lib/client/webError.js +39 -0
  57. package/lib/client/webSocket.js +93 -0
  58. package/lib/client/worker.js +63 -0
  59. package/lib/client/writableStream.js +39 -0
  60. package/lib/generated/bindingsControllerSource.js +28 -0
  61. package/lib/generated/clockSource.js +28 -0
  62. package/lib/generated/injectedScriptSource.js +28 -0
  63. package/lib/generated/pollingRecorderSource.js +28 -0
  64. package/lib/generated/storageScriptSource.js +28 -0
  65. package/lib/generated/utilityScriptSource.js +28 -0
  66. package/lib/generated/webSocketMockSource.js +336 -0
  67. package/lib/inProcessFactory.js +62 -0
  68. package/lib/inprocess.js +3 -0
  69. package/lib/outofprocess.js +76 -0
  70. package/lib/protocol/serializers.js +192 -0
  71. package/lib/protocol/validator.js +2901 -0
  72. package/lib/protocol/validatorPrimitives.js +193 -0
  73. package/lib/remote/playwrightConnection.js +129 -0
  74. package/lib/remote/playwrightServer.js +337 -0
  75. package/lib/server/accessibility.js +69 -0
  76. package/lib/server/android/android.js +465 -0
  77. package/lib/server/android/backendAdb.js +177 -0
  78. package/lib/server/artifact.js +127 -0
  79. package/lib/server/bidi/bidiBrowser.js +446 -0
  80. package/lib/server/bidi/bidiChromium.js +153 -0
  81. package/lib/server/bidi/bidiConnection.js +187 -0
  82. package/lib/server/bidi/bidiExecutionContext.js +221 -0
  83. package/lib/server/bidi/bidiFirefox.js +115 -0
  84. package/lib/server/bidi/bidiInput.js +146 -0
  85. package/lib/server/bidi/bidiNetworkManager.js +317 -0
  86. package/lib/server/bidi/bidiOverCdp.js +102 -0
  87. package/lib/server/bidi/bidiPage.js +486 -0
  88. package/lib/server/bidi/bidiPdf.js +106 -0
  89. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  90. package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
  91. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  92. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  93. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  94. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  95. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  96. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  97. package/lib/server/browser.js +149 -0
  98. package/lib/server/browserContext.js +696 -0
  99. package/lib/server/browserType.js +328 -0
  100. package/lib/server/callLog.js +82 -0
  101. package/lib/server/chromium/appIcon.png +0 -0
  102. package/lib/server/chromium/chromium.js +391 -0
  103. package/lib/server/chromium/chromiumSwitches.js +93 -0
  104. package/lib/server/chromium/crAccessibility.js +263 -0
  105. package/lib/server/chromium/crBrowser.js +532 -0
  106. package/lib/server/chromium/crConnection.js +323 -0
  107. package/lib/server/chromium/crCoverage.js +235 -0
  108. package/lib/server/chromium/crDevTools.js +117 -0
  109. package/lib/server/chromium/crDragDrop.js +131 -0
  110. package/lib/server/chromium/crExecutionContext.js +160 -0
  111. package/lib/server/chromium/crInput.js +187 -0
  112. package/lib/server/chromium/crNetworkManager.js +666 -0
  113. package/lib/server/chromium/crPage.js +1078 -0
  114. package/lib/server/chromium/crPdf.js +121 -0
  115. package/lib/server/chromium/crProtocolHelper.js +145 -0
  116. package/lib/server/chromium/crServiceWorker.js +125 -0
  117. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  118. package/lib/server/chromium/protocol.d.js +16 -0
  119. package/lib/server/chromium/videoRecorder.js +113 -0
  120. package/lib/server/clock.js +149 -0
  121. package/lib/server/codegen/csharp.js +334 -0
  122. package/lib/server/codegen/java.js +270 -0
  123. package/lib/server/codegen/javascript.js +268 -0
  124. package/lib/server/codegen/jsonl.js +52 -0
  125. package/lib/server/codegen/language.js +132 -0
  126. package/lib/server/codegen/languages.js +68 -0
  127. package/lib/server/codegen/python.js +277 -0
  128. package/lib/server/codegen/types.js +16 -0
  129. package/lib/server/console.js +53 -0
  130. package/lib/server/cookieStore.js +206 -0
  131. package/lib/server/debugController.js +219 -0
  132. package/lib/server/debugger.js +119 -0
  133. package/lib/server/deviceDescriptors.js +39 -0
  134. package/lib/server/deviceDescriptorsSource.json +1779 -0
  135. package/lib/server/dialog.js +116 -0
  136. package/lib/server/dispatchers/androidDispatcher.js +308 -0
  137. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  138. package/lib/server/dispatchers/browserContextDispatcher.js +378 -0
  139. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  140. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  141. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  142. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  143. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  144. package/lib/server/dispatchers/dispatcher.js +371 -0
  145. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  146. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  147. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  148. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  149. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  150. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  151. package/lib/server/dispatchers/networkDispatchers.js +210 -0
  152. package/lib/server/dispatchers/pageDispatcher.js +377 -0
  153. package/lib/server/dispatchers/playwrightDispatcher.js +112 -0
  154. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  155. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  156. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  157. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  158. package/lib/server/dom.js +801 -0
  159. package/lib/server/download.js +70 -0
  160. package/lib/server/electron/electron.js +270 -0
  161. package/lib/server/electron/loader.js +29 -0
  162. package/lib/server/errors.js +69 -0
  163. package/lib/server/fetch.js +621 -0
  164. package/lib/server/fileChooser.js +43 -0
  165. package/lib/server/fileUploadUtils.js +84 -0
  166. package/lib/server/firefox/ffAccessibility.js +238 -0
  167. package/lib/server/firefox/ffBrowser.js +428 -0
  168. package/lib/server/firefox/ffConnection.js +147 -0
  169. package/lib/server/firefox/ffExecutionContext.js +150 -0
  170. package/lib/server/firefox/ffInput.js +159 -0
  171. package/lib/server/firefox/ffNetworkManager.js +256 -0
  172. package/lib/server/firefox/ffPage.js +504 -0
  173. package/lib/server/firefox/firefox.js +105 -0
  174. package/lib/server/firefox/protocol.d.js +16 -0
  175. package/lib/server/formData.js +147 -0
  176. package/lib/server/frameSelectors.js +156 -0
  177. package/lib/server/frames.js +1460 -0
  178. package/lib/server/har/harRecorder.js +147 -0
  179. package/lib/server/har/harTracer.js +608 -0
  180. package/lib/server/harBackend.js +157 -0
  181. package/lib/server/helper.js +96 -0
  182. package/lib/server/index.js +58 -0
  183. package/lib/server/input.js +273 -0
  184. package/lib/server/instrumentation.js +69 -0
  185. package/lib/server/javascript.js +291 -0
  186. package/lib/server/launchApp.js +128 -0
  187. package/lib/server/localUtils.js +218 -0
  188. package/lib/server/macEditingCommands.js +143 -0
  189. package/lib/server/network.js +617 -0
  190. package/lib/server/page.js +862 -0
  191. package/lib/server/pipeTransport.js +89 -0
  192. package/lib/server/playwright.js +71 -0
  193. package/lib/server/progress.js +112 -0
  194. package/lib/server/protocolError.js +52 -0
  195. package/lib/server/recorder/chat.js +161 -0
  196. package/lib/server/recorder/recorderApp.js +387 -0
  197. package/lib/server/recorder/recorderRunner.js +134 -0
  198. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  199. package/lib/server/recorder/recorderUtils.js +157 -0
  200. package/lib/server/recorder/throttledFile.js +57 -0
  201. package/lib/server/recorder.js +498 -0
  202. package/lib/server/registry/browserFetcher.js +175 -0
  203. package/lib/server/registry/dependencies.js +371 -0
  204. package/lib/server/registry/index.js +1306 -0
  205. package/lib/server/registry/nativeDeps.js +1280 -0
  206. package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
  207. package/lib/server/screenshotter.js +333 -0
  208. package/lib/server/selectors.js +112 -0
  209. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  210. package/lib/server/socksInterceptor.js +95 -0
  211. package/lib/server/trace/recorder/snapshotter.js +136 -0
  212. package/lib/server/trace/recorder/snapshotterInjected.js +539 -0
  213. package/lib/server/trace/recorder/tracing.js +602 -0
  214. package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
  215. package/lib/server/trace/viewer/traceViewer.js +240 -0
  216. package/lib/server/transport.js +181 -0
  217. package/lib/server/types.js +28 -0
  218. package/lib/server/usKeyboardLayout.js +145 -0
  219. package/lib/server/utils/ascii.js +44 -0
  220. package/lib/server/utils/comparators.js +161 -0
  221. package/lib/server/utils/crypto.js +216 -0
  222. package/lib/server/utils/debug.js +42 -0
  223. package/lib/server/utils/debugLogger.js +122 -0
  224. package/lib/server/utils/env.js +68 -0
  225. package/lib/server/utils/eventsHelper.js +39 -0
  226. package/lib/server/utils/expectUtils.js +38 -0
  227. package/lib/server/utils/fileUtils.js +191 -0
  228. package/lib/server/utils/happyEyeballs.js +207 -0
  229. package/lib/server/utils/hostPlatform.js +111 -0
  230. package/lib/server/utils/httpServer.js +218 -0
  231. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  232. package/lib/server/utils/image_tools/compare.js +109 -0
  233. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  234. package/lib/server/utils/image_tools/stats.js +102 -0
  235. package/lib/server/utils/linuxUtils.js +71 -0
  236. package/lib/server/utils/network.js +227 -0
  237. package/lib/server/utils/nodePlatform.js +148 -0
  238. package/lib/server/utils/pipeTransport.js +84 -0
  239. package/lib/server/utils/processLauncher.js +241 -0
  240. package/lib/server/utils/profiler.js +65 -0
  241. package/lib/server/utils/socksProxy.js +511 -0
  242. package/lib/server/utils/spawnAsync.js +41 -0
  243. package/lib/server/utils/task.js +51 -0
  244. package/lib/server/utils/userAgent.js +98 -0
  245. package/lib/server/utils/wsServer.js +126 -0
  246. package/lib/server/utils/zipFile.js +74 -0
  247. package/lib/server/utils/zones.js +57 -0
  248. package/lib/server/webkit/protocol.d.js +16 -0
  249. package/lib/server/webkit/webkit.js +103 -0
  250. package/lib/server/webkit/wkAccessibility.js +237 -0
  251. package/lib/server/webkit/wkBrowser.js +335 -0
  252. package/lib/server/webkit/wkConnection.js +149 -0
  253. package/lib/server/webkit/wkExecutionContext.js +154 -0
  254. package/lib/server/webkit/wkInput.js +181 -0
  255. package/lib/server/webkit/wkInterceptableRequest.js +169 -0
  256. package/lib/server/webkit/wkPage.js +1135 -0
  257. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  258. package/lib/server/webkit/wkWorkers.js +104 -0
  259. package/lib/third_party/pixelmatch.js +255 -0
  260. package/lib/utils/isomorphic/ariaSnapshot.js +390 -0
  261. package/lib/utils/isomorphic/assert.js +31 -0
  262. package/lib/utils/isomorphic/colors.js +72 -0
  263. package/lib/utils/isomorphic/cssParser.js +245 -0
  264. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  265. package/lib/utils/isomorphic/headers.js +53 -0
  266. package/lib/utils/isomorphic/locatorGenerators.js +673 -0
  267. package/lib/utils/isomorphic/locatorParser.js +176 -0
  268. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  269. package/lib/utils/isomorphic/manualPromise.js +114 -0
  270. package/lib/utils/isomorphic/mimeType.js +459 -0
  271. package/lib/utils/isomorphic/multimap.js +80 -0
  272. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  273. package/lib/utils/isomorphic/protocolMetainfo.js +318 -0
  274. package/lib/utils/isomorphic/rtti.js +43 -0
  275. package/lib/utils/isomorphic/selectorParser.js +386 -0
  276. package/lib/utils/isomorphic/semaphore.js +54 -0
  277. package/lib/utils/isomorphic/stackTrace.js +158 -0
  278. package/lib/utils/isomorphic/stringUtils.js +155 -0
  279. package/lib/utils/isomorphic/time.js +49 -0
  280. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  281. package/lib/utils/isomorphic/traceUtils.js +58 -0
  282. package/lib/utils/isomorphic/types.js +16 -0
  283. package/lib/utils/isomorphic/urlMatch.js +181 -0
  284. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  285. package/lib/utils.js +107 -0
  286. package/lib/utilsBundle.js +106 -0
  287. package/lib/utilsBundleImpl/index.js +218 -0
  288. package/lib/utilsBundleImpl/xdg-open +1066 -0
  289. package/lib/vite/htmlReport/index.html +75 -0
  290. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
  291. package/lib/vite/recorder/assets/codeMirrorModule-DzQ0k89p.js +24 -0
  292. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  293. package/lib/vite/recorder/assets/index-CI4HQ-Zb.css +1 -0
  294. package/lib/vite/recorder/assets/index-D7C7daHH.js +184 -0
  295. package/lib/vite/recorder/index.html +29 -0
  296. package/lib/vite/recorder/playwright-logo.svg +9 -0
  297. package/lib/vite/traceViewer/assets/codeMirrorModule-B9MwJ51G.js +24 -0
  298. package/lib/vite/traceViewer/assets/defaultSettingsView-Do_wwdKw.js +256 -0
  299. package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +9 -0
  300. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
  301. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  302. package/lib/vite/traceViewer/defaultSettingsView.DVJHpiGt.css +1 -0
  303. package/lib/vite/traceViewer/index.BFsek2M6.css +1 -0
  304. package/lib/vite/traceViewer/index.BZPYnuWQ.js +2 -0
  305. package/lib/vite/traceViewer/index.html +43 -0
  306. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  307. package/lib/vite/traceViewer/snapshot.html +21 -0
  308. package/lib/vite/traceViewer/sw.bundle.js +3 -0
  309. package/lib/vite/traceViewer/uiMode.9zHYMU6d.js +5 -0
  310. package/lib/vite/traceViewer/uiMode.BatfzHMG.css +1 -0
  311. package/lib/vite/traceViewer/uiMode.html +17 -0
  312. package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +32 -0
  313. package/lib/zipBundle.js +34 -0
  314. package/lib/zipBundleImpl.js +5 -0
  315. package/package.json +64 -0
  316. package/stealth-injection.js +592 -0
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var localUtilsDispatcher_exports = {};
30
+ __export(localUtilsDispatcher_exports, {
31
+ LocalUtilsDispatcher: () => LocalUtilsDispatcher
32
+ });
33
+ module.exports = __toCommonJS(localUtilsDispatcher_exports);
34
+ var import_dispatcher = require("./dispatcher");
35
+ var import_instrumentation = require("../../server/instrumentation");
36
+ var localUtils = __toESM(require("../localUtils"));
37
+ var import_userAgent = require("../utils/userAgent");
38
+ var import_deviceDescriptors = require("../deviceDescriptors");
39
+ var import_jsonPipeDispatcher = require("../dispatchers/jsonPipeDispatcher");
40
+ var import_socksInterceptor = require("../socksInterceptor");
41
+ var import_transport = require("../transport");
42
+ var import_network = require("../utils/network");
43
+ var import_urlMatch = require("../../utils/isomorphic/urlMatch");
44
+ class LocalUtilsDispatcher extends import_dispatcher.Dispatcher {
45
+ constructor(scope, playwright) {
46
+ const localUtils2 = new import_instrumentation.SdkObject(playwright, "localUtils", "localUtils");
47
+ localUtils2.logName = "browser";
48
+ const deviceDescriptors = Object.entries(import_deviceDescriptors.deviceDescriptors).map(([name, descriptor]) => ({ name, descriptor }));
49
+ super(scope, localUtils2, "LocalUtils", {
50
+ deviceDescriptors
51
+ });
52
+ this._harBackends = /* @__PURE__ */ new Map();
53
+ this._stackSessions = /* @__PURE__ */ new Map();
54
+ this._type_LocalUtils = true;
55
+ }
56
+ async zip(params, progress) {
57
+ return await localUtils.zip(progress, this._stackSessions, params);
58
+ }
59
+ async harOpen(params, progress) {
60
+ return await localUtils.harOpen(progress, this._harBackends, params);
61
+ }
62
+ async harLookup(params, progress) {
63
+ return await localUtils.harLookup(progress, this._harBackends, params);
64
+ }
65
+ async harClose(params, progress) {
66
+ localUtils.harClose(this._harBackends, params);
67
+ }
68
+ async harUnzip(params, progress) {
69
+ return await localUtils.harUnzip(progress, params);
70
+ }
71
+ async tracingStarted(params, progress) {
72
+ return await localUtils.tracingStarted(progress, this._stackSessions, params);
73
+ }
74
+ async traceDiscarded(params, progress) {
75
+ return await localUtils.traceDiscarded(progress, this._stackSessions, params);
76
+ }
77
+ async addStackToTracingNoReply(params, progress) {
78
+ localUtils.addStackToTracingNoReply(this._stackSessions, params);
79
+ }
80
+ async connect(params, progress) {
81
+ const wsHeaders = {
82
+ "User-Agent": (0, import_userAgent.getUserAgent)(),
83
+ "x-playwright-proxy": params.exposeNetwork ?? "",
84
+ ...params.headers
85
+ };
86
+ const wsEndpoint = await urlToWSEndpoint(progress, params.wsEndpoint);
87
+ const transport = await import_transport.WebSocketTransport.connect(progress, wsEndpoint, { headers: wsHeaders, followRedirects: true, debugLogHeader: "x-playwright-debug-log" });
88
+ const socksInterceptor = new import_socksInterceptor.SocksInterceptor(transport, params.exposeNetwork, params.socksProxyRedirectPortForTest);
89
+ const pipe = new import_jsonPipeDispatcher.JsonPipeDispatcher(this);
90
+ transport.onmessage = (json) => {
91
+ if (socksInterceptor.interceptMessage(json))
92
+ return;
93
+ const cb = () => {
94
+ try {
95
+ pipe.dispatch(json);
96
+ } catch (e) {
97
+ transport.close();
98
+ }
99
+ };
100
+ if (params.slowMo)
101
+ setTimeout(cb, params.slowMo);
102
+ else
103
+ cb();
104
+ };
105
+ pipe.on("message", (message) => {
106
+ transport.send(message);
107
+ });
108
+ transport.onclose = (reason) => {
109
+ socksInterceptor?.cleanup();
110
+ pipe.wasClosed(reason);
111
+ };
112
+ pipe.on("close", () => transport.close());
113
+ return { pipe, headers: transport.headers };
114
+ }
115
+ async globToRegex(params, progress) {
116
+ const regex = (0, import_urlMatch.resolveGlobToRegexPattern)(params.baseURL, params.glob, params.webSocketUrl);
117
+ return { regex };
118
+ }
119
+ }
120
+ async function urlToWSEndpoint(progress, endpointURL) {
121
+ if (endpointURL.startsWith("ws"))
122
+ return endpointURL;
123
+ progress.log(`<ws preparing> retrieving websocket url from ${endpointURL}`);
124
+ const fetchUrl = new URL(endpointURL);
125
+ if (!fetchUrl.pathname.endsWith("/"))
126
+ fetchUrl.pathname += "/";
127
+ fetchUrl.pathname += "json";
128
+ const json = await (0, import_network.fetchData)(progress, {
129
+ url: fetchUrl.toString(),
130
+ method: "GET",
131
+ headers: { "User-Agent": (0, import_userAgent.getUserAgent)() }
132
+ }, async (params, response) => {
133
+ return new Error(`Unexpected status ${response.statusCode} when connecting to ${fetchUrl.toString()}.
134
+ This does not look like a Playwright server, try connecting via ws://.`);
135
+ });
136
+ const wsUrl = new URL(endpointURL);
137
+ let wsEndpointPath = JSON.parse(json).wsEndpointPath;
138
+ if (wsEndpointPath.startsWith("/"))
139
+ wsEndpointPath = wsEndpointPath.substring(1);
140
+ if (!wsUrl.pathname.endsWith("/"))
141
+ wsUrl.pathname += "/";
142
+ wsUrl.pathname += wsEndpointPath;
143
+ wsUrl.protocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
144
+ return wsUrl.toString();
145
+ }
146
+ // Annotate the CommonJS export names for ESM import in node:
147
+ 0 && (module.exports = {
148
+ LocalUtilsDispatcher
149
+ });
@@ -0,0 +1,210 @@
1
+ "use strict";
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 networkDispatchers_exports = {};
20
+ __export(networkDispatchers_exports, {
21
+ APIRequestContextDispatcher: () => APIRequestContextDispatcher,
22
+ RequestDispatcher: () => RequestDispatcher,
23
+ ResponseDispatcher: () => ResponseDispatcher,
24
+ RouteDispatcher: () => RouteDispatcher,
25
+ WebSocketDispatcher: () => WebSocketDispatcher
26
+ });
27
+ module.exports = __toCommonJS(networkDispatchers_exports);
28
+ var import_network = require("../network");
29
+ var import_dispatcher = require("./dispatcher");
30
+ var import_frameDispatcher = require("./frameDispatcher");
31
+ var import_pageDispatcher = require("./pageDispatcher");
32
+ var import_tracingDispatcher = require("./tracingDispatcher");
33
+ class RequestDispatcher extends import_dispatcher.Dispatcher {
34
+ static from(scope, request) {
35
+ const result = scope.connection.existingDispatcher(request);
36
+ return result || new RequestDispatcher(scope, request);
37
+ }
38
+ static fromNullable(scope, request) {
39
+ return request ? RequestDispatcher.from(scope, request) : void 0;
40
+ }
41
+ constructor(scope, request) {
42
+ const postData = request.postDataBuffer();
43
+ const frame = request.frame();
44
+ const page = request.frame()?._page;
45
+ const pageDispatcher = page ? scope.connection.existingDispatcher(page) : null;
46
+ const frameDispatcher = frame ? import_frameDispatcher.FrameDispatcher.from(scope, frame) : null;
47
+ super(pageDispatcher || frameDispatcher || scope, request, "Request", {
48
+ frame: import_frameDispatcher.FrameDispatcher.fromNullable(scope, request.frame()),
49
+ serviceWorker: import_pageDispatcher.WorkerDispatcher.fromNullable(scope, request.serviceWorker()),
50
+ url: request.url(),
51
+ resourceType: request.resourceType(),
52
+ method: request.method(),
53
+ postData: postData === null ? void 0 : postData,
54
+ headers: request.headers(),
55
+ isNavigationRequest: request.isNavigationRequest(),
56
+ redirectedFrom: RequestDispatcher.fromNullable(scope, request.redirectedFrom())
57
+ });
58
+ this._type_Request = true;
59
+ this._browserContextDispatcher = scope;
60
+ }
61
+ async rawRequestHeaders(params, progress) {
62
+ return { headers: await progress.race(this._object.rawRequestHeaders()) };
63
+ }
64
+ async response(params, progress) {
65
+ return { response: ResponseDispatcher.fromNullable(this._browserContextDispatcher, await progress.race(this._object.response())) };
66
+ }
67
+ }
68
+ class ResponseDispatcher extends import_dispatcher.Dispatcher {
69
+ constructor(scope, response) {
70
+ super(scope, response, "Response", {
71
+ // TODO: responses in popups can point to non-reported requests.
72
+ request: scope,
73
+ url: response.url(),
74
+ status: response.status(),
75
+ statusText: response.statusText(),
76
+ headers: response.headers(),
77
+ timing: response.timing(),
78
+ fromServiceWorker: response.fromServiceWorker()
79
+ });
80
+ this._type_Response = true;
81
+ }
82
+ static from(scope, response) {
83
+ const result = scope.connection.existingDispatcher(response);
84
+ const requestDispatcher = RequestDispatcher.from(scope, response.request());
85
+ return result || new ResponseDispatcher(requestDispatcher, response);
86
+ }
87
+ static fromNullable(scope, response) {
88
+ return response ? ResponseDispatcher.from(scope, response) : void 0;
89
+ }
90
+ async body(params, progress) {
91
+ return { binary: await progress.race(this._object.body()) };
92
+ }
93
+ async securityDetails(params, progress) {
94
+ return { value: await progress.race(this._object.securityDetails()) || void 0 };
95
+ }
96
+ async serverAddr(params, progress) {
97
+ return { value: await progress.race(this._object.serverAddr()) || void 0 };
98
+ }
99
+ async rawResponseHeaders(params, progress) {
100
+ return { headers: await progress.race(this._object.rawResponseHeaders()) };
101
+ }
102
+ async sizes(params, progress) {
103
+ return { sizes: await progress.race(this._object.sizes()) };
104
+ }
105
+ }
106
+ class RouteDispatcher extends import_dispatcher.Dispatcher {
107
+ constructor(scope, route) {
108
+ super(scope, route, "Route", {
109
+ // Context route can point to a non-reported request, so we send the request in the initializer.
110
+ request: scope
111
+ });
112
+ this._type_Route = true;
113
+ this._handled = false;
114
+ }
115
+ _checkNotHandled() {
116
+ if (this._handled)
117
+ throw new Error("Route is already handled!");
118
+ this._handled = true;
119
+ }
120
+ async continue(params, progress) {
121
+ this._checkNotHandled();
122
+ await this._object.continue({
123
+ url: params.url,
124
+ method: params.method,
125
+ headers: params.headers,
126
+ postData: params.postData,
127
+ isFallback: params.isFallback
128
+ });
129
+ }
130
+ async fulfill(params, progress) {
131
+ this._checkNotHandled();
132
+ await this._object.fulfill(params);
133
+ }
134
+ async abort(params, progress) {
135
+ this._checkNotHandled();
136
+ await this._object.abort(params.errorCode || "failed");
137
+ }
138
+ async redirectNavigationRequest(params, progress) {
139
+ this._checkNotHandled();
140
+ this._object.redirectNavigationRequest(params.url);
141
+ }
142
+ }
143
+ class WebSocketDispatcher extends import_dispatcher.Dispatcher {
144
+ constructor(scope, webSocket) {
145
+ super(scope, webSocket, "WebSocket", {
146
+ url: webSocket.url()
147
+ });
148
+ this._type_EventTarget = true;
149
+ this._type_WebSocket = true;
150
+ this.addObjectListener(import_network.WebSocket.Events.FrameSent, (event) => this._dispatchEvent("frameSent", event));
151
+ this.addObjectListener(import_network.WebSocket.Events.FrameReceived, (event) => this._dispatchEvent("frameReceived", event));
152
+ this.addObjectListener(import_network.WebSocket.Events.SocketError, (error) => this._dispatchEvent("socketError", { error }));
153
+ this.addObjectListener(import_network.WebSocket.Events.Close, () => this._dispatchEvent("close", {}));
154
+ }
155
+ }
156
+ class APIRequestContextDispatcher extends import_dispatcher.Dispatcher {
157
+ constructor(parentScope, request) {
158
+ const tracing = import_tracingDispatcher.TracingDispatcher.from(parentScope, request.tracing());
159
+ super(parentScope, request, "APIRequestContext", {
160
+ tracing
161
+ });
162
+ this._type_APIRequestContext = true;
163
+ this.adopt(tracing);
164
+ }
165
+ static from(scope, request) {
166
+ const result = scope.connection.existingDispatcher(request);
167
+ return result || new APIRequestContextDispatcher(scope, request);
168
+ }
169
+ static fromNullable(scope, request) {
170
+ return request ? APIRequestContextDispatcher.from(scope, request) : void 0;
171
+ }
172
+ async storageState(params, progress) {
173
+ return await this._object.storageState(progress, params.indexedDB);
174
+ }
175
+ async dispose(params, progress) {
176
+ progress.metadata.potentiallyClosesScope = true;
177
+ await this._object.dispose(params);
178
+ this._dispose();
179
+ }
180
+ async fetch(params, progress) {
181
+ const fetchResponse = await this._object.fetch(progress, params);
182
+ return {
183
+ response: {
184
+ url: fetchResponse.url,
185
+ status: fetchResponse.status,
186
+ statusText: fetchResponse.statusText,
187
+ headers: fetchResponse.headers,
188
+ fetchUid: fetchResponse.fetchUid
189
+ }
190
+ };
191
+ }
192
+ async fetchResponseBody(params, progress) {
193
+ return { binary: this._object.fetchResponses.get(params.fetchUid) };
194
+ }
195
+ async fetchLog(params, progress) {
196
+ const log = this._object.fetchLog.get(params.fetchUid) || [];
197
+ return { log };
198
+ }
199
+ async disposeAPIResponse(params, progress) {
200
+ this._object.disposeResponse(params.fetchUid);
201
+ }
202
+ }
203
+ // Annotate the CommonJS export names for ESM import in node:
204
+ 0 && (module.exports = {
205
+ APIRequestContextDispatcher,
206
+ RequestDispatcher,
207
+ ResponseDispatcher,
208
+ RouteDispatcher,
209
+ WebSocketDispatcher
210
+ });