@lukoweb/apitogo 0.2.22 → 0.2.24
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 +94 -94
- package/cli.js +13 -13
- package/client.d.ts +8 -8
- package/dist/cli/cli.js +561 -232
- package/dist/declarations/cli/platform/client/platform-api.d.ts +18 -0
- package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +1 -1
- package/docs/cli/commands.md +75 -75
- package/docs/cli/go-live.md +123 -123
- package/docs/cli/overview.md +91 -91
- package/docs/cli/setup.md +141 -141
- package/docs/cli/shape.md +127 -127
- package/docs/components/alert.mdx +130 -130
- package/docs/components/badge.mdx +70 -70
- package/docs/components/button.mdx +132 -132
- package/docs/components/callout.mdx +112 -112
- package/docs/components/card.mdx +104 -104
- package/docs/components/checkbox.mdx +72 -72
- package/docs/components/client-only.mdx +79 -79
- package/docs/components/code-tabs.mdx +179 -179
- package/docs/components/dialog.mdx +167 -167
- package/docs/components/head.mdx +200 -200
- package/docs/components/icons.mdx +27 -27
- package/docs/components/input.mdx +96 -96
- package/docs/components/label.mdx +86 -86
- package/docs/components/link.mdx +242 -242
- package/docs/components/markdown.mdx +151 -151
- package/docs/components/mermaid.mdx +81 -81
- package/docs/components/playground.mdx +85 -85
- package/docs/components/secret.mdx +79 -79
- package/docs/components/select.mdx +176 -176
- package/docs/components/shadcn.mdx +73 -73
- package/docs/components/slider.mdx +108 -108
- package/docs/components/slot.mdx +119 -119
- package/docs/components/stepper.mdx +138 -138
- package/docs/components/switch.mdx +96 -96
- package/docs/components/syntax-highlight.mdx +602 -602
- package/docs/components/textarea.mdx +78 -78
- package/docs/components/tooltip.mdx +195 -195
- package/docs/components/typography.mdx +61 -61
- package/docs/components.mdx +60 -60
- package/docs/concepts/auth-provider-api-identities.md +105 -105
- package/docs/configuration/ai-assistants.md +65 -65
- package/docs/configuration/api-catalog.md +109 -109
- package/docs/configuration/api-reference.md +397 -397
- package/docs/configuration/authentication-auth0.md +181 -181
- package/docs/configuration/authentication-azure-ad.md +245 -245
- package/docs/configuration/authentication-clerk.md +117 -117
- package/docs/configuration/authentication-firebase.md +69 -69
- package/docs/configuration/authentication-pingfederate.md +143 -143
- package/docs/configuration/authentication-supabase.md +233 -233
- package/docs/configuration/authentication.md +159 -159
- package/docs/configuration/build-configuration.mdx +147 -147
- package/docs/configuration/docs.md +282 -282
- package/docs/configuration/footer.mdx +118 -118
- package/docs/configuration/gateway.md +221 -221
- package/docs/configuration/llms.md +90 -90
- package/docs/configuration/make-config.mdx +124 -124
- package/docs/configuration/manifest.md +128 -128
- package/docs/configuration/navigation.mdx +421 -421
- package/docs/configuration/overview.md +166 -166
- package/docs/configuration/plans.md +153 -153
- package/docs/configuration/protected-routes.md +150 -150
- package/docs/configuration/search.md +164 -164
- package/docs/configuration/sentry.mdx +44 -44
- package/docs/configuration/site.md +124 -124
- package/docs/configuration/slots.mdx +125 -125
- package/docs/configuration/vite-config.md +18 -18
- package/docs/custom-plugins.md +285 -285
- package/docs/customization/colors-theme.mdx +278 -278
- package/docs/customization/fonts.md +110 -110
- package/docs/customization/landing-page.md +188 -188
- package/docs/deploy/apache-nginx.md +41 -41
- package/docs/deploy/apitogo.md +17 -17
- package/docs/deploy/cloudflare-pages.md +74 -74
- package/docs/deploy/direct-upload.md +17 -17
- package/docs/deploy/github-pages.md +49 -49
- package/docs/deploy/vercel.md +101 -101
- package/docs/deployment.md +9 -9
- package/docs/extending/events.md +124 -124
- package/docs/guides/custom-pages.md +110 -110
- package/docs/guides/environment-variables.md +94 -94
- package/docs/guides/managing-api-keys-and-identities.md +89 -89
- package/docs/guides/mermaid.mdx +70 -70
- package/docs/guides/navigation-rules.mdx +203 -203
- package/docs/guides/processors.mdx +234 -234
- package/docs/guides/static-files.md +55 -55
- package/docs/guides/transforming-examples.md +156 -156
- package/docs/guides/using-multiple-apis.md +87 -87
- package/docs/markdown/admonitions.md +128 -128
- package/docs/markdown/code-blocks.md +196 -196
- package/docs/markdown/frontmatter.md +173 -173
- package/docs/markdown/mdx.md +68 -68
- package/docs/markdown/overview.md +275 -275
- package/docs/mcp/go-live.md +100 -100
- package/docs/mcp/overview.md +76 -76
- package/docs/mcp/setup.md +173 -173
- package/docs/mcp/shape.md +77 -77
- package/docs/mcp/tools.md +102 -102
- package/docs/plugins.md +24 -24
- package/docs/quickstart.md +72 -72
- package/docs/writing.mdx +72 -72
- package/package.json +1 -1
- package/src/app/ZuploBuildConfig.ts +36 -36
- package/src/app/apitogoBrandTheme.ts +47 -47
- 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 +107 -107
- package/src/app/entry.server.tsx +160 -160
- package/src/app/env.ts +40 -40
- package/src/app/main.css +400 -400
- package/src/app/main.tsx +167 -167
- package/src/app/polyfills.ts +47 -47
- package/src/app/processRoutes.tsx +51 -51
- 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/apitogo-config-core.ts +7 -3
- package/src/config/apitogo-config-loader.browser.ts +17 -17
- package/src/config/apitogo-config-loader.node.ts +88 -88
- package/src/config/apitogo-config-loader.ts +6 -6
- package/src/config/build-apitogo-config.ts +61 -61
- package/src/config/config.ts +74 -74
- package/src/config/create-plugin.ts +71 -71
- package/src/config/default-landing-content.ts +149 -149
- package/src/config/file-exists.ts +6 -6
- package/src/config/gateway-limits.ts +128 -128
- package/src/config/landing-manifest.ts +11 -11
- package/src/config/landing-openapi-showcase.ts +124 -124
- package/src/config/loader.ts +375 -375
- package/src/config/local-manifest.ts +545 -545
- package/src/config/resolve-modules.ts +354 -354
- package/src/config/v2/__fixtures__/scenario-a-docs-only.json +6 -6
- package/src/config/v2/__fixtures__/scenario-b-managed-origin.json +14 -14
- package/src/config/v2/__fixtures__/scenario-c-proxy-oidc.json +15 -15
- package/src/config/v2/__fixtures__/scenario-h-full-stack.json +28 -28
- package/src/config/v2/docs-navigation.ts +72 -72
- package/src/config/v2/errors.ts +42 -42
- package/src/config/v2/gateway-reference.ts +220 -220
- package/src/config/v2/gateway-request.ts +123 -123
- package/src/config/v2/home-redirect.ts +98 -98
- package/src/config/v2/index.ts +126 -126
- package/src/config/v2/init.ts +273 -273
- package/src/config/v2/layout.ts +237 -237
- package/src/config/v2/ledger.ts +235 -235
- package/src/config/v2/link-directory.ts +34 -0
- package/src/config/v2/load.ts +70 -70
- package/src/config/v2/manifest.ts +452 -452
- package/src/config/v2/parse.ts +214 -214
- package/src/config/v2/paths.ts +54 -54
- package/src/config/v2/portal-profile.ts +88 -88
- package/src/config/v2/resolve.ts +188 -188
- package/src/config/v2/rules.ts +714 -714
- package/src/config/v2/schema.ts +245 -245
- package/src/config/v2/services.ts +663 -663
- package/src/config/v2/workspace.ts +3 -2
- package/src/config/v2/wrapper.ts +24 -2
- package/src/config/validators/BuildSchema.ts +95 -95
- package/src/config/validators/HeaderNavigationSchema.ts +44 -44
- package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
- package/src/config/validators/InputNavigationSchema.ts +206 -206
- package/src/config/validators/ModulesSchema.ts +502 -502
- package/src/config/validators/NavigationSchema.ts +352 -352
- package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
- package/src/config/validators/ZudokuConfig.ts +792 -792
- 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 +83 -83
- 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 -34
- package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
- package/src/lib/authentication/auth-header-nav.ts +46 -46
- package/src/lib/authentication/authentication.ts +51 -51
- package/src/lib/authentication/components/CallbackHandler.tsx +45 -45
- package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +26 -26
- package/src/lib/authentication/components/SignIn.tsx +46 -46
- package/src/lib/authentication/components/SignOut.tsx +15 -15
- package/src/lib/authentication/components/SignUp.tsx +48 -48
- package/src/lib/authentication/constants.ts +1 -1
- package/src/lib/authentication/errors.ts +34 -34
- package/src/lib/authentication/header-nav-filter.ts +35 -35
- package/src/lib/authentication/hook.ts +141 -141
- package/src/lib/authentication/providers/auth0.tsx +91 -91
- package/src/lib/authentication/providers/azureb2c.tsx +223 -223
- package/src/lib/authentication/providers/clerk.tsx +224 -224
- package/src/lib/authentication/providers/dev-portal-auth-pages.tsx +602 -602
- package/src/lib/authentication/providers/dev-portal-constants.ts +38 -38
- package/src/lib/authentication/providers/dev-portal-demo.ts +151 -151
- package/src/lib/authentication/providers/dev-portal-utils.ts +279 -279
- package/src/lib/authentication/providers/dev-portal.tsx +448 -448
- 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 +180 -180
- package/src/lib/authentication/ui/AuthCard.tsx +7 -7
- package/src/lib/authentication/ui/EmailLinkCallbackUi.tsx +129 -129
- package/src/lib/authentication/ui/EmailLinkSentUi.tsx +105 -105
- package/src/lib/authentication/ui/EmailLinkSignInUi.tsx +100 -100
- package/src/lib/authentication/ui/EmailVerificationUi.tsx +128 -128
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +620 -620
- 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/AiAssistantMenuItems.tsx +102 -102
- package/src/lib/components/AnchorLink.tsx +24 -24
- package/src/lib/components/Autocomplete.tsx +123 -123
- 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/DeveloperHint.tsx +39 -39
- package/src/lib/components/ErrorPage.tsx +26 -26
- package/src/lib/components/Footer.tsx +146 -146
- package/src/lib/components/Framed.tsx +51 -51
- package/src/lib/components/Header.tsx +261 -261
- package/src/lib/components/HeaderAuthActions.tsx +32 -32
- package/src/lib/components/HeaderNavigation.tsx +176 -176
- package/src/lib/components/Heading.tsx +84 -84
- package/src/lib/components/InlineCode.tsx +15 -15
- package/src/lib/components/LandingLayout.tsx +27 -27
- package/src/lib/components/LanguageIcon.tsx +199 -199
- package/src/lib/components/Layout.tsx +59 -59
- package/src/lib/components/Main.tsx +52 -52
- package/src/lib/components/Markdown.tsx +55 -55
- package/src/lib/components/Mermaid.tsx +74 -74
- package/src/lib/components/Meta.tsx +46 -46
- package/src/lib/components/MobileTopNavigation.tsx +283 -283
- package/src/lib/components/MultiSelect.tsx +86 -86
- 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/SiteTitle.tsx +58 -58
- package/src/lib/components/Slot.tsx +65 -65
- package/src/lib/components/Spinner.tsx +5 -5
- package/src/lib/components/StatusPage.tsx +96 -96
- package/src/lib/components/ThemeSwitch.tsx +99 -99
- package/src/lib/components/TopNavigation.tsx +90 -90
- package/src/lib/components/Typography.tsx +12 -12
- package/src/lib/components/Zudoku.tsx +105 -105
- 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 +20 -20
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
- package/src/lib/components/index.ts +36 -36
- package/src/lib/components/navigation/Navigation.tsx +51 -51
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
- package/src/lib/components/navigation/NavigationCategory.tsx +157 -157
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
- package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -35
- package/src/lib/components/navigation/NavigationItem.tsx +181 -181
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
- package/src/lib/components/navigation/PoweredByZudoku.tsx +39 -39
- 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 +260 -260
- package/src/lib/core/ZudokuContext.ts +272 -272
- package/src/lib/core/plugins.ts +139 -139
- 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/ErrorMessage.tsx +50 -50
- 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/Catalog.tsx +80 -80
- package/src/lib/plugins/api-catalog/index.tsx +119 -119
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +128 -128
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -49
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +72 -72
- package/src/lib/plugins/api-keys/index.tsx +274 -274
- package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -342
- package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
- package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +127 -127
- package/src/lib/plugins/custom-pages/index.tsx +32 -32
- package/src/lib/plugins/markdown/MdxPage.tsx +260 -260
- 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 +82 -82
- package/src/lib/plugins/openapi/ApiHeader.tsx +96 -96
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -88
- package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
- package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +94 -94
- package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -52
- 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/OperationListItem.tsx +183 -183
- 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/RequestBodySidecarBox.tsx +63 -63
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +120 -120
- package/src/lib/plugins/openapi/SchemaInfo.tsx +344 -344
- package/src/lib/plugins/openapi/SchemaList.tsx +113 -113
- package/src/lib/plugins/openapi/Sidecar.tsx +314 -314
- package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
- package/src/lib/plugins/openapi/SidecarExamples.tsx +177 -177
- 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/EnumValues.tsx +58 -58
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +117 -117
- 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/BodyPanel.tsx +274 -274
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -51
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -60
- package/src/lib/plugins/openapi/playground/Headers.tsx +194 -194
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -75
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -38
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -45
- package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
- package/src/lib/plugins/openapi/playground/Playground.tsx +602 -602
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +62 -62
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +151 -151
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -70
- 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/MultipartField.tsx +91 -91
- 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/AudioPlayer.tsx +50 -50
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +355 -355
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +106 -106
- 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/injectApitogoGatewayServer.ts +36 -36
- 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/SchemaPropertyItem.tsx +189 -189
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +299 -299
- 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/IndexingDialog.tsx +162 -162
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +202 -202
- package/src/lib/plugins/search-pagefind/ResultList.tsx +122 -122
- 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/shiki.ts +179 -179
- package/src/lib/testing/index.tsx +147 -147
- package/src/lib/ui/Accordion.tsx +55 -55
- package/src/lib/ui/ActionButton.tsx +21 -21
- 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/Command.tsx +191 -191
- 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/MdxComponents.tsx +150 -150
- 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 +75 -75
- package/src/lib/util/useScrollToTop.ts +18 -18
- package/src/types.d.ts +66 -66
- package/src/vite/api/SchemaManager.ts +371 -371
- package/src/vite/api/schema-codegen.ts +163 -163
- package/src/vite/build.ts +237 -237
- package/src/vite/config.ts +273 -273
- 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 +29 -29
- package/src/vite/dev-server.ts +294 -294
- package/src/vite/html.ts +52 -52
- package/src/vite/index.ts +2 -2
- package/src/vite/llms.ts +99 -99
- 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/pagefind-dev-stub.ts +17 -17
- package/src/vite/plugin-api-keys.ts +55 -55
- package/src/vite/plugin-api.ts +328 -328
- package/src/vite/plugin-auth.ts +41 -41
- package/src/vite/plugin-component.ts +45 -45
- package/src/vite/plugin-config-reload.ts +47 -47
- package/src/vite/plugin-config.ts +131 -131
- package/src/vite/plugin-custom-pages.ts +36 -36
- package/src/vite/plugin-doc-metadata.ts +45 -45
- package/src/vite/plugin-docs.ts +205 -205
- package/src/vite/plugin-local-manifest.ts +100 -100
- package/src/vite/plugin-markdown-export.ts +214 -214
- package/src/vite/plugin-mdx.ts +149 -149
- package/src/vite/plugin-metadata.ts +30 -30
- package/src/vite/plugin-modules.ts +188 -188
- package/src/vite/plugin-navigation.ts +106 -106
- package/src/vite/plugin-offroot-resolve.ts +67 -67
- package/src/vite/plugin-search.ts +59 -59
- package/src/vite/plugin-shiki-register.ts +97 -97
- package/src/vite/plugin-theme.ts +458 -458
- package/src/vite/plugin.ts +48 -48
- package/src/vite/prerender/prerender.ts +242 -242
- 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/watch-ignore.ts +70 -70
- 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/dist/declarations/cli/platform/client/deploy-server.d.ts +0 -16
package/docs/components.mdx
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Components
|
|
3
|
-
sidebar_icon: component
|
|
4
|
-
description: Reference of all APIToGo UI and documentation components.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Use these components in MDX pages and custom React pages. Import from `@lukoweb/apitogo/ui/*` or
|
|
8
|
-
`@lukoweb/apitogo/components` unless noted.
|
|
9
|
-
|
|
10
|
-
## General
|
|
11
|
-
|
|
12
|
-
| Component | Import | Description |
|
|
13
|
-
| ----------------------------------------- | ----------------------------- | ------------------------------------------------ |
|
|
14
|
-
| [Alert](/docs/components/alert) | `@lukoweb/apitogo/ui/Alert` | Important messages with severity levels |
|
|
15
|
-
| [Callout](/docs/components/callout) | `@lukoweb/apitogo/ui/Callout` | Highlight notes, tips, and warnings |
|
|
16
|
-
| [Badge](/docs/components/badge) | `@lukoweb/apitogo/ui/Badge` | Status labels and tags |
|
|
17
|
-
| [Card](/docs/components/card) | `@lukoweb/apitogo/ui/Card` | Grouped content with header, body, and footer |
|
|
18
|
-
| [Dialog](/docs/components/dialog) | `@lukoweb/apitogo/ui/Dialog` | Modal dialogs that require attention |
|
|
19
|
-
| [Icons](/docs/components/icons) | `@lukoweb/apitogo/icons` | Lucide icons re-exported for MDX and React |
|
|
20
|
-
| [Markdown](/docs/components/markdown) | `@lukoweb/apitogo/components` | Render markdown with syntax highlighting |
|
|
21
|
-
| [Tooltip](/docs/components/tooltip) | `@lukoweb/apitogo/ui/Tooltip` | Hover or focus hints |
|
|
22
|
-
| [Typography](/docs/components/typography) | `@lukoweb/apitogo/components` | Prose styling for headings, lists, and body text |
|
|
23
|
-
|
|
24
|
-
## Documentation
|
|
25
|
-
|
|
26
|
-
| Component | Import | Description |
|
|
27
|
-
| ----------------------------------------------------- | ------------------------------------- | ---------------------------------------------------- |
|
|
28
|
-
| [CodeTabs](/docs/components/code-tabs) | MDX built-in | Tabbed code examples (languages or package managers) |
|
|
29
|
-
| [Mermaid](/docs/components/mermaid) | `@lukoweb/apitogo/mermaid` | Client-rendered Mermaid diagrams |
|
|
30
|
-
| [API Playground](/docs/components/playground) | MDX built-in | Try API requests from the docs |
|
|
31
|
-
| [Secret](/docs/components/secret) | `@lukoweb/apitogo/ui/Secret` | Mask and reveal API keys |
|
|
32
|
-
| [Stepper](/docs/components/stepper) | MDX built-in | Numbered multi-step guides |
|
|
33
|
-
| [Syntax Highlight](/docs/components/syntax-highlight) | `@lukoweb/apitogo/ui/SyntaxHighlight` | Highlighted code with line numbers and copy |
|
|
34
|
-
|
|
35
|
-
## Form
|
|
36
|
-
|
|
37
|
-
| Component | Import | Description |
|
|
38
|
-
| ------------------------------------- | ------------------------------ | ------------------------------- |
|
|
39
|
-
| [Button](/docs/components/button) | `@lukoweb/apitogo/ui/Button` | Actions with variants and sizes |
|
|
40
|
-
| [Checkbox](/docs/components/checkbox) | `@lukoweb/apitogo/ui/Checkbox` | Boolean checkbox input |
|
|
41
|
-
| [Input](/docs/components/input) | `@lukoweb/apitogo/ui/Input` | Single-line text input |
|
|
42
|
-
| [Label](/docs/components/label) | `@lukoweb/apitogo/ui/Label` | Accessible form labels |
|
|
43
|
-
| [Select](/docs/components/select) | `@lukoweb/apitogo/ui/Select` | Choose from a list of options |
|
|
44
|
-
| [Slider](/docs/components/slider) | `@lukoweb/apitogo/ui/Slider` | Numeric range input |
|
|
45
|
-
| [Switch](/docs/components/switch) | `@lukoweb/apitogo/ui/Switch` | Boolean toggle |
|
|
46
|
-
| [Textarea](/docs/components/textarea) | `@lukoweb/apitogo/ui/Textarea` | Multiline text input |
|
|
47
|
-
|
|
48
|
-
## Utility
|
|
49
|
-
|
|
50
|
-
| Component | Import | Description |
|
|
51
|
-
| ------------------------------------------ | ----------------------------- | ----------------------------------- |
|
|
52
|
-
| [ClientOnly](/docs/components/client-only) | `@lukoweb/apitogo/components` | Render children only on the client |
|
|
53
|
-
| [Head](/docs/components/head) | `@lukoweb/apitogo/components` | Set title, meta, and link tags |
|
|
54
|
-
| [Link](/docs/components/link) | `@lukoweb/apitogo/components` | Client-side and external navigation |
|
|
55
|
-
| [Slot](/docs/components/slot) | `@lukoweb/apitogo/components` | Inject content into layout slots |
|
|
56
|
-
|
|
57
|
-
## shadcn/ui
|
|
58
|
-
|
|
59
|
-
Additional primitives are available from `@lukoweb/apitogo/ui/*`. See
|
|
60
|
-
[shadcn/ui](/docs/components/shadcn) for the full list.
|
|
1
|
+
---
|
|
2
|
+
title: Components
|
|
3
|
+
sidebar_icon: component
|
|
4
|
+
description: Reference of all APIToGo UI and documentation components.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use these components in MDX pages and custom React pages. Import from `@lukoweb/apitogo/ui/*` or
|
|
8
|
+
`@lukoweb/apitogo/components` unless noted.
|
|
9
|
+
|
|
10
|
+
## General
|
|
11
|
+
|
|
12
|
+
| Component | Import | Description |
|
|
13
|
+
| ----------------------------------------- | ----------------------------- | ------------------------------------------------ |
|
|
14
|
+
| [Alert](/docs/components/alert) | `@lukoweb/apitogo/ui/Alert` | Important messages with severity levels |
|
|
15
|
+
| [Callout](/docs/components/callout) | `@lukoweb/apitogo/ui/Callout` | Highlight notes, tips, and warnings |
|
|
16
|
+
| [Badge](/docs/components/badge) | `@lukoweb/apitogo/ui/Badge` | Status labels and tags |
|
|
17
|
+
| [Card](/docs/components/card) | `@lukoweb/apitogo/ui/Card` | Grouped content with header, body, and footer |
|
|
18
|
+
| [Dialog](/docs/components/dialog) | `@lukoweb/apitogo/ui/Dialog` | Modal dialogs that require attention |
|
|
19
|
+
| [Icons](/docs/components/icons) | `@lukoweb/apitogo/icons` | Lucide icons re-exported for MDX and React |
|
|
20
|
+
| [Markdown](/docs/components/markdown) | `@lukoweb/apitogo/components` | Render markdown with syntax highlighting |
|
|
21
|
+
| [Tooltip](/docs/components/tooltip) | `@lukoweb/apitogo/ui/Tooltip` | Hover or focus hints |
|
|
22
|
+
| [Typography](/docs/components/typography) | `@lukoweb/apitogo/components` | Prose styling for headings, lists, and body text |
|
|
23
|
+
|
|
24
|
+
## Documentation
|
|
25
|
+
|
|
26
|
+
| Component | Import | Description |
|
|
27
|
+
| ----------------------------------------------------- | ------------------------------------- | ---------------------------------------------------- |
|
|
28
|
+
| [CodeTabs](/docs/components/code-tabs) | MDX built-in | Tabbed code examples (languages or package managers) |
|
|
29
|
+
| [Mermaid](/docs/components/mermaid) | `@lukoweb/apitogo/mermaid` | Client-rendered Mermaid diagrams |
|
|
30
|
+
| [API Playground](/docs/components/playground) | MDX built-in | Try API requests from the docs |
|
|
31
|
+
| [Secret](/docs/components/secret) | `@lukoweb/apitogo/ui/Secret` | Mask and reveal API keys |
|
|
32
|
+
| [Stepper](/docs/components/stepper) | MDX built-in | Numbered multi-step guides |
|
|
33
|
+
| [Syntax Highlight](/docs/components/syntax-highlight) | `@lukoweb/apitogo/ui/SyntaxHighlight` | Highlighted code with line numbers and copy |
|
|
34
|
+
|
|
35
|
+
## Form
|
|
36
|
+
|
|
37
|
+
| Component | Import | Description |
|
|
38
|
+
| ------------------------------------- | ------------------------------ | ------------------------------- |
|
|
39
|
+
| [Button](/docs/components/button) | `@lukoweb/apitogo/ui/Button` | Actions with variants and sizes |
|
|
40
|
+
| [Checkbox](/docs/components/checkbox) | `@lukoweb/apitogo/ui/Checkbox` | Boolean checkbox input |
|
|
41
|
+
| [Input](/docs/components/input) | `@lukoweb/apitogo/ui/Input` | Single-line text input |
|
|
42
|
+
| [Label](/docs/components/label) | `@lukoweb/apitogo/ui/Label` | Accessible form labels |
|
|
43
|
+
| [Select](/docs/components/select) | `@lukoweb/apitogo/ui/Select` | Choose from a list of options |
|
|
44
|
+
| [Slider](/docs/components/slider) | `@lukoweb/apitogo/ui/Slider` | Numeric range input |
|
|
45
|
+
| [Switch](/docs/components/switch) | `@lukoweb/apitogo/ui/Switch` | Boolean toggle |
|
|
46
|
+
| [Textarea](/docs/components/textarea) | `@lukoweb/apitogo/ui/Textarea` | Multiline text input |
|
|
47
|
+
|
|
48
|
+
## Utility
|
|
49
|
+
|
|
50
|
+
| Component | Import | Description |
|
|
51
|
+
| ------------------------------------------ | ----------------------------- | ----------------------------------- |
|
|
52
|
+
| [ClientOnly](/docs/components/client-only) | `@lukoweb/apitogo/components` | Render children only on the client |
|
|
53
|
+
| [Head](/docs/components/head) | `@lukoweb/apitogo/components` | Set title, meta, and link tags |
|
|
54
|
+
| [Link](/docs/components/link) | `@lukoweb/apitogo/components` | Client-side and external navigation |
|
|
55
|
+
| [Slot](/docs/components/slot) | `@lukoweb/apitogo/components` | Inject content into layout slots |
|
|
56
|
+
|
|
57
|
+
## shadcn/ui
|
|
58
|
+
|
|
59
|
+
Additional primitives are available from `@lukoweb/apitogo/ui/*`. See
|
|
60
|
+
[shadcn/ui](/docs/components/shadcn) for the full list.
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Authentication Providers & API Identities
|
|
3
|
-
sidebar_label: Authentication and Identities
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
When building an API documentation portal, you often need a way for users to authenticate API
|
|
7
|
-
requests — API keys and other identities — separately from how they sign in to the portal. APIToGo
|
|
8
|
-
splits **portal authentication** from **API identities**.
|
|
9
|
-
|
|
10
|
-
## Authentication Providers and API Identities
|
|
11
|
-
|
|
12
|
-
:::tip
|
|
13
|
-
|
|
14
|
-
**Authentication providers** allow your users to sign in to your documentation portal. **API
|
|
15
|
-
Identities** allow your users to authenticate their API requests.
|
|
16
|
-
|
|
17
|
-
:::
|
|
18
|
-
|
|
19
|
-
Before diving into API Identities, it's important to understand that APIToGo separates user
|
|
20
|
-
authentication from API authentication. Authentication providers handle how users sign in to your
|
|
21
|
-
documentation portal, while API Identities manage how these users interact with your APIs.
|
|
22
|
-
|
|
23
|
-
Portal products use [`dev-portal`](../configuration/authentication.md) auth (backend-delegated
|
|
24
|
-
OIDC). SPA providers (Auth0, Clerk, …) are advanced for standalone docs sites. Providers handle:
|
|
25
|
-
|
|
26
|
-
- User authentication for the documentation portal
|
|
27
|
-
- Session management
|
|
28
|
-
- User authorization and access control
|
|
29
|
-
|
|
30
|
-
This separation allows you to:
|
|
31
|
-
|
|
32
|
-
- Use different authentication methods for your portal and APIs
|
|
33
|
-
- Manage API access independently of user authentication
|
|
34
|
-
- Support multiple API authentication schemes simultaneously
|
|
35
|
-
|
|
36
|
-
[Learn more about authentication providers](../configuration/authentication)
|
|
37
|
-
|
|
38
|
-
## Understanding API Identities
|
|
39
|
-
|
|
40
|
-
API Identities in APIToGo represent different authentication contexts that can be used to make API
|
|
41
|
-
requests. These could be different environments (production, staging), different authentication
|
|
42
|
-
methods (API key, JWT), or different service accounts.
|
|
43
|
-
|
|
44
|
-
### The API Identity Interface
|
|
45
|
-
|
|
46
|
-
```typescript
|
|
47
|
-
interface ApiIdentity {
|
|
48
|
-
id: string;
|
|
49
|
-
label: string;
|
|
50
|
-
authorizeRequest: (request: Request) => Promise<Request> | Request;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
interface ApiIdentityPlugin {
|
|
54
|
-
getIdentities: () => Promise<ApiIdentity[]> | ApiIdentity[];
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Each API Identity consists of:
|
|
59
|
-
|
|
60
|
-
- `id`: A unique identifier for the identity
|
|
61
|
-
- `label`: A human-readable name shown in the UI
|
|
62
|
-
- `authorizeRequest`: A function that modifies requests to include the necessary authentication
|
|
63
|
-
|
|
64
|
-
## Implementing API Identities
|
|
65
|
-
|
|
66
|
-
In this example, we'll use Auth0 as our authentication provider and implement an API Identity for a
|
|
67
|
-
demo API.
|
|
68
|
-
|
|
69
|
-
:::note
|
|
70
|
-
|
|
71
|
-
For APItoGo-hosted portals, subscription keys come from the platform after `dev-portal` sign-in.
|
|
72
|
-
Implement custom API Identities when the playground should attach your own keys or JWTs.
|
|
73
|
-
|
|
74
|
-
:::
|
|
75
|
-
|
|
76
|
-
To add API Identities, implement the `ApiIdentityPlugin` interface:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
import { createApiIdentityPlugin } from "@lukoweb/apitogo/plugins";
|
|
80
|
-
|
|
81
|
-
export default {
|
|
82
|
-
authentication: {
|
|
83
|
-
type: "auth0",
|
|
84
|
-
domain: "my-domain.auth0.com",
|
|
85
|
-
clientId: "my-client-id",
|
|
86
|
-
},
|
|
87
|
-
plugins: [
|
|
88
|
-
createApiIdentityPlugin({
|
|
89
|
-
getIdentities: async (context) => [
|
|
90
|
-
{
|
|
91
|
-
id: "api-key-one",
|
|
92
|
-
label: "My API Key",
|
|
93
|
-
authorizeRequest: (request) => {
|
|
94
|
-
// We get the access token from the
|
|
95
|
-
// authentication provider (Auth0) and add it to the request headers
|
|
96
|
-
return context.authentication?.signRequest(request);
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
}),
|
|
101
|
-
],
|
|
102
|
-
};
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
When implemented, this identity will appear in the APIToGo playground.
|
|
1
|
+
---
|
|
2
|
+
title: Authentication Providers & API Identities
|
|
3
|
+
sidebar_label: Authentication and Identities
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
When building an API documentation portal, you often need a way for users to authenticate API
|
|
7
|
+
requests — API keys and other identities — separately from how they sign in to the portal. APIToGo
|
|
8
|
+
splits **portal authentication** from **API identities**.
|
|
9
|
+
|
|
10
|
+
## Authentication Providers and API Identities
|
|
11
|
+
|
|
12
|
+
:::tip
|
|
13
|
+
|
|
14
|
+
**Authentication providers** allow your users to sign in to your documentation portal. **API
|
|
15
|
+
Identities** allow your users to authenticate their API requests.
|
|
16
|
+
|
|
17
|
+
:::
|
|
18
|
+
|
|
19
|
+
Before diving into API Identities, it's important to understand that APIToGo separates user
|
|
20
|
+
authentication from API authentication. Authentication providers handle how users sign in to your
|
|
21
|
+
documentation portal, while API Identities manage how these users interact with your APIs.
|
|
22
|
+
|
|
23
|
+
Portal products use [`dev-portal`](../configuration/authentication.md) auth (backend-delegated
|
|
24
|
+
OIDC). SPA providers (Auth0, Clerk, …) are advanced for standalone docs sites. Providers handle:
|
|
25
|
+
|
|
26
|
+
- User authentication for the documentation portal
|
|
27
|
+
- Session management
|
|
28
|
+
- User authorization and access control
|
|
29
|
+
|
|
30
|
+
This separation allows you to:
|
|
31
|
+
|
|
32
|
+
- Use different authentication methods for your portal and APIs
|
|
33
|
+
- Manage API access independently of user authentication
|
|
34
|
+
- Support multiple API authentication schemes simultaneously
|
|
35
|
+
|
|
36
|
+
[Learn more about authentication providers](../configuration/authentication)
|
|
37
|
+
|
|
38
|
+
## Understanding API Identities
|
|
39
|
+
|
|
40
|
+
API Identities in APIToGo represent different authentication contexts that can be used to make API
|
|
41
|
+
requests. These could be different environments (production, staging), different authentication
|
|
42
|
+
methods (API key, JWT), or different service accounts.
|
|
43
|
+
|
|
44
|
+
### The API Identity Interface
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
interface ApiIdentity {
|
|
48
|
+
id: string;
|
|
49
|
+
label: string;
|
|
50
|
+
authorizeRequest: (request: Request) => Promise<Request> | Request;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
interface ApiIdentityPlugin {
|
|
54
|
+
getIdentities: () => Promise<ApiIdentity[]> | ApiIdentity[];
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Each API Identity consists of:
|
|
59
|
+
|
|
60
|
+
- `id`: A unique identifier for the identity
|
|
61
|
+
- `label`: A human-readable name shown in the UI
|
|
62
|
+
- `authorizeRequest`: A function that modifies requests to include the necessary authentication
|
|
63
|
+
|
|
64
|
+
## Implementing API Identities
|
|
65
|
+
|
|
66
|
+
In this example, we'll use Auth0 as our authentication provider and implement an API Identity for a
|
|
67
|
+
demo API.
|
|
68
|
+
|
|
69
|
+
:::note
|
|
70
|
+
|
|
71
|
+
For APItoGo-hosted portals, subscription keys come from the platform after `dev-portal` sign-in.
|
|
72
|
+
Implement custom API Identities when the playground should attach your own keys or JWTs.
|
|
73
|
+
|
|
74
|
+
:::
|
|
75
|
+
|
|
76
|
+
To add API Identities, implement the `ApiIdentityPlugin` interface:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
import { createApiIdentityPlugin } from "@lukoweb/apitogo/plugins";
|
|
80
|
+
|
|
81
|
+
export default {
|
|
82
|
+
authentication: {
|
|
83
|
+
type: "auth0",
|
|
84
|
+
domain: "my-domain.auth0.com",
|
|
85
|
+
clientId: "my-client-id",
|
|
86
|
+
},
|
|
87
|
+
plugins: [
|
|
88
|
+
createApiIdentityPlugin({
|
|
89
|
+
getIdentities: async (context) => [
|
|
90
|
+
{
|
|
91
|
+
id: "api-key-one",
|
|
92
|
+
label: "My API Key",
|
|
93
|
+
authorizeRequest: (request) => {
|
|
94
|
+
// We get the access token from the
|
|
95
|
+
// authentication provider (Auth0) and add it to the request headers
|
|
96
|
+
return context.authentication?.signRequest(request);
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
}),
|
|
101
|
+
],
|
|
102
|
+
};
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
When implemented, this identity will appear in the APIToGo playground.
|
|
@@ -1,65 +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=config
|
|
18
|
-
const config = {
|
|
19
|
-
aiAssistants: false,
|
|
20
|
-
// ...
|
|
21
|
-
};
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Use Only Specific Presets
|
|
25
|
-
|
|
26
|
-
```ts title=config
|
|
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=config
|
|
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.
|
|
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=config
|
|
18
|
+
const config = {
|
|
19
|
+
aiAssistants: false,
|
|
20
|
+
// ...
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Use Only Specific Presets
|
|
25
|
+
|
|
26
|
+
```ts title=config
|
|
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=config
|
|
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.
|