@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,23 @@
1
+ const isPrivateIp = (hostname) => {
2
+ const h = hostname.replace(/^\[|]$/g, "");
3
+ if (h === "localhost" || h.startsWith("127.")) {
4
+ return true;
5
+ }
6
+ if (h.startsWith("10.")) return true;
7
+ if (h.startsWith("192.168.")) return true;
8
+ if (/^172\.(1[6-9]|2\d|3[01])\./.test(h)) return true;
9
+ if (h.startsWith("169.254.")) return true;
10
+ if (h === "0.0.0.0" || h === "255.255.255.255") return true;
11
+ const lower = h.toLowerCase();
12
+ if (lower === "::1" || lower === "::") return true;
13
+ if (lower.startsWith("fc") || lower.startsWith("fd")) return true;
14
+ if (lower.startsWith("fe80")) return true;
15
+ const v4Mapped = lower.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/);
16
+ if (v4Mapped) {
17
+ return isPrivateIp(v4Mapped[1]);
18
+ }
19
+ return false;
20
+ };
21
+
22
+ export { isPrivateIp as i };
23
+ //# sourceMappingURL=ssrf-guard-CsZoYdEq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssrf-guard-CsZoYdEq.js","sources":["../../../src/server/ssrf-guard.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 * Checks if a hostname or IP address is in a private/reserved range.\n *\n * Blocks RFC 1918 private ranges, loopback, link-local, and IPv6\n * equivalents to prevent SSRF attacks through the proxy.\n *\n * @param hostname - The hostname or IP to check.\n * @returns True if the address is private/reserved and should be blocked.\n */\nexport const isPrivateIp = (hostname: string): boolean => {\n // Normalize — strip IPv6 brackets.\n const h = hostname.replace(/^\\[|]$/g, '')\n\n // IPv4 loopback.\n if (h === 'localhost' || h.startsWith('127.')) {\n return true\n }\n\n // IPv4 private ranges (RFC 1918).\n if (h.startsWith('10.')) return true\n if (h.startsWith('192.168.')) return true\n if (/^172\\.(1[6-9]|2\\d|3[01])\\./.test(h)) return true\n\n // IPv4 link-local.\n if (h.startsWith('169.254.')) return true\n\n // IPv4 special: 0.0.0.0, broadcast.\n if (h === '0.0.0.0' || h === '255.255.255.255') return true\n\n // IPv6 loopback and private.\n const lower = h.toLowerCase()\n if (lower === '::1' || lower === '::') return true\n if (lower.startsWith('fc') || lower.startsWith('fd')) return true // Unique local (fc00::/7)\n if (lower.startsWith('fe80')) return true // Link-local\n\n // IPv4-mapped IPv6 (::ffff:10.0.0.1).\n const v4Mapped = lower.match(/^::ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/)\n if (v4Mapped) {\n return isPrivateIp(v4Mapped[1])\n }\n\n return false\n}\n"],"names":[],"mappings":"AAmBO,MAAM,WAAA,GAAc,CAAC,QAAA,KAA8B;AAExD,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,OAAA,CAAQ,SAAA,EAAW,EAAE,CAAA;AAGxC,EAAA,IAAI,CAAA,KAAM,WAAA,IAAe,CAAA,CAAE,UAAA,CAAW,MAAM,CAAA,EAAG;AAC7C,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,CAAA,CAAE,UAAA,CAAW,KAAK,CAAA,EAAG,OAAO,IAAA;AAChC,EAAA,IAAI,CAAA,CAAE,UAAA,CAAW,UAAU,CAAA,EAAG,OAAO,IAAA;AACrC,EAAA,IAAI,4BAAA,CAA6B,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,IAAA;AAGjD,EAAA,IAAI,CAAA,CAAE,UAAA,CAAW,UAAU,CAAA,EAAG,OAAO,IAAA;AAGrC,EAAA,IAAI,CAAA,KAAM,SAAA,IAAa,CAAA,KAAM,iBAAA,EAAmB,OAAO,IAAA;AAGvD,EAAA,MAAM,KAAA,GAAQ,EAAE,WAAA,EAAY;AAC5B,EAAA,IAAI,KAAA,KAAU,KAAA,IAAS,KAAA,KAAU,IAAA,EAAM,OAAO,IAAA;AAC9C,EAAA,IAAI,KAAA,CAAM,WAAW,IAAI,CAAA,IAAK,MAAM,UAAA,CAAW,IAAI,GAAG,OAAO,IAAA;AAC7D,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,MAAM,CAAA,EAAG,OAAO,IAAA;AAGrC,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,+BAA+B,CAAA;AAC5D,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO,WAAA,CAAY,QAAA,CAAS,CAAC,CAAC,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}
@@ -0,0 +1,248 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { css } from '@emotion/css';
3
+ import { I as Icon, B as Button, S as SpecType } from './useSpecFetcher-CZvAnU7Z.js';
4
+ import { useMemo } from 'react';
5
+
6
+ const specTypeLabels = {
7
+ "graphql-sdl": "GraphQL",
8
+ "graphql-introspection": "GraphQL",
9
+ "soap-wsdl": "SOAP/WSDL",
10
+ "grpc-proto": "gRPC/Protobuf"
11
+ };
12
+ function UpgradePrompt({ specType, docsUrl, upgradeUrl }) {
13
+ const label = specTypeLabels[specType] ?? specType;
14
+ return /* @__PURE__ */ jsx("div", { className: containerStyle, children: /* @__PURE__ */ jsxs("div", { className: cardStyle, children: [
15
+ /* @__PURE__ */ jsx("div", { className: iconWrapperStyle, children: /* @__PURE__ */ jsx(Icon, { name: "info", size: "1.5rem" }) }),
16
+ /* @__PURE__ */ jsxs("h2", { className: titleStyle, children: [
17
+ label,
18
+ " specification detected"
19
+ ] }),
20
+ /* @__PURE__ */ jsxs("p", { className: descStyle, children: [
21
+ "Rendering ",
22
+ label,
23
+ ", along with GraphQL, SOAP, and gRPC specifications, requires ",
24
+ /* @__PURE__ */ jsx("code", { className: codeStyle, children: "@apiboost/omnispec-pro" }),
25
+ "."
26
+ ] }),
27
+ /* @__PURE__ */ jsx("pre", { className: installStyle, children: "npm install @apiboost/omnispec-pro" }),
28
+ /* @__PURE__ */ jsxs("div", { className: actionsStyle, children: [
29
+ docsUrl && /* @__PURE__ */ jsxs("a", { href: docsUrl, className: linkStyle, target: "_blank", rel: "noopener noreferrer", children: [
30
+ "View documentation ",
31
+ /* @__PURE__ */ jsx(Icon, { name: "external-link", size: "0.75rem" })
32
+ ] }),
33
+ upgradeUrl && /* @__PURE__ */ jsxs(Button, { variant: "primary", href: upgradeUrl, target: "_blank", rel: "noopener noreferrer", children: [
34
+ "Upgrade now ",
35
+ /* @__PURE__ */ jsx(Icon, { name: "external-link", size: "0.75rem" })
36
+ ] })
37
+ ] })
38
+ ] }) });
39
+ }
40
+ const containerStyle = css({
41
+ display: "flex",
42
+ alignItems: "center",
43
+ justifyContent: "center",
44
+ flex: 1,
45
+ minHeight: "20rem",
46
+ padding: "2rem"
47
+ });
48
+ const cardStyle = css({
49
+ display: "flex",
50
+ flexDirection: "column",
51
+ alignItems: "center",
52
+ gap: "0.75rem",
53
+ maxWidth: "32rem",
54
+ textAlign: "center",
55
+ padding: "2.5rem 2rem",
56
+ borderRadius: "var(--omnispec-border-radius)",
57
+ backgroundColor: "var(--omnispec-bg-secondary)",
58
+ boxShadow: "0 0.0625rem 0.25rem rgba(0, 0, 0, 0.08)"
59
+ });
60
+ const iconWrapperStyle = css({
61
+ display: "flex",
62
+ alignItems: "center",
63
+ justifyContent: "center",
64
+ width: "3rem",
65
+ height: "3rem",
66
+ borderRadius: "50%",
67
+ backgroundColor: "var(--omnispec-bg-tertiary)",
68
+ color: "var(--omnispec-color-info)"
69
+ });
70
+ const titleStyle = css({
71
+ margin: 0,
72
+ fontSize: "var(--omnispec-font-size-lg)",
73
+ fontWeight: 600,
74
+ color: "var(--omnispec-fg-primary)"
75
+ });
76
+ const descStyle = css({
77
+ margin: 0,
78
+ fontSize: "var(--omnispec-font-size-sm)",
79
+ color: "var(--omnispec-fg-secondary)",
80
+ lineHeight: 1.6
81
+ });
82
+ const codeStyle = css({
83
+ backgroundColor: "var(--omnispec-bg-code)",
84
+ color: "var(--omnispec-fg-code)",
85
+ padding: "0.125rem 0.375rem",
86
+ borderRadius: "0.25rem",
87
+ fontSize: "0.875em",
88
+ fontFamily: "var(--omnispec-font-mono)"
89
+ });
90
+ const installStyle = css({
91
+ margin: 0,
92
+ padding: "0.625rem 1rem",
93
+ backgroundColor: "var(--omnispec-bg-code)",
94
+ color: "var(--omnispec-fg-primary)",
95
+ borderRadius: "var(--omnispec-border-radius)",
96
+ fontFamily: "var(--omnispec-font-mono)",
97
+ fontSize: "var(--omnispec-font-size-sm)",
98
+ userSelect: "all"
99
+ });
100
+ const actionsStyle = css({
101
+ display: "flex",
102
+ gap: "1rem",
103
+ marginTop: "0.5rem",
104
+ flexWrap: "wrap",
105
+ justifyContent: "center"
106
+ });
107
+ const linkStyle = css({
108
+ display: "inline-flex",
109
+ alignItems: "center",
110
+ gap: "0.375rem",
111
+ fontSize: "var(--omnispec-font-size-sm)",
112
+ color: "var(--omnispec-fg-link)",
113
+ textDecoration: "none",
114
+ fontWeight: 500,
115
+ "&:hover": {
116
+ textDecoration: "underline"
117
+ }
118
+ });
119
+
120
+ function detectSpecType(content) {
121
+ if (typeof content === "object") {
122
+ return detectFromObject(content);
123
+ }
124
+ const trimmed = content.trim();
125
+ try {
126
+ const parsed = JSON.parse(trimmed);
127
+ return detectFromObject(parsed);
128
+ } catch {
129
+ }
130
+ const yamlResult = detectFromYamlString(trimmed);
131
+ if (yamlResult) return yamlResult;
132
+ if (trimmed.startsWith("<") || trimmed.startsWith("<?xml")) {
133
+ return detectFromXml(trimmed);
134
+ }
135
+ if (isProtoBuf(trimmed)) {
136
+ return {
137
+ type: SpecType.GRPC_PROTO,
138
+ confidence: "high"
139
+ };
140
+ }
141
+ if (isGraphQLSDL(trimmed)) {
142
+ return {
143
+ type: SpecType.GRAPHQL_SDL,
144
+ confidence: "medium"
145
+ };
146
+ }
147
+ return null;
148
+ }
149
+ function detectFromObject(obj) {
150
+ if ("swagger" in obj && typeof obj.swagger === "string") {
151
+ return {
152
+ type: SpecType.OPENAPI_2,
153
+ confidence: "high",
154
+ version: obj.swagger
155
+ };
156
+ }
157
+ if ("openapi" in obj && typeof obj.openapi === "string") {
158
+ return {
159
+ type: SpecType.OPENAPI_3,
160
+ confidence: "high",
161
+ version: obj.openapi
162
+ };
163
+ }
164
+ if ("asyncapi" in obj && typeof obj.asyncapi === "string") {
165
+ const version = obj.asyncapi;
166
+ const major = parseInt(version.split(".")[0], 10);
167
+ return {
168
+ type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2,
169
+ confidence: "high",
170
+ version
171
+ };
172
+ }
173
+ if ("__schema" in obj || "data" in obj && typeof obj.data === "object" && obj.data !== null && "__schema" in obj.data) {
174
+ return {
175
+ type: SpecType.GRAPHQL_INTROSPECTION,
176
+ confidence: "high"
177
+ };
178
+ }
179
+ return null;
180
+ }
181
+ function detectFromYamlString(content) {
182
+ const lines = content.split("\n").slice(0, 20);
183
+ for (const line of lines) {
184
+ const match = line.match(/^(\w+)\s*:\s*['"]?([^'"#\s]+)/);
185
+ if (!match) continue;
186
+ const [, key, value] = match;
187
+ if (key === "swagger") {
188
+ return { type: SpecType.OPENAPI_2, confidence: "high", version: value };
189
+ }
190
+ if (key === "openapi") {
191
+ return { type: SpecType.OPENAPI_3, confidence: "high", version: value };
192
+ }
193
+ if (key === "asyncapi") {
194
+ const major = parseInt(value.split(".")[0], 10);
195
+ return {
196
+ type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2,
197
+ confidence: "high",
198
+ version: value
199
+ };
200
+ }
201
+ }
202
+ return null;
203
+ }
204
+ function detectFromXml(content) {
205
+ if (content.includes("<definitions") || content.includes("<wsdl:definitions")) {
206
+ return { type: SpecType.SOAP_WSDL, confidence: "high" };
207
+ }
208
+ if (content.includes("<description") && content.includes("wsdl")) {
209
+ return { type: SpecType.SOAP_WSDL, confidence: "medium" };
210
+ }
211
+ return null;
212
+ }
213
+ function isGraphQLSDL(content) {
214
+ const sdlPatterns = [
215
+ /^\s*type\s+Query\s*\{/m,
216
+ /^\s*schema\s*\{/m,
217
+ /^\s*type\s+\w+\s*(implements\s+\w+)?\s*\{/m,
218
+ /^\s*directive\s+@/m,
219
+ /^\s*enum\s+\w+\s*\{/m,
220
+ /^\s*input\s+\w+\s*\{/m,
221
+ /^\s*interface\s+\w+\s*\{/m,
222
+ /^\s*union\s+\w+\s*=/m
223
+ ];
224
+ let matchCount = 0;
225
+ for (const pattern of sdlPatterns) {
226
+ if (pattern.test(content)) matchCount++;
227
+ }
228
+ return matchCount >= 2;
229
+ }
230
+ function isProtoBuf(content) {
231
+ if (/^\s*syntax\s*=\s*"proto[23]"\s*;/m.test(content)) return true;
232
+ const hasServiceRpc = /\bservice\s+\w+\s*\{/.test(content) && /\brpc\s+\w+\s*\(/.test(content);
233
+ const hasMessage = /\bmessage\s+\w+\s*\{/.test(content);
234
+ return hasServiceRpc && hasMessage;
235
+ }
236
+
237
+ function useSpecDetector(content, hintType) {
238
+ return useMemo(() => {
239
+ if (hintType && content) {
240
+ return { type: hintType, confidence: "high" };
241
+ }
242
+ if (!content) return null;
243
+ return detectSpecType(content);
244
+ }, [content, hintType]);
245
+ }
246
+
247
+ export { UpgradePrompt as U, detectSpecType as d, useSpecDetector as u };
248
+ //# sourceMappingURL=useSpecDetector-5SGcKnJx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSpecDetector-5SGcKnJx.js","sources":["../../../src/core/components/common/UpgradePrompt.tsx","../../../src/core/utils/detect-spec.ts","../../../src/core/hooks/useSpecDetector.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\nimport { css } from '@core/styles/css'\nimport { Icon } from '@core/components/common/Icon'\nimport { Button } from '@core/components/common/Button'\nimport type { SpecType } from '@core/types/spec-detection.types'\n\nconst specTypeLabels: Partial<Record<SpecType, string>> = {\n 'graphql-sdl': 'GraphQL',\n 'graphql-introspection': 'GraphQL',\n 'soap-wsdl': 'SOAP/WSDL',\n 'grpc-proto': 'gRPC/Protobuf',\n}\n\ninterface UpgradePromptProps {\n specType: SpecType\n docsUrl?: string\n upgradeUrl?: string\n}\n\nexport function UpgradePrompt({ specType, docsUrl, upgradeUrl }: UpgradePromptProps) {\n const label = specTypeLabels[specType] ?? specType\n\n return (\n <div className={containerStyle}>\n <div className={cardStyle}>\n <div className={iconWrapperStyle}>\n <Icon name=\"info\" size=\"1.5rem\" />\n </div>\n <h2 className={titleStyle}>{label} specification detected</h2>\n <p className={descStyle}>\n Rendering {label}, along with GraphQL, SOAP, and gRPC specifications,\n requires <code className={codeStyle}>@apiboost/omnispec-pro</code>.\n </p>\n <pre className={installStyle}>npm install @apiboost/omnispec-pro</pre>\n <div className={actionsStyle}>\n {docsUrl && (\n <a href={docsUrl} className={linkStyle} target=\"_blank\" rel=\"noopener noreferrer\">\n View documentation <Icon name=\"external-link\" size=\"0.75rem\" />\n </a>\n )}\n {upgradeUrl && (\n <Button variant=\"primary\" href={upgradeUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n Upgrade now <Icon name=\"external-link\" size=\"0.75rem\" />\n </Button>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nconst containerStyle = css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n minHeight: '20rem',\n padding: '2rem',\n})\n\nconst cardStyle = css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '0.75rem',\n maxWidth: '32rem',\n textAlign: 'center',\n padding: '2.5rem 2rem',\n borderRadius: 'var(--omnispec-border-radius)',\n backgroundColor: 'var(--omnispec-bg-secondary)',\n boxShadow: '0 0.0625rem 0.25rem rgba(0, 0, 0, 0.08)',\n})\n\nconst iconWrapperStyle = css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '3rem',\n height: '3rem',\n borderRadius: '50%',\n backgroundColor: 'var(--omnispec-bg-tertiary)',\n color: 'var(--omnispec-color-info)',\n})\n\nconst titleStyle = css({\n margin: 0,\n fontSize: 'var(--omnispec-font-size-lg)',\n fontWeight: 600,\n color: 'var(--omnispec-fg-primary)',\n})\n\nconst descStyle = css({\n margin: 0,\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-secondary)',\n lineHeight: 1.6,\n})\n\nconst codeStyle = css({\n backgroundColor: 'var(--omnispec-bg-code)',\n color: 'var(--omnispec-fg-code)',\n padding: '0.125rem 0.375rem',\n borderRadius: '0.25rem',\n fontSize: '0.875em',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst installStyle = css({\n margin: 0,\n padding: '0.625rem 1rem',\n backgroundColor: 'var(--omnispec-bg-code)',\n color: 'var(--omnispec-fg-primary)',\n borderRadius: 'var(--omnispec-border-radius)',\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-sm)',\n userSelect: 'all',\n})\n\nconst actionsStyle = css({\n display: 'flex',\n gap: '1rem',\n marginTop: '0.5rem',\n flexWrap: 'wrap',\n justifyContent: 'center',\n})\n\nconst linkStyle = css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.375rem',\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-link)',\n textDecoration: 'none',\n fontWeight: 500,\n '&:hover': {\n textDecoration: 'underline',\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\nimport { SpecType } from '../types/spec-detection.types'\nimport type { SpecDetectionResult } from '../types/spec-detection.types'\n\nexport function detectSpecType(content: string | Record<string, unknown>): SpecDetectionResult | null {\n if (typeof content === 'object') {\n return detectFromObject(content)\n }\n\n const trimmed = content.trim()\n\n // Try JSON parse\n try {\n const parsed = JSON.parse(trimmed)\n return detectFromObject(parsed)\n } catch {\n // Not JSON\n }\n\n // Try YAML detection (look for top-level keys without braces)\n const yamlResult = detectFromYamlString(trimmed)\n if (yamlResult) return yamlResult\n\n // Try XML detection (WSDL)\n if (trimmed.startsWith('<') || trimmed.startsWith('<?xml')) {\n return detectFromXml(trimmed)\n }\n\n // Try Protocol Buffers detection (before GraphQL — both use keyword matching)\n if (isProtoBuf(trimmed)) {\n return {\n type: SpecType.GRPC_PROTO,\n confidence: 'high',\n }\n }\n\n // Try GraphQL SDL detection\n if (isGraphQLSDL(trimmed)) {\n return {\n type: SpecType.GRAPHQL_SDL,\n confidence: 'medium',\n }\n }\n\n return null\n}\n\nfunction detectFromObject(obj: Record<string, unknown>): SpecDetectionResult | null {\n // OpenAPI 2.x (Swagger)\n if ('swagger' in obj && typeof obj.swagger === 'string') {\n return {\n type: SpecType.OPENAPI_2,\n confidence: 'high',\n version: obj.swagger as string,\n }\n }\n\n // OpenAPI 3.x\n if ('openapi' in obj && typeof obj.openapi === 'string') {\n return {\n type: SpecType.OPENAPI_3,\n confidence: 'high',\n version: obj.openapi as string,\n }\n }\n\n // AsyncAPI\n if ('asyncapi' in obj && typeof obj.asyncapi === 'string') {\n const version = obj.asyncapi as string\n const major = parseInt(version.split('.')[0], 10)\n return {\n type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2,\n confidence: 'high',\n version,\n }\n }\n\n // GraphQL introspection result\n if ('__schema' in obj || ('data' in obj && typeof obj.data === 'object' && obj.data !== null && '__schema' in (obj.data as Record<string, unknown>))) {\n return {\n type: SpecType.GRAPHQL_INTROSPECTION,\n confidence: 'high',\n }\n }\n\n return null\n}\n\nfunction detectFromYamlString(content: string): SpecDetectionResult | null {\n // Simple YAML key detection without a full parser\n const lines = content.split('\\n').slice(0, 20)\n\n for (const line of lines) {\n const match = line.match(/^(\\w+)\\s*:\\s*['\"]?([^'\"#\\s]+)/)\n if (!match) continue\n\n const [, key, value] = match\n\n if (key === 'swagger') {\n return { type: SpecType.OPENAPI_2, confidence: 'high', version: value }\n }\n if (key === 'openapi') {\n return { type: SpecType.OPENAPI_3, confidence: 'high', version: value }\n }\n if (key === 'asyncapi') {\n const major = parseInt(value.split('.')[0], 10)\n return {\n type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2,\n confidence: 'high',\n version: value,\n }\n }\n }\n\n return null\n}\n\nfunction detectFromXml(content: string): SpecDetectionResult | null {\n // WSDL 1.1: <definitions> or <wsdl:definitions>\n if (content.includes('<definitions') || content.includes('<wsdl:definitions')) {\n return { type: SpecType.SOAP_WSDL, confidence: 'high' }\n }\n // WSDL 2.0: <description>\n if (content.includes('<description') && content.includes('wsdl')) {\n return { type: SpecType.SOAP_WSDL, confidence: 'medium' }\n }\n return null\n}\n\nfunction isGraphQLSDL(content: string): boolean {\n const sdlPatterns = [\n /^\\s*type\\s+Query\\s*\\{/m,\n /^\\s*schema\\s*\\{/m,\n /^\\s*type\\s+\\w+\\s*(implements\\s+\\w+)?\\s*\\{/m,\n /^\\s*directive\\s+@/m,\n /^\\s*enum\\s+\\w+\\s*\\{/m,\n /^\\s*input\\s+\\w+\\s*\\{/m,\n /^\\s*interface\\s+\\w+\\s*\\{/m,\n /^\\s*union\\s+\\w+\\s*=/m,\n ]\n\n let matchCount = 0\n for (const pattern of sdlPatterns) {\n if (pattern.test(content)) matchCount++\n }\n\n return matchCount >= 2\n}\n\nfunction isProtoBuf(content: string): boolean {\n // Proto files have a distinctive syntax: \"syntax = \"proto3\";\" or service/rpc/message keywords\n if (/^\\s*syntax\\s*=\\s*\"proto[23]\"\\s*;/m.test(content)) return true\n // Fallback: must have both service+rpc and message keywords\n const hasServiceRpc = /\\bservice\\s+\\w+\\s*\\{/.test(content) && /\\brpc\\s+\\w+\\s*\\(/.test(content)\n const hasMessage = /\\bmessage\\s+\\w+\\s*\\{/.test(content)\n return hasServiceRpc && hasMessage\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\nimport { useMemo } from 'react'\nimport type { SpecDetectionResult } from '../types/spec-detection.types'\nimport type { SpecType } from '../types/spec-detection.types'\nimport { detectSpecType } from '../utils/detect-spec'\n\nexport function useSpecDetector(\n content: string | Record<string, unknown> | null,\n hintType?: SpecType,\n): SpecDetectionResult | null {\n return useMemo(() => {\n if (hintType && content) {\n return { type: hintType, confidence: 'high' as const }\n }\n if (!content) return null\n return detectSpecType(content)\n }, [content, hintType])\n}\n"],"names":[],"mappings":"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"}