@redocly/realm 0.129.2 → 0.130.0-custom.2
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 +392 -83
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +1 -1
- package/dist/cli/develop.js +1 -1
- package/dist/cli/eject/resolveEjectParams.js +1 -1
- package/dist/cli/prepare/copy-env-files.js +1 -1
- package/dist/cli/prepare/index.js +1 -1
- package/dist/cli/stats/collectors/openapi.d.ts +3 -0
- package/dist/cli/stats/collectors/openapi.js +1 -0
- package/dist/cli/stats/index.d.ts +7 -0
- package/dist/cli/stats/index.js +1 -0
- package/dist/cli/stats/options.d.ts +3 -0
- package/dist/cli/stats/options.js +1 -0
- package/dist/cli/telemetry/index.d.ts +2 -2
- package/dist/cli/telemetry/index.js +1 -1
- package/dist/client/App.js +1 -1
- package/dist/client/ErrorBoundary.js +1 -1
- package/dist/client/app/Sidebar/RequestAccessButton.js +2 -2
- package/dist/client/app/Sidebar/Sidebar.js +2 -2
- package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +23 -0
- package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -0
- package/dist/client/app/Sidebar/useSidebarItems.d.ts +2 -2
- package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogClassic.d.ts +1 -1
- package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogFilter.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogViewMode.js +1 -1
- package/dist/client/app/hooks/catalog/useSearchTracker.js +1 -1
- package/dist/client/app/hooks/codeHighlight/useCodeHighlight.js +1 -1
- package/dist/client/app/hooks/usePageTimeTracker.js +1 -1
- package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
- package/dist/client/app/hooks/useTelemetry.d.ts +2 -2
- package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
- package/dist/client/app/search/message-handlers.d.ts +29 -0
- package/dist/client/app/search/message-handlers.js +1 -0
- package/dist/client/app/search/sse-parser.d.ts +10 -0
- package/dist/client/app/search/sse-parser.js +2 -0
- package/dist/client/app/search/useAiSearch.d.ts +9 -11
- package/dist/client/app/search/useAiSearch.js +1 -1
- package/dist/client/app/search/useSearch.js +1 -1
- package/dist/client/app/telemetry/index.d.ts +11 -1
- package/dist/client/app/telemetry/index.js +1 -1
- package/dist/client/browser-entry.js +5 -5
- package/dist/client/constants/ai-search.d.ts +30 -0
- package/dist/client/constants/ai-search.js +1 -0
- package/dist/client/constants/index.d.ts +2 -0
- package/dist/client/constants/index.js +1 -0
- package/dist/client/providers/hooks.js +1 -1
- package/dist/client/runtime/loader.js +1 -1
- package/dist/client/types/ai-search.d.ts +73 -0
- package/dist/client/types/ai-search.js +0 -0
- package/dist/client/types/index.d.ts +1 -0
- package/dist/config/env-config.d.ts +17 -0
- package/dist/config/env-config.js +1 -0
- package/dist/config/env-schema.d.ts +242 -0
- package/dist/config/env-schema.js +3 -0
- package/dist/config/env-schemas/api-urls.d.ts +24 -0
- package/dist/config/env-schemas/api-urls.js +1 -0
- package/dist/config/env-schemas/auth.d.ts +42 -0
- package/dist/config/env-schemas/auth.js +1 -0
- package/dist/config/env-schemas/catalog.d.ts +12 -0
- package/dist/config/env-schemas/catalog.js +1 -0
- package/dist/config/env-schemas/database.d.ts +15 -0
- package/dist/config/env-schemas/database.js +1 -0
- package/dist/config/env-schemas/environment-detection.d.ts +24 -0
- package/dist/config/env-schemas/environment-detection.js +1 -0
- package/dist/config/env-schemas/feature-flags.d.ts +24 -0
- package/dist/config/env-schemas/feature-flags.js +1 -0
- package/dist/config/env-schemas/organization-project.d.ts +27 -0
- package/dist/config/env-schemas/organization-project.js +1 -0
- package/dist/config/env-schemas/scorecards.d.ts +12 -0
- package/dist/config/env-schemas/scorecards.js +1 -0
- package/dist/config/env-schemas/search.d.ts +21 -0
- package/dist/config/env-schemas/search.js +1 -0
- package/dist/config/env-schemas/server-config.d.ts +51 -0
- package/dist/config/env-schemas/server-config.js +1 -0
- package/dist/config/env-schemas/site.d.ts +12 -0
- package/dist/config/env-schemas/site.js +1 -0
- package/dist/config/env-schemas/ssr.d.ts +18 -0
- package/dist/config/env-schemas/ssr.js +1 -0
- package/dist/config/env-schemas/telemetry.d.ts +15 -0
- package/dist/config/env-schemas/telemetry.js +1 -0
- package/dist/config/env-schemas/test.d.ts +22 -0
- package/dist/config/env-schemas/test.js +1 -0
- package/dist/constants/common.d.ts +4 -2
- 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/server/api-routes/execute-api-route.js +1 -1
- package/dist/server/api-routes/import-api-routes-handlers.js +1 -1
- package/dist/server/api-routes/run-api-routes-worker.js +1 -1
- package/dist/server/constants/common.js +1 -1
- package/dist/server/constants/plugins/catalog-entities.d.ts +1 -0
- package/dist/server/constants/plugins/catalog-entities.js +1 -1
- package/dist/server/entitlements/entitlements-provider.js +1 -1
- package/dist/server/esbuild/esbuild-logger.js +2 -2
- package/dist/server/esbuild/esbuild.js +3 -3
- package/dist/server/esbuild/plugins/assets-resolver.js +1 -1
- package/dist/server/esbuild/plugins/esbuild-compile-resolver.js +1 -1
- package/dist/server/esbuild/plugins/styled-components-ssr.js +1 -1
- package/dist/server/fs/cache.js +1 -1
- package/dist/server/fs/content-fs.d.ts +1 -0
- package/dist/server/fs/content-fs.js +1 -1
- package/dist/server/fs/last-modified-tracker.js +1 -1
- package/dist/server/fs/utils/is-loader-cache-enabled.js +1 -1
- package/dist/server/node-bundle-entry.js +1 -1
- package/dist/server/persistence/kv/repositories/kv-remote-repository.d.ts +1 -0
- package/dist/server/persistence/kv/repositories/kv-remote-repository.js +2 -1
- package/dist/server/persistence/kv/services/kv-service.js +1 -1
- package/dist/server/plugins/analytics/adobe/index.js +1 -1
- package/dist/server/plugins/analytics/amplitude/index.js +1 -1
- package/dist/server/plugins/analytics/fullstory/index.js +1 -1
- package/dist/server/plugins/analytics/ga/index.js +1 -1
- package/dist/server/plugins/analytics/gtm/browser-hooks.js +1 -1
- package/dist/server/plugins/analytics/gtm/index.js +1 -1
- package/dist/server/plugins/analytics/heap/index.js +1 -1
- package/dist/server/plugins/analytics/rudderstack/index.js +1 -1
- package/dist/server/plugins/analytics/segment/index.js +1 -1
- package/dist/server/plugins/asyncapi-docs/asyncapi-doc-loader.js +3 -3
- package/dist/server/plugins/asyncapi-docs/get-server-props.js +1 -1
- package/dist/server/plugins/asyncapi-docs/index.js +1 -1
- package/dist/server/plugins/asyncapi-docs/search/schema-processor.js +1 -1
- package/dist/server/plugins/asyncapi-docs/search/search-resolver.js +1 -1
- package/dist/server/plugins/asyncapi-docs/store-definition-bundles.js +1 -1
- package/dist/server/plugins/asyncapi-docs/template/AsyncApiDocs.d.ts +2 -1
- package/dist/server/plugins/asyncapi-docs/template/AsyncApiDocs.js +9 -3
- package/dist/server/plugins/catalog-classic/get-server-props.d.ts +8 -3
- package/dist/server/plugins/catalog-classic/get-server-props.js +1 -1
- package/dist/server/plugins/catalog-entities/database/catalog-entities-service.d.ts +38 -64
- package/dist/server/plugins/catalog-entities/database/catalog-entities-service.js +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.d.ts +8 -0
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.js +1 -0
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-db-record.d.ts +2 -1
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-read-model.js +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/{create-entity-relation.d.ts → create-entity-relation-read-model.d.ts} +2 -2
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.js +1 -0
- package/dist/server/plugins/catalog-entities/database/mappers/map-entity-relation-row.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts +27 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.d.ts +36 -0
- package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.d.ts +15 -4
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.js +38 -27
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.d.ts +36 -9
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +37 -21
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.d.ts +41 -42
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.d.ts +3 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.d.ts +7 -1
- package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.d.ts +5 -9
- package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.d.ts +13 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.d.ts +31 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.js +9 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.d.ts +34 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.js +13 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.d.ts +23 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.js +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.d.ts +78 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.js +34 -0
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +6 -4
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.d.ts +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/fs-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/get-server-props.js +1 -1
- package/dist/server/plugins/catalog-entities/plugin.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.d.ts +3 -0
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/dto-schemas.d.ts +15 -1
- package/dist/server/plugins/catalog-entities/schemas/dto-schemas.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.d.ts +26 -164
- package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.js +0 -1
- package/dist/server/plugins/catalog-entities/types/extractors.d.ts +4 -4
- package/dist/server/plugins/catalog-entities/types/openapi.d.ts +11 -0
- package/dist/server/plugins/catalog-entities/types/openapi.js +0 -0
- package/dist/server/plugins/catalog-entities/types/params.d.ts +6 -0
- package/dist/server/plugins/catalog-entities/types/params.js +0 -0
- package/dist/server/plugins/catalog-entities/utils/ajv-validator.js +1 -1
- package/dist/server/plugins/catalog-entities/utils/catalog-data-collector.js +1 -1
- package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.d.ts +11 -0
- package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.js +1 -0
- package/dist/server/plugins/config-parser/index.js +1 -1
- package/dist/server/plugins/config-parser/loaders/content-slugs-loader.js +1 -1
- package/dist/server/plugins/config-parser/loaders/nearest-redocly-config-loader.js +1 -1
- package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
- package/dist/server/plugins/default-theme/index.js +1 -1
- package/dist/server/plugins/entitlements/index.js +1 -1
- package/dist/server/plugins/graphql-docs/graphql-doc-loader.js +1 -1
- package/dist/server/plugins/graphql-docs/index.js +1 -1
- package/dist/server/plugins/graphql-docs/search/search-resolver.js +1 -1
- package/dist/server/plugins/graphql-docs/template/GraphQLDocs.js +6 -2
- 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/compiler.d.ts +1 -0
- package/dist/server/plugins/markdown/compiler.js +1 -1
- package/dist/server/plugins/markdown/index.js +1 -1
- package/dist/server/plugins/markdown/is-partial.d.ts +1 -1
- package/dist/server/plugins/markdown/is-partial.js +1 -1
- package/dist/server/plugins/markdown/markdoc/import-user-tags.js +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/render-mermaid.js +1 -1
- package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.d.ts +1 -1
- package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.js +2 -2
- package/dist/server/plugins/markdown/markdown-static-data-loader.js +1 -1
- package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.d.ts +54 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.js +1 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.d.ts +9 -8
- package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.d.ts +9 -8
- package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.d.ts +9 -8
- package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.d.ts +9 -8
- package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +7 -13
- package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.d.ts +9 -6
- package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts +9 -2
- package/dist/server/plugins/mcp/docs-mcp/tools/search.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/utils.d.ts +2 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/utils.js +6 -6
- package/dist/server/plugins/mcp/docs-mcp/tools/whoami.d.ts +9 -2
- package/dist/server/plugins/mcp/docs-mcp/tools/whoami.js +1 -1
- package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
- package/dist/server/plugins/mcp/handlers/errors.js +1 -1
- package/dist/server/plugins/mcp/handlers/handle-mcp-request.d.ts +5 -0
- package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -0
- package/dist/server/plugins/mcp/handlers/mcp-request-handler.d.ts +0 -1
- package/dist/server/plugins/mcp/handlers/mcp-request-handler.js +1 -1
- package/dist/server/plugins/mcp/servers/base-server.js +1 -1
- package/dist/server/plugins/mcp/types.d.ts +40 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.d.ts +3 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -0
- package/dist/server/plugins/nav-utils.d.ts +1 -1
- package/dist/server/plugins/nav-utils.js +1 -1
- package/dist/server/plugins/openapi-docs/decorators.d.ts +3 -0
- package/dist/server/plugins/openapi-docs/decorators.js +1 -1
- package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.d.ts +2 -4
- package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.js +1 -1
- package/dist/server/plugins/openapi-docs/get-server-props.js +1 -1
- package/dist/server/plugins/openapi-docs/index.js +1 -1
- package/dist/server/plugins/openapi-docs/load-definition.d.ts +1 -0
- package/dist/server/plugins/openapi-docs/load-definition.js +3 -3
- package/dist/server/plugins/openapi-docs/openrpc-converter.d.ts +2 -0
- package/dist/server/plugins/openapi-docs/openrpc-converter.js +1 -0
- package/dist/server/plugins/openapi-docs/search/search-resolver.js +1 -1
- package/dist/server/plugins/openapi-docs/search-indexer.js +1 -1
- package/dist/server/plugins/openapi-docs/store-definition-bundles.js +1 -1
- package/dist/server/plugins/openapi-docs/template/OpenAPIDocs.js +8 -4
- package/dist/server/plugins/openapi-docs/template/helpers.d.ts +2 -2
- package/dist/server/plugins/openapi-docs/template/helpers.js +3 -3
- package/dist/server/plugins/openapi-docs/utils.d.ts +1 -0
- package/dist/server/plugins/scorecard-classic/compute-scorecard.d.ts +2 -1
- package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
- package/dist/server/plugins/scorecard-classic/get-scorecard-config.d.ts +2 -1
- package/dist/server/plugins/scorecard-classic/index.js +1 -1
- package/dist/server/plugins/scorecard-classic/lint.d.ts +1 -1
- package/dist/server/plugins/scorecard-classic/lint.js +1 -1
- package/dist/server/plugins/scorecard-classic/loaders/scorecard-config.js +1 -1
- package/dist/server/plugins/scorecard-classic/loaders/scorecard.d.ts +6 -4
- package/dist/server/plugins/scorecard-classic/loaders/scorecard.js +1 -1
- package/dist/server/plugins/scorecard-classic/shared-utils.d.ts +1 -1
- package/dist/server/plugins/scorecard-classic/shared-utils.js +1 -1
- package/dist/server/plugins/scorecard-classic/template/Grid/Grid.d.ts +2 -1
- package/dist/server/plugins/scorecard-classic/template/Grid/Grid.js +3 -3
- package/dist/server/plugins/scorecard-classic/template/LevelIndicator.d.ts +1 -0
- package/dist/server/plugins/scorecard-classic/template/LevelIndicator.js +4 -4
- package/dist/server/plugins/scorecard-classic/template/components.js +1 -1
- package/dist/server/plugins/scorecard-classic/template/index.styles.d.ts +1 -0
- package/dist/server/plugins/scorecard-classic/template/index.styles.js +93 -19
- package/dist/server/plugins/scorecard-classic/template/index.types.d.ts +5 -1
- package/dist/server/plugins/scorecard-classic/template/useData.js +1 -1
- package/dist/server/plugins/scorecard-classic/template/views.js +1 -1
- package/dist/server/plugins/scorecard-classic/types.d.ts +5 -3
- package/dist/server/plugins/scorecard-classic/types.js +1 -1
- package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.d.ts +12 -0
- package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.js +1 -0
- package/dist/server/plugins/scorecards/database/scorecards-config-service.d.ts +11 -0
- package/dist/server/plugins/scorecards/database/scorecards-config-service.js +1 -0
- package/dist/server/plugins/scorecards/plugin.js +1 -1
- package/dist/server/plugins/scorecards/workers/run-scorecards-worker.d.ts +2 -1
- package/dist/server/plugins/scorecards/workers/run-scorecards-worker.js +1 -1
- package/dist/server/plugins/scorecards/workers/scorecards.d.ts +1 -12
- package/dist/server/plugins/scorecards/workers/scorecards.js +1 -1
- package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.js +1 -1
- package/dist/server/plugins/search/documents/search-documents.js +1 -1
- package/dist/server/plugins/search/engines/flexsearch/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/index.js +5 -5
- package/dist/server/plugins/search/utils.js +2 -2
- package/dist/server/plugins/sidebars/index.d.ts +0 -2
- package/dist/server/plugins/sidebars/index.js +3 -3
- package/dist/server/plugins/sso/index.js +1 -1
- package/dist/server/providers/database/base-repository.d.ts +1 -0
- package/dist/server/providers/database/base-repository.js +1 -1
- package/dist/server/providers/database/database-connection-factory.js +1 -1
- package/dist/server/providers/database/database-initialization-strategy.js +1 -1
- package/dist/server/providers/database/database-preconnect-service.js +1 -1
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0005_catalog-relations-constraint-fix.sql +2 -0
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/0006_add-catalog-entitities-attributes-table.sql +11 -0
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0005_snapshot.json +393 -0
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0006_snapshot.json +458 -0
- package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/_journal.json +14 -0
- package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.d.ts +143 -0
- package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.js +1 -0
- package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js +1 -1
- package/dist/server/providers/database/databases/main-sqlite/migrations/0006_change-scorecards-config-timestamps-field-types.sql +19 -0
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0006_snapshot.json +261 -0
- package/dist/server/providers/database/databases/main-sqlite/migrations/meta/_journal.json +7 -0
- package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.d.ts +24 -18
- package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.js +1 -1
- package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.js +1 -1
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/0007_catalog-relations-constraint-fix.sql +2 -0
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/0008_add-catalog-entitities-attributes-table.sql +11 -0
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0007_snapshot.json +833 -0
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0008_snapshot.json +898 -0
- package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/_journal.json +14 -0
- package/dist/server/providers/database/pagination/entities-to-filter.d.ts +15 -0
- package/dist/server/providers/database/pagination/entities-to-filter.js +1 -0
- package/dist/server/providers/database/pagination/utils/index.d.ts +4 -0
- package/dist/server/providers/database/pagination/utils/index.js +1 -1
- package/dist/server/providers/database/pagination/utils/is-nested-condition.d.ts +16 -0
- package/dist/server/providers/database/pagination/utils/is-nested-condition.js +1 -0
- package/dist/server/providers/database/pagination/utils/is-simple-condition.d.ts +18 -0
- package/dist/server/providers/database/pagination/utils/is-simple-condition.js +1 -0
- package/dist/server/providers/database/pagination/utils/map-operator.d.ts +10 -0
- package/dist/server/providers/database/pagination/utils/map-operator.js +1 -0
- package/dist/server/providers/database/pagination/utils/transform-condition.d.ts +12 -0
- package/dist/server/providers/database/pagination/utils/transform-condition.js +1 -0
- package/dist/server/providers/database/sqld-not-running-error.d.ts +5 -0
- package/dist/server/providers/database/sqld-not-running-error.js +1 -0
- package/dist/server/ssr/render.js +1 -1
- package/dist/server/ssr/server-side-props/get-server-props-from-user-handler.js +1 -1
- package/dist/server/ssr/utils.js +8 -8
- package/dist/server/store.d.ts +14 -6
- package/dist/server/store.js +1 -1
- package/dist/server/telemetry/index.js +1 -1
- package/dist/server/tools/notifiers/formatter.js +3 -3
- package/dist/server/tools/notifiers/helpers/colors.js +1 -1
- package/dist/server/tools/notifiers/logger.js +2 -2
- package/dist/server/tools/notifiers/reporter.js +9 -9
- package/dist/server/tools/notifiers/terminal-manager.js +4 -4
- package/dist/server/types/plugins/common.d.ts +7 -1
- package/dist/server/types/plugins/markdown.d.ts +2 -0
- package/dist/server/types/plugins/scorecards.d.ts +30 -0
- package/dist/server/types/plugins/scorecards.js +0 -0
- package/dist/server/utils/envs/get-api-route-allowed-env-variables.js +1 -1
- package/dist/server/utils/envs/load-env-variables.d.ts +1 -1
- package/dist/server/utils/envs/load-env-variables.js +1 -1
- package/dist/server/utils/envs/sanitize-branch-name.d.ts +6 -0
- package/dist/server/utils/envs/sanitize-branch-name.js +1 -0
- package/dist/server/utils/globs.js +1 -1
- package/dist/server/utils/is-catalog-entities-enabled.js +1 -1
- package/dist/server/utils/is-scorecards-enabled.js +1 -1
- package/dist/server/utils/lifecycle-hooks.js +1 -1
- package/dist/server/utils/rbac.d.ts +76 -7
- package/dist/server/utils/rbac.js +1 -1
- package/dist/server/utils/report-all-errors.js +1 -1
- package/dist/server/utils/set-execution-mode.d.ts +5 -0
- package/dist/server/utils/set-execution-mode.js +1 -0
- package/dist/server/utils/time/with-timestamp.d.ts +42 -10
- package/dist/server/utils/time/with-timestamp.js +1 -1
- package/dist/server/version.js +1 -1
- 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/http.js +2 -2
- package/dist/server/web-server/middleware/apiKeyMiddleware.js +1 -1
- package/dist/server/web-server/middleware/catalogAuthMiddleware.d.ts +4 -6
- package/dist/server/web-server/middleware/catalogAuthMiddleware.js +1 -1
- package/dist/server/web-server/middleware/corsMiddleware.js +1 -1
- package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js +1 -1
- package/dist/server/web-server/middleware/idleTimeoutMiddleware.js +1 -1
- 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/catalog/bff-catalog-related-entities.js +1 -1
- package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
- package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
- package/dist/server/web-server/routes/catalog/catalog.js +1 -1
- package/dist/server/web-server/routes/catalog/dto/read-entity-dto.d.ts +3 -0
- package/dist/server/web-server/routes/catalog/dto/read-entity-dto.js +0 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.d.ts +43 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.js +1 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.d.ts +6823 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.js +1 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.d.ts +1102 -0
- package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.js +1 -0
- package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.d.ts +10 -0
- package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.js +1 -0
- package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.d.ts +4 -0
- package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.d.ts +4 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.d.ts +4 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.d.ts +4 -0
- package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.d.ts +13 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.d.ts +13 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.js +1 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.d.ts +13 -0
- package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.js +1 -0
- 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/get-current-rbac-teams.d.ts +3 -0
- package/dist/server/web-server/routes/helpers/get-current-rbac-teams.js +1 -0
- package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.d.ts +11 -0
- package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.js +1 -0
- package/dist/server/web-server/routes/index.js +1 -1
- package/dist/server/web-server/routes/info.js +1 -1
- package/dist/server/web-server/routes/mcp-oauth.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/path-prefix-redirect.js +1 -1
- package/dist/server/web-server/utils.d.ts +2 -2
- package/dist/server/workers/mcp-tool-worker-pool.d.ts +4 -0
- package/dist/server/workers/mcp-tool-worker-pool.js +1 -0
- package/dist/server/workers/mcp-tool-worker.d.ts +2 -0
- package/dist/server/workers/mcp-tool-worker.js +1 -0
- package/dist/server/workers/types.d.ts +7 -1
- package/dist/server/workers/worker-pool.js +1 -1
- package/package.json +21 -23
- package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation.js +0 -1
- package/dist/server/plugins/catalog-entities/entities/validate-entity.d.ts +0 -6
- package/dist/server/plugins/catalog-entities/entities/validate-entity.js +0 -1
- package/dist/server/plugins/mcp/workers/run-api-routes-worker.d.ts +0 -5
- package/dist/server/plugins/mcp/workers/run-api-routes-worker.js +0 -1
- package/dist/server/utils/envs/is-build-mode.d.ts +0 -2
- package/dist/server/utils/envs/is-build-mode.js +0 -1
- package/dist/server/utils/envs/is-develop-mode.d.ts +0 -7
- package/dist/server/utils/envs/is-develop-mode.js +0 -1
- package/dist/server/utils/envs/is-production-mode.d.ts +0 -10
- package/dist/server/utils/envs/is-production-mode.js +0 -1
- package/dist/server/workers/mcp-worker-pool.d.ts +0 -4
- package/dist/server/workers/mcp-worker-pool.js +0 -1
- package/dist/utils/env/is-local-development.d.ts +0 -13
- package/dist/utils/env/is-local-development.js +0 -1
- package/dist/utils/env/is-production.d.ts +0 -13
- package/dist/utils/env/is-production.js +0 -1
- package/dist/utils/env/is-web-view.d.ts +0 -14
- package/dist/utils/env/is-web-view.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import c from"node:path";import{bundle as C,createConfig as B,getTotals as J}from"@redocly/openapi-core";import{CONFIG_FILE_NAME as M}from"../../../constants/common.js";import{deepMerge as _}from"../../../utils/object/deep-merge.js";import{pluralize as R}from"../../../utils/string/pluralize.js";import{getAllApiConfigsByPath as L}from"../get-api-config.js";import{injectDecoratorIntoConfig as W}from"../openapi-docs/decorators.js";import{ExternalResolver as T}from"../../fs/utils/external-ref-resolver.js";async function Z(o,{fs:n,logger:s,cache:u,getConfig:l,isPathIgnored:f}){let a;try{a=(await u.load(o,"yaml")).data}catch{return[]}if(!a?.asyncapi)return s.verbose(`${o} file is not AsyncAPI document. Skipping`),[];const p=[],i=n.getFileInfo(o),t=await l(c.posix.dirname(o)),A=L(t?.apis,o,t.configPath),D=await f(o);for(const d of A){if(!d.output&&D)continue;const O=t.configPath?c.posix.dirname(t.configPath):".",r=d.output?c.posix.join(O,d.output):o;if(await f(r))continue;i&&d.output&&!await n.exists(r)&&n.addVirtualFile(r,i);const m=_(t,{rbac:void 0},d),k=c.resolve(n.cwd,t.realConfigPath||M),w=new T(n),v=await B(W(m,r,n.cwd),{configPath:k,externalRefResolver:w}),h=c.resolve(n.cwd,o),g={config:v,base:c.dirname(h),doc:{source:{absoluteRef:h},parsed:JSON.parse(JSON.stringify(a))}},{bundle:{parsed:I},problems:y,visitorsData:N}=await C({...g,dereference:!0,externalRefResolver:w}),{bundle:{parsed:P}}=await C({...g,doc:{...g.doc,parsed:JSON.parse(JSON.stringify(a))}}),S=N["markdown/markdown"]?.markdocChunks??[],e=J(y);let b=[e.errors&&`${e.errors} ${R(e.errors,"error","errors")}`,e.warnings&&`${e.warnings} ${R(e.warnings,"warning","warnings")}`,e.ignored&&`${e.ignored} ignored`].filter(Boolean).join(", ");if(e.errors){const x=y.find(F=>F.severity==="error");throw new Error(`${b} while bundling ${r} definition.
|
|
2
2
|
|
|
3
|
-
${
|
|
3
|
+
${x?.message} at ${x?.location?.[0].pointer}
|
|
4
4
|
|
|
5
|
-
`)}
|
|
5
|
+
`)}e.warnings&&s.warn(`${b} while bundling %rp definition`,r);const V=$(I,t.metadata),j=$(P,t.metadata),E={document:V,documentWithReferences:j,config:m,relativePath:r,realRelativePath:i?.realRelativePath||r,customOutputRelativeFile:d.output&&r,markdocChunks:S,isVirtual:i?.isVirtual??!1};p.push(E)}return p}async function oo(o,n){const{fs:s,cache:u,getConfig:l}=n,f=[];for(const a of await s.scan(/(\.ya?ml|\.json)$/)){if(!await l(c.posix.dirname(a.relativePath)))continue;let i;try{i=await u.load(a.relativePath,"asyncapi-doc")}catch{continue}i.data?.length&&f.push(...i.data.map(t=>({...t,isVirtual:a.isVirtual||t.isVirtual,hash:i.compoundHash})))}return f}function $(o,n){if(!n)return o;const s={...o,info:{...o.info,"x-metadata":{...o.info?.["x-metadata"],...n}}};return delete s.info["x-metadata"]._customMessages,s}export{Z as asyncapiDocLoader,oo as asyncapiDocsLoader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getPublicEnvVariables as
|
|
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 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import S from"path";import{simplifyAstStructure as O}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{buildMenuItems as $}from"@redocly/asyncapi-docs/lib/utils/build-menu-items.js";import{findFirstBinding as F}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 I}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{getTemplatePath as E}from"./get-template-path.js";import{storeDefinitionBundles as N}from"./store-definition-bundles.js";import{asyncapiDocLoader as G,asyncapiDocsLoader as L}from"./asyncapi-doc-loader.js";import{searchResolver as j}from"./search/search-resolver.js";import{getAiDocumentsStore as M}from"./search/get-ai-search-documents.js";import{OPENAPI_CUSTOM_FIELDS_SERVER_PROPS_GETTER_ID as b}from"../../constants/plugins/openapi-docs.js";import{telemetryTraceStep as U}from"../../../cli/telemetry/helpers/trace-step.js";const C="asyncapi-docs-";async function ot(c){let l=[],d=new Set;return{id:"asyncapi",requiredEntitlements:["asyncapi"],loaders:{"asyncapi-doc":G,"asyncapi-docs":L},processContent:async(e,a)=>{await U("build.plugin.asyncapi_docs",async()=>{const u=await a.getConfig(),D=!!u.rules?.["custom-fields-schema"];if(u.plugins?.some(r=>r.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 g=e.createTemplate(v,E("./template/AsyncApiDocs.js")),p=e.registerServerPropsGetter(v,E("./get-server-props.js"));for(const r of await a.fs.scan(/(\.ya?ml|\.json)$/))if(!await a.isPathIgnored(r.relativePath))try{const{data:s,compoundHash:k}=await a.cache.load(r.realRelativePath,"asyncapi-doc");if(!s?.length)continue;l=s.map(({markdocChunks:t,relativePath:n,isVirtual:m,customOutputRelativeFile:f,realRelativePath:A})=>({chunks:t,relativePath:n,realRelativePath:A,isVirtual:f!=null||r.isVirtual||m})),N(s,e.outdir,k);for(const t of s){const n=`${C}${t.relativePath}`,m=F(t.document),{navItems:f,apiItems:A}=$({asyncApiDoc:t.document,protocol:m||""}),_=[{url:I(R,`${T(t.relativePath,".json")}?download`)},{url:I(R,`${T(t.relativePath,".yaml")}?download`)}];await e.createSharedData(n,{document:t.document,apiItems:A,protocol:m,downloadUrls:_,fsPath:t.relativePath}),f.forEach(i=>{const h={fsPath:t.relativePath,slugSuffix:`/${i.link}`,templateId:g,sharedData:[{key:"AsyncApiDefinition",id:n}],getStaticData:w(a.withPathPrefix,i.label),serverPropsGetterIds:D?[p,b]:[p]};e.addRoute(h),i.items&&i.items.forEach(o=>{e.addRoute({...h,slugSuffix:`/${o.link}`,getStaticData:w(a.withPathPrefix,o.label)}),o.items&&o.items.forEach(P=>{e.addRoute({...h,slugSuffix:`/${P.link}`,getStaticData:w(a.withPathPrefix,o.label)})})})}),e.addRoute({fsPath:t.customOutputRelativeFile||t.relativePath,templateId:g,hasClientRoutes:!0,getSidebar:i=>{const h=o=>{const P={...o};return o.link&&(P.routeSlug=I(i.slug,o.link),P.link=I(i.slug,o.link)),o.items&&(P.items=o.items.map(h)),P};return[{type:"link",label:t.document.info?.title??"AsyncAPI Overview",routeSlug:i.slug,link:i.slug},...f.map(h)]},getSearchDocuments:j(e,t.document),getStaticData:w(a.withPathPrefix,t.document.info?.title??"AsyncAPI Docs"),getAiDocumentsStore:M({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"]??{}}}),serverPropsGetterIds:D?[p,b]:[p],metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}},sharedData:[{key:"AsyncApiDefinition",id:n}]})}}catch(s){console.error(s)}})},afterRoutesCreated:async(e,a)=>{const u=new Set;for(const{chunks:y,relativePath:g,isVirtual:p,realRelativePath:r}of l){const s=e.getAllRoutes().filter(t=>t.fsPath===g).map(t=>t.slug),k=(await a.cache.load(r,"asyncapi-doc")).compoundHash;await a.cache.load(g,{loader:async function(){for(const{node:n,markdown:m,pointer:f,key:A,relativePath:_}of y||[]){const{ast:i}=await e.parseMarkdoc({content:m,relativePath:f,isVirtual:p},a,{sharedDataIds:[`${C}${_}`],routeSlugs:s});n[`x-parsed-md-${A}`]={result:O(i)}}},name:"asyncapi-markdoc-inline-parser"},[k]);for(const{pointer:t}of y)u.add(t)}const D=d.difference(u);for(const y of D)a.cache.delete(y);d=u}}}function w(c,l){return async function(d,e){return{props:{settings:{baseUrlPath:c(d.baseSlug)},disableAutoScroll:!0,seo:{title:l}}}}}function T(c,l){const d=S.posix.dirname(c),e=S.posix.basename(c,S.posix.extname(c))+l;return S.posix.join(d,e)}export{ot as asyncAPIDocsPlugin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{removeMarkdownLinks as j}from"../../openapi-docs/utils.js";function w(
|
|
1
|
+
import{removeMarkdownLinks as j}from"../../openapi-docs/utils.js";function w(r,n,o,i){if(!r)return[];const e={};return l(e,r,n,o,i),Object.values(e)}function l(r,n,o,i,e,f=[]){if(!(!n||n.type==="null")){if(n.type==="object"&&n.properties){for(const[t,u]of Object.entries(n.properties))if(typeof u=="object"&&u!==null){const y=f.concat([t]),d=n.required?.includes(t)||!1,p=c(t,u,o,y,d,i,e),O=A(p);if(r[O]!==void 0)continue;r[O]=p,l(r,u,o,i,e,y)}}if(n.type==="array"&&n.items&&typeof n.items=="object"&&n.items!==null&&l(r,n.items,o,i,e,f),n.oneOf&&Array.isArray(n.oneOf))for(const t of n.oneOf)typeof t=="object"&&t!==null&&l(r,t,o,i,e,f);if(n.anyOf&&Array.isArray(n.anyOf))for(const t of n.anyOf)typeof t=="object"&&t!==null&&l(r,t,o,i,e,f);if(n.allOf&&Array.isArray(n.allOf))for(const t of n.allOf)typeof t=="object"&&t!==null&&l(r,t,o,i,e,f)}}function c(r,n,o,i,e,f,t){const u=S(n),y=j(n.description||""),d=n.example;return{name:r,description:y,place:o,mediaType:void 0,path:i.slice(0,-1),type:u||"unknown",required:e,example:d?JSON.stringify(d):void 0,enum:void 0,deepLink:k(i,o,f,t)}}function S(r){return r.type?Array.isArray(r.type)?r.type.filter(n=>n!=="null").join(" | "):r.type:r.properties?"object":r.items?"array":r.enum?"enum":r.format?r.format:"unknown"}function A(r){return`${r.name}${r.description}${r.place}`}function k(r,n,o,i){let e="",f="";n==="message headers"?f="headers":n==="message payload"&&(f="payload"),r.length>0&&(e=r.join("/"));let t=`#${o}/messages`;return i&&(t+=`&m=${i.toLowerCase()}`),f&&(t+=`&t=${f}`),e&&(t+=`&path=${e.toLowerCase()}`),t}export{w as processSchema};
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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 c=n.getSidebar?.(n)||[];return k({actions:e,document:t,staticData:r,route:n},c)}}function k(e,t){const n=[];for(const r of t){r.type==="group"&&n.push(...k(e,r.items||[]));const c=w(e,r);c&&n.push(c)}return n}function w(e,t){const{actions:n,document:r,staticData:c,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 o={id:g,url:g,text:m(f.description||"")+m(f.summary||""),title:m(f.title||""),httpMethod:L,facets:y,[d]:t[d]||c[d],[D]:s[D]||P};if(t.apiItemData?.type==="channel"){const x=t.apiItemData.id,u=r.channels?.[x];if(u){const i=[];if(u.parameters)for(const[l,p]of Object.entries(u.parameters)){const a={name:l,description:m(p.description||""),place:"channel parameters",mediaType:void 0,type:"string",required:!1,example:void 0,deepLink:`#${o.url.replace(s.slug+"/","").replace(/^\//,"")}/parameters&path=${l}`};i.push(a)}if(u.messages){const l=u.messages;if(l)for(const[p,a]of Object.entries(l)){const C={name:a.title||a.name||p,description:m(a.description||"")+m(a.summary||""),place:"message",mediaType:void 0,type:"unknown",deepLink:`#${o.url.replace(s.slug+"/","").replace(/^\//,"")}/messages&m=${p.toLocaleLowerCase()}`,required:!1,example:void 0,enum:void 0};if(i.push(C),a.payload){const h=S(a.payload,"message payload",o.url.replace(s.slug+"/","").replace(/^\//,""),p);i.push(...h)}if(a.headers){const h=S(a.headers,"message headers",o.url.replace(s.slug+"/","").replace(/^\//,""),p);i.push(...h)}}}i.length>0&&(o.parameters=i)}}return o}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 +1 @@
|
|
|
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 _(
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { LayoutVariant } from '@redocly/theme/components/SidebarActions/SidebarActions';
|
|
3
3
|
type TemplateProps = {
|
|
4
4
|
pageProps: {
|
|
5
5
|
apiOptions: {
|
|
@@ -8,6 +8,7 @@ type TemplateProps = {
|
|
|
8
8
|
settings: {
|
|
9
9
|
baseUrlPath: string;
|
|
10
10
|
};
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
11
12
|
};
|
|
12
13
|
};
|
|
13
14
|
export default function AsyncApiDocs({ pageProps }: TemplateProps): React.JSX.Element;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"styled-components";import*as a from"react";import{RedoclyAsyncAPIDocs as p}from"@redocly/asyncapi-docs";import{LayoutVariant as d}from"@redocly/theme/components/SidebarActions/SidebarActions";import{ThreePanelLayout as f}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as h}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{withPathPrefix as u}from"@redocly/theme/core/utils";import{usePageSharedData as g}from"../../../../client/app/hooks";import{useCollectMarkdocOptions as y}from"./helpers";function v({pageProps:t}){const r=g("AsyncApiDefinition"),{document:e,apiItems:i,protocol:n,downloadUrls:c}=r,l=u(t?.settings?.baseUrlPath),s=y(t),m=t.apiOptions?.layout;return a.createElement(A,null,a.createElement(E,{layout:m},a.createElement(h,{metadata:t.metadata})),a.createElement(p,{pageProps:t,document:e,apiItems:i,routingBasePath:l,protocol:n,downloadUrls:c,markdocOptions:s}))}const A=o.div`
|
|
2
2
|
a[id],
|
|
3
3
|
a[data-section-id],
|
|
4
4
|
div[data-section-id] {
|
|
5
|
-
scroll-margin-top: calc(
|
|
5
|
+
scroll-margin-top: calc(
|
|
6
|
+
var(--navbar-height) + var(--banner-height) + var(--panel-gap-vertical)
|
|
7
|
+
);
|
|
6
8
|
}
|
|
7
9
|
|
|
8
10
|
--sidebar-width: 0px;
|
|
9
|
-
|
|
11
|
+
`,E=o(f)`
|
|
12
|
+
&& {
|
|
13
|
+
padding-right: ${({layout:t})=>t===d.THREE_PANEL?"calc(var(--panel-gap-horizontal) * 2)":"var(--panel-gap-horizontal)"};
|
|
14
|
+
}
|
|
15
|
+
`;export{v as default};
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { PageRouteDetails } from '../../types';
|
|
2
|
+
export default function getServerProps(_route: PageRouteDetails, data: {
|
|
3
|
+
props: any;
|
|
4
|
+
}, context: {
|
|
5
|
+
variables: {
|
|
6
|
+
idpAccessToken?: string;
|
|
7
|
+
};
|
|
8
|
+
}): Promise<any>;
|
|
4
9
|
//# sourceMappingURL=get-server-props.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{REGISTRY_APIS_API_URL as
|
|
1
|
+
import{REGISTRY_APIS_API_URL as r}from"../../constants/common.js";import{logger as e}from"../../tools/notifiers/logger.js";let c=null;async function f(){try{const s=process.env.REGISTRY_API_KEY||"";if(!s){e.warnProd("Cannot fetch custom fields: API key not found in env");return}const i=await(await fetch(r+"?limit=5000&fields=id,contentPath,customFields",{headers:{Authorization:`Bearer ${s}`}})).json();c={};for(const o of i.items)c[o.contentPath]=o.customFields||{};e.info("Refreshed cached API fields")}catch(s){console.log("error",s),e.warnProd("Failed to refresh cached API fields: "+s.message)}}f(),setInterval(f,1e3*60*5);async function m(s,t,i){const o=process.env.REDOCLY_LOCAL_DEV_TOKEN||i.variables.idpAccessToken;if(!o)return e.warnProd("Cannot fetch custom fields: access token not found"),t.props||{};if(!r)return e.warnProd("Cannot fetch custom fields: API URL not found in env"),t.props||{};const u=c||await l();return{...t.props,customFields:u};async function l(){try{const n=await fetch(r+"?limit=5000&fields=id,contentPath,customFields",{headers:{Cookie:`accessToken=${o}`}});if(n.status!==200)return e.warnProd(`Failed to fetch custom fields. API response status: ${n.status}. Request URL: ${r}`),t.props;const p=await n.json(),a={};for(const d of p.items)a[d.contentPath]=d.customFields||{};return a}catch(n){return e.warnProd("Failed to fetch custom fields: "+n.message),{}}}}export{m as default};
|
|
@@ -2,12 +2,12 @@ import type { PaginationParams } from '../../../providers/database/pagination/sc
|
|
|
2
2
|
import type { EntityReadModelSchema, EntityRelationReadModelSchema } from '../schemas/read-model-schemas.js';
|
|
3
3
|
import type { CatalogFiltersParams } from './repositories/local/catalog-entities-local-read-repository.js';
|
|
4
4
|
import type { BffCatalogEntity, BffCatalogEntityList, BffCatalogRelatedEntityList } from '@redocly/theme/core/types';
|
|
5
|
-
import type { DatabaseEntityRelation } from '../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js';
|
|
6
5
|
import type { ServiceInstanceOptions } from '../../../providers/database/types.js';
|
|
7
6
|
import type { TransactionsManager } from '../../../providers/database/transactions-manager.js';
|
|
8
7
|
import type { CreateEntityParams } from './repositories/local/catalog-entities-local-write-repository.js';
|
|
9
8
|
import type { Filter } from '../../../providers/database/pagination/types.js';
|
|
10
9
|
import type { ScorecardsStatus } from '../entities/types.js';
|
|
10
|
+
import type { GetEntityByIdParams } from '../types/params.js';
|
|
11
11
|
import { type EntityDtoSchema, type EntityRelationDtoSchema } from '../schemas/dto-schemas.js';
|
|
12
12
|
import { CatalogEntitiesLocalRepository } from './repositories/local/catalog-entities-local-repository.js';
|
|
13
13
|
import { CatalogEntitiesRemoteRepository } from './repositories/remote/catalog-entities-remote-repository.js';
|
|
@@ -25,8 +25,13 @@ export declare class CatalogEntitiesService {
|
|
|
25
25
|
constructor(localRepository: CatalogEntitiesLocalRepository, remoteRepository: CatalogEntitiesRemoteRepository | null);
|
|
26
26
|
static getInstance(options: ServiceInstanceOptions): Promise<CatalogEntitiesService>;
|
|
27
27
|
transaction<T>(...args: Parameters<TransactionsManager['transaction']>): Promise<T>;
|
|
28
|
-
getEntities(paginationParams
|
|
29
|
-
|
|
28
|
+
getEntities({ paginationParams, rbacTeams, excludedTypes, excludedEntities, }: {
|
|
29
|
+
paginationParams: PaginationParams;
|
|
30
|
+
rbacTeams?: string[];
|
|
31
|
+
excludedTypes?: string[];
|
|
32
|
+
excludedEntities?: string[];
|
|
33
|
+
}): Promise<ListResponseResult<EntityReadModelSchema>>;
|
|
34
|
+
getEntityById(id: string, params?: GetEntityByIdParams): Promise<EntityReadModelSchema | null>;
|
|
30
35
|
getEntityKeysAndVersionsBySourceFile(sourceFile: string): Promise<Set<string>>;
|
|
31
36
|
getEntitiesCountByTypes(): Promise<{
|
|
32
37
|
type: string;
|
|
@@ -56,79 +61,47 @@ export declare class CatalogEntitiesService {
|
|
|
56
61
|
* @param relations - The entity to create.
|
|
57
62
|
*/
|
|
58
63
|
createEntityRelationsInLocalDatabase(relations: EntityRelationDtoSchema[]): Promise<void>;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}>): Promise<EntityReadModelSchema | null | undefined>;
|
|
62
|
-
deleteEntityByKey(key: string): Promise<string | null | undefined>;
|
|
64
|
+
updateEntity(incomingEntity: Partial<EntityDtoSchema>, entityToBeUpdated: EntityReadModelSchema): Promise<EntityReadModelSchema | null | undefined>;
|
|
65
|
+
deleteEntity(entityToBeRemoved: EntityReadModelSchema): Promise<string | null | undefined>;
|
|
63
66
|
/**
|
|
64
67
|
* Use only internally, everything that is created via API should be created in the remote database.
|
|
65
68
|
* @param filter - The conditions used to select which entities to delete.
|
|
66
69
|
*/
|
|
67
70
|
deleteEntitiesInLocalDatabase(filter: Filter): Promise<void>;
|
|
68
71
|
getEntityRelationById(id: string): Promise<EntityRelationReadModelSchema | null>;
|
|
69
|
-
getEntitiesRelations(paginationParams?: PaginationParams): Promise<ListResponseResult<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
sourceRevision?: string | null | undefined;
|
|
74
|
-
targetVersion?: string | null | undefined;
|
|
75
|
-
targetRevision?: string | null | undefined;
|
|
76
|
-
type: string;
|
|
77
|
-
id: string;
|
|
78
|
-
organizationId: string;
|
|
79
|
-
projectId: string;
|
|
80
|
-
sourceKey: string;
|
|
81
|
-
targetKey: string;
|
|
82
|
-
}>>;
|
|
83
|
-
createEntityRelation(relation: EntityRelationDtoSchema): Promise<{
|
|
84
|
-
id: string;
|
|
85
|
-
organizationId: string;
|
|
86
|
-
projectId: string;
|
|
87
|
-
sourceFile: string | null;
|
|
88
|
-
isDeleted: boolean | null;
|
|
89
|
-
createdAt: string;
|
|
90
|
-
updatedAt: string;
|
|
91
|
-
sourceKey: string;
|
|
92
|
-
targetKey: string;
|
|
93
|
-
sourceVersion: string;
|
|
94
|
-
sourceRevision: string;
|
|
95
|
-
targetVersion: string;
|
|
96
|
-
targetRevision: string;
|
|
97
|
-
fileHash: string | null;
|
|
98
|
-
sourceToTargetRelation: string;
|
|
99
|
-
targetToSourceRelation: string;
|
|
100
|
-
} | null | undefined>;
|
|
101
|
-
createEntitiesRelations(entities: EntityRelationDtoSchema[]): Promise<BulkSyncResult<DatabaseEntityRelation>>;
|
|
102
|
-
updateEntityRelation(id: string, relation: EntityRelationDtoSchema): Promise<{
|
|
103
|
-
id: string;
|
|
104
|
-
organizationId: string;
|
|
105
|
-
projectId: string;
|
|
106
|
-
sourceFile: string | null;
|
|
107
|
-
isDeleted: boolean | null;
|
|
108
|
-
createdAt: string;
|
|
109
|
-
updatedAt: string;
|
|
110
|
-
sourceKey: string;
|
|
111
|
-
targetKey: string;
|
|
112
|
-
sourceVersion: string;
|
|
113
|
-
sourceRevision: string;
|
|
114
|
-
targetVersion: string;
|
|
115
|
-
targetRevision: string;
|
|
116
|
-
fileHash: string | null;
|
|
117
|
-
sourceToTargetRelation: string;
|
|
118
|
-
targetToSourceRelation: string;
|
|
119
|
-
} | null | undefined>;
|
|
72
|
+
getEntitiesRelations(paginationParams?: PaginationParams): Promise<ListResponseResult<EntityRelationReadModelSchema>>;
|
|
73
|
+
createEntityRelation(relation: EntityRelationDtoSchema): Promise<EntityRelationReadModelSchema | null | undefined>;
|
|
74
|
+
createEntitiesRelations(entities: EntityRelationDtoSchema[]): Promise<BulkSyncResult<EntityRelationReadModelSchema>>;
|
|
75
|
+
updateEntityRelation(incomingRelationData: Partial<EntityRelationDtoSchema>, relationToBeUpdated: EntityRelationReadModelSchema): Promise<EntityRelationReadModelSchema | null | undefined>;
|
|
120
76
|
deleteEntityRelation(id: string): Promise<string | null>;
|
|
121
77
|
/**
|
|
122
78
|
* Use only internally, everything that is created via API should be created in the remote database.
|
|
123
79
|
* @param filter - The conditions used to select which entity relations to delete.
|
|
124
80
|
*/
|
|
125
81
|
deleteEntityRelationsInLocalDatabase(filter: Filter): Promise<void>;
|
|
126
|
-
getEntitiesWithRelations(paginationParams
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
82
|
+
getEntitiesWithRelations({ paginationParams, rbacTeams, excludedTypes, excludedEntities, }: {
|
|
83
|
+
paginationParams: PaginationParams;
|
|
84
|
+
rbacTeams?: string[];
|
|
85
|
+
excludedTypes?: string[];
|
|
86
|
+
excludedEntities?: string[];
|
|
87
|
+
}): Promise<BffCatalogEntityList>;
|
|
88
|
+
getEntityWithRelationsByKey({ entityKey, filter, rbacTeams, excludedTypes, excludedEntities, }: {
|
|
89
|
+
entityKey: string;
|
|
90
|
+
filter?: {
|
|
91
|
+
revision?: string | null;
|
|
92
|
+
version?: string | null;
|
|
93
|
+
};
|
|
94
|
+
rbacTeams?: string[];
|
|
95
|
+
excludedTypes?: string[];
|
|
96
|
+
excludedEntities?: string[];
|
|
130
97
|
}): Promise<BffCatalogEntity | null>;
|
|
131
|
-
getRelatedEntities(entityKey
|
|
98
|
+
getRelatedEntities({ entityKey, paginationParams, rbacTeams, excludedTypes, excludedEntities, }: {
|
|
99
|
+
entityKey: string;
|
|
100
|
+
paginationParams: PaginationParams;
|
|
101
|
+
rbacTeams?: string[];
|
|
102
|
+
excludedTypes?: string[];
|
|
103
|
+
excludedEntities?: string[];
|
|
104
|
+
}): Promise<BffCatalogRelatedEntityList>;
|
|
132
105
|
softDeleteEntitiesInLocalDatabase({ filter, revision, fileHash, }: {
|
|
133
106
|
filter: Filter;
|
|
134
107
|
revision: string;
|
|
@@ -137,7 +110,8 @@ export declare class CatalogEntitiesService {
|
|
|
137
110
|
listEntityRevisions(entityKey: string, version?: string | null): Promise<import("../schemas/read-model-schemas.js").EntityRevisionSummary[]>;
|
|
138
111
|
updateEntityScorecardsStatus(entityId: string, status: ScorecardsStatus): Promise<boolean>;
|
|
139
112
|
updateEntityScorecardsStatusIfCalculating(entityId: string, status: Extract<ScorecardsStatus, 'UP_TO_DATE' | 'OUTDATED'>): Promise<boolean>;
|
|
140
|
-
|
|
113
|
+
getOutdatedEntities(filter?: Filter): Promise<EntityReadModelSchema[]>;
|
|
114
|
+
setEntitiesAsOutdated(filter: Filter): Promise<void>;
|
|
141
115
|
}
|
|
142
116
|
export {};
|
|
143
117
|
//# sourceMappingURL=catalog-entities-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{promiseMapLimit as u}from"../../../utils/async/promise-map-limit.js";import{logger as c}from"../../../tools/notifiers/logger.js";import{envConfig as r}from"../../../../config/env-config.js";import{CatalogEntitiesLocalRepository as w}from"./repositories/local/catalog-entities-local-repository.js";import{CatalogEntitiesRemoteRepository as p}from"./repositories/remote/catalog-entities-remote-repository.js";import{prepareListResponse as l}from"../../../web-server/utils/prepare-list-response.js";import{ENTITY_RELATION_FROM_DATABASE as d}from"./mappers/field-transformations.js";import{hasOptionsChanged as m}from"../utils/has-options-changed.js";const h=15;class n{static#a;static#i;#t;#e;constructor(t,e){this.#t=t,this.#e=e}static async#n(t){const[e,a]=await Promise.all([w.getInstance(t),t.runOnlyLocalDatabase?null:p.getInstance(t)]),i=new n(e,a);a&&(r.isDevelopMode&&c.info("Attaching remote database to local database"),await i.#t.attachDatabase(a.path)),n.#a=i,n.#i=t}static async getInstance(t){return t.runOnlyLocalDatabase===void 0&&(t.runOnlyLocalDatabase=r.isDevelopMode),t.removeExisting===void 0&&(t.removeExisting=!1),(!n.#a||m(n.#i,t))&&await n.#n(t),n.#a}async transaction(...t){return this.#t.transactionsManager.transaction(...t)}async getEntities({paginationParams:t,rbacTeams:e,excludedTypes:a,excludedEntities:i}){await this.#e?.sync();const{items:s,total:o,hasMore:y}=await this.#t.getEntities({paginationParams:t,rbacTeams:e,excludedTypes:a,excludedEntities:i});return l({data:s,params:t,totalCount:o,hasMore:y})}async getEntityById(t,e){return await this.#e?.sync(),await this.#t.getEntityById(t,e)}async getEntityKeysAndVersionsBySourceFile(t){return await this.#e?.sync(),this.#t.getEntityKeysAndVersionsBySourceFile(t)}async getEntitiesCountByTypes(){return await this.#e?.sync(),this.#t.getEntitiesCountByTypes()}async getCatalogFilters(t){return await this.#e?.sync(),this.#t.getCatalogFilters(t)}async createEntity(t){if(r.isDevelopMode)throw new Error("Entity creation is not supported in the develop mode");return this.#e?this.#e.createEntity(t):(c.warn("No remote database found"),null)}async createEntities(t){if(r.isDevelopMode)throw new Error("Entity creation is not supported in the develop mode");const e=this.#e;return e?await u(t,h,async a=>e.createEntity(a).then(i=>({status:"ok",resource:i})).catch(i=>({key:a.key,status:"error",error:i}))):(c.warn("No remote database found"),[])}getEntitySources(){return this.#t.getEntitySources()}async createEntityInLocalDatabase(t){return this.#t.createEntity(t)}async createEntitiesInLocalDatabase(t){await this.#t.createEntities(t)}async createEntityRelationInLocalDatabase(t){await this.#t.createEntityRelation(t)}async createEntityRelationsInLocalDatabase(t){await this.#t.createEntityRelations(t)}async updateEntity(t,e){if(r.isDevelopMode)throw new Error("Entity update is not supported in the develop mode");return await this.#e?.updateEntity(t,e)}async deleteEntity(t){if(r.isDevelopMode)throw new Error("Entity deletion is not supported in the develop mode");return await this.#e?.deleteEntity(t)}async deleteEntitiesInLocalDatabase(t){await this.#t.deleteEntities(t)}async getEntityRelationById(t){return await this.#e?.sync(),await this.#t.getEntityRelationById(t)}async getEntitiesRelations(t={}){await this.#e?.sync();const{items:e,total:a,hasMore:i}=await this.#t.getEntitiesRelations(t);return l({data:e,params:t,totalCount:a,nameTransformationsFromDatabase:d,hasMore:i})}async createEntityRelation(t){return this.#e?.createEntityRelation(t)}async createEntitiesRelations(t){const e=this.#e;return e?await u(t,h,async a=>e.createEntityRelation(a).then(i=>({status:"ok",resource:i})).catch(i=>({key:a.sourceKey,status:"error",error:i}))):(c.warn("No remote database found"),[])}async updateEntityRelation(t,e){const a={...e,...t,type:t.type??e.type};return this.#e?.createEntityRelation(a)}async deleteEntityRelation(t){let e=await this.#e?.deleteEntityRelation(t);return e||(e=await this.#t.deleteEntityRelation(t)),e}async deleteEntityRelationsInLocalDatabase(t){await this.#t.deleteEntityRelations(t)}async getEntitiesWithRelations({paginationParams:t,rbacTeams:e,excludedTypes:a,excludedEntities:i}){await this.#e?.sync();const{items:s,total:o,hasMore:y}=await this.#t.getEntitiesWithRelations({paginationParams:t,rbacTeams:e,excludedTypes:a,excludedEntities:i});return l({data:s,params:t,totalCount:o,hasMore:y})}async getEntityWithRelationsByKey({entityKey:t,filter:e,rbacTeams:a,excludedTypes:i,excludedEntities:s}){return this.#t.getEntityWithRelationsByKey({entityKey:t,filter:e,rbacTeams:a,excludedTypes:i,excludedEntities:s})}async getRelatedEntities({entityKey:t,paginationParams:e,rbacTeams:a,excludedTypes:i,excludedEntities:s}){await this.#e?.sync();const{items:o,total:y,hasMore:E}=await this.#t.getRelatedEntities({key:t,paginationParams:e,rbacTeams:a,excludedTypes:i,excludedEntities:s});return l({data:o,params:e,totalCount:y,nameTransformationsFromDatabase:d,hasMore:E})}async softDeleteEntitiesInLocalDatabase({filter:t,revision:e,fileHash:a}){await this.#t.softDeleteEntities({filter:t,revision:e,fileHash:a})}async listEntityRevisions(t,e){return await this.#e?.sync(),this.#t.listEntityRevisions(t,e)}async updateEntityScorecardsStatus(t,e){return await this.#e?.sync(),this.#t.updateEntityScorecardsStatus(t,e)}async updateEntityScorecardsStatusIfCalculating(t,e){return await this.#e?.sync(),this.#t.updateEntityScorecardsStatusIfCalculating(t,e)}async getOutdatedEntities(t){return await this.#e?.sync(),this.#t.getOutdatedEntities(t)}async setEntitiesAsOutdated(t){await this.#e?.sync(),await this.#t.setEntitiesAsOutdated(t)}}export{n as CatalogEntitiesService};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DatabaseEntityAttributesDto } from '../../../../providers/database/databases/catalog-sqlite/schemas/entities-attributes-table';
|
|
2
|
+
export declare function createEntityAttributesDbRecord({ rbacTeams, entityKey, organizationId, projectId, }: {
|
|
3
|
+
rbacTeams: string[];
|
|
4
|
+
entityKey: string;
|
|
5
|
+
organizationId: string;
|
|
6
|
+
projectId: string;
|
|
7
|
+
}): DatabaseEntityAttributesDto;
|
|
8
|
+
//# sourceMappingURL=create-entity-attributes-db-record.d.ts.map
|
package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ulid as o}from"ulid";function c({rbacTeams:e,entityKey:r,organizationId:i,projectId:n}){const t=new Date().toISOString();return{id:`cea_${o()}`,organizationId:i,projectId:n,entityKey:r,rbacTeams:JSON.stringify(e),createdAt:t,updatedAt:t}}export{c as createEntityAttributesDbRecord};
|
|
@@ -7,7 +7,8 @@ export declare function createEntityDbRecord({ entity, organizationId, projectId
|
|
|
7
7
|
hash?: string;
|
|
8
8
|
isCurrent?: boolean;
|
|
9
9
|
isDefaultVersion?: boolean;
|
|
10
|
-
isDeleted?: boolean;
|
|
10
|
+
isDeleted?: boolean | null;
|
|
11
|
+
revision?: string;
|
|
11
12
|
};
|
|
12
13
|
organizationId: string;
|
|
13
14
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as
|
|
1
|
+
import{logger as r}from"../../../../tools/notifiers/logger.js";import{VERSION_NOT_SPECIFIED as t}from"@redocly/theme/core/constants";import{entityDatabaseSchema as l}from"../../schemas/database-schemas.js";import{validateWithResult as o}from"../../utils/ajv-validator.js";const i=e=>"project_id"in e&&"organization_id"in e&&"created_at"in e;function m(e){if(i(e)){const s=o(l,e);if(!s.success)return r.warn(`Invalid database catalog entity for entity ${e.key}, error: ${s.error}`),null;const a=s.data||{};return{id:a.id,organizationId:a.organization_id,projectId:a.project_id,type:a.type,key:a.key||"",title:a.title||"",summary:a.summary||null,tags:a.tags?JSON.parse(a.tags):null,metadata:a.metadata?JSON.parse(a.metadata):null,git:a.git?JSON.parse(a.git):null,contact:a.contact?JSON.parse(a.contact):null,links:a.links?JSON.parse(a.links):null,source:a.source||"file",sourceFile:a.source_file||null,version:a.version||t,revision:a.revision??"",hash:a.hash||null,isCurrent:a.is_current??!1,isDefaultVersion:a.is_default_version??!1,createdAt:a.created_at,updatedAt:a.updated_at,isDeleted:a.is_deleted??!1,object:"catalogEntity",rbacTeams:a.rbac_teams?JSON.parse(a.rbac_teams):[]}}return{...e,tags:e.tags?JSON.parse(e.tags):null,metadata:e.metadata?JSON.parse(e.metadata):null,git:e.git?JSON.parse(e.git):null,contact:e.contact?JSON.parse(e.contact):null,links:e.links?JSON.parse(e.links):null,source:e.source||"file",version:e.version,revision:e.revision??"",hash:e.hash||null,isCurrent:e.isCurrent??!1,isDefaultVersion:e.isDefaultVersion??!1,isDeleted:e.isDeleted??!1,object:"catalogEntity"}}export{m as createEntityReadModel};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Row } from '@libsql/client';
|
|
2
2
|
import type { DatabaseEntityRelation } from '../../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js';
|
|
3
3
|
import type { EntityRelationReadModelSchema } from '../../schemas/read-model-schemas.js';
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function createEntityRelationReadModel(relation: DatabaseEntityRelation | Row | null): (EntityRelationReadModelSchema & {
|
|
5
5
|
object: 'catalogEntityRelation';
|
|
6
6
|
}) | null;
|
|
7
|
-
//# sourceMappingURL=create-entity-relation.d.ts.map
|
|
7
|
+
//# sourceMappingURL=create-entity-relation-read-model.d.ts.map
|
package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{logger as r}from"../../../../tools/notifiers/logger.js";import{entityRelationDatabaseSchema as i}from"../../schemas/database-schemas.js";import{validateWithResult as a}from"../../utils/ajv-validator.js";const n=e=>"project_id"in e&&"organization_id"in e&&"source_key"in e;function g(e){if(!e)return null;if(n(e)){const o=a(i,e);if(!o.success)return r.warn(`Invalid database catalog entity relation, error: ${o.error}`),null;const t=o.data||{};return{id:t.id,organizationId:t.organization_id,projectId:t.project_id,sourceKey:t.source_key,targetKey:t.target_key,sourceVersion:t.source_version??null,sourceRevision:t.source_revision??null,targetVersion:t.target_version??null,targetRevision:t.target_revision??null,type:t.source_to_target_relation,createdAt:t.created_at,updatedAt:t.updated_at,object:"catalogEntityRelation"}}return{id:e.id,organizationId:e.organizationId,projectId:e.projectId,sourceKey:e.sourceKey,targetKey:e.targetKey,sourceVersion:e.sourceVersion??null,sourceRevision:e.sourceRevision??null,targetVersion:e.targetVersion??null,targetRevision:e.targetRevision??null,type:e.sourceToTargetRelation,createdAt:e.createdAt,updatedAt:e.updatedAt,object:"catalogEntityRelation"}}export{g as createEntityRelationReadModel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readString as e}from"../../utils/read-string.js";function
|
|
1
|
+
import{readString as e}from"../../utils/read-string.js";function y(t,i=0){return typeof t=="number"?t:i}function s(t){const i=e(t.target_key)??e(t.entityKey)??e(t.entity_key)??"",n=e(t.target_revision)??e(t.entityRevision)??e(t.entity_revision)??"",r=e(t.source_to_target_relation)??e(t.relationName)??e(t.relation_name)??"",o=e(t.direction)??"outgoing",a=y(t.priority,0);return{targetKey:i,targetRevision:n,sourceToTargetRelation:r,direction:o,priority:a}}export{s as mapEntityRelationRow};
|
package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DatabaseClient } from '../../../../../providers/database/client.js';
|
|
2
|
+
export declare class RevisionRepository {
|
|
3
|
+
#private;
|
|
4
|
+
private readonly db;
|
|
5
|
+
constructor(db: DatabaseClient);
|
|
6
|
+
shouldSetNewCurrentRevision({ key, version, revision, }: {
|
|
7
|
+
key: string;
|
|
8
|
+
version: string | null;
|
|
9
|
+
revision: string | null;
|
|
10
|
+
}): Promise<boolean>;
|
|
11
|
+
markAllRevisionsAsNotCurrent(key: string): Promise<void>;
|
|
12
|
+
getCurrentEntityRevision(key: string): Promise<{
|
|
13
|
+
version: string;
|
|
14
|
+
revision: string;
|
|
15
|
+
} | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Ensures that the one of the revisions has current and default version.
|
|
18
|
+
*/
|
|
19
|
+
ensureDefaultAndCurrentRevisionForKey(key: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Determines if entity creation should be skipped.
|
|
22
|
+
* We only skip if the hash matches the MOST RECENT revision for the same key and version.
|
|
23
|
+
* This allows creating new revisions when reverting to previous content states.
|
|
24
|
+
*/
|
|
25
|
+
shouldSkipRevisionCreation(key: string, version: string | null, hash: string, isRootEntity?: boolean, isDeleted?: boolean): Promise<boolean>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=revision-repository.d.ts.map
|
package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{and as l,desc as c,eq as s,isNull as d}from"drizzle-orm";import{VERSION_NOT_SPECIFIED as h}from"@redocly/theme/core/constants";import{entitiesTable as e}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{compareVersions as f}from"../../../utils/version-compare.js";import{VersionRepository as v}from"./version-repository.js";class V{db;#e;constructor(t){this.db=t,this.#e=new v(t)}async shouldSetNewCurrentRevision({key:t,version:i,revision:r}){const n=await this.getCurrentEntityRevision(t);if(!n)return!0;if(i){const u=await this.#e.doesVersionExist(t,i),o=f(i,n.version)>0,a=n.version===h&&i!==h;if(!u&&(o||a))return!0}return!!(i&&r&&i===n.version&&r>=n.revision)}async markAllRevisionsAsNotCurrent(t){await this.db.client.update(e).set({isCurrent:!1}).where(s(e.key,t)).run()}async getCurrentEntityRevision(t){return await this.db.client.select({version:e.version,revision:e.revision}).from(e).where(l(s(e.key,t),s(e.isCurrent,!0))).orderBy(c(e.revision)).limit(1).get()??null}async ensureDefaultAndCurrentRevisionForKey(t){const i=await this.#e.getOrderedVersionListForKey(t),r=this.#e.getLatestVersion(i);r&&await this.db.client.update(e).set({isDefaultVersion:!0,isCurrent:!0}).where(l(s(e.key,t),s(e.revision,r.revision),r.version?s(e.version,r.version):d(e.version))).run()}async shouldSkipRevisionCreation(t,i,r,n,u){if(n||u)return!1;const o=await this.db.client.select({hash:e.hash,isDeleted:e.isDeleted}).from(e).where(l(s(e.key,t),i?s(e.version,i):d(e.version))).orderBy(c(e.revision)).limit(1).run();if(o.rows.length===0)return!1;const a=o.rows[0];return a.is_deleted?!1:a.hash===r}}export{V as RevisionRepository};
|
package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DatabaseClient } from '../../../../../providers/database/client.js';
|
|
2
|
+
export declare class VersionRepository {
|
|
3
|
+
private readonly db;
|
|
4
|
+
constructor(db: DatabaseClient);
|
|
5
|
+
markAllVersionsAsNotDefault(key: string): Promise<void>;
|
|
6
|
+
doesVersionExist(key: string, version: string): Promise<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Gets the ordered list of versions for a given key.
|
|
9
|
+
* The list is ordered by creation date, and then by version.
|
|
10
|
+
*/
|
|
11
|
+
getOrderedVersionListForKey(key: string): Promise<{
|
|
12
|
+
version: string | null;
|
|
13
|
+
isDefaultVersion: boolean;
|
|
14
|
+
revision: string;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
}[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Helper: Determines the correct entity to promote.
|
|
19
|
+
* STRATEGY:
|
|
20
|
+
* 1. Identify the highest SemVer string available.
|
|
21
|
+
* 2. Filter revisions to ONLY include that SemVer.
|
|
22
|
+
* 3. Sort those specific revisions by Date to find the tip.
|
|
23
|
+
*/
|
|
24
|
+
getLatestVersion(versionsList: {
|
|
25
|
+
version: string | null;
|
|
26
|
+
isDefaultVersion: boolean;
|
|
27
|
+
revision: string;
|
|
28
|
+
createdAt: Date;
|
|
29
|
+
}[]): {
|
|
30
|
+
version: string | null;
|
|
31
|
+
isDefaultVersion: boolean;
|
|
32
|
+
revision: string;
|
|
33
|
+
createdAt: Date;
|
|
34
|
+
} | null;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=version-repository.d.ts.map
|
package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{eq as a,and as l,desc as c}from"drizzle-orm";import{VERSION_NOT_SPECIFIED as f}from"@redocly/theme/core/constants";import{entitiesTable as e}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{compareVersionsDescending as m}from"../../../utils/version-compare.js";class p{db;constructor(t){this.db=t}async markAllVersionsAsNotDefault(t){await this.db.client.update(e).set({isDefaultVersion:!1}).where(l(a(e.key,t),a(e.isDefaultVersion,!0))).run()}async doesVersionExist(t,n){return await this.db.client.select().from(e).where(l(a(e.key,t),a(e.version,n))).get()!==void 0}async getOrderedVersionListForKey(t){return(await this.db.client.select({version:e.version,isDefaultVersion:e.isDefaultVersion,revision:e.revision,createdAt:e.createdAt}).from(e).where(l(a(e.key,t))).orderBy(c(e.createdAt)).run()).rows.map(i=>({version:i.version,isDefaultVersion:!!i.isDefaultVersion,revision:i.revision,createdAt:new Date(i.createdAt)}))}getLatestVersion(t){const n=t.find(r=>r.isDefaultVersion);if(n)return n;const{versionedEntities:i,unversionedEntities:d}=t.reduce((r,s)=>(s.version!==null&&s.version!==f?r.versionedEntities.push(s):r.unversionedEntities.push(s),r),{versionedEntities:[],unversionedEntities:[]});if(i.length>0){i.sort((o,u)=>m(o.version,u.version));const r=i[0].version,s=i.filter(o=>o.version===r);return s.sort((o,u)=>u.createdAt.getTime()-o.createdAt.getTime()),s[0]}return d.length>0?(d.sort((r,s)=>s.createdAt.getTime()-r.createdAt.getTime()),d[0]):null}}export{p as VersionRepository};
|
|
@@ -5,10 +5,21 @@ import type { ListResult } from './catalog-entities-local-read-repository.js';
|
|
|
5
5
|
export declare class CatalogEntitiesBffRepository {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(db: DatabaseClient, attachedDatabasePath: string);
|
|
8
|
-
getEntitiesWithRelations(paginationParams
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
getEntitiesWithRelations({ paginationParams, rbacTeams, excludedEntities, excludedTypes, }: {
|
|
9
|
+
paginationParams: PaginationParams;
|
|
10
|
+
rbacTeams?: string[];
|
|
11
|
+
excludedEntities?: string[];
|
|
12
|
+
excludedTypes?: string[];
|
|
13
|
+
}): Promise<ListResult<BffCatalogEntity>>;
|
|
14
|
+
getEntityWithRelationsByKey({ entityKey, filter, rbacTeams, excludedTypes, excludedEntities, }: {
|
|
15
|
+
entityKey: string;
|
|
16
|
+
filter?: {
|
|
17
|
+
revision?: string | null;
|
|
18
|
+
version?: string | null;
|
|
19
|
+
};
|
|
20
|
+
rbacTeams?: string[];
|
|
21
|
+
excludedTypes?: string[];
|
|
22
|
+
excludedEntities?: string[];
|
|
12
23
|
}): Promise<BffCatalogEntity | null>;
|
|
13
24
|
}
|
|
14
25
|
//# sourceMappingURL=catalog-entities-bff-repository.d.ts.map
|