@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.
Files changed (697) hide show
  1. package/CHANGELOG.md +508 -83
  2. package/dist/bin.d.ts +1 -0
  3. package/dist/bin.js +1 -1
  4. package/dist/cli/develop.js +1 -1
  5. package/dist/cli/eject/resolveEjectParams.js +1 -1
  6. package/dist/cli/eject/resolveTheme.d.ts +1 -1
  7. package/dist/cli/eject/resolveTheme.js +1 -1
  8. package/dist/cli/prepare/copy-env-files.js +1 -1
  9. package/dist/cli/prepare/index.js +1 -1
  10. package/dist/cli/stats/collectors/openapi.d.ts +3 -0
  11. package/dist/cli/stats/collectors/openapi.js +1 -0
  12. package/dist/cli/stats/index.d.ts +7 -0
  13. package/dist/cli/stats/index.js +1 -0
  14. package/dist/cli/stats/options.d.ts +3 -0
  15. package/dist/cli/stats/options.js +1 -0
  16. package/dist/cli/telemetry/index.d.ts +2 -2
  17. package/dist/cli/telemetry/index.js +1 -1
  18. package/dist/client/App.js +1 -1
  19. package/dist/client/ErrorBoundary.js +1 -1
  20. package/dist/client/app/DevModeFloatingBar/index.d.ts +3 -0
  21. package/dist/client/app/DevModeFloatingBar/index.js +43 -0
  22. package/dist/client/app/Feedback/useSubmitFeedback.js +1 -1
  23. package/dist/client/app/Sidebar/RequestAccessButton.js +2 -2
  24. package/dist/client/app/Sidebar/Sidebar.js +2 -2
  25. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +23 -0
  26. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -0
  27. package/dist/client/app/Sidebar/useSidebarItems.d.ts +2 -2
  28. package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
  29. package/dist/client/app/hooks/catalog/useCatalogClassic.d.ts +1 -1
  30. package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
  31. package/dist/client/app/hooks/catalog/useCatalogFilter.js +1 -1
  32. package/dist/client/app/hooks/catalog/useCatalogViewMode.js +1 -1
  33. package/dist/client/app/hooks/catalog/useSearchTracker.js +1 -1
  34. package/dist/client/app/hooks/codeHighlight/useCodeHighlight.js +1 -1
  35. package/dist/client/app/hooks/useAutoScroll.js +1 -1
  36. package/dist/client/app/hooks/usePageTimeTracker.js +1 -1
  37. package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
  38. package/dist/client/app/hooks/useTelemetry.d.ts +2 -2
  39. package/dist/client/app/hooks/utils/pathname-matches-active-section.d.ts +6 -0
  40. package/dist/client/app/hooks/utils/pathname-matches-active-section.js +1 -0
  41. package/dist/client/app/markdoc/custom-components/html-script.js +1 -0
  42. package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -0
  43. package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -0
  44. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -0
  45. package/dist/client/app/markdoc/hooks/use-store.js +1 -0
  46. package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
  47. package/dist/client/app/search/message-handlers.d.ts +29 -0
  48. package/dist/client/app/search/message-handlers.js +1 -0
  49. package/dist/client/app/search/sse-parser.d.ts +10 -0
  50. package/dist/client/app/search/sse-parser.js +2 -0
  51. package/dist/client/app/search/useAiSearch.d.ts +9 -11
  52. package/dist/client/app/search/useAiSearch.js +1 -1
  53. package/dist/client/app/search/useSearch.js +1 -1
  54. package/dist/client/app/telemetry/index.d.ts +11 -1
  55. package/dist/client/app/telemetry/index.js +1 -1
  56. package/dist/client/browser-entry.js +3 -3
  57. package/dist/client/constants/ai-search.d.ts +30 -0
  58. package/dist/client/constants/ai-search.js +1 -0
  59. package/dist/client/constants/common.d.ts +2 -0
  60. package/dist/client/constants/common.js +1 -0
  61. package/dist/client/constants/index.d.ts +2 -0
  62. package/dist/client/constants/index.js +1 -0
  63. package/dist/client/runtime/useSocketMessages.js +1 -1
  64. package/dist/{server/plugins/asyncapi-docs/template → client/templates/asyncapi-docs}/helpers.d.ts +3 -3
  65. package/dist/client/templates/asyncapi-docs/helpers.js +1 -0
  66. package/dist/{server/plugins/asyncapi-docs/template/AsyncApiDocs.d.ts → client/templates/asyncapi-docs/template.d.ts} +3 -2
  67. package/dist/client/templates/asyncapi-docs/template.js +15 -0
  68. package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/helpers.d.ts +2 -2
  69. package/dist/client/templates/openapi-docs/helpers.js +5 -0
  70. package/dist/{server/plugins/openapi-docs/template/OpenAPIDocs.d.ts → client/templates/openapi-docs/template.d.ts} +1 -1
  71. package/dist/client/templates/openapi-docs/template.js +18 -0
  72. package/dist/client/types/ai-search.d.ts +73 -0
  73. package/dist/client/types/ai-search.js +0 -0
  74. package/dist/client/types/index.d.ts +1 -0
  75. package/dist/client/utils/catalog/inject-catalog-items.d.ts +1 -1
  76. package/dist/client/utils/catalog/inject-catalog-items.js +1 -1
  77. package/dist/constants/catalog-entities.d.ts +12 -0
  78. package/dist/constants/catalog-entities.js +1 -0
  79. package/dist/constants/common.d.ts +6 -4
  80. package/dist/constants/common.js +1 -1
  81. package/dist/constants/l10n/langs/ar.js +1 -1
  82. package/dist/constants/l10n/langs/de.js +1 -1
  83. package/dist/constants/l10n/langs/en.js +1 -1
  84. package/dist/constants/l10n/langs/es.js +1 -1
  85. package/dist/constants/l10n/langs/fr.js +1 -1
  86. package/dist/constants/l10n/langs/hi.js +1 -1
  87. package/dist/constants/l10n/langs/it.js +1 -1
  88. package/dist/constants/l10n/langs/ja.js +1 -1
  89. package/dist/constants/l10n/langs/ko.js +1 -1
  90. package/dist/constants/l10n/langs/pl.js +1 -1
  91. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  92. package/dist/constants/l10n/langs/pt.js +1 -1
  93. package/dist/constants/l10n/langs/ru.js +1 -1
  94. package/dist/constants/l10n/langs/uk.js +1 -1
  95. package/dist/constants/l10n/langs/zh.js +1 -1
  96. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-inner-text.d.ts +1 -1
  97. package/dist/markdoc/helpers/get-inner-text.js +2 -0
  98. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-variable.d.ts +2 -2
  99. package/dist/markdoc/helpers/get-variable.js +1 -0
  100. package/dist/markdoc/nodes/fence/index.js +1 -0
  101. package/dist/markdoc/nodes/heading.js +1 -0
  102. package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.d.ts +6 -6
  103. package/dist/markdoc/tags/json-example.d.ts +3 -0
  104. package/dist/markdoc/tags/json-schema.d.ts +3 -0
  105. package/dist/markdoc/tags/openapi-code-sample.d.ts +3 -0
  106. package/dist/markdoc/tags/openapi-example.d.ts +3 -0
  107. package/dist/markdoc/tags/openapi-response-sample.d.ts +3 -0
  108. package/dist/markdoc/tags/replay-openapi.d.ts +3 -0
  109. package/dist/markdoc/types.d.ts +8 -0
  110. package/dist/markdoc/types.js +0 -0
  111. package/dist/server/api-routes/execute-api-route.js +1 -1
  112. package/dist/server/api-routes/import-api-routes-handlers.js +1 -1
  113. package/dist/server/api-routes/run-api-routes-worker.js +1 -1
  114. package/dist/server/config/env-config.d.ts +17 -0
  115. package/dist/server/config/env-config.js +1 -0
  116. package/dist/server/config/env-schema.d.ts +245 -0
  117. package/dist/server/config/env-schema.js +3 -0
  118. package/dist/server/config/env-schemas/api-urls.d.ts +24 -0
  119. package/dist/server/config/env-schemas/api-urls.js +1 -0
  120. package/dist/server/config/env-schemas/auth.d.ts +42 -0
  121. package/dist/server/config/env-schemas/auth.js +1 -0
  122. package/dist/server/config/env-schemas/catalog.d.ts +12 -0
  123. package/dist/server/config/env-schemas/catalog.js +1 -0
  124. package/dist/server/config/env-schemas/database.d.ts +15 -0
  125. package/dist/server/config/env-schemas/database.js +1 -0
  126. package/dist/server/config/env-schemas/environment-detection.d.ts +24 -0
  127. package/dist/server/config/env-schemas/environment-detection.js +1 -0
  128. package/dist/server/config/env-schemas/feature-flags.d.ts +24 -0
  129. package/dist/server/config/env-schemas/feature-flags.js +1 -0
  130. package/dist/server/config/env-schemas/organization-project.d.ts +30 -0
  131. package/dist/server/config/env-schemas/organization-project.js +1 -0
  132. package/dist/server/config/env-schemas/scorecards.d.ts +12 -0
  133. package/dist/server/config/env-schemas/scorecards.js +1 -0
  134. package/dist/server/config/env-schemas/search.d.ts +21 -0
  135. package/dist/server/config/env-schemas/search.js +1 -0
  136. package/dist/server/config/env-schemas/server-config.d.ts +51 -0
  137. package/dist/server/config/env-schemas/server-config.js +1 -0
  138. package/dist/server/config/env-schemas/site.d.ts +12 -0
  139. package/dist/server/config/env-schemas/site.js +1 -0
  140. package/dist/server/config/env-schemas/ssr.d.ts +18 -0
  141. package/dist/server/config/env-schemas/ssr.js +1 -0
  142. package/dist/server/config/env-schemas/telemetry.d.ts +15 -0
  143. package/dist/server/config/env-schemas/telemetry.js +1 -0
  144. package/dist/server/config/env-schemas/test.d.ts +22 -0
  145. package/dist/server/config/env-schemas/test.js +1 -0
  146. package/dist/server/constants/common.d.ts +3 -0
  147. package/dist/server/constants/common.js +1 -1
  148. package/dist/server/constants/feedback.d.ts +6 -0
  149. package/dist/server/constants/feedback.js +1 -0
  150. package/dist/server/constants/plugins/catalog-entities.d.ts +1 -11
  151. package/dist/server/constants/plugins/catalog-entities.js +1 -1
  152. package/dist/server/entitlements/entitlements-provider.js +1 -1
  153. package/dist/server/esbuild/esbuild-logger.js +2 -2
  154. package/dist/server/esbuild/esbuild.js +3 -3
  155. package/dist/server/esbuild/plugins/assets-resolver.js +1 -1
  156. package/dist/server/esbuild/plugins/esbuild-compile-resolver.js +1 -1
  157. package/dist/server/esbuild/plugins/styled-components-ssr.js +1 -1
  158. package/dist/server/esbuild/plugins/themes-resolver.js +2 -2
  159. package/dist/server/{config/external-plugins.d.ts → external-plugins/resolve-external-plugins.d.ts} +2 -2
  160. package/dist/server/{config/external-plugins.js → external-plugins/resolve-external-plugins.js} +1 -1
  161. package/dist/server/fs/cache.js +1 -1
  162. package/dist/server/fs/content-fs.d.ts +1 -0
  163. package/dist/server/fs/content-fs.js +1 -1
  164. package/dist/server/fs/last-modified-tracker.js +1 -1
  165. package/dist/server/fs/utils/is-loader-cache-enabled.js +1 -1
  166. package/dist/server/node-bundle-entry.js +1 -1
  167. package/dist/server/persistence/kv/repositories/kv-remote-repository.d.ts +1 -0
  168. package/dist/server/persistence/kv/repositories/kv-remote-repository.js +2 -1
  169. package/dist/server/persistence/kv/services/kv-service.js +1 -1
  170. package/dist/server/plugins/analytics/adobe/index.js +1 -1
  171. package/dist/server/plugins/analytics/amplitude/index.js +1 -1
  172. package/dist/server/plugins/analytics/fullstory/index.js +1 -1
  173. package/dist/server/plugins/analytics/ga/index.js +1 -1
  174. package/dist/server/plugins/analytics/gtm/browser-hooks.js +1 -1
  175. package/dist/server/plugins/analytics/gtm/index.js +1 -1
  176. package/dist/server/plugins/analytics/heap/index.js +1 -1
  177. package/dist/server/plugins/analytics/rudderstack/index.js +1 -1
  178. package/dist/server/plugins/analytics/segment/index.js +1 -1
  179. package/dist/server/plugins/asyncapi-docs/asyncapi-doc-loader.js +3 -3
  180. package/dist/server/plugins/asyncapi-docs/get-server-props.js +1 -1
  181. package/dist/server/plugins/asyncapi-docs/index.js +1 -1
  182. package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.js +27 -27
  183. package/dist/server/plugins/asyncapi-docs/search/schema-processor.js +1 -1
  184. package/dist/server/plugins/asyncapi-docs/search/search-resolver.js +1 -1
  185. package/dist/server/plugins/asyncapi-docs/store-definition-bundles.js +1 -1
  186. package/dist/server/plugins/catalog-classic/get-server-props.d.ts +8 -3
  187. package/dist/server/plugins/catalog-classic/get-server-props.js +1 -1
  188. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.d.ts +38 -64
  189. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.js +1 -1
  190. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.d.ts +8 -0
  191. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.js +1 -0
  192. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-db-record.d.ts +2 -1
  193. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-read-model.js +1 -1
  194. package/dist/server/plugins/catalog-entities/database/mappers/{create-entity-relation.d.ts → create-entity-relation-read-model.d.ts} +2 -2
  195. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.js +1 -0
  196. package/dist/server/plugins/catalog-entities/database/mappers/map-entity-relation-row.js +1 -1
  197. package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts +27 -0
  198. package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.js +1 -0
  199. package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.d.ts +36 -0
  200. package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.js +1 -0
  201. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.d.ts +15 -4
  202. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.js +38 -27
  203. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.d.ts +36 -9
  204. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +37 -21
  205. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.d.ts +41 -42
  206. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.js +1 -1
  207. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.d.ts +3 -1
  208. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.js +1 -1
  209. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.d.ts +7 -1
  210. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.js +1 -1
  211. package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.d.ts +5 -9
  212. package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.js +1 -1
  213. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.d.ts +13 -0
  214. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.js +1 -0
  215. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.d.ts +31 -0
  216. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.js +9 -0
  217. package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.d.ts +34 -0
  218. package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.js +13 -0
  219. package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.d.ts +23 -0
  220. package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.js +1 -0
  221. package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.d.ts +78 -0
  222. package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.js +34 -0
  223. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
  224. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
  225. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +6 -4
  226. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
  227. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +2 -2
  228. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.d.ts +1 -1
  229. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
  230. package/dist/server/plugins/catalog-entities/extensions/extractors/fs-entities-extractor.js +1 -1
  231. package/dist/server/plugins/catalog-entities/get-server-props.js +1 -1
  232. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  233. package/dist/server/plugins/catalog-entities/schemas/database-schemas.d.ts +3 -0
  234. package/dist/server/plugins/catalog-entities/schemas/database-schemas.js +1 -1
  235. package/dist/server/plugins/catalog-entities/schemas/dto-schemas.d.ts +15 -1
  236. package/dist/server/plugins/catalog-entities/schemas/dto-schemas.js +1 -1
  237. package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.d.ts +26 -164
  238. package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.js +0 -1
  239. package/dist/server/plugins/catalog-entities/types/extractors.d.ts +4 -4
  240. package/dist/server/plugins/catalog-entities/types/openapi.d.ts +11 -0
  241. package/dist/server/plugins/catalog-entities/types/openapi.js +0 -0
  242. package/dist/server/plugins/catalog-entities/types/params.d.ts +6 -0
  243. package/dist/server/plugins/catalog-entities/types/params.js +0 -0
  244. package/dist/server/plugins/catalog-entities/utils/ajv-validator.js +1 -1
  245. package/dist/server/plugins/catalog-entities/utils/catalog-data-collector.js +1 -1
  246. package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.d.ts +11 -0
  247. package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.js +1 -0
  248. package/dist/server/plugins/config-parser/index.js +1 -1
  249. package/dist/server/plugins/config-parser/loaders/content-slugs-loader.js +1 -1
  250. package/dist/server/plugins/config-parser/loaders/nearest-redocly-config-loader.js +1 -1
  251. package/dist/server/plugins/config-parser/loaders/redocly-config-loader.js +1 -1
  252. package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
  253. package/dist/server/plugins/default-theme/index.js +1 -1
  254. package/dist/server/plugins/entitlements/index.js +1 -1
  255. package/dist/server/plugins/graphql-docs/graphql-doc-loader.js +1 -1
  256. package/dist/server/plugins/graphql-docs/index.js +1 -1
  257. package/dist/server/plugins/graphql-docs/search/search-resolver.js +1 -1
  258. package/dist/server/plugins/graphql-docs/template/GraphQLDocs.js +6 -2
  259. package/dist/server/plugins/lifecycle.js +2 -2
  260. package/dist/server/plugins/markdown/attribute-resolvers/code-walkthrough/filesets-resolver.js +1 -1
  261. package/dist/server/plugins/markdown/attribute-resolvers/resolve-code-snippet-from-file.js +1 -1
  262. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-href.js +1 -1
  263. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-source-attribute.js +1 -1
  264. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src-set.js +1 -1
  265. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src.js +1 -1
  266. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-example-ref.js +1 -1
  267. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-schema-ref.js +1 -1
  268. package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
  269. package/dist/server/plugins/markdown/attribute-resolvers/resolve-native-md-link.js +1 -1
  270. package/dist/server/plugins/markdown/attribute-resolvers/resolve-nav-links.js +1 -1
  271. package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
  272. package/dist/server/plugins/markdown/attribute-resolvers/resolve-parsed-yaml.js +1 -1
  273. package/dist/server/plugins/markdown/attribute-resolvers/resolve-raw-content.js +1 -1
  274. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-or-cdn-icon.js +1 -1
  275. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-path.js +1 -1
  276. package/dist/server/plugins/markdown/attribute-resolvers/resolve-sample-from-json-schema.js +1 -1
  277. package/dist/server/plugins/markdown/attribute-resolvers/resolve-svg-content.js +1 -1
  278. package/dist/server/plugins/markdown/compiler.d.ts +1 -0
  279. package/dist/server/plugins/markdown/compiler.js +1 -1
  280. package/dist/server/plugins/markdown/index.js +1 -1
  281. package/dist/server/plugins/markdown/is-partial.d.ts +1 -1
  282. package/dist/server/plugins/markdown/is-partial.js +1 -1
  283. package/dist/server/plugins/markdown/markdoc/import-user-tags.js +1 -1
  284. package/dist/server/plugins/markdown/markdoc/markdoc-options.js +1 -1
  285. package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
  286. package/dist/server/plugins/markdown/markdoc/plugins/headings.js +1 -1
  287. package/dist/server/plugins/markdown/markdoc/plugins/render-mermaid.js +1 -1
  288. package/dist/server/plugins/markdown/markdoc/plugins/utils.js +1 -1
  289. package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.d.ts +1 -1
  290. package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.js +2 -2
  291. package/dist/server/plugins/markdown/markdown-static-data-loader.js +1 -1
  292. package/dist/server/plugins/markdown/runtime-transform.js +1 -1
  293. package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
  294. package/dist/server/plugins/markdown/search/get-search-documents.js +2 -2
  295. package/dist/server/plugins/markdown/search/nodes/section-node.js +1 -1
  296. package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
  297. package/dist/server/plugins/markdown/search/to-markdown.js +17 -13
  298. package/dist/server/plugins/markdown/search/walk-sections.js +1 -1
  299. package/dist/server/plugins/markdown/utils/stringify-tag-children-objects.js +1 -1
  300. package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
  301. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.d.ts +58 -0
  302. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.js +1 -0
  303. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.d.ts +9 -8
  304. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.js +1 -1
  305. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.d.ts +9 -8
  306. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.js +1 -1
  307. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.d.ts +9 -8
  308. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.js +1 -1
  309. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.d.ts +9 -8
  310. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.js +1 -1
  311. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +7 -13
  312. package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -1
  313. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.d.ts +9 -6
  314. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.js +1 -1
  315. package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts +10 -2
  316. package/dist/server/plugins/mcp/docs-mcp/tools/search.js +6 -1
  317. package/dist/server/plugins/mcp/docs-mcp/tools/utils.d.ts +2 -1
  318. package/dist/server/plugins/mcp/docs-mcp/tools/utils.js +6 -6
  319. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.d.ts +9 -2
  320. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.js +1 -1
  321. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
  322. package/dist/server/plugins/mcp/handlers/errors.js +1 -1
  323. package/dist/server/plugins/mcp/handlers/handle-mcp-request.d.ts +5 -0
  324. package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -0
  325. package/dist/server/plugins/mcp/handlers/mcp-request-handler.d.ts +0 -1
  326. package/dist/server/plugins/mcp/handlers/mcp-request-handler.js +1 -1
  327. package/dist/server/plugins/mcp/servers/base-server.js +1 -1
  328. package/dist/server/plugins/mcp/servers/docs-server.d.ts +9 -2
  329. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  330. package/dist/server/plugins/mcp/types.d.ts +59 -0
  331. package/dist/server/plugins/mcp/workers/execute-mcp-tool.d.ts +3 -0
  332. package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -0
  333. package/dist/server/plugins/nav-utils.d.ts +1 -1
  334. package/dist/server/plugins/nav-utils.js +1 -1
  335. package/dist/server/plugins/openapi-docs/decorators.d.ts +3 -0
  336. package/dist/server/plugins/openapi-docs/decorators.js +1 -1
  337. package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.d.ts +2 -4
  338. package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.js +1 -1
  339. package/dist/server/plugins/openapi-docs/get-server-props.js +1 -1
  340. package/dist/server/plugins/openapi-docs/index.js +1 -1
  341. package/dist/server/plugins/openapi-docs/load-definition.d.ts +1 -0
  342. package/dist/server/plugins/openapi-docs/load-definition.js +3 -3
  343. package/dist/server/plugins/openapi-docs/openrpc-converter.d.ts +2 -0
  344. package/dist/server/plugins/openapi-docs/openrpc-converter.js +1 -0
  345. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +20 -20
  346. package/dist/server/plugins/openapi-docs/search/search-resolver.js +1 -1
  347. package/dist/server/plugins/openapi-docs/search-indexer.js +1 -1
  348. package/dist/server/plugins/openapi-docs/store-definition-bundles.js +1 -1
  349. package/dist/server/plugins/openapi-docs/utils.d.ts +1 -0
  350. package/dist/server/plugins/scorecard-classic/compute-scorecard.d.ts +2 -1
  351. package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
  352. package/dist/server/plugins/scorecard-classic/get-scorecard-config.d.ts +2 -1
  353. package/dist/server/plugins/scorecard-classic/index.js +1 -1
  354. package/dist/server/plugins/scorecard-classic/lint.d.ts +1 -1
  355. package/dist/server/plugins/scorecard-classic/lint.js +1 -1
  356. package/dist/server/plugins/scorecard-classic/loaders/scorecard-config.js +1 -1
  357. package/dist/server/plugins/scorecard-classic/loaders/scorecard.d.ts +6 -4
  358. package/dist/server/plugins/scorecard-classic/loaders/scorecard.js +1 -1
  359. package/dist/server/plugins/scorecard-classic/shared-utils.d.ts +1 -1
  360. package/dist/server/plugins/scorecard-classic/shared-utils.js +1 -1
  361. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.d.ts +3 -1
  362. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.js +3 -3
  363. package/dist/server/plugins/scorecard-classic/template/Grid/GridHeader.js +15 -9
  364. package/dist/server/plugins/scorecard-classic/template/Grid/GridRow.js +1 -1
  365. package/dist/server/plugins/scorecard-classic/template/LevelIndicator.d.ts +1 -0
  366. package/dist/server/plugins/scorecard-classic/template/LevelIndicator.js +4 -4
  367. package/dist/server/plugins/scorecard-classic/template/components.js +1 -1
  368. package/dist/server/plugins/scorecard-classic/template/index.styles.d.ts +1 -0
  369. package/dist/server/plugins/scorecard-classic/template/index.styles.js +92 -19
  370. package/dist/server/plugins/scorecard-classic/template/index.types.d.ts +5 -1
  371. package/dist/server/plugins/scorecard-classic/template/useData.js +1 -1
  372. package/dist/server/plugins/scorecard-classic/template/views.js +1 -1
  373. package/dist/server/plugins/scorecard-classic/types.d.ts +5 -3
  374. package/dist/server/plugins/scorecard-classic/types.js +1 -1
  375. package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.d.ts +12 -0
  376. package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.js +1 -0
  377. package/dist/server/plugins/scorecards/database/scorecards-config-service.d.ts +11 -0
  378. package/dist/server/plugins/scorecards/database/scorecards-config-service.js +1 -0
  379. package/dist/server/plugins/scorecards/plugin.js +1 -1
  380. package/dist/server/plugins/scorecards/workers/run-scorecards-worker.d.ts +2 -1
  381. package/dist/server/plugins/scorecards/workers/run-scorecards-worker.js +1 -1
  382. package/dist/server/plugins/scorecards/workers/scorecards.d.ts +1 -12
  383. package/dist/server/plugins/scorecards/workers/scorecards.js +1 -1
  384. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.d.ts +11 -0
  385. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -0
  386. package/dist/server/plugins/search/documents/search-documents.js +1 -1
  387. package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
  388. package/dist/server/plugins/search/engines/typesense/index.js +1 -1
  389. package/dist/server/plugins/search/index.js +1 -1
  390. package/dist/server/plugins/search/llmstxt/index.js +5 -5
  391. package/dist/server/plugins/search/utils.d.ts +2 -0
  392. package/dist/server/plugins/search/utils.js +2 -2
  393. package/dist/server/plugins/sidebars/index.d.ts +0 -2
  394. package/dist/server/plugins/sidebars/index.js +3 -3
  395. package/dist/server/plugins/sso/index.js +1 -1
  396. package/dist/server/providers/database/base-repository.d.ts +1 -0
  397. package/dist/server/providers/database/base-repository.js +1 -1
  398. package/dist/server/providers/database/database-connection-factory.js +1 -1
  399. package/dist/server/providers/database/database-initialization-strategy.js +1 -1
  400. package/dist/server/providers/database/database-preconnect-service.js +1 -1
  401. package/dist/server/providers/database/databases/catalog-sqlite/migrations/0005_catalog-relations-constraint-fix.sql +2 -0
  402. package/dist/server/providers/database/databases/catalog-sqlite/migrations/0006_add-catalog-entitities-attributes-table.sql +11 -0
  403. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0005_snapshot.json +393 -0
  404. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0006_snapshot.json +458 -0
  405. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/_journal.json +14 -0
  406. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.d.ts +143 -0
  407. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.js +1 -0
  408. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js +1 -1
  409. package/dist/server/providers/database/databases/main-sqlite/migrations/0006_change-scorecards-config-timestamps-field-types.sql +19 -0
  410. package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0006_snapshot.json +261 -0
  411. package/dist/server/providers/database/databases/main-sqlite/migrations/meta/_journal.json +7 -0
  412. package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.d.ts +24 -18
  413. package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.js +1 -1
  414. package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.js +1 -1
  415. package/dist/server/providers/database/databases/sqld-sqlite/migrations/0007_catalog-relations-constraint-fix.sql +2 -0
  416. package/dist/server/providers/database/databases/sqld-sqlite/migrations/0008_add-catalog-entitities-attributes-table.sql +11 -0
  417. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0007_snapshot.json +833 -0
  418. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0008_snapshot.json +898 -0
  419. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/_journal.json +14 -0
  420. package/dist/server/providers/database/pagination/entities-to-filter.d.ts +15 -0
  421. package/dist/server/providers/database/pagination/entities-to-filter.js +1 -0
  422. package/dist/server/providers/database/pagination/utils/index.d.ts +4 -0
  423. package/dist/server/providers/database/pagination/utils/index.js +1 -1
  424. package/dist/server/providers/database/pagination/utils/is-nested-condition.d.ts +16 -0
  425. package/dist/server/providers/database/pagination/utils/is-nested-condition.js +1 -0
  426. package/dist/server/providers/database/pagination/utils/is-simple-condition.d.ts +18 -0
  427. package/dist/server/providers/database/pagination/utils/is-simple-condition.js +1 -0
  428. package/dist/server/providers/database/pagination/utils/map-operator.d.ts +10 -0
  429. package/dist/server/providers/database/pagination/utils/map-operator.js +1 -0
  430. package/dist/server/providers/database/pagination/utils/transform-condition.d.ts +12 -0
  431. package/dist/server/providers/database/pagination/utils/transform-condition.js +1 -0
  432. package/dist/server/providers/database/sqld-not-running-error.d.ts +5 -0
  433. package/dist/server/providers/database/sqld-not-running-error.js +1 -0
  434. package/dist/server/ssr/render.js +1 -1
  435. package/dist/server/ssr/server-side-props/get-server-props-from-user-handler.js +1 -1
  436. package/dist/server/ssr/utils.js +8 -8
  437. package/dist/server/store.d.ts +16 -6
  438. package/dist/server/store.js +1 -1
  439. package/dist/server/telemetry/index.js +1 -1
  440. package/dist/server/tools/notifiers/formatter.js +3 -3
  441. package/dist/server/tools/notifiers/helpers/colors.js +1 -1
  442. package/dist/server/tools/notifiers/logger.js +2 -2
  443. package/dist/server/tools/notifiers/reporter.js +9 -9
  444. package/dist/server/tools/notifiers/terminal-manager.js +4 -4
  445. package/dist/server/types/plugins/common.d.ts +8 -1
  446. package/dist/server/types/plugins/markdown.d.ts +2 -7
  447. package/dist/server/types/plugins/scorecards.d.ts +30 -0
  448. package/dist/server/types/plugins/scorecards.js +0 -0
  449. package/dist/server/utils/ai-agent-detection.d.ts +16 -0
  450. package/dist/server/utils/ai-agent-detection.js +1 -0
  451. package/dist/server/utils/envs/get-api-route-allowed-env-variables.js +1 -1
  452. package/dist/server/utils/envs/load-env-variables.d.ts +1 -1
  453. package/dist/server/utils/envs/load-env-variables.js +1 -1
  454. package/dist/server/utils/envs/sanitize-branch-name.d.ts +6 -0
  455. package/dist/server/utils/envs/sanitize-branch-name.js +1 -0
  456. package/dist/server/utils/fs.js +1 -1
  457. package/dist/server/utils/globs.js +1 -1
  458. package/dist/server/utils/index.d.ts +2 -2
  459. package/dist/server/utils/index.js +1 -1
  460. package/dist/server/utils/is-catalog-entities-enabled.js +1 -1
  461. package/dist/server/utils/is-scorecards-enabled.js +1 -1
  462. package/dist/server/utils/lifecycle-hooks.js +1 -1
  463. package/dist/server/utils/rbac.d.ts +76 -7
  464. package/dist/server/utils/rbac.js +1 -1
  465. package/dist/server/utils/report-all-errors.js +1 -1
  466. package/dist/server/utils/set-execution-mode.d.ts +5 -0
  467. package/dist/server/utils/set-execution-mode.js +1 -0
  468. package/dist/server/utils/time/with-timestamp.d.ts +42 -10
  469. package/dist/server/utils/time/with-timestamp.js +1 -1
  470. package/dist/server/version.js +1 -1
  471. package/dist/server/web-server/auth.d.ts +2 -0
  472. package/dist/server/web-server/auth.js +4 -4
  473. package/dist/server/web-server/dev-server.js +1 -1
  474. package/dist/server/web-server/handle-api-route-request.js +1 -1
  475. package/dist/server/web-server/http.js +2 -2
  476. package/dist/server/web-server/middleware/apiKeyMiddleware.js +1 -1
  477. package/dist/server/web-server/middleware/catalogAuthMiddleware.d.ts +4 -6
  478. package/dist/server/web-server/middleware/catalogAuthMiddleware.js +1 -1
  479. package/dist/server/web-server/middleware/corsMiddleware.js +1 -1
  480. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js +1 -1
  481. package/dist/server/web-server/middleware/idleTimeoutMiddleware.js +1 -1
  482. package/dist/server/web-server/middleware/responseHeadersMiddleware.js +1 -1
  483. package/dist/server/web-server/mime-types.js +1 -1
  484. package/dist/server/web-server/routes/ask-ai.js +1 -1
  485. package/dist/server/web-server/routes/auth.js +1 -1
  486. package/dist/server/web-server/routes/catalog/bff-catalog-related-entities.js +1 -1
  487. package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
  488. package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
  489. package/dist/server/web-server/routes/catalog/catalog.js +1 -1
  490. package/dist/server/web-server/routes/catalog/dto/read-entity-dto.d.ts +3 -0
  491. package/dist/server/web-server/routes/catalog/dto/read-entity-dto.js +0 -0
  492. package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.d.ts +43 -0
  493. package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.js +1 -0
  494. package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.d.ts +6823 -0
  495. package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.js +1 -0
  496. package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.d.ts +1102 -0
  497. package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.js +1 -0
  498. package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.d.ts +10 -0
  499. package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.js +1 -0
  500. package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.d.ts +4 -0
  501. package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.js +1 -0
  502. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.d.ts +4 -0
  503. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.js +1 -0
  504. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.d.ts +4 -0
  505. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.js +1 -0
  506. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.d.ts +4 -0
  507. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.js +1 -0
  508. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.d.ts +13 -0
  509. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.js +1 -0
  510. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.d.ts +13 -0
  511. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.js +1 -0
  512. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.d.ts +13 -0
  513. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.js +1 -0
  514. package/dist/server/web-server/routes/cors-proxy.d.ts +5 -0
  515. package/dist/server/web-server/routes/cors-proxy.js +2 -0
  516. package/dist/server/web-server/routes/dynamic-route.js +1 -1
  517. package/dist/server/web-server/routes/error.js +1 -1
  518. package/dist/server/web-server/routes/feedback.js +1 -1
  519. package/dist/server/web-server/routes/helpers/get-current-rbac-teams.d.ts +3 -0
  520. package/dist/server/web-server/routes/helpers/get-current-rbac-teams.js +1 -0
  521. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.d.ts +2 -0
  522. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.js +1 -0
  523. package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.d.ts +11 -0
  524. package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.js +1 -0
  525. package/dist/server/web-server/routes/index.js +1 -1
  526. package/dist/server/web-server/routes/info.js +1 -1
  527. package/dist/server/web-server/routes/mcp-oauth.js +1 -1
  528. package/dist/server/web-server/routes/otel/otel.js +1 -1
  529. package/dist/server/web-server/routes/page-data.js +1 -1
  530. package/dist/server/web-server/routes/path-prefix-redirect.js +1 -1
  531. package/dist/server/web-server/routes/resolve-route.js +1 -1
  532. package/dist/server/web-server/routes/semantic-search.d.ts +4 -0
  533. package/dist/server/web-server/routes/semantic-search.js +1 -0
  534. package/dist/server/web-server/utils.d.ts +2 -2
  535. package/dist/server/workers/mcp-tool-worker-pool.d.ts +4 -0
  536. package/dist/server/workers/mcp-tool-worker-pool.js +1 -0
  537. package/dist/server/workers/mcp-tool-worker.d.ts +2 -0
  538. package/dist/server/workers/mcp-tool-worker.js +1 -0
  539. package/dist/server/workers/types.d.ts +7 -1
  540. package/dist/server/workers/worker-pool.js +1 -1
  541. package/dist/{server/utils → utils}/slugger.d.ts +13 -0
  542. package/package.json +21 -23
  543. package/dist/client/app/ErrorBubble/index.d.ts +0 -3
  544. package/dist/client/app/ErrorBubble/index.js +0 -59
  545. package/dist/client/app/PageCounter/index.d.ts +0 -3
  546. package/dist/client/app/PageCounter/index.js +0 -64
  547. package/dist/server/plugins/asyncapi-docs/template/AsyncApiDocs.js +0 -9
  548. package/dist/server/plugins/asyncapi-docs/template/helpers.js +0 -1
  549. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation.js +0 -1
  550. package/dist/server/plugins/catalog-entities/entities/validate-entity.d.ts +0 -6
  551. package/dist/server/plugins/catalog-entities/entities/validate-entity.js +0 -1
  552. package/dist/server/plugins/markdown/markdoc/custom-components/html-script.js +0 -1
  553. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-code-sample.js +0 -1
  554. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-response-sample.js +0 -1
  555. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/replay-openapi.js +0 -1
  556. package/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js +0 -2
  557. package/dist/server/plugins/markdown/markdoc/helpers/get-variable.js +0 -1
  558. package/dist/server/plugins/markdown/markdoc/hooks/use-store.js +0 -1
  559. package/dist/server/plugins/markdown/markdoc/nodes/fence/index.js +0 -1
  560. package/dist/server/plugins/markdown/markdoc/nodes/heading.js +0 -1
  561. package/dist/server/plugins/markdown/markdoc/tags/json-example.d.ts +0 -3
  562. package/dist/server/plugins/markdown/markdoc/tags/json-schema.d.ts +0 -3
  563. package/dist/server/plugins/markdown/markdoc/tags/openapi-code-sample.d.ts +0 -3
  564. package/dist/server/plugins/markdown/markdoc/tags/openapi-example.d.ts +0 -3
  565. package/dist/server/plugins/markdown/markdoc/tags/openapi-response-sample.d.ts +0 -3
  566. package/dist/server/plugins/markdown/markdoc/tags/replay-openapi.d.ts +0 -3
  567. package/dist/server/plugins/mcp/workers/run-api-routes-worker.d.ts +0 -5
  568. package/dist/server/plugins/mcp/workers/run-api-routes-worker.js +0 -1
  569. package/dist/server/plugins/openapi-docs/template/OpenAPIDocs.js +0 -14
  570. package/dist/server/plugins/openapi-docs/template/helpers.js +0 -5
  571. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.d.ts +0 -6
  572. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.js +0 -1
  573. package/dist/server/utils/envs/is-build-mode.d.ts +0 -2
  574. package/dist/server/utils/envs/is-build-mode.js +0 -1
  575. package/dist/server/utils/envs/is-develop-mode.d.ts +0 -7
  576. package/dist/server/utils/envs/is-develop-mode.js +0 -1
  577. package/dist/server/utils/envs/is-production-mode.d.ts +0 -10
  578. package/dist/server/utils/envs/is-production-mode.js +0 -1
  579. package/dist/server/workers/mcp-worker-pool.d.ts +0 -4
  580. package/dist/server/workers/mcp-worker-pool.js +0 -1
  581. package/dist/utils/env/is-local-development.d.ts +0 -13
  582. package/dist/utils/env/is-local-development.js +0 -1
  583. package/dist/utils/env/is-production.d.ts +0 -13
  584. package/dist/utils/env/is-production.js +0 -1
  585. package/dist/utils/env/is-web-view.d.ts +0 -14
  586. package/dist/utils/env/is-web-view.js +0 -1
  587. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.d.ts +0 -0
  588. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.js +0 -0
  589. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/html-script.d.ts +0 -0
  590. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.d.ts +0 -0
  591. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.js +0 -0
  592. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.d.ts +0 -0
  593. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.js +0 -0
  594. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.d.ts +0 -0
  595. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.js +0 -0
  596. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.d.ts +0 -0
  597. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.js +0 -0
  598. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.d.ts +0 -0
  599. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.js +0 -0
  600. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.d.ts +0 -0
  601. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.js +0 -0
  602. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.d.ts +0 -0
  603. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.js +0 -0
  604. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.d.ts +0 -0
  605. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.js +0 -0
  606. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.d.ts +0 -0
  607. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.js +0 -0
  608. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.d.ts +0 -0
  609. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.js +0 -0
  610. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.d.ts +0 -0
  611. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.js +0 -0
  612. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.d.ts +0 -0
  613. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.js +0 -0
  614. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.d.ts +0 -0
  615. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.js +0 -0
  616. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-code-sample.d.ts +0 -0
  617. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.d.ts +0 -0
  618. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.js +0 -0
  619. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-response-sample.d.ts +0 -0
  620. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/replay-openapi.d.ts +0 -0
  621. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.d.ts +0 -0
  622. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.js +0 -0
  623. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.d.ts +0 -0
  624. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.js +0 -0
  625. /package/dist/{server/plugins/markdown → client/app}/markdoc/hooks/use-store.d.ts +0 -0
  626. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.d.ts +0 -0
  627. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.js +0 -0
  628. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.d.ts +0 -0
  629. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.js +0 -0
  630. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.d.ts +0 -0
  631. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.js +0 -0
  632. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.d.ts +0 -0
  633. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.js +0 -0
  634. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.d.ts +0 -0
  635. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.js +0 -0
  636. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.d.ts +0 -0
  637. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.js +0 -0
  638. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.d.ts +0 -0
  639. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.js +0 -0
  640. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.d.ts +0 -0
  641. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.js +0 -0
  642. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.d.ts +0 -0
  643. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.js +0 -0
  644. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.d.ts +0 -0
  645. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.js +0 -0
  646. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.d.ts +0 -0
  647. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.js +0 -0
  648. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.d.ts +0 -0
  649. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.js +0 -0
  650. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.d.ts +0 -0
  651. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.js +0 -0
  652. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.d.ts +0 -0
  653. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.js +0 -0
  654. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.d.ts +0 -0
  655. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.js +0 -0
  656. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.d.ts +0 -0
  657. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.js +0 -0
  658. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.d.ts +0 -0
  659. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.js +0 -0
  660. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.d.ts +0 -0
  661. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.js +0 -0
  662. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.d.ts +0 -0
  663. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.js +0 -0
  664. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.d.ts +0 -0
  665. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.js +0 -0
  666. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.d.ts +0 -0
  667. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.js +0 -0
  668. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.d.ts +0 -0
  669. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.js +0 -0
  670. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.d.ts +0 -0
  671. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.js +0 -0
  672. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.d.ts +0 -0
  673. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.js +0 -0
  674. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.d.ts +0 -0
  675. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.js +0 -0
  676. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/index.d.ts +0 -0
  677. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.d.ts +0 -0
  678. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.js +0 -0
  679. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/heading.d.ts +0 -0
  680. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.d.ts +0 -0
  681. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.js +0 -0
  682. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.d.ts +0 -0
  683. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.js +0 -0
  684. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.d.ts +0 -0
  685. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.js +0 -0
  686. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.js +0 -0
  687. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-example.js +0 -0
  688. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-schema.js +0 -0
  689. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-code-sample.js +0 -0
  690. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-example.js +0 -0
  691. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-response-sample.js +0 -0
  692. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/replay-openapi.js +0 -0
  693. /package/dist/server/{config → external-plugins}/resolve-module.d.ts +0 -0
  694. /package/dist/server/{config → external-plugins}/resolve-module.js +0 -0
  695. /package/dist/{server/utils → utils}/conflict-resolvers.d.ts +0 -0
  696. /package/dist/{server/utils → utils}/conflict-resolvers.js +0 -0
  697. /package/dist/{server/utils → utils}/slugger.js +0 -0
@@ -1 +1 @@
1
- import a from"node:path";import{createConfig as g}from"@redocly/openapi-core";import{ruleTypes as l}from"@redocly/config";import{deepMerge as u}from"../../../../utils/object/deep-merge.js";import{CONFIG_FILE_NAME as m}from"../../../../constants/common.js";import{getScorecardConfig as p}from"../get-scorecard-config.js";async function E(t,n){const o=await n.getConfig(),e=p(o),r=e.levels??[],i=a.join(n.fs.cwd,m),s=await c(r,o.plugins,i),f=await d(e.targets,r,o.plugins,i);return{levelsConfig:r,configs:s,targets:f}}async function c(t,n=[],o){const e={};for(const r of t)e[r.name]=await g({...r,plugins:n},{configPath:o});return e}async function d(t,n,o=[],e){return t?Promise.all(t?.filter(r=>!!r.rules).map(async r=>{const i=n.map(s=>({...s,...C(s,r.rules)}));return{...r,configs:await c(i,o,e)}})||[]):[]}function C(t,n){return l.reduce((o,e)=>(o[e]=u(t[e]??{},n??{}),o),{})}export{E as scorecardConfigLoader};
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, string>;
11
+ metadata: Record<string, unknown>;
12
12
  };
13
- } & T> | undefined, metadata: Record<string, unknown>): Promise<({
13
+ minimumLevel?: string;
14
+ } & T> | undefined, metadata: Record<string, unknown>): ({
14
15
  where: {
15
- metadata: Record<string, string>;
16
+ metadata: Record<string, unknown>;
16
17
  };
17
- } & T) | undefined>;
18
+ minimumLevel?: string;
19
+ } & T) | undefined;
18
20
  //# sourceMappingURL=scorecard.d.ts.map
@@ -1 +1 @@
1
- import w from"node:path";import{reporter as x}from"../../../tools/notifiers/reporter.js";import{lintDefinition as h}from"../lint.js";import{ExternalResolver as b}from"../../../fs/utils/external-ref-resolver.js";const v="Non-conformant";async function O(o,e){const{data:{levelsConfig:s,configs:n,targets:t}}=await e.cache.load("","scorecard-config"),a={};let i=v,f=!1;const c=await e.fs.read(o),{data:l}=await e.cache.load(o,"yaml"),m=new b(e.fs);let g={};if(t.length){const r=await e.getConfig(w.posix.dirname(o)),d=l?.info?.["x-metadata"],p={title:l.info.title,version:l.info.version,...d,...r.metadata};g=(await k(t,p))?.configs||{}}for(const r of s){const d=await h({parsed:l,content:c,relativePath:o},g[r.name]||n[r.name],e,m);a[r.name]=d,d.errors===0&&!f?i=r.name:f=!0}let u=s.findIndex(r=>r.name===i);return{levels:a,scorecardLevel:i,scorecardLevelIdx:u+1}}async function k(o,e){if(o)for(const s of o){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[i,f]=a.split("/"),c=new Date(e[t]);if(c<new Date(i)||f&&c>new Date(f)){n=!1;break}}else if(String(a).match(/^\/.*\//)){if(!e[t]){n=!1;break}try{if(!new RegExp(a.slice(1,-1)).test(e[t])){n=!1;break}}catch{await x.panicOnBuild(`Invalid regex in scorecard target "${t}": ${a}`),n=!1;break}}else if(e[t]!==a){n=!1;break}if(n)return s}}export{k as getTarget,O as scorecardLoader};
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(r){const e={error:new Set,warn:new Set};for(const n of r)e[n.severity]?.add(n.ruleId);return{errors:e.error.size,warnings:e.warn.size}}function t(r){return r==="/"?"index.json":r.substring(1,r.length-1)+".json"}export{t as getScorecardSlug,o as getUniqueProblemsCount};
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 u,useState as b,useEffect as z}from"react";import{useReactTable as G,getCoreRowModel as $,getSortedRowModel as k,getExpandedRowModel as A}from"@tanstack/react-table";import g from"styled-components";import{useWindowVirtualizer as I}from"@tanstack/react-virtual";import{SpinnerLoader as H}from"@redocly/theme/components/Loaders/SpinnerLoader";import{GridRow as p}from"./GridRow";import{GridHeader as L}from"./GridHeader";const O=({data:i,columns:n,sortBy:l,empty:w,subRowKey:s="subrows",slug:f,groupHeaderTitle:E})=>{const R=u(()=>l||[],[l]),h=G({columns:n,data:i,getCoreRowModel:$(),getSortedRowModel:k(),getExpandedRowModel:A(),getSubRows:e=>{const o=e?.[s];return Array.isArray(o)?o:[]},...l?{initialState:{sorting:R}}:{},autoResetExpanded:!1}),{getHeaderGroups:v,getRowModel:y}=h,x=v(),{rows:C}=y(),r=C.filter(e=>e.depth===0),[d,M]=b(!1);z(()=>{M(!0)},[]);const m=I({count:r.length,estimateSize:()=>54,overscan:15,getItemKey(e){return`vi-row-${r[e].id}-${r.length}`}}),S=d?m.getVirtualItems():[],T=r.slice(0,50),a=u(()=>i.some(o=>{const c=o[s];return Array.isArray(c)&&c.length>0})?`50px repeat(${n.length-1}, 1fr)`:`25% repeat(${n.length-1}, 1fr)`,[n.length,i,s]);return t.createElement("div",{role:"table"},t.createElement(L,{headerGroups:x,gridTemplateColumns:a,groupHeaderTitle:E}),t.createElement(V,{style:{height:d?m.getTotalSize():"auto"},role:"rowgroup"},r.length>0?d?S.map(e=>{const o=r[e.index];return t.createElement(p,{key:e.key,variant:"virtualized",row:o,slug:f,virtualRow:e,virtualizer:m,gridTemplateColumns:a})}):t.createElement(t.Fragment,null,T.map(e=>t.createElement(p,{key:`ssr-row-${e.id}`,variant:"ssr",row:e,gridTemplateColumns:a})),t.createElement(j,null,t.createElement(H,{color:"var(--link-color-primary)",size:"20px"}))):t.createElement(p,{variant:"noData",empty:w,gridTemplateColumns:a})))},V=g.div`
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
- `,j=g.div`
3
+ `,F=w.div`
4
4
  display: flex;
5
5
  justify-content: center;
6
6
  align-items: center;
7
7
  margin: 10px;
8
- `;export{O as Grid};
8
+ `;export{U as Grid};
@@ -1,17 +1,21 @@
1
- import o from"react";import l from"styled-components";import{flexRender as a}from"@tanstack/react-table";const C=({headerGroups:e,gridTemplateColumns:t,groupHeaderTitle:n})=>o.createElement(s,null,n&&o.createElement(g,{gridTemplateColumns:t,role:"row"},o.createElement(d,{gridColumn:"1",role:"cell"}),o.createElement(d,{gridColumn:"2 / -1",role:"cell"},o.createElement("span",null,n))),e.map((i,c)=>o.createElement(p,{key:`header-group-${c}`,gridTemplateColumns:t,role:"row"},i.headers.map((r,m)=>o.createElement(u,{key:r.id,gridColumn:m+1,onClick:r.column.getToggleSortingHandler(),role:"cell"},a(r.column.columnDef.header,r.getContext()),r.column.getCanSort()?o.createElement(x,null,r.column.getIsSorted()?r.column.getIsSorted()==="desc"?"\u25BE":"\u25B4":"\u21D5"):null))))),s=l.div`
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: ${e=>e.gridTemplateColumns};
10
+ grid-template-columns: ${o=>o.gridTemplateColumns};
7
11
  width: 100%;
8
12
  min-width: 775px;
9
- `,d=l.div`
10
- padding: 5px 15px;
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: ${e=>e.gridColumn};
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: ${e=>e.gridTemplateColumns};
30
+ grid-template-columns: ${o=>o.gridTemplateColumns};
27
31
  width: 100%;
28
32
  `,u=l.div`
29
- padding: 5px 15px;
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: ${e=>e.gridColumn};
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{C as GridHeader};
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 15px;
25
+ padding: 5px;
26
26
  text-align: left;
27
27
  grid-column: ${e=>e.gridColumn};
28
28
 
@@ -16,6 +16,7 @@ export declare const SEVERITY_TO_COLOR_ICON: {
16
16
  type LevelIndicatorProps = {
17
17
  uniqueErrors: number;
18
18
  uniqueWarnings: number;
19
+ customDisplay?: string;
19
20
  id: string;
20
21
  };
21
22
  export declare const LevelIndicator: React.FC<LevelIndicatorProps>;
@@ -1,8 +1,8 @@
1
- import*as r from"react";import a from"styled-components";import{CloseFilledIcon as p}from"@redocly/theme/icons/CloseFilledIcon/CloseFilledIcon";import{WarningAltFilled as s}from"@redocly/theme/icons/WarningAltFilled/WarningAltFilled";import{CheckboxFilledIcon as m}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"}},$=({uniqueErrors:e,uniqueWarnings:l,id:n})=>{const c=[];return e===0&&c.push(r.createElement(t,{key:`${n}-pass`,color:`var(${o.Pass.background})`},r.createElement(m,{size:"13px",color:`var(${o.Pass.icon})`}))),e>0&&c.push(r.createElement(t,{key:`${n}-error`,color:`var(${o.Error.background})`},r.createElement(p,{size:"12px",color:`var(${o.Error.icon})`}),r.createElement(i,{color:`var(${o.Error.icon})`},e))),l>0&&c.push(r.createElement(t,{key:`${n}-warning`,color:`var(${o.Warn.background})`},r.createElement(s,{size:"12px",color:`var(${o.Warn.icon})`}),r.createElement(i,{color:`var(${o.Warn.icon})`},l))),r.createElement(d,null,c)},d=a.div`
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=a.div`
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=a.span`
13
+ `,i=t.span`
14
14
  color: ${({color:e})=>e};
15
15
  font-size: 12px;
16
16
  margin-left: 4px;
17
- `;export{$ as LevelIndicator,o as SEVERITY_TO_COLOR_ICON};
17
+ `;export{v as LevelIndicator,o as SEVERITY_TO_COLOR_ICON};
@@ -1 +1 @@
1
- import*as t from"react";import{useState as i}from"react";import{getScorecardColorVariable as s}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 p}from"@redocly/theme/icons/AddIcon/AddIcon";import{Gauge as E}from"./Gauge";import{Code as f,Dot as o,FilePreview as d,InstanceControlsWrap as v,InstanceMessage as x,InstanceReference as C,InstanceWrap as I,ContentWithDotWrap as a,EmojiWrap as b}from"./index.styles";import{SEVERITY_TO_COLOR as g,severityColor as S,severityIcon as R}from"./utils";function D({level:e,colorVariable:r}){return t.createElement(a,null,t.createElement(o,{colorVariable:r}),t.createElement("span",null,e))}function L({summary:e}){const r=Object.keys(e.levels).length;return t.createElement(E,{chunks:Object.entries(e.levels).map(([l,n],c)=>({share:n/e.total*100,colorVariable:s(c,r),title:`${n} ${l}`}))})}function P({severity:e}){return t.createElement(o,{colorVariable:g[e]})}function A({errors:e,warnings:r}){return t.createElement(a,null,t.createElement(o,{colorVariable:`--scorecard-color-${e>0?"error":r>0?"warning":"success"}`}),e>0?"Problem":r>0?"Warning":"Normal")}function N({errors:e,warnings:r}){return t.createElement(o,{colorVariable:`--scorecard-color-${e>0?"error":r>0?"warning":"success"}`})}function V({problem:e}){const[r,l]=i(!1);return t.createElement(v,{onClick:()=>l(n=>!n),className:r?"expanded":""},t.createElement(m,{variant:"text",size:"medium",icon:r?t.createElement(u,null):t.createElement(p,null)}),t.createElement(I,{borderColor:S(e.severity)},t.createElement("div",null,t.createElement(x,null,t.createElement(b,null,R(e.severity))," ",e.message)),r?t.createElement(d,{onClick:n=>n.stopPropagation()},t.createElement(C,null,t.createElement("strong",null,e.location.source.absoluteRef),e.location.pointer),t.createElement(f,null,e.codeframe)):null))}const T=e=>t.createElement(V,{problem:e});export{D as ApiLevel,V as Instance,P as InstanceStatus,N as LevelStatus,A as RuleStatus,L as StatusDistribution,T as renderRowSubComponent};
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 t}from"reactjs-popup";import{Button as e}from"@redocly/theme/components/Button/Button";const c=r.div.attrs({"data-component-name":"Scorecard/Card"})`
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
- `,f=r.div`
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
- `,b=r.div`
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
- `,h=r.div`
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
- `,y=r.div`
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
- `,w=r.div`
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
- `,C=r(n)`
216
+ `,k=r(n)`
144
217
  padding: 20px 40px;
145
218
  display: block;
146
- `,k=r(t)`
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
- `,S=r.span`
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
- `,$=r.div``,z=r.div`
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
- `,W=r.pre`
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
- `,T=r.div`
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
- ${e} {
263
+ ${t} {
191
264
  margin-right: 10px;
192
265
  align-items: flex-start;
193
266
  }
194
- `,P=r.th`
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
- `,E=r(i)`
273
+ `,B=r(i)`
201
274
  display: flex;
202
275
  flex-direction: row;
203
276
  justify-content: space-between;
204
277
  gap: 10px;
205
- `,B=r.div`
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
- `,M=r.span`
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{C as AppPageWrapper,f as CardRow,a as CardValue,b as CardsWrapper,v as CatalogDescription,n as CatalogPageWrapper,W as Code,B as ContentWithDotWrap,m as Dot,M as EmojiWrap,I as FilePreview,g as GaugeNumber,P as GroupTh,T as InstanceControlsWrap,$ as InstanceMessage,z as InstanceReference,j as InstanceWrap,E as LevelComplianceCardTitle,y as ModeSwitcherTab,h as ModeSwitcherTabs,x as ProblemsByStatusCardBody,s as ScoreCardStatusCardBody,c as ScorecardCard,i as ScorecardCardTitle,S as SortIcon,u as StyledInput,k as StyledPopup,w as TableWrap};
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 H,useCallback as J}from"react";import{isDefined as U}from"../../../../utils/guards/is-defined.js";import{useCatalogClassic as G}from"../../../../client/app/hooks";import{usePageSharedData as L}from"../../../../client/providers/page-data/hooks";import{NON_CONFORMANT as v,OTHER_TEAMS_LABEL as K}from"./utils";function j(h,d){return Object.entries(h).find(([g])=>d.startsWith(g))?.[1]}function ee(h){const{catalogConfig:d,scorecardConfig:g,scorecardInfo:c}=h.pageProps,C=L("catalog"),S=C.some(e=>e.metadata?.publishedAt||e.metadata?.createdAt),A=g.teamMetadataProperty?.label||"Team",f=g.teamMetadataProperty?.property||"team",y=g.teamMetadataProperty?.default,T=C.some(e=>e.metadata?.[f]||e.metadata?.owner),k=p(()=>({...d,filters:[{title:"Scorecard level",property:"scorecardLevel",options:[v,...c.levelNames],type:"checkboxes"},S?{title:"Published date",property:"publishedAt",type:"date-range"}:void 0,T&&!d.filters?.find(e=>e.property===f)?{title:A,property:f,type:"select",...y&&{missingCategoryName:y}}:void 0,...d.filters||[]].filter(U)}),[d,T,S,A,y,f,c.levelNames]),N=L("scorecard"),q=C.filter(e=>!!j(N,e.link||"")),{filterTerm:M,setFilterTerm:D,groups:P,filters:E}=G(k,q),u=p(()=>P.flatMap(e=>e.items).map(e=>({api:{...e,publishedAt:e.publishedAt||e.createdAt,team:e[f]||e.owner},scorecard:j(N,e.link)})).filter(e=>e.scorecard),[JSON.stringify(P),N,f]),w=c.levelNames,z=p(()=>{const e={total:u.length,levels:{}};return[v,...w].forEach(r=>{e.levels[r]=u.filter(s=>s.scorecard?.scorecardLevel===r).length}),e},[u,w]),O=p(()=>w.map(e=>{const r={error:new Set,warn:new Set},s={errors:0,warnings:0};for(const t of u){if(!t.scorecard)continue;const o=t.scorecard.levels[e];if(o){s.errors+=o.errors||0,s.warnings+=o.warnings||0;for(const n of o.problems)r[n.severity]?.add(n.ruleId)}}return{name:e,count:s,uniqueCount:{errors:r.error.size,warnings:r.warn.size}}}),[u,w]),R=p(()=>O.reduce((e,r)=>e+r.count.errors+r.count.warnings,0),[O]),V=p(()=>{const e={};for(const r of c.rules)e[r]={count:0,apis:[],ruleId:r,status:0,apisCount:0,warningApisCount:0,errorApisCount:0,teams:{},levels:c.levelNames.reduce((s,t)=>(s[t]={warnings:0,errors:0},s),{})};for(const r of u){if(!r.scorecard)continue;const{scorecard:s,api:t}=r,o=new Set;for(const n of Object.keys(s?.levels||{})){const l=s.levels[n];for(const m of l?.problems||[]){const a=m.ruleId;if(!o.has(a))if(e[a]=e[a]||{count:0,apis:[],ruleId:a,status:0,apisCount:0,levels:{}},e[a].count++,typeof t.team=="string"&&(e[a].teams[t.team]=(e[a].teams[t.team]||0)+1),e[a].levels[n]=e[a].levels[n]||{warnings:0,errors:0},m.severity==="error"?(e[a].levels[n].errors++,e[a].errorApisCount++):(e[a].levels[n].warnings++,e[a].warningApisCount++),!e[a].apis.find(b=>b.link===t.link))e[a].apis.push({...t,count:1,severity:m.severity,problems:[m]});else{const b=e[a].apis.find(_=>_.link===t.link);b&&(b.count++,b.problems.push(m))}}for(const m of l?.problems||[])o.add(m.ruleId)}}for(const r of Object.values(e))r.apisCount=r.apis.length,r.status=r.apisCount>0?1:0,r.warningApisCount=r.apis.filter(s=>["warn","warning"].includes(s.severity)).length,r.errorApisCount=r.apis.filter(s=>s.severity==="error").length;return Object.values(e).sort((r,s)=>{let t=r.ruleId,o=s.ruleId;return t<o?-1:t>o?1:0})},[u,c.levelNames,c.rules]),[i,B]=H({property:"below",direction:"desc"}),W=J(e=>{i.property===e?B(r=>({...r,direction:r.direction==="asc"?"desc":"asc"})):B({property:e,direction:"asc"})},[i]),{sortedStatsByTeam:x,statsByTeam:I}=p(()=>{const e={},r={};for(const s of u){if(!s.scorecard)continue;const{api:t}=s,o=t.team?String(t.team):y||K;if(!o)continue;e[o]=e[o]||{team:o,below:0,minimum:0,highest:0,levels:{}};const n=r[o]=r[o]||{};for(const l of[v,...c.levelNames]){e[o].levels[l]=e[o].levels[l]||{errors:0,warnings:0,uniqueErrors:0,uniqueWarnings:0,apis:0},n[l]=n[l]||{error:new Set,warn:new Set},e[o].levels[l].errors+=s.scorecard?.levels[l]?.errors||0,e[o].levels[l].warnings+=s.scorecard?.levels[l]?.warnings||0,e[o].levels[l].apis+=s.scorecard.scorecardLevel===l?1:0;for(const m of s.scorecard?.levels[l]?.problems||[])n[l][m.severity]?.add(m.ruleId)}}for(const s of Object.keys(e))for(const t of Object.keys(e[s].levels))e[s].levels[t].uniqueErrors=r[s][t].error.size,e[s].levels[t].uniqueWarnings=r[s][t].warn.size;return{sortedStatsByTeam:Object.values(e).sort((s,t)=>{let o=s[i.property],n=t[i.property];return["team","below","minimum","highest"].includes(i.property)||(o=s.levels[i.property].errors*1e3+s.levels[i.property].warnings,n=t.levels[i.property].errors*1e3+t.levels[i.property].warnings),o<n?i.direction==="asc"?-1:1:o>n?i.direction==="asc"?1:-1:0}),statsByTeam:e}},[u,c.levelNames,i.direction,i.property,y]),F=p(()=>Object.values(I).sort((e,r)=>r.levels[v].apis-e.levels[v].apis).filter(e=>e.levels[v].apis>0),[I]);return{apis:u,summary:z,problemsByStatus:O,totalProblems:R,problemsByRule:V,sortedStatsByTeam:x,handleSortRulesTeams:W,nonConformantByTeam:F,filterTerm:M,setFilterTerm:D,groups:P,filters:E,scorecardInfo:c,catalogConfig:k,hasTeam:T,hasPublishedAt:S,teamLabel:A,teamProperty:f}}export{ee as useData};
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 = "Below minimum",
5
- Highest = "Highest",
6
- Minimum = "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 m;(function(i){i.BelowMinimum="Below minimum",i.Highest="Highest",i.Minimum="Minimum"})(m||(m={}));export{m as ScorecardStatus};
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