@pedropaulovc/playwright-core 1.59.0-alpha-1769214875000

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 (364) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +4076 -0
  5. package/bin/install_media_pack.ps1 +5 -0
  6. package/bin/install_webkit_wsl.ps1 +33 -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 +79 -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/driver.js +97 -0
  30. package/lib/cli/program.js +601 -0
  31. package/lib/cli/programWithTestStub.js +74 -0
  32. package/lib/client/android.js +361 -0
  33. package/lib/client/api.js +137 -0
  34. package/lib/client/artifact.js +79 -0
  35. package/lib/client/browser.js +161 -0
  36. package/lib/client/browserContext.js +582 -0
  37. package/lib/client/browserType.js +185 -0
  38. package/lib/client/cdpSession.js +51 -0
  39. package/lib/client/channelOwner.js +194 -0
  40. package/lib/client/clientHelper.js +64 -0
  41. package/lib/client/clientInstrumentation.js +55 -0
  42. package/lib/client/clientStackTrace.js +69 -0
  43. package/lib/client/clock.js +68 -0
  44. package/lib/client/connection.js +318 -0
  45. package/lib/client/consoleMessage.js +58 -0
  46. package/lib/client/coverage.js +44 -0
  47. package/lib/client/dialog.js +56 -0
  48. package/lib/client/download.js +62 -0
  49. package/lib/client/electron.js +138 -0
  50. package/lib/client/elementHandle.js +284 -0
  51. package/lib/client/errors.js +77 -0
  52. package/lib/client/eventEmitter.js +314 -0
  53. package/lib/client/events.js +103 -0
  54. package/lib/client/fetch.js +368 -0
  55. package/lib/client/fileChooser.js +46 -0
  56. package/lib/client/fileUtils.js +34 -0
  57. package/lib/client/frame.js +409 -0
  58. package/lib/client/harRouter.js +87 -0
  59. package/lib/client/input.js +84 -0
  60. package/lib/client/jsHandle.js +109 -0
  61. package/lib/client/jsonPipe.js +39 -0
  62. package/lib/client/localUtils.js +60 -0
  63. package/lib/client/locator.js +369 -0
  64. package/lib/client/network.js +747 -0
  65. package/lib/client/page.js +743 -0
  66. package/lib/client/pageAgent.js +64 -0
  67. package/lib/client/platform.js +77 -0
  68. package/lib/client/playwright.js +71 -0
  69. package/lib/client/selectors.js +55 -0
  70. package/lib/client/stream.js +39 -0
  71. package/lib/client/timeoutSettings.js +79 -0
  72. package/lib/client/tracing.js +119 -0
  73. package/lib/client/types.js +28 -0
  74. package/lib/client/video.js +59 -0
  75. package/lib/client/waiter.js +142 -0
  76. package/lib/client/webError.js +39 -0
  77. package/lib/client/webSocket.js +93 -0
  78. package/lib/client/worker.js +85 -0
  79. package/lib/client/writableStream.js +39 -0
  80. package/lib/generated/bindingsControllerSource.js +28 -0
  81. package/lib/generated/clockSource.js +28 -0
  82. package/lib/generated/injectedScriptSource.js +28 -0
  83. package/lib/generated/pollingRecorderSource.js +28 -0
  84. package/lib/generated/storageScriptSource.js +28 -0
  85. package/lib/generated/utilityScriptSource.js +28 -0
  86. package/lib/generated/webSocketMockSource.js +336 -0
  87. package/lib/inProcessFactory.js +60 -0
  88. package/lib/inprocess.js +3 -0
  89. package/lib/mcpBundle.js +84 -0
  90. package/lib/mcpBundleImpl/index.js +147 -0
  91. package/lib/outofprocess.js +76 -0
  92. package/lib/protocol/serializers.js +197 -0
  93. package/lib/protocol/validator.js +2969 -0
  94. package/lib/protocol/validatorPrimitives.js +193 -0
  95. package/lib/remote/playwrightConnection.js +129 -0
  96. package/lib/remote/playwrightServer.js +334 -0
  97. package/lib/server/agent/actionRunner.js +335 -0
  98. package/lib/server/agent/actions.js +128 -0
  99. package/lib/server/agent/codegen.js +111 -0
  100. package/lib/server/agent/context.js +150 -0
  101. package/lib/server/agent/expectTools.js +156 -0
  102. package/lib/server/agent/pageAgent.js +204 -0
  103. package/lib/server/agent/performTools.js +262 -0
  104. package/lib/server/agent/tool.js +109 -0
  105. package/lib/server/android/android.js +465 -0
  106. package/lib/server/android/backendAdb.js +177 -0
  107. package/lib/server/artifact.js +127 -0
  108. package/lib/server/bidi/bidiBrowser.js +549 -0
  109. package/lib/server/bidi/bidiChromium.js +148 -0
  110. package/lib/server/bidi/bidiConnection.js +213 -0
  111. package/lib/server/bidi/bidiDeserializer.js +116 -0
  112. package/lib/server/bidi/bidiExecutionContext.js +267 -0
  113. package/lib/server/bidi/bidiFirefox.js +128 -0
  114. package/lib/server/bidi/bidiInput.js +146 -0
  115. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  116. package/lib/server/bidi/bidiOverCdp.js +102 -0
  117. package/lib/server/bidi/bidiPage.js +583 -0
  118. package/lib/server/bidi/bidiPdf.js +106 -0
  119. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  120. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  121. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  122. package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -0
  123. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  124. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  125. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  126. package/lib/server/browser.js +149 -0
  127. package/lib/server/browserContext.js +702 -0
  128. package/lib/server/browserType.js +336 -0
  129. package/lib/server/callLog.js +82 -0
  130. package/lib/server/chromium/appIcon.png +0 -0
  131. package/lib/server/chromium/chromium.js +395 -0
  132. package/lib/server/chromium/chromiumSwitches.js +104 -0
  133. package/lib/server/chromium/crBrowser.js +511 -0
  134. package/lib/server/chromium/crConnection.js +197 -0
  135. package/lib/server/chromium/crCoverage.js +235 -0
  136. package/lib/server/chromium/crDevTools.js +111 -0
  137. package/lib/server/chromium/crDragDrop.js +131 -0
  138. package/lib/server/chromium/crExecutionContext.js +146 -0
  139. package/lib/server/chromium/crInput.js +187 -0
  140. package/lib/server/chromium/crNetworkManager.js +707 -0
  141. package/lib/server/chromium/crPage.js +1001 -0
  142. package/lib/server/chromium/crPdf.js +121 -0
  143. package/lib/server/chromium/crProtocolHelper.js +145 -0
  144. package/lib/server/chromium/crServiceWorker.js +136 -0
  145. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  146. package/lib/server/chromium/protocol.d.js +16 -0
  147. package/lib/server/clock.js +149 -0
  148. package/lib/server/codegen/csharp.js +327 -0
  149. package/lib/server/codegen/java.js +274 -0
  150. package/lib/server/codegen/javascript.js +247 -0
  151. package/lib/server/codegen/jsonl.js +52 -0
  152. package/lib/server/codegen/language.js +132 -0
  153. package/lib/server/codegen/languages.js +68 -0
  154. package/lib/server/codegen/python.js +279 -0
  155. package/lib/server/codegen/types.js +16 -0
  156. package/lib/server/console.js +57 -0
  157. package/lib/server/cookieStore.js +206 -0
  158. package/lib/server/debugController.js +191 -0
  159. package/lib/server/debugger.js +119 -0
  160. package/lib/server/deviceDescriptors.js +39 -0
  161. package/lib/server/deviceDescriptorsSource.json +1779 -0
  162. package/lib/server/dialog.js +116 -0
  163. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  164. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  165. package/lib/server/dispatchers/browserContextDispatcher.js +384 -0
  166. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  167. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  168. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  169. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  170. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  171. package/lib/server/dispatchers/dispatcher.js +364 -0
  172. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  173. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  174. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  175. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  176. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  177. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  178. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  179. package/lib/server/dispatchers/pageAgentDispatcher.js +96 -0
  180. package/lib/server/dispatchers/pageDispatcher.js +393 -0
  181. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  182. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  183. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  184. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  185. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  186. package/lib/server/dom.js +815 -0
  187. package/lib/server/download.js +70 -0
  188. package/lib/server/electron/electron.js +273 -0
  189. package/lib/server/electron/loader.js +29 -0
  190. package/lib/server/errors.js +69 -0
  191. package/lib/server/fetch.js +621 -0
  192. package/lib/server/fileChooser.js +43 -0
  193. package/lib/server/fileUploadUtils.js +84 -0
  194. package/lib/server/firefox/ffBrowser.js +418 -0
  195. package/lib/server/firefox/ffConnection.js +142 -0
  196. package/lib/server/firefox/ffExecutionContext.js +150 -0
  197. package/lib/server/firefox/ffInput.js +159 -0
  198. package/lib/server/firefox/ffNetworkManager.js +256 -0
  199. package/lib/server/firefox/ffPage.js +497 -0
  200. package/lib/server/firefox/firefox.js +114 -0
  201. package/lib/server/firefox/protocol.d.js +16 -0
  202. package/lib/server/formData.js +147 -0
  203. package/lib/server/frameSelectors.js +160 -0
  204. package/lib/server/frames.js +1471 -0
  205. package/lib/server/har/harRecorder.js +147 -0
  206. package/lib/server/har/harTracer.js +607 -0
  207. package/lib/server/harBackend.js +157 -0
  208. package/lib/server/helper.js +96 -0
  209. package/lib/server/index.js +58 -0
  210. package/lib/server/input.js +277 -0
  211. package/lib/server/instrumentation.js +72 -0
  212. package/lib/server/javascript.js +291 -0
  213. package/lib/server/launchApp.js +128 -0
  214. package/lib/server/localUtils.js +214 -0
  215. package/lib/server/macEditingCommands.js +143 -0
  216. package/lib/server/network.js +667 -0
  217. package/lib/server/page.js +830 -0
  218. package/lib/server/pipeTransport.js +89 -0
  219. package/lib/server/playwright.js +69 -0
  220. package/lib/server/progress.js +132 -0
  221. package/lib/server/protocolError.js +52 -0
  222. package/lib/server/recorder/chat.js +161 -0
  223. package/lib/server/recorder/recorderApp.js +366 -0
  224. package/lib/server/recorder/recorderRunner.js +138 -0
  225. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  226. package/lib/server/recorder/recorderUtils.js +157 -0
  227. package/lib/server/recorder/throttledFile.js +57 -0
  228. package/lib/server/recorder.js +499 -0
  229. package/lib/server/registry/browserFetcher.js +177 -0
  230. package/lib/server/registry/dependencies.js +371 -0
  231. package/lib/server/registry/index.js +1422 -0
  232. package/lib/server/registry/nativeDeps.js +1280 -0
  233. package/lib/server/registry/oopDownloadBrowserMain.js +127 -0
  234. package/lib/server/screencast.js +190 -0
  235. package/lib/server/screenshotter.js +333 -0
  236. package/lib/server/selectors.js +112 -0
  237. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  238. package/lib/server/socksInterceptor.js +95 -0
  239. package/lib/server/trace/exporter/traceExporter.js +1102 -0
  240. package/lib/server/trace/recorder/snapshotter.js +147 -0
  241. package/lib/server/trace/recorder/snapshotterInjected.js +561 -0
  242. package/lib/server/trace/recorder/tracing.js +604 -0
  243. package/lib/server/trace/viewer/traceParser.js +72 -0
  244. package/lib/server/trace/viewer/traceViewer.js +245 -0
  245. package/lib/server/transport.js +181 -0
  246. package/lib/server/types.js +28 -0
  247. package/lib/server/usKeyboardLayout.js +145 -0
  248. package/lib/server/utils/ascii.js +44 -0
  249. package/lib/server/utils/comparators.js +139 -0
  250. package/lib/server/utils/crypto.js +216 -0
  251. package/lib/server/utils/debug.js +42 -0
  252. package/lib/server/utils/debugLogger.js +122 -0
  253. package/lib/server/utils/env.js +73 -0
  254. package/lib/server/utils/eventsHelper.js +39 -0
  255. package/lib/server/utils/expectUtils.js +123 -0
  256. package/lib/server/utils/fileUtils.js +191 -0
  257. package/lib/server/utils/happyEyeballs.js +207 -0
  258. package/lib/server/utils/hostPlatform.js +123 -0
  259. package/lib/server/utils/httpServer.js +203 -0
  260. package/lib/server/utils/imageUtils.js +141 -0
  261. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  262. package/lib/server/utils/image_tools/compare.js +109 -0
  263. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  264. package/lib/server/utils/image_tools/stats.js +102 -0
  265. package/lib/server/utils/linuxUtils.js +71 -0
  266. package/lib/server/utils/network.js +242 -0
  267. package/lib/server/utils/nodePlatform.js +154 -0
  268. package/lib/server/utils/pipeTransport.js +84 -0
  269. package/lib/server/utils/processLauncher.js +241 -0
  270. package/lib/server/utils/profiler.js +65 -0
  271. package/lib/server/utils/socksProxy.js +511 -0
  272. package/lib/server/utils/spawnAsync.js +41 -0
  273. package/lib/server/utils/task.js +51 -0
  274. package/lib/server/utils/userAgent.js +98 -0
  275. package/lib/server/utils/wsServer.js +121 -0
  276. package/lib/server/utils/zipFile.js +74 -0
  277. package/lib/server/utils/zones.js +57 -0
  278. package/lib/server/videoRecorder.js +124 -0
  279. package/lib/server/webkit/protocol.d.js +16 -0
  280. package/lib/server/webkit/webkit.js +108 -0
  281. package/lib/server/webkit/wkBrowser.js +335 -0
  282. package/lib/server/webkit/wkConnection.js +144 -0
  283. package/lib/server/webkit/wkExecutionContext.js +154 -0
  284. package/lib/server/webkit/wkInput.js +181 -0
  285. package/lib/server/webkit/wkInterceptableRequest.js +197 -0
  286. package/lib/server/webkit/wkPage.js +1158 -0
  287. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  288. package/lib/server/webkit/wkWorkers.js +105 -0
  289. package/lib/third_party/pixelmatch.js +255 -0
  290. package/lib/utils/isomorphic/ariaSnapshot.js +455 -0
  291. package/lib/utils/isomorphic/assert.js +31 -0
  292. package/lib/utils/isomorphic/colors.js +72 -0
  293. package/lib/utils/isomorphic/cssParser.js +245 -0
  294. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  295. package/lib/utils/isomorphic/headers.js +53 -0
  296. package/lib/utils/isomorphic/locatorGenerators.js +689 -0
  297. package/lib/utils/isomorphic/locatorParser.js +176 -0
  298. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  299. package/lib/utils/isomorphic/lruCache.js +51 -0
  300. package/lib/utils/isomorphic/manualPromise.js +114 -0
  301. package/lib/utils/isomorphic/mimeType.js +459 -0
  302. package/lib/utils/isomorphic/multimap.js +80 -0
  303. package/lib/utils/isomorphic/protocolFormatter.js +81 -0
  304. package/lib/utils/isomorphic/protocolMetainfo.js +330 -0
  305. package/lib/utils/isomorphic/rtti.js +43 -0
  306. package/lib/utils/isomorphic/selectorParser.js +386 -0
  307. package/lib/utils/isomorphic/semaphore.js +54 -0
  308. package/lib/utils/isomorphic/stackTrace.js +158 -0
  309. package/lib/utils/isomorphic/stringUtils.js +204 -0
  310. package/lib/utils/isomorphic/time.js +49 -0
  311. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  312. package/lib/utils/isomorphic/trace/entries.js +16 -0
  313. package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -0
  314. package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
  315. package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
  316. package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
  317. package/lib/utils/isomorphic/trace/traceModel.js +365 -0
  318. package/lib/utils/isomorphic/trace/traceModernizer.js +400 -0
  319. package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
  320. package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
  321. package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
  322. package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
  323. package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
  324. package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
  325. package/lib/utils/isomorphic/traceUtils.js +58 -0
  326. package/lib/utils/isomorphic/types.js +16 -0
  327. package/lib/utils/isomorphic/urlMatch.js +190 -0
  328. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  329. package/lib/utils/isomorphic/yaml.js +84 -0
  330. package/lib/utils.js +111 -0
  331. package/lib/utilsBundle.js +112 -0
  332. package/lib/utilsBundleImpl/index.js +218 -0
  333. package/lib/utilsBundleImpl/xdg-open +1066 -0
  334. package/lib/vite/htmlReport/index.html +84 -0
  335. package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -0
  336. package/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +32 -0
  337. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  338. package/lib/vite/recorder/assets/index-BSjZa4pk.css +1 -0
  339. package/lib/vite/recorder/assets/index-BhTWtUlo.js +193 -0
  340. package/lib/vite/recorder/index.html +29 -0
  341. package/lib/vite/recorder/playwright-logo.svg +9 -0
  342. package/lib/vite/traceViewer/assets/codeMirrorModule-a5XoALAZ.js +32 -0
  343. package/lib/vite/traceViewer/assets/defaultSettingsView-CJSZINFr.js +266 -0
  344. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  345. package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
  346. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  347. package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -0
  348. package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
  349. package/lib/vite/traceViewer/index.Dd9jebqr.js +2 -0
  350. package/lib/vite/traceViewer/index.html +43 -0
  351. package/lib/vite/traceViewer/manifest.webmanifest +16 -0
  352. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  353. package/lib/vite/traceViewer/snapshot.html +21 -0
  354. package/lib/vite/traceViewer/sw.bundle.js +5 -0
  355. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  356. package/lib/vite/traceViewer/uiMode.CQJ9SCIQ.js +5 -0
  357. package/lib/vite/traceViewer/uiMode.html +17 -0
  358. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  359. package/lib/zipBundle.js +34 -0
  360. package/lib/zipBundleImpl.js +5 -0
  361. package/package.json +43 -0
  362. package/types/protocol.d.ts +23824 -0
  363. package/types/structs.d.ts +45 -0
  364. package/types/types.d.ts +23170 -0
@@ -0,0 +1,245 @@
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 traceViewer_exports = {};
30
+ __export(traceViewer_exports, {
31
+ installRootRedirect: () => installRootRedirect,
32
+ openTraceInBrowser: () => openTraceInBrowser,
33
+ openTraceViewerApp: () => openTraceViewerApp,
34
+ runTraceInBrowser: () => runTraceInBrowser,
35
+ runTraceViewerApp: () => runTraceViewerApp,
36
+ startTraceViewerServer: () => startTraceViewerServer
37
+ });
38
+ module.exports = __toCommonJS(traceViewer_exports);
39
+ var import_fs = __toESM(require("fs"));
40
+ var import_path = __toESM(require("path"));
41
+ var import_utils = require("../../../utils");
42
+ var import_utils2 = require("../../../utils");
43
+ var import_httpServer = require("../../utils/httpServer");
44
+ var import_utilsBundle = require("../../../utilsBundle");
45
+ var import_launchApp = require("../../launchApp");
46
+ var import_launchApp2 = require("../../launchApp");
47
+ var import_playwright = require("../../playwright");
48
+ var import_progress = require("../../progress");
49
+ const tracesDirMarker = "traces.dir";
50
+ function validateTraceUrl(traceFileOrUrl) {
51
+ if (!traceFileOrUrl)
52
+ return traceFileOrUrl;
53
+ if (traceFileOrUrl.startsWith("http://") || traceFileOrUrl.startsWith("https://"))
54
+ return traceFileOrUrl;
55
+ let traceFile = traceFileOrUrl;
56
+ if (traceFile.endsWith(".json"))
57
+ return toFilePathUrl(traceFile);
58
+ try {
59
+ const stat = import_fs.default.statSync(traceFile);
60
+ if (stat.isDirectory())
61
+ traceFile = import_path.default.join(traceFile, tracesDirMarker);
62
+ return toFilePathUrl(traceFile);
63
+ } catch {
64
+ throw new Error(`Trace file ${traceFileOrUrl} does not exist!`);
65
+ }
66
+ }
67
+ async function startTraceViewerServer(options) {
68
+ const server = new import_httpServer.HttpServer();
69
+ server.routePrefix("/trace", (request, response) => {
70
+ const url = new URL("http://localhost" + request.url);
71
+ const relativePath = url.pathname.slice("/trace".length);
72
+ if (relativePath.startsWith("/file")) {
73
+ try {
74
+ const filePath = url.searchParams.get("path");
75
+ if (import_fs.default.existsSync(filePath))
76
+ return server.serveFile(request, response, url.searchParams.get("path"));
77
+ if (filePath.endsWith(".json")) {
78
+ const fullPrefix = filePath.substring(0, filePath.length - ".json".length);
79
+ return sendTraceDescriptor(response, import_path.default.dirname(fullPrefix), import_path.default.basename(fullPrefix));
80
+ }
81
+ if (filePath.endsWith(tracesDirMarker))
82
+ return sendTraceDescriptor(response, import_path.default.dirname(filePath));
83
+ } catch {
84
+ }
85
+ response.statusCode = 404;
86
+ response.end();
87
+ return true;
88
+ }
89
+ const absolutePath = import_path.default.join(__dirname, "..", "..", "..", "vite", "traceViewer", ...relativePath.split("/"));
90
+ return server.serveFile(request, response, absolutePath);
91
+ });
92
+ const transport = options?.transport || (options?.isServer ? new StdinServer() : void 0);
93
+ if (transport)
94
+ server.createWebSocket(transport);
95
+ const { host, port } = options || {};
96
+ await server.start({ preferredPort: port, host });
97
+ return server;
98
+ }
99
+ async function installRootRedirect(server, traceUrl, options) {
100
+ const params = new URLSearchParams();
101
+ if (import_path.default.sep !== import_path.default.posix.sep)
102
+ params.set("pathSeparator", import_path.default.sep);
103
+ if (traceUrl)
104
+ params.append("trace", traceUrl);
105
+ if (server.wsGuid())
106
+ params.append("ws", server.wsGuid());
107
+ if (options?.isServer)
108
+ params.append("isServer", "");
109
+ if ((0, import_utils2.isUnderTest)())
110
+ params.append("isUnderTest", "true");
111
+ for (const arg of options.args || [])
112
+ params.append("arg", arg);
113
+ if (options.grep)
114
+ params.append("grep", options.grep);
115
+ if (options.grepInvert)
116
+ params.append("grepInvert", options.grepInvert);
117
+ for (const project of options.project || [])
118
+ params.append("project", project);
119
+ for (const reporter of options.reporter || [])
120
+ params.append("reporter", reporter);
121
+ const urlPath = `./trace/${options.webApp || "index.html"}?${params.toString()}`;
122
+ server.routePath("/", (_, response) => {
123
+ response.statusCode = 302;
124
+ response.setHeader("Location", urlPath);
125
+ response.end();
126
+ return true;
127
+ });
128
+ }
129
+ async function runTraceViewerApp(traceUrl, browserName, options, exitOnClose) {
130
+ traceUrl = validateTraceUrl(traceUrl);
131
+ const server = await startTraceViewerServer(options);
132
+ await installRootRedirect(server, traceUrl, options);
133
+ const page = await openTraceViewerApp(server.urlPrefix("precise"), browserName, options);
134
+ if (exitOnClose)
135
+ page.on("close", () => (0, import_utils.gracefullyProcessExitDoNotHang)(0));
136
+ return page;
137
+ }
138
+ async function runTraceInBrowser(traceUrl, options) {
139
+ traceUrl = validateTraceUrl(traceUrl);
140
+ const server = await startTraceViewerServer(options);
141
+ await installRootRedirect(server, traceUrl, options);
142
+ await openTraceInBrowser(server.urlPrefix("human-readable"));
143
+ }
144
+ async function openTraceViewerApp(url, browserName, options) {
145
+ const traceViewerPlaywright = (0, import_playwright.createPlaywright)({ sdkLanguage: "javascript", isInternalPlaywright: true });
146
+ const traceViewerBrowser = (0, import_utils2.isUnderTest)() ? "chromium" : browserName;
147
+ const { context, page } = await (0, import_launchApp2.launchApp)(traceViewerPlaywright[traceViewerBrowser], {
148
+ sdkLanguage: traceViewerPlaywright.options.sdkLanguage,
149
+ windowSize: { width: 1280, height: 800 },
150
+ persistentContextOptions: {
151
+ ...options?.persistentContextOptions,
152
+ cdpPort: (0, import_utils2.isUnderTest)() ? 0 : void 0,
153
+ headless: !!options?.headless,
154
+ colorScheme: (0, import_utils2.isUnderTest)() ? "light" : void 0
155
+ }
156
+ });
157
+ const controller = new import_progress.ProgressController();
158
+ await controller.run(async (progress) => {
159
+ await context._browser._defaultContext._loadDefaultContextAsIs(progress);
160
+ if (process.env.PWTEST_PRINT_WS_ENDPOINT) {
161
+ process.stderr.write("DevTools listening on: " + context._browser.options.wsEndpoint + "\n");
162
+ }
163
+ if (!(0, import_utils2.isUnderTest)())
164
+ await (0, import_launchApp.syncLocalStorageWithSettings)(page, "traceviewer");
165
+ if ((0, import_utils2.isUnderTest)())
166
+ page.on("close", () => context.close({ reason: "Trace viewer closed" }).catch(() => {
167
+ }));
168
+ await page.mainFrame().goto(progress, url);
169
+ });
170
+ return page;
171
+ }
172
+ async function openTraceInBrowser(url) {
173
+ console.log("\nListening on " + url);
174
+ if (!(0, import_utils2.isUnderTest)())
175
+ await (0, import_utilsBundle.open)(url.replace("0.0.0.0", "localhost")).catch(() => {
176
+ });
177
+ }
178
+ class StdinServer {
179
+ constructor() {
180
+ process.stdin.on("data", (data) => {
181
+ const url = data.toString().trim();
182
+ if (url === this._traceUrl)
183
+ return;
184
+ if (url.endsWith(".json"))
185
+ this._pollLoadTrace(url);
186
+ else
187
+ this._loadTrace(url);
188
+ });
189
+ process.stdin.on("close", () => (0, import_utils.gracefullyProcessExitDoNotHang)(0));
190
+ }
191
+ onconnect() {
192
+ }
193
+ async dispatch(method, params) {
194
+ if (method === "initialize") {
195
+ if (this._traceUrl)
196
+ this._loadTrace(this._traceUrl);
197
+ }
198
+ }
199
+ onclose() {
200
+ }
201
+ _loadTrace(traceUrl) {
202
+ this._traceUrl = traceUrl;
203
+ clearTimeout(this._pollTimer);
204
+ this.sendEvent?.("loadTraceRequested", { traceUrl });
205
+ }
206
+ _pollLoadTrace(url) {
207
+ this._loadTrace(url);
208
+ this._pollTimer = setTimeout(() => {
209
+ this._pollLoadTrace(url);
210
+ }, 500);
211
+ }
212
+ }
213
+ function sendTraceDescriptor(response, traceDir, tracePrefix) {
214
+ response.statusCode = 200;
215
+ response.setHeader("Content-Type", "application/json");
216
+ response.end(JSON.stringify(traceDescriptor(traceDir, tracePrefix)));
217
+ return true;
218
+ }
219
+ function traceDescriptor(traceDir, tracePrefix) {
220
+ const result = {
221
+ entries: []
222
+ };
223
+ for (const name of import_fs.default.readdirSync(traceDir)) {
224
+ if (!tracePrefix || name.startsWith(tracePrefix))
225
+ result.entries.push({ name, path: toFilePathUrl(import_path.default.join(traceDir, name)) });
226
+ }
227
+ const resourcesDir = import_path.default.join(traceDir, "resources");
228
+ if (import_fs.default.existsSync(resourcesDir)) {
229
+ for (const name of import_fs.default.readdirSync(resourcesDir))
230
+ result.entries.push({ name: "resources/" + name, path: toFilePathUrl(import_path.default.join(resourcesDir, name)) });
231
+ }
232
+ return result;
233
+ }
234
+ function toFilePathUrl(filePath) {
235
+ return `file?path=${encodeURIComponent(filePath)}`;
236
+ }
237
+ // Annotate the CommonJS export names for ESM import in node:
238
+ 0 && (module.exports = {
239
+ installRootRedirect,
240
+ openTraceInBrowser,
241
+ openTraceViewerApp,
242
+ runTraceInBrowser,
243
+ runTraceViewerApp,
244
+ startTraceViewerServer
245
+ });
@@ -0,0 +1,181 @@
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 transport_exports = {};
20
+ __export(transport_exports, {
21
+ WebSocketTransport: () => WebSocketTransport,
22
+ perMessageDeflate: () => perMessageDeflate
23
+ });
24
+ module.exports = __toCommonJS(transport_exports);
25
+ var import_utils = require("../utils");
26
+ var import_happyEyeballs = require("./utils/happyEyeballs");
27
+ var import_utilsBundle = require("../utilsBundle");
28
+ const perMessageDeflate = {
29
+ clientNoContextTakeover: true,
30
+ zlibDeflateOptions: {
31
+ level: 3
32
+ },
33
+ zlibInflateOptions: {
34
+ chunkSize: 10 * 1024
35
+ },
36
+ threshold: 10 * 1024
37
+ };
38
+ class WebSocketTransport {
39
+ constructor(progress, url, logUrl, options) {
40
+ this.headers = [];
41
+ this.wsEndpoint = url;
42
+ this._logUrl = logUrl;
43
+ this._ws = new import_utilsBundle.ws(url, [], {
44
+ maxPayload: 256 * 1024 * 1024,
45
+ // 256Mb,
46
+ headers: options.headers,
47
+ followRedirects: options.followRedirects,
48
+ agent: /^(https|wss):\/\//.test(url) ? import_happyEyeballs.httpsHappyEyeballsAgent : import_happyEyeballs.httpHappyEyeballsAgent,
49
+ perMessageDeflate
50
+ });
51
+ this._ws.on("upgrade", (response) => {
52
+ for (let i = 0; i < response.rawHeaders.length; i += 2) {
53
+ this.headers.push({ name: response.rawHeaders[i], value: response.rawHeaders[i + 1] });
54
+ if (options.debugLogHeader && response.rawHeaders[i] === options.debugLogHeader)
55
+ progress?.log(response.rawHeaders[i + 1]);
56
+ }
57
+ });
58
+ this._progress = progress;
59
+ const messageWrap = (0, import_utils.makeWaitForNextTask)();
60
+ this._ws.addEventListener("message", (event) => {
61
+ messageWrap(() => {
62
+ const eventData = event.data;
63
+ let parsedJson;
64
+ try {
65
+ parsedJson = JSON.parse(eventData);
66
+ } catch (e) {
67
+ this._progress?.log(`<closing ws> Closing websocket due to malformed JSON. eventData=${eventData} e=${e?.message}`);
68
+ this._ws.close();
69
+ return;
70
+ }
71
+ try {
72
+ if (this.onmessage)
73
+ this.onmessage.call(null, parsedJson);
74
+ } catch (e) {
75
+ this._progress?.log(`<closing ws> Closing websocket due to failed onmessage callback. eventData=${eventData} e=${e?.message}`);
76
+ this._ws.close();
77
+ }
78
+ });
79
+ });
80
+ this._ws.addEventListener("close", (event) => {
81
+ this._progress?.log(`<ws disconnected> ${logUrl} code=${event.code} reason=${event.reason}`);
82
+ if (this.onclose)
83
+ this.onclose.call(null, event.reason);
84
+ });
85
+ this._ws.addEventListener("error", (error) => this._progress?.log(`<ws error> ${logUrl} ${error.type} ${error.message}`));
86
+ }
87
+ static async connect(progress, url, options = {}) {
88
+ return await WebSocketTransport._connect(
89
+ progress,
90
+ url,
91
+ options,
92
+ false
93
+ /* hadRedirects */
94
+ );
95
+ }
96
+ static async _connect(progress, url, options, hadRedirects) {
97
+ const logUrl = stripQueryParams(url);
98
+ progress?.log(`<ws connecting> ${logUrl}`);
99
+ const transport = new WebSocketTransport(progress, url, logUrl, { ...options, followRedirects: !!options.followRedirects && hadRedirects });
100
+ const resultPromise = new Promise((fulfill, reject) => {
101
+ transport._ws.on("open", async () => {
102
+ progress?.log(`<ws connected> ${logUrl}`);
103
+ fulfill({});
104
+ });
105
+ transport._ws.on("error", (event) => {
106
+ progress?.log(`<ws connect error> ${logUrl} ${event.message}`);
107
+ reject(new Error("WebSocket error: " + event.message));
108
+ transport._ws.close();
109
+ });
110
+ transport._ws.on("unexpected-response", (request, response) => {
111
+ if (options.followRedirects && !hadRedirects && (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308)) {
112
+ fulfill({ redirect: response });
113
+ transport._ws.close();
114
+ return;
115
+ }
116
+ for (let i = 0; i < response.rawHeaders.length; i += 2) {
117
+ if (options.debugLogHeader && response.rawHeaders[i] === options.debugLogHeader)
118
+ progress?.log(response.rawHeaders[i + 1]);
119
+ }
120
+ const chunks = [];
121
+ const errorPrefix = `${logUrl} ${response.statusCode} ${response.statusMessage}`;
122
+ response.on("data", (chunk) => chunks.push(chunk));
123
+ response.on("close", () => {
124
+ const error = chunks.length ? `${errorPrefix}
125
+ ${Buffer.concat(chunks)}` : errorPrefix;
126
+ progress?.log(`<ws unexpected response> ${error}`);
127
+ reject(new Error("WebSocket error: " + error));
128
+ transport._ws.close();
129
+ });
130
+ });
131
+ });
132
+ try {
133
+ const result = progress ? await progress.race(resultPromise) : await resultPromise;
134
+ if (result.redirect) {
135
+ const newHeaders = Object.fromEntries(Object.entries(options.headers || {}).filter(([name]) => {
136
+ return !name.includes("access-key") && name.toLowerCase() !== "authorization";
137
+ }));
138
+ return WebSocketTransport._connect(
139
+ progress,
140
+ result.redirect.headers.location,
141
+ { ...options, headers: newHeaders },
142
+ true
143
+ /* hadRedirects */
144
+ );
145
+ }
146
+ return transport;
147
+ } catch (error) {
148
+ await transport.closeAndWait();
149
+ throw error;
150
+ }
151
+ }
152
+ send(message) {
153
+ this._ws.send(JSON.stringify(message));
154
+ }
155
+ close() {
156
+ this._progress?.log(`<ws disconnecting> ${this._logUrl}`);
157
+ this._ws.close();
158
+ }
159
+ async closeAndWait() {
160
+ if (this._ws.readyState === import_utilsBundle.ws.CLOSED)
161
+ return;
162
+ const promise = new Promise((f) => this._ws.once("close", f));
163
+ this.close();
164
+ await promise;
165
+ }
166
+ }
167
+ function stripQueryParams(url) {
168
+ try {
169
+ const u = new URL(url);
170
+ u.search = "";
171
+ u.hash = "";
172
+ return u.toString();
173
+ } catch {
174
+ return url;
175
+ }
176
+ }
177
+ // Annotate the CommonJS export names for ESM import in node:
178
+ 0 && (module.exports = {
179
+ WebSocketTransport,
180
+ perMessageDeflate
181
+ });
@@ -0,0 +1,28 @@
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 types_exports = {};
20
+ __export(types_exports, {
21
+ kLifecycleEvents: () => kLifecycleEvents
22
+ });
23
+ module.exports = __toCommonJS(types_exports);
24
+ const kLifecycleEvents = /* @__PURE__ */ new Set(["load", "domcontentloaded", "networkidle", "commit"]);
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ kLifecycleEvents
28
+ });
@@ -0,0 +1,145 @@
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 usKeyboardLayout_exports = {};
20
+ __export(usKeyboardLayout_exports, {
21
+ USKeyboardLayout: () => USKeyboardLayout,
22
+ keypadLocation: () => keypadLocation
23
+ });
24
+ module.exports = __toCommonJS(usKeyboardLayout_exports);
25
+ const keypadLocation = 3;
26
+ const USKeyboardLayout = {
27
+ // Functions row
28
+ "Escape": { "keyCode": 27, "key": "Escape" },
29
+ "F1": { "keyCode": 112, "key": "F1" },
30
+ "F2": { "keyCode": 113, "key": "F2" },
31
+ "F3": { "keyCode": 114, "key": "F3" },
32
+ "F4": { "keyCode": 115, "key": "F4" },
33
+ "F5": { "keyCode": 116, "key": "F5" },
34
+ "F6": { "keyCode": 117, "key": "F6" },
35
+ "F7": { "keyCode": 118, "key": "F7" },
36
+ "F8": { "keyCode": 119, "key": "F8" },
37
+ "F9": { "keyCode": 120, "key": "F9" },
38
+ "F10": { "keyCode": 121, "key": "F10" },
39
+ "F11": { "keyCode": 122, "key": "F11" },
40
+ "F12": { "keyCode": 123, "key": "F12" },
41
+ // Numbers row
42
+ "Backquote": { "keyCode": 192, "shiftKey": "~", "key": "`" },
43
+ "Digit1": { "keyCode": 49, "shiftKey": "!", "key": "1" },
44
+ "Digit2": { "keyCode": 50, "shiftKey": "@", "key": "2" },
45
+ "Digit3": { "keyCode": 51, "shiftKey": "#", "key": "3" },
46
+ "Digit4": { "keyCode": 52, "shiftKey": "$", "key": "4" },
47
+ "Digit5": { "keyCode": 53, "shiftKey": "%", "key": "5" },
48
+ "Digit6": { "keyCode": 54, "shiftKey": "^", "key": "6" },
49
+ "Digit7": { "keyCode": 55, "shiftKey": "&", "key": "7" },
50
+ "Digit8": { "keyCode": 56, "shiftKey": "*", "key": "8" },
51
+ "Digit9": { "keyCode": 57, "shiftKey": "(", "key": "9" },
52
+ "Digit0": { "keyCode": 48, "shiftKey": ")", "key": "0" },
53
+ "Minus": { "keyCode": 189, "shiftKey": "_", "key": "-" },
54
+ "Equal": { "keyCode": 187, "shiftKey": "+", "key": "=" },
55
+ "Backslash": { "keyCode": 220, "shiftKey": "|", "key": "\\" },
56
+ "Backspace": { "keyCode": 8, "key": "Backspace" },
57
+ // First row
58
+ "Tab": { "keyCode": 9, "key": "Tab" },
59
+ "KeyQ": { "keyCode": 81, "shiftKey": "Q", "key": "q" },
60
+ "KeyW": { "keyCode": 87, "shiftKey": "W", "key": "w" },
61
+ "KeyE": { "keyCode": 69, "shiftKey": "E", "key": "e" },
62
+ "KeyR": { "keyCode": 82, "shiftKey": "R", "key": "r" },
63
+ "KeyT": { "keyCode": 84, "shiftKey": "T", "key": "t" },
64
+ "KeyY": { "keyCode": 89, "shiftKey": "Y", "key": "y" },
65
+ "KeyU": { "keyCode": 85, "shiftKey": "U", "key": "u" },
66
+ "KeyI": { "keyCode": 73, "shiftKey": "I", "key": "i" },
67
+ "KeyO": { "keyCode": 79, "shiftKey": "O", "key": "o" },
68
+ "KeyP": { "keyCode": 80, "shiftKey": "P", "key": "p" },
69
+ "BracketLeft": { "keyCode": 219, "shiftKey": "{", "key": "[" },
70
+ "BracketRight": { "keyCode": 221, "shiftKey": "}", "key": "]" },
71
+ // Second row
72
+ "CapsLock": { "keyCode": 20, "key": "CapsLock" },
73
+ "KeyA": { "keyCode": 65, "shiftKey": "A", "key": "a" },
74
+ "KeyS": { "keyCode": 83, "shiftKey": "S", "key": "s" },
75
+ "KeyD": { "keyCode": 68, "shiftKey": "D", "key": "d" },
76
+ "KeyF": { "keyCode": 70, "shiftKey": "F", "key": "f" },
77
+ "KeyG": { "keyCode": 71, "shiftKey": "G", "key": "g" },
78
+ "KeyH": { "keyCode": 72, "shiftKey": "H", "key": "h" },
79
+ "KeyJ": { "keyCode": 74, "shiftKey": "J", "key": "j" },
80
+ "KeyK": { "keyCode": 75, "shiftKey": "K", "key": "k" },
81
+ "KeyL": { "keyCode": 76, "shiftKey": "L", "key": "l" },
82
+ "Semicolon": { "keyCode": 186, "shiftKey": ":", "key": ";" },
83
+ "Quote": { "keyCode": 222, "shiftKey": '"', "key": "'" },
84
+ "Enter": { "keyCode": 13, "key": "Enter", "text": "\r" },
85
+ // Third row
86
+ "ShiftLeft": { "keyCode": 160, "keyCodeWithoutLocation": 16, "key": "Shift", "location": 1 },
87
+ "KeyZ": { "keyCode": 90, "shiftKey": "Z", "key": "z" },
88
+ "KeyX": { "keyCode": 88, "shiftKey": "X", "key": "x" },
89
+ "KeyC": { "keyCode": 67, "shiftKey": "C", "key": "c" },
90
+ "KeyV": { "keyCode": 86, "shiftKey": "V", "key": "v" },
91
+ "KeyB": { "keyCode": 66, "shiftKey": "B", "key": "b" },
92
+ "KeyN": { "keyCode": 78, "shiftKey": "N", "key": "n" },
93
+ "KeyM": { "keyCode": 77, "shiftKey": "M", "key": "m" },
94
+ "Comma": { "keyCode": 188, "shiftKey": "<", "key": "," },
95
+ "Period": { "keyCode": 190, "shiftKey": ">", "key": "." },
96
+ "Slash": { "keyCode": 191, "shiftKey": "?", "key": "/" },
97
+ "ShiftRight": { "keyCode": 161, "keyCodeWithoutLocation": 16, "key": "Shift", "location": 2 },
98
+ // Last row
99
+ "ControlLeft": { "keyCode": 162, "keyCodeWithoutLocation": 17, "key": "Control", "location": 1 },
100
+ "MetaLeft": { "keyCode": 91, "key": "Meta", "location": 1 },
101
+ "AltLeft": { "keyCode": 164, "keyCodeWithoutLocation": 18, "key": "Alt", "location": 1 },
102
+ "Space": { "keyCode": 32, "key": " " },
103
+ "AltRight": { "keyCode": 165, "keyCodeWithoutLocation": 18, "key": "Alt", "location": 2 },
104
+ "AltGraph": { "keyCode": 225, "key": "AltGraph" },
105
+ "MetaRight": { "keyCode": 92, "key": "Meta", "location": 2 },
106
+ "ContextMenu": { "keyCode": 93, "key": "ContextMenu" },
107
+ "ControlRight": { "keyCode": 163, "keyCodeWithoutLocation": 17, "key": "Control", "location": 2 },
108
+ // Center block
109
+ "PrintScreen": { "keyCode": 44, "key": "PrintScreen" },
110
+ "ScrollLock": { "keyCode": 145, "key": "ScrollLock" },
111
+ "Pause": { "keyCode": 19, "key": "Pause" },
112
+ "PageUp": { "keyCode": 33, "key": "PageUp" },
113
+ "PageDown": { "keyCode": 34, "key": "PageDown" },
114
+ "Insert": { "keyCode": 45, "key": "Insert" },
115
+ "Delete": { "keyCode": 46, "key": "Delete" },
116
+ "Home": { "keyCode": 36, "key": "Home" },
117
+ "End": { "keyCode": 35, "key": "End" },
118
+ "ArrowLeft": { "keyCode": 37, "key": "ArrowLeft" },
119
+ "ArrowUp": { "keyCode": 38, "key": "ArrowUp" },
120
+ "ArrowRight": { "keyCode": 39, "key": "ArrowRight" },
121
+ "ArrowDown": { "keyCode": 40, "key": "ArrowDown" },
122
+ // Numpad
123
+ "NumLock": { "keyCode": 144, "key": "NumLock" },
124
+ "NumpadDivide": { "keyCode": 111, "key": "/", "location": 3 },
125
+ "NumpadMultiply": { "keyCode": 106, "key": "*", "location": 3 },
126
+ "NumpadSubtract": { "keyCode": 109, "key": "-", "location": 3 },
127
+ "Numpad7": { "keyCode": 36, "shiftKeyCode": 103, "key": "Home", "shiftKey": "7", "location": 3 },
128
+ "Numpad8": { "keyCode": 38, "shiftKeyCode": 104, "key": "ArrowUp", "shiftKey": "8", "location": 3 },
129
+ "Numpad9": { "keyCode": 33, "shiftKeyCode": 105, "key": "PageUp", "shiftKey": "9", "location": 3 },
130
+ "Numpad4": { "keyCode": 37, "shiftKeyCode": 100, "key": "ArrowLeft", "shiftKey": "4", "location": 3 },
131
+ "Numpad5": { "keyCode": 12, "shiftKeyCode": 101, "key": "Clear", "shiftKey": "5", "location": 3 },
132
+ "Numpad6": { "keyCode": 39, "shiftKeyCode": 102, "key": "ArrowRight", "shiftKey": "6", "location": 3 },
133
+ "NumpadAdd": { "keyCode": 107, "key": "+", "location": 3 },
134
+ "Numpad1": { "keyCode": 35, "shiftKeyCode": 97, "key": "End", "shiftKey": "1", "location": 3 },
135
+ "Numpad2": { "keyCode": 40, "shiftKeyCode": 98, "key": "ArrowDown", "shiftKey": "2", "location": 3 },
136
+ "Numpad3": { "keyCode": 34, "shiftKeyCode": 99, "key": "PageDown", "shiftKey": "3", "location": 3 },
137
+ "Numpad0": { "keyCode": 45, "shiftKeyCode": 96, "key": "Insert", "shiftKey": "0", "location": 3 },
138
+ "NumpadDecimal": { "keyCode": 46, "shiftKeyCode": 110, "key": "\0", "shiftKey": ".", "location": 3 },
139
+ "NumpadEnter": { "keyCode": 13, "key": "Enter", "text": "\r", "location": 3 }
140
+ };
141
+ // Annotate the CommonJS export names for ESM import in node:
142
+ 0 && (module.exports = {
143
+ USKeyboardLayout,
144
+ keypadLocation
145
+ });
@@ -0,0 +1,44 @@
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 ascii_exports = {};
20
+ __export(ascii_exports, {
21
+ jsonStringifyForceASCII: () => jsonStringifyForceASCII,
22
+ wrapInASCIIBox: () => wrapInASCIIBox
23
+ });
24
+ module.exports = __toCommonJS(ascii_exports);
25
+ function wrapInASCIIBox(text, padding = 0) {
26
+ const lines = text.split("\n");
27
+ const maxLength = Math.max(...lines.map((line) => line.length));
28
+ return [
29
+ "\u2554" + "\u2550".repeat(maxLength + padding * 2) + "\u2557",
30
+ ...lines.map((line) => "\u2551" + " ".repeat(padding) + line + " ".repeat(maxLength - line.length + padding) + "\u2551"),
31
+ "\u255A" + "\u2550".repeat(maxLength + padding * 2) + "\u255D"
32
+ ].join("\n");
33
+ }
34
+ function jsonStringifyForceASCII(object) {
35
+ return JSON.stringify(object).replace(
36
+ /[\u007f-\uffff]/g,
37
+ (c) => "\\u" + ("0000" + c.charCodeAt(0).toString(16)).slice(-4)
38
+ );
39
+ }
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ jsonStringifyForceASCII,
43
+ wrapInASCIIBox
44
+ });