@lukoweb/apitogo 0.1.23 → 0.1.37
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/README.md +92 -0
- package/cli.js +13 -13
- package/client.d.ts +8 -8
- package/dist/cli/cli.js +1117 -624
- package/dist/declarations/config/config.d.ts +4 -0
- package/dist/declarations/config/loader.d.ts +2 -0
- package/dist/declarations/config/resolve-modules.d.ts +34 -0
- package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
- package/dist/declarations/config/validators/ModulesSchema.d.ts +417 -0
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +123 -4
- package/dist/declarations/index.d.ts +3 -1
- package/dist/declarations/lib/authentication/components/ProductionUnlockPage.d.ts +1 -0
- package/dist/declarations/lib/authentication/hook.d.ts +3 -19
- package/dist/declarations/lib/authentication/providers/dev-portal-constants.d.ts +16 -0
- package/dist/declarations/lib/authentication/providers/dev-portal-utils.d.ts +9 -0
- package/dist/declarations/lib/authentication/providers/dev-portal.d.ts +39 -0
- package/dist/declarations/lib/authentication/state.d.ts +12 -26
- package/dist/declarations/lib/components/LandingLayout.d.ts +4 -0
- package/dist/declarations/lib/components/index.d.ts +2 -0
- package/dist/declarations/lib/plugins/api-keys/index.d.ts +2 -1
- package/dist/flat-config.d.ts +209 -24
- package/docs/components/alert.mdx +130 -0
- package/docs/components/badge.mdx +70 -0
- package/docs/components/button.mdx +132 -0
- package/docs/components/callout.mdx +112 -0
- package/docs/components/card.mdx +104 -0
- package/docs/components/checkbox.mdx +72 -0
- package/docs/components/client-only.mdx +79 -0
- package/docs/components/code-tabs.mdx +179 -0
- package/docs/components/dialog.mdx +167 -0
- package/docs/components/head.mdx +200 -0
- package/docs/components/icons.mdx +27 -0
- package/docs/components/input.mdx +96 -0
- package/docs/components/label.mdx +86 -0
- package/docs/components/link.mdx +242 -0
- package/docs/components/markdown.mdx +151 -0
- package/docs/components/mermaid.mdx +81 -0
- package/docs/components/playground.mdx +87 -0
- package/docs/components/secret.mdx +79 -0
- package/docs/components/select.mdx +176 -0
- package/docs/components/shadcn.mdx +73 -0
- package/docs/components/slider.mdx +108 -0
- package/docs/components/slot.mdx +119 -0
- package/docs/components/stepper.mdx +138 -0
- package/docs/components/switch.mdx +96 -0
- package/docs/components/syntax-highlight.mdx +602 -0
- package/docs/components/textarea.mdx +78 -0
- package/docs/components/tooltip.mdx +195 -0
- package/docs/components/typography.mdx +61 -0
- package/docs/concepts/auth-provider-api-identities.md +109 -0
- package/docs/configuration/ai-assistants.md +65 -0
- package/docs/configuration/api-catalog.md +109 -0
- package/docs/configuration/api-reference.md +397 -0
- package/docs/configuration/authentication-auth0.md +174 -0
- package/docs/configuration/authentication-azure-ad.md +238 -0
- package/docs/configuration/authentication-clerk.md +110 -0
- package/docs/configuration/authentication-firebase.md +62 -0
- package/docs/configuration/authentication-pingfederate.md +136 -0
- package/docs/configuration/authentication-supabase.md +226 -0
- package/docs/configuration/authentication.md +231 -0
- package/docs/configuration/build-configuration.mdx +147 -0
- package/docs/configuration/docs.md +282 -0
- package/docs/configuration/footer.mdx +214 -0
- package/docs/configuration/llms.md +90 -0
- package/docs/configuration/make-config.mdx +90 -0
- package/docs/configuration/navigation.mdx +422 -0
- package/docs/configuration/overview.md +380 -0
- package/docs/configuration/protected-routes.md +150 -0
- package/docs/configuration/search.md +163 -0
- package/docs/configuration/sentry.mdx +44 -0
- package/docs/configuration/site.md +124 -0
- package/docs/configuration/slots.mdx +125 -0
- package/docs/configuration/vite-config.md +18 -0
- package/docs/custom-plugins.md +285 -0
- package/docs/customization/colors-theme.mdx +276 -0
- package/docs/customization/fonts.md +110 -0
- package/docs/deploy/apache-nginx.md +41 -0
- package/docs/deploy/apitogo.md +139 -0
- package/docs/deploy/cloudflare-pages.md +75 -0
- package/docs/deploy/direct-upload.md +18 -0
- package/docs/deploy/github-pages.md +50 -0
- package/docs/deploy/vercel.md +103 -0
- package/docs/deployment.md +21 -0
- package/docs/extending/events.md +124 -0
- package/docs/guides/custom-pages.md +106 -0
- package/docs/guides/environment-variables.md +99 -0
- package/docs/guides/managing-api-keys-and-identities.md +172 -0
- package/docs/guides/mermaid.mdx +70 -0
- package/docs/guides/navigation-migration.md +87 -0
- package/docs/guides/navigation-rules.mdx +203 -0
- package/docs/guides/processors.mdx +234 -0
- package/docs/guides/static-files.md +55 -0
- package/docs/guides/transforming-examples.md +156 -0
- package/docs/guides/using-multiple-apis.md +87 -0
- package/docs/markdown/admonitions.md +128 -0
- package/docs/markdown/code-blocks.md +196 -0
- package/docs/markdown/frontmatter.md +173 -0
- package/docs/markdown/mdx.md +68 -0
- package/docs/markdown/overview.md +275 -0
- package/docs/plugins.md +5 -0
- package/docs/quickstart.md +87 -0
- package/docs/writing.mdx +72 -0
- package/package.json +170 -116
- package/src/app/ZuploBuildConfig.ts +36 -36
- package/src/app/defaultTheme.css +77 -77
- package/src/app/demo-cdn.html +37 -37
- package/src/app/demo.html +21 -21
- package/src/app/demo.tsx +77 -77
- package/src/app/entry.client.tsx +118 -118
- package/src/app/entry.server.tsx +160 -160
- package/src/app/env.ts +40 -40
- package/src/app/font.geist.css +73 -73
- package/src/app/main.css +390 -390
- package/src/app/main.tsx +8 -1
- package/src/app/polyfills.ts +47 -47
- package/src/app/processRoutes.tsx +51 -25
- package/src/app/sentry.ts +24 -24
- package/src/app/standalone.html +23 -23
- package/src/app/standalone.tsx +60 -60
- package/src/app/utils/createRedirectRoutes.ts +11 -11
- package/src/config/config.ts +32 -0
- package/src/config/create-plugin.ts +71 -71
- package/src/config/file-exists.ts +6 -6
- package/src/config/loader.ts +11 -1
- package/src/config/resolve-modules.ts +260 -0
- package/src/config/validators/BuildSchema.ts +95 -95
- package/src/config/validators/HeaderNavigationSchema.ts +41 -41
- package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
- package/src/config/validators/InputNavigationSchema.ts +206 -206
- package/src/config/validators/ModulesSchema.ts +312 -0
- package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
- package/src/config/validators/ZudokuConfig.ts +766 -729
- package/src/config/validators/auth.ts +3 -3
- package/src/config/validators/reason-codes.ts +7 -7
- package/src/env.d.ts +11 -11
- package/src/index.ts +31 -0
- package/src/lib/MissingIcon.tsx +22 -22
- package/src/lib/assets/language-icons/bun.tsx +50 -50
- package/src/lib/assets/language-icons/c.tsx +31 -31
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -22
- package/src/lib/assets/language-icons/cpp.tsx +35 -35
- package/src/lib/assets/language-icons/csharp.tsx +35 -35
- package/src/lib/assets/language-icons/css.tsx +36 -36
- package/src/lib/assets/language-icons/dart.tsx +39 -39
- package/src/lib/assets/language-icons/elixir.tsx +19 -19
- package/src/lib/assets/language-icons/go.tsx +19 -19
- package/src/lib/assets/language-icons/graphql.tsx +19 -19
- package/src/lib/assets/language-icons/html.tsx +24 -24
- package/src/lib/assets/language-icons/java.tsx +35 -35
- package/src/lib/assets/language-icons/javascript.tsx +11 -11
- package/src/lib/assets/language-icons/json.tsx +19 -19
- package/src/lib/assets/language-icons/kotlin.tsx +30 -30
- package/src/lib/assets/language-icons/markdown.tsx +19 -19
- package/src/lib/assets/language-icons/mdx.tsx +23 -23
- package/src/lib/assets/language-icons/npm.tsx +15 -15
- package/src/lib/assets/language-icons/objectivec.tsx +23 -23
- package/src/lib/assets/language-icons/ocaml.tsx +34 -34
- package/src/lib/assets/language-icons/php.tsx +19 -19
- package/src/lib/assets/language-icons/pnpm.tsx +32 -32
- package/src/lib/assets/language-icons/powershell.tsx +27 -27
- package/src/lib/assets/language-icons/python.tsx +23 -23
- package/src/lib/assets/language-icons/react.tsx +21 -21
- package/src/lib/assets/language-icons/ruby.tsx +19 -19
- package/src/lib/assets/language-icons/rust.tsx +19 -19
- package/src/lib/assets/language-icons/scala.tsx +19 -19
- package/src/lib/assets/language-icons/shell.tsx +19 -19
- package/src/lib/assets/language-icons/swift.tsx +19 -19
- package/src/lib/assets/language-icons/toml.tsx +23 -23
- package/src/lib/assets/language-icons/typescript.tsx +23 -23
- package/src/lib/assets/language-icons/xml.tsx +19 -19
- package/src/lib/assets/language-icons/yaml.tsx +23 -23
- package/src/lib/assets/language-icons/yarn.tsx +17 -17
- package/src/lib/assets/language-icons/zig.tsx +32 -32
- package/src/lib/auth/issuer.ts +34 -31
- package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
- package/src/lib/authentication/authentication.ts +48 -48
- package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +27 -0
- package/src/lib/authentication/components/SignOut.tsx +15 -15
- package/src/lib/authentication/constants.ts +1 -1
- package/src/lib/authentication/errors.ts +34 -34
- package/src/lib/authentication/hook.ts +141 -139
- package/src/lib/authentication/providers/auth0.tsx +91 -91
- package/src/lib/authentication/providers/azureb2c.tsx +223 -223
- package/src/lib/authentication/providers/dev-portal-constants.ts +21 -0
- package/src/lib/authentication/providers/dev-portal-utils.ts +107 -0
- package/src/lib/authentication/providers/dev-portal.tsx +270 -0
- package/src/lib/authentication/providers/firebase.tsx +486 -486
- package/src/lib/authentication/providers/openid.tsx +516 -516
- package/src/lib/authentication/providers/supabase.tsx +412 -412
- package/src/lib/authentication/providers/util.ts +26 -26
- package/src/lib/authentication/state.ts +179 -91
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -10
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -15
- package/src/lib/authentication/ui/icons/Github.tsx +16 -16
- package/src/lib/authentication/ui/icons/Google.tsx +16 -16
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -12
- package/src/lib/authentication/ui/icons/X.tsx +10 -10
- package/src/lib/authentication/utils/relativeRedirectUrl.ts +16 -16
- package/src/lib/components/AnchorLink.tsx +24 -24
- package/src/lib/components/Banner.tsx +52 -52
- package/src/lib/components/Bootstrap.tsx +77 -77
- package/src/lib/components/BuildCheck.tsx +87 -87
- package/src/lib/components/CategoryHeading.tsx +19 -19
- package/src/lib/components/ClientOnly.tsx +19 -19
- package/src/lib/components/ErrorPage.tsx +26 -26
- package/src/lib/components/Footer.tsx +140 -140
- package/src/lib/components/Framed.tsx +51 -51
- package/src/lib/components/Header.tsx +11 -3
- package/src/lib/components/HeaderNavigation.tsx +148 -148
- package/src/lib/components/Heading.tsx +84 -84
- package/src/lib/components/InlineCode.tsx +15 -15
- package/src/lib/components/LandingLayout.tsx +21 -0
- package/src/lib/components/LanguageIcon.tsx +199 -199
- package/src/lib/components/Markdown.tsx +55 -55
- package/src/lib/components/Meta.tsx +46 -46
- package/src/lib/components/MobileTopNavigation.tsx +11 -3
- package/src/lib/components/NotFoundPage.tsx +37 -37
- package/src/lib/components/PageProgress.tsx +28 -28
- package/src/lib/components/PagefindSearchMeta.tsx +14 -14
- package/src/lib/components/Pagination.tsx +44 -44
- package/src/lib/components/PathRenderer.tsx +61 -61
- package/src/lib/components/PluginHeads.tsx +17 -17
- package/src/lib/components/Search.tsx +70 -70
- package/src/lib/components/Slot.tsx +64 -64
- package/src/lib/components/Spinner.tsx +5 -5
- package/src/lib/components/StatusPage.tsx +96 -96
- package/src/lib/components/ThemeSwitch.tsx +49 -49
- package/src/lib/components/Typography.tsx +12 -12
- package/src/lib/components/Zudoku.tsx +106 -106
- package/src/lib/components/cache.ts +27 -27
- package/src/lib/components/context/RenderContext.ts +11 -11
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -19
- package/src/lib/components/context/SlotProvider.tsx +149 -149
- package/src/lib/components/context/ViewportAnchorContext.tsx +137 -137
- package/src/lib/components/context/ZudokuContext.ts +140 -140
- package/src/lib/components/context/ZudokuProvider.tsx +22 -22
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/Navigation.tsx +51 -51
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
- package/src/lib/components/navigation/Toc.tsx +137 -137
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -25
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -14
- package/src/lib/components/navigation/utils.ts +234 -234
- package/src/lib/core/RouteGuard.tsx +11 -1
- package/src/lib/core/ZudokuContext.ts +271 -271
- package/src/lib/core/plugins.ts +138 -138
- package/src/lib/core/react-query.ts +1 -1
- package/src/lib/core/router.ts +1 -1
- package/src/lib/core/transform-config.ts +67 -67
- package/src/lib/demo/DemoAnnouncement.tsx +17 -17
- package/src/lib/errors/ErrorAlert.tsx +28 -28
- package/src/lib/errors/RouterError.tsx +18 -18
- package/src/lib/errors/ServerError.tsx +5 -5
- package/src/lib/errors/TopLevelError.tsx +6 -6
- package/src/lib/hooks/index.ts +13 -13
- package/src/lib/hooks/useEvent.ts +41 -41
- package/src/lib/hooks/useHighlighter.ts +15 -15
- package/src/lib/hooks/useHotkey.ts +70 -70
- package/src/lib/icons.ts +2 -2
- package/src/lib/navigation/applyRules.ts +127 -127
- package/src/lib/navigation/pathMatcher.ts +81 -81
- package/src/lib/oas/graphql/circular.ts +69 -69
- package/src/lib/oas/graphql/constants.ts +2 -2
- package/src/lib/oas/graphql/index.ts +791 -791
- package/src/lib/oas/parser/dereference/index.ts +84 -84
- package/src/lib/oas/parser/dereference/resolveRef.ts +32 -32
- package/src/lib/oas/parser/index.ts +129 -129
- package/src/lib/oas/parser/schemas/v3.0.json +1489 -1489
- package/src/lib/oas/parser/schemas/v3.1.json +1298 -1298
- package/src/lib/oas/parser/upgrade/index.ts +174 -174
- package/src/lib/plugins/api-catalog/index.tsx +119 -119
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
- package/src/lib/plugins/api-keys/index.tsx +274 -272
- package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
- package/src/lib/plugins/custom-pages/index.tsx +32 -32
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -11
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -19
- package/src/lib/plugins/markdown/index.tsx +62 -62
- package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
- package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -273
- package/src/lib/plugins/openapi/OasProvider.tsx +74 -74
- package/src/lib/plugins/openapi/OperationList.tsx +275 -275
- package/src/lib/plugins/openapi/ParamInfos.tsx +96 -96
- package/src/lib/plugins/openapi/ParameterList.tsx +53 -53
- package/src/lib/plugins/openapi/ParameterListItem.tsx +161 -161
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +67 -67
- package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
- package/src/lib/plugins/openapi/SimpleSelect.tsx +46 -46
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +73 -73
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -16
- package/src/lib/plugins/openapi/client/createServer.ts +35 -35
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +44 -44
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -24
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -29
- package/src/lib/plugins/openapi/context.tsx +16 -16
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +104 -104
- package/src/lib/plugins/openapi/graphql/gql.ts +95 -95
- package/src/lib/plugins/openapi/graphql/graphql.ts +835 -835
- package/src/lib/plugins/openapi/graphql/index.ts +2 -2
- package/src/lib/plugins/openapi/index.tsx +221 -221
- package/src/lib/plugins/openapi/interfaces.ts +100 -100
- package/src/lib/plugins/openapi/playground/Headers.tsx +6 -6
- package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -87
- package/src/lib/plugins/openapi/playground/createUrl.ts +25 -25
- package/src/lib/plugins/openapi/playground/fileUtils.ts +36 -36
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -26
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -31
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +29 -29
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +340 -340
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -36
- package/src/lib/plugins/openapi/playground/serializeQueryParams.ts +125 -125
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -23
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -29
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -103
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -57
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -1
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -39
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -132
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -123
- package/src/lib/plugins/openapi/schema/utils.ts +49 -49
- package/src/lib/plugins/openapi/state.ts +36 -36
- package/src/lib/plugins/openapi/util/buildTagCategories.ts +54 -54
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +135 -135
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -39
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +191 -191
- package/src/lib/plugins/openapi/util/getRoutes.tsx +265 -265
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -11
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -27
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -32
- package/src/lib/plugins/openapi/util/useWarmupSchema.ts +23 -23
- package/src/lib/plugins/search-inkeep/index.tsx +108 -108
- package/src/lib/plugins/search-inkeep/inkeep.ts +24 -24
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -74
- package/src/lib/plugins/search-pagefind/index.tsx +21 -21
- package/src/lib/plugins/search-pagefind/types.ts +118 -118
- package/src/lib/shiki-constants.ts +24 -24
- package/src/lib/testing/index.tsx +146 -146
- package/src/lib/ui/Accordion.tsx +55 -55
- package/src/lib/ui/Alert.tsx +84 -84
- package/src/lib/ui/AlertDialog.tsx +195 -195
- package/src/lib/ui/AspectRatio.tsx +5 -5
- package/src/lib/ui/Badge.tsx +48 -48
- package/src/lib/ui/Breadcrumb.tsx +115 -115
- package/src/lib/ui/Button.tsx +65 -65
- package/src/lib/ui/ButtonGroup.tsx +80 -80
- package/src/lib/ui/Callout.tsx +113 -113
- package/src/lib/ui/Card.tsx +95 -95
- package/src/lib/ui/Carousel.tsx +259 -259
- package/src/lib/ui/Checkbox.tsx +28 -28
- package/src/lib/ui/CodeBlock.tsx +92 -92
- package/src/lib/ui/CodeTabPanel.tsx +13 -13
- package/src/lib/ui/CodeTabs.tsx +161 -161
- package/src/lib/ui/Collapsible.tsx +31 -31
- package/src/lib/ui/Dialog.tsx +138 -138
- package/src/lib/ui/DismissibleAlert.tsx +74 -74
- package/src/lib/ui/Drawer.tsx +121 -121
- package/src/lib/ui/DropdownMenu.tsx +254 -254
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -99
- package/src/lib/ui/Form.tsx +176 -176
- package/src/lib/ui/Frame.tsx +81 -81
- package/src/lib/ui/HoverCard.tsx +26 -26
- package/src/lib/ui/Input.tsx +23 -23
- package/src/lib/ui/InputGroup.tsx +168 -168
- package/src/lib/ui/Item.tsx +213 -213
- package/src/lib/ui/Kbd.tsx +28 -28
- package/src/lib/ui/Label.tsx +23 -23
- package/src/lib/ui/NativeSelect.tsx +48 -48
- package/src/lib/ui/NavigationMenu.tsx +169 -169
- package/src/lib/ui/Pagination.tsx +115 -115
- package/src/lib/ui/Popover.tsx +28 -28
- package/src/lib/ui/Progress.tsx +25 -25
- package/src/lib/ui/RadioGroup.tsx +41 -41
- package/src/lib/ui/ReactComponentDoc.tsx +68 -68
- package/src/lib/ui/ScrollArea.tsx +45 -45
- package/src/lib/ui/Secret.tsx +133 -133
- package/src/lib/ui/Select.tsx +184 -184
- package/src/lib/ui/Separator.tsx +25 -25
- package/src/lib/ui/Skeleton.tsx +15 -15
- package/src/lib/ui/Slider.tsx +25 -25
- package/src/lib/ui/Stepper.tsx +8 -8
- package/src/lib/ui/Switch.tsx +26 -26
- package/src/lib/ui/SyntaxHighlight.tsx +54 -54
- package/src/lib/ui/Tabs.tsx +52 -52
- package/src/lib/ui/Textarea.tsx +22 -22
- package/src/lib/ui/Toggle.tsx +42 -42
- package/src/lib/ui/ToggleGroup.tsx +58 -58
- package/src/lib/ui/Tooltip.tsx +65 -65
- package/src/lib/ui/Value.tsx +42 -42
- package/src/lib/ui/util.tsx +8 -8
- package/src/lib/util/cn.ts +6 -6
- package/src/lib/util/createVariantComponent.tsx +61 -61
- package/src/lib/util/ensureArray.ts +3 -3
- package/src/lib/util/flattenAllOf.ts +72 -72
- package/src/lib/util/flattenAllOfProcessor.ts +74 -74
- package/src/lib/util/hastToJsx.tsx +67 -67
- package/src/lib/util/humanFileSize.ts +15 -15
- package/src/lib/util/invariant.ts +52 -52
- package/src/lib/util/joinUrl.ts +60 -60
- package/src/lib/util/logInit.ts +9 -9
- package/src/lib/util/objectEntries.ts +5 -5
- package/src/lib/util/os.ts +18 -18
- package/src/lib/util/pastellize.ts +25 -25
- package/src/lib/util/problemJson.ts +63 -63
- package/src/lib/util/readFrontmatter.ts +14 -14
- package/src/lib/util/renderIf.ts +4 -4
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -18
- package/src/lib/util/slugify.ts +21 -21
- package/src/lib/util/syncZustandState.ts +22 -22
- package/src/lib/util/traverse.ts +70 -70
- package/src/lib/util/types.ts +7 -7
- package/src/lib/util/url.ts +18 -18
- package/src/lib/util/useCopyToClipboard.ts +17 -17
- package/src/lib/util/useExposedProps.tsx +27 -27
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -6
- package/src/lib/util/useLatest.ts +18 -18
- package/src/lib/util/useOnScreen.ts +34 -34
- package/src/lib/util/useScrollToAnchor.ts +70 -70
- package/src/lib/util/useScrollToTop.ts +18 -18
- package/src/types.d.ts +57 -53
- package/src/vite/api/SchemaManager.ts +371 -371
- package/src/vite/api/schema-codegen.ts +163 -163
- package/src/vite/config.ts +5 -1
- package/src/vite/css/collect.ts +42 -42
- package/src/vite/css/plugin.ts +105 -105
- package/src/vite/debug.ts +18 -18
- package/src/vite/dev-portal-env.ts +93 -0
- package/src/vite/html.ts +54 -54
- package/src/vite/index.ts +2 -2
- package/src/vite/mdx/rehype-extract-toc-with-jsx-export.ts +19 -19
- package/src/vite/mdx/rehype-extract-toc-with-jsx.ts +70 -70
- package/src/vite/mdx/remark-code-tabs.ts +47 -47
- package/src/vite/mdx/remark-inject-filepath.ts +13 -13
- package/src/vite/mdx/remark-last-modified.ts +103 -103
- package/src/vite/mdx/remark-link-rewrite.ts +23 -23
- package/src/vite/mdx/remark-normalize-image-url.ts +15 -15
- package/src/vite/mdx/remark-static-generation.ts +149 -149
- package/src/vite/mdx/utils.ts +32 -32
- package/src/vite/output.ts +261 -261
- package/src/vite/package-root.ts +12 -12
- package/src/vite/pagefind-dev-index.ts +100 -100
- package/src/vite/plugin-api-keys.ts +6 -1
- package/src/vite/plugin-api.ts +4 -1
- package/src/vite/plugin-auth.ts +5 -1
- package/src/vite/plugin-component.ts +1 -1
- package/src/vite/plugin-config-reload.ts +49 -49
- package/src/vite/plugin-doc-metadata.ts +45 -45
- package/src/vite/plugin-docs.ts +4 -1
- package/src/vite/plugin-metadata.ts +30 -30
- package/src/vite/plugin-modules.ts +144 -0
- package/src/vite/plugin-shiki-register.ts +97 -97
- package/src/vite/plugin-theme.ts +399 -399
- package/src/vite/plugin.ts +2 -0
- package/src/vite/prerender/utils.ts +76 -76
- package/src/vite/prerender/worker.ts +118 -118
- package/src/vite/reporter.ts +34 -34
- package/src/vite/shadcn-registry.ts +48 -48
- package/src/vite/sitemap.ts +78 -78
- package/src/vite/ssr-templates/cloudflare.ts +19 -19
- package/src/vite/ssr-templates/node.ts +25 -25
- package/src/vite/ssr-templates/vercel.ts +22 -22
- package/src/vite/zuplo.ts +30 -30
- package/src/vite-env.d.ts +6 -6
- package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -168
- package/src/zuplo/enrich-with-zuplo.ts +256 -256
- package/src/zuplo/policy-types.ts +46 -46
- package/src/zuplo/with-zuplo-processors.ts +36 -36
- package/src/zuplo/with-zuplo.ts +14 -14
- package/LICENSE.md +0 -18
- package/dist/declarations/lib/components/navigation/ZudokuLogo.d.ts +0 -6
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Tooltip
|
|
3
|
+
sidebar_icon: info
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
Tooltip,
|
|
8
|
+
TooltipContent,
|
|
9
|
+
TooltipProvider,
|
|
10
|
+
TooltipTrigger,
|
|
11
|
+
TooltipArrow,
|
|
12
|
+
} from "@lukoweb/apitogo/ui/Tooltip";
|
|
13
|
+
import { Button } from "@lukoweb/apitogo/ui/Button";
|
|
14
|
+
|
|
15
|
+
A tooltip component built on Radix UI primitives for displaying helpful information on hover or
|
|
16
|
+
focus.
|
|
17
|
+
|
|
18
|
+
## Import
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import {
|
|
22
|
+
Tooltip,
|
|
23
|
+
TooltipContent,
|
|
24
|
+
TooltipProvider,
|
|
25
|
+
TooltipTrigger,
|
|
26
|
+
TooltipArrow,
|
|
27
|
+
} from "@lukoweb/apitogo/ui/Tooltip";
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Components
|
|
31
|
+
|
|
32
|
+
The Tooltip component consists of several sub-components:
|
|
33
|
+
|
|
34
|
+
- `TooltipProvider` - Provides context for tooltip behavior
|
|
35
|
+
- `Tooltip` - The main container (root)
|
|
36
|
+
- `TooltipTrigger` - Element that triggers the tooltip
|
|
37
|
+
- `TooltipContent` - The tooltip content container
|
|
38
|
+
- `TooltipArrow` - Optional arrow pointing to the trigger
|
|
39
|
+
|
|
40
|
+
## Basic Usage
|
|
41
|
+
|
|
42
|
+
<TooltipProvider>
|
|
43
|
+
<Tooltip>
|
|
44
|
+
<TooltipTrigger asChild>
|
|
45
|
+
<Button variant="outline">Hover</Button>
|
|
46
|
+
</TooltipTrigger>
|
|
47
|
+
<TooltipContent>
|
|
48
|
+
<p>Add to library</p>
|
|
49
|
+
</TooltipContent>
|
|
50
|
+
</Tooltip>
|
|
51
|
+
</TooltipProvider>
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<TooltipProvider>
|
|
55
|
+
<Tooltip>
|
|
56
|
+
<TooltipTrigger asChild>
|
|
57
|
+
<Button variant="outline">Hover</Button>
|
|
58
|
+
</TooltipTrigger>
|
|
59
|
+
<TooltipContent>
|
|
60
|
+
<p>Add to library</p>
|
|
61
|
+
</TooltipContent>
|
|
62
|
+
</Tooltip>
|
|
63
|
+
</TooltipProvider>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## With Arrow
|
|
67
|
+
|
|
68
|
+
<TooltipProvider>
|
|
69
|
+
<Tooltip>
|
|
70
|
+
<TooltipTrigger asChild>
|
|
71
|
+
<Button variant="outline">Hover for tooltip with arrow</Button>
|
|
72
|
+
</TooltipTrigger>
|
|
73
|
+
<TooltipContent>
|
|
74
|
+
<p>Add to library</p>
|
|
75
|
+
<TooltipArrow />
|
|
76
|
+
</TooltipContent>
|
|
77
|
+
</Tooltip>
|
|
78
|
+
</TooltipProvider>
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
<TooltipProvider>
|
|
82
|
+
<Tooltip>
|
|
83
|
+
<TooltipTrigger asChild>
|
|
84
|
+
<Button variant="outline">Hover for tooltip with arrow</Button>
|
|
85
|
+
</TooltipTrigger>
|
|
86
|
+
<TooltipContent>
|
|
87
|
+
<p>Add to library</p>
|
|
88
|
+
<TooltipArrow />
|
|
89
|
+
</TooltipContent>
|
|
90
|
+
</Tooltip>
|
|
91
|
+
</TooltipProvider>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Different Sides
|
|
95
|
+
|
|
96
|
+
<TooltipProvider>
|
|
97
|
+
<div className="flex gap-2">
|
|
98
|
+
<Tooltip>
|
|
99
|
+
<TooltipTrigger asChild>
|
|
100
|
+
<Button variant="outline">Top</Button>
|
|
101
|
+
</TooltipTrigger>
|
|
102
|
+
<TooltipContent side="top">
|
|
103
|
+
<p>Top tooltip</p>
|
|
104
|
+
</TooltipContent>
|
|
105
|
+
</Tooltip>
|
|
106
|
+
|
|
107
|
+
<Tooltip>
|
|
108
|
+
<TooltipTrigger asChild>
|
|
109
|
+
<Button variant="outline">Right</Button>
|
|
110
|
+
</TooltipTrigger>
|
|
111
|
+
<TooltipContent side="right">
|
|
112
|
+
<p>Right tooltip</p>
|
|
113
|
+
</TooltipContent>
|
|
114
|
+
</Tooltip>
|
|
115
|
+
|
|
116
|
+
<Tooltip>
|
|
117
|
+
<TooltipTrigger asChild>
|
|
118
|
+
<Button variant="outline">Bottom</Button>
|
|
119
|
+
</TooltipTrigger>
|
|
120
|
+
<TooltipContent side="bottom">
|
|
121
|
+
<p>Bottom tooltip</p>
|
|
122
|
+
</TooltipContent>
|
|
123
|
+
</Tooltip>
|
|
124
|
+
|
|
125
|
+
<Tooltip>
|
|
126
|
+
<TooltipTrigger asChild>
|
|
127
|
+
<Button variant="outline">Left</Button>
|
|
128
|
+
</TooltipTrigger>
|
|
129
|
+
<TooltipContent side="left">
|
|
130
|
+
<p>Left tooltip</p>
|
|
131
|
+
</TooltipContent>
|
|
132
|
+
</Tooltip>
|
|
133
|
+
|
|
134
|
+
</div>
|
|
135
|
+
</TooltipProvider>
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
<TooltipProvider>
|
|
139
|
+
<div className="flex gap-2">
|
|
140
|
+
<Tooltip>
|
|
141
|
+
<TooltipTrigger asChild>
|
|
142
|
+
<Button variant="outline">Top</Button>
|
|
143
|
+
</TooltipTrigger>
|
|
144
|
+
<TooltipContent side="top">
|
|
145
|
+
<p>Top tooltip</p>
|
|
146
|
+
</TooltipContent>
|
|
147
|
+
</Tooltip>
|
|
148
|
+
|
|
149
|
+
<Tooltip>
|
|
150
|
+
<TooltipTrigger asChild>
|
|
151
|
+
<Button variant="outline">Right</Button>
|
|
152
|
+
</TooltipTrigger>
|
|
153
|
+
<TooltipContent side="right">
|
|
154
|
+
<p>Right tooltip</p>
|
|
155
|
+
</TooltipContent>
|
|
156
|
+
</Tooltip>
|
|
157
|
+
|
|
158
|
+
<Tooltip>
|
|
159
|
+
<TooltipTrigger asChild>
|
|
160
|
+
<Button variant="outline">Bottom</Button>
|
|
161
|
+
</TooltipTrigger>
|
|
162
|
+
<TooltipContent side="bottom">
|
|
163
|
+
<p>Bottom tooltip</p>
|
|
164
|
+
</TooltipContent>
|
|
165
|
+
</Tooltip>
|
|
166
|
+
|
|
167
|
+
<Tooltip>
|
|
168
|
+
<TooltipTrigger asChild>
|
|
169
|
+
<Button variant="outline">Left</Button>
|
|
170
|
+
</TooltipTrigger>
|
|
171
|
+
<TooltipContent side="left">
|
|
172
|
+
<p>Left tooltip</p>
|
|
173
|
+
</TooltipContent>
|
|
174
|
+
</Tooltip>
|
|
175
|
+
</div>
|
|
176
|
+
</TooltipProvider>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Global Provider
|
|
180
|
+
|
|
181
|
+
For multiple tooltips, wrap your app with `TooltipProvider`:
|
|
182
|
+
|
|
183
|
+
```tsx
|
|
184
|
+
function App() {
|
|
185
|
+
return <TooltipProvider>{/* Your app content with tooltips */}</TooltipProvider>;
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Features
|
|
190
|
+
|
|
191
|
+
- **Keyboard Navigation**: Accessible via keyboard focus
|
|
192
|
+
- **Positioning**: Smart positioning to stay within viewport
|
|
193
|
+
- **Delay Control**: Configurable show/hide delays
|
|
194
|
+
- **Animation**: Smooth enter/exit animations
|
|
195
|
+
- **Accessibility**: Full screen reader and keyboard support
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Typography
|
|
3
|
+
sidebar_icon: letter-text
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Typography } from "@lukoweb/apitogo/components";
|
|
7
|
+
|
|
8
|
+
The Typography component applies consistent prose styling to text content using
|
|
9
|
+
[Tailwind's typography plugin](https://github.com/tailwindlabs/tailwindcss-typography). It
|
|
10
|
+
automatically formats headings, paragraphs, lists, and other text elements with appropriate spacing,
|
|
11
|
+
|
|
12
|
+
## Import
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
import { Typography } from "@lukoweb/apitogo/components";
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
font sizes, and styling that adapts to both light and dark themes.
|
|
19
|
+
|
|
20
|
+
This component is particularly useful when rendering markdown content or when you need consistent
|
|
21
|
+
text formatting across your documentation.
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
type TypographyProps = {
|
|
27
|
+
children: React.ReactNode;
|
|
28
|
+
className?: string;
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
Wrap any content that needs prose formatting with the Typography component. It will automatically
|
|
35
|
+
style headings, paragraphs, lists, and other text elements:
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import { Typography } from "@lukoweb/apitogo/components";
|
|
39
|
+
|
|
40
|
+
<Typography>
|
|
41
|
+
<h1>Hello World</h1>
|
|
42
|
+
<p>This is a paragraph</p>
|
|
43
|
+
<ul>
|
|
44
|
+
<li>Item 1</li>
|
|
45
|
+
<li>Item 2</li>
|
|
46
|
+
<li>Item 3</li>
|
|
47
|
+
</ul>
|
|
48
|
+
</Typography>;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Example
|
|
52
|
+
|
|
53
|
+
<Typography>
|
|
54
|
+
<h1>Hello World</h1>
|
|
55
|
+
<p>This is a paragraph</p>
|
|
56
|
+
<ul>
|
|
57
|
+
<li>Item 1</li>
|
|
58
|
+
<li>Item 2</li>
|
|
59
|
+
<li>Item 3</li>
|
|
60
|
+
</ul>
|
|
61
|
+
</Typography>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Authentication Providers & API Identities
|
|
3
|
+
sidebar_label: Authentication and Identities
|
|
4
|
+
zuplo: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
When building an API documentation portal, you often need to provide a way for users to authenticate
|
|
8
|
+
their API requests. This typically involves managing API keys and different authentication
|
|
9
|
+
identities. However, implementing a secure and user-friendly system for API key management can be
|
|
10
|
+
complex and time-consuming. APIToGo provides a powerful solution to this problem through its API
|
|
11
|
+
Keys and Identities system.
|
|
12
|
+
|
|
13
|
+
## Authentication Providers and API Identities
|
|
14
|
+
|
|
15
|
+
:::tip
|
|
16
|
+
|
|
17
|
+
**Authentication providers** allow your users to sign in to your documentation portal. **API
|
|
18
|
+
Identities** allow your users to authenticate their API requests.
|
|
19
|
+
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
Before diving into API Identities, it's important to understand that APIToGo separates user
|
|
23
|
+
authentication from API authentication. Authentication providers handle how users sign in to your
|
|
24
|
+
documentation portal, while API Identities manage how these users interact with your APIs.
|
|
25
|
+
|
|
26
|
+
Authentication providers (like Auth0 or custom JWT) handle:
|
|
27
|
+
|
|
28
|
+
- User authentication for the documentation portal
|
|
29
|
+
- Session management
|
|
30
|
+
- User authorization and access control
|
|
31
|
+
|
|
32
|
+
This separation allows you to:
|
|
33
|
+
|
|
34
|
+
- Use different authentication methods for your portal and APIs
|
|
35
|
+
- Manage API access independently of user authentication
|
|
36
|
+
- Support multiple API authentication schemes simultaneously
|
|
37
|
+
|
|
38
|
+
[Learn more about authentication providers](../configuration/authentication)
|
|
39
|
+
|
|
40
|
+
## Understanding API Identities
|
|
41
|
+
|
|
42
|
+
API Identities in APIToGo represent different authentication contexts that can be used to make API
|
|
43
|
+
requests. These could be different environments (production, staging), different authentication
|
|
44
|
+
methods (API key, JWT), or different service accounts.
|
|
45
|
+
|
|
46
|
+
### The API Identity Interface
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
interface ApiIdentity {
|
|
50
|
+
id: string;
|
|
51
|
+
label: string;
|
|
52
|
+
authorizeRequest: (request: Request) => Promise<Request> | Request;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
interface ApiIdentityPlugin {
|
|
56
|
+
getIdentities: () => Promise<ApiIdentity[]> | ApiIdentity[];
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Each API Identity consists of:
|
|
61
|
+
|
|
62
|
+
- `id`: A unique identifier for the identity
|
|
63
|
+
- `label`: A human-readable name shown in the UI
|
|
64
|
+
- `authorizeRequest`: A function that modifies requests to include the necessary authentication
|
|
65
|
+
|
|
66
|
+
## Implementing API Identities
|
|
67
|
+
|
|
68
|
+
In this example, we'll use Auth0 as our authentication provider and implement an API Identity for a
|
|
69
|
+
demo API.
|
|
70
|
+
|
|
71
|
+
:::note
|
|
72
|
+
|
|
73
|
+
This example shows how to implement API Identities in APIToGo. If you're using Zuplo and you are
|
|
74
|
+
using the built-in API Key management system, you don't need to implement this yourself. Zuplo will
|
|
75
|
+
handle API Identities for you.
|
|
76
|
+
|
|
77
|
+
:::
|
|
78
|
+
|
|
79
|
+
To add API Identities to your APIToGo configuration, you need to implement the `ApiIdentityPlugin`
|
|
80
|
+
interface. Here's an example:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
import { createApiIdentityPlugin } from "@lukoweb/apitogo/plugins";
|
|
84
|
+
|
|
85
|
+
export default {
|
|
86
|
+
authentication: {
|
|
87
|
+
type: "auth0",
|
|
88
|
+
domain: "my-domain.auth0.com",
|
|
89
|
+
clientId: "my-client-id",
|
|
90
|
+
},
|
|
91
|
+
plugins: [
|
|
92
|
+
createApiIdentityPlugin({
|
|
93
|
+
getIdentities: async (context) => [
|
|
94
|
+
{
|
|
95
|
+
id: "api-key-one",
|
|
96
|
+
label: "My API Key",
|
|
97
|
+
authorizeRequest: (request) => {
|
|
98
|
+
// We get the access token from the
|
|
99
|
+
// authentication provider (Auth0) and add it to the request headers
|
|
100
|
+
return context.authentication?.signRequest(request);
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
}),
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
When implemented, this identity will appear in the APIToGo playground.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AI Assistants
|
|
3
|
+
sidebar_icon: bot
|
|
4
|
+
description:
|
|
5
|
+
Configure which AI assistant integrations appear in dropdown menus across your APIToGo
|
|
6
|
+
documentation site, including built-in presets and custom providers.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
By default, APIToGo shows "Use in Claude" and "Use in ChatGPT" options in dropdown menus on both
|
|
10
|
+
[API reference](./api-reference.md) and [documentation](./docs.md) pages. You can customize this
|
|
11
|
+
behavior using the top-level `aiAssistants` configuration.
|
|
12
|
+
|
|
13
|
+
## Disable AI Assistants
|
|
14
|
+
|
|
15
|
+
To remove all AI assistant options:
|
|
16
|
+
|
|
17
|
+
```ts title=apitogo.config.ts
|
|
18
|
+
const config = {
|
|
19
|
+
aiAssistants: false,
|
|
20
|
+
// ...
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Use Only Specific Presets
|
|
25
|
+
|
|
26
|
+
```ts title=apitogo.config.ts
|
|
27
|
+
const config = {
|
|
28
|
+
aiAssistants: ["claude"], // Only show Claude
|
|
29
|
+
// ...
|
|
30
|
+
};
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Available presets: `"claude"`, `"chatgpt"`
|
|
34
|
+
|
|
35
|
+
## Add Custom AI Assistants
|
|
36
|
+
|
|
37
|
+
You can add custom entries with a label and URL. Use `{pageUrl}` as a placeholder in the URL string,
|
|
38
|
+
or provide a callback for full control:
|
|
39
|
+
|
|
40
|
+
```ts title=apitogo.config.ts
|
|
41
|
+
const config = {
|
|
42
|
+
aiAssistants: [
|
|
43
|
+
"claude", // built-in preset
|
|
44
|
+
{
|
|
45
|
+
label: "Open in MyAI",
|
|
46
|
+
// Simple string with placeholder
|
|
47
|
+
url: "https://myai.com/?context={pageUrl}",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: "Open in CustomAI",
|
|
51
|
+
// Callback for full control
|
|
52
|
+
url: ({ pageUrl, type }) => {
|
|
53
|
+
if (type === "openapi") {
|
|
54
|
+
return `https://custom.ai/?q=${encodeURIComponent("Explain this API: " + pageUrl)}`;
|
|
55
|
+
}
|
|
56
|
+
return `https://custom.ai/?q=${encodeURIComponent("Explain this page: " + pageUrl)}`;
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
// ...
|
|
61
|
+
};
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The callback receives `{ pageUrl: string, type: "docs" | "openapi" }` so you can customize behavior
|
|
65
|
+
per context.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: API Catalog
|
|
3
|
+
sidebar_icon: book-open
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
If you're dealing with multiple APIs and multiple OpenAPI files, the API Catalog comes in handy. It
|
|
7
|
+
creates an overview of all your APIs and lets you organize them into categories and tags.
|
|
8
|
+
|
|
9
|
+
## Enable API Catalog
|
|
10
|
+
|
|
11
|
+
The first step to enable the API Catalog, you need to add a `catalogs` object to your APIToGo
|
|
12
|
+
configuration file.
|
|
13
|
+
|
|
14
|
+
```js title=apitogo.config.ts
|
|
15
|
+
const config = {
|
|
16
|
+
// ...
|
|
17
|
+
catalogs: {
|
|
18
|
+
path: "/catalog",
|
|
19
|
+
label: "API Catalog",
|
|
20
|
+
},
|
|
21
|
+
// ...
|
|
22
|
+
};
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
You can then add your APIs to the catalog by adding the `categories` property to your API
|
|
26
|
+
configuration.
|
|
27
|
+
|
|
28
|
+
```js title=apitogo.config.ts
|
|
29
|
+
const config = {
|
|
30
|
+
// ...
|
|
31
|
+
apis: [
|
|
32
|
+
// ...
|
|
33
|
+
{
|
|
34
|
+
type: "file",
|
|
35
|
+
input: "./operational.json",
|
|
36
|
+
path: "/api-operational",
|
|
37
|
+
categories: [{ label: "General", tags: ["Operational"] }],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: "file",
|
|
41
|
+
input: "./enduser.json",
|
|
42
|
+
path: "/api-enduser",
|
|
43
|
+
categories: [{ label: "General", tags: ["End-User"] }],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: "file",
|
|
47
|
+
input: "./openapi.json",
|
|
48
|
+
path: "/api-auth",
|
|
49
|
+
categories: [{ label: "Other", tags: ["Authentication"] }],
|
|
50
|
+
},
|
|
51
|
+
// ...
|
|
52
|
+
],
|
|
53
|
+
// ...
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Advanced Configuration
|
|
58
|
+
|
|
59
|
+
### Select APIs to show in the catalog
|
|
60
|
+
|
|
61
|
+
You can select which APIs are shown in the catalog by using the `items` property. The `items`
|
|
62
|
+
property is an array of navigation IDs of the APIs you want to show in the catalog.
|
|
63
|
+
|
|
64
|
+
```js title=apitogo.config.ts
|
|
65
|
+
const config = {
|
|
66
|
+
// ...
|
|
67
|
+
catalogs: {
|
|
68
|
+
path: "/catalog",
|
|
69
|
+
label: "API Catalog",
|
|
70
|
+
// Only show the operational API in the catalog
|
|
71
|
+
items: ["api-operational"],
|
|
72
|
+
},
|
|
73
|
+
apis: [
|
|
74
|
+
// ...
|
|
75
|
+
{
|
|
76
|
+
type: "file",
|
|
77
|
+
input: "./operational.json",
|
|
78
|
+
path: "/api-operational",
|
|
79
|
+
categories: [{ label: "General", tags: ["Operational"] }],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: "file",
|
|
83
|
+
input: "./enduser.json",
|
|
84
|
+
path: "/api-enduser",
|
|
85
|
+
categories: [{ label: "General", tags: ["End-User"] }],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
// ...
|
|
89
|
+
};
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Filtering catalog items
|
|
93
|
+
|
|
94
|
+
You can filter which APIs are shown in the catalog by using the `filterItems` property. The function
|
|
95
|
+
receives the items and context as arguments.
|
|
96
|
+
|
|
97
|
+
```js title=apitogo.config.ts
|
|
98
|
+
const config = {
|
|
99
|
+
// ...
|
|
100
|
+
catalogs: {
|
|
101
|
+
path: "/catalog",
|
|
102
|
+
label: "API Catalog",
|
|
103
|
+
filterItems: (items, { auth: AuthState }) => {
|
|
104
|
+
return items.filter((items) => items.tags.includes(auth));
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
// ...
|
|
108
|
+
};
|
|
109
|
+
```
|