@redocly/reef 0.137.0-next.0 → 0.137.0-next.10
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 +234 -0
- package/dist/api-schemas/otel-traces.d.ts +1359 -0
- package/dist/api-schemas/otel-traces.js +1 -0
- package/dist/cli/stats/collectors/asyncapi/index.d.ts +3 -0
- package/dist/cli/stats/collectors/asyncapi/index.js +1 -0
- package/dist/cli/stats/collectors/extension-sampling.d.ts +44 -0
- package/dist/cli/stats/collectors/extension-sampling.js +1 -0
- package/dist/cli/stats/collectors/openapi/index.js +1 -1
- package/dist/cli/stats/collectors/page-slugs/index.d.ts +9 -0
- package/dist/cli/stats/collectors/page-slugs/index.js +1 -0
- package/dist/cli/stats/collectors/prepare-stats-walk.d.ts +10 -0
- package/dist/cli/stats/collectors/prepare-stats-walk.js +1 -0
- package/dist/cli/stats/collectors/run-stats-collector.d.ts +24 -0
- package/dist/cli/stats/collectors/run-stats-collector.js +1 -0
- package/dist/cli/stats/index.js +1 -1
- package/dist/client/app/hooks/useMcpData.d.ts +1 -0
- package/dist/client/app/hooks/useMcpData.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/json-schema.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-example.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/markdoc/custom-components/openapi/use-markdown-adapter.d.ts +45 -0
- package/dist/client/app/markdoc/custom-components/openapi/use-markdown-adapter.js +1 -0
- package/dist/client/app/utils/loadAndNavigate.js +1 -1
- package/dist/client/providers/hooks.js +1 -1
- package/dist/client/providers/post-message/PostMessageProvider.js +1 -1
- package/dist/client/templates/api-docs/helpers.d.ts +4 -1
- package/dist/client/templates/api-docs/helpers.js +5 -1
- package/dist/client/templates/api-docs/template.js +8 -3
- package/dist/client/utils/catalog/get-next-page-param.d.ts +1 -1
- package/dist/client/utils/catalog/get-next-page-param.js +1 -1
- package/dist/compiled/svgo/svgo-node.js +32 -32
- 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/server/config/env-config.d.ts +6 -0
- package/dist/server/config/env-schema.d.ts +15 -0
- package/dist/server/config/env-schemas/feature-flags.d.ts +9 -1
- package/dist/server/config/env-schemas/feature-flags.js +1 -1
- package/dist/server/config/env-schemas/search.d.ts +3 -0
- package/dist/server/config/env-schemas/search.js +1 -1
- package/dist/server/constants/common.d.ts +1 -0
- package/dist/server/constants/common.js +1 -1
- package/dist/server/constants/mcp.d.ts +5 -0
- package/dist/server/constants/mcp.js +1 -0
- package/dist/server/constants/plugins/search.d.ts +0 -2
- package/dist/server/constants/plugins/search.js +1 -1
- package/dist/server/constants/rbac.d.ts +3 -0
- package/dist/server/constants/rbac.js +1 -0
- package/dist/server/esbuild/esbuild.js +3 -3
- package/dist/server/esbuild/plugins/mcp-tool-handlers-resolver.js +1 -1
- package/dist/server/plugins/api-docs/options.js +1 -1
- package/dist/server/plugins/api-docs/search/create-indexer.d.ts +5 -0
- package/dist/server/plugins/api-docs/search/create-indexer.js +1 -0
- package/dist/server/plugins/api-docs/search/get-ai-search-documents.js +28 -28
- package/dist/server/plugins/api-docs/search/search-resolver.js +1 -1
- package/dist/server/plugins/{openapi-docs/is-openapi-doc.d.ts → api-docs/utils/is-api-doc.d.ts} +4 -2
- package/dist/server/plugins/api-docs/utils/is-api-doc.js +1 -0
- package/dist/server/plugins/arazzo-docs/arazzo-doc-loader.d.ts +1 -1
- package/dist/server/plugins/arazzo-docs/arazzo-doc-loader.js +1 -1
- package/dist/server/plugins/config-parser/loaders/content-slugs-loader.d.ts +5 -0
- package/dist/server/plugins/config-parser/loaders/content-slugs-loader.js +1 -1
- package/dist/server/plugins/entitlements/index.js +1 -1
- package/dist/server/plugins/l10n/index.js +1 -1
- package/dist/server/plugins/lifecycle.js +2 -2
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
- package/dist/server/plugins/markdown/html/html-jsx-attribute-mapping.js +1 -1
- package/dist/server/plugins/markdown/utils/sanitize-malformed-md-content.js +2 -2
- package/dist/server/plugins/mcp/auth/auth-handlers.d.ts +1 -2
- package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
- package/dist/server/plugins/mcp/auth/token-audience-telemetry.d.ts +7 -0
- package/dist/server/plugins/mcp/auth/token-audience-telemetry.js +1 -0
- package/dist/server/plugins/mcp/auth/token-audience.d.ts +6 -0
- package/dist/server/plugins/mcp/auth/token-audience.js +1 -0
- package/dist/server/plugins/mcp/codemode/capabilities/fetch/index.js +4 -4
- package/dist/server/plugins/mcp/codemode/code-execution-telemetry.d.ts +3 -1
- package/dist/server/plugins/mcp/codemode/code-execution-telemetry.js +1 -1
- package/dist/server/plugins/mcp/codemode/invoke-tool.js +1 -1
- package/dist/server/plugins/mcp/codemode/prompts.js +1 -1
- package/dist/server/plugins/mcp/codemode/sandbox/polyfills/fetch-shim.d.ts +1 -1
- package/dist/server/plugins/mcp/codemode/sandbox/polyfills/fetch-shim.js +9 -3
- package/dist/server/plugins/mcp/codemode/tools/describe-tools.d.ts +1 -1
- package/dist/server/plugins/mcp/codemode/tools/describe-tools.js +1 -1
- package/dist/server/plugins/mcp/codemode/tools/execute-schema.js +1 -1
- package/dist/server/plugins/mcp/codemode/tools/execute.js +1 -1
- package/dist/server/plugins/mcp/codemode/tools/manage-credentials.d.ts +1 -0
- package/dist/server/plugins/mcp/codemode/tools/manage-credentials.js +2 -2
- package/dist/server/plugins/mcp/codemode/types.d.ts +1 -0
- package/dist/server/plugins/mcp/constants.d.ts +1 -1
- package/dist/server/plugins/mcp/constants.js +1 -1
- package/dist/server/plugins/mcp/custom-tools/extract-tool-definition.d.ts +13 -0
- package/dist/server/plugins/mcp/custom-tools/extract-tool-definition.js +1 -0
- package/dist/server/plugins/mcp/custom-tools/scan-custom-tools.d.ts +6 -0
- package/dist/server/plugins/mcp/custom-tools/scan-custom-tools.js +1 -0
- package/dist/server/plugins/mcp/custom-tools/validate-tool-definition.d.ts +3 -0
- package/dist/server/plugins/mcp/custom-tools/validate-tool-definition.js +1 -0
- package/dist/server/plugins/mcp/docs-mcp/tool-schemas.d.ts +2 -0
- package/dist/server/plugins/mcp/docs-mcp/tool-schemas.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/core/search.js +2 -2
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoints.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.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/callable-apis.d.ts +10 -0
- package/dist/server/plugins/mcp/gateway-mcp/callable-apis.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/credential-validation.d.ts +4 -0
- package/dist/server/plugins/mcp/gateway-mcp/credential-validation.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.d.ts +15 -5
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.js +5 -3
- 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 +10 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-bridge.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/fetch/upstream-detail.d.ts +7 -0
- package/dist/server/plugins/mcp/gateway-mcp/fetch/upstream-detail.js +1 -0
- package/dist/server/plugins/mcp/gateway-mcp/fetch-capability.d.ts +2 -10
- package/dist/server/plugins/mcp/gateway-mcp/fetch-capability.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/secret-store.d.ts +16 -4
- package/dist/server/plugins/mcp/gateway-mcp/secret-store.js +1 -1
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.d.ts +26 -1
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.js +2 -1
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.d.ts +12 -0
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.js +1 -1
- package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
- package/dist/server/plugins/mcp/handlers/errors.d.ts +7 -2
- package/dist/server/plugins/mcp/handlers/errors.js +1 -1
- package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -1
- package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.js +1 -124
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.d.ts +12 -0
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.js +225 -0
- package/dist/server/plugins/mcp/index.d.ts +0 -2
- package/dist/server/plugins/mcp/index.js +1 -1
- package/dist/server/plugins/mcp/servers/docs-server.d.ts +2 -2
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/servers/mcp-server.d.ts +2 -11
- package/dist/server/plugins/mcp/servers/mcp-server.js +4 -2
- package/dist/server/plugins/mcp/types.d.ts +32 -5
- package/dist/server/plugins/mcp/utils/available-sandbox-tools.d.ts +4 -0
- package/dist/server/plugins/mcp/utils/available-sandbox-tools.js +1 -0
- package/dist/server/plugins/mcp/utils/find-gated-tool-names.d.ts +12 -0
- package/dist/server/plugins/mcp/utils/find-gated-tool-names.js +1 -0
- package/dist/server/plugins/mcp/utils/mcp-client.d.ts +13 -0
- package/dist/server/plugins/mcp/utils/mcp-client.js +1 -0
- package/dist/server/plugins/mcp/utils/tool-registration.d.ts +17 -0
- package/dist/server/plugins/mcp/utils/tool-registration.js +1 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.d.ts +6 -1
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -1
- package/dist/server/plugins/mcp/workers/import-mcp-tool-handlers.d.ts +5 -0
- package/dist/server/plugins/mcp/workers/import-mcp-tool-handlers.js +1 -0
- package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.d.ts +6 -11
- package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.js +1 -1
- package/dist/server/plugins/mcp/workers/tool-file-system.d.ts +6 -0
- package/dist/server/plugins/mcp/workers/tool-file-system.js +1 -0
- package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.d.ts +4 -2
- package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -3
- package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
- package/dist/server/plugins/search/engines/flexsearch/search-index.d.ts +8 -4
- package/dist/server/plugins/search/engines/flexsearch/search-index.js +1 -1
- package/dist/server/plugins/search/engines/typesense/index.js +1 -1
- package/dist/server/plugins/search/index.js +1 -1
- package/dist/server/plugins/search/llmstxt/build-page-llms-txt-md.d.ts +4 -0
- package/dist/server/plugins/search/llmstxt/build-page-llms-txt-md.js +3 -0
- package/dist/server/plugins/search/llmstxt/create-llms-txt-generator.d.ts +4 -0
- package/dist/server/plugins/search/llmstxt/create-llms-txt-generator.js +1 -0
- package/dist/server/plugins/search/llmstxt/get-llms-txt-exclude-matcher.d.ts +4 -0
- package/dist/server/plugins/search/llmstxt/get-llms-txt-exclude-matcher.js +1 -0
- package/dist/server/plugins/search/llmstxt/index.d.ts +2 -2
- package/dist/server/plugins/search/llmstxt/is-included-in-llms-txt.d.ts +6 -0
- package/dist/server/plugins/search/llmstxt/is-included-in-llms-txt.js +1 -0
- package/dist/server/plugins/search/utils.d.ts +2 -1
- package/dist/server/plugins/search/utils.js +2 -2
- package/dist/server/sandbox/constants/sandbox.d.ts +4 -1
- package/dist/server/sandbox/constants/sandbox.js +1 -1
- package/dist/server/sandbox/sandbox.js +2 -2
- package/dist/server/sandbox/utils/returns-from-top-level.d.ts +4 -0
- package/dist/server/sandbox/utils/returns-from-top-level.js +1 -0
- package/dist/server/store.d.ts +2 -0
- package/dist/server/store.js +1 -1
- package/dist/server/types/plugins/common.d.ts +5 -0
- package/dist/server/types/plugins/search.d.ts +7 -2
- package/dist/server/types/web-server.d.ts +8 -0
- package/dist/server/utils/envs/get-api-route-allowed-env-variables.js +1 -1
- package/dist/server/utils/get-route-ai-documents-store.d.ts +5 -0
- package/dist/server/utils/get-route-ai-documents-store.js +1 -0
- package/dist/server/utils/get-route-static-data.d.ts +4 -0
- package/dist/server/utils/get-route-static-data.js +1 -0
- package/dist/server/utils/llmstxt/agent-feedback-llms-footer.js +1 -1
- package/dist/server/utils/llmstxt/resolve-llms-txt-md.d.ts +10 -0
- package/dist/server/utils/llmstxt/resolve-llms-txt-md.js +1 -0
- package/dist/server/utils/rbac/can-anonymous-access-mcp-feature.d.ts +3 -0
- package/dist/server/utils/rbac/can-anonymous-access-mcp-feature.js +1 -0
- package/dist/server/utils/rbac/should-handle-mcp-auth.d.ts +2 -0
- package/dist/server/utils/rbac/should-handle-mcp-auth.js +1 -0
- package/dist/server/utils/rbac.js +1 -1
- package/dist/server/utils/search/highlight-text-for-search.js +1 -1
- package/dist/server/web-server/auth.d.ts +13 -2
- package/dist/server/web-server/auth.js +3 -3
- package/dist/server/web-server/dev-server.js +1 -1
- package/dist/server/web-server/handle-api-route-request.js +1 -1
- package/dist/server/web-server/middleware/ensureSearchData.js +1 -1
- package/dist/server/web-server/routes/ask-ai.d.ts +1 -0
- package/dist/server/web-server/routes/ask-ai.js +1 -1
- package/dist/server/web-server/routes/auth.js +1 -1
- package/dist/server/web-server/routes/dynamic-route.d.ts +2 -1
- package/dist/server/web-server/routes/dynamic-route.js +1 -1
- package/dist/server/web-server/routes/error.js +1 -1
- package/dist/server/web-server/routes/helpers/resolve-ui-locales-for-idp-login.js +1 -1
- package/dist/server/web-server/routes/index.d.ts +2 -1
- package/dist/server/web-server/routes/index.js +1 -1
- package/dist/server/web-server/routes/llms-txt.d.ts +4 -0
- package/dist/server/web-server/routes/llms-txt.js +1 -0
- package/dist/server/web-server/routes/mcp-routes/agent-card.js +1 -1
- package/dist/server/web-server/routes/mcp-routes/mcp-server-card.js +1 -1
- package/dist/server/web-server/routes/otel/otel.js +1 -1
- package/dist/server/web-server/routes/page-data.js +1 -1
- package/dist/server/web-server/routes/resolve-route.js +1 -1
- package/dist/server/web-server/utils/get-request-origin.d.ts +2 -0
- package/dist/server/web-server/utils/get-request-origin.js +1 -1
- package/dist/server/web-server/utils/prepare-list-response.d.ts +2 -4
- package/dist/server/web-server/utils/prepare-list-response.js +1 -1
- package/dist/server/web-server/utils.d.ts +1 -1
- package/dist/server/web-server/utils.js +1 -1
- package/dist/server/workers/mcp-tool-worker-pool.d.ts +1 -0
- package/dist/server/workers/mcp-tool-worker-pool.js +1 -1
- package/dist/server/workers/mcp-tool-worker.js +1 -1
- package/dist/server/workers/types.d.ts +9 -2
- package/dist/server/workers/worker-pool.d.ts +1 -0
- package/dist/server/workers/worker-pool.js +1 -1
- package/dist/types/global-data.d.ts +1 -0
- package/dist/utils/guards/is-plain-object.d.ts +19 -0
- package/dist/utils/guards/is-plain-object.js +1 -0
- package/package.json +12 -15
- package/dist/client/templates/asyncapi-docs/helpers.d.ts +0 -12
- package/dist/client/templates/asyncapi-docs/helpers.js +0 -1
- package/dist/client/templates/asyncapi-docs/template.d.ts +0 -15
- package/dist/client/templates/asyncapi-docs/template.js +0 -9
- package/dist/client/templates/openapi-docs/helpers.d.ts +0 -18
- package/dist/client/templates/openapi-docs/helpers.js +0 -5
- package/dist/client/templates/openapi-docs/template.d.ts +0 -6
- package/dist/client/templates/openapi-docs/template.js +0 -14
- package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-check.d.ts +0 -9
- package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-check.js +0 -1
- package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-overlay.d.ts +0 -2
- package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-overlay.js +0 -1
- package/dist/server/esbuild/plugins/api-docs-module-replacer/index.d.ts +0 -6
- package/dist/server/esbuild/plugins/api-docs-module-replacer/index.js +0 -1
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-check.d.ts +0 -8
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-check.js +0 -1
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-overlay.d.ts +0 -2
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-overlay.js +0 -1
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-use-license-key.d.ts +0 -5
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/empty-use-license-key.js +0 -1
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/index.d.ts +0 -6
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/index.js +0 -1
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/loadAndBundleSpec.mock.d.ts +0 -3
- package/dist/server/esbuild/plugins/openapi-docs-module-replacer/loadAndBundleSpec.mock.js +0 -1
- package/dist/server/plugins/api-docs/search/search-indexer.d.ts +0 -9
- package/dist/server/plugins/api-docs/search/search-indexer.js +0 -1
- package/dist/server/plugins/asyncapi-docs/asyncapi-doc-loader.d.ts +0 -18
- package/dist/server/plugins/asyncapi-docs/asyncapi-doc-loader.js +0 -5
- package/dist/server/plugins/asyncapi-docs/get-server-props.d.ts +0 -4
- package/dist/server/plugins/asyncapi-docs/get-server-props.js +0 -1
- package/dist/server/plugins/asyncapi-docs/get-template-path.d.ts +0 -2
- package/dist/server/plugins/asyncapi-docs/get-template-path.js +0 -1
- package/dist/server/plugins/asyncapi-docs/index.d.ts +0 -3
- package/dist/server/plugins/asyncapi-docs/index.js +0 -1
- package/dist/server/plugins/asyncapi-docs/is-asyncapi-doc.d.ts +0 -3
- package/dist/server/plugins/asyncapi-docs/is-asyncapi-doc.js +0 -1
- package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.d.ts +0 -9
- package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.js +0 -56
- package/dist/server/plugins/asyncapi-docs/search/schema-processor.d.ts +0 -8
- package/dist/server/plugins/asyncapi-docs/search/schema-processor.js +0 -1
- package/dist/server/plugins/asyncapi-docs/search/search-facets.d.ts +0 -8
- package/dist/server/plugins/asyncapi-docs/search/search-facets.js +0 -1
- package/dist/server/plugins/asyncapi-docs/search/search-resolver.d.ts +0 -5
- package/dist/server/plugins/asyncapi-docs/search/search-resolver.js +0 -1
- package/dist/server/plugins/asyncapi-docs/store-definition-bundles.d.ts +0 -4
- package/dist/server/plugins/asyncapi-docs/store-definition-bundles.js +0 -1
- package/dist/server/plugins/graphql-docs/constants.d.ts +0 -2
- package/dist/server/plugins/graphql-docs/constants.js +0 -1
- package/dist/server/plugins/graphql-docs/get-template-path.d.ts +0 -2
- package/dist/server/plugins/graphql-docs/get-template-path.js +0 -1
- package/dist/server/plugins/graphql-docs/graphql-doc-loader.d.ts +0 -17
- package/dist/server/plugins/graphql-docs/graphql-doc-loader.js +0 -1
- package/dist/server/plugins/graphql-docs/index.d.ts +0 -4
- package/dist/server/plugins/graphql-docs/index.js +0 -1
- package/dist/server/plugins/graphql-docs/is-graphql-doc.d.ts +0 -2
- package/dist/server/plugins/graphql-docs/is-graphql-doc.js +0 -1
- package/dist/server/plugins/graphql-docs/search/ai/get-ai-search-document.d.ts +0 -17
- package/dist/server/plugins/graphql-docs/search/ai/get-ai-search-document.js +0 -4
- package/dist/server/plugins/graphql-docs/search/ai/utils.d.ts +0 -14
- package/dist/server/plugins/graphql-docs/search/ai/utils.js +0 -36
- package/dist/server/plugins/graphql-docs/search/search-facets.d.ts +0 -8
- package/dist/server/plugins/graphql-docs/search/search-facets.js +0 -1
- package/dist/server/plugins/graphql-docs/search/search-resolver.d.ts +0 -5
- package/dist/server/plugins/graphql-docs/search/search-resolver.js +0 -1
- package/dist/server/plugins/graphql-docs/spec-download.api.d.ts +0 -3
- package/dist/server/plugins/graphql-docs/spec-download.api.js +0 -1
- package/dist/server/plugins/graphql-docs/template/GraphQLDocs.d.ts +0 -5
- package/dist/server/plugins/graphql-docs/template/GraphQLDocs.js +0 -4
- package/dist/server/plugins/graphql-docs/types.d.ts +0 -40
- package/dist/server/plugins/graphql-docs/types.js +0 -0
- package/dist/server/plugins/openapi-docs/ai-search-indexer.d.ts +0 -14
- package/dist/server/plugins/openapi-docs/ai-search-indexer.js +0 -1
- package/dist/server/plugins/openapi-docs/decorators.d.ts +0 -25
- package/dist/server/plugins/openapi-docs/decorators.js +0 -1
- package/dist/server/plugins/openapi-docs/format-bundle-error.d.ts +0 -6
- package/dist/server/plugins/openapi-docs/format-bundle-error.js +0 -5
- package/dist/server/plugins/openapi-docs/get-server-props.d.ts +0 -4
- package/dist/server/plugins/openapi-docs/get-server-props.js +0 -1
- package/dist/server/plugins/openapi-docs/get-template-path.d.ts +0 -2
- package/dist/server/plugins/openapi-docs/get-template-path.js +0 -1
- package/dist/server/plugins/openapi-docs/index.d.ts +0 -3
- package/dist/server/plugins/openapi-docs/index.js +0 -1
- package/dist/server/plugins/openapi-docs/is-openapi-doc.js +0 -1
- package/dist/server/plugins/openapi-docs/load-definition.d.ts +0 -31
- package/dist/server/plugins/openapi-docs/load-definition.js +0 -3
- package/dist/server/plugins/openapi-docs/openapi-search-builder.d.ts +0 -24
- package/dist/server/plugins/openapi-docs/openapi-search-builder.js +0 -1
- package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.d.ts +0 -18
- package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +0 -94
- package/dist/server/plugins/openapi-docs/search/search-facets.d.ts +0 -11
- package/dist/server/plugins/openapi-docs/search/search-facets.js +0 -1
- package/dist/server/plugins/openapi-docs/search/search-resolver.d.ts +0 -5
- package/dist/server/plugins/openapi-docs/search/search-resolver.js +0 -1
- package/dist/server/plugins/openapi-docs/search-indexer.d.ts +0 -17
- package/dist/server/plugins/openapi-docs/search-indexer.js +0 -1
- package/dist/server/plugins/openapi-docs/spec-download.api.d.ts +0 -4
- package/dist/server/plugins/openapi-docs/spec-download.api.js +0 -1
- package/dist/server/plugins/openapi-docs/store-definition-bundles.d.ts +0 -4
- package/dist/server/plugins/openapi-docs/store-definition-bundles.js +0 -1
- package/dist/server/plugins/openapi-docs/types.d.ts +0 -17
- package/dist/server/plugins/openapi-docs/types.js +0 -0
- package/dist/server/plugins/openapi-docs/utils.d.ts +0 -25
- package/dist/server/plugins/openapi-docs/utils.js +0 -1
- /package/dist/client/templates/{openapi-docs → api-docs}/mock-server-config.d.ts +0 -0
- /package/dist/client/templates/{openapi-docs → api-docs}/mock-server-config.js +0 -0
- /package/dist/{server/plugins → markdoc}/helpers/parse-partials.d.ts +0 -0
- /package/dist/{server/plugins → markdoc}/helpers/parse-partials.js +0 -0
- /package/dist/server/plugins/{openapi-docs → api-docs/utils}/ast-utils.d.ts +0 -0
- /package/dist/server/plugins/{openapi-docs → api-docs/utils}/ast-utils.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createRequire as o}from"module";const s=o(import.meta.url),t=()=>({name:"esbuild-redocly-api-docs-module-replacer",setup:r=>{r.onResolve({filter:/\/hooks\/useLicense\.js$/},async e=>{if(e.resolveDir.endsWith("/api-docs/lib"))return{path:s.resolve("./empty-check.js")}}),r.onResolve({filter:/\/components\/LicenseOverlay\.js$/},async e=>{if(e.resolveDir.endsWith("/api-docs/lib"))return{path:s.resolve("./empty-overlay.js")}})}});export{t as ApiDocsModuleReplacer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(){return{licenseInfo:{allowed:!0,valid:!0},isValid:!0}}export{e as useLicense};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const n=function(){return null};export{n as Overlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(){return{isValid:!0,loading:!1}}export{e as useLicenseKey};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createRequire as r}from"module";const o=r(import.meta.url),c=()=>({name:"esbuild-redocly-openapi-docs-module-replacer",setup:e=>{e.onResolve({filter:/\.[\/\\]Overlay.js$/},async s=>{if(s.resolveDir.endsWith("openapi-docs/lib/components/RedoclyOpenAPIDocs"))return{path:o.resolve("./empty-overlay.js")}}),e.onResolve({filter:/(.*)\/hooks\/useLicense.js$/},async s=>{if(s.resolveDir.endsWith("openapi-docs/lib/components/RedoclyOpenAPIDocs"))return{path:o.resolve("./empty-check.js")}}),e.onResolve({filter:/shared\/license\/use-license-key/},async()=>({path:o.resolve("./empty-use-license-key.js")}))}});export{c as OpenapiDocsModuleReplacer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function n(){}function e(){}export{e as convertSwagger2OpenAPI,n as loadAndBundleDefinition};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ApiItem, SchemaEntry } from '@redocly/api-docs';
|
|
2
|
-
import type { SearchDocument } from '../../../types';
|
|
3
|
-
export declare class ApiDocsSearchIndexer {
|
|
4
|
-
#private;
|
|
5
|
-
constructor(basePath: string, schemaStore?: Record<string, SchemaEntry>, document?: Record<string, unknown>);
|
|
6
|
-
addItem(item: ApiItem): void;
|
|
7
|
-
getResult(): SearchDocument[];
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=search-indexer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{REDOCLY_TEAMS_RBAC as p}from"@redocly/config";import{extractFullText as W,nodeTypes as g,contentType as P,schemaKind as j}from"@redocly/api-docs";import{toMarkdown as H}from"../../markdown/search/to-markdown.js";const L=10,_=200,C="message payload",D="message headers";function E(h){if(typeof h=="string")return h;const e=Array.isArray(h)?h:[h];return H(e).trim()}function N(h){return h.length>_?`${h.slice(0,_)}\u2026`:h}class B{#c=[];#i;#s;#o;#f;constructor(e,t,n){this.#i=e,this.#s=t,this.#o=n}addItem(e){if(!(!e.link||!e.content))try{switch(e.content.contentType){case P.OVERVIEW:this.#a(e,this.#i);break;case P.GROUP:case P.ITEM:this.#a(e,e.link);break}}catch(t){console.error(`Cannot add item to api-docs search indexer [${e.label}, ${e.link}]:`,t.message)}}#a(e,t){if(!e.content)return;const n=t.startsWith(this.#i+"/")?t.slice(this.#i.length+1):t.split("/").slice(-2).join("/"),i=e.content.children,o=this.#p(i),f=this.#y(i,n),r=e,s={id:t,url:t,title:e.label??"",text:o,path:[],deprecated:e.content.meta?.deprecated,..."httpVerb"in e&&e.httpVerb?{httpMethod:e.httpVerb}:{},..."httpPath"in e&&e.httpPath?{httpPath:e.httpPath}:{},..."badges"in e&&Array.isArray(e.badges)&&e.badges.length?{badges:e.badges}:{},..."isAdditionalOperation"in e&&e.isAdditionalOperation?{isAdditionalOperation:!0}:{},[p]:r[p],...f.length&&{parameters:f}};this.#c.push(s)}#p(e){const t=[],n=i=>{for(const o of i)if(o.nodeType===g.MARKDOC){const f=o;if(this.#h(f.content))continue;const r=W(f.content);r&&t.push(r)}else(o.nodeType===g.CONTAINER||o.nodeType===g.OVERVIEW_SECTION_WRAPPER)&&n(o.children)};return n(e),t.join(" ").trim()}#h(e){let t=!1,n=!1;const i=f=>{f.type==="code"&&f.attributes?.content?t=!0:f.type==="text"&&f.attributes?.content&&(n=!0);for(const r of f.children??[])i(r)},o=Array.isArray(e)?e:[e];for(const f of o)i(f);return t&&!n}#y(e,t){const n={},i=new Set,o=f=>{for(const r of f)if(r.nodeType===g.ITEM){const s=r;if(s[p])continue;if(s.parameters?.length)for(const a of s.parameters){if(a[p])continue;const d=this.#O(s.variant),c=this.#$(s.variant),u=a.description?E(a.description):"",l=this.#A(a.schemaId),$={name:a.name,description:u,place:d,mediaType:void 0,type:l,required:a.required??!1,deepLink:this.#d(t,"request",c,void 0,void 0,[a.name]),example:void 0,enum:void 0};n[this.#n($)]=$}this.#g(s,n,i,t)}else if(r.nodeType===g.CONTAINER){const s=r;if(s[p])continue;o(s.children)}else r.nodeType===g.OVERVIEW_SECTION_WRAPPER&&o(r.children)};return o(e),Object.values(n)}#n(e){return[...Array.isArray(e.path)?e.path:[],e.name.toString()].join(".")+e.description+e.place}#d(e,t,n,i,o,f){if(!e)return"";const r=f.join("/"),s=[`t=${t}`];return n&&s.push(`in=${n}`),o&&s.push(`c=${o}`),i&&s.push(`ct=${i}`),r&&s.push(`path=${r}`),`/${e}#${e}/${s.join("&")}`.toLowerCase()}#m(e,t,n,i){if(!e)return"";let o="messages";t&&(o+=`&m=${t}`),o+=`&t=${n}`;const f=i.join("/");return f&&(o+=`&path=${f}`),`/${e}#${e}/${o}`.toLowerCase()}#$(e){switch(e){case"query":return"query";case"path":return"path";case"headers":return"header";case"cookies":return"cookie";default:return}}#O(e){switch(e){case"query":return"query parameters";case"path":return"path parameters";case"headers":return"header parameters";case"cookies":return"cookie parameters";case"parameters":return"channel parameters";default:return e?`${e} parameters`:"parameters"}}#A(e){const t=this.#s?.[e];if(!t||t.kind!==j.JSON_SCHEMA)return"unknown";const n=t.data,i=this.#l(n);return this.#u(i)}#u(e){return Array.isArray(e.type)?e.type.join(" | "):e.type?e.type:e.properties||e.additionalProperties?"object":e.items?"array":e.enum?"string":"any"}#g(e,t,n,i){const o=this.#E(e);if(e.graphqlSchema&&Array.isArray(e.graphqlSchema)){this.#S(e.graphqlSchema,o,t);return}if(!this.#s||!this.#o)return;const f=o.startsWith("response");if(e.mediaTypeSchemas){const r=Object.entries(e.mediaTypeSchemas),s=r.find(([,a])=>!a[p]);if(s){const[a,d]=s;d.schemaId&&this.#r(d.schemaId,o,a,r.length>1,f,t,[],n,i)}}else e.schemaId&&this.#r(e.schemaId,o,void 0,!1,f,t,[],n,i);if(e.responses)for(const r of e.responses){if(r[p])continue;const s=`response ${r.code} fields`,a=new Set;if(r.mediaTypeContent){const d=Object.entries(r.mediaTypeContent),c=d.find(([,u])=>!u[p]);if(c){const[u,l]=c;l.schemaId&&this.#r(l.schemaId,s,u,d.length>1,!0,t,[],a,i)}}else r.schemaId&&this.#r(r.schemaId,s,r.mediaType,!1,!0,t,[],a,i)}if(e.messages)for(const r of e.messages){if(r[p])continue;const s=r.description?E(r.description):"",a=r.summary??"",d={name:r.name,description:(s+a).trim(),place:"message",mediaType:void 0,type:"unknown",required:!1,example:void 0,enum:void 0};t[this.#n(d)]=d,this.#f=r.name;const c=new Set;r.schemaId&&this.#r(r.schemaId,C,r.contentType,!1,!1,t,[],c,i),r.headerSchemaId&&this.#r(r.headerSchemaId,D,void 0,!1,!1,t,[],c,i),this.#f=void 0}}#E(e){switch(e.variant){case"body":return"request fields";case"responses":return"response fields";case"graphql-fields":return"fields";case"graphql-args":return"arguments";case"return-type":return"return type fields";default:return e.variant??"fields"}}#S(e,t,n){for(const i of e){const o=i.description?E(i.description):"",f={name:i.name,description:o,place:t,mediaType:void 0,path:[],type:i.type??"unknown",required:!1,example:void 0,enum:void 0};if(n[this.#n(f)]=f,i.args?.length)for(const r of i.args){const s=r.description?E(r.description):"",a={name:r.name,description:s,place:"arguments",mediaType:void 0,path:[i.name],type:r.type??"unknown",required:!1,example:void 0,enum:void 0};n[this.#n(a)]=a}}}#r(e,t,n,i,o,f,r,s,a=""){const d=this.#s?.[e];if(!d||d.kind!==j.JSON_SCHEMA||d[p])return;const c=d.data,u=i?n:void 0;this.#t(c,t,n,u,o,f,r,s,0,a)}#I(e){const t=e.match(/^response (\d+)/);return t?t[1]:void 0}#l(e){if(e.allOf){const t={};for(const n of e.allOf){const i=n.$ref?this.#e(n.$ref):n;if(i){const o=t.properties,f=t.required;Object.assign(t,i),(o||i.properties)&&(t.properties={...o||{},...i.properties||{}}),(f||i.required)&&(t.required=[...f||[],...i.required||[]])}}return delete t.allOf,e.description&&(t.description=e.description),t}if(e.$ref){const t=this.#e(e.$ref);if(t){const n={...t};return e.description&&(n.description=e.description),n}}return e}#e(e){if(!e.startsWith("#/"))return;const t=e.slice(2).split("/");let n=this.#o;for(const i of t){if(n==null||typeof n!="object")return;n=n[i]}return n!=null&&typeof n=="object"?n:void 0}#t(e,t,n,i,o,f,r,s,a,d=""){if(!(a>L||e[p])){if(e.$ref){if(s.has(e.$ref))return;s.add(e.$ref);const c=this.#e(e.$ref);c&&this.#t(c,t,n,i,o,f,r,s,a,d);return}if(e.allOf){const c={};for(const u of e.allOf){let l=u;if(u.$ref){if(s.has(u.$ref))continue;s.add(u.$ref),l=this.#e(u.$ref)}if(l){const $=c.properties,A=c.required;Object.assign(c,l),($||l.properties)&&(c.properties={...$||{},...l.properties||{}}),(A||l.required)&&(c.required=[...A||[],...l.required||[]])}}delete c.allOf,this.#t(c,t,n,i,o,f,r,s,a,d);return}if(e.discriminator&&e.properties&&e.oneOf){this.#t({...e,oneOf:void 0,discriminator:void 0},t,n,i,o,f,r,s,a,d);return}if(e.oneOf||e.anyOf){for(const c of e.oneOf||e.anyOf||[]){if(c.$ref){if(s.has(c.$ref))continue;s.add(c.$ref)}const u=c.$ref?this.#e(c.$ref):c;u&&this.#t(u,t,n,i,o,f,r,s,a+1,d)}return}if(e.properties){const c=e.required||[],u=this.#I(t),l=o?"response":"request",$=t===C?"payload":t===D?"headers":void 0;for(const[A,O]of Object.entries(e.properties)){if(O[p])continue;if(O.$ref){if(s.has(O.$ref))continue;s.add(O.$ref)}const m=O.$ref?this.#e(O.$ref):O;if(!m)continue;let x=!1;if(m.allOf){let b=!1;for(const q of m.allOf)q.$ref?s.has(q.$ref)||(s.add(q.$ref),b=!0):b=!0;x=!b}const y=this.#l(m);if(m[p]||y[p]||y.readOnly&&!o||y.writeOnly&&o||m.additionalProperties!==void 0&&!m.properties)continue;const T=m.description??y.description,R=T?E(T):"",S=m.example??y.example,V=S!==void 0?N(typeof S=="string"?S:JSON.stringify(S)):void 0,v=Array.isArray(y.enum)&&y.enum.length?y.enum:void 0,I=[...r,A],w={name:A,description:R,place:t,mediaType:n,path:r,type:this.#u(y),required:c.includes(A),deepLink:$?this.#m(d,this.#f,$,I):this.#d(d,l,void 0,i,u,I),example:V,enum:v},k=this.#n(w);f[k]==null&&(f[k]=w,x||this.#t(y,t,n,i,o,f,I,s,a+1,d))}}if(e.items&&typeof e.items=="object"&&!Array.isArray(e.items)){if(e.items.$ref){if(s.has(e.items.$ref))return;s.add(e.items.$ref)}const c=e.items.$ref?this.#e(e.items.$ref):e.items;c&&this.#t(c,t,n,i,o,f,r,s,a+1,d)}}}getResult(){return this.#c}}export{B as ApiDocsSearchIndexer};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { AsyncApiDefinition, AsyncApiDefinitionReferenced } from '@redocly/asyncapi-docs';
|
|
2
|
-
import type { MarkdocChunk } from '../openapi-docs/load-definition.js';
|
|
3
|
-
import type { RedoclyConfig } from '@redocly/config';
|
|
4
|
-
import type { LifecycleContext } from '../../types';
|
|
5
|
-
export type BundledDefinition = {
|
|
6
|
-
document: AsyncApiDefinition;
|
|
7
|
-
documentWithReferences: AsyncApiDefinitionReferenced;
|
|
8
|
-
config: Partial<RedoclyConfig & NonNullable<RedoclyConfig['apis']>[string]>;
|
|
9
|
-
customOutputRelativeFile: string | undefined;
|
|
10
|
-
markdocChunks: MarkdocChunk[];
|
|
11
|
-
realRelativePath: string;
|
|
12
|
-
relativePath: string;
|
|
13
|
-
isVirtual: boolean;
|
|
14
|
-
hash: string;
|
|
15
|
-
};
|
|
16
|
-
export declare function asyncapiDocLoader(relativePath: string, { fs, logger, cache, getConfig, isPathIgnored }: LifecycleContext): Promise<Omit<BundledDefinition, 'hash'>[]>;
|
|
17
|
-
export declare function asyncapiDocsLoader(_: string, context: LifecycleContext): Promise<BundledDefinition[]>;
|
|
18
|
-
//# sourceMappingURL=asyncapi-doc-loader.d.ts.map
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import s from"node:path";import{bundle as R,createConfig as B,getTotals as J}from"@redocly/openapi-core";import{CONFIG_FILE_NAME as L}from"../../../constants/common.js";import{deepMerge as M}from"../../../utils/object/deep-merge.js";import{pluralize as $}from"../../../utils/string/pluralize.js";import{getAllApiConfigsByPath as W}from"../get-api-config.js";import{injectDecoratorIntoConfig as _}from"../openapi-docs/decorators.js";import{ExternalResolver as T}from"../../fs/utils/external-ref-resolver.js";async function Z(n,{fs:o,logger:f,cache:u,getConfig:p,isPathIgnored:d}){let a;try{a=(await u.load(n,"yaml")).data}catch{return[]}if(!a?.asyncapi)return f.verbose(`${n} file is not AsyncAPI document. Skipping`),[];const l=[],e=o.getFileInfo(n),t=await p(s.posix.dirname(n)),A=W(t?.apis,n,t.configPath),D=await d(n);for(const c of A){if(!c.output&&D)continue;const O=t.configPath?s.posix.dirname(t.configPath):".",r=c.output?s.posix.join(O,c.output):n;if(await d(r))continue;e&&c.output&&!await o.exists(r)&&o.addVirtualFile(r,e);const m=M(t,{rbac:void 0},c),k=s.resolve(o.cwd,t.realConfigPath||L),w=new T(o),v=await B(_(m,r,o.cwd),{configPath:k,externalRefResolver:w}),h=s.resolve(o.cwd,n),g={config:v,base:s.dirname(h),doc:{source:{absoluteRef:h},parsed:JSON.parse(JSON.stringify(a))}},{bundle:{parsed:I},problems:y,visitorsData:N}=await R({...g,dereference:!0,externalRefResolver:w}),{bundle:{parsed:P}}=await R({...g,doc:{...g.doc,parsed:JSON.parse(JSON.stringify(a))}}),S=N["markdown/markdown"]?.markdocChunks??[],i=J(y);let b=[i.errors&&`${i.errors} ${$(i.errors,"error","errors")}`,i.warnings&&`${i.warnings} ${$(i.warnings,"warning","warnings")}`,i.ignored&&`${i.ignored} ignored`].filter(Boolean).join(", ");if(i.errors){const C=y.find(F=>F.severity==="error");throw new Error(`${b} while bundling ${r} definition.
|
|
2
|
-
|
|
3
|
-
${C?.message} at ${C?.location?.[0].pointer}
|
|
4
|
-
|
|
5
|
-
`)}i.warnings&&f.warn(`${b} while bundling %rp definition`,r);const V=x(I,t.metadata),j=x(P,t.metadata),E={document:V,documentWithReferences:j,config:m,relativePath:r,realRelativePath:e?.realRelativePath||r,customOutputRelativeFile:c.output&&r,markdocChunks:S,isVirtual:e?.isVirtual??!1};l.push(E)}return l}async function nn(n,o){const{fs:f,cache:u,getConfig:p}=o,d=[];for(const a of await f.scan(/(\.ya?ml|\.json)$/)){if(!await p(s.posix.dirname(a.relativePath)))continue;let e;try{e=await u.load(a.relativePath,"asyncapi-doc")}catch{continue}e.data?.length&&d.push(...e.data.map(t=>({...t,isVirtual:a.isVirtual||t.isVirtual,hash:e.compoundHash})))}return d}function x(n,o){return o?{...n,info:{...n.info,"x-metadata":{...n.info["x-metadata"],...o}}}:n}export{Z as asyncapiDocLoader,nn as asyncapiDocsLoader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{getPublicEnvVariables as n}from"../../utils/envs/get-public-env-variables.js";const l=async({fsPath:r,slug:e},t,{partials:a,variables:i},o)=>{const s=o.getPartialsForRoute?.(e)||a;return{definitionId:r,...t.props,markdown:{partials:s,variables:{...i,env:n()}}}};var d=l;export{d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{fromCurrentDir as t}from"../../utils/paths.js";function m(r){return t(import.meta.url,r)}export{m as getTemplatePath};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import A from"path";import{simplifyAstStructure as E}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{buildMenuItems as $}from"@redocly/asyncapi-docs/lib/utils/build-menu-items.js";import{findFirstBinding as T}from"@redocly/asyncapi-docs/lib/utils/find-first-binding.js";import{ASYNC_API_DOCS_TEMPLATE_ID as v}from"../../../constants/common.js";import{combineUrls as D}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as R}from"../../constants/common.js";import{logger as x}from"../../tools/notifiers/logger.js";import{getRouteSlugsForPath as F}from"../utils.js";import{getTemplatePath as b}from"./get-template-path.js";import{storeDefinitionBundles as O}from"./store-definition-bundles.js";import{asyncapiDocLoader as N,asyncapiDocsLoader as j}from"./asyncapi-doc-loader.js";import{searchResolver as L}from"./search/search-resolver.js";import{getAiDocumentsStore as G}from"./search/get-ai-search-documents.js";import{telemetryTraceStep as M}from"../../../cli/telemetry/helpers/trace-step.js";const _="asyncapi-docs-";async function ot(d){let p=[],u=new Set;return{id:"asyncapi",requiredEntitlements:["asyncapi"],loaders:{"asyncapi-doc":N,"asyncapi-docs":j},processContent:async(e,o)=>{await M("com.redocly.build.plugin.asyncapiDocs",async()=>{if((await o.getConfig()).plugins?.some(l=>l.startsWith("@redocly/portal-plugin-async-api/"))){x.warn("The plugin '@redocly/portal-plugin-async-api' is deprecated. Please remove it from your config to use built-in AsyncAPI docs.");return}const c=e.createTemplate(v,b("../../../client/templates/asyncapi-docs/template.js")),g=e.registerServerPropsGetter(v,b("./get-server-props.js"));for(const l of await o.fs.scan(/(\.ya?ml|\.json)$/))if(!await o.isPathIgnored(l.relativePath))try{const{data:r,compoundHash:w}=await o.cache.load(l.realRelativePath,"asyncapi-doc");if(!r?.length)continue;p=r.map(({markdocChunks:t,relativePath:s,isVirtual:m,customOutputRelativeFile:f,realRelativePath:y})=>({chunks:t,relativePath:s,realRelativePath:y,isVirtual:f!=null||l.isVirtual||m})),O(r,e.outdir,w);for(const t of r){const s=`${_}${t.relativePath}`,m=T(t.document),{navItems:f,apiItems:y}=$({asyncApiDoc:t.document,protocol:m||""}),I=[{url:D(R,`${C(t.relativePath,".json")}?download`)},{url:D(R,`${C(t.relativePath,".yaml")}?download`)}];await e.createSharedData(s,{document:t.document,apiItems:y,protocol:m,downloadUrls:I}),f.forEach(i=>{const n={fsPath:t.relativePath,slugSuffix:`/${i.link}`,templateId:c,sharedData:[{key:"AsyncApiDefinition",id:s}],getStaticData:S(o.withPathPrefix,i.label),serverPropsGetterIds:[g]};e.addRoute(n),i.items&&i.items.forEach(a=>{e.addRoute({...n,slugSuffix:`/${a.link}`,getStaticData:S(o.withPathPrefix,a.label)}),a.items&&a.items.forEach(h=>{e.addRoute({...n,slugSuffix:`/${h.link}`,getStaticData:S(o.withPathPrefix,a.label)})})})}),e.addRoute({fsPath:t.customOutputRelativeFile||t.relativePath,templateId:c,hasClientRoutes:!0,getSidebar:i=>{const n=a=>{const h={...a};return a.link&&(h.routeSlug=D(i.slug,a.link),h.link=D(i.slug,a.link)),a.items&&(h.items=a.items.map(n)),h};return[{type:"link",label:t.document.info?.title??"AsyncAPI Overview",routeSlug:i.slug,link:i.slug},...f.map(n)]},getSearchDocuments:L(e,t.document),getStaticData:S(o.withPathPrefix,t.document.info?.title??"AsyncAPI Docs"),getAiDocumentsStore:G({actions:e,document:t.document,metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}}}),metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}},sharedData:[{key:"AsyncApiDefinition",id:s}]})}}catch(r){console.error(r)}})},afterRoutesCreated:async(e,o)=>{const P=new Set;for(const{chunks:c,relativePath:g,isVirtual:l,realRelativePath:r}of p){const w=F(e.getAllRoutes(),g),t=(await o.cache.load(r,"asyncapi-doc")).compoundHash;await o.cache.load(g,{loader:async function(){for(const{node:m,markdown:f,pointer:y,key:I,relativePath:i}of c){const{ast:n}=await e.parseMarkdoc({input:{content:f,relativePath:y,isVirtual:l},context:o,deps:{sharedDataIds:[`${_}${i}`],routeSlugs:w}});m[`x-parsed-md-${I}`]={result:E(n)}}},name:"asyncapi-markdoc-inline-parser"},[t]);for(const{pointer:s}of c)P.add(s)}const k=u.difference(P);for(const c of k)o.cache.delete(c);u=P}}}function S(d,p){return async function(u,e){return{props:{settings:{baseUrlPath:d(u.baseSlug)},disableAutoScroll:!0,seo:{title:p}}}}}function C(d,p){const u=A.posix.dirname(d),e=A.posix.basename(d,A.posix.extname(d))+p;return A.posix.join(u,e)}export{ot as asyncAPIDocsPlugin};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import f from"node:path";import{CONFIG_FILE_NAME as n}from"../../../constants/common.js";const o=async(a,r)=>{if(!a.match(/(\.ya?ml|\.json)$/)||f.posix.basename(a)===n||await r.isPathIgnored(a))return!1;const s=r.fs.getFileInfo(a);if(!s)return!1;try{const{data:e}=await r.cache.load(s.realRelativePath,"yaml");return!!e?.asyncapi}catch{return!1}};export{o as isAsyncapiDoc};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { AsyncApiDefinition } from '@redocly/asyncapi-docs';
|
|
2
|
-
import type { PageRouteDetails, ProcessContentActions, AfterRoutesCreatedLifecycleContext } from '../../../types';
|
|
3
|
-
import type { AiDocumentsStore } from '../../../plugins/search/types.js';
|
|
4
|
-
export declare const getAiDocumentsStore: ({ actions, document, metadata, }: {
|
|
5
|
-
actions: ProcessContentActions;
|
|
6
|
-
document: AsyncApiDefinition;
|
|
7
|
-
metadata: Record<string, unknown>;
|
|
8
|
-
}) => (route: PageRouteDetails, _staticData: unknown, context: AfterRoutesCreatedLifecycleContext) => Promise<AiDocumentsStore | undefined>;
|
|
9
|
-
//# sourceMappingURL=get-ai-search-documents.d.ts.map
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import{basename as S}from"node:path";import{REDOCLY_TEAMS_RBAC as y}from"@redocly/config";import{isResourcePubliclyAccessible as C}from"../../../utils/rbac.js";import{getLlmsTxtMdPathBySlug as A}from"../../../utils/llmstxt/get-llms-txt-md-path-by-slug.js";import{getLocaleFromRelativePath as L}from"../../../fs/utils/get-locale-from-relative-path.js";import{extractDocumentSearchFacets as j}from"./search-facets.js";import{removeMarkdownLinks as m}from"../../openapi-docs/utils.js";import{processSchema as d}from"./schema-processor.js";import{llmsTxtLink as k}from"../../search/llmstxt/index.js";const Z=({actions:n,document:e,metadata:i})=>async(t,s,r)=>{const a=t.getSidebar?.(t)||[],c=await r.getConfig(),{allSearchDocuments:o,publiclyAccessibleSearchDocuments:l}=b(t,a,e,n,i,c);if(o.length)return{async getLLMsTxts(){return l.map(f=>({slug:f.url,fsPath:t.fsPath,title:f.title,content:f.content,includeInLLMsTxt:f.includeInLLMsTxt}))},async getSearchDocuments(){return o}}};function b(n,e,i,t,s,r,a){const c=[],o=[];for(const l of e){if(l.type==="group"){const h=l.apiItemData?.type==="channel"?l:a,{allSearchDocuments:D,publiclyAccessibleSearchDocuments:P}=b(n,l.items||[],i,t,s,r,h);c.push(...D),o.push(...P)}const f=I(n,l,i,t,s,r);f&&(c.push(f),B(l,r,a)&&o.push(f))}return{allSearchDocuments:c,publiclyAccessibleSearchDocuments:o}}function I(n,e,i,t,s,r){const a=F(e,i);if(!a)return null;const c=e.link||"",o=e.httpVerb||"",l=L(n.fsPath),f=j(t,s),h=M(n,e,i,a,o,c,r);return{url:c||n.slug,fsPath:n.fsPath,content:h.trim(),title:m(a.title||"")||S(n.fsPath),locale:l,product:n.product?.name,facets:f,includeInLLMsTxt:!e.apiItemData}}function M(n,e,i,t,s,r,a){let c="";const o=m(t.title||""),l=m(t.description||"")+m(t.summary||"");return o&&(c+=`# ${o}
|
|
2
|
-
|
|
3
|
-
`),l&&(c+=`${l}
|
|
4
|
-
|
|
5
|
-
`),s&&(c+=`Method: ${s.toUpperCase()}
|
|
6
|
-
`),c+=O(i),c+=v(i),e.type==="link"&&!e.apiItemData&&(c+=T(n,a)),e.apiItemData?.type==="channel"&&(c+=x(e,i,r,n)),e.apiItemData?.type==="operation"&&(c+=N(e,i)),c}function O(n){let e="";return n.info?.version&&(e+=`Version: ${n.info.version}
|
|
7
|
-
`),n.info?.license?.name&&(e+=`License: ${n.info.license.name}
|
|
8
|
-
`),e}function v(n){if(!n.servers||Object.keys(n.servers).length===0)return"";let e=`
|
|
9
|
-
## Servers
|
|
10
|
-
|
|
11
|
-
`;for(const[i,t]of Object.entries(n.servers))e+=`### ${i}
|
|
12
|
-
`,t.description&&(e+=`${t.description}
|
|
13
|
-
`),e+=`Host: ${t.host}
|
|
14
|
-
`,e+=`Protocol: ${t.protocol}
|
|
15
|
-
`,t.protocolVersion&&(e+=`Protocol Version: ${t.protocolVersion}
|
|
16
|
-
`),t.pathname&&(e+=`Path: ${t.pathname}
|
|
17
|
-
`),e+=`
|
|
18
|
-
`;return e}function T(n,e){const i=n.getSidebar?.(n)||[],t=$(i,e);if(Object.keys(t).length===0)return"";let s="";for(const[,r]of Object.entries(t))if(r.length>0)for(const a of r){const c=a.label||"Untitled",o=a.link||a.routeSlug||"";s+=`#### ${c}
|
|
19
|
-
|
|
20
|
-
`,o&&(s+=` - ${k({title:c,description:void 0,slug:A(o)})}
|
|
21
|
-
|
|
22
|
-
`)}return s}function x(n,e,i,t){const s=n.apiItemData?.id;if(!s)return"";const r=e.channels?.[s];if(!r)return"";let a="";if(r.parameters&&Object.keys(r.parameters).length>0){a+=`## Parameters
|
|
23
|
-
|
|
24
|
-
`;for(const[c,o]of Object.entries(r.parameters))a+=`### ${c}
|
|
25
|
-
`,typeof o=="object"&&o!==null&&"description"in o&&o.description&&(a+=`${o.description}
|
|
26
|
-
`),typeof o=="object"&&o!==null&&"enum"in o&&Array.isArray(o.enum)&&o.enum.length>0&&(a+=`Enum: ${o.enum.join(", ")}
|
|
27
|
-
`),typeof o=="object"&&o!==null&&"default"in o&&o.default&&(a+=`Default: ${o.default}
|
|
28
|
-
`),a+=`
|
|
29
|
-
`}if(r.messages&&Object.keys(r.messages).length>0){a+=`## Messages
|
|
30
|
-
|
|
31
|
-
`;for(const[c,o]of Object.entries(r.messages))a+=R(o,c,i,t)}return a}function R(n,e,i,t){let r=`### ${n.title||n.name||e}
|
|
32
|
-
`;if(n.description&&(r+=`${n.description}
|
|
33
|
-
`),n.summary&&(r+=`${n.summary}
|
|
34
|
-
`),n.payload){const a=d(n.payload,"message payload",i.replace(t.slug+"/","").replace(/^\//,""),e);a.length>0&&(r+=`
|
|
35
|
-
#### Payload Schema
|
|
36
|
-
|
|
37
|
-
`,r+=g(a))}if(n.headers){const a=d(n.headers,"message headers",i.replace(t.slug+"/","").replace(/^\//,""),e);a.length>0&&(r+=`
|
|
38
|
-
#### Headers Schema
|
|
39
|
-
|
|
40
|
-
`,r+=g(a))}return r}function g(n){let e="";for(const i of n)if(typeof i=="object"&&i!==null&&"name"in i&&"type"in i){const t=i;e+=`- **${t.name}** (${t.type}${t.required?", required":""})
|
|
41
|
-
`,t.description&&(e+=` ${t.description}
|
|
42
|
-
`),t.enum&&Array.isArray(t.enum)&&t.enum.length>0&&(e+=` Enum: ${t.enum.join(", ")}
|
|
43
|
-
`),e+=`
|
|
44
|
-
`}return e}function N(n,e){const i=n.apiItemData?.id;if(!i)return"";const t=e.operations?.[i];if(!t)return"";let s=`## Operation Details
|
|
45
|
-
|
|
46
|
-
`;if(t.action&&(s+=`Action: ${t.action}
|
|
47
|
-
`),t.description&&(s+=`${t.description}
|
|
48
|
-
`),t.summary&&(s+=`${t.summary}
|
|
49
|
-
`),t.messages&&t.messages.length>0){s+=`
|
|
50
|
-
### Messages
|
|
51
|
-
|
|
52
|
-
`;for(const r of t.messages){const a=r.title||r.name||"Message";s+=`#### ${a}
|
|
53
|
-
`,r.description&&(s+=`${r.description}
|
|
54
|
-
`),r.summary&&(s+=`${r.summary}
|
|
55
|
-
`),s+=`
|
|
56
|
-
`}}return s}function $(n,e){const i={};for(const t of n)t.type==="group"?t.apiItemData?.type==="channel"?q(t,i,e):V(t,i,e):t.apiItemData?.type==="channel"&&E(t,i,e);return i}function q(n,e,i){const t=n.label||"Channel";if(p(u(n),i)&&(e[t]||(e[t]=[]),e[t].push(n),n.items))for(const s of n.items)s.apiItemData?.type==="operation"&&p(u(s),i)&&e[t].push(s)}function V(n,e,i){if(n.items){const t=$(n.items,i);for(const[s,r]of Object.entries(t))e[s]||(e[s]=[]),e[s].push(...r)}}function E(n,e,i){const t=n.label||"Channel";if(p(u(n),i)&&(e[t]||(e[t]=[]),e[t].push(n),n.items))for(const s of n.items)s.apiItemData?.type==="operation"&&p(u(s),i)&&e[t].push(s)}function F(n,e){const{apiItemData:i,type:t}=n;return i?.type?w(i,e):t==="link"?_(e):null}function w(n,e){switch(n.type){case"channel":return e.channels?.[n.id]||null;case"operation":return e.operations?.[n.id]||null;default:return null}}function _(n){return{description:n.info?.description||"",title:n.info?.title||"",summary:""}}function B(n,e,i){const t=p(u(n),e);if(n.apiItemData?.type==="operation"&&i){const s=p(u(i),e);return t&&s}return t}function u(n){return{slug:n.link||"",[y]:n[y]}}function p(n,e){return e.access?.requiresLogin?!0:C(n,e)}export{Z as getAiDocumentsStore};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { OperationParameter } from '@redocly/theme/core/types';
|
|
2
|
-
export type SchemaProcessorOptions = {
|
|
3
|
-
basePath?: string;
|
|
4
|
-
mediaType?: string;
|
|
5
|
-
messageKey?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function processSchema(schema: any | undefined, place: string, basePath: string, messageKey?: string): OperationParameter[];
|
|
8
|
-
//# sourceMappingURL=schema-processor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{removeMarkdownLinks as j}from"../../openapi-docs/utils.js";function w(t,n,o,i){if(!t)return[];const e={};return l(e,t,n,o,i),Object.values(e)}function l(t,n,o,i,e,f=[]){if(!(!n||n.type==="null")){if(n.type==="object"&&n.properties){for(const[r,u]of Object.entries(n.properties))if(typeof u=="object"&&u!==null){const d=f.concat([r]),p=n.required?.includes(r)||!1,y=c(r,u,o,d,p,i,e),O=A(y);if(t[O]!==void 0)continue;t[O]=y,l(t,u,o,i,e,d)}}if(n.type==="array"&&n.items&&typeof n.items=="object"&&n.items!==null&&l(t,n.items,o,i,e,f),n.oneOf&&Array.isArray(n.oneOf))for(const r of n.oneOf)typeof r=="object"&&r!==null&&l(t,r,o,i,e,f);if(n.anyOf&&Array.isArray(n.anyOf))for(const r of n.anyOf)typeof r=="object"&&r!==null&&l(t,r,o,i,e,f);if(n.allOf&&Array.isArray(n.allOf))for(const r of n.allOf)typeof r=="object"&&r!==null&&l(t,r,o,i,e,f)}}function c(t,n,o,i,e,f,r){const u=S(n),d=j(n.description||""),p=n.example,y=n.enum;return{name:t,description:d,place:o,mediaType:void 0,path:i.slice(0,-1),type:u||"unknown",required:e,example:p?JSON.stringify(p):void 0,enum:y?.length?y:void 0,deepLink:k(i,o,f,r)}}function S(t){return t.type?Array.isArray(t.type)?t.type.filter(n=>n!=="null").join(" | "):t.type:t.properties?"object":t.items?"array":t.enum?"enum":t.format?t.format:"unknown"}function A(t){return`${t.name}${t.description}${t.place}`}function k(t,n,o,i){let e="",f="";n==="message headers"?f="headers":n==="message payload"&&(f="payload"),t.length>0&&(e=t.join("/"));let r=`#${o}/messages`;return i&&(r+=`&m=${i.toLowerCase()}`),f&&(r+=`&t=${f}`),e&&(r+=`&path=${e.toLowerCase()}`),r}export{w as processSchema};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ProcessContentActions } from '../../../types';
|
|
2
|
-
export declare function setDocumentSearchFacets(actions: ProcessContentActions, documentSearchFacets: {
|
|
3
|
-
[key: string]: string | Set<string>;
|
|
4
|
-
}): void;
|
|
5
|
-
export declare function extractDocumentSearchFacets(actions: ProcessContentActions, metadata?: Record<string, unknown>): {
|
|
6
|
-
[key: string]: string;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=search-facets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SEARCH_GROUP_FACET_FIELD as f}from"../../../../constants/common.js";import{SEARCH_GROUP_NAME_API as u}from"../../../constants/plugins/search.js";function h(r,a){const e=r.getSearchFacets();for(const[s,t]of Object.entries(a)){const c=e.get(s);if(c){const o=new Set(c.values??[]);t instanceof Set?[...t].forEach(n=>c.values=Array.from(o.add(n))):c.values=Array.from(o.add(t))}}r.setSearchFacets(e)}function F(r,a){const e={[f]:u};if(!a)return e;const s=r.getSearchFacets();for(const[t,c]of Object.entries(a))s.has(t)&&(e[t]=String(c));return e}export{F as extractDocumentSearchFacets,h as setDocumentSearchFacets};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { PageStaticData } from '@redocly/config';
|
|
2
|
-
import type { AsyncApiDefinition } from '@redocly/asyncapi-docs';
|
|
3
|
-
import type { PageRouteDetails, ProcessContentActions, SearchDocument } from '../../../types';
|
|
4
|
-
export declare function searchResolver(actions: ProcessContentActions, document: AsyncApiDefinition): (route: PageRouteDetails, staticData: PageStaticData) => Promise<SearchDocument[]>;
|
|
5
|
-
//# sourceMappingURL=search-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{REDOCLY_ROUTE_RBAC as D,REDOCLY_TEAMS_RBAC as d}from"@redocly/config";import{extractDocumentSearchFacets as O,setDocumentSearchFacets as T}from"./search-facets.js";import{removeMarkdownLinks as m}from"../../openapi-docs/utils.js";import{processSchema as S}from"./schema-processor.js";function q(e,t){return async(n,r)=>{const o=n.getSidebar?.(n)||[];return k({actions:e,document:t,staticData:r,route:n},o)}}function k(e,t){const n=[];for(const r of t){r.type==="group"&&n.push(...k(e,r.items||[]));const o=w(e,r);o&&n.push(o)}return n}function w(e,t){const{actions:n,document:r,staticData:o,route:s}=e,f=A(t,r);if(!f)return null;const g=t.link||"",L=t.httpVerb||"",P={slug:s.slug,fsPath:s.fsPath},R=s.metadata||{},y=O(n,R);T(n,y);const i={id:g,url:g,text:m(f.description||"")+m(f.summary||""),title:m(f.title||""),httpMethod:L,facets:y,[d]:t[d]||o[d],[D]:s[D]||P};if(t.apiItemData?.type==="channel"){const x=t.apiItemData.id,u=r.channels?.[x];if(u){const p=[];if(u.parameters)for(const[l,c]of Object.entries(u.parameters)){const a={name:l,description:m(c.description||""),place:"channel parameters",mediaType:void 0,type:"string",required:!1,example:void 0,enum:c.enum,deepLink:`#${i.url.replace(s.slug+"/","").replace(/^\//,"")}/parameters&path=${l}`};p.push(a)}if(u.messages){const l=u.messages;if(l)for(const[c,a]of Object.entries(l)){const C={name:a.title||a.name||c,description:m(a.description||"")+m(a.summary||""),place:"message",mediaType:void 0,type:"unknown",deepLink:`#${i.url.replace(s.slug+"/","").replace(/^\//,"")}/messages&m=${c.toLocaleLowerCase()}`,required:!1,example:void 0,enum:void 0};if(p.push(C),a.payload){const h=S(a.payload,"message payload",i.url.replace(s.slug+"/","").replace(/^\//,""),c);p.push(...h)}if(a.headers){const h=S(a.headers,"message headers",i.url.replace(s.slug+"/","").replace(/^\//,""),c);p.push(...h)}}}p.length>0&&(i.parameters=p)}}return i}function A(e,t){const{apiItemData:n}=e;return n?.type?E(n,t):e.type==="group"&&e.label?F(e.label,t):I(t)}function E(e,t){switch(e.type){case"channel":return t.channels?.[e.id]||null;case"operation":return t.operations?.[e.id]||null}}function F(e,t){const n=t.components?.tags?.[e];return{description:n?.description||"",title:n?.name||e,summary:""}}function I(e){return{description:e.info?.description||"",title:e.info?.title||"",summary:""}}export{q as searchResolver};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BundledDefinition } from './asyncapi-doc-loader.js';
|
|
2
|
-
export declare function storeDefinitionBundles(definitions: BundledDefinition[], outDir: string, hash: string): void;
|
|
3
|
-
export declare function replaceFileExtension(filePath: string, fileExt: string): string;
|
|
4
|
-
//# sourceMappingURL=store-definition-bundles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{writeFileSync as l}from"fs";import o from"path";import{dump as d}from"js-yaml";import{PUBLIC_API_DEFINITIONS_FOLDER as u,PUBLIC_STATIC_FOLDER as m}from"../../constants/common.js";import{logger as x}from"../../tools/notifiers/logger.js";import{ensureDir as g}from"../../utils/fs.js";const c=new Map;function _(e,t,i){const r=u.slice(1);try{for(const s of e){const{documentWithReferences:f,relativePath:n}=s;if(c.get(n)!==i){if(n.startsWith(m+"/")){const a=o.posix.extname(n);p({outDir:t,definitionFolder:".",relativePath:n.replace(m+"/",""),definitionString:a===".json"?JSON.stringify(f,null,2):d(f)}),c.set(n,i);continue}p({outDir:t,definitionFolder:r,relativePath:F(n,".json"),definitionString:JSON.stringify(f,null,2)}),c.set(n,i)}}}catch(s){x.error("failed to store definition bundles",s)}}function F(e,t){const i=o.posix.dirname(e),r=o.posix.basename(e,o.posix.extname(e))+t;return o.posix.join(i,r)}function p({outDir:e,definitionString:t,relativePath:i,definitionFolder:r}){l(g(o.resolve(e,`${r}/${i}`)),t,"utf8")}export{F as replaceFileExtension,_ as storeDefinitionBundles};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const s=["queries","mutations","subscriptions","directives","unions","scalars","interfaces","enums","objects","inputs"];export{s as TYPE_GROUPS};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{fromCurrentDir as t}from"../../utils/paths.js";function m(r){return t(import.meta.url,r)}export{m as getTemplatePath};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { MenuStore, AppStore } from '@redocly/graphql-docs';
|
|
2
|
-
import type { LoaderFn } from '../../types';
|
|
3
|
-
import type { GraphQLConfig } from '@redocly/config';
|
|
4
|
-
export type GraphqlLoadResult = {
|
|
5
|
-
content: string;
|
|
6
|
-
menu: MenuStore;
|
|
7
|
-
store: AppStore;
|
|
8
|
-
metadata?: Record<string, unknown>;
|
|
9
|
-
settings: GraphQLConfig;
|
|
10
|
-
} | undefined;
|
|
11
|
-
export declare const graphqlDocLoader: LoaderFn;
|
|
12
|
-
export type BundledDefinition = {
|
|
13
|
-
relativePath: string;
|
|
14
|
-
settings: GraphQLConfig;
|
|
15
|
-
};
|
|
16
|
-
export declare const graphqlDocsLoader: LoaderFn<BundledDefinition[]>;
|
|
17
|
-
//# sourceMappingURL=graphql-doc-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{buildSchema as d}from"graphql";import{MenuStore as f,AppStore as g}from"@redocly/graphql-docs";import h from"node:path";import{combineUrls as u}from"@redocly/theme/core/utils";import{GRAPHQL_SPEC_SLUG as w}from"../../../constants/common.js";import{deepMerge as q}from"../../../utils/object/deep-merge.js";import{reporter as S}from"../../tools/notifiers/reporter.js";import{getApiConfigByPath as b}from"../get-api-config.js";import{replaceFileExtension as x}from"../openapi-docs/store-definition-bundles.js";const E=async(r,{getConfig:i,fs:c})=>{const e=await i(),o=e?.graphql??{},t=await c.read(r),{graphql:n={},metadata:m}=b(e.apis,r),s=q(o||{},n,{feedback:o.feedback||e.feedback,downloadUrls:o.downloadUrls||[{url:u(w,`${x(r,h.posix.extname(r))}?download`)}]});let p,l;try{const a=d(t);l=new g(a),p=new f(a,s)}catch(a){await S.panicOnBuild(a);return}return{menu:p,store:l,settings:s,metadata:m,content:t}},F=async(r,{fs:i,cache:c,isPathIgnored:e})=>{const o=[];for(const{relativePath:t}of i.scan(/(\.gql|\.graphql)$/)){if(await e(t))continue;const n=await c.load(t,"graphql-doc").catch(()=>null);n?.data&&o.push({relativePath:t,settings:n.data.settings})}return o};export{E as graphqlDocLoader,F as graphqlDocsLoader};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { LifecyclePluginInstance } from '../../types';
|
|
2
|
-
export declare function graphqlDocsPlugin(): Promise<LifecyclePluginInstance>;
|
|
3
|
-
export declare function storeGqlSchema(content: string, outDir: string, relativePath: string): void;
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{writeFileSync as v}from"node:fs";import C from"node:path";import{REDOCLY_TEAMS_RBAC as $}from"@redocly/config";import{combineUrls as q}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as w}from"../../constants/common.js";import{GRAPHQL_TEMPLATE_ID as O,GRAPHQL_SPEC_SLUG as Q,PUBLIC_RBAC_SCOPE_ITEM as H}from"../../../constants/common.js";import{removeTrailingSlash as I}from"../../../utils/url/remove-trailing-slash.js";import{getTemplatePath as N}from"./get-template-path.js";import{searchResolver as F}from"./search/search-resolver.js";import{graphqlDocLoader as M,graphqlDocsLoader as U}from"./graphql-doc-loader.js";import{getAiDocumentsStore as A}from"./search/ai/get-ai-search-document.js";import{fromCurrentDir as k}from"../../utils/paths.js";import{ensureDir as x}from"../../utils/fs.js";import{telemetryTraceStep as B}from"../../../cli/telemetry/helpers/trace-step.js";const j="graphql-docs-",R="graphql-spec-download";async function nt(){return{id:"graphql",requiredEntitlements:["graphql"],loaders:{"graphql-doc":M,"load-graphql-docs":U},processContent:async(t,{fs:l,cache:n,isPathIgnored:i,withPathPrefix:p})=>{await B("com.redocly.build.plugin.graphqlDocs",async()=>{t.createRequestHandler(R,k(import.meta.url,"./spec-download.api.js")),t.addApiRoute({slug:Q+"/*",requestHandlerId:R,httpMethod:"all",[$]:H,getStaticData:async()=>({props:{}})});const m=t.createTemplate(O,N("./template/GraphQLDocs.js"));for(const{relativePath:o}of l.scan(/(\.gql|\.graphql)$/)){if(await i(o))continue;const h=await n.load(o,"graphql-doc");if(!h.data)continue;K(h.data.content,t.outdir,o);const{menu:_,content:y,settings:u,metadata:G,store:c}=h.data,L=`${j}${o}`;await t.createSharedData(L,y);const d=[{key:"graphQlSettings",id:L}],b=_.getGroups(),T=_.getSidebarItems(),g={type:"graphql",title:b[0].name,...G},s=[{slugSuffix:"",fsPath:o,templateId:m,getStaticData:S(void 0,u,p),sharedData:d,getAiDocumentsStore:A({label:u.info?.title??"GraphQL Overview",groupName:"overview",metadata:g,actions:t,store:c,includeInLLMsTxt:!0})}];for(const r of b){const f=`${r.id}`;s.push({slugSuffix:f,fsPath:o,templateId:m,getStaticData:S(r,u,p),sharedData:d});for(const e of r.typeGroups){const a=`${e.id}`;s.push({slugSuffix:a,fsPath:o,templateId:m,getStaticData:S(e,u,p),sharedData:d,getAiDocumentsStore:A({label:e.name,groupName:e.name,metadata:g,actions:t,store:c,isTypeGroup:!0,items:new Set(e.items)})});for(const E of e.items){const P=`${e.id}/${E}`;s.push({slugSuffix:P,fsPath:o,templateId:m,getStaticData:S(e,u,p),sharedData:d,getAiDocumentsStore:A({label:E,groupName:e.name,metadata:g,actions:t,store:c})})}}}if(!s.length)return;const D=s[s.length-1];D.metadata=g,D.getSidebar=r=>{function f(e){return e.map(a=>({...a,slug:a.slug&&I(q(r.baseSlug,a.slug)),routeSlug:a.routeSlug&&I(q(r.baseSlug,a.routeSlug)),link:a.link&&I(q(r.baseSlug,a.link)),items:a.items&&f(a.items)}))}return f(T)},D.getSearchDocuments=F(t,c);for(const r of s)t.addRoute(r)}})}}}function S(t,l,n){return async function(i){return{props:{seo:{title:t?.name??l.info?.title??"GraphQL Overview"},settings:{...l,location:{section:t?.id},sidebar:{hide:!0},baseUrlPath:n(i.baseSlug)},disableAutoScroll:!0}}}}function K(t,l,n){const i=w.slice(1);v(x(C.resolve(l,`${i}/${n}`)),t,"utf8")}export{nt as graphqlDocsPlugin,K as storeGqlSchema};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const t=r=>!!r.match(/(\.gql|\.graphql)$/);export{t as isGraphqlDoc};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { AppStore } from '@redocly/graphql-docs';
|
|
2
|
-
import type { PageRouteDetails, ProcessContentActions } from '../../../../types';
|
|
3
|
-
import type { AiDocumentsStore } from '../../../../plugins/search/types.js';
|
|
4
|
-
type GetAiDocumentsStoreParams = {
|
|
5
|
-
label: string;
|
|
6
|
-
groupName: string;
|
|
7
|
-
metadata: Record<string, unknown>;
|
|
8
|
-
actions: ProcessContentActions;
|
|
9
|
-
store: AppStore;
|
|
10
|
-
includeInLLMsTxt?: boolean;
|
|
11
|
-
llmstxtTitle?: string;
|
|
12
|
-
isTypeGroup?: boolean;
|
|
13
|
-
items?: Set<string>;
|
|
14
|
-
};
|
|
15
|
-
export declare const getAiDocumentsStore: ({ label, groupName, metadata, actions, store, includeInLLMsTxt, llmstxtTitle, isTypeGroup, items, }: GetAiDocumentsStoreParams) => (route: PageRouteDetails) => Promise<AiDocumentsStore | undefined>;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=get-ai-search-document.d.ts.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{TYPE_GROUPS as S}from"../../constants.js";import{getLocaleFromRelativePath as D}from"../../../../fs/utils/get-locale-from-relative-path.js";import{convertDocumentToMarkdown as y,getSearchDocument as P}from"./utils.js";import{extractDocumentSearchFacets as L}from"../search-facets.js";const F=({label:o,groupName:r,metadata:a,actions:i,store:m,includeInLLMsTxt:e,llmstxtTitle:c,isTypeGroup:f,items:u})=>async t=>{const s=D(t.fsPath),n=L(i,a),h=t.slug===t.baseSlug,g=e!==void 0?e:h,l=A(o,r,t,m,s,n,f,u,h);if(l)return{async getLLMsTxts(){return[{slug:l.url,fsPath:t.fsPath,title:c||l.title,content:l.content,includeInLLMsTxt:g}]},async getSearchDocuments(){return[l]}}};function d(o,r,a,i,m){const e=[];for(const c of S){const f=c.charAt(0).toUpperCase()+c.slice(1),u=P({label:f,groupName:c,store:a,isTypeGroup:!0}),t=(Array.isArray(u)?u:[u]).filter(n=>!!(n&&n.name));if(t.length===0)continue;e.push(`## ${f}`);const s=t.map(n=>`- ${n.name}: ${n.description}`);e.push(...s)}return{url:r.slug,fsPath:r.fsPath,content:e.join(`
|
|
2
|
-
`),title:o,locale:i,facets:m}}function A(o,r,a,i,m,e,c,f,u){if(u)return d(o,a,i,m,e);const t=c?P({label:o,groupName:r,store:i,isTypeGroup:c,items:f??new Set}):P({label:o,groupName:r,store:i}),s=(Array.isArray(t)?t:[t]).filter(p=>!!p);if(s.length===0)return;const n=s.length===1,h=n?1:2,g=s.map(p=>y(p,h)).join(`---
|
|
3
|
-
|
|
4
|
-
`),l=n?s[0].name:o;return{url:a.slug,fsPath:a.fsPath,content:g,title:l??"",locale:m,facets:e}}export{F as getAiDocumentsStore};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { AppStore } from '@redocly/graphql-docs';
|
|
2
|
-
import type { GraphQLSearchDocument } from '../../types.js';
|
|
3
|
-
type GetSearchDocumentParams = {
|
|
4
|
-
label: string;
|
|
5
|
-
groupName: string;
|
|
6
|
-
store: AppStore;
|
|
7
|
-
isTypeGroup?: boolean;
|
|
8
|
-
items?: Set<string>;
|
|
9
|
-
};
|
|
10
|
-
type GetSearchDocumentReturnType = GraphQLSearchDocument | (GraphQLSearchDocument | undefined)[] | undefined;
|
|
11
|
-
export declare function getSearchDocument({ label, groupName, store, isTypeGroup, items, }: GetSearchDocumentParams): GetSearchDocumentReturnType;
|
|
12
|
-
export declare function convertDocumentToMarkdown(document: GraphQLSearchDocument, baseLevel?: number): string;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import{GraphQLEnumType as _,GraphQLInputObjectType as Q,GraphQLInterfaceType as S,GraphQLList as j,GraphQLNonNull as R,GraphQLObjectType as D,GraphQLScalarType as M,GraphQLUnionType as P,Kind as a}from"graphql";const V={queries:(n,e)=>n.getQueryTypes(e),mutations:(n,e)=>n.getMutationTypes(e),subscriptions:(n,e)=>n.getSubscriptionTypes(e),directives:(n,e)=>n.getDirectiveTypes(e),interfaces:(n,e)=>n.getTypes(a.INTERFACE_TYPE_DEFINITION,e),objects:(n,e)=>n.getTypes(a.OBJECT_TYPE_DEFINITION,e),unions:(n,e)=>n.getTypes(a.UNION_TYPE_DEFINITION,e),scalars:(n,e)=>n.getTypes(a.SCALAR_TYPE_DEFINITION,e),enums:(n,e)=>n.getTypes(a.ENUM_TYPE_DEFINITION,e),inputs:(n,e)=>n.getTypes(a.INPUT_OBJECT_TYPE_DEFINITION,e)};function w(n,e,i){const t=V[n];return t?t(e,i).map(s=>E(s?.name??"",n,e)):[]}function E(n,e,i){switch(e){case"queries":return g(i.getQueryField(n),e);case"mutations":return g(i.getMutationField(n),e);case"subscriptions":return g(i.getSubscriptionField(n),e);case"directives":const t=i.getDirective(n);return{name:t?.name,group:e,description:t?.description||void 0,locations:t?.locations.map(f=>f.toString()),isRepeatable:!!t?.isRepeatable,args:F(t?.args)};case"interfaces":return m(i.getType(n),e);case"objects":return m(i.getType(n),e);case"unions":const r=i.getType(n),s=r?Y(r):[];return{name:r?.name,group:e,description:r?.description||void 0,types:s};case"scalars":const o=i.getType(n);return{name:o?.name,group:e,description:o?.description||void 0};case"enums":const u=i.getType(n),d=u?A(u):[];return{name:u?.name,group:e,description:u?.description||void 0,values:d};case"inputs":return m(i.getType(n),e);default:return}}function g(n,e){return{name:n?.name,group:e,description:n?.description??void 0,response:n?$(n.type):void 0,args:F(n?.args)}}function m(n,e){return{name:n?.name,group:e,description:n?.description||void 0,fields:n?y(n.getFields(),1,[]):void 0}}function Y(n){return n.getTypes().map(({name:e,description:i})=>({name:e,description:i||void 0}))}function A(n){return n.getValues().map(({name:e,description:i,value:t})=>({name:e,description:i||void 0,value:t}))}function U({label:n,groupName:e,store:i,isTypeGroup:t,items:r}){const s=e.toLowerCase();return t?w(s,i,r):E(n,s,i)}function $(n,e=1,i=[]){const{type:t,list:r,notNull:s}=l(n),o=t.toString();if(i.includes(o)||i.length>=e)return o;if(t instanceof D)return{name:t.name,description:t.description||void 0,list:r,notNull:s,fields:y(t.getFields(),e,[...i,o])};if(t instanceof S)return{name:t.name,description:t.description||void 0,list:r,notNull:s,fields:y(t.getFields(),e,[...i,o])};if(t instanceof P)return{name:t.name,description:t.description||void 0,list:r,notNull:s,types:t.getTypes().map(u=>u.name)};if(t instanceof _){const u=t.getValues().map(d=>({name:d.name,description:d.description||void 0,value:d.value}));return{name:t.name,description:t.description||void 0,list:r,notNull:s,values:u}}else{if(t instanceof M)return o;if(t instanceof Q)return{name:t.name,description:t.description||void 0,list:r,notNull:s,fields:y(t.getFields(),e,[...i,o])}}}function F(n,e=3){if(!n)return;const i={};return n.forEach(t=>{i[t.name]={type:$(t.type,e),description:t.description??void 0}}),i}function y(n,e,i){if(!n)return;const t={};return Object.entries(n).forEach(([r,s])=>{t[r]={type:$(s.type,e,i),description:s.description,defaultValue:s.defaultValue}}),t}function l(n){return n instanceof R?{type:l(n.ofType).type,notNull:!0}:n instanceof j?{type:l(n.ofType).type,list:!0}:{type:n}}function p(n,e=2){return"#".repeat(Math.min(6,e+n-1))}function B(n,e=1){const{name:i,group:t,description:r,args:s,response:o,locations:u,isRepeatable:d,types:f,values:I,fields:N}=n;let c=`${p(1,e)} ${i}
|
|
2
|
-
|
|
3
|
-
**Type:** GraphQL ${t}
|
|
4
|
-
|
|
5
|
-
`;return r&&(c+=`**Description:**
|
|
6
|
-
${r}
|
|
7
|
-
|
|
8
|
-
`),f&&(c+=`${p(2,e)} Types
|
|
9
|
-
${h(f)}
|
|
10
|
-
|
|
11
|
-
`),I&&(c+=`${p(2,e)} Values
|
|
12
|
-
${h(I)}
|
|
13
|
-
|
|
14
|
-
`),N&&(c+=`${p(2,e)} Fields
|
|
15
|
-
${T(N)}
|
|
16
|
-
|
|
17
|
-
`),s&&Object.keys(s).length>0&&(c+=`${p(2,e)} Arguments
|
|
18
|
-
${T(s)}
|
|
19
|
-
|
|
20
|
-
`),o&&(typeof o=="string"?c+=`${p(2,e)} Response
|
|
21
|
-
**Type:** ${o}
|
|
22
|
-
`:(c+=`${p(2,e)} Response
|
|
23
|
-
**Type:** ${o.name}
|
|
24
|
-
**Description:**
|
|
25
|
-
${o.description}
|
|
26
|
-
|
|
27
|
-
`,c+=o.fields?`${p(3,e)} Fields
|
|
28
|
-
${T(o.fields)}
|
|
29
|
-
`:"")),c+=d?`${p(2,e)} Repeatable
|
|
30
|
-
`:"",c+=u?`${p(2,e)} Locations
|
|
31
|
-
${u.map(O=>`- ${O}`).join(`
|
|
32
|
-
`)}
|
|
33
|
-
`:"",c}function h(n){return n.map(e=>`- ${e.name}${e.description?`: ${e.description}`:""}`).join(`
|
|
34
|
-
`)}function T(n,e=0){const i=" ".repeat(e);return n?Object.entries(n).map(([t,r])=>typeof r.type=="string"?`${i}- ${t} (${r.type})${r.description?`: ${r.description}`:""}`:`${i}- ${t} (${r.type?.name}${r.type?.notNull?", Not Null":""}): ${r.description}
|
|
35
|
-
${T(r.type?.fields??{},e+1)}`).join(`
|
|
36
|
-
`):""}export{B as convertDocumentToMarkdown,U as getSearchDocument};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ProcessContentActions } from '../../../types';
|
|
2
|
-
export declare function setDocumentSearchFacets(actions: ProcessContentActions, documentSearchFacets: {
|
|
3
|
-
[key: string]: string | Set<string>;
|
|
4
|
-
}): void;
|
|
5
|
-
export declare function extractDocumentSearchFacets(actions: ProcessContentActions, metadata?: Record<string, unknown>): {
|
|
6
|
-
[key: string]: string;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=search-facets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SEARCH_GROUP_FACET_FIELD as f}from"../../../../constants/common.js";import{SEARCH_GROUP_NAME_API as u}from"../../../constants/plugins/search.js";function h(r,a){const e=r.getSearchFacets();for(const[s,t]of Object.entries(a)){const c=e.get(s);if(c){const o=new Set(c.values??[]);t instanceof Set?[...t].forEach(n=>c.values=Array.from(o.add(n))):c.values=Array.from(o.add(t))}}r.setSearchFacets(e)}function F(r,a){const e={[f]:u};if(!a)return e;const s=r.getSearchFacets();for(const[t,c]of Object.entries(a))s.has(t)&&(e[t]=String(c));return e}export{F as extractDocumentSearchFacets,h as setDocumentSearchFacets};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { AppStore } from '@redocly/graphql-docs';
|
|
2
|
-
import type { PageStaticData } from '@redocly/config';
|
|
3
|
-
import type { PageRouteDetails, ProcessContentActions, SearchDocument } from '../../../types';
|
|
4
|
-
export declare function searchResolver(actions: ProcessContentActions, store: AppStore): (route: PageRouteDetails, staticData: PageStaticData) => Promise<SearchDocument[]>;
|
|
5
|
-
//# sourceMappingURL=search-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{REDOCLY_ROUTE_RBAC as m,REDOCLY_TEAMS_RBAC as l}from"@redocly/config";import{removeMarkdownLinks as h}from"../../openapi-docs/utils.js";import{extractDocumentSearchFacets as b,setDocumentSearchFacets as R}from"./search-facets.js";function k(c,e){return async(t,r)=>{const s=t.getSidebar?.(t)||[];return f(c,r,t,s,e)}}function f(c,e,t,r,s,p){const a=[];for(const n of r)if(n.type==="group")a.push(...f(c,e,t,n.items??[],s,n.label));else{const i=S(n,s,p||"");if(i){const o=n.link||n.slug,d={slug:t.slug,fsPath:t.fsPath},g=t.metadata||{},u=b(c,g);R(c,u),a.push({id:o,url:o,text:h(i.description||""),title:i.name,facets:u,[l]:e[l],[m]:e[m]||d})}}return a}function S(c,e,t){const r=t.toLowerCase(),{label:s}=c;switch(r){case"queries":return e.getQueryField(s);case"mutations":return e.getMutationField(s);case"subscriptions":return e.getSubscriptionField(s);case"directives":return e.getDirective(s);case"objects":case"interfaces":case"unions":case"enums":case"inputs":case"scalars":return e.getType(s)}}export{k as searchResolver};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import l from"node:path";import{readFile as d,existsSync as h}from"node:fs";import{promisify as A}from"node:util";import{PUBLIC_API_DEFINITIONS_FOLDER as L}from"../../constants/common.js";import{GRAPHQL_SPEC_SLUG as R}from"../../../constants/common";import{canDownloadApiDefinition as w}from"../../utils/rbac.js";const F=A(d);async function q(r,e,i){const{isAuthenticated:n,teams:a,claims:{email:c}}=e.user,o=new URL(r.url),p=decodeURIComponent(o.pathname.replace(R,"")),s=e.config.access??{},m=s.rbac??{},f=s.requiresLogin??!1;if(!w(o.pathname,m,f,{isAuthenticated:n,email:c,teams:a}))return new Response("Unauthorized",{status:n?403:401});const t=l.join(i.props?.outdir??"",L,p);if(!h(t))return new Response("Not found",{status:404});const u=await F(t,"utf-8");return new Response(u,{headers:{"Content-Type":"application/graphql"}})}export{q as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import t from"react";import c from"styled-components";import{RedoclyGraphQLDocs as h}from"@redocly/graphql-docs";import{buildSchema as l}from"graphql";import{LayoutVariant as f}from"@redocly/theme/components/SidebarActions/SidebarActions";import{useThemeConfig as p}from"@redocly/theme/core/hooks";import{withPathPrefix as g}from"@redocly/theme/core/utils";import{ServerRoutes as E}from"../../../../constants/api.js";import{CLIENT_TELEMETRY_ENABLED as u}from"../../../../client/constants/common.js";import{PACKAGE_NAME as d}from"../../../../config/product-gates.js";import{envConfig as S}from"../../../config/env-config.js";import{usePageSharedData as L}from"../../../../client/providers/page-data/hooks.js";import{useCodeHighlight as R}from"../../../../client/app/hooks/codeHighlight/useCodeHighlight.js";function v({pageProps:o}){const e=L("graphQlSettings"),{settings:r}=o,{graphql:i}=p(),{highlight:n}=R(),m=t.useMemo(()=>({graphql:l(e)}),[e]),s=t.useMemo(()=>{const a={...i,...r};return{layout:o.apiOptions?.layout??f.THREE_PANEL,...a,markdown:{...a.markdown,highlight:n},navigation:{contentPrefix:""}}},[i,r,n,o.apiOptions?.layout]);return t.createElement(C,null,t.createElement(h,{schema:m,settings:s,telemetryConfig:{collectorUrl:new URL(g(E.OTEL_TRACES),location.origin).toString(),disabled:!u,serviceVersion:`${d}@${S.REDOCLY_PORTAL_VERSION}`}}))}const C=c.div`
|
|
2
|
-
--navigation-anchor-offset: var(--navbar-height);
|
|
3
|
-
--sidebar-width: 0px;
|
|
4
|
-
`;export{v as default};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { GraphQLType } from 'graphql';
|
|
2
|
-
import type { TYPE_GROUPS } from './constants.js';
|
|
3
|
-
export type TypeGroup = (typeof TYPE_GROUPS)[number];
|
|
4
|
-
export type GraphQLSearchDocument = {
|
|
5
|
-
name?: string;
|
|
6
|
-
group: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
args?: Record<string, GraphQLFieldDetails>;
|
|
9
|
-
locations?: string[];
|
|
10
|
-
isRepeatable?: boolean;
|
|
11
|
-
response?: GraphQLTypeDetails | string;
|
|
12
|
-
types?: GraphQLTypeDetails[];
|
|
13
|
-
values?: GraphQLFieldValue[];
|
|
14
|
-
fields?: Record<string, GraphQLFieldDetails>;
|
|
15
|
-
};
|
|
16
|
-
export type GraphQLTypeDetails = {
|
|
17
|
-
name: string;
|
|
18
|
-
description?: string;
|
|
19
|
-
list?: boolean;
|
|
20
|
-
notNull?: boolean;
|
|
21
|
-
fields?: Record<string, GraphQLFieldDetails>;
|
|
22
|
-
values?: GraphQLFieldValue[];
|
|
23
|
-
types?: string[];
|
|
24
|
-
};
|
|
25
|
-
export type GraphQLFieldDetails = {
|
|
26
|
-
type?: string | GraphQLTypeDetails;
|
|
27
|
-
description?: string;
|
|
28
|
-
defaultValue?: unknown;
|
|
29
|
-
};
|
|
30
|
-
export type GraphQLFieldValue = {
|
|
31
|
-
name: string;
|
|
32
|
-
description?: string;
|
|
33
|
-
value?: unknown;
|
|
34
|
-
};
|
|
35
|
-
export type UnwrappedGraphQLType = {
|
|
36
|
-
type: GraphQLType;
|
|
37
|
-
notNull?: boolean;
|
|
38
|
-
list?: boolean;
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=types.d.ts.map
|
|
File without changes
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ContentItemModel, OpenAPIParser, OperationModel, Options, SchemaModel } from '@redocly/openapi-docs';
|
|
2
|
-
import type { OperationParameter } from '@redocly/theme/core/types';
|
|
3
|
-
import type { SearchDocument } from '../../types';
|
|
4
|
-
import { OpenApiSearchBuilder } from './openapi-search-builder.js';
|
|
5
|
-
type Parameters = Record<string, OperationParameter>;
|
|
6
|
-
export declare class AiSearchIndexer extends OpenApiSearchBuilder {
|
|
7
|
-
#private;
|
|
8
|
-
constructor(parser: OpenAPIParser, options: Options, basePath: string);
|
|
9
|
-
addItem(item: ContentItemModel): SearchDocument | undefined;
|
|
10
|
-
protected buildOperationDocument(operation: OperationModel): SearchDocument | undefined;
|
|
11
|
-
protected addSchema(parameters: Parameters, schema: SchemaModel | undefined, mediaType: string | undefined, place: string, isResponse: boolean, path?: string[], visited?: Set<string>, level?: number, skipFields?: Set<string>): void;
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=ai-search-indexer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{REDOCLY_TEAMS_RBAC as m}from"@redocly/config";import{OpenApiSearchBuilder as h}from"./openapi-search-builder.js";import{getOneOfSchema as O}from"./utils.js";class y extends h{constructor(t,e,n){super(t,e,n)}addItem(t){try{return this.buildSearchDocument(t)}catch(e){console.error("Cannot add item to AI search indexer",e.message);return}}buildOperationDocument(t){const e=this.createOperationDocumentBase(t),n=e?.parameters?.find(i=>i.place==="request fields"&&i.name==="body"&&"oneOf"in i&&i.oneOf!==void 0);return n&&(n.required=t.requestBody?.required??!1),e}addSchema(t,e,n,i,s,u=[],o=new Set,d=0,c){if(!(!e||e.isCircular||d>this.options.generatedSamplesMaxDepth)){if(e.pointer){if(o.has(e.pointer))return;o.add(e.pointer)}for(const r of e.fields??[]){if(c?.has(r.name)||this.#t(e,r,s))continue;const a=this.createSchemaFieldParameter(r,e,i,n,u),f=this.getParameterId(a);if(t[f]!=null)continue;t[f]=a,this.addSchema(t,r.schema,n,i,s,[...u,r.name],o,d+1);const l=O(r.schema);l&&(a.oneOf=this.#e(l,{mediaType:n,place:i,isResponse:s,visited:o,level:d+1}))}if(e.items&&this.addSchema(t,e.items,n,i,s,u,o,d+1),d===0&&u.length===0&&e.oneOf){const r=this.#e(e,{mediaType:n,place:i,isResponse:s,visited:o,level:d+1});if(r){const a={name:"body",description:"",place:i,mediaType:n,path:[],type:e.displayType||"object",required:!1,example:void 0,enum:void 0,oneOf:r};t[this.getParameterId(a)]=a}}}}#t(t,e,n){return!!t[m]||e.kind==="additionalProperties"||!!e.schema?.readOnly&&!n||!!e.schema?.writeOnly&&n}#e(t,e){const{mediaType:n,place:i,isResponse:s,visited:u,level:o}=e,d=new Set((t.fields??[]).map(r=>r.name)),c=(t.oneOf??[]).map((r,a)=>{const f={};return this.addSchema(f,r,n,i,s,[],new Set(u),o,d),{title:r.title||`variant ${a+1}`,parameters:Object.values(f)}}).filter(r=>r.parameters.length>0);if(c.length!==0)return{discriminator:t.discriminatorProp,variants:c}}}export{y as AiSearchIndexer};
|