@mintlify/msft-sdk 1.1.58 → 1.1.59

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 (519) hide show
  1. package/dist/api-playground/ApiPlayground/ApiPlaygroundContext.js +0 -1
  2. package/dist/api-playground/ApiPlayground/Request/BodySection.js +0 -1
  3. package/dist/api-playground/ApiPlayground/Request/ParameterSection.js +0 -1
  4. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js +0 -1
  5. package/dist/api-playground/ApiPlayground/Request/SecuritySection.js +0 -1
  6. package/dist/api-playground/ApiPlayground/Request/ServerSection.js +0 -1
  7. package/dist/api-playground/ApiPlayground/Request/index.js +0 -1
  8. package/dist/api-playground/ApiPlayground/Request/inputs/ArrayInput.js +0 -1
  9. package/dist/api-playground/ApiPlayground/Request/inputs/DifferentiatedInput.js +0 -1
  10. package/dist/api-playground/ApiPlayground/Request/inputs/FileInput.js +0 -1
  11. package/dist/api-playground/ApiPlayground/Request/inputs/NullInput.js +0 -1
  12. package/dist/api-playground/ApiPlayground/Request/inputs/NumberInput.js +0 -1
  13. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectChildren.js +0 -1
  14. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectInput.js +0 -1
  15. package/dist/api-playground/ApiPlayground/Request/inputs/RecursiveInput.js +0 -1
  16. package/dist/api-playground/ApiPlayground/Request/inputs/SelectInput.js +0 -1
  17. package/dist/api-playground/ApiPlayground/Request/inputs/StringInput.js +0 -1
  18. package/dist/api-playground/ApiPlayground/Request/inputs/TextInput.js +0 -1
  19. package/dist/api-playground/ApiPlayground/Response/CopyFileToClipboardButton.js +0 -1
  20. package/dist/api-playground/ApiPlayground/Response/DownloadFileButton.js +0 -1
  21. package/dist/api-playground/ApiPlayground/Response/ResponseBody/CodeResponseContent.js +0 -1
  22. package/dist/api-playground/ApiPlayground/Response/ResponseBody/index.js +0 -1
  23. package/dist/api-playground/ApiPlayground/Response/ResponseError.js +0 -1
  24. package/dist/api-playground/ApiPlayground/Response/ResponseHeaders.js +0 -1
  25. package/dist/api-playground/ApiPlayground/Response/ResponsePlaceholder.js +0 -1
  26. package/dist/api-playground/ApiPlayground/Response/ResponseTable.js +0 -1
  27. package/dist/api-playground/ApiPlayground/Response/ResponseTopbar.js +0 -1
  28. package/dist/api-playground/ApiPlayground/Response/index.js +0 -1
  29. package/dist/api-playground/ApiPlayground/components/AdditionalItemButton.js +0 -1
  30. package/dist/api-playground/ApiPlayground/components/AdditionalPropertyButton.js +0 -1
  31. package/dist/api-playground/ApiPlayground/components/ArrayCount.js +0 -1
  32. package/dist/api-playground/ApiPlayground/components/BasePathSelector.js +0 -1
  33. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js +0 -1
  34. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js +0 -1
  35. package/dist/api-playground/ApiPlayground/components/EndpointsMenuSearch.js +0 -1
  36. package/dist/api-playground/ApiPlayground/components/InputContainer.js +0 -1
  37. package/dist/api-playground/ApiPlayground/components/InputSectionContainer.js +0 -1
  38. package/dist/api-playground/ApiPlayground/components/ModalHeader.js +0 -1
  39. package/dist/api-playground/ApiPlayground/components/ObjectExpandButton.js +0 -1
  40. package/dist/api-playground/ApiPlayground/components/ParamFieldWrapper.js +0 -1
  41. package/dist/api-playground/ApiPlayground/components/PathHeader.js +0 -1
  42. package/dist/api-playground/ApiPlayground/components/PlaygroundModalWrapper.js +0 -1
  43. package/dist/api-playground/ApiPlayground/components/PrettyPath.js +0 -1
  44. package/dist/api-playground/ApiPlayground/components/SendPill.js +0 -1
  45. package/dist/api-playground/ApiPlayground/components/TrashButton.js +0 -1
  46. package/dist/api-playground/ApiPlayground/components/TypeDropdown.js +0 -1
  47. package/dist/api-playground/ApiPlayground/index.js +0 -1
  48. package/dist/api-playground/EndpointFields/ParamFields/ExampleDescription.js +0 -1
  49. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/Enum.js +0 -1
  50. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/NumberMetadata.js +0 -1
  51. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/StringMetadata.js +0 -1
  52. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/index.js +0 -1
  53. package/dist/api-playground/EndpointFields/ParamFields/RecursiveParamField.js +6 -8
  54. package/dist/api-playground/EndpointFields/components/Description.js +0 -1
  55. package/dist/api-playground/EndpointFields/components/OneOfDropdown.js +0 -1
  56. package/dist/api-playground/EndpointFields/components/OptionDropdown.js +0 -1
  57. package/dist/api-playground/EndpointFields/components/SectionHeading.js +0 -1
  58. package/dist/api-playground/EndpointFields/index.js +3 -5
  59. package/dist/api-playground-2/Api.js +0 -1
  60. package/dist/api-playground-2/ApiExamples.js +0 -1
  61. package/dist/api-playground-2/ApiFields.js +0 -1
  62. package/dist/api-playground-2/EndpointHeader.js +0 -1
  63. package/dist/api-playground-2/OperationPage.js +0 -1
  64. package/dist/api-playground-2/Playground.js +0 -1
  65. package/dist/api-playground-2/SchemaPage.js +0 -1
  66. package/dist/api-playground-2/components/EndpointFields/EndpointSecurity.js +0 -1
  67. package/dist/api-playground-2/components/EndpointFields/fields/Enum.js +0 -1
  68. package/dist/api-playground-2/components/EndpointFields/fields/NumberMetadata.js +0 -1
  69. package/dist/api-playground-2/components/EndpointFields/fields/PrimitiveParamField.js +0 -1
  70. package/dist/api-playground-2/components/EndpointFields/fields/SimpleArrayParamField.js +0 -1
  71. package/dist/api-playground-2/components/EndpointFields/fields/SimpleObjectParamField.js +0 -1
  72. package/dist/api-playground-2/components/EndpointFields/fields/SimplePrimitiveParamField.js +0 -1
  73. package/dist/api-playground-2/components/EndpointFields/fields/SimpleSchemaField.js +0 -1
  74. package/dist/api-playground-2/components/EndpointFields/fields/StringMetadata.js +0 -1
  75. package/dist/api-playground-2/components/Example/GeneratedRequestExample.js +0 -1
  76. package/dist/api-playground-2/components/Example/GeneratedResponseExample.js +0 -1
  77. package/dist/api-playground-2/components/Example/RequestExample.js +0 -1
  78. package/dist/api-playground-2/components/Example/ResponseExample.js +0 -1
  79. package/dist/api-playground-2/components/Request/BodySection.js +0 -1
  80. package/dist/api-playground-2/components/Request/InputSectionContainer.js +0 -1
  81. package/dist/api-playground-2/components/Request/ParameterSection.js +0 -1
  82. package/dist/api-playground-2/components/Request/SecuritySection.js +0 -1
  83. package/dist/api-playground-2/components/Request/ServerSection.js +0 -1
  84. package/dist/api-playground-2/components/Request/inputs/ArrayInput.js +0 -1
  85. package/dist/api-playground-2/components/Request/inputs/DifferentiatedInput.js +0 -1
  86. package/dist/api-playground-2/components/Request/inputs/FileInput.js +0 -1
  87. package/dist/api-playground-2/components/Request/inputs/InputContainer.js +0 -1
  88. package/dist/api-playground-2/components/Request/inputs/NullInput.js +0 -1
  89. package/dist/api-playground-2/components/Request/inputs/NumberInput.js +0 -1
  90. package/dist/api-playground-2/components/Request/inputs/ObjectInput.js +0 -1
  91. package/dist/api-playground-2/components/Request/inputs/OneOfInput.js +0 -1
  92. package/dist/api-playground-2/components/Request/inputs/SelectInput.js +0 -1
  93. package/dist/api-playground-2/components/Request/inputs/StringInput.js +0 -1
  94. package/dist/api-playground-2/components/Request/inputs/TextInput.js +0 -1
  95. package/dist/api-playground-2/components/TypeDropdown.js +0 -1
  96. package/dist/api-playground-2/constants/index.js +0 -1
  97. package/dist/api-playground-2/contexts/ApiPlaygroundContext.js +0 -1
  98. package/dist/api-playground-2/generators/createBodyData.js +0 -1
  99. package/dist/api-playground-2/generators/createHeaders.js +0 -1
  100. package/dist/api-playground-2/generators/generateInteractiveCodeSample.js +0 -1
  101. package/dist/api-playground-2/generators/generateRequest.js +0 -1
  102. package/dist/api-playground-2/generators/generateResponseExampleMap.js +0 -1
  103. package/dist/api-playground-2/generators/generateSnippet.js +0 -1
  104. package/dist/api-playground-2/generators/generateSnippetMap.js +0 -1
  105. package/dist/api-playground-2/generators/getFileProperties.js +0 -1
  106. package/dist/api-playground-2/hooks/useCopyPathWithInputs.js +0 -1
  107. package/dist/api-playground-2/hooks/useInitializeInputs.js +0 -1
  108. package/dist/api-playground-2/hooks/usePlaygroundInputsStore.js +0 -1
  109. package/dist/api-playground-2/hooks/useSendPlaygroundRequest.js +0 -1
  110. package/dist/api-playground-2/schemaGraph/addApiReferenceDataFromMdxAndDocsConfig.js +0 -1
  111. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js +0 -1
  112. package/dist/api-playground-2/schemaGraph/errors.js +0 -1
  113. package/dist/api-playground-2/schemaGraph/getAllRequiredProperties.js +0 -1
  114. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js +0 -1
  115. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js +0 -1
  116. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js +0 -1
  117. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js +0 -1
  118. package/dist/api-playground-2/schemaGraph/processExamples.js +0 -1
  119. package/dist/api-playground-2/schemaGraph/processSecurityOptions.js +0 -1
  120. package/dist/api-playground-2/schemaGraph/reduceCompositions.js +0 -1
  121. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js +0 -1
  122. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js +0 -1
  123. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js +0 -1
  124. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js +0 -1
  125. package/dist/api-playground-2/schemaGraph/utils.js +0 -1
  126. package/dist/api-playground-2/types/index.js +0 -1
  127. package/dist/common/guards.js +0 -1
  128. package/dist/common/parseApiTargetFromMetadata.js +0 -1
  129. package/dist/common/parseOpenApiString.js +0 -1
  130. package/dist/common/potentiallyParseOpenApiString.js +0 -1
  131. package/dist/common/replaceSlashIndex.js +0 -1
  132. package/dist/common/slugToTitle.js +0 -1
  133. package/dist/components/Api/ApiReferenceProvider.js +0 -1
  134. package/dist/components/Api/ErrorBoundary.js +0 -1
  135. package/dist/components/Api/Expandable.js +0 -1
  136. package/dist/components/Api/Markdown.js +0 -1
  137. package/dist/components/Api/MethodPill.js +0 -1
  138. package/dist/components/Api/Param.js +0 -1
  139. package/dist/components/Api/colors.js +0 -1
  140. package/dist/components/Api/dropdown-menu.js +0 -1
  141. package/dist/components/content-components/CodeGroupSelect/CodeGroupCopyButton.js +0 -1
  142. package/dist/components/content-components/CodeGroupSelect/CodeSelectDropdown.js +0 -1
  143. package/dist/components/content-components/CodeGroupSelect/index.js +0 -1
  144. package/dist/components/content-components/all-components.js +0 -1
  145. package/dist/components/content-components/callouts.js +0 -1
  146. package/dist/components/content-components/code-block.js +0 -1
  147. package/dist/components/content-components/code-group.js +0 -1
  148. package/dist/components/content-components/code-snippet.js +0 -1
  149. package/dist/components/content-components/code-snippets.js +0 -1
  150. package/dist/components/content-components/default-components.js +0 -1
  151. package/dist/components/content-components/details/details.js +0 -1
  152. package/dist/components/content-components/getNodeText.js +0 -1
  153. package/dist/components/content-components/heading.js +0 -1
  154. package/dist/components/content-components/home.js +0 -1
  155. package/dist/components/content-components/image.js +0 -1
  156. package/dist/components/content-components/latex.js +0 -1
  157. package/dist/components/content-components/link.js +0 -1
  158. package/dist/components/content-components/param-name.js +0 -1
  159. package/dist/components/content-components/table/index.js +0 -1
  160. package/dist/components/content-components/table/table-modal.js +0 -1
  161. package/dist/components/content-components/tabs/tab.js +0 -1
  162. package/dist/components/content-components/tabs/tabs.js +0 -1
  163. package/dist/components/content-components/zone-pivots/zone-pivot-context.js +0 -1
  164. package/dist/components/content-components/zone-pivots/zone-pivot-selector.js +0 -1
  165. package/dist/components/content-components/zone-pivots/zone-pivot.js +0 -1
  166. package/dist/components/content-components/zone-pivots/zone-target.js +0 -1
  167. package/dist/components/docsLayout.js +0 -1
  168. package/dist/components/docsPage.js +0 -1
  169. package/dist/components/mdx-renderer.js +0 -1
  170. package/dist/components/nav-tree/index.js +0 -1
  171. package/dist/components/nav-tree/mobile-nav.js +0 -1
  172. package/dist/components/page-context-menu.js +0 -1
  173. package/dist/components/plain-text-page.js +0 -1
  174. package/dist/components/toc/index.js +0 -1
  175. package/dist/components/toc/pivot-aware-toc.js +0 -1
  176. package/dist/constants/index.js +0 -1
  177. package/dist/constants/initialRequest.js +0 -1
  178. package/dist/constants/prism-languages.js +0 -1
  179. package/dist/constants/snippetPresets.js +0 -1
  180. package/dist/constants/zIndex.js +0 -1
  181. package/dist/context/components-context.js +0 -1
  182. package/dist/contexts/ApiPlaygroundInputsContext.js +0 -1
  183. package/dist/contexts/CodeExampleLabelContext.js +0 -1
  184. package/dist/contexts/ConfigContext.js +0 -1
  185. package/dist/contexts/EndpointLocationContext.js +0 -1
  186. package/dist/contexts/MDXContentContext.js +0 -1
  187. package/dist/env.js +0 -1
  188. package/dist/hooks/useApiPlaygroundDisplay.js +0 -1
  189. package/dist/hooks/useApiPlaygroundInputs.js +0 -1
  190. package/dist/hooks/useApiPlaygroundPrefillExamples.js +0 -1
  191. package/dist/hooks/useBaseUrlOptions.js +0 -1
  192. package/dist/hooks/useCheckHash.js +0 -1
  193. package/dist/hooks/useComponentSchemas.js +0 -1
  194. package/dist/hooks/useEndpoint.js +0 -1
  195. package/dist/hooks/useExpandableMemory.js +0 -1
  196. package/dist/hooks/useGenerateNextAdditionalProperties.js +0 -1
  197. package/dist/hooks/useGenerateNextItems.js +0 -1
  198. package/dist/hooks/useGenerateNextProperties.js +0 -1
  199. package/dist/hooks/useKeyboardShortcut.js +0 -1
  200. package/dist/hooks/useMDXContent.js +0 -1
  201. package/dist/hooks/useMDXContentController/useApiPlaygroundInputs.js +0 -1
  202. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiBaseIndexCallback.js +0 -1
  203. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiPlaygroundInputsCallback.js +0 -1
  204. package/dist/hooks/useMarkdownCopy.js +0 -1
  205. package/dist/hooks/usePlaygroundSchemaOptions.js +0 -1
  206. package/dist/hooks/usePrefilledInputs/index.js +0 -1
  207. package/dist/hooks/usePrefilledInputs/storedServerVariables.js +0 -1
  208. package/dist/hooks/useSecurityOption.js +0 -1
  209. package/dist/hooks/useSendPlaygroundRequest.js +0 -1
  210. package/dist/hooks/useSetDefaultValue.js +0 -1
  211. package/dist/index.js +0 -1
  212. package/dist/openapi/filterEnums.js +0 -1
  213. package/dist/openapi/generateNextAdditionalProperties.js +0 -1
  214. package/dist/openapi/generateNextItems.js +0 -1
  215. package/dist/openapi/generateNextProperties.js +0 -1
  216. package/dist/openapi/generateOptionLabels.js +0 -1
  217. package/dist/openapi/generateSimpleLabels.js +0 -1
  218. package/dist/openapi/generateTypeStringFromSchema.js +0 -1
  219. package/dist/openapi/getAuthFilteredSchemaArray.js +0 -1
  220. package/dist/parser/convert-html-to-mdx.js +0 -1
  221. package/dist/parser/serialize-mdx.js +0 -1
  222. package/dist/paths/isEqualIgnoringLeadingSlash.js +0 -1
  223. package/dist/paths/optionallyRemoveLeadingSlash.js +0 -1
  224. package/dist/paths/optionallyRemoveTrailingSlash.js +0 -1
  225. package/dist/plugins/extract-headings.js +0 -1
  226. package/dist/plugins/rehype/rehype-code-blocks.js +0 -1
  227. package/dist/plugins/remark/remark-heading-ids.js +0 -1
  228. package/dist/plugins/sanitize/rehype-callouts.js +0 -1
  229. package/dist/plugins/sanitize/rehype-details.js +0 -1
  230. package/dist/plugins/sanitize/rehype-heading-ids.js +0 -1
  231. package/dist/plugins/sanitize/rehype-image-urls.js +0 -1
  232. package/dist/plugins/sanitize/rehype-latex.js +0 -1
  233. package/dist/plugins/sanitize/rehype-param-name.js +0 -1
  234. package/dist/plugins/sanitize/rehype-pre-to-mdx-fence.js +0 -1
  235. package/dist/plugins/sanitize/rehype-remark.js +0 -1
  236. package/dist/plugins/sanitize/rehype-table-align.js +0 -1
  237. package/dist/plugins/sanitize/rehype-tabs.js +0 -1
  238. package/dist/plugins/sanitize/rehype-unwrap-image-links.js +0 -1
  239. package/dist/plugins/sanitize/rehype-zone-pivots.js +0 -1
  240. package/dist/plugins/sanitize/remove-html-comments.js +0 -1
  241. package/dist/utils/api-playground/defaults.js +0 -1
  242. package/dist/utils/api-playground/paramFieldDefaults.js +0 -1
  243. package/dist/utils/api-reference/getFilteredSecurityOptions.js +0 -1
  244. package/dist/utils/api-reference/getNextPropertiesByType.js +0 -1
  245. package/dist/utils/clean-title.js +0 -1
  246. package/dist/utils/cn.js +0 -1
  247. package/dist/utils/containsMarkdownTable.js +0 -1
  248. package/dist/utils/copyToClipboard.js +0 -1
  249. package/dist/utils/flattenObject.js +0 -1
  250. package/dist/utils/formatJSON.js +0 -1
  251. package/dist/utils/generate-llms-txt.js +0 -1
  252. package/dist/utils/get-node-text.js +0 -1
  253. package/dist/utils/getScrollbarClassname.js +0 -1
  254. package/dist/utils/locales/en.js +0 -1
  255. package/dist/utils/locales/index.js +0 -1
  256. package/dist/utils/rehype.js +0 -1
  257. package/dist/utils/scrollElementIntoView.js +0 -1
  258. package/dist/utils/string.js +0 -1
  259. package/dist/utils/uuid.js +0 -1
  260. package/package.json +1 -1
  261. package/dist/api-playground/ApiPlayground/ApiPlaygroundContext.js.map +0 -1
  262. package/dist/api-playground/ApiPlayground/Request/BodySection.js.map +0 -1
  263. package/dist/api-playground/ApiPlayground/Request/ParameterSection.js.map +0 -1
  264. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js.map +0 -1
  265. package/dist/api-playground/ApiPlayground/Request/SecuritySection.js.map +0 -1
  266. package/dist/api-playground/ApiPlayground/Request/ServerSection.js.map +0 -1
  267. package/dist/api-playground/ApiPlayground/Request/index.js.map +0 -1
  268. package/dist/api-playground/ApiPlayground/Request/inputs/ArrayInput.js.map +0 -1
  269. package/dist/api-playground/ApiPlayground/Request/inputs/DifferentiatedInput.js.map +0 -1
  270. package/dist/api-playground/ApiPlayground/Request/inputs/FileInput.js.map +0 -1
  271. package/dist/api-playground/ApiPlayground/Request/inputs/NullInput.js.map +0 -1
  272. package/dist/api-playground/ApiPlayground/Request/inputs/NumberInput.js.map +0 -1
  273. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectChildren.js.map +0 -1
  274. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectInput.js.map +0 -1
  275. package/dist/api-playground/ApiPlayground/Request/inputs/RecursiveInput.js.map +0 -1
  276. package/dist/api-playground/ApiPlayground/Request/inputs/SelectInput.js.map +0 -1
  277. package/dist/api-playground/ApiPlayground/Request/inputs/StringInput.js.map +0 -1
  278. package/dist/api-playground/ApiPlayground/Request/inputs/TextInput.js.map +0 -1
  279. package/dist/api-playground/ApiPlayground/Response/CopyFileToClipboardButton.js.map +0 -1
  280. package/dist/api-playground/ApiPlayground/Response/DownloadFileButton.js.map +0 -1
  281. package/dist/api-playground/ApiPlayground/Response/ResponseBody/CodeResponseContent.js.map +0 -1
  282. package/dist/api-playground/ApiPlayground/Response/ResponseBody/index.js.map +0 -1
  283. package/dist/api-playground/ApiPlayground/Response/ResponseError.js.map +0 -1
  284. package/dist/api-playground/ApiPlayground/Response/ResponseHeaders.js.map +0 -1
  285. package/dist/api-playground/ApiPlayground/Response/ResponsePlaceholder.js.map +0 -1
  286. package/dist/api-playground/ApiPlayground/Response/ResponseTable.js.map +0 -1
  287. package/dist/api-playground/ApiPlayground/Response/ResponseTopbar.js.map +0 -1
  288. package/dist/api-playground/ApiPlayground/Response/index.js.map +0 -1
  289. package/dist/api-playground/ApiPlayground/components/AdditionalItemButton.js.map +0 -1
  290. package/dist/api-playground/ApiPlayground/components/AdditionalPropertyButton.js.map +0 -1
  291. package/dist/api-playground/ApiPlayground/components/ArrayCount.js.map +0 -1
  292. package/dist/api-playground/ApiPlayground/components/BasePathSelector.js.map +0 -1
  293. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js.map +0 -1
  294. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js.map +0 -1
  295. package/dist/api-playground/ApiPlayground/components/EndpointsMenuSearch.js.map +0 -1
  296. package/dist/api-playground/ApiPlayground/components/InputContainer.js.map +0 -1
  297. package/dist/api-playground/ApiPlayground/components/InputSectionContainer.js.map +0 -1
  298. package/dist/api-playground/ApiPlayground/components/ModalHeader.js.map +0 -1
  299. package/dist/api-playground/ApiPlayground/components/ObjectExpandButton.js.map +0 -1
  300. package/dist/api-playground/ApiPlayground/components/ParamFieldWrapper.js.map +0 -1
  301. package/dist/api-playground/ApiPlayground/components/PathHeader.js.map +0 -1
  302. package/dist/api-playground/ApiPlayground/components/PlaygroundModalWrapper.js.map +0 -1
  303. package/dist/api-playground/ApiPlayground/components/PrettyPath.js.map +0 -1
  304. package/dist/api-playground/ApiPlayground/components/SendPill.js.map +0 -1
  305. package/dist/api-playground/ApiPlayground/components/TrashButton.js.map +0 -1
  306. package/dist/api-playground/ApiPlayground/components/TypeDropdown.js.map +0 -1
  307. package/dist/api-playground/ApiPlayground/index.js.map +0 -1
  308. package/dist/api-playground/EndpointFields/ParamFields/ExampleDescription.js.map +0 -1
  309. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/Enum.js.map +0 -1
  310. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/NumberMetadata.js.map +0 -1
  311. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/StringMetadata.js.map +0 -1
  312. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/index.js.map +0 -1
  313. package/dist/api-playground/EndpointFields/ParamFields/RecursiveParamField.js.map +0 -1
  314. package/dist/api-playground/EndpointFields/components/Description.js.map +0 -1
  315. package/dist/api-playground/EndpointFields/components/OneOfDropdown.js.map +0 -1
  316. package/dist/api-playground/EndpointFields/components/OptionDropdown.js.map +0 -1
  317. package/dist/api-playground/EndpointFields/components/SectionHeading.js.map +0 -1
  318. package/dist/api-playground/EndpointFields/index.js.map +0 -1
  319. package/dist/api-playground-2/Api.js.map +0 -1
  320. package/dist/api-playground-2/ApiExamples.js.map +0 -1
  321. package/dist/api-playground-2/ApiFields.js.map +0 -1
  322. package/dist/api-playground-2/EndpointHeader.js.map +0 -1
  323. package/dist/api-playground-2/OperationPage.js.map +0 -1
  324. package/dist/api-playground-2/Playground.js.map +0 -1
  325. package/dist/api-playground-2/SchemaPage.js.map +0 -1
  326. package/dist/api-playground-2/components/EndpointFields/EndpointSecurity.js.map +0 -1
  327. package/dist/api-playground-2/components/EndpointFields/fields/Enum.js.map +0 -1
  328. package/dist/api-playground-2/components/EndpointFields/fields/NumberMetadata.js.map +0 -1
  329. package/dist/api-playground-2/components/EndpointFields/fields/PrimitiveParamField.js.map +0 -1
  330. package/dist/api-playground-2/components/EndpointFields/fields/SimpleArrayParamField.js.map +0 -1
  331. package/dist/api-playground-2/components/EndpointFields/fields/SimpleObjectParamField.js.map +0 -1
  332. package/dist/api-playground-2/components/EndpointFields/fields/SimplePrimitiveParamField.js.map +0 -1
  333. package/dist/api-playground-2/components/EndpointFields/fields/SimpleSchemaField.js.map +0 -1
  334. package/dist/api-playground-2/components/EndpointFields/fields/StringMetadata.js.map +0 -1
  335. package/dist/api-playground-2/components/Example/GeneratedRequestExample.js.map +0 -1
  336. package/dist/api-playground-2/components/Example/GeneratedResponseExample.js.map +0 -1
  337. package/dist/api-playground-2/components/Example/RequestExample.js.map +0 -1
  338. package/dist/api-playground-2/components/Example/ResponseExample.js.map +0 -1
  339. package/dist/api-playground-2/components/Request/BodySection.js.map +0 -1
  340. package/dist/api-playground-2/components/Request/InputSectionContainer.js.map +0 -1
  341. package/dist/api-playground-2/components/Request/ParameterSection.js.map +0 -1
  342. package/dist/api-playground-2/components/Request/SecuritySection.js.map +0 -1
  343. package/dist/api-playground-2/components/Request/ServerSection.js.map +0 -1
  344. package/dist/api-playground-2/components/Request/inputs/ArrayInput.js.map +0 -1
  345. package/dist/api-playground-2/components/Request/inputs/DifferentiatedInput.js.map +0 -1
  346. package/dist/api-playground-2/components/Request/inputs/FileInput.js.map +0 -1
  347. package/dist/api-playground-2/components/Request/inputs/InputContainer.js.map +0 -1
  348. package/dist/api-playground-2/components/Request/inputs/NullInput.js.map +0 -1
  349. package/dist/api-playground-2/components/Request/inputs/NumberInput.js.map +0 -1
  350. package/dist/api-playground-2/components/Request/inputs/ObjectInput.js.map +0 -1
  351. package/dist/api-playground-2/components/Request/inputs/OneOfInput.js.map +0 -1
  352. package/dist/api-playground-2/components/Request/inputs/SelectInput.js.map +0 -1
  353. package/dist/api-playground-2/components/Request/inputs/StringInput.js.map +0 -1
  354. package/dist/api-playground-2/components/Request/inputs/TextInput.js.map +0 -1
  355. package/dist/api-playground-2/components/TypeDropdown.js.map +0 -1
  356. package/dist/api-playground-2/constants/index.js.map +0 -1
  357. package/dist/api-playground-2/contexts/ApiPlaygroundContext.js.map +0 -1
  358. package/dist/api-playground-2/generators/createBodyData.js.map +0 -1
  359. package/dist/api-playground-2/generators/createHeaders.js.map +0 -1
  360. package/dist/api-playground-2/generators/generateInteractiveCodeSample.js.map +0 -1
  361. package/dist/api-playground-2/generators/generateRequest.js.map +0 -1
  362. package/dist/api-playground-2/generators/generateResponseExampleMap.js.map +0 -1
  363. package/dist/api-playground-2/generators/generateSnippet.js.map +0 -1
  364. package/dist/api-playground-2/generators/generateSnippetMap.js.map +0 -1
  365. package/dist/api-playground-2/generators/getFileProperties.js.map +0 -1
  366. package/dist/api-playground-2/hooks/useCopyPathWithInputs.js.map +0 -1
  367. package/dist/api-playground-2/hooks/useInitializeInputs.js.map +0 -1
  368. package/dist/api-playground-2/hooks/usePlaygroundInputsStore.js.map +0 -1
  369. package/dist/api-playground-2/hooks/useSendPlaygroundRequest.js.map +0 -1
  370. package/dist/api-playground-2/schemaGraph/addApiReferenceDataFromMdxAndDocsConfig.js.map +0 -1
  371. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js.map +0 -1
  372. package/dist/api-playground-2/schemaGraph/errors.js.map +0 -1
  373. package/dist/api-playground-2/schemaGraph/getAllRequiredProperties.js.map +0 -1
  374. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js.map +0 -1
  375. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js.map +0 -1
  376. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js.map +0 -1
  377. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js.map +0 -1
  378. package/dist/api-playground-2/schemaGraph/processExamples.js.map +0 -1
  379. package/dist/api-playground-2/schemaGraph/processSecurityOptions.js.map +0 -1
  380. package/dist/api-playground-2/schemaGraph/reduceCompositions.js.map +0 -1
  381. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js.map +0 -1
  382. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js.map +0 -1
  383. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js.map +0 -1
  384. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js.map +0 -1
  385. package/dist/api-playground-2/schemaGraph/utils.js.map +0 -1
  386. package/dist/api-playground-2/types/index.js.map +0 -1
  387. package/dist/common/guards.js.map +0 -1
  388. package/dist/common/parseApiTargetFromMetadata.js.map +0 -1
  389. package/dist/common/parseOpenApiString.js.map +0 -1
  390. package/dist/common/potentiallyParseOpenApiString.js.map +0 -1
  391. package/dist/common/replaceSlashIndex.js.map +0 -1
  392. package/dist/common/slugToTitle.js.map +0 -1
  393. package/dist/components/Api/ApiReferenceProvider.js.map +0 -1
  394. package/dist/components/Api/ErrorBoundary.js.map +0 -1
  395. package/dist/components/Api/Expandable.js.map +0 -1
  396. package/dist/components/Api/Markdown.js.map +0 -1
  397. package/dist/components/Api/MethodPill.js.map +0 -1
  398. package/dist/components/Api/Param.js.map +0 -1
  399. package/dist/components/Api/colors.js.map +0 -1
  400. package/dist/components/Api/dropdown-menu.js.map +0 -1
  401. package/dist/components/content-components/CodeGroupSelect/CodeGroupCopyButton.js.map +0 -1
  402. package/dist/components/content-components/CodeGroupSelect/CodeSelectDropdown.js.map +0 -1
  403. package/dist/components/content-components/CodeGroupSelect/index.js.map +0 -1
  404. package/dist/components/content-components/all-components.js.map +0 -1
  405. package/dist/components/content-components/callouts.js.map +0 -1
  406. package/dist/components/content-components/code-block.js.map +0 -1
  407. package/dist/components/content-components/code-group.js.map +0 -1
  408. package/dist/components/content-components/code-snippet.js.map +0 -1
  409. package/dist/components/content-components/code-snippets.js.map +0 -1
  410. package/dist/components/content-components/default-components.js.map +0 -1
  411. package/dist/components/content-components/details/details.js.map +0 -1
  412. package/dist/components/content-components/getNodeText.js.map +0 -1
  413. package/dist/components/content-components/heading.js.map +0 -1
  414. package/dist/components/content-components/home.js.map +0 -1
  415. package/dist/components/content-components/image.js.map +0 -1
  416. package/dist/components/content-components/latex.js.map +0 -1
  417. package/dist/components/content-components/link.js.map +0 -1
  418. package/dist/components/content-components/param-name.js.map +0 -1
  419. package/dist/components/content-components/table/index.js.map +0 -1
  420. package/dist/components/content-components/table/table-modal.js.map +0 -1
  421. package/dist/components/content-components/tabs/tab.js.map +0 -1
  422. package/dist/components/content-components/tabs/tabs.js.map +0 -1
  423. package/dist/components/content-components/zone-pivots/zone-pivot-context.js.map +0 -1
  424. package/dist/components/content-components/zone-pivots/zone-pivot-selector.js.map +0 -1
  425. package/dist/components/content-components/zone-pivots/zone-pivot.js.map +0 -1
  426. package/dist/components/content-components/zone-pivots/zone-target.js.map +0 -1
  427. package/dist/components/docsLayout.js.map +0 -1
  428. package/dist/components/docsPage.js.map +0 -1
  429. package/dist/components/mdx-renderer.js.map +0 -1
  430. package/dist/components/nav-tree/index.js.map +0 -1
  431. package/dist/components/nav-tree/mobile-nav.js.map +0 -1
  432. package/dist/components/page-context-menu.js.map +0 -1
  433. package/dist/components/plain-text-page.js.map +0 -1
  434. package/dist/components/toc/index.js.map +0 -1
  435. package/dist/components/toc/pivot-aware-toc.js.map +0 -1
  436. package/dist/constants/index.js.map +0 -1
  437. package/dist/constants/initialRequest.js.map +0 -1
  438. package/dist/constants/prism-languages.js.map +0 -1
  439. package/dist/constants/snippetPresets.js.map +0 -1
  440. package/dist/constants/zIndex.js.map +0 -1
  441. package/dist/context/components-context.js.map +0 -1
  442. package/dist/contexts/ApiPlaygroundInputsContext.js.map +0 -1
  443. package/dist/contexts/CodeExampleLabelContext.js.map +0 -1
  444. package/dist/contexts/ConfigContext.js.map +0 -1
  445. package/dist/contexts/EndpointLocationContext.js.map +0 -1
  446. package/dist/contexts/MDXContentContext.js.map +0 -1
  447. package/dist/env.js.map +0 -1
  448. package/dist/hooks/useApiPlaygroundDisplay.js.map +0 -1
  449. package/dist/hooks/useApiPlaygroundInputs.js.map +0 -1
  450. package/dist/hooks/useApiPlaygroundPrefillExamples.js.map +0 -1
  451. package/dist/hooks/useBaseUrlOptions.js.map +0 -1
  452. package/dist/hooks/useCheckHash.js.map +0 -1
  453. package/dist/hooks/useComponentSchemas.js.map +0 -1
  454. package/dist/hooks/useEndpoint.js.map +0 -1
  455. package/dist/hooks/useExpandableMemory.js.map +0 -1
  456. package/dist/hooks/useGenerateNextAdditionalProperties.js.map +0 -1
  457. package/dist/hooks/useGenerateNextItems.js.map +0 -1
  458. package/dist/hooks/useGenerateNextProperties.js.map +0 -1
  459. package/dist/hooks/useKeyboardShortcut.js.map +0 -1
  460. package/dist/hooks/useMDXContent.js.map +0 -1
  461. package/dist/hooks/useMDXContentController/useApiPlaygroundInputs.js.map +0 -1
  462. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiBaseIndexCallback.js.map +0 -1
  463. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiPlaygroundInputsCallback.js.map +0 -1
  464. package/dist/hooks/useMarkdownCopy.js.map +0 -1
  465. package/dist/hooks/usePlaygroundSchemaOptions.js.map +0 -1
  466. package/dist/hooks/usePrefilledInputs/index.js.map +0 -1
  467. package/dist/hooks/usePrefilledInputs/storedServerVariables.js.map +0 -1
  468. package/dist/hooks/useSecurityOption.js.map +0 -1
  469. package/dist/hooks/useSendPlaygroundRequest.js.map +0 -1
  470. package/dist/hooks/useSetDefaultValue.js.map +0 -1
  471. package/dist/index.js.map +0 -1
  472. package/dist/openapi/filterEnums.js.map +0 -1
  473. package/dist/openapi/generateNextAdditionalProperties.js.map +0 -1
  474. package/dist/openapi/generateNextItems.js.map +0 -1
  475. package/dist/openapi/generateNextProperties.js.map +0 -1
  476. package/dist/openapi/generateOptionLabels.js.map +0 -1
  477. package/dist/openapi/generateSimpleLabels.js.map +0 -1
  478. package/dist/openapi/generateTypeStringFromSchema.js.map +0 -1
  479. package/dist/openapi/getAuthFilteredSchemaArray.js.map +0 -1
  480. package/dist/parser/convert-html-to-mdx.js.map +0 -1
  481. package/dist/parser/serialize-mdx.js.map +0 -1
  482. package/dist/paths/isEqualIgnoringLeadingSlash.js.map +0 -1
  483. package/dist/paths/optionallyRemoveLeadingSlash.js.map +0 -1
  484. package/dist/paths/optionallyRemoveTrailingSlash.js.map +0 -1
  485. package/dist/plugins/extract-headings.js.map +0 -1
  486. package/dist/plugins/rehype/rehype-code-blocks.js.map +0 -1
  487. package/dist/plugins/remark/remark-heading-ids.js.map +0 -1
  488. package/dist/plugins/sanitize/rehype-callouts.js.map +0 -1
  489. package/dist/plugins/sanitize/rehype-details.js.map +0 -1
  490. package/dist/plugins/sanitize/rehype-heading-ids.js.map +0 -1
  491. package/dist/plugins/sanitize/rehype-image-urls.js.map +0 -1
  492. package/dist/plugins/sanitize/rehype-latex.js.map +0 -1
  493. package/dist/plugins/sanitize/rehype-param-name.js.map +0 -1
  494. package/dist/plugins/sanitize/rehype-pre-to-mdx-fence.js.map +0 -1
  495. package/dist/plugins/sanitize/rehype-remark.js.map +0 -1
  496. package/dist/plugins/sanitize/rehype-table-align.js.map +0 -1
  497. package/dist/plugins/sanitize/rehype-tabs.js.map +0 -1
  498. package/dist/plugins/sanitize/rehype-unwrap-image-links.js.map +0 -1
  499. package/dist/plugins/sanitize/rehype-zone-pivots.js.map +0 -1
  500. package/dist/plugins/sanitize/remove-html-comments.js.map +0 -1
  501. package/dist/utils/api-playground/defaults.js.map +0 -1
  502. package/dist/utils/api-playground/paramFieldDefaults.js.map +0 -1
  503. package/dist/utils/api-reference/getFilteredSecurityOptions.js.map +0 -1
  504. package/dist/utils/api-reference/getNextPropertiesByType.js.map +0 -1
  505. package/dist/utils/clean-title.js.map +0 -1
  506. package/dist/utils/cn.js.map +0 -1
  507. package/dist/utils/containsMarkdownTable.js.map +0 -1
  508. package/dist/utils/copyToClipboard.js.map +0 -1
  509. package/dist/utils/flattenObject.js.map +0 -1
  510. package/dist/utils/formatJSON.js.map +0 -1
  511. package/dist/utils/generate-llms-txt.js.map +0 -1
  512. package/dist/utils/get-node-text.js.map +0 -1
  513. package/dist/utils/getScrollbarClassname.js.map +0 -1
  514. package/dist/utils/locales/en.js.map +0 -1
  515. package/dist/utils/locales/index.js.map +0 -1
  516. package/dist/utils/rehype.js.map +0 -1
  517. package/dist/utils/scrollElementIntoView.js.map +0 -1
  518. package/dist/utils/string.js.map +0 -1
  519. package/dist/utils/uuid.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputContainer.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/InputContainer.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { isEnum } from '@/api-playground-2/schemaGraph/utils';\nimport { ArrayCount } from '@/api-playground/ApiPlayground/components/ArrayCount';\nimport { ObjectExpandButton } from '@/api-playground/ApiPlayground/components/ObjectExpandButton';\nimport { TrashButton } from '@/api-playground/ApiPlayground/components/TrashButton';\nimport { Description } from '@/api-playground/EndpointFields/components/Description';\nimport { DeprecatedPill, InfoPill, RequiredPill } from '../../../../components/Api/Param';\nimport { containsMarkdownTable } from '../../../../utils/containsMarkdownTable';\n\nimport { InputContainerParams } from './DifferentiatedInput';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const InputContainer = ({\n name,\n schema,\n defaultExpanded = true,\n typeDropdown,\n arrayIndex,\n parentNames,\n clearValue,\n style,\n explode,\n children,\n}: InputContainerParams) => {\n const [showChildren, setShowChildren] = useState(defaultExpanded);\n const descriptionContainsTable =\n isEnum(schema) && schema.description && containsMarkdownTable(schema.description);\n const typeLabel =\n schema.format && typeof schema.format === 'string'\n ? `${schema.type}<${schema.format}>`\n : isEnum(schema)\n ? `enum<${schema.type}>`\n : schema.type;\n const isArray = schema.type === 'array';\n const isObject = schema.type === 'object';\n const propertiesCount = isObject ? Object.keys(schema.properties ?? {}).length : 0;\n return (\n <>\n <div\n className={cn(\n 'mint:flex mint:space-x-3 mint:items-start',\n arrayIndex != undefined && !isObject && 'mint:flex mint:items-center'\n )}\n >\n {arrayIndex != undefined && (\n <ArrayCount className={cn(isObject && 'mint:mt-8')}>{arrayIndex + 1}</ArrayCount>\n )}\n <div\n className={cn(\n 'mint:flex-1 mint:lg:grid-cols-2 mint:gap-x-12 mint:gap-y-4 mint:py-5 mint:max-w-full',\n !isArray && !isObject && \"mint:grid\",\n isArray && 'mint:flex mint:flex-col',\n isObject &&\n 'mint:gap-y-0 mint:flex mint:flex-col mint:border mint:border-gray-50 mint:dark:border-white/5 mint:rounded-xl mint:px-4 mint:py-0 mint:my-5',\n arrayIndex !== undefined && 'mint:py-1 mint:my-2'\n )}\n >\n <div\n className={cn(\n 'mint:space-y-2',\n isObject && 'mint:py-5 mint:border-b mint:border-gray-50 mint:dark:border-white/5',\n !showChildren && 'mint:border-none',\n arrayIndex != undefined && !isObject && 'mint:flex mint:items-center'\n )}\n >\n <div className=\"mint:flex mint:items-center mint:justify-between mint:font-mono mint:font-bold\">\n <div\n className=\"mint:flex mint:flex-wrap mint:items-center mint:gap-2 mint:text-xs mint:truncate\"\n title={\n parentNames && parentNames.length > 0 ? `${parentNames.join('.')}.${name}` : name\n }\n >\n <div className={cn(\"mint:text-sm mint:truncate\", name == undefined && 'mint:hidden')}>\n {parentNames && parentNames.length > 0 && style === 'deepObject' && explode ? (\n <>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">\n {parentNames.map((parentName, index) => (\n <>\n {parentName}\n {index === 0 ? '[' : ']['}\n </>\n ))}\n </span>\n <span className=\"mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100\">{name}</span>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">{']'}</span>\n </>\n ) : (\n <>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">\n {parentNames ? `${parentNames.join('.')}.` : ''}\n </span>\n <span className=\"mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100\">{name}</span>\n </>\n )}\n </div>\n {typeDropdown != undefined ? typeDropdown : <InfoPill>{typeLabel}</InfoPill>}\n {schema.isRequired && <RequiredPill />}\n {schema.deprecated && <DeprecatedPill />}\n </div>\n {isObject && (\n <ObjectExpandButton\n onClick={() => setShowChildren(!showChildren)}\n count={propertiesCount}\n labeled={defaultExpanded == false}\n />\n )}\n </div>\n {schema.description && !descriptionContainsTable && (\n <Description\n markdown={schema.description}\n className=\"mint:text-gray-500 mint:dark:text-gray-400\"\n />\n )}\n </div>\n {showChildren && (\n <div\n className={cn(\n 'mint:grid mint:grid-cols-1 mint:w-full mint:items-start mint:divide-y mint:divide-gray-50 mint:dark:divide-white/5',\n isArray && 'mint:divide-y-0'\n )}\n >\n {children}\n </div>\n )}\n </div>\n {/* // TODO - Api Playground Refactor: make sure clearValue works to delete keys */}\n {(arrayIndex != undefined || parentNames) && clearValue && (\n <TrashButton\n className={cn(isObject && 'mint:mt-8', parentNames && 'mint:mt-7')}\n onClick={() => clearValue()}\n />\n )}\n </div>\n {schema.description && descriptionContainsTable && (\n <Description markdown={schema.description} className=\"mint:text-gray-500 mint:dark:text-gray-400\" />\n )}\n </>\n );\n};\n"],"names":["InputContainer","name","schema","defaultExpanded","typeDropdown","arrayIndex","parentNames","clearValue","style","explode","children","showChildren","setShowChildren","useState","descriptionContainsTable","isEnum","containsMarkdownTable","typeLabel","isArray","isObject","propertiesCount","jsxs","Fragment","cn","ArrayCount","jsx","parentName","index","InfoPill","RequiredPill","DeprecatedPill","ObjectExpandButton","Description","TrashButton"],"mappings":";;;;;;;;;;AAaO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAA4B;AAC1B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAASV,CAAe,GAC1DW,IACJC,EAAOb,CAAM,KAAKA,EAAO,eAAec,EAAsBd,EAAO,WAAW,GAC5Ee,IACJf,EAAO,UAAU,OAAOA,EAAO,UAAW,WACtC,GAAGA,EAAO,IAAI,IAAIA,EAAO,MAAM,MAC/Ba,EAAOb,CAAM,IACX,QAAQA,EAAO,IAAI,MACnBA,EAAO,MACTgB,IAAUhB,EAAO,SAAS,SAC1BiB,IAAWjB,EAAO,SAAS,UAC3BkB,IAAkBD,IAAW,OAAO,KAAKjB,EAAO,cAAc,CAAA,CAAE,EAAE,SAAS;AACjF,SACE,gBAAAmB,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE;AAAA,UACT;AAAA,UACAlB,KAAc,QAAa,CAACc,KAAY;AAAA,QAAA;AAAA,QAGzC,UAAA;AAAA,UAAAd,KAAc,0BACZmB,GAAA,EAAW,WAAWD,EAAGJ,KAAY,WAAW,GAAI,UAAAd,IAAa,EAAA,CAAE;AAAA,UAEtE,gBAAAgB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACT;AAAA,gBACA,CAACL,KAAW,CAACC,KAAY;AAAA,gBACzBD,KAAW;AAAA,gBACXC,KACE;AAAA,gBACFd,MAAe,UAAa;AAAA,cAAA;AAAA,cAG9B,UAAA;AAAA,gBAAA,gBAAAgB;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAWE;AAAA,sBACT;AAAA,sBACAJ,KAAY;AAAA,sBACZ,CAACR,KAAgB;AAAA,sBACjBN,KAAc,QAAa,CAACc,KAAY;AAAA,oBAAA;AAAA,oBAG1C,UAAA;AAAA,sBAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,kFACb,UAAA;AAAA,wBAAA,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OACEf,KAAeA,EAAY,SAAS,IAAI,GAAGA,EAAY,KAAK,GAAG,CAAC,IAAIL,CAAI,KAAKA;AAAA,4BAG/E,UAAA;AAAA,8BAAA,gBAAAwB,EAAC,OAAA,EAAI,WAAWF,EAAG,8BAA8BtB,KAAQ,QAAa,aAAa,GAChF,UAAAK,KAAeA,EAAY,SAAS,KAAKE,MAAU,gBAAgBC,IAClE,gBAAAY,EAAAC,GAAA,EACE,UAAA;AAAA,gCAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,8CACb,UAAAnB,EAAY,IAAI,CAACoB,GAAYC,MAC5B,gBAAAN,EAAAC,GAAA,EACG,UAAA;AAAA,kCAAAI;AAAA,kCACAC,MAAU,IAAI,MAAM;AAAA,gCAAA,EAAA,CACvB,CACD,EAAA,CACH;AAAA,gCACA,gBAAAF,EAAC,QAAA,EAAK,WAAU,iEAAiE,UAAAxB,GAAK;AAAA,gCACtF,gBAAAwB,EAAC,QAAA,EAAK,WAAU,8CAA8C,UAAA,IAAA,CAAI;AAAA,8BAAA,EAAA,CACpE,IAEA,gBAAAJ,EAAAC,GAAA,EACE,UAAA;AAAA,gCAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,8CACb,UAAAnB,IAAc,GAAGA,EAAY,KAAK,GAAG,CAAC,MAAM,GAAA,CAC/C;AAAA,gCACA,gBAAAmB,EAAC,QAAA,EAAK,WAAU,iEAAiE,UAAAxB,EAAA,CAAK;AAAA,8BAAA,EAAA,CACxF,EAAA,CAEJ;AAAA,8BACCG,KAA2C,gBAAAqB,EAACG,KAAU,UAAAX,GAAU;AAAA,8BAChEf,EAAO,cAAc,gBAAAuB,EAACI,GAAA,CAAA,CAAa;AAAA,8BACnC3B,EAAO,cAAc,gBAAAuB,EAACK,GAAA,CAAA,CAAe;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAEvCX,KACC,gBAAAM;AAAA,0BAACM;AAAA,0BAAA;AAAA,4BACC,SAAS,MAAMnB,EAAgB,CAACD,CAAY;AAAA,4BAC5C,OAAOS;AAAA,4BACP,SAASjB,KAAmB;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAC9B,GAEJ;AAAA,sBACCD,EAAO,eAAe,CAACY,KACtB,gBAAAW;AAAA,wBAACO;AAAA,wBAAA;AAAA,0BACC,UAAU9B,EAAO;AAAA,0BACjB,WAAU;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACZ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGHS,KACC,gBAAAc;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAWF;AAAA,sBACT;AAAA,sBACAL,KAAW;AAAA,oBAAA;AAAA,oBAGZ,UAAAR;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH;AAAA,YAAA;AAAA,UAAA;AAAA,WAIFL,KAAc,QAAaC,MAAgBC,KAC3C,gBAAAkB;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,WAAWV,EAAGJ,KAAY,aAAab,KAAe,WAAW;AAAA,cACjE,SAAS,MAAMC,EAAA;AAAA,YAAW;AAAA,UAAA;AAAA,QAC5B;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHL,EAAO,eAAeY,KACrB,gBAAAW,EAACO,KAAY,UAAU9B,EAAO,aAAa,WAAU,6CAAA,CAA6C;AAAA,EAAA,GAEtG;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NullInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/NullInput.tsx"],"sourcesContent":["import { cn } from \"../../../../utils/cn\";\nexport const NullInput = () => {\n return (\n <input\n className=\"mint:flex-1 mint:min-w-0 mint:outline-0 mint:bg-transparent mint:text-playground-input\"\n type=\"text\"\n placeholder=\"--\"\n contentEditable=\"false\"\n disabled\n />\n );\n};\n"],"names":["NullInput","jsx"],"mappings":";AACO,MAAMA,IAAY,MAErB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,UAAQ;AAAA,EAAA;AAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/NumberInput.tsx"],"sourcesContent":["import { isInteger, isNumber } from '../../../../common/guards';\nimport { ChangeEvent } from 'react';\n\nimport { usePlaygroundInputsStore } from '@/api-playground-2/hooks/usePlaygroundInputsStore';\nimport { getSchemaPlaceholder, getUniqueInputKey } from '@/api-playground-2/schemaGraph/utils';\nimport { useSelectedLocale } from '@/utils/locales';\n\nimport { InputParams } from './DifferentiatedInput';\nimport { Ids } from '@/api-playground-2/types';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const NumberInput = ({\n name,\n schema,\n inputKeyPrefix,\n numberType,\n arrayIndex,\n}: InputParams & { numberType: string }) => {\n const locale = useSelectedLocale();\n const { getInput, setInput } = usePlaygroundInputsStore();\n const schemaPlaceholder = getSchemaPlaceholder(schema);\n const uniqueInputKey = getUniqueInputKey(inputKeyPrefix, schema, arrayIndex);\n const value = getInput(uniqueInputKey);\n const placeholder = schemaPlaceholder ?? `enter ${name ?? 'value'}`;\n const schemaType = schema.type;\n\n const getSafeNumberValue = (numberType: string, value: unknown) => {\n if (numberType === 'integer') {\n return isInteger(value) ? value : undefined;\n } else {\n return isNumber(value) ? value : undefined;\n }\n };\n const safeValue = getSafeNumberValue(numberType, value);\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.value.length === 0) {\n setInput(uniqueInputKey, undefined);\n return;\n }\n\n if (schemaType === 'integer') {\n const parsedInteger = parseInt(event.target.value);\n if (isNaN(parsedInteger)) {\n return;\n }\n setInput(uniqueInputKey, parsedInteger);\n } else {\n setInput(uniqueInputKey, parseFloat(event.target.value));\n }\n };\n\n return (\n <input\n id={Ids.APIPlaygroundInput}\n className=\"mint:flex-1 mint:min-w-0 mint:bg-transparent mint:outline-0 mint:text-playground-input\"\n placeholder={placeholder}\n aria-label={schemaPlaceholder ?? locale['aria.enterValue'].replace('{name}', name ?? 'value')}\n onKeyDown={(event) => {\n // disallow \"e\", and disallow \".\" for integer inputs\n if (event.key === 'e' || (event.key === '.' && schemaType === 'integer')) {\n event.preventDefault();\n }\n }}\n type=\"number\"\n value={safeValue ?? ''}\n onChange={onChange}\n />\n );\n};\n"],"names":["NumberInput","name","schema","inputKeyPrefix","numberType","arrayIndex","locale","useSelectedLocale","getInput","setInput","usePlaygroundInputsStore","schemaPlaceholder","getSchemaPlaceholder","uniqueInputKey","getUniqueInputKey","value","placeholder","schemaType","safeValue","isInteger","isNumber","onChange","event","parsedInteger","jsx","Ids"],"mappings":";;;;;;AAWO,MAAMA,IAAc,CAAC;AAAA,EAC1B,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF,MAA4C;AAC1C,QAAMC,IAASC,EAAA,GACT,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAoBC,EAAqBV,CAAM,GAC/CW,IAAiBC,EAAkBX,GAAgBD,GAAQG,CAAU,GACrEU,IAAQP,EAASK,CAAc,GAC/BG,IAAcL,KAAqB,SAASV,KAAQ,OAAO,IAC3DgB,IAAaf,EAAO,MASpBgB,KAPqB,CAACd,GAAoBW,MAC1CX,MAAe,YACVe,EAAUJ,CAAK,IAAIA,IAAQ,SAE3BK,EAASL,CAAK,IAAIA,IAAQ,QAGAX,GAAYW,CAAK,GAEhDM,IAAW,CAACC,MAAyC;AACzD,QAAIA,EAAM,OAAO,MAAM,WAAW,GAAG;AACnC,MAAAb,EAASI,GAAgB,MAAS;AAClC;AAAA,IACF;AAEA,QAAII,MAAe,WAAW;AAC5B,YAAMM,IAAgB,SAASD,EAAM,OAAO,KAAK;AACjD,UAAI,MAAMC,CAAa;AACrB;AAEF,MAAAd,EAASI,GAAgBU,CAAa;AAAA,IACxC;AACE,MAAAd,EAASI,GAAgB,WAAWS,EAAM,OAAO,KAAK,CAAC;AAAA,EAE3D;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAIC,EAAI;AAAA,MACR,WAAU;AAAA,MACV,aAAAT;AAAA,MACA,cAAYL,KAAqBL,EAAO,iBAAiB,EAAE,QAAQ,UAAUL,KAAQ,OAAO;AAAA,MAC5F,WAAW,CAACqB,MAAU;AAEpB,SAAIA,EAAM,QAAQ,OAAQA,EAAM,QAAQ,OAAOL,MAAe,cAC5DK,EAAM,eAAA;AAAA,MAEV;AAAA,MACA,MAAK;AAAA,MACL,OAAOJ,KAAa;AAAA,MACpB,UAAAG;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObjectInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/ObjectInput.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n convertAnySchemaToOneOfs,\n getUniqueInputKey,\n isSchemaObject,\n} from '@/api-playground-2/schemaGraph/utils';\nimport { AdditionalPropertyButton } from '@/api-playground/ApiPlayground/components/AdditionalPropertyButton';\n\nimport { DifferentiatedInput, InputParams } from './DifferentiatedInput';\n\nexport const ObjectInput = ({\n schema,\n depth,\n parentNames,\n style,\n explode,\n inputKeyPrefix,\n name,\n}: InputParams) => {\n const propertiesInputs: React.ReactNode[] = [];\n\n Object.entries(schema.properties ?? {}).forEach(([propName, propSchema]) => {\n if (isSchemaObject(propSchema)) {\n const newParentNames = name ? [name] : undefined;\n\n propertiesInputs.push(\n <DifferentiatedInput\n key={propName}\n name={propName}\n schema={propSchema}\n depth={(depth ?? 0) + 1}\n parentNames={newParentNames}\n style={style}\n explode={explode}\n inputKeyPrefix={inputKeyPrefix}\n />\n );\n }\n });\n\n const allowsAdditionalProperties =\n schema.additionalProperties !== undefined && schema.additionalProperties !== false;\n const additionalPropButtonKey = uuidv4();\n const [additionalPropKeys, setAdditionalPropKeys] = useState<string[]>([]);\n const additionalPropertiesInputs: React.ReactNode[] = [];\n\n additionalPropKeys.forEach((key) => {\n if (isSchemaObject(schema.additionalProperties)) {\n const uniqueKey = getUniqueInputKey(inputKeyPrefix, schema, undefined, key);\n additionalPropertiesInputs.push(\n <DifferentiatedInput\n key={key}\n name={key}\n schema={{ ...schema.additionalProperties, uniqueKey }}\n depth={(depth ?? 0) + 1}\n parentNames={parentNames}\n style={style}\n explode={explode}\n inputKeyPrefix={inputKeyPrefix}\n />\n );\n } else {\n const uniqueKey = getUniqueInputKey(inputKeyPrefix, schema, undefined, key);\n const anySchemaToOneOfSchema = convertAnySchemaToOneOfs();\n const oneOfWithKeys = {\n oneOf: anySchemaToOneOfSchema.oneOf?.map((schema) => {\n return {\n ...schema,\n uniqueKey,\n };\n }),\n };\n\n if (isSchemaObject(oneOfWithKeys)) {\n additionalPropertiesInputs.push(\n <DifferentiatedInput\n key={key}\n name={key}\n schema={oneOfWithKeys}\n depth={(depth ?? 0) + 1}\n parentNames={parentNames}\n style={style}\n explode={explode}\n inputKeyPrefix={inputKeyPrefix}\n />\n );\n }\n }\n });\n\n const children = [...propertiesInputs, ...additionalPropertiesInputs];\n\n if (depth === 0) {\n return <>{children}</>;\n }\n\n const addKey = (key: string) => {\n const newAdditionalPropKeys = [...additionalPropKeys, key];\n setAdditionalPropKeys(newAdditionalPropKeys);\n };\n\n const existingKeys = [...Object.keys(schema.properties ?? {}), ...additionalPropKeys];\n\n return (\n <>\n {children}\n {allowsAdditionalProperties ? (\n <AdditionalPropertyButton\n key={'add-property-button' + additionalPropButtonKey}\n existingKeys={existingKeys}\n onAddKey={addKey}\n dataTestId={\n ('name' in schema && schema.name ? schema.name : '') + '-additional-property-button'\n }\n />\n ) : null}\n </>\n );\n};\n"],"names":["ObjectInput","schema","depth","parentNames","style","explode","inputKeyPrefix","name","propertiesInputs","propName","propSchema","isSchemaObject","newParentNames","jsx","DifferentiatedInput","allowsAdditionalProperties","additionalPropButtonKey","uuidv4","additionalPropKeys","setAdditionalPropKeys","useState","additionalPropertiesInputs","key","uniqueKey","getUniqueInputKey","oneOfWithKeys","_a","convertAnySchemaToOneOfs","children","addKey","newAdditionalPropKeys","existingKeys","jsxs","Fragment","AdditionalPropertyButton"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneOfInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/OneOfInput.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport {\n generateSchemaOptionLabels,\n generateSimpleSchemaLabel,\n} from '@/api-playground-2/components/EndpointFields/fields/SimpleSchemaField';\nimport { usePlaygroundInputsStore } from '@/api-playground-2/hooks/usePlaygroundInputsStore';\nimport { isSchemaObject } from '@/api-playground-2/schemaGraph/utils';\nimport { Tabs, Tab } from '../../../../components/content-components/tabs';\n\nimport { TypeDropdown } from '../../TypeDropdown';\nimport { DifferentiatedInput, InputParams } from './DifferentiatedInput';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const OneOfInput = ({\n name,\n schema,\n clearValue,\n parentNames,\n style,\n explode,\n inputKeyPrefix,\n}: InputParams & { value?: unknown }) => {\n const [selectedSchemaIndex, setSelectedSchemaIndex] = useState(0);\n const schemas = 'oneOf' in schema && schema.oneOf ? schema.oneOf.filter(isSchemaObject) : [];\n const nullable = schemas.some((schema) => schema.type === 'null');\n // TODO - Api Playground Refactor: equivalent of schemasWithLabelInfo from RecursiveInput\n const schemasWithLabels = schemas.map((schema) => ({\n label: generateSimpleSchemaLabel(schema, nullable),\n schema: schema,\n }));\n const selectedSchema = schemas[selectedSchemaIndex];\n\n const { setInput } = usePlaygroundInputsStore();\n const uniqueKey = `${inputKeyPrefix}.${schema.uniqueKey}`;\n\n const onSelectTypeOption = (index: number) => {\n if (selectedSchema && 'type' in selectedSchema && selectedSchema.type === 'null') {\n setInput(uniqueKey, null);\n } else {\n setInput(uniqueKey, undefined);\n }\n setSelectedSchemaIndex(index);\n };\n\n if (!selectedSchema) return null;\n\n if (schemas.every((schema) => schema.type === 'object')) {\n const oneOfOptions = generateSchemaOptionLabels(schemas);\n return (\n <Tabs\n defaultTab={selectedSchemaIndex}\n onChange={onSelectTypeOption}\n className=\"mint:border-gray-100! mint:mb-4! mint:dark:border-white/10!\"\n >\n {oneOfOptions.map((option) => (\n <Tab title={option} key={option}>\n <DifferentiatedInput\n skipContainer\n name={name}\n schema={selectedSchema}\n clearValue={clearValue}\n parentNames={parentNames}\n style={style}\n explode={explode}\n inputKeyPrefix={inputKeyPrefix}\n />\n </Tab>\n ))}\n </Tabs>\n );\n }\n\n const filteredSchemasWithLabels = schemasWithLabels.filter(\n ({ schema }) => schema.type !== 'null'\n );\n\n const typeDropdown = (\n <TypeDropdown\n options={filteredSchemasWithLabels}\n selectedIndex={selectedSchemaIndex}\n onSelectOption={onSelectTypeOption}\n />\n );\n\n return (\n <DifferentiatedInput\n name={name}\n schema={selectedSchema}\n typeDropdown={typeDropdown}\n clearValue={clearValue}\n parentNames={parentNames}\n style={style}\n explode={explode}\n inputKeyPrefix={inputKeyPrefix}\n />\n );\n};\n"],"names":["OneOfInput","name","schema","clearValue","parentNames","style","explode","inputKeyPrefix","selectedSchemaIndex","setSelectedSchemaIndex","useState","schemas","isSchemaObject","nullable","schemasWithLabels","generateSimpleSchemaLabel","selectedSchema","setInput","usePlaygroundInputsStore","uniqueKey","onSelectTypeOption","index","oneOfOptions","generateSchemaOptionLabels","jsx","Tabs","option","Tab","DifferentiatedInput","filteredSchemasWithLabels","TypeDropdown"],"mappings":";;;;;;;;;AAcO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AACF,MAAyC;AACvC,QAAM,CAACC,GAAqBC,CAAsB,IAAIC,EAAS,CAAC,GAC1DC,IAAU,WAAWT,KAAUA,EAAO,QAAQA,EAAO,MAAM,OAAOU,CAAc,IAAI,CAAA,GACpFC,IAAWF,EAAQ,KAAK,CAACT,MAAWA,EAAO,SAAS,MAAM,GAE1DY,IAAoBH,EAAQ,IAAI,CAACT,OAAY;AAAA,IACjD,OAAOa,EAA0Bb,GAAQW,CAAQ;AAAA,IACjD,QAAQX;AAAAA,EAAA,EACR,GACIc,IAAiBL,EAAQH,CAAmB,GAE5C,EAAE,UAAAS,EAAA,IAAaC,EAAA,GACfC,IAAY,GAAGZ,CAAc,IAAIL,EAAO,SAAS,IAEjDkB,IAAqB,CAACC,MAAkB;AAC5C,IAAIL,KAAkB,UAAUA,KAAkBA,EAAe,SAAS,SACxEC,EAASE,GAAW,IAAI,IAExBF,EAASE,GAAW,MAAS,GAE/BV,EAAuBY,CAAK;AAAA,EAC9B;AAEA,MAAI,CAACL,EAAgB,QAAO;AAE5B,MAAIL,EAAQ,MAAM,CAACT,MAAWA,EAAO,SAAS,QAAQ,GAAG;AACvD,UAAMoB,IAAeC,EAA2BZ,CAAO;AACvD,WACE,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,YAAYjB;AAAA,QACZ,UAAUY;AAAA,QACV,WAAU;AAAA,QAET,YAAa,IAAI,CAACM,MACjB,gBAAAF,EAACG,GAAA,EAAI,OAAOD,GACV,UAAA,gBAAAF;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,eAAa;AAAA,YACb,MAAA3B;AAAA,YACA,QAAQe;AAAA,YACR,YAAAb;AAAA,YACA,aAAAC;AAAA,YACA,OAAAC;AAAA,YACA,SAAAC;AAAA,YACA,gBAAAC;AAAA,UAAA;AAAA,QAAA,EACF,GAVuBmB,CAWzB,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,QAAMG,IAA4Bf,EAAkB;AAAA,IAClD,CAAC,EAAE,QAAAZ,QAAaA,EAAO,SAAS;AAAA,EAAA;AAWlC,SACE,gBAAAsB;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAA3B;AAAA,MACA,QAAQe;AAAA,MACR,cAXF,gBAAAQ;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,SAASD;AAAA,UACT,eAAerB;AAAA,UACf,gBAAgBY;AAAA,QAAA;AAAA,MAAA;AAAA,MAShB,YAAAjB;AAAA,MACA,aAAAC;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/SelectInput.tsx"],"sourcesContent":["import { isString, isNumber, isInteger, isBoolean } from '../../../../common/guards';\nimport { ChevronDownIcon } from 'lucide-react';\nimport { ChangeEvent } from 'react';\n\nimport { usePlaygroundInputsStore } from '@/api-playground-2/hooks/usePlaygroundInputsStore';\nimport { getSchemaPlaceholder, getUniqueInputKey } from '@/api-playground-2/schemaGraph/utils';\nimport { useSelectedLocale } from '@/utils/locales';\nimport { InputParams } from './DifferentiatedInput';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const SelectInput = ({\n name,\n schema,\n inputKeyPrefix,\n enumType,\n arrayIndex,\n}: InputParams & { enumType: string }) => {\n const locale = useSelectedLocale();\n const { getInput, setInput } = usePlaygroundInputsStore();\n const schemaPlaceholder = getSchemaPlaceholder(schema);\n const options = schema.type === 'boolean' ? [true, false] : schema.enum ?? [];\n\n const uniqueInputKey = getUniqueInputKey(inputKeyPrefix, schema, arrayIndex);\n const value = getInput(uniqueInputKey);\n\n const getSafeEnumValue = (enumType: string, value: unknown) => {\n switch (enumType) {\n case 'integer': {\n return isInteger(value) ? value : undefined;\n }\n case 'number': {\n return isNumber(value) ? value : undefined;\n }\n case 'string': {\n return isString(value) ? value : undefined;\n }\n case 'boolean': {\n return isBoolean(value) ? value : undefined;\n }\n default: {\n return undefined;\n }\n }\n };\n\n const safeValue = getSafeEnumValue(enumType, value);\n\n const onChange = (event: ChangeEvent<HTMLSelectElement>) => {\n if (enumType === 'boolean') {\n setInput(uniqueInputKey, event.target.value === 'true');\n } else {\n setInput(uniqueInputKey, event.target.value);\n }\n };\n\n return (\n <div className=\"mint:relative\">\n <select\n className={cn(\n 'mint:relative mint:text-playground-input mint:w-full mint:text-left mint:flex-1 mint:outline-0 mint:cursor-pointer mint:bg-transparent',\n safeValue !== undefined\n ? 'mint:text-gray-900! mint:dark:text-gray-100!'\n : 'mint:text-gray-400! mint:dark:text-white/30!'\n )}\n value={safeValue?.toString() ?? ''}\n aria-label={\n schemaPlaceholder ?? locale['aria.selectOption'].replace('{name}', name || 'option')\n }\n onChange={onChange}\n >\n <option value=\"\" disabled>\n {schemaPlaceholder ?? `select ${name || 'option'}`}\n </option>\n {options.map((opt) => (\n <option key={opt.toString()} value={opt.toString()}>\n {opt.toString()}\n </option>\n ))}\n </select>\n <ChevronDownIcon className=\"mint:absolute mint:right-2 mint:top-1/2 mint:-translate-y-1/2 mint:h-4 mint:w-4 mint:text-gray-400 mint:dark:text-white/30 mint:pointer-events-none\" />\n </div>\n );\n};\n"],"names":["SelectInput","name","schema","inputKeyPrefix","enumType","arrayIndex","locale","useSelectedLocale","getInput","setInput","usePlaygroundInputsStore","schemaPlaceholder","getSchemaPlaceholder","options","uniqueInputKey","getUniqueInputKey","value","safeValue","isInteger","isNumber","isString","isBoolean","onChange","event","jsxs","cn","jsx","opt","ChevronDownIcon"],"mappings":";;;;;;;AAUO,MAAMA,IAAc,CAAC;AAAA,EAC1B,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,MAA0C;AACxC,QAAMC,IAASC,EAAA,GACT,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAoBC,EAAqBV,CAAM,GAC/CW,IAAUX,EAAO,SAAS,YAAY,CAAC,IAAM,EAAK,IAAIA,EAAO,QAAQ,CAAA,GAErEY,IAAiBC,EAAkBZ,GAAgBD,GAAQG,CAAU,GACrEW,IAAQR,EAASM,CAAc,GAsB/BG,KApBmB,CAACb,GAAkBY,MAAmB;AAC7D,YAAQZ,GAAAA;AAAAA,MACN,KAAK;AACH,eAAOc,EAAUF,CAAK,IAAIA,IAAQ;AAAA,MAEpC,KAAK;AACH,eAAOG,EAASH,CAAK,IAAIA,IAAQ;AAAA,MAEnC,KAAK;AACH,eAAOI,EAASJ,CAAK,IAAIA,IAAQ;AAAA,MAEnC,KAAK;AACH,eAAOK,EAAUL,CAAK,IAAIA,IAAQ;AAAA,MAEpC;AACE;AAAA,IACF;AAAA,EAEJ,GAEmCZ,GAAUY,CAAK,GAE5CM,IAAW,CAACC,MAA0C;AAC1D,IAAInB,MAAa,YACfK,EAASK,GAAgBS,EAAM,OAAO,UAAU,MAAM,IAEtDd,EAASK,GAAgBS,EAAM,OAAO,KAAK;AAAA,EAE/C;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC;AAAA,UACT;AAAA,UACAR,MAAc,SACV,iDACA;AAAA,QAAA;AAAA,QAEN,QAAOA,KAAA,gBAAAA,EAAW,eAAc;AAAA,QAChC,cACEN,KAAqBL,EAAO,mBAAmB,EAAE,QAAQ,UAAUL,KAAQ,QAAQ;AAAA,QAErF,UAAAqB;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAI,EAAC,UAAA,EAAO,OAAM,IAAG,UAAQ,IACtB,UAAAf,KAAqB,UAAUV,KAAQ,QAAQ,GAAA,CAClD;AAAA,UACCY,EAAQ,IAAI,CAACc,MACZ,gBAAAD,EAAC,YAA4B,OAAOC,EAAI,SAAA,GACrC,YAAI,SAAA,EAAS,GADHA,EAAI,UAEjB,CACD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEH,gBAAAD,EAACE,GAAA,EAAgB,WAAU,sJAAA,CAAsJ;AAAA,EAAA,GACnL;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StringInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/StringInput.tsx"],"sourcesContent":["import { isString } from '../../../../common/guards';\nimport { ChangeEvent } from 'react';\n\nimport { usePlaygroundInputsStore } from '@/api-playground-2/hooks/usePlaygroundInputsStore';\nimport { getSchemaPlaceholder, getUniqueInputKey } from '@/api-playground-2/schemaGraph/utils';\nimport { useSelectedLocale } from '@/utils/locales';\n\nimport { InputParams } from './DifferentiatedInput';\nimport { Ids } from '@/api-playground-2/types';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const StringInput = ({ name, schema, inputKeyPrefix, arrayIndex }: InputParams) => {\n const locale = useSelectedLocale();\n const { getInput, setInput } = usePlaygroundInputsStore();\n const schemaPlaceholder = getSchemaPlaceholder(schema);\n const { prefix, placeholder } = getInputAttributesForFormat(schema.format);\n const uniqueInputKey = getUniqueInputKey(inputKeyPrefix, schema, arrayIndex);\n const value = getInput(uniqueInputKey);\n\n const safeValue = isString(value) ? value : undefined;\n\n // remove modifications\n const unmodifiedValue =\n prefix && safeValue?.startsWith(prefix) ? safeValue.substring(prefix.length) : safeValue;\n\n const setModifiedValue = (newValue: string) => {\n // apply modifications\n const modifiedValue = `${prefix ?? ''}${newValue}`;\n\n if (!modifiedValue) setInput(uniqueInputKey, undefined);\n else setInput(uniqueInputKey, modifiedValue);\n };\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n setModifiedValue(event.target.value);\n };\n\n return (\n <div className=\"mint:relative mint:flex mint:flex-1 mint:items-center\">\n <div className=\"mint:absolute mint:left-2.5 mint:top-0 mint:bottom-0 mint:flex mint:items-center mint:justify-center mint:text-sm mint:text-gray-800 mint:dark:text-gray-100\">\n {prefix}\n </div>\n <input\n id={Ids.APIPlaygroundInput}\n className=\"mint:flex-1 mint:min-w-0 mint:bg-transparent mint:outline-0 mint:text-playground-input\"\n style={{ paddingLeft: prefix ? prefix.length * 0.52 + 'rem' : undefined }}\n placeholder={schemaPlaceholder ?? placeholder ?? `enter ${name ?? 'value'}`}\n aria-label={\n schemaPlaceholder ??\n placeholder ??\n locale['aria.enterValue'].replace('{name}', name ?? 'value')\n }\n type=\"text\"\n value={unmodifiedValue ?? ''}\n onChange={onChange}\n spellCheck={false}\n />\n </div>\n );\n};\n\ntype InputAttributes = {\n prefix?: string;\n placeholder?: string;\n};\n\nconst getInputAttributesForFormat = (format: string | undefined): InputAttributes => {\n switch (format?.toLowerCase()) {\n case 'bearer':\n return {\n prefix: 'Bearer ',\n placeholder: 'enter bearer token',\n };\n }\n return {};\n};\n"],"names":["StringInput","name","schema","inputKeyPrefix","arrayIndex","locale","useSelectedLocale","getInput","setInput","usePlaygroundInputsStore","schemaPlaceholder","getSchemaPlaceholder","prefix","placeholder","getInputAttributesForFormat","uniqueInputKey","getUniqueInputKey","value","safeValue","isString","unmodifiedValue","setModifiedValue","newValue","modifiedValue","onChange","event","jsxs","jsx","Ids","format"],"mappings":";;;;;;AAWO,MAAMA,IAAc,CAAC,EAAE,MAAAC,GAAM,QAAAC,GAAQ,gBAAAC,GAAgB,YAAAC,QAA8B;AACxF,QAAMC,IAASC,EAAA,GACT,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAoBC,EAAqBT,CAAM,GAC/C,EAAE,QAAAU,GAAQ,aAAAC,EAAA,IAAgBC,EAA4BZ,EAAO,MAAM,GACnEa,IAAiBC,EAAkBb,GAAgBD,GAAQE,CAAU,GACrEa,IAAQV,EAASQ,CAAc,GAE/BG,IAAYC,EAASF,CAAK,IAAIA,IAAQ,QAGtCG,IACJR,MAAUM,KAAA,QAAAA,EAAW,WAAWN,MAAUM,EAAU,UAAUN,EAAO,MAAM,IAAIM,GAE3EG,IAAmB,CAACC,MAAqB;AAE7C,UAAMC,IAAgB,GAAGX,KAAU,EAAE,GAAGU,CAAQ;AAEhD,IAAKC,IACAf,EAASO,GAAgBQ,CAAa,IADvBf,EAASO,GAAgB,MAAS;AAAA,EAExD,GAEMS,IAAW,CAACC,MAAyC;AACzD,IAAAJ,EAAiBI,EAAM,OAAO,KAAK;AAAA,EACrC;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,yDACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,gKACZ,UAAAf,GACH;AAAA,IACA,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAIC,EAAI;AAAA,QACR,WAAU;AAAA,QACV,OAAO,EAAE,aAAahB,IAASA,EAAO,SAAS,OAAO,QAAQ,OAAA;AAAA,QAC9D,aAAaF,KAAqBG,KAAe,SAASZ,KAAQ,OAAO;AAAA,QACzE,cACES,KACAG,KACAR,EAAO,iBAAiB,EAAE,QAAQ,UAAUJ,KAAQ,OAAO;AAAA,QAE7D,MAAK;AAAA,QACL,OAAOmB,KAAmB;AAAA,QAC1B,UAAAI;AAAA,QACA,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EACd,GACF;AAEJ,GAOMV,IAA8B,CAACe,MAAgD;AACnF,UAAQA,KAAA,gBAAAA,EAAQ,eAAY;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,aAAa;AAAA,MAAA;AAAA,EACf;AAEJ,SAAO,CAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextInput.js","sources":["../../../../../src/api-playground-2/components/Request/inputs/TextInput.tsx"],"sourcesContent":["import { isString } from '../../../../common/guards';\nimport { ChangeEvent } from 'react';\n\nimport { usePlaygroundInputsStore } from '@/api-playground-2/hooks/usePlaygroundInputsStore';\nimport { getSchemaPlaceholder, getUniqueInputKey } from '@/api-playground-2/schemaGraph/utils';\nimport { useSelectedLocale } from '@/utils/locales';\n\nimport { InputParams } from './DifferentiatedInput';\nimport { cn } from \"../../../../utils/cn\";\n\nexport const TextInput = ({ name, schema, inputKeyPrefix, arrayIndex }: InputParams) => {\n const locale = useSelectedLocale();\n const { getInput, setInput } = usePlaygroundInputsStore();\n const uniqueInputKey = getUniqueInputKey(inputKeyPrefix, schema, arrayIndex);\n const value = getInput(uniqueInputKey);\n const safeValue = isString(value) ? value : undefined;\n const onChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n setInput(uniqueInputKey, event.target.value);\n };\n const schemaPlaceholder = getSchemaPlaceholder(schema);\n\n return (\n <textarea\n className=\"mint:-mx-3.5 mint:px-3.5 mint:flex-1 mint:min-h-[2.5rem] mint:min-w-0 mint:bg-transparent mint:outline-0 mint:text-playground-input mint:resize-y\"\n rows={2}\n placeholder={schemaPlaceholder ?? `Enter ${name ?? 'value'}`}\n aria-label={schemaPlaceholder ?? locale['aria.enterValue'].replace('{name}', name ?? 'value')}\n value={safeValue}\n onChange={onChange}\n spellCheck={false}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n />\n );\n};\n"],"names":["TextInput","name","schema","inputKeyPrefix","arrayIndex","locale","useSelectedLocale","getInput","setInput","usePlaygroundInputsStore","uniqueInputKey","getUniqueInputKey","value","safeValue","isString","onChange","event","schemaPlaceholder","getSchemaPlaceholder","jsx"],"mappings":";;;;;AAUO,MAAMA,IAAY,CAAC,EAAE,MAAAC,GAAM,QAAAC,GAAQ,gBAAAC,GAAgB,YAAAC,QAA8B;AACtF,QAAMC,IAASC,EAAA,GACT,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAiBC,EAAkBR,GAAgBD,GAAQE,CAAU,GACrEQ,IAAQL,EAASG,CAAc,GAC/BG,IAAYC,EAASF,CAAK,IAAIA,IAAQ,QACtCG,IAAW,CAACC,MAA4C;AAC5D,IAAAR,EAASE,GAAgBM,EAAM,OAAO,KAAK;AAAA,EAC7C,GACMC,IAAoBC,EAAqBhB,CAAM;AAErD,SACE,gBAAAiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAM;AAAA,MACN,aAAaF,KAAqB,SAAShB,KAAQ,OAAO;AAAA,MAC1D,cAAYgB,KAAqBZ,EAAO,iBAAiB,EAAE,QAAQ,UAAUJ,KAAQ,OAAO;AAAA,MAC5F,OAAOY;AAAA,MACP,UAAAE;AAAA,MACA,YAAY;AAAA,MACZ,gBAAe;AAAA,MACf,cAAa;AAAA,MACb,aAAY;AAAA,IAAA;AAAA,EAAA;AAGlB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypeDropdown.js","sources":["../../../src/api-playground-2/components/TypeDropdown.tsx"],"sourcesContent":["\nimport { ChevronDownFilled } from '@fluentui/react-icons';\n\nimport type { ResolvedSchemaObject } from '@/api-playground-2/types';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/Api/dropdown-menu';\nimport { cn } from \"../../utils/cn\";\n\n// the same as components/TypeDropdown, but for using SchemaObjects and prefilled labels\ntype TypeDropdownParams = {\n options: { label: string; schema: ResolvedSchemaObject }[];\n selectedIndex: number;\n onSelectOption: (index: number) => void;\n className?: string;\n};\n\nexport const TypeDropdown = ({\n options,\n selectedIndex,\n onSelectOption,\n className,\n}: TypeDropdownParams) => {\n const displayOptions = options.length > 1;\n const selectedOption = options[selectedIndex];\n\n return (\n <div\n className={cn(\n 'mint:relative mint:flex mint:items-center mint:px-2 mint:py-0.5 mint:text-gray-600 dark:text-gray-300 mint:hover:text-gray-950 dark:hover:text-white mint:font-medium',\n className\n )}\n >\n <DropdownMenu>\n <DropdownMenuTrigger\n disabled={!displayOptions}\n className=\"mint:font-mono mint:text-xs mint:text-gray-600 mint:dark:text-gray-300 mint:hover:text-gray-950 mint:dark:hover:text-white mint:px-2\"\n >\n <div className=\"mint:flex mint:items-center mint:gap-1.5\">\n <span>{selectedOption?.label}</span>\n {displayOptions && (\n <ChevronDownFilled className=\"mint:h-2.5 mint:w-2.5 mint:text-gray-500 mint:dark:text-gray-400 mint:shrink-0\" />\n )}\n </div>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"mint:min-w-24\">\n {options.map((option, index) => (\n <DropdownMenuItem\n key={index}\n isSelected={index === selectedIndex}\n onSelect={() => onSelectOption(index)}\n className=\"mint:text-xs\"\n >\n {option.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n};\n"],"names":["TypeDropdown","options","selectedIndex","onSelectOption","className","displayOptions","selectedOption","jsx","cn","DropdownMenu","DropdownMenuTrigger","jsxs","ChevronDownFilled","DropdownMenuContent","option","index","DropdownMenuItem"],"mappings":";;;;AAoBO,MAAMA,IAAe,CAAC;AAAA,EAC3B,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AACF,MAA0B;AACxB,QAAMC,IAAiBJ,EAAQ,SAAS,GAClCK,IAAiBL,EAAQC,CAAa;AAE5C,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAGF,4BAACK,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAF;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,UAAU,CAACL;AAAA,YACX,WAAU;AAAA,YAEV,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,cAAA,gBAAAJ,EAAC,QAAA,EAAM,iCAAgB,MAAA,CAAM;AAAA,cAC5BF,KACC,gBAAAE,EAACK,GAAA,EAAkB,WAAU,iFAAA,CAAiF;AAAA,YAAA,EAAA,CAElH;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAL,EAACM,KAAoB,WAAU,iBAC5B,YAAQ,IAAI,CAACC,GAAQC,MACpB,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YAEC,YAAYD,MAAUb;AAAA,YACtB,UAAU,MAAMC,EAAeY,CAAK;AAAA,YACpC,WAAU;AAAA,YAET,UAAAD,EAAO;AAAA,UAAA;AAAA,UALHC;AAAA,QAAA,CAOR,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/api-playground-2/constants/index.ts"],"sourcesContent":["import { ApiPlaygroundInputs } from '@mintlify/validation';\n\nexport const MAX_RECURSION_DEPTH = 10;\nexport const MAX_SCHEMA_COMBINATION_SIZE = 1000;\nexport const CIRCULAR_REF_KEY = '$circularRef';\nexport const stringFileFormats = ['binary', 'base64'];\n\nexport const combinationKeys = [\n 'properties',\n 'additionalProperties',\n 'items',\n 'oneOf',\n 'anyOf',\n 'allOf',\n];\n\n// duplicated from ApiPlaygroundInputsContext.tsx\nexport const initialApiPlaygroundInputs: ApiPlaygroundInputs = {\n server: {},\n path: {},\n query: {},\n header: {},\n cookie: {},\n body: undefined,\n};\n\nexport const apiPlaygroundInputKeys = {\n server: 'server',\n path: 'path',\n query: 'query',\n header: 'header',\n cookie: 'cookie',\n body: 'body',\n};\n"],"names":["MAX_SCHEMA_COMBINATION_SIZE","CIRCULAR_REF_KEY","stringFileFormats","combinationKeys","initialApiPlaygroundInputs","apiPlaygroundInputKeys"],"mappings":"AAGO,MAAMA,IAA8B,KAC9BC,IAAmB,gBACnBC,IAAoB,CAAC,UAAU,QAAQ,GAEvCC,IAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGaC,IAAkD;AAAA,EAC7D,QAAQ,CAAA;AAAA,EACR,MAAM,CAAA;AAAA,EACN,OAAO,CAAA;AAAA,EACP,QAAQ,CAAA;AAAA,EACR,QAAQ,CAAA;AAAA,EACR,MAAM;AACR,GAEaC,IAAyB;AAAA,EACpC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AACR;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiPlaygroundContext.js","sources":["../../../src/api-playground-2/contexts/ApiPlaygroundContext.tsx"],"sourcesContent":["\nimport { ApiPlaygroundResultType } from '@mintlify/models';\nimport { createContext } from 'react';\n\n// duplicate of apps/client/src/api-playground/ApiPlayground/ApiPlaygroundContext.tsx\nexport type ApiPlaygroundContextType = {\n isSending?: boolean;\n sendRequest?: () => void;\n isPlaygroundExpanded: boolean;\n result?: ApiPlaygroundResultType;\n selectedBaseUrlIndex: number;\n setSelectedBaseUrlIndex?: (index: number) => void;\n setIsPlaygroundExpanded?: (expanded: boolean) => void;\n baseUrlOptions?: string[];\n selectedExampleIndex?: number;\n setSelectedExampleIndex?: (index: number) => void;\n};\n\nexport const ApiPlaygroundContext = createContext<ApiPlaygroundContextType>({\n isSending: false,\n selectedBaseUrlIndex: 0,\n isPlaygroundExpanded: false,\n selectedExampleIndex: 0,\n});\n"],"names":["ApiPlaygroundContext","createContext"],"mappings":";AAkBO,MAAMA,IAAuBC,EAAwC;AAAA,EAC1E,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,sBAAsB;AACxB,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createBodyData.js","sources":["../../../src/api-playground-2/generators/createBodyData.ts"],"sourcesContent":["import { isFile, isObject } from '../../common/guards';\nimport type { PostData } from 'har-format';\n\nexport const getPostData = (\n bodyData: unknown,\n selectedBodyContentType?: string,\n requiredProperties?: string[],\n fileProperties?: string[]\n): PostData | undefined => {\n if (bodyData === undefined) {\n return undefined;\n }\n\n if (\n typeof bodyData === 'object' &&\n bodyData !== null &&\n requiredProperties &&\n requiredProperties.length > 0\n ) {\n bodyData = Object.fromEntries(\n Object.entries(bodyData).filter(([key]) => requiredProperties.includes(key))\n );\n }\n\n // if body type is form data, convert to a list of form params\n if (\n selectedBodyContentType === 'multipart/form-data' ||\n selectedBodyContentType === 'application/x-www-form-urlencoded'\n ) {\n if (!bodyData || typeof bodyData !== 'object') {\n return undefined;\n }\n\n if (typeof bodyData === 'object' && fileProperties && fileProperties.length > 0) {\n if (isObject(bodyData)) {\n fileProperties.forEach((fieldName: string) => {\n if (!(fieldName in bodyData)) {\n bodyData[fieldName] = {\n fileName: 'example-file',\n };\n }\n });\n }\n }\n\n const getParamValue = (value: unknown) => {\n if (isFile(value)) {\n return value.name || 'file';\n }\n if (typeof value === 'object') {\n return JSON.stringify(value, undefined, 2);\n }\n return value?.toString();\n };\n\n return {\n mimeType: selectedBodyContentType,\n params: Object.entries(bodyData).flatMap(([name, value]) => {\n if (Array.isArray(value)) {\n return value\n .filter((item) => item !== undefined && item !== null)\n .map((item, index) => {\n const paramName = value.length > 1 ? `${name}[${index}]` : name;\n if (isFile(item) && 'name' in item) {\n return {\n name: paramName,\n value: getParamValue(item),\n fileName: item.name,\n };\n } else if (fileProperties && fileProperties.includes(name)) {\n return {\n name: paramName,\n value: getParamValue(item),\n fileName: 'example-file',\n };\n }\n return {\n name: paramName,\n value: getParamValue(item),\n };\n });\n }\n\n if (isFile(value) && 'name' in value) {\n return [\n {\n name,\n value: getParamValue(value),\n fileName: value.name,\n },\n ];\n } else if (fileProperties && fileProperties.includes(name)) {\n return [\n {\n name,\n value: getParamValue(value),\n fileName: 'example-file',\n },\n ];\n }\n return [\n {\n name,\n value: getParamValue(value),\n },\n ];\n }),\n };\n }\n\n if (\n typeof bodyData === 'string' &&\n selectedBodyContentType &&\n isPlainText(selectedBodyContentType)\n ) {\n return {\n mimeType: selectedBodyContentType,\n text: bodyData,\n };\n }\n\n return {\n mimeType: 'application/json',\n text: JSON.stringify(bodyData, null, 2),\n };\n};\n\nfunction isPlainText(rawContentType: string) {\n const contentType = rawContentType.toLowerCase();\n return (\n contentType.startsWith('text/') || contentType.endsWith('+xml') || contentType.endsWith('/xml')\n );\n}\n"],"names":["getPostData","bodyData","selectedBodyContentType","requiredProperties","fileProperties","key","isObject","fieldName","getParamValue","value","isFile","name","item","index","paramName","isPlainText","rawContentType","contentType"],"mappings":";AAGO,MAAMA,IAAc,CACzBC,GACAC,GACAC,GACAC,MACyB;AACzB,MAAIH,MAAa,QAgBjB;AAAA,QAXE,OAAOA,KAAa,YACpBA,MAAa,QACbE,KACAA,EAAmB,SAAS,MAE5BF,IAAW,OAAO;AAAA,MAChB,OAAO,QAAQA,CAAQ,EAAE,OAAO,CAAC,CAACI,CAAG,MAAMF,EAAmB,SAASE,CAAG,CAAC;AAAA,IAAA,IAM7EH,MAA4B,yBAC5BA,MAA4B,qCAC5B;AACA,UAAI,CAACD,KAAY,OAAOA,KAAa;AACnC;AAGF,MAAI,OAAOA,KAAa,YAAYG,KAAkBA,EAAe,SAAS,KACxEE,EAASL,CAAQ,KACnBG,EAAe,QAAQ,CAACG,MAAsB;AAC5C,QAAMA,KAAaN,MACjBA,EAASM,CAAS,IAAI;AAAA,UACpB,UAAU;AAAA,QAAA;AAAA,MAGhB,CAAC;AAIL,YAAMC,IAAgB,CAACC,MACjBC,EAAOD,CAAK,IACPA,EAAM,QAAQ,SAEnB,OAAOA,KAAU,WACZ,KAAK,UAAUA,GAAO,QAAW,CAAC,IAEpCA,KAAA,gBAAAA,EAAO;AAGhB,aAAO;AAAA,QACL,UAAUP;AAAA,QACV,QAAQ,OAAO,QAAQD,CAAQ,EAAE,QAAQ,CAAC,CAACU,GAAMF,CAAK,MAChD,MAAM,QAAQA,CAAK,IACdA,EACJ,OAAO,CAACG,MAA+BA,KAAS,IAAI,EACpD,IAAI,CAACA,GAAMC,MAAU;AACpB,gBAAMC,IAAYL,EAAM,SAAS,IAAI,GAAGE,CAAI,IAAIE,CAAK,MAAMF;AAC3D,iBAAID,EAAOE,CAAI,KAAK,UAAUA,IACrB;AAAA,YACL,MAAME;AAAA,YACN,OAAON,EAAcI,CAAI;AAAA,YACzB,UAAUA,EAAK;AAAA,UAAA,IAERR,KAAkBA,EAAe,SAASO,CAAI,IAChD;AAAA,YACL,MAAMG;AAAA,YACN,OAAON,EAAcI,CAAI;AAAA,YACzB,UAAU;AAAA,UAAA,IAGP;AAAA,YACL,MAAME;AAAA,YACN,OAAON,EAAcI,CAAI;AAAA,UAAA;AAAA,QAE7B,CAAC,IAGDF,EAAOD,CAAK,KAAK,UAAUA,IACtB;AAAA,UACL;AAAA,YACE,MAAAE;AAAA,YACA,OAAOH,EAAcC,CAAK;AAAA,YAC1B,UAAUA,EAAM;AAAA,UAAA;AAAA,QAClB,IAEOL,KAAkBA,EAAe,SAASO,CAAI,IAChD;AAAA,UACL;AAAA,YACE,MAAAA;AAAA,YACA,OAAOH,EAAcC,CAAK;AAAA,YAC1B,UAAU;AAAA,UAAA;AAAA,QACZ,IAGG;AAAA,UACL;AAAA,YACE,MAAAE;AAAA,YACA,OAAOH,EAAcC,CAAK;AAAA,UAAA;AAAA,QAC5B,CAEH;AAAA,MAAA;AAAA,IAEL;AAEA,WACE,OAAOR,KAAa,YACpBC,KACAa,EAAYb,CAAuB,IAE5B;AAAA,MACL,UAAUA;AAAA,MACV,MAAMD;AAAA,IAAA,IAIH;AAAA,MACL,UAAU;AAAA,MACV,MAAM,KAAK,UAAUA,GAAU,MAAM,CAAC;AAAA,IAAA;AAAA;AAE1C;AAEA,SAASc,EAAYC,GAAwB;AAC3C,QAAMC,IAAcD,EAAe,YAAA;AACnC,SACEC,EAAY,WAAW,OAAO,KAAKA,EAAY,SAAS,MAAM,KAAKA,EAAY,SAAS,MAAM;AAElG;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createHeaders.js","sources":["../../../src/api-playground-2/generators/createHeaders.ts"],"sourcesContent":["import type { Header } from 'har-format';\n\nimport type { ApiReferenceDataV2, SecuritySchemeAndScope } from '@/api-playground-2/types';\n\nexport const createHeaders = (\n apiReferenceData: ApiReferenceDataV2,\n headerInputs: Record<string, unknown>,\n selectedBodyContentType?: string,\n // @ts-expect-error\n selectedSecurityOptionIndex: number\n): Header[] => {\n const headers: Header[] = [];\n const addedHeaders = new Set<string>();\n const requiredHeaderParameters = Object.values(\n apiReferenceData.dependencies?.parameters?.header ?? {}\n )\n .filter((param) => !param.in || param.in === 'header')\n .filter((param) => param.schema.isRequired);\n const securityHeaderParameters = Object.values(\n apiReferenceData.dependencies?.processedSecurityOptions ?? {}\n ).filter(({ scheme }) => !('in' in scheme) || scheme.in === 'header');\n\n Object.entries(headerInputs)\n .filter((entry): entry is [string, NonNullable<unknown>] => entry[1] != null)\n .forEach(([name, value]) => {\n addedHeaders.add(name);\n headers.push({\n name,\n value: value.toString(),\n });\n });\n\n requiredHeaderParameters.forEach((param) => {\n const name = param.name;\n if (!addedHeaders.has(name)) {\n headers.push({\n name,\n value: `<${name.toLowerCase()}>`,\n });\n }\n });\n\n const securityOption = securityHeaderParameters[selectedSecurityOptionIndex];\n if (securityOption) {\n const { scheme, schema } = securityOption;\n const name = 'name' in scheme ? scheme.name : schema.title ?? 'Authorization';\n if (!addedHeaders.has(name)) {\n headers.push({ name, value: generateAuthPlaceholder(scheme) });\n }\n }\n\n if (selectedBodyContentType) {\n addContentTypeHeader(headers, selectedBodyContentType);\n }\n\n return headers;\n};\n\nconst generateAuthPlaceholder = (scheme: SecuritySchemeAndScope): string => {\n switch (scheme.type) {\n case 'http':\n return scheme.scheme === 'basic' ? 'Basic <encoded-value>' : 'Bearer <token>';\n case 'oauth2':\n return 'Bearer <token>';\n case 'apiKey':\n default:\n return '<api-key>';\n }\n};\n\nconst addContentTypeHeader = (headers: Header[], contentType: string) => {\n if (headers.some(({ name }) => name.toLowerCase() === 'content-type')) {\n return;\n }\n\n headers.push({\n name: 'Content-Type',\n value: contentType,\n });\n};\n"],"names":["createHeaders","apiReferenceData","headerInputs","selectedBodyContentType","selectedSecurityOptionIndex","_a","_b","_c","headers","addedHeaders","requiredHeaderParameters","param","securityHeaderParameters","scheme","entry","name","value","securityOption","schema","generateAuthPlaceholder","addContentTypeHeader","contentType"],"mappings":"AAIO,MAAMA,IAAgB,CAC3BC,GACAC,GACAC,GAEAC,MACa;AANR,MAAAC,GAAAC,GAAAC;AAOL,QAAMC,IAAoB,CAAA,GACpBC,wBAAmB,IAAA,GACnBC,IAA2B,OAAO;AAAA,MACtCJ,KAAAD,IAAAJ,EAAiB,iBAAjB,gBAAAI,EAA+B,eAA/B,gBAAAC,EAA2C,WAAU,CAAA;AAAA,EAAC,EAErD,OAAO,CAACK,MAAU,CAACA,EAAM,MAAMA,EAAM,OAAO,QAAQ,EACpD,OAAO,CAACA,MAAUA,EAAM,OAAO,UAAU,GACtCC,IAA2B,OAAO;AAAA,MACtCL,IAAAN,EAAiB,iBAAjB,gBAAAM,EAA+B,6BAA4B,CAAA;AAAA,EAAC,EAC5D,OAAO,CAAC,EAAE,QAAAM,QAAa,EAAE,QAAQA,MAAWA,EAAO,OAAO,QAAQ;AAEpE,SAAO,QAAQX,CAAY,EACxB,OAAO,CAACY,MAAmDA,EAAM,CAAC,KAAK,IAAI,EAC3E,QAAQ,CAAC,CAACC,GAAMC,CAAK,MAAM;AAC1B,IAAAP,EAAa,IAAIM,CAAI,GACrBP,EAAQ,KAAK;AAAA,MACX,MAAAO;AAAA,MACA,OAAOC,EAAM,SAAA;AAAA,IAAS,CACvB;AAAA,EACH,CAAC,GAEHN,EAAyB,QAAQ,CAACC,MAAU;AAC1C,UAAMI,IAAOJ,EAAM;AACnB,IAAKF,EAAa,IAAIM,CAAI,KACxBP,EAAQ,KAAK;AAAA,MACX,MAAAO;AAAA,MACA,OAAO,IAAIA,EAAK,YAAA,CAAa;AAAA,IAAA,CAC9B;AAAA,EAEL,CAAC;AAED,QAAME,IAAiBL,EAAyBR,CAA2B;AAC3E,MAAIa,GAAgB;AAClB,UAAM,EAAE,QAAAJ,GAAQ,QAAAK,EAAA,IAAWD,GACrBF,IAAO,UAAUF,IAASA,EAAO,OAAOK,EAAO,SAAS;AAC9D,IAAKT,EAAa,IAAIM,CAAI,KACxBP,EAAQ,KAAK,EAAE,MAAAO,GAAM,OAAOI,EAAwBN,CAAM,GAAG;AAAA,EAEjE;AAEA,SAAIV,KACFiB,EAAqBZ,GAASL,CAAuB,GAGhDK;AACT,GAEMW,IAA0B,CAACN,MAA2C;AAC1E,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAOA,EAAO,WAAW,UAAU,0BAA0B;AAAA,IAC/D,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL;AACE,aAAO;AAAA,EAAA;AAEb,GAEMO,IAAuB,CAACZ,GAAmBa,MAAwB;AACvE,EAAIb,EAAQ,KAAK,CAAC,EAAE,MAAAO,EAAA,MAAWA,EAAK,kBAAkB,cAAc,KAIpEP,EAAQ,KAAK;AAAA,IACX,MAAM;AAAA,IACN,OAAOa;AAAA,EAAA,CACR;AACH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateInteractiveCodeSample.js","sources":["../../../src/api-playground-2/generators/generateInteractiveCodeSample.ts"],"sourcesContent":["import { ApiPlaygroundDisplayType } from '@mintlify/models';\nimport { ApiPlaygroundInputs, CodeSample } from '@mintlify/validation';\n\nimport { getFirstExampleValue } from '@/api-playground-2/schemaGraph/processExamples';\nimport type { ApiReferenceDataV2 } from '@/api-playground-2/types';\nimport { langToPresetMap } from '@/constants/snippetPresets';\n\nimport { generateRequest } from './generateRequest';\nimport { generateSnippet } from './generateSnippet';\n\nexport const generateInteractiveCodeSample = ({\n apiReferenceData,\n baseUrl,\n inputs,\n apiPlaygroundMode,\n selectedSecurityOptionIndex,\n lang,\n requiredOnly,\n}: {\n lang: string;\n baseUrl?: string;\n apiReferenceData: ApiReferenceDataV2;\n inputs: ApiPlaygroundInputs;\n apiPlaygroundMode: ApiPlaygroundDisplayType;\n selectedSecurityOptionIndex: number;\n requiredOnly?: boolean;\n}): CodeSample | undefined => {\n if (baseUrl && apiPlaygroundMode !== 'none') {\n const firstRequestBodyContentType = Object.keys(\n apiReferenceData.dependencies?.requestBody?.content ?? {}\n )[0];\n const firstExample = getFirstExampleValue(\n apiReferenceData.dependencies?.requestBody?.content ?? {}\n );\n try {\n const request = generateRequest({\n baseUrl,\n apiReferenceData,\n inputs,\n exampleData: firstExample,\n selectedBodyContentType: firstRequestBodyContentType,\n requiredOnly,\n selectedSecurityOptionIndex,\n });\n const preset = langToPresetMap[lang];\n if (preset == undefined) {\n return;\n }\n const [snippet] = generateSnippet({\n request,\n pathInputs: inputs.path,\n snippetPresets: [preset],\n apiReferenceData,\n });\n if (snippet)\n return {\n label: 'Interactive Example',\n lang: snippet.language,\n source: snippet.code,\n };\n } catch (err) {}\n }\n};\n"],"names":["generateInteractiveCodeSample","apiReferenceData","baseUrl","inputs","apiPlaygroundMode","selectedSecurityOptionIndex","lang","requiredOnly","firstRequestBodyContentType","_b","_a","firstExample","getFirstExampleValue","_d","_c","request","generateRequest","preset","langToPresetMap","snippet","generateSnippet"],"mappings":";;;;AAUO,MAAMA,IAAgC,CAAC;AAAA,EAC5C,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,6BAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AACF,MAQ8B;;AAC5B,MAAIL,KAAWE,MAAsB,QAAQ;AAC3C,UAAMI,IAA8B,OAAO;AAAA,QACzCC,KAAAC,IAAAT,EAAiB,iBAAjB,gBAAAS,EAA+B,gBAA/B,gBAAAD,EAA4C,YAAW,CAAA;AAAA,IAAC,EACxD,CAAC,GACGE,IAAeC;AAAA,QACnBC,KAAAC,IAAAb,EAAiB,iBAAjB,gBAAAa,EAA+B,gBAA/B,gBAAAD,EAA4C,YAAW,CAAA;AAAA,IAAC;AAE1D,QAAI;AACF,YAAME,IAAUC,EAAgB;AAAA,QAC9B,SAAAd;AAAA,QACA,kBAAAD;AAAA,QACA,QAAAE;AAAA,QACA,aAAaQ;AAAA,QACb,yBAAyBH;AAAA,QACzB,cAAAD;AAAA,QACA,6BAAAF;AAAA,MAAA,CACD,GACKY,IAASC,EAAgBZ,CAAI;AACnC,UAAIW,KAAU;AACZ;AAEF,YAAM,CAACE,CAAO,IAAIC,EAAgB;AAAA,QAChC,SAAAL;AAAA,QACA,YAAYZ,EAAO;AAAA,QACnB,gBAAgB,CAACc,CAAM;AAAA,QACvB,kBAAAhB;AAAA,MAAA,CACD;AACD,UAAIkB;AACF,eAAO;AAAA,UACL,OAAO;AAAA,UACP,MAAMA,EAAQ;AAAA,UACd,QAAQA,EAAQ;AAAA,QAAA;AAAA,IAEtB,QAAc;AAAA,IAAC;AAAA,EACjB;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateRequest.js","sources":["../../../src/api-playground-2/generators/generateRequest.ts"],"sourcesContent":["import { isObject } from '../../common/guards';\nimport { ApiPlaygroundInputs, SchemaObject } from '@mintlify/validation';\nimport type { Request } from 'har-format';\nimport cloneDeep from 'lodash/cloneDeep';\nimport merge from 'lodash/merge';\n\nimport { getAllRequiredProperties } from '@/api-playground-2/schemaGraph/getAllRequiredProperties';\nimport { isSchemaObject } from '@/api-playground-2/schemaGraph/utils';\nimport type { ApiReferenceDataV2 } from '@/api-playground-2/types';\nimport { initialRequest } from '@/constants/initialRequest';\nimport {\n addPathParams,\n addServerVariables,\n joinWithSingleSlash,\n} from '@/hooks/useSendPlaygroundRequest';\n\nimport { getPostData } from './createBodyData';\nimport { createHeaders } from './createHeaders';\nimport { getFileProperties } from './getFileProperties';\n\ntype QueryParam = { name: string; value: string };\n\n/**\n * Constructs the request from the URL, schema, and inputs\n */\nexport const generateRequest = ({\n exampleData,\n apiReferenceData,\n baseUrl,\n inputs,\n selectedBodyContentType,\n requiredOnly,\n selectedSecurityOptionIndex,\n}: {\n exampleData?: unknown;\n apiReferenceData: ApiReferenceDataV2;\n baseUrl: string;\n inputs: ApiPlaygroundInputs;\n selectedBodyContentType?: string;\n requiredOnly?: boolean;\n selectedSecurityOptionIndex: number;\n}): Request => {\n const queryParamsWithDeepObjects = Object.values(apiReferenceData.dependencies?.parameters ?? {})\n .filter((param) => param.style === 'deepObject')\n .map((param) => param.name);\n\n const queryString = createQueryString(inputs, queryParamsWithDeepObjects);\n const path = addPathParams(apiReferenceData.operation?.path ?? '', inputs.path);\n const headers = createHeaders(apiReferenceData, inputs.header, selectedBodyContentType, selectedSecurityOptionIndex);\n\n const bodyIsEmpty = isBodyEmpty(inputs.body);\n const bodyIsObject = isObject(exampleData);\n const input = isObject(inputs.body) ? deleteUndefinedKeys(inputs.body) : {};\n\n const mergedExampleAndBody =\n !bodyIsEmpty && bodyIsObject ? merge(cloneDeep(exampleData), input) : null;\n\n const bodyData = bodyIsEmpty ? exampleData : mergedExampleAndBody;\n let requestBodySchema: SchemaObject | undefined = undefined;\n\n if (selectedBodyContentType) {\n if (\n isSchemaObject(\n apiReferenceData.dependencies?.requestBody?.content[selectedBodyContentType]?.schema\n )\n ) {\n requestBodySchema =\n apiReferenceData.dependencies.requestBody.content[selectedBodyContentType].schema;\n }\n }\n\n const requiredProperties =\n requiredOnly && !inputs.body && requestBodySchema\n ? \n getAllRequiredProperties(requestBodySchema as SchemaObject)\n : undefined;\n\n const fileProperties = requestBodySchema ? getFileProperties(requestBodySchema) : undefined;\n\n const postData = getPostData(\n bodyData,\n selectedBodyContentType,\n requiredProperties,\n fileProperties\n );\n\n return {\n ...initialRequest,\n method: (apiReferenceData.operation?.method ?? '').toUpperCase(),\n url: joinWithSingleSlash(addServerVariables(baseUrl, inputs.server), path),\n queryString,\n headers,\n postData,\n };\n};\n\nconst createQueryString = (\n inputs: ApiPlaygroundInputs,\n queryParamsWithDeepObjects?: string[]\n): QueryParam[] => {\n return Object.entries(inputs.query).flatMap(([name, value]) => {\n if (!value) return [];\n\n if (Array.isArray(value)) {\n return value.filter(Boolean).map((element) => ({\n name,\n value: element.toString(),\n }));\n }\n\n if (typeof value === 'object') {\n if (queryParamsWithDeepObjects?.includes(name)) {\n return Object.entries(value)\n .filter(([_, value]) => value)\n .map(([key, value]) => ({\n name: `${name}[${key}]`,\n value: value.toString(),\n }));\n }\n\n return [{ name, value: JSON.stringify(value) }];\n }\n\n return [\n {\n name,\n value: value.toString(),\n },\n ];\n });\n};\n\nconst isBodyEmpty = (bodyData: unknown) => {\n if (bodyData === null || bodyData === undefined) {\n return true;\n }\n\n if (typeof bodyData === 'object') {\n return Object.values(bodyData).every((value) => value === undefined);\n }\n};\n\nfunction deleteUndefinedKeys(obj: Record<string, unknown>): Record<string, unknown> {\n const objClone = cloneDeep(obj);\n for (const key in objClone) {\n if (objClone[key] === undefined) delete objClone[key];\n else if (isObject(objClone[key])) deleteUndefinedKeys(objClone[key]);\n }\n return objClone;\n}\n"],"names":["generateRequest","exampleData","apiReferenceData","baseUrl","inputs","selectedBodyContentType","requiredOnly","selectedSecurityOptionIndex","queryParamsWithDeepObjects","_a","param","queryString","createQueryString","path","addPathParams","_b","headers","createHeaders","bodyIsEmpty","isBodyEmpty","bodyIsObject","isObject","input","deleteUndefinedKeys","mergedExampleAndBody","merge","cloneDeep","bodyData","requestBodySchema","isSchemaObject","_e","_d","_c","requiredProperties","getAllRequiredProperties","fileProperties","getFileProperties","postData","getPostData","initialRequest","_f","joinWithSingleSlash","addServerVariables","name","value","element","_","key","obj","objClone"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateResponseExampleMap.js","sources":["../../../src/api-playground-2/generators/generateResponseExampleMap.ts"],"sourcesContent":["import type { MediaObject } from '@mintlify/validation';\n\nimport type { ExampleCodeSnippet } from '@/types/exampleCodeSnippet';\n\ntype ExampleMap = { [title: string]: ExampleCodeSnippet };\ntype ResponseExampleMap = { [status: string]: ExampleMap };\n\nexport const generateResponseExampleMap = (\n responses: Record<string, MediaObject>,\n selectedContentTypeIndex?: number\n): ResponseExampleMap => {\n return Object.entries(responses)\n .sort()\n .reduce<ResponseExampleMap>((map, [status, mediaObject]) => {\n const contentTypes = Object.keys(mediaObject);\n const content: MediaObject | undefined =\n selectedContentTypeIndex !== undefined && contentTypes[selectedContentTypeIndex]\n ? \n mediaObject[contentTypes[selectedContentTypeIndex] as keyof MediaObject]\n : \n mediaObject[contentTypes[0] as keyof MediaObject];\n if (content === undefined) {\n map[status] = {\n '': {\n filename: status,\n code: 'This response has no body data.',\n language: '',\n },\n };\n return map;\n }\n const contentExamples = content.examples;\n const firstExample = contentExamples?.[0];\n if (firstExample && 'value' in firstExample && firstExample.value === undefined) {\n map[status] = {\n '': {\n filename: status,\n code: 'This response does not have an example.',\n language: '',\n },\n };\n return map;\n }\n const exampleMap = Object.entries(contentExamples ?? {}).reduce<ExampleMap>(\n (exampleMap, [_, example]) => {\n const exampleValue = 'value' in example ? example.value : example;\n const exampleTitle =\n 'title' in example && typeof example.title === 'string' ? example.title : '';\n const stringifiedExample = JSON.stringify(exampleValue, null, 2);\n exampleMap[exampleTitle] = {\n filename: status,\n language: 'json',\n code: stringifiedExample,\n };\n return exampleMap;\n },\n {}\n );\n map[status] = exampleMap;\n return map;\n }, {});\n};\n"],"names":["generateResponseExampleMap","responses","selectedContentTypeIndex","map","status","mediaObject","contentTypes","content","contentExamples","firstExample","exampleMap","_","example","exampleValue","exampleTitle","stringifiedExample"],"mappings":"AAOO,MAAMA,IAA6B,CACxCC,GACAC,MAEO,OAAO,QAAQD,CAAS,EAC5B,KAAA,EACA,OAA2B,CAACE,GAAK,CAACC,GAAQC,CAAW,MAAM;AAC1D,QAAMC,IAAe,OAAO,KAAKD,CAAW,GACtCE,IACsCD,EAAaJ,CAAwB,IAE3EG,EAAYC,EAAaJ,CAAwB,CAAsB,IAEvEG,EAAYC,EAAa,CAAC,CAAsB;AACtD,MAAIC,MAAY;AACd,WAAAJ,EAAIC,CAAM,IAAI;AAAA,MACZ,IAAI;AAAA,QACF,UAAUA;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,MAAA;AAAA,IACZ,GAEKD;AAET,QAAMK,IAAkBD,EAAQ,UAC1BE,IAAeD,KAAA,gBAAAA,EAAkB;AACvC,MAAIC,KAAgB,WAAWA,KAAgBA,EAAa,UAAU;AACpE,WAAAN,EAAIC,CAAM,IAAI;AAAA,MACZ,IAAI;AAAA,QACF,UAAUA;AAAA,QACV,MAAM;AAAA,QACN,UAAU;AAAA,MAAA;AAAA,IACZ,GAEKD;AAET,QAAMO,IAAa,OAAO,QAAQF,KAAmB,CAAA,CAAE,EAAE;AAAA,IACvD,CAACE,GAAY,CAACC,GAAGC,CAAO,MAAM;AAC5B,YAAMC,IAAe,WAAWD,IAAUA,EAAQ,QAAQA,GACpDE,IACJ,WAAWF,KAAW,OAAOA,EAAQ,SAAU,WAAWA,EAAQ,QAAQ,IACtEG,IAAqB,KAAK,UAAUF,GAAc,MAAM,CAAC;AAC/DH,aAAAA,EAAWI,CAAY,IAAI;AAAA,QACzB,UAAUV;AAAA,QACV,UAAU;AAAA,QACV,MAAMW;AAAA,MAAA,GAEDL;AAAAA,IACT;AAAA,IACA,CAAA;AAAA,EAAC;AAEH,SAAAP,EAAIC,CAAM,IAAIM,GACPP;AACT,GAAG,CAAA,CAAE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateSnippet.js","sources":["../../../src/api-playground-2/generators/generateSnippet.ts"],"sourcesContent":["import { ApiPlaygroundInputs } from '@mintlify/validation';\nimport type { Request } from 'har-format';\n// import { HTTPSnippet } from '@readme/httpsnippet';\nimport { generateUniqueString } from '@/utils/uuid';\n\nimport type { ApiReferenceDataV2 } from '@/api-playground-2/types';\nimport { snippetPresets as defaultSnippetPresets, SnippetPreset } from '@/constants/snippetPresets';\nimport { ExampleCodeSnippet } from '@/types/exampleCodeSnippet';\n\ntype TargetId = 'c' | 'clojure' | 'csharp' | 'go' | 'http' | 'java' | 'javascript' | 'json' | 'kotlin' | 'node' | 'objc' | 'ocaml' | 'php' | 'powershell' | 'python' | 'r' | 'ruby' | 'shell' | 'swift';\n\n// Fake HTTPSnippet implementation\nclass FakeHTTPSnippet {\n private request: any;\n\n constructor(request: any) {\n this.request = request;\n }\n\n convert(target: TargetId, client?: string): string {\n const { method, url, headers = [], postData } = this.request;\n const headersObj: Record<string, string> = {};\n headers.forEach((h: any) => {\n if (h.name && h.value) headersObj[h.name] = h.value;\n });\n\n const body = postData?.text || '';\n\n switch (target) {\n case 'shell':\n return this.generateCurl(method, url, headersObj, body);\n case 'python':\n return this.generatePython(method, url, headersObj, body, client);\n case 'javascript':\n return this.generateJavaScript(method, url, headersObj, body, client);\n case 'php':\n return this.generatePHP(method, url, headersObj, body);\n case 'go':\n return this.generateGo(method, url, headersObj, body);\n case 'java':\n return this.generateJava(method, url, headersObj, body);\n case 'ruby':\n return this.generateRuby(method, url, headersObj, body);\n default:\n return `# Code generation for ${target} not implemented yet`;\n }\n }\n\n private generateCurl(method: string, url: string, headers: Record<string, string>, body: string): string {\n let curl = `curl -X ${method.toUpperCase()} \"${url}\"`;\n Object.entries(headers).forEach(([key, value]) => {\n curl += ` \\\\\\n -H \"${key}: ${value}\"`;\n });\n if (body) {\n curl += ` \\\\\\n -d '${body}'`;\n }\n return curl;\n }\n\n private generatePython(method: string, url: string, headers: Record<string, string>, body: string, client?: string): string {\n if (client === 'requests') {\n const headersStr = JSON.stringify(headers, null, 2).split('\\n').join('\\n ');\n const dataStr = body ? `,\\n data=${JSON.stringify(body)}` : '';\n return `import requests\\n\\nresponse = requests.${method.toLowerCase()}(\\n \"${url}\",\\n headers=${headersStr}${dataStr}\\n)\\n\\nprint(response.json())`;\n }\n return `# Python code generation not implemented for client: ${client}`;\n }\n\n private generateJavaScript(method: string, url: string, headers: Record<string, string>, body: string, client?: string): string {\n if (client === 'fetch') {\n const headersStr = JSON.stringify(headers, null, 2).split('\\n').map((line, i) => i === 0 ? line : ' ' + line).join('\\n');\n const bodyStr = body ? `,\\n body: ${JSON.stringify(body)}` : '';\n return `fetch(\"${url}\", {\\n method: \"${method.toUpperCase()}\",\\n headers: ${headersStr}${bodyStr}\\n})\\n .then(response => response.json())\\n .then(data => console.log(data))\\n .catch(error => console.error('Error:', error));`;\n }\n return `// JavaScript code generation not implemented for client: ${client}`;\n }\n\n private generatePHP(method: string, url: string, headers: Record<string, string>, body: string): string {\n const headersArray = Object.entries(headers).map(([k, v]) => ` \"${k}: ${v}\"`).join(',\\n');\n const dataStr = body ? `,\\n CURLOPT_POSTFIELDS => '${body}'` : '';\n return `<?php\\n$ch = curl_init();\\n\\ncurl_setopt_array($ch, [\\n CURLOPT_URL => \"${url}\",\\n CURLOPT_RETURNTRANSFER => true,\\n CURLOPT_CUSTOMREQUEST => \"${method.toUpperCase()}\",\\n CURLOPT_HTTPHEADER => [\\n${headersArray}\\n ]${dataStr}\\n]);\\n\\n$response = curl_exec($ch);\\ncurl_close($ch);\\n\\necho $response;\\n?>`;\n }\n\n private generateGo(method: string, url: string, headers: Record<string, string>, body: string): string {\n const bodyCode = body ? `\\n reqBody := strings.NewReader(${JSON.stringify(body)})\\n req, _ := http.NewRequest(\"${method.toUpperCase()}\", \"${url}\", reqBody)` : `\\n req, _ := http.NewRequest(\"${method.toUpperCase()}\", \"${url}\", nil)`;\n const headersCode = Object.entries(headers).map(([k, v]) => ` req.Header.Add(\"${k}\", \"${v}\")`).join('\\n');\n return `package main\\n\\nimport (\\n \"fmt\"\\n \"net/http\"\\n \"io/ioutil\"\\n \"strings\"\\n)\\n\\nfunc main() {${bodyCode}\\n${headersCode}\\n\\n client := &http.Client{}\\n resp, _ := client.Do(req)\\n defer resp.Body.Close()\\n\\n body, _ := ioutil.ReadAll(resp.Body)\\n fmt.Println(string(body))\\n}`;\n }\n\n private generateJava(method: string, url: string, headers: Record<string, string>, body: string): string {\n const headersCode = Object.entries(headers).map(([k, v]) => ` .header(\"${k}\", \"${v}\")`).join('\\n');\n const bodyCode = body ? `.POST(HttpRequest.BodyPublishers.ofString(${JSON.stringify(body)}))` : `.method(\"${method.toUpperCase()}\", HttpRequest.BodyPublishers.noBody())`;\n return `import java.net.http.*;\\nimport java.net.URI;\\n\\npublic class Main {\\n public static void main(String[] args) throws Exception {\\n HttpClient client = HttpClient.newHttpClient();\\n HttpRequest request = HttpRequest.newBuilder()\\n .uri(URI.create(\"${url}\"))\\n${headersCode}\\n ${bodyCode}\\n .build();\\n\\n HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\\n System.out.println(response.body());\\n }\\n}`;\n }\n\n private generateRuby(method: string, url: string, headers: Record<string, string>, body: string): string {\n const headersCode = Object.entries(headers).map(([k, v]) => `request[\"${k}\"] = \"${v}\"`).join('\\n');\n const bodyCode = body ? `\\nrequest.body = ${JSON.stringify(body)}` : '';\n return `require 'net/http'\\nrequire 'uri'\\n\\nuri = URI.parse(\"${url}\")\\nhttp = Net::HTTP.new(uri.host, uri.port)\\nrequest = Net::HTTP::${method.charAt(0).toUpperCase() + method.slice(1).toLowerCase()}.new(uri.request_uri)\\n${headersCode}${bodyCode}\\n\\nresponse = http.request(request)\\nputs response.body`;\n }\n}\n\nexport interface GenerateSnippetParams {\n request: Request;\n pathInputs: ApiPlaygroundInputs['path'];\n apiReferenceData: ApiReferenceDataV2;\n snippetPresets?: SnippetPreset[];\n isMultipleRequest?: boolean;\n}\n\nexport const generateSnippet = ({\n request,\n pathInputs,\n apiReferenceData,\n snippetPresets = defaultSnippetPresets,\n isMultipleRequest = false,\n}: GenerateSnippetParams): ExampleCodeSnippet[] => {\n const uuidToName: Record<string, string> = {};\n\n // https://regex101.com/r/3PPRco/1\n const portRegex = /:{[^{}]+}/g;\n\n // for the port number found in the url that is not populated, replace it with a rare integer\n const safePortUrl = request.url.replace(portRegex, (nameWithColon) => {\n const replacementWithColon = ':62437'; // arbitrary port value which is unlikely to appear in url\n uuidToName[replacementWithColon] = nameWithColon;\n return replacementWithColon;\n });\n\n // https://regex101.com/r/pwKjrJ/1\n const pathParamRegex = /{[^{}]+}/g;\n\n // for each path param found in the url, replace it with the value if the input is populated, otherwise replace it with a uuid\n const safeUrl = safePortUrl.replace(pathParamRegex, (name) => {\n const nameNoBrackets = name.slice(1, name.length - 1);\n const paramValue = pathInputs[nameNoBrackets];\n\n if (name === '{endpoint}') {\n return 'https://{endpoint}';\n }\n\n if (paramValue && (typeof paramValue !== 'string' || paramValue.length > 0)) {\n return `${encodeURIComponent(paramValue.toString())}`;\n }\n\n const uuid = generateUniqueString();\n uuidToName[uuid] = name;\n return uuid;\n });\n\n const httpSnippet = new FakeHTTPSnippet({\n ...request,\n url: safeUrl,\n postData: request.postData || { mimeType: 'application/json' },\n });\n\n return snippetPresets.map((snippetPreset) => {\n const { filename, snippet, language } = snippetPreset;\n const { target, client } = snippet;\n const response = httpSnippet.convert(target as TargetId, client);\n\n const code = restorePlaceholders(uuidToName, response?.toString() || '');\n\n return {\n filename: isMultipleRequest ? filename : apiReferenceData.operation?.title || filename,\n code,\n language,\n };\n });\n};\n\n/**\n * For each uuid that was substituted into the url, replaces the first (and only) instance of the uuid with the original name.\n *\n * @param uuidNameMap - Mapping of UUIDs to their original names.\n * @param snippet - String where UUIDs need to be replaced with their original names.\n */\nconst restorePlaceholders = (uuidNameMap: Record<string, string>, snippet: string): string => {\n return Object.entries(uuidNameMap).reduce((acc, [uuid, name]) => {\n return acc.replace(uuid, name);\n }, snippet);\n};\n"],"names":["FakeHTTPSnippet","request","target","client","method","url","headers","postData","headersObj","h","body","curl","key","value","headersStr","dataStr","line","i","bodyStr","headersArray","k","v","bodyCode","headersCode","generateSnippet","pathInputs","apiReferenceData","snippetPresets","defaultSnippetPresets","isMultipleRequest","uuidToName","portRegex","safePortUrl","nameWithColon","replacementWithColon","pathParamRegex","safeUrl","name","nameNoBrackets","paramValue","uuid","generateUniqueString","httpSnippet","snippetPreset","filename","snippet","language","response","code","restorePlaceholders","_a","uuidNameMap","acc"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateSnippetMap.js","sources":["../../../src/api-playground-2/generators/generateSnippetMap.ts"],"sourcesContent":["import {\n ApiPlaygroundDisplayType,\n requestExampleLanguages as defaultRequestExampleLanguages,\n} from '@mintlify/models';\nimport { ApiPlaygroundInputs, CodeSample } from '@mintlify/validation';\n\nimport type { ApiReferenceDataV2 } from '@/api-playground-2/types';\nimport { shikiLangToDisplayLang, toShikiLang } from '@/constants/snippetPresets';\nimport { ExampleCodeSnippet } from '@/types/exampleCodeSnippet';\n\nimport { generateInteractiveCodeSample } from './generateInteractiveCodeSample';\n\n// more or less identical but in all places where we use Endpoint, we use ApiReferenceDataV2 instead\nexport const generateSnippetMap = ({\n codeSamples,\n apiReferenceData,\n baseUrl,\n inputs,\n apiPlaygroundMode,\n requestExampleLanguages,\n requiredOnly,\n selectedSecurityOptionIndex,\n}: {\n codeSamples: CodeSample[];\n apiReferenceData: ApiReferenceDataV2;\n baseUrl?: string;\n inputs: ApiPlaygroundInputs;\n apiPlaygroundMode: ApiPlaygroundDisplayType;\n requestExampleLanguages?: string[];\n requiredOnly?: boolean;\n selectedSecurityOptionIndex: number;\n}): Record<string, Record<string, ExampleCodeSnippet>> => {\n const shouldHaveGeneratedExamples =\n (baseUrl && apiPlaygroundMode !== 'none') || (baseUrl && requestExampleLanguages);\n const langOrder = requestExampleLanguages ?? [];\n codeSamples = codeSamples.map((codeSample) => ({\n ...codeSample,\n lang: toShikiLang(codeSample.lang),\n }));\n if (requestExampleLanguages === undefined) {\n codeSamples.forEach((codeSample) => {\n if (langOrder.includes(codeSample.lang)) return;\n langOrder.push(codeSample.lang);\n });\n if (shouldHaveGeneratedExamples) {\n defaultRequestExampleLanguages.forEach((lang) => {\n if (langOrder.includes(lang)) return;\n langOrder.push(lang);\n });\n }\n }\n\n const map: Record<string, Record<string, ExampleCodeSnippet>> = {};\n\n for (const shikiLang of langOrder) {\n let displayLang = shikiLangToDisplayLang[shikiLang] ?? shikiLang;\n\n const codeSamplesInLang = codeSamples.filter((codeSample) => codeSample.lang === shikiLang);\n\n const labelToSnippetMap = map[displayLang] ?? {};\n if (codeSamplesInLang.length === 0) {\n const generatedCodeSample = generateInteractiveCodeSample({\n baseUrl,\n apiReferenceData,\n inputs,\n apiPlaygroundMode,\n lang: shikiLang,\n requiredOnly,\n selectedSecurityOptionIndex,\n });\n if (generatedCodeSample) {\n addCodeSampleToLabelToSnippetMap(\n generatedCodeSample,\n shikiLang,\n displayLang,\n labelToSnippetMap,\n true\n );\n }\n } else {\n codeSamplesInLang.forEach((codeSample) => {\n displayLang = shikiLangToDisplayLang[shikiLang] ?? codeSample.label ?? shikiLang;\n addCodeSampleToLabelToSnippetMap(\n codeSample,\n shikiLang,\n displayLang,\n labelToSnippetMap,\n false\n );\n });\n }\n if (Object.keys(labelToSnippetMap).length > 0) {\n map[displayLang] = labelToSnippetMap;\n }\n }\n\n return map;\n};\n\nconst addCodeSampleToLabelToSnippetMap = (\n codeSample: CodeSample,\n shikiLang: string,\n displayLang: string,\n labelToSnippetMap: Record<string, ExampleCodeSnippet>,\n isGenerated: boolean\n) => {\n // if we have entered an empty label, retroactively update it to 'Example 1'\n if ('' in labelToSnippetMap) {\n labelToSnippetMap['Example 1'] = labelToSnippetMap[''];\n delete labelToSnippetMap[''];\n }\n\n const numExistingLabels = Object.keys(labelToSnippetMap).length;\n const label =\n codeSample.label ?? (numExistingLabels > 0 ? `Example ${numExistingLabels + 1}` : '');\n\n labelToSnippetMap[label] = {\n filename: isGenerated ? displayLang : label || displayLang, // (used in CodeSnippets)\n language: shikiLang,\n code: codeSample.source,\n };\n};\n"],"names":["generateSnippetMap","codeSamples","apiReferenceData","baseUrl","inputs","apiPlaygroundMode","requestExampleLanguages","requiredOnly","selectedSecurityOptionIndex","shouldHaveGeneratedExamples","langOrder","codeSample","toShikiLang","defaultRequestExampleLanguages","lang","map","shikiLang","displayLang","shikiLangToDisplayLang","codeSamplesInLang","labelToSnippetMap","generatedCodeSample","generateInteractiveCodeSample","addCodeSampleToLabelToSnippetMap","isGenerated","numExistingLabels","label"],"mappings":";;;AAaO,MAAMA,IAAqB,CAAC;AAAA,EACjC,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,mBAAAC;AAAA,EAAA,yBACAC;AAAAA,EACA,cAAAC;AAAA,EACA,6BAAAC;AACF,MAS0D;AACxD,QAAMC,IACHN,KAAWE,MAAsB,UAAYF,KAAWG,GACrDI,IAAYJ,KAA2B,CAAA;AAC7C,EAAAL,IAAcA,EAAY,IAAI,CAACU,OAAgB;AAAA,IAC7C,GAAGA;AAAA,IACH,MAAMC,EAAYD,EAAW,IAAI;AAAA,EAAA,EACjC,GACEL,MAA4B,WAC9BL,EAAY,QAAQ,CAACU,MAAe;AAClC,IAAID,EAAU,SAASC,EAAW,IAAI,KACtCD,EAAU,KAAKC,EAAW,IAAI;AAAA,EAChC,CAAC,GACGF,KACFI,EAA+B,QAAQ,CAACC,MAAS;AAC/C,IAAIJ,EAAU,SAASI,CAAI,KAC3BJ,EAAU,KAAKI,CAAI;AAAA,EACrB,CAAC;AAIL,QAAMC,IAA0D,CAAA;AAEhE,aAAWC,KAAaN,GAAW;AACjC,QAAIO,IAAcC,EAAuBF,CAAS,KAAKA;AAEvD,UAAMG,IAAoBlB,EAAY,OAAO,CAACU,MAAeA,EAAW,SAASK,CAAS,GAEpFI,IAAoBL,EAAIE,CAAW,KAAK,CAAA;AAC9C,QAAIE,EAAkB,WAAW,GAAG;AAClC,YAAME,IAAsBC,EAA8B;AAAA,QACxD,SAAAnB;AAAA,QACA,kBAAAD;AAAA,QACA,QAAAE;AAAA,QACA,mBAAAC;AAAA,QACA,MAAMW;AAAA,QACN,cAAAT;AAAA,QACA,6BAAAC;AAAA,MAAA,CACD;AACD,MAAIa,KACFE;AAAA,QACEF;AAAA,QACAL;AAAA,QACAC;AAAA,QACAG;AAAA,QACA;AAAA,MAAA;AAAA,IAGN;AACE,MAAAD,EAAkB,QAAQ,CAACR,MAAe;AACxC,QAAAM,IAAcC,EAAuBF,CAAS,KAAKL,EAAW,SAASK,GACvEO;AAAA,UACEZ;AAAA,UACAK;AAAA,UACAC;AAAA,UACAG;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,CAAC;AAEH,IAAI,OAAO,KAAKA,CAAiB,EAAE,SAAS,MAC1CL,EAAIE,CAAW,IAAIG;AAAA,EAEvB;AAEA,SAAOL;AACT,GAEMQ,IAAmC,CACvCZ,GACAK,GACAC,GACAG,GACAI,MACG;AAEH,EAAI,MAAMJ,MACRA,EAAkB,WAAW,IAAIA,EAAkB,EAAE,GACrD,OAAOA,EAAkB,EAAE;AAG7B,QAAMK,IAAoB,OAAO,KAAKL,CAAiB,EAAE,QACnDM,IACJf,EAAW,UAAUc,IAAoB,IAAI,WAAWA,IAAoB,CAAC,KAAK;AAEpF,EAAAL,EAAkBM,CAAK,IAAI;AAAA,IACzB,UAAUF,IAAcP,IAAcS,KAAST;AAAA;AAAA,IAC/C,UAAUD;AAAA,IACV,MAAML,EAAW;AAAA,EAAA;AAErB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFileProperties.js","sources":["../../../src/api-playground-2/generators/getFileProperties.ts"],"sourcesContent":["import { SchemaObject } from '@mintlify/validation';\n\nimport { isSchemaObject } from '@/api-playground-2/schemaGraph/utils';\n\nexport const getFileProperties = (\n schema: SchemaObject,\n path: string = '',\n result: string[] = []\n): string[] => {\n if ('format' in schema && (schema.format === 'binary' || schema.format === 'base64')) {\n if (path && !result.includes(path)) {\n result.push(path);\n }\n }\n\n if ('items' in schema && schema.items) {\n const itemPath = path ? `${path}.items` : 'items';\n if (isSchemaObject(schema.items)) {\n getFileProperties(schema.items, itemPath, result);\n }\n }\n\n if ('properties' in schema && schema.properties) {\n Object.entries(schema.properties).forEach(([propName, propSchema]) => {\n const propPath = path ? `${path}.${propName}` : propName;\n getFileProperties(propSchema, propPath, result);\n });\n }\n\n if ('additionalProperties' in schema && isSchemaObject(schema.additionalProperties)) {\n const additionalPropsPath = path ? `${path}.additionalProperties` : 'additionalProperties';\n getFileProperties(schema.additionalProperties, additionalPropsPath, result);\n }\n\n if ('oneOf' in schema && Array.isArray(schema.oneOf)) {\n schema.oneOf.forEach((subSchema, index) => {\n if (isSchemaObject(subSchema)) {\n const oneOfPath = path ? `${path}.${index}` : `${index}`;\n getFileProperties(subSchema, oneOfPath, result);\n }\n });\n }\n\n return result;\n};\n"],"names":["getFileProperties","schema","path","result","itemPath","isSchemaObject","propName","propSchema","propPath","additionalPropsPath","subSchema","index","oneOfPath"],"mappings":";AAIO,MAAMA,IAAoB,CAC/BC,GACAC,IAAe,IACfC,IAAmB,CAAA,MACN;AAOb,MANI,YAAYF,MAAWA,EAAO,WAAW,YAAYA,EAAO,WAAW,aACrEC,KAAQ,CAACC,EAAO,SAASD,CAAI,KAC/BC,EAAO,KAAKD,CAAI,GAIhB,WAAWD,KAAUA,EAAO,OAAO;AACrC,UAAMG,IAAWF,IAAO,GAAGA,CAAI,WAAW;AAC1C,IAAIG,EAAeJ,EAAO,KAAK,KAC7BD,EAAkBC,EAAO,OAAOG,GAAUD,CAAM;AAAA,EAEpD;AASA,MAPI,gBAAgBF,KAAUA,EAAO,cACnC,OAAO,QAAQA,EAAO,UAAU,EAAE,QAAQ,CAAC,CAACK,GAAUC,CAAU,MAAM;AACpE,UAAMC,IAAWN,IAAO,GAAGA,CAAI,IAAII,CAAQ,KAAKA;AAChD,IAAAN,EAAkBO,GAAYC,GAAUL,CAAM;AAAA,EAChD,CAAC,GAGC,0BAA0BF,KAAUI,EAAeJ,EAAO,oBAAoB,GAAG;AACnF,UAAMQ,IAAsBP,IAAO,GAAGA,CAAI,0BAA0B;AACpE,IAAAF,EAAkBC,EAAO,sBAAsBQ,GAAqBN,CAAM;AAAA,EAC5E;AAEA,SAAI,WAAWF,KAAU,MAAM,QAAQA,EAAO,KAAK,KACjDA,EAAO,MAAM,QAAQ,CAACS,GAAWC,MAAU;AACzC,QAAIN,EAAeK,CAAS,GAAG;AAC7B,YAAME,IAAYV,IAAO,GAAGA,CAAI,IAAIS,CAAK,KAAK,GAAGA,CAAK;AACtD,MAAAX,EAAkBU,GAAWE,GAAWT,CAAM;AAAA,IAChD;AAAA,EACF,CAAC,GAGIA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCopyPathWithInputs.js","sources":["../../../src/api-playground-2/hooks/useCopyPathWithInputs.ts"],"sourcesContent":["import { usePlaygroundInputsStore } from './usePlaygroundInputsStore';\n\nexport const useCopyPathWithInputs = ({ path, baseUrl }: { path: string; baseUrl: string }) => {\n const { getApiPlaygroundInputs } = usePlaygroundInputsStore();\n const inputs = getApiPlaygroundInputs();\n const pathWithInputs = addPathParams(path, inputs.path);\n const toCopy = joinWithSingleSlash(addServerVariables(baseUrl, inputs.server), pathWithInputs);\n return toCopy;\n};\n\nconst addPathParams = (path: string, pathInputs: Record<string, unknown>) => {\n return Object.entries(pathInputs).reduce((path, [inputName, inputValue]) => {\n if (inputValue == undefined) return path;\n return path.replace(`{${inputName}}`, encodeURIComponent(inputValue.toString()));\n }, path);\n};\n\nconst addServerVariables = (baseUrl: string, variables: Record<string, string>): string => {\n let url = baseUrl;\n Object.entries(variables).forEach(([key, input]) => {\n if (input) url = url.replace(`{${key}}`, input);\n });\n return url;\n};\n\nconst joinWithSingleSlash = (baseUrl: string, path: string): string => {\n // remove the last slash of the baseUrl and the first slash of the path, and join with slash\n return baseUrl.replace(/\\/$/, '') + '/' + path.replace(/^\\//, '');\n};\n"],"names":["useCopyPathWithInputs","path","baseUrl","getApiPlaygroundInputs","usePlaygroundInputsStore","inputs","pathWithInputs","addPathParams","joinWithSingleSlash","addServerVariables","pathInputs","inputName","inputValue","variables","url","key","input"],"mappings":";AAEO,MAAMA,IAAwB,CAAC,EAAE,MAAAC,GAAM,SAAAC,QAAiD;AAC7F,QAAM,EAAE,wBAAAC,EAAA,IAA2BC,EAAA,GAC7BC,IAASF,EAAA,GACTG,IAAiBC,EAAcN,GAAMI,EAAO,IAAI;AAEtD,SADeG,EAAoBC,EAAmBP,GAASG,EAAO,MAAM,GAAGC,CAAc;AAE/F,GAEMC,IAAgB,CAACN,GAAcS,MAC5B,OAAO,QAAQA,CAAU,EAAE,OAAO,CAACT,GAAM,CAACU,GAAWC,CAAU,MAChEA,KAAc,OAAkBX,IAC7BA,EAAK,QAAQ,IAAIU,CAAS,KAAK,mBAAmBC,EAAW,SAAA,CAAU,CAAC,GAC9EX,CAAI,GAGHQ,IAAqB,CAACP,GAAiBW,MAA8C;AACzF,MAAIC,IAAMZ;AACV,gBAAO,QAAQW,CAAS,EAAE,QAAQ,CAAC,CAACE,GAAKC,CAAK,MAAM;AAClD,IAAIA,MAAOF,IAAMA,EAAI,QAAQ,IAAIC,CAAG,KAAKC,CAAK;AAAA,EAChD,CAAC,GACMF;AACT,GAEMN,IAAsB,CAACN,GAAiBD,MAErCC,EAAQ,QAAQ,OAAO,EAAE,IAAI,MAAMD,EAAK,QAAQ,OAAO,EAAE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInitializeInputs.js","sources":["../../../src/api-playground-2/hooks/useInitializeInputs.ts"],"sourcesContent":["import { ApiPlaygroundInputs } from '@mintlify/validation';\nimport { useEffect, useRef } from 'react';\n\nimport { apiPlaygroundInputKeys } from '../constants';\nimport {\n escapeDots,\n getBodyDefaultsFromSchema,\n getParametersPerSection,\n getRequestBodyContentType,\n getSchemaDefault,\n isSchemaObject,\n mapParamInToPlaygroundInputKey,\n} from '../schemaGraph/utils';\nimport { ApiReferenceDataV2 } from '../types';\nimport { PlaygroundInputValue, usePlaygroundInputsStore } from './usePlaygroundInputsStore';\n\ninterface UsePlaygroundStateSyncProps {\n apiReferenceData: ApiReferenceDataV2;\n selectedBaseUrlIndex: number;\n selectedExampleIndex: number;\n selectedRequestBodyContentTypeIndex: number;\n}\n\n/**\n * CLANKED\n * Syncs playground state with URL pathname changes.\n *\n * This hook implements the following behavior:\n * - When the pathname changes, it resets the playground inputs\n * - After reset, it initializes with the new default values for the current endpoint\n * - When playground closes without pathname change, state is preserved\n * - Query parameter changes (like ?playground=open) do NOT reset the state\n *\n * Uses refs to track previous pathname to avoid unnecessary resets.\n */\nexport function useInitializeInputs({\n apiReferenceData,\n selectedBaseUrlIndex,\n selectedExampleIndex,\n selectedRequestBodyContentTypeIndex,\n}: UsePlaygroundStateSyncProps) {\n const previousPathnameRef = useRef<string | null>(null);\n const { reset, initialize, getApiPlaygroundInputs, inputs } = usePlaygroundInputsStore();\n const hasInitializedRef = useRef(false);\n\n useEffect(() => {\n const currentPathname = window.location.pathname;\n const store = usePlaygroundInputsStore.getState();\n const selectedSecurityOptionIndex = store.selectedSecurityOptionIndex;\n\n // On first mount, initialize if inputs are empty\n if (!hasInitializedRef.current && Object.keys(inputs).length === 0) {\n const initialValues = getInitialPlaygroundValues({\n apiReferenceData,\n inputs: getApiPlaygroundInputs(),\n selectedBaseUrlIndex,\n selectedSecurityOptionIndex,\n selectedExampleIndex,\n selectedContentTypeIndex: selectedRequestBodyContentTypeIndex,\n });\n initialize(initialValues);\n hasInitializedRef.current = true;\n previousPathnameRef.current = currentPathname;\n return;\n }\n\n // If pathname hasn't been set yet, set it\n if (previousPathnameRef.current === null) {\n previousPathnameRef.current = currentPathname;\n return;\n }\n\n // If pathname changed, reset and reinitialize\n if (previousPathnameRef.current !== currentPathname) {\n reset();\n const initialValues = getInitialPlaygroundValues({\n apiReferenceData,\n inputs: getApiPlaygroundInputs(),\n selectedBaseUrlIndex,\n selectedSecurityOptionIndex,\n selectedExampleIndex,\n selectedContentTypeIndex: selectedRequestBodyContentTypeIndex,\n });\n initialize(initialValues);\n previousPathnameRef.current = currentPathname;\n }\n }, [\n apiReferenceData,\n selectedBaseUrlIndex,\n selectedExampleIndex,\n selectedRequestBodyContentTypeIndex,\n reset,\n initialize,\n getApiPlaygroundInputs,\n inputs,\n ]);\n}\n\nexport const getInitialPlaygroundValues = ({\n apiReferenceData,\n // eslint-disable-next-line unused-imports/no-unused-vars\n inputs,\n selectedBaseUrlIndex,\n selectedSecurityOptionIndex,\n selectedExampleIndex = 0,\n selectedContentTypeIndex = 0,\n}: {\n apiReferenceData: ApiReferenceDataV2;\n inputs: ApiPlaygroundInputs;\n selectedBaseUrlIndex: number;\n selectedSecurityOptionIndex: number;\n selectedExampleIndex?: number;\n selectedContentTypeIndex?: number;\n}): Record<string, PlaygroundInputValue> => {\n let initialValues: Record<string, PlaygroundInputValue> = {};\n\n const prefillExamplesEnabled = apiReferenceData.operation?.prefillPlaygroundWithExample;\n const prefillExamples = apiReferenceData.operation?.prefillPlaygroundExamples ?? [];\n const prefillExample = prefillExamples[selectedExampleIndex];\n\n const serverObjects = Object.values(apiReferenceData.dependencies?.servers ?? {});\n const serverVariables = serverObjects[selectedBaseUrlIndex]?.variables;\n const securityOptions = apiReferenceData.dependencies?.processedSecurityOptions;\n const securityOption = securityOptions?.[selectedSecurityOptionIndex];\n const parameters = apiReferenceData.dependencies?.parameters;\n const requestBody = apiReferenceData.dependencies?.requestBody;\n\n // prefill example\n if (prefillExamplesEnabled && prefillExample) {\n // TODO - Api Playground Refactor: prefillExample is already formatted as an ApiPlaygroundInputs object, so just recursively flatten\n } else {\n // prefill default values\n if (serverVariables) {\n Object.entries(serverVariables).forEach(([name, variable]) => {\n const inputKeyPrefix = `${apiPlaygroundInputKeys.server}.${escapeDots(name)}`;\n const defaultValue = getSchemaDefault(variable);\n if (defaultValue) {\n initialValues[inputKeyPrefix] = defaultValue;\n }\n });\n }\n\n if (securityOption) {\n const { scheme, schema } = securityOption;\n const parameterSection = 'in' in scheme ? scheme.in : 'header';\n const name = 'name' in scheme ? scheme.name : schema.title ?? '';\n const inputKeyPrefix = `${mapParamInToPlaygroundInputKey(parameterSection)}.${escapeDots(name)}`;\n const defaultValue = getSchemaDefault(schema);\n if (defaultValue) {\n initialValues[inputKeyPrefix] = defaultValue;\n }\n }\n\n if (parameters) {\n const { header, path, query, cookie } = getParametersPerSection(apiReferenceData);\n [...header, ...path, ...query, ...cookie].forEach((parameter) => {\n if (parameter.schema) {\n const inputKeyPrefix = `${mapParamInToPlaygroundInputKey(parameter.in)}.${escapeDots(parameter.name)}`;\n const defaultValue = getSchemaDefault(parameter.schema);\n if (defaultValue) {\n initialValues[inputKeyPrefix] = defaultValue;\n }\n }\n });\n }\n\n if (requestBody) {\n const contentType = getRequestBodyContentType(apiReferenceData, selectedContentTypeIndex);\n if (contentType) {\n const bodySchema = requestBody.content[contentType]?.schema;\n const bodyDefault = getSchemaDefault(bodySchema);\n if (bodyDefault) {\n initialValues[`${apiPlaygroundInputKeys.body}`] = bodyDefault;\n } else if (isSchemaObject(bodySchema)) {\n const bodyDefaults = getBodyDefaultsFromSchema(bodySchema);\n initialValues = { ...initialValues, ...bodyDefaults };\n }\n }\n }\n }\n // TODO - Api Playground Refactor: check merge with input behavior\n // TODO - Api Playground Refactor: user info overrides\n return initialValues;\n};\n"],"names":["useInitializeInputs","apiReferenceData","selectedBaseUrlIndex","selectedExampleIndex","selectedRequestBodyContentTypeIndex","previousPathnameRef","useRef","reset","initialize","getApiPlaygroundInputs","inputs","usePlaygroundInputsStore","hasInitializedRef","useEffect","currentPathname","selectedSecurityOptionIndex","initialValues","getInitialPlaygroundValues","selectedContentTypeIndex","prefillExamplesEnabled","_a","prefillExample","_b","serverVariables","_d","_c","securityOptions","_e","securityOption","parameters","_f","requestBody","_g","name","variable","inputKeyPrefix","apiPlaygroundInputKeys","escapeDots","defaultValue","getSchemaDefault","scheme","schema","parameterSection","mapParamInToPlaygroundInputKey","header","path","query","cookie","getParametersPerSection","parameter","contentType","getRequestBodyContentType","bodySchema","_h","bodyDefault","isSchemaObject","bodyDefaults","getBodyDefaultsFromSchema"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePlaygroundInputsStore.js","sources":["../../../src/api-playground-2/hooks/usePlaygroundInputsStore.ts"],"sourcesContent":["import { ApiPlaygroundInputs } from '@mintlify/validation';\nimport { create } from 'zustand';\n\nimport { unflattenInputs } from '../schemaGraph/utils';\n\nexport type PlaygroundInputValue = unknown;\n\ninterface PlaygroundInputsState {\n inputs: Record<string, PlaygroundInputValue>;\n initialize: (initialValues: Record<string, PlaygroundInputValue>) => void;\n setInput: (name: string, value: PlaygroundInputValue) => void;\n setInputs: (inputs: Record<string, PlaygroundInputValue>) => void;\n replaceInputs: (inputs: Record<string, PlaygroundInputValue>) => void;\n getInput: (name: string) => PlaygroundInputValue;\n getApiPlaygroundInputs: () => ApiPlaygroundInputs;\n clear: () => void;\n reset: () => void;\n selectedSecurityOptionIndex: number;\n setSelectedSecurityOptionIndex: (index: number) => void;\n}\n\nexport const usePlaygroundInputsStore = create<PlaygroundInputsState>((set, get) => ({\n inputs: {},\n initialize: (initialValues) =>\n set({\n inputs: { ...initialValues },\n }),\n setInput: (name, value) =>\n set((state) => ({\n inputs: { ...state.inputs, [name]: value },\n })),\n setInputs: (inputs) =>\n set((state) => ({\n inputs: { ...state.inputs, ...inputs },\n })),\n replaceInputs: (inputs) =>\n set({ inputs }),\n getInput: (name) => get().inputs[name],\n getApiPlaygroundInputs: () => unflattenInputs(get().inputs),\n clear: () => set({ inputs: {} }),\n reset: () => set({ inputs: {} }),\n selectedSecurityOptionIndex: 0,\n setSelectedSecurityOptionIndex: (index) => set({ selectedSecurityOptionIndex: index }),\n}));\n\nexport const useSelectedSecurityOption = () => {\n const selectedSecurityOptionIndex = usePlaygroundInputsStore(\n (state) => state.selectedSecurityOptionIndex\n );\n const setSelectedSecurityOptionIndex = usePlaygroundInputsStore(\n (state) => state.setSelectedSecurityOptionIndex\n );\n return { selectedSecurityOptionIndex, setSelectedSecurityOptionIndex };\n};\n"],"names":["usePlaygroundInputsStore","create","set","get","initialValues","name","value","state","inputs","unflattenInputs","index","useSelectedSecurityOption","selectedSecurityOptionIndex","setSelectedSecurityOptionIndex"],"mappings":";;AAqBO,MAAMA,IAA2BC,EAA8B,CAACC,GAAKC,OAAS;AAAA,EACnF,QAAQ,CAAA;AAAA,EACR,YAAY,CAACC,MACXF,EAAI;AAAA,IACF,QAAQ,EAAE,GAAGE,EAAA;AAAA,EAAc,CAC5B;AAAA,EACH,UAAU,CAACC,GAAMC,MACfJ,EAAI,CAACK,OAAW;AAAA,IACd,QAAQ,EAAE,GAAGA,EAAM,QAAQ,CAACF,CAAI,GAAGC,EAAA;AAAA,EAAM,EACzC;AAAA,EACJ,WAAW,CAACE,MACVN,EAAI,CAACK,OAAW;AAAA,IACd,QAAQ,EAAE,GAAGA,EAAM,QAAQ,GAAGC,EAAA;AAAA,EAAO,EACrC;AAAA,EACJ,eAAe,CAACA,MACdN,EAAI,EAAE,QAAAM,GAAQ;AAAA,EAChB,UAAU,CAACH,MAASF,EAAA,EAAM,OAAOE,CAAI;AAAA,EACrC,wBAAwB,MAAMI,EAAgBN,EAAA,EAAM,MAAM;AAAA,EAC1D,OAAO,MAAMD,EAAI,EAAE,QAAQ,CAAA,GAAI;AAAA,EAC/B,OAAO,MAAMA,EAAI,EAAE,QAAQ,CAAA,GAAI;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,gCAAgC,CAACQ,MAAUR,EAAI,EAAE,6BAA6BQ,GAAO;AACvF,EAAE,GAEWC,IAA4B,MAAM;AAC7C,QAAMC,IAA8BZ;AAAA,IAClC,CAACO,MAAUA,EAAM;AAAA,EAAA,GAEbM,IAAiCb;AAAA,IACrC,CAACO,MAAUA,EAAM;AAAA,EAAA;AAEnB,SAAO,EAAE,6BAAAK,GAA6B,gCAAAC,EAAA;AACxC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSendPlaygroundRequest.js","sources":["../../../src/api-playground-2/hooks/useSendPlaygroundRequest.ts"],"sourcesContent":["\nimport { ApiPlaygroundResultType } from '@mintlify/models';\nimport { HttpMethod } from '@mintlify/validation';\nimport { AxiosResponse } from 'axios';\nimport { useCallback } from 'react';\nimport { NEXT_PUBLIC } from '@/env';\n\n\nimport { ApiReferenceDataV2 } from '../types';\nimport { usePlaygroundInputsStore } from './usePlaygroundInputsStore';\n\nexport type UseSendPlaygroundRequestProps = {\n apiReferenceData: ApiReferenceDataV2;\n baseUrl: string | undefined;\n contentType: string | undefined;\n setResult: (result: ApiPlaygroundResultType) => void;\n setIsSending: (isSending: boolean) => void;\n};\n\nexport type RequestInfo = {\n method: HttpMethod;\n url: string;\n header: Record<string, unknown>;\n query: Record<string, unknown>;\n cookie: Record<string, unknown>;\n body: unknown;\n};\n\nexport const useSendPlaygroundRequest = ({\n apiReferenceData,\n baseUrl,\n contentType = 'application/json',\n setResult,\n setIsSending,\n}: UseSendPlaygroundRequestProps) => {\n // replace with msft analytics \n const { getApiPlaygroundInputs } = usePlaygroundInputsStore();\n const inputs = getApiPlaygroundInputs();\n\n const disableProxy = apiReferenceData.operation?.disableProxy;\n const path = apiReferenceData.operation?.path;\n const method = apiReferenceData.operation?.method;\n\n return useCallback(async () => {\n setIsSending(true);\n if (!path || !baseUrl || !method || !contentType || !baseUrl) {\n setIsSending(false);\n setResult({\n error: true,\n errorMessage: 'Missing required fields to send a playground request',\n });\n console.error(\n `Missing some required field to send a playground request:\\n\\npath=${path}\\nmethod=${method}\\ncontentType=${contentType}\\nbaseUrl=${baseUrl}`\n );\n return;\n }\n const axios = await import('axios').then((x) => x.default);\n\n const pathWithInputs = addPathParams(path, inputs.path);\n\n const url = joinWithSingleSlash(addServerVariables(baseUrl, inputs.server), pathWithInputs);\n\n const headers = addContentType(inputs.header, contentType);\n\n const request: RequestInfo = {\n method,\n url,\n header: headers,\n body: inputs.body,\n cookie: inputs.cookie,\n query: inputs.query,\n };\n\n try {\n if (disableProxy) {\n const response = await performDirectRequest(request);\n setResult({\n error: false,\n response: {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n data: response.data,\n },\n });\n } else {\n if (contentType && contentType.includes('multipart/form-data')) {\n const data = await performFileRequest(request);\n\n setResult(data);\n } else {\n const { data } = await axios.post<unknown, AxiosResponse<ApiPlaygroundResultType>>(\n `${NEXT_PUBLIC.BASE_PATH}/_mintlify/api/request`,\n request\n );\n setResult(data);\n }\n }\n } catch (err) {\n setResult({\n error: true,\n errorMessage: 'unable to complete request',\n });\n console.error(err);\n }\n setIsSending(false);\n }, [\n method,\n path,\n setIsSending,\n inputs,\n baseUrl,\n contentType,\n disableProxy,\n setResult,\n ]);\n};\n\nexport const addPathParams = (path: string, pathInputs: Record<string, unknown>) => {\n return Object.entries(pathInputs).reduce((path, [inputName, inputValue]) => {\n if (inputValue == undefined) return path;\n return path.replace(`{${inputName}}`, encodeURIComponent(inputValue.toString()));\n }, path);\n};\n\nexport const addServerVariables = (baseUrl: string, variables: Record<string, string>): string => {\n let url = baseUrl;\n Object.entries(variables).forEach(([key, input]) => {\n if (input) url = url.replace(`{${key}}`, input);\n });\n return url;\n};\n\nexport const joinWithSingleSlash = (baseUrl: string, path: string): string => {\n // remove the last slash of the baseUrl and the first slash of the path, and join with slash\n return baseUrl.replace(/\\/$/, '') + '/' + path.replace(/^\\//, '');\n};\n\nconst addContentType = (headers: Record<string, unknown>, contentType: string) => {\n if (Object.keys(headers).some((name) => name.toLowerCase() === 'content-type')) {\n return headers;\n }\n\n return {\n ...headers,\n ['content-type']: contentType,\n };\n};\n\nconst performDirectRequest = async (request: RequestInfo) => {\n const axios = await import('axios').then((it) => it.default);\n\n const contentType = Object.keys(request.header).find(\n (key) => key.toLowerCase() === 'content-type'\n );\n let data = request.body;\n \n let headers = request.header as Record<string, string>;\n if (contentType?.includes('multipart/form-data')) {\n const { data: formData, headers: formHeaders } = handleFormData(request);\n data = formData;\n headers = formHeaders;\n }\n\n return axios({\n url: request.url,\n method: request.method,\n params: request.query,\n data,\n headers,\n // prevent axios from adding [] after array query params\n paramsSerializer: {\n indexes: null,\n },\n responseType: 'arraybuffer',\n // prevent axios from erroring on bad status codes\n validateStatus: () => true,\n // prevent axios from parsing json, losing whitespace information, and using default utf-8 encoding\n // we can't use `responseEncoding` as it's ignored client-side\n transformResponse: (data) => {\n return Buffer.from(data).toString('base64');\n },\n });\n};\n\nconst performFileRequest = async (request: RequestInfo) => {\n const axios = await import('axios').then((it) => it.default);\n const formData = new FormData();\n formData.append(\n 'requestInfo',\n JSON.stringify({\n method: request.method,\n url: request.url,\n header: request.header,\n query: request.query,\n cookie: request.cookie,\n })\n );\n if (typeof request.body === 'object' && request.body !== null) {\n Object.entries(request.body).forEach(([key, value]) => {\n if (value instanceof File) {\n formData.append(key, value);\n } else if (Array.isArray(value)) {\n value.forEach((item) => {\n if (item instanceof File) {\n formData.append(key, item);\n } else if (item !== undefined && item !== null) {\n formData.append(key, typeof item === 'object' ? JSON.stringify(item) : item.toString());\n }\n });\n } else if (value !== undefined && value !== null) {\n formData.append(key, typeof value === 'object' ? JSON.stringify(value) : value.toString());\n }\n });\n }\n\n const { data } = await axios.post<unknown, AxiosResponse<ApiPlaygroundResultType>>(\n `${NEXT_PUBLIC.BASE_PATH}/_mintlify/api/file-request`,\n formData\n );\n return data;\n};\n\nconst handleFormData = (request: RequestInfo) => {\n let data = request.body;\n \n const headers = request.header as Record<string, string>;\n\n if (headers['content-type']?.includes('multipart/form-data')) {\n const formData = new FormData();\n if (typeof data === 'object' && data !== null) {\n Object.entries(data).forEach(([key, value]) => {\n if (value instanceof File) {\n formData.append(key, value);\n } else if (Array.isArray(value)) {\n value.forEach((item) => {\n if (item instanceof File) {\n formData.append(key, item);\n } else if (item !== undefined && item !== null) {\n formData.append(\n key,\n typeof item === 'object' ? JSON.stringify(item) : item.toString()\n );\n }\n });\n } else if (value !== undefined && value !== null) {\n formData.append(\n key,\n typeof value === 'object' ? JSON.stringify(value) : value.toString()\n );\n }\n });\n data = formData;\n delete headers['content-type'];\n }\n }\n return { data, headers };\n};\n"],"names":["useSendPlaygroundRequest","apiReferenceData","baseUrl","contentType","setResult","setIsSending","getApiPlaygroundInputs","usePlaygroundInputsStore","inputs","disableProxy","_a","path","_b","method","_c","useCallback","axios","x","pathWithInputs","addPathParams","url","joinWithSingleSlash","addServerVariables","headers","addContentType","request","response","performDirectRequest","data","performFileRequest","NEXT_PUBLIC","err","pathInputs","inputName","inputValue","variables","key","input","name","it","formData","formHeaders","handleFormData","value","item"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addApiReferenceDataFromMdxAndDocsConfig.js","sources":["../../../src/api-playground-2/schemaGraph/addApiReferenceDataFromMdxAndDocsConfig.ts"],"sourcesContent":["import type { MdxExtracts } from '@mintlify/common';\nimport { PageMetaTags } from '@mintlify/models';\nimport { DocsConfig, Endpoint } from '@mintlify/validation';\n\nimport type { ApiReferenceDataV2, OperationV2 } from '@/api-playground-2/types';\nimport { toShikiLang } from '@/constants/snippetPresets';\n\nimport { getFirstWebhookExample, mdxCodeExampleToExamples } from './processExamples';\nimport { getDocsJsonSecurityOptions } from './processSecurityOptions';\nimport { generatePrefillRequestData } from './utils';\n\nconst mapEndpointToOperationV2 = (endpoint: Endpoint): OperationV2 => {\n const baseUrlOptions = endpoint.servers?.map((server) => server.url) ?? [];\n let baseUrl: string | undefined = undefined;\n if (baseUrlOptions.length > 1) {\n baseUrl = baseUrlOptions[0];\n } else {\n baseUrl = baseUrlOptions[0];\n }\n // ignore security options added from mdx endpoint, they are just copied from docs.json\n\n return {\n path: endpoint.path,\n method: endpoint.method,\n title: endpoint.title ?? '',\n description: endpoint.description ?? '',\n type: endpoint.type ?? 'path',\n baseUrl,\n baseUrlOptions,\n deprecated: endpoint.deprecated,\n };\n};\n\nexport const addApiReferenceDataFromMdxAndDocsConfig = ({\n pageMetadata,\n apiReferenceData2,\n mdxExtracts,\n docsConfig,\n}: {\n pageMetadata: PageMetaTags;\n apiReferenceData2: ApiReferenceDataV2 | undefined;\n mdxExtracts: MdxExtracts | undefined;\n docsConfig: DocsConfig | undefined;\n}): ApiReferenceDataV2 => {\n const apiReferenceData: ApiReferenceDataV2 = apiReferenceData2 ?? { operation: undefined };\n\n // if apiReferenceData2 is undefined, we need to add the operation from mdxExtracts\n if (!apiReferenceData2 && mdxExtracts?.endpoint) {\n apiReferenceData.operation = mapEndpointToOperationV2(mdxExtracts.endpoint);\n }\n\n // If we have a description from the frontmatter, use it instead of the OpenAPI description\n if (pageMetadata.description && apiReferenceData.operation) {\n apiReferenceData.operation.description = pageMetadata.description;\n }\n\n // now we should have a valid operationV2 either built by apiReferenceData from page props or just created from mdxExtracts\n // if there isn't, something went wrong and ngmi, operation remains undefined\n if (!apiReferenceData.operation) {\n return apiReferenceData;\n }\n\n // add docsConfig data to operation (either built by apiReferenceData from page props or just created from mdxExtracts)\n const configUrlOrUrls = docsConfig?.api?.mdx?.server;\n const configSecurity = docsConfig?.api?.mdx?.auth;\n\n // openapi servers > mdx servers > docs.json servers\n const alreadyHasServers =\n apiReferenceData.operation.baseUrl || apiReferenceData.operation.baseUrlOptions.length > 0;\n\n if (typeof configUrlOrUrls === 'string' && !alreadyHasServers) {\n apiReferenceData.operation.baseUrl = configUrlOrUrls;\n } else if (Array.isArray(configUrlOrUrls) && !alreadyHasServers) {\n if (configUrlOrUrls.length > 1) {\n apiReferenceData.operation.baseUrlOptions = configUrlOrUrls;\n } else {\n apiReferenceData.operation.baseUrl = configUrlOrUrls[0];\n }\n }\n\n if (configSecurity && Object.keys(apiReferenceData.dependencies?.security ?? {}).length === 0) {\n const docsJsonSecurityOptions = getDocsJsonSecurityOptions({\n method: configSecurity.method,\n name: configSecurity.name,\n });\n if (docsJsonSecurityOptions) {\n if (!apiReferenceData.dependencies) {\n apiReferenceData.dependencies = {\n servers: {},\n security: {},\n };\n }\n apiReferenceData.dependencies.security = { ...docsJsonSecurityOptions };\n }\n }\n\n const requestExamples = mdxExtracts?.codeExamples?.request;\n const responseExamples = mdxExtracts?.codeExamples?.response;\n\n // for examples, mdx > webhook example > codeSamples > generated\n if (requestExamples) {\n apiReferenceData.operation.requestExamples = mdxCodeExampleToExamples(requestExamples);\n apiReferenceData.operation.requestExampleType = 'mdx';\n } else {\n if (apiReferenceData.operation.type === 'webhook') {\n apiReferenceData.operation.requestExamples = getFirstWebhookExample(apiReferenceData);\n apiReferenceData.operation.requestExampleType = 'webhook';\n } else if (\n apiReferenceData.operation.codeSamples &&\n apiReferenceData.operation.codeSamples.length > 0\n ) {\n const requestExampleLanguages = docsConfig?.api?.examples?.languages?.map(toShikiLang);\n apiReferenceData.operation.requestExampleType = 'codeSamples';\n apiReferenceData.operation.requestExampleLanguages = requestExampleLanguages;\n apiReferenceData.operation.requiredOnlyExamples =\n docsConfig?.api?.examples?.defaults === 'required';\n } else {\n apiReferenceData.operation.requestExampleType = 'generated';\n }\n }\n\n if (responseExamples) {\n apiReferenceData.operation.responseExamples = mdxCodeExampleToExamples(responseExamples);\n apiReferenceData.operation.responseExampleType = 'mdx';\n } else {\n apiReferenceData.operation.responseExampleType = 'generated';\n }\n\n const hasBaseUrl =\n apiReferenceData.operation.baseUrl || apiReferenceData.operation.baseUrlOptions.length > 0;\n const prefillExamplesEnabled = docsConfig?.api?.examples?.prefill && hasBaseUrl;\n if (prefillExamplesEnabled) {\n apiReferenceData.operation.prefillPlaygroundWithExample = Boolean(prefillExamplesEnabled);\n apiReferenceData.operation.prefillPlaygroundExamples =\n generatePrefillRequestData(apiReferenceData);\n }\n\n const disableProxy = docsConfig?.api?.playground?.proxy === false;\n if (disableProxy) {\n apiReferenceData.operation.disableProxy = true;\n }\n\n return apiReferenceData;\n};\n"],"names":["mapEndpointToOperationV2","endpoint","baseUrlOptions","_a","server","baseUrl","addApiReferenceDataFromMdxAndDocsConfig","pageMetadata","apiReferenceData2","mdxExtracts","docsConfig","apiReferenceData","configUrlOrUrls","_b","configSecurity","_d","_c","alreadyHasServers","_e","docsJsonSecurityOptions","getDocsJsonSecurityOptions","requestExamples","_f","responseExamples","_g","mdxCodeExampleToExamples","getFirstWebhookExample","requestExampleLanguages","_j","_i","_h","toShikiLang","_l","_k","hasBaseUrl","prefillExamplesEnabled","_n","_m","generatePrefillRequestData","_p","_o"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"addUniqueKeysToSchema.js","sources":["../../../src/api-playground-2/schemaGraph/addUniqueKeysToSchema.ts"],"sourcesContent":["import { SchemaObject } from '@mintlify/validation';\n\nimport { escapeDots, isSchemaObject } from '@/api-playground-2/schemaGraph/utils';\nimport type { ResolvedSchemaObject } from '@/api-playground-2/types';\n\n/**\n * Add unique keys to each schema node, representing the path from the root.\n * This is used to generate unique input keys for the playground data store.\n *\n * @param schema - The schema to process\n * @param pathPrefix - The current path prefix (e.g., \"body.application/json\")\n * @returns The schema with uniqueKey properties added\n */\nexport const addUniqueKeysToSchema = (\n schema: SchemaObject,\n pathPrefix: string = ''\n): ResolvedSchemaObject => {\n if (!isSchemaObject(schema)) {\n return schema;\n }\n\n const processedSchema: ResolvedSchemaObject = {\n ...schema,\n uniqueKey: pathPrefix,\n };\n\n if (processedSchema.oneOf && Array.isArray(processedSchema.oneOf)) {\n processedSchema.oneOf = processedSchema.oneOf.map((subSchema, index) => {\n if (isSchemaObject(subSchema)) {\n const subPath = pathPrefix ? `${pathPrefix}.oneOf.${index}` : `${index}`;\n return addUniqueKeysToSchema(subSchema, subPath);\n }\n return subSchema;\n });\n }\n\n if (processedSchema.type === 'object' && processedSchema.properties) {\n const processedProperties: Record<string, SchemaObject> = {};\n Object.entries(processedSchema.properties).forEach(([name, propSchema]) => {\n if (isSchemaObject(propSchema)) {\n const propPath = pathPrefix ? `${pathPrefix}.${escapeDots(name)}` : escapeDots(name);\n processedProperties[name] = addUniqueKeysToSchema(propSchema, propPath);\n } else {\n processedProperties[name] = propSchema;\n }\n });\n processedSchema.properties = processedProperties;\n }\n\n if (\n processedSchema.additionalProperties &&\n typeof processedSchema.additionalProperties === 'object' &&\n isSchemaObject(processedSchema.additionalProperties)\n ) {\n const addPropsPath = pathPrefix ? `${pathPrefix}.additionalProperties` : 'additionalProperties';\n processedSchema.additionalProperties = addUniqueKeysToSchema(\n processedSchema.additionalProperties,\n addPropsPath\n );\n }\n\n if (\n processedSchema.type === 'array' &&\n 'items' in processedSchema &&\n isSchemaObject(processedSchema.items)\n ) {\n const itemsPath = pathPrefix ? `${pathPrefix}.items` : 'items';\n processedSchema.items = addUniqueKeysToSchema(processedSchema.items, itemsPath);\n }\n\n return processedSchema;\n};\n"],"names":["addUniqueKeysToSchema","schema","pathPrefix","isSchemaObject","processedSchema","subSchema","index","subPath","processedProperties","name","propSchema","propPath","escapeDots","addPropsPath","itemsPath"],"mappings":";AAaO,MAAMA,IAAwB,CACnCC,GACAC,IAAqB,OACI;AACzB,MAAI,CAACC,EAAeF,CAAM;AACxB,WAAOA;AAGT,QAAMG,IAAwC;AAAA,IAC5C,GAAGH;AAAA,IACH,WAAWC;AAAA,EAAA;AAab,MAVIE,EAAgB,SAAS,MAAM,QAAQA,EAAgB,KAAK,MAC9DA,EAAgB,QAAQA,EAAgB,MAAM,IAAI,CAACC,GAAWC,MAAU;AACtE,QAAIH,EAAeE,CAAS,GAAG;AAC7B,YAAME,IAAUL,IAAa,GAAGA,CAAU,UAAUI,CAAK,KAAK,GAAGA,CAAK;AACtE,aAAON,EAAsBK,GAAWE,CAAO;AAAA,IACjD;AACA,WAAOF;AAAA,EACT,CAAC,IAGCD,EAAgB,SAAS,YAAYA,EAAgB,YAAY;AACnE,UAAMI,IAAoD,CAAA;AAC1D,WAAO,QAAQJ,EAAgB,UAAU,EAAE,QAAQ,CAAC,CAACK,GAAMC,CAAU,MAAM;AACzE,UAAIP,EAAeO,CAAU,GAAG;AAC9B,cAAMC,IAAWT,IAAa,GAAGA,CAAU,IAAIU,EAAWH,CAAI,CAAC,KAAKG,EAAWH,CAAI;AACnF,QAAAD,EAAoBC,CAAI,IAAIT,EAAsBU,GAAYC,CAAQ;AAAA,MACxE;AACE,QAAAH,EAAoBC,CAAI,IAAIC;AAAA,IAEhC,CAAC,GACDN,EAAgB,aAAaI;AAAA,EAC/B;AAEA,MACEJ,EAAgB,wBAChB,OAAOA,EAAgB,wBAAyB,YAChDD,EAAeC,EAAgB,oBAAoB,GACnD;AACA,UAAMS,IAAeX,IAAa,GAAGA,CAAU,0BAA0B;AACzE,IAAAE,EAAgB,uBAAuBJ;AAAA,MACrCI,EAAgB;AAAA,MAChBS;AAAA,IAAA;AAAA,EAEJ;AAEA,MACET,EAAgB,SAAS,WACzB,WAAWA,KACXD,EAAeC,EAAgB,KAAK,GACpC;AACA,UAAMU,IAAYZ,IAAa,GAAGA,CAAU,WAAW;AACvD,IAAAE,EAAgB,QAAQJ,EAAsBI,EAAgB,OAAOU,CAAS;AAAA,EAChF;AAEA,SAAOV;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sources":["../../../src/api-playground-2/schemaGraph/errors.ts"],"sourcesContent":["// ERRORS\nexport const generateMessage = (path: string[], ...messages: string[]): string => {\n const pathString = path\n .map((component) => component.replace('\\\\', '\\\\\\\\').replace('/', '\\\\/'))\n .join('/');\n return [pathString, ...messages].join('\\n');\n};\n\n/**\n * Thrown when a value is incorrect or missing, according to the OpenAPI spec.\n */\nexport class InvalidSchemaError extends Error {\n constructor(path: string[], ...messages: string[]) {\n super(generateMessage(path, ...messages));\n this.name = 'InvalidSchemaError';\n Object.setPrototypeOf(this, InvalidSchemaError.prototype);\n }\n}\n\n/**\n * Thrown when a schema is valid according to OpenAPI, but is unsatisfiable\n * (e.g. a value that must be both a number and a string).\n */\nexport class ImpossibleSchemaError extends Error {\n constructor(path: string[], ...messages: string[]) {\n super(generateMessage(path, ...messages));\n this.name = 'ImpossibleSchemaError';\n Object.setPrototypeOf(this, ImpossibleSchemaError.prototype);\n }\n}\n\n/**\n * Thrown when there is an issue that was caused in another part of the conversion\n * (e.g. a schema in reduced form that is missing `oneOf`).\n */\nexport class ConversionError extends Error {\n constructor(path: string[], ...messages: string[]) {\n super(generateMessage(path, ...messages));\n this.name = 'ConversionError';\n Object.setPrototypeOf(this, ConversionError.prototype);\n }\n}\n\nexport function handleExistingError(\n error: unknown,\n path: string[],\n safeParse: boolean = false,\n ...messages: string[]\n) {\n if (safeParse) {\n console.error(generateMessage(path, ...messages), error);\n } else {\n throw error;\n }\n}\n"],"names":["generateMessage","path","messages","component","ImpossibleSchemaError","handleExistingError","error","safeParse"],"mappings":"AACO,MAAMA,IAAkB,CAACC,MAAmBC,MAI1C,CAHYD,EAChB,IAAI,CAACE,MAAcA,EAAU,QAAQ,MAAM,MAAM,EAAE,QAAQ,KAAK,KAAK,CAAC,EACtE,KAAK,GAAG,GACS,GAAGD,CAAQ,EAAE,KAAK;AAAA,CAAI;AAkBrC,MAAME,UAA8B,MAAM;AAAA,EAC/C,YAAYH,MAAmBC,GAAoB;AACjD,UAAMF,EAAgBC,GAAM,GAAGC,CAAQ,CAAC,GACxC,KAAK,OAAO,yBACZ,OAAO,eAAe,MAAME,EAAsB,SAAS;AAAA,EAC7D;AACF;AAcO,SAASC,EACdC,GACAL,GACAM,IAAqB,OAClBL,GACH;AACA,MAAIK;AACF,YAAQ,MAAMP,EAAgBC,GAAM,GAAGC,CAAQ,GAAGI,CAAK;AAAA;AAEvD,UAAMA;AAEV;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAllRequiredProperties.js","sources":["../../../src/api-playground-2/schemaGraph/getAllRequiredProperties.ts"],"sourcesContent":["import { SchemaObject } from '@mintlify/validation';\n\nimport { isSchemaObject } from './utils';\n\nexport const getAllRequiredProperties = (\n schema: SchemaObject,\n collected: Set<string> = new Set()\n): string[] => {\n if ('required' in schema && Array.isArray(schema.required)) {\n schema.required.forEach((prop) => collected.add(prop));\n }\n\n if ('items' in schema && schema.items) {\n if (isSchemaObject(schema.items)) {\n getAllRequiredProperties(schema.items, collected);\n }\n }\n\n if ('properties' in schema && schema.properties) {\n Object.values(schema.properties).forEach((propSchema) => {\n getAllRequiredProperties(propSchema, collected);\n });\n }\n\n if ('additionalProperties' in schema && isSchemaObject(schema.additionalProperties)) {\n getAllRequiredProperties(schema.additionalProperties, collected);\n }\n\n if ('oneOf' in schema && Array.isArray(schema.oneOf)) {\n schema.oneOf.forEach((subSchema) => {\n if (isSchemaObject(subSchema)) {\n getAllRequiredProperties(subSchema, collected);\n }\n });\n }\n\n return [...collected];\n};\n"],"names":["getAllRequiredProperties","schema","collected","prop","isSchemaObject","propSchema","subSchema"],"mappings":";AAIO,MAAMA,IAA2B,CACtCC,GACAC,IAAyB,oBAAI,WAEzB,cAAcD,KAAU,MAAM,QAAQA,EAAO,QAAQ,KACvDA,EAAO,SAAS,QAAQ,CAACE,MAASD,EAAU,IAAIC,CAAI,CAAC,GAGnD,WAAWF,KAAUA,EAAO,SAC1BG,EAAeH,EAAO,KAAK,KAC7BD,EAAyBC,EAAO,OAAOC,CAAS,GAIhD,gBAAgBD,KAAUA,EAAO,cACnC,OAAO,OAAOA,EAAO,UAAU,EAAE,QAAQ,CAACI,MAAe;AACvD,EAAAL,EAAyBK,GAAYH,CAAS;AAChD,CAAC,GAGC,0BAA0BD,KAAUG,EAAeH,EAAO,oBAAoB,KAChFD,EAAyBC,EAAO,sBAAsBC,CAAS,GAG7D,WAAWD,KAAU,MAAM,QAAQA,EAAO,KAAK,KACjDA,EAAO,MAAM,QAAQ,CAACK,MAAc;AAClC,EAAIF,EAAeE,CAAS,KAC1BN,EAAyBM,GAAWJ,CAAS;AAEjD,CAAC,GAGI,CAAC,GAAGA,CAAS;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getApiReferenceDataFromGraph.js","sources":["../../../src/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.ts"],"sourcesContent":["import { parseApiTargetFromMetadata } from '../../common/parseApiTargetFromMetadata';\nimport type { PageMetaTags } from '@mintlify/models';\nimport type { SchemaGraphData } from '@mintlify/validation';\n\nimport type { ApiReferenceDataV2 } from '@/api-playground-2/types';\n\nimport { getSchemaGraphOperationData } from './getSchemaGraphOperationData';\nimport { getSchemaGraphSchemaData } from './getSchemaGraphSchemaData';\n\nexport const getApiReferenceDataFromGraph = ({\n metadata,\n schemaGraphData,\n}: {\n metadata: PageMetaTags;\n schemaGraphData: SchemaGraphData;\n}): ApiReferenceDataV2 => {\n const target = parseApiTargetFromMetadata(metadata);\n\n if (!target) {\n return {};\n }\n\n try {\n if (target.type === 'operation') {\n return getSchemaGraphOperationData({\n target,\n schemaGraphData,\n });\n } else {\n return getSchemaGraphSchemaData({\n target,\n schemaGraphData,\n });\n }\n } catch (error) {\n throw error;\n }\n};\n"],"names":["getApiReferenceDataFromGraph","metadata","schemaGraphData","target","parseApiTargetFromMetadata","getSchemaGraphOperationData","getSchemaGraphSchemaData","error"],"mappings":";;;AASO,MAAMA,IAA+B,CAAC;AAAA,EAC3C,UAAAC;AAAA,EACA,iBAAAC;AACF,MAG0B;AACxB,QAAMC,IAASC,EAA2BH,CAAQ;AAElD,MAAI,CAACE;AACH,WAAO,CAAA;AAGT,MAAI;AACF,WAAIA,EAAO,SAAS,cACXE,EAA4B;AAAA,MACjC,QAAAF;AAAA,MACA,iBAAAD;AAAA,IAAA,CACD,IAEMI,EAAyB;AAAA,MAC9B,QAAAH;AAAA,MACA,iBAAAD;AAAA,IAAA,CACD;AAAA,EAEL,SAASK,GAAO;AACd,UAAMA;AAAA,EACR;AACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDocumentProperties.js","sources":["../../../src/api-playground-2/schemaGraph/getDocumentProperties.ts"],"sourcesContent":["import {\n Operation,\n SchemaGraphData,\n Document,\n ServerObject,\n SecurityRequirement,\n UUID,\n} from '@mintlify/validation';\nimport zip from 'lodash/zip';\n\nimport {\n deeplyResolveGraphNode,\n resolveGraphNode,\n} from '@/api-playground-2/schemaGraph/resolveGraphNode';\nimport { flattenSingleOneOf } from '@/api-playground-2/schemaGraph/utils';\nimport type { ResolvedSecurityObject } from '@/api-playground-2/types';\n\nexport const getDocument = (schemaGraphData: SchemaGraphData) => {\n return resolveGraphNode<Document>({\n uuidObjectHashMap: schemaGraphData.spec.uuidObjectHashMap,\n hashedNodeMap: schemaGraphData.spec.hashedNodeMap,\n id: schemaGraphData.documentId,\n });\n};\n\n// Decorate an Operation object that has been parsed from a path with some additional properties which\n// are stored at the top level of the schema document.\nexport function withDocumentProperties({\n operation,\n schemaGraphData,\n}: {\n operation: Operation;\n schemaGraphData: SchemaGraphData;\n}): Operation {\n // get servers\n const servers = getDocument(schemaGraphData)?.servers;\n\n // get security\n const security = getDocument(schemaGraphData)?.security;\n\n return {\n ...operation,\n servers,\n security,\n };\n}\n\nexport const getResolvedServers = (\n schemaGraphData: SchemaGraphData\n): Record<string, ServerObject> => {\n const serverUUIDs = getDocument(schemaGraphData)?.servers;\n if (!serverUUIDs) return {};\n\n return Object.fromEntries(\n zip(\n serverUUIDs,\n serverUUIDs.map((serverUUID) =>\n deeplyResolveGraphNode<ServerObject>({\n uuidObjectHashMap: schemaGraphData.spec.uuidObjectHashMap,\n hashedNodeMap: schemaGraphData.spec.hashedNodeMap,\n id: serverUUID,\n })\n )\n )\n .filter((entry): entry is [UUID, ServerObject] => entry[1] !== undefined)\n .map(([uuid, server]) => [uuid, flattenSingleOneOf(server)])\n );\n};\n\nexport const getResolvedSecuritys = (\n schemaGraphData: SchemaGraphData\n): Record<string, ResolvedSecurityObject> => {\n const securityUUIDs = getDocument(schemaGraphData)?.security;\n if (!securityUUIDs) return {};\n\n return Object.fromEntries(\n zip(\n securityUUIDs,\n securityUUIDs.map((securityUUID) =>\n deeplyResolveGraphNode<SecurityRequirement>({\n uuidObjectHashMap: schemaGraphData.spec.uuidObjectHashMap,\n hashedNodeMap: schemaGraphData.spec.hashedNodeMap,\n id: securityUUID,\n })\n )\n )\n .filter((entry): entry is [UUID, ResolvedSecurityObject] => entry[1] !== undefined)\n .map(([uuid, security]) => [uuid, flattenSingleOneOf(security)])\n );\n};\n"],"names":["getDocument","schemaGraphData","resolveGraphNode","withDocumentProperties","operation","servers","_a","security","_b","getResolvedServers","serverUUIDs","zip","serverUUID","deeplyResolveGraphNode","entry","uuid","server","flattenSingleOneOf","getResolvedSecuritys","securityUUIDs","securityUUID"],"mappings":";;;AAiBO,MAAMA,IAAc,CAACC,MACnBC,EAA2B;AAAA,EAChC,mBAAmBD,EAAgB,KAAK;AAAA,EACxC,eAAeA,EAAgB,KAAK;AAAA,EACpC,IAAIA,EAAgB;AAAA,CACrB;AAKI,SAASE,EAAuB;AAAA,EACrC,WAAAC;AAAA,EACA,iBAAAH;AACF,GAGc;;AAEZ,QAAMI,KAAUC,IAAAN,EAAYC,CAAe,MAA3B,gBAAAK,EAA8B,SAGxCC,KAAWC,IAAAR,EAAYC,CAAe,MAA3B,gBAAAO,EAA8B;AAE/C,SAAO;AAAA,IACL,GAAGJ;AAAA,IACH,SAAAC;AAAA,IACA,UAAAE;AAAA,EAAA;AAEJ;AAEO,MAAME,IAAqB,CAChCR,MACiC;;AACjC,QAAMS,KAAcJ,IAAAN,EAAYC,CAAe,MAA3B,gBAAAK,EAA8B;AAClD,SAAKI,IAEE,OAAO;AAAA,IACZC;AAAA,MACED;AAAA,MACAA,EAAY;AAAA,QAAI,CAACE,MACfC,EAAqC;AAAA,UACnC,mBAAmBZ,EAAgB,KAAK;AAAA,UACxC,eAAeA,EAAgB,KAAK;AAAA,UACpC,IAAIW;AAAA,QAAA,CACL;AAAA,MAAA;AAAA,IACH,EAEC,OAAO,CAACE,MAAyCA,EAAM,CAAC,MAAM,MAAS,EACvE,IAAI,CAAC,CAACC,GAAMC,CAAM,MAAM,CAACD,GAAME,EAAmBD,CAAM,CAAC,CAAC;AAAA,EAAA,IAdtC,CAAA;AAgB3B,GAEaE,IAAuB,CAClCjB,MAC2C;;AAC3C,QAAMkB,KAAgBb,IAAAN,EAAYC,CAAe,MAA3B,gBAAAK,EAA8B;AACpD,SAAKa,IAEE,OAAO;AAAA,IACZR;AAAA,MACEQ;AAAA,MACAA,EAAc;AAAA,QAAI,CAACC,MACjBP,EAA4C;AAAA,UAC1C,mBAAmBZ,EAAgB,KAAK;AAAA,UACxC,eAAeA,EAAgB,KAAK;AAAA,UACpC,IAAImB;AAAA,QAAA,CACL;AAAA,MAAA;AAAA,IACH,EAEC,OAAO,CAACN,MAAmDA,EAAM,CAAC,MAAM,MAAS,EACjF,IAAI,CAAC,CAACC,GAAMR,CAAQ,MAAM,CAACQ,GAAME,EAAmBV,CAAQ,CAAC,CAAC;AAAA,EAAA,IAdxC,CAAA;AAgB7B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSchemaGraphOperationData.js","sources":["../../../src/api-playground-2/schemaGraph/getSchemaGraphOperationData.ts"],"sourcesContent":["import type { OperationTargetType } from '@mintlify/common';\nimport type {\n CodeSample,\n HttpMethod,\n PathOrRef,\n SchemaGraphData,\n Operation,\n} from '@mintlify/validation';\n\nimport {\n getResolvedSecuritys,\n getResolvedServers,\n withDocumentProperties,\n} from '@/api-playground-2/schemaGraph/getDocumentProperties';\nimport { resolveGraphNode } from '@/api-playground-2/schemaGraph/resolveGraphNode';\nimport type { ApiReferenceDataV2, OperationV2 } from '@/api-playground-2/types';\n\nimport { resolveOperationWithDependencies } from './resolveOperationWithDependencies';\n\nexport const createOperationV2 = ({\n operation,\n target,\n baseUrlOptions,\n}: {\n operation: Operation;\n target: OperationTargetType;\n baseUrlOptions: string[];\n}): OperationV2 => {\n let baseUrl: string | undefined = undefined;\n let baseUrls: string[] = [];\n if (baseUrlOptions.length > 1) {\n baseUrls = baseUrlOptions;\n } else {\n baseUrl = baseUrlOptions[0];\n }\n\n const codeSamples: CodeSample[] = [];\n if (Array.isArray(operation['x-code-samples']) && operation['x-code-samples'].length > 0) {\n operation['x-code-samples'].forEach((codeSample) => {\n if (\n codeSample &&\n typeof codeSample === 'object' &&\n 'source' in codeSample &&\n typeof codeSample['source'] === 'string' &&\n 'lang' in codeSample &&\n typeof codeSample['lang'] === 'string'\n ) {\n codeSamples.push({\n label:\n 'label' in codeSample && typeof codeSample['label'] === 'string'\n ? codeSample['label']\n : undefined,\n lang: codeSample['lang'],\n source: codeSample['source'],\n });\n }\n });\n }\n\n return {\n ...operation,\n path: target.endpoint || '',\n baseUrl,\n baseUrlOptions: baseUrls,\n title: operation.summary ?? '',\n description: operation.description ?? '',\n codeSamples,\n };\n};\n\n// An OpenAPI doc comes to us with a `paths` array. We turn that array into a series of path objects\n// which have a set of `method` keys that map to operation objects.\nexport const getOperationId = (\n graph: SchemaGraphData,\n endpoint: string,\n method: HttpMethod | 'webhook'\n) => {\n const pathUuid = graph.spec.refUuidMap[`${endpoint}/${method}`];\n if (!pathUuid) return undefined;\n\n // pathNode has a shape like:\n // {\n // path: string;\n // [method: HttpMethod]: UUID;\n // }\n const pathNode = resolveGraphNode<PathOrRef>({\n uuidObjectHashMap: graph.spec.uuidObjectHashMap,\n hashedNodeMap: graph.spec.hashedNodeMap,\n id: pathUuid,\n });\n\n // TODO - Api Playground Refactor: I think we assume in the converter that webhooks always have \"post\" as a method\n // technically I they can have multiple/other methods specified?\n const pathNodeOperationObject = method === 'webhook' ? pathNode?.['post'] : pathNode?.[method];\n\n return pathNodeOperationObject;\n};\n\nexport const getSchemaGraphOperationData = ({\n target,\n schemaGraphData,\n}: {\n target: OperationTargetType;\n schemaGraphData: SchemaGraphData;\n}): ApiReferenceDataV2 => {\n const { uuidObjectHashMap, hashedNodeMap } = schemaGraphData.spec;\n\n const operationId = getOperationId(schemaGraphData, target.endpoint, target.method);\n\n if (!operationId) {\n throw new Error(\n `no matching OpenAPI operation found with path \"${target.endpoint}\" and method \"${target.method}\"`\n );\n }\n\n const resolvedData = resolveOperationWithDependencies({\n operationId,\n uuidObjectHashMap,\n hashedNodeMap,\n });\n\n if (!resolvedData) {\n // better error handling?\n return {};\n }\n\n let operation = resolvedData.operation;\n\n // The Operation object doesn't directly contain all the properties we want, so we add a few elsewhere\n // in the spec.\n operation = withDocumentProperties({\n operation,\n schemaGraphData,\n });\n\n const servers = getResolvedServers(schemaGraphData);\n const security = getResolvedSecuritys(schemaGraphData);\n const baseUrlOptions = Object.values(servers).map((server) => server.url);\n\n const operationV2 = createOperationV2({\n operation,\n target,\n baseUrlOptions,\n });\n\n // Then we need to make sure we have dependencies for those new properties.\n const dependenciesWithDocumentDependencies = {\n ...resolvedData.dependencies,\n servers,\n security,\n ...(resolvedData.schemas && { schemas: resolvedData.schemas }),\n };\n\n return {\n operation: operationV2,\n dependencies: dependenciesWithDocumentDependencies,\n };\n};\n"],"names":["createOperationV2","operation","target","baseUrlOptions","baseUrl","baseUrls","codeSamples","codeSample","getOperationId","graph","endpoint","method","pathUuid","pathNode","resolveGraphNode","getSchemaGraphOperationData","schemaGraphData","uuidObjectHashMap","hashedNodeMap","operationId","resolvedData","resolveOperationWithDependencies","withDocumentProperties","servers","getResolvedServers","security","getResolvedSecuritys","server","operationV2","dependenciesWithDocumentDependencies"],"mappings":";;;AAmBO,MAAMA,IAAoB,CAAC;AAAA,EAChC,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,gBAAAC;AACF,MAImB;AACjB,MAAIC,GACAC,IAAqB,CAAA;AACzB,EAAIF,EAAe,SAAS,IAC1BE,IAAWF,IAEXC,IAAUD,EAAe,CAAC;AAG5B,QAAMG,IAA4B,CAAA;AAClC,SAAI,MAAM,QAAQL,EAAU,gBAAgB,CAAC,KAAKA,EAAU,gBAAgB,EAAE,SAAS,KACrFA,EAAU,gBAAgB,EAAE,QAAQ,CAACM,MAAe;AAClD,IACEA,KACA,OAAOA,KAAe,YACtB,YAAYA,KACZ,OAAOA,EAAW,UAAc,YAChC,UAAUA,KACV,OAAOA,EAAW,QAAY,YAE9BD,EAAY,KAAK;AAAA,MACf,OACE,WAAWC,KAAc,OAAOA,EAAW,SAAa,WACpDA,EAAW,QACX;AAAA,MACN,MAAMA,EAAW;AAAA,MACjB,QAAQA,EAAW;AAAA,IAAQ,CAC5B;AAAA,EAEL,CAAC,GAGI;AAAA,IACL,GAAGN;AAAA,IACH,MAAMC,EAAO,YAAY;AAAA,IACzB,SAAAE;AAAA,IACA,gBAAgBC;AAAA,IAChB,OAAOJ,EAAU,WAAW;AAAA,IAC5B,aAAaA,EAAU,eAAe;AAAA,IACtC,aAAAK;AAAA,EAAA;AAEJ,GAIaE,IAAiB,CAC5BC,GACAC,GACAC,MACG;AACH,QAAMC,IAAWH,EAAM,KAAK,WAAW,GAAGC,CAAQ,IAAIC,CAAM,EAAE;AAC9D,MAAI,CAACC,EAAU;AAOf,QAAMC,IAAWC,EAA4B;AAAA,IAC3C,mBAAmBL,EAAM,KAAK;AAAA,IAC9B,eAAeA,EAAM,KAAK;AAAA,IAC1B,IAAIG;AAAA,EAAA,CACL;AAMD,SAFgCD,MAAW,YAAYE,KAAA,gBAAAA,EAAW,OAAUA,KAAA,gBAAAA,EAAWF;AAGzF,GAEaI,IAA8B,CAAC;AAAA,EAC1C,QAAAb;AAAA,EACA,iBAAAc;AACF,MAG0B;AACxB,QAAM,EAAE,mBAAAC,GAAmB,eAAAC,EAAA,IAAkBF,EAAgB,MAEvDG,IAAcX,EAAeQ,GAAiBd,EAAO,UAAUA,EAAO,MAAM;AAElF,MAAI,CAACiB;AACH,UAAM,IAAI;AAAA,MACR,kDAAkDjB,EAAO,QAAQ,iBAAiBA,EAAO,MAAM;AAAA,IAAA;AAInG,QAAMkB,IAAeC,EAAiC;AAAA,IACpD,aAAAF;AAAA,IACA,mBAAAF;AAAA,IACA,eAAAC;AAAA,EAAA,CACD;AAED,MAAI,CAACE;AAEH,WAAO,CAAA;AAGT,MAAInB,IAAYmB,EAAa;AAI7B,EAAAnB,IAAYqB,EAAuB;AAAA,IACjC,WAAArB;AAAA,IACA,iBAAAe;AAAA,EAAA,CACD;AAED,QAAMO,IAAUC,EAAmBR,CAAe,GAC5CS,IAAWC,EAAqBV,CAAe,GAC/Cb,IAAiB,OAAO,OAAOoB,CAAO,EAAE,IAAI,CAACI,MAAWA,EAAO,GAAG,GAElEC,IAAc5B,EAAkB;AAAA,IACpC,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAGK0B,IAAuC;AAAA,IAC3C,GAAGT,EAAa;AAAA,IAChB,SAAAG;AAAA,IACA,UAAAE;AAAA,IACA,GAAIL,EAAa,WAAW,EAAE,SAASA,EAAa,QAAA;AAAA,EAAQ;AAG9D,SAAO;AAAA,IACL,WAAWQ;AAAA,IACX,cAAcC;AAAA,EAAA;AAElB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSchemaGraphSchemaData.js","sources":["../../../src/api-playground-2/schemaGraph/getSchemaGraphSchemaData.ts"],"sourcesContent":["import type { SchemaTargetType } from '@mintlify/common';\nimport { SchemaGraphData } from '@mintlify/validation';\n\nimport { resolveSchemaWithDependencies } from '@/api-playground-2/schemaGraph/resolveSchemaWithDependencies';\nimport { ApiReferenceDataV2 } from '@/api-playground-2/types';\n\nexport function getSchemaGraphSchemaData({\n target,\n schemaGraphData,\n}: {\n target: SchemaTargetType;\n schemaGraphData: SchemaGraphData;\n}): ApiReferenceDataV2 {\n const resolvedData = resolveSchemaWithDependencies({\n schemaPath: `#/components/schemas/${target.name}`,\n schemaGraphData,\n });\n\n return {\n schemaData: resolvedData,\n };\n}\n"],"names":["getSchemaGraphSchemaData","target","schemaGraphData","resolveSchemaWithDependencies"],"mappings":";AAMO,SAASA,EAAyB;AAAA,EACvC,QAAAC;AAAA,EACA,iBAAAC;AACF,GAGuB;AAMrB,SAAO;AAAA,IACL,YANmBC,EAA8B;AAAA,MACjD,YAAY,wBAAwBF,EAAO,IAAI;AAAA,MAC/C,iBAAAC;AAAA,IAAA,CACD;AAAA,EAGa;AAEhB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"processExamples.js","sources":["../../../src/api-playground-2/schemaGraph/processExamples.ts"],"sourcesContent":["import type { MdxCodeExampleData } from '@mintlify/common';\nimport { ExampleObject, ExampleOrRefObject, MediaObject, SchemaObject } from '@mintlify/validation';\nimport parse from 'html-react-parser';\n\nimport type {\n ApiReferenceDataV2,\n CodeExample,\n SchemaGeneratedExample,\n} from '@/api-playground-2/types';\n\nimport { isSchemaObject } from './utils';\n\n// duplicated from shiki/index.ts\nexport function getLanguageFromClassName(className: string | undefined, fallback?: string): string {\n const match = /language-(\\w+)/.exec(className ?? '');\n return match ? match[1] ?? 'text' : fallback ?? 'text';\n}\n\nexport const mdxCodeExampleToExamples = (mdxCodeExampleData: MdxCodeExampleData): CodeExample[] => {\n const examples: CodeExample[] = [];\n const dropdown = mdxCodeExampleData.attributes?.some(\n (attr) => attr.name === 'dropdown' && attr.value !== 'false'\n );\n mdxCodeExampleData.children?.map((child) => {\n const jsx = parse(child.html ?? '');\n const lang =\n typeof jsx === 'object' && !Array.isArray(jsx) && jsx.type === 'pre'\n ? jsx.props.language ?? getLanguageFromClassName(jsx.props.className, child.filename)\n : undefined;\n examples.push({\n dropdown,\n language: lang,\n code: jsx,\n filename: child.filename,\n });\n });\n return examples;\n};\n\n// same logic as in OpenApiToEndpointConverter convertExamples\nexport const generateExamplesFromSchema = (\n content: Record<string, MediaObject>\n): Record<string, MediaObject> => {\n Object.entries(content).forEach(([contentType, mediaObject]) => {\n const examples: Record<string, SchemaGeneratedExample> = {};\n if (mediaObject.examples) {\n Object.entries(mediaObject.examples).forEach(\n ([exampleName, example]: [string, ExampleOrRefObject]) => {\n if (!('$ref' in example)) {\n examples[exampleName] = {\n title: exampleName,\n description: example.description,\n value: example.value,\n };\n }\n }\n );\n if (content[contentType]) {\n content[contentType].examples = examples;\n }\n } else if (mediaObject.example) {\n examples['Example'] = {\n title: 'Example',\n value: mediaObject.example,\n };\n if (content[contentType]) {\n content[contentType].examples = examples;\n }\n } else if (isSchemaObject(mediaObject.schema)) {\n examples['Example'] = generateExampleFromSchema(mediaObject.schema);\n if (content[contentType]) {\n content[contentType].examples = examples;\n }\n }\n });\n return content;\n};\n\nexport const generateExampleFromSchema = (schema: SchemaObject): SchemaGeneratedExample => {\n const example: SchemaGeneratedExample = {\n title: 'Example',\n value: undefined,\n };\n if (schema.example !== undefined) {\n example.value = schema.example;\n return example;\n }\n if (schema.default !== undefined) {\n example.value = schema.default;\n return example;\n }\n\n if (schema.enum) {\n example.value = schema.enum[0];\n return example;\n }\n\n // Handle oneOf - generate example from first option\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length > 0) {\n const firstOption = schema.oneOf[0];\n if (isSchemaObject(firstOption)) {\n return generateExampleFromSchema(firstOption);\n }\n }\n\n switch (schema.type) {\n case 'string':\n example.value = generateStringExample(schema);\n return example;\n case 'boolean':\n example.value = true;\n return example;\n case 'number':\n case 'integer':\n example.value = generateNumericExample(schema);\n return example;\n case 'object':\n example.value = Object.fromEntries(\n Object.entries(schema.properties ?? {}).map(([propName, subschema]) => [\n propName,\n \n generateExampleFromSchema(subschema as SchemaObject).value,\n ])\n );\n return example;\n case 'array':\n \n example.value = [generateExampleFromSchema(schema.items as SchemaObject).value];\n return example;\n default:\n example.value = '<unknown>';\n return example;\n }\n};\n\nconst generateNumericExample = (schema: SchemaObject): number => {\n // if schema type is integer, make sure example is integer\n const format: (n: number) => number = schema.type === 'integer' ? Math.floor : (n) => n;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n return format((schema.minimum + schema.maximum) / 2);\n } else if (schema.minimum !== undefined) {\n return format(schema.minimum + 1);\n } else if (schema.maximum !== undefined) {\n return 123 < schema.maximum ? 123 : format(schema.maximum - 1);\n } else {\n return 123;\n }\n};\n\nconst generateStringExample = (schema: SchemaObject): string => {\n switch (schema.format?.toLowerCase()) {\n case 'byte':\n case 'base64':\n return 'aSDinaTvuI8gbWludGxpZnk=';\n case 'date':\n return '2023-12-25';\n case 'date-time':\n return '2023-11-07T05:31:56Z';\n case 'email':\n return 'jsmith@example.com';\n case 'uuid':\n return '3c90c3cc-0d44-4b50-8888-8dd25736052a';\n case 'ipv4':\n return '127.0.0.1';\n case 'ipv6':\n return '2606:4700:3108::ac42:2835';\n default:\n return '<string>';\n }\n};\n\nexport const getFirstExampleValue = (\n content: Record<string, MediaObject>\n): ExampleObject | undefined => {\n const firstContentType = Object.keys(content)[0];\n if (firstContentType) {\n const contentTypeObject = content[firstContentType];\n const examples = Object.values(contentTypeObject?.examples ?? {});\n const firstExample = examples[0];\n if (firstExample && 'value' in firstExample) {\n return firstExample.value;\n }\n }\n return undefined;\n};\n\nexport const getFirstWebhookExample = (apiReferenceData: ApiReferenceDataV2): CodeExample[] => {\n const requestExamples: CodeExample[] = [];\n if (apiReferenceData.dependencies?.requestBody?.content) {\n const firstExample = getFirstExampleValue(apiReferenceData.dependencies.requestBody.content);\n if (firstExample) {\n requestExamples.push({\n language: 'json',\n filename: 'Example Request Body',\n code: JSON.stringify(firstExample.value, null, 2),\n });\n }\n }\n return requestExamples;\n};\n"],"names":["getLanguageFromClassName","className","fallback","match","mdxCodeExampleToExamples","mdxCodeExampleData","examples","dropdown","_a","attr","_b","child","jsx","parse","lang","generateExamplesFromSchema","content","contentType","mediaObject","exampleName","example","isSchemaObject","generateExampleFromSchema","schema","firstOption","generateStringExample","generateNumericExample","propName","subschema","format","n","getFirstExampleValue","firstContentType","contentTypeObject","firstExample","getFirstWebhookExample","apiReferenceData","requestExamples"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"processSecurityOptions.js","sources":["../../../src/api-playground-2/schemaGraph/processSecurityOptions.ts"],"sourcesContent":["import { UUID } from '@mintlify/validation';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n ApiReferenceDataV2,\n ResolvedSecurityObject,\n SecuritySchemeAndScope,\n ProcessedSecurityOption,\n} from '@/api-playground-2/types';\nimport type { ResolvedSchemaObject } from '@/api-playground-2/types';\n\n// Ronan left TODOs for supporting openIdConnect circa 2023 (but we do support this in mcp?) & we don't support all features of oauth2 in UI yet (circa 2025, no UI for selecting scopes)\nconst supportedSecurityTypes = ['apiKey', 'http', 'oauth2'];\n\n// docs.json security types are basic = http basic, bearer = http bearer, key = apiKey - see getSecurityOptionsForAuthMethod\n// all docs.json security types go in header, but only apiKey needs to specify that in scheme\n\nexport const getDocsJsonSecurityOptions = ({\n method,\n name,\n}: {\n method: string | undefined;\n name?: string;\n}): Record<UUID, ResolvedSecurityObject> | undefined => {\n const uuid = uuidv4();\n let securityRequirement: Record<UUID, ResolvedSecurityObject> | undefined = undefined;\n switch (method) {\n case 'basic':\n securityRequirement = {\n [uuid]: {\n Authorization: {\n type: 'http',\n scheme: 'basic',\n description:\n 'Basic authentication header of the form `Basic <encoded-value>`, where `<encoded-value>` is the base64-encoded string `username:password`.',\n },\n },\n };\n break;\n case 'bearer':\n securityRequirement = {\n [uuid]: {\n Authorization: {\n type: 'http',\n scheme: 'bearer',\n description:\n 'Bearer authentication header of the form `Bearer <token>`, where `<token>` is your auth token.',\n },\n },\n };\n break;\n case 'key':\n securityRequirement = {\n [uuid]: {\n Key: {\n name: name ?? 'Key',\n type: 'apiKey',\n in: 'header',\n },\n },\n };\n break;\n }\n return securityRequirement;\n};\n\nexport const processSecurityOptions = (\n apiReferenceData: ApiReferenceDataV2\n): ProcessedSecurityOption[] => {\n const securityOptions = apiReferenceData.dependencies?.security ?? {};\n if (Object.keys(securityOptions).length === 0) return [];\n const processedSecurityOptions: ProcessedSecurityOption[] = [];\n\n Object.entries(securityOptions).forEach(\n ([_id, securityScheme]: [UUID, ResolvedSecurityObject]) => {\n // this differs from SchemaConverter where we build the title from the security requirement scheme names\n // by converting underscore to spaces and joining with \"&\"\n // because 1. it's ugly, 2. it never dealt with camel case, and\n // 3. we either have a nice title specific to the API Key name or the scheme type consistently from OpenAPI or docs.json\n // if we really want the ugly titles back, we can uncoment this and pass it into the schemas as the title, and override the title in the heading to always be \"Authorization\" (but not the dropdown options)\n // const name = Object.keys(securityScheme)[0];\n // const title = name?.replace(/[_-]/g, ' ') ?? 'Authorization';\n const scheme = Object.values(securityScheme)[0];\n if (!scheme) return;\n // only process supported security schemes\n if (supportedSecurityTypes.includes(scheme.type)) {\n const schema = getSchemaForSecurityScheme(scheme);\n // don't add security options that don't have a schema for rendering\n if (schema) {\n processedSecurityOptions.push({ scheme, schema });\n }\n }\n }\n );\n\n return processedSecurityOptions;\n};\n\nexport const basicDescription =\n 'Basic authentication header of the form `Basic <encoded-value>`, where `<encoded-value>` is the base64-encoded string `username:password`.';\nexport const bearerDescription =\n 'Bearer authentication header of the form `Bearer <token>`, where `<token>` is your auth token.';\nexport const oauth2Description =\n 'The access token received from the authorization server in the OAuth 2.0 flow.';\n\n// TODO - Api Playground Refactor: by default we add required: true to these schemas\n// not sure if we correctly handle the case where operation has\n// - security [] to override global security requirements\n// or when there is a security: [{}]\n// empty object option in array of security requirements on operation also makes it optional\nconst getSchemaForSecurityScheme = (\n scheme: SecuritySchemeAndScope\n): ResolvedSchemaObject | undefined => {\n switch (scheme.type) {\n case 'apiKey':\n return {\n title: scheme.name,\n type: 'string',\n description: scheme.description,\n isRequired: true,\n default: scheme['x-default'],\n };\n case 'http':\n return scheme.scheme === 'basic'\n ? {\n title: 'Basic Auth',\n type: 'object',\n description: scheme.description ?? basicDescription,\n isRequired: true,\n properties: {\n username: { type: 'string' },\n password: { type: 'string' },\n },\n additionalProperties: false,\n default: scheme['x-default'],\n }\n : {\n title: 'Bearer Auth',\n type: 'string',\n isRequired: true,\n description: scheme.description ?? bearerDescription,\n format: 'bearer',\n default: scheme['x-default'],\n };\n case 'oauth2':\n return {\n title: 'OAuth2 Auth',\n type: 'string',\n isRequired: true,\n description: scheme.description ?? oauth2Description,\n format: 'bearer',\n };\n default:\n return undefined;\n }\n};\n"],"names":["supportedSecurityTypes","getDocsJsonSecurityOptions","method","name","uuid","uuidv4","securityRequirement","processSecurityOptions","apiReferenceData","securityOptions","_a","processedSecurityOptions","_id","securityScheme","scheme","schema","getSchemaForSecurityScheme","basicDescription","bearerDescription","oauth2Description"],"mappings":";AAYA,MAAMA,IAAyB,CAAC,UAAU,QAAQ,QAAQ,GAK7CC,IAA6B,CAAC;AAAA,EACzC,QAAAC;AAAA,EACA,MAAAC;AACF,MAGwD;AACtD,QAAMC,IAAOC,EAAA;AACb,MAAIC;AACJ,UAAQJ,GAAA;AAAA,IACN,KAAK;AACH,MAAAI,IAAsB;AAAA,QACpB,CAACF,CAAI,GAAG;AAAA,UACN,eAAe;AAAA,YACb,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,aACE;AAAA,UAAA;AAAA,QACJ;AAAA,MACF;AAEF;AAAA,IACF,KAAK;AACH,MAAAE,IAAsB;AAAA,QACpB,CAACF,CAAI,GAAG;AAAA,UACN,eAAe;AAAA,YACb,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,aACE;AAAA,UAAA;AAAA,QACJ;AAAA,MACF;AAEF;AAAA,IACF,KAAK;AACH,MAAAE,IAAsB;AAAA,QACpB,CAACF,CAAI,GAAG;AAAA,UACN,KAAK;AAAA,YACH,MAAMD,KAAQ;AAAA,YACd,MAAM;AAAA,YACN,IAAI;AAAA,UAAA;AAAA,QACN;AAAA,MACF;AAEF;AAAA,EAAA;AAEJ,SAAOG;AACT,GAEaC,IAAyB,CACpCC,MAC8B;;AAC9B,QAAMC,MAAkBC,IAAAF,EAAiB,iBAAjB,gBAAAE,EAA+B,aAAY,CAAA;AACnE,MAAI,OAAO,KAAKD,CAAe,EAAE,WAAW,UAAU,CAAA;AACtD,QAAME,IAAsD,CAAA;AAE5D,gBAAO,QAAQF,CAAe,EAAE;AAAA,IAC9B,CAAC,CAACG,GAAKC,CAAc,MAAsC;AAQzD,YAAMC,IAAS,OAAO,OAAOD,CAAc,EAAE,CAAC;AAC9C,UAAKC,KAEDd,EAAuB,SAASc,EAAO,IAAI,GAAG;AAChD,cAAMC,IAASC,EAA2BF,CAAM;AAEhD,QAAIC,KACFJ,EAAyB,KAAK,EAAE,QAAAG,GAAQ,QAAAC,EAAA,CAAQ;AAAA,MAEpD;AAAA,IACF;AAAA,EAAA,GAGKJ;AACT,GAEaM,IACX,8IACWC,IACX,kGACWC,IACX,kFAOIH,IAA6B,CACjCF,MACqC;AACrC,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO;AAAA,QACL,OAAOA,EAAO;AAAA,QACd,MAAM;AAAA,QACN,aAAaA,EAAO;AAAA,QACpB,YAAY;AAAA,QACZ,SAASA,EAAO,WAAW;AAAA,MAAA;AAAA,IAE/B,KAAK;AACH,aAAOA,EAAO,WAAW,UACrB;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAaA,EAAO,eAAeG;AAAA,QACnC,YAAY;AAAA,QACZ,YAAY;AAAA,UACV,UAAU,EAAE,MAAM,SAAA;AAAA,UAClB,UAAU,EAAE,MAAM,SAAA;AAAA,QAAS;AAAA,QAE7B,sBAAsB;AAAA,QACtB,SAASH,EAAO,WAAW;AAAA,MAAA,IAE7B;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAaA,EAAO,eAAeI;AAAA,QACnC,QAAQ;AAAA,QACR,SAASJ,EAAO,WAAW;AAAA,MAAA;AAAA,IAEnC,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAaA,EAAO,eAAeK;AAAA,QACnC,QAAQ;AAAA,MAAA;AAAA,IAEZ;AACE;AAAA,EAAO;AAEb;"}