@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,428 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var client = require('react-dom/client');
5
+ var OmniSpecRenderer = require('../chunks/OmniSpecRenderer-CE4wxVTL.js');
6
+ require('react/jsx-runtime');
7
+ require('../chunks/useSpecFetcher-BKz1jHTV.js');
8
+ require('@emotion/css');
9
+ require('../chunks/useSpecDetector-A4OwYrmY.js');
10
+ require('../chunks/ErrorBoundary-c1piU8da.js');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
+
32
+ function findInjectedStyles() {
33
+ const styles = [];
34
+ const head = typeof document !== "undefined" ? document.head : null;
35
+ if (!head) return styles;
36
+ head.querySelectorAll("style[data-emotion]").forEach((el) => {
37
+ styles.push(el);
38
+ });
39
+ return styles;
40
+ }
41
+ function attachStyleMirror({ shadow }) {
42
+ if (typeof document === "undefined" || typeof MutationObserver === "undefined") {
43
+ return () => {
44
+ };
45
+ }
46
+ const mirrorContainer = document.createElement("div");
47
+ mirrorContainer.setAttribute("data-omnispec-style-mirror", "");
48
+ shadow.insertBefore(mirrorContainer, shadow.firstChild);
49
+ const mirrored = /* @__PURE__ */ new WeakMap();
50
+ const cloneStyle = (src) => {
51
+ const clone = document.createElement("style");
52
+ for (const attr of Array.from(src.attributes)) {
53
+ clone.setAttribute(attr.name, attr.value);
54
+ }
55
+ clone.textContent = src.textContent;
56
+ return clone;
57
+ };
58
+ const adoptStyle = (src) => {
59
+ if (mirrored.has(src)) return;
60
+ const clone = cloneStyle(src);
61
+ mirrored.set(src, clone);
62
+ mirrorContainer.appendChild(clone);
63
+ };
64
+ for (const src of findInjectedStyles()) adoptStyle(src);
65
+ const headObserver = new MutationObserver((mutations) => {
66
+ for (const mutation of mutations) {
67
+ for (const node of Array.from(mutation.addedNodes)) {
68
+ if (node instanceof HTMLStyleElement && node.hasAttribute("data-emotion")) {
69
+ adoptStyle(node);
70
+ }
71
+ }
72
+ }
73
+ });
74
+ headObserver.observe(document.head, { childList: true });
75
+ const contentObserver = new MutationObserver((mutations) => {
76
+ for (const mutation of mutations) {
77
+ const target = mutation.target;
78
+ let styleEl = null;
79
+ if (target instanceof HTMLStyleElement) {
80
+ styleEl = target;
81
+ } else if (target.parentElement instanceof HTMLStyleElement) {
82
+ styleEl = target.parentElement;
83
+ }
84
+ if (styleEl && mirrored.has(styleEl)) {
85
+ const clone = mirrored.get(styleEl);
86
+ if (clone) clone.textContent = styleEl.textContent;
87
+ }
88
+ }
89
+ });
90
+ contentObserver.observe(document.head, {
91
+ childList: true,
92
+ subtree: true,
93
+ characterData: true
94
+ });
95
+ let frame = 0;
96
+ let stopped = false;
97
+ const startTime = performance.now();
98
+ const refresh = () => {
99
+ if (stopped) return;
100
+ for (const src of findInjectedStyles()) {
101
+ adoptStyle(src);
102
+ const clone = mirrored.get(src);
103
+ if (clone && clone.textContent !== src.textContent) {
104
+ clone.textContent = src.textContent;
105
+ }
106
+ }
107
+ if (performance.now() - startTime < 5e3) {
108
+ frame = requestAnimationFrame(refresh);
109
+ }
110
+ };
111
+ frame = requestAnimationFrame(refresh);
112
+ return () => {
113
+ stopped = true;
114
+ if (frame) cancelAnimationFrame(frame);
115
+ headObserver.disconnect();
116
+ contentObserver.disconnect();
117
+ mirrorContainer.remove();
118
+ };
119
+ }
120
+
121
+ function parseBooleanAttr(value) {
122
+ if (value === null) return void 0;
123
+ const normalized = value.trim().toLowerCase();
124
+ if (normalized === "false" || normalized === "0" || normalized === "off") return false;
125
+ return true;
126
+ }
127
+ function parseJsonAttr(value, attrName) {
128
+ if (value === null) return void 0;
129
+ try {
130
+ return JSON.parse(value);
131
+ } catch (err) {
132
+ console.error(
133
+ `[omnispec-renderer] Failed to parse attribute "${attrName}" as JSON. Use imperative property assignment for complex objects.`,
134
+ err
135
+ );
136
+ return void 0;
137
+ }
138
+ }
139
+ function readStringAttr(value) {
140
+ return value === null ? void 0 : value;
141
+ }
142
+ function readEnumAttr(value, allowed) {
143
+ if (value === null) return void 0;
144
+ return allowed.includes(value) ? value : void 0;
145
+ }
146
+ function resolveTheme(themeProp, themeBaseAttr, themeToggleAttr) {
147
+ const base = readEnumAttr(themeBaseAttr, ["light", "dark", "auto"]);
148
+ const themeToggle = parseBooleanAttr(themeToggleAttr);
149
+ if (themeProp) {
150
+ return {
151
+ ...themeProp,
152
+ base: themeProp.base ?? base ?? "light",
153
+ themeToggle: themeProp.themeToggle ?? themeToggle
154
+ };
155
+ }
156
+ if (base === void 0 && themeToggle === void 0) return void 0;
157
+ return {
158
+ base: base ?? "light",
159
+ themeToggle
160
+ };
161
+ }
162
+ function buildRendererProps(raw) {
163
+ const spec = raw.specProp ?? raw.specUrl ?? void 0;
164
+ if (spec === void 0) {
165
+ return null;
166
+ }
167
+ const props = { spec };
168
+ const theme = resolveTheme(raw.themeProp, raw.themeBase, raw.themeToggle);
169
+ if (theme) props.theme = theme;
170
+ if (raw.sidebarNavProp) props.sidebarNav = raw.sidebarNavProp;
171
+ const displayMode = readEnumAttr(raw.displayMode, ["compact", "reference"]);
172
+ if (displayMode) props.displayMode = displayMode;
173
+ const navigationMode = readEnumAttr(raw.navigationMode, ["grouped", "segmented"]);
174
+ if (navigationMode) props.navigationMode = navigationMode;
175
+ const layout = readEnumAttr(raw.layout, ["sidebar", "stacked"]);
176
+ if (layout) props.layout = layout;
177
+ const sidebarPosition = readEnumAttr(raw.sidebarPosition, ["left", "right"]);
178
+ if (sidebarPosition) props.sidebarPosition = sidebarPosition;
179
+ const tryItLayout = readEnumAttr(raw.tryItLayout, ["inline", "panel"]);
180
+ if (tryItLayout) props.tryItLayout = tryItLayout;
181
+ const schemaStyle = readEnumAttr(raw.schemaStyle, ["lines", "tokens", "chain", "table", "card"]);
182
+ if (schemaStyle) props.schemaStyle = schemaStyle;
183
+ const allowTryIt = parseBooleanAttr(raw.allowTryIt);
184
+ if (allowTryIt !== void 0) props.allowTryIt = allowTryIt;
185
+ const interactiveOAuth = parseBooleanAttr(raw.interactiveOAuth);
186
+ if (interactiveOAuth !== void 0) props.interactiveOAuth = interactiveOAuth;
187
+ const defaultExpand = parseBooleanAttr(raw.defaultExpandOperations);
188
+ if (defaultExpand !== void 0) props.defaultExpandOperations = defaultExpand;
189
+ const proxyUrl = readStringAttr(raw.proxyUrl);
190
+ if (proxyUrl) props.proxyUrl = proxyUrl;
191
+ if (raw.downloadLink !== null) {
192
+ const trimmed = raw.downloadLink.trim();
193
+ const asBool = parseBooleanAttr(raw.downloadLink);
194
+ if (trimmed === "true" || trimmed === "") {
195
+ props.downloadLink = true;
196
+ } else if (asBool === false) {
197
+ props.downloadLink = false;
198
+ } else {
199
+ props.downloadLink = trimmed;
200
+ }
201
+ }
202
+ const docsUrl = readStringAttr(raw.docsUrl);
203
+ if (docsUrl) props.docsUrl = docsUrl;
204
+ const upgradeUrl = readStringAttr(raw.upgradeUrl);
205
+ if (upgradeUrl) props.upgradeUrl = upgradeUrl;
206
+ const serverUrl = readStringAttr(raw.serverUrl);
207
+ if (serverUrl) props.serverUrl = serverUrl;
208
+ const ttlRaw = readStringAttr(raw.tryItPersistTtl);
209
+ if (ttlRaw !== void 0 && ttlRaw.trim() !== "") {
210
+ const ttl = Number(ttlRaw);
211
+ if (Number.isFinite(ttl) && ttl >= 0) props.tryItPersistTtl = ttl;
212
+ }
213
+ return props;
214
+ }
215
+
216
+ const TAG_NAME = "omnispec-renderer";
217
+ const OBSERVED_ATTRIBUTES = [
218
+ "spec-url",
219
+ "theme-base",
220
+ "theme-toggle",
221
+ "display-mode",
222
+ "navigation-mode",
223
+ "layout",
224
+ "sidebar-position",
225
+ "try-it-layout",
226
+ "schema-style",
227
+ "allow-try-it",
228
+ "interactive-oauth",
229
+ "default-expand-operations",
230
+ "proxy-url",
231
+ "download-link",
232
+ "docs-url",
233
+ "upgrade-url",
234
+ "server-url",
235
+ "try-it-persist-ttl",
236
+ // Complex/JSON attributes — also surface as properties for imperative use.
237
+ "theme",
238
+ "sidebar-nav",
239
+ "spec"
240
+ ];
241
+ class OmniSpecRendererElement extends HTMLElement {
242
+ constructor() {
243
+ super(...arguments);
244
+ this.root = null;
245
+ this.mountPoint = null;
246
+ this.detachStyles = null;
247
+ this.rafHandle = null;
248
+ // Imperative property storage. These win over attributes when set.
249
+ this.specProp = void 0;
250
+ this.themeProp = void 0;
251
+ this.sidebarNavProp = void 0;
252
+ }
253
+ static get observedAttributes() {
254
+ return OBSERVED_ATTRIBUTES;
255
+ }
256
+ // ---------- Property accessors ----------
257
+ get spec() {
258
+ return this.specProp;
259
+ }
260
+ set spec(value) {
261
+ this.specProp = value;
262
+ this.scheduleRender();
263
+ }
264
+ get theme() {
265
+ return this.themeProp;
266
+ }
267
+ set theme(value) {
268
+ this.themeProp = value;
269
+ this.scheduleRender();
270
+ }
271
+ get sidebarNav() {
272
+ return this.sidebarNavProp;
273
+ }
274
+ set sidebarNav(value) {
275
+ this.sidebarNavProp = value;
276
+ this.scheduleRender();
277
+ }
278
+ // ---------- Lifecycle ----------
279
+ connectedCallback() {
280
+ if (!this.shadowRoot) {
281
+ const shadow = this.attachShadow({ mode: "open" });
282
+ const hostStyle = document.createElement("style");
283
+ hostStyle.textContent = ":host { display: block; width: 100%; height: 100%; }";
284
+ shadow.appendChild(hostStyle);
285
+ const mount = document.createElement("div");
286
+ mount.setAttribute("data-omnispec-mount", "");
287
+ mount.style.width = "100%";
288
+ mount.style.height = "100%";
289
+ shadow.appendChild(mount);
290
+ this.mountPoint = mount;
291
+ this.detachStyles = attachStyleMirror({ shadow });
292
+ }
293
+ this.syncJsonAttributes();
294
+ this.scheduleRender();
295
+ }
296
+ disconnectedCallback() {
297
+ if (this.rafHandle !== null) {
298
+ cancelAnimationFrame(this.rafHandle);
299
+ this.rafHandle = null;
300
+ }
301
+ if (this.root) {
302
+ this.root.unmount();
303
+ this.root = null;
304
+ }
305
+ if (this.detachStyles) {
306
+ this.detachStyles();
307
+ this.detachStyles = null;
308
+ }
309
+ this.mountPoint = null;
310
+ }
311
+ attributeChangedCallback(name, oldValue, newValue) {
312
+ if (oldValue === newValue) return;
313
+ if (name === "theme") {
314
+ this.themeProp = parseJsonAttr(newValue, "theme");
315
+ } else if (name === "sidebar-nav") {
316
+ this.sidebarNavProp = parseJsonAttr(newValue, "sidebar-nav");
317
+ } else if (name === "spec") {
318
+ this.specProp = parseJsonAttr(newValue, "spec");
319
+ }
320
+ this.scheduleRender();
321
+ }
322
+ // ---------- Event emission ----------
323
+ emit(name, detail) {
324
+ this.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));
325
+ }
326
+ // ---------- Internal helpers ----------
327
+ /**
328
+ * Reads JSON-shaped attributes that may have been set before
329
+ * `connectedCallback` ran (e.g. inline on the element). Imperative property
330
+ * assignments always win, so we only populate from attributes if the
331
+ * corresponding property has not been explicitly set.
332
+ */
333
+ syncJsonAttributes() {
334
+ if (this.specProp === void 0) {
335
+ const attr = this.getAttribute("spec");
336
+ if (attr !== null) {
337
+ this.specProp = parseJsonAttr(attr, "spec");
338
+ }
339
+ }
340
+ if (this.themeProp === void 0) {
341
+ const attr = this.getAttribute("theme");
342
+ if (attr !== null) {
343
+ this.themeProp = parseJsonAttr(attr, "theme");
344
+ }
345
+ }
346
+ if (this.sidebarNavProp === void 0) {
347
+ const attr = this.getAttribute("sidebar-nav");
348
+ if (attr !== null) {
349
+ this.sidebarNavProp = parseJsonAttr(attr, "sidebar-nav");
350
+ }
351
+ }
352
+ }
353
+ /**
354
+ * Batches multiple attribute/property changes into a single render via
355
+ * requestAnimationFrame. Falls back to a microtask in non-DOM environments.
356
+ */
357
+ scheduleRender() {
358
+ if (!this.mountPoint) return;
359
+ if (this.rafHandle !== null) return;
360
+ const schedule = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (cb) => {
361
+ queueMicrotask(() => cb(performance.now()));
362
+ return 0;
363
+ };
364
+ this.rafHandle = schedule(() => {
365
+ this.rafHandle = null;
366
+ this.render();
367
+ });
368
+ }
369
+ render() {
370
+ if (!this.mountPoint) return;
371
+ const attr = (name) => this.getAttribute(name);
372
+ const props = buildRendererProps({
373
+ specUrl: attr("spec-url"),
374
+ specProp: this.specProp,
375
+ themeProp: this.themeProp,
376
+ themeBase: attr("theme-base"),
377
+ themeToggle: attr("theme-toggle"),
378
+ sidebarNavProp: this.sidebarNavProp,
379
+ displayMode: attr("display-mode"),
380
+ navigationMode: attr("navigation-mode"),
381
+ layout: attr("layout"),
382
+ sidebarPosition: attr("sidebar-position"),
383
+ tryItLayout: attr("try-it-layout"),
384
+ schemaStyle: attr("schema-style"),
385
+ allowTryIt: attr("allow-try-it"),
386
+ interactiveOAuth: attr("interactive-oauth"),
387
+ defaultExpandOperations: attr("default-expand-operations"),
388
+ proxyUrl: attr("proxy-url"),
389
+ downloadLink: attr("download-link"),
390
+ docsUrl: attr("docs-url"),
391
+ upgradeUrl: attr("upgrade-url"),
392
+ serverUrl: attr("server-url"),
393
+ tryItPersistTtl: attr("try-it-persist-ttl")
394
+ });
395
+ if (!props) {
396
+ if (this.root) {
397
+ this.root.unmount();
398
+ this.root = null;
399
+ }
400
+ return;
401
+ }
402
+ const propsWithEvents = {
403
+ ...props,
404
+ onSpecLoaded: (info) => this.emit("spec-loaded", info),
405
+ onTryItRequest: (req) => this.emit("try-it-request", req),
406
+ onTryItResponse: (res) => this.emit("try-it-response", res)
407
+ };
408
+ if (!this.root) {
409
+ this.root = client.createRoot(this.mountPoint);
410
+ }
411
+ this.root.render(React__namespace.createElement(OmniSpecRenderer.OmniSpecRenderer, propsWithEvents));
412
+ }
413
+ }
414
+
415
+ function defineOmniSpecRenderer(tagName = TAG_NAME) {
416
+ if (typeof window === "undefined" || typeof customElements === "undefined") {
417
+ return;
418
+ }
419
+ if (customElements.get(tagName)) return;
420
+ customElements.define(tagName, OmniSpecRendererElement);
421
+ }
422
+ defineOmniSpecRenderer();
423
+
424
+ exports.OmniSpecRendererElement = OmniSpecRendererElement;
425
+ exports.TAG_NAME = TAG_NAME;
426
+ exports.buildRendererProps = buildRendererProps;
427
+ exports.defineOmniSpecRenderer = defineOmniSpecRenderer;
428
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/wc/style-injection.ts","../../../src/wc/attribute-bridge.ts","../../../src/wc/OmniSpecRendererElement.ts","../../../src/wc/index.ts"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Shadow DOM style mirroring.\n *\n * `@emotion/css` injects styles into `document.head` via a singleton cache. To\n * make those styles apply inside a shadow root, we mirror every emotion style\n * element (and similar dynamically-injected style elements) from `document.head`\n * into the shadow root, and keep them in sync with a MutationObserver.\n *\n * This avoids refactoring all internal `css` calls to use a per-instance cache,\n * which would be a much larger change. The trade-off is a small amount of style\n * duplication; on most pages this is negligible because emotion's styles are\n * tiny.\n */\n\n/**\n * Returns an array of style elements in `document.head` that look like they\n * were dynamically inserted by a CSS-in-JS library or by the renderer itself\n * (theme tokens). We use `data-emotion` (emotion) and any inline `<style>` with\n * omnispec tokens. The selectors are conservative and adjustable.\n */\nfunction findInjectedStyles(): HTMLStyleElement[] {\n const styles: HTMLStyleElement[] = []\n const head = typeof document !== 'undefined' ? document.head : null\n if (!head) return styles\n\n // Emotion uses <style data-emotion=\"css ...\"> elements.\n head.querySelectorAll<HTMLStyleElement>('style[data-emotion]').forEach((el) => {\n styles.push(el)\n })\n\n return styles\n}\n\ninterface StyleMirrorOptions {\n /** Shadow root to mirror styles into. */\n shadow: ShadowRoot\n}\n\n/**\n * Sets up a style mirror that clones emotion-generated styles from\n * `document.head` into the given shadow root, and keeps the mirror in sync as\n * new styles are added or existing ones change.\n *\n * Returns a teardown function that removes the observer and the mirrored\n * styles.\n */\nexport function attachStyleMirror({ shadow }: StyleMirrorOptions): () => void {\n if (typeof document === 'undefined' || typeof MutationObserver === 'undefined') {\n return () => {}\n }\n\n // Container in the shadow root that holds the mirrored <style> elements.\n // Putting them in a single container makes teardown trivial.\n const mirrorContainer = document.createElement('div')\n mirrorContainer.setAttribute('data-omnispec-style-mirror', '')\n shadow.insertBefore(mirrorContainer, shadow.firstChild)\n\n /** Map source style → cloned style in the shadow root. */\n const mirrored = new WeakMap<HTMLStyleElement, HTMLStyleElement>()\n\n const cloneStyle = (src: HTMLStyleElement): HTMLStyleElement => {\n const clone = document.createElement('style')\n // Copy attributes so emotion can still find/hydrate if it queries for them.\n for (const attr of Array.from(src.attributes)) {\n clone.setAttribute(attr.name, attr.value)\n }\n clone.textContent = src.textContent\n return clone\n }\n\n const adoptStyle = (src: HTMLStyleElement) => {\n if (mirrored.has(src)) return\n const clone = cloneStyle(src)\n mirrored.set(src, clone)\n mirrorContainer.appendChild(clone)\n }\n\n // Seed with any styles already in the document.\n for (const src of findInjectedStyles()) adoptStyle(src)\n\n // Watch for new emotion styles being inserted.\n const headObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n for (const node of Array.from(mutation.addedNodes)) {\n if (node instanceof HTMLStyleElement && node.hasAttribute('data-emotion')) {\n adoptStyle(node)\n }\n }\n }\n })\n headObserver.observe(document.head, { childList: true })\n\n // Watch each tracked source for textContent changes. Emotion appends rules\n // to its existing <style> elements rather than creating new ones, so we\n // need a per-element observer.\n const contentObserver = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n const target = mutation.target\n // The mutation target for a <style>'s sheet manipulation is usually the\n // <style> element itself (childList) or a TextNode (characterData).\n let styleEl: HTMLStyleElement | null = null\n if (target instanceof HTMLStyleElement) {\n styleEl = target\n } else if (target.parentElement instanceof HTMLStyleElement) {\n styleEl = target.parentElement\n }\n if (styleEl && mirrored.has(styleEl)) {\n const clone = mirrored.get(styleEl)\n if (clone) clone.textContent = styleEl.textContent\n }\n }\n })\n\n // Observe content changes on every tracked style. We attach a single observer\n // to document.head with characterData/subtree to catch them all.\n contentObserver.observe(document.head, {\n childList: true,\n subtree: true,\n characterData: true,\n })\n\n // Emotion also calls `insertRule` directly on the CSSStyleSheet, which does\n // not trigger MutationObserver. To handle that case, poll once per animation\n // frame for the first few seconds after mount to pick up any late additions.\n // After that, observer coverage is sufficient for the renderer's lifetime.\n let frame = 0\n let stopped = false\n const startTime = performance.now()\n const refresh = () => {\n if (stopped) return\n for (const src of findInjectedStyles()) {\n adoptStyle(src)\n const clone = mirrored.get(src)\n if (clone && clone.textContent !== src.textContent) {\n clone.textContent = src.textContent\n }\n }\n // Stop polling after 5 seconds; observers handle the long tail.\n if (performance.now() - startTime < 5000) {\n frame = requestAnimationFrame(refresh)\n }\n }\n frame = requestAnimationFrame(refresh)\n\n return () => {\n stopped = true\n if (frame) cancelAnimationFrame(frame)\n headObserver.disconnect()\n contentObserver.disconnect()\n mirrorContainer.remove()\n }\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * Attribute bridge — converts HTML attribute strings to typed React props.\n *\n * Strings are coerced into their expected runtime types (boolean, JSON-parsed\n * object) with safe error handling. Parse failures log a console error and\n * return undefined so the React component falls back to its default behavior.\n */\n\nimport type { OmniSpecRendererProps } from '../unified/OmniSpecRenderer'\nimport type { ThemeConfig } from '../core/types/theme.types'\nimport type { SidebarNavConfig } from '../core/types/sidebar-nav.types'\n\n/**\n * Coerces a string attribute to a boolean. Treats `'false'`, `'0'`, and `'off'`\n * (case-insensitive) as `false`; everything else (including the empty string\n * for a bare attribute) is `true`. Returns `undefined` if the attribute is null.\n */\nexport function parseBooleanAttr(value: string | null): boolean | undefined {\n if (value === null) return undefined\n const normalized = value.trim().toLowerCase()\n if (normalized === 'false' || normalized === '0' || normalized === 'off') return false\n return true\n}\n\n/**\n * Parses an attribute string as JSON. Returns `undefined` on null input or on\n * parse failure (with a console.error so consumers can debug).\n */\nexport function parseJsonAttr<T>(value: string | null, attrName: string): T | undefined {\n if (value === null) return undefined\n try {\n return JSON.parse(value) as T\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\n `[omnispec-renderer] Failed to parse attribute \"${attrName}\" as JSON. ` +\n 'Use imperative property assignment for complex objects.',\n err,\n )\n return undefined\n }\n}\n\n/**\n * Reads a string attribute. Returns `undefined` for null so React treats it as\n * \"prop not set\" and uses its own default.\n */\nexport function readStringAttr(value: string | null): string | undefined {\n return value === null ? undefined : value\n}\n\n/**\n * Validates a string against an allow-list. Returns undefined if the value is\n * null or not in the list, otherwise the value itself.\n */\nexport function readEnumAttr<T extends string>(\n value: string | null,\n allowed: readonly T[],\n): T | undefined {\n if (value === null) return undefined\n return allowed.includes(value as T) ? (value as T) : undefined\n}\n\n/**\n * Reads `theme-base` plus the imperative `theme` property and merges them.\n * The imperative property always wins for fields it specifies; the attribute\n * acts as a shorthand for `{ base: 'auto' | 'light' | 'dark' }`.\n */\nexport function resolveTheme(\n themeProp: ThemeConfig | undefined,\n themeBaseAttr: string | null,\n themeToggleAttr: string | null,\n): ThemeConfig | undefined {\n const base = readEnumAttr(themeBaseAttr, ['light', 'dark', 'auto'] as const)\n const themeToggle = parseBooleanAttr(themeToggleAttr)\n\n if (themeProp) {\n return {\n ...themeProp,\n base: themeProp.base ?? base ?? 'light',\n themeToggle: themeProp.themeToggle ?? themeToggle,\n }\n }\n\n if (base === undefined && themeToggle === undefined) return undefined\n\n return {\n base: base ?? 'light',\n themeToggle,\n }\n}\n\nexport interface RawAttributes {\n /** URL or raw spec content. */\n specUrl: string | null\n /** Imperative property: parsed spec object, string, or undefined. */\n specProp: OmniSpecRendererProps['spec'] | undefined\n /** Imperative property: theme config object. */\n themeProp: ThemeConfig | undefined\n /** `theme-base` attribute: `'light' | 'dark' | 'auto'`. */\n themeBase: string | null\n /** `theme-toggle` attribute. */\n themeToggle: string | null\n /** Imperative property: sidebar nav config. */\n sidebarNavProp: SidebarNavConfig | undefined\n /** `display-mode` attribute: `'compact' | 'reference'`. */\n displayMode: string | null\n /** `navigation-mode` attribute: `'grouped' | 'segmented'`. */\n navigationMode: string | null\n /** `layout` attribute: `'sidebar' | 'stacked'`. */\n layout: string | null\n /** `sidebar-position` attribute: `'left' | 'right'`. */\n sidebarPosition: string | null\n /** `try-it-layout` attribute: `'inline' | 'panel'`. */\n tryItLayout: string | null\n /** `schema-style` attribute: `'lines' | 'tokens' | 'chain' | 'table' | 'card'`. */\n schemaStyle: string | null\n /** `allow-try-it` attribute. */\n allowTryIt: string | null\n /** `interactive-oauth` attribute — opt out of the Pro interactive OAuth flow. */\n interactiveOAuth: string | null\n /** `default-expand-operations` attribute. */\n defaultExpandOperations: string | null\n /** `proxy-url` attribute. */\n proxyUrl: string | null\n /** `download-link` attribute — boolean string or URL. */\n downloadLink: string | null\n /** `docs-url` attribute. */\n docsUrl: string | null\n /** `upgrade-url` attribute. */\n upgradeUrl: string | null\n /** `server-url` attribute — forces a single server/base URL at render time. */\n serverUrl: string | null\n /** `try-it-persist-ttl` attribute — max age (seconds) for persisted Try-It inputs; 0 disables. */\n tryItPersistTtl: string | null\n}\n\n/**\n * Builds a final `OmniSpecRendererProps` object from raw attribute values and any\n * imperative property assignments. Imperative properties take precedence.\n */\nexport function buildRendererProps(raw: RawAttributes): OmniSpecRendererProps | null {\n const spec = raw.specProp ?? raw.specUrl ?? undefined\n if (spec === undefined) {\n // Without a spec there's nothing to render.\n return null\n }\n\n const props: OmniSpecRendererProps = { spec }\n\n const theme = resolveTheme(raw.themeProp, raw.themeBase, raw.themeToggle)\n if (theme) props.theme = theme\n\n if (raw.sidebarNavProp) props.sidebarNav = raw.sidebarNavProp\n\n const displayMode = readEnumAttr(raw.displayMode, ['compact', 'reference'] as const)\n if (displayMode) props.displayMode = displayMode\n\n const navigationMode = readEnumAttr(raw.navigationMode, ['grouped', 'segmented'] as const)\n if (navigationMode) props.navigationMode = navigationMode\n\n const layout = readEnumAttr(raw.layout, ['sidebar', 'stacked'] as const)\n if (layout) props.layout = layout\n\n const sidebarPosition = readEnumAttr(raw.sidebarPosition, ['left', 'right'] as const)\n if (sidebarPosition) props.sidebarPosition = sidebarPosition\n\n const tryItLayout = readEnumAttr(raw.tryItLayout, ['inline', 'panel'] as const)\n if (tryItLayout) props.tryItLayout = tryItLayout\n\n const schemaStyle = readEnumAttr(raw.schemaStyle, ['lines', 'tokens', 'chain', 'table', 'card'] as const)\n if (schemaStyle) props.schemaStyle = schemaStyle\n\n const allowTryIt = parseBooleanAttr(raw.allowTryIt)\n if (allowTryIt !== undefined) props.allowTryIt = allowTryIt\n\n const interactiveOAuth = parseBooleanAttr(raw.interactiveOAuth)\n if (interactiveOAuth !== undefined) props.interactiveOAuth = interactiveOAuth\n\n const defaultExpand = parseBooleanAttr(raw.defaultExpandOperations)\n if (defaultExpand !== undefined) props.defaultExpandOperations = defaultExpand\n\n const proxyUrl = readStringAttr(raw.proxyUrl)\n if (proxyUrl) props.proxyUrl = proxyUrl\n\n if (raw.downloadLink !== null) {\n const trimmed = raw.downloadLink.trim()\n const asBool = parseBooleanAttr(raw.downloadLink)\n // Treat a non-true/false string as a literal URL.\n if (trimmed === 'true' || trimmed === '') {\n props.downloadLink = true\n } else if (asBool === false) {\n props.downloadLink = false\n } else {\n props.downloadLink = trimmed\n }\n }\n\n const docsUrl = readStringAttr(raw.docsUrl)\n if (docsUrl) props.docsUrl = docsUrl\n\n const upgradeUrl = readStringAttr(raw.upgradeUrl)\n if (upgradeUrl) props.upgradeUrl = upgradeUrl\n\n const serverUrl = readStringAttr(raw.serverUrl)\n if (serverUrl) props.serverUrl = serverUrl\n\n const ttlRaw = readStringAttr(raw.tryItPersistTtl)\n if (ttlRaw !== undefined && ttlRaw.trim() !== '') {\n const ttl = Number(ttlRaw)\n if (Number.isFinite(ttl) && ttl >= 0) props.tryItPersistTtl = ttl\n }\n\n return props\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * `<omnispec-renderer>` custom element.\n *\n * Wraps the React `OmniSpecRenderer` component so it can be used from any\n * framework (vanilla HTML, Vue, Angular, Svelte, ...) via a standard\n * Web Component API.\n *\n * Two configuration paths are supported:\n *\n * 1. Declarative HTML attributes for simple/scalar config:\n * <omnispec-renderer\n * spec-url=\"https://petstore3.swagger.io/api/v3/openapi.json\"\n * theme-base=\"auto\"\n * display-mode=\"compact\"\n * ></omnispec-renderer>\n *\n * 2. Imperative property assignment for complex/JSON config:\n * const el = document.querySelector('omnispec-renderer')\n * el.spec = { openapi: '3.0.3', info: { ... }, paths: { ... } }\n * el.theme = { base: 'dark', overrides: { ... } }\n * el.sidebarNav = { items: [...] }\n *\n * Both can be mixed freely — the imperative property wins for any field it\n * specifies.\n *\n * Shadow DOM mode is `open` (allows inspection via `el.shadowRoot`). Design\n * tokens (`--omnispec-*`) defined on the host element cascade into the shadow\n * root automatically, since CSS custom properties inherit through the shadow\n * boundary.\n */\n\nimport * as React from 'react'\nimport type { Root } from 'react-dom/client'\nimport { createRoot } from 'react-dom/client'\nimport { OmniSpecRenderer } from '../unified/OmniSpecRenderer'\nimport type { OmniSpecRendererProps } from '../unified/OmniSpecRenderer'\nimport type { ThemeConfig } from '../core/types/theme.types'\nimport type { SidebarNavConfig } from '../core/types/sidebar-nav.types'\nimport type { SpecLoadedInfo } from '../core/types/common.types'\nimport type { TryItRequest, TryItResponse } from '../core/types/try-it.types'\nimport { attachStyleMirror } from './style-injection'\nimport { buildRendererProps, parseJsonAttr } from './attribute-bridge'\n\n/** Tag name the element is registered under. */\nexport const TAG_NAME = 'omnispec-renderer'\n\n/** Observed declarative attributes. */\nconst OBSERVED_ATTRIBUTES = [\n 'spec-url',\n 'theme-base',\n 'theme-toggle',\n 'display-mode',\n 'navigation-mode',\n 'layout',\n 'sidebar-position',\n 'try-it-layout',\n 'schema-style',\n 'allow-try-it',\n 'interactive-oauth',\n 'default-expand-operations',\n 'proxy-url',\n 'download-link',\n 'docs-url',\n 'upgrade-url',\n 'server-url',\n 'try-it-persist-ttl',\n // Complex/JSON attributes — also surface as properties for imperative use.\n 'theme',\n 'sidebar-nav',\n 'spec',\n] as const\n\ntype ObservedAttribute = typeof OBSERVED_ATTRIBUTES[number]\n\nexport class OmniSpecRendererElement extends HTMLElement {\n static get observedAttributes(): readonly string[] {\n return OBSERVED_ATTRIBUTES\n }\n\n private root: Root | null = null\n private mountPoint: HTMLDivElement | null = null\n private detachStyles: (() => void) | null = null\n private rafHandle: number | null = null\n\n // Imperative property storage. These win over attributes when set.\n private specProp: OmniSpecRendererProps['spec'] | undefined = undefined\n private themeProp: ThemeConfig | undefined = undefined\n private sidebarNavProp: SidebarNavConfig | undefined = undefined\n\n // ---------- Property accessors ----------\n\n get spec(): OmniSpecRendererProps['spec'] | undefined {\n return this.specProp\n }\n\n set spec(value: OmniSpecRendererProps['spec'] | undefined) {\n this.specProp = value\n this.scheduleRender()\n }\n\n get theme(): ThemeConfig | undefined {\n return this.themeProp\n }\n\n set theme(value: ThemeConfig | undefined) {\n this.themeProp = value\n this.scheduleRender()\n }\n\n get sidebarNav(): SidebarNavConfig | undefined {\n return this.sidebarNavProp\n }\n\n set sidebarNav(value: SidebarNavConfig | undefined) {\n this.sidebarNavProp = value\n this.scheduleRender()\n }\n\n // ---------- Lifecycle ----------\n\n connectedCallback(): void {\n if (!this.shadowRoot) {\n const shadow = this.attachShadow({ mode: 'open' })\n // Host display defaults; consumers can override via CSS on the host.\n const hostStyle = document.createElement('style')\n hostStyle.textContent = ':host { display: block; width: 100%; height: 100%; }'\n shadow.appendChild(hostStyle)\n\n const mount = document.createElement('div')\n mount.setAttribute('data-omnispec-mount', '')\n mount.style.width = '100%'\n mount.style.height = '100%'\n shadow.appendChild(mount)\n this.mountPoint = mount\n\n this.detachStyles = attachStyleMirror({ shadow })\n }\n\n // Promote any JSON attributes set before connection into the property\n // store. Imperative assignments take priority over the attribute reflection.\n this.syncJsonAttributes()\n this.scheduleRender()\n }\n\n disconnectedCallback(): void {\n if (this.rafHandle !== null) {\n cancelAnimationFrame(this.rafHandle)\n this.rafHandle = null\n }\n if (this.root) {\n this.root.unmount()\n this.root = null\n }\n if (this.detachStyles) {\n this.detachStyles()\n this.detachStyles = null\n }\n this.mountPoint = null\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {\n if (oldValue === newValue) return\n // JSON attributes overwrite the property store on change.\n if (name === 'theme') {\n this.themeProp = parseJsonAttr<ThemeConfig>(newValue, 'theme')\n } else if (name === 'sidebar-nav') {\n this.sidebarNavProp = parseJsonAttr<SidebarNavConfig>(newValue, 'sidebar-nav')\n } else if (name === 'spec') {\n this.specProp = parseJsonAttr<OmniSpecRendererProps['spec']>(newValue, 'spec')\n }\n this.scheduleRender()\n }\n\n // ---------- Event emission ----------\n\n private emit<T>(name: string, detail: T): void {\n this.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }))\n }\n\n // ---------- Internal helpers ----------\n\n /**\n * Reads JSON-shaped attributes that may have been set before\n * `connectedCallback` ran (e.g. inline on the element). Imperative property\n * assignments always win, so we only populate from attributes if the\n * corresponding property has not been explicitly set.\n */\n private syncJsonAttributes(): void {\n if (this.specProp === undefined) {\n const attr = this.getAttribute('spec')\n if (attr !== null) {\n this.specProp = parseJsonAttr<OmniSpecRendererProps['spec']>(attr, 'spec')\n }\n }\n if (this.themeProp === undefined) {\n const attr = this.getAttribute('theme')\n if (attr !== null) {\n this.themeProp = parseJsonAttr<ThemeConfig>(attr, 'theme')\n }\n }\n if (this.sidebarNavProp === undefined) {\n const attr = this.getAttribute('sidebar-nav')\n if (attr !== null) {\n this.sidebarNavProp = parseJsonAttr<SidebarNavConfig>(attr, 'sidebar-nav')\n }\n }\n }\n\n /**\n * Batches multiple attribute/property changes into a single render via\n * requestAnimationFrame. Falls back to a microtask in non-DOM environments.\n */\n private scheduleRender(): void {\n if (!this.mountPoint) return\n if (this.rafHandle !== null) return\n const schedule =\n typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : (cb: FrameRequestCallback): number => {\n queueMicrotask(() => cb(performance.now()))\n return 0\n }\n this.rafHandle = schedule(() => {\n this.rafHandle = null\n this.render()\n })\n }\n\n private render(): void {\n if (!this.mountPoint) return\n\n const attr = (name: ObservedAttribute): string | null => this.getAttribute(name)\n const props = buildRendererProps({\n specUrl: attr('spec-url'),\n specProp: this.specProp,\n themeProp: this.themeProp,\n themeBase: attr('theme-base'),\n themeToggle: attr('theme-toggle'),\n sidebarNavProp: this.sidebarNavProp,\n displayMode: attr('display-mode'),\n navigationMode: attr('navigation-mode'),\n layout: attr('layout'),\n sidebarPosition: attr('sidebar-position'),\n tryItLayout: attr('try-it-layout'),\n schemaStyle: attr('schema-style'),\n allowTryIt: attr('allow-try-it'),\n interactiveOAuth: attr('interactive-oauth'),\n defaultExpandOperations: attr('default-expand-operations'),\n proxyUrl: attr('proxy-url'),\n downloadLink: attr('download-link'),\n docsUrl: attr('docs-url'),\n upgradeUrl: attr('upgrade-url'),\n serverUrl: attr('server-url'),\n tryItPersistTtl: attr('try-it-persist-ttl'),\n })\n\n if (!props) {\n if (this.root) {\n this.root.unmount()\n this.root = null\n }\n return\n }\n\n // Wire up event callbacks so consumers can listen via `addEventListener`.\n const propsWithEvents: OmniSpecRendererProps = {\n ...props,\n onSpecLoaded: (info: SpecLoadedInfo) => this.emit('spec-loaded', info),\n onTryItRequest: (req: TryItRequest) => this.emit('try-it-request', req),\n onTryItResponse: (res: TryItResponse) => this.emit('try-it-response', res),\n }\n\n if (!this.root) {\n this.root = createRoot(this.mountPoint)\n }\n this.root.render(React.createElement(OmniSpecRenderer, propsWithEvents))\n }\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\n/**\n * `@apiboost/omnispec/wc` — Web Component entry point.\n *\n * Importing this module registers the `<omnispec-renderer>` custom element\n * exactly once. Importing it multiple times is safe.\n *\n * @example Vanilla HTML\n * ```html\n * <script type=\"module\" src=\"/path/to/omnispec-wc.js\"></script>\n * <omnispec-renderer spec-url=\"/openapi.json\"></omnispec-renderer>\n * ```\n *\n * @example Imperative\n * ```ts\n * import { OmniSpecRendererElement, defineOmniSpecRenderer } from '@apiboost/omnispec/wc'\n * defineOmniSpecRenderer()\n * const el = document.createElement('omnispec-renderer') as OmniSpecRendererElement\n * el.spec = parsedSpecObject\n * el.theme = { base: 'dark' }\n * document.body.appendChild(el)\n * ```\n */\n\nimport { OmniSpecRendererElement, TAG_NAME } from './OmniSpecRendererElement'\n\nexport { OmniSpecRendererElement, TAG_NAME }\nexport { buildRendererProps } from './attribute-bridge'\n\n/**\n * Registers the `<omnispec-renderer>` custom element if it has not already been\n * registered. Safe to call multiple times.\n *\n * @param tagName Override the element tag (defaults to `'omnispec-renderer'`).\n */\nexport function defineOmniSpecRenderer(tagName: string = TAG_NAME): void {\n if (typeof window === 'undefined' || typeof customElements === 'undefined') {\n return\n }\n if (customElements.get(tagName)) return\n customElements.define(tagName, OmniSpecRendererElement)\n}\n\n// Auto-register on import. Consumers who want to defer registration can call\n// `defineOmniSpecRenderer(customTag)` manually after stubbing `customElements`.\ndefineOmniSpecRenderer()\n"],"names":["createRoot","React","OmniSpecRenderer"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { AsyncApiSpec } from '../chunks/AsyncApiSpec-C3lsUpZk.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '@emotion/css';
5
+ import '../chunks/useSpecFetcher-CZvAnU7Z.js';
6
+ import '../chunks/Collapsible-DA6-nS46.js';
7
+ import '@emotion/styled';
8
+ import '../chunks/ErrorBoundary-posRNrbt.js';
9
+ import '../chunks/ref-resolver-BIrHJOjz.js';
10
+ import '../chunks/ssrf-guard-CsZoYdEq.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}