@treegress.com/treegress-browser-core 1.59.0-treegress.3

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 (439) hide show
  1. package/README.md +60 -0
  2. package/ThirdPartyNotices.txt +3759 -0
  3. package/bin/install_media_pack.ps1 +5 -0
  4. package/bin/install_webkit_wsl.ps1 +33 -0
  5. package/bin/reinstall_chrome_beta_linux.sh +42 -0
  6. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  7. package/bin/reinstall_chrome_beta_win.ps1 +24 -0
  8. package/bin/reinstall_chrome_stable_linux.sh +42 -0
  9. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  10. package/bin/reinstall_chrome_stable_win.ps1 +24 -0
  11. package/bin/reinstall_msedge_beta_linux.sh +48 -0
  12. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  13. package/bin/reinstall_msedge_beta_win.ps1 +23 -0
  14. package/bin/reinstall_msedge_dev_linux.sh +48 -0
  15. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  16. package/bin/reinstall_msedge_dev_win.ps1 +23 -0
  17. package/bin/reinstall_msedge_stable_linux.sh +48 -0
  18. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  19. package/bin/reinstall_msedge_stable_win.ps1 +24 -0
  20. package/browsers.json +81 -0
  21. package/cli.js +18 -0
  22. package/index.d.ts +17 -0
  23. package/index.js +32 -0
  24. package/index.mjs +28 -0
  25. package/lib/androidServerImpl.js +65 -0
  26. package/lib/browserServerImpl.js +120 -0
  27. package/lib/cli/client/cli.js +6 -0
  28. package/lib/cli/client/program.js +375 -0
  29. package/lib/cli/client/registry.js +171 -0
  30. package/lib/cli/client/session.js +282 -0
  31. package/lib/cli/client/socketConnection.js +108 -0
  32. package/lib/cli/daemon/command.js +73 -0
  33. package/lib/cli/daemon/commands.js +879 -0
  34. package/lib/cli/daemon/daemon.js +179 -0
  35. package/lib/cli/daemon/helpGenerator.js +173 -0
  36. package/lib/cli/daemon/program.js +123 -0
  37. package/lib/cli/driver.js +98 -0
  38. package/lib/cli/program.js +598 -0
  39. package/lib/cli/programWithTestStub.js +74 -0
  40. package/lib/client/android.js +361 -0
  41. package/lib/client/api.js +137 -0
  42. package/lib/client/artifact.js +79 -0
  43. package/lib/client/browser.js +169 -0
  44. package/lib/client/browserContext.js +590 -0
  45. package/lib/client/browserType.js +153 -0
  46. package/lib/client/cdpSession.js +55 -0
  47. package/lib/client/channelOwner.js +194 -0
  48. package/lib/client/clientHelper.js +64 -0
  49. package/lib/client/clientInstrumentation.js +55 -0
  50. package/lib/client/clientStackTrace.js +69 -0
  51. package/lib/client/clock.js +68 -0
  52. package/lib/client/connect.js +152 -0
  53. package/lib/client/connection.js +322 -0
  54. package/lib/client/consoleMessage.js +61 -0
  55. package/lib/client/coverage.js +44 -0
  56. package/lib/client/dialog.js +56 -0
  57. package/lib/client/disposable.js +76 -0
  58. package/lib/client/download.js +62 -0
  59. package/lib/client/electron.js +138 -0
  60. package/lib/client/elementHandle.js +284 -0
  61. package/lib/client/errors.js +77 -0
  62. package/lib/client/eventEmitter.js +327 -0
  63. package/lib/client/events.js +103 -0
  64. package/lib/client/fetch.js +368 -0
  65. package/lib/client/fileChooser.js +46 -0
  66. package/lib/client/fileUtils.js +34 -0
  67. package/lib/client/frame.js +409 -0
  68. package/lib/client/harRouter.js +99 -0
  69. package/lib/client/input.js +84 -0
  70. package/lib/client/inspector.js +48 -0
  71. package/lib/client/jsHandle.js +109 -0
  72. package/lib/client/jsonPipe.js +39 -0
  73. package/lib/client/localUtils.js +60 -0
  74. package/lib/client/locator.js +373 -0
  75. package/lib/client/network.js +750 -0
  76. package/lib/client/page.js +750 -0
  77. package/lib/client/pageAgent.js +64 -0
  78. package/lib/client/platform.js +77 -0
  79. package/lib/client/playwright.js +71 -0
  80. package/lib/client/selectors.js +55 -0
  81. package/lib/client/stream.js +39 -0
  82. package/lib/client/timeoutSettings.js +79 -0
  83. package/lib/client/tracing.js +124 -0
  84. package/lib/client/types.js +28 -0
  85. package/lib/client/video.js +65 -0
  86. package/lib/client/waiter.js +142 -0
  87. package/lib/client/webError.js +39 -0
  88. package/lib/client/worker.js +85 -0
  89. package/lib/client/writableStream.js +39 -0
  90. package/lib/devtools/appIcon.png +0 -0
  91. package/lib/devtools/devtoolsApp.js +275 -0
  92. package/lib/devtools/devtoolsController.js +289 -0
  93. package/lib/generated/bindingsControllerSource.js +28 -0
  94. package/lib/generated/clockSource.js +28 -0
  95. package/lib/generated/injectedScriptSource.js +28 -0
  96. package/lib/generated/pollingRecorderSource.js +28 -0
  97. package/lib/generated/storageScriptSource.js +28 -0
  98. package/lib/generated/utilityScriptSource.js +28 -0
  99. package/lib/generated/webSocketMockSource.js +336 -0
  100. package/lib/inProcessFactory.js +60 -0
  101. package/lib/inprocess.js +3 -0
  102. package/lib/mcp/browserFactory.js +196 -0
  103. package/lib/mcp/cdpRelay.js +353 -0
  104. package/lib/mcp/config.d.js +16 -0
  105. package/lib/mcp/config.js +399 -0
  106. package/lib/mcp/configIni.js +190 -0
  107. package/lib/mcp/exports.js +42 -0
  108. package/lib/mcp/extensionContextFactory.js +59 -0
  109. package/lib/mcp/index.js +62 -0
  110. package/lib/mcp/log.js +35 -0
  111. package/lib/mcp/program.js +111 -0
  112. package/lib/mcp/protocol.js +28 -0
  113. package/lib/mcp/sdk/http.js +152 -0
  114. package/lib/mcp/sdk/server.js +230 -0
  115. package/lib/mcp/sdk/tool.js +47 -0
  116. package/lib/mcp/watchdog.js +44 -0
  117. package/lib/mcpBundle.js +84 -0
  118. package/lib/mcpBundleImpl/index.js +147 -0
  119. package/lib/outofprocess.js +76 -0
  120. package/lib/protocol/serializers.js +197 -0
  121. package/lib/protocol/validator.js +3064 -0
  122. package/lib/protocol/validatorPrimitives.js +193 -0
  123. package/lib/remote/playwrightConnection.js +129 -0
  124. package/lib/remote/playwrightPipeServer.js +100 -0
  125. package/lib/remote/playwrightServer.js +339 -0
  126. package/lib/remote/playwrightWebSocketServer.js +73 -0
  127. package/lib/remote/serverTransport.js +96 -0
  128. package/lib/server/agent/actionRunner.js +341 -0
  129. package/lib/server/agent/actions.js +128 -0
  130. package/lib/server/agent/codegen.js +111 -0
  131. package/lib/server/agent/context.js +161 -0
  132. package/lib/server/agent/expectTools.js +156 -0
  133. package/lib/server/agent/pageAgent.js +204 -0
  134. package/lib/server/agent/performTools.js +262 -0
  135. package/lib/server/agent/tool.js +109 -0
  136. package/lib/server/android/android.js +465 -0
  137. package/lib/server/android/backendAdb.js +177 -0
  138. package/lib/server/artifact.js +127 -0
  139. package/lib/server/bidi/bidiBrowser.js +560 -0
  140. package/lib/server/bidi/bidiChromium.js +162 -0
  141. package/lib/server/bidi/bidiConnection.js +213 -0
  142. package/lib/server/bidi/bidiDeserializer.js +116 -0
  143. package/lib/server/bidi/bidiExecutionContext.js +267 -0
  144. package/lib/server/bidi/bidiFirefox.js +128 -0
  145. package/lib/server/bidi/bidiInput.js +146 -0
  146. package/lib/server/bidi/bidiNetworkManager.js +411 -0
  147. package/lib/server/bidi/bidiOverCdp.js +102 -0
  148. package/lib/server/bidi/bidiPage.js +598 -0
  149. package/lib/server/bidi/bidiPdf.js +106 -0
  150. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  151. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  152. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  153. package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -0
  154. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  155. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  156. package/lib/server/bidi/third_party/firefoxPrefs.js +261 -0
  157. package/lib/server/browser.js +217 -0
  158. package/lib/server/browserContext.js +699 -0
  159. package/lib/server/browserType.js +337 -0
  160. package/lib/server/callLog.js +82 -0
  161. package/lib/server/chromium/appIcon.png +0 -0
  162. package/lib/server/chromium/chromium.js +399 -0
  163. package/lib/server/chromium/chromiumSwitches.js +104 -0
  164. package/lib/server/chromium/crBrowser.js +532 -0
  165. package/lib/server/chromium/crConnection.js +197 -0
  166. package/lib/server/chromium/crCoverage.js +235 -0
  167. package/lib/server/chromium/crDevTools.js +111 -0
  168. package/lib/server/chromium/crDragDrop.js +131 -0
  169. package/lib/server/chromium/crExecutionContext.js +146 -0
  170. package/lib/server/chromium/crInput.js +187 -0
  171. package/lib/server/chromium/crNetworkManager.js +708 -0
  172. package/lib/server/chromium/crPage.js +1004 -0
  173. package/lib/server/chromium/crPdf.js +121 -0
  174. package/lib/server/chromium/crProtocolHelper.js +145 -0
  175. package/lib/server/chromium/crServiceWorker.js +136 -0
  176. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  177. package/lib/server/chromium/protocol.d.js +16 -0
  178. package/lib/server/clock.js +149 -0
  179. package/lib/server/codegen/csharp.js +327 -0
  180. package/lib/server/codegen/java.js +274 -0
  181. package/lib/server/codegen/javascript.js +247 -0
  182. package/lib/server/codegen/jsonl.js +52 -0
  183. package/lib/server/codegen/language.js +132 -0
  184. package/lib/server/codegen/languages.js +68 -0
  185. package/lib/server/codegen/python.js +279 -0
  186. package/lib/server/codegen/types.js +16 -0
  187. package/lib/server/console.js +61 -0
  188. package/lib/server/cookieStore.js +206 -0
  189. package/lib/server/debugController.js +197 -0
  190. package/lib/server/debugger.js +119 -0
  191. package/lib/server/deviceDescriptors.js +39 -0
  192. package/lib/server/deviceDescriptorsSource.json +1779 -0
  193. package/lib/server/dialog.js +116 -0
  194. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  195. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  196. package/lib/server/dispatchers/browserContextDispatcher.js +377 -0
  197. package/lib/server/dispatchers/browserDispatcher.js +124 -0
  198. package/lib/server/dispatchers/browserTypeDispatcher.js +71 -0
  199. package/lib/server/dispatchers/cdpSessionDispatcher.js +47 -0
  200. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  201. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  202. package/lib/server/dispatchers/dispatcher.js +364 -0
  203. package/lib/server/dispatchers/disposableDispatcher.js +39 -0
  204. package/lib/server/dispatchers/electronDispatcher.js +90 -0
  205. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  206. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  207. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  208. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  209. package/lib/server/dispatchers/localUtilsDispatcher.js +185 -0
  210. package/lib/server/dispatchers/networkDispatchers.js +214 -0
  211. package/lib/server/dispatchers/pageAgentDispatcher.js +106 -0
  212. package/lib/server/dispatchers/pageDispatcher.js +441 -0
  213. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  214. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  215. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  216. package/lib/server/dispatchers/webSocketRouteDispatcher.js +164 -0
  217. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  218. package/lib/server/disposable.js +41 -0
  219. package/lib/server/dom.js +815 -0
  220. package/lib/server/download.js +71 -0
  221. package/lib/server/electron/electron.js +272 -0
  222. package/lib/server/electron/loader.js +30 -0
  223. package/lib/server/errors.js +69 -0
  224. package/lib/server/fetch.js +621 -0
  225. package/lib/server/fileChooser.js +43 -0
  226. package/lib/server/fileUploadUtils.js +84 -0
  227. package/lib/server/firefox/ffBrowser.js +415 -0
  228. package/lib/server/firefox/ffConnection.js +142 -0
  229. package/lib/server/firefox/ffExecutionContext.js +150 -0
  230. package/lib/server/firefox/ffInput.js +159 -0
  231. package/lib/server/firefox/ffNetworkManager.js +256 -0
  232. package/lib/server/firefox/ffPage.js +495 -0
  233. package/lib/server/firefox/firefox.js +114 -0
  234. package/lib/server/firefox/protocol.d.js +16 -0
  235. package/lib/server/formData.js +147 -0
  236. package/lib/server/frameSelectors.js +160 -0
  237. package/lib/server/frames.js +1476 -0
  238. package/lib/server/har/harRecorder.js +147 -0
  239. package/lib/server/har/harTracer.js +608 -0
  240. package/lib/server/harBackend.js +157 -0
  241. package/lib/server/helper.js +96 -0
  242. package/lib/server/index.js +58 -0
  243. package/lib/server/input.js +277 -0
  244. package/lib/server/instrumentation.js +72 -0
  245. package/lib/server/javascript.js +291 -0
  246. package/lib/server/launchApp.js +127 -0
  247. package/lib/server/localUtils.js +214 -0
  248. package/lib/server/macEditingCommands.js +143 -0
  249. package/lib/server/network.js +668 -0
  250. package/lib/server/page.js +915 -0
  251. package/lib/server/pipeTransport.js +89 -0
  252. package/lib/server/playwright.js +69 -0
  253. package/lib/server/progress.js +136 -0
  254. package/lib/server/protocolError.js +52 -0
  255. package/lib/server/recorder/chat.js +161 -0
  256. package/lib/server/recorder/recorderApp.js +367 -0
  257. package/lib/server/recorder/recorderRunner.js +138 -0
  258. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  259. package/lib/server/recorder/recorderUtils.js +157 -0
  260. package/lib/server/recorder/throttledFile.js +57 -0
  261. package/lib/server/recorder.js +533 -0
  262. package/lib/server/registry/browserFetcher.js +177 -0
  263. package/lib/server/registry/dependencies.js +371 -0
  264. package/lib/server/registry/index.js +1395 -0
  265. package/lib/server/registry/nativeDeps.js +1281 -0
  266. package/lib/server/registry/oopDownloadBrowserMain.js +127 -0
  267. package/lib/server/screencast.js +214 -0
  268. package/lib/server/screenshotter.js +333 -0
  269. package/lib/server/selectors.js +112 -0
  270. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  271. package/lib/server/socksInterceptor.js +95 -0
  272. package/lib/server/trace/recorder/snapshotter.js +147 -0
  273. package/lib/server/trace/recorder/snapshotterInjected.js +561 -0
  274. package/lib/server/trace/recorder/tracing.js +607 -0
  275. package/lib/server/trace/viewer/traceParser.js +72 -0
  276. package/lib/server/trace/viewer/traceViewer.js +244 -0
  277. package/lib/server/transport.js +181 -0
  278. package/lib/server/types.js +28 -0
  279. package/lib/server/usKeyboardLayout.js +145 -0
  280. package/lib/server/utils/ascii.js +44 -0
  281. package/lib/server/utils/comparators.js +139 -0
  282. package/lib/server/utils/crypto.js +216 -0
  283. package/lib/server/utils/debug.js +42 -0
  284. package/lib/server/utils/debugLogger.js +122 -0
  285. package/lib/server/utils/env.js +73 -0
  286. package/lib/server/utils/eventsHelper.js +39 -0
  287. package/lib/server/utils/expectUtils.js +123 -0
  288. package/lib/server/utils/fileUtils.js +191 -0
  289. package/lib/server/utils/happyEyeballs.js +207 -0
  290. package/lib/server/utils/hostPlatform.js +123 -0
  291. package/lib/server/utils/httpServer.js +205 -0
  292. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  293. package/lib/server/utils/image_tools/compare.js +109 -0
  294. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  295. package/lib/server/utils/image_tools/stats.js +102 -0
  296. package/lib/server/utils/linuxUtils.js +71 -0
  297. package/lib/server/utils/network.js +244 -0
  298. package/lib/server/utils/nodePlatform.js +154 -0
  299. package/lib/server/utils/pipeTransport.js +84 -0
  300. package/lib/server/utils/processLauncher.js +243 -0
  301. package/lib/server/utils/profiler.js +65 -0
  302. package/lib/server/utils/socksProxy.js +511 -0
  303. package/lib/server/utils/spawnAsync.js +41 -0
  304. package/lib/server/utils/task.js +51 -0
  305. package/lib/server/utils/userAgent.js +98 -0
  306. package/lib/server/utils/wsServer.js +121 -0
  307. package/lib/server/utils/zipFile.js +74 -0
  308. package/lib/server/utils/zones.js +57 -0
  309. package/lib/server/videoRecorder.js +133 -0
  310. package/lib/server/webkit/protocol.d.js +16 -0
  311. package/lib/server/webkit/webkit.js +108 -0
  312. package/lib/server/webkit/wkBrowser.js +331 -0
  313. package/lib/server/webkit/wkConnection.js +144 -0
  314. package/lib/server/webkit/wkExecutionContext.js +154 -0
  315. package/lib/server/webkit/wkInput.js +181 -0
  316. package/lib/server/webkit/wkInterceptableRequest.js +197 -0
  317. package/lib/server/webkit/wkPage.js +1164 -0
  318. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  319. package/lib/server/webkit/wkWorkers.js +106 -0
  320. package/lib/serverRegistry.js +136 -0
  321. package/lib/third_party/pixelmatch.js +255 -0
  322. package/lib/tools/browserServerBackend.js +79 -0
  323. package/lib/tools/common.js +63 -0
  324. package/lib/tools/config.js +41 -0
  325. package/lib/tools/console.js +65 -0
  326. package/lib/tools/context.js +282 -0
  327. package/lib/tools/cookies.js +152 -0
  328. package/lib/tools/customDomLocatorCompiler.js +239 -0
  329. package/lib/tools/customDomResolverDiagnostics.js +100 -0
  330. package/lib/tools/customDomSnapshotFormatter.js +658 -0
  331. package/lib/tools/devtools.js +42 -0
  332. package/lib/tools/dialogs.js +59 -0
  333. package/lib/tools/evaluate.js +61 -0
  334. package/lib/tools/exports.js +57 -0
  335. package/lib/tools/files.js +58 -0
  336. package/lib/tools/form.js +63 -0
  337. package/lib/tools/keyboard.js +151 -0
  338. package/lib/tools/logFile.js +95 -0
  339. package/lib/tools/mouse.js +170 -0
  340. package/lib/tools/navigate.js +105 -0
  341. package/lib/tools/network.js +112 -0
  342. package/lib/tools/pdf.js +48 -0
  343. package/lib/tools/response.js +278 -0
  344. package/lib/tools/route.js +140 -0
  345. package/lib/tools/runCode.js +76 -0
  346. package/lib/tools/screenshot.js +87 -0
  347. package/lib/tools/sessionLog.js +75 -0
  348. package/lib/tools/snapshot.js +209 -0
  349. package/lib/tools/storage.js +67 -0
  350. package/lib/tools/tab.js +596 -0
  351. package/lib/tools/tabs.js +67 -0
  352. package/lib/tools/tool.js +47 -0
  353. package/lib/tools/tools.js +94 -0
  354. package/lib/tools/tracing.js +75 -0
  355. package/lib/tools/utils.js +88 -0
  356. package/lib/tools/verify.js +149 -0
  357. package/lib/tools/video.js +89 -0
  358. package/lib/tools/wait.js +63 -0
  359. package/lib/tools/webstorage.js +223 -0
  360. package/lib/utils/isomorphic/aiSnapshotTypes.js +16 -0
  361. package/lib/utils/isomorphic/ariaSnapshot.js +455 -0
  362. package/lib/utils/isomorphic/assert.js +31 -0
  363. package/lib/utils/isomorphic/colors.js +72 -0
  364. package/lib/utils/isomorphic/cssParser.js +245 -0
  365. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  366. package/lib/utils/isomorphic/headers.js +53 -0
  367. package/lib/utils/isomorphic/imageUtils.js +141 -0
  368. package/lib/utils/isomorphic/locatorGenerators.js +689 -0
  369. package/lib/utils/isomorphic/locatorParser.js +176 -0
  370. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  371. package/lib/utils/isomorphic/lruCache.js +51 -0
  372. package/lib/utils/isomorphic/manualPromise.js +114 -0
  373. package/lib/utils/isomorphic/mimeType.js +464 -0
  374. package/lib/utils/isomorphic/multimap.js +80 -0
  375. package/lib/utils/isomorphic/protocolFormatter.js +81 -0
  376. package/lib/utils/isomorphic/protocolMetainfo.js +345 -0
  377. package/lib/utils/isomorphic/rtti.js +43 -0
  378. package/lib/utils/isomorphic/selectorParser.js +386 -0
  379. package/lib/utils/isomorphic/semaphore.js +54 -0
  380. package/lib/utils/isomorphic/stackTrace.js +158 -0
  381. package/lib/utils/isomorphic/stringUtils.js +204 -0
  382. package/lib/utils/isomorphic/time.js +49 -0
  383. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  384. package/lib/utils/isomorphic/trace/entries.js +16 -0
  385. package/lib/utils/isomorphic/trace/snapshotRenderer.js +502 -0
  386. package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
  387. package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
  388. package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
  389. package/lib/utils/isomorphic/trace/traceModel.js +366 -0
  390. package/lib/utils/isomorphic/trace/traceModernizer.js +401 -0
  391. package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
  392. package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
  393. package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
  394. package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
  395. package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
  396. package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
  397. package/lib/utils/isomorphic/traceUtils.js +58 -0
  398. package/lib/utils/isomorphic/types.js +16 -0
  399. package/lib/utils/isomorphic/urlMatch.js +243 -0
  400. package/lib/utils/isomorphic/utilityScriptSerializers.js +262 -0
  401. package/lib/utils/isomorphic/yaml.js +84 -0
  402. package/lib/utils.js +111 -0
  403. package/lib/utilsBundle.js +112 -0
  404. package/lib/utilsBundleImpl/index.js +218 -0
  405. package/lib/utilsBundleImpl/xdg-open +1066 -0
  406. package/lib/vite/devtools/assets/index-D3CVnoLM.css +1 -0
  407. package/lib/vite/devtools/assets/index-wqccfruE.js +50 -0
  408. package/lib/vite/devtools/index.html +28 -0
  409. package/lib/vite/htmlReport/index.html +84 -0
  410. package/lib/vite/recorder/assets/codeMirrorModule-4NapTJOb.js +32 -0
  411. package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -0
  412. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  413. package/lib/vite/recorder/assets/index-BSjZa4pk.css +1 -0
  414. package/lib/vite/recorder/assets/index-CD9lKVjM.js +193 -0
  415. package/lib/vite/recorder/index.html +29 -0
  416. package/lib/vite/recorder/playwright-logo.svg +9 -0
  417. package/lib/vite/traceViewer/assets/codeMirrorModule-RgXeHFoQ.js +32 -0
  418. package/lib/vite/traceViewer/assets/defaultSettingsView-DP6vvJEM.js +269 -0
  419. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  420. package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
  421. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  422. package/lib/vite/traceViewer/defaultSettingsView.DQ9U-ctL.css +1 -0
  423. package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
  424. package/lib/vite/traceViewer/index.D8YUXFVt.js +2 -0
  425. package/lib/vite/traceViewer/index.html +43 -0
  426. package/lib/vite/traceViewer/manifest.webmanifest +16 -0
  427. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  428. package/lib/vite/traceViewer/snapshot.html +21 -0
  429. package/lib/vite/traceViewer/sw.bundle.js +5 -0
  430. package/lib/vite/traceViewer/uiMode.BIQFTUME.js +6 -0
  431. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  432. package/lib/vite/traceViewer/uiMode.html +17 -0
  433. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  434. package/lib/zipBundle.js +34 -0
  435. package/lib/zipBundleImpl.js +5 -0
  436. package/package.json +52 -0
  437. package/types/protocol.d.ts +24365 -0
  438. package/types/structs.d.ts +45 -0
  439. package/types/types.d.ts +23724 -0
@@ -0,0 +1,339 @@
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 playwrightServer_exports = {};
20
+ __export(playwrightServer_exports, {
21
+ PlaywrightServer: () => PlaywrightServer
22
+ });
23
+ module.exports = __toCommonJS(playwrightServer_exports);
24
+ var import_playwrightConnection = require("./playwrightConnection");
25
+ var import_serverTransport = require("./serverTransport");
26
+ var import_playwright = require("../server/playwright");
27
+ var import_semaphore = require("../utils/isomorphic/semaphore");
28
+ var import_time = require("../utils/isomorphic/time");
29
+ var import_wsServer = require("../server/utils/wsServer");
30
+ var import_ascii = require("../server/utils/ascii");
31
+ var import_userAgent = require("../server/utils/userAgent");
32
+ var import_utils = require("../utils");
33
+ var import_socksProxy = require("../server/utils/socksProxy");
34
+ var import_browser = require("../server/browser");
35
+ var import_progress = require("../server/progress");
36
+ class PlaywrightServer {
37
+ constructor(options) {
38
+ this._dontReuseBrowsers = /* @__PURE__ */ new Set();
39
+ this._options = options;
40
+ if (options.preLaunchedBrowser) {
41
+ this._playwright = options.preLaunchedBrowser.attribution.playwright;
42
+ this._dontReuse(options.preLaunchedBrowser);
43
+ }
44
+ if (options.preLaunchedAndroidDevice)
45
+ this._playwright = options.preLaunchedAndroidDevice._android.attribution.playwright;
46
+ this._playwright ??= (0, import_playwright.createPlaywright)({ sdkLanguage: "javascript", isServer: true });
47
+ const browserSemaphore = new import_semaphore.Semaphore(this._options.maxConnections);
48
+ const controllerSemaphore = new import_semaphore.Semaphore(1);
49
+ const reuseBrowserSemaphore = new import_semaphore.Semaphore(1);
50
+ this._wsServer = new import_wsServer.WSServer({
51
+ onRequest: (request, response) => {
52
+ if (request.method === "GET" && request.url === "/json") {
53
+ response.setHeader("Content-Type", "application/json");
54
+ response.end(JSON.stringify({
55
+ wsEndpointPath: this._options.path
56
+ }));
57
+ return;
58
+ }
59
+ response.end("Running");
60
+ },
61
+ onUpgrade: (request, socket) => {
62
+ const uaError = userAgentVersionMatchesErrorMessage(request.headers["user-agent"] || "");
63
+ if (uaError)
64
+ return { error: `HTTP/${request.httpVersion} 428 Precondition Required\r
65
+ \r
66
+ ${uaError}` };
67
+ },
68
+ onHeaders: (headers) => {
69
+ if (process.env.PWTEST_SERVER_WS_HEADERS)
70
+ headers.push(process.env.PWTEST_SERVER_WS_HEADERS);
71
+ },
72
+ onConnection: (request, url, ws, id) => {
73
+ const browserHeader = request.headers["x-playwright-browser"];
74
+ const browserName = url.searchParams.get("browser") || (Array.isArray(browserHeader) ? browserHeader[0] : browserHeader) || null;
75
+ const proxyHeader = request.headers["x-playwright-proxy"];
76
+ const proxyValue = url.searchParams.get("proxy") || (Array.isArray(proxyHeader) ? proxyHeader[0] : proxyHeader);
77
+ const launchOptionsHeader = request.headers["x-playwright-launch-options"] || "";
78
+ const launchOptionsHeaderValue = Array.isArray(launchOptionsHeader) ? launchOptionsHeader[0] : launchOptionsHeader;
79
+ const launchOptionsParam = url.searchParams.get("launch-options");
80
+ let launchOptions = { timeout: import_time.DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT };
81
+ try {
82
+ launchOptions = JSON.parse(launchOptionsParam || launchOptionsHeaderValue);
83
+ if (!launchOptions.timeout)
84
+ launchOptions.timeout = import_time.DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT;
85
+ } catch (e) {
86
+ }
87
+ if (this._options.artifactsDir)
88
+ launchOptions.artifactsDir = this._options.artifactsDir;
89
+ const isExtension = this._options.mode === "extension";
90
+ const allowFSPaths = isExtension;
91
+ launchOptions = filterLaunchOptions(launchOptions, allowFSPaths);
92
+ if (isExtension) {
93
+ const connectFilter = url.searchParams.get("connect");
94
+ if (connectFilter) {
95
+ if (connectFilter !== "first")
96
+ throw new Error(`Unknown connect filter: ${connectFilter}`);
97
+ return new import_playwrightConnection.PlaywrightConnection(
98
+ browserSemaphore,
99
+ new import_serverTransport.WebSocketServerTransport(ws),
100
+ false,
101
+ this._playwright,
102
+ () => this._initConnectMode(id, connectFilter, browserName, launchOptions),
103
+ id
104
+ );
105
+ }
106
+ if (url.searchParams.has("debug-controller")) {
107
+ return new import_playwrightConnection.PlaywrightConnection(
108
+ controllerSemaphore,
109
+ new import_serverTransport.WebSocketServerTransport(ws),
110
+ true,
111
+ this._playwright,
112
+ async () => {
113
+ throw new Error("shouldnt be used");
114
+ },
115
+ id
116
+ );
117
+ }
118
+ return new import_playwrightConnection.PlaywrightConnection(
119
+ reuseBrowserSemaphore,
120
+ new import_serverTransport.WebSocketServerTransport(ws),
121
+ false,
122
+ this._playwright,
123
+ () => this._initReuseBrowsersMode(browserName, launchOptions, id),
124
+ id
125
+ );
126
+ }
127
+ if (this._options.mode === "launchServer" || this._options.mode === "launchServerShared") {
128
+ if (this._options.preLaunchedBrowser) {
129
+ return new import_playwrightConnection.PlaywrightConnection(
130
+ browserSemaphore,
131
+ new import_serverTransport.WebSocketServerTransport(ws),
132
+ false,
133
+ this._playwright,
134
+ () => this._initPreLaunchedBrowserMode(id),
135
+ id
136
+ );
137
+ }
138
+ return new import_playwrightConnection.PlaywrightConnection(
139
+ browserSemaphore,
140
+ new import_serverTransport.WebSocketServerTransport(ws),
141
+ false,
142
+ this._playwright,
143
+ () => this._initPreLaunchedAndroidMode(id),
144
+ id
145
+ );
146
+ }
147
+ return new import_playwrightConnection.PlaywrightConnection(
148
+ browserSemaphore,
149
+ new import_serverTransport.WebSocketServerTransport(ws),
150
+ false,
151
+ this._playwright,
152
+ () => this._initLaunchBrowserMode(browserName, proxyValue, launchOptions, id),
153
+ id
154
+ );
155
+ }
156
+ });
157
+ }
158
+ async _initReuseBrowsersMode(browserName, launchOptions, id) {
159
+ import_utils.debugLogger.log("server", `[${id}] engaged reuse browsers mode for ${browserName}`);
160
+ const requestedOptions = launchOptionsHash(launchOptions);
161
+ let browser = this._playwright.allBrowsers().find((b) => {
162
+ if (b.options.name !== browserName)
163
+ return false;
164
+ if (this._dontReuseBrowsers.has(b))
165
+ return false;
166
+ const existingOptions = launchOptionsHash({ ...b.options.originalLaunchOptions, timeout: import_time.DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT });
167
+ return existingOptions === requestedOptions;
168
+ });
169
+ for (const b of this._playwright.allBrowsers()) {
170
+ if (b === browser)
171
+ continue;
172
+ if (this._dontReuseBrowsers.has(b))
173
+ continue;
174
+ if (b.options.name === browserName && b.options.channel === launchOptions.channel)
175
+ await b.close({ reason: "Connection terminated" });
176
+ }
177
+ if (!browser) {
178
+ const browserType = this._playwright[browserName || "chromium"];
179
+ const controller = new import_progress.ProgressController();
180
+ browser = await controller.run((progress) => browserType.launch(progress, {
181
+ ...launchOptions,
182
+ headless: !!process.env.PW_DEBUG_CONTROLLER_HEADLESS
183
+ }), launchOptions.timeout);
184
+ }
185
+ return {
186
+ preLaunchedBrowser: browser,
187
+ denyLaunch: true,
188
+ dispose: async () => {
189
+ for (const context of browser.contexts()) {
190
+ if (!context.pages().length)
191
+ await context.close({ reason: "Connection terminated" });
192
+ }
193
+ }
194
+ };
195
+ }
196
+ async _initConnectMode(id, filter, browserName, launchOptions) {
197
+ browserName ??= "chromium";
198
+ import_utils.debugLogger.log("server", `[${id}] engaged connect mode`);
199
+ let browser = this._playwright.allBrowsers().find((b) => b.options.name === browserName);
200
+ if (!browser) {
201
+ const browserType = this._playwright[browserName];
202
+ const controller = new import_progress.ProgressController();
203
+ browser = await controller.run((progress) => browserType.launch(progress, launchOptions), launchOptions.timeout);
204
+ this._dontReuse(browser);
205
+ }
206
+ return {
207
+ preLaunchedBrowser: browser,
208
+ denyLaunch: true,
209
+ sharedBrowser: true
210
+ };
211
+ }
212
+ async _initPreLaunchedBrowserMode(id) {
213
+ import_utils.debugLogger.log("server", `[${id}] engaged pre-launched (browser) mode`);
214
+ const browser = this._options.preLaunchedBrowser;
215
+ for (const b of this._playwright.allBrowsers()) {
216
+ if (b !== browser)
217
+ await b.close({ reason: "Connection terminated" });
218
+ }
219
+ return {
220
+ preLaunchedBrowser: browser,
221
+ socksProxy: this._options.preLaunchedSocksProxy,
222
+ sharedBrowser: this._options.mode === "launchServerShared",
223
+ denyLaunch: true
224
+ };
225
+ }
226
+ async _initPreLaunchedAndroidMode(id) {
227
+ import_utils.debugLogger.log("server", `[${id}] engaged pre-launched (Android) mode`);
228
+ const androidDevice = this._options.preLaunchedAndroidDevice;
229
+ return {
230
+ preLaunchedAndroidDevice: androidDevice,
231
+ denyLaunch: true
232
+ };
233
+ }
234
+ async _initLaunchBrowserMode(browserName, proxyValue, launchOptions, id) {
235
+ import_utils.debugLogger.log("server", `[${id}] engaged launch mode for "${browserName}"`);
236
+ let socksProxy;
237
+ if (proxyValue) {
238
+ socksProxy = new import_socksProxy.SocksProxy();
239
+ socksProxy.setPattern(proxyValue);
240
+ launchOptions.socksProxyPort = await socksProxy.listen(0);
241
+ import_utils.debugLogger.log("server", `[${id}] started socks proxy on port ${launchOptions.socksProxyPort}`);
242
+ } else {
243
+ launchOptions.socksProxyPort = void 0;
244
+ }
245
+ const browserType = this._playwright[browserName];
246
+ const controller = new import_progress.ProgressController();
247
+ const browser = await controller.run((progress) => browserType.launch(progress, launchOptions), launchOptions.timeout);
248
+ this._dontReuseBrowsers.add(browser);
249
+ return {
250
+ preLaunchedBrowser: browser,
251
+ socksProxy,
252
+ denyLaunch: true,
253
+ dispose: async () => {
254
+ await browser.close({ reason: "Connection terminated" });
255
+ socksProxy?.close();
256
+ }
257
+ };
258
+ }
259
+ _dontReuse(browser) {
260
+ this._dontReuseBrowsers.add(browser);
261
+ browser.on(import_browser.Browser.Events.Disconnected, () => {
262
+ this._dontReuseBrowsers.delete(browser);
263
+ });
264
+ }
265
+ async listen(port = 0, hostname) {
266
+ return this._wsServer.listen(port, hostname, this._options.path);
267
+ }
268
+ async close() {
269
+ await this._wsServer.close();
270
+ }
271
+ }
272
+ function userAgentVersionMatchesErrorMessage(userAgent) {
273
+ const match = userAgent.match(/^Playwright\/(\d+\.\d+\.\d+)/);
274
+ if (!match) {
275
+ return;
276
+ }
277
+ const received = match[1].split(".").slice(0, 2).join(".");
278
+ const expected = (0, import_userAgent.getPlaywrightVersion)(true);
279
+ if (received !== expected) {
280
+ return (0, import_ascii.wrapInASCIIBox)([
281
+ `Playwright version mismatch:`,
282
+ ` - server version: v${expected}`,
283
+ ` - client version: v${received}`,
284
+ ``,
285
+ `If you are using VSCode extension, restart VSCode.`,
286
+ ``,
287
+ `If you are connecting to a remote service,`,
288
+ `keep your local Playwright version in sync`,
289
+ `with the remote service version.`,
290
+ ``,
291
+ `<3 Playwright Team`
292
+ ].join("\n"), 1);
293
+ }
294
+ }
295
+ function launchOptionsHash(options) {
296
+ const copy = { ...options };
297
+ for (const k of Object.keys(copy)) {
298
+ const key = k;
299
+ if (copy[key] === defaultLaunchOptions[key])
300
+ delete copy[key];
301
+ }
302
+ for (const key of optionsThatAllowBrowserReuse)
303
+ delete copy[key];
304
+ return JSON.stringify(copy);
305
+ }
306
+ function filterLaunchOptions(options, allowFSPaths) {
307
+ return {
308
+ channel: options.channel,
309
+ args: options.args,
310
+ ignoreAllDefaultArgs: options.ignoreAllDefaultArgs,
311
+ ignoreDefaultArgs: options.ignoreDefaultArgs,
312
+ timeout: options.timeout,
313
+ headless: options.headless,
314
+ proxy: options.proxy,
315
+ chromiumSandbox: options.chromiumSandbox,
316
+ firefoxUserPrefs: options.firefoxUserPrefs,
317
+ slowMo: options.slowMo,
318
+ executablePath: (0, import_utils.isUnderTest)() || allowFSPaths ? options.executablePath : void 0,
319
+ downloadsPath: allowFSPaths ? options.downloadsPath : void 0,
320
+ artifactsDir: (0, import_utils.isUnderTest)() || allowFSPaths ? options.artifactsDir : void 0
321
+ };
322
+ }
323
+ const defaultLaunchOptions = {
324
+ ignoreAllDefaultArgs: false,
325
+ handleSIGINT: false,
326
+ handleSIGTERM: false,
327
+ handleSIGHUP: false,
328
+ headless: true
329
+ };
330
+ const optionsThatAllowBrowserReuse = [
331
+ "headless",
332
+ "timeout",
333
+ "tracesDir",
334
+ "artifactsDir"
335
+ ];
336
+ // Annotate the CommonJS export names for ESM import in node:
337
+ 0 && (module.exports = {
338
+ PlaywrightServer
339
+ });
@@ -0,0 +1,73 @@
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 playwrightWebSocketServer_exports = {};
20
+ __export(playwrightWebSocketServer_exports, {
21
+ PlaywrightWebSocketServer: () => PlaywrightWebSocketServer
22
+ });
23
+ module.exports = __toCommonJS(playwrightWebSocketServer_exports);
24
+ var import_playwrightConnection = require("./playwrightConnection");
25
+ var import_serverTransport = require("./serverTransport");
26
+ var import_debugLogger = require("../server/utils/debugLogger");
27
+ var import_browser = require("../server/browser");
28
+ var import_utils = require("../utils");
29
+ var import_wsServer = require("../server/utils/wsServer");
30
+ class PlaywrightWebSocketServer {
31
+ constructor(browser, path) {
32
+ this._browser = browser;
33
+ browser.on(import_browser.Browser.Events.Disconnected, () => this.close());
34
+ const semaphore = new import_utils.Semaphore(Infinity);
35
+ this._wsServer = new import_wsServer.WSServer({
36
+ onRequest: (request, response) => {
37
+ response.end("Running");
38
+ },
39
+ onUpgrade: () => void 0,
40
+ onHeaders: () => {
41
+ },
42
+ onConnection: (request, url, ws, id) => {
43
+ import_debugLogger.debugLogger.log("server", `[${id}] ws client connected`);
44
+ return new import_playwrightConnection.PlaywrightConnection(
45
+ semaphore,
46
+ new import_serverTransport.WebSocketServerTransport(ws),
47
+ false,
48
+ this._browser.attribution.playwright,
49
+ () => this._initPreLaunchedBrowserMode(id),
50
+ id
51
+ );
52
+ }
53
+ });
54
+ }
55
+ async _initPreLaunchedBrowserMode(id) {
56
+ import_debugLogger.debugLogger.log("server", `[${id}] engaged pre-launched (browser) ws mode`);
57
+ return {
58
+ preLaunchedBrowser: this._browser,
59
+ sharedBrowser: true,
60
+ denyLaunch: true
61
+ };
62
+ }
63
+ async listen(port = 0, hostname, path) {
64
+ return await this._wsServer.listen(port, hostname, path || "/");
65
+ }
66
+ async close() {
67
+ await this._wsServer.close();
68
+ }
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ PlaywrightWebSocketServer
73
+ });
@@ -0,0 +1,96 @@
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 serverTransport_exports = {};
20
+ __export(serverTransport_exports, {
21
+ SocketServerTransport: () => SocketServerTransport,
22
+ WebSocketServerTransport: () => WebSocketServerTransport
23
+ });
24
+ module.exports = __toCommonJS(serverTransport_exports);
25
+ var import_events = require("events");
26
+ class WebSocketServerTransport {
27
+ constructor(ws) {
28
+ this._ws = ws;
29
+ }
30
+ send(message) {
31
+ this._ws.send(message);
32
+ }
33
+ close(reason) {
34
+ this._ws.close(reason?.code, reason?.reason);
35
+ }
36
+ on(event, handler) {
37
+ this._ws.on(event, handler);
38
+ }
39
+ isClosed() {
40
+ return this._ws.readyState === this._ws.CLOSING || this._ws.readyState === this._ws.CLOSED;
41
+ }
42
+ }
43
+ class SocketServerTransport extends import_events.EventEmitter {
44
+ constructor(socket) {
45
+ super();
46
+ this._closed = false;
47
+ this._pendingBuffers = [];
48
+ this._socket = socket;
49
+ socket.on("data", (buffer) => this._dispatch(buffer));
50
+ socket.on("close", () => {
51
+ this._closed = true;
52
+ super.emit("close");
53
+ });
54
+ socket.on("error", (error) => {
55
+ super.emit("error", error);
56
+ });
57
+ }
58
+ send(message) {
59
+ if (this._closed)
60
+ return;
61
+ this._socket.write(message);
62
+ this._socket.write("\0");
63
+ }
64
+ close(reason) {
65
+ if (this._closed)
66
+ return;
67
+ this._closed = true;
68
+ this._socket.end();
69
+ }
70
+ isClosed() {
71
+ return this._closed;
72
+ }
73
+ _dispatch(buffer) {
74
+ let end = buffer.indexOf("\0");
75
+ if (end === -1) {
76
+ this._pendingBuffers.push(buffer);
77
+ return;
78
+ }
79
+ this._pendingBuffers.push(buffer.slice(0, end));
80
+ const message = Buffer.concat(this._pendingBuffers).toString();
81
+ super.emit("message", message);
82
+ let start = end + 1;
83
+ end = buffer.indexOf("\0", start);
84
+ while (end !== -1) {
85
+ super.emit("message", buffer.toString(void 0, start, end));
86
+ start = end + 1;
87
+ end = buffer.indexOf("\0", start);
88
+ }
89
+ this._pendingBuffers = [buffer.slice(start)];
90
+ }
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ SocketServerTransport,
95
+ WebSocketServerTransport
96
+ });