@scalar/api-reference 1.63.0 → 1.64.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 (656) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.d.ts.map +1 -1
  3. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js +1 -1
  4. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js.map +1 -1
  5. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  6. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js +1 -1
  7. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js.map +1 -1
  8. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js +2 -2
  9. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js.map +1 -1
  10. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.d.ts.map +1 -1
  11. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js +1 -1
  12. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js.map +1 -1
  13. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.js.map +1 -1
  14. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts +1 -3
  15. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts.map +1 -1
  16. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +1 -1
  17. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js.map +1 -1
  18. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js +13 -27
  19. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js.map +1 -1
  20. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts.map +1 -1
  21. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +1 -1
  22. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js.map +1 -1
  23. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js +37 -25
  24. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js.map +1 -1
  25. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js.map +1 -1
  26. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.d.ts.map +1 -1
  27. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +1 -1
  28. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js.map +1 -1
  29. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js +10 -4
  30. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js.map +1 -1
  31. package/dist/blocks/scalar-info-block/components/InfoBlock.vue.script.js +1 -1
  32. package/dist/blocks/scalar-info-block/components/InfoBlock.vue.script.js.map +1 -1
  33. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.js +1 -1
  34. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.script.js +1 -1
  35. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.script.js.map +1 -1
  36. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js +1 -1
  37. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js.map +1 -1
  38. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.script.js +1 -1
  39. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.script.js.map +1 -1
  40. package/dist/blocks/scalar-info-block/components/InfoVersion.vue.script.js +1 -1
  41. package/dist/blocks/scalar-info-block/components/InfoVersion.vue.script.js.map +1 -1
  42. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.d.ts.map +1 -1
  43. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +1 -1
  44. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js.map +1 -1
  45. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js +1 -1
  46. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js.map +1 -1
  47. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js +1 -1
  48. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js.map +1 -1
  49. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts.map +1 -1
  50. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +1 -1
  51. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js +1 -1
  52. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js.map +1 -1
  53. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.d.ts.map +1 -1
  54. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js +1 -1
  55. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js.map +1 -1
  56. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js +5 -5
  57. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js.map +1 -1
  58. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js +1 -1
  59. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js.map +1 -1
  60. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts.map +1 -1
  61. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js +1 -1
  62. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js.map +1 -1
  63. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js +16 -9
  64. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js.map +1 -1
  65. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.js.map +1 -1
  66. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.js.map +1 -1
  67. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.js.map +1 -1
  68. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  69. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js +1 -1
  70. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js.map +1 -1
  71. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.d.ts.map +1 -1
  72. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js +1 -1
  73. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js.map +1 -1
  74. package/dist/browser/chunks/AgentScalarChatInterface-D1mzA447.js +27 -0
  75. package/dist/browser/chunks/ScalarTextInput.vue-OfiA6SHf.js +27 -0
  76. package/dist/browser/chunks/{basic-shape-diamond.svg-BTEOT1FL.js → basic-shape-diamond.svg-o5eiY2I7.js} +2 -2
  77. package/dist/browser/chunks/{basic-shape-hexagon.svg-BSPzaCgF.js → basic-shape-hexagon.svg-CGuS7mbd.js} +2 -2
  78. package/dist/browser/chunks/{basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js → basic-shape-primary-circle-ellipse-round.svg-DDIpXiBm.js} +2 -2
  79. package/dist/browser/chunks/{basic-shape-primary-square-rectangle.svg-n2YRykHD.js → basic-shape-primary-square-rectangle.svg-DzVEJHMB.js} +2 -2
  80. package/dist/browser/chunks/{basic-shape-shield.svg-Bec9cJDA.js → basic-shape-shield.svg-BZzapRqv.js} +2 -2
  81. package/dist/browser/chunks/browser-CTPPEMEL.js +129 -0
  82. package/dist/browser/chunks/{computer-device-desktop-monitor.svg-m6j893Hb.js → computer-device-desktop-monitor.svg-OSM05r1I.js} +2 -2
  83. package/dist/browser/chunks/{computer-device-desktop.svg-Dk1VVO7k.js → computer-device-desktop.svg-BMFzGZ27.js} +2 -2
  84. package/dist/browser/chunks/{computer-device-laptop.svg-BNGVUCYS.js → computer-device-laptop.svg-CMAjzuB-.js} +2 -2
  85. package/dist/browser/chunks/{computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js → computer-device-mobile-phone-android-samsung-back.svg-D4xBONmL.js} +2 -2
  86. package/dist/browser/chunks/{computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js → computer-device-mobile-phone-android-samsung.svg-gbMJLjJw.js} +2 -2
  87. package/dist/browser/chunks/{computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js → computer-device-mobile-phone-iphone-x-back.svg-Bl1rmdKA.js} +2 -2
  88. package/dist/browser/chunks/{computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js → computer-device-mobile-phone-iphone-x.svg-DVetP0aa.js} +2 -2
  89. package/dist/browser/chunks/{computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js → computer-device-mobile-tablet-touch.svg-Zi88BP4L.js} +2 -2
  90. package/dist/browser/chunks/{computer-device-mobile-tablet.svg-DCr0XlRc.js → computer-device-mobile-tablet.svg-C1ggisWP.js} +2 -2
  91. package/dist/browser/chunks/{computer-device-network-ethernet-cat6.svg-AK9l0iOl.js → computer-device-network-ethernet-cat6.svg-BIUymdC1.js} +2 -2
  92. package/dist/browser/chunks/{computer-device-network-lan-www.svg-gUIdFBlE.js → computer-device-network-lan-www.svg-CoFUlIVO.js} +2 -2
  93. package/dist/browser/chunks/{computer-device-network-wifi-connection.svg-Be-EMm4e.js → computer-device-network-wifi-connection.svg-DeWsacxI.js} +2 -2
  94. package/dist/browser/chunks/{computer-device-network-wifi-router.svg-Dc2VzyqK.js → computer-device-network-wifi-router.svg-BjpZEot4.js} +2 -2
  95. package/dist/browser/chunks/{ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js → ecology-science-erlenmeyer-flask.svg-ftjGGirE.js} +2 -2
  96. package/dist/browser/chunks/{image-flash-lightning.svg-EETR_y1q.js → image-flash-lightning.svg-DYQ0W4Fi.js} +2 -2
  97. package/dist/browser/chunks/{image-picture-flower.svg-DN1AYzJU.js → image-picture-flower.svg-Bfe5SVDf.js} +2 -2
  98. package/dist/browser/chunks/{interface-alert-exclamation-diamond.svg-C5NozMV_.js → interface-alert-exclamation-diamond.svg-D1HePDNM.js} +2 -2
  99. package/dist/browser/chunks/{interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js → interface-alert-exclamation-triangle-warning.svg-CILUsxBC.js} +2 -2
  100. package/dist/browser/chunks/{interface-alert-information-circle.svg-ckkkt9Mv.js → interface-alert-information-circle.svg-9LrbJM5J.js} +2 -2
  101. package/dist/browser/chunks/{interface-award-crown.svg-pjvn9hY-.js → interface-award-crown.svg-DllWgiU1.js} +2 -2
  102. package/dist/browser/chunks/{interface-bookmark.svg-BK9HKQBT.js → interface-bookmark-tag.svg-Dc-JL-Kc.js} +2 -2
  103. package/dist/browser/chunks/{interface-bookmark-tag.svg-r2r-lQq4.js → interface-bookmark.svg-Dc-JL-Kc.js} +2 -2
  104. package/dist/browser/chunks/{interface-calendar-date-one.svg-DNnF0M1I.js → interface-calendar-date-one.svg-DO2jelhF.js} +2 -2
  105. package/dist/browser/chunks/{interface-content-book-open-pages.svg-CQj_w9Vp.js → interface-content-book-open-pages.svg-BJjMjIgA.js} +2 -2
  106. package/dist/browser/chunks/{interface-content-book-page.svg-DppoeJRe.js → interface-content-book-page.svg-C6rKB2fs.js} +2 -2
  107. package/dist/browser/chunks/{interface-content-file.svg-CvcD7OiY.js → interface-content-file.svg-CS0q2FKx.js} +2 -2
  108. package/dist/browser/chunks/{interface-content-folder.svg-BmtS5I9A.js → interface-content-folder.svg-CThTWsJX.js} +2 -2
  109. package/dist/browser/chunks/{interface-copy-clipboard.svg-Be6EI50X.js → interface-copy-clipboard.svg-DdN67cLv.js} +2 -2
  110. package/dist/browser/chunks/{interface-edit-attachment.svg-G5TKzpWX.js → interface-edit-attachment.svg-Ciizphuh.js} +2 -2
  111. package/dist/browser/chunks/{interface-edit-binocular.svg-jzL-DvGB.js → interface-edit-binocular.svg-Dw1nDqmL.js} +2 -2
  112. package/dist/browser/chunks/{interface-edit-magic-wand.svg-BOTlymvp.js → interface-edit-magic-wand.svg-BYS0jm_E.js} +2 -2
  113. package/dist/browser/chunks/{interface-edit-tool-paint-roller.svg-s9dwryx7.js → interface-edit-tool-paint-roller.svg-NioSHZC2.js} +2 -2
  114. package/dist/browser/chunks/{interface-edit-tool-pencil.svg-C7v0dbB3.js → interface-edit-tool-pencil.svg-P87QFlat.js} +2 -2
  115. package/dist/browser/chunks/{interface-favorite-award.svg-CYHUgUG0.js → interface-favorite-award.svg-DBBAChSi.js} +2 -2
  116. package/dist/browser/chunks/{interface-favorite-flag.svg-C10zlKOb.js → interface-favorite-flag.svg-HlhPomHY.js} +2 -2
  117. package/dist/browser/chunks/{interface-favorite-heart.svg-eoduXxlz.js → interface-favorite-heart.svg-Cqu2GYDo.js} +2 -2
  118. package/dist/browser/chunks/{interface-favorite-star.svg-BSmxJetr.js → interface-favorite-star.svg-BD4JY_J2.js} +2 -2
  119. package/dist/browser/chunks/{interface-favorite-stars-sparkles.svg-JTFLj3Ls.js → interface-favorite-stars-sparkles.svg-BXi6aO8q.js} +2 -2
  120. package/dist/browser/chunks/{interface-hierarchy-flowchart.svg-Cg_Wy0kN.js → interface-hierarchy-flowchart.svg-CDEVSsD4.js} +2 -2
  121. package/dist/browser/chunks/{interface-home-house.svg-DytoGRnv.js → interface-home-house.svg-DJetUjwj.js} +2 -2
  122. package/dist/browser/chunks/{interface-hyperlink.svg-CuEfmmQI.js → interface-hyperlink.svg-DJ1LREmz.js} +2 -2
  123. package/dist/browser/chunks/{interface-lighting-brightness.svg-DSK0h_Pa.js → interface-lighting-brightness.svg-TGKAaHYV.js} +2 -2
  124. package/dist/browser/chunks/{interface-lock-closed.svg-Cn6TaLYv.js → interface-lock-closed.svg-3hehWr3i.js} +2 -2
  125. package/dist/browser/chunks/{interface-lock-open-unlock.svg-CVkG5-9W.js → interface-lock-open-unlock.svg-CuXKcv1m.js} +2 -2
  126. package/dist/browser/chunks/{interface-login-key.svg-y-cwwXjN.js → interface-login-key.svg-Chwvvywd.js} +2 -2
  127. package/dist/browser/chunks/{interface-search.svg-S-puVFJB.js → interface-search.svg-JDE3fk0u.js} +2 -2
  128. package/dist/browser/chunks/{interface-setting-cog.svg-CTH4_lLg.js → interface-setting-cog.svg-BBCkeh4K.js} +2 -2
  129. package/dist/browser/chunks/{interface-share-megaphone-bullhorn.svg-Pbp39MyC.js → interface-share-megaphone-bullhorn.svg-CDdxF-4y.js} +2 -2
  130. package/dist/browser/chunks/{interface-share-rocket.svg-BgCsIRZO.js → interface-share-rocket.svg-DSbdn_o7.js} +2 -2
  131. package/dist/browser/chunks/{interface-share-satellite.svg-DAMN9d5G.js → interface-share-satellite.svg-CefBVZvY.js} +2 -2
  132. package/dist/browser/chunks/{interface-share-space-ship.svg-Dt-Mejxk.js → interface-share-space-ship.svg-tFA2dsSU.js} +2 -2
  133. package/dist/browser/chunks/{interface-share.svg-vFYTXSti.js → interface-share.svg-BpOGopyv.js} +2 -2
  134. package/dist/browser/chunks/{interface-signal-square.svg-DNG4LpAe.js → interface-signal-square.svg-BcX_BoaC.js} +2 -2
  135. package/dist/browser/chunks/{interface-time-clock-circle.svg-Bpz-nLxo.js → interface-time-clock-circle.svg-C8B_L_RM.js} +2 -2
  136. package/dist/browser/chunks/{interface-time-hour-glass.svg-D7agfKsH.js → interface-time-hour-glass.svg-qw-oeoVn.js} +2 -2
  137. package/dist/browser/chunks/{interface-users-multiple.svg-CkPJBBnG.js → interface-users-multiple.svg-Cs13Eewq.js} +2 -2
  138. package/dist/browser/chunks/{interface-weather-moon.svg-CaTZFMPO.js → interface-weather-moon.svg-CV-oDTae.js} +2 -2
  139. package/dist/browser/chunks/{mail-chat-bubble-square.svg-DC8RIihp.js → mail-chat-bubble-square.svg-dpauJhin.js} +2 -2
  140. package/dist/browser/chunks/{mail-send-email-paper-airplane.svg-D8OLs9jz.js → mail-send-email-paper-airplane.svg-BBofxojL.js} +2 -2
  141. package/dist/browser/chunks/{mail-send-envelope.svg-CV33h5Sx.js → mail-send-envelope.svg-DyENgYOI.js} +2 -2
  142. package/dist/browser/chunks/modal-BS4e2gew.js +99 -0
  143. package/dist/browser/chunks/{money-cashier-receipt.svg-CJL8C2gs.js → money-cashier-receipt.svg-dNTr5aio.js} +2 -2
  144. package/dist/browser/chunks/{money-currency-dollar-pay.svg-VdBplCTx.js → money-currency-dollar-pay.svg-1ZESPtFY.js} +2 -2
  145. package/dist/browser/chunks/{money-graph-arrow-increase.svg-DcRov3zk.js → money-graph-arrow-increase.svg-kEZ2u2z2.js} +2 -2
  146. package/dist/browser/chunks/{money-graph-bar-chart-increase.svg-Cc7KxjX-.js → money-graph-bar-chart-increase.svg-B-t2UWB3.js} +2 -2
  147. package/dist/browser/chunks/{nature-ecology-leaf.svg-DR3cTZxt.js → nature-ecology-leaf.svg-DZ2GJV8m.js} +2 -2
  148. package/dist/browser/chunks/{phone-telephone.svg-DyY0gUlk.js → phone-telephone.svg-C12QjpN7.js} +2 -2
  149. package/dist/browser/chunks/{programming-bug.svg-BHLT-Qhp.js → programming-bug.svg-wLTsruN9.js} +2 -2
  150. package/dist/browser/chunks/{programming-cloud.svg-B6YW33ba.js → programming-cloud.svg-3XU6dNUg.js} +2 -2
  151. package/dist/browser/chunks/{programming-computer-database-server.svg-B6o5Sdn-.js → programming-computer-database-server.svg-B1JrHSPd.js} +2 -2
  152. package/dist/browser/chunks/{programming-computer-database.svg-Cl7OVtpJ.js → programming-computer-database.svg-BxHSuFl7.js} +2 -2
  153. package/dist/browser/chunks/{programming-module-four-layout.svg-BQrerL1x.js → programming-module-four-layout.svg-CeV35q45.js} +2 -2
  154. package/dist/browser/chunks/{programming-module-three.svg-B2KTQzBM.js → programming-module-three.svg-YIBpLt45.js} +2 -2
  155. package/dist/browser/chunks/{programming-module.svg-CiID7kPm.js → programming-module.svg-CU_pEibI.js} +2 -2
  156. package/dist/browser/chunks/{programming-script-code.svg-D1M5rtkN.js → programming-script-code.svg-CLzinmHT.js} +2 -2
  157. package/dist/browser/chunks/runtime-core.esm-bundler-CqqEw5ds.js +17 -0
  158. package/dist/browser/chunks/{shopping-cart.svg-BEegiIR9.js → shopping-cart.svg-Brzddu3K.js} +2 -2
  159. package/dist/browser/chunks/{shopping-gift-present.svg-BUHwuLix.js → shopping-gift-present.svg-l2K48g7L.js} +2 -2
  160. package/dist/browser/chunks/{shopping-shipping-box-parcel-package.svg-D6fxWdYx.js → shopping-shipping-box-parcel-package.svg-DesGopPo.js} +2 -2
  161. package/dist/browser/chunks/{tag-new-circle.svg-jsg1bGs0.js → tag-new-circle.svg-DE-VaLZU.js} +2 -2
  162. package/dist/browser/chunks/{travel-map-earth-globe.svg-ClbMiU-f.js → travel-map-earth-globe.svg-DLaOMzx6.js} +2 -2
  163. package/dist/browser/chunks/vendor-DWZAEyBy.js +306 -0
  164. package/dist/browser/standalone.esm.js +26 -24
  165. package/dist/browser/standalone.js +310 -311
  166. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js +1 -1
  167. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js.map +1 -1
  168. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js +1 -1
  169. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js.map +1 -1
  170. package/dist/components/AgentScalar/AgentScalarDrawer.vue.d.ts.map +1 -1
  171. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +1 -1
  172. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js +1 -1
  173. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js.map +1 -1
  174. package/dist/components/AgentScalar/OpenMCPButton.vue.d.ts.map +1 -1
  175. package/dist/components/AgentScalar/OpenMCPButton.vue.js +1 -1
  176. package/dist/components/AgentScalar/OpenMCPButton.vue.js.map +1 -1
  177. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js +47 -32
  178. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js.map +1 -1
  179. package/dist/components/Anchor/Anchor.vue.d.ts.map +1 -1
  180. package/dist/components/Anchor/Anchor.vue.script.js +1 -1
  181. package/dist/components/Anchor/Anchor.vue.script.js.map +1 -1
  182. package/dist/components/Anchor/WithBreadcrumb.vue.script.js +2 -2
  183. package/dist/components/Anchor/WithBreadcrumb.vue.script.js.map +1 -1
  184. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  185. package/dist/components/ApiReference.vue.js +1 -1
  186. package/dist/components/ApiReference.vue.js.map +1 -1
  187. package/dist/components/ApiReference.vue.script.js +141 -33
  188. package/dist/components/ApiReference.vue.script.js.map +1 -1
  189. package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
  190. package/dist/components/Badge/Badge.vue.js +1 -1
  191. package/dist/components/Badge/Badge.vue.js.map +1 -1
  192. package/dist/components/Badge/Badge.vue.script.js +9 -9
  193. package/dist/components/Badge/Badge.vue.script.js.map +1 -1
  194. package/dist/components/ClassicHeader.vue.js +1 -1
  195. package/dist/components/ClassicHeader.vue.js.map +1 -1
  196. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js +1 -1
  197. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js +1 -1
  198. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js.map +1 -1
  199. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +1 -1
  200. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -1
  201. package/dist/components/Content/AsyncApi/Channel.vue.d.ts.map +1 -1
  202. package/dist/components/Content/AsyncApi/Channel.vue.js +1 -1
  203. package/dist/components/Content/AsyncApi/Channel.vue.script.js +1 -1
  204. package/dist/components/Content/AsyncApi/Channel.vue.script.js.map +1 -1
  205. package/dist/components/Content/AsyncApi/ChannelsList.vue.js +1 -1
  206. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js +1 -1
  207. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js.map +1 -1
  208. package/dist/components/Content/AsyncApi/Message.vue.d.ts.map +1 -1
  209. package/dist/components/Content/AsyncApi/Message.vue.js +1 -1
  210. package/dist/components/Content/AsyncApi/Message.vue.script.js +2 -2
  211. package/dist/components/Content/AsyncApi/Message.vue.script.js.map +1 -1
  212. package/dist/components/Content/AsyncApi/Operation.vue.d.ts.map +1 -1
  213. package/dist/components/Content/AsyncApi/Operation.vue.js +1 -1
  214. package/dist/components/Content/AsyncApi/Operation.vue.js.map +1 -1
  215. package/dist/components/Content/AsyncApi/Operation.vue.script.js +6 -1
  216. package/dist/components/Content/AsyncApi/Operation.vue.script.js.map +1 -1
  217. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.js.map +1 -1
  218. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.js.map +1 -1
  219. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.js.map +1 -1
  220. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.js.map +1 -1
  221. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts +17 -0
  222. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts.map +1 -0
  223. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js +21 -0
  224. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js.map +1 -0
  225. package/dist/components/Content/AsyncApi/helpers/pick-heading.js.map +1 -1
  226. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.js.map +1 -1
  227. package/dist/components/Content/Auth/Auth.vue.script.js +1 -1
  228. package/dist/components/Content/Auth/Auth.vue.script.js.map +1 -1
  229. package/dist/components/Content/Content.vue.script.js +1 -1
  230. package/dist/components/Content/Content.vue.script.js.map +1 -1
  231. package/dist/components/Content/Models/Model.vue.script.js +1 -1
  232. package/dist/components/Content/Models/Model.vue.script.js.map +1 -1
  233. package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
  234. package/dist/components/Content/Models/ModelTag.vue.script.js +2 -2
  235. package/dist/components/Content/Models/ModelTag.vue.script.js.map +1 -1
  236. package/dist/components/Content/Models/components/ClassicLayout.vue.d.ts.map +1 -1
  237. package/dist/components/Content/Models/components/ClassicLayout.vue.js +1 -1
  238. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js +1 -1
  239. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js.map +1 -1
  240. package/dist/components/Content/Models/components/ModernLayout.vue.d.ts.map +1 -1
  241. package/dist/components/Content/Models/components/ModernLayout.vue.script.js +1 -1
  242. package/dist/components/Content/Models/components/ModernLayout.vue.script.js.map +1 -1
  243. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +1 -1
  244. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  245. package/dist/components/Content/Schema/LinkButton.vue.js +1 -1
  246. package/dist/components/Content/Schema/LinkButton.vue.js.map +1 -1
  247. package/dist/components/Content/Schema/RenderString.vue.script.js +1 -1
  248. package/dist/components/Content/Schema/RenderString.vue.script.js.map +1 -1
  249. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  250. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  251. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  252. package/dist/components/Content/Schema/Schema.vue.script.js +5 -13
  253. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  254. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  255. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  256. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +69 -34
  257. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  258. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.js +1 -1
  259. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js +1 -1
  260. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js.map +1 -1
  261. package/dist/components/Content/Schema/SchemaEnums.vue.d.ts.map +1 -1
  262. package/dist/components/Content/Schema/SchemaEnums.vue.js +1 -1
  263. package/dist/components/Content/Schema/SchemaEnums.vue.js.map +1 -1
  264. package/dist/components/Content/Schema/SchemaEnums.vue.script.js +16 -8
  265. package/dist/components/Content/Schema/SchemaEnums.vue.script.js.map +1 -1
  266. package/dist/components/Content/Schema/SchemaHeading.vue.js +1 -1
  267. package/dist/components/Content/Schema/SchemaHeading.vue.script.js +1 -1
  268. package/dist/components/Content/Schema/SchemaHeading.vue.script.js.map +1 -1
  269. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js +1 -1
  270. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js.map +1 -1
  271. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js +1 -1
  272. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js.map +1 -1
  273. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  274. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  275. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  276. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +4 -3
  277. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  278. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +1 -1
  279. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js +1 -1
  280. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js.map +1 -1
  281. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.js +1 -1
  282. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js +1 -1
  283. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js.map +1 -1
  284. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +1 -1
  285. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js +1 -1
  286. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js.map +1 -1
  287. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  288. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +1 -1
  289. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js.map +1 -1
  290. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +31 -21
  291. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js.map +1 -1
  292. package/dist/components/Content/Schema/helpers/dynamic-scope.js.map +1 -1
  293. package/dist/components/Content/Schema/helpers/format-example.js.map +1 -1
  294. package/dist/components/Content/Schema/helpers/format-value.js.map +1 -1
  295. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js.map +1 -1
  296. package/dist/components/Content/Schema/helpers/get-enum-values.js.map +1 -1
  297. package/dist/components/Content/Schema/helpers/get-property-description.js.map +1 -1
  298. package/dist/components/Content/Schema/helpers/get-ref-name.js.map +1 -1
  299. package/dist/components/Content/Schema/helpers/get-schema-type.js.map +1 -1
  300. package/dist/components/Content/Schema/helpers/has-complex-array-items.js.map +1 -1
  301. package/dist/components/Content/Schema/helpers/is-empty-schema-object.js.map +1 -1
  302. package/dist/components/Content/Schema/helpers/is-type-object.js.map +1 -1
  303. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +3 -3
  304. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  305. package/dist/components/Content/Schema/helpers/optimize-value-for-display.d.ts.map +1 -1
  306. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js +1 -4
  307. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js.map +1 -1
  308. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts +32 -0
  309. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts.map +1 -0
  310. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js +97 -0
  311. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js.map +1 -0
  312. package/dist/components/Content/Schema/helpers/schema-composition.js.map +1 -1
  313. package/dist/components/Content/Schema/helpers/schema-cycle.js.map +1 -1
  314. package/dist/components/Content/Schema/helpers/schema-name.js.map +1 -1
  315. package/dist/components/Content/Schema/helpers/should-display-description.js.map +1 -1
  316. package/dist/components/Content/Schema/helpers/should-display-heading.js.map +1 -1
  317. package/dist/components/Content/Schema/helpers/should-render-array-item-composition.js.map +1 -1
  318. package/dist/components/Content/Schema/helpers/sort-property-names.js.map +1 -1
  319. package/dist/components/Content/Tags/Tag.vue.script.js +1 -1
  320. package/dist/components/Content/Tags/Tag.vue.script.js.map +1 -1
  321. package/dist/components/Content/Tags/components/ClassicLayout.vue.d.ts.map +1 -1
  322. package/dist/components/Content/Tags/components/ClassicLayout.vue.js +1 -1
  323. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js +1 -1
  324. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js.map +1 -1
  325. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  326. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  327. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +1 -1
  328. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  329. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  330. package/dist/components/Content/Tags/components/TagSection.vue.script.js +1 -1
  331. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  332. package/dist/components/GettingStarted.vue.d.ts.map +1 -1
  333. package/dist/components/GettingStarted.vue.js +1 -1
  334. package/dist/components/GettingStarted.vue.js.map +1 -1
  335. package/dist/components/GettingStarted.vue.script.js +4 -3
  336. package/dist/components/GettingStarted.vue.script.js.map +1 -1
  337. package/dist/components/HttpMethod/HttpMethod.vue.script.js +1 -1
  338. package/dist/components/HttpMethod/HttpMethod.vue.script.js.map +1 -1
  339. package/dist/components/IntersectionObserver.vue.script.js +10 -7
  340. package/dist/components/IntersectionObserver.vue.script.js.map +1 -1
  341. package/dist/components/Lazy/Lazy.vue.script.js +2 -2
  342. package/dist/components/Lazy/Lazy.vue.script.js.map +1 -1
  343. package/dist/components/LinkList/LinkList.vue.js +1 -1
  344. package/dist/components/LinkList/LinkList.vue.js.map +1 -1
  345. package/dist/components/LinkList/LinkList.vue.script.js +2 -2
  346. package/dist/components/LinkList/LinkList.vue.script.js.map +1 -1
  347. package/dist/components/MobileHeader.vue.d.ts.map +1 -1
  348. package/dist/components/MobileHeader.vue.script.js +4 -4
  349. package/dist/components/MobileHeader.vue.script.js.map +1 -1
  350. package/dist/components/OperationPath.vue.d.ts.map +1 -1
  351. package/dist/components/OperationPath.vue.js +1 -1
  352. package/dist/components/OperationPath.vue.script.js +1 -1
  353. package/dist/components/OperationPath.vue.script.js.map +1 -1
  354. package/dist/components/OperationsList/OperationsList.vue.js +1 -1
  355. package/dist/components/OperationsList/OperationsList.vue.script.js +1 -1
  356. package/dist/components/OperationsList/OperationsList.vue.script.js.map +1 -1
  357. package/dist/components/OperationsList/OperationsListItem.vue.js +1 -1
  358. package/dist/components/OperationsList/OperationsListItem.vue.script.js +1 -1
  359. package/dist/components/OperationsList/OperationsListItem.vue.script.js.map +1 -1
  360. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js +1 -1
  361. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js.map +1 -1
  362. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js +1 -1
  363. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js.map +1 -1
  364. package/dist/components/ScreenReader.vue.js +1 -1
  365. package/dist/components/ScreenReader.vue.script.js +2 -2
  366. package/dist/components/ScreenReader.vue.script.js.map +1 -1
  367. package/dist/components/Section/CompactSection.vue.d.ts.map +1 -1
  368. package/dist/components/Section/CompactSection.vue.js +1 -1
  369. package/dist/components/Section/CompactSection.vue.js.map +1 -1
  370. package/dist/components/Section/CompactSection.vue.script.js +22 -6
  371. package/dist/components/Section/CompactSection.vue.script.js.map +1 -1
  372. package/dist/components/Section/Section.vue.js +1 -1
  373. package/dist/components/Section/Section.vue.script.js +1 -1
  374. package/dist/components/Section/Section.vue.script.js.map +1 -1
  375. package/dist/components/Section/SectionAccordion.vue.d.ts.map +1 -1
  376. package/dist/components/Section/SectionAccordion.vue.js +1 -1
  377. package/dist/components/Section/SectionAccordion.vue.script.js +1 -1
  378. package/dist/components/Section/SectionAccordion.vue.script.js.map +1 -1
  379. package/dist/components/Section/SectionColumn.vue.js +1 -1
  380. package/dist/components/Section/SectionColumn.vue.js.map +1 -1
  381. package/dist/components/Section/SectionColumns.vue.js +1 -1
  382. package/dist/components/Section/SectionColumns.vue.js.map +1 -1
  383. package/dist/components/Section/SectionContainer.vue.js +1 -1
  384. package/dist/components/Section/SectionContainer.vue.script.js +2 -2
  385. package/dist/components/Section/SectionContainer.vue.script.js.map +1 -1
  386. package/dist/components/Section/SectionContainerAccordion.vue.d.ts.map +1 -1
  387. package/dist/components/Section/SectionContainerAccordion.vue.js +1 -1
  388. package/dist/components/Section/SectionContainerAccordion.vue.script.js +1 -1
  389. package/dist/components/Section/SectionContainerAccordion.vue.script.js.map +1 -1
  390. package/dist/components/Section/SectionContent.vue.js +1 -1
  391. package/dist/components/Section/SectionContent.vue.js.map +1 -1
  392. package/dist/components/Section/SectionHeader.vue.d.ts.map +1 -1
  393. package/dist/components/Section/SectionHeader.vue.js +1 -1
  394. package/dist/components/Section/SectionHeader.vue.js.map +1 -1
  395. package/dist/components/Section/SectionHeader.vue.script.js +3 -3
  396. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  397. package/dist/components/Section/SectionHeaderTag.vue.js +1 -1
  398. package/dist/components/Section/SectionHeaderTag.vue.script.js +1 -1
  399. package/dist/components/Section/SectionHeaderTag.vue.script.js.map +1 -1
  400. package/dist/components/SectionFlare/SectionFlare.vue.js +1 -1
  401. package/dist/components/SectionFlare/SectionFlare.vue.js.map +1 -1
  402. package/dist/components/ShowMoreButton.vue.js +1 -1
  403. package/dist/components/ShowMoreButton.vue.script.js +1 -1
  404. package/dist/components/ShowMoreButton.vue.script.js.map +1 -1
  405. package/dist/features/Operation/Operation.vue.script.js +2 -2
  406. package/dist/features/Operation/Operation.vue.script.js.map +1 -1
  407. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts.map +1 -1
  408. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js +2 -2
  409. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js.map +1 -1
  410. package/dist/features/Operation/components/Header.vue.script.js +1 -1
  411. package/dist/features/Operation/components/Header.vue.script.js.map +1 -1
  412. package/dist/features/Operation/components/Headers.vue.d.ts.map +1 -1
  413. package/dist/features/Operation/components/Headers.vue.js +1 -1
  414. package/dist/features/Operation/components/Headers.vue.script.js +1 -1
  415. package/dist/features/Operation/components/Headers.vue.script.js.map +1 -1
  416. package/dist/features/Operation/components/OperationParameters.vue.script.js +2 -2
  417. package/dist/features/Operation/components/OperationParameters.vue.script.js.map +1 -1
  418. package/dist/features/Operation/components/OperationResponses.vue.script.js +1 -1
  419. package/dist/features/Operation/components/OperationResponses.vue.script.js.map +1 -1
  420. package/dist/features/Operation/components/OperationScopes.vue.d.ts +8 -0
  421. package/dist/features/Operation/components/OperationScopes.vue.d.ts.map +1 -0
  422. package/dist/features/Operation/components/OperationScopes.vue.js +7 -0
  423. package/dist/features/Operation/components/OperationScopes.vue.js.map +1 -0
  424. package/dist/features/Operation/components/OperationScopes.vue.script.js +60 -0
  425. package/dist/features/Operation/components/OperationScopes.vue.script.js.map +1 -0
  426. package/dist/features/Operation/components/ParameterList.vue.script.js +1 -1
  427. package/dist/features/Operation/components/ParameterList.vue.script.js.map +1 -1
  428. package/dist/features/Operation/components/ParameterListItem.vue.js +1 -1
  429. package/dist/features/Operation/components/ParameterListItem.vue.script.js +1 -1
  430. package/dist/features/Operation/components/ParameterListItem.vue.script.js.map +1 -1
  431. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  432. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  433. package/dist/features/Operation/components/RequestBody.vue.script.js +2 -2
  434. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  435. package/dist/features/Operation/components/SecurityRequirementBadge.vue.d.ts.map +1 -1
  436. package/dist/features/Operation/components/SecurityRequirementBadge.vue.js.map +1 -1
  437. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js +90 -17
  438. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js.map +1 -1
  439. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js +1 -1
  440. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js.map +1 -1
  441. package/dist/features/Operation/components/callbacks/Callback.vue.js +1 -1
  442. package/dist/features/Operation/components/callbacks/Callback.vue.script.js +1 -1
  443. package/dist/features/Operation/components/callbacks/Callback.vue.script.js.map +1 -1
  444. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js +1 -1
  445. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js.map +1 -1
  446. package/dist/features/Operation/components/helpers/get-parameter-examples.js.map +1 -1
  447. package/dist/features/Operation/helpers/filter-selected-security.js.map +1 -1
  448. package/dist/features/Operation/helpers/flatten-deep-object-query-parameter.js.map +1 -1
  449. package/dist/features/Operation/helpers/get-required-security.d.ts +13 -0
  450. package/dist/features/Operation/helpers/get-required-security.d.ts.map +1 -1
  451. package/dist/features/Operation/helpers/get-required-security.js +22 -1
  452. package/dist/features/Operation/helpers/get-required-security.js.map +1 -1
  453. package/dist/features/Operation/helpers/operation-stability.js.map +1 -1
  454. package/dist/features/Operation/helpers/should-ignore-entity.js.map +1 -1
  455. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +1 -1
  456. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  457. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  458. package/dist/features/Operation/layouts/ClassicLayout.vue.js.map +1 -1
  459. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +16 -7
  460. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  461. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  462. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  463. package/dist/features/Operation/layouts/ModernLayout.vue.js.map +1 -1
  464. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +3 -1
  465. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  466. package/dist/features/Operation/request-body-composition-index.js.map +1 -1
  467. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  468. package/dist/features/Search/components/SearchButton.vue.script.js +1 -1
  469. package/dist/features/Search/components/SearchButton.vue.script.js.map +1 -1
  470. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  471. package/dist/features/Search/components/SearchModal.vue.js +1 -1
  472. package/dist/features/Search/components/SearchModal.vue.script.js +1 -1
  473. package/dist/features/Search/components/SearchModal.vue.script.js.map +1 -1
  474. package/dist/features/Search/components/SearchResult.vue.d.ts.map +1 -1
  475. package/dist/features/Search/components/SearchResult.vue.script.js +1 -1
  476. package/dist/features/Search/components/SearchResult.vue.script.js.map +1 -1
  477. package/dist/features/Search/helpers/create-fuse-instance.js.map +1 -1
  478. package/dist/features/Search/helpers/create-search-index.js.map +1 -1
  479. package/dist/features/Search/hooks/useSearchIndex.js.map +1 -1
  480. package/dist/features/ask-agent-button/AskAgentButton.vue.js +1 -1
  481. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js +1 -1
  482. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js.map +1 -1
  483. package/dist/features/developer-tools/DeveloperTools.vue.script.js +2 -2
  484. package/dist/features/developer-tools/DeveloperTools.vue.script.js.map +1 -1
  485. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js +1 -1
  486. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js.map +1 -1
  487. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js +1 -1
  488. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js.map +1 -1
  489. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts.map +1 -1
  490. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js.map +1 -1
  491. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js +3 -3
  492. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js.map +1 -1
  493. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.d.ts +2 -2
  494. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js +1 -1
  495. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js.map +1 -1
  496. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js +2 -2
  497. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js.map +1 -1
  498. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.d.ts.map +1 -1
  499. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js +4 -3
  500. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js.map +1 -1
  501. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.d.ts.map +1 -1
  502. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js.map +1 -1
  503. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js +2 -1
  504. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js.map +1 -1
  505. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.d.ts.map +1 -1
  506. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js +4 -3
  507. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js.map +1 -1
  508. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.d.ts.map +1 -1
  509. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js +1 -1
  510. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js.map +1 -1
  511. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js +1 -1
  512. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js.map +1 -1
  513. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js +2 -2
  514. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js.map +1 -1
  515. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js +1 -1
  516. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js.map +1 -1
  517. package/dist/features/example-responses/ExampleResponse.vue.js +1 -1
  518. package/dist/features/example-responses/ExampleResponse.vue.script.js +1 -1
  519. package/dist/features/example-responses/ExampleResponse.vue.script.js.map +1 -1
  520. package/dist/features/example-responses/ExampleResponseTab.vue.js +1 -1
  521. package/dist/features/example-responses/ExampleResponseTab.vue.script.js +1 -1
  522. package/dist/features/example-responses/ExampleResponseTab.vue.script.js.map +1 -1
  523. package/dist/features/example-responses/ExampleResponseTabList.vue.d.ts.map +1 -1
  524. package/dist/features/example-responses/ExampleResponseTabList.vue.js +1 -1
  525. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js +1 -1
  526. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js.map +1 -1
  527. package/dist/features/example-responses/ExampleResponses.vue.d.ts.map +1 -1
  528. package/dist/features/example-responses/ExampleResponses.vue.js +1 -1
  529. package/dist/features/example-responses/ExampleResponses.vue.script.js +1 -1
  530. package/dist/features/example-responses/ExampleResponses.vue.script.js.map +1 -1
  531. package/dist/features/example-responses/ExampleSchema.vue.script.js +1 -1
  532. package/dist/features/example-responses/ExampleSchema.vue.script.js.map +1 -1
  533. package/dist/features/example-responses/helpers/has-response-content.js.map +1 -1
  534. package/dist/features/example-responses/helpers/normalize-mime-type-object.js.map +1 -1
  535. package/dist/features/example-responses/helpers/normalize-mime-type.js.map +1 -1
  536. package/dist/features/external-docs/ExternalDocs.vue.d.ts.map +1 -1
  537. package/dist/features/external-docs/ExternalDocs.vue.js.map +1 -1
  538. package/dist/features/external-docs/ExternalDocs.vue.script.js +27 -15
  539. package/dist/features/external-docs/ExternalDocs.vue.script.js.map +1 -1
  540. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  541. package/dist/features/info-object/Contact.vue.js.map +1 -1
  542. package/dist/features/info-object/Contact.vue.script.js +18 -12
  543. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  544. package/dist/features/info-object/InfoLink.vue.d.ts.map +1 -1
  545. package/dist/features/info-object/InfoLink.vue.js.map +1 -1
  546. package/dist/features/info-object/InfoLink.vue.script.js +23 -11
  547. package/dist/features/info-object/InfoLink.vue.script.js.map +1 -1
  548. package/dist/features/info-object/License.vue.d.ts.map +1 -1
  549. package/dist/features/info-object/License.vue.js.map +1 -1
  550. package/dist/features/info-object/License.vue.script.js +13 -7
  551. package/dist/features/info-object/License.vue.script.js.map +1 -1
  552. package/dist/features/info-object/TermsOfService.vue.d.ts.map +1 -1
  553. package/dist/features/info-object/TermsOfService.vue.js.map +1 -1
  554. package/dist/features/info-object/TermsOfService.vue.script.js +12 -6
  555. package/dist/features/info-object/TermsOfService.vue.script.js.map +1 -1
  556. package/dist/features/localization/locales/ar.d.ts +1 -0
  557. package/dist/features/localization/locales/ar.d.ts.map +1 -1
  558. package/dist/features/localization/locales/ar.js +2 -1
  559. package/dist/features/localization/locales/ar.js.map +1 -1
  560. package/dist/features/localization/locales/de.d.ts +1 -0
  561. package/dist/features/localization/locales/de.d.ts.map +1 -1
  562. package/dist/features/localization/locales/de.js +2 -1
  563. package/dist/features/localization/locales/de.js.map +1 -1
  564. package/dist/features/localization/locales/en.d.ts +1 -0
  565. package/dist/features/localization/locales/en.d.ts.map +1 -1
  566. package/dist/features/localization/locales/en.js +2 -1
  567. package/dist/features/localization/locales/en.js.map +1 -1
  568. package/dist/features/localization/locales/es.d.ts +1 -0
  569. package/dist/features/localization/locales/es.d.ts.map +1 -1
  570. package/dist/features/localization/locales/es.js +2 -1
  571. package/dist/features/localization/locales/es.js.map +1 -1
  572. package/dist/features/localization/locales/fr.d.ts +1 -0
  573. package/dist/features/localization/locales/fr.d.ts.map +1 -1
  574. package/dist/features/localization/locales/fr.js +2 -1
  575. package/dist/features/localization/locales/fr.js.map +1 -1
  576. package/dist/features/localization/locales/pt.d.ts +229 -0
  577. package/dist/features/localization/locales/pt.d.ts.map +1 -0
  578. package/dist/features/localization/locales/pt.js +227 -0
  579. package/dist/features/localization/locales/pt.js.map +1 -0
  580. package/dist/features/localization/locales/ru.d.ts +1 -0
  581. package/dist/features/localization/locales/ru.d.ts.map +1 -1
  582. package/dist/features/localization/locales/ru.js +2 -1
  583. package/dist/features/localization/locales/ru.js.map +1 -1
  584. package/dist/features/localization/locales/zh-cn.d.ts +1 -0
  585. package/dist/features/localization/locales/zh-cn.d.ts.map +1 -1
  586. package/dist/features/localization/locales/zh-cn.js +2 -1
  587. package/dist/features/localization/locales/zh-cn.js.map +1 -1
  588. package/dist/features/localization/translations.d.ts +235 -0
  589. package/dist/features/localization/translations.d.ts.map +1 -1
  590. package/dist/features/localization/translations.js +4 -2
  591. package/dist/features/localization/translations.js.map +1 -1
  592. package/dist/features/localization/use-localization.js.map +1 -1
  593. package/dist/features/multiple-documents/DocumentSelector.vue.d.ts.map +1 -1
  594. package/dist/features/multiple-documents/DocumentSelector.vue.script.js +1 -1
  595. package/dist/features/multiple-documents/DocumentSelector.vue.script.js.map +1 -1
  596. package/dist/features/specification-extension/SpecificationExtension.vue.script.js +1 -1
  597. package/dist/features/specification-extension/SpecificationExtension.vue.script.js.map +1 -1
  598. package/dist/features/specification-extension/helpers.js.map +1 -1
  599. package/dist/features/test-request-button/TestRequestButton.vue.js +1 -1
  600. package/dist/features/test-request-button/TestRequestButton.vue.script.js +1 -1
  601. package/dist/features/test-request-button/TestRequestButton.vue.script.js.map +1 -1
  602. package/dist/features/x-badges/XBadges.vue.d.ts.map +1 -1
  603. package/dist/features/x-badges/XBadges.vue.script.js +1 -1
  604. package/dist/features/x-badges/XBadges.vue.script.js.map +1 -1
  605. package/dist/helpers/color-mode.js.map +1 -1
  606. package/dist/helpers/download.js.map +1 -1
  607. package/dist/helpers/get-async-api-message-payload-schema.js.map +1 -1
  608. package/dist/helpers/get-async-api-model-schema.js.map +1 -1
  609. package/dist/helpers/id-routing.d.ts +18 -4
  610. package/dist/helpers/id-routing.d.ts.map +1 -1
  611. package/dist/helpers/id-routing.js +67 -20
  612. package/dist/helpers/id-routing.js.map +1 -1
  613. package/dist/helpers/is-introduction-entry.js.map +1 -1
  614. package/dist/helpers/lazy-bus.js.map +1 -1
  615. package/dist/helpers/load-from-perssistance.js.map +1 -1
  616. package/dist/helpers/map-config-plugins.js.map +1 -1
  617. package/dist/helpers/map-config-to-workspace-store.js.map +1 -1
  618. package/dist/helpers/normalize-configurations.js +1 -1
  619. package/dist/helpers/normalize-configurations.js.map +1 -1
  620. package/dist/helpers/openapi.d.ts +6 -1
  621. package/dist/helpers/openapi.d.ts.map +1 -1
  622. package/dist/helpers/openapi.js +37 -6
  623. package/dist/helpers/openapi.js.map +1 -1
  624. package/dist/helpers/safe-deep-clone.js.map +1 -1
  625. package/dist/helpers/storage.d.ts +21 -2
  626. package/dist/helpers/storage.d.ts.map +1 -1
  627. package/dist/helpers/storage.js +14 -0
  628. package/dist/helpers/storage.js.map +1 -1
  629. package/dist/helpers/upload-temp-document.js.map +1 -1
  630. package/dist/hooks/use-agent.js.map +1 -1
  631. package/dist/hooks/use-intersection.js.map +1 -1
  632. package/dist/plugins/hooks/usePluginManager.js.map +1 -1
  633. package/dist/plugins/persistence-plugin.js +6 -1
  634. package/dist/plugins/persistence-plugin.js.map +1 -1
  635. package/dist/plugins/plugin-manager.js +35 -0
  636. package/dist/plugins/plugin-manager.js.map +1 -1
  637. package/dist/plugins/posthog/index.js.map +1 -1
  638. package/dist/standalone/lib/html-api.d.ts.map +1 -1
  639. package/dist/standalone/lib/html-api.js +11 -4
  640. package/dist/standalone/lib/html-api.js.map +1 -1
  641. package/dist/standalone/lib/load-plugins-from-urls.d.ts +13 -0
  642. package/dist/standalone/lib/load-plugins-from-urls.d.ts.map +1 -0
  643. package/dist/standalone/lib/load-plugins-from-urls.js +60 -0
  644. package/dist/standalone/lib/load-plugins-from-urls.js.map +1 -0
  645. package/dist/style.css +1637 -1505
  646. package/dist/styles/print.css +118 -0
  647. package/dist/styles/tailwind.config.css +16 -0
  648. package/dist/vue-styles.css +1102 -1050
  649. package/package.json +29 -29
  650. package/dist/browser/chunks/AgentScalarChatInterface-YU9KKgvZ.js +0 -27
  651. package/dist/browser/chunks/ScalarTextInput.vue-B-Nhpn0q.js +0 -27
  652. package/dist/browser/chunks/browser-67K6wmG9.js +0 -129
  653. package/dist/browser/chunks/modal-BVUfMpuv.js +0 -15
  654. package/dist/browser/chunks/modal-WJ4Gcv8N.js +0 -99
  655. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +0 -17
  656. package/dist/browser/chunks/vendor-BqFs9NIb.js +0 -306
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncApiTraversedEntry.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/AsyncApiTraversedEntry.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getResolvedRef,\n mergeSiblingReferences,\n} from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n TraversedAsyncApiChannel,\n TraversedEntry,\n TraversedModels,\n TraversedSchema,\n TraversedTag,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed } from 'vue'\n\nimport Model from '@/components/Content/Models/Model.vue'\nimport ModelTag from '@/components/Content/Models/ModelTag.vue'\nimport { Tag } from '@/components/Content/Tags'\nimport Lazy from '@/components/Lazy/Lazy.vue'\nimport { getAsyncApiModelSchema } from '@/helpers/get-async-api-model-schema'\n\nimport Channel from './Channel.vue'\n\nconst {\n entries,\n document,\n expandedItems,\n options,\n eventBus,\n level = 0,\n} = defineProps<{\n entries: TraversedEntry[]\n document: AsyncApiDocument\n expandedItems: Record<string, boolean>\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'layout'\n | 'expandAllSchemaProperties'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n eventBus: WorkspaceEventBus\n level?: number\n}>()\n\nconst isTagGroup = (\n entry: TraversedEntry,\n): entry is TraversedTag & { isGroup: true } =>\n entry.type === 'tag' && entry.isGroup === true\n/**\n * Narrow to a regular (non-group) tag. Tag groups go through a separate branch\n * and must not inflate the sibling-tag count used for `moreThanOneTag`,\n * otherwise `ModernLayout` shows a \"Show more\" button for a lone tag whenever\n * it sits next to a tag group.\n */\nconst isTag = (\n entry: TraversedEntry,\n): entry is TraversedTag & { isGroup: false } =>\n entry.type === 'tag' && !isTagGroup(entry)\nconst isChannel = (entry: TraversedEntry): entry is TraversedAsyncApiChannel =>\n entry.type === 'asyncapi-channel'\n\n/** The top-level \"Models\" container that wraps individual schema entries. */\nconst isModelsTag = (entry: TraversedEntry): entry is TraversedModels =>\n entry.type === 'models'\n\n/** A single schema rendered as a model. */\nconst isModel = (entry: TraversedEntry): entry is TraversedSchema =>\n entry.type === 'model'\n\n/**\n * Reusable schemas live under `components.schemas`, the same place OpenAPI keeps them.\n * Resolve the wrapper once (merging `$ref` siblings) so the template can gate the Models section.\n */\nconst componentSchemas = computed(() =>\n document.components\n ? getResolvedRef(document.components, mergeSiblingReferences).schemas\n : undefined,\n)\n\n/** Resolve a schema by name into the shape the shared Model component expects. */\nconst getModelSchema = (name: string) => getAsyncApiModelSchema(document, name)\n</script>\n\n<template>\n <Lazy\n v-for=\"entry in entries\"\n :id=\"entry.id\"\n :key=\"`${entry.id}-${options.layout}`\"\n :expanded=\"!!expandedItems[entry.id]\">\n <Channel\n v-if=\"isChannel(entry)\"\n :channel=\"entry\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :level=\"level\"\n :options=\"options\" />\n\n <Tag\n v-else-if=\"\n isTag(entry) || (isTagGroup(entry) && options.layout === 'classic')\n \"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :moreThanOneTag=\"entries.filter(isTag).length > 1\"\n :tag=\"entry\">\n <template v-if=\"entry.children?.length\">\n <AsyncApiTraversedEntry\n :document=\"document\"\n :entries=\"entry.children\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n </template>\n </Tag>\n\n <AsyncApiTraversedEntry\n v-else-if=\"isTagGroup(entry)\"\n :document=\"document\"\n :entries=\"entry.children ?? []\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n\n <!-- Models -->\n <ModelTag\n v-else-if=\"isModelsTag(entry) && componentSchemas\"\n :id=\"entry.id\"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :modelsSectionLabel=\"options.modelsSectionLabel\">\n <AsyncApiTraversedEntry\n :document=\"document\"\n :entries=\"entry.children ?? []\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n </ModelTag>\n\n <Model\n v-else-if=\"isModel(entry) && getModelSchema(entry.name)\"\n :id=\"entry.id\"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :name=\"entry.name\"\n :options=\"options\"\n :schema=\"getModelSchema(entry.name)\" />\n </Lazy>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAiDA,MAAM,cACJ,UAEA,MAAM,SAAS,SAAS,MAAM,YAAY;;;;;;;EAO5C,MAAM,SACJ,UAEA,MAAM,SAAS,SAAS,CAAC,WAAW,MAAK;EAC3C,MAAM,aAAa,UACjB,MAAM,SAAS;;EAGjB,MAAM,eAAe,UACnB,MAAM,SAAS;;EAGjB,MAAM,WAAW,UACf,MAAM,SAAS;;;;;EAMjB,MAAM,mBAAmB,eACvB,QAAA,SAAS,aACL,eAAe,QAAA,SAAS,YAAY,uBAAuB,CAAC,UAC5D,KAAA,EACN;;EAGA,MAAM,kBAAkB,SAAiB,uBAAuB,QAAA,UAAU,KAAI;;;2BAI5E,mBAsEO,UAAA,MAAA,WArEW,QAAA,UAAT,UAAK;wBADd,YAsEO,cAAA;KApEJ,IAAI,MAAM;KACV,KAAG,GAAK,MAAM,GAAE,GAAI,QAAA,QAAQ;KAC5B,UAAQ,CAAA,CAAI,QAAA,cAAc,MAAM;;4BAUV,CARf,UAAU,MAAK,IAAA,WAAA,EADvB,YASuB,iBAAA;;MAPpB,SAAS;MACT,UAAU,QAAA;MACV,UAAU,QAAA;MACV,eAAe,QAAA;MACf,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,OAAO,QAAA;MACP,SAAS,QAAA;;;;;;;;;;WAGU,MAAM,MAAK,IAAM,WAAW,MAAK,IAAK,QAAA,QAAQ,WAAM,aAAA,WAAA,EAD1E,YAkBM,MAAA,YAAA,EAAA;;MAdH,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,gBAAgB,QAAA,QAAQ,OAAO,MAAK,CAAE,SAAM;MAC5C,KAAK;;6BASK,CARK,MAAM,UAAU,UAAA,WAAA,EAC9B,YAMuB,mCAAA;;OALpB,UAAU,QAAA;OACV,SAAS,MAAM;OACf,UAAU,QAAA;OACV,eAAe,QAAA;OACf,OAAO,QAAA,QAAK;OACZ,SAAS,QAAA;;;;;;;;;;;;;;;;WAKH,WAAW,MAAK,IAAA,WAAA,EAD7B,YAOuB,mCAAA;;MALpB,UAAU,QAAA;MACV,SAAS,MAAM,YAAQ,EAAA;MACvB,UAAU,QAAA;MACV,eAAe,QAAA;MACf,OAAO,QAAA,QAAK;MACZ,SAAS,QAAA;;;;;;;;WAIC,YAAY,MAAK,IAAK,iBAAA,SAAA,WAAA,EADnC,YAcW,kBAAA;;MAZR,IAAI,MAAM;MACV,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,oBAAoB,QAAA,QAAQ;;6BAON,CANvB,YAMuB,mCAAA;OALpB,UAAU,QAAA;OACV,SAAS,MAAM,YAAQ,EAAA;OACvB,UAAU,QAAA;OACV,eAAe,QAAA;OACf,OAAO,QAAA,QAAK;OACZ,SAAS,QAAA;;;;;;;;;;;;;;;;WAID,QAAQ,MAAK,IAAK,eAAe,MAAM,KAAI,IAAA,WAAA,EADxD,YAOyC,eAAA;;MALtC,IAAI,MAAM;MACV,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,MAAM,MAAM;MACZ,SAAS,QAAA;MACT,QAAQ,eAAe,MAAM,KAAI"}
1
+ {"version":3,"file":"AsyncApiTraversedEntry.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/AsyncApiTraversedEntry.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getResolvedRef,\n mergeSiblingReferences,\n} from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n TraversedAsyncApiChannel,\n TraversedEntry,\n TraversedModels,\n TraversedSchema,\n TraversedTag,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed } from 'vue'\n\nimport Model from '@/components/Content/Models/Model.vue'\nimport ModelTag from '@/components/Content/Models/ModelTag.vue'\nimport { Tag } from '@/components/Content/Tags'\nimport Lazy from '@/components/Lazy/Lazy.vue'\nimport { getAsyncApiModelSchema } from '@/helpers/get-async-api-model-schema'\n\nimport Channel from './Channel.vue'\n\nconst {\n entries,\n document,\n expandedItems,\n options,\n eventBus,\n level = 0,\n} = defineProps<{\n entries: TraversedEntry[]\n document: AsyncApiDocument\n expandedItems: Record<string, boolean>\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'layout'\n | 'expandAllSchemaProperties'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n eventBus: WorkspaceEventBus\n level?: number\n}>()\n\nconst isTagGroup = (\n entry: TraversedEntry,\n): entry is TraversedTag & { isGroup: true } =>\n entry.type === 'tag' && entry.isGroup === true\n/**\n * Narrow to a regular (non-group) tag. Tag groups go through a separate branch\n * and must not inflate the sibling-tag count used for `moreThanOneTag`,\n * otherwise `ModernLayout` shows a \"Show more\" button for a lone tag whenever\n * it sits next to a tag group.\n */\nconst isTag = (\n entry: TraversedEntry,\n): entry is TraversedTag & { isGroup: false } =>\n entry.type === 'tag' && !isTagGroup(entry)\nconst isChannel = (entry: TraversedEntry): entry is TraversedAsyncApiChannel =>\n entry.type === 'asyncapi-channel'\n\n/** The top-level \"Models\" container that wraps individual schema entries. */\nconst isModelsTag = (entry: TraversedEntry): entry is TraversedModels =>\n entry.type === 'models'\n\n/** A single schema rendered as a model. */\nconst isModel = (entry: TraversedEntry): entry is TraversedSchema =>\n entry.type === 'model'\n\n/**\n * Reusable schemas live under `components.schemas`, the same place OpenAPI keeps them.\n * Resolve the wrapper once (merging `$ref` siblings) so the template can gate the Models section.\n */\nconst componentSchemas = computed(() =>\n document.components\n ? getResolvedRef(document.components, mergeSiblingReferences).schemas\n : undefined,\n)\n\n/** Resolve a schema by name into the shape the shared Model component expects. */\nconst getModelSchema = (name: string) => getAsyncApiModelSchema(document, name)\n</script>\n\n<template>\n <Lazy\n v-for=\"entry in entries\"\n :id=\"entry.id\"\n :key=\"`${entry.id}-${options.layout}`\"\n :expanded=\"!!expandedItems[entry.id]\">\n <Channel\n v-if=\"isChannel(entry)\"\n :channel=\"entry\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :level=\"level\"\n :options=\"options\" />\n\n <Tag\n v-else-if=\"\n isTag(entry) || (isTagGroup(entry) && options.layout === 'classic')\n \"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :moreThanOneTag=\"entries.filter(isTag).length > 1\"\n :tag=\"entry\">\n <template v-if=\"entry.children?.length\">\n <AsyncApiTraversedEntry\n :document=\"document\"\n :entries=\"entry.children\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n </template>\n </Tag>\n\n <AsyncApiTraversedEntry\n v-else-if=\"isTagGroup(entry)\"\n :document=\"document\"\n :entries=\"entry.children ?? []\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n\n <!-- Models -->\n <ModelTag\n v-else-if=\"isModelsTag(entry) && componentSchemas\"\n :id=\"entry.id\"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :layout=\"options.layout\"\n :modelsSectionLabel=\"options.modelsSectionLabel\">\n <AsyncApiTraversedEntry\n :document=\"document\"\n :entries=\"entry.children ?? []\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :level=\"level + 1\"\n :options=\"options\" />\n </ModelTag>\n\n <Model\n v-else-if=\"isModel(entry) && getModelSchema(entry.name)\"\n :id=\"entry.id\"\n :eventBus=\"eventBus\"\n :isCollapsed=\"!expandedItems[entry.id]\"\n :name=\"entry.name\"\n :options=\"options\"\n :schema=\"getModelSchema(entry.name)\" />\n </Lazy>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAiDA,MAAM,cACJ,UAEA,MAAM,SAAS,SAAS,MAAM,YAAY;;;;;;;EAO5C,MAAM,SACJ,UAEA,MAAM,SAAS,SAAS,CAAC,WAAW,KAAK;EAC3C,MAAM,aAAa,UACjB,MAAM,SAAS;;EAGjB,MAAM,eAAe,UACnB,MAAM,SAAS;;EAGjB,MAAM,WAAW,UACf,MAAM,SAAS;;;;;EAMjB,MAAM,mBAAmB,eACvB,QAAA,SAAS,aACL,eAAe,QAAA,SAAS,YAAY,sBAAsB,CAAC,CAAC,UAC5D,KAAA,CACN;;EAGA,MAAM,kBAAkB,SAAiB,uBAAuB,QAAA,UAAU,IAAI;;;2BAI5E,mBAsEO,UAAA,MAAA,WArEW,QAAA,UAAT,UAAK;wBADd,YAsEO,cAAA;KApEJ,IAAI,MAAM;KACV,KAAG,GAAK,MAAM,GAAE,GAAI,QAAA,QAAQ;KAC5B,UAAQ,CAAA,CAAI,QAAA,cAAc,MAAM;;4BAUV,CARf,UAAU,KAAK,KAAA,UAAA,GADvB,YASuB,iBAAA;;MAPpB,SAAS;MACT,UAAU,QAAA;MACV,UAAU,QAAA;MACV,eAAe,QAAA;MACf,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,OAAO,QAAA;MACP,SAAS,QAAA;;;;;;;;;;WAGU,MAAM,KAAK,KAAM,WAAW,KAAK,KAAK,QAAA,QAAQ,WAAM,aAAA,UAAA,GAD1E,YAkBM,MAAA,WAAA,GAAA;;MAdH,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,gBAAgB,QAAA,QAAQ,OAAO,KAAK,CAAA,CAAE,SAAM;MAC5C,KAAK;;6BASK,CARK,MAAM,UAAU,UAAA,UAAA,GAC9B,YAMuB,mCAAA;;OALpB,UAAU,QAAA;OACV,SAAS,MAAM;OACf,UAAU,QAAA;OACV,eAAe,QAAA;OACf,OAAO,QAAA,QAAK;OACZ,SAAS,QAAA;;;;;;;;;;;;;;;;WAKH,WAAW,KAAK,KAAA,UAAA,GAD7B,YAOuB,mCAAA;;MALpB,UAAU,QAAA;MACV,SAAS,MAAM,YAAQ,CAAA;MACvB,UAAU,QAAA;MACV,eAAe,QAAA;MACf,OAAO,QAAA,QAAK;MACZ,SAAS,QAAA;;;;;;;;WAIC,YAAY,KAAK,KAAK,iBAAA,SAAA,UAAA,GADnC,YAcW,kBAAA;;MAZR,IAAI,MAAM;MACV,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,QAAQ,QAAA,QAAQ;MAChB,oBAAoB,QAAA,QAAQ;;6BAON,CANvB,YAMuB,mCAAA;OALpB,UAAU,QAAA;OACV,SAAS,MAAM,YAAQ,CAAA;OACvB,UAAU,QAAA;OACV,eAAe,QAAA;OACf,OAAO,QAAA,QAAK;OACZ,SAAS,QAAA;;;;;;;;;;;;;;;;WAID,QAAQ,KAAK,KAAK,eAAe,MAAM,IAAI,KAAA,UAAA,GADxD,YAOyC,eAAA;;MALtC,IAAI,MAAM;MACV,UAAU,QAAA;MACV,aAAW,CAAG,QAAA,cAAc,MAAM;MAClC,MAAM,MAAM;MACZ,SAAS,QAAA;MACT,QAAQ,eAAe,MAAM,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Channel.vue"],"names":[],"mappings":"AAyOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,4CAA4C,CAAA;AAgBnD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAA;AAO3C,6EAA6E;AAC7E,KAAK,oBAAoB,GAAG,2BAA2B,GACrD,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAA;AAElD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACvC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AA8bF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Channel.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Channel.vue"],"names":[],"mappings":"AAyOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,4CAA4C,CAAA;AAgBnD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAA;AAO3C,6EAA6E;AAC7E,KAAK,oBAAoB,GAAG,2BAA2B,GACrD,IAAI,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAA;AAElD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACvC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AAkcF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import Channel_vue_vue_type_script_setup_true_lang_default from "./Channel.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/AsyncApi/Channel.vue
5
- var Channel_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Channel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2b0efcde"]]);
5
+ var Channel_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Channel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2b0efcde"]]);
6
6
  //#endregion
7
7
  export { Channel_default as default };
8
8
 
@@ -17,7 +17,7 @@ import Operation_default from "./Operation.vue.js";
17
17
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, openBlock, renderList, toDisplayString, unref, useId, withCtx } from "vue";
18
18
  import { ScalarMarkdown } from "@scalar/components/markdown";
19
19
  //#region src/components/Content/AsyncApi/Channel.vue?vue&type=script&setup=true&lang.ts
20
- var Channel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
+ var Channel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
21
21
  __name: "Channel",
22
22
  props: {
23
23
  channel: {},
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Channel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiChannel,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport {\n Section,\n SectionContainer,\n SectionContainerAccordion,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport ParameterList from '@/features/Operation/components/ParameterList.vue'\n\nimport AsyncApiLabels from './AsyncApiLabels.vue'\nimport { adaptAsyncApiParameters } from './helpers/adapt-async-api-parameters'\nimport {\n resolveSchemaRenderOptions,\n type AsyncApiSchemaRenderOptions,\n} from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { getChannelServerLabels } from './helpers/get-async-api-labels'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiChannel } from './helpers/resolve-async-api-nodes'\nimport Operation from './Operation.vue'\n\n/** Subset of the configuration the shared `ParameterList` renderer needs. */\ntype ParameterListOptions = AsyncApiSchemaRenderOptions &\n Pick<ApiReferenceConfigurationRaw, 'hideModels'>\n\nconst {\n channel,\n document,\n layout,\n isCollapsed,\n eventBus,\n options,\n expandedItems = {},\n level = 0,\n} = defineProps<{\n channel: TraversedAsyncApiChannel\n document: AsyncApiDocument\n layout: 'classic' | 'modern'\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n options?: Partial<ParameterListOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n /**\n * Nesting depth in the navigation tree. A channel nested inside a tag\n * (`level !== 0`) inherits the tag's horizontal padding, so it skips its own\n * `SectionContainer` padding to avoid doubling the indentation.\n */\n level?: number\n}>()\n\nconst headerId = useId()\n\n/**\n * Resolve the channel from the document so we can read its description.\n * The navigation entry only carries the address and identifying keys.\n */\nconst resolvedChannel = computed(() =>\n resolveAsyncApiChannel(document, channel.channelName),\n)\n\nconst description = computed(() => resolvedChannel.value?.description ?? '')\n\n/**\n * Heading shown above each channel section.\n *\n * Prefers the human-friendly `channel.title` when it is set, then falls back\n * to `channel.address`. `channel.channelAddress` already encodes the\n * address-or-key fallback during navigation traversal, so we only need to\n * overlay `title` on top of it.\n */\nconst headingText = computed(() =>\n pickHeading(resolvedChannel.value?.title, channel.channelAddress),\n)\n\n/**\n * Channel address parameters mapped into the OpenAPI parameter shape so we can reuse the shared\n * `ParameterList` component instead of building a dedicated AsyncAPI renderer.\n */\nconst parameters = computed(() =>\n adaptAsyncApiParameters(resolvedChannel.value?.parameters),\n)\n\n/** Fill in defaults so the shared renderer always receives a complete options object. */\nconst parameterListOptions = computed<ParameterListOptions>(() => ({\n hideModels: options?.hideModels ?? false,\n ...resolveSchemaRenderOptions(options),\n}))\n\n/**\n * Server-name and protocol labels for the channel, resolved from `document.servers`\n * (restricted to `channel.servers` when declared) and rendered as pills in the header.\n */\nconst labels = computed(() =>\n getChannelServerLabels(document, resolvedChannel.value),\n)\n\n/** Operations that target this channel, rendered nested beneath the channel content. */\nconst operations = computed(() =>\n filterChildrenByType<TraversedAsyncApiOperation>(\n channel.children,\n 'asyncapi-operation',\n ),\n)\n</script>\n\n<template>\n <SectionContainerAccordion\n v-if=\"layout === 'classic'\"\n :aria-label=\"headingText\"\n class=\"channel-section\"\n :modelValue=\"!isCollapsed\"\n @update:modelValue=\"\n (value) =>\n eventBus?.emit('toggle:nav-item', { id: channel.id, open: value })\n \">\n <template #title>\n <SectionHeader class=\"channel-name\">\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: channel.id })\n \">\n <SectionHeaderTag :level=\"2\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <AsyncApiLabels\n class=\"channel-labels\"\n :protocols=\"labels.protocols\"\n :servers=\"labels.servers\" />\n <ScalarMarkdown\n class=\"channel-description\"\n :value=\"description\"\n withImages />\n </template>\n <ParameterList\n v-if=\"parameters.length\"\n :eventBus=\"eventBus\"\n :options=\"parameterListOptions\"\n :parameters=\"parameters\">\n <template #title>Parameters</template>\n </ParameterList>\n <Operation\n v-for=\"operation in operations\"\n :key=\"operation.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :operation=\"operation\"\n :options=\"options\" />\n </SectionContainerAccordion>\n\n <SectionContainer\n v-else\n :aria-labelledby=\"headerId\"\n :omit=\"level !== 0\"\n role=\"region\">\n <Section\n :id=\"channel.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: channel.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: channel.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <AsyncApiLabels\n class=\"channel-labels\"\n :protocols=\"labels.protocols\"\n :servers=\"labels.servers\" />\n <ScalarMarkdown\n :value=\"description\"\n withImages />\n <ParameterList\n v-if=\"parameters.length\"\n :eventBus=\"eventBus\"\n :options=\"parameterListOptions\"\n :parameters=\"parameters\">\n <template #title>Parameters</template>\n </ParameterList>\n <Operation\n v-for=\"operation in operations\"\n :key=\"operation.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :operation=\"operation\"\n :options=\"options\" />\n </SectionContent>\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.channel-section {\n margin-bottom: 48px;\n}\n.channel-labels {\n margin-bottom: 8px;\n}\n.channel-description {\n padding-bottom: 4px;\n text-align: left;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"Channel.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Channel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiChannel,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport {\n Section,\n SectionContainer,\n SectionContainerAccordion,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport ParameterList from '@/features/Operation/components/ParameterList.vue'\n\nimport AsyncApiLabels from './AsyncApiLabels.vue'\nimport { adaptAsyncApiParameters } from './helpers/adapt-async-api-parameters'\nimport {\n resolveSchemaRenderOptions,\n type AsyncApiSchemaRenderOptions,\n} from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { getChannelServerLabels } from './helpers/get-async-api-labels'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiChannel } from './helpers/resolve-async-api-nodes'\nimport Operation from './Operation.vue'\n\n/** Subset of the configuration the shared `ParameterList` renderer needs. */\ntype ParameterListOptions = AsyncApiSchemaRenderOptions &\n Pick<ApiReferenceConfigurationRaw, 'hideModels'>\n\nconst {\n channel,\n document,\n layout,\n isCollapsed,\n eventBus,\n options,\n expandedItems = {},\n level = 0,\n} = defineProps<{\n channel: TraversedAsyncApiChannel\n document: AsyncApiDocument\n layout: 'classic' | 'modern'\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n options?: Partial<ParameterListOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n /**\n * Nesting depth in the navigation tree. A channel nested inside a tag\n * (`level !== 0`) inherits the tag's horizontal padding, so it skips its own\n * `SectionContainer` padding to avoid doubling the indentation.\n */\n level?: number\n}>()\n\nconst headerId = useId()\n\n/**\n * Resolve the channel from the document so we can read its description.\n * The navigation entry only carries the address and identifying keys.\n */\nconst resolvedChannel = computed(() =>\n resolveAsyncApiChannel(document, channel.channelName),\n)\n\nconst description = computed(() => resolvedChannel.value?.description ?? '')\n\n/**\n * Heading shown above each channel section.\n *\n * Prefers the human-friendly `channel.title` when it is set, then falls back\n * to `channel.address`. `channel.channelAddress` already encodes the\n * address-or-key fallback during navigation traversal, so we only need to\n * overlay `title` on top of it.\n */\nconst headingText = computed(() =>\n pickHeading(resolvedChannel.value?.title, channel.channelAddress),\n)\n\n/**\n * Channel address parameters mapped into the OpenAPI parameter shape so we can reuse the shared\n * `ParameterList` component instead of building a dedicated AsyncAPI renderer.\n */\nconst parameters = computed(() =>\n adaptAsyncApiParameters(resolvedChannel.value?.parameters),\n)\n\n/** Fill in defaults so the shared renderer always receives a complete options object. */\nconst parameterListOptions = computed<ParameterListOptions>(() => ({\n hideModels: options?.hideModels ?? false,\n ...resolveSchemaRenderOptions(options),\n}))\n\n/**\n * Server-name and protocol labels for the channel, resolved from `document.servers`\n * (restricted to `channel.servers` when declared) and rendered as pills in the header.\n */\nconst labels = computed(() =>\n getChannelServerLabels(document, resolvedChannel.value),\n)\n\n/** Operations that target this channel, rendered nested beneath the channel content. */\nconst operations = computed(() =>\n filterChildrenByType<TraversedAsyncApiOperation>(\n channel.children,\n 'asyncapi-operation',\n ),\n)\n</script>\n\n<template>\n <SectionContainerAccordion\n v-if=\"layout === 'classic'\"\n :aria-label=\"headingText\"\n class=\"channel-section\"\n :modelValue=\"!isCollapsed\"\n @update:modelValue=\"\n (value) =>\n eventBus?.emit('toggle:nav-item', { id: channel.id, open: value })\n \">\n <template #title>\n <SectionHeader class=\"channel-name\">\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: channel.id })\n \">\n <SectionHeaderTag :level=\"2\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <AsyncApiLabels\n class=\"channel-labels\"\n :protocols=\"labels.protocols\"\n :servers=\"labels.servers\" />\n <ScalarMarkdown\n class=\"channel-description\"\n :value=\"description\"\n withImages />\n </template>\n <ParameterList\n v-if=\"parameters.length\"\n :eventBus=\"eventBus\"\n :options=\"parameterListOptions\"\n :parameters=\"parameters\">\n <template #title>Parameters</template>\n </ParameterList>\n <Operation\n v-for=\"operation in operations\"\n :key=\"operation.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :operation=\"operation\"\n :options=\"options\" />\n </SectionContainerAccordion>\n\n <SectionContainer\n v-else\n :aria-labelledby=\"headerId\"\n :omit=\"level !== 0\"\n role=\"region\">\n <Section\n :id=\"channel.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: channel.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: channel.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <AsyncApiLabels\n class=\"channel-labels\"\n :protocols=\"labels.protocols\"\n :servers=\"labels.servers\" />\n <ScalarMarkdown\n :value=\"description\"\n withImages />\n <ParameterList\n v-if=\"parameters.length\"\n :eventBus=\"eventBus\"\n :options=\"parameterListOptions\"\n :parameters=\"parameters\">\n <template #title>Parameters</template>\n </ParameterList>\n <Operation\n v-for=\"operation in operations\"\n :key=\"operation.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :operation=\"operation\"\n :options=\"options\" />\n </SectionContent>\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.channel-section {\n margin-bottom: 48px;\n}\n.channel-labels {\n margin-bottom: 8px;\n}\n.channel-description {\n padding-bottom: 4px;\n text-align: left;\n}\n</style>\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import ChannelsList_vue_vue_type_script_setup_true_lang_default from "./ChannelsList.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/AsyncApi/ChannelsList.vue
5
- var ChannelsList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ChannelsList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-817abeb3"]]);
5
+ var ChannelsList_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ChannelsList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-817abeb3"]]);
6
6
  //#endregion
7
7
  export { ChannelsList_default as default };
8
8
 
@@ -5,7 +5,7 @@ import { ScalarCard, ScalarCardHeader, ScalarCardSection } from "@scalar/compone
5
5
  //#region src/components/Content/AsyncApi/ChannelsList.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = ["aria-label"];
7
7
  var _hoisted_2 = ["onClick"];
8
- var ChannelsList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var ChannelsList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
9
  __name: "ChannelsList",
10
10
  props: {
11
11
  tag: {},
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelsList.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/ChannelsList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarCard,\n ScalarCardHeader,\n ScalarCardSection,\n} from '@scalar/components/card'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiChannel,\n TraversedTag,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed } from 'vue'\n\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport { useLocalization } from '@/features/localization'\n\nconst { tag } = defineProps<{\n tag: TraversedTag\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n\n/**\n * Channels grouped under this tag. The OpenAPI `OperationsList` only knows about\n * `operation`/`webhook` children, so AsyncAPI tags need their own list that links\n * straight to each channel section.\n */\nconst channels = computed(\n () =>\n tag.children?.filter(\n (child): child is TraversedAsyncApiChannel =>\n child.type === 'asyncapi-channel',\n ) ?? [],\n)\n</script>\n\n<template>\n <ScalarCard\n v-if=\"channels.length\"\n class=\"channels-card\">\n <ScalarCardHeader muted>\n <ScreenReader>{{ tag.title }}</ScreenReader>\n {{ translate('navigation.channels') }}\n </ScalarCardHeader>\n <ScalarCardSection class=\"custom-scroll max-h-[60vh]\">\n <ul\n :aria-label=\"translate('navigation.channels')\"\n class=\"channels\">\n <li\n v-for=\"channel in channels\"\n :key=\"channel.id\"\n class=\"contents\">\n <a\n class=\"channel\"\n @click.prevent=\"\n () => eventBus?.emit('scroll-to:nav-item', { id: channel.id })\n \">\n {{ channel.title || channel.channelAddress }}\n </a>\n </li>\n </ul>\n </ScalarCardSection>\n </ScalarCard>\n</template>\n\n<style scoped>\n.channels-card {\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n font-size: var(--scalar-font-size-3);\n}\n.channels {\n overflow: auto;\n background: var(--scalar-background-2);\n padding: 10px 12px;\n width: 100%;\n}\n.channel {\n display: flex;\n white-space: nowrap;\n cursor: pointer;\n text-decoration: none;\n color: var(--scalar-color-1);\n line-height: 1.55;\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n}\n.channel:hover,\n.channel:focus-visible {\n text-decoration: underline;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAoBA,MAAM,EAAE,cAAc,iBAAgB;;;;;;EAOtC,MAAM,WAAW,eAEb,QAAA,IAAI,UAAU,QACX,UACC,MAAM,SAAS,mBAClB,IAAI,EAAE,CACX;;UAKU,SAAA,MAAS,UAAA,WAAA,EADjB,YAyBa,MAAA,WAAA,EAAA;;IAvBX,OAAM;;2BAIa,CAHnB,YAGmB,MAAA,iBAAA,EAAA,EAHD,OAAA,IAAK,EAAA;4BACuB,CAA5C,YAA4C,sBAAA,MAAA;6BAAf,CAAA,gBAAA,gBAAZ,QAAA,IAAI,MAAK,EAAA,EAAA,CAAA,CAAA;;yBAAkB,MAC5C,gBAAG,MAAA,UAAS,CAAA,sBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;QAEd,YAiBoB,MAAA,kBAAA,EAAA,EAjBD,OAAM,8BAA4B,EAAA;4BAgB9C,CAfL,mBAeK,MAAA;MAdF,cAAY,MAAA,UAAS,CAAA,sBAAA;MACtB,OAAM;2BACN,mBAWK,UAAA,MAAA,WAVe,SAAA,QAAX,YAAO;0BADhB,mBAWK,MAAA;OATF,KAAK,QAAQ;OACd,OAAM;UACN,mBAMI,KAAA;OALF,OAAM;OACL,SAAK,oBAA+B,QAAA,UAAU,KAAI,sBAAA,EAAA,IAA6B,QAAQ,IAAE,CAAA,EAAA,CAAA,UAAA,CAAA;yBAGvF,QAAQ,SAAS,QAAQ,eAAc,EAAA,GAAA,WAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ChannelsList.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/ChannelsList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarCard,\n ScalarCardHeader,\n ScalarCardSection,\n} from '@scalar/components/card'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiChannel,\n TraversedTag,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed } from 'vue'\n\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport { useLocalization } from '@/features/localization'\n\nconst { tag } = defineProps<{\n tag: TraversedTag\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n\n/**\n * Channels grouped under this tag. The OpenAPI `OperationsList` only knows about\n * `operation`/`webhook` children, so AsyncAPI tags need their own list that links\n * straight to each channel section.\n */\nconst channels = computed(\n () =>\n tag.children?.filter(\n (child): child is TraversedAsyncApiChannel =>\n child.type === 'asyncapi-channel',\n ) ?? [],\n)\n</script>\n\n<template>\n <ScalarCard\n v-if=\"channels.length\"\n class=\"channels-card\">\n <ScalarCardHeader muted>\n <ScreenReader>{{ tag.title }}</ScreenReader>\n {{ translate('navigation.channels') }}\n </ScalarCardHeader>\n <ScalarCardSection class=\"custom-scroll max-h-[60vh]\">\n <ul\n :aria-label=\"translate('navigation.channels')\"\n class=\"channels\">\n <li\n v-for=\"channel in channels\"\n :key=\"channel.id\"\n class=\"contents\">\n <a\n class=\"channel\"\n @click.prevent=\"\n () => eventBus?.emit('scroll-to:nav-item', { id: channel.id })\n \">\n {{ channel.title || channel.channelAddress }}\n </a>\n </li>\n </ul>\n </ScalarCardSection>\n </ScalarCard>\n</template>\n\n<style scoped>\n.channels-card {\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n font-size: var(--scalar-font-size-3);\n}\n.channels {\n overflow: auto;\n background: var(--scalar-background-2);\n padding: 10px 12px;\n width: 100%;\n}\n.channel {\n display: flex;\n white-space: nowrap;\n cursor: pointer;\n text-decoration: none;\n color: var(--scalar-color-1);\n line-height: 1.55;\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n}\n.channel:hover,\n.channel:focus-visible {\n text-decoration: underline;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAoBA,MAAM,EAAE,cAAc,gBAAgB;;;;;;EAOtC,MAAM,WAAW,eAEb,QAAA,IAAI,UAAU,QACX,UACC,MAAM,SAAS,kBACnB,KAAK,CAAC,CACV;;UAKU,SAAA,MAAS,UAAA,UAAA,GADjB,YAyBa,MAAA,UAAA,GAAA;;IAvBX,OAAM;;2BAIa,CAHnB,YAGmB,MAAA,gBAAA,GAAA,EAHD,OAAA,GAAK,GAAA;4BACuB,CAA5C,YAA4C,sBAAA,MAAA;6BAAf,CAAA,gBAAA,gBAAZ,QAAA,IAAI,KAAK,GAAA,CAAA,CAAA,CAAA;;yBAAkB,MAC5C,gBAAG,MAAA,SAAA,CAAS,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;QAEd,YAiBoB,MAAA,iBAAA,GAAA,EAjBD,OAAM,6BAA4B,GAAA;4BAgB9C,CAfL,mBAeK,MAAA;MAdF,cAAY,MAAA,SAAA,CAAS,CAAA,qBAAA;MACtB,OAAM;2BACN,mBAWK,UAAA,MAAA,WAVe,SAAA,QAAX,YAAO;0BADhB,mBAWK,MAAA;OATF,KAAK,QAAQ;OACd,OAAM;UACN,mBAMI,KAAA;OALF,OAAM;OACL,SAAK,oBAA+B,QAAA,UAAU,KAAI,sBAAA,EAAA,IAA6B,QAAQ,GAAE,CAAA,GAAA,CAAA,SAAA,CAAA;yBAGvF,QAAQ,SAAS,QAAQ,cAAc,GAAA,GAAA,UAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Message.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Message.vue"],"names":[],"mappings":"AA8PA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAA;AAc1F,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAA;AAQ3C,sEAAsE;AACtE,KAAK,mBAAmB,GAAG,2BAA2B,CAAA;AAEtD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,CAAC;AA8TF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Message.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Message.vue"],"names":[],"mappings":"AA8PA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAA;AAc1F,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAA;AAQ3C,sEAAsE;AACtE,KAAK,mBAAmB,GAAG,2BAA2B,CAAA;AAEtD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,CAAC;AAgUF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import Message_vue_vue_type_script_setup_true_lang_default from "./Message.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/AsyncApi/Message.vue
5
- var Message_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Message_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-50be0795"]]);
5
+ var Message_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Message_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-50be0795"]]);
6
6
  //#endregion
7
7
  export { Message_default as default };
8
8
 
@@ -23,7 +23,7 @@ var _hoisted_4 = {
23
23
  key: 2,
24
24
  class: "message-schema"
25
25
  };
26
- var Message_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
26
+ var Message_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
27
27
  __name: "Message",
28
28
  props: {
29
29
  message: {},
@@ -66,7 +66,7 @@ var Message_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
66
66
  const protocolLabels = computed(() => {
67
67
  const channel = resolveAsyncApiChannel(__props.document, __props.message.channelName);
68
68
  const { protocols } = getChannelServerLabels(__props.document, channel);
69
- return [...new Set([...protocols, ...messageBindingProtocols.value])];
69
+ return [.../* @__PURE__ */ new Set([...protocols, ...messageBindingProtocols.value])];
70
70
  });
71
71
  /** Payload schema, unwrapped from `$ref`s and Multi Format Schema wrappers. */
72
72
  const payloadSchema = computed(() => resolvedMessage.value ? getAsyncApiMessagePayloadSchema(resolvedMessage.value) : void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Message.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Message.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { TraversedAsyncApiMessage } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, ref, useId, useTemplateRef, watch } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Schema } from '@/components/Content/Schema'\nimport type { SchemaOptions } from '@/components/Content/Schema/types'\nimport { SectionAccordion, SectionHeaderTag } from '@/components/Section'\nimport {\n getAsyncApiMessageHeadersSchema,\n getAsyncApiMessagePayloadSchema,\n} from '@/helpers/get-async-api-message-payload-schema'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport AsyncApiLabels from './AsyncApiLabels.vue'\nimport {\n resolveSchemaRenderOptions,\n type AsyncApiSchemaRenderOptions,\n} from './helpers/async-api-render-options'\nimport { getChannelServerLabels } from './helpers/get-async-api-labels'\nimport { pickHeading } from './helpers/pick-heading'\nimport {\n resolveAsyncApiChannel,\n resolveAsyncApiMessage,\n} from './helpers/resolve-async-api-nodes'\n\n/** Subset of the configuration the shared `Schema` renderer needs. */\ntype SchemaRenderOptions = AsyncApiSchemaRenderOptions\n\nconst {\n message,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n message: TraversedAsyncApiMessage\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<SchemaRenderOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: message.id }),\n)\n\n/**\n * Resolve the message from the channel it lives on. The navigation entry only\n * carries the identifying keys, so we walk `document.channels[channelName].messages`.\n */\nconst resolvedMessage = computed(() =>\n resolveAsyncApiMessage(document, message.channelName, message.messageName),\n)\n\n/** Heading prefers the human-friendly title, falling back to the message map key. */\nconst headingText = computed(() =>\n pickHeading(resolvedMessage.value?.title, message.title, message.messageName),\n)\n\nconst description = computed(\n () =>\n resolvedMessage.value?.description || resolvedMessage.value?.summary || '',\n)\n\n/**\n * Protocol keys declared directly on the message's protocol-specific `bindings`\n * (for example `ws`, `kafka`). The bindings object may be a `$ref`, so it is resolved\n * before reading the keys. Keys are lowercased to match the server protocols (which the\n * helper normalizes), so the union below de-duplicates case-insensitively.\n */\nconst messageBindingProtocols = computed(() => {\n const bindings = resolvedMessage.value?.bindings\n if (!bindings) {\n return []\n }\n const resolved = getResolvedRef(bindings)\n return Object.entries(resolved)\n .filter(([, value]) => value != null)\n .map(([protocol]) => protocol.toLowerCase())\n})\n\n/**\n * Protocol labels for the message. A message is carried over whatever protocols its\n * channel's servers speak, so we start from the channel's server protocols and union in\n * any extra protocols the message declares its own bindings for. Without this a\n * multi-protocol message would only surface the single protocol it happens to declare a\n * binding for (or none at all).\n */\nconst protocolLabels = computed(() => {\n const channel = resolveAsyncApiChannel(document, message.channelName)\n const { protocols } = getChannelServerLabels(document, channel)\n return [...new Set([...protocols, ...messageBindingProtocols.value])]\n})\n\n/** Payload schema, unwrapped from `$ref`s and Multi Format Schema wrappers. */\nconst payloadSchema = computed(() =>\n resolvedMessage.value\n ? getAsyncApiMessagePayloadSchema(resolvedMessage.value)\n : undefined,\n)\n\n/** Header schema, unwrapped the same way as the payload. */\nconst headersSchema = computed(() =>\n resolvedMessage.value\n ? getAsyncApiMessageHeadersSchema(resolvedMessage.value)\n : undefined,\n)\n\n/** Fill in defaults so the shared Schema renderer always receives a complete options object. */\nconst schemaOptions = computed<SchemaOptions>(() => ({\n hideReadOnly: false,\n ...resolveSchemaRenderOptions(options),\n}))\n\n/**\n * Accordion open state. Kept locally so clicking the header always toggles\n * immediately, and seeded/synced from the shared sidebar expansion map so\n * expanding the message in the sidebar (or deep-linking to it) opens it here too.\n */\nconst isExpanded = ref(expandedItems[message.id] ?? false)\n\nwatch(\n () => expandedItems[message.id],\n (value) => {\n if (value !== undefined) {\n isExpanded.value = value\n }\n },\n)\n\n/** Toggling the accordion updates local state and keeps the sidebar in sync. */\nconst onToggle = (open: boolean) => {\n isExpanded.value = open\n eventBus?.emit('toggle:nav-item', { id: message.id, open })\n}\n</script>\n\n<template>\n <div\n :id=\"message.id\"\n ref=\"section\"\n class=\"message\">\n <SectionAccordion\n class=\"message-accordion\"\n :modelValue=\"isExpanded\"\n @update:modelValue=\"onToggle\">\n <template #title>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: message.id })\n \">\n <span class=\"message-heading\">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"message-title\"\n :level=\"4\">\n {{ headingText }}\n </SectionHeaderTag>\n <AsyncApiLabels :protocols=\"protocolLabels\" />\n </span>\n </Anchor>\n </template>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"message-description\"\n :value=\"description\"\n withImages />\n\n <div\n v-if=\"headersSchema\"\n class=\"message-schema\">\n <div class=\"message-schema-title\">Headers</div>\n <Schema\n compact\n :eventBus=\"eventBus\"\n name=\"Headers\"\n noncollapsible\n :options=\"schemaOptions\"\n :schema=\"headersSchema\" />\n </div>\n\n <div\n v-if=\"payloadSchema\"\n class=\"message-schema\">\n <div class=\"message-schema-title\">Payload</div>\n <Schema\n compact\n :eventBus=\"eventBus\"\n name=\"Payload\"\n noncollapsible\n :options=\"schemaOptions\"\n :schema=\"payloadSchema\" />\n </div>\n </SectionAccordion>\n </div>\n</template>\n\n<style scoped>\n.message {\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.message-title {\n font-size: var(--scalar-heading-4);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n/*\n * Lay the heading and protocol labels out on one wrapping row. The labels live inside the\n * Anchor slot so the copy-anchor \"#\" button (absolutely positioned just past the end of the\n * slot content on hover) trails after the last pill instead of overlapping the first one.\n */\n.message-heading {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n}\n/* Pad the expanded body so the description and schemas don't sit flush against the border. */\n.message-accordion :deep(.section-accordion-content-card) {\n padding: 12px;\n}\n.message-description {\n padding-bottom: 4px;\n text-align: left;\n}\n.message-schema {\n margin-top: 12px;\n}\n.message-schema:first-child {\n margin-top: 0;\n}\n.message-schema-title {\n font-size: var(--scalar-font-size-2);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n padding-bottom: 8px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 8px;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"Message.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Message.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { TraversedAsyncApiMessage } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, ref, useId, useTemplateRef, watch } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Schema } from '@/components/Content/Schema'\nimport type { SchemaOptions } from '@/components/Content/Schema/types'\nimport { SectionAccordion, SectionHeaderTag } from '@/components/Section'\nimport {\n getAsyncApiMessageHeadersSchema,\n getAsyncApiMessagePayloadSchema,\n} from '@/helpers/get-async-api-message-payload-schema'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport AsyncApiLabels from './AsyncApiLabels.vue'\nimport {\n resolveSchemaRenderOptions,\n type AsyncApiSchemaRenderOptions,\n} from './helpers/async-api-render-options'\nimport { getChannelServerLabels } from './helpers/get-async-api-labels'\nimport { pickHeading } from './helpers/pick-heading'\nimport {\n resolveAsyncApiChannel,\n resolveAsyncApiMessage,\n} from './helpers/resolve-async-api-nodes'\n\n/** Subset of the configuration the shared `Schema` renderer needs. */\ntype SchemaRenderOptions = AsyncApiSchemaRenderOptions\n\nconst {\n message,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n message: TraversedAsyncApiMessage\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<SchemaRenderOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: message.id }),\n)\n\n/**\n * Resolve the message from the channel it lives on. The navigation entry only\n * carries the identifying keys, so we walk `document.channels[channelName].messages`.\n */\nconst resolvedMessage = computed(() =>\n resolveAsyncApiMessage(document, message.channelName, message.messageName),\n)\n\n/** Heading prefers the human-friendly title, falling back to the message map key. */\nconst headingText = computed(() =>\n pickHeading(resolvedMessage.value?.title, message.title, message.messageName),\n)\n\nconst description = computed(\n () =>\n resolvedMessage.value?.description || resolvedMessage.value?.summary || '',\n)\n\n/**\n * Protocol keys declared directly on the message's protocol-specific `bindings`\n * (for example `ws`, `kafka`). The bindings object may be a `$ref`, so it is resolved\n * before reading the keys. Keys are lowercased to match the server protocols (which the\n * helper normalizes), so the union below de-duplicates case-insensitively.\n */\nconst messageBindingProtocols = computed(() => {\n const bindings = resolvedMessage.value?.bindings\n if (!bindings) {\n return []\n }\n const resolved = getResolvedRef(bindings)\n return Object.entries(resolved)\n .filter(([, value]) => value != null)\n .map(([protocol]) => protocol.toLowerCase())\n})\n\n/**\n * Protocol labels for the message. A message is carried over whatever protocols its\n * channel's servers speak, so we start from the channel's server protocols and union in\n * any extra protocols the message declares its own bindings for. Without this a\n * multi-protocol message would only surface the single protocol it happens to declare a\n * binding for (or none at all).\n */\nconst protocolLabels = computed(() => {\n const channel = resolveAsyncApiChannel(document, message.channelName)\n const { protocols } = getChannelServerLabels(document, channel)\n return [...new Set([...protocols, ...messageBindingProtocols.value])]\n})\n\n/** Payload schema, unwrapped from `$ref`s and Multi Format Schema wrappers. */\nconst payloadSchema = computed(() =>\n resolvedMessage.value\n ? getAsyncApiMessagePayloadSchema(resolvedMessage.value)\n : undefined,\n)\n\n/** Header schema, unwrapped the same way as the payload. */\nconst headersSchema = computed(() =>\n resolvedMessage.value\n ? getAsyncApiMessageHeadersSchema(resolvedMessage.value)\n : undefined,\n)\n\n/** Fill in defaults so the shared Schema renderer always receives a complete options object. */\nconst schemaOptions = computed<SchemaOptions>(() => ({\n hideReadOnly: false,\n ...resolveSchemaRenderOptions(options),\n}))\n\n/**\n * Accordion open state. Kept locally so clicking the header always toggles\n * immediately, and seeded/synced from the shared sidebar expansion map so\n * expanding the message in the sidebar (or deep-linking to it) opens it here too.\n */\nconst isExpanded = ref(expandedItems[message.id] ?? false)\n\nwatch(\n () => expandedItems[message.id],\n (value) => {\n if (value !== undefined) {\n isExpanded.value = value\n }\n },\n)\n\n/** Toggling the accordion updates local state and keeps the sidebar in sync. */\nconst onToggle = (open: boolean) => {\n isExpanded.value = open\n eventBus?.emit('toggle:nav-item', { id: message.id, open })\n}\n</script>\n\n<template>\n <div\n :id=\"message.id\"\n ref=\"section\"\n class=\"message\">\n <SectionAccordion\n class=\"message-accordion\"\n :modelValue=\"isExpanded\"\n @update:modelValue=\"onToggle\">\n <template #title>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: message.id })\n \">\n <span class=\"message-heading\">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"message-title\"\n :level=\"4\">\n {{ headingText }}\n </SectionHeaderTag>\n <AsyncApiLabels :protocols=\"protocolLabels\" />\n </span>\n </Anchor>\n </template>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"message-description\"\n :value=\"description\"\n withImages />\n\n <div\n v-if=\"headersSchema\"\n class=\"message-schema\">\n <div class=\"message-schema-title\">Headers</div>\n <Schema\n compact\n :eventBus=\"eventBus\"\n name=\"Headers\"\n noncollapsible\n :options=\"schemaOptions\"\n :schema=\"headersSchema\" />\n </div>\n\n <div\n v-if=\"payloadSchema\"\n class=\"message-schema\">\n <div class=\"message-schema-title\">Payload</div>\n <Schema\n compact\n :eventBus=\"eventBus\"\n name=\"Payload\"\n noncollapsible\n :options=\"schemaOptions\"\n :schema=\"payloadSchema\" />\n </div>\n </SectionAccordion>\n </div>\n</template>\n\n<style scoped>\n.message {\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.message-title {\n font-size: var(--scalar-heading-4);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n/*\n * Lay the heading and protocol labels out on one wrapping row. The labels live inside the\n * Anchor slot so the copy-anchor \"#\" button (absolutely positioned just past the end of the\n * slot content on hover) trails after the last pill instead of overlapping the first one.\n */\n.message-heading {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n}\n/* Pad the expanded body so the description and schemas don't sit flush against the border. */\n.message-accordion :deep(.section-accordion-content-card) {\n padding: 12px;\n}\n.message-description {\n padding-bottom: 4px;\n text-align: left;\n}\n.message-schema {\n margin-top: 12px;\n}\n.message-schema:first-child {\n margin-top: 0;\n}\n.message-schema-title {\n font-size: var(--scalar-font-size-2);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n padding-bottom: 8px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n margin-bottom: 8px;\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"names":[],"mappings":"AA2KA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,4CAA4C,CAAA;AAOnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAMrF,gFAAgF;AAChF,KAAK,gBAAgB,GAAG,2BAA2B,CAAA;AAEnD,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,0BAA0B,CAAA;IACrC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,CAAC;AA0LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Operation.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"names":[],"mappings":"AAoLA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,4CAA4C,CAAA;AAQnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAOrF,gFAAgF;AAChF,KAAK,gBAAgB,GAAG,2BAA2B,CAAA;AAEnD,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,0BAA0B,CAAA;IACrC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACxC,CAAC;AAyMF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import Operation_vue_vue_type_script_setup_true_lang_default from "./Operation.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/AsyncApi/Operation.vue
5
- var Operation_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Operation_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ef35fcd1"]]);
5
+ var Operation_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Operation_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-91a717db"]]);
6
6
  //#endregion
7
7
  export { Operation_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.vue.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiMessage,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId, useTemplateRef } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { SectionHeaderTag } from '@/components/Section'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport type { AsyncApiSchemaRenderOptions } from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiOperation } from './helpers/resolve-async-api-nodes'\nimport Message from './Message.vue'\n\n/** Subset of the configuration the nested `Message`/`Schema` renderers need. */\ntype OperationOptions = AsyncApiSchemaRenderOptions\n\nconst {\n operation,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n operation: TraversedAsyncApiOperation\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<OperationOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: operation.id }),\n)\n\n/**\n * Resolve the operation from the document so we can read its summary/description.\n * Operation traits are merged in (matching the channel connection UI) so trait-only\n * fields render as part of the operation.\n */\nconst resolvedOperation = computed(() =>\n resolveAsyncApiOperation(document, operation.operationName),\n)\n\n/** Heading prefers title, then summary, then the operation map key. */\nconst headingText = computed(() =>\n pickHeading(\n resolvedOperation.value?.title,\n operation.title,\n operation.operationName,\n ),\n)\n\nconst description = computed(\n () =>\n resolvedOperation.value?.description ||\n resolvedOperation.value?.summary ||\n '',\n)\n\n/** Only the message children of this operation. */\nconst messages = computed(() =>\n filterChildrenByType<TraversedAsyncApiMessage>(\n operation.children,\n 'asyncapi-message',\n ),\n)\n</script>\n\n<template>\n <div\n :id=\"operation.id\"\n ref=\"section\"\n class=\"operation\"\n :class=\"`operation--${operation.action}`\">\n <div class=\"operation-header\">\n <span\n class=\"operation-action\"\n :class=\"`operation-action--${operation.action}`\">\n {{ operation.action }}\n </span>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: operation.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"operation-title\"\n :level=\"3\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"operation-description\"\n :value=\"description\"\n withImages />\n\n <Message\n v-for=\"message in messages\"\n :key=\"message.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :message=\"message\"\n :options=\"options\" />\n </div>\n</template>\n\n<style scoped>\n.operation {\n margin-top: 32px;\n scroll-margin-top: var(--refs-viewport-offset);\n}\n\n.operation-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.operation-title {\n font-size: var(--scalar-heading-3);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n\n/* Filled, color-coded pill carries the primary send/receive signal. */\n.operation-action {\n text-transform: uppercase;\n font-size: var(--scalar-mini);\n font-weight: var(--scalar-semibold);\n letter-spacing: 0.05em;\n border-radius: 12px;\n padding: 2px 8px;\n display: inline-flex;\n align-items: center;\n}\n.operation-action--send {\n color: var(--scalar-color-blue);\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 88%);\n}\n.operation-action--receive {\n color: var(--scalar-color-green);\n background: color-mix(in srgb, var(--scalar-color-green), transparent 88%);\n}\n\n.operation-description {\n text-align: left;\n margin-top: 4px;\n}\n/* Space the first message accordion away from the operation header/description. */\n.operation > :deep(.message) {\n margin-top: 12px;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Operation.vue.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiMessage,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId, useTemplateRef } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { SectionHeaderTag } from '@/components/Section'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport type { AsyncApiSchemaRenderOptions } from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { getAsyncApiRequiredSecurity } from './helpers/get-async-api-required-security'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiOperation } from './helpers/resolve-async-api-nodes'\nimport Message from './Message.vue'\n\n/** Subset of the configuration the nested `Message`/`Schema` renderers need. */\ntype OperationOptions = AsyncApiSchemaRenderOptions\n\nconst {\n operation,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n operation: TraversedAsyncApiOperation\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<OperationOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: operation.id }),\n)\n\n/**\n * Resolve the operation from the document so we can read its summary/description.\n * Operation traits are merged in (matching the channel connection UI) so trait-only\n * fields render as part of the operation.\n */\nconst resolvedOperation = computed(() =>\n resolveAsyncApiOperation(document, operation.operationName),\n)\n\n/** Heading prefers title, then summary, then the operation map key. */\nconst headingText = computed(() =>\n pickHeading(\n resolvedOperation.value?.title,\n operation.title,\n operation.operationName,\n ),\n)\n\nconst description = computed(\n () =>\n resolvedOperation.value?.description ||\n resolvedOperation.value?.summary ||\n '',\n)\n\n/** Only the message children of this operation. */\nconst messages = computed(() =>\n filterChildrenByType<TraversedAsyncApiMessage>(\n operation.children,\n 'asyncapi-message',\n ),\n)\n\n/** OAuth scopes required by this operation, rendered below the description. */\nconst requiredSecurity = computed(() =>\n getAsyncApiRequiredSecurity(document, resolvedOperation.value),\n)\n</script>\n\n<template>\n <div\n :id=\"operation.id\"\n ref=\"section\"\n class=\"operation\"\n :class=\"`operation--${operation.action}`\">\n <div class=\"operation-header\">\n <span\n class=\"operation-action\"\n :class=\"`operation-action--${operation.action}`\">\n {{ operation.action }}\n </span>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: operation.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"operation-title\"\n :level=\"3\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"operation-description\"\n :value=\"description\"\n withImages />\n\n <OperationScopes :requiredSecurity=\"requiredSecurity\" />\n\n <Message\n v-for=\"message in messages\"\n :key=\"message.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :message=\"message\"\n :options=\"options\" />\n </div>\n</template>\n\n<style scoped>\n.operation {\n margin-top: 32px;\n scroll-margin-top: var(--refs-viewport-offset);\n}\n\n.operation-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.operation-title {\n font-size: var(--scalar-heading-3);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n\n/* Filled, color-coded pill carries the primary send/receive signal. */\n.operation-action {\n text-transform: uppercase;\n font-size: var(--scalar-mini);\n font-weight: var(--scalar-semibold);\n letter-spacing: 0.05em;\n border-radius: 12px;\n padding: 2px 8px;\n display: inline-flex;\n align-items: center;\n}\n.operation-action--send {\n color: var(--scalar-color-blue);\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 88%);\n}\n.operation-action--receive {\n color: var(--scalar-color-green);\n background: color-mix(in srgb, var(--scalar-color-green), transparent 88%);\n}\n\n.operation-description {\n text-align: left;\n margin-top: 4px;\n}\n/* Space the first message accordion away from the operation header/description. */\n.operation > :deep(.message) {\n margin-top: 12px;\n}\n</style>\n"],"mappings":""}
@@ -4,13 +4,15 @@ import Anchor_default from "../../Anchor/Anchor.vue.js";
4
4
  import { filterChildrenByType } from "./helpers/filter-children-by-type.js";
5
5
  import { pickHeading } from "./helpers/pick-heading.js";
6
6
  import { resolveAsyncApiOperation } from "./helpers/resolve-async-api-nodes.js";
7
+ import OperationScopes_default from "../../../features/Operation/components/OperationScopes.vue.js";
8
+ import { getAsyncApiRequiredSecurity } from "./helpers/get-async-api-required-security.js";
7
9
  import Message_default from "./Message.vue.js";
8
10
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref, useId, useTemplateRef, withCtx } from "vue";
9
11
  import { ScalarMarkdown } from "@scalar/components/markdown";
10
12
  //#region src/components/Content/AsyncApi/Operation.vue?vue&type=script&setup=true&lang.ts
11
13
  var _hoisted_1 = ["id"];
12
14
  var _hoisted_2 = { class: "operation-header" };
13
- var Operation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
15
+ var Operation_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
14
16
  __name: "Operation",
15
17
  props: {
16
18
  operation: {},
@@ -34,6 +36,8 @@ var Operation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
34
36
  const description = computed(() => resolvedOperation.value?.description || resolvedOperation.value?.summary || "");
35
37
  /** Only the message children of this operation. */
36
38
  const messages = computed(() => filterChildrenByType(__props.operation.children, "asyncapi-message"));
39
+ /** OAuth scopes required by this operation, rendered below the description. */
40
+ const requiredSecurity = computed(() => getAsyncApiRequiredSecurity(__props.document, resolvedOperation.value));
37
41
  return (_ctx, _cache) => {
38
42
  return openBlock(), createElementBlock("div", {
39
43
  id: __props.operation.id,
@@ -58,6 +62,7 @@ var Operation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
58
62
  value: description.value,
59
63
  withImages: ""
60
64
  }, null, 8, ["value"])) : createCommentVNode("", true),
65
+ createVNode(OperationScopes_default, { requiredSecurity: requiredSecurity.value }, null, 8, ["requiredSecurity"]),
61
66
  (openBlock(true), createElementBlock(Fragment, null, renderList(messages.value, (message) => {
62
67
  return openBlock(), createBlock(Message_default, {
63
68
  key: message.id,
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiMessage,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId, useTemplateRef } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { SectionHeaderTag } from '@/components/Section'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport type { AsyncApiSchemaRenderOptions } from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiOperation } from './helpers/resolve-async-api-nodes'\nimport Message from './Message.vue'\n\n/** Subset of the configuration the nested `Message`/`Schema` renderers need. */\ntype OperationOptions = AsyncApiSchemaRenderOptions\n\nconst {\n operation,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n operation: TraversedAsyncApiOperation\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<OperationOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: operation.id }),\n)\n\n/**\n * Resolve the operation from the document so we can read its summary/description.\n * Operation traits are merged in (matching the channel connection UI) so trait-only\n * fields render as part of the operation.\n */\nconst resolvedOperation = computed(() =>\n resolveAsyncApiOperation(document, operation.operationName),\n)\n\n/** Heading prefers title, then summary, then the operation map key. */\nconst headingText = computed(() =>\n pickHeading(\n resolvedOperation.value?.title,\n operation.title,\n operation.operationName,\n ),\n)\n\nconst description = computed(\n () =>\n resolvedOperation.value?.description ||\n resolvedOperation.value?.summary ||\n '',\n)\n\n/** Only the message children of this operation. */\nconst messages = computed(() =>\n filterChildrenByType<TraversedAsyncApiMessage>(\n operation.children,\n 'asyncapi-message',\n ),\n)\n</script>\n\n<template>\n <div\n :id=\"operation.id\"\n ref=\"section\"\n class=\"operation\"\n :class=\"`operation--${operation.action}`\">\n <div class=\"operation-header\">\n <span\n class=\"operation-action\"\n :class=\"`operation-action--${operation.action}`\">\n {{ operation.action }}\n </span>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: operation.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"operation-title\"\n :level=\"3\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"operation-description\"\n :value=\"description\"\n withImages />\n\n <Message\n v-for=\"message in messages\"\n :key=\"message.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :message=\"message\"\n :options=\"options\" />\n </div>\n</template>\n\n<style scoped>\n.operation {\n margin-top: 32px;\n scroll-margin-top: var(--refs-viewport-offset);\n}\n\n.operation-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.operation-title {\n font-size: var(--scalar-heading-3);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n\n/* Filled, color-coded pill carries the primary send/receive signal. */\n.operation-action {\n text-transform: uppercase;\n font-size: var(--scalar-mini);\n font-weight: var(--scalar-semibold);\n letter-spacing: 0.05em;\n border-radius: 12px;\n padding: 2px 8px;\n display: inline-flex;\n align-items: center;\n}\n.operation-action--send {\n color: var(--scalar-color-blue);\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 88%);\n}\n.operation-action--receive {\n color: var(--scalar-color-green);\n background: color-mix(in srgb, var(--scalar-color-green), transparent 88%);\n}\n\n.operation-description {\n text-align: left;\n margin-top: 4px;\n}\n/* Space the first message accordion away from the operation header/description. */\n.operation > :deep(.message) {\n margin-top: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,WAAW,OAAM;EACvB,MAAM,UAAU,eAA4B,UAAS;AAErD,kBAAgB,eACd,QAAA,UAAU,KAAK,yBAAyB,EAAE,IAAI,QAAA,UAAU,IAAI,CAAC,CAC/D;;;;;;EAOA,MAAM,oBAAoB,eACxB,yBAAyB,QAAA,UAAU,QAAA,UAAU,cAAc,CAC7D;;EAGA,MAAM,cAAc,eAClB,YACE,kBAAkB,OAAO,OACzB,QAAA,UAAU,OACV,QAAA,UAAU,cACX,CACH;EAEA,MAAM,cAAc,eAEhB,kBAAkB,OAAO,eACzB,kBAAkB,OAAO,WACzB,GACJ;;EAGA,MAAM,WAAW,eACf,qBACE,QAAA,UAAU,UACV,mBACD,CACH;;uBAIE,mBAsCM,OAAA;IArCH,IAAI,QAAA,UAAU;aACX;IAAJ,KAAI;IACJ,OAAK,eAAA,CAAC,aAAW,cACK,QAAA,UAAU,SAAM,CAAA;;IACtC,mBAiBM,OAjBN,YAiBM,CAhBJ,mBAIO,QAAA,EAHL,OAAK,eAAA,CAAC,oBAAkB,qBACK,QAAA,UAAU,SAAM,CAAA,EAAA,EAAA,gBAC1C,QAAA,UAAU,OAAM,EAAA,EAAA,EAErB,YAUS,MAAA,eAAA,EAAA,EATN,iBAAa,OAAA,OAAA,OAAA,WAAmB,QAAA,UAAU,KAAI,qBAAA,EAAA,IAA4B,QAAA,UAAU,IAAE,CAAA,GAAA,EAAA;4BAQpE,CALnB,YAKmB,MAAA,yBAAA,EAAA;MAJhB,IAAI,MAAA,SAAQ;MACb,OAAM;MACL,OAAO;;6BACS,CAAA,gBAAA,gBAAd,YAAA,MAAW,EAAA,EAAA,CAAA,CAAA;;;;;IAMZ,YAAA,SAAA,WAAA,EADR,YAIe,MAAA,eAAA,EAAA;;KAFb,OAAM;KACL,OAAO,YAAA;KACR,YAAA;;sBAEF,mBAOuB,UAAA,MAAA,WANH,SAAA,QAAX,YAAO;yBADhB,YAOuB,iBAAA;MALpB,KAAK,QAAQ;MACb,UAAU,QAAA;MACV,UAAU,QAAA;MACV,eAAe,QAAA;MACN;MACT,SAAS,QAAA"}
1
+ {"version":3,"file":"Operation.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiMessage,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId, useTemplateRef } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { SectionHeaderTag } from '@/components/Section'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport type { AsyncApiSchemaRenderOptions } from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { getAsyncApiRequiredSecurity } from './helpers/get-async-api-required-security'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiOperation } from './helpers/resolve-async-api-nodes'\nimport Message from './Message.vue'\n\n/** Subset of the configuration the nested `Message`/`Schema` renderers need. */\ntype OperationOptions = AsyncApiSchemaRenderOptions\n\nconst {\n operation,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n operation: TraversedAsyncApiOperation\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<OperationOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: operation.id }),\n)\n\n/**\n * Resolve the operation from the document so we can read its summary/description.\n * Operation traits are merged in (matching the channel connection UI) so trait-only\n * fields render as part of the operation.\n */\nconst resolvedOperation = computed(() =>\n resolveAsyncApiOperation(document, operation.operationName),\n)\n\n/** Heading prefers title, then summary, then the operation map key. */\nconst headingText = computed(() =>\n pickHeading(\n resolvedOperation.value?.title,\n operation.title,\n operation.operationName,\n ),\n)\n\nconst description = computed(\n () =>\n resolvedOperation.value?.description ||\n resolvedOperation.value?.summary ||\n '',\n)\n\n/** Only the message children of this operation. */\nconst messages = computed(() =>\n filterChildrenByType<TraversedAsyncApiMessage>(\n operation.children,\n 'asyncapi-message',\n ),\n)\n\n/** OAuth scopes required by this operation, rendered below the description. */\nconst requiredSecurity = computed(() =>\n getAsyncApiRequiredSecurity(document, resolvedOperation.value),\n)\n</script>\n\n<template>\n <div\n :id=\"operation.id\"\n ref=\"section\"\n class=\"operation\"\n :class=\"`operation--${operation.action}`\">\n <div class=\"operation-header\">\n <span\n class=\"operation-action\"\n :class=\"`operation-action--${operation.action}`\">\n {{ operation.action }}\n </span>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: operation.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"operation-title\"\n :level=\"3\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"operation-description\"\n :value=\"description\"\n withImages />\n\n <OperationScopes :requiredSecurity=\"requiredSecurity\" />\n\n <Message\n v-for=\"message in messages\"\n :key=\"message.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :message=\"message\"\n :options=\"options\" />\n </div>\n</template>\n\n<style scoped>\n.operation {\n margin-top: 32px;\n scroll-margin-top: var(--refs-viewport-offset);\n}\n\n.operation-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.operation-title {\n font-size: var(--scalar-heading-3);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n\n/* Filled, color-coded pill carries the primary send/receive signal. */\n.operation-action {\n text-transform: uppercase;\n font-size: var(--scalar-mini);\n font-weight: var(--scalar-semibold);\n letter-spacing: 0.05em;\n border-radius: 12px;\n padding: 2px 8px;\n display: inline-flex;\n align-items: center;\n}\n.operation-action--send {\n color: var(--scalar-color-blue);\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 88%);\n}\n.operation-action--receive {\n color: var(--scalar-color-green);\n background: color-mix(in srgb, var(--scalar-color-green), transparent 88%);\n}\n\n.operation-description {\n text-align: left;\n margin-top: 4px;\n}\n/* Space the first message accordion away from the operation header/description. */\n.operation > :deep(.message) {\n margin-top: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAwCA,MAAM,WAAW,MAAM;EACvB,MAAM,UAAU,eAA4B,SAAS;EAErD,gBAAgB,eACd,QAAA,UAAU,KAAK,yBAAyB,EAAE,IAAI,QAAA,UAAU,GAAG,CAAC,CAC9D;;;;;;EAOA,MAAM,oBAAoB,eACxB,yBAAyB,QAAA,UAAU,QAAA,UAAU,aAAa,CAC5D;;EAGA,MAAM,cAAc,eAClB,YACE,kBAAkB,OAAO,OACzB,QAAA,UAAU,OACV,QAAA,UAAU,aACZ,CACF;EAEA,MAAM,cAAc,eAEhB,kBAAkB,OAAO,eACzB,kBAAkB,OAAO,WACzB,EACJ;;EAGA,MAAM,WAAW,eACf,qBACE,QAAA,UAAU,UACV,kBACF,CACF;;EAGA,MAAM,mBAAmB,eACvB,4BAA4B,QAAA,UAAU,kBAAkB,KAAK,CAC/D;;uBAIE,mBAwCM,OAAA;IAvCH,IAAI,QAAA,UAAU;aACX;IAAJ,KAAI;IACJ,OAAK,eAAA,CAAC,aAAW,cACK,QAAA,UAAU,QAAM,CAAA;;IACtC,mBAiBM,OAjBN,YAiBM,CAhBJ,mBAIO,QAAA,EAHL,OAAK,eAAA,CAAC,oBAAkB,qBACK,QAAA,UAAU,QAAM,CAAA,EAAA,GAAA,gBAC1C,QAAA,UAAU,MAAM,GAAA,CAAA,GAErB,YAUS,MAAA,cAAA,GAAA,EATN,iBAAa,OAAA,OAAA,OAAA,WAAmB,QAAA,UAAU,KAAI,qBAAA,EAAA,IAA4B,QAAA,UAAU,GAAE,CAAA,GAAA,GAAA;4BAQpE,CALnB,YAKmB,MAAA,wBAAA,GAAA;MAJhB,IAAI,MAAA,QAAA;MACL,OAAM;MACL,OAAO;;6BACS,CAAA,gBAAA,gBAAd,YAAA,KAAW,GAAA,CAAA,CAAA,CAAA;;;;;IAMZ,YAAA,SAAA,UAAA,GADR,YAIe,MAAA,cAAA,GAAA;;KAFb,OAAM;KACL,OAAO,YAAA;KACR,YAAA;;IAEF,YAAwD,yBAAA,EAAtC,kBAAkB,iBAAA,MAAgB,GAAA,MAAA,GAAA,CAAA,kBAAA,CAAA;sBAEpD,mBAOuB,UAAA,MAAA,WANH,SAAA,QAAX,YAAO;yBADhB,YAOuB,iBAAA;MALpB,KAAK,QAAQ;MACb,UAAU,QAAA;MACV,UAAU,QAAA;MACV,eAAe,QAAA;MACN;MACT,SAAS,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapt-async-api-parameters.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/adapt-async-api-parameters.ts"],"sourcesContent":["import type { AsyncApiChannelObject } from '@scalar/types/asyncapi/3.1'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { ParameterObject, SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\n/**\n * Adapt AsyncAPI channel parameters into the OpenAPI `ParameterObject` shape so we can reuse the\n * existing `ParameterList` rendering instead of building a separate component.\n *\n * AsyncAPI parameters are address placeholders (the `{param}` expressions in a channel address).\n * They are string-only and, because every placeholder in the address must be supplied, always\n * required. We therefore map them to `path` parameters (the closest OpenAPI analog) and fold the\n * `enum`, `default`, and `examples` fields onto a synthetic string schema so the schema renderer\n * can display them. The `location` runtime expression has no display equivalent and is dropped.\n */\nexport const adaptAsyncApiParameters = (parameters: AsyncApiChannelObject['parameters']): ParameterObject[] => {\n if (!parameters) {\n return []\n }\n\n return Object.entries(parameters).map(([name, value]) => {\n // Fall back to an empty object so an unresolved `$ref` still renders the parameter name.\n const parameter = getResolvedRef(value) ?? {}\n\n const schema: SchemaObject = { type: 'string' }\n if (parameter.enum) {\n schema.enum = parameter.enum\n }\n if (parameter.default !== undefined) {\n schema.default = parameter.default\n }\n if (parameter.examples) {\n schema.examples = parameter.examples\n }\n\n const result: ParameterObject = {\n name,\n in: 'path',\n required: true,\n schema,\n }\n if (parameter.description) {\n result.description = parameter.description\n }\n\n return result\n })\n}\n"],"mappings":";;;;;;;;;;;;AAcA,IAAa,2BAA2B,eAAuE;AAC7G,KAAI,CAAC,WACH,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,WAAW,CAAC,KAAK,CAAC,MAAM,WAAW;EAEvD,MAAM,YAAY,eAAe,MAAM,IAAI,EAAE;EAE7C,MAAM,SAAuB,EAAE,MAAM,UAAU;AAC/C,MAAI,UAAU,KACZ,QAAO,OAAO,UAAU;AAE1B,MAAI,UAAU,YAAY,KAAA,EACxB,QAAO,UAAU,UAAU;AAE7B,MAAI,UAAU,SACZ,QAAO,WAAW,UAAU;EAG9B,MAAM,SAA0B;GAC9B;GACA,IAAI;GACJ,UAAU;GACV;GACD;AACD,MAAI,UAAU,YACZ,QAAO,cAAc,UAAU;AAGjC,SAAO;GACP"}
1
+ {"version":3,"file":"adapt-async-api-parameters.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/adapt-async-api-parameters.ts"],"sourcesContent":["import type { AsyncApiChannelObject } from '@scalar/types/asyncapi/3.1'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { ParameterObject, SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\n/**\n * Adapt AsyncAPI channel parameters into the OpenAPI `ParameterObject` shape so we can reuse the\n * existing `ParameterList` rendering instead of building a separate component.\n *\n * AsyncAPI parameters are address placeholders (the `{param}` expressions in a channel address).\n * They are string-only and, because every placeholder in the address must be supplied, always\n * required. We therefore map them to `path` parameters (the closest OpenAPI analog) and fold the\n * `enum`, `default`, and `examples` fields onto a synthetic string schema so the schema renderer\n * can display them. The `location` runtime expression has no display equivalent and is dropped.\n */\nexport const adaptAsyncApiParameters = (parameters: AsyncApiChannelObject['parameters']): ParameterObject[] => {\n if (!parameters) {\n return []\n }\n\n return Object.entries(parameters).map(([name, value]) => {\n // Fall back to an empty object so an unresolved `$ref` still renders the parameter name.\n const parameter = getResolvedRef(value) ?? {}\n\n const schema: SchemaObject = { type: 'string' }\n if (parameter.enum) {\n schema.enum = parameter.enum\n }\n if (parameter.default !== undefined) {\n schema.default = parameter.default\n }\n if (parameter.examples) {\n schema.examples = parameter.examples\n }\n\n const result: ParameterObject = {\n name,\n in: 'path',\n required: true,\n schema,\n }\n if (parameter.description) {\n result.description = parameter.description\n }\n\n return result\n })\n}\n"],"mappings":";;;;;;;;;;;;AAcA,IAAa,2BAA2B,eAAuE;CAC7G,IAAI,CAAC,YACH,OAAO,CAAC;CAGV,OAAO,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;EAEvD,MAAM,YAAY,eAAe,KAAK,KAAK,CAAC;EAE5C,MAAM,SAAuB,EAAE,MAAM,SAAS;EAC9C,IAAI,UAAU,MACZ,OAAO,OAAO,UAAU;EAE1B,IAAI,UAAU,YAAY,KAAA,GACxB,OAAO,UAAU,UAAU;EAE7B,IAAI,UAAU,UACZ,OAAO,WAAW,UAAU;EAG9B,MAAM,SAA0B;GAC9B;GACA,IAAI;GACJ,UAAU;GACV;EACF;EACA,IAAI,UAAU,aACZ,OAAO,cAAc,UAAU;EAGjC,OAAO;CACT,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"async-api-render-options.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/async-api-render-options.ts"],"sourcesContent":["import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\n\n/**\n * Schema-ordering options shared by the AsyncAPI channel, operation, and message renderers.\n *\n * Each surface threads the same subset of the reference configuration through to the shared\n * `Schema`/`ParameterList` components, so they extend this type rather than re-declaring it.\n */\nexport type AsyncApiSchemaRenderOptions = Pick<\n ApiReferenceConfigurationRaw,\n 'orderRequiredPropertiesFirst' | 'orderSchemaPropertiesBy' | 'expandAllSchemaProperties'\n>\n\n/**\n * Fill in defaults so the shared renderers always receive a complete ordering options object,\n * regardless of which fields the caller provided.\n */\nexport const resolveSchemaRenderOptions = (\n options?: Partial<AsyncApiSchemaRenderOptions>,\n): AsyncApiSchemaRenderOptions => ({\n orderRequiredPropertiesFirst: options?.orderRequiredPropertiesFirst ?? false,\n orderSchemaPropertiesBy: options?.orderSchemaPropertiesBy ?? 'preserve',\n expandAllSchemaProperties: options?.expandAllSchemaProperties ?? false,\n})\n"],"mappings":";;;;;AAiBA,IAAa,8BACX,aACiC;CACjC,8BAA8B,SAAS,gCAAgC;CACvE,yBAAyB,SAAS,2BAA2B;CAC7D,2BAA2B,SAAS,6BAA6B;CAClE"}
1
+ {"version":3,"file":"async-api-render-options.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/async-api-render-options.ts"],"sourcesContent":["import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\n\n/**\n * Schema-ordering options shared by the AsyncAPI channel, operation, and message renderers.\n *\n * Each surface threads the same subset of the reference configuration through to the shared\n * `Schema`/`ParameterList` components, so they extend this type rather than re-declaring it.\n */\nexport type AsyncApiSchemaRenderOptions = Pick<\n ApiReferenceConfigurationRaw,\n 'orderRequiredPropertiesFirst' | 'orderSchemaPropertiesBy' | 'expandAllSchemaProperties'\n>\n\n/**\n * Fill in defaults so the shared renderers always receive a complete ordering options object,\n * regardless of which fields the caller provided.\n */\nexport const resolveSchemaRenderOptions = (\n options?: Partial<AsyncApiSchemaRenderOptions>,\n): AsyncApiSchemaRenderOptions => ({\n orderRequiredPropertiesFirst: options?.orderRequiredPropertiesFirst ?? false,\n orderSchemaPropertiesBy: options?.orderSchemaPropertiesBy ?? 'preserve',\n expandAllSchemaProperties: options?.expandAllSchemaProperties ?? false,\n})\n"],"mappings":";;;;;AAiBA,IAAa,8BACX,aACiC;CACjC,8BAA8B,SAAS,gCAAgC;CACvE,yBAAyB,SAAS,2BAA2B;CAC7D,2BAA2B,SAAS,6BAA6B;AACnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-children-by-type.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/filter-children-by-type.ts"],"sourcesContent":["import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation'\n\n/**\n * Narrow a navigation entry's children down to a single AsyncAPI node type.\n *\n * The channel renderer needs its operations and the operation renderer needs its messages; both\n * share this type-guarded filter so the cast lives in one place.\n */\nexport const filterChildrenByType = <T extends TraversedEntry>(\n children: TraversedEntry[] | undefined,\n type: T['type'],\n): T[] => (children ?? []).filter((child): child is T => child.type === type)\n"],"mappings":";;;;;;;AAQA,IAAa,wBACX,UACA,UACS,YAAY,EAAE,EAAE,QAAQ,UAAsB,MAAM,SAAS,KAAK"}
1
+ {"version":3,"file":"filter-children-by-type.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/filter-children-by-type.ts"],"sourcesContent":["import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation'\n\n/**\n * Narrow a navigation entry's children down to a single AsyncAPI node type.\n *\n * The channel renderer needs its operations and the operation renderer needs its messages; both\n * share this type-guarded filter so the cast lives in one place.\n */\nexport const filterChildrenByType = <T extends TraversedEntry>(\n children: TraversedEntry[] | undefined,\n type: T['type'],\n): T[] => (children ?? []).filter((child): child is T => child.type === type)\n"],"mappings":";;;;;;;AAQA,IAAa,wBACX,UACA,UACS,YAAY,CAAC,EAAA,CAAG,QAAQ,UAAsB,MAAM,SAAS,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-async-api-labels.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-labels.ts"],"sourcesContent":["import type { AsyncApiChannelObject, AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport { getAsyncApiServers } from '@scalar/workspace-store/channel-example'\n\n/**\n * Server names and protocols a channel is available on.\n *\n * Resolved from `document.servers`, restricted to `channel.servers` when the channel declares them.\n * `webSocketOnly` is disabled so labels cover every protocol, not just WebSocket, and protocols are\n * de-duplicated while preserving declaration order.\n */\nexport const getChannelServerLabels = (\n document: AsyncApiDocument,\n channel: AsyncApiChannelObject | null | undefined,\n): { servers: string[]; protocols: string[] } => {\n const entries = getAsyncApiServers(document, {\n channel: channel ?? null,\n webSocketOnly: false,\n })\n\n return {\n servers: entries.map((entry) => entry.name),\n protocols: [...new Set(entries.map((entry) => entry.protocol).filter(Boolean))],\n }\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,0BACX,UACA,YAC+C;CAC/C,MAAM,UAAU,mBAAmB,UAAU;EAC3C,SAAS,WAAW;EACpB,eAAe;EAChB,CAAC;AAEF,QAAO;EACL,SAAS,QAAQ,KAAK,UAAU,MAAM,KAAK;EAC3C,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,KAAK,UAAU,MAAM,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAC;EAChF"}
1
+ {"version":3,"file":"get-async-api-labels.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-labels.ts"],"sourcesContent":["import type { AsyncApiChannelObject, AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport { getAsyncApiServers } from '@scalar/workspace-store/channel-example'\n\n/**\n * Server names and protocols a channel is available on.\n *\n * Resolved from `document.servers`, restricted to `channel.servers` when the channel declares them.\n * `webSocketOnly` is disabled so labels cover every protocol, not just WebSocket, and protocols are\n * de-duplicated while preserving declaration order.\n */\nexport const getChannelServerLabels = (\n document: AsyncApiDocument,\n channel: AsyncApiChannelObject | null | undefined,\n): { servers: string[]; protocols: string[] } => {\n const entries = getAsyncApiServers(document, {\n channel: channel ?? null,\n webSocketOnly: false,\n })\n\n return {\n servers: entries.map((entry) => entry.name),\n protocols: [...new Set(entries.map((entry) => entry.protocol).filter(Boolean))],\n }\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,0BACX,UACA,YAC+C;CAC/C,MAAM,UAAU,mBAAmB,UAAU;EAC3C,SAAS,WAAW;EACpB,eAAe;CACjB,CAAC;CAED,OAAO;EACL,SAAS,QAAQ,KAAK,UAAU,MAAM,IAAI;EAC1C,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,KAAK,UAAU,MAAM,QAAQ,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC;CAChF;AACF"}
@@ -0,0 +1,17 @@
1
+ import type { AsyncApiDocument, AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1';
2
+ import { type RequiredSecurity } from '../../../../features/Operation/helpers/get-required-security.js';
3
+ /**
4
+ * Build the required-security model for an AsyncAPI operation so the shared
5
+ * `OperationScopes` section can render its OAuth / OpenID Connect scopes.
6
+ *
7
+ * AsyncAPI declares security on the operation (and its traits) as a list of scheme
8
+ * references carrying scopes. `getAsyncApiSecurityRequirements` normalises that into the
9
+ * same OR-alternative shape the OpenAPI path uses, so we hand it to `getRequiredSecurity`
10
+ * and reuse the exact grouping and de-duplication logic.
11
+ *
12
+ * Only the scopes are needed for this section, so the scheme objects are left unresolved
13
+ * (an empty component set). Server-level security is intentionally excluded: it belongs to
14
+ * the channel connection, not a single operation.
15
+ */
16
+ export declare const getAsyncApiRequiredSecurity: (document: AsyncApiDocument, operation: AsyncApiOperationObject | null | undefined) => RequiredSecurity;
17
+ //# sourceMappingURL=get-async-api-required-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-async-api-required-security.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-required-security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAG3F,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,oDAAoD,CAAA;AAE/G;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,GACtC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,GAAG,IAAI,GAAG,SAAS,KACpD,gBAIA,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { getRequiredSecurity } from "../../../../features/Operation/helpers/get-required-security.js";
2
+ import { getAsyncApiSecurityRequirements } from "@scalar/workspace-store/channel-example";
3
+ //#region src/components/Content/AsyncApi/helpers/get-async-api-required-security.ts
4
+ /**
5
+ * Build the required-security model for an AsyncAPI operation so the shared
6
+ * `OperationScopes` section can render its OAuth / OpenID Connect scopes.
7
+ *
8
+ * AsyncAPI declares security on the operation (and its traits) as a list of scheme
9
+ * references carrying scopes. `getAsyncApiSecurityRequirements` normalises that into the
10
+ * same OR-alternative shape the OpenAPI path uses, so we hand it to `getRequiredSecurity`
11
+ * and reuse the exact grouping and de-duplication logic.
12
+ *
13
+ * Only the scopes are needed for this section, so the scheme objects are left unresolved
14
+ * (an empty component set). Server-level security is intentionally excluded: it belongs to
15
+ * the channel connection, not a single operation.
16
+ */
17
+ var getAsyncApiRequiredSecurity = (document, operation) => getRequiredSecurity({ security: getAsyncApiSecurityRequirements(document, operation, null) }, { components: void 0 });
18
+ //#endregion
19
+ export { getAsyncApiRequiredSecurity };
20
+
21
+ //# sourceMappingURL=get-async-api-required-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-async-api-required-security.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-required-security.ts"],"sourcesContent":["import type { AsyncApiDocument, AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1'\nimport { getAsyncApiSecurityRequirements } from '@scalar/workspace-store/channel-example'\n\nimport { type RequiredSecurity, getRequiredSecurity } from '@/features/Operation/helpers/get-required-security'\n\n/**\n * Build the required-security model for an AsyncAPI operation so the shared\n * `OperationScopes` section can render its OAuth / OpenID Connect scopes.\n *\n * AsyncAPI declares security on the operation (and its traits) as a list of scheme\n * references carrying scopes. `getAsyncApiSecurityRequirements` normalises that into the\n * same OR-alternative shape the OpenAPI path uses, so we hand it to `getRequiredSecurity`\n * and reuse the exact grouping and de-duplication logic.\n *\n * Only the scopes are needed for this section, so the scheme objects are left unresolved\n * (an empty component set). Server-level security is intentionally excluded: it belongs to\n * the channel connection, not a single operation.\n */\nexport const getAsyncApiRequiredSecurity = (\n document: AsyncApiDocument,\n operation: AsyncApiOperationObject | null | undefined,\n): RequiredSecurity =>\n getRequiredSecurity(\n { security: getAsyncApiSecurityRequirements(document, operation, null) },\n { components: undefined },\n )\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,IAAa,+BACX,UACA,cAEA,oBACE,EAAE,UAAU,gCAAgC,UAAU,WAAW,IAAI,EAAE,GACvE,EAAE,YAAY,KAAA,EAAU,CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick-heading.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/pick-heading.ts"],"sourcesContent":["/**\n * Pick the first non-empty heading from a list of candidates.\n *\n * Each candidate is trimmed and the first one with content wins, so the AsyncAPI channel, operation,\n * and message renderers can share a single \"prefer the human-friendly title, then fall back to a\n * key\" chain instead of repeating the same `title?.trim() || fallback` logic. Returns an empty\n * string when every candidate is missing or blank.\n */\nexport const pickHeading = (...candidates: Array<string | undefined>): string => {\n for (const candidate of candidates) {\n const trimmed = candidate?.trim()\n if (trimmed) {\n return trimmed\n }\n }\n\n return ''\n}\n"],"mappings":";;;;;;;;;AAQA,IAAa,eAAe,GAAG,eAAkD;AAC/E,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,UAAU,WAAW,MAAM;AACjC,MAAI,QACF,QAAO;;AAIX,QAAO"}
1
+ {"version":3,"file":"pick-heading.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/pick-heading.ts"],"sourcesContent":["/**\n * Pick the first non-empty heading from a list of candidates.\n *\n * Each candidate is trimmed and the first one with content wins, so the AsyncAPI channel, operation,\n * and message renderers can share a single \"prefer the human-friendly title, then fall back to a\n * key\" chain instead of repeating the same `title?.trim() || fallback` logic. Returns an empty\n * string when every candidate is missing or blank.\n */\nexport const pickHeading = (...candidates: Array<string | undefined>): string => {\n for (const candidate of candidates) {\n const trimmed = candidate?.trim()\n if (trimmed) {\n return trimmed\n }\n }\n\n return ''\n}\n"],"mappings":";;;;;;;;;AAQA,IAAa,eAAe,GAAG,eAAkD;CAC/E,KAAK,MAAM,aAAa,YAAY;EAClC,MAAM,UAAU,WAAW,KAAK;EAChC,IAAI,SACF,OAAO;CAEX;CAEA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-async-api-nodes.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/resolve-async-api-nodes.ts"],"sourcesContent":["import type {\n AsyncApiChannelObject,\n AsyncApiDocument,\n AsyncApiMessageObject,\n AsyncApiOperationObject,\n} from '@scalar/types/asyncapi/3.1'\nimport { resolveOperationWithTraits } from '@scalar/workspace-store/channel-example'\nimport { getResolvedRef, mergeSiblingReferences } from '@scalar/workspace-store/helpers/get-resolved-ref'\n\n/**\n * Resolve a channel from the document by its `document.channels` key.\n *\n * Siblings are merged so keys declared alongside a `$ref` are kept rather than dropped, matching\n * how the rest of the OpenAPI/AsyncAPI rendering resolves references.\n */\nexport const resolveAsyncApiChannel = (\n document: AsyncApiDocument,\n channelName: string,\n): AsyncApiChannelObject | undefined => {\n const node = document.channels?.[channelName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve a message from the channel it lives on. The navigation entry only carries the identifying\n * keys, so we walk `document.channels[channelName].messages[messageName]`.\n */\nexport const resolveAsyncApiMessage = (\n document: AsyncApiDocument,\n channelName: string,\n messageName: string,\n): AsyncApiMessageObject | undefined => {\n const channel = resolveAsyncApiChannel(document, channelName)\n const node = channel?.messages?.[messageName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve an operation from the document by its `document.operations` key.\n *\n * Operation traits are merged in (matching the channel connection UI) so trait-only fields render\n * as part of the operation.\n */\nexport const resolveAsyncApiOperation = (\n document: AsyncApiDocument,\n operationName: string,\n): AsyncApiOperationObject | undefined => {\n const node = document.operations?.[operationName]\n return node ? resolveOperationWithTraits(getResolvedRef(node, mergeSiblingReferences)) : undefined\n}\n"],"mappings":";;;;;;;;;AAeA,IAAa,0BACX,UACA,gBACsC;CACtC,MAAM,OAAO,SAAS,WAAW;AACjC,QAAO,OAAO,eAAe,MAAM,uBAAuB,GAAG,KAAA;;;;;;AAO/D,IAAa,0BACX,UACA,aACA,gBACsC;CAEtC,MAAM,OADU,uBAAuB,UAAU,YAAY,EACvC,WAAW;AACjC,QAAO,OAAO,eAAe,MAAM,uBAAuB,GAAG,KAAA;;;;;;;;AAS/D,IAAa,4BACX,UACA,kBACwC;CACxC,MAAM,OAAO,SAAS,aAAa;AACnC,QAAO,OAAO,2BAA2B,eAAe,MAAM,uBAAuB,CAAC,GAAG,KAAA"}
1
+ {"version":3,"file":"resolve-async-api-nodes.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/resolve-async-api-nodes.ts"],"sourcesContent":["import type {\n AsyncApiChannelObject,\n AsyncApiDocument,\n AsyncApiMessageObject,\n AsyncApiOperationObject,\n} from '@scalar/types/asyncapi/3.1'\nimport { resolveOperationWithTraits } from '@scalar/workspace-store/channel-example'\nimport { getResolvedRef, mergeSiblingReferences } from '@scalar/workspace-store/helpers/get-resolved-ref'\n\n/**\n * Resolve a channel from the document by its `document.channels` key.\n *\n * Siblings are merged so keys declared alongside a `$ref` are kept rather than dropped, matching\n * how the rest of the OpenAPI/AsyncAPI rendering resolves references.\n */\nexport const resolveAsyncApiChannel = (\n document: AsyncApiDocument,\n channelName: string,\n): AsyncApiChannelObject | undefined => {\n const node = document.channels?.[channelName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve a message from the channel it lives on. The navigation entry only carries the identifying\n * keys, so we walk `document.channels[channelName].messages[messageName]`.\n */\nexport const resolveAsyncApiMessage = (\n document: AsyncApiDocument,\n channelName: string,\n messageName: string,\n): AsyncApiMessageObject | undefined => {\n const channel = resolveAsyncApiChannel(document, channelName)\n const node = channel?.messages?.[messageName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve an operation from the document by its `document.operations` key.\n *\n * Operation traits are merged in (matching the channel connection UI) so trait-only fields render\n * as part of the operation.\n */\nexport const resolveAsyncApiOperation = (\n document: AsyncApiDocument,\n operationName: string,\n): AsyncApiOperationObject | undefined => {\n const node = document.operations?.[operationName]\n return node ? resolveOperationWithTraits(getResolvedRef(node, mergeSiblingReferences)) : undefined\n}\n"],"mappings":";;;;;;;;;AAeA,IAAa,0BACX,UACA,gBACsC;CACtC,MAAM,OAAO,SAAS,WAAW;CACjC,OAAO,OAAO,eAAe,MAAM,sBAAsB,IAAI,KAAA;AAC/D;;;;;AAMA,IAAa,0BACX,UACA,aACA,gBACsC;CAEtC,MAAM,OADU,uBAAuB,UAAU,WACpC,CAAA,EAAS,WAAW;CACjC,OAAO,OAAO,eAAe,MAAM,sBAAsB,IAAI,KAAA;AAC/D;;;;;;;AAQA,IAAa,4BACX,UACA,kBACwC;CACxC,MAAM,OAAO,SAAS,aAAa;CACnC,OAAO,OAAO,2BAA2B,eAAe,MAAM,sBAAsB,CAAC,IAAI,KAAA;AAC3F"}
@@ -5,7 +5,7 @@ import { getSecurityRequirements, getSelectedSecurity } from "@scalar/workspace-
5
5
  import { getDocumentType, isAsyncApiDocument, isOpenApiDocument } from "@scalar/workspace-store/schemas/type-guards";
6
6
  import { AuthSelector } from "@scalar/api-client/blocks/scalar-auth-selector-block";
7
7
  //#region src/components/Content/Auth/Auth.vue?vue&type=script&setup=true&lang.ts
8
- var Auth_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var Auth_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
9
  __name: "Auth",
10
10
  props: {
11
11
  options: {},
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.script.js","names":[],"sources":["../../../../src/components/Content/Auth/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport { getAsyncApiDocumentSecurityRequirements } from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n type MergedSecuritySchemes,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\n\nconst { document, environment, eventBus, options, securitySchemes, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'oauth2RedirectUri' | 'persistAuth' | 'proxyUrl'\n >\n authStore: AuthStore\n document: WorkspaceDocument | undefined\n eventBus: WorkspaceEventBus\n securitySchemes: MergedSecuritySchemes\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\nconst { translate } = useLocalization()\n\n/**\n * Document name used to scope auth selections in the store. Both OpenAPI and AsyncAPI\n * documents persist it on `x-scalar-navigation.name`.\n */\nconst documentName = computed(() => {\n if (isOpenApiDocument(document) || isAsyncApiDocument(document)) {\n return document['x-scalar-navigation']?.name ?? ''\n }\n return ''\n})\n\n/** Document type used to label the missing-type warning (OpenAPI vs AsyncAPI). */\nconst documentType = computed(() => getDocumentType(document))\n\n/**\n * Compute what the security requirements should be for the document.\n *\n * AsyncAPI has no root-level `security`, so document-wide auth is derived from the union of\n * every server's security requirements.\n */\nconst securityRequirements = computed(() => {\n if (isAsyncApiDocument(document)) {\n return getAsyncApiDocumentSecurityRequirements(document)\n }\n return getSecurityRequirements(\n isOpenApiDocument(document) ? document.security : undefined,\n )\n})\n\n/** Grab the selected security for the document from the auth store */\nconst documentSelectedSecurity = computed(() =>\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: documentName.value,\n }),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n documentSelectedSecurity.value,\n undefined,\n securityRequirements.value,\n securitySchemes,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n</script>\n<template>\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :canDeleteSchemes=\"false\"\n :createAnySecurityScheme=\"\n options.authentication?.createAnySecurityScheme ?? false\n \"\n :documentType\n :environment\n :eventBus\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :options=\"{ oauth2RedirectUri: options.oauth2RedirectUri }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n :title=\"translate('authentication.title')\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAoCA,MAAM,EAAE,cAAc,iBAAgB;;;;;EAMtC,MAAM,eAAe,eAAe;AAClC,OAAI,kBAAkB,QAAA,SAAS,IAAI,mBAAmB,QAAA,SAAS,CAC7D,QAAO,QAAA,SAAS,wBAAwB,QAAQ;AAElD,UAAO;IACR;;EAGD,MAAM,eAAe,eAAe,gBAAgB,QAAA,SAAS,CAAA;;;;;;;EAQ7D,MAAM,uBAAuB,eAAe;AAC1C,OAAI,mBAAmB,QAAA,SAAS,CAC9B,QAAO,wCAAwC,QAAA,SAAQ;AAEzD,UAAO,wBACL,kBAAkB,QAAA,SAAS,GAAG,QAAA,SAAS,WAAW,KAAA,EACpD;IACD;;EAGD,MAAM,2BAA2B,eAC/B,QAAA,UAAU,uBAAuB;GAC/B,MAAM;GACN,cAAc,aAAa;GAC5B,CAAC,CACJ;;EAGA,MAAM,mBAAmB,eACvB,oBACE,yBAAyB,OACzB,KAAA,GACA,qBAAqB,OACrB,QAAA,iBACA,QAAA,QAAQ,gBAAgB,wBACzB,CACH;;UAIU,OAAO,KAAK,QAAA,gBAAe,CAAE,UAAA,WAAA,EADrC,YAmB+C,MAAA,aAAA,EAAA;;IAjB5C,kBAAkB;IAClB,yBAAgC,QAAA,QAAQ,gBAAgB,2BAAuB;IAG/E,cAAA,aAAA;IACA,aAAA,QAAA;IACA,UAAA,QAAA;IACD,UAAA;IACA,QAAO;IACN,MAAM,EAAA,MAAA,YAAoB;IAC1B,SAAO,EAAA,mBAAuB,QAAA,QAAQ,mBAAiB;IACvD,aAAa,QAAA,QAAQ;IACrB,UAAU,QAAA,QAAQ,YAAQ;IAC1B,sBAAA,qBAAA;IACA,iBAAA,QAAA;IACA,kBAAA,iBAAA;IACA,QAAQ,QAAA;IACR,OAAO,MAAA,UAAS,CAAA,uBAAA"}
1
+ {"version":3,"file":"Auth.vue.script.js","names":[],"sources":["../../../../src/components/Content/Auth/Auth.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { AuthSelector } from '@scalar/api-client/blocks/scalar-auth-selector-block'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport { getAsyncApiDocumentSecurityRequirements } from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSecurityRequirements,\n getSelectedSecurity,\n type MergedSecuritySchemes,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\n\nconst { document, environment, eventBus, options, securitySchemes, authStore } =\n defineProps<{\n options: Pick<\n ApiReferenceConfigurationRaw,\n 'authentication' | 'oauth2RedirectUri' | 'persistAuth' | 'proxyUrl'\n >\n authStore: AuthStore\n document: WorkspaceDocument | undefined\n eventBus: WorkspaceEventBus\n securitySchemes: MergedSecuritySchemes\n selectedServer: ServerObject | null\n environment: XScalarEnvironment\n }>()\nconst { translate } = useLocalization()\n\n/**\n * Document name used to scope auth selections in the store. Both OpenAPI and AsyncAPI\n * documents persist it on `x-scalar-navigation.name`.\n */\nconst documentName = computed(() => {\n if (isOpenApiDocument(document) || isAsyncApiDocument(document)) {\n return document['x-scalar-navigation']?.name ?? ''\n }\n return ''\n})\n\n/** Document type used to label the missing-type warning (OpenAPI vs AsyncAPI). */\nconst documentType = computed(() => getDocumentType(document))\n\n/**\n * Compute what the security requirements should be for the document.\n *\n * AsyncAPI has no root-level `security`, so document-wide auth is derived from the union of\n * every server's security requirements.\n */\nconst securityRequirements = computed(() => {\n if (isAsyncApiDocument(document)) {\n return getAsyncApiDocumentSecurityRequirements(document)\n }\n return getSecurityRequirements(\n isOpenApiDocument(document) ? document.security : undefined,\n )\n})\n\n/** Grab the selected security for the document from the auth store */\nconst documentSelectedSecurity = computed(() =>\n authStore.getAuthSelectedSchemas({\n type: 'document',\n documentName: documentName.value,\n }),\n)\n\n/** The selected security keys for the document */\nconst selectedSecurity = computed(() =>\n getSelectedSecurity(\n documentSelectedSecurity.value,\n undefined,\n securityRequirements.value,\n securitySchemes,\n options.authentication?.preferredSecurityScheme,\n ),\n)\n</script>\n<template>\n <AuthSelector\n v-if=\"Object.keys(securitySchemes).length\"\n :canDeleteSchemes=\"false\"\n :createAnySecurityScheme=\"\n options.authentication?.createAnySecurityScheme ?? false\n \"\n :documentType\n :environment\n :eventBus\n isStatic\n layout=\"reference\"\n :meta=\"{ type: 'document' }\"\n :options=\"{ oauth2RedirectUri: options.oauth2RedirectUri }\"\n :persistAuth=\"options.persistAuth\"\n :proxyUrl=\"options.proxyUrl ?? ''\"\n :securityRequirements\n :securitySchemes\n :selectedSecurity\n :server=\"selectedServer\"\n :title=\"translate('authentication.title')\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAoCA,MAAM,EAAE,cAAc,gBAAgB;;;;;EAMtC,MAAM,eAAe,eAAe;GAClC,IAAI,kBAAkB,QAAA,QAAQ,KAAK,mBAAmB,QAAA,QAAQ,GAC5D,OAAO,QAAA,SAAS,sBAAsB,EAAE,QAAQ;GAElD,OAAO;EACT,CAAC;;EAGD,MAAM,eAAe,eAAe,gBAAgB,QAAA,QAAQ,CAAC;;;;;;;EAQ7D,MAAM,uBAAuB,eAAe;GAC1C,IAAI,mBAAmB,QAAA,QAAQ,GAC7B,OAAO,wCAAwC,QAAA,QAAQ;GAEzD,OAAO,wBACL,kBAAkB,QAAA,QAAQ,IAAI,QAAA,SAAS,WAAW,KAAA,CACpD;EACF,CAAC;;EAGD,MAAM,2BAA2B,eAC/B,QAAA,UAAU,uBAAuB;GAC/B,MAAM;GACN,cAAc,aAAa;EAC7B,CAAC,CACH;;EAGA,MAAM,mBAAmB,eACvB,oBACE,yBAAyB,OACzB,KAAA,GACA,qBAAqB,OACrB,QAAA,iBACA,QAAA,QAAQ,gBAAgB,uBAC1B,CACF;;UAIU,OAAO,KAAK,QAAA,eAAe,CAAA,CAAE,UAAA,UAAA,GADrC,YAmB+C,MAAA,YAAA,GAAA;;IAjB5C,kBAAkB;IAClB,yBAAgC,QAAA,QAAQ,gBAAgB,2BAAuB;IAG/E,cAAA,aAAA;IACA,aAAA,QAAA;IACA,UAAA,QAAA;IACD,UAAA;IACA,QAAO;IACN,MAAM,EAAA,MAAA,WAAA;IACN,SAAO,EAAA,mBAAuB,QAAA,QAAQ,kBAAiB;IACvD,aAAa,QAAA,QAAQ;IACrB,UAAU,QAAA,QAAQ,YAAQ;IAC1B,sBAAA,qBAAA;IACA,iBAAA,QAAA;IACA,kBAAA,iBAAA;IACA,QAAQ,QAAA;IACR,OAAO,MAAA,SAAA,CAAS,CAAA,sBAAA"}
@@ -26,7 +26,7 @@ var _hoisted_2 = {
26
26
  key: 2,
27
27
  class: "h-dvh"
28
28
  };
29
- var Content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
29
+ var Content_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
30
30
  __name: "Content",
31
31
  props: {
32
32
  infoSectionId: {},