@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,212 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.serializeAsCallArgument = exports.parseEvaluationResultValue = void 0;
7
+ exports.source = source;
8
+ /**
9
+ * Copyright (c) Microsoft Corporation.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
23
+
24
+ function source() {
25
+ function isRegExp(obj) {
26
+ try {
27
+ return obj instanceof RegExp || Object.prototype.toString.call(obj) === '[object RegExp]';
28
+ } catch (error) {
29
+ return false;
30
+ }
31
+ }
32
+ function isDate(obj) {
33
+ try {
34
+ return obj instanceof Date || Object.prototype.toString.call(obj) === '[object Date]';
35
+ } catch (error) {
36
+ return false;
37
+ }
38
+ }
39
+ function isURL(obj) {
40
+ try {
41
+ return obj instanceof URL || Object.prototype.toString.call(obj) === '[object URL]';
42
+ } catch (error) {
43
+ return false;
44
+ }
45
+ }
46
+ function isError(obj) {
47
+ try {
48
+ var _Object$getPrototypeO;
49
+ return obj instanceof Error || obj && ((_Object$getPrototypeO = Object.getPrototypeOf(obj)) === null || _Object$getPrototypeO === void 0 ? void 0 : _Object$getPrototypeO.name) === 'Error';
50
+ } catch (error) {
51
+ return false;
52
+ }
53
+ }
54
+ function parseEvaluationResultValue(value, handles = [], refs = new Map()) {
55
+ if (Object.is(value, undefined)) return undefined;
56
+ if (typeof value === 'object' && value) {
57
+ if ('ref' in value) return refs.get(value.ref);
58
+ if ('v' in value) {
59
+ if (value.v === 'undefined') return undefined;
60
+ if (value.v === 'null') return null;
61
+ if (value.v === 'NaN') return NaN;
62
+ if (value.v === 'Infinity') return Infinity;
63
+ if (value.v === '-Infinity') return -Infinity;
64
+ if (value.v === '-0') return -0;
65
+ return undefined;
66
+ }
67
+ if ('d' in value) return new Date(value.d);
68
+ if ('u' in value) return new URL(value.u);
69
+ if ('bi' in value) return BigInt(value.bi);
70
+ if ('r' in value) return new RegExp(value.r.p, value.r.f);
71
+ if ('a' in value) {
72
+ const result = [];
73
+ refs.set(value.id, result);
74
+ for (const a of value.a) result.push(parseEvaluationResultValue(a, handles, refs));
75
+ return result;
76
+ }
77
+ if ('o' in value) {
78
+ const result = {};
79
+ refs.set(value.id, result);
80
+ for (const {
81
+ k,
82
+ v
83
+ } of value.o) result[k] = parseEvaluationResultValue(v, handles, refs);
84
+ return result;
85
+ }
86
+ if ('h' in value) return handles[value.h];
87
+ }
88
+ return value;
89
+ }
90
+ function serializeAsCallArgument(value, handleSerializer) {
91
+ return serialize(value, handleSerializer, {
92
+ visited: new Map(),
93
+ lastId: 0
94
+ });
95
+ }
96
+ function serialize(value, handleSerializer, visitorInfo) {
97
+ if (value && typeof value === 'object') {
98
+ if (typeof globalThis.Window === 'function' && value instanceof globalThis.Window) return 'ref: <Window>';
99
+ if (typeof globalThis.Document === 'function' && value instanceof globalThis.Document) return 'ref: <Document>';
100
+ if (typeof globalThis.Node === 'function' && value instanceof globalThis.Node) return 'ref: <Node>';
101
+ }
102
+ return innerSerialize(value, handleSerializer, visitorInfo);
103
+ }
104
+ function innerSerialize(value, handleSerializer, visitorInfo) {
105
+ const result = handleSerializer(value);
106
+ if ('fallThrough' in result) value = result.fallThrough;else return result;
107
+ if (typeof value === 'symbol') return {
108
+ v: 'undefined'
109
+ };
110
+ if (Object.is(value, undefined)) return {
111
+ v: 'undefined'
112
+ };
113
+ if (Object.is(value, null)) return {
114
+ v: 'null'
115
+ };
116
+ if (Object.is(value, NaN)) return {
117
+ v: 'NaN'
118
+ };
119
+ if (Object.is(value, Infinity)) return {
120
+ v: 'Infinity'
121
+ };
122
+ if (Object.is(value, -Infinity)) return {
123
+ v: '-Infinity'
124
+ };
125
+ if (Object.is(value, -0)) return {
126
+ v: '-0'
127
+ };
128
+ if (typeof value === 'boolean') return value;
129
+ if (typeof value === 'number') return value;
130
+ if (typeof value === 'string') return value;
131
+ if (typeof value === 'bigint') return {
132
+ bi: value.toString()
133
+ };
134
+ if (isError(value)) {
135
+ var _error$stack;
136
+ const error = value;
137
+ if ((_error$stack = error.stack) !== null && _error$stack !== void 0 && _error$stack.startsWith(error.name + ': ' + error.message)) {
138
+ // v8
139
+ return error.stack;
140
+ }
141
+ return `${error.name}: ${error.message}\n${error.stack}`;
142
+ }
143
+ if (isDate(value)) return {
144
+ d: value.toJSON()
145
+ };
146
+ if (isURL(value)) return {
147
+ u: value.toJSON()
148
+ };
149
+ if (isRegExp(value)) return {
150
+ r: {
151
+ p: value.source,
152
+ f: value.flags
153
+ }
154
+ };
155
+ const id = visitorInfo.visited.get(value);
156
+ if (id) return {
157
+ ref: id
158
+ };
159
+ if (Array.isArray(value)) {
160
+ const a = [];
161
+ const id = ++visitorInfo.lastId;
162
+ visitorInfo.visited.set(value, id);
163
+ for (let i = 0; i < value.length; ++i) a.push(serialize(value[i], handleSerializer, visitorInfo));
164
+ return {
165
+ a,
166
+ id
167
+ };
168
+ }
169
+ if (typeof value === 'object') {
170
+ const o = [];
171
+ const id = ++visitorInfo.lastId;
172
+ visitorInfo.visited.set(value, id);
173
+ for (const name of Object.keys(value)) {
174
+ let item;
175
+ try {
176
+ item = value[name];
177
+ } catch (e) {
178
+ continue; // native bindings will throw sometimes
179
+ }
180
+ if (name === 'toJSON' && typeof item === 'function') o.push({
181
+ k: name,
182
+ v: {
183
+ o: [],
184
+ id: 0
185
+ }
186
+ });else o.push({
187
+ k: name,
188
+ v: serialize(item, handleSerializer, visitorInfo)
189
+ });
190
+ }
191
+ let jsonWrapper;
192
+ try {
193
+ // If Object.keys().length === 0 we fall back to toJSON if it exists
194
+ if (o.length === 0 && value.toJSON && typeof value.toJSON === 'function') jsonWrapper = {
195
+ value: value.toJSON()
196
+ };
197
+ } catch (e) {}
198
+ if (jsonWrapper) return innerSerialize(jsonWrapper.value, handleSerializer, visitorInfo);
199
+ return {
200
+ o,
201
+ id
202
+ };
203
+ }
204
+ }
205
+ return {
206
+ parseEvaluationResultValue,
207
+ serializeAsCallArgument
208
+ };
209
+ }
210
+ const result = source();
211
+ const parseEvaluationResultValue = exports.parseEvaluationResultValue = result.parseEvaluationResultValue;
212
+ const serializeAsCallArgument = exports.serializeAsCallArgument = result.serializeAsCallArgument;
@@ -0,0 +1,291 @@
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 javascript_exports = {};
30
+ __export(javascript_exports, {
31
+ ExecutionContext: () => ExecutionContext,
32
+ JSHandle: () => JSHandle,
33
+ JavaScriptErrorInEvaluate: () => JavaScriptErrorInEvaluate,
34
+ evaluate: () => evaluate,
35
+ evaluateExpression: () => evaluateExpression,
36
+ isJavaScriptErrorInEvaluate: () => isJavaScriptErrorInEvaluate,
37
+ normalizeEvaluationExpression: () => normalizeEvaluationExpression,
38
+ parseUnserializableValue: () => parseUnserializableValue,
39
+ sparseArrayToString: () => sparseArrayToString
40
+ });
41
+ module.exports = __toCommonJS(javascript_exports);
42
+ var import_instrumentation = require("./instrumentation");
43
+ var rawUtilityScriptSource = __toESM(require("../generated/utilityScriptSource"));
44
+ var import_utils = require("../utils");
45
+ var import_utilityScriptSerializers = require("../utils/isomorphic/utilityScriptSerializers");
46
+ var import_manualPromise = require("../utils/isomorphic/manualPromise");
47
+ class ExecutionContext extends import_instrumentation.SdkObject {
48
+ constructor(parent, delegate, worldNameForTest) {
49
+ super(parent, "execution-context");
50
+ this._contextDestroyedScope = new import_manualPromise.LongStandingScope();
51
+ this.worldNameForTest = worldNameForTest;
52
+ this.delegate = delegate;
53
+ }
54
+ contextDestroyed(reason) {
55
+ this._contextDestroyedScope.close(new Error(reason));
56
+ }
57
+ async _raceAgainstContextDestroyed(promise) {
58
+ return this._contextDestroyedScope.race(promise);
59
+ }
60
+ rawEvaluateJSON(expression) {
61
+ return this._raceAgainstContextDestroyed(this.delegate.rawEvaluateJSON(expression));
62
+ }
63
+ rawEvaluateHandle(expression) {
64
+ return this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, expression));
65
+ }
66
+ async evaluateWithArguments(expression, returnByValue, values, handles) {
67
+ const utilityScript = await this.utilityScript();
68
+ return this._raceAgainstContextDestroyed(this.delegate.evaluateWithArguments(expression, returnByValue, utilityScript, values, handles));
69
+ }
70
+ getProperties(object) {
71
+ return this._raceAgainstContextDestroyed(this.delegate.getProperties(object));
72
+ }
73
+ releaseHandle(handle) {
74
+ return this.delegate.releaseHandle(handle);
75
+ }
76
+ adoptIfNeeded(handle) {
77
+ return null;
78
+ }
79
+ utilityScript() {
80
+ if (!this._utilityScriptPromise) {
81
+ const source = `
82
+ (() => {
83
+ const module = {};
84
+ ${rawUtilityScriptSource.source}
85
+ return new (module.exports.UtilityScript())(globalThis, ${(0, import_utils.isUnderTest)()});
86
+ })();`;
87
+ this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source)).then((handle) => {
88
+ handle._setPreview("UtilityScript");
89
+ return handle;
90
+ });
91
+ }
92
+ return this._utilityScriptPromise;
93
+ }
94
+ async doSlowMo() {
95
+ }
96
+ }
97
+ class JSHandle extends import_instrumentation.SdkObject {
98
+ constructor(context, type, preview, objectId, value) {
99
+ super(context, "handle");
100
+ this.__jshandle = true;
101
+ this._disposed = false;
102
+ this._context = context;
103
+ this._objectId = objectId;
104
+ this._value = value;
105
+ this._objectType = type;
106
+ this._preview = this._objectId ? preview || `JSHandle@${this._objectType}` : String(value);
107
+ if (this._objectId && globalThis.leakedJSHandles)
108
+ globalThis.leakedJSHandles.set(this, new Error("Leaked JSHandle"));
109
+ }
110
+ async evaluate(pageFunction, arg) {
111
+ return evaluate(this._context, true, pageFunction, this, arg);
112
+ }
113
+ async evaluateHandle(pageFunction, arg) {
114
+ return evaluate(this._context, false, pageFunction, this, arg);
115
+ }
116
+ async evaluateExpression(expression, options, arg) {
117
+ const value = await evaluateExpression(this._context, expression, { ...options, returnByValue: true }, this, arg);
118
+ await this._context.doSlowMo();
119
+ return value;
120
+ }
121
+ async evaluateExpressionHandle(expression, options, arg) {
122
+ const value = await evaluateExpression(this._context, expression, { ...options, returnByValue: false }, this, arg);
123
+ await this._context.doSlowMo();
124
+ return value;
125
+ }
126
+ async getProperty(propertyName) {
127
+ const objectHandle = await this.evaluateHandle((object, propertyName2) => {
128
+ const result2 = { __proto__: null };
129
+ result2[propertyName2] = object[propertyName2];
130
+ return result2;
131
+ }, propertyName);
132
+ const properties = await objectHandle.getProperties();
133
+ const result = properties.get(propertyName);
134
+ objectHandle.dispose();
135
+ return result;
136
+ }
137
+ async getProperties() {
138
+ if (!this._objectId)
139
+ return /* @__PURE__ */ new Map();
140
+ return this._context.getProperties(this);
141
+ }
142
+ rawValue() {
143
+ return this._value;
144
+ }
145
+ async jsonValue() {
146
+ if (!this._objectId)
147
+ return this._value;
148
+ const script = `(utilityScript, ...args) => utilityScript.jsonValue(...args)`;
149
+ return this._context.evaluateWithArguments(script, true, [true], [this]);
150
+ }
151
+ asElement() {
152
+ return null;
153
+ }
154
+ dispose() {
155
+ if (this._disposed)
156
+ return;
157
+ this._disposed = true;
158
+ if (this._objectId) {
159
+ this._context.releaseHandle(this).catch((e) => {
160
+ });
161
+ if (globalThis.leakedJSHandles)
162
+ globalThis.leakedJSHandles.delete(this);
163
+ }
164
+ }
165
+ toString() {
166
+ return this._preview;
167
+ }
168
+ _setPreviewCallback(callback) {
169
+ this._previewCallback = callback;
170
+ }
171
+ preview() {
172
+ return this._preview;
173
+ }
174
+ worldNameForTest() {
175
+ return this._context.worldNameForTest;
176
+ }
177
+ _setPreview(preview) {
178
+ this._preview = preview;
179
+ if (this._previewCallback)
180
+ this._previewCallback(preview);
181
+ }
182
+ }
183
+ async function evaluate(context, returnByValue, pageFunction, ...args) {
184
+ return evaluateExpression(context, String(pageFunction), { returnByValue, isFunction: typeof pageFunction === "function" }, ...args);
185
+ }
186
+ async function evaluateExpression(context, expression, options, ...args) {
187
+ expression = normalizeEvaluationExpression(expression, options.isFunction);
188
+ const handles = [];
189
+ const toDispose = [];
190
+ const pushHandle = (handle) => {
191
+ handles.push(handle);
192
+ return handles.length - 1;
193
+ };
194
+ args = args.map((arg) => (0, import_utilityScriptSerializers.serializeAsCallArgument)(arg, (handle) => {
195
+ if (handle instanceof JSHandle) {
196
+ if (!handle._objectId)
197
+ return { fallThrough: handle._value };
198
+ if (handle._disposed)
199
+ throw new JavaScriptErrorInEvaluate("JSHandle is disposed!");
200
+ const adopted = context.adoptIfNeeded(handle);
201
+ if (adopted === null)
202
+ return { h: pushHandle(Promise.resolve(handle)) };
203
+ toDispose.push(adopted);
204
+ return { h: pushHandle(adopted) };
205
+ }
206
+ return { fallThrough: handle };
207
+ }));
208
+ const utilityScriptObjects = [];
209
+ for (const handle of await Promise.all(handles)) {
210
+ if (handle._context !== context)
211
+ throw new JavaScriptErrorInEvaluate("JSHandles can be evaluated only in the context they were created!");
212
+ utilityScriptObjects.push(handle);
213
+ }
214
+ const utilityScriptValues = [options.isFunction, options.returnByValue, expression, args.length, ...args];
215
+ const script = `(utilityScript, ...args) => utilityScript.evaluate(...args)`;
216
+ try {
217
+ return await context.evaluateWithArguments(script, options.returnByValue || false, utilityScriptValues, utilityScriptObjects);
218
+ } finally {
219
+ toDispose.map((handlePromise) => handlePromise.then((handle) => handle.dispose()));
220
+ }
221
+ }
222
+ function parseUnserializableValue(unserializableValue) {
223
+ if (unserializableValue === "NaN")
224
+ return NaN;
225
+ if (unserializableValue === "Infinity")
226
+ return Infinity;
227
+ if (unserializableValue === "-Infinity")
228
+ return -Infinity;
229
+ if (unserializableValue === "-0")
230
+ return -0;
231
+ }
232
+ function normalizeEvaluationExpression(expression, isFunction) {
233
+ expression = expression.trim();
234
+ if (isFunction) {
235
+ try {
236
+ new Function("(" + expression + ")");
237
+ } catch (e1) {
238
+ if (expression.startsWith("async "))
239
+ expression = "async function " + expression.substring("async ".length);
240
+ else
241
+ expression = "function " + expression;
242
+ try {
243
+ new Function("(" + expression + ")");
244
+ } catch (e2) {
245
+ throw new Error("Passed function is not well-serializable!");
246
+ }
247
+ }
248
+ }
249
+ if (/^(async)?\s*function(\s|\()/.test(expression))
250
+ expression = "(" + expression + ")";
251
+ return expression;
252
+ }
253
+ class JavaScriptErrorInEvaluate extends Error {
254
+ }
255
+ function isJavaScriptErrorInEvaluate(error) {
256
+ return error instanceof JavaScriptErrorInEvaluate;
257
+ }
258
+ function sparseArrayToString(entries) {
259
+ const arrayEntries = [];
260
+ for (const { name, value } of entries) {
261
+ const index = +name;
262
+ if (isNaN(index) || index < 0)
263
+ continue;
264
+ arrayEntries.push({ index, value });
265
+ }
266
+ arrayEntries.sort((a, b) => a.index - b.index);
267
+ let lastIndex = -1;
268
+ const tokens = [];
269
+ for (const { index, value } of arrayEntries) {
270
+ const emptyItems = index - lastIndex - 1;
271
+ if (emptyItems === 1)
272
+ tokens.push(`empty`);
273
+ else if (emptyItems > 1)
274
+ tokens.push(`empty x ${emptyItems}`);
275
+ tokens.push(String(value));
276
+ lastIndex = index;
277
+ }
278
+ return "[" + tokens.join(", ") + "]";
279
+ }
280
+ // Annotate the CommonJS export names for ESM import in node:
281
+ 0 && (module.exports = {
282
+ ExecutionContext,
283
+ JSHandle,
284
+ JavaScriptErrorInEvaluate,
285
+ evaluate,
286
+ evaluateExpression,
287
+ isJavaScriptErrorInEvaluate,
288
+ normalizeEvaluationExpression,
289
+ parseUnserializableValue,
290
+ sparseArrayToString
291
+ });
@@ -0,0 +1,128 @@
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 launchApp_exports = {};
30
+ __export(launchApp_exports, {
31
+ launchApp: () => launchApp,
32
+ syncLocalStorageWithSettings: () => syncLocalStorageWithSettings
33
+ });
34
+ module.exports = __toCommonJS(launchApp_exports);
35
+ var import_fs = __toESM(require("fs"));
36
+ var import_path = __toESM(require("path"));
37
+ var import_utils = require("../utils");
38
+ var import_registry = require("./registry");
39
+ var import_registry2 = require("./registry");
40
+ var import_progress = require("./progress");
41
+ async function launchApp(browserType, options) {
42
+ const args = [...options.persistentContextOptions?.args ?? []];
43
+ let channel = options.persistentContextOptions?.channel;
44
+ if (browserType.name() === "chromium") {
45
+ args.push(
46
+ "--app=data:text/html,",
47
+ `--window-size=${options.windowSize.width},${options.windowSize.height}`,
48
+ ...options.windowPosition ? [`--window-position=${options.windowPosition.x},${options.windowPosition.y}`] : [],
49
+ "--test-type="
50
+ );
51
+ if (!channel && !options.persistentContextOptions?.executablePath)
52
+ channel = (0, import_registry.findChromiumChannelBestEffort)(options.sdkLanguage);
53
+ }
54
+ const controller = new import_progress.ProgressController();
55
+ let context;
56
+ try {
57
+ context = await controller.run((progress) => browserType.launchPersistentContext(progress, "", {
58
+ ignoreDefaultArgs: ["--enable-automation"],
59
+ ...options?.persistentContextOptions,
60
+ channel,
61
+ noDefaultViewport: options.persistentContextOptions?.noDefaultViewport ?? true,
62
+ acceptDownloads: options?.persistentContextOptions?.acceptDownloads ?? ((0, import_utils.isUnderTest)() ? "accept" : "internal-browser-default"),
63
+ colorScheme: options?.persistentContextOptions?.colorScheme ?? "no-override",
64
+ args
65
+ }), 0);
66
+ } catch (error) {
67
+ if (channel) {
68
+ error = (0, import_utils.rewriteErrorMessage)(error, [
69
+ `Failed to launch "${channel}" channel.`,
70
+ "Using custom channels could lead to unexpected behavior due to Enterprise policies (chrome://policy).",
71
+ "Install the default browser instead:",
72
+ (0, import_utils.wrapInASCIIBox)(`${(0, import_registry.buildPlaywrightCLICommand)(options.sdkLanguage, "install")}`, 2)
73
+ ].join("\n"));
74
+ }
75
+ throw error;
76
+ }
77
+ const [page] = context.pages();
78
+ if (browserType.name() === "chromium" && process.platform === "darwin") {
79
+ context.on("page", async (newPage) => {
80
+ if (newPage.mainFrame().url() === "chrome://new-tab-page/") {
81
+ await page.bringToFront();
82
+ await newPage.close();
83
+ }
84
+ });
85
+ }
86
+ if (browserType.name() === "chromium")
87
+ await installAppIcon(page);
88
+ return { context, page };
89
+ }
90
+ async function installAppIcon(page) {
91
+ const icon = await import_fs.default.promises.readFile(require.resolve("./chromium/appIcon.png"));
92
+ const crPage = page.delegate;
93
+ await crPage._mainFrameSession._client.send("Browser.setDockTile", {
94
+ image: icon.toString("base64")
95
+ });
96
+ }
97
+ async function syncLocalStorageWithSettings(page, appName) {
98
+ if ((0, import_utils.isUnderTest)())
99
+ return;
100
+ const settingsFile = import_path.default.join(import_registry2.registryDirectory, ".settings", `${appName}.json`);
101
+ const controller = new import_progress.ProgressController();
102
+ await controller.run(async (progress) => {
103
+ await page.exposeBinding(progress, "_saveSerializedSettings", false, (_, settings2) => {
104
+ import_fs.default.mkdirSync(import_path.default.dirname(settingsFile), { recursive: true });
105
+ import_fs.default.writeFileSync(settingsFile, settings2);
106
+ });
107
+ const settings = await import_fs.default.promises.readFile(settingsFile, "utf-8").catch(() => "{}");
108
+ await page.addInitScript(
109
+ progress,
110
+ `(${String((settings2) => {
111
+ if (location && location.protocol === "data:")
112
+ return;
113
+ if (window.top !== window)
114
+ return;
115
+ Object.entries(settings2).map(([k, v]) => localStorage[k] = v);
116
+ window.saveSettings = () => {
117
+ window._saveSerializedSettings(JSON.stringify({ ...localStorage }));
118
+ };
119
+ })})(${settings});
120
+ `
121
+ );
122
+ });
123
+ }
124
+ // Annotate the CommonJS export names for ESM import in node:
125
+ 0 && (module.exports = {
126
+ launchApp,
127
+ syncLocalStorageWithSettings
128
+ });