@redocly/revel 0.138.0-next.9 → 0.139.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +285 -0
- package/dist/api-schemas/mcp-fetch-count.d.ts +24 -0
- package/dist/api-schemas/mcp-fetch-count.js +1 -0
- package/dist/bin.js +0 -0
- package/dist/cli/build/analytics/collect-analytics.js +1 -1
- package/dist/cli/build/analytics/collectors/get-processed-config-stats-usage.js +1 -1
- package/dist/cli/build/index.js +1 -1
- package/dist/cli/develop.js +1 -1
- package/dist/cli/eject/ejectTheme.js +1 -1
- package/dist/cli/translations/collect-config-translations.js +1 -1
- package/dist/client/App.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -1
- package/dist/client/app/pages/Invite/Invite.js +1 -1
- package/dist/client/app/utils/loadAndNavigate.js +1 -1
- package/dist/client/polyfills.js +1 -1
- package/dist/client/runtime/loader.js +1 -1
- package/dist/client/templates/api-docs/template.js +1 -1
- package/dist/client/utils/catalog/parse-filter-query.js +1 -1
- package/dist/compiled/svgo/svgo-node.js +39 -39
- package/dist/constants/api.d.ts +1 -0
- package/dist/constants/api.js +1 -1
- package/dist/constants/common.d.ts +6 -0
- package/dist/constants/common.js +1 -1
- package/dist/constants/l10n/langs/ar.js +1 -1
- package/dist/constants/l10n/langs/de.js +1 -1
- package/dist/constants/l10n/langs/en.js +1 -1
- package/dist/constants/l10n/langs/es.js +1 -1
- package/dist/constants/l10n/langs/fr.js +1 -1
- package/dist/constants/l10n/langs/hi.js +1 -1
- package/dist/constants/l10n/langs/it.js +1 -1
- package/dist/constants/l10n/langs/ja.js +1 -1
- package/dist/constants/l10n/langs/ko.js +1 -1
- package/dist/constants/l10n/langs/pl.js +1 -1
- package/dist/constants/l10n/langs/pt-BR.js +1 -1
- package/dist/constants/l10n/langs/pt.js +1 -1
- package/dist/constants/l10n/langs/ru.js +1 -1
- package/dist/constants/l10n/langs/uk.js +1 -1
- package/dist/constants/l10n/langs/zh.js +1 -1
- package/dist/markdoc/helpers/get-inner-text.js +2 -2
- package/dist/markdoc/helpers/guards/is-prompt-node.d.ts +13 -0
- package/dist/markdoc/helpers/guards/is-prompt-node.js +1 -0
- package/dist/server/config/env-config.d.ts +0 -2
- package/dist/server/config/env-schema.d.ts +0 -5
- package/dist/server/config/env-schemas/feature-flags.d.ts +0 -4
- package/dist/server/config/env-schemas/feature-flags.js +1 -1
- package/dist/server/constants/entitlements.js +1 -1
- package/dist/server/entitlements/entitlements-provider.js +1 -1
- package/dist/server/esbuild/esbuild.js +3 -3
- package/dist/server/esbuild/plugins/on-rebuild.js +1 -1
- package/dist/server/esbuild/plugins/styled-components-ssr.js +1 -1
- package/dist/server/esbuild/plugins/yaml-loader.js +1 -1
- package/dist/server/fs/content-fs.js +1 -1
- package/dist/server/fs/utils/is-l10n-root-file.d.ts +3 -0
- package/dist/server/fs/utils/is-l10n-root-file.js +1 -0
- package/dist/server/plugins/analytics/amplitude/index.js +1 -1
- package/dist/server/plugins/analytics/heap/browser-hooks.js +1 -1
- package/dist/server/plugins/api-docs/index.js +1 -1
- package/dist/server/plugins/api-docs/loader.js +3 -3
- package/dist/server/plugins/api-docs/search/create-indexer.d.ts +9 -2
- package/dist/server/plugins/api-docs/search/create-indexer.js +1 -1
- package/dist/server/plugins/api-docs/search/get-ai-search-documents.js +68 -68
- package/dist/server/plugins/api-docs/search/search-resolver.js +1 -1
- package/dist/server/plugins/api-docs/spec-download.api.js +1 -1
- package/dist/server/plugins/api-docs/utils/apply-nav-item-to-root.js +1 -1
- package/dist/server/plugins/api-docs/utils/decorators.d.ts +11 -0
- package/dist/server/plugins/api-docs/utils/decorators.js +1 -1
- package/dist/server/plugins/arazzo-docs/arazzo-doc-loader.js +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/utils/extract-parts-from-channels-message-ref.js +1 -1
- package/dist/server/plugins/config-parser/format-custom-tags.js +1 -1
- package/dist/server/plugins/config-parser/loaders/content-slugs-loader.js +1 -1
- package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
- package/dist/server/plugins/config-parser/loaders/versions-config-loader.js +1 -1
- package/dist/server/plugins/config-parser/resolve-mutual-exclusion.js +1 -1
- package/dist/server/plugins/config-parser/safe-parse.js +1 -1
- package/dist/server/plugins/default-theme/resolve-logo.js +1 -1
- package/dist/server/plugins/dev-onboarding/api/adapters/apigee/adapter.js +2 -2
- package/dist/server/plugins/dev-onboarding/api/adapters/gravitee/client.js +2 -2
- package/dist/server/plugins/dev-onboarding/api/combine.js +1 -1
- package/dist/server/plugins/dev-onboarding/template/components/AppOverview.js +1 -1
- package/dist/server/plugins/dev-onboarding/template/components/useSortableData.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/code-walkthrough/file-chunk-parser.d.ts +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/index.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-svg-content.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-tag-raw-content.d.ts +4 -0
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-tag-raw-content.js +2 -0
- package/dist/server/plugins/markdown/compiler.js +1 -1
- package/dist/server/plugins/markdown/create-source-lines-reader.d.ts +7 -0
- package/dist/server/plugins/markdown/create-source-lines-reader.js +1 -0
- package/dist/server/plugins/markdown/html/normalize-html-headings.d.ts +9 -0
- package/dist/server/plugins/markdown/html/normalize-html-headings.js +1 -0
- package/dist/server/plugins/markdown/markdoc/markdoc-options.js +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/utils.d.ts +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/utils.js +1 -1
- package/dist/server/plugins/markdown/markdown-static-data-loader.js +1 -1
- package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
- package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
- package/dist/server/plugins/markdown/search/to-markdown.js +13 -13
- package/dist/server/plugins/markdown/search/walk-sections.d.ts +3 -1
- package/dist/server/plugins/markdown/search/walk-sections.js +3 -3
- package/dist/server/plugins/markdown/utils/sanitize-malformed-md-content.js +2 -2
- package/dist/server/plugins/mcp/audit/audit-log.d.ts +1 -1
- package/dist/server/plugins/mcp/audit/audit-log.js +1 -1
- package/dist/server/plugins/mcp/audit/code-credentials.d.ts +9 -0
- package/dist/server/plugins/mcp/audit/code-credentials.js +2 -0
- package/dist/server/plugins/mcp/codemode/capabilities/fetch/index.js +5 -5
- package/dist/server/plugins/mcp/codemode/capabilities/types.d.ts +3 -1
- package/dist/server/plugins/mcp/codemode/capabilities/utils.d.ts +2 -1
- package/dist/server/plugins/mcp/codemode/capabilities/utils.js +4 -4
- package/dist/server/plugins/mcp/codemode/code-audit.d.ts +4 -3
- package/dist/server/plugins/mcp/codemode/code-execution-audit.js +1 -1
- package/dist/server/plugins/mcp/codemode/constants.js +1 -1
- package/dist/server/plugins/mcp/codemode/prompts.d.ts +2 -1
- package/dist/server/plugins/mcp/codemode/prompts.js +8 -8
- package/dist/server/plugins/mcp/codemode/tools/describe-tools.js +2 -2
- package/dist/server/plugins/mcp/codemode/tools/execute-schema.d.ts +2 -0
- package/dist/server/plugins/mcp/codemode/tools/execute-schema.js +1 -1
- package/dist/server/plugins/mcp/constants.d.ts +2 -0
- package/dist/server/plugins/mcp/constants.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tool-schemas.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/core/create-anonymous-session.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/core/submit-feedback.js +2 -2
- package/dist/server/plugins/mcp/docs-mcp/tools/core/utils.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/list-apis.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/utils.d.ts +12 -3
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/utils.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/utils/resolve-refs.d.ts +2 -2
- package/dist/server/plugins/mcp/docs-mcp/utils/resolve-refs.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/allowed-http-methods.d.ts +11 -0
- package/dist/server/plugins/mcp/gateway-mcp/allowed-http-methods.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/api-call-operations.d.ts +32 -0
- package/dist/server/plugins/mcp/gateway-mcp/api-call-operations.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/callable-apis.d.ts +8 -4
- package/dist/server/plugins/mcp/gateway-mcp/callable-apis.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/caller-api-calls.d.ts +9 -0
- package/dist/server/plugins/mcp/gateway-mcp/caller-api-calls.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.d.ts +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.js +5 -5
- package/dist/server/plugins/mcp/gateway-mcp/eligibility.d.ts +8 -4
- package/dist/server/plugins/mcp/gateway-mcp/eligibility.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-audit.d.ts +2 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-audit.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-bridge.d.ts +11 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-bridge.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/redact.d.ts +11 -0
- package/dist/server/plugins/mcp/gateway-mcp/fetch/redact.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch-capability.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count-client.d.ts +4 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count-client.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count-secret.d.ts +4 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count-secret.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count.d.ts +11 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-count.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-counter-repository.d.ts +13 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-counter-repository.js +13 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{limits.d.ts → fetch-limiter/fetch-limits.d.ts} +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/fetch-limiter/fetch-limits.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{apply-edge-rate-limit.d.ts → request-limiter/apply-edge-rate-limit.d.ts} +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/request-limiter/apply-edge-rate-limit.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{edge-limiter.d.ts → request-limiter/edge-limiter.d.ts} +3 -3
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/request-limiter/edge-limiter.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/request-limiter/rate-limit-telemetry.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/request-limiter/request-limits.d.ts +6 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/request-limiter/request-limits.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/utils/ip-key.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{window-counter.d.ts → utils/window-counter.d.ts} +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/utils/window-counter.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/route-pattern.d.ts +18 -0
- package/dist/server/plugins/mcp/gateway-mcp/route-pattern.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/secret-store.d.ts +9 -3
- package/dist/server/plugins/mcp/gateway-mcp/secret-store.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/subject.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.d.ts +2 -0
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.js +2 -2
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.d.ts +0 -2
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.js +1 -1
- package/dist/server/plugins/mcp/handlers/credentials-page/constants.d.ts +7 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/constants.js +1 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/form-contract.d.ts +5 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/form-contract.js +1 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/form-page.d.ts +14 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/form-page.js +62 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/layout.d.ts +17 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/layout.js +11 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/outcome-pages.d.ts +10 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/outcome-pages.js +11 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/site-branding.d.ts +10 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/site-branding.js +1 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/styles.d.ts +4 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/styles.js +186 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/types.d.ts +32 -0
- package/dist/server/plugins/mcp/handlers/credentials-page/types.js +0 -0
- package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
- package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -1
- package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.d.ts +0 -1
- package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.js +1 -1
- package/dist/server/plugins/mcp/index.js +1 -1
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/servers/mcp-server.js +2 -2
- package/dist/server/plugins/mcp/types.d.ts +16 -1
- package/dist/server/plugins/mcp/utils/docs-site-url.d.ts +6 -0
- package/dist/server/plugins/mcp/utils/docs-site-url.js +1 -0
- package/dist/server/plugins/mcp/utils/mode.d.ts +4 -1
- package/dist/server/plugins/mcp/utils/mode.js +1 -1
- package/dist/server/plugins/mcp/utils/xmcp-utils.d.ts +3 -5
- package/dist/server/plugins/mcp/utils/xmcp-utils.js +1 -1
- package/dist/server/plugins/nav-utils.js +1 -1
- package/dist/server/plugins/scorecard-classic/loaders/scorecard.js +1 -1
- package/dist/server/plugins/scorecard-classic/template/components.js +1 -1
- package/dist/server/plugins/scorecard-classic/template/useData.js +1 -1
- package/dist/server/plugins/search/engines/flexsearch/index.js +2 -2
- package/dist/server/plugins/sidebars/index.js +2 -2
- package/dist/server/plugins/sidebars/utils.js +1 -1
- package/dist/server/providers/database/client.d.ts +5 -0
- package/dist/server/providers/database/client.js +1 -1
- package/dist/server/providers/database/copy-migrations.js +1 -1
- package/dist/server/providers/database/database-connections-manager.js +1 -1
- package/dist/server/providers/database/has-project-database.d.ts +3 -0
- package/dist/server/providers/database/has-project-database.js +1 -0
- package/dist/server/store.d.ts +2 -0
- package/dist/server/store.js +1 -1
- package/dist/server/tools/notifiers/formatter.js +1 -1
- package/dist/server/tools/notifiers/helpers/privacy/mask-email.js +1 -1
- package/dist/server/tools/notifiers/logger.js +1 -1
- package/dist/server/types/plugins/markdown.d.ts +2 -0
- package/dist/server/types/web-server.d.ts +1 -0
- package/dist/server/utils/codeframes/codeframes.js +2 -2
- package/dist/server/utils/entitlements/read-entitlement-number.d.ts +3 -0
- package/dist/server/utils/entitlements/read-entitlement-number.js +1 -0
- package/dist/server/utils/fs.js +1 -1
- package/dist/server/utils/is-api-download-link.d.ts +1 -0
- package/dist/server/utils/is-api-download-link.js +1 -1
- package/dist/server/utils/rbac.js +1 -1
- package/dist/server/utils/redact-url.d.ts +3 -2
- package/dist/server/utils/redact-url.js +1 -1
- package/dist/server/utils/sandbox-context.d.ts +7 -4
- package/dist/server/utils/sandbox-context.js +1 -1
- package/dist/server/web-server/auth.d.ts +0 -1
- package/dist/server/web-server/auth.js +4 -4
- package/dist/server/web-server/dev-server.js +1 -1
- package/dist/server/web-server/http.d.ts +2 -1
- package/dist/server/web-server/http.js +2 -2
- package/dist/server/web-server/jwt/token-types.d.ts +1 -0
- package/dist/server/web-server/jwt/token-types.js +1 -1
- package/dist/server/web-server/middleware/catalogAuthMiddleware.js +1 -1
- package/dist/server/web-server/middleware/dynamic-middleware/hono-compose.js +1 -1
- package/dist/server/web-server/middleware/responseHeadersMiddleware.js +1 -1
- package/dist/server/web-server/routes/auth.d.ts +1 -1
- package/dist/server/web-server/routes/auth.js +1 -1
- package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.d.ts +1756 -1756
- package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.d.ts +295 -295
- package/dist/server/web-server/routes/cors-proxy.js +2 -2
- package/dist/server/web-server/routes/index.js +1 -1
- package/dist/server/web-server/routes/mcp-routes/mcp-consent-page.d.ts +24 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-consent-page.js +35 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-fetch-count.d.ts +8 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-fetch-count.js +1 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-oauth-store.d.ts +15 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-oauth-store.js +1 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-oauth.d.ts +3 -1
- package/dist/server/web-server/routes/mcp-routes/mcp-oauth.js +1 -1
- package/dist/server/web-server/routes/mcp-routes/mcp-routes.js +1 -1
- package/dist/server/web-server/routes/mcp-routes/mcp-server-card.js +1 -1
- package/dist/server/web-server/routes/resolve-route.js +1 -1
- package/dist/server/workers/worker-pool.js +1 -1
- package/dist/types/entitlements.d.ts +2 -0
- package/dist/utils/time/debounce.js +1 -1
- package/package.json +10 -11
- package/dist/client/app/utils/withLoadProgress.d.ts +0 -2
- package/dist/client/app/utils/withLoadProgress.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/apply-edge-rate-limit.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/edge-limiter.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/ip-key.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/limits.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/rate-limit-telemetry.js +0 -1
- package/dist/server/plugins/mcp/gateway-mcp/rate-limit/window-counter.js +0 -1
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.d.ts +0 -12
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.js +0 -225
- /package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{rate-limit-telemetry.d.ts → request-limiter/rate-limit-telemetry.d.ts} +0 -0
- /package/dist/server/plugins/mcp/gateway-mcp/rate-limit/{ip-key.d.ts → utils/ip-key.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,282 @@
|
|
|
1
1
|
# @redocly/revel
|
|
2
2
|
|
|
3
|
+
## 0.139.0-next.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [5e4068f49ed]
|
|
8
|
+
- Updated dependencies [e58aa28c94f]
|
|
9
|
+
- Updated dependencies [7097fbfefbb]
|
|
10
|
+
- Updated dependencies [21e0a5f1fd2]
|
|
11
|
+
- @redocly/api-docs@0.4.0-next.1
|
|
12
|
+
|
|
13
|
+
## 0.139.0-next.0
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- 8c6a6569332: Fixed an issue where page content jumped to the side while long pages were loading.
|
|
18
|
+
- fd0575ebb1e: Fixed security vulnerability `CVE-2026-93687` by removing the `braces` dependency.
|
|
19
|
+
- Updated dependencies [8c6a6569332]
|
|
20
|
+
- @redocly/theme@0.71.0-next.0
|
|
21
|
+
- @redocly/api-docs@0.4.0-next.0
|
|
22
|
+
|
|
23
|
+
## 0.138.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- 3faa7cbcf5a: Improved the AI assistant's progress display to keep generated answers stable.
|
|
28
|
+
- 4ee9ba49be2: Added support for ordering options in the Markdoc `connect-mcp` tag.
|
|
29
|
+
- f29ae93728e: Added a **Connect to Claude** option to page actions and the MCP server setup page.
|
|
30
|
+
- 36ac86bb3b8: Added support for project-specific MCP tools defined in an `@mcp` folder.
|
|
31
|
+
- c692c909bb4: Improved the `preview` command to use the next free port and log a warning when the requested port is already in use.
|
|
32
|
+
- 1368d8594d7: Added the `consent` option to display a cookie consent banner or privacy choices link that loads analytics and gated scripts only after visitor approval.
|
|
33
|
+
- 220a3f8f7ae: Improved the **Expand all** and **Collapse all** controls in JSON samples.
|
|
34
|
+
- 51256dcd1b9: Added output schema to the MCP `execute` tool and complete tool annotations to the MCP server tools.
|
|
35
|
+
- 0312a50ad9c: Added a `submit-feedback` tool to report documentation issues through the MCP server.
|
|
36
|
+
- 86c7cbe179b: Added the `prompt` Markdoc tag that displays an AI prompt on a page.
|
|
37
|
+
Readers can copy the prompt with one click or open in Cursor, Claude, or ChatGPT.
|
|
38
|
+
- fcb1b9e93bb: Added `tab` entries to `sidebars.yaml` for organizing projects into logical sections.
|
|
39
|
+
- 0002ecc776e: Added vertical alignment support for cells in the Markdoc `table` tag.
|
|
40
|
+
- e1b53618fb4: Changed the defaults of the `analytics.segment.trackPage`, `analytics.segment.includeTitleInPageCall`, and `analytics.rudderstack.trackPage` options to disable page view tracking by default.
|
|
41
|
+
- 5f0afdc4135: Added WebMCP support, which enables AI agents in the reader's browser to search, read, and navigate your documentation.
|
|
42
|
+
- 9e9b4914145: Improved the reliability of AI assistant answers during streaming.
|
|
43
|
+
- 2928bcefe53: Improved the page load progress bar: it fills and fades out when a page finishes loading instead of disappearing at once.
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- bc75bbe4b25: Fixed an issue where tooltips were missing for the **Copy**, **Like**, and **Dislike** buttons in AI assistant answers.
|
|
48
|
+
- 47f024b52c3: Fixed the AI assistant providing answers without using the project API tools on projects with protected content.
|
|
49
|
+
- 90446d7523d: Hardened authentication.
|
|
50
|
+
- 63a6ead8690: Fixed an issue where unknown key in `redocly.yaml` caused its entire object to be removed.
|
|
51
|
+
- 61649bb626f: Fixed an issue where dropdown menus were cut off at edge of the viewport.
|
|
52
|
+
- 675715f661e: Improved security for API functions and custom MCP tools in projects hosted in Reunite.
|
|
53
|
+
- b98352301b8: Updated `@redocly/openapi-core` to version `2.62.1`.
|
|
54
|
+
- 15ad3df0069: Improved keyboard and screen reader accessibility for image lightboxes, feedback reasons, select menus such as the version picker, and schema variant switches in API reference.
|
|
55
|
+
- c634df4a861: Fixed an issue where search returned an error on built projects with a very large search index.
|
|
56
|
+
- fef7333d138: Fixed an issue where the `markdoc-example` tag rendered an empty result panel with `renderDemo=true`.
|
|
57
|
+
- 6605daa2732: Updated the Claude Desktop instructions on the `/mcp` page to add the Docs MCP server as a custom connector.
|
|
58
|
+
- e37c4f10360: Fixed an issue where MCP server lookups failed when several API description files shared a title.
|
|
59
|
+
- daa4750bb7a: Fixed portal server crashes under MCP traffic on Redoc and Revel projects.
|
|
60
|
+
- 94e74d18b8d: Fixed an issue where the link checker falsely reported broken links to `/mcp` and `/mcp-public`.
|
|
61
|
+
- 6bb03d3e5e6: Fixed an issue where groups in the mobile menu and drilldown sidebar collapsed if user expanded them right after a page loaded.
|
|
62
|
+
- afbb609d24e: Fixed security vulnerabilities `GHSA-6688-9rhm-gjv2` and `GHSA-p98j-92pf-mc4p` by upgrading `dompurify` to version `3.4.16`.
|
|
63
|
+
- 09404c61096: Fixed SSO login for branch previews of projects configured to use path prefixes.
|
|
64
|
+
- 148b3c99d7e: Fixed an issue where portal pages, such as API reference pages, stopped working after browser translation or a browser extension changed the page.
|
|
65
|
+
- 4bc012cafa9: Fixed divider color in button groups, such as the page actions split button, to match custom theme button colors.
|
|
66
|
+
- d4727bf4699: Fixed an issue where the search dialog reset the selected category to "All" every time it was reopened.
|
|
67
|
+
- 6567a12696e: Hardened RBAC enforcement for page content.
|
|
68
|
+
- cbc76e5e88b: Fixed an issue where a React page rendered blank if its page component was wrapped in `React.memo` or `forwardRef`.
|
|
69
|
+
- 870f2254ffb: Fixed MCP server returning an empty result instead of an error when code execution produced a value too large or invalid for JSON conversion.
|
|
70
|
+
- 2d71130ad21: Fixed an issue where the search box in the navbar shifted on page load when the keyboard shortcut hint appeared.
|
|
71
|
+
- 34d61cdf9c1: Fixed an issue where a file directly in the `@l10n` folder duplicated every page of the project under a path named after that file.
|
|
72
|
+
The build ignores these files and returns a warning.
|
|
73
|
+
- db912be7b81: Fixed an issue where search returned results titled with raw HTML element names such as `table`, `th` or `div`.
|
|
74
|
+
The issue occurred on Markdown pages that contained raw HTML.
|
|
75
|
+
- 215ed7fc7fa: Updated the tooltip arrow to render as a compact 16 pixels pointer with a softly rounded tip.
|
|
76
|
+
- ef493e36db0: Fixed an issue with the `tabs` Markdoc tag that caused nested tabs to cover the **More** dropdown on narrow screens.
|
|
77
|
+
- 4bc012cafa9: Fixed the split button so the menu toggle and divider use the same `danger` tone as the main button.
|
|
78
|
+
- 215ed7fc7fa: Fixed an issue where the tooltip arrows failed to render in browsers that didn't support CSS anchor positioning.
|
|
79
|
+
- cff70028280: Fixed an issue where the AI assistant send button had no accessible name for screen readers.
|
|
80
|
+
- e62106befe7: Fixed server-side rendering of localized projects where UI labels appeared in the wrong language alongside hydration warnings.
|
|
81
|
+
- 6a53cfb6724: Resolved security vulnerabilities `GHSA-g4wm-2vf7-vfgr`, `CVE-2026-102827`, `CVE-2026-102828`, and `CVE-2026-102829` by upgrading `simple-git` dependency to version `4.0.2`.
|
|
82
|
+
- f7fa203bf8f: Fixed an issue where the version picker listed versions of a page that RBAC hid from the user.
|
|
83
|
+
- f7fa203bf8f: Fixed an issue where the version picker disappeared on pages that had no items in the sidebar.
|
|
84
|
+
- e5306838bd9: Fixed an issue where some of the UI text didn't switch to a new language after navigation.
|
|
85
|
+
- Updated dependencies [bc75bbe4b25]
|
|
86
|
+
- Updated dependencies [3faa7cbcf5a]
|
|
87
|
+
- Updated dependencies [745c39d6de6]
|
|
88
|
+
- Updated dependencies [745c39d6de6]
|
|
89
|
+
- Updated dependencies [6f47037fb79]
|
|
90
|
+
- Updated dependencies [53c31e67923]
|
|
91
|
+
- Updated dependencies [0ada389a199]
|
|
92
|
+
- Updated dependencies [745c39d6de6]
|
|
93
|
+
- Updated dependencies [2da0856ede5]
|
|
94
|
+
- Updated dependencies [0e355a7cd06]
|
|
95
|
+
- Updated dependencies [745c39d6de6]
|
|
96
|
+
- Updated dependencies [aa2cc02077f]
|
|
97
|
+
- Updated dependencies [4ee9ba49be2]
|
|
98
|
+
- Updated dependencies [f29ae93728e]
|
|
99
|
+
- Updated dependencies [61649bb626f]
|
|
100
|
+
- Updated dependencies [97122fa80ab]
|
|
101
|
+
- Updated dependencies [1368d8594d7]
|
|
102
|
+
- Updated dependencies [a4abb7fe95e]
|
|
103
|
+
- Updated dependencies [f47542f0aaa]
|
|
104
|
+
- Updated dependencies [b98352301b8]
|
|
105
|
+
- Updated dependencies [220a3f8f7ae]
|
|
106
|
+
- Updated dependencies [15ad3df0069]
|
|
107
|
+
- Updated dependencies [15ad3df0069]
|
|
108
|
+
- Updated dependencies [2928bcefe53]
|
|
109
|
+
- Updated dependencies [63e49c20ce4]
|
|
110
|
+
- Updated dependencies [fef7333d138]
|
|
111
|
+
- Updated dependencies [6605daa2732]
|
|
112
|
+
- Updated dependencies [de7f42377f7]
|
|
113
|
+
- Updated dependencies [295faffbd0a]
|
|
114
|
+
- Updated dependencies [6bb03d3e5e6]
|
|
115
|
+
- Updated dependencies [715697934a0]
|
|
116
|
+
- Updated dependencies [48d6de8aebf]
|
|
117
|
+
- Updated dependencies [22f646e90b2]
|
|
118
|
+
- Updated dependencies [aa2cc02077f]
|
|
119
|
+
- Updated dependencies [86c7cbe179b]
|
|
120
|
+
- Updated dependencies [148b3c99d7e]
|
|
121
|
+
- Updated dependencies [4bc012cafa9]
|
|
122
|
+
- Updated dependencies [d4727bf4699]
|
|
123
|
+
- Updated dependencies [7d42d500aec]
|
|
124
|
+
- Updated dependencies [192409c012f]
|
|
125
|
+
- Updated dependencies [159bebb0ed4]
|
|
126
|
+
- Updated dependencies [2f3a264ac57]
|
|
127
|
+
- Updated dependencies [26e86082ad6]
|
|
128
|
+
- Updated dependencies [2d71130ad21]
|
|
129
|
+
- Updated dependencies [fcb1b9e93bb]
|
|
130
|
+
- Updated dependencies [ba418fbe7bd]
|
|
131
|
+
- Updated dependencies [0002ecc776e]
|
|
132
|
+
- Updated dependencies [215ed7fc7fa]
|
|
133
|
+
- Updated dependencies [ef493e36db0]
|
|
134
|
+
- Updated dependencies [4bc012cafa9]
|
|
135
|
+
- Updated dependencies [215ed7fc7fa]
|
|
136
|
+
- Updated dependencies [cff70028280]
|
|
137
|
+
- Updated dependencies [07fca3fc6a0]
|
|
138
|
+
- Updated dependencies [0caac36d83f]
|
|
139
|
+
- Updated dependencies [8dcd600ebe8]
|
|
140
|
+
- Updated dependencies [bb5709ab9be]
|
|
141
|
+
- Updated dependencies [bb5709ab9be]
|
|
142
|
+
- Updated dependencies [4f85f31942f]
|
|
143
|
+
- Updated dependencies [bb5bd25ddf2]
|
|
144
|
+
- Updated dependencies [bb5bd25ddf2]
|
|
145
|
+
- Updated dependencies [2fe28690761]
|
|
146
|
+
- Updated dependencies [5f0afdc4135]
|
|
147
|
+
- @redocly/theme@0.70.0
|
|
148
|
+
- @redocly/api-docs@0.3.0
|
|
149
|
+
- @redocly/realm-asyncapi-sdk@0.16.0
|
|
150
|
+
- @redocly/portal-plugin-mock-server@0.23.0
|
|
151
|
+
|
|
152
|
+
## 0.138.0-next.18
|
|
153
|
+
|
|
154
|
+
### Minor Changes
|
|
155
|
+
|
|
156
|
+
- c692c909bb4: Improved the `preview` command to use the next free port and log a warning when the requested port is already in use.
|
|
157
|
+
|
|
158
|
+
### Patch Changes
|
|
159
|
+
|
|
160
|
+
- b98352301b8: Updated `@redocly/openapi-core` to version `2.62.1`.
|
|
161
|
+
- Updated dependencies [b98352301b8]
|
|
162
|
+
- @redocly/api-docs@0.3.0-next.15
|
|
163
|
+
- @redocly/portal-plugin-mock-server@0.23.0-next.3
|
|
164
|
+
|
|
165
|
+
## 0.138.0-next.17
|
|
166
|
+
|
|
167
|
+
### Patch Changes
|
|
168
|
+
|
|
169
|
+
- afbb609d24e: Fixed security vulnerabilities `GHSA-6688-9rhm-gjv2` and `GHSA-p98j-92pf-mc4p` by upgrading `dompurify` to version `3.4.16`.
|
|
170
|
+
- 6a53cfb6724: Updated the `simple-git` dependency to version 4.0.2 to resolve security vulnerabilities GHSA-g4wm-2vf7-vfgr, CVE-2026-102827, CVE-2026-102828, and CVE-2026-102829.
|
|
171
|
+
- Updated dependencies [2da0856ede5]
|
|
172
|
+
- Updated dependencies [97122fa80ab]
|
|
173
|
+
- Updated dependencies [0caac36d83f]
|
|
174
|
+
- @redocly/api-docs@0.3.0-next.14
|
|
175
|
+
- @redocly/portal-plugin-mock-server@0.23.0-next.2
|
|
176
|
+
|
|
177
|
+
## 0.138.0-next.16
|
|
178
|
+
|
|
179
|
+
### Patch Changes
|
|
180
|
+
|
|
181
|
+
- Updated dependencies [75679945506]
|
|
182
|
+
- @redocly/theme@0.70.0-next.11
|
|
183
|
+
- @redocly/api-docs@0.3.0-next.13
|
|
184
|
+
|
|
185
|
+
## 0.138.0-next.15
|
|
186
|
+
|
|
187
|
+
### Patch Changes
|
|
188
|
+
|
|
189
|
+
- Updated dependencies [ca56f3058f0]
|
|
190
|
+
- @redocly/theme@0.70.0-next.10
|
|
191
|
+
- @redocly/api-docs@0.3.0-next.12
|
|
192
|
+
|
|
193
|
+
## 0.138.0-next.14
|
|
194
|
+
|
|
195
|
+
### Minor Changes
|
|
196
|
+
|
|
197
|
+
- 86c7cbe179b: Added the `prompt` Markdoc tag that displays an AI prompt on a page.
|
|
198
|
+
Readers can copy the prompt with one click or open in Cursor, Claude, or ChatGPT.
|
|
199
|
+
|
|
200
|
+
### Patch Changes
|
|
201
|
+
|
|
202
|
+
- 2928bcefe53: Improved the page load progress bar: it fills and fades out when a page finishes loading instead of disappearing at once.
|
|
203
|
+
- 34d61cdf9c1: Fixed an issue where a file directly in the `@l10n` folder duplicated every page of the project under a path named after that file.
|
|
204
|
+
The build ignores these files and returns a warning.
|
|
205
|
+
- db912be7b81: Fixed an issue where search returned results titled with raw HTML element names such as `table`, `th` or `div`.
|
|
206
|
+
The issue occurred on Markdown pages that contained raw HTML.
|
|
207
|
+
- Updated dependencies [745c39d6de6]
|
|
208
|
+
- Updated dependencies [745c39d6de6]
|
|
209
|
+
- Updated dependencies [745c39d6de6]
|
|
210
|
+
- Updated dependencies [745c39d6de6]
|
|
211
|
+
- Updated dependencies [745c39d6de6]
|
|
212
|
+
- Updated dependencies [745c39d6de6]
|
|
213
|
+
- Updated dependencies [2928bcefe53]
|
|
214
|
+
- Updated dependencies [86c7cbe179b]
|
|
215
|
+
- @redocly/api-docs@0.3.0-next.11
|
|
216
|
+
- @redocly/theme@0.70.0-next.9
|
|
217
|
+
- @redocly/realm-asyncapi-sdk@0.16.0-next.5
|
|
218
|
+
|
|
219
|
+
## 0.138.0-next.13
|
|
220
|
+
|
|
221
|
+
### Minor Changes
|
|
222
|
+
|
|
223
|
+
- f29ae93728e: Added a **Connect to Claude** option to page actions and the MCP server setup page.
|
|
224
|
+
|
|
225
|
+
### Patch Changes
|
|
226
|
+
|
|
227
|
+
- daa4750bb7a: Fixed portal server crashes under MCP traffic on Redoc and Revel projects.
|
|
228
|
+
- 148b3c99d7e: Fixed an issue where portal pages, such as API reference pages, stopped working after browser translation or a browser extension changed the page.
|
|
229
|
+
- 2d71130ad21: Fixed an issue where the search box in the navbar shifted on page load when the keyboard shortcut hint appeared.
|
|
230
|
+
- ef493e36db0: Fixed an issue with the `tabs` Markdoc tag that caused nested tabs to cover the **More** dropdown on narrow screens.
|
|
231
|
+
- Updated dependencies [6f47037fb79]
|
|
232
|
+
- Updated dependencies [0e355a7cd06]
|
|
233
|
+
- Updated dependencies [f29ae93728e]
|
|
234
|
+
- Updated dependencies [148b3c99d7e]
|
|
235
|
+
- Updated dependencies [7d42d500aec]
|
|
236
|
+
- Updated dependencies [159bebb0ed4]
|
|
237
|
+
- Updated dependencies [159bebb0ed4]
|
|
238
|
+
- Updated dependencies [2d71130ad21]
|
|
239
|
+
- Updated dependencies [ef493e36db0]
|
|
240
|
+
- @redocly/api-docs@0.3.0-next.10
|
|
241
|
+
- @redocly/theme@0.70.0-next.8
|
|
242
|
+
- @redocly/realm-asyncapi-sdk@0.16.0-next.4
|
|
243
|
+
|
|
244
|
+
## 0.138.0-next.12
|
|
245
|
+
|
|
246
|
+
### Patch Changes
|
|
247
|
+
|
|
248
|
+
- 09404c61096: Fixed SSO login for branch previews of projects configured to use path prefixes.
|
|
249
|
+
- Updated dependencies [192409c012f]
|
|
250
|
+
- Updated dependencies [07fca3fc6a0]
|
|
251
|
+
- @redocly/realm-asyncapi-sdk@0.16.0-next.3
|
|
252
|
+
- @redocly/api-docs@0.3.0-next.9
|
|
253
|
+
- @redocly/theme@0.70.0-next.7
|
|
254
|
+
|
|
255
|
+
## 0.138.0-next.11
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- 2cd84f3f268: Updated `@redocly/openapi-core` to version `2.58.1`.
|
|
260
|
+
- Updated dependencies [2cd84f3f268]
|
|
261
|
+
- @redocly/api-docs@0.3.0-next.8
|
|
262
|
+
- @redocly/portal-plugin-mock-server@0.23.0-next.1
|
|
263
|
+
|
|
264
|
+
## 0.138.0-next.10
|
|
265
|
+
|
|
266
|
+
### Patch Changes
|
|
267
|
+
|
|
268
|
+
- bc75bbe4b25: Fixed an issue where tooltips were missing for the **Copy**, **Like**, and **Dislike** buttons in AI assistant answers.
|
|
269
|
+
- 90446d7523d: Hardened authentication.
|
|
270
|
+
- 63a6ead8690: Fixed an issue where unknown key `redocly.yaml` caused its entire object to be removed.
|
|
271
|
+
- b32564280cf: Hardened the built-in CORS proxy.
|
|
272
|
+
- 675715f661e: Improved security for API functions and custom MCP tools in projects hosted in Reunite.
|
|
273
|
+
- d4727bf4699: Fixed an issue where the search dialog reset the selected category to "All" every time it was reopened.
|
|
274
|
+
The category chosen by the user is remembered for the duration of the browser tab.
|
|
275
|
+
- Updated dependencies [bc75bbe4b25]
|
|
276
|
+
- Updated dependencies [d4727bf4699]
|
|
277
|
+
- @redocly/theme@0.70.0-next.7
|
|
278
|
+
- @redocly/api-docs@0.3.0-next.7
|
|
279
|
+
|
|
3
280
|
## 0.138.0-next.9
|
|
4
281
|
|
|
5
282
|
### Minor Changes
|
|
@@ -171,6 +448,14 @@
|
|
|
171
448
|
- @redocly/api-docs@0.3.0-next.0
|
|
172
449
|
- @redocly/realm-asyncapi-sdk@0.16.0-next.0
|
|
173
450
|
|
|
451
|
+
## 0.137.2
|
|
452
|
+
|
|
453
|
+
### Patch Changes
|
|
454
|
+
|
|
455
|
+
- 00d766157ab: Hardened the built-in CORS proxy.
|
|
456
|
+
- Updated dependencies [ab31ba75844]
|
|
457
|
+
- @redocly/api-docs@0.2.1
|
|
458
|
+
|
|
174
459
|
## 0.137.1
|
|
175
460
|
|
|
176
461
|
### Patch Changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const mcpFetchCountRequestSchema: z.ZodObject<{
|
|
3
|
+
caller: z.ZodObject<{
|
|
4
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
5
|
+
ip: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
subject?: string | undefined;
|
|
8
|
+
ip?: string | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
subject?: string | undefined;
|
|
11
|
+
ip?: string | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
caller: {
|
|
15
|
+
subject?: string | undefined;
|
|
16
|
+
ip?: string | undefined;
|
|
17
|
+
};
|
|
18
|
+
}, {
|
|
19
|
+
caller: {
|
|
20
|
+
subject?: string | undefined;
|
|
21
|
+
ip?: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=mcp-fetch-count.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as t}from"zod";const e=t.object({caller:t.object({subject:t.string().max(500).optional(),ip:t.string().max(100).optional()})});export{e as mcpFetchCountRequestSchema};
|
package/dist/bin.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getApiFunctionsUsage as c}from"./collectors/get-api-functions-usage.js";import{getAsyncApiUsage as d}from"./collectors/get-async-api-usage.js";import{getConfigStatsUsage as U}from"./collectors/get-config-stats-usage.js";import{getFileExtensionsUsage as p}from"./collectors/get-file-extensions-usage.js";import{getFrontmatterUsage as u}from"./collectors/get-frontmatter-usage.js";import{getMarkdocUsage as S}from"./collectors/get-markdoc-usage.js";import{getNestedConfigsUsage as C}from"./collectors/get-nested-configs-usage.js";import{getProcessedConfigStatsUsage as
|
|
1
|
+
import{getApiFunctionsUsage as c}from"./collectors/get-api-functions-usage.js";import{getAsyncApiUsage as d}from"./collectors/get-async-api-usage.js";import{getConfigStatsUsage as U}from"./collectors/get-config-stats-usage.js";import{getFileExtensionsUsage as p}from"./collectors/get-file-extensions-usage.js";import{getFrontmatterUsage as u}from"./collectors/get-frontmatter-usage.js";import{getMarkdocUsage as S}from"./collectors/get-markdoc-usage.js";import{getNestedConfigsUsage as C}from"./collectors/get-nested-configs-usage.js";import{getProcessedConfigStatsUsage as y}from"./collectors/get-processed-config-stats-usage.js";import{getRefsUsage as b}from"./collectors/get-refs-usage.js";import{getSidebarsUsage as x}from"./collectors/get-sidebars-usage.js";import{getSkillsUsage as k}from"./collectors/get-skills-usage.js";import{getThemeFolderUsage as v}from"./collectors/get-theme-folder-usage.js";import{telemetry as B}from"../../telemetry/index.js";import{envConfig as A}from"../../../server/config/env-config.js";async function _(i,n){const g=[c,d,U,p,u,S,C,y,b,x,k,v],m=await Promise.allSettled(g.map(async t=>t({store:i,context:n}))),e={},s={};for(const t of m)if(t.status==="fulfilled"){const{name:a,value:r,version:f}=t.value;r&&(e[a]=r,s[a]=f)}const l={usageStats:e.usageStats,asyncApiUsage:e.asyncApiUsage,buildContext:e.buildContext,fileExtensions:e.fileExtensions,frontmatterUsage:e.frontmatterUsage,markdocUsage:e.markdocUsage,processedBuildContext:e.processedBuildContext,nestedConfigStats:e.nestedConfigStats,refsUsageStats:e.refsUsageStats,sidebarsUsage:e.sidebarsUsage,skillsUsage:e.skillsUsage,themeFolderUsage:e.themeFolderUsage,versions:JSON.stringify(s)},o=A.PROJECT_BUILD_ID||"unknown";B.sendBuildMessage([{id:o,object:"projectBuild",uri:`urn:redocly:realm:cli:projectBuild:${o}`,...l}])}export{_ as collectAnalytics};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getPortalConfigStats as o}from"../../../telemetry/get-portal-config-stats.js";const s=async({store:t})=>{const e=
|
|
1
|
+
import{getPortalConfigStats as o}from"../../../telemetry/get-portal-config-stats.js";const s=async({store:t})=>{const e=t.getConfig();return{version:"1",name:"processedBuildContext",value:o(e)}};export{s as getProcessedConfigStatsUsage};
|
package/dist/cli/build/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import w from"node:path";import{unlink as C}from"node:fs/promises";import{writeFileSync as P}from"node:fs";import{PORTAL_VERSION as R}from"../../server/version.js";import{logger as e}from"../../server/tools/notifiers/logger.js";import{reporter as b}from"../../server/tools/notifiers/reporter.js";import{shutdowner as h}from"../../server/tools/shutdowner.js";import{promiseMapLimit as A}from"../../server/utils/async/promise-map-limit.js";import{validateReactPages as D}from"../../server/plugins/pages/validators/validate-react-pages.js";import{ensureDir as j}from"../../server/utils/index.js";import{initPlugins as E,runPlugins as M,writeClientEntries as O}from"../../server/plugins/lifecycle.js";import{createClientCompiler as x,createNodeBundleCompiler as
|
|
1
|
+
import w from"node:path";import{unlink as C}from"node:fs/promises";import{writeFileSync as P}from"node:fs";import{PORTAL_VERSION as R}from"../../server/version.js";import{logger as e}from"../../server/tools/notifiers/logger.js";import{reporter as b}from"../../server/tools/notifiers/reporter.js";import{shutdowner as h}from"../../server/tools/shutdowner.js";import{promiseMapLimit as A}from"../../server/utils/async/promise-map-limit.js";import{validateReactPages as D}from"../../server/plugins/pages/validators/validate-react-pages.js";import{ensureDir as j}from"../../server/utils/index.js";import{initPlugins as E,runPlugins as M,writeClientEntries as O}from"../../server/plugins/lifecycle.js";import{createClientCompiler as x,createNodeBundleCompiler as L}from"../../server/esbuild/esbuild.js";import{validateAllMarkdowns as k}from"../../server/plugins/markdown/compiler.js";import{copyEnvFiles as J}from"./copy-env-files.js";import{EsbuildError as m,esbuildLogger as d}from"../../server/esbuild/esbuild-logger.js";import{reportAllErrors as z}from"../../server/utils/report-all-errors.js";import{writeProblemsReport as F}from"../../server/utils/write-problems-report.js";import{collectAnalytics as N}from"./analytics/collect-analytics.js";import{copyMigrationsFolder as U}from"../../server/providers/database/copy-migrations.js";import{telemetry as c}from"../telemetry/index.js";import{telemetryTraceStep as s}from"../telemetry/helpers/trace-step.js";async function li(y,i){c.initialize(R),e.info("Starting project build."),i.devLogin=y.devLogin===!0;const T=e.startTiming();await s("com.redocly.build.start",async S=>{O(i);const p=await x(i,i.outdir,"production"),u=await L(i,i.serverOutDir,"production");let o,g;try{await s("com.redocly.build.clientCompilation",async()=>{const l=e.startTiming(),n=await p.rebuild().catch(a=>{throw new m(a)});Array.isArray(n.warnings)&&d(new m({warnings:n.warnings}));const r=e.infoTime(l,"Client JavaScript compiled");r&&c.sendTimingPerformedMessage([{id:"buildStep",object:"timing",uri:"urn:redocly:realm:cli:timing:buildStep",...r}])}),await s("com.redocly.build.serverCompilation",async()=>{const l=e.startTiming(),n=await u.rebuild().catch(a=>{throw new m(a)});Array.isArray(n.warnings)&&d(new m({warnings:n.warnings}));const r=e.infoTime(l,"Server JavaScript compiled");r&&c.sendTimingPerformedMessage([{id:"buildStep",object:"timing",uri:"urn:redocly:realm:cli:timing:buildStep",message:r.message,timeMs:r.timeMs}])}),await i.reloadMarkdocOptions();let t;({pluginInstances:t,lifecycleContext:o}=await E({outdir:i.outdir,serverOutDir:i.serverOutDir,contentDir:i.contentDir,devLogin:i.devLogin,setGlobalConfig:i.setGlobalConfig})),o.fs.dispose(),i.lifecycleContext=o,U(i),await M(t,i,o),g=N(i,o),await s("com.redocly.build.clientServerRecompile",async()=>{const l=e.startTiming();e.info("Re-compiling JavaScript with user code"),(await Promise.all([p.rebuild(),u.rebuild()]).catch(a=>{throw new m(a)})).forEach(({warnings:a})=>{Array.isArray(a)&&d(new m({warnings:a}))});const r=e.infoTime(l,"JavaScript re-compiled");r&&c.sendTimingPerformedMessage([{id:"buildStep",object:"timing",uri:"urn:redocly:realm:cli:timing:buildStep",...r}])}),await s("com.redocly.build.pagesValidation",async()=>{await D(i,o),await k(i,o)}),await z(o),i.markUserCodeReady()}catch(t){S?.error(t),t instanceof m&&await d(t),await b.panic(t instanceof Error?t:String(t))}finally{g&&await g.catch(()=>{}),await p.dispose(),await u.dispose()}b.printErrors(),e.info("Rendering pages..."),await s("com.redocly.build.prepareStaticData",async t=>{const l=e.startTiming(),n=[...i.getAllRoutes(),...i.getAllApiRoutes()];t?.setAttribute("totalRoutes",n.length.toString()),await A(n,15,a=>i.writeRouteStaticData(a,o));const r=e.successTime(l,"Page static data prepared.");r&&c.sendTimingPerformedMessage([{id:"buildStep",object:"timing",uri:"urn:redocly:realm:cli:timing:buildStep",...r}])}),await s("com.redocly.build.storeSerialization",async()=>{const t=e.startTiming();j(i.serverOutDir),P(w.join(i.serverOutDir,"store.json"),JSON.stringify(await i.toJson())),e.successTime(t,"Store serialized and written."),J(i)});const v=e.startTiming();F()&&e.successTime(v,"Broken links written."),await C(w.join(i.serverOutDir,"index.css"));const f=e.successTime(T,"All done");f&&c.sendTimingPerformedMessage([{id:"buildStep",object:"timing",uri:"urn:redocly:realm:cli:timing:buildStep",...f}])}),await h.exitWithCode(0)}export{li as build};
|
package/dist/cli/develop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as t}from"../server/tools/notifiers/logger.js";import{reporter as c}from"../server/tools/notifiers/reporter.js";import{green as v}from"../server/tools/notifiers/helpers/colors.js";import{envConfig as m}from"../server/config/env-config.js";import{resolveCache as w}from"../server/esbuild/plugins/themes-resolver.js";import{getBilledPagesCount as p}from"../server/utils/index.js";import{createClientCompiler as
|
|
1
|
+
import{logger as t}from"../server/tools/notifiers/logger.js";import{reporter as c}from"../server/tools/notifiers/reporter.js";import{green as v}from"../server/tools/notifiers/helpers/colors.js";import{envConfig as m}from"../server/config/env-config.js";import{resolveCache as w}from"../server/esbuild/plugins/themes-resolver.js";import{getBilledPagesCount as p}from"../server/utils/index.js";import{createClientCompiler as R,createServerCompiler as S}from"../server/esbuild/esbuild.js";import{initPlugins as C,runPlugins as f,writeClientEntries as E}from"../server/plugins/lifecycle.js";import{startDevServer as h}from"../server/web-server/dev-server.js";import{validateAllMarkdowns as g}from"../server/plugins/markdown/compiler.js";import{reportAllErrors as b}from"../server/utils/report-all-errors.js";import{copyMigrationsFolder as y}from"../server/providers/database/copy-migrations.js";import{listenStdin as L}from"./utils/listen-stdin.js";const P=20;async function q(i,e){t.info("Starting project preview mode."),e.devLogin=i["dev-login"]!==!1,E(e),t.startTiming("initial-js"),await T(e),t.infoTime("initial-js","JavaScript compiled");const{pluginInstances:l,lifecycleContext:n}=await C({contentDir:e.contentDir,outdir:e.outdir,serverOutDir:void 0,devLogin:e.devLogin,setGlobalConfig:e.setGlobalConfig});e.lifecycleContext=n,y(e),await f(l,e,n,{failFast:!0});const d=async()=>{const r=performance.now();c.clearErrors(),await f(l,e,n),m.REDOCLY_EXP_DISABLE_MD_VALIDATION?t.info("Skipping markdown validation step"):await g(e,n),D().then(async()=>{await b(n);const a=p(e.getAllRoutes()),o=c.summary(` \u{1F440} Last change processed in ${v(Math.round(performance.now()-r)+"ms")}`,a);e.runListeners("errors-updated",void 0,o),e.runListeners("pages-updated",void 0,a),e.runListeners("routes-updated")})};m.REDOCLY_EXP_DISABLE_MD_VALIDATION?t.info("Skipping markdown validation step"):await g(e,n),await b(n);const s=p(e.getAllRoutes());c.summary(" \u{1F440} Watching for changes...",s),e.runListeners("pages-updated",void 0,s),n.fs.watch(async()=>{w.clear(),await d()}),t.verbose("Starting development server."),await h(e,n,{port:Number(i.port||4e3),maxPortRetries:m.isReunite?0:P}),L()}async function T(i){let e=!0,l=!0;const n=async r=>{r==="client"?e=!0:l=!0,i.runListeners("build-started");const a=e!=l;a&&i.startEsbuildRun(),i.buildRevision>0&&await i.waitForPluginsRun(),r!=="client"&&i.noteRequestHandlersEntryBuildStart(),a&&t.startTiming("rebuild")},d=async r=>{r==="client"?e=!1:(l=!1,i.markRequestHandlersEntryUpdated()),!(e||l)&&(i.finishEsbuildRun(),i.buildRevision++,t.infoTime("rebuild","JavaScript re-compiled"),await i.reloadMarkdocOptions(),i.markUserCodeReady(),i.runListeners("build-updated"),i.lifecycleContext&&i.buildRevision>1&&i.lifecycleContext.fs.emitCodeUpdated())},s=[new Promise((r,a)=>{const o={label:"client",buildStart(){t.verbose("Start compiling client code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Client compiled"),r(!0)},rebuildStart:()=>n("client"),rebuildEnd:()=>d("client")};R(i,i.outdir,"development",o).then(u=>u.watch()).catch(a)}),new Promise((r,a)=>{const o={label:"server",buildStart(){t.verbose("Start compiling server code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Server compiled"),r(!0)},rebuildStart:()=>n("server"),rebuildEnd:()=>d("server")};S(i,i.serverOutDir,"development",o).then(u=>u.watch()).catch(a)})];await Promise.all(s),await i.reloadMarkdocOptions()}function D(){return new Promise(i=>{setTimeout(i,0)})}export{q as develop};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bold as n}from"colorette";import{DEFAULT_THEME_NAME as g}from"../../constants/common.js";import{logger as
|
|
1
|
+
import{bold as n}from"colorette";import{DEFAULT_THEME_NAME as g}from"../../constants/common.js";import{logger as c}from"../../server/tools/notifiers/logger.js";import{getThemeFiles as m,getEjectedFiles as y,copyComponent as p}from"./themeOperations.js";async function T({pathToThemeFolder:t,pathToPortalCustomThemeFolder:e,theme:s=g},o){const r=c.startTiming(),i=m(t,{onlyFilePatterns:o.onlyFiles,ignoreFilePatterns:o.ignoreFiles}),l=m(e),f=y(l,i);for(const F of i)await p({componentToCopy:F,copyFrom:t,copyTo:e,ejectedFiles:f,options:o});c.infoTime(r,`Theme ${n(s)} has been ejected into ${n(e)}`)}export{T as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const i="TranslationKey",
|
|
1
|
+
const i="TranslationKey",g=async({getConfig:e,cache:t,fs:s})=>{const a=await e(),n=r(a),o=s.scan(/sidebars.yaml$/),l=await Promise.all(o.map(f=>t.load(f.relativePath,"yaml").then(d=>d.data)));return{...r(l),...n}},r=e=>{const t={};if(!e)return{};if(Array.isArray(e))for(const s of e)Object.assign(t,r(s));if(typeof e=="object")for(const[s,a]of Object.entries(e))if(s.endsWith(i)&&typeof a=="string"){const n=s.slice(0,i.length*-1),o=e[n];if(!c(n)||!c(a)||!y(o))continue;t[a]=o||""}else Object.assign(t,r(a));return t},c=e=>e.trim().length>0,y=e=>e==null||typeof e=="string";export{g as collectConfigTranslations};
|
package/dist/client/App.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"react";import{Outlet as g,useLocation as h,useNavigate as P}from"react-router";import{useEffect as i,useMemo as c,useState as S,Suspense as D}from"react";import{withoutPathPrefix as T}from"@redocly/theme/core/utils";import{useThemeConfig as v}from"@redocly/theme/core/hooks";import{InternalServerErrorLayout as L}from"@redocly/theme/layouts/InternalServerErrorLayout";import{RootLayout as C}from"@redocly/theme/layouts/RootLayout";import{Consent as y}from"@redocly/theme/components/Consent/Consent";import{
|
|
1
|
+
import*as o from"react";import{Outlet as g,useLocation as h,useNavigate as P}from"react-router";import{useEffect as i,useMemo as c,useState as S,Suspense as D}from"react";import{withoutPathPrefix as T}from"@redocly/theme/core/utils";import{useThemeConfig as v}from"@redocly/theme/core/hooks";import{InternalServerErrorLayout as L}from"@redocly/theme/layouts/InternalServerErrorLayout";import{RootLayout as C}from"@redocly/theme/layouts/RootLayout";import{Consent as y}from"@redocly/theme/components/Consent/Consent";import{LoadProgressBar as R}from"@redocly/theme/components/LoadProgressBar/LoadProgressBar";import{PageLayout as _}from"@redocly/theme/layouts/PageLayout";import{components as I}from"@redocly/theme/markdoc/default";import{Sidebar as N}from"./app/Sidebar/Sidebar";import{loadAndNavigate as O}from"./app/utils/loadAndNavigate";import{useActions as A}from"./app/Sidebar/useActions";import{useScrollTracker as b}from"./app/hooks/useScrollTracker";import{useAutoScroll as k}from"./app/hooks/useAutoScroll";import{API_DOCS_TEMPLATE_ID as u}from"../constants/common";import{removeTrailingSlash as M}from"../utils/url/remove-trailing-slash";import{removeLeadingSlash as x}from"../utils/url/remove-leading-slash";import*as B from"./app/markdoc/custom-components/index";import{DefaultStyles as G}from"./styling/default-styles";import{ThemeDataProvider as V}from"./providers/theme/ThemeDataProvider";import{PageDataContext as F}from"./providers/page-data/PageDataContext";import{SeoTags as w}from"./app/seo/SeoTags";import{useRouterForLocalLinks as U,useRunningEnvironmentCheck as W}from"./providers/hooks";import{usePageData as j,usePageDataLoader as q}from"./providers/page-data/hooks";import{ErrorBoundary as z}from"./ErrorBoundary";import{ErrorDetails as f,Loader as H}from"./server-entry";import"@styles";import{useRouteChangeTracker as J}from"./app/hooks/useRouteChangeTracker";import{useWebMcpTools as K}from"./app/webmcp";import{isInIframe as Q}from"./utils";import{useL10n as X}from"./app/l10n";import{PostMessageProvider as Y}from"./providers/post-message/PostMessageProvider";import{ScriptLoader as Z}from"./ScriptLoader";import{clientRoutes as $}from"./runtime/generated/routes.js";import{DevModeFloatingBar as ee}from"./app/DevModeFloatingBar";import{usePageTimeTracker as oe}from"./app/hooks/usePageTimeTracker";import{useMarkdocRenderer as re}from"./app/hooks/markdown/useMarkdocRenderer";globalThis.__LOADER.markdocComponents={...B,...I};function te(){const{palette:e}=v();return o.createElement(G,{palette:e})}function je(){const e=q(),[t,n]=S(e),r=h(),m=P();X(),i(()=>{e?n(e):O({navigate:m,to:r.pathname+r.search+r.hash}).then(()=>n(H.loadSync(r.pathname)))},[r,m]),U();const a=W();return a?(console.log(a),o.createElement(f,{error:{message:a,name:""}})):t?o.createElement(z,null,o.createElement(F.Provider,{value:e||t},o.createElement(V,null,o.createElement(te,null),o.createElement(R,null),o.createElement(Y,{enabled:process.env.NODE_ENV==="development"||Q()},o.createElement(g,null))))):null}function ne(){return k(),null}function E(){J(),oe(),b(),K();const e=j(),t=A(),{layout:n}=t,r=c(()=>({layout:n}),[n]),m=process.env.NODE_ENV!=="production",a=globalThis.SSR_OMIT_SUSPENSE,s=re(e?.props?.ast),d=M(e?.slug||"");i(()=>{document.documentElement.classList.add("ready")},[]);const l=c(()=>[u].includes(e?.templateId??"")?{...e?.props,apiOptions:r}:e?.props,[e?.props,e?.templateId,r]);if(e?.props.pagePropGetterError?.message)return m?o.createElement(f,{error:{...e?.props?.pagePropGetterError}}):o.createElement(L,null);if(!!e?.props?.compilationErrors?.length)return e?.Template?o.createElement(e.Template,{pageProps:e?.props,children:s}):null;const p=()=>o.createElement(C,null,e?.templateId!==u&&o.createElement(ne,null),o.createElement(_,{sidebar:o.createElement(N,{layoutControls:t})},o.createElement(w,{seo:e?.props.seo,slug:d}),e?.Template&&l?o.createElement(e.Template,{pageProps:l,children:s}):null),process.env.NODE_ENV!=="production"&&o.createElement(ee,null),o.createElement(Z,null),o.createElement(y,null));return a?p():o.createElement(D,null,p())}const qe=[...$.map(e=>({Component:E,path:x(T(e).substring(1)+"/*")})),{Component:E,path:"*"}];export{je as App,E as Page,qe as routes};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{MarkdownAdapterProvider as
|
|
1
|
+
import*as e from"react";import{MarkdownAdapterProvider as c,RedocResponseSamples as f,StoreProvider as u,markdocParser as E}from"@redocly/api-docs";import{ErrorMessage as t,OpenApiComponentWrap as S}from"../styled.elements";import{useStore as P}from"../../hooks/use-store";import{findResponseSamples as h}from"../../utils/find-openapi-response-samples.js";import{usePortalMarkdownAdapter as k}from"./use-markdown-adapter";function w(n){const{descriptionFile:s,operationId:p,pointer:a,exampleKey:i}=n,{store:o,error:m}=P(s),d=k(),l=e.useMemo(()=>({...o?.options,specType:"openapi",markdownParser:E}),[o?.options]);if(!o)return e.createElement(t,null,m);const r=o.items?.length?h(o.items,{pointer:a,sourceId:p}):void 0;return r?.responseCodes.length?e.createElement(S,{"data-testid":"openapi-response-sample"},e.createElement(u,{options:l,apiStore:o.store},e.createElement(c,{value:d},e.createElement(f,{responseCodes:r.responseCodes,exampleKey:i,schemaId:r.schemaId})))):e.createElement(t,null,"Cannot find response samples for the given operation")}export{w as OpenApiResponseSample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o from"react";import{useLocation as g}from"react-router";import{EmbeddedReplay as k,StoreProvider as I,buildReplayPredefinedEnvValues as P,mergeEnvData as b,useOpenApiDefinition as h,withReplayPrefetch as R,markdocParser as w}from"@redocly/api-docs";import{Admonition as V}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as C,OpenApiComponentWrap as D}from"../styled.elements.js";import{useStore as v}from"../../hooks/use-store.js";import{getMockServerDocsConfig as y}from"../../../../templates/api-docs/mock-server-config.js";import{buildReplayOperationSourceMap as
|
|
1
|
+
import o from"react";import{useLocation as g}from"react-router";import{EmbeddedReplay as k,StoreProvider as I,buildReplayPredefinedEnvValues as P,mergeEnvData as b,useOpenApiDefinition as h,withReplayPrefetch as R,markdocParser as w}from"@redocly/api-docs";import{Admonition as V}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as C,OpenApiComponentWrap as D}from"../styled.elements.js";import{useStore as v}from"../../hooks/use-store.js";import{getMockServerDocsConfig as y}from"../../../../templates/api-docs/mock-server-config.js";import{buildReplayOperationSourceMap as F}from"../../utils/build-replay-operation-source-map.js";import{findApiItem as $}from"../../utils/find-api-item.js";const x=R(function({descriptionFile:p,operationId:r,pointer:n,exampleKey:s,mimeType:e,requestBody:d,parameters:a,environment:i,environments:u,hideOtherSecuritySchemes:m}){const f=g(),{store:t,baseSlug:S}=v(p),c=h(),O=o.useMemo(()=>{if(!c)return{};const M=y(t?.options?.mockServer,S??""),A=P(c,M);return b(A,u??{})},[c,t?.options?.mockServer,S,u]),E=o.useMemo(()=>t?.items?F(t.items,{pointer:n,sourceId:r},{mimeType:e,exampleKey:s},t.store?.exampleStore??{}):new Map,[t?.items,t?.store?.exampleStore,n,r,e,s]);return!c||!t?null:o.createElement(k,{key:`${f.pathname}-${p}-${r||n}`,activeOperationId:r,fullOpenApi:c,pointer:n,operationSourceMap:E,hideOtherSecuritySchemes:m,predefinedEnvValues:O,allowedEnvironments:i?[i]:void 0,requestValues:{body:d,...a},activeMimeName:e})}),J=l=>{const{descriptionFile:p,operationId:r,pointer:n,options:s}=l,{store:e,error:d,baseSlug:a}=v(p),i=o.useMemo(()=>({...e?.options,...s}),[s,e?.options]),u=o.useMemo(()=>({specType:"openapi",...i,mockServer:y(i.mockServer,a??""),basePath:a,markdownParser:w,replayFeatures:e?.options.replayFeatures}),[i,a,e?.options.replayFeatures]),m=o.useMemo(()=>e?.items?.length?$(e.items,{pointer:n,sourceId:r}):void 0,[e?.items,n,r]);if(!e)return o.createElement(C,null,d);if(!m?.content?.meta?.pointer)return o.createElement(V,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",p);const f=m.content.meta.pointer,t=m.content.meta.sourceId??"";return o.createElement(D,{"data-testid":"replay-openapi"},o.createElement(I,{apiStore:e.store,options:u},o.createElement(x,{...l,pointer:f,operationId:t})))};export{J as ReplayOpenApi};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e,{useState as m}from"react";import d from"styled-components";import{Button as s}from"@redocly/theme/components/Button/Button";import{H3 as p}from"@redocly/theme/components/Typography/H3";import{ServerRoutes as u}from"../../../../constants/api";import{withPathPrefix as f}from"@redocly/theme/core/utils";function g(){const t=new URLSearchParams(window.location.search);return{code:t.get("code")||"",org:t.get("org")||"",invitedBy:t.get("invitedBy")||""}}function P(){const{code:t,org:a,invitedBy:i}=g(),[o,l]=m(t),c=async r=>{if(r.preventDefault(),!o)return;const n=new URL(f(u.IDP_LOGIN),window.location.href);n.searchParams.set("inviteCode",o),n.searchParams.set("redirectTo","/"),window.location.href=n.toString()};return e.createElement(v,null,e.createElement(p,null
|
|
1
|
+
import e,{useState as m}from"react";import d from"styled-components";import{Button as s}from"@redocly/theme/components/Button/Button";import{H3 as p}from"@redocly/theme/components/Typography/H3";import{ServerRoutes as u}from"../../../../constants/api";import{withPathPrefix as f}from"@redocly/theme/core/utils";function g(){const t=new URLSearchParams(window.location.search);return{code:t.get("code")||"",org:t.get("org")||"",invitedBy:t.get("invitedBy")||""}}function P(){const{code:t,org:a,invitedBy:i}=g(),[o,l]=m(t),c=async r=>{if(r.preventDefault(),!o)return;const n=new URL(f(u.IDP_LOGIN),window.location.href);n.searchParams.set("inviteCode",o),n.searchParams.set("redirectTo","/"),window.location.href=n.toString()};return e.createElement(v,null,e.createElement(p,null,`Join ${a||"Redocly"}`),e.createElement("form",{onSubmit:c},e.createElement("div",{className:"form-content"},!t&&e.createElement(e.Fragment,null,e.createElement("span",{className:"label",id:"invite-code-label"},"Enter your invite code"),e.createElement("input",{type:"text","aria-labelledby":"invite-code-label",value:o,onChange:r=>l(r.target.value),placeholder:"Invite code",autoFocus:!0})),i&&e.createElement("div",{className:"invite-info"},e.createElement("strong",null,i)," has invited you to join"),e.createElement(s,{fullWidth:!0,size:"large",variant:"primary",type:"submit",disabled:!o},"Accept invite"))))}const v=d.div`
|
|
2
2
|
font-family: var(--font-family-base);
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{withLoadProgress as f}from"@redocly/theme/core/utils";import{isLocalLink as m}from"../../../utils/path/is-local-link.js";import{isAuthRoutePath as u}from"../../../utils/auth/is-auth-route-path.js";import{scrollToAnchor as p}from"./scroll-to-anchor";let s;async function A({navigate:r,to:o,origin:a="browser",options:c}){o===""&&(o="/"),s=o;const{pathname:i,hash:d,search:t}=new URL(o,window.location.origin+window.location.pathname),n=decodeURIComponent(d),h=decodeURIComponent(window.location.hash);if(u(i)){window.location.href=o;return}const w=window.__LOADER,e=await f(w.tryLoad(i,void 0,t));if(e?.redirectTo){if(!m(e.redirectTo)){window.location.href=e.redirectTo;return}return A({navigate:r,to:e.redirectTo,origin:a,options:c})}if(e&&s===o){if(i!==window.location.pathname||t!==window.location.search||n!==h?r({pathname:i,search:t,hash:n},{...c,state:{origin:a},flushSync:!0}):n&&window.dispatchEvent(new HashChangeEvent("hashchange")),e.props?.disableAutoScroll)return;requestAnimationFrame(()=>{if(n){const l=n.slice(1);p(l)}else window.scrollTo(0,0)})}}export{A as loadAndNavigate};
|
package/dist/client/polyfills.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
typeof Element<"u"&&!Element.prototype.scrollIntoViewIfNeeded&&(Element.prototype.scrollIntoViewIfNeeded=function(e){e=arguments.length===0?!0:!!e;
|
|
1
|
+
typeof Element<"u"&&!Element.prototype.scrollIntoViewIfNeeded&&(Element.prototype.scrollIntoViewIfNeeded=function(e){e=arguments.length===0?!0:!!e;const t=i(this);if(!t)return;const n=t.getBoundingClientRect(),o=this.getBoundingClientRect();(o.top<n.top||o.bottom>n.bottom||o.right>n.right||o.left<n.left)&&this.scrollIntoView({block:e?"center":"nearest",inline:e?"center":"nearest"})});function i(e){const t=e.parentNode;return!t||t===document?null:t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth?t:i(t)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as g from"react";import{withPathPrefix as x}from"@redocly/theme/core/utils";import{appendSearchParams as z}from"../utils";import{mapObject as I}from"../../utils/object/map-object.js";import{mapObjectAsync as $}from"../../utils/object/map-object-async.js";import{isFunction as A}from"../../utils/guards/is-function.js";import{isBrowser as G}from"../../utils/env/is-browser.js";import{GLOBAL_DATA_URL as N}from"../../constants/common.js";import{getClientPageDataUrl as V}from"../../utils/url/get-client-page-data-url.js";import{getSharedDataFetchUrl as B}from"../../utils/url/get-shared-data-fetch-url.js";import{normalizeRouteSlug as
|
|
1
|
+
import*as g from"react";import{withPathPrefix as x}from"@redocly/theme/core/utils";import{appendSearchParams as z}from"../utils";import{mapObject as I}from"../../utils/object/map-object.js";import{mapObjectAsync as $}from"../../utils/object/map-object-async.js";import{isFunction as A}from"../../utils/guards/is-function.js";import{isBrowser as G}from"../../utils/env/is-browser.js";import{GLOBAL_DATA_URL as N}from"../../constants/common.js";import{getClientPageDataUrl as V}from"../../utils/url/get-client-page-data-url.js";import{getSharedDataFetchUrl as B}from"../../utils/url/get-shared-data-fetch-url.js";import{normalizeRouteSlug as c}from"../../utils/path/normalize-route-slug.js";import{templates as b}from"./generated/templates.js";import{AsyncCache as S}from"./cache.js";import{fetch as y}from"./fetch.js";import{updateTranslations as F}from"../app/l10n";import{PageMissingDefaultExportError as v}from"./errors/page-missing-default-export-error.js";const l=new S,d=new S;let D=null,m,K;const u=new Set;async function W(){const o=await(await y(x(N))).json();return m=o,o}async function C(o){const t=B(o,process.env.NODE_ENV==="development");return await(await y(t)).json()}async function q(o){return d.has(o)||d.set(o,C(o)),d.get(o)}function dt(){const[,o]=g.useReducer(t=>t+1,0);g.useEffect(()=>{process.env.NODE_ENV!=="production"&&(window.__redoclyRefresh=o)},[o])}function _(o,t){const e=t?new URLSearchParams(t).get("revision"):null,a=t?new URLSearchParams(t).get("version"):null;return e||a?`${o}?${e?`revision=${encodeURIComponent(e)}`:""}${a?`&version=${encodeURIComponent(a)}`:""}`.trim():o}class p{static markdocComponents={};static async updateTemplate(t,e,a){const n=c(t);b[a]=()=>e;const r=c(window.location.pathname);n===r&&(await this.load(t,!0),window.__redoclyRefresh())}static async update(t){const e=c(t),a=c(window.location.pathname);if(e!==a){l.delete(e);return}await this.load(t,!0),window.__redoclyRefresh()}static async updateSharedData(t){await d.set(t,C(t)),window.__redoclyRefresh()}static addGlobalDataListener(t){u.add(t)}static removeGlobalDataListener(t){u.delete(t)}static updateGlobalData(t){u.forEach(e=>e(t)),m=t,F(m.l10n)}static async tryLoad(t,e,a){try{return await this.load(t,e,a)}catch{return null}}static async loadDynamicMarkdocComponents(t){const e=this.markdocComponents?.[t];e&&A(e)&&Object.assign(this.markdocComponents,await e())}static async load(t,e,a){const n=c(t),r=_(n,a);if(!m&&!D&&(D=W()),!e&&l.has(r)){const f=await l.get(r);if(f)return f}const[i]=await Promise.all([l.set(r,s(a)),D]);return i;async function s(f){const E=V(n),T=z(E,f),k=await y(T),{templateId:P,sharedDataIds:w,props:R,userData:L,versions:M,redirectTo:O,isPublic:U}=await k.json(),[j]=await Promise.all([(async()=>p.loadTemplate(P))(),Promise.all((R.dynamicMarkdocComponents||[]).map(h=>p.loadDynamicMarkdocComponents(h))),w?$(w,h=>q(h)):Promise.resolve({})]);return{templateId:P,slug:n,sharedDataIds:w,redirectTo:O,props:R,Template:j,userData:L,versions:M,isPublic:U}}}static loadSync(t){const e=c(t),a=_(e,typeof window<"u"?window.location.search:void 0),n=l.tryGetSync(a);if(!n)return;const r=I(n.sharedDataIds,i=>d.getSync(i,"Data dependency not cached ahead of time: "+i));return{...n,sharedData:r}}static async prepare(t,e,a,n){const r=t.templateId;if(await Promise.all((t.props.dynamicMarkdocComponents||[]).map(s=>this.loadDynamicMarkdocComponents(s))),e)for(const s of Object.keys(e))d.setSync(s,e[s]);const i=await p.loadTemplate(r);if(i){const s=c(t.slug);l.setSync(s,{templateId:r,slug:s,props:t.props,sharedDataIds:t.sharedDataIds||{},Template:i,userData:t.userInfo,versions:t.versions,isPublic:t.isPublic})}m=a,K=n}static async loadTemplate(t){try{const e=await b[t]();if(t.endsWith("page.tsx")&&!e.default)throw new v(t);const a=e.default;return H(a)?a:a?.default}catch(e){if(!(process.env.NODE_ENV==="development")||!G())throw e;return e instanceof v?()=>(window.location.reload(),null):(window.location.reload(),null)}}static clear(){u.clear(),d.clear(),l.clear()}}(typeof window<"u"?window:global).__LOADER=p;function H(o){return typeof o=="function"||typeof o=="object"&&o!==null&&"$$typeof"in o}export{p as Loader,q as getSharedData,m as globalData,K as initLocale,dt as useRefresh};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as e from"react";import{useMemo as i}from"react";import A from"styled-components";import{RedoclyApiDocs as _,createMarkdocAdapter as T}from"@redocly/api-docs";import{LayoutVariant as x}from"@redocly/theme/components/SidebarActions/SidebarActions";import{ThreePanelLayout as B}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as U}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{Breadcrumbs as D}from"@redocly/theme/components/Breadcrumbs/Breadcrumbs";import{withPathPrefix as s}from"@redocly/theme/core/utils";import{usePageSharedData as I,useUserClaims as $}from"../../app/hooks";import{ServerRoutes as p}from"../../../constants/api.js";import{isBrowser as M}from"../../../utils/env/is-browser.js";import{CLIENT_TELEMETRY_ENABLED as N}from"../../constants/common.js";import{PACKAGE_NAME as H}from"../../../config/product-gates";import{applyPathPrefixToApiItems as Y,safeParseFunction as V,useCollectMarkdocOptions as W}from"./helpers";function z({pageProps:{markdown:c,apiOptions:f,metadata:v}}){const u=I("apiDocsStore"),{items:l,options:o,store:w,baseSlug:r}=u,a=M(),g=$(),n=W(c,o.markdocOptions),d=i(()=>s(r),[r]),y=i(()=>d===r?l:Y(l),[l,r,d]),C=i(()=>T(n),[n]),k=i(()=>{const S=a?`${window.location.origin}${s(p.REPLAY_OAUTH2_CALLBACK)}`:void 0;let m=o.corsProxyUrl;if(m===void 0){const t=s(`${p.CORS_PROXY}/`);m=a?new URL(t,window.location.origin).toString():t}const E=o.events,h=E?Object.entries(E).reduce((t,[b,O])=>{const P=V(O);return P&&(t[b]=P),t},{}):void 0;return{...o,markdocOptions:n,oAuth2RedirectURI:S,corsProxyUrl:m,userClaims:g,...h&&{events:h},unstable_hooks:{...o.unstable_hooks,MiddlePanelHeader:()=>e.createElement(D,null)}}},[o,n,a,g]);if(!u)return e.createElement("div",null,"Something went wrong");const L=a?{collectorUrl:new URL(s(p.OTEL_TRACES),window.location.origin).toString(),disabled:!N,serviceVersion:`${H}@${process.env.REDOCLY_PORTAL_VERSION}`}:void 0;return e.createElement(K,null,e.createElement(R,{layout:f?.layout},e.createElement(U,{metadata:v})),e.createElement(_,{items:y,store:w,basePath:d,options:k,markdownAdapter:C,layout:f?.layout,telemetryConfig:L}))}const R=A(B)`
|
|
1
|
+
import*as e from"react";import{useMemo as i}from"react";import A from"styled-components";import{RedoclyApiDocs as _,createMarkdocAdapter as T}from"@redocly/api-docs";import{LayoutVariant as x}from"@redocly/theme/components/SidebarActions/SidebarActions";import{ThreePanelLayout as B}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as U}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{Breadcrumbs as D}from"@redocly/theme/components/Breadcrumbs/Breadcrumbs";import{withPathPrefix as s}from"@redocly/theme/core/utils";import{usePageSharedData as I,useUserClaims as $}from"../../app/hooks";import{ServerRoutes as p}from"../../../constants/api.js";import{isBrowser as M}from"../../../utils/env/is-browser.js";import{CLIENT_TELEMETRY_ENABLED as N}from"../../constants/common.js";import{PACKAGE_NAME as H}from"../../../config/product-gates";import{applyPathPrefixToApiItems as Y,safeParseFunction as V,useCollectMarkdocOptions as W}from"./helpers";function z({pageProps:{markdown:c,apiOptions:f,metadata:v}}){const u=I("apiDocsStore"),{items:l,options:o,store:w,baseSlug:r}=u,a=M(),g=$(),n=W(c,o.markdocOptions),d=i(()=>s(r),[r]),y=i(()=>d===r?l:Y(l),[l,r,d]),C=i(()=>T(n,o),[n,o]),k=i(()=>{const S=a?`${window.location.origin}${s(p.REPLAY_OAUTH2_CALLBACK)}`:void 0;let m=o.corsProxyUrl;if(m===void 0){const t=s(`${p.CORS_PROXY}/`);m=a?new URL(t,window.location.origin).toString():t}const E=o.events,h=E?Object.entries(E).reduce((t,[b,O])=>{const P=V(O);return P&&(t[b]=P),t},{}):void 0;return{...o,markdocOptions:n,oAuth2RedirectURI:S,corsProxyUrl:m,userClaims:g,...h&&{events:h},unstable_hooks:{...o.unstable_hooks,MiddlePanelHeader:()=>e.createElement(D,null)}}},[o,n,a,g]);if(!u)return e.createElement("div",null,"Something went wrong");const L=a?{collectorUrl:new URL(s(p.OTEL_TRACES),window.location.origin).toString(),disabled:!N,serviceVersion:`${H}@${process.env.REDOCLY_PORTAL_VERSION}`}:void 0;return e.createElement(K,null,e.createElement(R,{layout:f?.layout},e.createElement(U,{metadata:v})),e.createElement(_,{items:y,store:w,basePath:d,options:k,markdownAdapter:C,layout:f?.layout,telemetryConfig:L}))}const R=A(B)`
|
|
2
2
|
&& {
|
|
3
3
|
padding-right: ${({layout:c})=>c===x.THREE_PANEL?"calc(var(--panel-gap-horizontal) * 2)":"var(--panel-gap-horizontal)"};
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function m(
|
|
1
|
+
function m(f,s=[]){const n=Array.from({length:s.length},()=>new Set),r=decodeURIComponent(f);if(!r)return n;const o=r.split(/(?<!\s)\s+(?:AND|OR)\s+|\(|\)/).reduce((t,e)=>{const l=e.trim();return l.length>0&&t.push(l),t},[]);for(const t of o){const e=Math.max(t.indexOf(":"),t.indexOf("~"));if(e===-1)continue;const l=t.slice(0,e),a=t.slice(e+1),i=s.findIndex(c=>c.property===l);if(i===-1)continue;if(s[i].type==="date-range"&&a.includes("..")){const[c,u]=a.split("..");n[i]={from:c,to:u}}else{const c=d(a.toLowerCase()),u=n[i]instanceof Set?n[i]:new Set;c.forEach(p=>u.add(p))}}return n}function d(f){const s=[];let n="",r=!1,o="";for(let t=0;t<f.length;t++){const e=f[t];!r&&(e==='"'||e==="'")?(r=!0,o=e):r&&e===o?(r=!1,o=""):!r&&e===","?(s.push(n.trim()),n=""):n+=e}return n.trim()&&s.push(n.trim()),s.map(t=>t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t)}export{m as parseFilterQuery};
|