@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,70 @@
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 download_exports = {};
30
+ __export(download_exports, {
31
+ Download: () => Download
32
+ });
33
+ module.exports = __toCommonJS(download_exports);
34
+ var import_path = __toESM(require("path"));
35
+ var import_page = require("./page");
36
+ var import_utils = require("../utils");
37
+ var import_artifact = require("./artifact");
38
+ class Download {
39
+ constructor(page, downloadsPath, uuid, url, suggestedFilename) {
40
+ const unaccessibleErrorMessage = page.browserContext._options.acceptDownloads === "deny" ? "Pass { acceptDownloads: true } when you are creating your browser context." : void 0;
41
+ this.artifact = new import_artifact.Artifact(page, import_path.default.join(downloadsPath, uuid), unaccessibleErrorMessage, () => {
42
+ return this._page.browserContext.cancelDownload(uuid);
43
+ });
44
+ this._page = page;
45
+ this.url = url;
46
+ this._suggestedFilename = suggestedFilename;
47
+ page.browserContext._downloads.add(this);
48
+ if (suggestedFilename !== void 0)
49
+ this._fireDownloadEvent();
50
+ }
51
+ page() {
52
+ return this._page;
53
+ }
54
+ _filenameSuggested(suggestedFilename) {
55
+ (0, import_utils.assert)(this._suggestedFilename === void 0);
56
+ this._suggestedFilename = suggestedFilename;
57
+ this._fireDownloadEvent();
58
+ }
59
+ suggestedFilename() {
60
+ return this._suggestedFilename;
61
+ }
62
+ _fireDownloadEvent() {
63
+ this._page.instrumentation.onDownload(this._page, this);
64
+ this._page.emit(import_page.Page.Events.Download, this);
65
+ }
66
+ }
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ Download
70
+ });
@@ -0,0 +1,270 @@
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 electron_exports = {};
30
+ __export(electron_exports, {
31
+ Electron: () => Electron,
32
+ ElectronApplication: () => ElectronApplication
33
+ });
34
+ module.exports = __toCommonJS(electron_exports);
35
+ var import_fs = __toESM(require("fs"));
36
+ var import_os = __toESM(require("os"));
37
+ var import_path = __toESM(require("path"));
38
+ var readline = __toESM(require("readline"));
39
+ var import_utils = require("../../utils");
40
+ var import_ascii = require("../utils/ascii");
41
+ var import_debugLogger = require("../utils/debugLogger");
42
+ var import_eventsHelper = require("../utils/eventsHelper");
43
+ var import_browserContext = require("../browserContext");
44
+ var import_crBrowser = require("../chromium/crBrowser");
45
+ var import_crConnection = require("../chromium/crConnection");
46
+ var import_crExecutionContext = require("../chromium/crExecutionContext");
47
+ var import_crProtocolHelper = require("../chromium/crProtocolHelper");
48
+ var import_console = require("../console");
49
+ var import_helper = require("../helper");
50
+ var import_instrumentation = require("../instrumentation");
51
+ var js = __toESM(require("../javascript"));
52
+ var import_processLauncher = require("../utils/processLauncher");
53
+ var import_transport = require("../transport");
54
+ const ARTIFACTS_FOLDER = import_path.default.join(import_os.default.tmpdir(), "playwright-artifacts-");
55
+ class ElectronApplication extends import_instrumentation.SdkObject {
56
+ constructor(parent, browser, nodeConnection, process2) {
57
+ super(parent, "electron-app");
58
+ this._nodeElectronHandlePromise = new import_utils.ManualPromise();
59
+ this._process = process2;
60
+ this._browserContext = browser._defaultContext;
61
+ this._nodeConnection = nodeConnection;
62
+ this._nodeSession = nodeConnection.rootSession;
63
+ this._nodeSession.on("Runtime.executionContextCreated", async (event) => {
64
+ if (!event.context.auxData || !event.context.auxData.isDefault)
65
+ return;
66
+ const crExecutionContext = new import_crExecutionContext.CRExecutionContext(this._nodeSession, event.context);
67
+ this._nodeExecutionContext = new js.ExecutionContext(this, crExecutionContext, "electron");
68
+ const { result: remoteObject } = await crExecutionContext._client.send("Runtime.evaluate", {
69
+ expression: `require('electron')`,
70
+ contextId: event.context.id,
71
+ // Needed after Electron 28 to get access to require: https://github.com/microsoft/playwright/issues/28048
72
+ includeCommandLineAPI: true
73
+ });
74
+ this._nodeElectronHandlePromise.resolve(new js.JSHandle(this._nodeExecutionContext, "object", "ElectronModule", remoteObject.objectId));
75
+ });
76
+ this._nodeSession.on("Runtime.consoleAPICalled", (event) => this._onConsoleAPI(event));
77
+ const appClosePromise = new Promise((f) => this.once(ElectronApplication.Events.Close, f));
78
+ this._browserContext.setCustomCloseHandler(async () => {
79
+ await this._browserContext.stopVideoRecording();
80
+ const electronHandle = await this._nodeElectronHandlePromise;
81
+ await electronHandle.evaluate(({ app }) => app.quit()).catch(() => {
82
+ });
83
+ this._nodeConnection.close();
84
+ await appClosePromise;
85
+ });
86
+ }
87
+ static {
88
+ this.Events = {
89
+ Close: "close",
90
+ Console: "console"
91
+ };
92
+ }
93
+ async _onConsoleAPI(event) {
94
+ if (event.executionContextId === 0) {
95
+ return;
96
+ }
97
+ if (!this._nodeExecutionContext)
98
+ return;
99
+ const args = event.args.map((arg) => (0, import_crExecutionContext.createHandle)(this._nodeExecutionContext, arg));
100
+ const message = new import_console.ConsoleMessage(null, event.type, void 0, args, (0, import_crProtocolHelper.toConsoleMessageLocation)(event.stackTrace));
101
+ this.emit(ElectronApplication.Events.Console, message);
102
+ }
103
+ async initialize() {
104
+ await this._nodeSession.send("Runtime.enable", {});
105
+ await this._nodeSession.send("Runtime.evaluate", { expression: "__playwright_run()" });
106
+ }
107
+ process() {
108
+ return this._process;
109
+ }
110
+ context() {
111
+ return this._browserContext;
112
+ }
113
+ async close() {
114
+ await this._browserContext.close({ reason: "Application exited" });
115
+ }
116
+ async browserWindow(page) {
117
+ const targetId = page.delegate._targetId;
118
+ const electronHandle = await this._nodeElectronHandlePromise;
119
+ return await electronHandle.evaluateHandle(({ BrowserWindow, webContents }, targetId2) => {
120
+ const wc = webContents.fromDevToolsTargetId(targetId2);
121
+ return BrowserWindow.fromWebContents(wc);
122
+ }, targetId);
123
+ }
124
+ }
125
+ class Electron extends import_instrumentation.SdkObject {
126
+ constructor(playwright) {
127
+ super(playwright, "electron");
128
+ this.logName = "browser";
129
+ }
130
+ async launch(progress, options) {
131
+ let app = void 0;
132
+ let electronArguments = ["--inspect=0", "--remote-debugging-port=0", ...options.args || []];
133
+ if (import_os.default.platform() === "linux") {
134
+ const runningAsRoot = process.geteuid && process.geteuid() === 0;
135
+ if (runningAsRoot && electronArguments.indexOf("--no-sandbox") === -1)
136
+ electronArguments.unshift("--no-sandbox");
137
+ }
138
+ const artifactsDir = await progress.race(import_fs.default.promises.mkdtemp(ARTIFACTS_FOLDER));
139
+ const browserLogsCollector = new import_debugLogger.RecentLogsCollector();
140
+ const env = options.env ? (0, import_processLauncher.envArrayToObject)(options.env) : process.env;
141
+ let command;
142
+ if (options.executablePath) {
143
+ command = options.executablePath;
144
+ } else {
145
+ try {
146
+ command = require("electron/index.js");
147
+ } catch (error) {
148
+ if (error?.code === "MODULE_NOT_FOUND") {
149
+ throw new Error("\n" + (0, import_ascii.wrapInASCIIBox)([
150
+ "Electron executablePath not found!",
151
+ "Please install it using `npm install -D electron` or set the executablePath to your Electron executable."
152
+ ].join("\n"), 1));
153
+ }
154
+ throw error;
155
+ }
156
+ electronArguments.unshift("-r", require.resolve("./loader"));
157
+ }
158
+ let shell = false;
159
+ if (process.platform === "win32") {
160
+ shell = true;
161
+ command = `"${command}"`;
162
+ electronArguments = electronArguments.map((arg) => `"${arg}"`);
163
+ }
164
+ delete env.NODE_OPTIONS;
165
+ const { launchedProcess, gracefullyClose, kill } = await (0, import_processLauncher.launchProcess)({
166
+ command,
167
+ args: electronArguments,
168
+ env,
169
+ log: (message) => {
170
+ progress.log(message);
171
+ browserLogsCollector.log(message);
172
+ },
173
+ shell,
174
+ stdio: "pipe",
175
+ cwd: options.cwd,
176
+ tempDirectories: [artifactsDir],
177
+ attemptToGracefullyClose: () => app.close(),
178
+ handleSIGINT: true,
179
+ handleSIGTERM: true,
180
+ handleSIGHUP: true,
181
+ onExit: () => app?.emit(ElectronApplication.Events.Close)
182
+ });
183
+ const waitForXserverError = waitForLine(progress, launchedProcess, /Unable to open X display/).then(() => {
184
+ throw new Error([
185
+ "Unable to open X display!",
186
+ `================================`,
187
+ "Most likely this is because there is no X server available.",
188
+ "Use 'xvfb-run' on Linux to launch your tests with an emulated display server.",
189
+ "For example: 'xvfb-run npm run test:e2e'",
190
+ `================================`,
191
+ progress.metadata.log
192
+ ].join("\n"));
193
+ });
194
+ const nodeMatchPromise = waitForLine(progress, launchedProcess, /^Debugger listening on (ws:\/\/.*)$/);
195
+ const chromeMatchPromise = waitForLine(progress, launchedProcess, /^DevTools listening on (ws:\/\/.*)$/);
196
+ const debuggerDisconnectPromise = waitForLine(progress, launchedProcess, /Waiting for the debugger to disconnect\.\.\./);
197
+ try {
198
+ const nodeMatch = await nodeMatchPromise;
199
+ const nodeTransport = await import_transport.WebSocketTransport.connect(progress, nodeMatch[1]);
200
+ const nodeConnection = new import_crConnection.CRConnection(this, nodeTransport, import_helper.helper.debugProtocolLogger(), browserLogsCollector);
201
+ debuggerDisconnectPromise.then(() => {
202
+ nodeTransport.close();
203
+ }).catch(() => {
204
+ });
205
+ const chromeMatch = await Promise.race([
206
+ chromeMatchPromise,
207
+ waitForXserverError
208
+ ]);
209
+ const chromeTransport = await import_transport.WebSocketTransport.connect(progress, chromeMatch[1]);
210
+ const browserProcess = {
211
+ onclose: void 0,
212
+ process: launchedProcess,
213
+ close: gracefullyClose,
214
+ kill
215
+ };
216
+ const contextOptions = {
217
+ ...options,
218
+ noDefaultViewport: true
219
+ };
220
+ const browserOptions = {
221
+ name: "electron",
222
+ isChromium: true,
223
+ headful: true,
224
+ persistent: contextOptions,
225
+ browserProcess,
226
+ protocolLogger: import_helper.helper.debugProtocolLogger(),
227
+ browserLogsCollector,
228
+ artifactsDir,
229
+ downloadsPath: artifactsDir,
230
+ tracesDir: options.tracesDir || artifactsDir,
231
+ originalLaunchOptions: {}
232
+ };
233
+ (0, import_browserContext.validateBrowserContextOptions)(contextOptions, browserOptions);
234
+ const browser = await progress.race(import_crBrowser.CRBrowser.connect(this.attribution.playwright, chromeTransport, browserOptions));
235
+ app = new ElectronApplication(this, browser, nodeConnection, launchedProcess);
236
+ await progress.race(app.initialize());
237
+ return app;
238
+ } catch (error) {
239
+ await kill();
240
+ throw error;
241
+ }
242
+ }
243
+ }
244
+ async function waitForLine(progress, process2, regex) {
245
+ const promise = new import_utils.ManualPromise();
246
+ const rl = readline.createInterface({ input: process2.stderr });
247
+ const failError = new Error("Process failed to launch!");
248
+ const listeners = [
249
+ import_eventsHelper.eventsHelper.addEventListener(rl, "line", onLine),
250
+ import_eventsHelper.eventsHelper.addEventListener(rl, "close", () => promise.reject(failError)),
251
+ import_eventsHelper.eventsHelper.addEventListener(process2, "exit", () => promise.reject(failError)),
252
+ // It is Ok to remove error handler because we did not create process and there is another listener.
253
+ import_eventsHelper.eventsHelper.addEventListener(process2, "error", () => promise.reject(failError))
254
+ ];
255
+ function onLine(line) {
256
+ const match = line.match(regex);
257
+ if (match)
258
+ promise.resolve(match);
259
+ }
260
+ try {
261
+ return await progress.race(promise);
262
+ } finally {
263
+ import_eventsHelper.eventsHelper.removeEventListeners(listeners);
264
+ }
265
+ }
266
+ // Annotate the CommonJS export names for ESM import in node:
267
+ 0 && (module.exports = {
268
+ Electron,
269
+ ElectronApplication
270
+ });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ const { app } = require("electron");
3
+ const { chromiumSwitches } = require("../chromium/chromiumSwitches");
4
+ process.argv.splice(1, process.argv.indexOf("--remote-debugging-port=0"));
5
+ for (const arg of chromiumSwitches()) {
6
+ const match = arg.match(/--([^=]*)=?(.*)/);
7
+ app.commandLine.appendSwitch(match[1], match[2]);
8
+ }
9
+ const originalWhenReady = app.whenReady();
10
+ const originalEmit = app.emit.bind(app);
11
+ let readyEventArgs;
12
+ app.emit = (event, ...args) => {
13
+ if (event === "ready") {
14
+ readyEventArgs = args;
15
+ return app.listenerCount("ready") > 0;
16
+ }
17
+ return originalEmit(event, ...args);
18
+ };
19
+ let isReady = false;
20
+ let whenReadyCallback;
21
+ const whenReadyPromise = new Promise((f) => whenReadyCallback = f);
22
+ app.isReady = () => isReady;
23
+ app.whenReady = () => whenReadyPromise;
24
+ globalThis.__playwright_run = async () => {
25
+ const event = await originalWhenReady;
26
+ isReady = true;
27
+ whenReadyCallback(event);
28
+ originalEmit("ready", ...readyEventArgs);
29
+ };
@@ -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 errors_exports = {};
20
+ __export(errors_exports, {
21
+ TargetClosedError: () => TargetClosedError,
22
+ TimeoutError: () => TimeoutError,
23
+ isTargetClosedError: () => isTargetClosedError,
24
+ parseError: () => parseError,
25
+ serializeError: () => serializeError
26
+ });
27
+ module.exports = __toCommonJS(errors_exports);
28
+ var import_serializers = require("../protocol/serializers");
29
+ var import_utils = require("../utils");
30
+ class CustomError extends Error {
31
+ constructor(message) {
32
+ super(message);
33
+ this.name = this.constructor.name;
34
+ }
35
+ }
36
+ class TimeoutError extends CustomError {
37
+ }
38
+ class TargetClosedError extends CustomError {
39
+ constructor(cause, logs) {
40
+ super((cause || "Target page, context or browser has been closed") + (logs || ""));
41
+ }
42
+ }
43
+ function isTargetClosedError(error) {
44
+ return error instanceof TargetClosedError || error.name === "TargetClosedError";
45
+ }
46
+ function serializeError(e) {
47
+ if ((0, import_utils.isError)(e))
48
+ return { error: { message: e.message, stack: e.stack, name: e.name } };
49
+ return { value: (0, import_serializers.serializeValue)(e, (value) => ({ fallThrough: value })) };
50
+ }
51
+ function parseError(error) {
52
+ if (!error.error) {
53
+ if (error.value === void 0)
54
+ throw new Error("Serialized error must have either an error or a value");
55
+ return (0, import_serializers.parseSerializedValue)(error.value, void 0);
56
+ }
57
+ const e = new Error(error.error.message);
58
+ e.stack = error.error.stack || "";
59
+ e.name = error.error.name;
60
+ return e;
61
+ }
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ TargetClosedError,
65
+ TimeoutError,
66
+ isTargetClosedError,
67
+ parseError,
68
+ serializeError
69
+ });