zudoku 0.0.0-e88b02e → 0.0.0-e8a949d
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.
- package/dist/app/demo.js +1 -1
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.js +1 -15
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.js +1 -2
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/main.d.ts +1 -1
- package/dist/app/sentry.js +1 -1
- package/dist/app/sentry.js.map +1 -1
- package/dist/app/standalone.js +1 -1
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/cli.js +0 -2
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cmds/build.js +1 -0
- package/dist/cli/cmds/build.js.map +1 -1
- package/dist/cli/cmds/dev.js +5 -0
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/dev/handler.d.ts +1 -0
- package/dist/cli/dev/handler.js +1 -1
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/loader.d.ts +9 -1
- package/dist/config/loader.js +44 -7
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/common.d.ts +186 -152
- package/dist/config/validators/common.js +6 -2
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +1 -1
- package/dist/config/validators/validate.d.ts +123 -109
- package/dist/lib/authentication/components/CallbackHandler.js +1 -1
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/SignIn.js +1 -1
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignOut.js +1 -1
- package/dist/lib/authentication/components/SignOut.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +7 -0
- package/dist/lib/authentication/providers/openid.js +1 -0
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/components/AnchorLink.d.ts +1 -1
- package/dist/lib/components/AnchorLink.js +1 -1
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Bootstrap.d.ts +1 -2
- package/dist/lib/components/Bootstrap.js +3 -3
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/Header.js +2 -2
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Layout.js +2 -2
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Markdown.js +1 -1
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +1 -1
- package/dist/lib/components/NotFoundPage.js +1 -1
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/components/ReactMarkdown.d.ts +29 -0
- package/dist/lib/components/ReactMarkdown.js +182 -0
- package/dist/lib/components/ReactMarkdown.js.map +1 -0
- package/dist/lib/components/SlotletProvider.d.ts +2 -2
- package/dist/lib/components/TopNavigation.js +1 -1
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Zudoku.js +1 -1
- package/dist/lib/components/Zudoku.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.js +1 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +20 -16
- package/dist/lib/components/index.js +7 -3
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/Sidebar.js +1 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +0 -9
- package/dist/lib/components/navigation/SidebarBadge.js +0 -9
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.js +1 -1
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.js +1 -1
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +3 -5
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/errors/RouterError.js +1 -1
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.d.ts +1 -0
- package/dist/lib/oas/parser/dereference/index.js +6 -3
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +2 -6
- package/dist/lib/plugins/api-catalog/Catalog.js +22 -15
- package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -1
- package/dist/lib/plugins/api-catalog/index.d.ts +8 -1
- package/dist/lib/plugins/api-catalog/index.js +2 -2
- package/dist/lib/plugins/api-catalog/index.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.js +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +1 -1
- package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +1 -0
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +10 -34
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +14 -4
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/Route.d.ts +4 -2
- package/dist/lib/plugins/openapi/Route.js +22 -2
- package/dist/lib/plugins/openapi/Route.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +3 -13
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +10 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
- package/dist/lib/plugins/openapi/context.d.ts +3 -3
- package/dist/lib/plugins/openapi/index.js +18 -17
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +19 -0
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +7 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +1 -1
- package/dist/lib/plugins/openapi/util/methodToColor.d.ts +20 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js +24 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js.map +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.d.ts +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js +27 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js.map +1 -0
- package/dist/lib/plugins/redirect/index.js +1 -1
- package/dist/lib/plugins/redirect/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +22 -3
- package/dist/lib/plugins/search-inkeep/index.js +41 -5
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +3 -4
- package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
- package/dist/lib/util/MdxComponents.d.ts +16 -16
- package/dist/lib/util/MdxComponents.js +1 -3
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/createVariantComponent.d.ts +2 -2
- package/dist/lib/util/useExposedProps.js +1 -1
- package/dist/lib/util/useExposedProps.js.map +1 -1
- package/dist/lib/util/useOnScreen.d.ts +1 -1
- package/dist/lib/util/useScrollToAnchor.js +1 -1
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/lib/util/useScrollToTop.js +1 -1
- package/dist/lib/util/useScrollToTop.js.map +1 -1
- package/dist/vite/build.js +4 -1
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +5 -1
- package/dist/vite/config.js +50 -25
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +4 -1
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/css/collect.d.ts +2 -0
- package/dist/vite/css/collect.js +27 -0
- package/dist/vite/css/collect.js.map +1 -0
- package/dist/vite/css/plugin.d.ts +5 -0
- package/dist/vite/css/plugin.js +79 -0
- package/dist/vite/css/plugin.js.map +1 -0
- package/dist/vite/dev-server.d.ts +1 -0
- package/dist/vite/dev-server.js +16 -6
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/plugin-api.js +52 -19
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-mdx.js +2 -0
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-theme-css.js +53 -1
- package/dist/vite/plugin-theme-css.js.map +1 -1
- package/dist/vite/plugin.js +4 -0
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{AnchorLink-BR0MvI7n.js → AnchorLink-DFZZbmvr.js} +13 -14
- package/lib/AnchorLink-DFZZbmvr.js.map +1 -0
- package/lib/{AuthenticationPlugin-D0Em0SwR.js → AuthenticationPlugin-DVLEc6cm.js} +15 -16
- package/lib/AuthenticationPlugin-DVLEc6cm.js.map +1 -0
- package/lib/{Button-jK0EsymC.js → Button-DeAoTouo.js} +4 -4
- package/lib/{Button-jK0EsymC.js.map → Button-DeAoTouo.js.map} +1 -1
- package/lib/{CategoryHeading-Bb9dqxD3.js → CategoryHeading-CBconmtI.js} +3 -3
- package/lib/{CategoryHeading-Bb9dqxD3.js.map → CategoryHeading-CBconmtI.js.map} +1 -1
- package/lib/ClientOnly-E7hGysn1.js.map +1 -1
- package/lib/{Dialog-k70Qfukb.js → Dialog-Bxv1yEIg.js} +3 -3
- package/lib/{Dialog-k70Qfukb.js.map → Dialog-Bxv1yEIg.js.map} +1 -1
- package/lib/{Markdown-CdkU5HcM.js → Markdown-CZDLNOFc.js} +13235 -13225
- package/lib/Markdown-CZDLNOFc.js.map +1 -0
- package/lib/{MdxPage-ChziqNPp.js → MdxPage-DKMbBROv.js} +25 -25
- package/lib/MdxPage-DKMbBROv.js.map +1 -0
- package/lib/OperationList-CqLL5P5l.js +5068 -0
- package/lib/OperationList-CqLL5P5l.js.map +1 -0
- package/lib/Route-DYwKZ_c_.js +35 -0
- package/lib/Route-DYwKZ_c_.js.map +1 -0
- package/lib/{Select-O9ZM3ZgX.js → Select-B_IxRUUC.js} +5 -5
- package/lib/{Select-O9ZM3ZgX.js.map → Select-B_IxRUUC.js.map} +1 -1
- package/lib/SlotletProvider-pfc9oejW.js +221 -0
- package/lib/SlotletProvider-pfc9oejW.js.map +1 -0
- package/lib/{Spinner-3cQDBVGr.js → Spinner-DuxJLLNE.js} +2 -2
- package/lib/{Spinner-3cQDBVGr.js.map → Spinner-DuxJLLNE.js.map} +1 -1
- package/lib/StaggeredRender-DgsamH_G.js +17 -0
- package/lib/StaggeredRender-DgsamH_G.js.map +1 -0
- package/lib/{SyntaxHighlight-C31iouiO.js → SyntaxHighlight-Bz-lOJtH.js} +8 -10
- package/lib/{SyntaxHighlight-C31iouiO.js.map → SyntaxHighlight-Bz-lOJtH.js.map} +1 -1
- package/lib/{utils-DcpDOncX.js → ZudokuContext-hmLMUdf2.js} +54 -55
- package/lib/ZudokuContext-hmLMUdf2.js.map +1 -0
- package/lib/assets/{index-B_Jk_Yzp.js → index-C7jnHK4b.js} +218 -197
- package/lib/assets/index-C7jnHK4b.js.map +1 -0
- package/lib/assets/{worker-C_2va8B8.js → worker-DV9Ecqy9.js} +5267 -4887
- package/lib/assets/worker-DV9Ecqy9.js.map +1 -0
- package/lib/chunk-D52XG6IA-Dl7HLe6j.js +1823 -0
- package/lib/chunk-D52XG6IA-Dl7HLe6j.js.map +1 -0
- package/lib/{cn-BmFQLtkS.js → cn-qaFjX9_3.js} +2 -2
- package/lib/cn-qaFjX9_3.js.map +1 -0
- package/lib/{context-D1nXWxm7.js → context-h_UkBLvr.js} +2 -2
- package/lib/context-h_UkBLvr.js.map +1 -0
- package/lib/{createServer-BCAHdrpE.js → createServer-C4C0OO0m.js} +4804 -4462
- package/lib/createServer-C4C0OO0m.js.map +1 -0
- package/lib/{hook-hEqe7fPB.js → hook-CHq7pFyz.js} +3 -3
- package/lib/{hook-hEqe7fPB.js.map → hook-CHq7pFyz.js.map} +1 -1
- package/lib/{index-CkwDvuPt.js → index-CBXSgjaE.js} +259 -238
- package/lib/index-CBXSgjaE.js.map +1 -0
- package/lib/index-CPNSgwSb.js +36 -0
- package/lib/index-CPNSgwSb.js.map +1 -0
- package/lib/index-DyBL--Kz.js +826 -0
- package/lib/index-DyBL--Kz.js.map +1 -0
- package/lib/{index-DjB6H4GT.js → index-DzRORsY1.js} +444 -441
- package/lib/index-DzRORsY1.js.map +1 -0
- package/lib/index-LNp6rxyU.js.map +1 -1
- package/lib/index.esm-BSV1C092.js +692 -0
- package/lib/{index.esm-Bm8pj-bc.js.map → index.esm-BSV1C092.js.map} +1 -1
- package/lib/index.esm-BnnBRKJX.js +1214 -0
- package/lib/index.esm-BnnBRKJX.js.map +1 -0
- package/lib/invariant-Caa8-XvF.js.map +1 -1
- package/lib/jsx-runtime-Dx-03ztt.js +446 -0
- package/lib/jsx-runtime-Dx-03ztt.js.map +1 -0
- package/lib/post-processors/removeExtensions.js.map +1 -1
- package/lib/post-processors/removePaths.js.map +1 -1
- package/lib/post-processors/traverse.js.map +1 -1
- package/lib/prism-csharp.min-DUwvItt4.js +63 -0
- package/lib/{prism-csharp.min-Yizuc34Y.js.map → prism-csharp.min-DUwvItt4.js.map} +1 -1
- package/lib/prism-java.min-BtgBR4yd.js +35 -0
- package/lib/{prism-java.min-d5iT_mOd.js.map → prism-java.min-BtgBR4yd.js.map} +1 -1
- package/lib/prism-markup-BNGj0Tvm.js.map +1 -1
- package/lib/prism-ruby.min-DeDXCp1r.js +38 -0
- package/lib/{prism-ruby.min-C7LwcKyz.js.map → prism-ruby.min-DeDXCp1r.js.map} +1 -1
- package/lib/prism-typescript.min-CD7H2IYQ.js +34 -0
- package/lib/{prism-typescript.min-oSVeWCAd.js.map → prism-typescript.min-CD7H2IYQ.js.map} +1 -1
- package/lib/state-CFQsUZUP.js +202 -0
- package/lib/state-CFQsUZUP.js.map +1 -0
- package/lib/ui/Accordion.js +2 -2
- package/lib/ui/Accordion.js.map +1 -1
- package/lib/ui/ActionButton.js +4 -4
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/ui/Alert.js +3 -3
- package/lib/ui/Alert.js.map +1 -1
- package/lib/ui/AlertDialog.js +2 -2
- package/lib/ui/AlertDialog.js.map +1 -1
- package/lib/ui/Badge.js +3 -3
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Breadcrumb.js +2 -2
- package/lib/ui/Breadcrumb.js.map +1 -1
- package/lib/ui/Button.js +3 -3
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/Callout.js +2 -2
- package/lib/ui/Callout.js.map +1 -1
- package/lib/ui/Card.js +2 -2
- package/lib/ui/Card.js.map +1 -1
- package/lib/ui/Carousel.js +407 -401
- package/lib/ui/Carousel.js.map +1 -1
- package/lib/ui/Checkbox.js +2 -2
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/Command.js +111 -108
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Dialog.js +2 -2
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/Drawer.js +2 -2
- package/lib/ui/Drawer.js.map +1 -1
- package/lib/ui/DropdownMenu.js +2 -2
- package/lib/ui/DropdownMenu.js.map +1 -1
- package/lib/ui/Form.js +3 -3
- package/lib/ui/Form.js.map +1 -1
- package/lib/ui/HoverCard.js +2 -2
- package/lib/ui/Input.js +2 -2
- package/lib/ui/Input.js.map +1 -1
- package/lib/ui/Label.js +3 -3
- package/lib/ui/Pagination.js +2 -2
- package/lib/ui/Pagination.js.map +1 -1
- package/lib/ui/Popover.js +2 -2
- package/lib/ui/Popover.js.map +1 -1
- package/lib/ui/Progress.js +2 -2
- package/lib/ui/Progress.js.map +1 -1
- package/lib/ui/RadioGroup.js +2 -2
- package/lib/ui/RadioGroup.js.map +1 -1
- package/lib/ui/ScrollArea.js +2 -2
- package/lib/ui/ScrollArea.js.map +1 -1
- package/lib/ui/Select.js +2 -2
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/Skeleton.js +2 -2
- package/lib/ui/Skeleton.js.map +1 -1
- package/lib/ui/Slider.js +2 -2
- package/lib/ui/Switch.js +2 -2
- package/lib/ui/Switch.js.map +1 -1
- package/lib/ui/Tabs.js +2 -2
- package/lib/ui/Textarea.js +2 -2
- package/lib/ui/Textarea.js.map +1 -1
- package/lib/ui/Toggle.js +3 -3
- package/lib/ui/Toggle.js.map +1 -1
- package/lib/ui/ToggleGroup.js +2 -2
- package/lib/ui/ToggleGroup.js.map +1 -1
- package/lib/ui/Tooltip.js +2 -2
- package/lib/useExposedProps-DE9lR6MF.js +9 -0
- package/lib/useExposedProps-DE9lR6MF.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +369 -366
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +722 -959
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.openapi-worker.js +1 -1
- package/lib/zudoku.openapi-worker.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +81 -79
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +15 -16
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +4 -4
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +2 -2
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +5 -5
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +53 -24
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/package.json +52 -47
- package/src/app/demo.tsx +1 -1
- package/src/app/entry.client.tsx +1 -15
- package/src/app/entry.server.tsx +2 -2
- package/src/app/main.tsx +1 -1
- package/src/app/sentry.ts +1 -1
- package/src/app/standalone.tsx +1 -1
- package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
- package/src/lib/authentication/components/SignIn.tsx +1 -1
- package/src/lib/authentication/components/SignOut.tsx +1 -1
- package/src/lib/authentication/providers/openid.tsx +5 -3
- package/src/lib/components/AnchorLink.tsx +1 -1
- package/src/lib/components/Bootstrap.tsx +4 -6
- package/src/lib/components/Header.tsx +2 -2
- package/src/lib/components/Layout.tsx +2 -2
- package/src/lib/components/Markdown.tsx +1 -1
- package/src/lib/components/MobileTopNavigation.tsx +1 -1
- package/src/lib/components/NotFoundPage.tsx +1 -1
- package/src/lib/components/ReactMarkdown.license.txt +21 -0
- package/src/lib/components/ReactMarkdown.tsx +264 -0
- package/src/lib/components/SlotletProvider.tsx +1 -1
- package/src/lib/components/TopNavigation.tsx +1 -1
- package/src/lib/components/Zudoku.tsx +1 -1
- package/src/lib/components/context/ZudokuContext.ts +1 -1
- package/src/lib/components/index.ts +8 -4
- package/src/lib/components/navigation/Sidebar.tsx +1 -1
- package/src/lib/components/navigation/SidebarBadge.tsx +0 -10
- package/src/lib/components/navigation/SidebarCategory.tsx +1 -1
- package/src/lib/components/navigation/SidebarItem.tsx +1 -1
- package/src/lib/components/navigation/utils.ts +1 -1
- package/src/lib/core/plugins.ts +3 -7
- package/src/lib/errors/RouterError.tsx +1 -1
- package/src/lib/oas/parser/dereference/index.ts +9 -4
- package/src/lib/plugins/api-catalog/Catalog.tsx +59 -60
- package/src/lib/plugins/api-catalog/index.tsx +14 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +1 -1
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +1 -1
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +1 -1
- package/src/lib/plugins/api-keys/index.tsx +1 -1
- package/src/lib/plugins/custom-pages/index.tsx +1 -1
- package/src/lib/plugins/markdown/MdxPage.tsx +1 -1
- package/src/lib/plugins/markdown/index.tsx +2 -1
- package/src/lib/plugins/openapi/OperationList.tsx +45 -50
- package/src/lib/plugins/openapi/OperationListItem.tsx +31 -2
- package/src/lib/plugins/openapi/Route.tsx +41 -9
- package/src/lib/plugins/openapi/Sidecar.tsx +3 -17
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +13 -1
- package/src/lib/plugins/openapi/context.tsx +2 -2
- package/src/lib/plugins/openapi/index.tsx +37 -28
- package/src/lib/plugins/openapi/interfaces.ts +22 -1
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +25 -1
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -0
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -0
- package/src/lib/plugins/redirect/index.tsx +1 -1
- package/src/lib/plugins/search-inkeep/index.tsx +78 -23
- package/src/lib/plugins/search-inkeep/inkeep.ts +3 -9
- package/src/lib/util/MdxComponents.tsx +1 -3
- package/src/lib/util/createVariantComponent.tsx +2 -2
- package/src/lib/util/useExposedProps.tsx +1 -1
- package/src/lib/util/useScrollToAnchor.ts +1 -1
- package/src/lib/util/useScrollToTop.ts +1 -1
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.d.ts +0 -2
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js +0 -3
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js.map +0 -1
- package/lib/AnchorLink-BR0MvI7n.js.map +0 -1
- package/lib/AuthenticationPlugin-D0Em0SwR.js.map +0 -1
- package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
- package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
- package/lib/Markdown-CdkU5HcM.js.map +0 -1
- package/lib/MdxPage-ChziqNPp.js.map +0 -1
- package/lib/OperationList-CQKkyrZH.js +0 -4706
- package/lib/OperationList-CQKkyrZH.js.map +0 -1
- package/lib/Route-DlG_HTMu.js +0 -11
- package/lib/Route-DlG_HTMu.js.map +0 -1
- package/lib/SidebarBadge-DxFJcJ6V.js +0 -51
- package/lib/SidebarBadge-DxFJcJ6V.js.map +0 -1
- package/lib/SlotletProvider-D77pO-fA.js +0 -252
- package/lib/SlotletProvider-D77pO-fA.js.map +0 -1
- package/lib/assets/index-B_Jk_Yzp.js.map +0 -1
- package/lib/assets/worker-C_2va8B8.js.map +0 -1
- package/lib/cn-BmFQLtkS.js.map +0 -1
- package/lib/context-D1nXWxm7.js.map +0 -1
- package/lib/createServer-BCAHdrpE.js.map +0 -1
- package/lib/index-BuAyrJe3.js +0 -46
- package/lib/index-BuAyrJe3.js.map +0 -1
- package/lib/index-CkwDvuPt.js.map +0 -1
- package/lib/index-Czzd9rjU.js +0 -899
- package/lib/index-Czzd9rjU.js.map +0 -1
- package/lib/index-DjB6H4GT.js.map +0 -1
- package/lib/index-Yn8c3UWE.js +0 -921
- package/lib/index-Yn8c3UWE.js.map +0 -1
- package/lib/index.esm-Bm8pj-bc.js +0 -675
- package/lib/index.esm-C5mr_sKO.js +0 -1193
- package/lib/index.esm-C5mr_sKO.js.map +0 -1
- package/lib/jsx-runtime-B6kdoens.js +0 -635
- package/lib/jsx-runtime-B6kdoens.js.map +0 -1
- package/lib/object_hash-CvlLgU-M.js +0 -785
- package/lib/object_hash-CvlLgU-M.js.map +0 -1
- package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
- package/lib/prism-java.min-d5iT_mOd.js +0 -7
- package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
- package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
- package/lib/router-lfyopgBI.js +0 -3024
- package/lib/router-lfyopgBI.js.map +0 -1
- package/lib/state-tsXBLONe.js +0 -203
- package/lib/state-tsXBLONe.js.map +0 -1
- package/lib/useExposedProps-CTPtylCV.js +0 -10
- package/lib/useExposedProps-CTPtylCV.js.map +0 -1
- package/lib/utils-DcpDOncX.js.map +0 -1
- package/src/lib/plugins/search-inkeep/InkeepCustomTrigger.tsx +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Czzd9rjU.js","sources":["../../../node_modules/.pnpm/react-router@6.27.0_react@18.3.1/node_modules/react-router/dist/index.js"],"sourcesContent":["/**\n * React Router v6.27.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // `<Routes>`\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n future,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex,\n future\n } = _ref3;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nfunction Navigate(_ref4) {\n let {\n to,\n replace,\n state,\n relative\n } = _ref4;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n future,\n static: isStatic\n } = React.useContext(NavigationContext);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!isStatic, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(to, UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath), locationPathname, relative === \"path\");\n let jsonPath = JSON.stringify(path);\n React.useEffect(() => navigate(JSON.parse(jsonPath), {\n replace,\n state,\n relative\n }), [navigate, jsonPath, relative, replace, state]);\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false) ;\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nfunction Router(_ref5) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false,\n future\n } = _ref5;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(() => ({\n basename,\n navigator,\n static: staticProp,\n future: _extends({\n v7_relativeSplatPath: false\n }, future)\n }), [basename, future, navigator, staticProp]);\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n if (locationContext == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n children: children,\n value: locationContext\n }));\n}\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nfunction Routes(_ref6) {\n let {\n children,\n location\n } = _ref6;\n return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n let {\n children,\n errorElement,\n resolve\n } = _ref7;\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus = /*#__PURE__*/function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n return AwaitRenderStatus;\n}(AwaitRenderStatus || {});\nconst neverSettledPromise = new Promise(() => {});\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = \"_error\" in promise ? AwaitRenderStatus.error : \"_data\" in promise ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: errorElement\n });\n }\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait(_ref8) {\n let {\n children\n } = _ref8;\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n let routes = [];\n React.Children.forEach(children, (element, index) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n return;\n }\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children, treePath);\n }\n routes.push(route);\n });\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.element) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n element: /*#__PURE__*/React.createElement(route.Component),\n Component: undefined\n });\n }\n if (route.HydrateFallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.hydrateFallbackElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" + \"`HydrateFallback` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: /*#__PURE__*/React.createElement(route.HydrateFallback),\n HydrateFallback: undefined\n });\n }\n if (route.ErrorBoundary) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.errorElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined\n });\n }\n return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createMemoryHistory({\n initialEntries: opts == null ? void 0 : opts.initialEntries,\n initialIndex: opts == null ? void 0 : opts.initialIndex\n }),\n hydrationData: opts == null ? void 0 : opts.hydrationData,\n routes,\n mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation\n }).initialize();\n}\n\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n"],"names":["_extends","target","i","source","key","DataRouterContext","React","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","to","_temp","relative","useInRouterContext","UNSAFE_invariant","basename","navigator","hash","pathname","search","useResolvedPath","joinedPathname","joinPaths","useLocation","useNavigationType","useMatch","pattern","matchPath","UNSAFE_decodePath","navigateEffectWarning","useIsomorphicLayoutEffect","cb","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","future","matches","locationPathname","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","options","UNSAFE_warning","path","resolveTo","OutletContext","useOutletContext","useOutlet","context","outlet","useParams","routeMatch","_temp2","useRoutes","routes","locationArg","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","parentPath","warningOnce","locationFromContext","location","_parsedLocationArg$pa","parsedLocationArg","parsePath","remainingPathname","parentSegments","matchRoutes","renderedMatches","_renderMatches","match","Action","DefaultErrorComponent","error","useRouteError","message","isRouteErrorResponse","stack","lightgrey","preStyles","codeStyles","devInfo","defaultErrorElement","RenderErrorBoundary","props","state","errorInfo","RenderedRoute","_ref","routeContext","children","_dataRouterState","_future","errors","errorIndex","m","renderFallback","fallbackIndex","loaderData","needsToRunLoader","index","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","getChildren","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","useDataRouterState","useRouteContext","route","useCurrentRouteId","thisRoute","useRouteId","useNavigation","useRevalidator","useMatches","UNSAFE_convertRouteMatchToUiMatch","useLoaderData","routeId","useRouteLoaderData","useActionData","_state$errors","useAsyncValue","value","useAsyncError","blockerId","useBlocker","shouldBlock","router","blockerKey","setBlockerKey","blockerFunction","arg","currentLocation","nextLocation","historyAction","stripBasename","IDLE_BLOCKER","id","alreadyWarned","cond","START_TRANSITION","startTransitionImpl","RouterProvider","fallbackElement","setStateImpl","v7_startTransition","setState","newState","n","opts","Router","DataRoutes","_ref2","MemoryRouter","_ref3","initialEntries","initialIndex","historyRef","createMemoryHistory","history","Navigate","_ref4","replace","isStatic","navigate","jsonPath","Outlet","Route","_props","_ref5","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","Await","_ref7","resolve","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","promise","status","renderError","data","AbortedDeferredError","_ref8","toRender","element","treePath","renderMatches","mapRouteProperties","updates","createMemoryRouter","createRouter"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DjB6H4GT.js","sources":["../src/lib/plugins/openapi/graphql/graphql.ts","../src/lib/plugins/openapi/graphql/gql.ts","../../../node_modules/.pnpm/layerr@3.0.0/node_modules/layerr/dist/error.js","../../../node_modules/.pnpm/layerr@3.0.0/node_modules/layerr/dist/global.js","../../../node_modules/.pnpm/layerr@3.0.0/node_modules/layerr/dist/tools.js","../../../node_modules/.pnpm/layerr@3.0.0/node_modules/layerr/dist/layerr.js","../../../node_modules/.pnpm/ulidx@2.4.1/node_modules/ulidx/dist/browser/index.js","../src/lib/plugins/openapi/client/GraphQLClient.tsx","../src/lib/util/pastellize.ts","../src/lib/plugins/openapi/ColorizedParam.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/util/createVariantComponent.tsx","../src/lib/plugins/openapi/playground/InlineInput.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/SimpleSelect.tsx","../src/lib/plugins/openapi/playground/ResponseTab.tsx","../src/lib/plugins/openapi/playground/Playground.tsx","../src/lib/plugins/openapi/playground/PlaygroundDialog.tsx","../src/lib/plugins/openapi/index.tsx"],"sourcesContent":["/* eslint-disable */\nimport type { DocumentTypeDecoration } from \"@graphql-typed-document-node/core\";\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSON: { input: any; output: any };\n /** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSONObject: { input: any; output: any };\n};\n\nexport type EncodingItem = {\n __typename?: \"EncodingItem\";\n allowReserved?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n contentType?: Maybe<Scalars[\"String\"][\"output\"]>;\n explode?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n headers?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n style?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type ExampleItem = {\n __typename?: \"ExampleItem\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n externalValue?: Maybe<Scalars[\"String\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n value?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n};\n\nexport type MediaTypeObject = {\n __typename?: \"MediaTypeObject\";\n encoding?: Maybe<Array<EncodingItem>>;\n examples?: Maybe<Array<ExampleItem>>;\n mediaType: Scalars[\"String\"][\"output\"];\n schema?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n};\n\nexport type OperationItem = {\n __typename?: \"OperationItem\";\n contentTypes: Array<Scalars[\"String\"][\"output\"]>;\n deprecated?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n method: Scalars[\"String\"][\"output\"];\n operationId?: Maybe<Scalars[\"String\"][\"output\"]>;\n parameters?: Maybe<Array<ParameterItem>>;\n path: Scalars[\"String\"][\"output\"];\n requestBody?: Maybe<RequestBodyObject>;\n responses: Array<ResponseItem>;\n slug: Scalars[\"String\"][\"output\"];\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n tags?: Maybe<Array<TagItem>>;\n};\n\nexport type ParameterIn = \"cookie\" | \"header\" | \"path\" | \"query\";\n\nexport type ParameterItem = {\n __typename?: \"ParameterItem\";\n allowEmptyValue?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n allowReserved?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n deprecated?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n examples?: Maybe<Array<ExampleItem>>;\n explode?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n in: ParameterIn;\n name: Scalars[\"String\"][\"output\"];\n required?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n schema?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n style?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type PathItem = {\n __typename?: \"PathItem\";\n methods: Array<Scalars[\"String\"][\"output\"]>;\n path: Scalars[\"String\"][\"output\"];\n};\n\nexport type Query = {\n __typename?: \"Query\";\n schema: Schema;\n};\n\nexport type QuerySchemaArgs = {\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n};\n\nexport type RequestBodyObject = {\n __typename?: \"RequestBodyObject\";\n content?: Maybe<Array<MediaTypeObject>>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n required?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n};\n\nexport type ResponseItem = {\n __typename?: \"ResponseItem\";\n content?: Maybe<Array<MediaTypeObject>>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n headers?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n links?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n statusCode: Scalars[\"String\"][\"output\"];\n};\n\nexport type Schema = {\n __typename?: \"Schema\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n openapi: Scalars[\"String\"][\"output\"];\n operations: Array<OperationItem>;\n paths: Array<PathItem>;\n servers: Array<Server>;\n tags: Array<SchemaTag>;\n title: Scalars[\"String\"][\"output\"];\n url: Scalars[\"String\"][\"output\"];\n version: Scalars[\"String\"][\"output\"];\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type SchemaOperationsArgs = {\n method?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n operationId?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n path?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n tag?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type SchemaTagsArgs = {\n name?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type SchemaTag = {\n __typename?: \"SchemaTag\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n operations: Array<OperationItem>;\n};\n\nexport type SchemaType = \"file\" | \"raw\" | \"url\";\n\nexport type Server = {\n __typename?: \"Server\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n url: Scalars[\"String\"][\"output\"];\n};\n\nexport type TagItem = {\n __typename?: \"TagItem\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n};\n\nexport type ServersQueryQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type ServersQueryQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n url: string;\n servers: Array<{ __typename?: \"Server\"; url: string }>;\n };\n};\n\nexport type OperationsFragmentFragment = {\n __typename?: \"OperationItem\";\n slug: string;\n summary?: string | null;\n method: string;\n description?: string | null;\n operationId?: string | null;\n contentTypes: Array<string>;\n path: string;\n parameters?: Array<{\n __typename?: \"ParameterItem\";\n name: string;\n in: ParameterIn;\n description?: string | null;\n required?: boolean | null;\n schema?: any | null;\n style?: string | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n }> | null;\n requestBody?: {\n __typename?: \"RequestBodyObject\";\n description?: string | null;\n required?: boolean | null;\n content?: Array<{\n __typename?: \"MediaTypeObject\";\n mediaType: string;\n schema?: any | null;\n encoding?: Array<{ __typename?: \"EncodingItem\"; name: string }> | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n }> | null;\n } | null;\n responses: Array<{\n __typename?: \"ResponseItem\";\n statusCode: string;\n links?: any | null;\n description?: string | null;\n content?: Array<{\n __typename?: \"MediaTypeObject\";\n mediaType: string;\n schema?: any | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n encoding?: Array<{ __typename?: \"EncodingItem\"; name: string }> | null;\n }> | null;\n }>;\n} & { \" $fragmentName\"?: \"OperationsFragmentFragment\" };\n\nexport type AllOperationsQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type AllOperationsQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n description?: string | null;\n summary?: string | null;\n title: string;\n url: string;\n version: string;\n tags: Array<{\n __typename?: \"SchemaTag\";\n name?: string | null;\n description?: string | null;\n operations: Array<\n { __typename?: \"OperationItem\"; slug: string } & {\n \" $fragmentRefs\"?: {\n OperationsFragmentFragment: OperationsFragmentFragment;\n };\n }\n >;\n }>;\n };\n};\n\nexport type GetServerQueryQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type GetServerQueryQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n url: string;\n servers: Array<{ __typename?: \"Server\"; url: string }>;\n };\n};\n\nexport type GetCategoriesQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type GetCategoriesQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n url: string;\n tags: Array<{\n __typename: \"SchemaTag\";\n name?: string | null;\n operations: Array<{\n __typename: \"OperationItem\";\n slug: string;\n deprecated?: boolean | null;\n method: string;\n summary?: string | null;\n operationId?: string | null;\n path: string;\n }>;\n }>;\n };\n};\n\nexport class TypedDocumentString<TResult, TVariables>\n extends String\n implements DocumentTypeDecoration<TResult, TVariables>\n{\n __apiType?: DocumentTypeDecoration<TResult, TVariables>[\"__apiType\"];\n\n constructor(\n private value: string,\n public __meta__?: Record<string, any> | undefined,\n ) {\n super(value);\n }\n\n toString(): string & DocumentTypeDecoration<TResult, TVariables> {\n return this.value;\n }\n}\nexport const OperationsFragmentFragmentDoc = new TypedDocumentString(\n `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n}\n `,\n { fragmentName: \"OperationsFragment\" },\n) as unknown as TypedDocumentString<OperationsFragmentFragment, unknown>;\nexport const ServersQueryDocument = new TypedDocumentString(`\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n}\n `) as unknown as TypedDocumentString<\n ServersQueryQuery,\n ServersQueryQueryVariables\n>;\nexport const AllOperationsDocument = new TypedDocumentString(`\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n summary\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n}\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n}`) as unknown as TypedDocumentString<\n AllOperationsQuery,\n AllOperationsQueryVariables\n>;\nexport const GetServerQueryDocument = new TypedDocumentString(`\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n}\n `) as unknown as TypedDocumentString<\n GetServerQueryQuery,\n GetServerQueryQueryVariables\n>;\nexport const GetCategoriesDocument = new TypedDocumentString(`\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n}\n `) as unknown as TypedDocumentString<\n GetCategoriesQuery,\n GetCategoriesQueryVariables\n>;\n","/* eslint-disable */\nimport * as types from \"./graphql.js\";\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n \"\\n query ServersQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\":\n types.ServersQueryDocument,\n \"\\n fragment OperationsFragment on OperationItem {\\n slug\\n summary\\n method\\n description\\n operationId\\n contentTypes\\n path\\n parameters {\\n name\\n in\\n description\\n required\\n schema\\n style\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n }\\n requestBody {\\n content {\\n mediaType\\n encoding {\\n name\\n }\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n schema\\n }\\n description\\n required\\n }\\n responses {\\n statusCode\\n links\\n description\\n content {\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n mediaType\\n encoding {\\n name\\n }\\n schema\\n }\\n }\\n }\\n\":\n types.OperationsFragmentFragmentDoc,\n \"\\n query AllOperations($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n description\\n summary\\n title\\n url\\n version\\n tags {\\n name\\n description\\n operations {\\n slug\\n ...OperationsFragment\\n }\\n }\\n }\\n }\\n\":\n types.AllOperationsDocument,\n \"\\n query getServerQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\":\n types.GetServerQueryDocument,\n \"\\n query GetCategories($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n tags {\\n __typename\\n name\\n operations {\\n __typename\\n slug\\n deprecated\\n method\\n summary\\n operationId\\n path\\n }\\n }\\n }\\n }\\n\":\n types.GetCategoriesDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query ServersQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").ServersQueryDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment OperationsFragment on OperationItem {\\n slug\\n summary\\n method\\n description\\n operationId\\n contentTypes\\n path\\n parameters {\\n name\\n in\\n description\\n required\\n schema\\n style\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n }\\n requestBody {\\n content {\\n mediaType\\n encoding {\\n name\\n }\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n schema\\n }\\n description\\n required\\n }\\n responses {\\n statusCode\\n links\\n description\\n content {\\n examples {\\n name\\n description\\n externalValue\\n value\\n summary\\n }\\n mediaType\\n encoding {\\n name\\n }\\n schema\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").OperationsFragmentFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query AllOperations($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n description\\n summary\\n title\\n url\\n version\\n tags {\\n name\\n description\\n operations {\\n slug\\n ...OperationsFragment\\n }\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").AllOperationsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getServerQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").GetServerQueryDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query GetCategories($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n tags {\\n __typename\\n name\\n operations {\\n __typename\\n slug\\n deprecated\\n method\\n summary\\n operationId\\n path\\n }\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").GetCategoriesDocument;\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n","export function assertError(err) {\n if (!isError(err)) {\n throw new Error(\"Parameter was not an error\");\n }\n}\nexport function isError(err) {\n return ((!!err &&\n typeof err === \"object\" &&\n objectToString(err) === \"[object Error]\") ||\n err instanceof Error);\n}\nfunction objectToString(obj) {\n return Object.prototype.toString.call(obj);\n}\n","const NAME = \"Layerr\";\nlet __name = NAME;\nexport function getGlobalName() {\n return __name;\n}\nexport function setGlobalName(name = null) {\n __name = name ?? NAME;\n}\n","import { isError } from \"./error.js\";\nexport function parseArguments(args) {\n let options, shortMessage = \"\";\n if (args.length === 0) {\n options = {};\n }\n else if (isError(args[0])) {\n options = {\n cause: args[0],\n };\n shortMessage = args.slice(1).join(\" \") || \"\";\n }\n else if (args[0] && typeof args[0] === \"object\") {\n options = Object.assign({}, args[0]);\n shortMessage = args.slice(1).join(\" \") || \"\";\n }\n else if (typeof args[0] === \"string\") {\n options = {};\n shortMessage = shortMessage = args.join(\" \") || \"\";\n }\n else {\n throw new Error(\"Invalid arguments passed to Layerr\");\n }\n return {\n options,\n shortMessage,\n };\n}\n","import { assertError, isError } from \"./error.js\";\nimport { getGlobalName } from \"./global.js\";\nimport { parseArguments } from \"./tools.js\";\nexport class Layerr extends Error {\n constructor(errorOptionsOrMessage, messageText) {\n const args = [...arguments];\n const { options, shortMessage } = parseArguments(args);\n let message = shortMessage;\n if (options.cause) {\n message = `${message}: ${options.cause.message}`;\n }\n super(message);\n this.message = message;\n if (options.name && typeof options.name === \"string\") {\n this.name = options.name;\n }\n else {\n this.name = getGlobalName();\n }\n if (options.cause) {\n Object.defineProperty(this, \"_cause\", { value: options.cause });\n }\n Object.defineProperty(this, \"_info\", { value: {} });\n if (options.info && typeof options.info === \"object\") {\n Object.assign(this._info, options.info);\n }\n if (Error.captureStackTrace) {\n const ctor = options.constructorOpt || this.constructor;\n Error.captureStackTrace(this, ctor);\n }\n }\n static cause(err) {\n assertError(err);\n if (!err._cause)\n return null;\n return isError(err._cause)\n ? err._cause\n : null;\n }\n static fullStack(err) {\n assertError(err);\n const cause = Layerr.cause(err);\n if (cause) {\n return `${err.stack}\\ncaused by: ${Layerr.fullStack(cause)}`;\n }\n return err.stack ?? \"\";\n }\n static info(err) {\n assertError(err);\n const output = {};\n const cause = Layerr.cause(err);\n if (cause) {\n Object.assign(output, Layerr.info(cause));\n }\n if (err._info) {\n Object.assign(output, err._info);\n }\n return output;\n }\n toString() {\n let output = this.name ||\n this.constructor.name ||\n this.constructor.prototype.name;\n if (this.message) {\n output = `${output}: ${this.message}`;\n }\n return output;\n }\n}\n","import { Layerr } from 'layerr';\n\nconst B32_CHARACTERS = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\nconst MAX_ULID = \"7ZZZZZZZZZZZZZZZZZZZZZZZZZ\";\nconst MIN_ULID = \"00000000000000000000000000\";\nconst ULID_REGEX = /^[0-7][0-9a-hjkmnp-tv-zA-HJKMNP-TV-Z]{25}$/;\nconst UUID_REGEX = /^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$/;\n\n// Code from https://github.com/devbanana/crockford-base32/blob/develop/src/index.ts\nfunction crockfordEncode(input) {\n const output = [];\n let bitsRead = 0;\n let buffer = 0;\n const reversedInput = new Uint8Array(input.slice().reverse());\n for (const byte of reversedInput) {\n buffer |= byte << bitsRead;\n bitsRead += 8;\n while (bitsRead >= 5) {\n output.unshift(buffer & 0x1f);\n buffer >>>= 5;\n bitsRead -= 5;\n }\n }\n if (bitsRead > 0) {\n output.unshift(buffer & 0x1f);\n }\n return output.map(byte => B32_CHARACTERS.charAt(byte)).join(\"\");\n}\nfunction crockfordDecode(input) {\n const sanitizedInput = input.toUpperCase().split(\"\").reverse().join(\"\");\n const output = [];\n let bitsRead = 0;\n let buffer = 0;\n for (const character of sanitizedInput) {\n const byte = B32_CHARACTERS.indexOf(character);\n if (byte === -1) {\n throw new Error(`Invalid base 32 character found in string: ${character}`);\n }\n buffer |= byte << bitsRead;\n bitsRead += 5;\n while (bitsRead >= 8) {\n output.unshift(buffer & 0xff);\n buffer >>>= 8;\n bitsRead -= 8;\n }\n }\n if (bitsRead >= 5 || buffer > 0) {\n output.unshift(buffer & 0xff);\n }\n return new Uint8Array(output);\n}\n\n// These values should NEVER change. The values are precisely for\n// generating ULIDs.\nconst ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nconst ENCODING_LEN = 32; // from ENCODING.length;\nconst TIME_MAX = 281474976710655; // from Math.pow(2, 48) - 1;\nconst TIME_LEN = 10;\nconst RANDOM_LEN = 16;\nconst ERROR_INFO = Object.freeze({\n source: \"ulid\"\n});\n/**\n * Decode time from a ULID\n * @param id The ULID\n * @returns The decoded timestamp\n */\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw new Layerr({\n info: {\n code: \"DEC_TIME_MALFORMED\",\n ...ERROR_INFO\n }\n }, \"Malformed ULID\");\n }\n const time = id\n .substr(0, TIME_LEN)\n .toUpperCase()\n .split(\"\")\n .reverse()\n .reduce((carry, char, index) => {\n const encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw new Layerr({\n info: {\n code: \"DEC_TIME_CHAR\",\n ...ERROR_INFO\n }\n }, `Time decode error: Invalid character: ${char}`);\n }\n return (carry += encodingIndex * Math.pow(ENCODING_LEN, index));\n }, 0);\n if (time > TIME_MAX) {\n throw new Layerr({\n info: {\n code: \"DEC_TIME_CHAR\",\n ...ERROR_INFO\n }\n }, `Malformed ULID: timestamp too large: ${time}`);\n }\n return time;\n}\n/**\n * Detect the best PRNG (pseudo-random number generator)\n * @param root The root to check from (global/window)\n * @returns The PRNG function\n */\nfunction detectPRNG(root) {\n const rootLookup = root || detectRoot();\n const globalCrypto = (rootLookup && (rootLookup.crypto || rootLookup.msCrypto)) ||\n (null);\n if (typeof globalCrypto?.getRandomValues === \"function\") {\n return () => {\n const buffer = new Uint8Array(1);\n globalCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n }\n else if (typeof globalCrypto?.randomBytes === \"function\") {\n return () => globalCrypto.randomBytes(1).readUInt8() / 0xff;\n }\n else ;\n throw new Layerr({\n info: {\n code: \"PRNG_DETECT\",\n ...ERROR_INFO\n }\n }, \"Failed to find a reliable PRNG\");\n}\nfunction detectRoot() {\n if (inWebWorker())\n return self;\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n return null;\n}\nfunction encodeRandom(len, prng) {\n let str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\n/**\n * Encode the time portion of a ULID\n * @param now The current timestamp\n * @param len Length to generate\n * @returns The encoded time\n */\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Layerr({\n info: {\n code: \"ENC_TIME_NAN\",\n ...ERROR_INFO\n }\n }, `Time must be a number: ${now}`);\n }\n else if (now > TIME_MAX) {\n throw new Layerr({\n info: {\n code: \"ENC_TIME_SIZE_EXCEED\",\n ...ERROR_INFO\n }\n }, `Cannot encode a time larger than ${TIME_MAX}: ${now}`);\n }\n else if (now < 0) {\n throw new Layerr({\n info: {\n code: \"ENC_TIME_NEG\",\n ...ERROR_INFO\n }\n }, `Time must be positive: ${now}`);\n }\n else if (Number.isInteger(now) === false) {\n throw new Layerr({\n info: {\n code: \"ENC_TIME_TYPE\",\n ...ERROR_INFO\n }\n }, `Time must be an integer: ${now}`);\n }\n let mod, str = \"\";\n for (let currentLen = len; currentLen > 0; currentLen--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\n/**\n * Fix a ULID's Base32 encoding -\n * i and l (case-insensitive) will be treated as 1 and o (case-insensitive) will be treated as 0.\n * hyphens are ignored during decoding.\n * @param id The ULID\n * @returns The cleaned up ULID\n */\nfunction fixULIDBase32(id) {\n return id.replace(/i/gi, \"1\").replace(/l/gi, \"1\").replace(/o/gi, \"0\").replace(/-/g, \"\");\n}\nfunction incrementBase32(str) {\n let done = undefined, index = str.length, char, charIndex, output = str;\n const maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = output[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw new Layerr({\n info: {\n code: \"B32_INC_ENC\",\n ...ERROR_INFO\n }\n }, \"Incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n output = replaceCharAt(output, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(output, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw new Layerr({\n info: {\n code: \"B32_INC_INVALID\",\n ...ERROR_INFO\n }\n }, \"Failed incrementing string\");\n}\nfunction inWebWorker() {\n // @ts-ignore\n return typeof WorkerGlobalScope !== \"undefined\" && self instanceof WorkerGlobalScope;\n}\n/**\n * Check if a ULID is valid\n * @param id The ULID to test\n * @returns True if valid, false otherwise\n * @example\n * isValid(\"01HNZX8JGFACFA36RBXDHEQN6E\"); // true\n * isValid(\"\"); // false\n */\nfunction isValid(id) {\n return (typeof id === \"string\" &&\n id.length === TIME_LEN + RANDOM_LEN &&\n id\n .toUpperCase()\n .split(\"\")\n .every(char => ENCODING.indexOf(char) !== -1));\n}\n/**\n * Create a ULID factory to generate monotonically-increasing\n * ULIDs\n * @param prng The PRNG to use\n * @returns A ulid factory\n * @example\n * const ulid = monotonicFactory();\n * ulid(); // \"01HNZXD07M5CEN5XA66EMZSRZW\"\n */\nfunction monotonicFactory(prng) {\n const currentPRNG = prng || detectPRNG();\n let lastTime = 0, lastRandom;\n return function _ulid(seedTime) {\n const seed = isNaN(seedTime) ? Date.now() : seedTime;\n if (seed <= lastTime) {\n const incrementedRandom = (lastRandom = incrementBase32(lastRandom));\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seed;\n const newRandom = (lastRandom = encodeRandom(RANDOM_LEN, currentPRNG));\n return encodeTime(seed, TIME_LEN) + newRandom;\n };\n}\nfunction randomChar(prng) {\n let rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\n/**\n * Generate a ULID\n * @param seedTime Optional time seed\n * @param prng Optional PRNG function\n * @returns A ULID string\n * @example\n * ulid(); // \"01HNZXD07M5CEN5XA66EMZSRZW\"\n */\nfunction ulid(seedTime, prng) {\n const currentPRNG = prng || detectPRNG();\n const seed = isNaN(seedTime) ? Date.now() : seedTime;\n return encodeTime(seed, TIME_LEN) + encodeRandom(RANDOM_LEN, currentPRNG);\n}\n/**\n * Convert a ULID to a UUID\n * @param ulid The ULID to convert\n * @returns A UUID string\n */\nfunction ulidToUUID(ulid) {\n const isValid = ULID_REGEX.test(ulid);\n if (!isValid) {\n throw new Layerr({ info: { code: \"INVALID_ULID\", ...ERROR_INFO } }, \"Invalid ULID\");\n }\n const uint8Array = crockfordDecode(ulid);\n let uuid = Array.from(uint8Array)\n .map(byte => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n uuid =\n uuid.substring(0, 8) +\n \"-\" +\n uuid.substring(8, 12) +\n \"-\" +\n uuid.substring(12, 16) +\n \"-\" +\n uuid.substring(16, 20) +\n \"-\" +\n uuid.substring(20);\n return uuid;\n}\n/**\n * Convert a UUID to a ULID\n * @param uuid The UUID to convert\n * @returns A ULID string\n */\nfunction uuidToULID(uuid) {\n const isValid = UUID_REGEX.test(uuid);\n if (!isValid) {\n throw new Layerr({ info: { code: \"INVALID_UUID\", ...ERROR_INFO } }, \"Invalid UUID\");\n }\n const uint8Array = new Uint8Array(uuid\n .replace(/-/g, \"\")\n .match(/.{1,2}/g)\n .map(byte => parseInt(byte, 16)));\n return crockfordEncode(uint8Array);\n}\n\nexport { B32_CHARACTERS, MAX_ULID, MIN_ULID, ULID_REGEX, UUID_REGEX, decodeTime, detectPRNG, encodeTime, fixULIDBase32, isValid, monotonicFactory, ulid, ulidToUUID, uuidToULID };\n","import type { GraphQLError } from \"graphql/error/index.js\";\nimport { ulid } from \"ulidx\";\nimport { initializeWorker } from \"zudoku/openapi-worker\";\nimport { ZudokuError } from \"../../../util/invariant.js\";\nimport type { TypedDocumentString } from \"../graphql/graphql.js\";\nimport type { OpenApiPluginOptions } from \"../index.js\";\nimport type { LocalServer } from \"./createServer.js\";\nimport type { WorkerGraphQLMessage } from \"./worker.js\";\n\nlet localServerPromise: Promise<LocalServer> | undefined;\nlet worker: SharedWorker | undefined;\n\ntype GraphQLResponse<TResult> = {\n errors?: GraphQLError[];\n data: TResult;\n};\n\nconst resolveVariables = async (variables?: unknown) => {\n if (!variables) return;\n\n if (\n typeof variables === \"object\" &&\n \"type\" in variables &&\n variables.type === \"file\" &&\n \"input\" in variables &&\n typeof variables.input === \"function\"\n ) {\n variables.input = await variables.input();\n }\n};\n\nconst throwIfError = (response: GraphQLResponse<unknown>) => {\n if (!response.errors?.[0]) return;\n\n throw new ZudokuError(response.errors[0].message, {\n developerHint:\n \"Check your configuration value `apis.type` and `apis.input` in the Zudoku config.\",\n });\n};\n\nexport class GraphQLClient {\n readonly #mode: \"remote\" | \"in-memory\" | \"worker\";\n #pendingRequests = new Map<string, (value: any) => void>();\n #port: MessagePort | undefined;\n\n constructor(private config: OpenApiPluginOptions) {\n if (config.server) {\n this.#mode = \"remote\";\n } else if (config.inMemory || typeof SharedWorker === \"undefined\") {\n this.#mode = \"in-memory\";\n } else {\n this.#mode = \"worker\";\n }\n }\n\n #initializeLocalServer = () =>\n import(\"./createServer.js\").then((m) => m.createServer());\n\n fetch = async <TResult, TVariables>(\n query: TypedDocumentString<TResult, TVariables>,\n ...[variables]: TVariables extends Record<string, never> ? [] : [TVariables]\n ) => {\n const operationName = query.match(/query (\\w+)/)?.[1];\n\n await resolveVariables(variables);\n\n const body = JSON.stringify({ query, variables, operationName });\n\n switch (this.#mode) {\n case \"remote\": {\n const response = await fetch(this.config.server!, {\n method: \"POST\",\n body,\n headers: { \"Content-Type\": \"application/json\" },\n });\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const result = (await response.json()) as GraphQLResponse<TResult>;\n throwIfError(result);\n\n return result.data;\n }\n\n case \"in-memory\": {\n if (!localServerPromise) {\n localServerPromise = this.#initializeLocalServer();\n }\n\n const localServer = await localServerPromise;\n if (!localServer) throw new Error(\"Local server not initialized\");\n\n const response = await localServer.fetch(\n new Request(\"http://localhost/graphql\", {\n method: \"POST\",\n body,\n headers: { \"Content-Type\": \"application/json\" },\n }),\n );\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const result = (await response.json()) as GraphQLResponse<TResult>;\n throwIfError(result);\n\n return result.data;\n }\n\n case \"worker\": {\n if (!worker) {\n worker = initializeWorker();\n }\n\n if (!this.#port) {\n const channel = new MessageChannel();\n\n worker.port.postMessage({ port: channel.port2 }, [channel.port2]);\n\n this.#port = channel.port1;\n\n this.#port.onmessage = (e: MessageEvent<WorkerGraphQLMessage>) => {\n const { id, body } = e.data;\n const resolve = this.#pendingRequests.get(id);\n if (resolve) {\n const result = JSON.parse(body);\n resolve(result);\n this.#pendingRequests.delete(id);\n } else {\n // eslint-disable-next-line no-console\n console.error(`No pending request found for id: ${id}`);\n }\n };\n\n this.#port.start();\n }\n\n const id = ulid();\n\n const resultPromise = new Promise<GraphQLResponse<TResult>>(\n (resolve) => {\n this.#pendingRequests.set(id, resolve);\n this.#port!.postMessage({ id, body } as WorkerGraphQLMessage);\n },\n );\n\n const result = await resultPromise;\n throwIfError(result);\n\n return result.data;\n }\n }\n };\n}\n","const c2n = (c: string) =>\n Math.abs(\n isNaN(parseInt(c))\n ? c.toLowerCase().charCodeAt(0) - 96\n : isNaN(parseInt(c))\n ? 0\n : parseInt(c),\n );\nconst s2n = (s: string) =>\n s.length > 1\n ? parseInt(s.split(\"\").reduce((a, c) => `${c2n(a) + c2n(c)}`))\n : c2n(s);\n\nexport const pastellize = (\n s: string,\n options: {\n saturation?: number;\n lightness?: number;\n } = {},\n) => {\n const hue = (3 * s2n(s) + 2 * s2n(s) + s2n(s)) % 360;\n const { saturation = 75, lightness = 60 } = options;\n\n return `${hue}deg ${saturation}% ${lightness}%`;\n};\n","import { useTheme } from \"next-themes\";\nimport { useEffect, useRef, type CSSProperties, type ReactNode } from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { pastellize } from \"../../util/pastellize.js\";\n\nexport const DATA_ATTR = \"data-linked-param\";\n\nexport const usePastellizedColor = (name: string) => {\n const { resolvedTheme } = useTheme();\n return pastellize(\n name,\n resolvedTheme === \"light\" ? { saturation: 85, lightness: 50 } : undefined,\n );\n};\n\nexport const ColorizedParam = ({\n name,\n className,\n backgroundOpacity = \"100%\",\n borderOpacity = \"100%\",\n slug,\n children,\n onClick,\n}: {\n name: string;\n className?: string;\n backgroundOpacity?: string;\n borderOpacity?: string;\n slug?: string;\n children?: ReactNode;\n onClick?: () => void;\n}) => {\n const ref = useRef<HTMLSpanElement>(null);\n const normalized = name.replace(/[{}]/g, \"\");\n const normalizedSlug = slug?.replace(/[{}]/g, \"\");\n const color = usePastellizedColor(normalized);\n\n const borderColor = `hsl(${color} / ${borderOpacity})`;\n const backgroundColor = `hsl(${color} / ${backgroundOpacity})`;\n\n useEffect(() => {\n if (!normalizedSlug) return;\n if (!ref.current) return;\n\n const onMouseEnter = () => {\n document\n .querySelectorAll(`[${DATA_ATTR}=\"${normalizedSlug}\"]`)\n .forEach((el) => {\n if (el instanceof HTMLElement) {\n el.dataset.active = \"true\";\n }\n });\n };\n const onMouseLeave = () => {\n document\n .querySelectorAll(`[${DATA_ATTR}=\"${normalizedSlug}\"]`)\n .forEach((el) => {\n if (el instanceof HTMLElement) {\n el.dataset.active = \"false\";\n }\n });\n };\n\n const el = ref.current;\n\n el.addEventListener(\"mouseenter\", onMouseEnter);\n el.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n el.removeEventListener(\"mouseenter\", onMouseEnter);\n el.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [normalizedSlug]);\n\n return (\n <span\n {...{ [DATA_ATTR]: normalizedSlug }}\n className={cn(\n \"relative after:rounded after:absolute after:inset-0 after:-bottom-0.5 after:border-b-2 after:transition-opacity after:duration-200\",\n \"after:pointer-events-none after:border-[--border-color] after:opacity-30 after:data-[active=true]:opacity-100\",\n className,\n )}\n suppressHydrationWarning\n ref={ref}\n onClick={onClick}\n style={\n {\n \"--border-color\": borderColor,\n \"--background-color\": backgroundColor,\n } as CSSProperties\n }\n >\n {children ?? name}\n </span>\n );\n};\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const filledPath = path.replace(/(:\\w+|\\{\\w+})/g, (match) => {\n const key = match.replace(/[:{}]/g, \"\");\n const value = data.pathParams.find((part) => part.name === key)?.value;\n\n return value ?? match;\n });\n\n // Ensure host ends with a slash and path doesn't start with one,\n // so they form a correct URL, without overriding the host's path.\n const url = new URL(\n filledPath.replace(/^\\//, \"\"),\n host.endsWith(\"/\") ? host : `${host}/`,\n );\n\n data.queryParams\n .filter((param) => param.active)\n .forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","import { XIcon } from \"lucide-react\";\nimport { Control, useFieldArray, UseFormRegister } from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Input } from \"../../../ui/Input.js\";\nimport { type PlaygroundForm } from \"./Playground.js\";\n\nexport const Headers = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields, append, remove } = useFieldArray<PlaygroundForm>({\n control,\n name: \"headers\",\n });\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full [&_td]:border [&_td]:p-1.5 [&_td]:px-2\">\n <tbody>\n {fields.map((header, i) => (\n <tr\n key={header.id}\n className=\"group has-[:focus]:bg-muted/50 hover:bg-muted/50\"\n >\n <td className=\"flex gap-2 items-center\">\n <Input\n {...register(`headers.${i}.name`)}\n placeholder=\"Name\"\n className=\"border-0 shadow-none text-xs font-mono\"\n autoComplete=\"off\"\n />\n </td>\n <td>\n <div className=\"flex items-center gap-2\">\n <Input\n placeholder={\"Value\"}\n className=\"border-0 shadow-none text-xs font-mono\"\n {...register(`headers.${i}.value`)}\n autoComplete=\"off\"\n />\n <Button\n size=\"icon\"\n variant=\"ghost\"\n className=\"text-muted-foreground opacity-0 group-hover:opacity-100\"\n onClick={() => {\n remove(i);\n }}\n type=\"button\"\n >\n <XIcon size={16} />\n </Button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n <div className=\"text-end\">\n <Button\n className=\"\"\n onClick={() => append({ name: \"\", value: \"\" })}\n type=\"button\"\n >\n Add header\n </Button>\n </div>\n </div>\n );\n};\n","import { EraserIcon } from \"lucide-react\";\nimport { Control, Controller, useFieldArray } from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Input } from \"../../../ui/Input.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const PathParams = ({\n control,\n}: {\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"pathParams\",\n });\n\n return (\n <table className=\"w-full table-auto [&_td]:border [&_td]:py-1 [&_td]:px-2\">\n <tbody>\n {fields.map((part, i) => (\n <tr key={part.id} className=\"hover:bg-accent/40\">\n <td>\n <Controller\n control={control}\n name={`pathParams.${i}.value`}\n render={({ field }) => (\n <div>\n <ColorizedParam\n slug={part.name}\n name={part.name}\n backgroundOpacity=\"25%\"\n borderOpacity={field.value ? \"100%\" : \"0\"}\n className={cn(\n \"font-mono text-xs m-2\",\n !field.value && \"opacity-60\",\n )}\n />\n *\n </div>\n )}\n />\n </td>\n <td>\n <div className=\"flex justify-between items-center\">\n <Controller\n control={control}\n name={`pathParams.${i}.value`}\n render={({ field }) => (\n <Input\n {...field}\n required\n placeholder=\"Enter value\"\n className=\"border-0 shadow-none ring-0 font-mono text-xs\"\n />\n )}\n />\n <Controller\n control={control}\n name={`pathParams.${i}.value`}\n render={({ field }) => (\n <Button\n size=\"icon\"\n type=\"button\"\n variant=\"ghost\"\n aria-label=\"Clear value\"\n className={cn(\n \"ms-2\",\n field.value.length === 0\n ? \"opacity-0 pointer-events-none\"\n : \"opacity-100\",\n )}\n title=\"Clear value\"\n onClick={() => field.onChange(\"\")}\n >\n <EraserIcon size={16} />\n </Button>\n )}\n />\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport type { ClassValue } from \"clsx\";\nimport * as React from \"react\";\nimport type { JSX } from \"react/jsx-runtime\";\nimport { cn } from \"./cn.js\";\n\nconst createVariantComponent = <\n E extends keyof React.ReactHTML,\n C extends ReturnType<typeof cva>,\n>(\n tag: E,\n cvx: ClassValue | C,\n // variantProps: Array<keyof VariantProps<C>> = [],\n) => {\n const MyVariant = React.forwardRef<\n HTMLElement,\n JSX.IntrinsicElements[E] & { className?: ClassValue; asChild?: boolean }\n >(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : tag;\n\n return React.createElement(Comp, {\n ...props,\n ref,\n className:\n typeof cvx === \"function\" ? cvx({ className }) : cn(cvx, className),\n });\n });\n\n MyVariant.displayName = `VariantComponent(${tag})`;\n\n return MyVariant;\n};\n\nexport default createVariantComponent;\n","import createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nexport const InlineInput = createVariantComponent(\n \"input\",\n \"px-2 bg-transparent h-6 font-mono text-xs m-2\",\n);\n","import { EraserIcon } from \"lucide-react\";\nimport {\n Control,\n Controller,\n useFieldArray,\n useFormContext,\n} from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Input } from \"../../../ui/Input.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport {\n NO_IDENTITY,\n type PlaygroundForm,\n type QueryParam,\n} from \"./Playground.js\";\n\nexport const QueryParams = ({\n control,\n queryParams,\n}: {\n control: Control<PlaygroundForm>;\n queryParams: QueryParam[];\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"queryParams\",\n });\n const form = useFormContext<PlaygroundForm>();\n\n const requiredFields = queryParams.map((param) => Boolean(param.isRequired));\n\n const selectedIdentity = form.watch(\"identity\");\n const hasSelectedIdentity = selectedIdentity !== NO_IDENTITY;\n\n return (\n <div className=\"\">\n <table className=\"w-full [&_td]:border [&_td]:p-1.5 [&_td]:px-2\">\n <tbody>\n {fields\n .filter(\n // TODO remove this hack for Accu or make it more generic\n (field) => !(hasSelectedIdentity && field.name === \"apikey\"),\n )\n .map((field, i) => (\n <tr key={field.id} className=\"hover:bg-accent/40\">\n <td className=\"text-center\">\n <Controller\n control={control}\n name={`queryParams.${i}.active`}\n render={({ field }) => (\n <input\n type=\"checkbox\"\n id={`queryParams.${i}.active`}\n checked={field.value}\n onChange={field.onChange}\n />\n )}\n />\n </td>\n <td>\n <Controller\n control={control}\n render={({ field }) => (\n <InlineInput asChild>\n <label\n className=\"flex items-center cursor-pointer\"\n htmlFor={`queryParams.${i}.active`}\n title={\n requiredFields[i] ? \"Required field\" : undefined\n }\n >\n {field.value}\n {requiredFields[i] && <sup> *</sup>}\n </label>\n </InlineInput>\n )}\n name={`queryParams.${i}.name`}\n />\n </td>\n <td>\n <div className=\"flex justify-between items-center\">\n <Controller\n control={control}\n render={({ field }) => (\n <Input\n {...field}\n onChange={(e) => {\n field.onChange(e.target.value);\n if (e.target.value.length > 0) {\n form.setValue(`queryParams.${i}.active`, true);\n }\n }}\n placeholder=\"Enter value\"\n className=\"w-full border-0 shadow-none text-xs font-mono\"\n />\n )}\n name={`queryParams.${i}.value`}\n />\n <Controller\n control={control}\n render={({ field }) => (\n <Button\n size=\"icon\"\n type=\"button\"\n variant=\"ghost\"\n aria-label=\"Clear value\"\n className={cn(\n \"ms-2\",\n field.value.length === 0\n ? \"opacity-0 pointer-events-none\"\n : \"opacity-100\",\n )}\n title=\"Clear value\"\n onClick={() => field.onChange(\"\")}\n >\n <EraserIcon size={16} />\n </Button>\n )}\n name={`queryParams.${i}.value`}\n />\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n","import { ChevronsUpDownIcon } from \"lucide-react\";\nimport type { ChangeEventHandler } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SimpleSelect = ({\n value,\n onChange,\n className,\n options,\n showChevrons = true,\n}: {\n value: string;\n onChange: ChangeEventHandler<HTMLSelectElement>;\n className?: string;\n options: {\n value: string;\n label: string;\n }[];\n showChevrons?: boolean;\n}) => (\n <div className=\"grid\">\n <select\n className={cn(\n \"row-start-1 col-start-1 border border-input text-foreground px-2 py-1 pe-6\",\n \"rounded-md appearance-none bg-zinc-50 hover:bg-white dark:bg-zinc-800 hover:dark:bg-zinc-800/75\",\n className,\n )}\n value={value}\n onChange={onChange}\n >\n {options.map((option) => (\n <option value={option.value} key={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n <div\n className={cn(\n !showChevrons && \"hidden\",\n \"row-start-1 col-start-1 self-center justify-self-end relative end-2 pointer-events-none\",\n )}\n >\n <ChevronsUpDownIcon size={14} />\n </div>\n </div>\n);\n","import { useState } from \"react\";\nimport { SyntaxHighlight } from \"../../../components/SyntaxHighlight.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { SimpleSelect } from \"../SimpleSelect.js\";\n\nconst mimeTypeToLanguage = (mimeType: string) => {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n };\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[1];\n};\n\nconst detectLanguage = (headers: Headers) => {\n const contentType = headers.get(\"Content-Type\") || \"\";\n return mimeTypeToLanguage(contentType);\n};\n\nconst tryParseJson = (body: string) => {\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return null;\n }\n};\n\nexport const ResponseTab = ({\n body = \"\",\n headers,\n}: {\n body?: string;\n headers: Headers;\n}) => {\n const detectedLanguage = detectLanguage(headers);\n const jsonContent = tryParseJson(body);\n const beautifiedBody = jsonContent || body;\n const [view, setView] = useState<\"formatted\" | \"raw\">(\n jsonContent ? \"formatted\" : \"raw\",\n );\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Card className=\"shadow-none\">\n <SyntaxHighlight\n language={\n view === \"raw\" ? (jsonContent ? \"plain\" : detectedLanguage) : \"json\"\n }\n noBackground\n // playground dialog has h-5/6 ≈ 83.333vh\n className=\"overflow-x-auto p-4 text-xs max-h-[calc(83.333vh-180px)]\"\n code={view === \"raw\" ? body : beautifiedBody}\n />\n </Card>\n {jsonContent && (\n <div className=\"flex justify-end\">\n <SimpleSelect\n value={view}\n onChange={(e) => setView(e.target.value as \"formatted\" | \"raw\")}\n options={[\n { value: \"formatted\", label: \"Formatted\" },\n { value: \"raw\", label: \"Raw\" },\n ]}\n />\n </div>\n )}\n </div>\n );\n};\n","import { useMutation } from \"@tanstack/react-query\";\nimport { Fragment, useEffect, useRef, useTransition } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"zudoku/ui/Select.js\";\nimport { useSelectedServerStore } from \"../../../authentication/state.js\";\nimport { useApiIdentities } from \"../../../components/context/ZudokuContext.js\";\nimport { Spinner } from \"../../../components/Spinner.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Callout } from \"../../../ui/Callout.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../../ui/Tabs.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { Headers } from \"./Headers.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\nimport { ResponseTab } from \"./ResponseTab.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nconst statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n};\n\nexport type Header = {\n name: string;\n defaultValue?: string;\n};\nexport type QueryParam = {\n name: string;\n defaultValue?: string;\n defaultActive?: boolean;\n isRequired?: boolean;\n};\nexport type PathParam = {\n name: string;\n defaultValue?: string;\n isRequired?: boolean;\n};\n\nexport type PlaygroundForm = {\n body: string;\n queryParams: Array<{ name: string; value: string; active: boolean }>;\n pathParams: Array<{ name: string; value: string }>;\n headers: Array<{ name: string; value: string }>;\n identity?: string;\n};\n\nexport type PlaygroundContentProps = {\n server: string;\n servers?: string[];\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n defaultBody?: string;\n};\n\nexport const Playground = ({\n server,\n servers,\n url,\n method,\n headers = [],\n queryParams = [],\n pathParams = [],\n defaultBody = \"\",\n}: PlaygroundContentProps) => {\n const { selectedServer, setSelectedServer } = useSelectedServerStore();\n const [, startTransition] = useTransition();\n const { register, control, handleSubmit, watch, setValue, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: defaultBody,\n queryParams: queryParams.map((param) => ({\n name: param.name,\n value: param.defaultValue ?? \"\",\n active: param.defaultActive ?? false,\n })),\n pathParams: pathParams.map((param) => ({\n name: param.name,\n value: param.defaultValue ?? \"\",\n })),\n headers: headers.map((header) => ({\n name: header.name,\n value: header.defaultValue ?? \"\",\n })),\n identity: NO_IDENTITY,\n },\n });\n const formState = watch();\n const identities = useApiIdentities();\n\n const setOnce = useRef(false);\n useEffect(() => {\n if (setOnce.current) return;\n const firstIdentity = identities.data?.at(0);\n if (firstIdentity) {\n setValue(\"identity\", firstIdentity.id);\n setOnce.current = true;\n }\n }, [setValue, identities.data]);\n\n const queryMutation = useMutation({\n mutationFn: async (data: PlaygroundForm) => {\n const requestUrl = createUrl(selectedServer ?? server, url, data);\n const start = performance.now();\n\n const request = new Request(requestUrl, {\n method: method.toUpperCase(),\n headers: Object.fromEntries(\n data.headers\n .filter((h) => h.name)\n .map((header) => [header.name, header.value]),\n ),\n body: data.body ? data.body : undefined,\n });\n\n if (data.identity !== NO_IDENTITY) {\n identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n try {\n const response = await fetch(request, {\n signal: AbortSignal.timeout(5000),\n });\n\n const time = performance.now() - start;\n\n const body = await response.text();\n\n return {\n status: response.status,\n headers: response.headers,\n size: body.length,\n body,\n time,\n };\n } catch (error) {\n if (error instanceof TypeError) {\n throw new Error(\n \"The request failed, possibly due to network issues or CORS policy.\",\n );\n } else {\n throw error;\n }\n }\n },\n });\n\n const path = url.split(\"/\").map((part, i, arr) => {\n const isPathParam =\n (part.startsWith(\"{\") && part.endsWith(\"}\")) || part.startsWith(\":\");\n const replaced = part.replace(/[:{}]/g, \"\");\n const value = formState.pathParams.find((p) => p.name === replaced)?.value;\n\n const pathParamValue = value ? (\n <ColorizedParam backgroundOpacity=\"25%\" name={part} slug={part}>\n {encodeURIComponent(value)}\n </ColorizedParam>\n ) : (\n <span\n className=\"underline decoration-wavy decoration-red-500\"\n title={`Missing value for path parameter \\`${replaced}\\``}\n >\n {part}\n </span>\n );\n\n return (\n // eslint-disable-next-line react/no-array-index-key\n <Fragment key={part + i}>\n {isPathParam ? pathParamValue : part}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n );\n });\n\n const headerEntries = Array.from(queryMutation.data?.headers.entries() ?? []);\n\n const urlQueryParams = formState.queryParams\n .filter((p) => p.active)\n .map((p, i, arr) => (\n <Fragment key={p.name}>\n {p.name}={encodeURIComponent(p.value).replaceAll(\"%20\", \"+\")}\n {i < arr.length - 1 && \"&\"}\n <wbr />\n </Fragment>\n ));\n\n const serverSelect = (\n <div className=\"inline-block opacity-50 hover:opacity-100 transition\">\n {servers && servers.length > 1 ? (\n <Select\n onValueChange={(value) => {\n startTransition(() => {\n setSelectedServer(value);\n });\n }}\n value={selectedServer}\n >\n <SelectTrigger className=\"p-0 border-none flex-row-reverse bg-transparent text-xs gap-0.5 h-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {servers.map((s) => (\n <SelectItem key={s} value={s}>\n {s.replace(/^https?:\\/\\//, \"\")}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n ) : (\n <span>{server.replace(/^https?:\\/\\//, \"\")}</span>\n )}\n </div>\n );\n\n return (\n <FormProvider\n {...{ register, control, handleSubmit, watch, setValue, ...form }}\n >\n <form onSubmit={handleSubmit((data) => queryMutation.mutateAsync(data))}>\n <div className=\"grid grid-cols-[8fr_7fr] text-sm h-full\">\n <div className=\"flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto\">\n <div className=\"flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md\">\n <div className=\"border-r p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono\">\n {method.toUpperCase()}\n </div>\n <div className=\"flex items-center flex-wrap p-2 font-mono text-xs\">\n {serverSelect}\n {path}\n {urlQueryParams.length > 0 ? \"?\" : \"\"}\n {urlQueryParams}\n </div>\n </div>\n <Button type=\"submit\" className=\"h-auto flex gap-1\">\n Send\n </Button>\n </div>\n <Tabs\n defaultValue={\n queryParams.length + pathParams.length > 0\n ? \"parameters\"\n : \"headers\"\n }\n >\n <div className=\"flex flex-wrap gap-1 justify-between\">\n <TabsList>\n {queryParams.length + pathParams.length > 0 && (\n <TabsTrigger value=\"parameters\">Parameters</TabsTrigger>\n )}\n <TabsTrigger value=\"headers\">\n Headers{\" \"}\n {formState.headers.length > 0 &&\n `(${formState.headers.length})`}\n </TabsTrigger>\n <TabsTrigger\n value=\"body\"\n disabled={\n ![\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n )\n }\n >\n Body\n </TabsTrigger>\n </TabsList>\n <div className=\"flex gap-2 items-center\">\n Auth:\n <Select\n onValueChange={(value) => setValue(\"identity\", value)}\n value={formState.identity}\n defaultValue={formState.identity}\n >\n <SelectTrigger className=\"w-[180px] flex\">\n {identities.isPending ? <Spinner /> : <SelectValue />}\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value={NO_IDENTITY}>None</SelectItem>\n {identities.data?.map((identity) => (\n <SelectItem key={identity.id} value={identity.id}>\n {identity.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <TabsContent value=\"headers\">\n <Headers control={control} register={register} />\n </TabsContent>\n <TabsContent value=\"parameters\">\n {pathParams.length > 0 && (\n <div className=\"flex flex-col gap-4 my-4\">\n <span className=\"font-semibold\">Path Parameters</span>\n <PathParams control={control} />\n </div>\n )}\n {queryParams.length > 0 && (\n <div className=\"flex flex-col gap-4 my-4\">\n <span className=\"font-semibold\">Query Parameters</span>\n <QueryParams control={control} queryParams={queryParams} />\n </div>\n )}\n </TabsContent>\n <TabsContent value=\"body\">\n <textarea\n {...register(\"body\")}\n className=\"border w-full rounded p-2 bg-muted h-40\"\n />\n </TabsContent>\n </Tabs>\n </div>\n <div className=\"min-w-0 p-8 bg-muted/70\">\n {queryMutation.error ? (\n <div className=\"flex flex-col gap-2\">\n {formState.pathParams.some((p) => p.value === \"\") && (\n <Callout type=\"caution\">\n Some path parameters are missing values. Please fill them in\n to ensure the request is sent correctly.\n </Callout>\n )}\n <Card>\n <CardHeader>\n <CardTitle>Request failed</CardTitle>\n </CardHeader>\n <CardContent>\n Error:{\" \"}\n {queryMutation.error.message ||\n String(queryMutation.error) ||\n \"Unexpected error\"}\n </CardContent>\n </Card>\n </div>\n ) : queryMutation.data ? (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex gap-2\">\n <div className=\"flex text-xs gap-6\">\n <div>\n Status: {queryMutation.data.status}{\" \"}\n {statusCodeMap[queryMutation.data.status] ?? \"\"}\n </div>\n <div>Time: {queryMutation.data.time.toFixed(0)}ms</div>\n <div>Size: {queryMutation.data.size} B</div>\n </div>\n </div>\n <Tabs defaultValue=\"response\">\n <TabsList>\n <TabsTrigger value=\"response\">Response</TabsTrigger>\n <TabsTrigger value=\"headers\">\n {headerEntries.length\n ? `Headers (${headerEntries.length})`\n : \"No headers\"}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"response\">\n <ResponseTab\n headers={queryMutation.data.headers}\n body={queryMutation.data.body}\n />\n </TabsContent>\n <TabsContent value=\"headers\">\n <Card\n // playground dialog has h-5/6 ≈ 83.333vh\n className=\"max-h-[calc(83.333vh-140px)] overflow-y-auto grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4\"\n >\n <div className=\"font-semibold\">Key</div>\n <div className=\"font-semibold\">Value</div>\n {headerEntries.map(([key, value]) => (\n <Fragment key={key}>\n <div>{key}</div>\n <div className=\"break-words\">{value}</div>\n </Fragment>\n ))}\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n ) : (\n <div className=\"grid place-items-center h-full\">\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n {queryMutation.isPending ? (\n <Spinner />\n ) : (\n \"Send a request first to see the response here\"\n )}\n </span>\n </div>\n )}\n </div>\n </div>\n </form>\n </FormProvider>\n );\n};\n\nexport default Playground;\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogTitle,\n DialogTrigger,\n} from \"zudoku/ui/Dialog.js\";\nimport { Playground, type PlaygroundContentProps } from \"./Playground.js\";\n\nexport type PlaygroundDialogProps = PropsWithChildren<PlaygroundContentProps>;\n\nconst HeroPlayIcon = ({\n className,\n size = 16,\n}: {\n className?: string;\n size?: number;\n}) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={className}\n width={size}\n height={size}\n >\n <path\n fillRule=\"evenodd\"\n d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm14.024-.983a1.125 1.125 0 0 1 0 1.966l-5.603 3.113A1.125 1.125 0 0 1 9 15.113V8.887c0-.857.921-1.4 1.671-.983l5.603 3.113Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nconst PlaygroundDialog = (props: PlaygroundDialogProps) => {\n const [open, setOpen] = useState(false);\n return (\n <Dialog onOpenChange={(open) => setOpen(open)}>\n <DialogTrigger asChild>\n {props.children ?? (\n <button className=\"flex gap-1 items-center px-2 py-1 rounded-md bg-primary/80 hover:bg-primary transition text-primary-foreground text-xs\">\n Test\n <HeroPlayIcon className=\"\" size={14} />\n </button>\n )}\n </DialogTrigger>\n\n <DialogContent\n className=\"max-w-screen-xl w-full h-5/6 overflow-auto p-0\"\n aria-describedby={undefined}\n >\n <VisuallyHidden>\n <DialogTitle>Playground</DialogTitle>\n </VisuallyHidden>\n {open && <Playground {...props} />}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { PlaygroundDialog };\n","import { matchPath, type RouteObject } from \"react-router-dom\";\nimport { type ZudokuPlugin } from \"../../core/plugins.js\";\nimport { graphql } from \"./graphql/index.js\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { CirclePlayIcon, LogInIcon } from \"lucide-react\";\nimport type { SidebarItem } from \"../../../config/validators/SidebarSchema.js\";\nimport { useAuth } from \"../../authentication/hook.js\";\nimport { ColorMap } from \"../../components/navigation/SidebarBadge.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { GraphQLClient } from \"./client/GraphQLClient.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\nimport type { PlaygroundContentProps } from \"./playground/Playground.js\";\nimport { PlaygroundDialog } from \"./playground/PlaygroundDialog.js\";\n\nconst GetCategoriesQuery = graphql(`\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n`);\n\ntype InternalOasPluginConfig = { inMemory?: boolean };\n\nconst MethodColorMap: Record<string, keyof typeof ColorMap> = {\n get: \"green\",\n post: \"blue\",\n put: \"yellow\",\n delete: \"red\",\n patch: \"purple\",\n options: \"gray\",\n head: \"gray\",\n};\n\nexport type OpenApiPluginOptions = OasPluginConfig & InternalOasPluginConfig;\n\nexport const openApiPlugin = (config: OpenApiPluginOptions): ZudokuPlugin => {\n const basePath = joinPath(config.navigationId ?? \"/reference\");\n\n const client = new GraphQLClient(config);\n\n return {\n getHead: () => {\n if (config.type === \"url\" && !config.skipPreload) {\n return (\n <link\n rel=\"preload\"\n href={config.input}\n as=\"fetch\"\n crossOrigin=\"anonymous\"\n />\n );\n }\n\n if (config.server) {\n return <link rel=\"preconnect\" href={config.server} />;\n }\n },\n getMdxComponents: () => ({\n OpenPlaygroundButton: ({\n requireAuth,\n server,\n method,\n url,\n ...props\n }: Partial<PlaygroundContentProps> & { requireAuth: boolean }) => {\n const auth = useAuth();\n // We don't have the GraphQL context here\n const serverQuery = useQuery({\n queryFn: () =>\n client.fetch(GetCategoriesQuery, {\n type: config.type,\n input: config.input,\n }),\n enabled: !server,\n queryKey: [\"playground-server\"],\n });\n\n if (requireAuth && !auth.isAuthenticated) {\n return (\n <Button\n className=\"gap-2 items-center\"\n variant=\"outline\"\n onClick={auth.login}\n >\n Login to open in Playground <LogInIcon size={16} />\n </Button>\n );\n }\n\n return (\n <PlaygroundDialog\n url={url ?? \"/\"}\n method={method ?? \"get\"}\n server={\n server ?? serverQuery.data?.schema.url ?? \"https://example.com\"\n }\n {...props}\n >\n <Button className=\"gap-2 items-center\" variant=\"outline\">\n Open in Playground <CirclePlayIcon size={16} />\n </Button>\n </PlaygroundDialog>\n );\n },\n }),\n getSidebar: async (path: string) => {\n if (!matchPath({ path: basePath, end: false }, path)) {\n return [];\n }\n\n try {\n const data = await client.fetch(GetCategoriesQuery, {\n type: config.type,\n input: config.input,\n });\n\n const categories = data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map<SidebarItem>((tag) => ({\n type: \"category\",\n label: tag.name || \"Other endpoints\",\n collapsible: true,\n collapsed: false,\n items: tag.operations.map((operation) => ({\n type: \"link\",\n label: operation.summary ?? operation.path,\n href: `#${operation.slug}`,\n badge: {\n label: operation.method,\n color: MethodColorMap[operation.method.toLowerCase()]!,\n },\n })),\n }));\n\n categories.unshift({\n type: \"link\",\n label: \"Overview\",\n href: \"#description\",\n });\n\n return categories;\n } catch {\n return [];\n }\n },\n getRoutes: () =>\n [\n {\n async lazy() {\n const { OpenApiRoute } = await import(\"./Route.js\");\n return {\n element: <OpenApiRoute client={client} config={config} />,\n };\n },\n children: [\n {\n path: basePath,\n children: [\n {\n index: true,\n async lazy() {\n const { OperationList } = await import(\n \"./OperationList.js\"\n );\n return { element: <OperationList /> };\n },\n },\n ],\n },\n ],\n },\n ] satisfies RouteObject[],\n };\n};\n"],"names":["TypedDocumentString","value","__meta__","__publicField","OperationsFragmentFragmentDoc","ServersQueryDocument","AllOperationsDocument","GetServerQueryDocument","GetCategoriesDocument","documents","types.ServersQueryDocument","types.OperationsFragmentFragmentDoc","types.AllOperationsDocument","types.GetServerQueryDocument","types.GetCategoriesDocument","graphql","source","assertError","err","isError","objectToString","obj","NAME","__name","getGlobalName","parseArguments","args","options","shortMessage","Layerr","errorOptionsOrMessage","messageText","message","ctor","cause","output","ENCODING","ENCODING_LEN","TIME_MAX","TIME_LEN","RANDOM_LEN","ERROR_INFO","detectPRNG","root","rootLookup","detectRoot","globalCrypto","buffer","inWebWorker","encodeRandom","len","prng","str","randomChar","encodeTime","now","mod","currentLen","rand","ulid","seedTime","currentPRNG","seed","localServerPromise","worker","resolveVariables","variables","throwIfError","response","_a","ZudokuError","GraphQLClient","config","__privateAdd","_mode","_pendingRequests","_port","_initializeLocalServer","m","query","operationName","body","__privateGet","result","localServer","initializeWorker","channel","__privateSet","e","id","resolve","c2n","c","s2n","s","a","pastellize","hue","saturation","lightness","DATA_ATTR","usePastellizedColor","name","resolvedTheme","useTheme","ColorizedParam","className","backgroundOpacity","borderOpacity","slug","children","onClick","ref","useRef","normalized","normalizedSlug","color","borderColor","backgroundColor","useEffect","onMouseEnter","el","onMouseLeave","jsx","cn","createUrl","host","path","data","filledPath","match","key","part","url","param","Headers","control","register","fields","append","remove","useFieldArray","jsxs","header","Input","Button","XIcon","PathParams","i","Controller","field","EraserIcon","createVariantComponent","tag","cvx","MyVariant","React","asChild","props","Comp","Slot","InlineInput","QueryParams","queryParams","form","useFormContext","requiredFields","hasSelectedIdentity","NO_IDENTITY","SimpleSelect","onChange","showChevrons","option","ChevronsUpDownIcon","mimeTypeToLanguage","mimeType","mime","detectLanguage","headers","contentType","tryParseJson","ResponseTab","detectedLanguage","jsonContent","beautifiedBody","view","setView","useState","Card","SyntaxHighlight","statusCodeMap","Playground","server","servers","method","pathParams","defaultBody","selectedServer","setSelectedServer","useSelectedServerStore","startTransition","useTransition","handleSubmit","watch","setValue","useForm","formState","identities","useApiIdentities","setOnce","firstIdentity","queryMutation","useMutation","requestUrl","start","request","h","_b","time","error","arr","isPathParam","replaced","p","pathParamValue","Fragment","headerEntries","urlQueryParams","serverSelect","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","FormProvider","Tabs","TabsList","TabsTrigger","Spinner","identity","TabsContent","Callout","CardHeader","CardTitle","CardContent","HeroPlayIcon","size","PlaygroundDialog","open","setOpen","Dialog","DialogTrigger","DialogContent","VisuallyHidden","DialogTitle","GetCategoriesQuery","MethodColorMap","openApiPlugin","basePath","joinPath","client","requireAuth","auth","useAuth","serverQuery","useQuery","LogInIcon","CirclePlayIcon","matchPath","categories","operation","OpenApiRoute","OperationList"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6]}
|