@redocly/realm 0.129.2 → 0.130.0-custom.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 +508 -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/eject/resolveTheme.d.ts +1 -1
- package/dist/cli/eject/resolveTheme.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/DevModeFloatingBar/index.d.ts +3 -0
- package/dist/client/app/DevModeFloatingBar/index.js +43 -0
- package/dist/client/app/Feedback/useSubmitFeedback.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/useAutoScroll.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/hooks/utils/pathname-matches-active-section.d.ts +6 -0
- package/dist/client/app/hooks/utils/pathname-matches-active-section.js +1 -0
- package/dist/client/app/markdoc/custom-components/html-script.js +1 -0
- package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -0
- package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -0
- package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -0
- package/dist/client/app/markdoc/hooks/use-store.js +1 -0
- 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 +3 -3
- package/dist/client/constants/ai-search.d.ts +30 -0
- package/dist/client/constants/ai-search.js +1 -0
- package/dist/client/constants/common.d.ts +2 -0
- package/dist/client/constants/common.js +1 -0
- package/dist/client/constants/index.d.ts +2 -0
- package/dist/client/constants/index.js +1 -0
- package/dist/client/runtime/useSocketMessages.js +1 -1
- package/dist/{server/plugins/asyncapi-docs/template → client/templates/asyncapi-docs}/helpers.d.ts +3 -3
- package/dist/client/templates/asyncapi-docs/helpers.js +1 -0
- package/dist/{server/plugins/asyncapi-docs/template/AsyncApiDocs.d.ts → client/templates/asyncapi-docs/template.d.ts} +3 -2
- package/dist/client/templates/asyncapi-docs/template.js +15 -0
- package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/helpers.d.ts +2 -2
- package/dist/client/templates/openapi-docs/helpers.js +5 -0
- package/dist/{server/plugins/openapi-docs/template/OpenAPIDocs.d.ts → client/templates/openapi-docs/template.d.ts} +1 -1
- package/dist/client/templates/openapi-docs/template.js +18 -0
- 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/client/utils/catalog/inject-catalog-items.d.ts +1 -1
- package/dist/client/utils/catalog/inject-catalog-items.js +1 -1
- package/dist/constants/catalog-entities.d.ts +12 -0
- package/dist/constants/catalog-entities.js +1 -0
- package/dist/constants/common.d.ts +6 -4
- 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/plugins/markdown/markdoc → markdoc}/helpers/get-inner-text.d.ts +1 -1
- package/dist/markdoc/helpers/get-inner-text.js +2 -0
- package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-variable.d.ts +2 -2
- package/dist/markdoc/helpers/get-variable.js +1 -0
- package/dist/markdoc/nodes/fence/index.js +1 -0
- package/dist/markdoc/nodes/heading.js +1 -0
- package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.d.ts +6 -6
- package/dist/markdoc/tags/json-example.d.ts +3 -0
- package/dist/markdoc/tags/json-schema.d.ts +3 -0
- package/dist/markdoc/tags/openapi-code-sample.d.ts +3 -0
- package/dist/markdoc/tags/openapi-example.d.ts +3 -0
- package/dist/markdoc/tags/openapi-response-sample.d.ts +3 -0
- package/dist/markdoc/tags/replay-openapi.d.ts +3 -0
- package/dist/markdoc/types.d.ts +8 -0
- package/dist/markdoc/types.js +0 -0
- 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/config/env-config.d.ts +17 -0
- package/dist/server/config/env-config.js +1 -0
- package/dist/server/config/env-schema.d.ts +245 -0
- package/dist/server/config/env-schema.js +3 -0
- package/dist/server/config/env-schemas/api-urls.d.ts +24 -0
- package/dist/server/config/env-schemas/api-urls.js +1 -0
- package/dist/server/config/env-schemas/auth.d.ts +42 -0
- package/dist/server/config/env-schemas/auth.js +1 -0
- package/dist/server/config/env-schemas/catalog.d.ts +12 -0
- package/dist/server/config/env-schemas/catalog.js +1 -0
- package/dist/server/config/env-schemas/database.d.ts +15 -0
- package/dist/server/config/env-schemas/database.js +1 -0
- package/dist/server/config/env-schemas/environment-detection.d.ts +24 -0
- package/dist/server/config/env-schemas/environment-detection.js +1 -0
- package/dist/server/config/env-schemas/feature-flags.d.ts +24 -0
- package/dist/server/config/env-schemas/feature-flags.js +1 -0
- package/dist/server/config/env-schemas/organization-project.d.ts +30 -0
- package/dist/server/config/env-schemas/organization-project.js +1 -0
- package/dist/server/config/env-schemas/scorecards.d.ts +12 -0
- package/dist/server/config/env-schemas/scorecards.js +1 -0
- package/dist/server/config/env-schemas/search.d.ts +21 -0
- package/dist/server/config/env-schemas/search.js +1 -0
- package/dist/server/config/env-schemas/server-config.d.ts +51 -0
- package/dist/server/config/env-schemas/server-config.js +1 -0
- package/dist/server/config/env-schemas/site.d.ts +12 -0
- package/dist/server/config/env-schemas/site.js +1 -0
- package/dist/server/config/env-schemas/ssr.d.ts +18 -0
- package/dist/server/config/env-schemas/ssr.js +1 -0
- package/dist/server/config/env-schemas/telemetry.d.ts +15 -0
- package/dist/server/config/env-schemas/telemetry.js +1 -0
- package/dist/server/config/env-schemas/test.d.ts +22 -0
- package/dist/server/config/env-schemas/test.js +1 -0
- package/dist/server/constants/common.d.ts +3 -0
- package/dist/server/constants/common.js +1 -1
- package/dist/server/constants/feedback.d.ts +6 -0
- package/dist/server/constants/feedback.js +1 -0
- package/dist/server/constants/plugins/catalog-entities.d.ts +1 -11
- 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/esbuild/plugins/themes-resolver.js +2 -2
- package/dist/server/{config/external-plugins.d.ts → external-plugins/resolve-external-plugins.d.ts} +2 -2
- package/dist/server/{config/external-plugins.js → external-plugins/resolve-external-plugins.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/get-ai-search-documents.js +27 -27
- 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/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/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/code-walkthrough/filesets-resolver.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-code-snippet-from-file.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-href.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-source-attribute.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src-set.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-example-ref.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-schema-ref.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-native-md-link.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-nav-links.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-parsed-yaml.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-raw-content.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-or-cdn-icon.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-path.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-sample-from-json-schema.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-svg-content.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/markdoc-options.js +1 -1
- package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/headings.js +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/render-mermaid.js +1 -1
- package/dist/server/plugins/markdown/markdoc/plugins/utils.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/markdown/runtime-transform.js +1 -1
- package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
- package/dist/server/plugins/markdown/search/get-search-documents.js +2 -2
- package/dist/server/plugins/markdown/search/nodes/section-node.js +1 -1
- package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
- package/dist/server/plugins/markdown/search/to-markdown.js +17 -13
- package/dist/server/plugins/markdown/search/walk-sections.js +1 -1
- package/dist/server/plugins/markdown/utils/stringify-tag-children-objects.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 +58 -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 +10 -2
- package/dist/server/plugins/mcp/docs-mcp/tools/search.js +6 -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/servers/docs-server.d.ts +9 -2
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/types.d.ts +59 -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/get-ai-search-documents.js +20 -20
- 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/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 +3 -1
- package/dist/server/plugins/scorecard-classic/template/Grid/Grid.js +3 -3
- package/dist/server/plugins/scorecard-classic/template/Grid/GridHeader.js +15 -9
- package/dist/server/plugins/scorecard-classic/template/Grid/GridRow.js +1 -1
- 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 +92 -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-semantic-documents.d.ts +11 -0
- package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -0
- 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.d.ts +2 -0
- 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 +16 -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 +8 -1
- package/dist/server/types/plugins/markdown.d.ts +2 -7
- package/dist/server/types/plugins/scorecards.d.ts +30 -0
- package/dist/server/types/plugins/scorecards.js +0 -0
- package/dist/server/utils/ai-agent-detection.d.ts +16 -0
- package/dist/server/utils/ai-agent-detection.js +1 -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/fs.js +1 -1
- package/dist/server/utils/globs.js +1 -1
- package/dist/server/utils/index.d.ts +2 -2
- package/dist/server/utils/index.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.d.ts +2 -0
- package/dist/server/web-server/auth.js +4 -4
- 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/middleware/responseHeadersMiddleware.js +1 -1
- package/dist/server/web-server/mime-types.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/cors-proxy.d.ts +5 -0
- package/dist/server/web-server/routes/cors-proxy.js +2 -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/feedback.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-md-asset-pathname.d.ts +2 -0
- package/dist/server/web-server/routes/helpers/get-md-asset-pathname.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/routes/resolve-route.js +1 -1
- package/dist/server/web-server/routes/semantic-search.d.ts +4 -0
- package/dist/server/web-server/routes/semantic-search.js +1 -0
- 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/dist/{server/utils → utils}/slugger.d.ts +13 -0
- package/package.json +21 -23
- package/dist/client/app/ErrorBubble/index.d.ts +0 -3
- package/dist/client/app/ErrorBubble/index.js +0 -59
- package/dist/client/app/PageCounter/index.d.ts +0 -3
- package/dist/client/app/PageCounter/index.js +0 -64
- package/dist/server/plugins/asyncapi-docs/template/AsyncApiDocs.js +0 -9
- package/dist/server/plugins/asyncapi-docs/template/helpers.js +0 -1
- 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/markdown/markdoc/custom-components/html-script.js +0 -1
- package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-code-sample.js +0 -1
- package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-response-sample.js +0 -1
- package/dist/server/plugins/markdown/markdoc/custom-components/openapi/replay-openapi.js +0 -1
- package/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js +0 -2
- package/dist/server/plugins/markdown/markdoc/helpers/get-variable.js +0 -1
- package/dist/server/plugins/markdown/markdoc/hooks/use-store.js +0 -1
- package/dist/server/plugins/markdown/markdoc/nodes/fence/index.js +0 -1
- package/dist/server/plugins/markdown/markdoc/nodes/heading.js +0 -1
- package/dist/server/plugins/markdown/markdoc/tags/json-example.d.ts +0 -3
- package/dist/server/plugins/markdown/markdoc/tags/json-schema.d.ts +0 -3
- package/dist/server/plugins/markdown/markdoc/tags/openapi-code-sample.d.ts +0 -3
- package/dist/server/plugins/markdown/markdoc/tags/openapi-example.d.ts +0 -3
- package/dist/server/plugins/markdown/markdoc/tags/openapi-response-sample.d.ts +0 -3
- package/dist/server/plugins/markdown/markdoc/tags/replay-openapi.d.ts +0 -3
- 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/plugins/openapi-docs/template/OpenAPIDocs.js +0 -14
- package/dist/server/plugins/openapi-docs/template/helpers.js +0 -5
- package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.d.ts +0 -6
- package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.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
- /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.d.ts +0 -0
- /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/html-script.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-code-sample.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-response-sample.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/replay-openapi.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.d.ts +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.js +0 -0
- /package/dist/{server/plugins/markdown → client/app}/markdoc/hooks/use-store.d.ts +0 -0
- /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.d.ts +0 -0
- /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/heading.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.d.ts +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-example.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-schema.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-code-sample.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-example.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-response-sample.js +0 -0
- /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/replay-openapi.js +0 -0
- /package/dist/server/{config → external-plugins}/resolve-module.d.ts +0 -0
- /package/dist/server/{config → external-plugins}/resolve-module.js +0 -0
- /package/dist/{server/utils → utils}/conflict-resolvers.d.ts +0 -0
- /package/dist/{server/utils → utils}/conflict-resolvers.js +0 -0
- /package/dist/{server/utils → utils}/slugger.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import g from"node:path";import{createConfig as u,loadIgnoreConfig as m}from"@redocly/openapi-core";import{ruleTypes as p}from"@redocly/config";import{ExternalResolver as C}from"../../../fs/utils/external-ref-resolver.js";import{deepMerge as d}from"../../../../utils/object/deep-merge.js";import{CONFIG_FILE_NAME as v}from"../../../../constants/common.js";import{getScorecardConfig as w}from"../get-scorecard-config.js";async function N(t,o){const e=await o.getConfig(),n=w(e),s=n.levels??[],r=g.join(o.fs.cwd,v),a=new C(o.fs),i=await m(r,a),c=await f(s,e.plugins,r,i),l=await y(n.targets,s,e.plugins,r,i);return{levelsConfig:s,configs:c,targets:l}}async function f(t,o=[],e,n){const s={};for(const r of t)r.name!=="Baseline"&&(r.rules=r.rules??{struct:"error"},r.rules.struct="error"),s[r.name]=await u({...r,plugins:o},{configPath:e,ignore:n});return s}async function y(t,o,e=[],n,s){return t?Promise.all(t?.filter(r=>!!r.rules).map(async r=>{const a=o.map(i=>({name:i.name,...L(i,r.rules)}));return{...r,configs:await f(a,e,n,s)}})||[]):[]}function L(t,o){return p.reduce((e,n)=>(e[n]=d(t[n]??{},o??{}),e),{})}export{N as scorecardConfigLoader};
|
|
@@ -8,11 +8,13 @@ export type ScorecardLoaderResult = {
|
|
|
8
8
|
export declare function scorecardLoader(relativePath: string, context: LifecycleContext): Promise<ScorecardLoaderResult>;
|
|
9
9
|
export declare function getTarget<T extends object>(targets: Array<{
|
|
10
10
|
where: {
|
|
11
|
-
metadata: Record<string,
|
|
11
|
+
metadata: Record<string, unknown>;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
minimumLevel?: string;
|
|
14
|
+
} & T> | undefined, metadata: Record<string, unknown>): ({
|
|
14
15
|
where: {
|
|
15
|
-
metadata: Record<string,
|
|
16
|
+
metadata: Record<string, unknown>;
|
|
16
17
|
};
|
|
17
|
-
|
|
18
|
+
minimumLevel?: string;
|
|
19
|
+
} & T) | undefined;
|
|
18
20
|
//# sourceMappingURL=scorecard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import b from"node:path";import{reporter as v}from"../../../tools/notifiers/reporter.js";import{lintDefinition as k}from"../lint.js";import{ExternalResolver as C}from"../../../fs/utils/external-ref-resolver.js";const I="Non-conformant";async function R(r,e){const{data:{levelsConfig:s,configs:n,targets:t}}=await e.cache.load("","scorecard-config"),a={};let o=I,f=!1;const d=await e.fs.read(r),{data:c}=await e.cache.load(r,"yaml"),p=new C(e.fs);let l={};const u=await e.getConfig(b.posix.dirname(r)),x=c?.info?.["x-metadata"],g={title:c.info?.title,version:c.info?.version,...x,...u.metadata};t.length&&(l=M(t,g)?.configs||{});for(const i of s){const h=i.name!=="Baseline",m=await k({parsed:{...c,info:{...c?.info,"x-metadata":g}},content:d,relativePath:r},l[i.name]||n[i.name],e,p,h);a[i.name]=m,m.errors===0&&!f?o=i.name:f=!0}let w=s.findIndex(i=>i.name===o);return{levels:a,scorecardLevel:o,scorecardLevelIdx:w+1}}function M(r,e){if(r)for(const s of r){let n=!0;for(const[t,a]of Object.entries(s.where?.metadata||{}))if(String(a).match(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}Z)?\/(\d{4}-\d{2}-\d{2})?$/)){if(!e[t]){n=!1;break}const[o,f]=String(a).split("/"),d=new Date(e[t]);if(d<new Date(o)||f&&d>new Date(f)){n=!1;break}}else if(String(a).match(/^\/.*\//)){if(!e[t]){n=!1;break}try{if(!new RegExp(String(a).slice(1,-1)).test(e[t])){n=!1;break}}catch{v.panicOnBuild(`Invalid regex in scorecard target "${t}": ${a}`),n=!1;break}}else if(e[t]!==a){n=!1;break}if(n)return s}}export{M as getTarget,R as scorecardLoader};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NormalizedProblem } from '@redocly/openapi-core';
|
|
2
|
-
export declare function getUniqueProblemsCount<T extends Pick<NormalizedProblem, 'severity' | 'ruleId'>>(problems: T[]): {
|
|
2
|
+
export declare function getUniqueProblemsCount<T extends Pick<NormalizedProblem, 'severity' | 'ruleId'>>(problems: T[], ignoreSpecRule?: boolean): {
|
|
3
3
|
errors: number;
|
|
4
4
|
warnings: number;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function o
|
|
1
|
+
function t(e,o){const r={error:new Set,warn:new Set};for(const n of e)o&&n.ruleId==="spec"||r[n.severity]?.add(n.ruleId);return{errors:r.error.size,warnings:r.warn.size}}function s(e){return e==="/"?"index.json":e.substring(1,e.length-1)+".json"}export{s as getScorecardSlug,t as getUniqueProblemsCount};
|
|
@@ -9,12 +9,14 @@ export type PossibleRowData = (Data | RuleProblem | TeamStats | Problem | Catalo
|
|
|
9
9
|
export type GridProps = {
|
|
10
10
|
data: PossibleRowData[];
|
|
11
11
|
columns: ColumnDef<PossibleRowData>[];
|
|
12
|
+
gridTemplateColumns?: string;
|
|
12
13
|
};
|
|
13
|
-
export declare const Grid: ({ data, columns, sortBy, empty, subRowKey, slug, groupHeaderTitle, }: GridProps & {
|
|
14
|
+
export declare const Grid: ({ data, columns, gridTemplateColumns: gridTemplateColumnsOverride, sortBy, empty, subRowKey, slug, groupHeaderTitle, virtualized, }: GridProps & {
|
|
14
15
|
sortBy?: SortingState;
|
|
15
16
|
empty?: ReactElement | string;
|
|
16
17
|
subRowKey?: string;
|
|
17
18
|
slug?: string;
|
|
18
19
|
groupHeaderTitle?: string;
|
|
20
|
+
virtualized?: boolean;
|
|
19
21
|
}) => React.JSX.Element;
|
|
20
22
|
//# sourceMappingURL=Grid.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import t,{useMemo as
|
|
1
|
+
import t,{useMemo as g,useState as T,useEffect as $}from"react";import{useReactTable as k,getCoreRowModel as A,getSortedRowModel as I,getExpandedRowModel as H}from"@tanstack/react-table";import w from"styled-components";import{useWindowVirtualizer as L}from"@tanstack/react-virtual";import{SpinnerLoader as V}from"@redocly/theme/components/Loaders/SpinnerLoader";import{GridRow as c}from"./GridRow";import{GridHeader as j}from"./GridHeader";const U=({data:i,columns:n,gridTemplateColumns:l,sortBy:s,empty:f,subRowKey:m="subrows",slug:E,groupHeaderTitle:R,virtualized:h=!0})=>{const y=g(()=>s||[],[s]),v=k({columns:n,data:i,getCoreRowModel:A(),getSortedRowModel:I(),getExpandedRowModel:H(),getSubRows:e=>{const o=e?.[m];return Array.isArray(o)?o:[]},...s?{initialState:{sorting:y}}:{},autoResetExpanded:!1}),{getHeaderGroups:x,getRowModel:C}=v,M=x(),{rows:S}=C(),r=S.filter(e=>e.depth===0),[d,b]=T(!1);$(()=>{b(!0)},[]);const u=L({count:r.length,estimateSize:()=>54,overscan:h?15:9999,getItemKey(e){return`vi-row-${r[e].id}-${r.length}`}}),z=d?u.getVirtualItems():[],G=r.slice(0,50),a=g(()=>l||(i.some(o=>{const p=o[m];return Array.isArray(p)&&p.length>0})?`50px repeat(${n.length-1}, 1fr)`:`25% repeat(${n.length-1}, 1fr)`),[n.length,i,m,l]);return t.createElement("div",{role:"table"},t.createElement(j,{headerGroups:M,gridTemplateColumns:a,groupHeaderTitle:R}),t.createElement(D,{style:{height:d?u.getTotalSize():"auto"},role:"rowgroup"},r.length>0?d?z.map(e=>{const o=r[e.index];return t.createElement(c,{key:e.key,variant:"virtualized",row:o,slug:E,virtualRow:e,virtualizer:u,gridTemplateColumns:a})}):t.createElement(t.Fragment,null,G.map(e=>t.createElement(c,{key:`ssr-row-${e.id}`,variant:"ssr",row:e,gridTemplateColumns:a})),t.createElement(F,null,t.createElement(V,{color:"var(--link-color-primary)",size:"20px"}))):t.createElement(c,{variant:"noData",empty:f,gridTemplateColumns:a})))},D=w.div`
|
|
2
2
|
position: relative;
|
|
3
|
-
`,
|
|
3
|
+
`,F=w.div`
|
|
4
4
|
display: flex;
|
|
5
5
|
justify-content: center;
|
|
6
6
|
align-items: center;
|
|
7
7
|
margin: 10px;
|
|
8
|
-
`;export{
|
|
8
|
+
`;export{U as Grid};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"react";import l from"styled-components";import{flexRender as m}from"@tanstack/react-table";const y=({headerGroups:o,gridTemplateColumns:t,groupHeaderTitle:n})=>e.createElement(s,null,n&&e.createElement(g,{gridTemplateColumns:t,role:"row"},e.createElement(i,{gridColumn:"1",role:"cell"}),e.createElement(i,{gridColumn:"2 / -1",role:"cell"},e.createElement("span",null,n))),o.map((d,c)=>e.createElement(p,{key:`header-group-${c}`,gridTemplateColumns:t,role:"row"},d.headers.map((r,a)=>e.createElement(u,{key:r.id,gridColumn:a+1,onClick:r.column.getToggleSortingHandler(),role:"cell"},m(r.column.columnDef.header,r.getContext()),r.column.getCanSort()?e.createElement(x,null,r.column.getIsSorted()?r.column.getIsSorted()==="desc"?"\u25BE":"\u25B4":"\u21D5"):null))))),s=l.div`
|
|
2
2
|
border: 1px solid var(--border-color-primary);
|
|
3
3
|
min-width: 775px;
|
|
4
|
+
position: sticky;
|
|
5
|
+
top: var(--navbar-height);
|
|
6
|
+
z-index: 1;
|
|
7
|
+
background-color: var(--color-white);
|
|
4
8
|
`,g=l.div`
|
|
5
9
|
display: grid;
|
|
6
|
-
grid-template-columns: ${
|
|
10
|
+
grid-template-columns: ${o=>o.gridTemplateColumns};
|
|
7
11
|
width: 100%;
|
|
8
12
|
min-width: 775px;
|
|
9
|
-
`,
|
|
10
|
-
padding: 5px
|
|
13
|
+
`,i=l.div`
|
|
14
|
+
padding: 5px;
|
|
11
15
|
background-color: var(--bg-color-raised);
|
|
12
16
|
font-weight: bold;
|
|
13
17
|
color: var(--text-color-secondary);
|
|
14
|
-
grid-column: ${
|
|
18
|
+
grid-column: ${o=>o.gridColumn};
|
|
15
19
|
display: flex;
|
|
16
20
|
justify-content: center;
|
|
17
21
|
align-items: center;
|
|
@@ -23,20 +27,22 @@ import o from"react";import l from"styled-components";import{flexRender as a}fro
|
|
|
23
27
|
}
|
|
24
28
|
`,p=l.div`
|
|
25
29
|
display: grid;
|
|
26
|
-
grid-template-columns: ${
|
|
30
|
+
grid-template-columns: ${o=>o.gridTemplateColumns};
|
|
27
31
|
width: 100%;
|
|
28
32
|
`,u=l.div`
|
|
29
|
-
padding: 5px
|
|
33
|
+
padding: 5px;
|
|
30
34
|
background-color: var(--bg-color-raised);
|
|
31
35
|
font-weight: bold;
|
|
32
36
|
color: var(--text-color-secondary);
|
|
33
37
|
cursor: pointer;
|
|
34
|
-
grid-column: ${
|
|
38
|
+
grid-column: ${o=>o.gridColumn};
|
|
35
39
|
box-sizing: border-box;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
text-overflow: ellipsis;
|
|
36
42
|
|
|
37
43
|
&:first-child {
|
|
38
44
|
justify-content: flex-start;
|
|
39
45
|
}
|
|
40
46
|
`,x=l.span`
|
|
41
47
|
font-family: monospace;
|
|
42
|
-
`;export{
|
|
48
|
+
`;export{y as GridHeader};
|
|
@@ -22,7 +22,7 @@ import i from"react";import{flexRender as m}from"@tanstack/react-table";import l
|
|
|
22
22
|
grid-template-columns: ${e=>e.gridTemplateColumns};
|
|
23
23
|
align-items: center;
|
|
24
24
|
`,p=l.div`
|
|
25
|
-
padding: 5px
|
|
25
|
+
padding: 5px;
|
|
26
26
|
text-align: left;
|
|
27
27
|
grid-column: ${e=>e.gridColumn};
|
|
28
28
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import*as r from"react";import
|
|
1
|
+
import*as r from"react";import t from"styled-components";import{CloseFilledIcon as s}from"@redocly/theme/icons/CloseFilledIcon/CloseFilledIcon";import{WarningAltFilled as m}from"@redocly/theme/icons/WarningAltFilled/WarningAltFilled";import{CheckboxFilledIcon as d}from"@redocly/theme/icons/CheckboxFilledIcon/CheckboxFilledIcon";const o={Pass:{background:"--color-green-1",icon:"--color-green-6"},Warn:{background:"--color-carrot-1",icon:"--color-carrot-6"},Error:{background:"--color-raspberry-1",icon:"--color-raspberry-6"}},v=({uniqueErrors:e,uniqueWarnings:p,customDisplay:c,id:a})=>{const n=[];return e===0&&n.push(r.createElement(l,{key:`${a}-pass`,color:`var(${o.Pass.background})`},r.createElement(d,{size:"13px",color:`var(${o.Pass.icon})`}),c&&r.createElement(i,{color:`var(${o.Error.icon})`},c))),e>0&&n.push(r.createElement(l,{key:`${a}-error`,color:`var(${o.Error.background})`},r.createElement(s,{size:"12px",color:`var(${o.Error.icon})`}),r.createElement(i,{color:`var(${o.Error.icon})`},c||e))),p>0&&n.push(r.createElement(l,{key:`${a}-warning`,color:`var(${o.Warn.background})`},r.createElement(m,{size:"12px",color:`var(${o.Warn.icon})`}),r.createElement(i,{color:`var(${o.Warn.icon})`},c||p))),r.createElement(g,null,n)},g=t.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
gap: 4px;
|
|
5
|
-
`,t
|
|
5
|
+
`,l=t.div`
|
|
6
6
|
background-color: ${({color:e})=>e};
|
|
7
7
|
display: flex;
|
|
8
8
|
align-items: center;
|
|
@@ -10,8 +10,8 @@ import*as r from"react";import a from"styled-components";import{CloseFilledIcon
|
|
|
10
10
|
padding: 4px;
|
|
11
11
|
border-radius: 4px;
|
|
12
12
|
height: 20px;
|
|
13
|
-
`,i=
|
|
13
|
+
`,i=t.span`
|
|
14
14
|
color: ${({color:e})=>e};
|
|
15
15
|
font-size: 12px;
|
|
16
16
|
margin-left: 4px;
|
|
17
|
-
`;export{
|
|
17
|
+
`;export{v as LevelIndicator,o as SEVERITY_TO_COLOR_ICON};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as t from"react";import{useState as
|
|
1
|
+
import*as t from"react";import{useState as s}from"react";import{getScorecardColorVariable as i}from"@redocly/theme/core/utils";import{Button as m}from"@redocly/theme/components/Button/Button";import{SubtractIcon as u}from"@redocly/theme/icons/SubtractIcon/SubtractIcon";import{AddIcon as E}from"@redocly/theme/icons/AddIcon/AddIcon";import{Gauge as p}from"./Gauge";import{Code as f,Dot as l,FilePreview as d,InstanceControlsWrap as I,InstanceMessage as v,InstanceReference as x,InstanceWrap as C,ContentWithDotWrap as c,EmojiWrap as g}from"./index.styles";import{SEVERITY_TO_COLOR as S,severityColor as b,severityIcon as R}from"./utils";function j({level:e,colorVariable:r}){return t.createElement(c,null,t.createElement(l,{colorVariable:r}),t.createElement("span",null,e))}function w({summary:e}){const r=Object.keys(e.levels).length;return t.createElement(p,{chunks:Object.entries(e.levels).map(([a,n],o)=>({share:n/e.total*100,colorVariable:i(o,r),title:`${n} ${a}`}))})}function D({severity:e}){return t.createElement(l,{colorVariable:S[e]})}function P({errors:e,warnings:r}){return t.createElement(c,null,t.createElement(l,{colorVariable:`--scorecard-color-${e>0?"error":r>0?"warning":"success"}`}),e>0?"Problem":r>0?"Warning":"Normal")}function T({errors:e,warnings:r}){return t.createElement(l,{colorVariable:`--scorecard-color-${e>0?"error":r>0?"warning":"success"}`})}function V({problem:e}){const[r,a]=s(!1),n=!!e.codeframe;return t.createElement(I,{onClick:()=>a(o=>!o),className:r?"expanded":""},n?t.createElement(m,{variant:"text",size:"medium",icon:r?t.createElement(u,null):t.createElement(E,null)}):null,t.createElement(C,{borderColor:b(e.severity)},t.createElement("div",null,t.createElement(v,null,t.createElement(g,null,R(e.severity))," ",t.createElement("span",{dangerouslySetInnerHTML:{__html:e.message}}))),r&&n?t.createElement(d,{onClick:o=>o.stopPropagation()},t.createElement(x,null,t.createElement("strong",null,e.location.source.absoluteRef),e.location.pointer),t.createElement(f,null,e.codeframe)):null))}const A=e=>t.createElement(V,{problem:e});export{j as ApiLevel,V as Instance,D as InstanceStatus,T as LevelStatus,P as RuleStatus,w as StatusDistribution,A as renderRowSubComponent};
|
|
@@ -11,6 +11,7 @@ export declare const CardsWrapper: import("styled-components").StyledComponent<"
|
|
|
11
11
|
export declare const Dot: import("styled-components").StyledComponent<"span", any, {
|
|
12
12
|
colorVariable: string;
|
|
13
13
|
}, never>;
|
|
14
|
+
export declare const StyledTable: import("styled-components").StyledComponent<"table", any, {}, never>;
|
|
14
15
|
export declare const CatalogDescription: import("styled-components").StyledComponent<"p", any, {}, never>;
|
|
15
16
|
export declare const CatalogPageWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
16
17
|
export declare const StyledInput: import("styled-components").StyledComponent<"input", any, {}, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import r from"styled-components";import{Popup as
|
|
1
|
+
import r from"styled-components";import{Popup as e}from"reactjs-popup";import{Button as t}from"@redocly/theme/components/Button/Button";const c=r.div.attrs({"data-component-name":"Scorecard/Card"})`
|
|
2
2
|
color: var(--text-color-primary);
|
|
3
3
|
background-color: var(--bg-color-raised);
|
|
4
4
|
border-radius: 4px;
|
|
@@ -24,7 +24,7 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
24
24
|
display: flex;
|
|
25
25
|
flex-direction: column;
|
|
26
26
|
gap: 5px;
|
|
27
|
-
`,
|
|
27
|
+
`,b=r.div`
|
|
28
28
|
display: flex;
|
|
29
29
|
flex-direction: row;
|
|
30
30
|
gap: 10px;
|
|
@@ -42,7 +42,7 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
42
42
|
margin-right: 0;
|
|
43
43
|
text-align: right;
|
|
44
44
|
width: 65px;
|
|
45
|
-
`,
|
|
45
|
+
`,f=r.div`
|
|
46
46
|
display: flex;
|
|
47
47
|
flex-wrap: wrap;
|
|
48
48
|
gap: 20px;
|
|
@@ -55,6 +55,80 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
55
55
|
border: 1px solid var(--border-color-primary);
|
|
56
56
|
background-color: var(${o=>o.colorVariable});
|
|
57
57
|
margin-top: 1px;
|
|
58
|
+
`,h=r.table`
|
|
59
|
+
width: 100%;
|
|
60
|
+
border-spacing: 0;
|
|
61
|
+
border-radius: var(--border-radius);
|
|
62
|
+
overflow: auto;
|
|
63
|
+
|
|
64
|
+
table-layout: fixed;
|
|
65
|
+
|
|
66
|
+
thead {
|
|
67
|
+
display: block;
|
|
68
|
+
border-top: 1px solid var(--border-color-primary);
|
|
69
|
+
border-bottom: 1px solid var(--border-color-primary);
|
|
70
|
+
position: sticky;
|
|
71
|
+
top: 0;
|
|
72
|
+
z-index: 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
thead tr {
|
|
76
|
+
display: flex;
|
|
77
|
+
width: 100%;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
thead th {
|
|
81
|
+
padding: 5px;
|
|
82
|
+
background-color: var(--bg-color-raised);
|
|
83
|
+
|
|
84
|
+
&:first-child {
|
|
85
|
+
flex-basis: 25%;
|
|
86
|
+
flex-grow: 0;
|
|
87
|
+
}
|
|
88
|
+
&:last-child {
|
|
89
|
+
flex-grow: 1;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
tr.toggle {
|
|
94
|
+
cursor: pointer;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
th,
|
|
98
|
+
td {
|
|
99
|
+
padding: 5px;
|
|
100
|
+
text-align: left;
|
|
101
|
+
flex: 1;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
th:has(${t}),
|
|
105
|
+
td:has(${t}) {
|
|
106
|
+
padding: 2px 4px;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
th {
|
|
110
|
+
font-weight: bold;
|
|
111
|
+
color: var(--text-color-secondary);
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
white-space: nowrap;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
tr.nested-hide {
|
|
117
|
+
display: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
th.controls-col {
|
|
121
|
+
width: 20px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
tbody tr {
|
|
125
|
+
border-bottom: 1px solid var(--border-color-primary);
|
|
126
|
+
align-items: center;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
tbody tr td:first-child {
|
|
130
|
+
flex-grow: 0;
|
|
131
|
+
}
|
|
58
132
|
`,v=r.p`
|
|
59
133
|
margin: 16px 0 32px 0;
|
|
60
134
|
font-size: 16px;
|
|
@@ -119,31 +193,30 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
119
193
|
&:-webkit-autofill {
|
|
120
194
|
background-color: var(--filter-input-bg-color);
|
|
121
195
|
}
|
|
122
|
-
`,
|
|
196
|
+
`,y=r.div`
|
|
123
197
|
display: flex;
|
|
124
198
|
flex-direction: row;
|
|
125
199
|
margin-bottom: 10px;
|
|
126
200
|
border-radius: 4px;
|
|
127
201
|
justify-content: flex-start;
|
|
128
|
-
`,
|
|
202
|
+
`,w=r.div`
|
|
129
203
|
padding: 5px 10px;
|
|
130
204
|
cursor: pointer;
|
|
131
205
|
font-weight: bold;
|
|
132
206
|
background-color: ${({isActive:o})=>o?"var(--bg-color-raised)":"transparent"};
|
|
133
207
|
margin-left: 2px;
|
|
134
208
|
border-bottom: ${({isActive:o})=>o?"1px solid var(--text-color-secondary);":"1px solid transparent"};
|
|
135
|
-
`,
|
|
209
|
+
`,C=r.div`
|
|
136
210
|
max-width: 100%;
|
|
137
|
-
overflow: auto;
|
|
138
211
|
visibility: ${({isActive:o})=>o?"visible":"hidden"};
|
|
139
212
|
height: ${({isActive:o})=>o?"auto":"0"};
|
|
140
213
|
opacity: ${({isActive:o})=>o?"1":"0"};
|
|
141
214
|
position: ${({isActive:o})=>o?"static":"absolute"};
|
|
142
215
|
pointer-events: ${({isActive:o})=>o?"auto":"none"};
|
|
143
|
-
`,
|
|
216
|
+
`,k=r(n)`
|
|
144
217
|
padding: 20px 40px;
|
|
145
218
|
display: block;
|
|
146
|
-
`,
|
|
219
|
+
`,S=r(e)`
|
|
147
220
|
&-content {
|
|
148
221
|
border-radius: var(--border-radius);
|
|
149
222
|
background-color: var(--button-bg-color-secondary-hover);
|
|
@@ -156,18 +229,18 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
156
229
|
fill: var(--button-bg-color-secondary);
|
|
157
230
|
}
|
|
158
231
|
}
|
|
159
|
-
|
|
232
|
+
`,$=r.span`
|
|
160
233
|
font-family: monospace;
|
|
161
234
|
`,j=r.div`
|
|
162
235
|
width: 100%;
|
|
163
236
|
padding: 0 10px;
|
|
164
237
|
border-left: 2px solid ${o=>o.borderColor||"var(--bg-color-raised)"};
|
|
165
238
|
margin: 5px 0;
|
|
166
|
-
|
|
239
|
+
`,z=r.div``,W=r.div`
|
|
167
240
|
padding: 5px 10px;
|
|
168
241
|
background: var(--bg-color-raised);
|
|
169
242
|
border-bottom: 1px solid var(--border-color-primary);
|
|
170
|
-
`,
|
|
243
|
+
`,T=r.pre`
|
|
171
244
|
font-size: 12px;
|
|
172
245
|
margin: 0;
|
|
173
246
|
padding: 10px;
|
|
@@ -177,7 +250,7 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
177
250
|
margin-top: 10px;
|
|
178
251
|
margin-left: 22px;
|
|
179
252
|
cursor: text;
|
|
180
|
-
`,
|
|
253
|
+
`,P=r.div`
|
|
181
254
|
display: flex;
|
|
182
255
|
flex-direction: row;
|
|
183
256
|
cursor: pointer;
|
|
@@ -187,29 +260,29 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
187
260
|
align-items: flex-start;
|
|
188
261
|
}
|
|
189
262
|
|
|
190
|
-
${
|
|
263
|
+
${t} {
|
|
191
264
|
margin-right: 10px;
|
|
192
265
|
align-items: flex-start;
|
|
193
266
|
}
|
|
194
|
-
`,
|
|
267
|
+
`,E=r.th`
|
|
195
268
|
border-bottom: 0 !important;
|
|
196
269
|
span {
|
|
197
270
|
text-align: center;
|
|
198
271
|
display: block;
|
|
199
272
|
}
|
|
200
|
-
`,
|
|
273
|
+
`,B=r(i)`
|
|
201
274
|
display: flex;
|
|
202
275
|
flex-direction: row;
|
|
203
276
|
justify-content: space-between;
|
|
204
277
|
gap: 10px;
|
|
205
|
-
`,
|
|
278
|
+
`,M=r.div`
|
|
206
279
|
display: flex;
|
|
207
280
|
flex-direction: row;
|
|
208
281
|
align-items: center;
|
|
209
282
|
gap: 5px;
|
|
210
283
|
white-space: nowrap;
|
|
211
284
|
justify-content: flex-end;
|
|
212
|
-
`,
|
|
285
|
+
`,D=r.span`
|
|
213
286
|
font-family:
|
|
214
287
|
'Twemoji Mozilla',
|
|
215
288
|
Apple Color Emoji,
|
|
@@ -217,4 +290,4 @@ import r from"styled-components";import{Popup as t}from"reactjs-popup";import{Bu
|
|
|
217
290
|
'Noto Color Emoji',
|
|
218
291
|
'EmojiOne Color';
|
|
219
292
|
vertical-align: middle;
|
|
220
|
-
`;export{
|
|
293
|
+
`;export{k as AppPageWrapper,b as CardRow,a as CardValue,f as CardsWrapper,v as CatalogDescription,n as CatalogPageWrapper,T as Code,M as ContentWithDotWrap,m as Dot,D as EmojiWrap,I as FilePreview,g as GaugeNumber,E as GroupTh,P as InstanceControlsWrap,z as InstanceMessage,W as InstanceReference,j as InstanceWrap,B as LevelComplianceCardTitle,w as ModeSwitcherTab,y as ModeSwitcherTabs,x as ProblemsByStatusCardBody,s as ScoreCardStatusCardBody,c as ScorecardCard,i as ScorecardCardTitle,$ as SortIcon,u as StyledInput,S as StyledPopup,h as StyledTable,C as TableWrap};
|
|
@@ -15,7 +15,11 @@ export type Problem = {
|
|
|
15
15
|
};
|
|
16
16
|
export type Levels = keyof ScorecardData['levels'];
|
|
17
17
|
export type RuleProblem = {
|
|
18
|
-
apis: CatalogItem
|
|
18
|
+
apis: Record<string, CatalogItem & {
|
|
19
|
+
count: number;
|
|
20
|
+
problems: ProblemSummary[];
|
|
21
|
+
severity: 'error' | 'warning';
|
|
22
|
+
}>;
|
|
19
23
|
ruleId: string;
|
|
20
24
|
count: number;
|
|
21
25
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as p,useState as
|
|
1
|
+
import{useMemo as p,useState as U,useCallback as G}from"react";import{useProcessScorecard as K}from"@redocly/theme/ext/process-scorecard";import{isDefined as Q}from"../../../../utils/guards/is-defined.js";import{useCatalogClassic as X}from"../../../../client/app/hooks";import{usePageSharedData as M}from"../../../../client/providers/page-data/hooks";import{NON_CONFORMANT as v,OTHER_TEAMS_LABEL as Y}from"./utils";function j(b,d){return b[d]||Object.entries(b).find(([y])=>d.startsWith(y))?.[1]}function oe(b){const{catalogConfig:d,scorecardConfig:y,scorecardInfo:I}=b.pageProps,C=M("catalog"),h=C.some(e=>e.metadata?.publishedAt||e.metadata?.createdAt),{processScorecard:E,processInfo:k}=K(),u=p(()=>k(I),[I,k]),S=y.teamMetadataProperty?.label||"Team",f=y.teamMetadataProperty?.property||"team",g=y.teamMetadataProperty?.default,A=C.some(e=>e.metadata?.[f]||e.metadata?.owner),B=p(()=>({...d,filters:[{title:"Scorecard level",property:"scorecardLevel",options:[v,...u.levelNames],type:"checkboxes"},h?{title:"Published date",property:"publishedAt",type:"date-range"}:void 0,A&&!d.filters?.find(e=>e.property===f)?{title:S,property:f,type:"select",...g&&{missingCategoryName:g}}:void 0,...d.filters||[]].filter(Q)}),[d,A,h,S,g,f,u.levelNames]),T=M("scorecard"),D=C.filter(e=>e.metadata?.type==="openapi"&&!!j(T,e.link||"")),{filterTerm:V,setFilterTerm:z,groups:P,filters:R}=X({...B,separateVersions:!0},D,!0),m=p(()=>P.flatMap(e=>e.items).map(e=>({api:{...e,publishedAt:e.publishedAt||e.createdAt,team:e[f]||e.owner},scorecard:E(j(T,e.link),e)})).filter(e=>e.scorecard),[JSON.stringify(P),T,f]),w=u.levelNames,W=p(()=>{const e={total:m.length,levels:{}};return[v,...w].forEach(s=>{e.levels[s]=m.filter(r=>r.scorecard?.scorecardLevel===s).length}),e},[m,w]),N=p(()=>w.map(e=>{const s={error:new Set,warn:new Set},r={errors:0,warnings:0};for(const t of m){if(!t.scorecard)continue;const o=t.scorecard.levels[e];if(o){r.errors+=o.errors||0,r.warnings+=o.warnings||0;for(const a of o.problems)s[a.severity]?.add(a.ruleId)}}return{name:e,count:r,uniqueCount:{errors:s.error.size,warnings:s.warn.size}}}),[m,w]),x=p(()=>N.reduce((e,s)=>e+s.count.errors+s.count.warnings,0),[N]),F=p(()=>{const e={};for(const s of u.rules)e[s]={count:0,apis:{},ruleId:s,status:0,apisCount:0,warningApisCount:0,errorApisCount:0,teams:{},levels:u.levelNames.reduce((r,t)=>(r[t]={warnings:0,errors:0},r),{})};for(const s of m){if(!s.scorecard)continue;const{scorecard:r,api:t}=s,o=new Set;for(const a of Object.keys(r?.levels||{})){const l=r.levels[a];for(const c of l?.problems||[]){const n=c.ruleId;if(o.has(n))continue;e[n]=e[n]||{count:0,warningApisCount:0,errorApisCount:0,apis:{},ruleId:n,status:0,apisCount:0,levels:{},teams:{}},e[n].count++,typeof t.team=="string"&&(e[n].teams[t.team]=(e[n].teams[t.team]||0)+1),e[n].levels[a]=e[n].levels[a]||{warnings:0,errors:0},c.severity==="error"?(e[n].levels[a].errors++,e[n].errorApisCount++):(e[n].levels[a].warnings++,e[n].warningApisCount++);const O=e[n].apis[t.link];O?(O.count++,O.problems.push(c)):(e[n].apis[t.link]={...t,count:1,severity:c.severity,problems:[c]},c.severity==="error"?e[n].errorApisCount++:e[n].warningApisCount++,e[n].apisCount++,e[n].status=1)}for(const c of l?.problems||[])o.add(c.ruleId)}}return Object.values(e).sort((s,r)=>{let t=s.ruleId,o=r.ruleId;return t<o?-1:t>o?1:0})},[m,u.levelNames,u.rules]),[i,L]=U({property:"below",direction:"desc"}),_=G(e=>{i.property===e?L(s=>({...s,direction:s.direction==="asc"?"desc":"asc"})):L({property:e,direction:"asc"})},[i]),{sortedStatsByTeam:H,statsByTeam:q}=p(()=>{const e={},s={};for(const r of m){if(!r.scorecard)continue;const{api:t}=r,o=t.team?String(t.team):g||Y;if(!o)continue;e[o]=e[o]||{team:o,below:0,minimum:0,highest:0,levels:{}};const a=s[o]=s[o]||{};for(const l of[v,...u.levelNames]){e[o].levels[l]=e[o].levels[l]||{errors:0,warnings:0,uniqueErrors:0,uniqueWarnings:0,apis:0},a[l]=a[l]||{error:new Set,warn:new Set},e[o].levels[l].errors+=r.scorecard?.levels[l]?.errors||0,e[o].levels[l].warnings+=r.scorecard?.levels[l]?.warnings||0,e[o].levels[l].apis+=r.scorecard.scorecardLevel===l?1:0;for(const c of r.scorecard?.levels[l]?.problems||[])a[l][c.severity]?.add(c.ruleId)}}for(const r of Object.keys(e))for(const t of Object.keys(e[r].levels))e[r].levels[t].uniqueErrors=s[r][t].error.size,e[r].levels[t].uniqueWarnings=s[r][t].warn.size;return{sortedStatsByTeam:Object.values(e).sort((r,t)=>{let o=r[i.property],a=t[i.property];return["team","below","minimum","highest"].includes(i.property)||(o=r.levels[i.property].errors*1e3+r.levels[i.property].warnings,a=t.levels[i.property].errors*1e3+t.levels[i.property].warnings),o<a?i.direction==="asc"?-1:1:o>a?i.direction==="asc"?1:-1:0}),statsByTeam:e}},[m,u.levelNames,i.direction,i.property,g]),J=p(()=>Object.values(q).sort((e,s)=>s.levels[v].apis-e.levels[v].apis).filter(e=>e.levels[v].apis>0),[q]);return{apis:m,summary:W,problemsByStatus:N,totalProblems:x,problemsByRule:F,sortedStatsByTeam:H,handleSortRulesTeams:_,nonConformantByTeam:J,filterTerm:V,setFilterTerm:z,groups:P,filters:R,scorecardInfo:u,catalogConfig:B,hasTeam:A,hasPublishedAt:h,teamLabel:S,teamProperty:f}}export{oe as useData};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{useCallback as H,useMemo as b,useState as G,useEffect as _}from"react";import{useLocation as T}from"react-router-dom";import{Flex as U}from"@redocly/portal-legacy-ui";import{Button as x}from"@redocly/theme/components/Button/Button";import{AddIcon as I}from"@redocly/theme/icons/AddIcon/AddIcon";import{SubtractIcon as D}from"@redocly/theme/icons/SubtractIcon/SubtractIcon";import{ArrowLeftIcon as K}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{getScorecardColorVariable as z,withoutPathPrefix as O}from"@redocly/theme/core/utils";import{Link as P}from"../../../../client/app/Link";import N from"../../../../client/app/CircularProgress";import{isDefined as R}from"../../../../utils/guards/is-defined.js";import{removeLeadingSlash as Z}from"../../../../utils/url/remove-leading-slash.js";import{StatusByLevelWidget as J}from"./StatusByLevelWidget";import{OTHER_TEAMS_LABEL as Q,NON_CONFORMANT as X}from"./utils";import{LevelIndicator as Y}from"./LevelIndicator";import{AppPageWrapper as V,CardValue as v,CardsWrapper as j,CatalogDescription as ee,ModeSwitcherTab as te,ModeSwitcherTabs as re,CardRow as B,ProblemsByStatusCardBody as W,ScoreCardStatusCardBody as F,TableWrap as ne,LevelComplianceCardTitle as le,ContentWithDotWrap as C,ScorecardCard as S,ScorecardCardTitle as w}from"./index.styles";import{ApiLevel as M,InstanceStatus as k,LevelStatus as $,RuleStatus as q}from"./components";import{Grid as A}from"./Grid/Grid";import{useDetailedScorecard as ae}from"./useDetailedScorecard";import{Gauge as se,GaugeValue as ce}from"./Gauge";function Te(p){const u=T(),{data:d,levelNames:i,hasPublishedAt:n,hasTeam:s,teamLabel:l}=p,f=H((a,c,E)=>{const g=a.getValue(E)?new Date(a.getValue(E)).getTime():0,t=c.getValue(E)?new Date(c.getValue(E)).getTime():0;return g>t?1:-1},[]),m=b(()=>[{id:"title",header:"API",accessorKey:"api.title",size:200,cell:({getValue:a,row:c})=>e.createElement(P,{to:O(u.pathname)+"/apis/"+encodeURIComponent(Z(c.original.api.link))},a())},n?{header:"Published at",accessorKey:"api.publishedAt",sortingFn:f,cell:({getValue:a})=>{const c=a();return c?new Date(c).toLocaleDateString():"-"}}:void 0,s?{header:l,accessorKey:"api.team"}:void 0,{id:"level",header:"Level",accessorKey:"scorecard.scorecardLevel",cell:({getValue:a,row:c})=>e.createElement(M,{level:a(),colorVariable:z(c.original?.scorecard.scorecardLevelIdx,i.length+1)})},...i.map(a=>({id:a,header:`${a}`,accessorKey:"scorecard.levels",cell:({getValue:c,row:E})=>{const g=c(),t=E.original.api.link;return g?.[a]?e.createElement(Y,{key:t,uniqueErrors:g[a].uniqueErrors,uniqueWarnings:g[a].uniqueWarnings,id:t}):null}}))].filter(R),[f,i,u.pathname,n,s,l]);return e.createElement(A,{columns:m,data:d,sortBy:[{id:"title",desc:!1}]})}function Ie(p){const u=T(),{data:d}=p,i=b(()=>[{header:"Rules",accessorKey:"ruleId",cell:({getValue:n})=>e.createElement(P,{to:O(u.pathname)+"/rules/"+encodeURIComponent(n())},n())},{id:"status",header:"Status",accessorKey:"status",size:200,cell:({row:n})=>e.createElement(q,{errors:n.original.errorApisCount,warnings:n.original.warningApisCount})},{header:"Problem APIs",size:200,accessorKey:"apis",cell:({getValue:n})=>n().length,sortDescFirst:!0},{header:"Problem count",size:200,accessorKey:"count",sortDescFirst:!0}],[u.pathname]);return e.createElement(A,{columns:i,data:d,sortBy:[{id:"status",desc:!0}]})}function De(p){const{data:u,levelNames:d,filters:i,setActiveTab:n,teamLabel:s,teamProperty:l}=p,f=b(()=>[{id:"team",header:`API ${s}`,accessorKey:"team",size:200,cell:({getValue:m})=>e.createElement("a",{href:"#",onClick:a=>{a.preventDefault(),n("apis"),i.find(c=>c.property===l)?.selectOption(m())}},m())},...[X,...d].map(m=>({id:m,header:`${m}`,accessorFn:a=>a.levels[m]?.apis}))],[i,d,n,s,l]);return e.createElement(A,{columns:f,data:u,sortBy:[{id:"team",desc:!1}],groupHeaderTitle:"APIs by level"})}function oe(p){const{data:u,title:d}=p,i=b(()=>[{id:"expand",maxSize:40,size:40,header:()=>null,enableSorting:!1,cell:({row:n})=>n.getCanExpand()?e.createElement(x,{onClick:n.getToggleExpandedHandler(),variant:"text",size:"medium",icon:n.getIsExpanded()?e.createElement(D,null):e.createElement(I,null)}):null},{header:"Rules",accessorKey:"ruleId",cell:({getValue:n,row:s})=>s.getCanExpand()?e.createElement("span",{onClick:s.getToggleExpandedHandler()},n()):null},{header:"Status",accessorKey:"status",size:200,cell:({getValue:n})=>{const s=n();return e.createElement(q,{errors:s?.errorsCount,warnings:s?.warningsCount})},enableSorting:!1},{header:"Problem count",accessorKey:"problemsCount",size:200,sortDescFirst:!0}],[]);return e.createElement(A,{columns:i,data:u,sortBy:[{id:"ruleId",desc:!1}],empty:e.createElement(e.Fragment,null,"\u2705 This API is compliant with ",e.createElement("strong",null,d)," level rules"),subRowKey:"problems"})}function Ke(p){const{catalogSlug:u,slug:d,data:i,hasTeam:n,hasPublishedAt:s,teamLabel:l}=p,{apis:f,apisCount:m,warningApisCount:a,errorApisCount:c,levels:E,count:g}=i,t=f.length===0,h=t?void 0:{id:"expand",maxSize:40,size:40,header:()=>null,enableSorting:!1,cell:({row:r})=>r.getCanExpand()?e.createElement(x,{onClick:r.getToggleExpandedHandler(),variant:"text",size:"medium",icon:r.getIsExpanded()?e.createElement(D,null):e.createElement(I,null)}):null},L=b(()=>[h,{header:"API",accessorKey:"title"},s?{header:"Published at",accessorKey:"publishedAt",cell:({getValue:r})=>{const o=r();return o?new Date(o).toLocaleDateString():"-"}}:void 0,n?{header:l,accessorKey:"team",cell:({getValue:r})=>r()||Q}:void 0,{header:"Problem count",size:200,accessorKey:"count",cell:({getValue:r})=>r()||0,sortDescFirst:!0}].filter(R),[n,s,l,t]),y=b(()=>Object.entries(i.teams).sort((r,o)=>o[1]-r[1]),[i.teams]);return e.createElement(V,null,e.createElement(x,{icon:e.createElement(K,null),iconPosition:"left",variant:"ghost",size:"large",to:`${u}scorecard`},"Back to dashboard"),e.createElement("h1",null,"Rule ",d),e.createElement(j,null,e.createElement(S,null,e.createElement(w,null,"Rule status"),e.createElement(F,null,e.createElement("div",null,e.createElement(v,null,m),e.createElement("br",null),"APIs"),e.createElement("div",null,e.createElement(C,null,e.createElement(v,{style:{textAlign:"right"}},m-a-c),e.createElement(k,{severity:"Pass"})),e.createElement(C,null,e.createElement(v,{style:{textAlign:"right"}},a),e.createElement(k,{severity:"Warn"})),e.createElement(C,null,e.createElement(v,{style:{textAlign:"right"}},c),e.createElement(k,{severity:"Error"}))))),e.createElement(S,null,e.createElement(w,null,"Problems by level"),e.createElement(W,null,Object.entries(E).map(([r,o])=>e.createElement(B,{key:r},e.createElement("span",null,r),e.createElement(se,{chunks:[{share:o.errors/g*100,colorVariable:"--scorecard-color-error"},{share:o.warnings/g*100,colorVariable:"--scorecard-color-warning"}]}),e.createElement(ce,null,o.errors+o.warnings))))),e.createElement(S,null,e.createElement(w,null,`Problems by ${l}`),e.createElement(W,null,y.slice(0,4).map(([r,o])=>e.createElement(B,{key:r},e.createElement("span",{style:{flex:1,textAlign:"left"}},r),e.createElement(v,null,o)))))),e.createElement(A,{columns:L,data:f,sortBy:[{id:"title",desc:!1}],subRowKey:"problems",slug:d}))}function ze(p){const{slug:u,api:d,teamLabel:i,catalogSlug:n}=p,{api:s}=d||{},{scorecard:l,isLoading:f}=ae(`/${u}`),m=l?.levels||{},[a,c]=G(Object.keys(m)[0]),E=b(()=>s?.publishedAt instanceof Date?s?.publishedAt.toLocaleDateString():s?.publishedAt,[s]);_(()=>{if(l){const t=l.levels||{};c(Object.keys(t)[0])}},[l]);const g=b(()=>{if(!l?.levels)return{};const t={};for(const h of Object.keys(l.levels)){const L=l.levels[h].problems.reduce((y,r)=>(y[r.ruleId]||(y[r.ruleId]=[]),y[r.ruleId].push(r),y),{});t[h]=Object.entries(L).map(([y,r])=>({ruleId:y,problems:[...r.filter(o=>o.severity==="error"),...r.filter(o=>o.severity==="warn")],problemsCount:r.length,status:{errorsCount:r.filter(o=>o.severity==="error").length,warningsCount:r.filter(o=>o.severity==="warn").length}}))}return t},[l?.levels]);return f?e.createElement(U,{justifyContent:"center",mt:"2em"},e.createElement(N,null)):l?e.createElement(V,null,e.createElement(x,{icon:e.createElement(K,null),iconPosition:"left",variant:"ghost",size:"large",to:`${n}scorecard`},"Back to dashboard"),e.createElement("h1",null,s?.title||u),e.createElement(ee,null,E&&e.createElement(e.Fragment,null,"Published at: ",new Date().toLocaleString(void 0,{timeZoneName:"short"}),e.createElement("br",null)),e.createElement(P,{to:u,external:!0},"Documentation")),e.createElement(j,null,e.createElement(S,null,e.createElement(le,null,e.createElement("span",null,"Scorecard level"),e.createElement(M,{level:l.scorecardLevel,colorVariable:z(l.scorecardLevelIdx,Object.keys(m).length)})),e.createElement(F,null,e.createElement("div",null,"Compliance by level"),e.createElement("div",null,Object.entries(l.levels).map(([t,h])=>e.createElement(C,{key:t},e.createElement(v,{style:{width:"100px",textAlign:"right"}},t),e.createElement($,{errors:h.errors,warnings:h.warnings})))))),e.createElement(J,{title:"Rules compliance",levels:Object.entries(l.levels).map(([t,h])=>({errors:h.uniqueErrors,warnings:h.uniqueWarnings,total:p.rulesPerLevel[t].length,name:t}))}),e.createElement(S,null,e.createElement(w,null,i),e.createElement(v,{style:{fontWeight:"normal"}},s?.team))),e.createElement(re,{style:{justifyContent:"flex-start"},"data-component-name":"Scorecard/ModeSwitcherTabs"},Object.keys(l.levels).map(t=>e.createElement(te,{"data-component-name":"Scorecard/ModeSwitcherTab",key:t,isActive:a===t,onClick:()=>c(t)},e.createElement(C,null,e.createElement("span",null,t)," ",e.createElement($,{errors:l.levels[t].errors,warnings:l.levels[t].warnings}))))),Object.keys(m).map(t=>e.createElement(ne,{key:t,isActive:a===t},e.createElement(oe,{title:t,data:g[t]})))):e.createElement("div",null,"Scorecard not found")}export{Te as ApiListView,ze as ApiPage,oe as ApiView,Ke as RuleView,Ie as RulesView,De as TeamsView};
|
|
1
|
+
import*as e from"react";import{useCallback as ce,useMemo as E,useState as ue,useEffect as de}from"react";import{useLocation as M}from"react-router-dom";import{Flex as me}from"@redocly/portal-legacy-ui";import{Button as F}from"@redocly/theme/components/Button/Button";import{AddIcon as J}from"@redocly/theme/icons/AddIcon/AddIcon";import{SubtractIcon as Q}from"@redocly/theme/icons/SubtractIcon/SubtractIcon";import{ArrowLeftIcon as X}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{useProcessScorecard as Y}from"@redocly/theme/ext/process-scorecard";import{getScorecardColorVariable as ee,withoutPathPrefix as te}from"@redocly/theme/core/utils";import{Link as $}from"../../../../client/app/Link";import pe from"../../../../client/app/CircularProgress";import{isDefined as H}from"../../../../utils/guards/is-defined.js";import{removeLeadingSlash as ge}from"../../../../utils/url/remove-leading-slash.js";import{StatusByLevelWidget as fe}from"./StatusByLevelWidget";import{OTHER_TEAMS_LABEL as Ee,NON_CONFORMANT as he}from"./utils";import{LevelIndicator as be}from"./LevelIndicator";import{AppPageWrapper as re,CardValue as V,CardsWrapper as ne,CatalogDescription as ye,ModeSwitcherTab as G,ModeSwitcherTabs as ve,CardRow as ae,ProblemsByStatusCardBody as le,ScoreCardStatusCardBody as se,TableWrap as U,LevelComplianceCardTitle as Se,ContentWithDotWrap as z,ScorecardCard as I,ScorecardCardTitle as K}from"./index.styles";import{ApiLevel as ie,InstanceStatus as _,LevelStatus as B,RuleStatus as oe}from"./components";import{Grid as N}from"./Grid/Grid";import{useDetailedScorecard as Ce}from"./useDetailedScorecard";import{Gauge as we,GaugeValue as Ae}from"./Gauge";function xe(c,d,p){if(c===d)return 0;if(c==null||c==="")return 1;if(d==null||d==="")return-1;if(p==="number"){const m=Number(c),a=Number(d),s=Number.isNaN(m),g=Number.isNaN(a);return s&&g?0:s?1:g?-1:m-a}if(p==="date"){const m=new Date(String(c)).getTime(),a=new Date(String(d)).getTime(),s=Number.isNaN(m),g=Number.isNaN(a);return s&&g?0:s?1:g?-1:m-a}return String(c).localeCompare(String(d))}function W(c){return c==="error"?{errors:1,warnings:0}:c==="warning"?{errors:0,warnings:1}:{errors:0,warnings:0}}function _e(c){const d=M(),{data:p,levelNames:m,hasPublishedAt:a,hasTeam:s,teamLabel:g}=c,{getApiTableColumns:T}=Y(),b=ce((o,S,h)=>{const P=o.getValue(h)?new Date(o.getValue(h)).getTime():0,n=S.getValue(h)?new Date(S.getValue(h)).getTime():0;return P>n?1:-1},[]),v=E(()=>{const o=T?.()??[],S=o.filter(n=>n.placement==="beforeLevels"),h=o.filter(n=>n.placement!=="beforeLevels"),P=n=>({id:n.id,header:String(n.header),accessorFn:i=>n.getValue?.(i)??n.getSortValue?.(i),enableSorting:!!(n.sortingFn||n.sortRule||n.getSortValue||n.getValue),sortingFn:(i,f,r)=>{const l=i.original,w=f.original,k=n.getSortValue?.(l)??i.getValue(r),A=n.getSortValue?.(w)??f.getValue(r);return n.sortingFn?n.sortingFn({rowA:l,rowB:w,valueA:k,valueB:A}):xe(k,A,n.sortRule||"string")},...n.sortDescFirst!==void 0?{sortDescFirst:n.sortDescFirst}:{},cell:({getValue:i,row:f})=>{const r=i(),l=f.original;return n.render?n.render({row:l,value:r}):r==null||r===""?"-":String(r)},...n.size!==void 0?{size:n.size}:{},...n.minSize!==void 0?{minSize:n.minSize}:{},...n.maxSize!==void 0?{maxSize:n.maxSize}:{}});return[{id:"title",header:"API",accessorKey:"api.title",size:200,cell:({getValue:n,row:i})=>e.createElement($,{to:te(d.pathname)+"/apis/"+encodeURIComponent(ge(i.original.api.link))},n()," ",i.original.api.version)},a?{header:"Published at",accessorKey:"api.publishedAt",sortingFn:b,cell:({getValue:n})=>{const i=n();return i?new Date(i).toLocaleDateString():"-"}}:void 0,s?{header:g,accessorKey:"api.team"}:void 0,{id:"level",header:"Level",accessorKey:"scorecard.scorecardLevel",cell:({getValue:n,row:i})=>e.createElement(ie,{level:n(),colorVariable:ee(i.original?.scorecard.scorecardLevelIdx,m.length+1)})},...S.map(P),...m.map(n=>({id:n,header:`${n}`,accessorKey:"scorecard.levels",sortingFn:(i,f,r)=>{const l=i.getValue(r)[r].uniqueErrors,w=f.getValue(r)[r].uniqueErrors,k=i.getValue(r)[r].uniqueWarnings,A=f.getValue(r)[r].uniqueWarnings;return l===w?k-A:l-w},cell:({getValue:i,row:{original:f}})=>{const r=i(),l=f.api.link;return r?.[n]?e.createElement(be,{key:l,uniqueErrors:r[n].uniqueErrors,uniqueWarnings:r[n].uniqueWarnings,customDisplay:r[n].customDisplay,id:l}):null}})),...h.map(P)].filter(H)},[b,m,d.pathname,a,s,g,T]),D=E(()=>{const o=Math.max(v.length-3,0);return`25% max(140px, 15%) max(140px, 10%)${o>0?` repeat(${o}, 1fr)`:""}`},[v.length]);return e.createElement(N,{columns:v,data:p,sortBy:[{id:"title",desc:!1}],gridTemplateColumns:D})}function Ze(c){const d=M(),{data:p}=c,m=E(()=>[{header:"Rules",accessorKey:"ruleId",cell:({getValue:a})=>e.createElement($,{to:te(d.pathname)+"/rules/"+encodeURIComponent(a())},a())},{id:"status",header:"Status",accessorKey:"status",size:200,cell:({row:a})=>e.createElement(oe,{errors:a.original.errorApisCount,warnings:a.original.warningApisCount})},{header:"Problem APIs",width:200,accessorKey:"apisCount",cell:({getValue:a})=>a(),sortDescFirst:!0},{header:"Problem count",size:200,accessorKey:"count",sortDescFirst:!0}],[d.pathname]);return e.createElement(N,{columns:m,data:p,virtualized:!1,sortBy:[{id:"status",desc:!0}]})}function Je(c){const{data:d,levelNames:p,filters:m,setActiveTab:a,teamLabel:s,teamProperty:g}=c,T=E(()=>[{id:"team",header:`API ${s}`,accessorKey:"team",size:200,cell:({getValue:b})=>e.createElement("a",{href:"#",onClick:v=>{v.preventDefault(),a("apis"),m.find(D=>D.property===g)?.selectOption(b())}},b())},...[he,...p].map(b=>({id:b,header:`${b}`,accessorFn:v=>v.levels[b]?.apis}))],[m,p,a,s,g]);return e.createElement(N,{columns:T,data:d,sortBy:[{id:"team",desc:!1}],groupHeaderTitle:"APIs by level"})}function Te(c){const{data:d,title:p}=c,m=E(()=>[{id:"expand",maxSize:40,size:40,header:()=>null,enableSorting:!1,cell:({row:a})=>a.getCanExpand()?e.createElement(F,{onClick:a.getToggleExpandedHandler(),variant:"text",size:"medium",icon:a.getIsExpanded()?e.createElement(Q,null):e.createElement(J,null)}):null},{header:"Rules",accessorKey:"ruleId",cell:({getValue:a,row:s})=>s.getCanExpand()?e.createElement("span",{onClick:s.getToggleExpandedHandler()},a()):null},{header:"Status",accessorKey:"status",size:200,cell:({getValue:a})=>{const s=a();return e.createElement(oe,{errors:s?.errorsCount,warnings:s?.warningsCount})},enableSorting:!1},{header:"Problem count",accessorKey:"problemsCount",size:200,sortDescFirst:!0}],[]);return e.createElement(N,{columns:m,data:d,sortBy:[{id:"ruleId",desc:!1}],empty:e.createElement(e.Fragment,null,"\u2705 This API is compliant with ",e.createElement("strong",null,p)," level rules"),subRowKey:"problems"})}function Qe(c){const{catalogSlug:d,slug:p,data:m,hasTeam:a,hasPublishedAt:s,teamLabel:g}=c,{apis:T,apisCount:b,warningApisCount:v,errorApisCount:D,levels:o,count:S}=m,h=E(()=>Object.values(T),[T]),P=h.length===0,n=P?void 0:{id:"expand",maxSize:40,size:40,header:()=>null,enableSorting:!1,cell:({row:r})=>r.getCanExpand()?e.createElement(F,{onClick:r.getToggleExpandedHandler(),variant:"text",size:"medium",icon:r.getIsExpanded()?e.createElement(Q,null):e.createElement(J,null)}):null},i=E(()=>[n,{header:"API",accessorKey:"title"},s?{header:"Published at",accessorKey:"publishedAt",cell:({getValue:r})=>{const l=r();return l?new Date(l).toLocaleDateString():"-"}}:void 0,a?{header:g,accessorKey:"team",cell:({getValue:r})=>r()||Ee}:void 0,{header:"Problem count",size:200,accessorKey:"count",cell:({getValue:r})=>r()||0,sortDescFirst:!0}].filter(H),[a,s,g,P]),f=E(()=>Object.entries(m.teams).sort((r,l)=>l[1]-r[1]),[m.teams]);return e.createElement(re,null,e.createElement(F,{icon:e.createElement(X,null),iconPosition:"left",variant:"ghost",size:"large",to:`${d}scorecard`},"Back to dashboard"),e.createElement("h1",null,"Rule ",p),e.createElement(ne,null,e.createElement(I,null,e.createElement(K,null,"Rule status"),e.createElement(se,null,e.createElement("div",null,e.createElement(V,null,b),e.createElement("br",null),"APIs"),e.createElement("div",null,e.createElement(z,null,e.createElement(V,{style:{textAlign:"right"}},b-v-D),e.createElement(_,{severity:"Pass"})),e.createElement(z,null,e.createElement(V,{style:{textAlign:"right"}},v),e.createElement(_,{severity:"Warn"})),e.createElement(z,null,e.createElement(V,{style:{textAlign:"right"}},D),e.createElement(_,{severity:"Error"}))))),e.createElement(I,null,e.createElement(K,null,"Problems by level"),e.createElement(le,null,Object.entries(o).map(([r,l])=>e.createElement(ae,{key:r},e.createElement("span",null,r),e.createElement(we,{chunks:[{share:l.errors/S*100,colorVariable:"--scorecard-color-error"},{share:l.warnings/S*100,colorVariable:"--scorecard-color-warning"}]}),e.createElement(Ae,null,l.errors+l.warnings))))),e.createElement(I,null,e.createElement(K,null,`Problems by ${g}`),e.createElement(le,null,f.slice(0,4).map(([r,l])=>e.createElement(ae,{key:r},e.createElement("span",{style:{flex:1,textAlign:"left"}},r),e.createElement(V,null,l)))))),e.createElement(N,{columns:i,data:h,sortBy:[{id:"title",desc:!1}],subRowKey:"problems",slug:p}))}function Xe(c){const{slug:d,api:p,teamLabel:m,catalogSlug:a}=c,{api:s}=p||{},g=M(),{scorecard:T,isLoading:b}=Ce(`/${d}`),{processScorecard:v,getApiTableColumns:D}=Y(),o=T&&v(T,p.api),S=o?.levels||{},h=E(()=>Object.keys(S),[S]),P=E(()=>s?.publishedAt instanceof Date?s?.publishedAt.toLocaleDateString():s?.publishedAt,[s]),n=E(()=>{if(!o?.levels)return{};const t={};for(const u of Object.keys(o.levels)){const x=o.levels[u].problems.reduce((L,C)=>(L[C.ruleId]||(L[C.ruleId]=[]),L[C.ruleId].push(C),L),{});t[u]=Object.entries(x).map(([L,C])=>({ruleId:L,problems:[...C.filter(y=>y.severity==="error"),...C.filter(y=>y.severity==="warn")],problemsCount:C.length,status:{errorsCount:C.filter(y=>y.severity==="error").length,warningsCount:C.filter(y=>y.severity==="warn").length}}))}return t},[o?.levels]),i=E(()=>{if(!o)return[];const t={api:p.api,scorecard:o};return(D?.()??[]).filter(u=>!u.details?.hidden).map(u=>{const x=u.getValue?.(t),L=u.details?.description,C=typeof L=="function"?L(t):L;let y;if(u.details?.render){if(y=u.details.render({row:t,value:x}),y===null)return}else if(u.render){if(y=u.render({row:t,value:x}),y===null)return}else y=x==null||x===""?"-":String(x);const O=u.details?.status,q=typeof O=="function"?O({row:t,value:x}):O,Z=u.details?.statusRule;let j=q||"success";return!q&&Z==="problem-if-truthy"&&(j=x?"error":"success"),!q&&Z==="problem-if-falsy"&&(j=x?"success":"error"),{id:`custom-${u.id}`,label:u.details?.tabLabel||u.header,description:C,content:y,placement:u.placement==="beforeLevels"?"beforeLevels":"afterLevels",status:j}}).filter(H)},[p.api,D,o]),f=E(()=>i.filter(t=>t.placement==="beforeLevels"),[i]),r=E(()=>i.filter(t=>t.placement==="afterLevels"),[i]),l=E(()=>[...f.map(t=>t.id),...h,...r.map(t=>t.id)],[r,f,h]),w=E(()=>new URLSearchParams(g.search).get("tab")?.trim()||void 0,[g.search]),k=E(()=>{if(w)return h.includes(w)?w:[...f,...r].find(t=>t.label===w)?.id},[r,f,h,w]),[A,R]=ue(l[0]||"");return de(()=>{if(l.length){if(k&&l.includes(k)){R(k);return}R(t=>l.includes(t)?t:l[0])}},[l,k]),b?e.createElement(me,{justifyContent:"center",mt:"2em"},e.createElement(pe,null)):o?e.createElement(re,null,e.createElement(F,{icon:e.createElement(X,null),iconPosition:"left",variant:"ghost",size:"large",to:`${a}scorecard`},"Back to dashboard"),e.createElement("h1",null,s?.title||d),e.createElement(ye,null,P&&e.createElement(e.Fragment,null,"Published at: ",new Date().toLocaleString(void 0,{timeZoneName:"short"}),e.createElement("br",null)),e.createElement($,{to:s?.link,external:!0},"Documentation")),e.createElement(ne,null,e.createElement(I,null,e.createElement(Se,null,e.createElement("span",null,"Scorecard level"),e.createElement(ie,{level:o.scorecardLevel,colorVariable:ee(o.scorecardLevelIdx,Object.keys(S).length)})),e.createElement(se,null,e.createElement("div",null,"Compliance by level"),e.createElement("div",null,Object.entries(o.levels).map(([t,u])=>e.createElement(z,{key:t},e.createElement(V,{style:{width:"100px",textAlign:"right"}},t),e.createElement(B,{errors:u.errors,warnings:u.warnings})))))),e.createElement(fe,{title:"Rules compliance",levels:Object.entries(o.levels).map(([t,u])=>({errors:u.uniqueErrors,warnings:u.uniqueWarnings,total:c.rulesPerLevel[t].length,name:t}))}),e.createElement(I,null,e.createElement(K,null,m),e.createElement(V,{style:{fontWeight:"normal"}},s?.team))),e.createElement(ve,{style:{justifyContent:"flex-start"},"data-component-name":"Scorecard/ModeSwitcherTabs"},f.map(t=>e.createElement(G,{"data-component-name":"Scorecard/ModeSwitcherTab",key:t.id,isActive:A===t.id,onClick:()=>R(t.id)},e.createElement(z,null,e.createElement("span",null,t.label),e.createElement(B,{errors:W(t.status).errors,warnings:W(t.status).warnings})))),h.map(t=>e.createElement(G,{"data-component-name":"Scorecard/ModeSwitcherTab",key:t,isActive:A===t,onClick:()=>R(t)},e.createElement(z,null,e.createElement("span",null,t)," ",e.createElement(B,{errors:o.levels[t].errors,warnings:o.levels[t].warnings})))),r.map(t=>e.createElement(G,{"data-component-name":"Scorecard/ModeSwitcherTab",key:t.id,isActive:A===t.id,onClick:()=>R(t.id)},e.createElement(z,null,e.createElement("span",null,t.label),e.createElement(B,{errors:W(t.status).errors,warnings:W(t.status).warnings}))))),f.map(t=>e.createElement(U,{key:t.id,isActive:A===t.id},e.createElement(I,null,t.description?e.createElement("p",{style:{marginTop:0,marginBottom:12,color:"var(--text-color-secondary)"}},t.description):null,e.createElement("div",null,t.content)))),h.map(t=>e.createElement(U,{key:t,isActive:A===t},e.createElement(Te,{title:t,data:n[t]}))),r.map(t=>e.createElement(U,{key:t.id,isActive:A===t.id},e.createElement(I,null,t.description?e.createElement("p",{style:{marginTop:0,marginBottom:12,color:"var(--text-color-secondary)"}},t.description):null,e.createElement("div",null,t.content))))):e.createElement("div",null,"Scorecard not found")}export{_e as ApiListView,Xe as ApiPage,Te as ApiView,Qe as RuleView,Ze as RulesView,Je as TeamsView};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { NormalizedProblem } from '@redocly/openapi-core';
|
|
2
2
|
import type { ProblemWithCodeframe } from './lint';
|
|
3
3
|
export declare enum ScorecardStatus {
|
|
4
|
-
BelowMinimum = "
|
|
5
|
-
Highest = "
|
|
6
|
-
Minimum = "
|
|
4
|
+
BelowMinimum = "BELOW_MINIMUM",
|
|
5
|
+
Highest = "HIGHEST",
|
|
6
|
+
Minimum = "MINIMUM"
|
|
7
7
|
}
|
|
8
8
|
export type ProblemSummary = Pick<NormalizedProblem, 'ruleId' | 'severity'>;
|
|
9
9
|
export type ScorecardLevel = {
|
|
@@ -25,6 +25,8 @@ export type ScorecardData = {
|
|
|
25
25
|
relativePath: string;
|
|
26
26
|
title?: string;
|
|
27
27
|
version?: string;
|
|
28
|
+
hash: string;
|
|
29
|
+
detailsChunkPath?: string;
|
|
28
30
|
};
|
|
29
31
|
export type DetailedScorecardData = Omit<ScorecardData, 'levels'> & {
|
|
30
32
|
levels: Record<string, DetailedScorecardLevel>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var i;(function(M){M.BelowMinimum="BELOW_MINIMUM",M.Highest="HIGHEST",M.Minimum="MINIMUM"})(i||(i={}));export{i as ScorecardStatus};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DatabaseClient } from '../../../../../providers/database/client.js';
|
|
2
|
+
import type { DatabaseScorecardsConfig, DatabaseScorecardsConfigDto } from '../../../../../providers/database/databases/main-sqlite/schemas/scorecards-config-table.js';
|
|
3
|
+
export declare class ScorecardsConfigLocalRepository {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(db: DatabaseClient);
|
|
6
|
+
findActiveConfigByKey(key: string): Promise<DatabaseScorecardsConfig | null>;
|
|
7
|
+
findAllActiveConfigs(): Promise<DatabaseScorecardsConfig[]>;
|
|
8
|
+
insertConfig(config: DatabaseScorecardsConfigDto): Promise<DatabaseScorecardsConfig>;
|
|
9
|
+
updateConfigById(id: string, updates: Partial<Omit<DatabaseScorecardsConfigDto, 'id' | 'createdAt'>>): Promise<DatabaseScorecardsConfig>;
|
|
10
|
+
archiveConfigById(id: string, archivedAt: string): Promise<DatabaseScorecardsConfig>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=scorecards-config-local-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{and as o,eq as n,isNull as s}from"drizzle-orm";import{scorecardsConfigTable as r}from"../../../../../providers/database/databases/main-sqlite/schemas/scorecards-config-table.js";class d{#e;constructor(e){this.#e=e}async findActiveConfigByKey(e){return(await this.#e.client.select().from(r).where(o(n(r.key,e),s(r.archivedAt))).limit(1))[0]??null}async findAllActiveConfigs(){return await this.#e.client.select().from(r).where(s(r.archivedAt))}async insertConfig(e){const t=await this.#e.client.insert(r).values(e).returning();if(!t[0])throw new Error(`Failed to insert scorecard config with key: ${e.key}`);return t[0]}async updateConfigById(e,t){const i=await this.#e.client.update(r).set(t).where(n(r.id,e)).returning();if(!i[0])throw new Error(`Failed to update scorecard config with id: ${e}`);return i[0]}async archiveConfigById(e,t){const i=await this.#e.client.update(r).set({archivedAt:t}).where(n(r.id,e)).returning();if(!i[0])throw new Error(`Failed to archive scorecard config with id: ${e}`);return i[0]}}export{d as ScorecardsConfigLocalRepository};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ScorecardsConfig } from '@redocly/config';
|
|
2
|
+
import type { ServiceInstanceOptions } from '../../../providers/database/types.js';
|
|
3
|
+
import { DatabaseConnectionFactory } from '../../../providers/database/database-connection-factory.js';
|
|
4
|
+
import { BaseRepository } from '../../../providers/database/base-repository.js';
|
|
5
|
+
export declare class ScorecardsConfigService extends BaseRepository {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(dbConnection: Awaited<ReturnType<typeof DatabaseConnectionFactory.create>>);
|
|
8
|
+
static getInstance(options: ServiceInstanceOptions): Promise<ScorecardsConfigService>;
|
|
9
|
+
syncConfig(scorecardsConfig: ScorecardsConfig, onConfigChange?: (key: string) => Promise<void>): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=scorecards-config-service.d.ts.map
|