@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.1

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 (376) hide show
  1. package/ThirdPartyNotices.txt +65 -123
  2. package/browsers.json +16 -14
  3. package/index.js +1 -1
  4. package/lib/androidServerImpl.js +47 -50
  5. package/lib/browserServerImpl.js +89 -69
  6. package/lib/checkly/escapeRegExp.js +23 -27
  7. package/lib/checkly/fetch.js +64 -46
  8. package/lib/checkly/secretsFilter.js +49 -35
  9. package/lib/cli/driver.js +71 -69
  10. package/lib/cli/program.js +400 -359
  11. package/lib/cli/programWithTestStub.js +51 -45
  12. package/lib/client/accessibility.js +31 -32
  13. package/lib/client/android.js +151 -242
  14. package/lib/client/api.js +135 -283
  15. package/lib/client/artifact.js +39 -36
  16. package/lib/client/browser.js +96 -71
  17. package/lib/client/browserContext.js +314 -345
  18. package/lib/client/browserType.js +103 -127
  19. package/lib/client/cdpSession.js +29 -31
  20. package/lib/client/channelOwner.js +89 -112
  21. package/lib/client/clientHelper.js +48 -39
  22. package/lib/client/clientInstrumentation.js +40 -37
  23. package/lib/client/clientStackTrace.js +41 -37
  24. package/lib/client/clock.js +36 -36
  25. package/lib/client/connection.js +188 -214
  26. package/lib/client/consoleMessage.js +31 -28
  27. package/lib/client/coverage.js +25 -22
  28. package/lib/client/dialog.js +30 -31
  29. package/lib/client/download.js +25 -25
  30. package/lib/client/electron.js +80 -77
  31. package/lib/client/elementHandle.js +120 -159
  32. package/lib/client/errors.js +53 -53
  33. package/lib/client/eventEmitter.js +124 -121
  34. package/lib/client/events.js +72 -68
  35. package/lib/client/fetch.js +166 -190
  36. package/lib/client/fileChooser.js +25 -24
  37. package/lib/client/fileUtils.js +31 -28
  38. package/lib/client/frame.js +207 -306
  39. package/lib/client/harRouter.js +42 -52
  40. package/lib/client/input.js +42 -69
  41. package/lib/client/jsHandle.js +54 -69
  42. package/lib/client/jsonPipe.js +27 -23
  43. package/lib/client/localUtils.js +29 -29
  44. package/lib/client/locator.js +145 -237
  45. package/lib/client/network.js +282 -307
  46. package/lib/client/page.js +269 -318
  47. package/lib/client/platform.js +46 -43
  48. package/lib/client/playwright.js +51 -76
  49. package/lib/client/selectors.js +45 -63
  50. package/lib/client/stream.js +29 -25
  51. package/lib/client/timeoutSettings.js +55 -41
  52. package/lib/client/tracing.js +49 -96
  53. package/lib/client/types.js +26 -22
  54. package/lib/client/video.js +35 -27
  55. package/lib/client/waiter.js +69 -88
  56. package/lib/client/webError.js +25 -23
  57. package/lib/client/webSocket.js +43 -56
  58. package/lib/client/worker.js +48 -56
  59. package/lib/client/writableStream.js +27 -23
  60. package/lib/generated/bindingsControllerSource.js +28 -0
  61. package/lib/generated/clockSource.js +26 -6
  62. package/lib/generated/consoleApiSource.js +26 -6
  63. package/lib/generated/injectedScriptSource.js +26 -6
  64. package/lib/generated/pollingRecorderSource.js +26 -6
  65. package/lib/generated/storageScriptSource.js +28 -0
  66. package/lib/generated/utilityScriptSource.js +26 -6
  67. package/lib/generated/webSocketMockSource.js +333 -5
  68. package/lib/inProcessFactory.js +51 -53
  69. package/lib/inprocess.js +2 -19
  70. package/lib/outofprocess.js +51 -46
  71. package/lib/protocol/serializers.js +153 -134
  72. package/lib/protocol/validator.js +2807 -2739
  73. package/lib/protocol/validatorPrimitives.js +114 -73
  74. package/lib/remote/playwrightConnection.js +88 -242
  75. package/lib/remote/playwrightServer.js +305 -92
  76. package/lib/server/accessibility.js +44 -37
  77. package/lib/server/android/android.js +251 -241
  78. package/lib/server/android/backendAdb.js +87 -82
  79. package/lib/server/artifact.js +78 -55
  80. package/lib/server/bidi/bidiBrowser.js +297 -158
  81. package/lib/server/bidi/bidiChromium.js +119 -89
  82. package/lib/server/bidi/bidiConnection.js +66 -83
  83. package/lib/server/bidi/bidiExecutionContext.js +129 -113
  84. package/lib/server/bidi/bidiFirefox.js +86 -76
  85. package/lib/server/bidi/bidiInput.js +106 -117
  86. package/lib/server/bidi/bidiNetworkManager.js +142 -159
  87. package/lib/server/bidi/bidiOverCdp.js +57 -58
  88. package/lib/server/bidi/bidiPage.js +260 -260
  89. package/lib/server/bidi/bidiPdf.js +52 -86
  90. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  91. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  92. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  93. package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
  94. package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
  95. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  96. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  97. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  98. package/lib/server/browser.js +93 -95
  99. package/lib/server/browserContext.js +419 -429
  100. package/lib/server/browserType.js +186 -216
  101. package/lib/server/callLog.js +47 -44
  102. package/lib/server/chromium/chromium.js +235 -203
  103. package/lib/server/chromium/chromiumSwitches.js +100 -67
  104. package/lib/server/chromium/crAccessibility.js +157 -131
  105. package/lib/server/chromium/crBrowser.js +310 -292
  106. package/lib/server/chromium/crConnection.js +95 -121
  107. package/lib/server/chromium/crCoverage.js +121 -131
  108. package/lib/server/chromium/crDevTools.js +60 -51
  109. package/lib/server/chromium/crDragDrop.js +68 -84
  110. package/lib/server/chromium/crExecutionContext.js +89 -83
  111. package/lib/server/chromium/crInput.js +118 -113
  112. package/lib/server/chromium/crNetworkManager.js +274 -375
  113. package/lib/server/chromium/crPage.js +536 -593
  114. package/lib/server/chromium/crPdf.js +54 -86
  115. package/lib/server/chromium/crProtocolHelper.js +92 -80
  116. package/lib/server/chromium/crServiceWorker.js +84 -73
  117. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  118. package/lib/server/chromium/protocol.d.js +16 -0
  119. package/lib/server/chromium/videoRecorder.js +66 -99
  120. package/lib/server/clock.js +107 -83
  121. package/lib/server/codegen/csharp.js +192 -162
  122. package/lib/server/codegen/java.js +156 -129
  123. package/lib/server/codegen/javascript.js +163 -148
  124. package/lib/server/codegen/jsonl.js +32 -28
  125. package/lib/server/codegen/language.js +75 -52
  126. package/lib/server/codegen/languages.js +65 -27
  127. package/lib/server/codegen/python.js +141 -126
  128. package/lib/server/codegen/types.js +15 -4
  129. package/lib/server/console.js +28 -32
  130. package/lib/server/cookieStore.js +108 -86
  131. package/lib/server/debugController.js +147 -151
  132. package/lib/server/debugger.js +86 -78
  133. package/lib/server/deviceDescriptors.js +37 -24
  134. package/lib/server/deviceDescriptorsSource.json +238 -128
  135. package/lib/server/dialog.js +84 -39
  136. package/lib/server/dispatchers/androidDispatcher.js +257 -148
  137. package/lib/server/dispatchers/artifactDispatcher.js +79 -79
  138. package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
  139. package/lib/server/dispatchers/browserDispatcher.js +96 -148
  140. package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
  141. package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
  142. package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
  143. package/lib/server/dispatchers/dialogDispatcher.js +34 -31
  144. package/lib/server/dispatchers/dispatcher.js +208 -248
  145. package/lib/server/dispatchers/electronDispatcher.js +66 -70
  146. package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
  147. package/lib/server/dispatchers/frameDispatcher.js +211 -272
  148. package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
  149. package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
  150. package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
  151. package/lib/server/dispatchers/networkDispatchers.js +117 -128
  152. package/lib/server/dispatchers/pageDispatcher.js +256 -248
  153. package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
  154. package/lib/server/dispatchers/streamDispatcher.js +52 -48
  155. package/lib/server/dispatchers/tracingDispatcher.js +47 -52
  156. package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
  157. package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
  158. package/lib/server/dom.js +485 -582
  159. package/lib/server/download.js +47 -37
  160. package/lib/server/electron/electron.js +216 -243
  161. package/lib/server/electron/loader.js +9 -37
  162. package/lib/server/errors.js +47 -46
  163. package/lib/server/fetch.js +317 -360
  164. package/lib/server/fileChooser.js +25 -24
  165. package/lib/server/fileUploadUtils.js +66 -60
  166. package/lib/server/firefox/ffAccessibility.js +153 -131
  167. package/lib/server/firefox/ffBrowser.js +268 -305
  168. package/lib/server/firefox/ffConnection.js +63 -84
  169. package/lib/server/firefox/ffExecutionContext.js +92 -73
  170. package/lib/server/firefox/ffInput.js +82 -84
  171. package/lib/server/firefox/ffNetworkManager.js +137 -114
  172. package/lib/server/firefox/ffPage.js +261 -293
  173. package/lib/server/firefox/firefox.js +80 -72
  174. package/lib/server/firefox/protocol.d.js +16 -0
  175. package/lib/server/formData.js +107 -35
  176. package/lib/server/frameSelectors.js +98 -114
  177. package/lib/server/frames.js +845 -1055
  178. package/lib/server/har/harRecorder.js +85 -77
  179. package/lib/server/har/harTracer.js +290 -223
  180. package/lib/server/harBackend.js +80 -80
  181. package/lib/server/helper.js +55 -59
  182. package/lib/server/index.js +59 -99
  183. package/lib/server/input.js +151 -189
  184. package/lib/server/instrumentation.js +57 -44
  185. package/lib/server/javascript.js +133 -134
  186. package/lib/server/launchApp.js +113 -75
  187. package/lib/server/localUtils.js +150 -142
  188. package/lib/server/macEditingCommands.js +141 -137
  189. package/lib/server/network.js +299 -303
  190. package/lib/server/page.js +513 -544
  191. package/lib/server/pipeTransport.js +49 -45
  192. package/lib/server/playwright.js +58 -67
  193. package/lib/server/progress.js +137 -68
  194. package/lib/server/protocolError.js +34 -31
  195. package/lib/server/recorder/chat.js +70 -86
  196. package/lib/server/recorder/recorderApp.js +341 -176
  197. package/lib/server/recorder/recorderInTraceViewer.js +65 -94
  198. package/lib/server/recorder/recorderRunner.js +93 -116
  199. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  200. package/lib/server/recorder/recorderUtils.js +104 -47
  201. package/lib/server/recorder/throttledFile.js +42 -30
  202. package/lib/server/recorder.js +395 -275
  203. package/lib/server/registry/browserFetcher.js +106 -101
  204. package/lib/server/registry/dependencies.js +245 -196
  205. package/lib/server/registry/index.js +930 -803
  206. package/lib/server/registry/nativeDeps.js +1073 -464
  207. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  208. package/lib/server/screenshotter.js +160 -191
  209. package/lib/server/selectors.js +90 -51
  210. package/lib/server/socksClientCertificatesInterceptor.js +171 -186
  211. package/lib/server/socksInterceptor.js +62 -70
  212. package/lib/server/trace/recorder/snapshotter.js +76 -102
  213. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  214. package/lib/server/trace/recorder/tracing.js +354 -362
  215. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  216. package/lib/server/trace/viewer/traceViewer.js +160 -147
  217. package/lib/server/transport.js +119 -134
  218. package/lib/server/types.js +26 -22
  219. package/lib/server/usKeyboardLayout.js +135 -545
  220. package/lib/server/utils/ascii.js +39 -26
  221. package/lib/server/utils/comparators.js +105 -103
  222. package/lib/server/utils/crypto.js +157 -112
  223. package/lib/server/utils/debug.js +36 -32
  224. package/lib/server/utils/debugLogger.js +77 -48
  225. package/lib/server/utils/env.js +52 -37
  226. package/lib/server/utils/eventsHelper.js +29 -28
  227. package/lib/server/utils/expectUtils.js +31 -26
  228. package/lib/server/utils/fileUtils.js +123 -136
  229. package/lib/server/utils/happyEyeballs.js +141 -126
  230. package/lib/server/utils/hostPlatform.js +84 -120
  231. package/lib/server/utils/httpServer.js +106 -121
  232. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  233. package/lib/server/utils/image_tools/compare.js +44 -43
  234. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  235. package/lib/server/utils/image_tools/stats.js +40 -40
  236. package/lib/server/utils/linuxUtils.js +50 -37
  237. package/lib/server/utils/network.js +152 -96
  238. package/lib/server/utils/nodePlatform.js +87 -79
  239. package/lib/server/utils/pipeTransport.js +44 -42
  240. package/lib/server/utils/processLauncher.js +111 -121
  241. package/lib/server/utils/profiler.js +52 -39
  242. package/lib/server/utils/socksProxy.js +280 -339
  243. package/lib/server/utils/spawnAsync.js +37 -41
  244. package/lib/server/utils/task.js +31 -38
  245. package/lib/server/utils/userAgent.js +73 -66
  246. package/lib/server/utils/wsServer.js +68 -75
  247. package/lib/server/utils/zipFile.js +36 -37
  248. package/lib/server/utils/zones.js +37 -34
  249. package/lib/server/webkit/protocol.d.js +16 -0
  250. package/lib/server/webkit/webkit.js +77 -61
  251. package/lib/server/webkit/wkAccessibility.js +161 -118
  252. package/lib/server/webkit/wkBrowser.js +193 -184
  253. package/lib/server/webkit/wkConnection.js +59 -83
  254. package/lib/server/webkit/wkExecutionContext.js +85 -70
  255. package/lib/server/webkit/wkInput.js +97 -95
  256. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  257. package/lib/server/webkit/wkPage.js +568 -667
  258. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  259. package/lib/server/webkit/wkWorkers.js +79 -79
  260. package/lib/utils/expectUtils.js +31 -26
  261. package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
  262. package/lib/utils/isomorphic/assert.js +28 -22
  263. package/lib/utils/isomorphic/colors.js +66 -59
  264. package/lib/utils/isomorphic/cssParser.js +120 -125
  265. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  266. package/lib/utils/isomorphic/headers.js +38 -37
  267. package/lib/utils/isomorphic/locatorGenerators.js +358 -357
  268. package/lib/utils/isomorphic/locatorParser.js +96 -105
  269. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  270. package/lib/utils/isomorphic/manualPromise.js +46 -39
  271. package/lib/utils/isomorphic/mimeType.js +447 -25
  272. package/lib/utils/isomorphic/multimap.js +34 -27
  273. package/lib/utils/isomorphic/protocolFormatter.js +68 -0
  274. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  275. package/lib/utils/isomorphic/recorderUtils.js +140 -181
  276. package/lib/utils/isomorphic/rtti.js +35 -33
  277. package/lib/utils/isomorphic/selectorParser.js +182 -193
  278. package/lib/utils/isomorphic/semaphore.js +27 -24
  279. package/lib/utils/isomorphic/stackTrace.js +87 -98
  280. package/lib/utils/isomorphic/stringUtils.js +98 -112
  281. package/lib/utils/isomorphic/time.js +46 -22
  282. package/lib/utils/isomorphic/timeoutRunner.js +53 -53
  283. package/lib/utils/isomorphic/traceUtils.js +37 -41
  284. package/lib/utils/isomorphic/types.js +15 -4
  285. package/lib/utils/isomorphic/urlMatch.js +113 -67
  286. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  287. package/lib/utils.js +101 -443
  288. package/lib/utilsBundle.js +101 -52
  289. package/lib/utilsBundleImpl/index.js +160 -150
  290. package/lib/zipBundle.js +32 -23
  291. package/lib/zipBundleImpl.js +4 -4
  292. package/package.json +1 -1
  293. package/types/protocol.d.ts +1267 -1057
  294. package/types/types.d.ts +131 -29
  295. package/lib/common/socksProxy.js +0 -569
  296. package/lib/common/timeoutSettings.js +0 -73
  297. package/lib/common/types.js +0 -5
  298. package/lib/image_tools/colorUtils.js +0 -98
  299. package/lib/image_tools/compare.js +0 -108
  300. package/lib/image_tools/imageChannel.js +0 -70
  301. package/lib/image_tools/stats.js +0 -102
  302. package/lib/protocol/debug.js +0 -27
  303. package/lib/protocol/transport.js +0 -82
  304. package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
  305. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  306. package/lib/server/recorder/contextRecorder.js +0 -290
  307. package/lib/server/recorder/recorderCollection.js +0 -104
  308. package/lib/server/recorder/recorderFrontend.js +0 -5
  309. package/lib/server/storageScript.js +0 -160
  310. package/lib/server/timeoutSettings.js +0 -74
  311. package/lib/third_party/diff_match_patch.js +0 -2222
  312. package/lib/utils/ascii.js +0 -31
  313. package/lib/utils/comparators.js +0 -171
  314. package/lib/utils/crypto.js +0 -174
  315. package/lib/utils/debug.js +0 -46
  316. package/lib/utils/debugLogger.js +0 -91
  317. package/lib/utils/env.js +0 -49
  318. package/lib/utils/eventsHelper.js +0 -38
  319. package/lib/utils/fileUtils.js +0 -205
  320. package/lib/utils/happy-eyeballs.js +0 -210
  321. package/lib/utils/headers.js +0 -52
  322. package/lib/utils/hostPlatform.js +0 -133
  323. package/lib/utils/httpServer.js +0 -237
  324. package/lib/utils/index.js +0 -368
  325. package/lib/utils/linuxUtils.js +0 -78
  326. package/lib/utils/manualPromise.js +0 -109
  327. package/lib/utils/multimap.js +0 -75
  328. package/lib/utils/network.js +0 -160
  329. package/lib/utils/processLauncher.js +0 -248
  330. package/lib/utils/profiler.js +0 -53
  331. package/lib/utils/rtti.js +0 -44
  332. package/lib/utils/semaphore.js +0 -51
  333. package/lib/utils/spawnAsync.js +0 -45
  334. package/lib/utils/stackTrace.js +0 -121
  335. package/lib/utils/task.js +0 -58
  336. package/lib/utils/time.js +0 -37
  337. package/lib/utils/timeoutRunner.js +0 -66
  338. package/lib/utils/traceUtils.js +0 -44
  339. package/lib/utils/userAgent.js +0 -105
  340. package/lib/utils/wsServer.js +0 -127
  341. package/lib/utils/zipFile.js +0 -75
  342. package/lib/utils/zones.js +0 -62
  343. package/lib/vite/htmlReport/index.html +0 -69
  344. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
  345. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
  346. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  347. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  348. package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
  349. package/lib/vite/recorder/index.html +0 -29
  350. package/lib/vite/recorder/playwright-logo.svg +0 -9
  351. package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
  352. package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
  353. package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
  354. package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
  355. package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
  356. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
  357. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  358. package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
  359. package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
  360. package/lib/vite/traceViewer/embedded.html +0 -18
  361. package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
  362. package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
  363. package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
  364. package/lib/vite/traceViewer/index.html +0 -47
  365. package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
  366. package/lib/vite/traceViewer/playwright-logo.svg +0 -9
  367. package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
  368. package/lib/vite/traceViewer/recorder.html +0 -17
  369. package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
  370. package/lib/vite/traceViewer/snapshot.html +0 -21
  371. package/lib/vite/traceViewer/sw.bundle.js +0 -3
  372. package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
  373. package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
  374. package/lib/vite/traceViewer/uiMode.html +0 -21
  375. package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
  376. package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
@@ -1,39 +1,37 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 ariaSnapshot_exports = {};
20
+ __export(ariaSnapshot_exports, {
21
+ KeyParser: () => KeyParser,
22
+ ParserError: () => ParserError,
23
+ parseAriaSnapshot: () => parseAriaSnapshot,
24
+ parseAriaSnapshotUnsafe: () => parseAriaSnapshotUnsafe,
25
+ valueOrRegex: () => valueOrRegex
5
26
  });
6
- exports.ParserError = exports.KeyParser = void 0;
7
- exports.parseAriaSnapshot = parseAriaSnapshot;
8
- exports.parseAriaSnapshotUnsafe = parseAriaSnapshotUnsafe;
9
- exports.valueOrRegex = valueOrRegex;
10
- /**
11
- * Copyright (c) Microsoft Corporation.
12
- *
13
- * Licensed under the Apache License, Version 2.0 (the "License");
14
- * you may not use this file except in compliance with the License.
15
- * You may obtain a copy of the License at
16
- *
17
- * http://www.apache.org/licenses/LICENSE-2.0
18
- *
19
- * Unless required by applicable law or agreed to in writing, software
20
- * distributed under the License is distributed on an "AS IS" BASIS,
21
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
- * See the License for the specific language governing permissions and
23
- * limitations under the License.
24
- */
25
-
26
- // https://www.w3.org/TR/wai-aria-1.2/#role_definitions
27
-
28
- // We pass parsed template between worlds using JSON, make it easy.
29
-
27
+ module.exports = __toCommonJS(ariaSnapshot_exports);
30
28
  function parseAriaSnapshotUnsafe(yaml, text) {
31
29
  const result = parseAriaSnapshot(yaml, text);
32
- if (result.errors.length) throw new Error(result.errors[0].message);
30
+ if (result.errors.length)
31
+ throw new Error(result.errors[0].message);
33
32
  return result.fragment;
34
33
  }
35
34
  function parseAriaSnapshot(yaml, text, options = {}) {
36
- var _fragment$children;
37
35
  const lineCounter = new yaml.LineCounter();
38
36
  const parseOptions = {
39
37
  keepSourceTokens: true,
@@ -42,10 +40,10 @@ function parseAriaSnapshot(yaml, text, options = {}) {
42
40
  };
43
41
  const yamlDoc = yaml.parseDocument(text, parseOptions);
44
42
  const errors = [];
45
- const convertRange = range => {
43
+ const convertRange = (range) => {
46
44
  return [lineCounter.linePos(range[0]), lineCounter.linePos(range[1])];
47
45
  };
48
- const addError = error => {
46
+ const addError = (error) => {
49
47
  errors.push({
50
48
  message: error.message,
51
49
  range: [lineCounter.linePos(error.pos[0]), lineCounter.linePos(error.pos[1])]
@@ -53,7 +51,7 @@ function parseAriaSnapshot(yaml, text, options = {}) {
53
51
  };
54
52
  const convertSeq = (container, seq) => {
55
53
  for (const item of seq.items) {
56
- const itemIsString = item instanceof yaml.Scalar && typeof item.value === 'string';
54
+ const itemIsString = item instanceof yaml.Scalar && typeof item.value === "string";
57
55
  if (itemIsString) {
58
56
  const childNode = KeyParser.parse(item, parseOptions, errors);
59
57
  if (childNode) {
@@ -68,7 +66,7 @@ function parseAriaSnapshot(yaml, text, options = {}) {
68
66
  continue;
69
67
  }
70
68
  errors.push({
71
- message: 'Sequence items should be strings or maps',
69
+ message: "Sequence items should be strings or maps",
72
70
  range: convertRange(item.range || seq.range)
73
71
  });
74
72
  }
@@ -76,46 +74,65 @@ function parseAriaSnapshot(yaml, text, options = {}) {
76
74
  const convertMap = (container, map) => {
77
75
  for (const entry of map.items) {
78
76
  container.children = container.children || [];
79
- // Key must by a string
80
- const keyIsString = entry.key instanceof yaml.Scalar && typeof entry.key.value === 'string';
77
+ const keyIsString = entry.key instanceof yaml.Scalar && typeof entry.key.value === "string";
81
78
  if (!keyIsString) {
82
79
  errors.push({
83
- message: 'Only string keys are supported',
80
+ message: "Only string keys are supported",
84
81
  range: convertRange(entry.key.range || map.range)
85
82
  });
86
83
  continue;
87
84
  }
88
85
  const key = entry.key;
89
86
  const value = entry.value;
90
-
91
- // - text: "text"
92
- if (key.value === 'text') {
93
- const valueIsString = value instanceof yaml.Scalar && typeof value.value === 'string';
87
+ if (key.value === "text") {
88
+ const valueIsString = value instanceof yaml.Scalar && typeof value.value === "string";
94
89
  if (!valueIsString) {
95
90
  errors.push({
96
- message: 'Text value should be a string',
91
+ message: "Text value should be a string",
97
92
  range: convertRange(entry.value.range || map.range)
98
93
  });
99
94
  continue;
100
95
  }
101
96
  container.children.push({
102
- kind: 'text',
97
+ kind: "text",
103
98
  text: valueOrRegex(value.value)
104
99
  });
105
100
  continue;
106
101
  }
107
-
108
- // role "name": ...
102
+ if (key.value === "/children") {
103
+ const valueIsString = value instanceof yaml.Scalar && typeof value.value === "string";
104
+ if (!valueIsString || value.value !== "contain" && value.value !== "equal" && value.value !== "deep-equal") {
105
+ errors.push({
106
+ message: 'Strict value should be "contain", "equal" or "deep-equal"',
107
+ range: convertRange(entry.value.range || map.range)
108
+ });
109
+ continue;
110
+ }
111
+ container.containerMode = value.value;
112
+ continue;
113
+ }
114
+ if (key.value.startsWith("/")) {
115
+ const valueIsString = value instanceof yaml.Scalar && typeof value.value === "string";
116
+ if (!valueIsString) {
117
+ errors.push({
118
+ message: "Property value should be a string",
119
+ range: convertRange(entry.value.range || map.range)
120
+ });
121
+ continue;
122
+ }
123
+ container.props = container.props ?? {};
124
+ container.props[key.value.slice(1)] = valueOrRegex(value.value);
125
+ continue;
126
+ }
109
127
  const childNode = KeyParser.parse(key, parseOptions, errors);
110
- if (!childNode) continue;
111
-
112
- // - role "name": "text"
128
+ if (!childNode)
129
+ continue;
113
130
  const valueIsScalar = value instanceof yaml.Scalar;
114
131
  if (valueIsScalar) {
115
132
  const type = typeof value.value;
116
- if (type !== 'string' && type !== 'number' && type !== 'boolean') {
133
+ if (type !== "string" && type !== "number" && type !== "boolean") {
117
134
  errors.push({
118
- message: 'Node value should be a string or a sequence',
135
+ message: "Node value should be a string or a sequence",
119
136
  range: convertRange(entry.value.range || map.range)
120
137
  });
121
138
  continue;
@@ -123,15 +140,12 @@ function parseAriaSnapshot(yaml, text, options = {}) {
123
140
  container.children.push({
124
141
  ...childNode,
125
142
  children: [{
126
- kind: 'text',
143
+ kind: "text",
127
144
  text: valueOrRegex(String(value.value))
128
145
  }]
129
146
  });
130
147
  continue;
131
148
  }
132
-
133
- // - role "name":
134
- // - child
135
149
  const valueIsSequence = value instanceof yaml.YAMLSeq;
136
150
  if (valueIsSequence) {
137
151
  container.children.push(childNode);
@@ -139,62 +153,36 @@ function parseAriaSnapshot(yaml, text, options = {}) {
139
153
  continue;
140
154
  }
141
155
  errors.push({
142
- message: 'Map values should be strings or sequences',
156
+ message: "Map values should be strings or sequences",
143
157
  range: convertRange(entry.value.range || map.range)
144
158
  });
145
159
  }
146
160
  };
147
- const fragment = {
148
- kind: 'role',
149
- role: 'fragment'
150
- };
161
+ const fragment = { kind: "role", role: "fragment" };
151
162
  yamlDoc.errors.forEach(addError);
152
- if (errors.length) return {
153
- errors,
154
- fragment
155
- };
163
+ if (errors.length)
164
+ return { errors, fragment };
156
165
  if (!(yamlDoc.contents instanceof yaml.YAMLSeq)) {
157
166
  errors.push({
158
167
  message: 'Aria snapshot must be a YAML sequence, elements starting with " -"',
159
- range: yamlDoc.contents ? convertRange(yamlDoc.contents.range) : [{
160
- line: 0,
161
- col: 0
162
- }, {
163
- line: 0,
164
- col: 0
165
- }]
168
+ range: yamlDoc.contents ? convertRange(yamlDoc.contents.range) : [{ line: 0, col: 0 }, { line: 0, col: 0 }]
166
169
  });
167
170
  }
168
- if (errors.length) return {
169
- errors,
170
- fragment
171
- };
171
+ if (errors.length)
172
+ return { errors, fragment };
172
173
  convertSeq(fragment, yamlDoc.contents);
173
- if (errors.length) return {
174
- errors,
175
- fragment: emptyFragment
176
- };
177
- if (((_fragment$children = fragment.children) === null || _fragment$children === void 0 ? void 0 : _fragment$children.length) === 1) return {
178
- fragment: fragment.children[0],
179
- errors
180
- };
181
- return {
182
- fragment,
183
- errors
184
- };
174
+ if (errors.length)
175
+ return { errors, fragment: emptyFragment };
176
+ if (fragment.children?.length === 1 && (!fragment.containerMode || fragment.containerMode === "contain"))
177
+ return { fragment: fragment.children[0], errors: [] };
178
+ return { fragment, errors: [] };
185
179
  }
186
- const emptyFragment = {
187
- kind: 'role',
188
- role: 'fragment'
189
- };
180
+ const emptyFragment = { kind: "role", role: "fragment" };
190
181
  function normalizeWhitespace(text) {
191
- // TODO: why is this different from normalizeWhitespace in stringUtils.ts?
192
- return text.replace(/[\u200b\u00ad]/g, '').replace(/[\r\n\s\t]+/g, ' ').trim();
182
+ return text.replace(/[\u200b\u00ad]/g, "").replace(/[\r\n\s\t]+/g, " ").trim();
193
183
  }
194
184
  function valueOrRegex(value) {
195
- return value.startsWith('/') && value.endsWith('/') && value.length > 1 ? {
196
- pattern: value.slice(1, -1)
197
- } : normalizeWhitespace(value);
185
+ return value.startsWith("/") && value.endsWith("/") && value.length > 1 ? { pattern: value.slice(1, -1) } : normalizeWhitespace(value);
198
186
  }
199
187
  class KeyParser {
200
188
  static parse(text, options, errors) {
@@ -202,7 +190,7 @@ class KeyParser {
202
190
  return new KeyParser(text.value)._parse();
203
191
  } catch (e) {
204
192
  if (e instanceof ParserError) {
205
- const message = options.prettyErrors === false ? e.message : e.message + ':\n\n' + text.value + '\n' + ' '.repeat(e.pos) + '^\n';
193
+ const message = options.prettyErrors === false ? e.message : e.message + ":\n\n" + text.value + "\n" + " ".repeat(e.pos) + "^\n";
206
194
  errors.push({
207
195
  message,
208
196
  range: [options.lineCounter.linePos(text.range[0]), options.lineCounter.linePos(text.range[0] + e.pos)]
@@ -213,18 +201,16 @@ class KeyParser {
213
201
  }
214
202
  }
215
203
  constructor(input) {
216
- this._input = void 0;
217
- this._pos = void 0;
218
- this._length = void 0;
219
204
  this._input = input;
220
205
  this._pos = 0;
221
206
  this._length = input.length;
222
207
  }
223
208
  _peek() {
224
- return this._input[this._pos] || '';
209
+ return this._input[this._pos] || "";
225
210
  }
226
211
  _next() {
227
- if (this._pos < this._length) return this._input[this._pos++];
212
+ if (this._pos < this._length)
213
+ return this._input[this._pos++];
228
214
  return null;
229
215
  }
230
216
  _eof() {
@@ -234,23 +220,26 @@ class KeyParser {
234
220
  return !this._eof() && /\s/.test(this._peek());
235
221
  }
236
222
  _skipWhitespace() {
237
- while (this._isWhitespace()) this._pos++;
223
+ while (this._isWhitespace())
224
+ this._pos++;
238
225
  }
239
226
  _readIdentifier(type) {
240
- if (this._eof()) this._throwError(`Unexpected end of input when expecting ${type}`);
227
+ if (this._eof())
228
+ this._throwError(`Unexpected end of input when expecting ${type}`);
241
229
  const start = this._pos;
242
- while (!this._eof() && /[a-zA-Z]/.test(this._peek())) this._pos++;
230
+ while (!this._eof() && /[a-zA-Z]/.test(this._peek()))
231
+ this._pos++;
243
232
  return this._input.slice(start, this._pos);
244
233
  }
245
234
  _readString() {
246
- let result = '';
235
+ let result = "";
247
236
  let escaped = false;
248
237
  while (!this._eof()) {
249
238
  const ch = this._next();
250
239
  if (escaped) {
251
240
  result += ch;
252
241
  escaped = false;
253
- } else if (ch === '\\') {
242
+ } else if (ch === "\\") {
254
243
  escaped = true;
255
244
  } else if (ch === '"') {
256
245
  return result;
@@ -258,13 +247,13 @@ class KeyParser {
258
247
  result += ch;
259
248
  }
260
249
  }
261
- this._throwError('Unterminated string');
250
+ this._throwError("Unterminated string");
262
251
  }
263
252
  _throwError(message, offset = 0) {
264
253
  throw new ParserError(message, offset || this._pos);
265
254
  }
266
255
  _readRegex() {
267
- let result = '';
256
+ let result = "";
268
257
  let escaped = false;
269
258
  let insideClass = false;
270
259
  while (!this._eof()) {
@@ -272,24 +261,22 @@ class KeyParser {
272
261
  if (escaped) {
273
262
  result += ch;
274
263
  escaped = false;
275
- } else if (ch === '\\') {
264
+ } else if (ch === "\\") {
276
265
  escaped = true;
277
266
  result += ch;
278
- } else if (ch === '/' && !insideClass) {
279
- return {
280
- pattern: result
281
- };
282
- } else if (ch === '[') {
267
+ } else if (ch === "/" && !insideClass) {
268
+ return { pattern: result };
269
+ } else if (ch === "[") {
283
270
  insideClass = true;
284
271
  result += ch;
285
- } else if (ch === ']' && insideClass) {
272
+ } else if (ch === "]" && insideClass) {
286
273
  result += ch;
287
274
  insideClass = false;
288
275
  } else {
289
276
  result += ch;
290
277
  }
291
278
  }
292
- this._throwError('Unterminated regex');
279
+ this._throwError("Unterminated regex");
293
280
  }
294
281
  _readStringOrRegex() {
295
282
  const ch = this._peek();
@@ -297,7 +284,7 @@ class KeyParser {
297
284
  this._next();
298
285
  return normalizeWhitespace(this._readString());
299
286
  }
300
- if (ch === '/') {
287
+ if (ch === "/") {
301
288
  this._next();
302
289
  return this._readRegex();
303
290
  }
@@ -307,23 +294,25 @@ class KeyParser {
307
294
  let errorPos = this._pos;
308
295
  while (true) {
309
296
  this._skipWhitespace();
310
- if (this._peek() === '[') {
297
+ if (this._peek() === "[") {
311
298
  this._next();
312
299
  this._skipWhitespace();
313
300
  errorPos = this._pos;
314
- const flagName = this._readIdentifier('attribute');
301
+ const flagName = this._readIdentifier("attribute");
315
302
  this._skipWhitespace();
316
- let flagValue = '';
317
- if (this._peek() === '=') {
303
+ let flagValue = "";
304
+ if (this._peek() === "=") {
318
305
  this._next();
319
306
  this._skipWhitespace();
320
307
  errorPos = this._pos;
321
- while (this._peek() !== ']' && !this._isWhitespace() && !this._eof()) flagValue += this._next();
308
+ while (this._peek() !== "]" && !this._isWhitespace() && !this._eof())
309
+ flagValue += this._next();
322
310
  }
323
311
  this._skipWhitespace();
324
- if (this._peek() !== ']') this._throwError('Expected ]');
325
- this._next(); // Consume ']'
326
- this._applyAttribute(result, flagName, flagValue || 'true', errorPos);
312
+ if (this._peek() !== "]")
313
+ this._throwError("Expected ]");
314
+ this._next();
315
+ this._applyAttribute(result, flagName, flagValue || "true", errorPos);
327
316
  } else {
328
317
  break;
329
318
  }
@@ -331,62 +320,70 @@ class KeyParser {
331
320
  }
332
321
  _parse() {
333
322
  this._skipWhitespace();
334
- const role = this._readIdentifier('role');
323
+ const role = this._readIdentifier("role");
335
324
  this._skipWhitespace();
336
- const name = this._readStringOrRegex() || '';
337
- const result = {
338
- kind: 'role',
339
- role,
340
- name
341
- };
325
+ const name = this._readStringOrRegex() || "";
326
+ const result = { kind: "role", role, name };
342
327
  this._readAttributes(result);
343
328
  this._skipWhitespace();
344
- if (!this._eof()) this._throwError('Unexpected input');
329
+ if (!this._eof())
330
+ this._throwError("Unexpected input");
345
331
  return result;
346
332
  }
347
333
  _applyAttribute(node, key, value, errorPos) {
348
- if (key === 'checked') {
349
- this._assert(value === 'true' || value === 'false' || value === 'mixed', 'Value of "checked\" attribute must be a boolean or "mixed"', errorPos);
350
- node.checked = value === 'true' ? true : value === 'false' ? false : 'mixed';
334
+ if (key === "checked") {
335
+ this._assert(value === "true" || value === "false" || value === "mixed", 'Value of "checked" attribute must be a boolean or "mixed"', errorPos);
336
+ node.checked = value === "true" ? true : value === "false" ? false : "mixed";
351
337
  return;
352
338
  }
353
- if (key === 'disabled') {
354
- this._assert(value === 'true' || value === 'false', 'Value of "disabled" attribute must be a boolean', errorPos);
355
- node.disabled = value === 'true';
339
+ if (key === "disabled") {
340
+ this._assert(value === "true" || value === "false", 'Value of "disabled" attribute must be a boolean', errorPos);
341
+ node.disabled = value === "true";
356
342
  return;
357
343
  }
358
- if (key === 'expanded') {
359
- this._assert(value === 'true' || value === 'false', 'Value of "expanded" attribute must be a boolean', errorPos);
360
- node.expanded = value === 'true';
344
+ if (key === "expanded") {
345
+ this._assert(value === "true" || value === "false", 'Value of "expanded" attribute must be a boolean', errorPos);
346
+ node.expanded = value === "true";
361
347
  return;
362
348
  }
363
- if (key === 'level') {
349
+ if (key === "active") {
350
+ this._assert(value === "true" || value === "false", 'Value of "active" attribute must be a boolean', errorPos);
351
+ node.active = value === "true";
352
+ return;
353
+ }
354
+ if (key === "level") {
364
355
  this._assert(!isNaN(Number(value)), 'Value of "level" attribute must be a number', errorPos);
365
356
  node.level = Number(value);
366
357
  return;
367
358
  }
368
- if (key === 'pressed') {
369
- this._assert(value === 'true' || value === 'false' || value === 'mixed', 'Value of "pressed" attribute must be a boolean or "mixed"', errorPos);
370
- node.pressed = value === 'true' ? true : value === 'false' ? false : 'mixed';
359
+ if (key === "pressed") {
360
+ this._assert(value === "true" || value === "false" || value === "mixed", 'Value of "pressed" attribute must be a boolean or "mixed"', errorPos);
361
+ node.pressed = value === "true" ? true : value === "false" ? false : "mixed";
371
362
  return;
372
363
  }
373
- if (key === 'selected') {
374
- this._assert(value === 'true' || value === 'false', 'Value of "selected" attribute must be a boolean', errorPos);
375
- node.selected = value === 'true';
364
+ if (key === "selected") {
365
+ this._assert(value === "true" || value === "false", 'Value of "selected" attribute must be a boolean', errorPos);
366
+ node.selected = value === "true";
376
367
  return;
377
368
  }
378
369
  this._assert(false, `Unsupported attribute [${key}]`, errorPos);
379
370
  }
380
371
  _assert(value, message, valuePos) {
381
- if (!value) this._throwError(message || 'Assertion error', valuePos);
372
+ if (!value)
373
+ this._throwError(message || "Assertion error", valuePos);
382
374
  }
383
375
  }
384
- exports.KeyParser = KeyParser;
385
376
  class ParserError extends Error {
386
377
  constructor(message, pos) {
387
378
  super(message);
388
- this.pos = void 0;
389
379
  this.pos = pos;
390
380
  }
391
381
  }
392
- exports.ParserError = ParserError;
382
+ // Annotate the CommonJS export names for ESM import in node:
383
+ 0 && (module.exports = {
384
+ KeyParser,
385
+ ParserError,
386
+ parseAriaSnapshot,
387
+ parseAriaSnapshotUnsafe,
388
+ valueOrRegex
389
+ });
@@ -1,25 +1,31 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 assert_exports = {};
20
+ __export(assert_exports, {
21
+ assert: () => assert
5
22
  });
6
- exports.assert = assert;
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
+ module.exports = __toCommonJS(assert_exports);
23
24
  function assert(value, message) {
24
- if (!value) throw new Error(message || 'Assertion error');
25
- }
25
+ if (!value)
26
+ throw new Error(message || "Assertion error");
27
+ }
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ assert
31
+ });