@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,59 @@
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 dialogs_exports = {};
20
+ __export(dialogs_exports, {
21
+ default: () => dialogs_default,
22
+ handleDialog: () => handleDialog
23
+ });
24
+ module.exports = __toCommonJS(dialogs_exports);
25
+ var import_mcpBundle = require("../mcpBundle");
26
+ var import_tool = require("./tool");
27
+ const handleDialog = (0, import_tool.defineTabTool)({
28
+ capability: "core",
29
+ schema: {
30
+ name: "browser_handle_dialog",
31
+ title: "Handle a dialog",
32
+ description: "Handle a dialog",
33
+ inputSchema: import_mcpBundle.z.object({
34
+ accept: import_mcpBundle.z.boolean().describe("Whether to accept the dialog."),
35
+ promptText: import_mcpBundle.z.string().optional().describe("The text of the prompt in case of a prompt dialog.")
36
+ }),
37
+ type: "action"
38
+ },
39
+ handle: async (tab, params, response) => {
40
+ const dialogState = tab.modalStates().find((state) => state.type === "dialog");
41
+ if (!dialogState)
42
+ throw new Error("No dialog visible");
43
+ tab.clearModalState(dialogState);
44
+ await tab.waitForCompletion(async () => {
45
+ if (params.accept)
46
+ await dialogState.dialog.accept(params.promptText);
47
+ else
48
+ await dialogState.dialog.dismiss();
49
+ });
50
+ },
51
+ clearsModalState: "dialog"
52
+ });
53
+ var dialogs_default = [
54
+ handleDialog
55
+ ];
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ handleDialog
59
+ });
@@ -0,0 +1,61 @@
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 evaluate_exports = {};
20
+ __export(evaluate_exports, {
21
+ default: () => evaluate_default
22
+ });
23
+ module.exports = __toCommonJS(evaluate_exports);
24
+ var import_mcpBundle = require("../mcpBundle");
25
+ var import_stringUtils = require("../utils/isomorphic/stringUtils");
26
+ var import_tool = require("./tool");
27
+ const evaluateSchema = import_mcpBundle.z.object({
28
+ function: import_mcpBundle.z.string().describe("() => { /* code */ } or (element) => { /* code */ } when element is provided"),
29
+ element: import_mcpBundle.z.string().optional().describe("Human-readable element description used to obtain permission to interact with the element"),
30
+ ref: import_mcpBundle.z.string().optional().describe("Exact target element reference from the page snapshot")
31
+ });
32
+ const evaluate = (0, import_tool.defineTabTool)({
33
+ capability: "core",
34
+ schema: {
35
+ name: "browser_evaluate",
36
+ title: "Evaluate JavaScript",
37
+ description: "Evaluate JavaScript expression on page or element",
38
+ inputSchema: evaluateSchema,
39
+ type: "action"
40
+ },
41
+ handle: async (tab, params, response) => {
42
+ let locator;
43
+ if (!params.function.includes("=>"))
44
+ params.function = `() => (${params.function})`;
45
+ if (params.ref) {
46
+ locator = await tab.refLocator({ ref: params.ref, element: params.element || "element" });
47
+ response.addCode(`await page.${locator.resolved}.evaluate(${(0, import_stringUtils.escapeWithQuotes)(params.function)});`);
48
+ } else {
49
+ response.addCode(`await page.evaluate(${(0, import_stringUtils.escapeWithQuotes)(params.function)});`);
50
+ }
51
+ await tab.waitForCompletion(async () => {
52
+ const receiver = locator?.locator ?? tab.page;
53
+ const result = await receiver._evaluateFunction(params.function);
54
+ const text = JSON.stringify(result, null, 2) || "undefined";
55
+ response.addTextResult(text);
56
+ });
57
+ }
58
+ });
59
+ var evaluate_default = [
60
+ evaluate
61
+ ];
@@ -0,0 +1,57 @@
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 exports_exports = {};
20
+ __export(exports_exports, {
21
+ BrowserServerBackend: () => import_browserServerBackend.BrowserServerBackend,
22
+ CustomDomResolverError: () => import_customDomResolverDiagnostics.CustomDomResolverError,
23
+ Tab: () => import_tab.Tab,
24
+ browserTools: () => import_tools.browserTools,
25
+ compileLocatorCandidatesFromPlan: () => import_customDomLocatorCompiler.compileLocatorCandidatesFromPlan,
26
+ customDomStableLocatorKey: () => import_customDomSnapshotFormatter.customDomStableLocatorKey,
27
+ filteredTools: () => import_tools2.filteredTools,
28
+ formatCustomDomResolverDiagnostics: () => import_customDomResolverDiagnostics.formatCustomDomResolverDiagnostics,
29
+ formatCustomDomSnapshot: () => import_customDomSnapshotFormatter.formatCustomDomSnapshot,
30
+ inspectLocatorCandidates: () => import_customDomLocatorCompiler.inspectLocatorCandidates,
31
+ isCustomDomSnapshotEnvelope: () => import_customDomSnapshotFormatter.isCustomDomSnapshotEnvelope,
32
+ parseResponse: () => import_response.parseResponse
33
+ });
34
+ module.exports = __toCommonJS(exports_exports);
35
+ var import_browserServerBackend = require("./browserServerBackend");
36
+ var import_tools = require("./tools");
37
+ var import_tools2 = require("./tools");
38
+ var import_response = require("./response");
39
+ var import_tab = require("./tab");
40
+ var import_customDomLocatorCompiler = require("./customDomLocatorCompiler");
41
+ var import_customDomResolverDiagnostics = require("./customDomResolverDiagnostics");
42
+ var import_customDomSnapshotFormatter = require("./customDomSnapshotFormatter");
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ BrowserServerBackend,
46
+ CustomDomResolverError,
47
+ Tab,
48
+ browserTools,
49
+ compileLocatorCandidatesFromPlan,
50
+ customDomStableLocatorKey,
51
+ filteredTools,
52
+ formatCustomDomResolverDiagnostics,
53
+ formatCustomDomSnapshot,
54
+ inspectLocatorCandidates,
55
+ isCustomDomSnapshotEnvelope,
56
+ parseResponse
57
+ });
@@ -0,0 +1,58 @@
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 files_exports = {};
20
+ __export(files_exports, {
21
+ default: () => files_default,
22
+ uploadFile: () => uploadFile
23
+ });
24
+ module.exports = __toCommonJS(files_exports);
25
+ var import_mcpBundle = require("../mcpBundle");
26
+ var import_tool = require("./tool");
27
+ const uploadFile = (0, import_tool.defineTabTool)({
28
+ capability: "core",
29
+ schema: {
30
+ name: "browser_file_upload",
31
+ title: "Upload files",
32
+ description: "Upload one or multiple files",
33
+ inputSchema: import_mcpBundle.z.object({
34
+ paths: import_mcpBundle.z.array(import_mcpBundle.z.string()).optional().describe("The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled.")
35
+ }),
36
+ type: "action"
37
+ },
38
+ handle: async (tab, params, response) => {
39
+ response.setIncludeSnapshot();
40
+ const modalState = tab.modalStates().find((state) => state.type === "fileChooser");
41
+ if (!modalState)
42
+ throw new Error("No file chooser visible");
43
+ response.addCode(`await fileChooser.setFiles(${JSON.stringify(params.paths)})`);
44
+ tab.clearModalState(modalState);
45
+ await tab.waitForCompletion(async () => {
46
+ if (params.paths)
47
+ await modalState.fileChooser.setFiles(params.paths);
48
+ });
49
+ },
50
+ clearsModalState: "fileChooser"
51
+ });
52
+ var files_default = [
53
+ uploadFile
54
+ ];
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ uploadFile
58
+ });
@@ -0,0 +1,63 @@
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 form_exports = {};
20
+ __export(form_exports, {
21
+ default: () => form_default
22
+ });
23
+ module.exports = __toCommonJS(form_exports);
24
+ var import_mcpBundle = require("../mcpBundle");
25
+ var import_stringUtils = require("../utils/isomorphic/stringUtils");
26
+ var import_tool = require("./tool");
27
+ const fillForm = (0, import_tool.defineTabTool)({
28
+ capability: "core",
29
+ schema: {
30
+ name: "browser_fill_form",
31
+ title: "Fill form",
32
+ description: "Fill multiple form fields",
33
+ inputSchema: import_mcpBundle.z.object({
34
+ fields: import_mcpBundle.z.array(import_mcpBundle.z.object({
35
+ name: import_mcpBundle.z.string().describe("Human-readable field name"),
36
+ type: import_mcpBundle.z.enum(["textbox", "checkbox", "radio", "combobox", "slider"]).describe("Type of the field"),
37
+ ref: import_mcpBundle.z.string().describe("Exact target field reference from the page snapshot"),
38
+ value: import_mcpBundle.z.string().describe("Value to fill in the field. If the field is a checkbox, the value should be `true` or `false`. If the field is a combobox, the value should be the text of the option.")
39
+ })).describe("Fields to fill in")
40
+ }),
41
+ type: "input"
42
+ },
43
+ handle: async (tab, params, response) => {
44
+ for (const field of params.fields) {
45
+ const { locator, resolved } = await tab.refLocator({ element: field.name, ref: field.ref });
46
+ const locatorSource = `await page.${resolved}`;
47
+ if (field.type === "textbox" || field.type === "slider") {
48
+ const secret = tab.context.lookupSecret(field.value);
49
+ await locator.fill(secret.value, tab.actionTimeoutOptions);
50
+ response.addCode(`${locatorSource}.fill(${secret.code});`);
51
+ } else if (field.type === "checkbox" || field.type === "radio") {
52
+ await locator.setChecked(field.value === "true", tab.actionTimeoutOptions);
53
+ response.addCode(`${locatorSource}.setChecked(${field.value});`);
54
+ } else if (field.type === "combobox") {
55
+ await locator.selectOption({ label: field.value }, tab.actionTimeoutOptions);
56
+ response.addCode(`${locatorSource}.selectOption(${(0, import_stringUtils.escapeWithQuotes)(field.value)});`);
57
+ }
58
+ }
59
+ }
60
+ });
61
+ var form_default = [
62
+ fillForm
63
+ ];
@@ -0,0 +1,151 @@
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 keyboard_exports = {};
20
+ __export(keyboard_exports, {
21
+ default: () => keyboard_default
22
+ });
23
+ module.exports = __toCommonJS(keyboard_exports);
24
+ var import_mcpBundle = require("../mcpBundle");
25
+ var import_tool = require("./tool");
26
+ var import_snapshot = require("./snapshot");
27
+ const press = (0, import_tool.defineTabTool)({
28
+ capability: "core-input",
29
+ schema: {
30
+ name: "browser_press_key",
31
+ title: "Press a key",
32
+ description: "Press a key on the keyboard",
33
+ inputSchema: import_mcpBundle.z.object({
34
+ key: import_mcpBundle.z.string().describe("Name of the key to press or a character to generate, such as `ArrowLeft` or `a`")
35
+ }),
36
+ type: "input"
37
+ },
38
+ handle: async (tab, params, response) => {
39
+ response.addCode(`// Press ${params.key}`);
40
+ response.addCode(`await page.keyboard.press('${params.key}');`);
41
+ if (params.key === "Enter") {
42
+ response.setIncludeSnapshot();
43
+ await tab.waitForCompletion(async () => {
44
+ await tab.page.keyboard.press("Enter");
45
+ });
46
+ } else {
47
+ await tab.page.keyboard.press(params.key);
48
+ }
49
+ }
50
+ });
51
+ const pressSequentially = (0, import_tool.defineTabTool)({
52
+ capability: "core-input",
53
+ skillOnly: true,
54
+ schema: {
55
+ name: "browser_press_sequentially",
56
+ title: "Type text key by key",
57
+ description: "Type text key by key on the keyboard",
58
+ inputSchema: import_mcpBundle.z.object({
59
+ text: import_mcpBundle.z.string().describe("Text to type"),
60
+ submit: import_mcpBundle.z.boolean().optional().describe("Whether to submit entered text (press Enter after)")
61
+ }),
62
+ type: "input"
63
+ },
64
+ handle: async (tab, params, response) => {
65
+ response.addCode(`// Press ${params.text}`);
66
+ response.addCode(`await page.keyboard.type('${params.text}');`);
67
+ await tab.page.keyboard.type(params.text);
68
+ if (params.submit) {
69
+ response.addCode(`await page.keyboard.press('Enter');`);
70
+ response.setIncludeSnapshot();
71
+ await tab.waitForCompletion(async () => {
72
+ await tab.page.keyboard.press("Enter");
73
+ });
74
+ }
75
+ }
76
+ });
77
+ const typeSchema = import_snapshot.elementSchema.extend({
78
+ text: import_mcpBundle.z.string().describe("Text to type into the element"),
79
+ submit: import_mcpBundle.z.boolean().optional().describe("Whether to submit entered text (press Enter after)"),
80
+ slowly: import_mcpBundle.z.boolean().optional().describe("Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once.")
81
+ });
82
+ const type = (0, import_tool.defineTabTool)({
83
+ capability: "core-input",
84
+ schema: {
85
+ name: "browser_type",
86
+ title: "Type text",
87
+ description: "Type text into editable element",
88
+ inputSchema: typeSchema,
89
+ type: "input"
90
+ },
91
+ handle: async (tab, params, response) => {
92
+ const { locator, resolved } = await tab.refLocator(params);
93
+ const secret = tab.context.lookupSecret(params.text);
94
+ await tab.waitForCompletion(async () => {
95
+ if (params.slowly) {
96
+ response.setIncludeSnapshot();
97
+ response.addCode(`await page.${resolved}.pressSequentially(${secret.code});`);
98
+ await locator.pressSequentially(secret.value, tab.actionTimeoutOptions);
99
+ } else {
100
+ response.addCode(`await page.${resolved}.fill(${secret.code});`);
101
+ await locator.fill(secret.value, tab.actionTimeoutOptions);
102
+ }
103
+ if (params.submit) {
104
+ response.setIncludeSnapshot();
105
+ response.addCode(`await page.${resolved}.press('Enter');`);
106
+ await locator.press("Enter", tab.actionTimeoutOptions);
107
+ }
108
+ });
109
+ }
110
+ });
111
+ const keydown = (0, import_tool.defineTabTool)({
112
+ capability: "core-input",
113
+ skillOnly: true,
114
+ schema: {
115
+ name: "browser_keydown",
116
+ title: "Press a key down",
117
+ description: "Press a key down on the keyboard",
118
+ inputSchema: import_mcpBundle.z.object({
119
+ key: import_mcpBundle.z.string().describe("Name of the key to press or a character to generate, such as `ArrowLeft` or `a`")
120
+ }),
121
+ type: "input"
122
+ },
123
+ handle: async (tab, params, response) => {
124
+ response.addCode(`await page.keyboard.down('${params.key}');`);
125
+ await tab.page.keyboard.down(params.key);
126
+ }
127
+ });
128
+ const keyup = (0, import_tool.defineTabTool)({
129
+ capability: "core-input",
130
+ skillOnly: true,
131
+ schema: {
132
+ name: "browser_keyup",
133
+ title: "Press a key up",
134
+ description: "Press a key up on the keyboard",
135
+ inputSchema: import_mcpBundle.z.object({
136
+ key: import_mcpBundle.z.string().describe("Name of the key to press or a character to generate, such as `ArrowLeft` or `a`")
137
+ }),
138
+ type: "input"
139
+ },
140
+ handle: async (tab, params, response) => {
141
+ response.addCode(`await page.keyboard.up('${params.key}');`);
142
+ await tab.page.keyboard.up(params.key);
143
+ }
144
+ });
145
+ var keyboard_default = [
146
+ press,
147
+ type,
148
+ pressSequentially,
149
+ keydown,
150
+ keyup
151
+ ];
@@ -0,0 +1,95 @@
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 logFile_exports = {};
30
+ __export(logFile_exports, {
31
+ LogFile: () => LogFile
32
+ });
33
+ module.exports = __toCommonJS(logFile_exports);
34
+ var import_fs = __toESM(require("fs"));
35
+ var import_path = __toESM(require("path"));
36
+ var import_utilsBundle = require("../utilsBundle");
37
+ class LogFile {
38
+ constructor(context, startTime, filePrefix, title) {
39
+ this._stopped = false;
40
+ this._line = 0;
41
+ this._entries = 0;
42
+ this._lastLine = 0;
43
+ this._lastEntries = 0;
44
+ this._writeChain = Promise.resolve();
45
+ this._context = context;
46
+ this._startTime = startTime;
47
+ this._filePrefix = filePrefix;
48
+ this._title = title;
49
+ }
50
+ appendLine(wallTime, text) {
51
+ this._writeChain = this._writeChain.then(() => this._write(wallTime, text)).catch((e) => (0, import_utilsBundle.debug)("pw:tools:error")(e));
52
+ }
53
+ stop() {
54
+ this._stopped = true;
55
+ }
56
+ async take(relativeTo) {
57
+ const logChunk = await this._take();
58
+ if (!logChunk)
59
+ return void 0;
60
+ const logFilePath = relativeTo ? import_path.default.relative(relativeTo, logChunk.file) : logChunk.file;
61
+ const lineRange = logChunk.fromLine === logChunk.toLine ? `#L${logChunk.fromLine}` : `#L${logChunk.fromLine}-L${logChunk.toLine}`;
62
+ return `${logFilePath}${lineRange}`;
63
+ }
64
+ async _take() {
65
+ await this._writeChain;
66
+ if (!this._file || this._entries === this._lastEntries)
67
+ return void 0;
68
+ const chunk = {
69
+ type: this._title.toLowerCase(),
70
+ file: this._file,
71
+ fromLine: this._lastLine + 1,
72
+ toLine: this._line,
73
+ entryCount: this._entries - this._lastEntries
74
+ };
75
+ this._lastLine = this._line;
76
+ this._lastEntries = this._entries;
77
+ return chunk;
78
+ }
79
+ async _write(wallTime, text) {
80
+ if (this._stopped)
81
+ return;
82
+ this._file ??= await this._context.outputFile({ prefix: this._filePrefix, ext: "log", date: new Date(this._startTime) }, { origin: "code" });
83
+ const relativeTime = Math.round(wallTime - this._startTime);
84
+ const logLine = `[${String(relativeTime).padStart(8, " ")}ms] ${text()}
85
+ `;
86
+ await import_fs.default.promises.appendFile(this._file, logLine);
87
+ const lineCount = logLine.split("\n").length - 1;
88
+ this._line += lineCount;
89
+ this._entries++;
90
+ }
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ LogFile
95
+ });