@apiboost/omnispec 1.0.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 (347) hide show
  1. package/LICENSE.md +202 -0
  2. package/README.md +166 -0
  3. package/core/package.json +5 -0
  4. package/dist/cjs/asyncapi/index.js +17 -0
  5. package/dist/cjs/asyncapi/index.js.map +1 -0
  6. package/dist/cjs/chunks/AsyncApiSpec-TBlyRxTP.js +819 -0
  7. package/dist/cjs/chunks/AsyncApiSpec-TBlyRxTP.js.map +1 -0
  8. package/dist/cjs/chunks/Collapsible-BHAHk_Ep.js +7527 -0
  9. package/dist/cjs/chunks/Collapsible-BHAHk_Ep.js.map +1 -0
  10. package/dist/cjs/chunks/ErrorBoundary-c1piU8da.js +36 -0
  11. package/dist/cjs/chunks/ErrorBoundary-c1piU8da.js.map +1 -0
  12. package/dist/cjs/chunks/OmniSpecRenderer-CE4wxVTL.js +104 -0
  13. package/dist/cjs/chunks/OmniSpecRenderer-CE4wxVTL.js.map +1 -0
  14. package/dist/cjs/chunks/OpenApiSpec-D0JtmOVQ.js +3157 -0
  15. package/dist/cjs/chunks/OpenApiSpec-D0JtmOVQ.js.map +1 -0
  16. package/dist/cjs/chunks/OpenIdConnectManual-oEnN0QJ-.js +2416 -0
  17. package/dist/cjs/chunks/OpenIdConnectManual-oEnN0QJ-.js.map +1 -0
  18. package/dist/cjs/chunks/RendererRegistry-DQ7JBLMT.js +24 -0
  19. package/dist/cjs/chunks/RendererRegistry-DQ7JBLMT.js.map +1 -0
  20. package/dist/cjs/chunks/binary-response-CSrPCI-1.js +77 -0
  21. package/dist/cjs/chunks/binary-response-CSrPCI-1.js.map +1 -0
  22. package/dist/cjs/chunks/ref-resolver-DWu6Q6E5.js +7108 -0
  23. package/dist/cjs/chunks/ref-resolver-DWu6Q6E5.js.map +1 -0
  24. package/dist/cjs/chunks/ssrf-guard-B6T2A7Ho.js +25 -0
  25. package/dist/cjs/chunks/ssrf-guard-B6T2A7Ho.js.map +1 -0
  26. package/dist/cjs/chunks/useSpecDetector-A4OwYrmY.js +252 -0
  27. package/dist/cjs/chunks/useSpecDetector-A4OwYrmY.js.map +1 -0
  28. package/dist/cjs/chunks/useSpecFetcher-BKz1jHTV.js +13669 -0
  29. package/dist/cjs/chunks/useSpecFetcher-BKz1jHTV.js.map +1 -0
  30. package/dist/cjs/core/public.js +198 -0
  31. package/dist/cjs/core/public.js.map +1 -0
  32. package/dist/cjs/index.js +36 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/openapi/index.js +19 -0
  35. package/dist/cjs/openapi/index.js.map +1 -0
  36. package/dist/cjs/server/index.js +154 -0
  37. package/dist/cjs/server/index.js.map +1 -0
  38. package/dist/cjs/wc/index.js +428 -0
  39. package/dist/cjs/wc/index.js.map +1 -0
  40. package/dist/esm/asyncapi/index.js +11 -0
  41. package/dist/esm/asyncapi/index.js.map +1 -0
  42. package/dist/esm/chunks/AsyncApiSpec-C3lsUpZk.js +817 -0
  43. package/dist/esm/chunks/AsyncApiSpec-C3lsUpZk.js.map +1 -0
  44. package/dist/esm/chunks/Collapsible-DA6-nS46.js +7482 -0
  45. package/dist/esm/chunks/Collapsible-DA6-nS46.js.map +1 -0
  46. package/dist/esm/chunks/ErrorBoundary-posRNrbt.js +34 -0
  47. package/dist/esm/chunks/ErrorBoundary-posRNrbt.js.map +1 -0
  48. package/dist/esm/chunks/OmniSpecRenderer-MqsQFXro.js +102 -0
  49. package/dist/esm/chunks/OmniSpecRenderer-MqsQFXro.js.map +1 -0
  50. package/dist/esm/chunks/OpenApiSpec-Cy-oW6jA.js +3153 -0
  51. package/dist/esm/chunks/OpenApiSpec-Cy-oW6jA.js.map +1 -0
  52. package/dist/esm/chunks/OpenIdConnectManual-COfITasf.js +2393 -0
  53. package/dist/esm/chunks/OpenIdConnectManual-COfITasf.js.map +1 -0
  54. package/dist/esm/chunks/RendererRegistry-zlh-WYbU.js +21 -0
  55. package/dist/esm/chunks/RendererRegistry-zlh-WYbU.js.map +1 -0
  56. package/dist/esm/chunks/binary-response-Cre_H-Rt.js +72 -0
  57. package/dist/esm/chunks/binary-response-Cre_H-Rt.js.map +1 -0
  58. package/dist/esm/chunks/ref-resolver-BIrHJOjz.js +7105 -0
  59. package/dist/esm/chunks/ref-resolver-BIrHJOjz.js.map +1 -0
  60. package/dist/esm/chunks/ssrf-guard-CsZoYdEq.js +23 -0
  61. package/dist/esm/chunks/ssrf-guard-CsZoYdEq.js.map +1 -0
  62. package/dist/esm/chunks/useSpecDetector-5SGcKnJx.js +248 -0
  63. package/dist/esm/chunks/useSpecDetector-5SGcKnJx.js.map +1 -0
  64. package/dist/esm/chunks/useSpecFetcher-CZvAnU7Z.js +13625 -0
  65. package/dist/esm/chunks/useSpecFetcher-CZvAnU7Z.js.map +1 -0
  66. package/dist/esm/core/public.js +102 -0
  67. package/dist/esm/core/public.js.map +1 -0
  68. package/dist/esm/index.js +17 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/openapi/index.js +13 -0
  71. package/dist/esm/openapi/index.js.map +1 -0
  72. package/dist/esm/server/index.js +152 -0
  73. package/dist/esm/server/index.js.map +1 -0
  74. package/dist/esm/wc/index.js +403 -0
  75. package/dist/esm/wc/index.js.map +1 -0
  76. package/dist/types/asyncapi/AsyncApiSpec.d.ts +12 -0
  77. package/dist/types/asyncapi/AsyncApiSpec.d.ts.map +1 -0
  78. package/dist/types/asyncapi/components/AsyncOverview.d.ts +16 -0
  79. package/dist/types/asyncapi/components/AsyncOverview.d.ts.map +1 -0
  80. package/dist/types/asyncapi/components/ChannelDetail.d.ts +19 -0
  81. package/dist/types/asyncapi/components/ChannelDetail.d.ts.map +1 -0
  82. package/dist/types/asyncapi/components/ComponentsSection.d.ts +16 -0
  83. package/dist/types/asyncapi/components/ComponentsSection.d.ts.map +1 -0
  84. package/dist/types/asyncapi/components/ProtocolBadge.d.ts +16 -0
  85. package/dist/types/asyncapi/components/ProtocolBadge.d.ts.map +1 -0
  86. package/dist/types/asyncapi/components/ServerList.d.ts +16 -0
  87. package/dist/types/asyncapi/components/ServerList.d.ts.map +1 -0
  88. package/dist/types/asyncapi/hooks/useAsyncApiSpec.d.ts +12 -0
  89. package/dist/types/asyncapi/hooks/useAsyncApiSpec.d.ts.map +1 -0
  90. package/dist/types/asyncapi/index.d.ts +11 -0
  91. package/dist/types/asyncapi/index.d.ts.map +1 -0
  92. package/dist/types/asyncapi/parser/asyncapi-parser.d.ts +12 -0
  93. package/dist/types/asyncapi/parser/asyncapi-parser.d.ts.map +1 -0
  94. package/dist/types/asyncapi/types/asyncapi.types.d.ts +125 -0
  95. package/dist/types/asyncapi/types/asyncapi.types.d.ts.map +1 -0
  96. package/dist/types/core/components/Auth/ApiKeyAuth.d.ts +30 -0
  97. package/dist/types/core/components/Auth/ApiKeyAuth.d.ts.map +1 -0
  98. package/dist/types/core/components/Auth/AuthPanel.d.ts +18 -0
  99. package/dist/types/core/components/Auth/AuthPanel.d.ts.map +1 -0
  100. package/dist/types/core/components/Auth/AuthPanelModal.d.ts +24 -0
  101. package/dist/types/core/components/Auth/AuthPanelModal.d.ts.map +1 -0
  102. package/dist/types/core/components/Auth/BasicAuth.d.ts +20 -0
  103. package/dist/types/core/components/Auth/BasicAuth.d.ts.map +1 -0
  104. package/dist/types/core/components/Auth/BearerAuth.d.ts +20 -0
  105. package/dist/types/core/components/Auth/BearerAuth.d.ts.map +1 -0
  106. package/dist/types/core/components/Auth/OAuth2AuthManual.d.ts +37 -0
  107. package/dist/types/core/components/Auth/OAuth2AuthManual.d.ts.map +1 -0
  108. package/dist/types/core/components/Auth/OpenIdConnectManual.d.ts +33 -0
  109. package/dist/types/core/components/Auth/OpenIdConnectManual.d.ts.map +1 -0
  110. package/dist/types/core/components/Auth/SecretInput.d.ts +27 -0
  111. package/dist/types/core/components/Auth/SecretInput.d.ts.map +1 -0
  112. package/dist/types/core/components/Auth/index.d.ts +16 -0
  113. package/dist/types/core/components/Auth/index.d.ts.map +1 -0
  114. package/dist/types/core/components/CodeBlock/CodeBlock.d.ts +32 -0
  115. package/dist/types/core/components/CodeBlock/CodeBlock.d.ts.map +1 -0
  116. package/dist/types/core/components/CodeBlock/index.d.ts +12 -0
  117. package/dist/types/core/components/CodeBlock/index.d.ts.map +1 -0
  118. package/dist/types/core/components/Layout/DocLayout.d.ts +24 -0
  119. package/dist/types/core/components/Layout/DocLayout.d.ts.map +1 -0
  120. package/dist/types/core/components/Layout/MobileDrawerDismissContext.d.ts +20 -0
  121. package/dist/types/core/components/Layout/MobileDrawerDismissContext.d.ts.map +1 -0
  122. package/dist/types/core/components/Layout/SpecStatusScreen.d.ts +38 -0
  123. package/dist/types/core/components/Layout/SpecStatusScreen.d.ts.map +1 -0
  124. package/dist/types/core/components/Layout/index.d.ts +11 -0
  125. package/dist/types/core/components/Layout/index.d.ts.map +1 -0
  126. package/dist/types/core/components/MarkdownRenderer/MarkdownRenderer.d.ts +16 -0
  127. package/dist/types/core/components/MarkdownRenderer/MarkdownRenderer.d.ts.map +1 -0
  128. package/dist/types/core/components/MarkdownRenderer/index.d.ts +11 -0
  129. package/dist/types/core/components/MarkdownRenderer/index.d.ts.map +1 -0
  130. package/dist/types/core/components/Navigation/CustomNavSection.d.ts +16 -0
  131. package/dist/types/core/components/Navigation/CustomNavSection.d.ts.map +1 -0
  132. package/dist/types/core/components/Navigation/NavTree.d.ts +32 -0
  133. package/dist/types/core/components/Navigation/NavTree.d.ts.map +1 -0
  134. package/dist/types/core/components/Navigation/SearchBar.d.ts +16 -0
  135. package/dist/types/core/components/Navigation/SearchBar.d.ts.map +1 -0
  136. package/dist/types/core/components/Navigation/buildSidebar.d.ts +13 -0
  137. package/dist/types/core/components/Navigation/buildSidebar.d.ts.map +1 -0
  138. package/dist/types/core/components/Navigation/index.d.ts +13 -0
  139. package/dist/types/core/components/Navigation/index.d.ts.map +1 -0
  140. package/dist/types/core/components/Reference/ReferenceLayout.d.ts +19 -0
  141. package/dist/types/core/components/Reference/ReferenceLayout.d.ts.map +1 -0
  142. package/dist/types/core/components/Reference/ReferenceOperationDetail.d.ts +42 -0
  143. package/dist/types/core/components/Reference/ReferenceOperationDetail.d.ts.map +1 -0
  144. package/dist/types/core/components/Reference/SamplesPanel.d.ts +33 -0
  145. package/dist/types/core/components/Reference/SamplesPanel.d.ts.map +1 -0
  146. package/dist/types/core/components/SchemaViewer/SchemaPresentation.d.ts +147 -0
  147. package/dist/types/core/components/SchemaViewer/SchemaPresentation.d.ts.map +1 -0
  148. package/dist/types/core/components/SchemaViewer/SchemaPrimitives.d.ts +66 -0
  149. package/dist/types/core/components/SchemaViewer/SchemaPrimitives.d.ts.map +1 -0
  150. package/dist/types/core/components/SchemaViewer/SchemaTable.d.ts +16 -0
  151. package/dist/types/core/components/SchemaViewer/SchemaTable.d.ts.map +1 -0
  152. package/dist/types/core/components/SchemaViewer/SchemaTree.d.ts +26 -0
  153. package/dist/types/core/components/SchemaViewer/SchemaTree.d.ts.map +1 -0
  154. package/dist/types/core/components/SchemaViewer/index.d.ts +16 -0
  155. package/dist/types/core/components/SchemaViewer/index.d.ts.map +1 -0
  156. package/dist/types/core/components/SchemaViewer/schema-style.d.ts +45 -0
  157. package/dist/types/core/components/SchemaViewer/schema-style.d.ts.map +1 -0
  158. package/dist/types/core/components/SchemaViewer/schema-utils.d.ts +83 -0
  159. package/dist/types/core/components/SchemaViewer/schema-utils.d.ts.map +1 -0
  160. package/dist/types/core/components/TryIt/CodeSamples.d.ts +26 -0
  161. package/dist/types/core/components/TryIt/CodeSamples.d.ts.map +1 -0
  162. package/dist/types/core/components/TryIt/CustomHeaders.d.ts +24 -0
  163. package/dist/types/core/components/TryIt/CustomHeaders.d.ts.map +1 -0
  164. package/dist/types/core/components/TryIt/InlineTryIt.d.ts +26 -0
  165. package/dist/types/core/components/TryIt/InlineTryIt.d.ts.map +1 -0
  166. package/dist/types/core/components/TryIt/ParameterForm.d.ts +34 -0
  167. package/dist/types/core/components/TryIt/ParameterForm.d.ts.map +1 -0
  168. package/dist/types/core/components/TryIt/RequestBodyEditor.d.ts +34 -0
  169. package/dist/types/core/components/TryIt/RequestBodyEditor.d.ts.map +1 -0
  170. package/dist/types/core/components/TryIt/ResponseViewer.d.ts +18 -0
  171. package/dist/types/core/components/TryIt/ResponseViewer.d.ts.map +1 -0
  172. package/dist/types/core/components/TryIt/TryItPanel.d.ts +38 -0
  173. package/dist/types/core/components/TryIt/TryItPanel.d.ts.map +1 -0
  174. package/dist/types/core/components/TryIt/code-generators.d.ts +23 -0
  175. package/dist/types/core/components/TryIt/code-generators.d.ts.map +1 -0
  176. package/dist/types/core/components/TryIt/curl-generator.d.ts +12 -0
  177. package/dist/types/core/components/TryIt/curl-generator.d.ts.map +1 -0
  178. package/dist/types/core/components/TryIt/index.d.ts +16 -0
  179. package/dist/types/core/components/TryIt/index.d.ts.map +1 -0
  180. package/dist/types/core/components/common/Badge.d.ts +19 -0
  181. package/dist/types/core/components/common/Badge.d.ts.map +1 -0
  182. package/dist/types/core/components/common/Button.d.ts +44 -0
  183. package/dist/types/core/components/common/Button.d.ts.map +1 -0
  184. package/dist/types/core/components/common/Collapsible.d.ts +23 -0
  185. package/dist/types/core/components/common/Collapsible.d.ts.map +1 -0
  186. package/dist/types/core/components/common/CopyButton.d.ts +16 -0
  187. package/dist/types/core/components/common/CopyButton.d.ts.map +1 -0
  188. package/dist/types/core/components/common/ErrorBoundary.d.ts +40 -0
  189. package/dist/types/core/components/common/ErrorBoundary.d.ts.map +1 -0
  190. package/dist/types/core/components/common/ErrorMessage.d.ts +16 -0
  191. package/dist/types/core/components/common/ErrorMessage.d.ts.map +1 -0
  192. package/dist/types/core/components/common/ExampleSelector.d.ts +29 -0
  193. package/dist/types/core/components/common/ExampleSelector.d.ts.map +1 -0
  194. package/dist/types/core/components/common/ExpandableCard.d.ts +27 -0
  195. package/dist/types/core/components/common/ExpandableCard.d.ts.map +1 -0
  196. package/dist/types/core/components/common/Icon.d.ts +53 -0
  197. package/dist/types/core/components/common/Icon.d.ts.map +1 -0
  198. package/dist/types/core/components/common/LinkableHeading.d.ts +19 -0
  199. package/dist/types/core/components/common/LinkableHeading.d.ts.map +1 -0
  200. package/dist/types/core/components/common/LoadingScreen.d.ts +13 -0
  201. package/dist/types/core/components/common/LoadingScreen.d.ts.map +1 -0
  202. package/dist/types/core/components/common/MethodBar.d.ts +18 -0
  203. package/dist/types/core/components/common/MethodBar.d.ts.map +1 -0
  204. package/dist/types/core/components/common/Modal.d.ts +19 -0
  205. package/dist/types/core/components/common/Modal.d.ts.map +1 -0
  206. package/dist/types/core/components/common/ResponsiveColumns.d.ts +17 -0
  207. package/dist/types/core/components/common/ResponsiveColumns.d.ts.map +1 -0
  208. package/dist/types/core/components/common/SpecToolbar.d.ts +27 -0
  209. package/dist/types/core/components/common/SpecToolbar.d.ts.map +1 -0
  210. package/dist/types/core/components/common/Tabs.d.ts +29 -0
  211. package/dist/types/core/components/common/Tabs.d.ts.map +1 -0
  212. package/dist/types/core/components/common/Tooltip.d.ts +17 -0
  213. package/dist/types/core/components/common/Tooltip.d.ts.map +1 -0
  214. package/dist/types/core/components/common/UpgradePrompt.d.ts +18 -0
  215. package/dist/types/core/components/common/UpgradePrompt.d.ts.map +1 -0
  216. package/dist/types/core/components/common/index.d.ts +18 -0
  217. package/dist/types/core/components/common/index.d.ts.map +1 -0
  218. package/dist/types/core/context/AuthContext.d.ts +35 -0
  219. package/dist/types/core/context/AuthContext.d.ts.map +1 -0
  220. package/dist/types/core/context/ConfigContext.d.ts +55 -0
  221. package/dist/types/core/context/ConfigContext.d.ts.map +1 -0
  222. package/dist/types/core/context/ExpandContext.d.ts +33 -0
  223. package/dist/types/core/context/ExpandContext.d.ts.map +1 -0
  224. package/dist/types/core/context/RendererRegistry.d.ts +24 -0
  225. package/dist/types/core/context/RendererRegistry.d.ts.map +1 -0
  226. package/dist/types/core/context/index.d.ts +14 -0
  227. package/dist/types/core/context/index.d.ts.map +1 -0
  228. package/dist/types/core/hooks/index.d.ts +12 -0
  229. package/dist/types/core/hooks/index.d.ts.map +1 -0
  230. package/dist/types/core/hooks/useHashScroll.d.ts +15 -0
  231. package/dist/types/core/hooks/useHashScroll.d.ts.map +1 -0
  232. package/dist/types/core/hooks/useScrollSpy.d.ts +33 -0
  233. package/dist/types/core/hooks/useScrollSpy.d.ts.map +1 -0
  234. package/dist/types/core/hooks/useSegmentedRouter.d.ts +19 -0
  235. package/dist/types/core/hooks/useSegmentedRouter.d.ts.map +1 -0
  236. package/dist/types/core/hooks/useSpecDetector.d.ts +13 -0
  237. package/dist/types/core/hooks/useSpecDetector.d.ts.map +1 -0
  238. package/dist/types/core/hooks/useSpecFetcher.d.ts +17 -0
  239. package/dist/types/core/hooks/useSpecFetcher.d.ts.map +1 -0
  240. package/dist/types/core/public.d.ts +86 -0
  241. package/dist/types/core/public.d.ts.map +1 -0
  242. package/dist/types/core/styles/breakpoints.d.ts +33 -0
  243. package/dist/types/core/styles/breakpoints.d.ts.map +1 -0
  244. package/dist/types/core/styles/css.d.ts +17 -0
  245. package/dist/types/core/styles/css.d.ts.map +1 -0
  246. package/dist/types/core/styles/styled.d.ts +25 -0
  247. package/dist/types/core/styles/styled.d.ts.map +1 -0
  248. package/dist/types/core/themes/ThemeProvider.d.ts +25 -0
  249. package/dist/types/core/themes/ThemeProvider.d.ts.map +1 -0
  250. package/dist/types/core/themes/index.d.ts +12 -0
  251. package/dist/types/core/themes/index.d.ts.map +1 -0
  252. package/dist/types/core/themes/tokens.d.ts +13 -0
  253. package/dist/types/core/themes/tokens.d.ts.map +1 -0
  254. package/dist/types/core/types/auth.types.d.ts +83 -0
  255. package/dist/types/core/types/auth.types.d.ts.map +1 -0
  256. package/dist/types/core/types/common.types.d.ts +141 -0
  257. package/dist/types/core/types/common.types.d.ts.map +1 -0
  258. package/dist/types/core/types/index.d.ts +16 -0
  259. package/dist/types/core/types/index.d.ts.map +1 -0
  260. package/dist/types/core/types/interactive-auth.types.d.ts +37 -0
  261. package/dist/types/core/types/interactive-auth.types.d.ts.map +1 -0
  262. package/dist/types/core/types/sidebar-nav.types.d.ts +41 -0
  263. package/dist/types/core/types/sidebar-nav.types.d.ts.map +1 -0
  264. package/dist/types/core/types/spec-detection.types.d.ts +26 -0
  265. package/dist/types/core/types/spec-detection.types.d.ts.map +1 -0
  266. package/dist/types/core/types/theme.types.d.ts +119 -0
  267. package/dist/types/core/types/theme.types.d.ts.map +1 -0
  268. package/dist/types/core/types/try-it.types.d.ts +50 -0
  269. package/dist/types/core/types/try-it.types.d.ts.map +1 -0
  270. package/dist/types/core/utils/binary-response.d.ts +24 -0
  271. package/dist/types/core/utils/binary-response.d.ts.map +1 -0
  272. package/dist/types/core/utils/detect-spec.d.ts +12 -0
  273. package/dist/types/core/utils/detect-spec.d.ts.map +1 -0
  274. package/dist/types/core/utils/direct-client.d.ts +20 -0
  275. package/dist/types/core/utils/direct-client.d.ts.map +1 -0
  276. package/dist/types/core/utils/fetch-spec.d.ts +15 -0
  277. package/dist/types/core/utils/fetch-spec.d.ts.map +1 -0
  278. package/dist/types/core/utils/index.d.ts +14 -0
  279. package/dist/types/core/utils/index.d.ts.map +1 -0
  280. package/dist/types/core/utils/proxy-client.d.ts +19 -0
  281. package/dist/types/core/utils/proxy-client.d.ts.map +1 -0
  282. package/dist/types/core/utils/ref-security.d.ts +78 -0
  283. package/dist/types/core/utils/ref-security.d.ts.map +1 -0
  284. package/dist/types/core/utils/resolve-download-link.d.ts +23 -0
  285. package/dist/types/core/utils/resolve-download-link.d.ts.map +1 -0
  286. package/dist/types/core/utils/sanitize-html.d.ts +16 -0
  287. package/dist/types/core/utils/sanitize-html.d.ts.map +1 -0
  288. package/dist/types/core/utils/tryit-storage.d.ts +45 -0
  289. package/dist/types/core/utils/tryit-storage.d.ts.map +1 -0
  290. package/dist/types/index.d.ts +29 -0
  291. package/dist/types/index.d.ts.map +1 -0
  292. package/dist/types/openapi/OpenApiSpec.d.ts +12 -0
  293. package/dist/types/openapi/OpenApiSpec.d.ts.map +1 -0
  294. package/dist/types/openapi/components/ApiOverview.d.ts +19 -0
  295. package/dist/types/openapi/components/ApiOverview.d.ts.map +1 -0
  296. package/dist/types/openapi/components/CallbacksSection.d.ts +19 -0
  297. package/dist/types/openapi/components/CallbacksSection.d.ts.map +1 -0
  298. package/dist/types/openapi/components/ComponentsSection.d.ts +19 -0
  299. package/dist/types/openapi/components/ComponentsSection.d.ts.map +1 -0
  300. package/dist/types/openapi/components/EndpointCard.d.ts +20 -0
  301. package/dist/types/openapi/components/EndpointCard.d.ts.map +1 -0
  302. package/dist/types/openapi/components/OperationDetail.d.ts +28 -0
  303. package/dist/types/openapi/components/OperationDetail.d.ts.map +1 -0
  304. package/dist/types/openapi/components/OperationView.d.ts +19 -0
  305. package/dist/types/openapi/components/OperationView.d.ts.map +1 -0
  306. package/dist/types/openapi/components/SegmentedContent.d.ts +22 -0
  307. package/dist/types/openapi/components/SegmentedContent.d.ts.map +1 -0
  308. package/dist/types/openapi/components/ServerSelector.d.ts +18 -0
  309. package/dist/types/openapi/components/ServerSelector.d.ts.map +1 -0
  310. package/dist/types/openapi/components/TagGroup.d.ts +19 -0
  311. package/dist/types/openapi/components/TagGroup.d.ts.map +1 -0
  312. package/dist/types/openapi/hooks/useOpenApiSpec.d.ts +13 -0
  313. package/dist/types/openapi/hooks/useOpenApiSpec.d.ts.map +1 -0
  314. package/dist/types/openapi/index.d.ts +11 -0
  315. package/dist/types/openapi/index.d.ts.map +1 -0
  316. package/dist/types/openapi/parser/openapi-parser.d.ts +13 -0
  317. package/dist/types/openapi/parser/openapi-parser.d.ts.map +1 -0
  318. package/dist/types/openapi/parser/ref-resolver.d.ts +18 -0
  319. package/dist/types/openapi/parser/ref-resolver.d.ts.map +1 -0
  320. package/dist/types/openapi/search.d.ts +16 -0
  321. package/dist/types/openapi/search.d.ts.map +1 -0
  322. package/dist/types/openapi/types/openapi.types.d.ts +139 -0
  323. package/dist/types/openapi/types/openapi.types.d.ts.map +1 -0
  324. package/dist/types/server/index.d.ts +12 -0
  325. package/dist/types/server/index.d.ts.map +1 -0
  326. package/dist/types/server/proxy-router.d.ts +44 -0
  327. package/dist/types/server/proxy-router.d.ts.map +1 -0
  328. package/dist/types/server/ssrf-guard.d.ts +20 -0
  329. package/dist/types/server/ssrf-guard.d.ts.map +1 -0
  330. package/dist/types/test-setup.d.ts +11 -0
  331. package/dist/types/test-setup.d.ts.map +1 -0
  332. package/dist/types/unified/OmniSpecRenderer.d.ts +18 -0
  333. package/dist/types/unified/OmniSpecRenderer.d.ts.map +1 -0
  334. package/dist/types/unified/index.d.ts +12 -0
  335. package/dist/types/unified/index.d.ts.map +1 -0
  336. package/dist/types/wc/OmniSpecRendererElement.d.ts +48 -0
  337. package/dist/types/wc/OmniSpecRendererElement.d.ts.map +1 -0
  338. package/dist/types/wc/attribute-bridge.d.ts +96 -0
  339. package/dist/types/wc/attribute-bridge.d.ts.map +1 -0
  340. package/dist/types/wc/index.d.ts +42 -0
  341. package/dist/types/wc/index.d.ts.map +1 -0
  342. package/dist/types/wc/style-injection.d.ts +24 -0
  343. package/dist/types/wc/style-injection.d.ts.map +1 -0
  344. package/dist/wc/standalone.js +3 -0
  345. package/dist/wc/standalone.js.LICENSE.txt +65 -0
  346. package/dist/wc/standalone.js.map +1 -0
  347. package/package.json +167 -0
@@ -0,0 +1,817 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useCallback, useState, useMemo } from 'react';
3
+ import { css, cx } from '@emotion/css';
4
+ import { a as useSpecFetcher, m as mq, r as resolveSchemaStyle, S as SpecType, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage, h as buildSidebar, C as ConfigProvider, e as DocLayout, N as NavTree } from './useSpecFetcher-CZvAnU7Z.js';
5
+ import { M as MarkdownRenderer, d as ExpandableCard, f as MethodBar, T as Tabs, t as SchemaTree, A as schemaToNodes, C as CodeBlock, x as generateExample, a as Collapsible, w as flattenNavItemIds, G as useScrollSpy, H as ExpandProvider, v as SpecToolbar, z as resolveDownloadLink, u as SearchBar } from './Collapsible-DA6-nS46.js';
6
+ import { E as ErrorBoundary } from './ErrorBoundary-posRNrbt.js';
7
+ import { r as resolveRefs, p as parse } from './ref-resolver-BIrHJOjz.js';
8
+ import '@emotion/styled';
9
+ import './ssrf-guard-CsZoYdEq.js';
10
+
11
+ async function parseAsyncApiSpec(specInput) {
12
+ const raw = typeof specInput === "string" ? parseSpecString(specInput) : specInput;
13
+ const api = await resolveRefs(raw);
14
+ const majorVersion = parseInt(api.asyncapi.split(".")[0], 10);
15
+ const isV3 = majorVersion >= 3;
16
+ const servers = extractServers(api);
17
+ const channels = isV3 ? extractChannelsV3(api) : extractChannelsV2(api);
18
+ const components = extractComponents(api);
19
+ const root = api;
20
+ const tags = api.tags?.map((tag) => {
21
+ const raw2 = tag;
22
+ return {
23
+ name: tag.name,
24
+ description: tag.description,
25
+ displayName: raw2["x-displayName"],
26
+ externalDocs: raw2.externalDocs
27
+ };
28
+ })?.filter((tag) => !tag["x-internal"]);
29
+ return {
30
+ title: api.info.title,
31
+ description: api.info.description,
32
+ version: api.info.version,
33
+ specVersion: api.asyncapi,
34
+ servers,
35
+ channels: channels.filter((ch) => !ch.xInternal),
36
+ components,
37
+ tags,
38
+ tagGroups: root["x-tagGroups"],
39
+ externalDocs: api.externalDocs,
40
+ contact: api.info.contact,
41
+ license: api.info.license,
42
+ termsOfService: api.info.termsOfService,
43
+ logo: api.info["x-logo"]
44
+ };
45
+ }
46
+ function extractServers(api) {
47
+ if (!api.servers) return [];
48
+ if (Array.isArray(api.servers)) {
49
+ return api.servers.map((s, idx) => ({
50
+ name: s.name ?? `server-${idx}`,
51
+ url: s.host ? `${s.protocol}://${s.host}${s.pathname ?? ""}` : s.url ?? "",
52
+ protocol: s.protocol,
53
+ protocolVersion: s.protocolVersion,
54
+ description: s.description,
55
+ variables: s.variables,
56
+ security: s.security
57
+ }));
58
+ }
59
+ return Object.entries(api.servers).map(([name, s]) => ({
60
+ name,
61
+ url: s.host ? `${s.protocol}://${s.host}${s.pathname ?? ""}` : s.url ?? "",
62
+ protocol: s.protocol,
63
+ protocolVersion: s.protocolVersion,
64
+ description: s.description,
65
+ variables: s.variables,
66
+ security: s.security
67
+ }));
68
+ }
69
+ function extractChannelsV2(api) {
70
+ if (!api.channels) return [];
71
+ return Object.entries(api.channels).map(([channelName, ch]) => {
72
+ const operations = [];
73
+ if (ch.publish) {
74
+ operations.push(convertOperationV2("publish", ch.publish));
75
+ }
76
+ if (ch.subscribe) {
77
+ operations.push(convertOperationV2("subscribe", ch.subscribe));
78
+ }
79
+ const raw = ch;
80
+ return {
81
+ name: channelName,
82
+ address: channelName,
83
+ description: ch.description,
84
+ operations: operations.filter((op) => !op.xInternal),
85
+ parameters: ch.parameters,
86
+ bindings: ch.bindings,
87
+ xInternal: raw["x-internal"]
88
+ };
89
+ });
90
+ }
91
+ function convertOperationV2(action, op) {
92
+ let message;
93
+ if (op.message) {
94
+ if ("oneOf" in op.message) {
95
+ message = convertMessage(op.message.oneOf[0]);
96
+ } else {
97
+ message = convertMessage(op.message);
98
+ }
99
+ }
100
+ const raw = op;
101
+ return {
102
+ action,
103
+ operationId: op.operationId,
104
+ summary: op.summary,
105
+ description: op.description,
106
+ message,
107
+ tags: op.tags,
108
+ bindings: op.bindings,
109
+ xBadges: raw["x-badges"],
110
+ xInternal: raw["x-internal"]
111
+ };
112
+ }
113
+ function extractChannelsV3(api) {
114
+ if (!api.channels) return [];
115
+ const channelMap = /* @__PURE__ */ new Map();
116
+ for (const [channelName, ch] of Object.entries(api.channels)) {
117
+ const raw = ch;
118
+ channelMap.set(channelName, {
119
+ name: channelName,
120
+ address: ch.address ?? channelName,
121
+ description: ch.description,
122
+ operations: [],
123
+ parameters: ch.parameters,
124
+ bindings: ch.bindings,
125
+ xInternal: raw["x-internal"]
126
+ });
127
+ }
128
+ if (api.operations) {
129
+ for (const [, op] of Object.entries(api.operations)) {
130
+ const channelRef = op.channel;
131
+ let channelName;
132
+ if (channelRef && "$ref" in channelRef && typeof channelRef.$ref === "string") {
133
+ channelName = channelRef.$ref.split("/").pop();
134
+ }
135
+ const messages = [];
136
+ if (op.messages) {
137
+ for (const msg of op.messages) {
138
+ if ("$ref" in msg) continue;
139
+ messages.push(convertMessage(msg));
140
+ }
141
+ }
142
+ const raw = op;
143
+ const operation = {
144
+ action: op.action,
145
+ summary: op.summary,
146
+ description: op.description,
147
+ message: messages[0],
148
+ tags: op.tags,
149
+ bindings: op.bindings,
150
+ xBadges: raw["x-badges"],
151
+ xInternal: raw["x-internal"]
152
+ };
153
+ if (operation.xInternal) continue;
154
+ if (channelName && channelMap.has(channelName)) {
155
+ channelMap.get(channelName).operations.push(operation);
156
+ }
157
+ }
158
+ }
159
+ return Array.from(channelMap.values());
160
+ }
161
+ function convertMessage(msg) {
162
+ return {
163
+ name: msg.name,
164
+ title: msg.title,
165
+ summary: msg.summary,
166
+ description: msg.description,
167
+ contentType: msg.contentType,
168
+ payload: msg.payload,
169
+ headers: msg.headers,
170
+ correlationId: msg.correlationId,
171
+ tags: msg.tags,
172
+ examples: msg.examples,
173
+ bindings: msg.bindings
174
+ };
175
+ }
176
+ function extractComponents(api) {
177
+ return {
178
+ schemas: api.components?.schemas ?? {},
179
+ messages: api.components?.messages ?? {}
180
+ };
181
+ }
182
+ function parseSpecString(input) {
183
+ const trimmed = input.trim();
184
+ if (trimmed.startsWith("{")) {
185
+ try {
186
+ return JSON.parse(trimmed);
187
+ } catch {
188
+ }
189
+ }
190
+ return parse(trimmed);
191
+ }
192
+
193
+ function useAsyncApiSpec(spec) {
194
+ const parser = useCallback(async (raw) => {
195
+ return parseAsyncApiSpec(raw);
196
+ }, []);
197
+ return useSpecFetcher(spec, parser);
198
+ }
199
+
200
+ const containerStyle$2 = css({
201
+ marginBottom: "32px",
202
+ paddingBottom: "24px",
203
+ borderBottom: "1px solid var(--omnispec-border-color)"
204
+ });
205
+ const titleStyle$2 = css({
206
+ margin: "0 0 4px",
207
+ fontSize: "var(--omnispec-h2-font-size)",
208
+ color: "var(--omnispec-h2-color)",
209
+ fontWeight: 700,
210
+ display: "inline"
211
+ });
212
+ const versionStyle$1 = css({
213
+ fontSize: "var(--omnispec-font-size-sm)",
214
+ color: "var(--omnispec-fg-muted)",
215
+ marginLeft: "12px",
216
+ fontFamily: "var(--omnispec-font-mono)"
217
+ });
218
+ const specBadgeStyle = css({
219
+ fontSize: "var(--omnispec-font-size-xs)",
220
+ color: "var(--omnispec-color-primary)",
221
+ border: "1px solid var(--omnispec-color-primary)",
222
+ borderRadius: "4px",
223
+ padding: "1px 6px",
224
+ marginLeft: "8px",
225
+ fontFamily: "var(--omnispec-font-mono)"
226
+ });
227
+ const metaStyle = css({
228
+ fontSize: "var(--omnispec-font-size-sm)",
229
+ color: "var(--omnispec-fg-secondary)",
230
+ marginTop: "4px"
231
+ });
232
+ const linkStyle = css({
233
+ color: "var(--omnispec-fg-link)",
234
+ textDecoration: "none",
235
+ "&:hover": {
236
+ textDecoration: "underline"
237
+ }
238
+ });
239
+ function AsyncOverview({ spec }) {
240
+ return /* @__PURE__ */ jsxs("div", { className: cx("omnispec-async-overview", containerStyle$2), children: [
241
+ /* @__PURE__ */ jsx("h1", { className: titleStyle$2, children: spec.title }),
242
+ /* @__PURE__ */ jsxs("span", { className: versionStyle$1, children: [
243
+ "v",
244
+ spec.version
245
+ ] }),
246
+ /* @__PURE__ */ jsxs("span", { className: specBadgeStyle, children: [
247
+ "AsyncAPI ",
248
+ spec.specVersion
249
+ ] }),
250
+ spec.description && /* @__PURE__ */ jsx(MarkdownRenderer, { content: spec.description }),
251
+ spec.contact && /* @__PURE__ */ jsxs("div", { className: metaStyle, children: [
252
+ spec.contact.name && /* @__PURE__ */ jsxs("span", { children: [
253
+ "Contact: ",
254
+ spec.contact.name
255
+ ] }),
256
+ spec.contact.email && /* @__PURE__ */ jsxs("span", { children: [
257
+ " <",
258
+ /* @__PURE__ */ jsx("a", { href: `mailto:${spec.contact.email}`, className: linkStyle, children: spec.contact.email }),
259
+ ">"
260
+ ] }),
261
+ spec.contact.url && /* @__PURE__ */ jsxs("span", { children: [
262
+ " \xB7 ",
263
+ /* @__PURE__ */ jsx("a", { href: spec.contact.url, target: "_blank", rel: "noopener noreferrer", className: linkStyle, children: spec.contact.url })
264
+ ] })
265
+ ] }),
266
+ spec.license && /* @__PURE__ */ jsxs("div", { className: metaStyle, children: [
267
+ "License: ",
268
+ spec.license.url ? /* @__PURE__ */ jsx("a", { href: spec.license.url, target: "_blank", rel: "noopener noreferrer", className: linkStyle, children: spec.license.name }) : spec.license.name
269
+ ] }),
270
+ spec.externalDocs && /* @__PURE__ */ jsx("div", { className: metaStyle, children: /* @__PURE__ */ jsx("a", { href: spec.externalDocs.url, target: "_blank", rel: "noopener noreferrer", className: linkStyle, children: spec.externalDocs.description ?? "External Documentation" }) })
271
+ ] });
272
+ }
273
+
274
+ const protocolColors = {
275
+ kafka: "#231F20",
276
+ "kafka-secure": "#231F20",
277
+ mqtt: "#660066",
278
+ "mqtt5": "#660066",
279
+ amqp: "#FF6600",
280
+ "amqp1": "#FF6600",
281
+ ws: "#4A90D9",
282
+ wss: "#4A90D9",
283
+ http: "var(--omnispec-color-get)",
284
+ https: "var(--omnispec-color-get)",
285
+ nats: "#27AAE1",
286
+ redis: "#DC382D",
287
+ sns: "#FF9900",
288
+ sqs: "#FF9900",
289
+ stomp: "#6DB33F",
290
+ mercure: "#1D1D1D"
291
+ };
292
+ const badgeBase = css({
293
+ display: "inline-block",
294
+ padding: "2px 8px",
295
+ borderRadius: "4px",
296
+ fontSize: "10px",
297
+ fontWeight: 700,
298
+ fontFamily: "var(--omnispec-font-mono)",
299
+ color: "#ffffff",
300
+ letterSpacing: "0.5px"
301
+ });
302
+ const versionStyle = css({
303
+ fontWeight: 400,
304
+ opacity: 0.8
305
+ });
306
+ function ProtocolBadge({ protocol, version }) {
307
+ const color = protocolColors[protocol.toLowerCase()] ?? "var(--omnispec-fg-muted)";
308
+ return /* @__PURE__ */ jsxs("span", { className: cx(badgeBase, css({ backgroundColor: color })), children: [
309
+ protocol.toUpperCase(),
310
+ version && /* @__PURE__ */ jsxs("span", { className: versionStyle, children: [
311
+ " ",
312
+ version
313
+ ] })
314
+ ] });
315
+ }
316
+
317
+ const containerStyle$1 = css({
318
+ marginBottom: "24px"
319
+ });
320
+ const titleStyle$1 = css({
321
+ margin: "0 0 12px",
322
+ fontSize: "var(--omnispec-h3-font-size)",
323
+ color: "var(--omnispec-h3-color)",
324
+ fontWeight: 600
325
+ });
326
+ const gridStyle = css({
327
+ display: "flex",
328
+ flexDirection: "column",
329
+ gap: "8px"
330
+ });
331
+ const cardStyle = css({
332
+ padding: "12px",
333
+ border: "1px solid var(--omnispec-border-color)",
334
+ borderRadius: "var(--omnispec-border-radius)",
335
+ backgroundColor: "var(--omnispec-bg-secondary)",
336
+ "&:hover": {
337
+ borderColor: "var(--omnispec-color-primary)"
338
+ }
339
+ });
340
+ const cardHeaderStyle = css({
341
+ display: "flex",
342
+ alignItems: "center",
343
+ gap: "8px",
344
+ marginBottom: "6px"
345
+ });
346
+ const serverNameStyle = css({
347
+ fontWeight: 600,
348
+ fontSize: "var(--omnispec-font-size-sm)",
349
+ color: "var(--omnispec-fg-primary)"
350
+ });
351
+ const urlStyle = css({
352
+ fontFamily: "var(--omnispec-font-mono)",
353
+ fontSize: "var(--omnispec-font-size-sm)",
354
+ color: "var(--omnispec-fg-code)",
355
+ display: "block",
356
+ marginBottom: "4px"
357
+ });
358
+ const descriptionStyle = css({
359
+ margin: "4px 0 0",
360
+ fontSize: "var(--omnispec-font-size-xs)",
361
+ color: "var(--omnispec-fg-secondary)"
362
+ });
363
+ const variablesStyle = css({
364
+ marginTop: "8px",
365
+ fontSize: "var(--omnispec-font-size-xs)"
366
+ });
367
+ const varRowStyle = css({
368
+ display: "flex",
369
+ gap: "6px",
370
+ marginBottom: "2px"
371
+ });
372
+ const varNameStyle = css({
373
+ fontFamily: "var(--omnispec-font-mono)",
374
+ color: "var(--omnispec-fg-primary)",
375
+ fontWeight: 600
376
+ });
377
+ const varDefaultStyle = css({
378
+ fontFamily: "var(--omnispec-font-mono)",
379
+ color: "var(--omnispec-fg-muted)"
380
+ });
381
+ const varDescStyle = css({
382
+ color: "var(--omnispec-fg-secondary)"
383
+ });
384
+ function ServerList({ servers }) {
385
+ if (servers.length === 0) return null;
386
+ return /* @__PURE__ */ jsxs("div", { className: cx("omnispec-async-servers", containerStyle$1), children: [
387
+ /* @__PURE__ */ jsx("h3", { className: titleStyle$1, children: "Servers" }),
388
+ /* @__PURE__ */ jsx("div", { className: gridStyle, children: servers.map((server) => /* @__PURE__ */ jsxs("div", { className: cardStyle, children: [
389
+ /* @__PURE__ */ jsxs("div", { className: cardHeaderStyle, children: [
390
+ /* @__PURE__ */ jsx("span", { className: serverNameStyle, children: server.name }),
391
+ /* @__PURE__ */ jsx(ProtocolBadge, { protocol: server.protocol, version: server.protocolVersion })
392
+ ] }),
393
+ /* @__PURE__ */ jsx("code", { className: urlStyle, children: server.url }),
394
+ server.description && /* @__PURE__ */ jsx("p", { className: descriptionStyle, children: server.description }),
395
+ server.variables && Object.entries(server.variables).length > 0 && /* @__PURE__ */ jsx("div", { className: variablesStyle, children: Object.entries(server.variables).map(([name, variable]) => /* @__PURE__ */ jsxs("div", { className: varRowStyle, children: [
396
+ /* @__PURE__ */ jsx("code", { className: varNameStyle, children: name }),
397
+ variable.default && /* @__PURE__ */ jsxs("span", { className: varDefaultStyle, children: [
398
+ "= ",
399
+ variable.default
400
+ ] }),
401
+ variable.description && /* @__PURE__ */ jsx("span", { className: varDescStyle, children: variable.description })
402
+ ] }, name)) })
403
+ ] }, server.name)) })
404
+ ] });
405
+ }
406
+
407
+ const actionLabels = {
408
+ publish: "PUB",
409
+ subscribe: "SUB",
410
+ send: "SEND",
411
+ receive: "RECV"
412
+ };
413
+ const actionColors = {
414
+ publish: "var(--omnispec-color-publish)",
415
+ subscribe: "var(--omnispec-color-subscribe)",
416
+ send: "var(--omnispec-color-publish)",
417
+ receive: "var(--omnispec-color-subscribe)"
418
+ };
419
+ function ChannelDetail({ channel, id, expandAll, expandGeneration }) {
420
+ const primaryAction = channel.operations[0]?.action;
421
+ const primaryLabel = actionLabels[primaryAction] ?? primaryAction?.toUpperCase() ?? "";
422
+ const primaryColor = actionColors[primaryAction] ?? "var(--omnispec-fg-muted)";
423
+ return /* @__PURE__ */ jsxs(
424
+ ExpandableCard,
425
+ {
426
+ id,
427
+ title: channel.address,
428
+ rightLabel: `${channel.operations.length} ${channel.operations.length === 1 ? "operation" : "operations"}`,
429
+ expandAll,
430
+ expandGeneration,
431
+ children: [
432
+ /* @__PURE__ */ jsx(MethodBar, { label: primaryLabel, path: channel.address, color: primaryColor }),
433
+ /* @__PURE__ */ jsxs("div", { className: bodyStyle, children: [
434
+ channel.description && /* @__PURE__ */ jsx("div", { className: sectionStyle, children: /* @__PURE__ */ jsx(MarkdownRenderer, { content: channel.description }) }),
435
+ channel.parameters && Object.keys(channel.parameters).length > 0 && /* @__PURE__ */ jsxs("div", { className: sectionStyle, children: [
436
+ /* @__PURE__ */ jsx("h4", { className: sectionTitleStyle, children: "Parameters" }),
437
+ /* @__PURE__ */ jsx("div", { className: paramListStyle, children: Object.entries(channel.parameters).map(([name, param]) => {
438
+ const paramType = param.schema?.type;
439
+ return /* @__PURE__ */ jsxs("div", { className: paramRowStyle, children: [
440
+ /* @__PURE__ */ jsxs("div", { className: paramHeaderStyle, children: [
441
+ /* @__PURE__ */ jsx("span", { className: paramNameStyle, children: name }),
442
+ paramType && /* @__PURE__ */ jsx("pre", { className: typeBadgeStyle, children: paramType })
443
+ ] }),
444
+ param.description && /* @__PURE__ */ jsx("p", { className: paramDescStyle, children: param.description })
445
+ ] }, name);
446
+ }) })
447
+ ] }),
448
+ channel.operations.map((op, idx) => /* @__PURE__ */ jsxs("div", { className: operationStyle, children: [
449
+ /* @__PURE__ */ jsxs("div", { className: opHeaderStyle, children: [
450
+ /* @__PURE__ */ jsx(
451
+ "span",
452
+ {
453
+ className: cx(actionBadgeBase, css({
454
+ backgroundColor: actionColors[op.action] ?? "var(--omnispec-fg-muted)"
455
+ })),
456
+ children: actionLabels[op.action] ?? op.action.toUpperCase()
457
+ }
458
+ ),
459
+ op.operationId && /* @__PURE__ */ jsx("span", { className: opIdStyle, children: op.operationId }),
460
+ op.summary && /* @__PURE__ */ jsx("span", { className: opSummaryStyle, children: op.summary })
461
+ ] }),
462
+ op.description && /* @__PURE__ */ jsx("div", { className: sectionStyle, children: /* @__PURE__ */ jsx(MarkdownRenderer, { content: op.description }) }),
463
+ op.message && /* @__PURE__ */ jsxs("div", { className: sectionStyle, children: [
464
+ /* @__PURE__ */ jsxs("h4", { className: sectionTitleStyle, children: [
465
+ "Message",
466
+ op.message.title && /* @__PURE__ */ jsxs("span", { className: messageTitleStyle, children: [
467
+ " \u2014 ",
468
+ op.message.title
469
+ ] })
470
+ ] }),
471
+ op.message.summary && /* @__PURE__ */ jsx("p", { className: messageSummaryStyle, children: op.message.summary }),
472
+ op.message.contentType && /* @__PURE__ */ jsx("code", { className: contentTypeStyle, children: op.message.contentType }),
473
+ op.message.payload && /* @__PURE__ */ jsx(
474
+ Tabs,
475
+ {
476
+ tabs: [
477
+ {
478
+ id: `schema-${idx}`,
479
+ label: "Payload Schema",
480
+ content: /* @__PURE__ */ jsx(SchemaTree, { nodes: schemaToNodes(op.message.payload) })
481
+ },
482
+ {
483
+ id: `example-${idx}`,
484
+ label: "Example",
485
+ content: /* @__PURE__ */ jsx(
486
+ CodeBlock,
487
+ {
488
+ code: JSON.stringify(generateExample(op.message.payload), null, 2),
489
+ language: "json"
490
+ }
491
+ )
492
+ }
493
+ ]
494
+ }
495
+ ),
496
+ op.message.headers && /* @__PURE__ */ jsxs("div", { className: headersWrapStyle, children: [
497
+ /* @__PURE__ */ jsx("h4", { className: sectionTitleStyle, children: "Headers" }),
498
+ /* @__PURE__ */ jsx(SchemaTree, { nodes: schemaToNodes(op.message.headers) })
499
+ ] })
500
+ ] })
501
+ ] }, idx))
502
+ ] })
503
+ ]
504
+ }
505
+ );
506
+ }
507
+ const bodyStyle = css({
508
+ padding: "0.75rem 1rem",
509
+ [mq.desktop]: {
510
+ padding: "1rem 1.25rem"
511
+ }
512
+ });
513
+ const sectionStyle = css({
514
+ marginBottom: "24px"
515
+ });
516
+ const sectionTitleStyle = css({
517
+ margin: "0 0 12px",
518
+ fontSize: "var(--omnispec-font-size-md)",
519
+ fontWeight: 700,
520
+ color: "var(--omnispec-fg-primary)",
521
+ letterSpacing: "0.02em"
522
+ });
523
+ const paramListStyle = css({
524
+ display: "flex",
525
+ flexDirection: "column"
526
+ });
527
+ const paramRowStyle = css({
528
+ padding: "12px 0"
529
+ });
530
+ const paramHeaderStyle = css({
531
+ display: "flex",
532
+ alignItems: "center",
533
+ gap: "8px",
534
+ flexWrap: "wrap"
535
+ });
536
+ const paramNameStyle = css({
537
+ fontSize: "var(--omnispec-font-size-sm)",
538
+ fontWeight: 700,
539
+ backgroundColor: "transparent",
540
+ padding: 0
541
+ });
542
+ const typeBadgeStyle = css({
543
+ fontSize: "var(--omnispec-font-size-xs)",
544
+ fontWeight: 400
545
+ });
546
+ const paramDescStyle = css({
547
+ margin: "4px 0 0",
548
+ fontSize: "var(--omnispec-font-size-base)",
549
+ color: "var(--omnispec-fg-secondary)",
550
+ lineHeight: 1.5
551
+ });
552
+ const operationStyle = css({
553
+ padding: "12px 0",
554
+ borderTop: "1px solid var(--omnispec-border-color)"
555
+ });
556
+ const opHeaderStyle = css({
557
+ display: "flex",
558
+ alignItems: "center",
559
+ gap: "8px",
560
+ marginBottom: "8px"
561
+ });
562
+ const actionBadgeBase = css({
563
+ display: "inline-block",
564
+ padding: "2px 6px",
565
+ borderRadius: "3px",
566
+ fontSize: "9px",
567
+ fontWeight: 700,
568
+ fontFamily: "var(--omnispec-font-mono)",
569
+ color: "#ffffff",
570
+ letterSpacing: "0.5px"
571
+ });
572
+ const opIdStyle = css({
573
+ fontSize: "var(--omnispec-font-size-sm)",
574
+ fontWeight: 700,
575
+ backgroundColor: "transparent",
576
+ padding: 0
577
+ });
578
+ const opSummaryStyle = css({
579
+ fontSize: "var(--omnispec-font-size-sm)",
580
+ color: "var(--omnispec-fg-secondary)"
581
+ });
582
+ const messageTitleStyle = css({
583
+ fontWeight: 400,
584
+ color: "var(--omnispec-fg-primary)"
585
+ });
586
+ const messageSummaryStyle = css({
587
+ margin: "0 0 8px",
588
+ fontSize: "var(--omnispec-font-size-base)",
589
+ color: "var(--omnispec-fg-secondary)"
590
+ });
591
+ const contentTypeStyle = css({
592
+ fontFamily: "var(--omnispec-font-mono)",
593
+ fontSize: "var(--omnispec-font-size-xs)",
594
+ color: "var(--omnispec-fg-muted)",
595
+ display: "block",
596
+ marginBottom: "8px",
597
+ backgroundColor: "transparent",
598
+ padding: 0
599
+ });
600
+ const headersWrapStyle = css({
601
+ marginTop: "16px"
602
+ });
603
+
604
+ function ComponentsSection({ components }) {
605
+ const schemas = Object.entries(components.schemas);
606
+ if (schemas.length === 0) return null;
607
+ return /* @__PURE__ */ jsxs("div", { className: `omnispec-async-components ${containerStyle}`, id: "schemas", children: [
608
+ /* @__PURE__ */ jsx("h2", { className: titleStyle, children: "Schemas" }),
609
+ /* @__PURE__ */ jsx("div", { className: schemaWrapperStyle, children: schemas.map(([name, schema]) => /* @__PURE__ */ jsx("div", { className: schemaStyle, id: `schema-${name}`, children: /* @__PURE__ */ jsx(
610
+ Collapsible,
611
+ {
612
+ title: /* @__PURE__ */ jsx("code", { className: schemaNameStyle, children: name }),
613
+ defaultOpen: false,
614
+ children: /* @__PURE__ */ jsx(SchemaTree, { nodes: schemaToNodes(schema) })
615
+ }
616
+ ) }, name)) })
617
+ ] });
618
+ }
619
+ const containerStyle = css({
620
+ marginTop: "2rem",
621
+ paddingTop: "1.5rem",
622
+ borderTop: "1px solid var(--omnispec-border-color)",
623
+ [mq.mobile]: {
624
+ borderTop: "none",
625
+ marginTop: "1.5rem",
626
+ paddingTop: "1rem"
627
+ }
628
+ });
629
+ const titleStyle = css({
630
+ margin: "0 0 16px",
631
+ fontSize: "var(--omnispec-h2-font-size)",
632
+ color: "var(--omnispec-h2-color)",
633
+ fontWeight: 700
634
+ });
635
+ const schemaWrapperStyle = css({
636
+ border: "1px solid var(--omnispec-border-color)",
637
+ borderRadius: "8px",
638
+ padding: "1.5rem 1rem"
639
+ });
640
+ const schemaStyle = css({
641
+ marginBottom: "8px"
642
+ });
643
+ const schemaNameStyle = css({
644
+ fontFamily: "var(--omnispec-font-mono)",
645
+ fontSize: "var(--omnispec-font-size-base)",
646
+ fontWeight: 600,
647
+ color: "var(--omnispec-color-primary)",
648
+ backgroundColor: "transparent",
649
+ padding: 0,
650
+ "&:hover": {
651
+ textDecoration: "underline"
652
+ }
653
+ });
654
+
655
+ function AsyncApiSpec({
656
+ spec,
657
+ theme,
658
+ layout = "sidebar",
659
+ sidebarPosition = "left",
660
+ defaultExpandOperations = false,
661
+ downloadLink,
662
+ sidebarNav,
663
+ slots = {},
664
+ schemaStyle,
665
+ pro,
666
+ onSpecLoaded,
667
+ className
668
+ }) {
669
+ const resolvedSchemaStyle = resolveSchemaStyle(schemaStyle, pro?.advancedSchemaStyles ?? false);
670
+ const { data: parsedSpec, state } = useAsyncApiSpec(spec);
671
+ const [searchQuery, setSearchQuery] = useState("");
672
+ const [allExpanded, setAllExpanded] = useState(defaultExpandOperations);
673
+ const [expandGeneration, setExpandGeneration] = useState(0);
674
+ const handleToggleExpand = useCallback(() => {
675
+ setAllExpanded((prev) => !prev);
676
+ setExpandGeneration((prev) => prev + 1);
677
+ }, []);
678
+ useMemo(() => {
679
+ if (parsedSpec && onSpecLoaded) {
680
+ const major = parseInt(parsedSpec.specVersion.split(".")[0], 10);
681
+ onSpecLoaded({
682
+ title: parsedSpec.title,
683
+ version: parsedSpec.version,
684
+ type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2
685
+ });
686
+ }
687
+ }, [parsedSpec, onSpecLoaded]);
688
+ const navItems = useMemo(() => {
689
+ if (!parsedSpec) return [];
690
+ const channelItems = parsedSpec.channels.map((ch) => {
691
+ const actionLabels = ch.operations.map(
692
+ (op) => op.action.toUpperCase()
693
+ ).join("/");
694
+ return {
695
+ id: `channel-${ch.name}`,
696
+ label: ch.address,
697
+ badge: actionLabels || void 0,
698
+ badgeColor: ch.operations[0]?.action === "subscribe" || ch.operations[0]?.action === "receive" ? "var(--omnispec-color-subscribe)" : "var(--omnispec-color-publish)"
699
+ };
700
+ });
701
+ const items = [];
702
+ if (parsedSpec.servers.length > 0) {
703
+ items.push({ id: "servers", label: "Servers" });
704
+ }
705
+ items.push({
706
+ id: "channels",
707
+ label: "Channels",
708
+ children: channelItems
709
+ });
710
+ if (Object.keys(parsedSpec.components.schemas).length > 0) {
711
+ items.push({
712
+ id: "schemas",
713
+ label: "Schemas",
714
+ children: Object.keys(parsedSpec.components.schemas).map((name) => ({
715
+ id: `schema-${name}`,
716
+ label: name
717
+ }))
718
+ });
719
+ }
720
+ return items;
721
+ }, [parsedSpec]);
722
+ const filteredChannels = useMemo(() => {
723
+ if (!parsedSpec || !searchQuery.trim()) return parsedSpec?.channels ?? [];
724
+ const q = searchQuery.toLowerCase();
725
+ return parsedSpec.channels.filter(
726
+ (ch) => ch.address.toLowerCase().includes(q) || ch.description?.toLowerCase().includes(q) || ch.operations.some(
727
+ (op) => op.operationId?.toLowerCase().includes(q) || op.summary?.toLowerCase().includes(q)
728
+ )
729
+ );
730
+ }, [parsedSpec, searchQuery]);
731
+ const handleNavSelect = useCallback((id) => {
732
+ const el = document.getElementById(id);
733
+ el?.scrollIntoView({ behavior: "smooth", block: "start" });
734
+ }, []);
735
+ const navSectionIds = useMemo(() => flattenNavItemIds(navItems), [navItems]);
736
+ const activeSection = useScrollSpy(navSectionIds);
737
+ if (state.status === "loading") {
738
+ return /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx("div", { className: `omnispec-asyncapi ${className ?? ""}`, children: /* @__PURE__ */ jsx(LoadingScreen, {}) }) });
739
+ }
740
+ if (state.status === "error") {
741
+ return /* @__PURE__ */ jsx(
742
+ SpecStatusScreen,
743
+ {
744
+ theme,
745
+ layout,
746
+ sidebarPosition,
747
+ slots,
748
+ sidebarNav,
749
+ premiumThemingEnabled: pro?.premiumThemingEnabled ?? false,
750
+ className: `omnispec-asyncapi ${className ?? ""}`,
751
+ children: /* @__PURE__ */ jsx(ErrorMessage, { title: "Failed to load specification", message: state.error })
752
+ }
753
+ );
754
+ }
755
+ if (!parsedSpec) return null;
756
+ const specNav = /* @__PURE__ */ jsxs(Fragment, { children: [
757
+ /* @__PURE__ */ jsx(
758
+ SearchBar,
759
+ {
760
+ placeholder: "Filter channels...",
761
+ onSearch: setSearchQuery
762
+ }
763
+ ),
764
+ /* @__PURE__ */ jsx(
765
+ NavTree,
766
+ {
767
+ items: navItems,
768
+ activeId: activeSection,
769
+ onSelect: handleNavSelect
770
+ }
771
+ )
772
+ ] });
773
+ const sidebar = buildSidebar(sidebarNav, specNav);
774
+ const resolvedDownloadLink = resolveDownloadLink(downloadLink, spec);
775
+ return /* @__PURE__ */ jsx(ConfigProvider, { config: { allowTryIt: false, layout, sidebarPosition, defaultExpandOperations, schemaStyle: resolvedSchemaStyle, slots, proRenderers: pro?.renderers ?? /* @__PURE__ */ new Map(), premiumThemingEnabled: pro?.premiumThemingEnabled ?? false }, children: /* @__PURE__ */ jsx(ExpandProvider, { expandAll: allExpanded, expandGeneration, children: /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx("div", { className: `omnispec-asyncapi ${className ?? ""}`, children: /* @__PURE__ */ jsx(ErrorBoundary, { title: "Failed to render this API reference", children: /* @__PURE__ */ jsxs(
776
+ DocLayout,
777
+ {
778
+ layout,
779
+ sidebarPosition,
780
+ sidebar,
781
+ sidebarHeader: slots.sidebarHeader,
782
+ sidebarFooter: slots.sidebarFooter,
783
+ header: slots.header,
784
+ footer: slots.footer,
785
+ children: [
786
+ /* @__PURE__ */ jsx(
787
+ SpecToolbar,
788
+ {
789
+ overview: /* @__PURE__ */ jsx(AsyncOverview, { spec: parsedSpec }),
790
+ expandLabel: "channels",
791
+ allExpanded,
792
+ onToggleExpand: handleToggleExpand,
793
+ downloadLink: resolvedDownloadLink
794
+ }
795
+ ),
796
+ /* @__PURE__ */ jsx("div", { id: "servers", children: /* @__PURE__ */ jsx(ServerList, { servers: parsedSpec.servers }) }),
797
+ /* @__PURE__ */ jsxs("div", { id: "channels", children: [
798
+ /* @__PURE__ */ jsx("h2", { className: css({ margin: "0 0 16px", fontSize: "var(--omnispec-h2-font-size)", fontWeight: "var(--omnispec-h2-font-weight)", color: "var(--omnispec-h2-color)" }), children: "Channels" }),
799
+ filteredChannels.map((channel) => /* @__PURE__ */ jsx(
800
+ ChannelDetail,
801
+ {
802
+ id: `channel-${channel.name}`,
803
+ channel,
804
+ expandAll: allExpanded,
805
+ expandGeneration
806
+ },
807
+ channel.name
808
+ ))
809
+ ] }),
810
+ /* @__PURE__ */ jsx(ComponentsSection, { components: parsedSpec.components })
811
+ ]
812
+ }
813
+ ) }) }) }) }) });
814
+ }
815
+
816
+ export { AsyncApiSpec };
817
+ //# sourceMappingURL=AsyncApiSpec-C3lsUpZk.js.map