@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,328 @@
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 browserType_exports = {};
30
+ __export(browserType_exports, {
31
+ BrowserType: () => BrowserType,
32
+ kNoXServerRunningError: () => kNoXServerRunningError
33
+ });
34
+ module.exports = __toCommonJS(browserType_exports);
35
+ var import_fs = __toESM(require("fs"));
36
+ var import_os = __toESM(require("os"));
37
+ var import_path = __toESM(require("path"));
38
+ var import_browserContext = require("./browserContext");
39
+ var import_debug = require("./utils/debug");
40
+ var import_assert = require("../utils/isomorphic/assert");
41
+ var import_manualPromise = require("../utils/isomorphic/manualPromise");
42
+ var import_time = require("../utils/isomorphic/time");
43
+ var import_fileUtils = require("./utils/fileUtils");
44
+ var import_helper = require("./helper");
45
+ var import_instrumentation = require("./instrumentation");
46
+ var import_pipeTransport = require("./pipeTransport");
47
+ var import_processLauncher = require("./utils/processLauncher");
48
+ var import_protocolError = require("./protocolError");
49
+ var import_registry = require("./registry");
50
+ var import_socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
51
+ var import_transport = require("./transport");
52
+ var import_debugLogger = require("./utils/debugLogger");
53
+ const kNoXServerRunningError = "Looks like you launched a headed browser without having a XServer running.\nSet either 'headless: true' or use 'xvfb-run <your-playwright-app>' before running Playwright.\n\n<3 Playwright Team";
54
+ class BrowserType extends import_instrumentation.SdkObject {
55
+ constructor(parent, browserName) {
56
+ super(parent, "browser-type");
57
+ this.attribution.browserType = this;
58
+ this._name = browserName;
59
+ this.logName = "browser";
60
+ }
61
+ executablePath() {
62
+ return import_registry.registry.findExecutable(this._name).executablePath(this.attribution.playwright.options.sdkLanguage) || "";
63
+ }
64
+ name() {
65
+ return this._name;
66
+ }
67
+ async launch(progress, options, protocolLogger) {
68
+ options = this._validateLaunchOptions(options);
69
+ const seleniumHubUrl = options.__testHookSeleniumRemoteURL || process.env.SELENIUM_REMOTE_URL;
70
+ if (seleniumHubUrl)
71
+ return this._launchWithSeleniumHub(progress, seleniumHubUrl, options);
72
+ return this._innerLaunchWithRetries(progress, options, void 0, import_helper.helper.debugProtocolLogger(protocolLogger)).catch((e) => {
73
+ throw this._rewriteStartupLog(e);
74
+ });
75
+ }
76
+ async launchPersistentContext(progress, userDataDir, options) {
77
+ const launchOptions = this._validateLaunchOptions(options);
78
+ let clientCertificatesProxy;
79
+ if (options.clientCertificates?.length) {
80
+ clientCertificatesProxy = await import_socksClientCertificatesInterceptor.ClientCertificatesProxy.create(progress, options);
81
+ launchOptions.proxyOverride = clientCertificatesProxy.proxySettings();
82
+ options = { ...options };
83
+ options.internalIgnoreHTTPSErrors = true;
84
+ }
85
+ try {
86
+ const browser = await this._innerLaunchWithRetries(progress, launchOptions, options, import_helper.helper.debugProtocolLogger(), userDataDir).catch((e) => {
87
+ throw this._rewriteStartupLog(e);
88
+ });
89
+ browser._defaultContext._clientCertificatesProxy = clientCertificatesProxy;
90
+ return browser._defaultContext;
91
+ } catch (error) {
92
+ await clientCertificatesProxy?.close().catch(() => {
93
+ });
94
+ throw error;
95
+ }
96
+ }
97
+ async _innerLaunchWithRetries(progress, options, persistent, protocolLogger, userDataDir) {
98
+ try {
99
+ return await this._innerLaunch(progress, options, persistent, protocolLogger, userDataDir);
100
+ } catch (error) {
101
+ const errorMessage = typeof error === "object" && typeof error.message === "string" ? error.message : "";
102
+ if (errorMessage.includes("Inconsistency detected by ld.so")) {
103
+ progress.log(`<restarting browser due to hitting race condition in glibc>`);
104
+ return this._innerLaunch(progress, options, persistent, protocolLogger, userDataDir);
105
+ }
106
+ throw error;
107
+ }
108
+ }
109
+ async _innerLaunch(progress, options, persistent, protocolLogger, maybeUserDataDir) {
110
+ options.proxy = options.proxy ? (0, import_browserContext.normalizeProxySettings)(options.proxy) : void 0;
111
+ const browserLogsCollector = new import_debugLogger.RecentLogsCollector();
112
+ const { browserProcess, userDataDir, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, maybeUserDataDir);
113
+ try {
114
+ if (options.__testHookBeforeCreateBrowser)
115
+ await progress.race(options.__testHookBeforeCreateBrowser());
116
+ const browserOptions = {
117
+ name: this._name,
118
+ isChromium: this._name === "chromium",
119
+ channel: options.channel,
120
+ slowMo: options.slowMo,
121
+ persistent,
122
+ headful: !options.headless,
123
+ artifactsDir,
124
+ downloadsPath: options.downloadsPath || artifactsDir,
125
+ tracesDir: options.tracesDir || artifactsDir,
126
+ browserProcess,
127
+ customExecutablePath: options.executablePath,
128
+ proxy: options.proxy,
129
+ protocolLogger,
130
+ browserLogsCollector,
131
+ wsEndpoint: transport instanceof import_transport.WebSocketTransport ? transport.wsEndpoint : void 0,
132
+ originalLaunchOptions: options
133
+ };
134
+ if (persistent)
135
+ (0, import_browserContext.validateBrowserContextOptions)(persistent, browserOptions);
136
+ copyTestHooks(options, browserOptions);
137
+ const browser = await progress.race(this.connectToTransport(transport, browserOptions, browserLogsCollector));
138
+ browser._userDataDirForTest = userDataDir;
139
+ if (persistent && !options.ignoreAllDefaultArgs)
140
+ await browser._defaultContext._loadDefaultContext(progress);
141
+ return browser;
142
+ } catch (error) {
143
+ await browserProcess.close().catch(() => {
144
+ });
145
+ throw error;
146
+ }
147
+ }
148
+ async _prepareToLaunch(options, isPersistent, userDataDir) {
149
+ const {
150
+ ignoreDefaultArgs,
151
+ ignoreAllDefaultArgs,
152
+ args = [],
153
+ executablePath = null
154
+ } = options;
155
+ await this._createArtifactDirs(options);
156
+ const tempDirectories = [];
157
+ const artifactsDir = await import_fs.default.promises.mkdtemp(import_path.default.join(import_os.default.tmpdir(), "playwright-artifacts-"));
158
+ tempDirectories.push(artifactsDir);
159
+ if (userDataDir) {
160
+ (0, import_assert.assert)(import_path.default.isAbsolute(userDataDir), "userDataDir must be an absolute path");
161
+ if (!await (0, import_fileUtils.existsAsync)(userDataDir))
162
+ await import_fs.default.promises.mkdir(userDataDir, { recursive: true, mode: 448 });
163
+ } else {
164
+ userDataDir = await import_fs.default.promises.mkdtemp(import_path.default.join(import_os.default.tmpdir(), `playwright_${this._name}dev_profile-`));
165
+ tempDirectories.push(userDataDir);
166
+ }
167
+ await this.prepareUserDataDir(options, userDataDir);
168
+ const browserArguments = [];
169
+ if (ignoreAllDefaultArgs)
170
+ browserArguments.push(...args);
171
+ else if (ignoreDefaultArgs)
172
+ browserArguments.push(...(await this.defaultArgs(options, isPersistent, userDataDir)).filter((arg) => ignoreDefaultArgs.indexOf(arg) === -1));
173
+ else
174
+ browserArguments.push(...await this.defaultArgs(options, isPersistent, userDataDir));
175
+ let executable;
176
+ if (executablePath) {
177
+ if (!await (0, import_fileUtils.existsAsync)(executablePath))
178
+ throw new Error(`Failed to launch ${this._name} because executable doesn't exist at ${executablePath}`);
179
+ executable = executablePath;
180
+ } else {
181
+ const registryExecutable = import_registry.registry.findExecutable(this.getExecutableName(options));
182
+ if (!registryExecutable || registryExecutable.browserName !== this._name)
183
+ throw new Error(`Unsupported ${this._name} channel "${options.channel}"`);
184
+ executable = registryExecutable.executablePathOrDie(this.attribution.playwright.options.sdkLanguage);
185
+ await import_registry.registry.validateHostRequirementsForExecutablesIfNeeded([registryExecutable], this.attribution.playwright.options.sdkLanguage);
186
+ }
187
+ return { executable, browserArguments, userDataDir, artifactsDir, tempDirectories };
188
+ }
189
+ async _launchProcess(progress, options, isPersistent, browserLogsCollector, userDataDir) {
190
+ const {
191
+ handleSIGINT = true,
192
+ handleSIGTERM = true,
193
+ handleSIGHUP = true
194
+ } = options;
195
+ const env = options.env ? (0, import_processLauncher.envArrayToObject)(options.env) : process.env;
196
+ const prepared = await progress.race(this._prepareToLaunch(options, isPersistent, userDataDir));
197
+ let transport = void 0;
198
+ let browserProcess = void 0;
199
+ const exitPromise = new import_manualPromise.ManualPromise();
200
+ const { launchedProcess, gracefullyClose, kill } = await (0, import_processLauncher.launchProcess)({
201
+ command: prepared.executable,
202
+ args: prepared.browserArguments,
203
+ env: this.amendEnvironment(env, prepared.userDataDir, isPersistent, options),
204
+ handleSIGINT,
205
+ handleSIGTERM,
206
+ handleSIGHUP,
207
+ log: (message) => {
208
+ progress.log(message);
209
+ browserLogsCollector.log(message);
210
+ },
211
+ stdio: "pipe",
212
+ tempDirectories: prepared.tempDirectories,
213
+ attemptToGracefullyClose: async () => {
214
+ if (options.__testHookGracefullyClose)
215
+ await options.__testHookGracefullyClose();
216
+ if (transport) {
217
+ this.attemptToGracefullyCloseBrowser(transport);
218
+ } else {
219
+ throw new Error("Force-killing the browser because no transport is available to gracefully close it.");
220
+ }
221
+ },
222
+ onExit: (exitCode, signal) => {
223
+ exitPromise.resolve();
224
+ if (browserProcess && browserProcess.onclose)
225
+ browserProcess.onclose(exitCode, signal);
226
+ }
227
+ });
228
+ async function closeOrKill(timeout) {
229
+ let timer;
230
+ try {
231
+ await Promise.race([
232
+ gracefullyClose(),
233
+ new Promise((resolve, reject) => timer = setTimeout(reject, timeout))
234
+ ]);
235
+ } catch (ignored) {
236
+ await kill().catch((ignored2) => {
237
+ });
238
+ } finally {
239
+ clearTimeout(timer);
240
+ }
241
+ }
242
+ browserProcess = {
243
+ onclose: void 0,
244
+ process: launchedProcess,
245
+ close: () => closeOrKill(options.__testHookBrowserCloseTimeout || import_time.DEFAULT_PLAYWRIGHT_TIMEOUT),
246
+ kill
247
+ };
248
+ try {
249
+ const { wsEndpoint } = await progress.race([
250
+ this.waitForReadyState(options, browserLogsCollector),
251
+ exitPromise.then(() => ({ wsEndpoint: void 0 }))
252
+ ]);
253
+ if (options.cdpPort !== void 0 || !this.supportsPipeTransport()) {
254
+ transport = await import_transport.WebSocketTransport.connect(progress, wsEndpoint);
255
+ } else {
256
+ const stdio = launchedProcess.stdio;
257
+ transport = new import_pipeTransport.PipeTransport(stdio[3], stdio[4]);
258
+ }
259
+ return { browserProcess, artifactsDir: prepared.artifactsDir, userDataDir: prepared.userDataDir, transport };
260
+ } catch (error) {
261
+ await closeOrKill(import_time.DEFAULT_PLAYWRIGHT_TIMEOUT).catch(() => {
262
+ });
263
+ throw error;
264
+ }
265
+ }
266
+ async _createArtifactDirs(options) {
267
+ if (options.downloadsPath)
268
+ await import_fs.default.promises.mkdir(options.downloadsPath, { recursive: true });
269
+ if (options.tracesDir)
270
+ await import_fs.default.promises.mkdir(options.tracesDir, { recursive: true });
271
+ }
272
+ async connectOverCDP(progress, endpointURL, options) {
273
+ throw new Error("CDP connections are only supported by Chromium");
274
+ }
275
+ async _launchWithSeleniumHub(progress, hubUrl, options) {
276
+ throw new Error("Connecting to SELENIUM_REMOTE_URL is only supported by Chromium");
277
+ }
278
+ _validateLaunchOptions(options) {
279
+ const { devtools = false } = options;
280
+ let { headless = !devtools, downloadsPath, proxy } = options;
281
+ if ((0, import_debug.debugMode)() === "inspector")
282
+ headless = false;
283
+ if (downloadsPath && !import_path.default.isAbsolute(downloadsPath))
284
+ downloadsPath = import_path.default.join(process.cwd(), downloadsPath);
285
+ if (options.socksProxyPort)
286
+ proxy = { server: `socks5://127.0.0.1:${options.socksProxyPort}` };
287
+ return { ...options, devtools, headless, downloadsPath, proxy };
288
+ }
289
+ _createUserDataDirArgMisuseError(userDataDirArg) {
290
+ switch (this.attribution.playwright.options.sdkLanguage) {
291
+ case "java":
292
+ return new Error(`Pass userDataDir parameter to 'BrowserType.launchPersistentContext(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
293
+ case "python":
294
+ return new Error(`Pass user_data_dir parameter to 'browser_type.launch_persistent_context(user_data_dir, **kwargs)' instead of specifying '${userDataDirArg}' argument`);
295
+ case "csharp":
296
+ return new Error(`Pass userDataDir parameter to 'BrowserType.LaunchPersistentContextAsync(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
297
+ default:
298
+ return new Error(`Pass userDataDir parameter to 'browserType.launchPersistentContext(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
299
+ }
300
+ }
301
+ _rewriteStartupLog(error) {
302
+ if (!(0, import_protocolError.isProtocolError)(error))
303
+ return error;
304
+ return this.doRewriteStartupLog(error);
305
+ }
306
+ async waitForReadyState(options, browserLogsCollector) {
307
+ return {};
308
+ }
309
+ async prepareUserDataDir(options, userDataDir) {
310
+ }
311
+ supportsPipeTransport() {
312
+ return true;
313
+ }
314
+ getExecutableName(options) {
315
+ return options.channel || this._name;
316
+ }
317
+ }
318
+ function copyTestHooks(from, to) {
319
+ for (const [key, value] of Object.entries(from)) {
320
+ if (key.startsWith("__testHook"))
321
+ to[key] = value;
322
+ }
323
+ }
324
+ // Annotate the CommonJS export names for ESM import in node:
325
+ 0 && (module.exports = {
326
+ BrowserType,
327
+ kNoXServerRunningError
328
+ });
@@ -0,0 +1,82 @@
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 callLog_exports = {};
20
+ __export(callLog_exports, {
21
+ compressCallLog: () => compressCallLog,
22
+ findRepeatedSubsequencesForTest: () => findRepeatedSubsequencesForTest
23
+ });
24
+ module.exports = __toCommonJS(callLog_exports);
25
+ function compressCallLog(log) {
26
+ const lines = [];
27
+ for (const block of findRepeatedSubsequences(log)) {
28
+ for (let i = 0; i < block.sequence.length; i++) {
29
+ const line = block.sequence[i];
30
+ const leadingWhitespace = line.match(/^\s*/);
31
+ const whitespacePrefix = " " + leadingWhitespace?.[0] || "";
32
+ const countPrefix = `${block.count} \xD7 `;
33
+ if (block.count > 1 && i === 0)
34
+ lines.push(whitespacePrefix + countPrefix + line.trim());
35
+ else if (block.count > 1)
36
+ lines.push(whitespacePrefix + " ".repeat(countPrefix.length - 2) + "- " + line.trim());
37
+ else
38
+ lines.push(whitespacePrefix + "- " + line.trim());
39
+ }
40
+ }
41
+ return lines;
42
+ }
43
+ function findRepeatedSubsequences(s) {
44
+ const n = s.length;
45
+ const result = [];
46
+ let i = 0;
47
+ const arraysEqual = (a1, a2) => {
48
+ if (a1.length !== a2.length)
49
+ return false;
50
+ for (let j = 0; j < a1.length; j++) {
51
+ if (a1[j] !== a2[j])
52
+ return false;
53
+ }
54
+ return true;
55
+ };
56
+ while (i < n) {
57
+ let maxRepeatCount = 1;
58
+ let maxRepeatSubstr = [s[i]];
59
+ let maxRepeatLength = 1;
60
+ for (let p = 1; p <= n - i; p++) {
61
+ const substr = s.slice(i, i + p);
62
+ let k = 1;
63
+ while (i + p * k <= n && arraysEqual(s.slice(i + p * (k - 1), i + p * k), substr))
64
+ k += 1;
65
+ k -= 1;
66
+ if (k > 1 && k * p > maxRepeatCount * maxRepeatLength) {
67
+ maxRepeatCount = k;
68
+ maxRepeatSubstr = substr;
69
+ maxRepeatLength = p;
70
+ }
71
+ }
72
+ result.push({ sequence: maxRepeatSubstr, count: maxRepeatCount });
73
+ i += maxRepeatLength * maxRepeatCount;
74
+ }
75
+ return result;
76
+ }
77
+ const findRepeatedSubsequencesForTest = findRepeatedSubsequences;
78
+ // Annotate the CommonJS export names for ESM import in node:
79
+ 0 && (module.exports = {
80
+ compressCallLog,
81
+ findRepeatedSubsequencesForTest
82
+ });
Binary file