@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,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FastStats = void 0;
7
+ exports.ssim = ssim;
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
+ // Image channel has a 8-bit depth.
25
+ const DYNAMIC_RANGE = 2 ** 8 - 1;
26
+ function ssim(stats, x1, y1, x2, y2) {
27
+ const mean1 = stats.meanC1(x1, y1, x2, y2);
28
+ const mean2 = stats.meanC2(x1, y1, x2, y2);
29
+ const var1 = stats.varianceC1(x1, y1, x2, y2);
30
+ const var2 = stats.varianceC2(x1, y1, x2, y2);
31
+ const cov = stats.covariance(x1, y1, x2, y2);
32
+ const c1 = (0.01 * DYNAMIC_RANGE) ** 2;
33
+ const c2 = (0.03 * DYNAMIC_RANGE) ** 2;
34
+ return (2 * mean1 * mean2 + c1) * (2 * cov + c2) / (mean1 ** 2 + mean2 ** 2 + c1) / (var1 + var2 + c2);
35
+ }
36
+ class FastStats {
37
+ constructor(c1, c2) {
38
+ this.c1 = void 0;
39
+ this.c2 = void 0;
40
+ this._partialSumC1 = void 0;
41
+ this._partialSumC2 = void 0;
42
+ this._partialSumMult = void 0;
43
+ this._partialSumSq1 = void 0;
44
+ this._partialSumSq2 = void 0;
45
+ this.c1 = c1;
46
+ this.c2 = c2;
47
+ const {
48
+ width,
49
+ height
50
+ } = c1;
51
+ this._partialSumC1 = new Array(width * height);
52
+ this._partialSumC2 = new Array(width * height);
53
+ this._partialSumSq1 = new Array(width * height);
54
+ this._partialSumSq2 = new Array(width * height);
55
+ this._partialSumMult = new Array(width * height);
56
+ const recalc = (mx, idx, initial, x, y) => {
57
+ mx[idx] = initial;
58
+ if (y > 0) mx[idx] += mx[(y - 1) * width + x];
59
+ if (x > 0) mx[idx] += mx[y * width + x - 1];
60
+ if (x > 0 && y > 0) mx[idx] -= mx[(y - 1) * width + x - 1];
61
+ };
62
+ for (let y = 0; y < height; ++y) {
63
+ for (let x = 0; x < width; ++x) {
64
+ const idx = y * width + x;
65
+ recalc(this._partialSumC1, idx, this.c1.data[idx], x, y);
66
+ recalc(this._partialSumC2, idx, this.c2.data[idx], x, y);
67
+ recalc(this._partialSumSq1, idx, this.c1.data[idx] * this.c1.data[idx], x, y);
68
+ recalc(this._partialSumSq2, idx, this.c2.data[idx] * this.c2.data[idx], x, y);
69
+ recalc(this._partialSumMult, idx, this.c1.data[idx] * this.c2.data[idx], x, y);
70
+ }
71
+ }
72
+ }
73
+ _sum(partialSum, x1, y1, x2, y2) {
74
+ const width = this.c1.width;
75
+ let result = partialSum[y2 * width + x2];
76
+ if (y1 > 0) result -= partialSum[(y1 - 1) * width + x2];
77
+ if (x1 > 0) result -= partialSum[y2 * width + x1 - 1];
78
+ if (x1 > 0 && y1 > 0) result += partialSum[(y1 - 1) * width + x1 - 1];
79
+ return result;
80
+ }
81
+ meanC1(x1, y1, x2, y2) {
82
+ const N = (y2 - y1 + 1) * (x2 - x1 + 1);
83
+ return this._sum(this._partialSumC1, x1, y1, x2, y2) / N;
84
+ }
85
+ meanC2(x1, y1, x2, y2) {
86
+ const N = (y2 - y1 + 1) * (x2 - x1 + 1);
87
+ return this._sum(this._partialSumC2, x1, y1, x2, y2) / N;
88
+ }
89
+ varianceC1(x1, y1, x2, y2) {
90
+ const N = (y2 - y1 + 1) * (x2 - x1 + 1);
91
+ return (this._sum(this._partialSumSq1, x1, y1, x2, y2) - this._sum(this._partialSumC1, x1, y1, x2, y2) ** 2 / N) / N;
92
+ }
93
+ varianceC2(x1, y1, x2, y2) {
94
+ const N = (y2 - y1 + 1) * (x2 - x1 + 1);
95
+ return (this._sum(this._partialSumSq2, x1, y1, x2, y2) - this._sum(this._partialSumC2, x1, y1, x2, y2) ** 2 / N) / N;
96
+ }
97
+ covariance(x1, y1, x2, y2) {
98
+ const N = (y2 - y1 + 1) * (x2 - x1 + 1);
99
+ return (this._sum(this._partialSumMult, x1, y1, x2, y2) - this._sum(this._partialSumC1, x1, y1, x2, y2) * this._sum(this._partialSumC2, x1, y1, x2, y2) / N) / N;
100
+ }
101
+ }
102
+ exports.FastStats = FastStats;
@@ -0,0 +1,60 @@
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 inProcessFactory_exports = {};
20
+ __export(inProcessFactory_exports, {
21
+ createInProcessPlaywright: () => createInProcessPlaywright
22
+ });
23
+ module.exports = __toCommonJS(inProcessFactory_exports);
24
+ var import_androidServerImpl = require("./androidServerImpl");
25
+ var import_browserServerImpl = require("./browserServerImpl");
26
+ var import_server = require("./server");
27
+ var import_nodePlatform = require("./server/utils/nodePlatform");
28
+ var import_connection = require("./client/connection");
29
+ function createInProcessPlaywright() {
30
+ const playwright = (0, import_server.createPlaywright)({ sdkLanguage: process.env.PW_LANG_NAME || "javascript" });
31
+ const clientConnection = new import_connection.Connection(import_nodePlatform.nodePlatform);
32
+ clientConnection.useRawBuffers();
33
+ const dispatcherConnection = new import_server.DispatcherConnection(
34
+ true
35
+ /* local */
36
+ );
37
+ dispatcherConnection.onmessage = (message) => clientConnection.dispatch(message);
38
+ clientConnection.onmessage = (message) => dispatcherConnection.dispatch(message);
39
+ const rootScope = new import_server.RootDispatcher(dispatcherConnection);
40
+ new import_server.PlaywrightDispatcher(rootScope, playwright);
41
+ const playwrightAPI = clientConnection.getObjectWithKnownName("Playwright");
42
+ playwrightAPI.chromium._serverLauncher = new import_browserServerImpl.BrowserServerLauncherImpl("chromium");
43
+ playwrightAPI.firefox._serverLauncher = new import_browserServerImpl.BrowserServerLauncherImpl("firefox");
44
+ playwrightAPI.webkit._serverLauncher = new import_browserServerImpl.BrowserServerLauncherImpl("webkit");
45
+ playwrightAPI._android._serverLauncher = new import_androidServerImpl.AndroidServerLauncherImpl();
46
+ dispatcherConnection.onmessage = (message) => setImmediate(() => clientConnection.dispatch(message));
47
+ clientConnection.onmessage = (message) => setImmediate(() => dispatcherConnection.dispatch(message));
48
+ clientConnection.toImpl = (x) => {
49
+ if (x instanceof import_connection.Connection)
50
+ return x === clientConnection ? dispatcherConnection : void 0;
51
+ if (!x)
52
+ return dispatcherConnection._dispatcherByGuid.get("");
53
+ return dispatcherConnection._dispatcherByGuid.get(x._guid)._object;
54
+ };
55
+ return playwrightAPI;
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ createInProcessPlaywright
60
+ });
package/lib/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "InjectedScript", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _injectedScript.InjectedScript;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "asLocator", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _utils.asLocator;
16
+ }
17
+ });
18
+ var _injectedScript = require("./server/injected/injectedScript");
19
+ var _utils = require("./utils");
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ var import_inProcessFactory = require("./inProcessFactory");
3
+ module.exports = (0, import_inProcessFactory.createInProcessPlaywright)();
@@ -0,0 +1,76 @@
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 outofprocess_exports = {};
30
+ __export(outofprocess_exports, {
31
+ start: () => start
32
+ });
33
+ module.exports = __toCommonJS(outofprocess_exports);
34
+ var childProcess = __toESM(require("child_process"));
35
+ var import_path = __toESM(require("path"));
36
+ var import_connection = require("./client/connection");
37
+ var import_pipeTransport = require("./server/utils/pipeTransport");
38
+ var import_manualPromise = require("./utils/isomorphic/manualPromise");
39
+ var import_nodePlatform = require("./server/utils/nodePlatform");
40
+ async function start(env = {}) {
41
+ const client = new PlaywrightClient(env);
42
+ const playwright = await client._playwright;
43
+ playwright.driverProcess = client._driverProcess;
44
+ return { playwright, stop: () => client.stop() };
45
+ }
46
+ class PlaywrightClient {
47
+ constructor(env) {
48
+ this._closePromise = new import_manualPromise.ManualPromise();
49
+ this._driverProcess = childProcess.fork(import_path.default.join(__dirname, "..", "cli.js"), ["run-driver"], {
50
+ stdio: "pipe",
51
+ detached: true,
52
+ env: {
53
+ ...process.env,
54
+ ...env
55
+ }
56
+ });
57
+ this._driverProcess.unref();
58
+ this._driverProcess.stderr.on("data", (data) => process.stderr.write(data));
59
+ const connection = new import_connection.Connection(import_nodePlatform.nodePlatform);
60
+ const transport = new import_pipeTransport.PipeTransport(this._driverProcess.stdin, this._driverProcess.stdout);
61
+ connection.onmessage = (message) => transport.send(JSON.stringify(message));
62
+ transport.onmessage = (message) => connection.dispatch(JSON.parse(message));
63
+ transport.onclose = () => this._closePromise.resolve();
64
+ this._playwright = connection.initializePlaywright();
65
+ }
66
+ async stop() {
67
+ this._driverProcess.stdin.destroy();
68
+ this._driverProcess.stdout.destroy();
69
+ this._driverProcess.stderr.destroy();
70
+ await this._closePromise;
71
+ }
72
+ }
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ start
76
+ });
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.slowMoActions = exports.pausesBeforeInputActions = exports.commandsWithTracingSnapshots = void 0;
7
+ /**
8
+ * Copyright (c) Microsoft Corporation.
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+
23
+ // This file is generated by generate_channels.js, do not edit manually.
24
+
25
+ const slowMoActions = exports.slowMoActions = new Set(['Page.goBack', 'Page.goForward', 'Page.reload', 'Page.keyboardDown', 'Page.keyboardUp', 'Page.keyboardInsertText', 'Page.keyboardType', 'Page.keyboardPress', 'Page.mouseMove', 'Page.mouseDown', 'Page.mouseUp', 'Page.mouseClick', 'Page.mouseWheel', 'Page.touchscreenTap', 'Frame.blur', 'Frame.check', 'Frame.click', 'Frame.dragAndDrop', 'Frame.dblclick', 'Frame.dispatchEvent', 'Frame.fill', 'Frame.focus', 'Frame.goto', 'Frame.hover', 'Frame.press', 'Frame.selectOption', 'Frame.setInputFiles', 'Frame.tap', 'Frame.type', 'Frame.uncheck', 'ElementHandle.check', 'ElementHandle.click', 'ElementHandle.dblclick', 'ElementHandle.dispatchEvent', 'ElementHandle.fill', 'ElementHandle.focus', 'ElementHandle.hover', 'ElementHandle.press', 'ElementHandle.scrollIntoViewIfNeeded', 'ElementHandle.selectOption', 'ElementHandle.selectText', 'ElementHandle.setInputFiles', 'ElementHandle.tap', 'ElementHandle.type', 'ElementHandle.uncheck']);
26
+ const commandsWithTracingSnapshots = exports.commandsWithTracingSnapshots = new Set(['EventTarget.waitForEventInfo', 'BrowserContext.waitForEventInfo', 'Page.waitForEventInfo', 'WebSocket.waitForEventInfo', 'ElectronApplication.waitForEventInfo', 'AndroidDevice.waitForEventInfo', 'Page.emulateMedia', 'Page.goBack', 'Page.goForward', 'Page.reload', 'Page.expectScreenshot', 'Page.screenshot', 'Page.setViewportSize', 'Page.keyboardDown', 'Page.keyboardUp', 'Page.keyboardInsertText', 'Page.keyboardType', 'Page.keyboardPress', 'Page.mouseMove', 'Page.mouseDown', 'Page.mouseUp', 'Page.mouseClick', 'Page.mouseWheel', 'Page.touchscreenTap', 'Frame.evalOnSelector', 'Frame.evalOnSelectorAll', 'Frame.addScriptTag', 'Frame.addStyleTag', 'Frame.blur', 'Frame.check', 'Frame.click', 'Frame.dragAndDrop', 'Frame.dblclick', 'Frame.dispatchEvent', 'Frame.evaluateExpression', 'Frame.evaluateExpressionHandle', 'Frame.fill', 'Frame.focus', 'Frame.getAttribute', 'Frame.goto', 'Frame.hover', 'Frame.innerHTML', 'Frame.innerText', 'Frame.inputValue', 'Frame.isChecked', 'Frame.isDisabled', 'Frame.isEnabled', 'Frame.isHidden', 'Frame.isVisible', 'Frame.isEditable', 'Frame.press', 'Frame.selectOption', 'Frame.setContent', 'Frame.setInputFiles', 'Frame.tap', 'Frame.textContent', 'Frame.type', 'Frame.uncheck', 'Frame.waitForTimeout', 'Frame.waitForFunction', 'Frame.waitForSelector', 'Frame.expect', 'JSHandle.evaluateExpression', 'ElementHandle.evaluateExpression', 'JSHandle.evaluateExpressionHandle', 'ElementHandle.evaluateExpressionHandle', 'ElementHandle.evalOnSelector', 'ElementHandle.evalOnSelectorAll', 'ElementHandle.check', 'ElementHandle.click', 'ElementHandle.dblclick', 'ElementHandle.dispatchEvent', 'ElementHandle.fill', 'ElementHandle.focus', 'ElementHandle.hover', 'ElementHandle.innerHTML', 'ElementHandle.innerText', 'ElementHandle.inputValue', 'ElementHandle.isChecked', 'ElementHandle.isDisabled', 'ElementHandle.isEditable', 'ElementHandle.isEnabled', 'ElementHandle.isHidden', 'ElementHandle.isVisible', 'ElementHandle.press', 'ElementHandle.screenshot', 'ElementHandle.scrollIntoViewIfNeeded', 'ElementHandle.selectOption', 'ElementHandle.selectText', 'ElementHandle.setInputFiles', 'ElementHandle.tap', 'ElementHandle.textContent', 'ElementHandle.type', 'ElementHandle.uncheck', 'ElementHandle.waitForElementState', 'ElementHandle.waitForSelector']);
27
+ const pausesBeforeInputActions = exports.pausesBeforeInputActions = new Set(['Frame.check', 'Frame.click', 'Frame.dragAndDrop', 'Frame.dblclick', 'Frame.fill', 'Frame.hover', 'Frame.press', 'Frame.selectOption', 'Frame.setInputFiles', 'Frame.tap', 'Frame.type', 'Frame.uncheck', 'ElementHandle.check', 'ElementHandle.click', 'ElementHandle.dblclick', 'ElementHandle.fill', 'ElementHandle.hover', 'ElementHandle.press', 'ElementHandle.selectOption', 'ElementHandle.setInputFiles', 'ElementHandle.tap', 'ElementHandle.type', 'ElementHandle.uncheck']);
@@ -0,0 +1,192 @@
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 serializers_exports = {};
20
+ __export(serializers_exports, {
21
+ parseSerializedValue: () => parseSerializedValue,
22
+ serializeValue: () => serializeValue
23
+ });
24
+ module.exports = __toCommonJS(serializers_exports);
25
+ function parseSerializedValue(value, handles) {
26
+ return innerParseSerializedValue(value, handles, /* @__PURE__ */ new Map(), []);
27
+ }
28
+ function innerParseSerializedValue(value, handles, refs, accessChain) {
29
+ if (value.ref !== void 0)
30
+ return refs.get(value.ref);
31
+ if (value.n !== void 0)
32
+ return value.n;
33
+ if (value.s !== void 0)
34
+ return value.s;
35
+ if (value.b !== void 0)
36
+ return value.b;
37
+ if (value.v !== void 0) {
38
+ if (value.v === "undefined")
39
+ return void 0;
40
+ if (value.v === "null")
41
+ return null;
42
+ if (value.v === "NaN")
43
+ return NaN;
44
+ if (value.v === "Infinity")
45
+ return Infinity;
46
+ if (value.v === "-Infinity")
47
+ return -Infinity;
48
+ if (value.v === "-0")
49
+ return -0;
50
+ }
51
+ if (value.d !== void 0)
52
+ return new Date(value.d);
53
+ if (value.u !== void 0)
54
+ return new URL(value.u);
55
+ if (value.bi !== void 0)
56
+ return BigInt(value.bi);
57
+ if (value.e !== void 0) {
58
+ const error = new Error(value.e.m);
59
+ error.name = value.e.n;
60
+ error.stack = value.e.s;
61
+ return error;
62
+ }
63
+ if (value.r !== void 0)
64
+ return new RegExp(value.r.p, value.r.f);
65
+ if (value.ta !== void 0) {
66
+ const ctor = typedArrayKindToConstructor[value.ta.k];
67
+ return new ctor(value.ta.b.buffer, value.ta.b.byteOffset, value.ta.b.length / ctor.BYTES_PER_ELEMENT);
68
+ }
69
+ if (value.a !== void 0) {
70
+ const result = [];
71
+ refs.set(value.id, result);
72
+ for (let i = 0; i < value.a.length; i++)
73
+ result.push(innerParseSerializedValue(value.a[i], handles, refs, [...accessChain, i]));
74
+ return result;
75
+ }
76
+ if (value.o !== void 0) {
77
+ const result = {};
78
+ refs.set(value.id, result);
79
+ for (const { k, v } of value.o)
80
+ result[k] = innerParseSerializedValue(v, handles, refs, [...accessChain, k]);
81
+ return result;
82
+ }
83
+ if (value.h !== void 0) {
84
+ if (handles === void 0)
85
+ throw new Error("Unexpected handle");
86
+ return handles[value.h];
87
+ }
88
+ throw new Error(`Attempting to deserialize unexpected value${accessChainToDisplayString(accessChain)}: ${value}`);
89
+ }
90
+ function serializeValue(value, handleSerializer) {
91
+ return innerSerializeValue(value, handleSerializer, { lastId: 0, visited: /* @__PURE__ */ new Map() }, []);
92
+ }
93
+ function innerSerializeValue(value, handleSerializer, visitorInfo, accessChain) {
94
+ const handle = handleSerializer(value);
95
+ if ("fallThrough" in handle)
96
+ value = handle.fallThrough;
97
+ else
98
+ return handle;
99
+ if (typeof value === "symbol")
100
+ return { v: "undefined" };
101
+ if (Object.is(value, void 0))
102
+ return { v: "undefined" };
103
+ if (Object.is(value, null))
104
+ return { v: "null" };
105
+ if (Object.is(value, NaN))
106
+ return { v: "NaN" };
107
+ if (Object.is(value, Infinity))
108
+ return { v: "Infinity" };
109
+ if (Object.is(value, -Infinity))
110
+ return { v: "-Infinity" };
111
+ if (Object.is(value, -0))
112
+ return { v: "-0" };
113
+ if (typeof value === "boolean")
114
+ return { b: value };
115
+ if (typeof value === "number")
116
+ return { n: value };
117
+ if (typeof value === "string")
118
+ return { s: value };
119
+ if (typeof value === "bigint")
120
+ return { bi: value.toString() };
121
+ if (isError(value))
122
+ return { e: { n: value.name, m: value.message, s: value.stack || "" } };
123
+ if (isDate(value))
124
+ return { d: value.toJSON() };
125
+ if (isURL(value))
126
+ return { u: value.toJSON() };
127
+ if (isRegExp(value))
128
+ return { r: { p: value.source, f: value.flags } };
129
+ const typedArrayKind = constructorToTypedArrayKind.get(value.constructor);
130
+ if (typedArrayKind)
131
+ return { ta: { b: Buffer.from(value.buffer, value.byteOffset, value.byteLength), k: typedArrayKind } };
132
+ const id = visitorInfo.visited.get(value);
133
+ if (id)
134
+ return { ref: id };
135
+ if (Array.isArray(value)) {
136
+ const a = [];
137
+ const id2 = ++visitorInfo.lastId;
138
+ visitorInfo.visited.set(value, id2);
139
+ for (let i = 0; i < value.length; ++i)
140
+ a.push(innerSerializeValue(value[i], handleSerializer, visitorInfo, [...accessChain, i]));
141
+ return { a, id: id2 };
142
+ }
143
+ if (typeof value === "object") {
144
+ const o = [];
145
+ const id2 = ++visitorInfo.lastId;
146
+ visitorInfo.visited.set(value, id2);
147
+ for (const name of Object.keys(value))
148
+ o.push({ k: name, v: innerSerializeValue(value[name], handleSerializer, visitorInfo, [...accessChain, name]) });
149
+ return { o, id: id2 };
150
+ }
151
+ throw new Error(`Attempting to serialize unexpected value${accessChainToDisplayString(accessChain)}: ${value}`);
152
+ }
153
+ function accessChainToDisplayString(accessChain) {
154
+ const chainString = accessChain.map((accessor, i) => {
155
+ if (typeof accessor === "string")
156
+ return i ? `.${accessor}` : accessor;
157
+ return `[${accessor}]`;
158
+ }).join("");
159
+ return chainString.length > 0 ? ` at position "${chainString}"` : "";
160
+ }
161
+ function isRegExp(obj) {
162
+ return obj instanceof RegExp || Object.prototype.toString.call(obj) === "[object RegExp]";
163
+ }
164
+ function isDate(obj) {
165
+ return obj instanceof Date || Object.prototype.toString.call(obj) === "[object Date]";
166
+ }
167
+ function isURL(obj) {
168
+ return obj instanceof URL || Object.prototype.toString.call(obj) === "[object URL]";
169
+ }
170
+ function isError(obj) {
171
+ const proto = obj ? Object.getPrototypeOf(obj) : null;
172
+ return obj instanceof Error || proto?.name === "Error" || proto && isError(proto);
173
+ }
174
+ const typedArrayKindToConstructor = {
175
+ i8: Int8Array,
176
+ ui8: Uint8Array,
177
+ ui8c: Uint8ClampedArray,
178
+ i16: Int16Array,
179
+ ui16: Uint16Array,
180
+ i32: Int32Array,
181
+ ui32: Uint32Array,
182
+ f32: Float32Array,
183
+ f64: Float64Array,
184
+ bi64: BigInt64Array,
185
+ bui64: BigUint64Array
186
+ };
187
+ const constructorToTypedArrayKind = new Map(Object.entries(typedArrayKindToConstructor).map(([k, v]) => [v, k]));
188
+ // Annotate the CommonJS export names for ESM import in node:
189
+ 0 && (module.exports = {
190
+ parseSerializedValue,
191
+ serializeValue
192
+ });
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PipeTransport = void 0;
7
+ var _utils = require("../utils");
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
+ class PipeTransport {
25
+ constructor(pipeWrite, pipeRead, closeable, endian = 'le') {
26
+ this._pipeWrite = void 0;
27
+ this._data = Buffer.from([]);
28
+ this._waitForNextTask = (0, _utils.makeWaitForNextTask)();
29
+ this._closed = false;
30
+ this._bytesLeft = 0;
31
+ this.onmessage = void 0;
32
+ this.onclose = void 0;
33
+ this._endian = void 0;
34
+ this._closeableStream = void 0;
35
+ this._pipeWrite = pipeWrite;
36
+ this._endian = endian;
37
+ this._closeableStream = closeable;
38
+ pipeRead.on('data', buffer => this._dispatch(buffer));
39
+ pipeRead.on('close', () => {
40
+ this._closed = true;
41
+ if (this.onclose) this.onclose();
42
+ });
43
+ this.onmessage = undefined;
44
+ this.onclose = undefined;
45
+ }
46
+ send(message) {
47
+ if (this._closed) throw new Error('Pipe has been closed');
48
+ const data = Buffer.from(message, 'utf-8');
49
+ const dataLength = Buffer.alloc(4);
50
+ if (this._endian === 'be') dataLength.writeUInt32BE(data.length, 0);else dataLength.writeUInt32LE(data.length, 0);
51
+ this._pipeWrite.write(dataLength);
52
+ this._pipeWrite.write(data);
53
+ }
54
+ close() {
55
+ // Let it throw.
56
+ this._closeableStream.close();
57
+ }
58
+ _dispatch(buffer) {
59
+ this._data = Buffer.concat([this._data, buffer]);
60
+ while (true) {
61
+ if (!this._bytesLeft && this._data.length < 4) {
62
+ // Need more data.
63
+ break;
64
+ }
65
+ if (!this._bytesLeft) {
66
+ this._bytesLeft = this._endian === 'be' ? this._data.readUInt32BE(0) : this._data.readUInt32LE(0);
67
+ this._data = this._data.slice(4);
68
+ }
69
+ if (!this._bytesLeft || this._data.length < this._bytesLeft) {
70
+ // Need more data.
71
+ break;
72
+ }
73
+ const message = this._data.slice(0, this._bytesLeft);
74
+ this._data = this._data.slice(this._bytesLeft);
75
+ this._bytesLeft = 0;
76
+ this._waitForNextTask(() => {
77
+ if (this.onmessage) this.onmessage(message.toString('utf-8'));
78
+ });
79
+ }
80
+ }
81
+ }
82
+ exports.PipeTransport = PipeTransport;