docusaurus-theme-openapi-docs 0.0.0-1000

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 (312) hide show
  1. package/LICENSE +21 -0
  2. package/babel.config.js +35 -0
  3. package/lib/index.d.ts +2 -0
  4. package/lib/index.js +81 -0
  5. package/lib/markdown/createDescription.d.ts +1 -0
  6. package/lib/markdown/createDescription.js +15 -0
  7. package/lib/markdown/schema.d.ts +3 -0
  8. package/lib/markdown/schema.js +149 -0
  9. package/lib/markdown/utils.d.ts +10 -0
  10. package/lib/markdown/utils.js +49 -0
  11. package/lib/markdown/utils.test.d.ts +1 -0
  12. package/lib/markdown/utils.test.js +43 -0
  13. package/lib/theme/ApiExplorer/Accept/index.d.ts +3 -0
  14. package/lib/theme/ApiExplorer/Accept/index.js +38 -0
  15. package/lib/theme/ApiExplorer/Accept/slice.d.ts +11 -0
  16. package/lib/theme/ApiExplorer/Accept/slice.js +22 -0
  17. package/lib/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss +7 -0
  18. package/lib/theme/ApiExplorer/ApiCodeBlock/Container/index.d.ts +4 -0
  19. package/lib/theme/ApiExplorer/ApiCodeBlock/Container/index.js +35 -0
  20. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/Element.d.ts +3 -0
  21. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/Element.js +41 -0
  22. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/String.d.ts +3 -0
  23. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/String.js +153 -0
  24. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss +91 -0
  25. package/lib/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss +44 -0
  26. package/lib/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.d.ts +3 -0
  27. package/lib/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.js +147 -0
  28. package/lib/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss +16 -0
  29. package/lib/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.d.ts +6 -0
  30. package/lib/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.js +58 -0
  31. package/lib/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss +62 -0
  32. package/lib/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.d.ts +14 -0
  33. package/lib/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.js +248 -0
  34. package/lib/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss +34 -0
  35. package/lib/theme/ApiExplorer/ApiCodeBlock/Line/index.d.ts +3 -0
  36. package/lib/theme/ApiExplorer/ApiCodeBlock/Line/index.js +59 -0
  37. package/lib/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss +10 -0
  38. package/lib/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.d.ts +7 -0
  39. package/lib/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.js +51 -0
  40. package/lib/theme/ApiExplorer/ApiCodeBlock/index.d.ts +3 -0
  41. package/lib/theme/ApiExplorer/ApiCodeBlock/index.js +110 -0
  42. package/lib/theme/ApiExplorer/Authorization/auth-types.d.ts +3 -0
  43. package/lib/theme/ApiExplorer/Authorization/auth-types.js +28 -0
  44. package/lib/theme/ApiExplorer/Authorization/index.d.ts +3 -0
  45. package/lib/theme/ApiExplorer/Authorization/index.js +160 -0
  46. package/lib/theme/ApiExplorer/Authorization/slice.d.ts +40 -0
  47. package/lib/theme/ApiExplorer/Authorization/slice.js +102 -0
  48. package/lib/theme/ApiExplorer/Body/index.d.ts +10 -0
  49. package/lib/theme/ApiExplorer/Body/index.js +381 -0
  50. package/lib/theme/ApiExplorer/Body/json2xml.js +43 -0
  51. package/lib/theme/ApiExplorer/Body/slice.d.ts +82 -0
  52. package/lib/theme/ApiExplorer/Body/slice.js +97 -0
  53. package/lib/theme/ApiExplorer/CodeSnippets/code-snippets-types.d.ts +21 -0
  54. package/lib/theme/ApiExplorer/CodeSnippets/code-snippets-types.js +8 -0
  55. package/lib/theme/ApiExplorer/CodeSnippets/index.d.ts +10 -0
  56. package/lib/theme/ApiExplorer/CodeSnippets/index.js +389 -0
  57. package/lib/theme/ApiExplorer/CodeSnippets/languages.d.ts +5 -0
  58. package/lib/theme/ApiExplorer/CodeSnippets/languages.js +95 -0
  59. package/lib/theme/ApiExplorer/CodeSnippets/languages.json +1290 -0
  60. package/lib/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +501 -0
  61. package/lib/theme/ApiExplorer/CodeTabs/index.d.ts +15 -0
  62. package/lib/theme/ApiExplorer/CodeTabs/index.js +271 -0
  63. package/lib/theme/ApiExplorer/ContentType/index.d.ts +3 -0
  64. package/lib/theme/ApiExplorer/ContentType/index.js +40 -0
  65. package/lib/theme/ApiExplorer/ContentType/slice.d.ts +11 -0
  66. package/lib/theme/ApiExplorer/ContentType/slice.js +22 -0
  67. package/lib/theme/ApiExplorer/Export/index.d.ts +3 -0
  68. package/lib/theme/ApiExplorer/Export/index.js +57 -0
  69. package/lib/theme/ApiExplorer/FloatingButton/_FloatingButton.scss +27 -0
  70. package/lib/theme/ApiExplorer/FloatingButton/index.d.ts +8 -0
  71. package/lib/theme/ApiExplorer/FloatingButton/index.js +28 -0
  72. package/lib/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss +74 -0
  73. package/lib/theme/ApiExplorer/FormFileUpload/index.d.ts +7 -0
  74. package/lib/theme/ApiExplorer/FormFileUpload/index.js +173 -0
  75. package/lib/theme/ApiExplorer/FormItem/_FormItem.scss +21 -0
  76. package/lib/theme/ApiExplorer/FormItem/index.d.ts +10 -0
  77. package/lib/theme/ApiExplorer/FormItem/index.js +44 -0
  78. package/lib/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss +30 -0
  79. package/lib/theme/ApiExplorer/FormMultiSelect/index.d.ts +9 -0
  80. package/lib/theme/ApiExplorer/FormMultiSelect/index.js +51 -0
  81. package/lib/theme/ApiExplorer/FormSelect/_FormSelect.scss +43 -0
  82. package/lib/theme/ApiExplorer/FormSelect/index.d.ts +8 -0
  83. package/lib/theme/ApiExplorer/FormSelect/index.js +35 -0
  84. package/lib/theme/ApiExplorer/FormTextInput/_FormTextInput.scss +34 -0
  85. package/lib/theme/ApiExplorer/FormTextInput/index.d.ts +9 -0
  86. package/lib/theme/ApiExplorer/FormTextInput/index.js +73 -0
  87. package/lib/theme/ApiExplorer/LiveEditor/_LiveEditor.scss +15 -0
  88. package/lib/theme/ApiExplorer/LiveEditor/index.d.ts +6 -0
  89. package/lib/theme/ApiExplorer/LiveEditor/index.js +168 -0
  90. package/lib/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss +22 -0
  91. package/lib/theme/ApiExplorer/MethodEndpoint/index.d.ts +8 -0
  92. package/lib/theme/ApiExplorer/MethodEndpoint/index.js +86 -0
  93. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.d.ts +6 -0
  94. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.js +220 -0
  95. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.d.ts +6 -0
  96. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.js +63 -0
  97. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.d.ts +6 -0
  98. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.js +89 -0
  99. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.d.ts +6 -0
  100. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.js +63 -0
  101. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.d.ts +6 -0
  102. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.js +38 -0
  103. package/lib/theme/ApiExplorer/ParamOptions/_ParamOptions.scss +123 -0
  104. package/lib/theme/ApiExplorer/ParamOptions/index.d.ts +7 -0
  105. package/lib/theme/ApiExplorer/ParamOptions/index.js +223 -0
  106. package/lib/theme/ApiExplorer/ParamOptions/slice.d.ts +17 -0
  107. package/lib/theme/ApiExplorer/ParamOptions/slice.js +25 -0
  108. package/lib/theme/ApiExplorer/Request/_Request.scss +129 -0
  109. package/lib/theme/ApiExplorer/Request/index.d.ts +6 -0
  110. package/lib/theme/ApiExplorer/Request/index.js +396 -0
  111. package/lib/theme/ApiExplorer/Request/makeRequest.d.ts +4 -0
  112. package/lib/theme/ApiExplorer/Request/makeRequest.js +222 -0
  113. package/lib/theme/ApiExplorer/Response/_Response.scss +121 -0
  114. package/lib/theme/ApiExplorer/Response/index.d.ts +6 -0
  115. package/lib/theme/ApiExplorer/Response/index.js +193 -0
  116. package/lib/theme/ApiExplorer/Response/slice.d.ts +17 -0
  117. package/lib/theme/ApiExplorer/Response/slice.js +51 -0
  118. package/lib/theme/ApiExplorer/SecuritySchemes/index.d.ts +3 -0
  119. package/lib/theme/ApiExplorer/SecuritySchemes/index.js +380 -0
  120. package/lib/theme/ApiExplorer/Server/_Server.scss +26 -0
  121. package/lib/theme/ApiExplorer/Server/index.d.ts +3 -0
  122. package/lib/theme/ApiExplorer/Server/index.js +199 -0
  123. package/lib/theme/ApiExplorer/Server/slice.d.ts +13 -0
  124. package/lib/theme/ApiExplorer/Server/slice.js +33 -0
  125. package/lib/theme/ApiExplorer/buildPostmanRequest.d.ts +20 -0
  126. package/lib/theme/ApiExplorer/buildPostmanRequest.js +465 -0
  127. package/lib/theme/ApiExplorer/index.d.ts +7 -0
  128. package/lib/theme/ApiExplorer/index.js +41 -0
  129. package/lib/theme/ApiExplorer/persistanceMiddleware.d.ts +3 -0
  130. package/lib/theme/ApiExplorer/persistanceMiddleware.js +54 -0
  131. package/lib/theme/ApiExplorer/storage-utils.d.ts +4 -0
  132. package/lib/theme/ApiExplorer/storage-utils.js +41 -0
  133. package/lib/theme/ApiItem/Layout/index.d.ts +3 -0
  134. package/lib/theme/ApiItem/Layout/index.js +121 -0
  135. package/lib/theme/ApiItem/Layout/styles.module.css +17 -0
  136. package/lib/theme/ApiItem/hooks.d.ts +12 -0
  137. package/lib/theme/ApiItem/hooks.js +13 -0
  138. package/lib/theme/ApiItem/index.d.ts +2 -0
  139. package/lib/theme/ApiItem/index.js +238 -0
  140. package/lib/theme/ApiItem/store.d.ts +46 -0
  141. package/lib/theme/ApiItem/store.js +53 -0
  142. package/lib/theme/ApiLogo/index.d.ts +2 -0
  143. package/lib/theme/ApiLogo/index.js +51 -0
  144. package/lib/theme/ApiTabs/_ApiTabs.scss +142 -0
  145. package/lib/theme/ApiTabs/index.d.ts +7 -0
  146. package/lib/theme/ApiTabs/index.js +270 -0
  147. package/lib/theme/ArrayBrackets/index.d.ts +3 -0
  148. package/lib/theme/ArrayBrackets/index.js +50 -0
  149. package/lib/theme/DiscriminatorTabs/_DiscriminatorTabs.scss +98 -0
  150. package/lib/theme/DiscriminatorTabs/index.d.ts +3 -0
  151. package/lib/theme/DiscriminatorTabs/index.js +258 -0
  152. package/lib/theme/Markdown/Details/_Details.scss +122 -0
  153. package/lib/theme/Markdown/index.js +179 -0
  154. package/lib/theme/MimeTabs/_MimeTabs.scss +70 -0
  155. package/lib/theme/MimeTabs/index.d.ts +6 -0
  156. package/lib/theme/MimeTabs/index.js +286 -0
  157. package/lib/theme/OperationTabs/_OperationTabs.scss +72 -0
  158. package/lib/theme/OperationTabs/index.d.ts +3 -0
  159. package/lib/theme/OperationTabs/index.js +248 -0
  160. package/lib/theme/ParamsDetails/index.d.ts +6 -0
  161. package/lib/theme/ParamsDetails/index.js +85 -0
  162. package/lib/theme/ParamsItem/_ParamsItem.scss +54 -0
  163. package/lib/theme/ParamsItem/index.d.ts +25 -0
  164. package/lib/theme/ParamsItem/index.js +218 -0
  165. package/lib/theme/RequestSchema/index.d.ts +15 -0
  166. package/lib/theme/RequestSchema/index.js +194 -0
  167. package/lib/theme/ResponseExamples/index.d.ts +18 -0
  168. package/lib/theme/ResponseExamples/index.js +193 -0
  169. package/lib/theme/ResponseHeaders/index.d.ts +13 -0
  170. package/lib/theme/ResponseHeaders/index.js +39 -0
  171. package/lib/theme/ResponseSamples/_ResponseSamples.scss +3 -0
  172. package/lib/theme/ResponseSamples/index.d.ts +8 -0
  173. package/lib/theme/ResponseSamples/index.js +27 -0
  174. package/lib/theme/ResponseSchema/index.d.ts +15 -0
  175. package/lib/theme/ResponseSchema/index.js +159 -0
  176. package/lib/theme/Schema/index.d.ts +8 -0
  177. package/lib/theme/Schema/index.js +885 -0
  178. package/lib/theme/SchemaItem/_SchemaItem.scss +89 -0
  179. package/lib/theme/SchemaItem/index.d.ts +12 -0
  180. package/lib/theme/SchemaItem/index.js +213 -0
  181. package/lib/theme/SchemaTabs/_SchemaTabs.scss +61 -0
  182. package/lib/theme/SchemaTabs/index.d.ts +3 -0
  183. package/lib/theme/SchemaTabs/index.js +255 -0
  184. package/lib/theme/SkeletonLoader/index.d.ts +6 -0
  185. package/lib/theme/SkeletonLoader/index.js +20 -0
  186. package/lib/theme/StatusCodes/index.d.ts +9 -0
  187. package/lib/theme/StatusCodes/index.js +81 -0
  188. package/lib/theme/styles.scss +212 -0
  189. package/lib/types.d.ts +157 -0
  190. package/lib/types.js +8 -0
  191. package/package.json +83 -0
  192. package/src/index.ts +85 -0
  193. package/src/markdown/createDescription.ts +13 -0
  194. package/src/markdown/schema.ts +181 -0
  195. package/src/markdown/utils.test.ts +49 -0
  196. package/src/markdown/utils.ts +59 -0
  197. package/src/plugin-content-docs.d.ts +20 -0
  198. package/src/postman-code-generators.d.ts +9 -0
  199. package/src/react-magic-dropzone.d.ts +9 -0
  200. package/src/theme/ApiExplorer/Accept/index.tsx +36 -0
  201. package/src/theme/ApiExplorer/Accept/slice.ts +29 -0
  202. package/src/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss +7 -0
  203. package/src/theme/ApiExplorer/ApiCodeBlock/Container/index.tsx +32 -0
  204. package/src/theme/ApiExplorer/ApiCodeBlock/Content/Element.tsx +34 -0
  205. package/src/theme/ApiExplorer/ApiCodeBlock/Content/String.tsx +134 -0
  206. package/src/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss +91 -0
  207. package/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss +44 -0
  208. package/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.tsx +79 -0
  209. package/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss +16 -0
  210. package/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.tsx +55 -0
  211. package/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss +62 -0
  212. package/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.tsx +166 -0
  213. package/src/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss +34 -0
  214. package/src/theme/ApiExplorer/ApiCodeBlock/Line/index.tsx +48 -0
  215. package/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss +10 -0
  216. package/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.tsx +54 -0
  217. package/src/theme/ApiExplorer/ApiCodeBlock/index.tsx +45 -0
  218. package/src/theme/ApiExplorer/Authorization/auth-types.ts +30 -0
  219. package/src/theme/ApiExplorer/Authorization/index.tsx +158 -0
  220. package/src/theme/ApiExplorer/Authorization/slice.ts +146 -0
  221. package/src/theme/ApiExplorer/Body/index.tsx +376 -0
  222. package/src/theme/ApiExplorer/Body/json2xml.js +43 -0
  223. package/src/theme/ApiExplorer/Body/slice.ts +133 -0
  224. package/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts +57 -0
  225. package/src/theme/ApiExplorer/CodeSnippets/index.tsx +338 -0
  226. package/src/theme/ApiExplorer/CodeSnippets/languages.json +1290 -0
  227. package/src/theme/ApiExplorer/CodeSnippets/languages.ts +96 -0
  228. package/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +501 -0
  229. package/src/theme/ApiExplorer/CodeTabs/index.tsx +248 -0
  230. package/src/theme/ApiExplorer/ContentType/index.tsx +38 -0
  231. package/src/theme/ApiExplorer/ContentType/slice.ts +29 -0
  232. package/src/theme/ApiExplorer/Export/index.tsx +47 -0
  233. package/src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss +27 -0
  234. package/src/theme/ApiExplorer/FloatingButton/index.tsx +29 -0
  235. package/src/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss +74 -0
  236. package/src/theme/ApiExplorer/FormFileUpload/index.tsx +119 -0
  237. package/src/theme/ApiExplorer/FormItem/_FormItem.scss +21 -0
  238. package/src/theme/ApiExplorer/FormItem/index.tsx +33 -0
  239. package/src/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss +30 -0
  240. package/src/theme/ApiExplorer/FormMultiSelect/index.tsx +57 -0
  241. package/src/theme/ApiExplorer/FormSelect/_FormSelect.scss +43 -0
  242. package/src/theme/ApiExplorer/FormSelect/index.tsx +38 -0
  243. package/src/theme/ApiExplorer/FormTextInput/_FormTextInput.scss +34 -0
  244. package/src/theme/ApiExplorer/FormTextInput/index.tsx +80 -0
  245. package/src/theme/ApiExplorer/LiveEditor/_LiveEditor.scss +15 -0
  246. package/src/theme/ApiExplorer/LiveEditor/index.tsx +114 -0
  247. package/src/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss +22 -0
  248. package/src/theme/ApiExplorer/MethodEndpoint/index.tsx +91 -0
  249. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx +175 -0
  250. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx +64 -0
  251. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx +86 -0
  252. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx +65 -0
  253. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.tsx +38 -0
  254. package/src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss +123 -0
  255. package/src/theme/ApiExplorer/ParamOptions/index.tsx +146 -0
  256. package/src/theme/ApiExplorer/ParamOptions/slice.ts +37 -0
  257. package/src/theme/ApiExplorer/Request/_Request.scss +129 -0
  258. package/src/theme/ApiExplorer/Request/index.tsx +309 -0
  259. package/src/theme/ApiExplorer/Request/makeRequest.ts +254 -0
  260. package/src/theme/ApiExplorer/Response/_Response.scss +121 -0
  261. package/src/theme/ApiExplorer/Response/index.tsx +157 -0
  262. package/src/theme/ApiExplorer/Response/slice.ts +52 -0
  263. package/src/theme/ApiExplorer/SecuritySchemes/index.tsx +287 -0
  264. package/src/theme/ApiExplorer/Server/_Server.scss +26 -0
  265. package/src/theme/ApiExplorer/Server/index.tsx +130 -0
  266. package/src/theme/ApiExplorer/Server/slice.ts +39 -0
  267. package/src/theme/ApiExplorer/buildPostmanRequest.ts +526 -0
  268. package/src/theme/ApiExplorer/index.tsx +41 -0
  269. package/src/theme/ApiExplorer/persistanceMiddleware.ts +71 -0
  270. package/src/theme/ApiExplorer/postman-collection.d.ts +10 -0
  271. package/src/theme/ApiExplorer/react-modal.d.ts +8 -0
  272. package/src/theme/ApiExplorer/storage-utils.ts +39 -0
  273. package/src/theme/ApiItem/Layout/index.tsx +85 -0
  274. package/src/theme/ApiItem/Layout/styles.module.css +17 -0
  275. package/src/theme/ApiItem/hooks.ts +13 -0
  276. package/src/theme/ApiItem/index.tsx +222 -0
  277. package/src/theme/ApiItem/store.ts +51 -0
  278. package/src/theme/ApiLogo/index.tsx +52 -0
  279. package/src/theme/ApiTabs/_ApiTabs.scss +142 -0
  280. package/src/theme/ApiTabs/index.tsx +238 -0
  281. package/src/theme/ArrayBrackets/index.tsx +37 -0
  282. package/src/theme/DiscriminatorTabs/_DiscriminatorTabs.scss +98 -0
  283. package/src/theme/DiscriminatorTabs/index.tsx +229 -0
  284. package/src/theme/Markdown/Details/_Details.scss +122 -0
  285. package/src/theme/Markdown/index.js +179 -0
  286. package/src/theme/MimeTabs/_MimeTabs.scss +70 -0
  287. package/src/theme/MimeTabs/index.tsx +257 -0
  288. package/src/theme/OperationTabs/_OperationTabs.scss +72 -0
  289. package/src/theme/OperationTabs/index.tsx +220 -0
  290. package/src/theme/ParamsDetails/index.tsx +81 -0
  291. package/src/theme/ParamsItem/_ParamsItem.scss +54 -0
  292. package/src/theme/ParamsItem/index.tsx +205 -0
  293. package/src/theme/RequestSchema/index.tsx +157 -0
  294. package/src/theme/ResponseExamples/index.tsx +192 -0
  295. package/src/theme/ResponseHeaders/index.tsx +49 -0
  296. package/src/theme/ResponseSamples/_ResponseSamples.scss +3 -0
  297. package/src/theme/ResponseSamples/index.tsx +31 -0
  298. package/src/theme/ResponseSchema/index.tsx +144 -0
  299. package/src/theme/Schema/index.tsx +939 -0
  300. package/src/theme/SchemaItem/_SchemaItem.scss +89 -0
  301. package/src/theme/SchemaItem/index.tsx +198 -0
  302. package/src/theme/SchemaTabs/_SchemaTabs.scss +61 -0
  303. package/src/theme/SchemaTabs/index.tsx +224 -0
  304. package/src/theme/SkeletonLoader/index.tsx +18 -0
  305. package/src/theme/StatusCodes/index.tsx +72 -0
  306. package/src/theme/styles.scss +212 -0
  307. package/src/theme-classic.d.ts +80 -0
  308. package/src/theme-openapi.d.ts +288 -0
  309. package/src/theme-translations.d.ts +9 -0
  310. package/src/types.ts +182 -0
  311. package/tsconfig.json +16 -0
  312. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,885 @@
1
+ "use strict";
2
+ /* ============================================================================
3
+ * Copyright (c) Palo Alto Networks
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ * ========================================================================== */
8
+ var __importDefault =
9
+ (this && this.__importDefault) ||
10
+ function (mod) {
11
+ return mod && mod.__esModule ? mod : { default: mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const react_1 = __importDefault(require("react"));
15
+ const ArrayBrackets_1 = require("@theme/ArrayBrackets");
16
+ const Details_1 = __importDefault(require("@theme/Details"));
17
+ const DiscriminatorTabs_1 = __importDefault(
18
+ require("@theme/DiscriminatorTabs")
19
+ );
20
+ const Markdown_1 = __importDefault(require("@theme/Markdown"));
21
+ const SchemaItem_1 = __importDefault(require("@theme/SchemaItem"));
22
+ const SchemaTabs_1 = __importDefault(require("@theme/SchemaTabs"));
23
+ const TabItem_1 = __importDefault(require("@theme/TabItem"));
24
+ // eslint-disable-next-line import/no-extraneous-dependencies
25
+ const allof_merge_1 = require("allof-merge");
26
+ const clsx_1 = __importDefault(require("clsx"));
27
+ const schema_1 = require("docusaurus-plugin-openapi-docs/lib/markdown/schema");
28
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
29
+ // eslint-disable-next-line import/no-extraneous-dependencies
30
+ // const jsonSchemaMergeAllOf = require("json-schema-merge-allof");
31
+ const mergeAllOf = (allOf) => {
32
+ const onMergeError = (msg) => {
33
+ console.warn(msg);
34
+ };
35
+ const mergedSchemas = (0, allof_merge_1.merge)(allOf, { onMergeError });
36
+ return mergedSchemas;
37
+ };
38
+ // Renders string as markdown, useful for descriptions and qualifiers
39
+ const MarkdownWrapper = ({ text }) => {
40
+ return react_1.default.createElement(
41
+ "div",
42
+ { style: { marginTop: ".5rem", marginBottom: ".5rem" } },
43
+ react_1.default.createElement(Markdown_1.default, null, text)
44
+ );
45
+ };
46
+ const Summary = ({ name, schemaName, schema, required }) => {
47
+ const { deprecated, nullable } = schema;
48
+ const isRequired = Array.isArray(required)
49
+ ? required.includes(name)
50
+ : required === true;
51
+ return react_1.default.createElement(
52
+ "summary",
53
+ null,
54
+ react_1.default.createElement(
55
+ "span",
56
+ { className: "openapi-schema__container" },
57
+ react_1.default.createElement(
58
+ "strong",
59
+ {
60
+ className: (0, clsx_1.default)("openapi-schema__property", {
61
+ "openapi-schema__strikethrough": deprecated,
62
+ }),
63
+ },
64
+ name
65
+ ),
66
+ react_1.default.createElement(
67
+ "span",
68
+ { className: "openapi-schema__name" },
69
+ " ",
70
+ schemaName
71
+ ),
72
+ (isRequired || deprecated || nullable) &&
73
+ react_1.default.createElement("span", {
74
+ className: "openapi-schema__divider",
75
+ }),
76
+ nullable &&
77
+ react_1.default.createElement(
78
+ "span",
79
+ { className: "openapi-schema__nullable" },
80
+ "nullable"
81
+ ),
82
+ isRequired &&
83
+ react_1.default.createElement(
84
+ "span",
85
+ { className: "openapi-schema__required" },
86
+ "required"
87
+ ),
88
+ deprecated &&
89
+ react_1.default.createElement(
90
+ "span",
91
+ { className: "openapi-schema__deprecated" },
92
+ "deprecated"
93
+ )
94
+ )
95
+ );
96
+ };
97
+ const AnyOneOf = ({ schema, schemaType }) => {
98
+ const type = schema.oneOf ? "oneOf" : "anyOf";
99
+ return react_1.default.createElement(
100
+ react_1.default.Fragment,
101
+ null,
102
+ react_1.default.createElement(
103
+ "span",
104
+ { className: "badge badge--info", style: { marginBottom: "1rem" } },
105
+ type
106
+ ),
107
+ react_1.default.createElement(
108
+ SchemaTabs_1.default,
109
+ null,
110
+ schema[type]?.map((anyOneSchema, index) => {
111
+ const label = anyOneSchema.title || `MOD${index + 1}`;
112
+ return (
113
+ // @ts-ignore
114
+ react_1.default.createElement(
115
+ TabItem_1.default,
116
+ { key: index, label: label, value: `${index}-item-properties` },
117
+ ["string", "number", "integer", "boolean"].includes(
118
+ anyOneSchema.type
119
+ ) &&
120
+ react_1.default.createElement(SchemaItem_1.default, {
121
+ collapsible: false,
122
+ name: undefined,
123
+ schemaName: anyOneSchema.type,
124
+ qualifierMessage: (0, schema_1.getQualifierMessage)(
125
+ anyOneSchema
126
+ ),
127
+ schema: anyOneSchema,
128
+ discriminator: false,
129
+ children: null,
130
+ }),
131
+ anyOneSchema.type === "object" &&
132
+ !anyOneSchema.properties &&
133
+ !anyOneSchema.allOf &&
134
+ !anyOneSchema.oneOf &&
135
+ !anyOneSchema.anyOf &&
136
+ react_1.default.createElement(SchemaItem_1.default, {
137
+ collapsible: false,
138
+ name: undefined,
139
+ schemaName: anyOneSchema.type,
140
+ qualifierMessage: (0, schema_1.getQualifierMessage)(
141
+ anyOneSchema
142
+ ),
143
+ schema: anyOneSchema,
144
+ discriminator: false,
145
+ children: null,
146
+ }),
147
+ anyOneSchema.type === "object" &&
148
+ anyOneSchema.properties &&
149
+ react_1.default.createElement(Properties, {
150
+ schema: anyOneSchema,
151
+ schemaType: schemaType,
152
+ }),
153
+ anyOneSchema.allOf &&
154
+ react_1.default.createElement(SchemaNode, {
155
+ schema: anyOneSchema,
156
+ schemaType: schemaType,
157
+ }),
158
+ anyOneSchema.oneOf &&
159
+ react_1.default.createElement(SchemaNode, {
160
+ schema: anyOneSchema,
161
+ schemaType: schemaType,
162
+ }),
163
+ anyOneSchema.anyOf &&
164
+ react_1.default.createElement(SchemaNode, {
165
+ schema: anyOneSchema,
166
+ schemaType: schemaType,
167
+ }),
168
+ anyOneSchema.items &&
169
+ react_1.default.createElement(Items, {
170
+ schema: anyOneSchema,
171
+ schemaType: schemaType,
172
+ })
173
+ )
174
+ );
175
+ })
176
+ )
177
+ );
178
+ };
179
+ const Properties = ({ schema, schemaType }) => {
180
+ const discriminator = schema.discriminator;
181
+ if (discriminator && !discriminator.mapping) {
182
+ const anyOneOf = schema.oneOf ?? schema.anyOf ?? {};
183
+ const inferredMapping = {};
184
+ Object.entries(anyOneOf).map(([_, anyOneSchema]) => {
185
+ // ensure discriminated property only renders once
186
+ if (
187
+ schema.properties[discriminator.propertyName] &&
188
+ anyOneSchema.properties[discriminator.propertyName]
189
+ )
190
+ delete anyOneSchema.properties[discriminator.propertyName];
191
+ return (inferredMapping[anyOneSchema.title] = anyOneSchema);
192
+ });
193
+ discriminator["mapping"] = inferredMapping;
194
+ }
195
+ if (Object.keys(schema.properties).length === 0) {
196
+ return react_1.default.createElement(SchemaItem_1.default, {
197
+ collapsible: false,
198
+ name: "",
199
+ required: false,
200
+ schemaName: "object",
201
+ qualifierMessage: undefined,
202
+ schema: {},
203
+ });
204
+ }
205
+ return react_1.default.createElement(
206
+ react_1.default.Fragment,
207
+ null,
208
+ Object.entries(schema.properties).map(([key, val]) =>
209
+ react_1.default.createElement(SchemaEdge, {
210
+ key: key,
211
+ name: key,
212
+ schema: val,
213
+ required: Array.isArray(schema.required)
214
+ ? schema.required.includes(key)
215
+ : false,
216
+ discriminator: discriminator,
217
+ schemaType: schemaType,
218
+ })
219
+ )
220
+ );
221
+ };
222
+ const PropertyDiscriminator = ({
223
+ name,
224
+ schemaName,
225
+ schema,
226
+ schemaType,
227
+ discriminator,
228
+ required,
229
+ }) => {
230
+ if (!schema) {
231
+ return null;
232
+ }
233
+ return react_1.default.createElement(
234
+ react_1.default.Fragment,
235
+ null,
236
+ react_1.default.createElement(
237
+ "div",
238
+ { className: "openapi-discriminator__item openapi-schema__list-item" },
239
+ react_1.default.createElement(
240
+ "div",
241
+ null,
242
+ react_1.default.createElement(
243
+ "span",
244
+ { className: "openapi-schema__container" },
245
+ react_1.default.createElement(
246
+ "strong",
247
+ {
248
+ className: "openapi-discriminator__name openapi-schema__property",
249
+ },
250
+ name
251
+ ),
252
+ schemaName &&
253
+ react_1.default.createElement(
254
+ "span",
255
+ { className: "openapi-schema__name" },
256
+ " ",
257
+ schemaName
258
+ ),
259
+ required &&
260
+ react_1.default.createElement("span", {
261
+ className: "openapi-schema__divider",
262
+ }),
263
+ required &&
264
+ react_1.default.createElement(
265
+ "span",
266
+ { className: "openapi-schema__required" },
267
+ "required"
268
+ )
269
+ ),
270
+ react_1.default.createElement(
271
+ "div",
272
+ { style: { marginLeft: "1rem" } },
273
+ schema.description &&
274
+ react_1.default.createElement(MarkdownWrapper, {
275
+ text: schema.description,
276
+ }),
277
+ (0, schema_1.getQualifierMessage)(discriminator) &&
278
+ react_1.default.createElement(MarkdownWrapper, {
279
+ text: (0, schema_1.getQualifierMessage)(discriminator),
280
+ })
281
+ ),
282
+ react_1.default.createElement(
283
+ DiscriminatorTabs_1.default,
284
+ { className: "openapi-tabs__discriminator" },
285
+ Object.keys(discriminator.mapping).map((key, index) =>
286
+ // @ts-ignore
287
+ react_1.default.createElement(
288
+ TabItem_1.default,
289
+ { key: index, label: key, value: `${index}-item-discriminator` },
290
+ react_1.default.createElement(SchemaNode, {
291
+ schema: discriminator.mapping[key],
292
+ schemaType: schemaType,
293
+ })
294
+ )
295
+ )
296
+ )
297
+ )
298
+ ),
299
+ schema.properties &&
300
+ Object.entries(schema.properties).map(
301
+ ([key, val]) =>
302
+ key !== discriminator.propertyName &&
303
+ react_1.default.createElement(SchemaEdge, {
304
+ key: key,
305
+ name: key,
306
+ schema: val,
307
+ required: Array.isArray(schema.required)
308
+ ? schema.required.includes(key)
309
+ : false,
310
+ discriminator: false,
311
+ schemaType: schemaType,
312
+ })
313
+ )
314
+ );
315
+ };
316
+ const DiscriminatorNode = ({ discriminator, schema, schemaType }) => {
317
+ let discriminatedSchemas = {};
318
+ let inferredMapping = {};
319
+ // default to empty object if no parent-level properties exist
320
+ const discriminatorProperty = schema.properties
321
+ ? schema.properties[discriminator.propertyName]
322
+ : {};
323
+ if (schema.allOf) {
324
+ const mergedSchemas = mergeAllOf(schema);
325
+ if (mergedSchemas.oneOf || mergedSchemas.anyOf) {
326
+ discriminatedSchemas = mergedSchemas.oneOf || mergedSchemas.anyOf;
327
+ }
328
+ } else if (schema.oneOf || schema.anyOf) {
329
+ discriminatedSchemas = schema.oneOf || schema.anyOf;
330
+ }
331
+ // Handle case where no mapping is defined
332
+ if (!discriminator.mapping) {
333
+ Object.entries(discriminatedSchemas).forEach(([_, subschema], index) => {
334
+ inferredMapping[subschema.title ?? `PROP${index}`] = subschema;
335
+ });
336
+ discriminator.mapping = inferredMapping;
337
+ }
338
+ // Merge sub schema discriminator property with parent
339
+ Object.keys(discriminator.mapping).forEach((key) => {
340
+ const subSchema = discriminator.mapping[key];
341
+ // Handle discriminated schema with allOf
342
+ let mergedSubSchema = {};
343
+ if (subSchema.allOf) {
344
+ mergedSubSchema = mergeAllOf(subSchema);
345
+ }
346
+ const subProperties = subSchema.properties || mergedSubSchema.properties;
347
+ // Add a safeguard check to avoid referencing subProperties if it's undefined
348
+ if (subProperties && subProperties[discriminator.propertyName]) {
349
+ if (schema.properties) {
350
+ schema.properties[discriminator.propertyName] = {
351
+ ...schema.properties[discriminator.propertyName],
352
+ ...subProperties[discriminator.propertyName],
353
+ };
354
+ if (subSchema.required && !schema.required) {
355
+ schema.required = subSchema.required;
356
+ }
357
+ // Avoid duplicating property
358
+ delete subProperties[discriminator.propertyName];
359
+ } else {
360
+ schema.properties = {};
361
+ schema.properties[discriminator.propertyName] =
362
+ subProperties[discriminator.propertyName];
363
+ // Avoid duplicating property
364
+ delete subProperties[discriminator.propertyName];
365
+ }
366
+ }
367
+ });
368
+ const name = discriminator.propertyName;
369
+ const schemaName = (0, schema_1.getSchemaName)(discriminatorProperty);
370
+ // Default case for discriminator without oneOf/anyOf/allOf
371
+ return react_1.default.createElement(PropertyDiscriminator, {
372
+ name: name,
373
+ schemaName: schemaName,
374
+ schema: schema,
375
+ schemaType: schemaType,
376
+ discriminator: discriminator,
377
+ required: Array.isArray(schema.required)
378
+ ? schema.required.includes(name)
379
+ : schema.required,
380
+ });
381
+ };
382
+ const AdditionalProperties = ({ schema, schemaType }) => {
383
+ const additionalProperties = schema.additionalProperties;
384
+ if (!additionalProperties) return null;
385
+ // Handle free-form objects
386
+ if (
387
+ additionalProperties === true ||
388
+ (0, isEmpty_1.default)(additionalProperties)
389
+ ) {
390
+ return react_1.default.createElement(SchemaItem_1.default, {
391
+ name: "property name*",
392
+ required: false,
393
+ schemaName: "any",
394
+ qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
395
+ schema: schema,
396
+ collapsible: false,
397
+ discriminator: false,
398
+ });
399
+ }
400
+ // Handle objects, arrays, complex schemas
401
+ if (
402
+ additionalProperties.properties ||
403
+ additionalProperties.items ||
404
+ additionalProperties.allOf ||
405
+ additionalProperties.additionalProperties ||
406
+ additionalProperties.oneOf ||
407
+ additionalProperties.anyOf
408
+ ) {
409
+ const title =
410
+ additionalProperties.title ||
411
+ (0, schema_1.getSchemaName)(additionalProperties);
412
+ const required = schema.required || false;
413
+ return react_1.default.createElement(SchemaNodeDetails, {
414
+ name: "property name*",
415
+ schemaName: title,
416
+ required: required,
417
+ nullable: schema.nullable,
418
+ schema: additionalProperties,
419
+ schemaType: schemaType,
420
+ });
421
+ }
422
+ // Handle primitive types
423
+ if (
424
+ additionalProperties.type === "string" ||
425
+ additionalProperties.type === "boolean" ||
426
+ additionalProperties.type === "integer" ||
427
+ additionalProperties.type === "number" ||
428
+ additionalProperties.type === "object"
429
+ ) {
430
+ const schemaName = (0, schema_1.getSchemaName)(additionalProperties);
431
+ return react_1.default.createElement(SchemaItem_1.default, {
432
+ name: "property name*",
433
+ required: false,
434
+ schemaName: schemaName,
435
+ qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
436
+ schema: additionalProperties,
437
+ collapsible: false,
438
+ discriminator: false,
439
+ children: null,
440
+ });
441
+ }
442
+ // Unknown type
443
+ return null;
444
+ };
445
+ const SchemaNodeDetails = ({
446
+ name,
447
+ schemaName,
448
+ schema,
449
+ required,
450
+ schemaType,
451
+ }) => {
452
+ return react_1.default.createElement(
453
+ SchemaItem_1.default,
454
+ { collapsible: true },
455
+ react_1.default.createElement(
456
+ Details_1.default,
457
+ {
458
+ className: "openapi-markdown__details",
459
+ summary: react_1.default.createElement(Summary, {
460
+ name: name,
461
+ schemaName: schemaName,
462
+ schema: schema,
463
+ required: required,
464
+ }),
465
+ },
466
+ react_1.default.createElement(
467
+ "div",
468
+ { style: { marginLeft: "1rem" } },
469
+ schema.description &&
470
+ react_1.default.createElement(MarkdownWrapper, {
471
+ text: schema.description,
472
+ }),
473
+ (0, schema_1.getQualifierMessage)(schema) &&
474
+ react_1.default.createElement(MarkdownWrapper, {
475
+ text: (0, schema_1.getQualifierMessage)(schema),
476
+ }),
477
+ react_1.default.createElement(SchemaNode, {
478
+ schema: schema,
479
+ schemaType: schemaType,
480
+ })
481
+ )
482
+ )
483
+ );
484
+ };
485
+ const Items = ({ schema, schemaType }) => {
486
+ // Handles case when schema.items has properties
487
+ if (schema.items?.properties) {
488
+ return react_1.default.createElement(
489
+ react_1.default.Fragment,
490
+ null,
491
+ react_1.default.createElement(ArrayBrackets_1.OpeningArrayBracket, null),
492
+ react_1.default.createElement(Properties, {
493
+ schema: schema.items,
494
+ schemaType: schemaType,
495
+ }),
496
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
497
+ );
498
+ }
499
+ // Handles case when schema.items has additionalProperties
500
+ if (schema.items?.additionalProperties) {
501
+ return react_1.default.createElement(
502
+ react_1.default.Fragment,
503
+ null,
504
+ react_1.default.createElement(ArrayBrackets_1.OpeningArrayBracket, null),
505
+ react_1.default.createElement(AdditionalProperties, {
506
+ schema: schema.items,
507
+ schemaType: schemaType,
508
+ }),
509
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
510
+ );
511
+ }
512
+ // Handles case when schema.items has oneOf or anyOf
513
+ if (schema.items?.oneOf || schema.items?.anyOf) {
514
+ return react_1.default.createElement(
515
+ react_1.default.Fragment,
516
+ null,
517
+ react_1.default.createElement(ArrayBrackets_1.OpeningArrayBracket, null),
518
+ react_1.default.createElement(AnyOneOf, {
519
+ schema: schema.items,
520
+ schemaType: schemaType,
521
+ }),
522
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
523
+ );
524
+ }
525
+ // Handles case when schema.items has allOf
526
+ if (schema.items?.allOf) {
527
+ const mergedSchemas = mergeAllOf(schema.items);
528
+ // Handles combo anyOf/oneOf + properties
529
+ if (
530
+ (mergedSchemas.oneOf || mergedSchemas.anyOf) &&
531
+ mergedSchemas.properties
532
+ ) {
533
+ return react_1.default.createElement(
534
+ react_1.default.Fragment,
535
+ null,
536
+ react_1.default.createElement(
537
+ ArrayBrackets_1.OpeningArrayBracket,
538
+ null
539
+ ),
540
+ react_1.default.createElement(AnyOneOf, {
541
+ schema: mergedSchemas,
542
+ schemaType: schemaType,
543
+ }),
544
+ react_1.default.createElement(Properties, {
545
+ schema: mergedSchemas,
546
+ schemaType: schemaType,
547
+ }),
548
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
549
+ );
550
+ }
551
+ // Handles only anyOf/oneOf
552
+ if (mergedSchemas.oneOf || mergedSchemas.anyOf) {
553
+ return react_1.default.createElement(
554
+ react_1.default.Fragment,
555
+ null,
556
+ react_1.default.createElement(
557
+ ArrayBrackets_1.OpeningArrayBracket,
558
+ null
559
+ ),
560
+ react_1.default.createElement(AnyOneOf, {
561
+ schema: mergedSchemas,
562
+ schemaType: schemaType,
563
+ }),
564
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
565
+ );
566
+ }
567
+ // Handles properties
568
+ if (mergedSchemas.properties) {
569
+ return react_1.default.createElement(
570
+ react_1.default.Fragment,
571
+ null,
572
+ react_1.default.createElement(
573
+ ArrayBrackets_1.OpeningArrayBracket,
574
+ null
575
+ ),
576
+ react_1.default.createElement(Properties, {
577
+ schema: mergedSchemas,
578
+ schemaType: schemaType,
579
+ }),
580
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
581
+ );
582
+ }
583
+ }
584
+ // Handles basic types (string, number, integer, boolean, object)
585
+ if (
586
+ schema.items?.type === "string" ||
587
+ schema.items?.type === "number" ||
588
+ schema.items?.type === "integer" ||
589
+ schema.items?.type === "boolean" ||
590
+ schema.items?.type === "object"
591
+ ) {
592
+ return react_1.default.createElement(
593
+ "div",
594
+ { style: { marginLeft: ".5rem" } },
595
+ react_1.default.createElement(ArrayBrackets_1.OpeningArrayBracket, null),
596
+ react_1.default.createElement(SchemaItem_1.default, {
597
+ collapsible: false,
598
+ name: "", // No name for array items
599
+ schemaName: (0, schema_1.getSchemaName)(schema.items),
600
+ qualifierMessage: (0, schema_1.getQualifierMessage)(schema.items),
601
+ schema: schema.items,
602
+ discriminator: false,
603
+ children: null,
604
+ }),
605
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
606
+ );
607
+ }
608
+ // Handles fallback case (use createEdges logic)
609
+ return react_1.default.createElement(
610
+ react_1.default.Fragment,
611
+ null,
612
+ react_1.default.createElement(ArrayBrackets_1.OpeningArrayBracket, null),
613
+ Object.entries(schema.items || {}).map(([key, val]) =>
614
+ react_1.default.createElement(SchemaEdge, {
615
+ key: key,
616
+ name: key,
617
+ schema: val,
618
+ schemaType: schemaType,
619
+ required: Array.isArray(schema.required)
620
+ ? schema.required.includes(key)
621
+ : false,
622
+ })
623
+ ),
624
+ react_1.default.createElement(ArrayBrackets_1.ClosingArrayBracket, null)
625
+ );
626
+ };
627
+ const SchemaEdge = ({ name, schema, required, discriminator, schemaType }) => {
628
+ if (
629
+ (schemaType === "request" && schema.readOnly) ||
630
+ (schemaType === "response" && schema.writeOnly)
631
+ ) {
632
+ return null;
633
+ }
634
+ const schemaName = (0, schema_1.getSchemaName)(schema);
635
+ if (discriminator && discriminator.propertyName === name) {
636
+ return react_1.default.createElement(PropertyDiscriminator, {
637
+ name: name,
638
+ schemaName: schemaName,
639
+ schema: schema,
640
+ schemaType: schemaType,
641
+ discriminator: discriminator,
642
+ required: required,
643
+ });
644
+ }
645
+ if (schema.oneOf || schema.anyOf) {
646
+ // return <AnyOneOf schema={schema} schemaType={schemaType} />;
647
+ return react_1.default.createElement(SchemaNodeDetails, {
648
+ name: name,
649
+ schemaName: schemaName,
650
+ schemaType: schemaType,
651
+ required: required,
652
+ schema: schema,
653
+ nullable: schema.nullable,
654
+ });
655
+ }
656
+ if (schema.properties) {
657
+ return react_1.default.createElement(SchemaNodeDetails, {
658
+ name: name,
659
+ schemaName: schemaName,
660
+ schemaType: schemaType,
661
+ required: required,
662
+ schema: schema,
663
+ nullable: schema.nullable,
664
+ });
665
+ }
666
+ if (schema.additionalProperties) {
667
+ return react_1.default.createElement(SchemaNodeDetails, {
668
+ name: name,
669
+ schemaName: schemaName,
670
+ schemaType: schemaType,
671
+ required: required,
672
+ schema: schema,
673
+ nullable: schema.nullable,
674
+ });
675
+ }
676
+ if (schema.items?.properties) {
677
+ return react_1.default.createElement(SchemaNodeDetails, {
678
+ name: name,
679
+ schemaName: schemaName,
680
+ required: required,
681
+ nullable: schema.nullable,
682
+ schema: schema,
683
+ schemaType: schemaType,
684
+ });
685
+ }
686
+ if (schema.items?.anyOf || schema.items?.oneOf) {
687
+ return react_1.default.createElement(SchemaNodeDetails, {
688
+ name: name,
689
+ schemaName: schemaName,
690
+ required: required,
691
+ nullable: schema.nullable,
692
+ schema: schema,
693
+ schemaType: schemaType,
694
+ });
695
+ }
696
+ if (schema.allOf) {
697
+ // handle circular properties
698
+ if (
699
+ schema.allOf &&
700
+ schema.allOf.length &&
701
+ schema.allOf.length === 1 &&
702
+ typeof schema.allOf[0] === "string"
703
+ ) {
704
+ return react_1.default.createElement(SchemaItem_1.default, {
705
+ collapsible: false,
706
+ name: name,
707
+ required: Array.isArray(required) ? required.includes(name) : required,
708
+ schemaName: schema.allOf[0],
709
+ qualifierMessage: undefined,
710
+ schema: schema.allOf[0],
711
+ discriminator: false,
712
+ children: null,
713
+ });
714
+ }
715
+ const mergedSchemas = mergeAllOf(schema);
716
+ if (
717
+ (schemaType === "request" && mergedSchemas.readOnly) ||
718
+ (schemaType === "response" && mergedSchemas.writeOnly)
719
+ ) {
720
+ return null;
721
+ }
722
+ const mergedSchemaName = (0, schema_1.getSchemaName)(mergedSchemas);
723
+ if (mergedSchemas.oneOf || mergedSchemas.anyOf) {
724
+ return react_1.default.createElement(SchemaNodeDetails, {
725
+ name: name,
726
+ schemaName: mergedSchemaName,
727
+ required: Array.isArray(mergedSchemas.required)
728
+ ? mergedSchemas.required.includes(name)
729
+ : mergedSchemas.required,
730
+ nullable: mergedSchemas.nullable,
731
+ schema: mergedSchemas,
732
+ schemaType: schemaType,
733
+ });
734
+ }
735
+ if (mergedSchemas.properties !== undefined) {
736
+ return react_1.default.createElement(SchemaNodeDetails, {
737
+ name: name,
738
+ schemaName: mergedSchemaName,
739
+ required: Array.isArray(mergedSchemas.required)
740
+ ? mergedSchemas.required.includes(name)
741
+ : mergedSchemas.required,
742
+ nullable: mergedSchemas.nullable,
743
+ schema: mergedSchemas,
744
+ schemaType: schemaType,
745
+ });
746
+ }
747
+ if (mergedSchemas.items?.properties) {
748
+ react_1.default.createElement(SchemaNodeDetails, {
749
+ name: name,
750
+ schemaName: mergedSchemaName,
751
+ required: Array.isArray(mergedSchemas.required)
752
+ ? mergedSchemas.required.includes(name)
753
+ : mergedSchemas.required,
754
+ nullable: mergedSchemas.nullable,
755
+ schema: mergedSchemas,
756
+ schemaType: schemaType,
757
+ });
758
+ }
759
+ return react_1.default.createElement(SchemaItem_1.default, {
760
+ collapsible: false,
761
+ name: name,
762
+ required: Array.isArray(required) ? required.includes(name) : required,
763
+ schemaName: mergedSchemaName,
764
+ qualifierMessage: (0, schema_1.getQualifierMessage)(mergedSchemas),
765
+ schema: mergedSchemas,
766
+ discriminator: false,
767
+ children: null,
768
+ });
769
+ }
770
+ return react_1.default.createElement(SchemaItem_1.default, {
771
+ collapsible: false,
772
+ name: name,
773
+ required: Array.isArray(required) ? required.includes(name) : required,
774
+ schemaName: schemaName,
775
+ qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
776
+ schema: schema,
777
+ discriminator: false,
778
+ children: null,
779
+ });
780
+ };
781
+ function renderChildren(schema, schemaType) {
782
+ return react_1.default.createElement(
783
+ react_1.default.Fragment,
784
+ null,
785
+ schema.oneOf &&
786
+ react_1.default.createElement(AnyOneOf, {
787
+ schema: schema,
788
+ schemaType: schemaType,
789
+ }),
790
+ schema.anyOf &&
791
+ react_1.default.createElement(AnyOneOf, {
792
+ schema: schema,
793
+ schemaType: schemaType,
794
+ }),
795
+ schema.properties &&
796
+ react_1.default.createElement(Properties, {
797
+ schema: schema,
798
+ schemaType: schemaType,
799
+ }),
800
+ schema.additionalProperties &&
801
+ react_1.default.createElement(AdditionalProperties, {
802
+ schema: schema,
803
+ schemaType: schemaType,
804
+ }),
805
+ schema.items &&
806
+ react_1.default.createElement(Items, {
807
+ schema: schema,
808
+ schemaType: schemaType,
809
+ })
810
+ );
811
+ }
812
+ const SchemaNode = ({ schema, schemaType }) => {
813
+ if (
814
+ (schemaType === "request" && schema.readOnly) ||
815
+ (schemaType === "response" && schema.writeOnly)
816
+ ) {
817
+ return null;
818
+ }
819
+ if (schema.discriminator) {
820
+ const { discriminator } = schema;
821
+ return react_1.default.createElement(DiscriminatorNode, {
822
+ discriminator: discriminator,
823
+ schema: schema,
824
+ schemaType: schemaType,
825
+ });
826
+ }
827
+ // Handle allOf, oneOf, anyOf without discriminators
828
+ if (schema.allOf) {
829
+ const mergedSchemas = mergeAllOf(schema);
830
+ if (
831
+ (schemaType === "request" && mergedSchemas.readOnly) ||
832
+ (schemaType === "response" && mergedSchemas.writeOnly)
833
+ ) {
834
+ return null;
835
+ }
836
+ return react_1.default.createElement(
837
+ "div",
838
+ null,
839
+ mergedSchemas.oneOf &&
840
+ react_1.default.createElement(AnyOneOf, {
841
+ schema: mergedSchemas,
842
+ schemaType: schemaType,
843
+ }),
844
+ mergedSchemas.anyOf &&
845
+ react_1.default.createElement(AnyOneOf, {
846
+ schema: mergedSchemas,
847
+ schemaType: schemaType,
848
+ }),
849
+ mergedSchemas.properties &&
850
+ react_1.default.createElement(Properties, {
851
+ schema: mergedSchemas,
852
+ schemaType: schemaType,
853
+ }),
854
+ mergedSchemas.items &&
855
+ react_1.default.createElement(Items, {
856
+ schema: mergedSchemas,
857
+ schemaType: schemaType,
858
+ })
859
+ );
860
+ }
861
+ // Handle primitives
862
+ if (
863
+ schema.type &&
864
+ !schema.oneOf &&
865
+ !schema.anyOf &&
866
+ !schema.properties &&
867
+ !schema.allOf &&
868
+ !schema.items &&
869
+ !schema.additionalProperties
870
+ ) {
871
+ const schemaName = (0, schema_1.getSchemaName)(schema);
872
+ return react_1.default.createElement(SchemaItem_1.default, {
873
+ collapsible: false,
874
+ name: schema.type,
875
+ required: Boolean(schema.required),
876
+ schemaName: schemaName,
877
+ qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
878
+ schema: schema,
879
+ discriminator: false,
880
+ children: null,
881
+ });
882
+ }
883
+ return renderChildren(schema, schemaType);
884
+ };
885
+ exports.default = SchemaNode;