@stablyai/internal-playwright-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +1134 -0
  5. package/bin/install_media_pack.ps1 +5 -0
  6. package/bin/install_webkit_wsl.ps1 +35 -0
  7. package/bin/reinstall_chrome_beta_linux.sh +42 -0
  8. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  9. package/bin/reinstall_chrome_beta_win.ps1 +24 -0
  10. package/bin/reinstall_chrome_stable_linux.sh +42 -0
  11. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  12. package/bin/reinstall_chrome_stable_win.ps1 +24 -0
  13. package/bin/reinstall_msedge_beta_linux.sh +48 -0
  14. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  15. package/bin/reinstall_msedge_beta_win.ps1 +23 -0
  16. package/bin/reinstall_msedge_dev_linux.sh +48 -0
  17. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  18. package/bin/reinstall_msedge_dev_win.ps1 +23 -0
  19. package/bin/reinstall_msedge_stable_linux.sh +48 -0
  20. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  21. package/bin/reinstall_msedge_stable_win.ps1 +24 -0
  22. package/browsers.json +80 -0
  23. package/cli.js +18 -0
  24. package/index.d.ts +17 -0
  25. package/index.js +32 -0
  26. package/index.mjs +28 -0
  27. package/lib/androidServerImpl.js +65 -0
  28. package/lib/browserServerImpl.js +120 -0
  29. package/lib/cli/cli.js +58 -0
  30. package/lib/cli/driver.js +97 -0
  31. package/lib/cli/program.js +634 -0
  32. package/lib/cli/programWithTestStub.js +74 -0
  33. package/lib/client/accessibility.js +49 -0
  34. package/lib/client/android.js +361 -0
  35. package/lib/client/api.js +137 -0
  36. package/lib/client/artifact.js +79 -0
  37. package/lib/client/browser.js +163 -0
  38. package/lib/client/browserContext.js +529 -0
  39. package/lib/client/browserType.js +184 -0
  40. package/lib/client/cdpSession.js +51 -0
  41. package/lib/client/channelOwner.js +194 -0
  42. package/lib/client/clientHelper.js +64 -0
  43. package/lib/client/clientInstrumentation.js +55 -0
  44. package/lib/client/clientStackTrace.js +69 -0
  45. package/lib/client/clock.js +68 -0
  46. package/lib/client/connection.js +314 -0
  47. package/lib/client/consoleMessage.js +54 -0
  48. package/lib/client/coverage.js +44 -0
  49. package/lib/client/dialog.js +56 -0
  50. package/lib/client/download.js +62 -0
  51. package/lib/client/electron.js +138 -0
  52. package/lib/client/elementHandle.js +281 -0
  53. package/lib/client/errors.js +77 -0
  54. package/lib/client/eventEmitter.js +314 -0
  55. package/lib/client/events.js +99 -0
  56. package/lib/client/fetch.js +369 -0
  57. package/lib/client/fileChooser.js +46 -0
  58. package/lib/client/fileUtils.js +34 -0
  59. package/lib/client/frame.js +408 -0
  60. package/lib/client/harRouter.js +87 -0
  61. package/lib/client/input.js +84 -0
  62. package/lib/client/jsHandle.js +109 -0
  63. package/lib/client/jsonPipe.js +39 -0
  64. package/lib/client/localUtils.js +60 -0
  65. package/lib/client/locator.js +368 -0
  66. package/lib/client/network.js +747 -0
  67. package/lib/client/page.js +721 -0
  68. package/lib/client/platform.js +74 -0
  69. package/lib/client/playwright.js +71 -0
  70. package/lib/client/selectors.js +55 -0
  71. package/lib/client/stream.js +39 -0
  72. package/lib/client/timeoutSettings.js +79 -0
  73. package/lib/client/tracing.js +117 -0
  74. package/lib/client/types.js +28 -0
  75. package/lib/client/video.js +59 -0
  76. package/lib/client/waiter.js +142 -0
  77. package/lib/client/webError.js +39 -0
  78. package/lib/client/webSocket.js +93 -0
  79. package/lib/client/worker.js +63 -0
  80. package/lib/client/writableStream.js +39 -0
  81. package/lib/common/debugLogger.js +90 -0
  82. package/lib/common/socksProxy.js +569 -0
  83. package/lib/common/timeoutSettings.js +73 -0
  84. package/lib/common/types.js +5 -0
  85. package/lib/generated/bindingsControllerSource.js +28 -0
  86. package/lib/generated/clockSource.js +28 -0
  87. package/lib/generated/consoleApiSource.js +28 -0
  88. package/lib/generated/injectedScriptSource.js +28 -0
  89. package/lib/generated/pollingRecorderSource.js +28 -0
  90. package/lib/generated/recorderSource.js +28 -0
  91. package/lib/generated/storageScriptSource.js +28 -0
  92. package/lib/generated/utilityScriptSource.js +28 -0
  93. package/lib/generated/webSocketMockSource.js +336 -0
  94. package/lib/image_tools/colorUtils.js +98 -0
  95. package/lib/image_tools/compare.js +108 -0
  96. package/lib/image_tools/imageChannel.js +70 -0
  97. package/lib/image_tools/stats.js +102 -0
  98. package/lib/inProcessFactory.js +60 -0
  99. package/lib/index.js +19 -0
  100. package/lib/inprocess.js +3 -0
  101. package/lib/outofprocess.js +76 -0
  102. package/lib/protocol/debug.js +27 -0
  103. package/lib/protocol/serializers.js +192 -0
  104. package/lib/protocol/transport.js +82 -0
  105. package/lib/protocol/validator.js +2919 -0
  106. package/lib/protocol/validatorPrimitives.js +193 -0
  107. package/lib/remote/playwrightConnection.js +129 -0
  108. package/lib/remote/playwrightServer.js +335 -0
  109. package/lib/server/accessibility.js +69 -0
  110. package/lib/server/android/android.js +465 -0
  111. package/lib/server/android/backendAdb.js +177 -0
  112. package/lib/server/artifact.js +127 -0
  113. package/lib/server/bidi/bidiBrowser.js +490 -0
  114. package/lib/server/bidi/bidiChromium.js +153 -0
  115. package/lib/server/bidi/bidiConnection.js +212 -0
  116. package/lib/server/bidi/bidiExecutionContext.js +221 -0
  117. package/lib/server/bidi/bidiFirefox.js +130 -0
  118. package/lib/server/bidi/bidiInput.js +146 -0
  119. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  120. package/lib/server/bidi/bidiOverCdp.js +102 -0
  121. package/lib/server/bidi/bidiPage.js +552 -0
  122. package/lib/server/bidi/bidiPdf.js +106 -0
  123. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  124. package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
  125. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  126. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  127. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  128. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  129. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  130. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  131. package/lib/server/browser.js +149 -0
  132. package/lib/server/browserContext.js +695 -0
  133. package/lib/server/browserType.js +328 -0
  134. package/lib/server/callLog.js +82 -0
  135. package/lib/server/chromium/appIcon.png +0 -0
  136. package/lib/server/chromium/chromium.js +402 -0
  137. package/lib/server/chromium/chromiumSwitches.js +95 -0
  138. package/lib/server/chromium/crAccessibility.js +263 -0
  139. package/lib/server/chromium/crBrowser.js +501 -0
  140. package/lib/server/chromium/crConnection.js +202 -0
  141. package/lib/server/chromium/crCoverage.js +235 -0
  142. package/lib/server/chromium/crDevTools.js +113 -0
  143. package/lib/server/chromium/crDragDrop.js +131 -0
  144. package/lib/server/chromium/crExecutionContext.js +146 -0
  145. package/lib/server/chromium/crInput.js +187 -0
  146. package/lib/server/chromium/crNetworkManager.js +666 -0
  147. package/lib/server/chromium/crPage.js +1069 -0
  148. package/lib/server/chromium/crPdf.js +121 -0
  149. package/lib/server/chromium/crProtocolHelper.js +145 -0
  150. package/lib/server/chromium/crServiceWorker.js +123 -0
  151. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  152. package/lib/server/chromium/protocol.d.js +16 -0
  153. package/lib/server/chromium/videoRecorder.js +113 -0
  154. package/lib/server/clock.js +149 -0
  155. package/lib/server/codegen/csharp.js +327 -0
  156. package/lib/server/codegen/java.js +274 -0
  157. package/lib/server/codegen/javascript.js +270 -0
  158. package/lib/server/codegen/jsonl.js +52 -0
  159. package/lib/server/codegen/language.js +132 -0
  160. package/lib/server/codegen/languages.js +68 -0
  161. package/lib/server/codegen/python.js +279 -0
  162. package/lib/server/codegen/types.js +16 -0
  163. package/lib/server/console.js +53 -0
  164. package/lib/server/cookieStore.js +206 -0
  165. package/lib/server/debugController.js +191 -0
  166. package/lib/server/debugger.js +119 -0
  167. package/lib/server/deviceDescriptors.js +39 -0
  168. package/lib/server/deviceDescriptorsSource.json +1779 -0
  169. package/lib/server/dialog.js +116 -0
  170. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  171. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  172. package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
  173. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  174. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  175. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  176. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  177. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  178. package/lib/server/dispatchers/dispatcher.js +371 -0
  179. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  180. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  181. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  182. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  183. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  184. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  185. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  186. package/lib/server/dispatchers/pageDispatcher.js +401 -0
  187. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  188. package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  189. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  190. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  191. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  192. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  193. package/lib/server/dom.js +806 -0
  194. package/lib/server/download.js +70 -0
  195. package/lib/server/electron/electron.js +270 -0
  196. package/lib/server/electron/loader.js +29 -0
  197. package/lib/server/errors.js +69 -0
  198. package/lib/server/fetch.js +621 -0
  199. package/lib/server/fileChooser.js +43 -0
  200. package/lib/server/fileUploadUtils.js +84 -0
  201. package/lib/server/firefox/ffAccessibility.js +238 -0
  202. package/lib/server/firefox/ffBrowser.js +428 -0
  203. package/lib/server/firefox/ffConnection.js +147 -0
  204. package/lib/server/firefox/ffExecutionContext.js +150 -0
  205. package/lib/server/firefox/ffInput.js +159 -0
  206. package/lib/server/firefox/ffNetworkManager.js +256 -0
  207. package/lib/server/firefox/ffPage.js +503 -0
  208. package/lib/server/firefox/firefox.js +116 -0
  209. package/lib/server/firefox/protocol.d.js +16 -0
  210. package/lib/server/formData.js +147 -0
  211. package/lib/server/frameSelectors.js +156 -0
  212. package/lib/server/frames.js +1502 -0
  213. package/lib/server/har/harRecorder.js +147 -0
  214. package/lib/server/har/harTracer.js +607 -0
  215. package/lib/server/harBackend.js +157 -0
  216. package/lib/server/helper.js +96 -0
  217. package/lib/server/index.js +58 -0
  218. package/lib/server/input.js +273 -0
  219. package/lib/server/instrumentation.js +69 -0
  220. package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
  221. package/lib/server/javascript.js +291 -0
  222. package/lib/server/launchApp.js +128 -0
  223. package/lib/server/localUtils.js +218 -0
  224. package/lib/server/macEditingCommands.js +143 -0
  225. package/lib/server/network.js +629 -0
  226. package/lib/server/page.js +871 -0
  227. package/lib/server/pipeTransport.js +89 -0
  228. package/lib/server/playwright.js +69 -0
  229. package/lib/server/progress.js +112 -0
  230. package/lib/server/protocolError.js +52 -0
  231. package/lib/server/recorder/chat.js +161 -0
  232. package/lib/server/recorder/codeGenerator.js +153 -0
  233. package/lib/server/recorder/csharp.js +310 -0
  234. package/lib/server/recorder/java.js +248 -0
  235. package/lib/server/recorder/javascript.js +229 -0
  236. package/lib/server/recorder/jsonl.js +47 -0
  237. package/lib/server/recorder/language.js +44 -0
  238. package/lib/server/recorder/python.js +276 -0
  239. package/lib/server/recorder/recorderActions.js +5 -0
  240. package/lib/server/recorder/recorderApp.js +387 -0
  241. package/lib/server/recorder/recorderRunner.js +138 -0
  242. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  243. package/lib/server/recorder/recorderUtils.js +157 -0
  244. package/lib/server/recorder/throttledFile.js +57 -0
  245. package/lib/server/recorder/utils.js +45 -0
  246. package/lib/server/recorder.js +499 -0
  247. package/lib/server/registry/browserFetcher.js +175 -0
  248. package/lib/server/registry/dependencies.js +371 -0
  249. package/lib/server/registry/index.js +1331 -0
  250. package/lib/server/registry/nativeDeps.js +1280 -0
  251. package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
  252. package/lib/server/screenshotter.js +333 -0
  253. package/lib/server/selectors.js +112 -0
  254. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  255. package/lib/server/socksInterceptor.js +95 -0
  256. package/lib/server/stably/ai-tools/http-request.js +70 -0
  257. package/lib/server/stably/ai-tools/stablyApiCaller.js +137 -0
  258. package/lib/server/stably/autohealing/elementHandleFromCoordinates.js +64 -0
  259. package/lib/server/stably/autohealing/healingService.js +228 -0
  260. package/lib/server/stably/autohealing/screenshotFrame.js +41 -0
  261. package/lib/server/stably/constants.js +31 -0
  262. package/lib/server/trace/recorder/snapshotter.js +147 -0
  263. package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
  264. package/lib/server/trace/recorder/tracing.js +602 -0
  265. package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
  266. package/lib/server/trace/viewer/traceViewer.js +240 -0
  267. package/lib/server/transport.js +181 -0
  268. package/lib/server/types.js +28 -0
  269. package/lib/server/usKeyboardLayout.js +145 -0
  270. package/lib/server/utils/ascii.js +44 -0
  271. package/lib/server/utils/comparators.js +161 -0
  272. package/lib/server/utils/crypto.js +216 -0
  273. package/lib/server/utils/debug.js +42 -0
  274. package/lib/server/utils/debugLogger.js +122 -0
  275. package/lib/server/utils/env.js +73 -0
  276. package/lib/server/utils/eventsHelper.js +39 -0
  277. package/lib/server/utils/expectUtils.js +38 -0
  278. package/lib/server/utils/fileUtils.js +191 -0
  279. package/lib/server/utils/happyEyeballs.js +207 -0
  280. package/lib/server/utils/hostPlatform.js +111 -0
  281. package/lib/server/utils/httpServer.js +218 -0
  282. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  283. package/lib/server/utils/image_tools/compare.js +109 -0
  284. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  285. package/lib/server/utils/image_tools/stats.js +102 -0
  286. package/lib/server/utils/linuxUtils.js +71 -0
  287. package/lib/server/utils/network.js +233 -0
  288. package/lib/server/utils/nodePlatform.js +148 -0
  289. package/lib/server/utils/pipeTransport.js +84 -0
  290. package/lib/server/utils/processLauncher.js +241 -0
  291. package/lib/server/utils/profiler.js +65 -0
  292. package/lib/server/utils/socksProxy.js +511 -0
  293. package/lib/server/utils/spawnAsync.js +41 -0
  294. package/lib/server/utils/task.js +51 -0
  295. package/lib/server/utils/userAgent.js +98 -0
  296. package/lib/server/utils/wsServer.js +121 -0
  297. package/lib/server/utils/zipFile.js +74 -0
  298. package/lib/server/utils/zones.js +57 -0
  299. package/lib/server/webkit/protocol.d.js +16 -0
  300. package/lib/server/webkit/webkit.js +119 -0
  301. package/lib/server/webkit/wkAccessibility.js +237 -0
  302. package/lib/server/webkit/wkBrowser.js +339 -0
  303. package/lib/server/webkit/wkConnection.js +149 -0
  304. package/lib/server/webkit/wkExecutionContext.js +154 -0
  305. package/lib/server/webkit/wkInput.js +181 -0
  306. package/lib/server/webkit/wkInterceptableRequest.js +169 -0
  307. package/lib/server/webkit/wkPage.js +1134 -0
  308. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  309. package/lib/server/webkit/wkWorkers.js +104 -0
  310. package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
  311. package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
  312. package/lib/third_party/diff_match_patch.js +2222 -0
  313. package/lib/third_party/pixelmatch.js +255 -0
  314. package/lib/utils/ascii.js +31 -0
  315. package/lib/utils/comparators.js +171 -0
  316. package/lib/utils/crypto.js +33 -0
  317. package/lib/utils/debug.js +46 -0
  318. package/lib/utils/debugLogger.js +89 -0
  319. package/lib/utils/env.js +49 -0
  320. package/lib/utils/eventsHelper.js +38 -0
  321. package/lib/utils/fileUtils.js +205 -0
  322. package/lib/utils/glob.js +83 -0
  323. package/lib/utils/happy-eyeballs.js +160 -0
  324. package/lib/utils/headers.js +52 -0
  325. package/lib/utils/hostPlatform.js +128 -0
  326. package/lib/utils/httpServer.js +236 -0
  327. package/lib/utils/index.js +346 -0
  328. package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
  329. package/lib/utils/isomorphic/assert.js +31 -0
  330. package/lib/utils/isomorphic/colors.js +72 -0
  331. package/lib/utils/isomorphic/cssParser.js +245 -0
  332. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  333. package/lib/utils/isomorphic/headers.js +53 -0
  334. package/lib/utils/isomorphic/locatorGenerators.js +673 -0
  335. package/lib/utils/isomorphic/locatorParser.js +176 -0
  336. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  337. package/lib/utils/isomorphic/manualPromise.js +114 -0
  338. package/lib/utils/isomorphic/mimeType.js +459 -0
  339. package/lib/utils/isomorphic/multimap.js +80 -0
  340. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  341. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  342. package/lib/utils/isomorphic/rtti.js +43 -0
  343. package/lib/utils/isomorphic/selectorParser.js +386 -0
  344. package/lib/utils/isomorphic/semaphore.js +54 -0
  345. package/lib/utils/isomorphic/stackTrace.js +158 -0
  346. package/lib/utils/isomorphic/stringUtils.js +155 -0
  347. package/lib/utils/isomorphic/time.js +49 -0
  348. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  349. package/lib/utils/isomorphic/traceUtils.js +58 -0
  350. package/lib/utils/isomorphic/types.js +16 -0
  351. package/lib/utils/isomorphic/urlMatch.js +176 -0
  352. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  353. package/lib/utils/linuxUtils.js +78 -0
  354. package/lib/utils/manualPromise.js +109 -0
  355. package/lib/utils/mimeType.js +29 -0
  356. package/lib/utils/multimap.js +75 -0
  357. package/lib/utils/network.js +188 -0
  358. package/lib/utils/processLauncher.js +248 -0
  359. package/lib/utils/profiler.js +53 -0
  360. package/lib/utils/rtti.js +44 -0
  361. package/lib/utils/semaphore.js +51 -0
  362. package/lib/utils/spawnAsync.js +45 -0
  363. package/lib/utils/stackTrace.js +121 -0
  364. package/lib/utils/task.js +58 -0
  365. package/lib/utils/time.js +37 -0
  366. package/lib/utils/timeoutRunner.js +66 -0
  367. package/lib/utils/traceUtils.js +44 -0
  368. package/lib/utils/userAgent.js +105 -0
  369. package/lib/utils/wsServer.js +127 -0
  370. package/lib/utils/zipFile.js +75 -0
  371. package/lib/utils/zones.js +62 -0
  372. package/lib/utils.js +107 -0
  373. package/lib/utilsBundle.js +109 -0
  374. package/lib/utilsBundleImpl/index.js +218 -0
  375. package/lib/utilsBundleImpl/xdg-open +1066 -0
  376. package/lib/vite/htmlReport/index.html +84 -0
  377. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
  378. package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
  379. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  380. package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
  381. package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
  382. package/lib/vite/recorder/index.html +29 -0
  383. package/lib/vite/recorder/playwright-logo.svg +9 -0
  384. package/lib/vite/traceViewer/assets/codeMirrorModule-Bhnc5o2x.js +24 -0
  385. package/lib/vite/traceViewer/assets/defaultSettingsView-ClwvkA2N.js +265 -0
  386. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  387. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
  388. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  389. package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
  390. package/lib/vite/traceViewer/index.DFO9NNF5.js +2 -0
  391. package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
  392. package/lib/vite/traceViewer/index.html +43 -0
  393. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  394. package/lib/vite/traceViewer/snapshot.html +21 -0
  395. package/lib/vite/traceViewer/sw.bundle.js +3 -0
  396. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  397. package/lib/vite/traceViewer/uiMode.Shu3QS-1.js +5 -0
  398. package/lib/vite/traceViewer/uiMode.html +17 -0
  399. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  400. package/lib/zipBundle.js +34 -0
  401. package/lib/zipBundleImpl.js +5 -0
  402. package/package.json +43 -0
  403. package/types/protocol.d.ts +23130 -0
  404. package/types/structs.d.ts +45 -0
  405. package/types/types.d.ts +22857 -0
@@ -0,0 +1,157 @@
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 harBackend_exports = {};
30
+ __export(harBackend_exports, {
31
+ HarBackend: () => HarBackend
32
+ });
33
+ module.exports = __toCommonJS(harBackend_exports);
34
+ var import_fs = __toESM(require("fs"));
35
+ var import_path = __toESM(require("path"));
36
+ var import_crypto = require("./utils/crypto");
37
+ const redirectStatus = [301, 302, 303, 307, 308];
38
+ class HarBackend {
39
+ constructor(harFile, baseDir, zipFile) {
40
+ this.id = (0, import_crypto.createGuid)();
41
+ this._harFile = harFile;
42
+ this._baseDir = baseDir;
43
+ this._zipFile = zipFile;
44
+ }
45
+ async lookup(url, method, headers, postData, isNavigationRequest) {
46
+ let entry;
47
+ try {
48
+ entry = await this._harFindResponse(url, method, headers, postData);
49
+ } catch (e) {
50
+ return { action: "error", message: "HAR error: " + e.message };
51
+ }
52
+ if (!entry)
53
+ return { action: "noentry" };
54
+ if (entry.request.url !== url && isNavigationRequest)
55
+ return { action: "redirect", redirectURL: entry.request.url };
56
+ const response = entry.response;
57
+ try {
58
+ const buffer = await this._loadContent(response.content);
59
+ return {
60
+ action: "fulfill",
61
+ status: response.status,
62
+ headers: response.headers,
63
+ body: buffer
64
+ };
65
+ } catch (e) {
66
+ return { action: "error", message: e.message };
67
+ }
68
+ }
69
+ async _loadContent(content) {
70
+ const file = content._file;
71
+ let buffer;
72
+ if (file) {
73
+ if (this._zipFile)
74
+ buffer = await this._zipFile.read(file);
75
+ else
76
+ buffer = await import_fs.default.promises.readFile(import_path.default.resolve(this._baseDir, file));
77
+ } else {
78
+ buffer = Buffer.from(content.text || "", content.encoding === "base64" ? "base64" : "utf-8");
79
+ }
80
+ return buffer;
81
+ }
82
+ async _harFindResponse(url, method, headers, postData) {
83
+ const harLog = this._harFile.log;
84
+ const visited = /* @__PURE__ */ new Set();
85
+ while (true) {
86
+ const entries = [];
87
+ for (const candidate of harLog.entries) {
88
+ if (candidate.request.url !== url || candidate.request.method !== method)
89
+ continue;
90
+ if (method === "POST" && postData && candidate.request.postData) {
91
+ const buffer = await this._loadContent(candidate.request.postData);
92
+ if (!buffer.equals(postData)) {
93
+ const boundary = multipartBoundary(headers);
94
+ if (!boundary)
95
+ continue;
96
+ const candidataBoundary = multipartBoundary(candidate.request.headers);
97
+ if (!candidataBoundary)
98
+ continue;
99
+ if (postData.toString().replaceAll(boundary, "") !== buffer.toString().replaceAll(candidataBoundary, ""))
100
+ continue;
101
+ }
102
+ }
103
+ entries.push(candidate);
104
+ }
105
+ if (!entries.length)
106
+ return;
107
+ let entry = entries[0];
108
+ if (entries.length > 1) {
109
+ const list = [];
110
+ for (const candidate of entries) {
111
+ const matchingHeaders = countMatchingHeaders(candidate.request.headers, headers);
112
+ list.push({ candidate, matchingHeaders });
113
+ }
114
+ list.sort((a, b) => b.matchingHeaders - a.matchingHeaders);
115
+ entry = list[0].candidate;
116
+ }
117
+ if (visited.has(entry))
118
+ throw new Error(`Found redirect cycle for ${url}`);
119
+ visited.add(entry);
120
+ const locationHeader = entry.response.headers.find((h) => h.name.toLowerCase() === "location");
121
+ if (redirectStatus.includes(entry.response.status) && locationHeader) {
122
+ const locationURL = new URL(locationHeader.value, url);
123
+ url = locationURL.toString();
124
+ if ((entry.response.status === 301 || entry.response.status === 302) && method === "POST" || entry.response.status === 303 && !["GET", "HEAD"].includes(method)) {
125
+ method = "GET";
126
+ }
127
+ continue;
128
+ }
129
+ return entry;
130
+ }
131
+ }
132
+ dispose() {
133
+ this._zipFile?.close();
134
+ }
135
+ }
136
+ function countMatchingHeaders(harHeaders, headers) {
137
+ const set = new Set(headers.map((h) => h.name.toLowerCase() + ":" + h.value));
138
+ let matches = 0;
139
+ for (const h of harHeaders) {
140
+ if (set.has(h.name.toLowerCase() + ":" + h.value))
141
+ ++matches;
142
+ }
143
+ return matches;
144
+ }
145
+ function multipartBoundary(headers) {
146
+ const contentType = headers.find((h) => h.name.toLowerCase() === "content-type");
147
+ if (!contentType?.value.includes("multipart/form-data"))
148
+ return void 0;
149
+ const boundary = contentType.value.match(/boundary=(\S+)/);
150
+ if (boundary)
151
+ return boundary[1];
152
+ return void 0;
153
+ }
154
+ // Annotate the CommonJS export names for ESM import in node:
155
+ 0 && (module.exports = {
156
+ HarBackend
157
+ });
@@ -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 helper_exports = {};
20
+ __export(helper_exports, {
21
+ helper: () => helper
22
+ });
23
+ module.exports = __toCommonJS(helper_exports);
24
+ var import_debugLogger = require("./utils/debugLogger");
25
+ var import_eventsHelper = require("./utils/eventsHelper");
26
+ const MAX_LOG_LENGTH = process.env.MAX_LOG_LENGTH ? +process.env.MAX_LOG_LENGTH : Infinity;
27
+ class Helper {
28
+ static completeUserURL(urlString) {
29
+ if (urlString.startsWith("localhost") || urlString.startsWith("127.0.0.1"))
30
+ urlString = "http://" + urlString;
31
+ return urlString;
32
+ }
33
+ static enclosingIntRect(rect) {
34
+ const x = Math.floor(rect.x + 1e-3);
35
+ const y = Math.floor(rect.y + 1e-3);
36
+ const x2 = Math.ceil(rect.x + rect.width - 1e-3);
37
+ const y2 = Math.ceil(rect.y + rect.height - 1e-3);
38
+ return { x, y, width: x2 - x, height: y2 - y };
39
+ }
40
+ static enclosingIntSize(size) {
41
+ return { width: Math.floor(size.width + 1e-3), height: Math.floor(size.height + 1e-3) };
42
+ }
43
+ static getViewportSizeFromWindowFeatures(features) {
44
+ const widthString = features.find((f) => f.startsWith("width="));
45
+ const heightString = features.find((f) => f.startsWith("height="));
46
+ const width = widthString ? parseInt(widthString.substring(6), 10) : NaN;
47
+ const height = heightString ? parseInt(heightString.substring(7), 10) : NaN;
48
+ if (!Number.isNaN(width) && !Number.isNaN(height))
49
+ return { width, height };
50
+ return null;
51
+ }
52
+ static waitForEvent(progress, emitter, event, predicate) {
53
+ const listeners = [];
54
+ const dispose = () => import_eventsHelper.eventsHelper.removeEventListeners(listeners);
55
+ const promise = progress.race(new Promise((resolve, reject) => {
56
+ listeners.push(import_eventsHelper.eventsHelper.addEventListener(emitter, event, (eventArg) => {
57
+ try {
58
+ if (predicate && !predicate(eventArg))
59
+ return;
60
+ resolve(eventArg);
61
+ } catch (e) {
62
+ reject(e);
63
+ }
64
+ }));
65
+ })).finally(() => dispose());
66
+ return { promise, dispose };
67
+ }
68
+ static secondsToRoundishMillis(value) {
69
+ return (value * 1e6 | 0) / 1e3;
70
+ }
71
+ static millisToRoundishMillis(value) {
72
+ return (value * 1e3 | 0) / 1e3;
73
+ }
74
+ static debugProtocolLogger(protocolLogger) {
75
+ return (direction, message) => {
76
+ if (protocolLogger)
77
+ protocolLogger(direction, message);
78
+ if (import_debugLogger.debugLogger.isEnabled("protocol")) {
79
+ let text = JSON.stringify(message);
80
+ if (text.length > MAX_LOG_LENGTH)
81
+ text = text.substring(0, MAX_LOG_LENGTH / 2) + " <<<<<( LOG TRUNCATED )>>>>> " + text.substring(text.length - MAX_LOG_LENGTH / 2);
82
+ import_debugLogger.debugLogger.log("protocol", (direction === "send" ? "SEND \u25BA " : "\u25C0 RECV ") + text);
83
+ }
84
+ };
85
+ }
86
+ static formatBrowserLogs(logs, disconnectReason) {
87
+ if (!disconnectReason && !logs.length)
88
+ return "";
89
+ return "\n" + (disconnectReason ? disconnectReason + "\n" : "") + logs.join("\n");
90
+ }
91
+ }
92
+ const helper = Helper;
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ helper
96
+ });
@@ -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 server_exports = {};
20
+ __export(server_exports, {
21
+ DispatcherConnection: () => import_dispatcher.DispatcherConnection,
22
+ PlaywrightDispatcher: () => import_playwrightDispatcher.PlaywrightDispatcher,
23
+ Registry: () => import_registry.Registry,
24
+ RootDispatcher: () => import_dispatcher.RootDispatcher,
25
+ createPlaywright: () => import_playwright.createPlaywright,
26
+ installBrowsersForNpmInstall: () => import_registry.installBrowsersForNpmInstall,
27
+ installRootRedirect: () => import_traceViewer.installRootRedirect,
28
+ openTraceInBrowser: () => import_traceViewer.openTraceInBrowser,
29
+ openTraceViewerApp: () => import_traceViewer.openTraceViewerApp,
30
+ registry: () => import_registry.registry,
31
+ registryDirectory: () => import_registry.registryDirectory,
32
+ runTraceViewerApp: () => import_traceViewer.runTraceViewerApp,
33
+ startTraceViewerServer: () => import_traceViewer.startTraceViewerServer,
34
+ writeDockerVersion: () => import_registry.writeDockerVersion
35
+ });
36
+ module.exports = __toCommonJS(server_exports);
37
+ var import_registry = require("./registry");
38
+ var import_dispatcher = require("./dispatchers/dispatcher");
39
+ var import_playwrightDispatcher = require("./dispatchers/playwrightDispatcher");
40
+ var import_playwright = require("./playwright");
41
+ var import_traceViewer = require("./trace/viewer/traceViewer");
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ DispatcherConnection,
45
+ PlaywrightDispatcher,
46
+ Registry,
47
+ RootDispatcher,
48
+ createPlaywright,
49
+ installBrowsersForNpmInstall,
50
+ installRootRedirect,
51
+ openTraceInBrowser,
52
+ openTraceViewerApp,
53
+ registry,
54
+ registryDirectory,
55
+ runTraceViewerApp,
56
+ startTraceViewerServer,
57
+ writeDockerVersion
58
+ });
@@ -0,0 +1,273 @@
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 input_exports = {};
30
+ __export(input_exports, {
31
+ Keyboard: () => Keyboard,
32
+ Mouse: () => Mouse,
33
+ Touchscreen: () => Touchscreen,
34
+ keypadLocation: () => keypadLocation,
35
+ resolveSmartModifier: () => resolveSmartModifier,
36
+ resolveSmartModifierString: () => resolveSmartModifierString
37
+ });
38
+ module.exports = __toCommonJS(input_exports);
39
+ var import_utils = require("../utils");
40
+ var keyboardLayout = __toESM(require("./usKeyboardLayout"));
41
+ var import_dom = require("./dom");
42
+ const keypadLocation = keyboardLayout.keypadLocation;
43
+ const kModifiers = ["Alt", "Control", "Meta", "Shift"];
44
+ class Keyboard {
45
+ constructor(raw, page) {
46
+ this._pressedModifiers = /* @__PURE__ */ new Set();
47
+ this._pressedKeys = /* @__PURE__ */ new Set();
48
+ this._raw = raw;
49
+ this._page = page;
50
+ }
51
+ async down(progress, key) {
52
+ const description = this._keyDescriptionForString(key);
53
+ const autoRepeat = this._pressedKeys.has(description.code);
54
+ this._pressedKeys.add(description.code);
55
+ if (kModifiers.includes(description.key))
56
+ this._pressedModifiers.add(description.key);
57
+ await this._raw.keydown(progress, this._pressedModifiers, key, description, autoRepeat);
58
+ }
59
+ _keyDescriptionForString(str) {
60
+ const keyString = resolveSmartModifierString(str);
61
+ let description = usKeyboardLayout.get(keyString);
62
+ if (!description)
63
+ throw new import_dom.NonRecoverableDOMError(`Unknown key: "${keyString}"`);
64
+ const shift = this._pressedModifiers.has("Shift");
65
+ description = shift && description.shifted ? description.shifted : description;
66
+ if (this._pressedModifiers.size > 1 || !this._pressedModifiers.has("Shift") && this._pressedModifiers.size === 1)
67
+ return { ...description, text: "" };
68
+ return description;
69
+ }
70
+ async up(progress, key) {
71
+ const description = this._keyDescriptionForString(key);
72
+ if (kModifiers.includes(description.key))
73
+ this._pressedModifiers.delete(description.key);
74
+ this._pressedKeys.delete(description.code);
75
+ await this._raw.keyup(progress, this._pressedModifiers, key, description);
76
+ }
77
+ async insertText(progress, text) {
78
+ await this._raw.sendText(progress, text);
79
+ }
80
+ async type(progress, text, options) {
81
+ const delay = options && options.delay || void 0;
82
+ for (const char of text) {
83
+ if (usKeyboardLayout.has(char)) {
84
+ await this.press(progress, char, { delay });
85
+ } else {
86
+ if (delay)
87
+ await progress.wait(delay);
88
+ await this.insertText(progress, char);
89
+ }
90
+ }
91
+ }
92
+ async press(progress, key, options = {}) {
93
+ function split(keyString) {
94
+ const keys = [];
95
+ let building = "";
96
+ for (const char of keyString) {
97
+ if (char === "+" && building) {
98
+ keys.push(building);
99
+ building = "";
100
+ } else {
101
+ building += char;
102
+ }
103
+ }
104
+ keys.push(building);
105
+ return keys;
106
+ }
107
+ const tokens = split(key);
108
+ key = tokens[tokens.length - 1];
109
+ for (let i = 0; i < tokens.length - 1; ++i)
110
+ await this.down(progress, tokens[i]);
111
+ await this.down(progress, key);
112
+ if (options.delay)
113
+ await progress.wait(options.delay);
114
+ await this.up(progress, key);
115
+ for (let i = tokens.length - 2; i >= 0; --i)
116
+ await this.up(progress, tokens[i]);
117
+ }
118
+ async ensureModifiers(progress, mm) {
119
+ const modifiers = mm.map(resolveSmartModifier);
120
+ for (const modifier of modifiers) {
121
+ if (!kModifiers.includes(modifier))
122
+ throw new Error("Unknown modifier " + modifier);
123
+ }
124
+ const restore = Array.from(this._pressedModifiers);
125
+ for (const key of kModifiers) {
126
+ const needDown = modifiers.includes(key);
127
+ const isDown = this._pressedModifiers.has(key);
128
+ if (needDown && !isDown)
129
+ await this.down(progress, key);
130
+ else if (!needDown && isDown)
131
+ await this.up(progress, key);
132
+ }
133
+ return restore;
134
+ }
135
+ _modifiers() {
136
+ return this._pressedModifiers;
137
+ }
138
+ }
139
+ function resolveSmartModifierString(key) {
140
+ if (key === "ControlOrMeta")
141
+ return process.platform === "darwin" ? "Meta" : "Control";
142
+ return key;
143
+ }
144
+ function resolveSmartModifier(m) {
145
+ return resolveSmartModifierString(m);
146
+ }
147
+ class Mouse {
148
+ constructor(raw, page) {
149
+ this._x = 0;
150
+ this._y = 0;
151
+ this._lastButton = "none";
152
+ this._buttons = /* @__PURE__ */ new Set();
153
+ this._raw = raw;
154
+ this._page = page;
155
+ this._keyboard = this._page.keyboard;
156
+ }
157
+ currentPoint() {
158
+ return { x: this._x, y: this._y };
159
+ }
160
+ async move(progress, x, y, options = {}) {
161
+ const { steps = 1 } = options;
162
+ const fromX = this._x;
163
+ const fromY = this._y;
164
+ this._x = x;
165
+ this._y = y;
166
+ for (let i = 1; i <= steps; i++) {
167
+ const middleX = fromX + (x - fromX) * (i / steps);
168
+ const middleY = fromY + (y - fromY) * (i / steps);
169
+ await this._raw.move(progress, middleX, middleY, this._lastButton, this._buttons, this._keyboard._modifiers(), !!options.forClick);
170
+ }
171
+ }
172
+ async down(progress, options = {}) {
173
+ const { button = "left", clickCount = 1 } = options;
174
+ this._lastButton = button;
175
+ this._buttons.add(button);
176
+ await this._raw.down(progress, this._x, this._y, this._lastButton, this._buttons, this._keyboard._modifiers(), clickCount);
177
+ }
178
+ async up(progress, options = {}) {
179
+ const { button = "left", clickCount = 1 } = options;
180
+ this._lastButton = "none";
181
+ this._buttons.delete(button);
182
+ await this._raw.up(progress, this._x, this._y, button, this._buttons, this._keyboard._modifiers(), clickCount);
183
+ }
184
+ async click(progress, x, y, options = {}) {
185
+ const { delay = null, clickCount = 1 } = options;
186
+ if (delay) {
187
+ this.move(progress, x, y, { forClick: true });
188
+ for (let cc = 1; cc <= clickCount; ++cc) {
189
+ await this.down(progress, { ...options, clickCount: cc });
190
+ await progress.wait(delay);
191
+ await this.up(progress, { ...options, clickCount: cc });
192
+ if (cc < clickCount)
193
+ await progress.wait(delay);
194
+ }
195
+ } else {
196
+ const promises = [];
197
+ promises.push(this.move(progress, x, y, { forClick: true }));
198
+ for (let cc = 1; cc <= clickCount; ++cc) {
199
+ promises.push(this.down(progress, { ...options, clickCount: cc }));
200
+ promises.push(this.up(progress, { ...options, clickCount: cc }));
201
+ }
202
+ await Promise.all(promises);
203
+ }
204
+ }
205
+ async wheel(progress, deltaX, deltaY) {
206
+ await this._raw.wheel(progress, this._x, this._y, this._buttons, this._keyboard._modifiers(), deltaX, deltaY);
207
+ }
208
+ }
209
+ const aliases = /* @__PURE__ */ new Map([
210
+ ["ShiftLeft", ["Shift"]],
211
+ ["ControlLeft", ["Control"]],
212
+ ["AltLeft", ["Alt"]],
213
+ ["MetaLeft", ["Meta"]],
214
+ ["Enter", ["\n", "\r"]]
215
+ ]);
216
+ const usKeyboardLayout = buildLayoutClosure(keyboardLayout.USKeyboardLayout);
217
+ function buildLayoutClosure(layout) {
218
+ const result = /* @__PURE__ */ new Map();
219
+ for (const code in layout) {
220
+ const definition = layout[code];
221
+ const description = {
222
+ key: definition.key || "",
223
+ keyCode: definition.keyCode || 0,
224
+ keyCodeWithoutLocation: definition.keyCodeWithoutLocation || definition.keyCode || 0,
225
+ code,
226
+ text: definition.text || "",
227
+ location: definition.location || 0
228
+ };
229
+ if (definition.key.length === 1)
230
+ description.text = description.key;
231
+ let shiftedDescription;
232
+ if (definition.shiftKey) {
233
+ (0, import_utils.assert)(definition.shiftKey.length === 1);
234
+ shiftedDescription = { ...description };
235
+ shiftedDescription.key = definition.shiftKey;
236
+ shiftedDescription.text = definition.shiftKey;
237
+ if (definition.shiftKeyCode)
238
+ shiftedDescription.keyCode = definition.shiftKeyCode;
239
+ }
240
+ result.set(code, { ...description, shifted: shiftedDescription });
241
+ if (aliases.has(code)) {
242
+ for (const alias of aliases.get(code))
243
+ result.set(alias, description);
244
+ }
245
+ if (definition.location)
246
+ continue;
247
+ if (description.key.length === 1)
248
+ result.set(description.key, description);
249
+ if (shiftedDescription)
250
+ result.set(shiftedDescription.key, { ...shiftedDescription, shifted: void 0 });
251
+ }
252
+ return result;
253
+ }
254
+ class Touchscreen {
255
+ constructor(raw, page) {
256
+ this._raw = raw;
257
+ this._page = page;
258
+ }
259
+ async tap(progress, x, y) {
260
+ if (!this._page.browserContext._options.hasTouch)
261
+ throw new Error("hasTouch must be enabled on the browser context before using the touchscreen.");
262
+ await this._raw.tap(progress, x, y, this._page.keyboard._modifiers());
263
+ }
264
+ }
265
+ // Annotate the CommonJS export names for ESM import in node:
266
+ 0 && (module.exports = {
267
+ Keyboard,
268
+ Mouse,
269
+ Touchscreen,
270
+ keypadLocation,
271
+ resolveSmartModifier,
272
+ resolveSmartModifierString
273
+ });
@@ -0,0 +1,69 @@
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 instrumentation_exports = {};
20
+ __export(instrumentation_exports, {
21
+ SdkObject: () => SdkObject,
22
+ createInstrumentation: () => createInstrumentation,
23
+ createRootSdkObject: () => createRootSdkObject
24
+ });
25
+ module.exports = __toCommonJS(instrumentation_exports);
26
+ var import_events = require("events");
27
+ var import_crypto = require("./utils/crypto");
28
+ class SdkObject extends import_events.EventEmitter {
29
+ constructor(parent, guidPrefix, guid) {
30
+ super();
31
+ this.guid = guid || `${guidPrefix || ""}@${(0, import_crypto.createGuid)()}`;
32
+ this.setMaxListeners(0);
33
+ this.attribution = { ...parent.attribution };
34
+ this.instrumentation = parent.instrumentation;
35
+ }
36
+ }
37
+ function createRootSdkObject() {
38
+ const fakeParent = { attribution: {}, instrumentation: createInstrumentation() };
39
+ const root = new SdkObject(fakeParent);
40
+ root.guid = "";
41
+ return root;
42
+ }
43
+ function createInstrumentation() {
44
+ const listeners = /* @__PURE__ */ new Map();
45
+ return new Proxy({}, {
46
+ get: (obj, prop) => {
47
+ if (typeof prop !== "string")
48
+ return obj[prop];
49
+ if (prop === "addListener")
50
+ return (listener, context) => listeners.set(listener, context);
51
+ if (prop === "removeListener")
52
+ return (listener) => listeners.delete(listener);
53
+ if (!prop.startsWith("on"))
54
+ return obj[prop];
55
+ return async (sdkObject, ...params) => {
56
+ for (const [listener, context] of listeners) {
57
+ if (!context || sdkObject.attribution.context === context)
58
+ await listener[prop]?.(sdkObject, ...params);
59
+ }
60
+ };
61
+ }
62
+ });
63
+ }
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ SdkObject,
67
+ createInstrumentation,
68
+ createRootSdkObject
69
+ });