@camunda8/docusaurus-theme-openapi-docs 4.5.1

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