@scalar/api-reference 1.62.9 → 1.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +1 -1
  3. package/dist/blocks/index.d.ts +1 -0
  4. package/dist/blocks/index.d.ts.map +1 -1
  5. package/dist/blocks/index.js +3 -1
  6. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.d.ts.map +1 -1
  7. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +1 -1
  8. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js.map +1 -1
  9. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js.map +1 -1
  10. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.d.ts.map +1 -1
  11. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +1 -1
  12. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js.map +1 -1
  13. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js.map +1 -1
  14. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.d.ts.map +1 -1
  15. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js +1 -1
  16. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js.map +1 -1
  17. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js +4 -4
  18. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js.map +1 -1
  19. package/dist/browser/chunks/AgentScalarChatInterface-C8lX3RCo.js +27 -0
  20. package/dist/browser/chunks/ScalarTextInput.vue-Xf60Nwf-.js +27 -0
  21. package/dist/browser/chunks/basic-shape-diamond.svg-BTEOT1FL.js +1 -1
  22. package/dist/browser/chunks/basic-shape-hexagon.svg-BSPzaCgF.js +1 -1
  23. package/dist/browser/chunks/basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js +1 -1
  24. package/dist/browser/chunks/basic-shape-primary-square-rectangle.svg-n2YRykHD.js +1 -1
  25. package/dist/browser/chunks/basic-shape-shield.svg-Bec9cJDA.js +1 -1
  26. package/dist/browser/chunks/browser-67K6wmG9.js +1 -1
  27. package/dist/browser/chunks/computer-device-desktop-monitor.svg-m6j893Hb.js +1 -1
  28. package/dist/browser/chunks/computer-device-desktop.svg-Dk1VVO7k.js +1 -1
  29. package/dist/browser/chunks/computer-device-laptop.svg-BNGVUCYS.js +1 -1
  30. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js +1 -1
  31. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js +1 -1
  32. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js +1 -1
  33. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js +1 -1
  34. package/dist/browser/chunks/computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js +1 -1
  35. package/dist/browser/chunks/computer-device-mobile-tablet.svg-DCr0XlRc.js +1 -1
  36. package/dist/browser/chunks/computer-device-network-ethernet-cat6.svg-AK9l0iOl.js +1 -1
  37. package/dist/browser/chunks/computer-device-network-lan-www.svg-gUIdFBlE.js +1 -1
  38. package/dist/browser/chunks/computer-device-network-wifi-connection.svg-Be-EMm4e.js +1 -1
  39. package/dist/browser/chunks/computer-device-network-wifi-router.svg-Dc2VzyqK.js +1 -1
  40. package/dist/browser/chunks/ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js +1 -1
  41. package/dist/browser/chunks/image-flash-lightning.svg-EETR_y1q.js +1 -1
  42. package/dist/browser/chunks/image-picture-flower.svg-DN1AYzJU.js +1 -1
  43. package/dist/browser/chunks/interface-alert-exclamation-diamond.svg-C5NozMV_.js +1 -1
  44. package/dist/browser/chunks/interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js +1 -1
  45. package/dist/browser/chunks/interface-alert-information-circle.svg-ckkkt9Mv.js +1 -1
  46. package/dist/browser/chunks/interface-award-crown.svg-pjvn9hY-.js +1 -1
  47. package/dist/browser/chunks/interface-bookmark-tag.svg-r2r-lQq4.js +1 -1
  48. package/dist/browser/chunks/interface-bookmark.svg-BK9HKQBT.js +1 -1
  49. package/dist/browser/chunks/interface-calendar-date-one.svg-DNnF0M1I.js +1 -1
  50. package/dist/browser/chunks/interface-content-book-open-pages.svg-CQj_w9Vp.js +1 -1
  51. package/dist/browser/chunks/interface-content-book-page.svg-DppoeJRe.js +1 -1
  52. package/dist/browser/chunks/interface-content-file.svg-CvcD7OiY.js +1 -1
  53. package/dist/browser/chunks/interface-content-folder.svg-BmtS5I9A.js +1 -1
  54. package/dist/browser/chunks/interface-copy-clipboard.svg-Be6EI50X.js +1 -1
  55. package/dist/browser/chunks/interface-edit-attachment.svg-G5TKzpWX.js +1 -1
  56. package/dist/browser/chunks/interface-edit-binocular.svg-jzL-DvGB.js +1 -1
  57. package/dist/browser/chunks/interface-edit-magic-wand.svg-BOTlymvp.js +1 -1
  58. package/dist/browser/chunks/interface-edit-tool-paint-roller.svg-s9dwryx7.js +1 -1
  59. package/dist/browser/chunks/interface-edit-tool-pencil.svg-C7v0dbB3.js +1 -1
  60. package/dist/browser/chunks/interface-favorite-award.svg-CYHUgUG0.js +1 -1
  61. package/dist/browser/chunks/interface-favorite-flag.svg-C10zlKOb.js +1 -1
  62. package/dist/browser/chunks/interface-favorite-heart.svg-eoduXxlz.js +1 -1
  63. package/dist/browser/chunks/interface-favorite-star.svg-BSmxJetr.js +1 -1
  64. package/dist/browser/chunks/interface-favorite-stars-sparkles.svg-JTFLj3Ls.js +1 -1
  65. package/dist/browser/chunks/interface-hierarchy-flowchart.svg-Cg_Wy0kN.js +1 -1
  66. package/dist/browser/chunks/interface-home-house.svg-DytoGRnv.js +1 -1
  67. package/dist/browser/chunks/interface-hyperlink.svg-CuEfmmQI.js +1 -1
  68. package/dist/browser/chunks/interface-lighting-brightness.svg-DSK0h_Pa.js +1 -1
  69. package/dist/browser/chunks/interface-lock-closed.svg-Cn6TaLYv.js +1 -1
  70. package/dist/browser/chunks/interface-lock-open-unlock.svg-CVkG5-9W.js +1 -1
  71. package/dist/browser/chunks/interface-login-key.svg-y-cwwXjN.js +1 -1
  72. package/dist/browser/chunks/interface-search.svg-S-puVFJB.js +1 -1
  73. package/dist/browser/chunks/interface-setting-cog.svg-CTH4_lLg.js +1 -1
  74. package/dist/browser/chunks/interface-share-megaphone-bullhorn.svg-Pbp39MyC.js +1 -1
  75. package/dist/browser/chunks/interface-share-rocket.svg-BgCsIRZO.js +1 -1
  76. package/dist/browser/chunks/interface-share-satellite.svg-DAMN9d5G.js +1 -1
  77. package/dist/browser/chunks/interface-share-space-ship.svg-Dt-Mejxk.js +1 -1
  78. package/dist/browser/chunks/interface-share.svg-vFYTXSti.js +1 -1
  79. package/dist/browser/chunks/interface-signal-square.svg-DNG4LpAe.js +1 -1
  80. package/dist/browser/chunks/interface-time-clock-circle.svg-Bpz-nLxo.js +1 -1
  81. package/dist/browser/chunks/interface-time-hour-glass.svg-D7agfKsH.js +1 -1
  82. package/dist/browser/chunks/interface-users-multiple.svg-CkPJBBnG.js +1 -1
  83. package/dist/browser/chunks/interface-weather-moon.svg-CaTZFMPO.js +1 -1
  84. package/dist/browser/chunks/mail-chat-bubble-square.svg-DC8RIihp.js +1 -1
  85. package/dist/browser/chunks/mail-send-email-paper-airplane.svg-D8OLs9jz.js +1 -1
  86. package/dist/browser/chunks/mail-send-envelope.svg-CV33h5Sx.js +1 -1
  87. package/dist/browser/chunks/{modal-BVUfMpuv.js → modal-B8Opb61-.js} +2 -2
  88. package/dist/browser/chunks/modal-Dcl-Y2Zk.js +99 -0
  89. package/dist/browser/chunks/money-cashier-receipt.svg-CJL8C2gs.js +1 -1
  90. package/dist/browser/chunks/money-currency-dollar-pay.svg-VdBplCTx.js +1 -1
  91. package/dist/browser/chunks/money-graph-arrow-increase.svg-DcRov3zk.js +1 -1
  92. package/dist/browser/chunks/money-graph-bar-chart-increase.svg-Cc7KxjX-.js +1 -1
  93. package/dist/browser/chunks/nature-ecology-leaf.svg-DR3cTZxt.js +1 -1
  94. package/dist/browser/chunks/phone-telephone.svg-DyY0gUlk.js +1 -1
  95. package/dist/browser/chunks/programming-bug.svg-BHLT-Qhp.js +1 -1
  96. package/dist/browser/chunks/programming-cloud.svg-B6YW33ba.js +1 -1
  97. package/dist/browser/chunks/programming-computer-database-server.svg-B6o5Sdn-.js +1 -1
  98. package/dist/browser/chunks/programming-computer-database.svg-Cl7OVtpJ.js +1 -1
  99. package/dist/browser/chunks/programming-module-four-layout.svg-BQrerL1x.js +1 -1
  100. package/dist/browser/chunks/programming-module-three.svg-B2KTQzBM.js +1 -1
  101. package/dist/browser/chunks/programming-module.svg-CiID7kPm.js +1 -1
  102. package/dist/browser/chunks/programming-script-code.svg-D1M5rtkN.js +1 -1
  103. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +1 -1
  104. package/dist/browser/chunks/shopping-cart.svg-BEegiIR9.js +1 -1
  105. package/dist/browser/chunks/shopping-gift-present.svg-BUHwuLix.js +1 -1
  106. package/dist/browser/chunks/shopping-shipping-box-parcel-package.svg-D6fxWdYx.js +1 -1
  107. package/dist/browser/chunks/tag-new-circle.svg-jsg1bGs0.js +1 -1
  108. package/dist/browser/chunks/travel-map-earth-globe.svg-ClbMiU-f.js +1 -1
  109. package/dist/browser/chunks/vendor-CBP43oHJ.js +306 -0
  110. package/dist/browser/standalone.esm.js +24 -24
  111. package/dist/browser/standalone.js +308 -308
  112. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  113. package/dist/components/ApiReference.vue.js +1 -1
  114. package/dist/components/ApiReference.vue.js.map +1 -1
  115. package/dist/components/ApiReference.vue.script.js +94 -19
  116. package/dist/components/ApiReference.vue.script.js.map +1 -1
  117. package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
  118. package/dist/components/Badge/Badge.vue.js +1 -1
  119. package/dist/components/Badge/Badge.vue.js.map +1 -1
  120. package/dist/components/Badge/Badge.vue.script.js +8 -8
  121. package/dist/components/Badge/Badge.vue.script.js.map +1 -1
  122. package/dist/components/Content/AsyncApi/Operation.vue.d.ts.map +1 -1
  123. package/dist/components/Content/AsyncApi/Operation.vue.js +1 -1
  124. package/dist/components/Content/AsyncApi/Operation.vue.js.map +1 -1
  125. package/dist/components/Content/AsyncApi/Operation.vue.script.js +5 -0
  126. package/dist/components/Content/AsyncApi/Operation.vue.script.js.map +1 -1
  127. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts +17 -0
  128. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts.map +1 -0
  129. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js +21 -0
  130. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js.map +1 -0
  131. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  132. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  133. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +68 -33
  134. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  135. package/dist/components/Content/Schema/SchemaEnums.vue.d.ts.map +1 -1
  136. package/dist/components/Content/Schema/SchemaEnums.vue.js +1 -1
  137. package/dist/components/Content/Schema/SchemaEnums.vue.js.map +1 -1
  138. package/dist/components/Content/Schema/SchemaEnums.vue.script.js +15 -7
  139. package/dist/components/Content/Schema/SchemaEnums.vue.script.js.map +1 -1
  140. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  141. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +1 -1
  142. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js.map +1 -1
  143. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +30 -20
  144. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js.map +1 -1
  145. package/dist/components/Content/Schema/helpers/optimize-value-for-display.d.ts.map +1 -1
  146. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js +1 -4
  147. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js.map +1 -1
  148. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts +32 -0
  149. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts.map +1 -0
  150. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js +97 -0
  151. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js.map +1 -0
  152. package/dist/components/LinkList/LinkList.vue.js +1 -1
  153. package/dist/components/LinkList/LinkList.vue.js.map +1 -1
  154. package/dist/components/LinkList/LinkList.vue.script.js +1 -1
  155. package/dist/components/LinkList/LinkList.vue.script.js.map +1 -1
  156. package/dist/components/Section/CompactSection.vue.d.ts.map +1 -1
  157. package/dist/components/Section/CompactSection.vue.js +1 -1
  158. package/dist/components/Section/CompactSection.vue.js.map +1 -1
  159. package/dist/components/Section/CompactSection.vue.script.js +21 -5
  160. package/dist/components/Section/CompactSection.vue.script.js.map +1 -1
  161. package/dist/components/Section/SectionHeader.vue.d.ts.map +1 -1
  162. package/dist/components/Section/SectionHeader.vue.js +1 -1
  163. package/dist/components/Section/SectionHeader.vue.js.map +1 -1
  164. package/dist/components/Section/SectionHeader.vue.script.js +1 -1
  165. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  166. package/dist/features/Operation/Operation.vue.script.js +1 -1
  167. package/dist/features/Operation/components/OperationScopes.vue.d.ts +8 -0
  168. package/dist/features/Operation/components/OperationScopes.vue.d.ts.map +1 -0
  169. package/dist/features/Operation/components/OperationScopes.vue.js +7 -0
  170. package/dist/features/Operation/components/OperationScopes.vue.js.map +1 -0
  171. package/dist/features/Operation/components/OperationScopes.vue.script.js +60 -0
  172. package/dist/features/Operation/components/OperationScopes.vue.script.js.map +1 -0
  173. package/dist/features/Operation/components/SecurityRequirementBadge.vue.d.ts.map +1 -1
  174. package/dist/features/Operation/components/SecurityRequirementBadge.vue.js.map +1 -1
  175. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js +89 -16
  176. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js.map +1 -1
  177. package/dist/features/Operation/helpers/get-required-security.d.ts +13 -0
  178. package/dist/features/Operation/helpers/get-required-security.d.ts.map +1 -1
  179. package/dist/features/Operation/helpers/get-required-security.js +22 -1
  180. package/dist/features/Operation/helpers/get-required-security.js.map +1 -1
  181. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +1 -1
  182. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  183. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  184. package/dist/features/Operation/layouts/ClassicLayout.vue.js.map +1 -1
  185. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +15 -6
  186. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  187. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  188. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  189. package/dist/features/Operation/layouts/ModernLayout.vue.js.map +1 -1
  190. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +2 -0
  191. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  192. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.d.ts +2 -2
  193. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js +1 -1
  194. package/dist/features/external-docs/ExternalDocs.vue.d.ts.map +1 -1
  195. package/dist/features/external-docs/ExternalDocs.vue.js.map +1 -1
  196. package/dist/features/external-docs/ExternalDocs.vue.script.js +6 -6
  197. package/dist/features/external-docs/ExternalDocs.vue.script.js.map +1 -1
  198. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  199. package/dist/features/info-object/Contact.vue.js.map +1 -1
  200. package/dist/features/info-object/Contact.vue.script.js +8 -8
  201. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  202. package/dist/features/info-object/InfoLink.vue.d.ts.map +1 -1
  203. package/dist/features/info-object/InfoLink.vue.js.map +1 -1
  204. package/dist/features/info-object/InfoLink.vue.script.js +6 -6
  205. package/dist/features/info-object/InfoLink.vue.script.js.map +1 -1
  206. package/dist/features/info-object/License.vue.d.ts.map +1 -1
  207. package/dist/features/info-object/License.vue.js.map +1 -1
  208. package/dist/features/info-object/License.vue.script.js +2 -2
  209. package/dist/features/info-object/License.vue.script.js.map +1 -1
  210. package/dist/features/info-object/TermsOfService.vue.d.ts.map +1 -1
  211. package/dist/features/info-object/TermsOfService.vue.js.map +1 -1
  212. package/dist/features/info-object/TermsOfService.vue.script.js +2 -2
  213. package/dist/features/info-object/TermsOfService.vue.script.js.map +1 -1
  214. package/dist/features/localization/locales/ar.d.ts +1 -0
  215. package/dist/features/localization/locales/ar.d.ts.map +1 -1
  216. package/dist/features/localization/locales/ar.js +2 -1
  217. package/dist/features/localization/locales/ar.js.map +1 -1
  218. package/dist/features/localization/locales/de.d.ts +1 -0
  219. package/dist/features/localization/locales/de.d.ts.map +1 -1
  220. package/dist/features/localization/locales/de.js +2 -1
  221. package/dist/features/localization/locales/de.js.map +1 -1
  222. package/dist/features/localization/locales/en.d.ts +1 -0
  223. package/dist/features/localization/locales/en.d.ts.map +1 -1
  224. package/dist/features/localization/locales/en.js +2 -1
  225. package/dist/features/localization/locales/en.js.map +1 -1
  226. package/dist/features/localization/locales/es.d.ts +1 -0
  227. package/dist/features/localization/locales/es.d.ts.map +1 -1
  228. package/dist/features/localization/locales/es.js +2 -1
  229. package/dist/features/localization/locales/es.js.map +1 -1
  230. package/dist/features/localization/locales/fr.d.ts +1 -0
  231. package/dist/features/localization/locales/fr.d.ts.map +1 -1
  232. package/dist/features/localization/locales/fr.js +2 -1
  233. package/dist/features/localization/locales/fr.js.map +1 -1
  234. package/dist/features/localization/locales/ru.d.ts +1 -0
  235. package/dist/features/localization/locales/ru.d.ts.map +1 -1
  236. package/dist/features/localization/locales/ru.js +2 -1
  237. package/dist/features/localization/locales/ru.js.map +1 -1
  238. package/dist/features/localization/locales/zh-cn.d.ts +1 -0
  239. package/dist/features/localization/locales/zh-cn.d.ts.map +1 -1
  240. package/dist/features/localization/locales/zh-cn.js +2 -1
  241. package/dist/features/localization/locales/zh-cn.js.map +1 -1
  242. package/dist/features/localization/translations.d.ts +7 -0
  243. package/dist/features/localization/translations.d.ts.map +1 -1
  244. package/dist/helpers/storage.d.ts +21 -2
  245. package/dist/helpers/storage.d.ts.map +1 -1
  246. package/dist/standalone/lib/html-api.d.ts.map +1 -1
  247. package/dist/standalone/lib/html-api.js +11 -4
  248. package/dist/standalone/lib/html-api.js.map +1 -1
  249. package/dist/standalone/lib/load-plugins-from-urls.d.ts +13 -0
  250. package/dist/standalone/lib/load-plugins-from-urls.d.ts.map +1 -0
  251. package/dist/standalone/lib/load-plugins-from-urls.js +60 -0
  252. package/dist/standalone/lib/load-plugins-from-urls.js.map +1 -0
  253. package/dist/style.css +389 -351
  254. package/dist/styles/print.css +118 -0
  255. package/dist/styles/tailwind.config.css +16 -0
  256. package/dist/vue-styles.css +198 -224
  257. package/package.json +15 -15
  258. package/dist/browser/chunks/AgentScalarChatInterface-YU9KKgvZ.js +0 -27
  259. package/dist/browser/chunks/ScalarTextInput.vue-B-Nhpn0q.js +0 -27
  260. package/dist/browser/chunks/modal-WJ4Gcv8N.js +0 -99
  261. package/dist/browser/chunks/vendor-BqFs9NIb.js +0 -306
@@ -223,6 +223,7 @@ export declare const ru: {
223
223
  oneOf: string;
224
224
  required: string;
225
225
  requires: string;
226
+ scopes: string;
226
227
  };
227
228
  };
228
229
  //# sourceMappingURL=ru.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/ru.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuOqB,CAAA"}
1
+ {"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/ru.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwOqB,CAAA"}
@@ -217,7 +217,8 @@ var ru = {
217
217
  optional: "Аутентификация необязательна",
218
218
  oneOf: "одно из:",
219
219
  required: "Требуется аутентификация",
220
- requires: "Требуется"
220
+ requires: "Требуется",
221
+ scopes: "Области OAuth"
221
222
  }
222
223
  };
223
224
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ru.js","names":[],"sources":["../../../../src/features/localization/locales/ru.ts"],"sourcesContent":["import type { ApiReferenceTranslations } from '@scalar/types/api-reference'\n\nexport const ru = {\n common: {\n additionalProperties: 'дополнительные свойства',\n const: 'константа',\n deprecated: 'устарело',\n description: 'Описание',\n discriminator: 'Дискриминатор',\n enum: 'enum',\n format: 'Формат',\n greaterThan: 'больше чем',\n httpMethod: 'HTTP-метод',\n keys: 'ключи',\n lessThan: 'меньше чем',\n max: 'макс.',\n min: 'мин.',\n maxLength: 'макс. длина',\n minLength: 'мин. длина',\n multipleOf: 'кратно',\n nullable: 'может быть null',\n path: 'Путь',\n propertyNames: 'имена свойств',\n pattern: 'Шаблон',\n readOnly: 'только чтение',\n required: 'обязательно',\n hideValues: 'Скрыть значения',\n showAllValues: 'Показать все значения',\n type: 'Тип',\n unique: 'уникально',\n values: 'значения',\n writeOnly: 'только запись',\n },\n search: {\n label: 'Поиск',\n inputLabel: 'Введите поисковый запрос',\n open: 'Открыть поиск',\n placeholder: 'Поиск...',\n clear: 'Очистить поиск',\n keyboardShortcut: 'Сочетание клавиш:',\n command: 'Command',\n control: 'Control',\n results: 'Результаты поиска по документации',\n navigate: 'Навигация',\n select: 'Выбрать',\n instructions:\n 'Нажмите стрелку вверх или вниз для навигации, Enter для выбора, вводите текст для фильтрации результатов',\n entryHeading: 'Заголовок',\n entryOperation: 'Операция',\n entryTag: 'Тег',\n entryTagGroup: 'Группа тегов',\n entryWebhook: 'Вебхук',\n },\n navigation: {\n introduction: 'Введение',\n closeGroup: 'Закрыть группу',\n closeMenu: 'Закрыть меню',\n openGroup: 'Открыть группу',\n openMenu: 'Открыть меню',\n operations: 'Операции',\n endpoints: 'Эндпоинты {name}',\n showAllEndpoints: 'Показать все эндпоинты {name}',\n sidebarFor: 'Боковая панель для {name}',\n mainContent: 'Документация API для {name}',\n collapsed: 'Свернуто',\n webhooks: 'Вебхуки',\n channels: 'Каналы',\n },\n server: {\n label: 'Сервер',\n select: 'Выберите сервер',\n },\n info: {\n termsOfService: 'Условия использования',\n },\n asyncapi: {\n servers: 'Серверы',\n protocols: 'Протоколы',\n },\n clientLibraries: {\n heading: 'Клиентские библиотеки',\n more: 'Ещё',\n selectAll: 'Выбрать из всех клиентов',\n },\n operation: {\n body: 'Тело',\n cookies: 'Cookie',\n headers: 'Заголовки',\n pathParameters: 'Параметры пути',\n queryParameters: 'Query-параметры',\n requestBody: 'Тело запроса',\n responses: 'Ответы',\n testRequest: 'Проверить запрос',\n webhook: 'Вебхук',\n selectedContentType: 'Выбранный тип содержимого',\n hideHeaders: 'Скрыть заголовки',\n showHeaders: 'Показать заголовки',\n callbacks: 'Обратные вызовы',\n },\n response: {\n exampleResponses: 'Примеры ответов',\n noBody: 'Нет тела',\n showSchema: 'Показать схему',\n status: 'Статус',\n },\n schema: {\n example: 'Пример',\n examples: 'Примеры',\n default: 'Значение по умолчанию',\n schema: 'Схема',\n emptyObject: 'Пустой объект',\n showAdditionalProperties: 'Показать дополнительные свойства',\n childAttributes: 'Дочерние атрибуты',\n hideChildAttributes: 'Скрыть {name}',\n showChildAttributes: 'Показать {name}',\n forName: 'для {name}',\n showSchemaDetails: 'Показать детали схемы',\n oneOf: 'Один из',\n anyOf: 'Любой из',\n allOf: 'Все из',\n not: 'Не',\n unknownType: 'неизвестный тип',\n },\n download: {\n openapi: 'Скачать OpenAPI-документ',\n asyncapi: 'Скачать AsyncAPI-документ',\n },\n models: {\n label: 'Модели',\n },\n actions: {\n copyLink: 'Скопировать ссылку',\n copyLinkTo: 'Скопировать ссылку на {name}',\n copyToClipboard: 'Скопировать ссылку в буфер обмена',\n copyEndpointUrl: 'Скопировать URL endpoint-а',\n showMore: 'Показать ещё',\n },\n agent: {\n askAi: 'Спросить AI',\n askAiAgent: 'Спросить AI-агента',\n close: 'Закрыть клиент',\n },\n mcp: {\n generate: 'Создать MCP',\n connect: 'Подключить MCP',\n },\n developerTools: {\n title: 'Инструменты разработчика',\n configure: 'Настроить',\n share: 'Поделиться',\n deploy: 'Опубликовать',\n scalarConfiguration: 'Конфигурация Scalar',\n theme: 'Тема',\n layout: 'Макет',\n layoutOptions: 'Параметры макета',\n intro:\n 'Инструменты разработчика позволяют настроить внешний вид и поведение документации. Также можно поделиться документацией через Scalar Registry.',\n disableToolbarBefore: 'Чтобы отключить панель, установите',\n disableToolbarAfter: 'в конфигурации.',\n localhostOnly: 'Инструменты разработчика отображаются только при запуске на localhost.',\n layoutModern: 'Современный',\n layoutClassic: 'Классический',\n showSidebar: 'Показать боковую панель',\n defaultOpenFirstTag: 'Открывать первый тег по умолчанию',\n defaultOpenAllTags: 'Открывать все теги по умолчанию',\n expandAll: 'Развернуть все {label}',\n expandAllResponses: 'Развернуть все ответы',\n hideClientButton: 'Скрыть кнопку клиента',\n hideDarkModeToggle: 'Скрыть переключатель тёмной темы',\n hideModels: 'Скрыть {label}',\n hideSearch: 'Скрыть поиск',\n showOperationId: 'Показать ID операции',\n hideTestRequestButton: 'Скрыть кнопку тестового запроса',\n scalarDocs: 'Scalar Docs',\n deployDescription:\n 'Опубликуйте документацию на Scalar — современной платформе документации для вашего API и не только.',\n shareTitle: 'Поделиться API Reference',\n shareDescription:\n 'Загрузите документ OpenAPI, чтобы поделиться API Reference с другими. Так же просто, как нажать кнопку.',\n uploadDocument: 'Загрузить документ',\n temporaryLinkExpiration: 'Документ будет автоматически удалён через 7 дней.',\n deployOnScalar: 'Опубликовать на Scalar',\n deployFree: 'Опубликуйте документацию бесплатно.',\n additionalFeaturesMightRequire: 'Для дополнительных возможностей может потребоваться',\n generate: 'Создать',\n passwordProtection: 'Защита паролем',\n customDomains: 'Пользовательские домены',\n freeFormContent: 'Произвольный контент',\n cdnInfrastructure: 'CDN-инфраструктура',\n pullFromGitHub: 'Загрузка из GitHub',\n markdownMdx: 'Markdown/MDX',\n spectralLinting: 'Линтинг Spectral',\n jsonSchemaHosting: 'Хостинг JSON Schema',\n askAi: 'Спросить AI',\n mcpServers: 'MCP-серверы',\n unableToExportDocument: 'Не удалось экспортировать активный документ',\n unknownError: 'Произошла неизвестная ошибка',\n },\n gettingStarted: {\n swaggerEditor: 'Swagger Editor',\n description:\n 'Добро пожаловать в Scalar API References + Swagger Editor — бесплатный инструмент с открытым исходным кодом, который принимает файл Swagger/OAS и создаёт красивые API Reference.',\n showExample: 'Показать пример',\n uploadFile: 'Загрузить файл',\n integrations: 'ИНТЕГРАЦИИ',\n theming: 'ТЕМЫ',\n features: 'Возможности',\n customize: 'Настройка',\n customizeDescription: 'Используйте свою типографику и цветовые палитры или наши темы!',\n testing: 'Тестирование',\n testingDescription: 'Глубоко интегрированный REST API Client (тоже бесплатный и с открытым исходным кодом)',\n search: 'Поиск',\n searchDescription: 'Полностью интегрированный поиск (с использованием fuse.js)',\n hosting: 'Хостинг',\n hostingDescription: 'Бесплатный хостинг на поддомене https://apidocumentation.com',\n openApiSwagger: 'OpenAPI и Swagger',\n openApiSwaggerDescription: 'Поддержка OpenAPI 3.1, OpenAPI 3.0 и Swagger 2.0',\n codeSamples: 'Примеры кода',\n codeSamplesDescription: 'Примеры кода для демонстрации вашего API на самых популярных языках',\n },\n footer: {\n poweredByScalar: 'Работает на Scalar',\n },\n authentication: {\n title: 'Аутентификация',\n accepts: 'Принимает',\n allOf: 'все из:',\n authentication: 'аутентификация',\n optional: 'Аутентификация необязательна',\n oneOf: 'одно из:',\n required: 'Требуется аутентификация',\n requires: 'Требуется',\n },\n} satisfies ApiReferenceTranslations\n"],"mappings":"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"}
1
+ {"version":3,"file":"ru.js","names":[],"sources":["../../../../src/features/localization/locales/ru.ts"],"sourcesContent":["import type { ApiReferenceTranslations } from '@scalar/types/api-reference'\n\nexport const ru = {\n common: {\n additionalProperties: 'дополнительные свойства',\n const: 'константа',\n deprecated: 'устарело',\n description: 'Описание',\n discriminator: 'Дискриминатор',\n enum: 'enum',\n format: 'Формат',\n greaterThan: 'больше чем',\n httpMethod: 'HTTP-метод',\n keys: 'ключи',\n lessThan: 'меньше чем',\n max: 'макс.',\n min: 'мин.',\n maxLength: 'макс. длина',\n minLength: 'мин. длина',\n multipleOf: 'кратно',\n nullable: 'может быть null',\n path: 'Путь',\n propertyNames: 'имена свойств',\n pattern: 'Шаблон',\n readOnly: 'только чтение',\n required: 'обязательно',\n hideValues: 'Скрыть значения',\n showAllValues: 'Показать все значения',\n type: 'Тип',\n unique: 'уникально',\n values: 'значения',\n writeOnly: 'только запись',\n },\n search: {\n label: 'Поиск',\n inputLabel: 'Введите поисковый запрос',\n open: 'Открыть поиск',\n placeholder: 'Поиск...',\n clear: 'Очистить поиск',\n keyboardShortcut: 'Сочетание клавиш:',\n command: 'Command',\n control: 'Control',\n results: 'Результаты поиска по документации',\n navigate: 'Навигация',\n select: 'Выбрать',\n instructions:\n 'Нажмите стрелку вверх или вниз для навигации, Enter для выбора, вводите текст для фильтрации результатов',\n entryHeading: 'Заголовок',\n entryOperation: 'Операция',\n entryTag: 'Тег',\n entryTagGroup: 'Группа тегов',\n entryWebhook: 'Вебхук',\n },\n navigation: {\n introduction: 'Введение',\n closeGroup: 'Закрыть группу',\n closeMenu: 'Закрыть меню',\n openGroup: 'Открыть группу',\n openMenu: 'Открыть меню',\n operations: 'Операции',\n endpoints: 'Эндпоинты {name}',\n showAllEndpoints: 'Показать все эндпоинты {name}',\n sidebarFor: 'Боковая панель для {name}',\n mainContent: 'Документация API для {name}',\n collapsed: 'Свернуто',\n webhooks: 'Вебхуки',\n channels: 'Каналы',\n },\n server: {\n label: 'Сервер',\n select: 'Выберите сервер',\n },\n info: {\n termsOfService: 'Условия использования',\n },\n asyncapi: {\n servers: 'Серверы',\n protocols: 'Протоколы',\n },\n clientLibraries: {\n heading: 'Клиентские библиотеки',\n more: 'Ещё',\n selectAll: 'Выбрать из всех клиентов',\n },\n operation: {\n body: 'Тело',\n cookies: 'Cookie',\n headers: 'Заголовки',\n pathParameters: 'Параметры пути',\n queryParameters: 'Query-параметры',\n requestBody: 'Тело запроса',\n responses: 'Ответы',\n testRequest: 'Проверить запрос',\n webhook: 'Вебхук',\n selectedContentType: 'Выбранный тип содержимого',\n hideHeaders: 'Скрыть заголовки',\n showHeaders: 'Показать заголовки',\n callbacks: 'Обратные вызовы',\n },\n response: {\n exampleResponses: 'Примеры ответов',\n noBody: 'Нет тела',\n showSchema: 'Показать схему',\n status: 'Статус',\n },\n schema: {\n example: 'Пример',\n examples: 'Примеры',\n default: 'Значение по умолчанию',\n schema: 'Схема',\n emptyObject: 'Пустой объект',\n showAdditionalProperties: 'Показать дополнительные свойства',\n childAttributes: 'Дочерние атрибуты',\n hideChildAttributes: 'Скрыть {name}',\n showChildAttributes: 'Показать {name}',\n forName: 'для {name}',\n showSchemaDetails: 'Показать детали схемы',\n oneOf: 'Один из',\n anyOf: 'Любой из',\n allOf: 'Все из',\n not: 'Не',\n unknownType: 'неизвестный тип',\n },\n download: {\n openapi: 'Скачать OpenAPI-документ',\n asyncapi: 'Скачать AsyncAPI-документ',\n },\n models: {\n label: 'Модели',\n },\n actions: {\n copyLink: 'Скопировать ссылку',\n copyLinkTo: 'Скопировать ссылку на {name}',\n copyToClipboard: 'Скопировать ссылку в буфер обмена',\n copyEndpointUrl: 'Скопировать URL endpoint-а',\n showMore: 'Показать ещё',\n },\n agent: {\n askAi: 'Спросить AI',\n askAiAgent: 'Спросить AI-агента',\n close: 'Закрыть клиент',\n },\n mcp: {\n generate: 'Создать MCP',\n connect: 'Подключить MCP',\n },\n developerTools: {\n title: 'Инструменты разработчика',\n configure: 'Настроить',\n share: 'Поделиться',\n deploy: 'Опубликовать',\n scalarConfiguration: 'Конфигурация Scalar',\n theme: 'Тема',\n layout: 'Макет',\n layoutOptions: 'Параметры макета',\n intro:\n 'Инструменты разработчика позволяют настроить внешний вид и поведение документации. Также можно поделиться документацией через Scalar Registry.',\n disableToolbarBefore: 'Чтобы отключить панель, установите',\n disableToolbarAfter: 'в конфигурации.',\n localhostOnly: 'Инструменты разработчика отображаются только при запуске на localhost.',\n layoutModern: 'Современный',\n layoutClassic: 'Классический',\n showSidebar: 'Показать боковую панель',\n defaultOpenFirstTag: 'Открывать первый тег по умолчанию',\n defaultOpenAllTags: 'Открывать все теги по умолчанию',\n expandAll: 'Развернуть все {label}',\n expandAllResponses: 'Развернуть все ответы',\n hideClientButton: 'Скрыть кнопку клиента',\n hideDarkModeToggle: 'Скрыть переключатель тёмной темы',\n hideModels: 'Скрыть {label}',\n hideSearch: 'Скрыть поиск',\n showOperationId: 'Показать ID операции',\n hideTestRequestButton: 'Скрыть кнопку тестового запроса',\n scalarDocs: 'Scalar Docs',\n deployDescription:\n 'Опубликуйте документацию на Scalar — современной платформе документации для вашего API и не только.',\n shareTitle: 'Поделиться API Reference',\n shareDescription:\n 'Загрузите документ OpenAPI, чтобы поделиться API Reference с другими. Так же просто, как нажать кнопку.',\n uploadDocument: 'Загрузить документ',\n temporaryLinkExpiration: 'Документ будет автоматически удалён через 7 дней.',\n deployOnScalar: 'Опубликовать на Scalar',\n deployFree: 'Опубликуйте документацию бесплатно.',\n additionalFeaturesMightRequire: 'Для дополнительных возможностей может потребоваться',\n generate: 'Создать',\n passwordProtection: 'Защита паролем',\n customDomains: 'Пользовательские домены',\n freeFormContent: 'Произвольный контент',\n cdnInfrastructure: 'CDN-инфраструктура',\n pullFromGitHub: 'Загрузка из GitHub',\n markdownMdx: 'Markdown/MDX',\n spectralLinting: 'Линтинг Spectral',\n jsonSchemaHosting: 'Хостинг JSON Schema',\n askAi: 'Спросить AI',\n mcpServers: 'MCP-серверы',\n unableToExportDocument: 'Не удалось экспортировать активный документ',\n unknownError: 'Произошла неизвестная ошибка',\n },\n gettingStarted: {\n swaggerEditor: 'Swagger Editor',\n description:\n 'Добро пожаловать в Scalar API References + Swagger Editor — бесплатный инструмент с открытым исходным кодом, который принимает файл Swagger/OAS и создаёт красивые API Reference.',\n showExample: 'Показать пример',\n uploadFile: 'Загрузить файл',\n integrations: 'ИНТЕГРАЦИИ',\n theming: 'ТЕМЫ',\n features: 'Возможности',\n customize: 'Настройка',\n customizeDescription: 'Используйте свою типографику и цветовые палитры или наши темы!',\n testing: 'Тестирование',\n testingDescription: 'Глубоко интегрированный REST API Client (тоже бесплатный и с открытым исходным кодом)',\n search: 'Поиск',\n searchDescription: 'Полностью интегрированный поиск (с использованием fuse.js)',\n hosting: 'Хостинг',\n hostingDescription: 'Бесплатный хостинг на поддомене https://apidocumentation.com',\n openApiSwagger: 'OpenAPI и Swagger',\n openApiSwaggerDescription: 'Поддержка OpenAPI 3.1, OpenAPI 3.0 и Swagger 2.0',\n codeSamples: 'Примеры кода',\n codeSamplesDescription: 'Примеры кода для демонстрации вашего API на самых популярных языках',\n },\n footer: {\n poweredByScalar: 'Работает на Scalar',\n },\n authentication: {\n title: 'Аутентификация',\n accepts: 'Принимает',\n allOf: 'все из:',\n authentication: 'аутентификация',\n optional: 'Аутентификация необязательна',\n oneOf: 'одно из:',\n required: 'Требуется аутентификация',\n requires: 'Требуется',\n scopes: 'Области OAuth',\n },\n} satisfies ApiReferenceTranslations\n"],"mappings":"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"}
@@ -223,6 +223,7 @@ export declare const zhCn: {
223
223
  oneOf: string;
224
224
  required: string;
225
225
  requires: string;
226
+ scopes: string;
226
227
  };
227
228
  };
228
229
  //# sourceMappingURL=zh-cn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zh-cn.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/zh-cn.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmOmB,CAAA"}
1
+ {"version":3,"file":"zh-cn.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/zh-cn.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoOmB,CAAA"}
@@ -217,7 +217,8 @@ var zhCn = {
217
217
  optional: "身份认证可选",
218
218
  oneOf: "其中之一:",
219
219
  required: "需要身份认证",
220
- requires: "需要"
220
+ requires: "需要",
221
+ scopes: "OAuth 作用域"
221
222
  }
222
223
  };
223
224
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"zh-cn.js","names":[],"sources":["../../../../src/features/localization/locales/zh-cn.ts"],"sourcesContent":["import type { ApiReferenceTranslations } from '@scalar/types/api-reference'\n\nexport const zhCn = {\n common: {\n additionalProperties: '附加属性',\n const: '常量',\n deprecated: '已弃用',\n description: '描述',\n discriminator: '鉴别器',\n enum: '枚举',\n format: '格式',\n greaterThan: '大于',\n httpMethod: 'HTTP 方法',\n keys: '键',\n lessThan: '小于',\n max: '最大值',\n min: '最小值',\n maxLength: '最大长度',\n minLength: '最小长度',\n multipleOf: '倍数',\n nullable: '可为 null',\n path: '路径',\n propertyNames: '属性名称',\n pattern: '模式',\n readOnly: '只读',\n required: '必填',\n hideValues: '隐藏值',\n showAllValues: '显示所有值',\n type: '类型',\n unique: '唯一',\n values: '值',\n writeOnly: '只写',\n },\n search: {\n label: '搜索',\n inputLabel: '输入搜索查询',\n open: '打开搜索',\n placeholder: '搜索...',\n clear: '清除搜索',\n keyboardShortcut: '键盘快捷键:',\n command: 'Command 键',\n control: 'Control 键',\n results: '参考文档搜索结果',\n navigate: '导航',\n select: '选择',\n instructions: '按上/下箭头导航,按 Enter 选择,输入内容筛选结果',\n entryHeading: '标题',\n entryOperation: '操作',\n entryTag: '标签',\n entryTagGroup: '标签组',\n entryWebhook: 'Webhook',\n },\n navigation: {\n introduction: '简介',\n closeGroup: '关闭分组',\n closeMenu: '关闭菜单',\n openGroup: '打开分组',\n openMenu: '打开菜单',\n operations: '操作',\n endpoints: '{name} 端点',\n showAllEndpoints: '显示 {name} 的所有端点',\n sidebarFor: '{name} 的侧边栏',\n mainContent: '{name} 的 API 文档',\n collapsed: '已折叠',\n webhooks: 'Webhooks',\n channels: '频道',\n },\n server: {\n label: '服务器',\n select: '选择服务器',\n },\n info: {\n termsOfService: '服务条款',\n },\n asyncapi: {\n servers: '服务器',\n protocols: '协议',\n },\n clientLibraries: {\n heading: '客户端库',\n more: '更多',\n selectAll: '从所有客户端中选择',\n },\n operation: {\n body: '请求体',\n cookies: 'Cookie',\n headers: '请求头',\n pathParameters: '路径参数',\n queryParameters: '查询参数',\n requestBody: '请求体',\n responses: '响应',\n testRequest: '测试请求',\n webhook: 'Webhook',\n selectedContentType: '已选内容类型',\n hideHeaders: '隐藏标头',\n showHeaders: '显示标头',\n callbacks: '回调',\n },\n response: {\n exampleResponses: '响应示例',\n noBody: '无内容',\n showSchema: '显示 Schema',\n status: '状态',\n },\n schema: {\n example: '示例',\n examples: '示例',\n default: '默认值',\n schema: '架构',\n emptyObject: '空对象',\n showAdditionalProperties: '显示附加属性',\n childAttributes: '子属性',\n hideChildAttributes: '隐藏 {name}',\n showChildAttributes: '显示 {name}',\n forName: '对于 {name}',\n showSchemaDetails: '显示架构详情',\n oneOf: '其中一个',\n anyOf: '任意一个',\n allOf: '全部',\n not: '非',\n unknownType: '未知类型',\n },\n download: {\n openapi: '下载 OpenAPI 文档',\n asyncapi: '下载 AsyncAPI 文档',\n },\n models: {\n label: '模型',\n },\n actions: {\n copyLink: '复制链接',\n copyLinkTo: '复制指向 {name} 的链接',\n copyToClipboard: '复制链接到剪贴板',\n copyEndpointUrl: '复制端点 URL',\n showMore: '显示更多',\n },\n agent: {\n askAi: '询问 AI',\n askAiAgent: '询问 AI 助手',\n close: '关闭客户端',\n },\n mcp: {\n generate: '生成 MCP',\n connect: '连接 MCP',\n },\n developerTools: {\n title: '开发者工具',\n configure: '配置',\n share: '分享',\n deploy: '部署',\n scalarConfiguration: 'Scalar 配置',\n theme: '主题',\n layout: '布局',\n layoutOptions: '布局选项',\n intro: '开发者工具可用于自定义文档的外观和行为。你也可以通过 Scalar Registry 分享文档。',\n disableToolbarBefore: '要禁用工具栏,请在配置中设置',\n disableToolbarAfter: '。',\n localhostOnly: '开发者工具只会在 localhost 上运行时显示。',\n layoutModern: '现代',\n layoutClassic: '经典',\n showSidebar: '显示侧边栏',\n defaultOpenFirstTag: '默认打开第一个标签',\n defaultOpenAllTags: '默认打开所有标签',\n expandAll: '展开所有 {label}',\n expandAllResponses: '展开所有响应',\n hideClientButton: '隐藏客户端按钮',\n hideDarkModeToggle: '隐藏深色模式开关',\n hideModels: '隐藏 {label}',\n hideSearch: '隐藏搜索',\n showOperationId: '显示操作 ID',\n hideTestRequestButton: '隐藏测试请求按钮',\n scalarDocs: 'Scalar Docs',\n deployDescription: '将你的文档部署到 Scalar,这是适用于 API 等内容的现代文档平台。',\n shareTitle: '分享你的 API Reference',\n shareDescription: '上传 OpenAPI 文档,与其他人分享你的 API Reference。只需点击按钮即可。',\n uploadDocument: '上传文档',\n temporaryLinkExpiration: '你的文档将在 7 天后自动删除。',\n deployOnScalar: '部署到 Scalar',\n deployFree: '免费部署你的文档。',\n additionalFeaturesMightRequire: '其他功能可能需要',\n generate: '生成',\n passwordProtection: '密码保护',\n customDomains: '自定义域名',\n freeFormContent: '自由内容',\n cdnInfrastructure: 'CDN 基础设施',\n pullFromGitHub: '从 GitHub 拉取',\n markdownMdx: 'Markdown/MDX',\n spectralLinting: 'Spectral Linting',\n jsonSchemaHosting: 'JSON Schema 托管',\n askAi: '询问 AI',\n mcpServers: 'MCP 服务器',\n unableToExportDocument: '无法导出当前文档',\n unknownError: '发生未知错误',\n },\n gettingStarted: {\n swaggerEditor: 'Swagger Editor',\n description:\n '欢迎使用 Scalar API References + Swagger Editor,这是一款免费开源工具,可将你的 Swagger/OAS 文件生成精美的 API References。',\n showExample: '显示示例',\n uploadFile: '上传文件',\n integrations: '集成',\n theming: '主题',\n features: '功能',\n customize: '自定义',\n customizeDescription: '使用你的排版和调色板,或使用我们的主题!',\n testing: '测试',\n testingDescription: '深度集成的 REST API Client(同样免费且开源)',\n search: '搜索',\n searchDescription: '完整集成的搜索(使用 fuse.js)',\n hosting: '托管',\n hostingDescription: '在 https://apidocumentation.com 上免费托管子域名',\n openApiSwagger: 'OpenAPI 和 Swagger',\n openApiSwaggerDescription: '支持 OpenAPI 3.1、OpenAPI 3.0 和 Swagger 2.0',\n codeSamples: '代码示例',\n codeSamplesDescription: '用最流行语言展示你的 API 的代码示例',\n },\n footer: {\n poweredByScalar: '由 Scalar 提供支持',\n },\n authentication: {\n title: '身份验证',\n accepts: '接受',\n allOf: '全部:',\n authentication: '身份认证',\n optional: '身份认证可选',\n oneOf: '其中之一:',\n required: '需要身份认证',\n requires: '需要',\n },\n} satisfies ApiReferenceTranslations\n"],"mappings":"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"}
1
+ {"version":3,"file":"zh-cn.js","names":[],"sources":["../../../../src/features/localization/locales/zh-cn.ts"],"sourcesContent":["import type { ApiReferenceTranslations } from '@scalar/types/api-reference'\n\nexport const zhCn = {\n common: {\n additionalProperties: '附加属性',\n const: '常量',\n deprecated: '已弃用',\n description: '描述',\n discriminator: '鉴别器',\n enum: '枚举',\n format: '格式',\n greaterThan: '大于',\n httpMethod: 'HTTP 方法',\n keys: '键',\n lessThan: '小于',\n max: '最大值',\n min: '最小值',\n maxLength: '最大长度',\n minLength: '最小长度',\n multipleOf: '倍数',\n nullable: '可为 null',\n path: '路径',\n propertyNames: '属性名称',\n pattern: '模式',\n readOnly: '只读',\n required: '必填',\n hideValues: '隐藏值',\n showAllValues: '显示所有值',\n type: '类型',\n unique: '唯一',\n values: '值',\n writeOnly: '只写',\n },\n search: {\n label: '搜索',\n inputLabel: '输入搜索查询',\n open: '打开搜索',\n placeholder: '搜索...',\n clear: '清除搜索',\n keyboardShortcut: '键盘快捷键:',\n command: 'Command 键',\n control: 'Control 键',\n results: '参考文档搜索结果',\n navigate: '导航',\n select: '选择',\n instructions: '按上/下箭头导航,按 Enter 选择,输入内容筛选结果',\n entryHeading: '标题',\n entryOperation: '操作',\n entryTag: '标签',\n entryTagGroup: '标签组',\n entryWebhook: 'Webhook',\n },\n navigation: {\n introduction: '简介',\n closeGroup: '关闭分组',\n closeMenu: '关闭菜单',\n openGroup: '打开分组',\n openMenu: '打开菜单',\n operations: '操作',\n endpoints: '{name} 端点',\n showAllEndpoints: '显示 {name} 的所有端点',\n sidebarFor: '{name} 的侧边栏',\n mainContent: '{name} 的 API 文档',\n collapsed: '已折叠',\n webhooks: 'Webhooks',\n channels: '频道',\n },\n server: {\n label: '服务器',\n select: '选择服务器',\n },\n info: {\n termsOfService: '服务条款',\n },\n asyncapi: {\n servers: '服务器',\n protocols: '协议',\n },\n clientLibraries: {\n heading: '客户端库',\n more: '更多',\n selectAll: '从所有客户端中选择',\n },\n operation: {\n body: '请求体',\n cookies: 'Cookie',\n headers: '请求头',\n pathParameters: '路径参数',\n queryParameters: '查询参数',\n requestBody: '请求体',\n responses: '响应',\n testRequest: '测试请求',\n webhook: 'Webhook',\n selectedContentType: '已选内容类型',\n hideHeaders: '隐藏标头',\n showHeaders: '显示标头',\n callbacks: '回调',\n },\n response: {\n exampleResponses: '响应示例',\n noBody: '无内容',\n showSchema: '显示 Schema',\n status: '状态',\n },\n schema: {\n example: '示例',\n examples: '示例',\n default: '默认值',\n schema: '架构',\n emptyObject: '空对象',\n showAdditionalProperties: '显示附加属性',\n childAttributes: '子属性',\n hideChildAttributes: '隐藏 {name}',\n showChildAttributes: '显示 {name}',\n forName: '对于 {name}',\n showSchemaDetails: '显示架构详情',\n oneOf: '其中一个',\n anyOf: '任意一个',\n allOf: '全部',\n not: '非',\n unknownType: '未知类型',\n },\n download: {\n openapi: '下载 OpenAPI 文档',\n asyncapi: '下载 AsyncAPI 文档',\n },\n models: {\n label: '模型',\n },\n actions: {\n copyLink: '复制链接',\n copyLinkTo: '复制指向 {name} 的链接',\n copyToClipboard: '复制链接到剪贴板',\n copyEndpointUrl: '复制端点 URL',\n showMore: '显示更多',\n },\n agent: {\n askAi: '询问 AI',\n askAiAgent: '询问 AI 助手',\n close: '关闭客户端',\n },\n mcp: {\n generate: '生成 MCP',\n connect: '连接 MCP',\n },\n developerTools: {\n title: '开发者工具',\n configure: '配置',\n share: '分享',\n deploy: '部署',\n scalarConfiguration: 'Scalar 配置',\n theme: '主题',\n layout: '布局',\n layoutOptions: '布局选项',\n intro: '开发者工具可用于自定义文档的外观和行为。你也可以通过 Scalar Registry 分享文档。',\n disableToolbarBefore: '要禁用工具栏,请在配置中设置',\n disableToolbarAfter: '。',\n localhostOnly: '开发者工具只会在 localhost 上运行时显示。',\n layoutModern: '现代',\n layoutClassic: '经典',\n showSidebar: '显示侧边栏',\n defaultOpenFirstTag: '默认打开第一个标签',\n defaultOpenAllTags: '默认打开所有标签',\n expandAll: '展开所有 {label}',\n expandAllResponses: '展开所有响应',\n hideClientButton: '隐藏客户端按钮',\n hideDarkModeToggle: '隐藏深色模式开关',\n hideModels: '隐藏 {label}',\n hideSearch: '隐藏搜索',\n showOperationId: '显示操作 ID',\n hideTestRequestButton: '隐藏测试请求按钮',\n scalarDocs: 'Scalar Docs',\n deployDescription: '将你的文档部署到 Scalar,这是适用于 API 等内容的现代文档平台。',\n shareTitle: '分享你的 API Reference',\n shareDescription: '上传 OpenAPI 文档,与其他人分享你的 API Reference。只需点击按钮即可。',\n uploadDocument: '上传文档',\n temporaryLinkExpiration: '你的文档将在 7 天后自动删除。',\n deployOnScalar: '部署到 Scalar',\n deployFree: '免费部署你的文档。',\n additionalFeaturesMightRequire: '其他功能可能需要',\n generate: '生成',\n passwordProtection: '密码保护',\n customDomains: '自定义域名',\n freeFormContent: '自由内容',\n cdnInfrastructure: 'CDN 基础设施',\n pullFromGitHub: '从 GitHub 拉取',\n markdownMdx: 'Markdown/MDX',\n spectralLinting: 'Spectral Linting',\n jsonSchemaHosting: 'JSON Schema 托管',\n askAi: '询问 AI',\n mcpServers: 'MCP 服务器',\n unableToExportDocument: '无法导出当前文档',\n unknownError: '发生未知错误',\n },\n gettingStarted: {\n swaggerEditor: 'Swagger Editor',\n description:\n '欢迎使用 Scalar API References + Swagger Editor,这是一款免费开源工具,可将你的 Swagger/OAS 文件生成精美的 API References。',\n showExample: '显示示例',\n uploadFile: '上传文件',\n integrations: '集成',\n theming: '主题',\n features: '功能',\n customize: '自定义',\n customizeDescription: '使用你的排版和调色板,或使用我们的主题!',\n testing: '测试',\n testingDescription: '深度集成的 REST API Client(同样免费且开源)',\n search: '搜索',\n searchDescription: '完整集成的搜索(使用 fuse.js)',\n hosting: '托管',\n hostingDescription: '在 https://apidocumentation.com 上免费托管子域名',\n openApiSwagger: 'OpenAPI 和 Swagger',\n openApiSwaggerDescription: '支持 OpenAPI 3.1、OpenAPI 3.0 和 Swagger 2.0',\n codeSamples: '代码示例',\n codeSamplesDescription: '用最流行语言展示你的 API 的代码示例',\n },\n footer: {\n poweredByScalar: '由 Scalar 提供支持',\n },\n authentication: {\n title: '身份验证',\n accepts: '接受',\n allOf: '全部:',\n authentication: '身份认证',\n optional: '身份认证可选',\n oneOf: '其中之一:',\n required: '需要身份认证',\n requires: '需要',\n scopes: 'OAuth 作用域',\n },\n} satisfies ApiReferenceTranslations\n"],"mappings":"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"}
@@ -225,6 +225,7 @@ export declare const localeTranslations: {
225
225
  oneOf: string;
226
226
  required: string;
227
227
  requires: string;
228
+ scopes: string;
228
229
  };
229
230
  };
230
231
  ru: {
@@ -452,6 +453,7 @@ export declare const localeTranslations: {
452
453
  oneOf: string;
453
454
  required: string;
454
455
  requires: string;
456
+ scopes: string;
455
457
  };
456
458
  };
457
459
  es: {
@@ -679,6 +681,7 @@ export declare const localeTranslations: {
679
681
  oneOf: string;
680
682
  required: string;
681
683
  requires: string;
684
+ scopes: string;
682
685
  };
683
686
  };
684
687
  fr: {
@@ -906,6 +909,7 @@ export declare const localeTranslations: {
906
909
  oneOf: string;
907
910
  required: string;
908
911
  requires: string;
912
+ scopes: string;
909
913
  };
910
914
  };
911
915
  de: {
@@ -1133,6 +1137,7 @@ export declare const localeTranslations: {
1133
1137
  oneOf: string;
1134
1138
  required: string;
1135
1139
  requires: string;
1140
+ scopes: string;
1136
1141
  };
1137
1142
  };
1138
1143
  'zh-CN': {
@@ -1360,6 +1365,7 @@ export declare const localeTranslations: {
1360
1365
  oneOf: string;
1361
1366
  required: string;
1362
1367
  requires: string;
1368
+ scopes: string;
1363
1369
  };
1364
1370
  };
1365
1371
  ar: {
@@ -1587,6 +1593,7 @@ export declare const localeTranslations: {
1587
1593
  oneOf: string;
1588
1594
  required: string;
1589
1595
  requires: string;
1596
+ scopes: string;
1590
1597
  };
1591
1598
  };
1592
1599
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/features/localization/translations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAA4B,MAAM,6BAA6B,CAAA;AAUtG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQwC,CAAA;AAEvE,eAAO,MAAM,cAAc,EAAE,yBAAgC,CAAA;AAE7D,eAAO,MAAM,WAAW,aAAoC,CAAA"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/features/localization/translations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAA4B,MAAM,6BAA6B,CAAA;AAUtG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQwC,CAAA;AAEvE,eAAO,MAAM,cAAc,EAAE,yBAAgC,CAAA;AAE7D,eAAO,MAAM,WAAW,aAAoC,CAAA"}
@@ -225,7 +225,7 @@ export declare const authStorage: () => {
225
225
  authorizationUrl: string;
226
226
  tokenUrl: string;
227
227
  } & {
228
- 'x-usePkce': "SHA-256" | "plain" | "no";
228
+ 'x-usePkce': "plain" | "SHA-256" | "no";
229
229
  } & {
230
230
  'x-scalar-credentials-location'?: "body" | "header" | undefined;
231
231
  } & {
@@ -242,7 +242,26 @@ export declare const authStorage: () => {
242
242
  'x-scalar-credentials-location'?: "body" | "header" | undefined;
243
243
  }) | undefined;
244
244
  type: "openIdConnect";
245
- };
245
+ } | ({
246
+ type: "userPassword" | "plain" | "scramSha256" | "scramSha512";
247
+ } & {
248
+ 'x-scalar-secret-username': string;
249
+ 'x-scalar-secret-password': string;
250
+ }) | ({
251
+ type: "X509";
252
+ } & {
253
+ 'x-scalar-secret-client-certificate': string;
254
+ } & {
255
+ 'x-scalar-secret-private-key': string;
256
+ }) | ({
257
+ type: "symmetricEncryption" | "asymmetricEncryption";
258
+ } & {
259
+ 'x-scalar-secret-token': string;
260
+ }) | ({
261
+ type: "gssapi";
262
+ } & {
263
+ 'x-scalar-secret-service-name': string;
264
+ });
246
265
  };
247
266
  };
248
267
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uCAAuC,CAAA;AAM7E;;;GAGG;AACH,eAAO,MAAM,aAAa;IAGtB;;OAEG;;IAIH;;;OAGG;iBACU,MAAM;CAItB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;IAMpB;;OAEG;oBACa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAItB;;;OAGG;oBACa,MAAM,SAAS,IAAI;CAItC,CAAA"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/helpers/storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uCAAuC,CAAA;AAM7E;;;GAGG;AACH,eAAO,MAAM,aAAa;IAGtB;;OAEG;;IAIH;;;OAGG;iBACU,MAAM;CAItB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;IAMpB;;OAEG;oBACa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAItB;;;OAGG;oBACa,MAAM,SAAS,IAAI;CAItC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-api.d.ts","sourceRoot":"","sources":["../../../src/standalone/lib/html-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mCAAmC,EACnC,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AAqEpC;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,QAAQ,GAAG,mCAAmC,CA+GrG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,mCAAmC,QAiBnG;AAID,eAAO,MAAM,eAAe,GAAI,KAAK,QAAQ,EAAE,UAAU,OAAO,GAAG,IAAI,mBAatE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAkJhC,CAAA"}
1
+ {"version":3,"file":"html-api.d.ts","sourceRoot":"","sources":["../../../src/standalone/lib/html-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mCAAmC,EACnC,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AAsEpC;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,QAAQ,GAAG,mCAAmC,CA+GrG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,mCAAmC,QAiBnG;AAID,eAAO,MAAM,eAAe,GAAI,KAAK,QAAQ,EAAE,UAAU,OAAO,GAAG,IAAI,mBAatE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAoKhC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import ApiReference_default from "../../components/ApiReference.vue.js";
2
+ import { hasPluginUrls, loadPluginsFromUrls } from "./load-plugins-from-urls.js";
2
3
  import { createApp, createSSRApp, h, reactive } from "vue";
3
4
  import "@scalar/schemas/api-reference";
4
5
  import { createHead } from "@unhead/vue/client";
@@ -73,9 +74,15 @@ var createApiReference = (elementOrSelectorOrConfig, optionalConfiguration) => {
73
74
  let app = createReferenceApp(!!optionalConfiguration && !!mountElement && mountElement.children.length > 0);
74
75
  let hasMounted = false;
75
76
  if (optionalConfiguration) if (mountElement) {
76
- app.mount(mountElement);
77
- hasMounted = true;
78
- retainStandaloneStyles(document);
77
+ const mount = () => {
78
+ app.mount(mountElement);
79
+ hasMounted = true;
80
+ retainStandaloneStyles(document);
81
+ };
82
+ if (hasPluginUrls(props.configuration)) loadPluginsFromUrls(props.configuration).then(() => {
83
+ if (!abortController.signal.aborted) mount();
84
+ });
85
+ else mount();
79
86
  } else console.error("Could not find a mount point for API References:", elementOrSelectorOrConfig);
80
87
  const abortController = new AbortController();
81
88
  const listenerOptions = {
@@ -100,9 +107,9 @@ var createApiReference = (elementOrSelectorOrConfig, optionalConfiguration) => {
100
107
  const destroy = () => {
101
108
  abortController.abort();
102
109
  props.configuration = {};
103
- app.unmount();
104
110
  if (hasMounted) {
105
111
  hasMounted = false;
112
+ app.unmount();
106
113
  releaseStandaloneStyles(document);
107
114
  }
108
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"html-api.js","names":[],"sources":["../../../src/standalone/lib/html-api.ts"],"sourcesContent":["import { apiReferenceConfigurationWithSourceSchema } from '@scalar/schemas/api-reference'\nimport type {\n AnyApiReferenceConfiguration,\n ApiReferenceConfigurationWithSource,\n CreateApiReference,\n} from '@scalar/types/api-reference'\nimport { createHead } from '@unhead/vue/client'\nimport { createApp, createSSRApp, h, reactive } from 'vue'\n\nimport { default as ApiReference } from '@/components/ApiReference.vue'\n\nconst getSpecScriptTag = (doc: Document) => doc.getElementById('api-reference')\n\n/**\n * The id given to the standalone build's single injected `<style>` tag.\n * Keep in sync with `vite.standalone.config.ts` and `vite.standalone.esm.config.ts`.\n */\nconst STANDALONE_STYLE_ID = 'scalar-style'\n\n/**\n * Per-document bookkeeping for the standalone build's injected styles.\n *\n * The CDN build injects all of its CSS into one `<style>` tag in `<head>`. Under\n * SPA-style navigation (Turbo Drive, htmx boost, Astro view transitions) the host\n * swaps the DOM without reloading the window, so those document-level styles\n * (`@layer scalar-base`, the `:root` theme variables) would otherwise linger and\n * bleed into the host app's next page. We reference-count the live instances and\n * detach the styles when the last one is destroyed, re-attaching them when a new\n * instance mounts so navigating back to the reference is still styled.\n *\n * State is keyed by document so the counter survives navigations (the JS context\n * persists) while staying isolated per page.\n */\nconst standaloneStyleState = new WeakMap<Document, { count: number; detachedStyle: HTMLStyleElement | null }>()\n\nconst getStandaloneStyleState = (doc: Document): { count: number; detachedStyle: HTMLStyleElement | null } => {\n const existing = standaloneStyleState.get(doc)\n if (existing) {\n return existing\n }\n\n const state = { count: 0, detachedStyle: null }\n standaloneStyleState.set(doc, state)\n\n return state\n}\n\n/** Track a freshly mounted instance and restore previously detached styles. */\nconst retainStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count += 1\n\n if (state.detachedStyle && !doc.getElementById(STANDALONE_STYLE_ID)) {\n doc.head.appendChild(state.detachedStyle)\n state.detachedStyle = null\n }\n}\n\n/** Release an instance and detach the injected styles once the last one is gone. */\nconst releaseStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count = Math.max(0, state.count - 1)\n\n if (state.count > 0) {\n return\n }\n\n const styleElement = doc.getElementById(STANDALONE_STYLE_ID)\n if (styleElement instanceof HTMLStyleElement) {\n state.detachedStyle = styleElement\n styleElement.remove()\n }\n}\n\n/**\n * Reading the configuration from the data-attributes.\n */\nexport function getConfigurationFromDataAttributes(doc: Document): ApiReferenceConfigurationWithSource {\n const specElement = doc.querySelector('[data-spec]')\n const specUrlElement = doc.querySelector('[data-spec-url]')\n const configurationScriptElement = doc.querySelector('#api-reference[data-configuration]')\n\n const getConfiguration = () => {\n // <script data-configuration=\"{ … }\" />\n if (configurationScriptElement) {\n const configurationFromElement = configurationScriptElement.getAttribute('data-configuration')\n\n if (configurationFromElement) {\n return {\n _integration: 'html',\n ...JSON.parse(configurationFromElement.split('&quot;').join('\"')),\n }\n }\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n }\n\n const getUrl = () => {\n // Let's first check if the user passed a spec URL in the configuration.\n if (getConfiguration().url) {\n return getConfiguration().url\n }\n\n if (getConfiguration().spec?.url) {\n return getConfiguration().spec?.url\n }\n\n // <script id=\"api-reference\" data-url=\"/scalar.json\" />\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const urlFromScriptTag = specScriptTag.getAttribute('data-url')?.trim()\n\n if (urlFromScriptTag) {\n return urlFromScriptTag\n }\n }\n\n // <div data-spec-url=\"/scalar.json\" />\n if (specUrlElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec-url] HTML API is deprecated. Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead.',\n )\n const urlFromSpecUrlElement = specUrlElement.getAttribute('data-spec-url')\n\n if (urlFromSpecUrlElement) {\n return urlFromSpecUrlElement\n }\n }\n\n return undefined\n }\n\n const getContent = (): string | undefined => {\n // <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const specFromScriptTag = specScriptTag.innerHTML?.trim()\n\n if (specFromScriptTag) {\n return specFromScriptTag\n }\n }\n\n // <div data-spec='{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}' />\n if (specElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec] HTML API is deprecated. Use the new <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script> API instead.',\n )\n const specFromSpecElement = specElement.getAttribute('data-spec')?.trim()\n\n if (specFromSpecElement) {\n return specFromSpecElement\n }\n }\n\n return undefined\n }\n\n const getProxyUrl = () => {\n // <script id=\"api-reference\" data-proxy-url=\"https://proxy.scalar.com\">…</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const proxyUrl = specScriptTag.getAttribute('data-proxy-url')\n\n if (proxyUrl) {\n return proxyUrl.trim()\n }\n }\n\n return undefined\n }\n\n // Ensure Reference Props are reactive\n if (!specUrlElement && !specElement && !getSpecScriptTag(doc)) {\n // Stay quiet.\n } else {\n const urlOrContent = getContent() ? { content: getContent() } : { url: getUrl() }\n\n return apiReferenceConfigurationWithSourceSchema({\n _integration: 'html',\n proxyUrl: getProxyUrl(),\n ...getConfiguration(),\n ...urlOrContent,\n })\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n}\n\n/**\n * Mount the Scalar API Reference on a given document.\n * Read the HTML data-attributes for configuration.\n */\nexport function findDataAttributes(doc: Document, configuration: ApiReferenceConfigurationWithSource) {\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specElement = doc.querySelector('[data-spec]')\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specUrlElement = doc.querySelector('[data-spec-url]')\n\n if (configuration?.darkMode) {\n doc.body?.classList.add('dark-mode')\n } else {\n doc.body?.classList.add('light-mode')\n }\n\n const container = createContainer(doc, specElement || specUrlElement)\n\n if (container) {\n createApiReference(container, configuration)\n }\n}\n\n// If it's a script tag, we can't mount the Vue.js app inside that tag.\n// We need to add a new container element before the script tag.\nexport const createContainer = (doc: Document, element?: Element | null) => {\n let _container: Element | null = null\n\n const specScriptTag = getSpecScriptTag(doc)\n\n if (specScriptTag) {\n _container = doc.createElement('div')\n specScriptTag?.parentNode?.insertBefore(_container, specScriptTag)\n } else if (element) {\n _container = element\n }\n\n return _container\n}\n\n/**\n * Create (and mount) a new Scalar API Reference\n *\n * @example createApiReference({ url: '/scalar.json' }).mount('#app')\n * @example createApiReference('#app', { url: '/scalar.json' })\n * @example createApiReference(document.getElementById('app'), { url: '/scalar.json' })\n */\nexport const createApiReference: CreateApiReference = (\n elementOrSelectorOrConfig,\n optionalConfiguration?: AnyApiReferenceConfiguration,\n) => {\n // Create an id prefix for useId so we don't have collisions with other Vue apps\n const idPrefix = 'scalar-refs'\n\n const props = reactive<{ configuration: AnyApiReferenceConfiguration }>({\n // Either the configuration will be the second argument or it MUST be the first (configuration only)\n configuration: optionalConfiguration ?? (elementOrSelectorOrConfig as AnyApiReferenceConfiguration) ?? {},\n })\n\n const createReferenceApp = (isSsr = false) => {\n const referenceApp = isSsr ? createSSRApp(() => h(ApiReference, props)) : createApp(() => h(ApiReference, props))\n\n // Meta tags, etc.\n referenceApp.use(createHead())\n referenceApp.config.idPrefix = idPrefix\n\n return referenceApp\n }\n\n // If we have an optional config, then we must mount the element immediately (not sure why type is not narrowing)\n const mountElement = optionalConfiguration\n ? typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n : null\n\n // Detect server-rendered content and use createSSRApp for hydration\n const shouldHydrate = !!optionalConfiguration && !!mountElement && mountElement.children.length > 0\n let app = createReferenceApp(shouldHydrate)\n\n // Track whether this instance mounted so `destroy` only releases the shared\n // standalone styles for instances that actually retained them.\n let hasMounted = false\n\n if (optionalConfiguration) {\n if (mountElement) {\n app.mount(mountElement)\n hasMounted = true\n retainStandaloneStyles(document)\n } else {\n console.error('Could not find a mount point for API References:', elementOrSelectorOrConfig)\n }\n }\n\n // Tie the deprecated `document` listeners to an AbortController so `destroy`\n // can remove them all at once. Without this, every `createApiReference()`\n // call leaks three permanent listeners — visible during Astro view\n // transitions where each navigation creates a new instance.\n const abortController = new AbortController()\n const listenerOptions: AddEventListenerOptions = {\n capture: false,\n signal: abortController.signal,\n }\n\n /**\n * Reload the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:reload-references',\n () => {\n console.warn(\n 'scalar:reload-references event has been deprecated, please use the scalarInstance.app.mount method instead.',\n )\n if (!props.configuration) {\n return\n }\n\n // Snag the current element\n const currentElement =\n typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n\n if (!currentElement) {\n return\n }\n\n // Ensure we re-attach the element if it was unmounted\n if (currentElement && !document.body.contains(currentElement)) {\n document.body.appendChild(currentElement)\n }\n\n // Create a new Vue app instance\n app.unmount()\n app = createReferenceApp()\n app.mount(currentElement)\n },\n listenerOptions,\n )\n\n /** Destroy the current API Reference instance */\n const destroy = () => {\n abortController.abort()\n props.configuration = {}\n app.unmount()\n\n if (hasMounted) {\n hasMounted = false\n releaseStandaloneStyles(document)\n }\n }\n\n /**\n * Allow user to destroy the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:destroy-references',\n () => {\n console.warn('scalar:destroy-references event has been deprecated, please use scalarInstance.destroy instead.')\n destroy()\n },\n listenerOptions,\n )\n\n /**\n * Allow user to update configuration\n * @deprecated\n */\n document.addEventListener(\n 'scalar:update-references-config',\n (ev) => {\n console.warn(\n 'scalar:update-references-config event has been deprecated, please use scalarInstance.updateConfiguration instead.',\n )\n if ('detail' in ev) {\n Object.assign(props, ev.detail)\n }\n },\n listenerOptions,\n )\n\n const instance = {\n app,\n getConfiguration: () => props.configuration ?? {},\n updateConfiguration: (newConfig: AnyApiReferenceConfiguration) => {\n props.configuration = newConfig\n },\n destroy,\n }\n\n return instance\n}\n"],"mappings":";;;;;;;;;AAiBA,IAAM,sBAAsB;;;;;;;;;;;;;;;AAgB5B,IAAM,uCAAuB,IAAI,SAA8E;AAE/G,IAAM,2BAA2B,QAA6E;CAC5G,MAAM,WAAW,qBAAqB,IAAI,IAAI;AAC9C,KAAI,SACF,QAAO;CAGT,MAAM,QAAQ;EAAE,OAAO;EAAG,eAAe;EAAM;AAC/C,sBAAqB,IAAI,KAAK,MAAM;AAEpC,QAAO;;;AAIT,IAAM,0BAA0B,QAAwB;CACtD,MAAM,QAAQ,wBAAwB,IAAI;AAC1C,OAAM,SAAS;AAEf,KAAI,MAAM,iBAAiB,CAAC,IAAI,eAAe,oBAAoB,EAAE;AACnE,MAAI,KAAK,YAAY,MAAM,cAAc;AACzC,QAAM,gBAAgB;;;;AAK1B,IAAM,2BAA2B,QAAwB;CACvD,MAAM,QAAQ,wBAAwB,IAAI;AAC1C,OAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,QAAQ,EAAE;AAE1C,KAAI,MAAM,QAAQ,EAChB;CAGF,MAAM,eAAe,IAAI,eAAe,oBAAoB;AAC5D,KAAI,wBAAwB,kBAAkB;AAC5C,QAAM,gBAAgB;AACtB,eAAa,QAAQ;;;;;;;;;;AAuKzB,IAAa,sBACX,2BACA,0BACG;CAEH,MAAM,WAAW;CAEjB,MAAM,QAAQ,SAA0D,EAEtE,eAAe,yBAA0B,6BAA8D,EAAE,EAC1G,CAAC;CAEF,MAAM,sBAAsB,QAAQ,UAAU;EAC5C,MAAM,eAAe,QAAQ,mBAAmB,EAAE,sBAAc,MAAM,CAAC,GAAG,gBAAgB,EAAE,sBAAc,MAAM,CAAC;AAGjH,eAAa,IAAI,YAAY,CAAC;AAC9B,eAAa,OAAO,WAAW;AAE/B,SAAO;;CAIT,MAAM,eAAe,wBACjB,OAAO,8BAA8B,WACnC,SAAS,cAAc,0BAA0B,GAChD,4BACH;CAIJ,IAAI,MAAM,mBADY,CAAC,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,aAAa,SAAS,SAAS,EACvD;CAI3C,IAAI,aAAa;AAEjB,KAAI,sBACF,KAAI,cAAc;AAChB,MAAI,MAAM,aAAa;AACvB,eAAa;AACb,yBAAuB,SAAS;OAEhC,SAAQ,MAAM,oDAAoD,0BAA0B;CAQhG,MAAM,kBAAkB,IAAI,iBAAiB;CAC7C,MAAM,kBAA2C;EAC/C,SAAS;EACT,QAAQ,gBAAgB;EACzB;;;;;AAMD,UAAS,iBACP,kCACM;AACJ,UAAQ,KACN,8GACD;AACD,MAAI,CAAC,MAAM,cACT;EAIF,MAAM,iBACJ,OAAO,8BAA8B,WACjC,SAAS,cAAc,0BAA0B,GAChD;AAEP,MAAI,CAAC,eACH;AAIF,MAAI,kBAAkB,CAAC,SAAS,KAAK,SAAS,eAAe,CAC3D,UAAS,KAAK,YAAY,eAAe;AAI3C,MAAI,SAAS;AACb,QAAM,oBAAoB;AAC1B,MAAI,MAAM,eAAe;IAE3B,gBACD;;CAGD,MAAM,gBAAgB;AACpB,kBAAgB,OAAO;AACvB,QAAM,gBAAgB,EAAE;AACxB,MAAI,SAAS;AAEb,MAAI,YAAY;AACd,gBAAa;AACb,2BAAwB,SAAS;;;;;;;AAQrC,UAAS,iBACP,mCACM;AACJ,UAAQ,KAAK,kGAAkG;AAC/G,WAAS;IAEX,gBACD;;;;;AAMD,UAAS,iBACP,oCACC,OAAO;AACN,UAAQ,KACN,oHACD;AACD,MAAI,YAAY,GACd,QAAO,OAAO,OAAO,GAAG,OAAO;IAGnC,gBACD;AAWD,QATiB;EACf;EACA,wBAAwB,MAAM,iBAAiB,EAAE;EACjD,sBAAsB,cAA4C;AAChE,SAAM,gBAAgB;;EAExB;EACD"}
1
+ {"version":3,"file":"html-api.js","names":[],"sources":["../../../src/standalone/lib/html-api.ts"],"sourcesContent":["import { apiReferenceConfigurationWithSourceSchema } from '@scalar/schemas/api-reference'\nimport type {\n AnyApiReferenceConfiguration,\n ApiReferenceConfigurationWithSource,\n CreateApiReference,\n} from '@scalar/types/api-reference'\nimport { createHead } from '@unhead/vue/client'\nimport { createApp, createSSRApp, h, reactive } from 'vue'\n\nimport { default as ApiReference } from '@/components/ApiReference.vue'\nimport { hasPluginUrls, loadPluginsFromUrls } from '@/standalone/lib/load-plugins-from-urls'\n\nconst getSpecScriptTag = (doc: Document) => doc.getElementById('api-reference')\n\n/**\n * The id given to the standalone build's single injected `<style>` tag.\n * Keep in sync with `vite.standalone.config.ts` and `vite.standalone.esm.config.ts`.\n */\nconst STANDALONE_STYLE_ID = 'scalar-style'\n\n/**\n * Per-document bookkeeping for the standalone build's injected styles.\n *\n * The CDN build injects all of its CSS into one `<style>` tag in `<head>`. Under\n * SPA-style navigation (Turbo Drive, htmx boost, Astro view transitions) the host\n * swaps the DOM without reloading the window, so those document-level styles\n * (`@layer scalar-base`, the `:root` theme variables) would otherwise linger and\n * bleed into the host app's next page. We reference-count the live instances and\n * detach the styles when the last one is destroyed, re-attaching them when a new\n * instance mounts so navigating back to the reference is still styled.\n *\n * State is keyed by document so the counter survives navigations (the JS context\n * persists) while staying isolated per page.\n */\nconst standaloneStyleState = new WeakMap<Document, { count: number; detachedStyle: HTMLStyleElement | null }>()\n\nconst getStandaloneStyleState = (doc: Document): { count: number; detachedStyle: HTMLStyleElement | null } => {\n const existing = standaloneStyleState.get(doc)\n if (existing) {\n return existing\n }\n\n const state = { count: 0, detachedStyle: null }\n standaloneStyleState.set(doc, state)\n\n return state\n}\n\n/** Track a freshly mounted instance and restore previously detached styles. */\nconst retainStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count += 1\n\n if (state.detachedStyle && !doc.getElementById(STANDALONE_STYLE_ID)) {\n doc.head.appendChild(state.detachedStyle)\n state.detachedStyle = null\n }\n}\n\n/** Release an instance and detach the injected styles once the last one is gone. */\nconst releaseStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count = Math.max(0, state.count - 1)\n\n if (state.count > 0) {\n return\n }\n\n const styleElement = doc.getElementById(STANDALONE_STYLE_ID)\n if (styleElement instanceof HTMLStyleElement) {\n state.detachedStyle = styleElement\n styleElement.remove()\n }\n}\n\n/**\n * Reading the configuration from the data-attributes.\n */\nexport function getConfigurationFromDataAttributes(doc: Document): ApiReferenceConfigurationWithSource {\n const specElement = doc.querySelector('[data-spec]')\n const specUrlElement = doc.querySelector('[data-spec-url]')\n const configurationScriptElement = doc.querySelector('#api-reference[data-configuration]')\n\n const getConfiguration = () => {\n // <script data-configuration=\"{ … }\" />\n if (configurationScriptElement) {\n const configurationFromElement = configurationScriptElement.getAttribute('data-configuration')\n\n if (configurationFromElement) {\n return {\n _integration: 'html',\n ...JSON.parse(configurationFromElement.split('&quot;').join('\"')),\n }\n }\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n }\n\n const getUrl = () => {\n // Let's first check if the user passed a spec URL in the configuration.\n if (getConfiguration().url) {\n return getConfiguration().url\n }\n\n if (getConfiguration().spec?.url) {\n return getConfiguration().spec?.url\n }\n\n // <script id=\"api-reference\" data-url=\"/scalar.json\" />\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const urlFromScriptTag = specScriptTag.getAttribute('data-url')?.trim()\n\n if (urlFromScriptTag) {\n return urlFromScriptTag\n }\n }\n\n // <div data-spec-url=\"/scalar.json\" />\n if (specUrlElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec-url] HTML API is deprecated. Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead.',\n )\n const urlFromSpecUrlElement = specUrlElement.getAttribute('data-spec-url')\n\n if (urlFromSpecUrlElement) {\n return urlFromSpecUrlElement\n }\n }\n\n return undefined\n }\n\n const getContent = (): string | undefined => {\n // <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const specFromScriptTag = specScriptTag.innerHTML?.trim()\n\n if (specFromScriptTag) {\n return specFromScriptTag\n }\n }\n\n // <div data-spec='{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}' />\n if (specElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec] HTML API is deprecated. Use the new <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script> API instead.',\n )\n const specFromSpecElement = specElement.getAttribute('data-spec')?.trim()\n\n if (specFromSpecElement) {\n return specFromSpecElement\n }\n }\n\n return undefined\n }\n\n const getProxyUrl = () => {\n // <script id=\"api-reference\" data-proxy-url=\"https://proxy.scalar.com\">…</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const proxyUrl = specScriptTag.getAttribute('data-proxy-url')\n\n if (proxyUrl) {\n return proxyUrl.trim()\n }\n }\n\n return undefined\n }\n\n // Ensure Reference Props are reactive\n if (!specUrlElement && !specElement && !getSpecScriptTag(doc)) {\n // Stay quiet.\n } else {\n const urlOrContent = getContent() ? { content: getContent() } : { url: getUrl() }\n\n return apiReferenceConfigurationWithSourceSchema({\n _integration: 'html',\n proxyUrl: getProxyUrl(),\n ...getConfiguration(),\n ...urlOrContent,\n })\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n}\n\n/**\n * Mount the Scalar API Reference on a given document.\n * Read the HTML data-attributes for configuration.\n */\nexport function findDataAttributes(doc: Document, configuration: ApiReferenceConfigurationWithSource) {\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specElement = doc.querySelector('[data-spec]')\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specUrlElement = doc.querySelector('[data-spec-url]')\n\n if (configuration?.darkMode) {\n doc.body?.classList.add('dark-mode')\n } else {\n doc.body?.classList.add('light-mode')\n }\n\n const container = createContainer(doc, specElement || specUrlElement)\n\n if (container) {\n createApiReference(container, configuration)\n }\n}\n\n// If it's a script tag, we can't mount the Vue.js app inside that tag.\n// We need to add a new container element before the script tag.\nexport const createContainer = (doc: Document, element?: Element | null) => {\n let _container: Element | null = null\n\n const specScriptTag = getSpecScriptTag(doc)\n\n if (specScriptTag) {\n _container = doc.createElement('div')\n specScriptTag?.parentNode?.insertBefore(_container, specScriptTag)\n } else if (element) {\n _container = element\n }\n\n return _container\n}\n\n/**\n * Create (and mount) a new Scalar API Reference\n *\n * @example createApiReference({ url: '/scalar.json' }).mount('#app')\n * @example createApiReference('#app', { url: '/scalar.json' })\n * @example createApiReference(document.getElementById('app'), { url: '/scalar.json' })\n */\nexport const createApiReference: CreateApiReference = (\n elementOrSelectorOrConfig,\n optionalConfiguration?: AnyApiReferenceConfiguration,\n) => {\n // Create an id prefix for useId so we don't have collisions with other Vue apps\n const idPrefix = 'scalar-refs'\n\n const props = reactive<{ configuration: AnyApiReferenceConfiguration }>({\n // Either the configuration will be the second argument or it MUST be the first (configuration only)\n configuration: optionalConfiguration ?? (elementOrSelectorOrConfig as AnyApiReferenceConfiguration) ?? {},\n })\n\n const createReferenceApp = (isSsr = false) => {\n const referenceApp = isSsr ? createSSRApp(() => h(ApiReference, props)) : createApp(() => h(ApiReference, props))\n\n // Meta tags, etc.\n referenceApp.use(createHead())\n referenceApp.config.idPrefix = idPrefix\n\n return referenceApp\n }\n\n // If we have an optional config, then we must mount the element immediately (not sure why type is not narrowing)\n const mountElement = optionalConfiguration\n ? typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n : null\n\n // Detect server-rendered content and use createSSRApp for hydration\n const shouldHydrate = !!optionalConfiguration && !!mountElement && mountElement.children.length > 0\n let app = createReferenceApp(shouldHydrate)\n\n // Track whether this instance mounted so `destroy` only releases the shared\n // standalone styles for instances that actually retained them.\n let hasMounted = false\n\n if (optionalConfiguration) {\n if (mountElement) {\n const mount = () => {\n app.mount(mountElement)\n hasMounted = true\n retainStandaloneStyles(document)\n }\n\n if (hasPluginUrls(props.configuration)) {\n // Plugins referenced by URL must be resolved before the app mounts — plugin registration\n // happens once at first render and is not reactive, so a plugin that arrives later would\n // never be picked up.\n loadPluginsFromUrls(props.configuration).then(() => {\n // Skip mounting when the instance was destroyed while the plugins were loading.\n if (!abortController.signal.aborted) {\n mount()\n }\n })\n } else {\n mount()\n }\n } else {\n console.error('Could not find a mount point for API References:', elementOrSelectorOrConfig)\n }\n }\n\n // Tie the deprecated `document` listeners to an AbortController so `destroy`\n // can remove them all at once. Without this, every `createApiReference()`\n // call leaks three permanent listeners — visible during Astro view\n // transitions where each navigation creates a new instance.\n const abortController = new AbortController()\n const listenerOptions: AddEventListenerOptions = {\n capture: false,\n signal: abortController.signal,\n }\n\n /**\n * Reload the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:reload-references',\n () => {\n console.warn(\n 'scalar:reload-references event has been deprecated, please use the scalarInstance.app.mount method instead.',\n )\n if (!props.configuration) {\n return\n }\n\n // Snag the current element\n const currentElement =\n typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n\n if (!currentElement) {\n return\n }\n\n // Ensure we re-attach the element if it was unmounted\n if (currentElement && !document.body.contains(currentElement)) {\n document.body.appendChild(currentElement)\n }\n\n // Create a new Vue app instance\n app.unmount()\n app = createReferenceApp()\n app.mount(currentElement)\n },\n listenerOptions,\n )\n\n /** Destroy the current API Reference instance */\n const destroy = () => {\n abortController.abort()\n props.configuration = {}\n\n // Only unmount an app that actually mounted. With `pluginUrls`, mounting is deferred until the\n // plugin modules resolve, so `destroy` can run first — unmounting then would just warn.\n if (hasMounted) {\n hasMounted = false\n app.unmount()\n releaseStandaloneStyles(document)\n }\n }\n\n /**\n * Allow user to destroy the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:destroy-references',\n () => {\n console.warn('scalar:destroy-references event has been deprecated, please use scalarInstance.destroy instead.')\n destroy()\n },\n listenerOptions,\n )\n\n /**\n * Allow user to update configuration\n * @deprecated\n */\n document.addEventListener(\n 'scalar:update-references-config',\n (ev) => {\n console.warn(\n 'scalar:update-references-config event has been deprecated, please use scalarInstance.updateConfiguration instead.',\n )\n if ('detail' in ev) {\n Object.assign(props, ev.detail)\n }\n },\n listenerOptions,\n )\n\n const instance = {\n app,\n getConfiguration: () => props.configuration ?? {},\n updateConfiguration: (newConfig: AnyApiReferenceConfiguration) => {\n props.configuration = newConfig\n },\n destroy,\n }\n\n return instance\n}\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AnyApiReferenceConfiguration } from '@scalar/types/api-reference';
2
+ /** Whether any of the passed configurations reference a plugin by URL */
3
+ export declare const hasPluginUrls: (configuration: AnyApiReferenceConfiguration) => boolean;
4
+ /**
5
+ * Resolve the `pluginUrls` of all passed configurations and append the loaded plugins to the
6
+ * respective configuration's `plugins`.
7
+ *
8
+ * Plugin registration is not reactive — plugins are read once when the API reference renders for
9
+ * the first time — so this must complete before the app is mounted. Each URL is imported only
10
+ * once, even when multiple configurations reference it.
11
+ */
12
+ export declare const loadPluginsFromUrls: (configuration: AnyApiReferenceConfiguration) => Promise<void>;
13
+ //# sourceMappingURL=load-plugins-from-urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-plugins-from-urls.d.ts","sourceRoot":"","sources":["../../../src/standalone/lib/load-plugins-from-urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAsB,MAAM,6BAA6B,CAAA;AAwCnG,yEAAyE;AACzE,eAAO,MAAM,aAAa,GAAI,eAAe,4BAA4B,KAAG,OACW,CAAA;AAEvF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAU,eAAe,4BAA4B,KAAG,OAAO,CAAC,IAAI,CAuBnG,CAAA"}
@@ -0,0 +1,60 @@
1
+ //#region src/standalone/lib/load-plugins-from-urls.ts
2
+ /**
3
+ * Import a plugin module with a browser-native dynamic `import()`.
4
+ *
5
+ * The specifier is fully dynamic, so bundlers can't analyze it and leave the `import()` call
6
+ * as-is in the output (including the UMD standalone bundle) — the `@vite-ignore` comment just
7
+ * silences the warning about that.
8
+ */
9
+ var importModule = (url) => import(
10
+ /* @vite-ignore */
11
+ url
12
+ );
13
+ /**
14
+ * Load a single plugin module and return its default export.
15
+ *
16
+ * Failures (network errors, modules without a function default export) are logged and swallowed
17
+ * so a broken plugin URL never prevents the API reference itself from mounting.
18
+ */
19
+ var loadPluginFromUrl = async (url) => {
20
+ try {
21
+ const plugin = (await importModule(url))?.default;
22
+ if (typeof plugin !== "function") {
23
+ console.error(`[@scalar/api-reference] The module at ${url} does not export an API Reference plugin as its default export.`);
24
+ return;
25
+ }
26
+ return plugin;
27
+ } catch (error) {
28
+ console.error(`[@scalar/api-reference] Failed to load the plugin module at ${url}:`, error);
29
+ return;
30
+ }
31
+ };
32
+ /** Normalize the configuration input to a list of configuration objects */
33
+ var getConfigurations = (configuration) => Array.isArray(configuration) ? configuration : [configuration];
34
+ /** Whether any of the passed configurations reference a plugin by URL */
35
+ var hasPluginUrls = (configuration) => getConfigurations(configuration).some((config) => Boolean(config.pluginUrls?.length));
36
+ /**
37
+ * Resolve the `pluginUrls` of all passed configurations and append the loaded plugins to the
38
+ * respective configuration's `plugins`.
39
+ *
40
+ * Plugin registration is not reactive — plugins are read once when the API reference renders for
41
+ * the first time — so this must complete before the app is mounted. Each URL is imported only
42
+ * once, even when multiple configurations reference it.
43
+ */
44
+ var loadPluginsFromUrls = async (configuration) => {
45
+ const pendingImports = /* @__PURE__ */ new Map();
46
+ const importOnce = (url) => {
47
+ const pending = pendingImports.get(url) ?? loadPluginFromUrl(url);
48
+ pendingImports.set(url, pending);
49
+ return pending;
50
+ };
51
+ await Promise.all(getConfigurations(configuration).map(async (config) => {
52
+ if (!config.pluginUrls?.length) return;
53
+ const plugins = (await Promise.all(config.pluginUrls.map(importOnce))).filter((plugin) => plugin !== void 0);
54
+ if (plugins.length) config.plugins = [...config.plugins ?? [], ...plugins];
55
+ }));
56
+ };
57
+ //#endregion
58
+ export { hasPluginUrls, loadPluginsFromUrls };
59
+
60
+ //# sourceMappingURL=load-plugins-from-urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-plugins-from-urls.js","names":[],"sources":["../../../src/standalone/lib/load-plugins-from-urls.ts"],"sourcesContent":["import type { AnyApiReferenceConfiguration, ApiReferencePlugin } from '@scalar/types/api-reference'\n\n/**\n * Import a plugin module with a browser-native dynamic `import()`.\n *\n * The specifier is fully dynamic, so bundlers can't analyze it and leave the `import()` call\n * as-is in the output (including the UMD standalone bundle) — the `@vite-ignore` comment just\n * silences the warning about that.\n */\nconst importModule = (url: string): Promise<Record<string, unknown>> => import(/* @vite-ignore */ url)\n\n/**\n * Load a single plugin module and return its default export.\n *\n * Failures (network errors, modules without a function default export) are logged and swallowed\n * so a broken plugin URL never prevents the API reference itself from mounting.\n */\nconst loadPluginFromUrl = async (url: string): Promise<ApiReferencePlugin | undefined> => {\n try {\n const pluginModule = await importModule(url)\n const plugin = pluginModule?.default\n\n if (typeof plugin !== 'function') {\n console.error(\n `[@scalar/api-reference] The module at ${url} does not export an API Reference plugin as its default export.`,\n )\n return undefined\n }\n\n return plugin as ApiReferencePlugin\n } catch (error) {\n console.error(`[@scalar/api-reference] Failed to load the plugin module at ${url}:`, error)\n return undefined\n }\n}\n\n/** Normalize the configuration input to a list of configuration objects */\nconst getConfigurations = (configuration: AnyApiReferenceConfiguration) =>\n Array.isArray(configuration) ? configuration : [configuration]\n\n/** Whether any of the passed configurations reference a plugin by URL */\nexport const hasPluginUrls = (configuration: AnyApiReferenceConfiguration): boolean =>\n getConfigurations(configuration).some((config) => Boolean(config.pluginUrls?.length))\n\n/**\n * Resolve the `pluginUrls` of all passed configurations and append the loaded plugins to the\n * respective configuration's `plugins`.\n *\n * Plugin registration is not reactive — plugins are read once when the API reference renders for\n * the first time — so this must complete before the app is mounted. Each URL is imported only\n * once, even when multiple configurations reference it.\n */\nexport const loadPluginsFromUrls = async (configuration: AnyApiReferenceConfiguration): Promise<void> => {\n const pendingImports = new Map<string, Promise<ApiReferencePlugin | undefined>>()\n\n const importOnce = (url: string) => {\n const pending = pendingImports.get(url) ?? loadPluginFromUrl(url)\n pendingImports.set(url, pending)\n return pending\n }\n\n await Promise.all(\n getConfigurations(configuration).map(async (config) => {\n if (!config.pluginUrls?.length) {\n return\n }\n\n const loadedPlugins = await Promise.all(config.pluginUrls.map(importOnce))\n const plugins = loadedPlugins.filter((plugin): plugin is ApiReferencePlugin => plugin !== undefined)\n\n if (plugins.length) {\n config.plugins = [...(config.plugins ?? []), ...plugins]\n }\n }),\n )\n}\n"],"mappings":";;;;;;;;AASA,IAAM,gBAAgB,QAAkD;;CAA0B;;;;;;;;AAQlG,IAAM,oBAAoB,OAAO,QAAyD;AACxF,KAAI;EAEF,MAAM,UADe,MAAM,aAAa,IAAI,GACf;AAE7B,MAAI,OAAO,WAAW,YAAY;AAChC,WAAQ,MACN,yCAAyC,IAAI,iEAC9C;AACD;;AAGF,SAAO;UACA,OAAO;AACd,UAAQ,MAAM,+DAA+D,IAAI,IAAI,MAAM;AAC3F;;;;AAKJ,IAAM,qBAAqB,kBACzB,MAAM,QAAQ,cAAc,GAAG,gBAAgB,CAAC,cAAc;;AAGhE,IAAa,iBAAiB,kBAC5B,kBAAkB,cAAc,CAAC,MAAM,WAAW,QAAQ,OAAO,YAAY,OAAO,CAAC;;;;;;;;;AAUvF,IAAa,sBAAsB,OAAO,kBAA+D;CACvG,MAAM,iCAAiB,IAAI,KAAsD;CAEjF,MAAM,cAAc,QAAgB;EAClC,MAAM,UAAU,eAAe,IAAI,IAAI,IAAI,kBAAkB,IAAI;AACjE,iBAAe,IAAI,KAAK,QAAQ;AAChC,SAAO;;AAGT,OAAM,QAAQ,IACZ,kBAAkB,cAAc,CAAC,IAAI,OAAO,WAAW;AACrD,MAAI,CAAC,OAAO,YAAY,OACtB;EAIF,MAAM,WADgB,MAAM,QAAQ,IAAI,OAAO,WAAW,IAAI,WAAW,CAAC,EAC5C,QAAQ,WAAyC,WAAW,KAAA,EAAU;AAEpG,MAAI,QAAQ,OACV,QAAO,UAAU,CAAC,GAAI,OAAO,WAAW,EAAE,EAAG,GAAG,QAAQ;GAE1D,CACH"}