@redocly/realm 0.136.0-next.1 → 0.136.0-next.11

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 (540) hide show
  1. package/CHANGELOG.md +208 -0
  2. package/dist/bin.js +1 -1
  3. package/dist/cli/build/analytics/collect-analytics.js +1 -1
  4. package/dist/cli/build/index.js +1 -1
  5. package/dist/cli/eject/ejectComponent.d.ts +1 -1
  6. package/dist/cli/eject/ejectTheme.d.ts +1 -1
  7. package/dist/cli/eject/resolveEjectParams.js +1 -1
  8. package/dist/cli/eject/themeOperations.d.ts +2 -2
  9. package/dist/cli/stats/collectors/openapi/index.js +1 -1
  10. package/dist/cli/stats/index.js +1 -1
  11. package/dist/client/App.js +1 -1
  12. package/dist/client/ErrorBoundary.js +1 -1
  13. package/dist/client/ScriptLoader.js +1 -1
  14. package/dist/client/TestProvider.d.ts +1 -1
  15. package/dist/client/TestProvider.js +1 -1
  16. package/dist/client/api-docs-builder-entry.d.ts +3 -0
  17. package/dist/client/api-docs-builder-entry.js +1 -0
  18. package/dist/client/app/ConditionalLink.d.ts +1 -1
  19. package/dist/client/app/Feedback/useSubmitFeedback.js +1 -1
  20. package/dist/client/app/Link.js +1 -1
  21. package/dist/client/app/Sidebar/Sidebar.js +3 -3
  22. package/dist/client/app/Sidebar/helpers/hide-empty-separators.d.ts +13 -0
  23. package/dist/client/app/Sidebar/helpers/hide-empty-separators.js +1 -0
  24. package/dist/client/app/Sidebar/useActions.js +1 -1
  25. package/dist/client/app/Sidebar/useBreadcrumbs.js +1 -1
  26. package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
  27. package/dist/client/app/Sidebar/utils.d.ts +1 -1
  28. package/dist/client/app/Sidebar/utils.js +1 -1
  29. package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
  30. package/dist/client/app/hooks/catalog/useCatalogFilter.d.ts +1 -1
  31. package/dist/client/app/hooks/catalog/useCatalogFilter.js +1 -1
  32. package/dist/client/app/hooks/catalog/useCatalogSearch.js +1 -1
  33. package/dist/client/app/hooks/catalog/useCatalogSort.js +1 -1
  34. package/dist/client/app/hooks/catalog/useCatalogViewMode.js +1 -1
  35. package/dist/client/app/hooks/catalog/useFetchCatalogEntities.d.ts +1 -1
  36. package/dist/client/app/hooks/catalog/useFetchCatalogEntities.js +1 -1
  37. package/dist/client/app/hooks/catalog/useFetchCatalogEntitiesRelations.d.ts +2 -2
  38. package/dist/client/app/hooks/catalog/useFetchCatalogEntitiesRelations.js +1 -1
  39. package/dist/client/app/hooks/catalog/useFetchCatalogEntityRevisions.d.ts +1 -1
  40. package/dist/client/app/hooks/catalog/useSearchTracker.d.ts +2 -5
  41. package/dist/client/app/hooks/catalog/useSearchTracker.js +1 -1
  42. package/dist/client/app/hooks/codeHighlight/useCodeHighlight.d.ts +1 -6
  43. package/dist/client/app/hooks/codeHighlight/useCodeHighlight.js +1 -1
  44. package/dist/client/app/hooks/index.d.ts +1 -0
  45. package/dist/client/app/hooks/index.js +1 -1
  46. package/dist/client/app/hooks/products/useCurrentProduct.js +1 -1
  47. package/dist/client/app/hooks/useAutoScroll.js +1 -1
  48. package/dist/client/app/hooks/useBanner.js +1 -1
  49. package/dist/client/app/hooks/useL10nConfig.js +1 -1
  50. package/dist/client/app/hooks/useLoginUrl.js +1 -1
  51. package/dist/client/app/hooks/usePageTimeTracker.js +1 -1
  52. package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
  53. package/dist/client/app/hooks/useUserClaims.js +1 -1
  54. package/dist/client/app/l10n/hooks/index.d.ts +1 -0
  55. package/dist/client/app/l10n/hooks/index.js +1 -1
  56. package/dist/client/app/l10n/hooks/useTranslate.js +1 -1
  57. package/dist/client/app/l10n/hooks/useTranslationKeys.d.ts +2 -0
  58. package/dist/client/app/l10n/hooks/useTranslationKeys.js +1 -0
  59. package/dist/client/app/l10n/initL10n.js +1 -1
  60. package/dist/client/app/markdoc/custom-components/openapi/json-schema.d.ts +1 -1
  61. package/dist/client/app/markdoc/custom-components/openapi/json-schema.js +1 -1
  62. package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.d.ts +1 -5
  63. package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -1
  64. package/dist/client/app/markdoc/custom-components/openapi/openapi-example.js +1 -1
  65. package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -1
  66. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.d.ts +8 -24
  67. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -1
  68. package/dist/client/app/markdoc/hooks/use-store.d.ts +8 -6
  69. package/dist/client/app/markdoc/utils/build-replay-operation-source-map.d.ts +20 -0
  70. package/dist/client/app/markdoc/utils/build-replay-operation-source-map.js +1 -0
  71. package/dist/client/app/markdoc/utils/find-api-item.d.ts +15 -0
  72. package/dist/client/app/markdoc/utils/find-api-item.js +1 -0
  73. package/dist/client/app/markdoc/utils/find-code-sample-panel.d.ts +11 -0
  74. package/dist/client/app/markdoc/utils/find-code-sample-panel.js +1 -0
  75. package/dist/client/app/markdoc/utils/find-openapi-response-samples.d.ts +15 -0
  76. package/dist/client/app/markdoc/utils/find-openapi-response-samples.js +1 -0
  77. package/dist/client/app/markdoc/utils/openapi-panel-entry.d.ts +18 -0
  78. package/dist/client/app/markdoc/utils/openapi-panel-entry.js +1 -0
  79. package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
  80. package/dist/client/app/pages/DevLogin/DevLoginForm.d.ts +1 -1
  81. package/dist/client/app/seo/hooks/useHreflangLinks.js +1 -1
  82. package/dist/client/app/useGlobalData.d.ts +1 -1
  83. package/dist/client/app/useMobileMenu.js +1 -1
  84. package/dist/client/app/usePreloadHistory.d.ts +2 -2
  85. package/dist/client/app/usePreloadHistory.js +1 -1
  86. package/dist/client/app/utils/loadAndNavigate.d.ts +2 -2
  87. package/dist/client/app/utils/loadAndNavigate.js +1 -1
  88. package/dist/client/app/utils/resolveRouteBySlug.js +1 -1
  89. package/dist/client/app/utils/same-resolved-route.d.ts +5 -0
  90. package/dist/client/app/utils/same-resolved-route.js +1 -0
  91. package/dist/client/browser-entry.js +2 -2
  92. package/dist/client/providers/hooks.d.ts +1 -1
  93. package/dist/client/providers/hooks.js +1 -1
  94. package/dist/client/providers/page-data/hooks.d.ts +2 -2
  95. package/dist/client/providers/page-data/hooks.js +1 -1
  96. package/dist/client/providers/post-message/PostMessageProvider.js +1 -1
  97. package/dist/client/providers/post-message/use-post-message.d.ts +1 -1
  98. package/dist/client/providers/theme/ThemeDataProvider.js +1 -1
  99. package/dist/client/runtime/loader.js +1 -1
  100. package/dist/client/templates/api-docs/helpers.d.ts +10 -0
  101. package/dist/client/templates/api-docs/helpers.js +1 -0
  102. package/dist/client/templates/api-docs/template.d.ts +17 -0
  103. package/dist/client/templates/api-docs/template.js +14 -0
  104. package/dist/client/templates/openapi-docs/helpers.d.ts +1 -1
  105. package/dist/client/templates/openapi-docs/helpers.js +2 -2
  106. package/dist/client/types/sidebar.d.ts +0 -1
  107. package/dist/client/utils/utils.d.ts +0 -2
  108. package/dist/client/utils/utils.js +1 -1
  109. package/dist/constants/common.d.ts +14 -1
  110. package/dist/constants/common.js +1 -1
  111. package/dist/constants/l10n/langs/ar.js +1 -1
  112. package/dist/constants/l10n/langs/de.js +1 -1
  113. package/dist/constants/l10n/langs/en.js +1 -1
  114. package/dist/constants/l10n/langs/es.js +1 -1
  115. package/dist/constants/l10n/langs/fr.js +1 -1
  116. package/dist/constants/l10n/langs/hi.js +1 -1
  117. package/dist/constants/l10n/langs/it.js +1 -1
  118. package/dist/constants/l10n/langs/ja.js +1 -1
  119. package/dist/constants/l10n/langs/ko.js +1 -1
  120. package/dist/constants/l10n/langs/pl.js +1 -1
  121. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  122. package/dist/constants/l10n/langs/pt.js +1 -1
  123. package/dist/constants/l10n/langs/ru.js +1 -1
  124. package/dist/constants/l10n/langs/uk.js +1 -1
  125. package/dist/constants/l10n/langs/zh.js +1 -1
  126. package/dist/markdoc/tags/index.d.ts +48 -2
  127. package/dist/server/api-routes/helpers/enhance-context.js +1 -1
  128. package/dist/server/api-routes/helpers/read-stream-with-size-limit.d.ts +1 -1
  129. package/dist/server/api-routes/run-api-routes-worker.d.ts +1 -1
  130. package/dist/server/api-routes/run-api-routes-worker.js +1 -1
  131. package/dist/server/config/env-config.d.ts +2 -4
  132. package/dist/server/config/env-schema.d.ts +5 -10
  133. package/dist/server/config/env-schemas/feature-flags.d.ts +4 -8
  134. package/dist/server/config/env-schemas/feature-flags.js +1 -1
  135. package/dist/server/constants/common.d.ts +2 -0
  136. package/dist/server/constants/common.js +1 -1
  137. package/dist/server/constants/entitlements.js +1 -1
  138. package/dist/server/constants/plugins/api-docs.d.ts +3 -0
  139. package/dist/server/constants/plugins/api-docs.js +1 -0
  140. package/dist/server/esbuild/esbuild-logger.js +3 -3
  141. package/dist/server/esbuild/esbuild.js +3 -3
  142. package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-check.d.ts +9 -0
  143. package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-check.js +1 -0
  144. package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-overlay.d.ts +2 -0
  145. package/dist/server/esbuild/plugins/api-docs-module-replacer/empty-overlay.js +1 -0
  146. package/dist/server/esbuild/plugins/api-docs-module-replacer/index.d.ts +6 -0
  147. package/dist/server/esbuild/plugins/api-docs-module-replacer/index.js +1 -0
  148. package/dist/server/esbuild/plugins/themes-resolver.js +4 -2
  149. package/dist/server/persistence/cache/mappers/create-cache-db-record.d.ts +1 -1
  150. package/dist/server/persistence/file-hashes/mappers/create-file-hash-db-record.d.ts +1 -1
  151. package/dist/server/persistence/kv/mappers/create-kv-db-record.d.ts +1 -1
  152. package/dist/server/plugins/api-docs/get-server-props.d.ts +4 -0
  153. package/dist/server/plugins/api-docs/get-server-props.js +1 -0
  154. package/dist/server/plugins/api-docs/get-template-path.d.ts +2 -0
  155. package/dist/server/plugins/api-docs/get-template-path.js +1 -0
  156. package/dist/server/plugins/api-docs/import-api-docs-builder.d.ts +8 -0
  157. package/dist/server/plugins/api-docs/import-api-docs-builder.js +1 -0
  158. package/dist/server/plugins/api-docs/index.d.ts +19 -0
  159. package/dist/server/plugins/api-docs/index.js +1 -0
  160. package/dist/server/plugins/api-docs/loader.d.ts +35 -0
  161. package/dist/server/plugins/api-docs/loader.js +3 -0
  162. package/dist/server/plugins/api-docs/options.d.ts +14 -0
  163. package/dist/server/plugins/api-docs/options.js +1 -0
  164. package/dist/server/plugins/api-docs/search/get-ai-search-documents.d.ts +20 -0
  165. package/dist/server/plugins/api-docs/search/get-ai-search-documents.js +105 -0
  166. package/dist/server/plugins/api-docs/search/search-facets.d.ts +10 -0
  167. package/dist/server/plugins/api-docs/search/search-facets.js +1 -0
  168. package/dist/server/plugins/api-docs/search/search-indexer.d.ts +9 -0
  169. package/dist/server/plugins/api-docs/search/search-indexer.js +1 -0
  170. package/dist/server/plugins/api-docs/search/search-resolver.d.ts +5 -0
  171. package/dist/server/plugins/api-docs/search/search-resolver.js +1 -0
  172. package/dist/server/plugins/api-docs/spec-download.api.d.ts +4 -0
  173. package/dist/server/plugins/api-docs/spec-download.api.js +1 -0
  174. package/dist/server/plugins/api-docs/store-definition-bundles.d.ts +3 -0
  175. package/dist/server/plugins/api-docs/store-definition-bundles.js +1 -0
  176. package/dist/server/plugins/api-docs/utils/build-item-positions.d.ts +17 -0
  177. package/dist/server/plugins/api-docs/utils/build-item-positions.js +1 -0
  178. package/dist/server/plugins/api-docs/utils/build-routes-mapping.d.ts +3 -0
  179. package/dist/server/plugins/api-docs/utils/build-routes-mapping.js +1 -0
  180. package/dist/server/plugins/api-docs/utils/collect-item-routes.d.ts +12 -0
  181. package/dist/server/plugins/api-docs/utils/collect-item-routes.js +1 -0
  182. package/dist/server/plugins/api-docs/utils/decorators.d.ts +26 -0
  183. package/dist/server/plugins/api-docs/utils/decorators.js +1 -0
  184. package/dist/server/plugins/api-docs/utils/format-bundle-error.d.ts +6 -0
  185. package/dist/server/plugins/api-docs/utils/format-bundle-error.js +5 -0
  186. package/dist/server/plugins/api-docs/utils/normalize-api-version.d.ts +2 -0
  187. package/dist/server/plugins/api-docs/utils/normalize-api-version.js +1 -0
  188. package/dist/server/plugins/api-docs/utils/normalize-feedback-options.d.ts +2 -0
  189. package/dist/server/plugins/api-docs/utils/normalize-feedback-options.js +1 -0
  190. package/dist/server/plugins/api-docs/utils/relative-path-to-base-slug.d.ts +20 -0
  191. package/dist/server/plugins/api-docs/utils/relative-path-to-base-slug.js +1 -0
  192. package/dist/server/plugins/api-docs/utils/replace-file-extension.d.ts +2 -0
  193. package/dist/server/plugins/api-docs/utils/replace-file-extension.js +1 -0
  194. package/dist/server/plugins/api-docs/utils/resolve-api-doc-title.d.ts +3 -0
  195. package/dist/server/plugins/api-docs/utils/resolve-api-doc-title.js +1 -0
  196. package/dist/server/plugins/api-docs/utils/resolve-config-rbac.d.ts +10 -0
  197. package/dist/server/plugins/api-docs/utils/resolve-config-rbac.js +1 -0
  198. package/dist/server/plugins/api-docs/utils/to-relative-slug.d.ts +2 -0
  199. package/dist/server/plugins/api-docs/utils/to-relative-slug.js +1 -0
  200. package/dist/server/plugins/api-functions/index.js +1 -1
  201. package/dist/server/plugins/arazzo-docs/index.js +1 -1
  202. package/dist/server/plugins/asyncapi-docs/index.js +1 -1
  203. package/dist/server/plugins/catalog-classic/index.js +1 -1
  204. package/dist/server/plugins/catalog-entities/database/catalog-entities-diff-publisher.d.ts +1 -1
  205. package/dist/server/plugins/catalog-entities/database/catalog-entities-revisions-pruner.d.ts +4 -2
  206. package/dist/server/plugins/catalog-entities/database/catalog-entities-revisions-pruner.js +23 -3
  207. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.d.ts +5 -5
  208. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.d.ts +1 -1
  209. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-db-record.d.ts +1 -1
  210. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-db-record-from-file-schema.d.ts +1 -1
  211. package/dist/server/plugins/catalog-entities/database/remote-publish-lock-service.d.ts +3 -3
  212. package/dist/server/plugins/catalog-entities/database/repositories/bffEntities/bff-entities-read-repository.d.ts +2 -2
  213. package/dist/server/plugins/catalog-entities/database/repositories/catalog-entities-repository.js +1 -1
  214. package/dist/server/plugins/catalog-entities/database/repositories/common/filters-repository.d.ts +1 -1
  215. package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts +1 -1
  216. package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-read-repository.d.ts +1 -1
  217. package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-write-repository.d.ts +2 -2
  218. package/dist/server/plugins/catalog-entities/database/repositories/entities/entities-write-repository.js +1 -1
  219. package/dist/server/plugins/catalog-entities/database/repositories/entityAttributes/entity-attributes-write-repository.d.ts +1 -1
  220. package/dist/server/plugins/catalog-entities/database/repositories/relations/relations-read-repository.d.ts +1 -1
  221. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
  222. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.d.ts +13 -5
  223. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
  224. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +5 -2
  225. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
  226. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.d.ts +6 -5
  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 +12 -5
  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.d.ts +1 -1
  231. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  232. package/dist/server/plugins/catalog-entities/template/index.js +1 -1
  233. package/dist/server/plugins/catalog-entities/types/openapi.d.ts +1 -1
  234. package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.d.ts +1 -1
  235. package/dist/server/plugins/catalog-entities/utils/openapi-component-content-extractor.d.ts +4 -4
  236. package/dist/server/plugins/catalog-entities/utils/openapi-component-content-extractor.js +1 -1
  237. package/dist/server/plugins/catalog-entities/utils/openapi-schema-resolver.d.ts +4 -3
  238. package/dist/server/plugins/catalog-entities/utils/openapi-schema-resolver.js +1 -1
  239. package/dist/server/plugins/config-parser/index.js +1 -1
  240. package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
  241. package/dist/server/plugins/create-slugify.d.ts +17 -0
  242. package/dist/server/plugins/create-slugify.js +1 -0
  243. package/dist/server/plugins/default-theme/index.js +1 -1
  244. package/dist/server/plugins/dev-onboarding/index.d.ts +1 -1
  245. package/dist/server/plugins/dev-onboarding/index.js +1 -1
  246. package/dist/server/plugins/dev-onboarding/template/App.js +1 -1
  247. package/dist/server/plugins/dev-onboarding/template/AppsList.js +1 -1
  248. package/dist/server/plugins/dev-onboarding/template/components/ApiKeyItem.js +1 -1
  249. package/dist/server/plugins/dev-onboarding/template/components/ApiLogDetails.js +1 -1
  250. package/dist/server/plugins/dev-onboarding/template/components/ApiLogs.js +1 -1
  251. package/dist/server/plugins/dev-onboarding/template/components/CreateApiKey.js +1 -1
  252. package/dist/server/plugins/dev-onboarding/template/components/DeleteAppDialog.js +1 -1
  253. package/dist/server/plugins/dev-onboarding/template/components/EditApis.js +1 -1
  254. package/dist/server/plugins/dev-onboarding/template/components/EditAppDescriptionDialog.js +1 -1
  255. package/dist/server/plugins/dev-onboarding/template/components/EditAppDialog.js +1 -1
  256. package/dist/server/plugins/dev-onboarding/template/components/EditCallbackUrlDialog.js +1 -1
  257. package/dist/server/plugins/dev-onboarding/template/components/RevokeAPIKey.d.ts +1 -1
  258. package/dist/server/plugins/dev-onboarding/template/components/RevokeAPIKey.js +1 -1
  259. package/dist/server/plugins/dev-onboarding/template/components/RollAPIKey.d.ts +1 -1
  260. package/dist/server/plugins/dev-onboarding/template/components/RollAPIKey.js +1 -1
  261. package/dist/server/plugins/dev-onboarding/template/components/UpdateApiKey.js +1 -1
  262. package/dist/server/plugins/dev-onboarding/template/index.js +1 -1
  263. package/dist/server/plugins/entitlements/index.js +1 -1
  264. package/dist/server/plugins/graphql-docs/index.js +1 -1
  265. package/dist/server/plugins/graphql-docs/search/ai/utils.d.ts +1 -1
  266. package/dist/server/plugins/helpers/parse-partials.d.ts +3 -0
  267. package/dist/server/plugins/helpers/parse-partials.js +1 -0
  268. package/dist/server/plugins/l10n/index.js +1 -1
  269. package/dist/server/plugins/lifecycle.js +2 -2
  270. package/dist/server/plugins/markdown/attribute-resolvers/helpers/load-openapi-bundle.d.ts +5 -3
  271. package/dist/server/plugins/markdown/attribute-resolvers/helpers/load-openapi-bundle.js +1 -1
  272. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-example-ref.js +1 -1
  273. package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
  274. package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-code-samples.js +1 -1
  275. package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-response-samples.js +1 -1
  276. package/dist/server/plugins/markdown/index.js +1 -1
  277. package/dist/server/plugins/markdown/markdoc/markdoc-options.d.ts +9 -9
  278. package/dist/server/plugins/markdown/markdoc/plugins/utils.d.ts +5 -0
  279. package/dist/server/plugins/markdown/markdoc/plugins/utils.js +1 -1
  280. package/dist/server/plugins/markdown/runtime-transform.js +1 -1
  281. package/dist/server/plugins/markdown/search/create-render-tag-fn.d.ts +2 -1
  282. package/dist/server/plugins/markdown/search/create-render-tag-fn.js +1 -1
  283. package/dist/server/plugins/markdown/search/get-ai-search-documents.js +9 -9
  284. package/dist/server/plugins/markdown/search/walk-sections.js +1 -1
  285. package/dist/server/plugins/markdown/utils/resolve-markdown-template.d.ts +1 -1
  286. package/dist/server/plugins/mcp/auth/auth-handlers.d.ts +3 -0
  287. package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
  288. package/dist/server/plugins/mcp/codemode/capabilities/types.d.ts +1 -1
  289. package/dist/server/plugins/mcp/codemode/capabilities/utils.d.ts +1 -1
  290. package/dist/server/plugins/mcp/codemode/code-audit.d.ts +12 -0
  291. package/dist/server/plugins/mcp/codemode/code-audit.js +1 -0
  292. package/dist/server/plugins/mcp/codemode/code-execution-telemetry.d.ts +11 -0
  293. package/dist/server/plugins/mcp/codemode/code-execution-telemetry.js +1 -0
  294. package/dist/server/plugins/mcp/codemode/constants.js +1 -1
  295. package/dist/server/plugins/mcp/codemode/prompts.js +1 -1
  296. package/dist/server/plugins/mcp/codemode/tools/describe-tools.d.ts +2 -3
  297. package/dist/server/plugins/mcp/codemode/tools/execute-schema.d.ts +1 -1
  298. package/dist/server/plugins/mcp/codemode/tools/execute-schema.js +1 -1
  299. package/dist/server/plugins/mcp/codemode/tools/execute.d.ts +1 -0
  300. package/dist/server/plugins/mcp/codemode/tools/execute.js +1 -1
  301. package/dist/server/plugins/mcp/codemode/tools/manage-credentials.d.ts +19 -0
  302. package/dist/server/plugins/mcp/codemode/tools/manage-credentials.js +2 -0
  303. package/dist/server/plugins/mcp/constants.d.ts +3 -1
  304. package/dist/server/plugins/mcp/constants.js +1 -1
  305. package/dist/server/plugins/mcp/docs-mcp/tool-schemas.d.ts +1 -0
  306. package/dist/server/plugins/mcp/docs-mcp/tool-schemas.js +1 -1
  307. package/dist/server/plugins/mcp/docs-mcp/tools/core/create-anonymous-session.d.ts +11 -0
  308. package/dist/server/plugins/mcp/docs-mcp/tools/core/create-anonymous-session.js +1 -0
  309. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/constants.d.ts +4 -0
  310. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/constants.js +1 -0
  311. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type-list.js +1 -1
  312. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type.js +7 -4
  313. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/types.d.ts +7 -1
  314. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/types.js +0 -1
  315. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/utils.d.ts +5 -1
  316. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/utils.js +4 -2
  317. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +4 -0
  318. package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -1
  319. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/constants.d.ts +2 -0
  320. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/constants.js +1 -0
  321. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoint-info.js +1 -1
  322. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoints.js +1 -1
  323. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-full-api-description.js +1 -1
  324. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-security-schemes.js +1 -1
  325. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/list-apis.js +1 -1
  326. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/load-api-description.d.ts +6 -2
  327. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/load-api-description.js +1 -1
  328. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/types.d.ts +2 -0
  329. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/utils.d.ts +2 -2
  330. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/utils.js +1 -1
  331. package/dist/server/plugins/mcp/docs-mcp/utils.d.ts +3 -3
  332. package/dist/server/plugins/mcp/docs-mcp/utils.js +1 -1
  333. package/dist/server/plugins/mcp/gateway-mcp/elicitation.d.ts +48 -0
  334. package/dist/server/plugins/mcp/gateway-mcp/elicitation.js +3 -0
  335. package/dist/server/plugins/mcp/gateway-mcp/eligibility.d.ts +5 -17
  336. package/dist/server/plugins/mcp/gateway-mcp/eligibility.js +1 -1
  337. package/dist/server/plugins/mcp/gateway-mcp/fetch/allowed-hosts.d.ts +9 -9
  338. package/dist/server/plugins/mcp/gateway-mcp/fetch/allowed-hosts.js +1 -1
  339. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-bridge.d.ts +17 -1
  340. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-bridge.js +1 -1
  341. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-errors.d.ts +11 -0
  342. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-errors.js +1 -0
  343. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-telemetry.d.ts +14 -0
  344. package/dist/server/plugins/mcp/gateway-mcp/fetch/fetch-telemetry.js +1 -0
  345. package/dist/server/plugins/mcp/gateway-mcp/fetch/normalize-path.d.ts +6 -0
  346. package/dist/server/plugins/mcp/gateway-mcp/fetch/normalize-path.js +1 -0
  347. package/dist/server/plugins/mcp/gateway-mcp/fetch/redact.d.ts +4 -0
  348. package/dist/server/plugins/mcp/gateway-mcp/fetch/redact.js +1 -0
  349. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-blocklist.d.ts +22 -0
  350. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-blocklist.js +1 -0
  351. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-guard.d.ts +1 -1
  352. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-guard.js +1 -1
  353. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-safe-lookup.d.ts +13 -0
  354. package/dist/server/plugins/mcp/gateway-mcp/fetch/ssrf-safe-lookup.js +1 -0
  355. package/dist/server/plugins/mcp/gateway-mcp/fetch-capability.d.ts +8 -1
  356. package/dist/server/plugins/mcp/gateway-mcp/fetch-capability.js +1 -1
  357. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/apply-edge-rate-limit.d.ts +3 -0
  358. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/apply-edge-rate-limit.js +1 -0
  359. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/edge-limiter.d.ts +16 -0
  360. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/edge-limiter.js +1 -0
  361. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/ip-key.d.ts +2 -0
  362. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/ip-key.js +1 -0
  363. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/limits.d.ts +7 -0
  364. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/limits.js +1 -0
  365. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/rate-limit-telemetry.d.ts +8 -0
  366. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/rate-limit-telemetry.js +1 -0
  367. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/window-counter.d.ts +15 -0
  368. package/dist/server/plugins/mcp/gateway-mcp/rate-limit/window-counter.js +1 -0
  369. package/dist/server/plugins/mcp/gateway-mcp/secret-store.d.ts +27 -0
  370. package/dist/server/plugins/mcp/gateway-mcp/secret-store.js +1 -0
  371. package/dist/server/plugins/mcp/gateway-mcp/subject.d.ts +20 -0
  372. package/dist/server/plugins/mcp/gateway-mcp/subject.js +1 -0
  373. package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.d.ts +18 -0
  374. package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.js +1 -0
  375. package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.d.ts +11 -0
  376. package/dist/server/plugins/mcp/gateway-mcp/upstream-auth.js +1 -0
  377. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
  378. package/dist/server/plugins/mcp/handlers/errors.d.ts +3 -3
  379. package/dist/server/plugins/mcp/handlers/errors.js +1 -1
  380. package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -1
  381. package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.d.ts +5 -0
  382. package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.js +120 -0
  383. package/dist/server/plugins/mcp/index.d.ts +1 -0
  384. package/dist/server/plugins/mcp/index.js +1 -1
  385. package/dist/server/plugins/mcp/servers/docs-server.d.ts +3 -1
  386. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  387. package/dist/server/plugins/mcp/servers/mcp-server.d.ts +15 -8
  388. package/dist/server/plugins/mcp/servers/mcp-server.js +3 -1
  389. package/dist/server/plugins/mcp/types.d.ts +16 -20
  390. package/dist/server/plugins/mcp/utils/json-schema-validator.d.ts +9 -0
  391. package/dist/server/plugins/mcp/utils/json-schema-validator.js +1 -0
  392. package/dist/server/plugins/mcp/utils/jwt.d.ts +0 -9
  393. package/dist/server/plugins/mcp/utils/jwt.js +1 -1
  394. package/dist/server/plugins/mcp/utils/mode.d.ts +12 -2
  395. package/dist/server/plugins/mcp/utils/mode.js +1 -1
  396. package/dist/server/plugins/mcp/utils/telemetry-attributes.d.ts +8 -0
  397. package/dist/server/plugins/mcp/utils/telemetry-attributes.js +1 -0
  398. package/dist/server/plugins/mcp/utils/xmcp-utils.d.ts +1 -1
  399. package/dist/server/plugins/mcp/utils.d.ts +17 -5
  400. package/dist/server/plugins/mcp/utils.js +1 -1
  401. package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -1
  402. package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.d.ts +10 -2
  403. package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.js +1 -1
  404. package/dist/server/plugins/openapi-docs/index.js +1 -1
  405. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +16 -16
  406. package/dist/server/plugins/openapi-docs/utils.js +1 -1
  407. package/dist/server/plugins/pages/index.js +1 -1
  408. package/dist/server/plugins/scorecard-classic/compute-scorecard.d.ts +1 -1
  409. package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
  410. package/dist/server/plugins/scorecard-classic/index.d.ts +1 -1
  411. package/dist/server/plugins/scorecard-classic/index.js +1 -1
  412. package/dist/server/plugins/scorecard-classic/template/ApiDetailsPage.js +1 -1
  413. package/dist/server/plugins/scorecard-classic/template/RuleDetailsPage.js +1 -1
  414. package/dist/server/plugins/scorecard-classic/template/components.d.ts +1 -1
  415. package/dist/server/plugins/scorecard-classic/template/index.js +1 -1
  416. package/dist/server/plugins/scorecard-classic/template/useData.d.ts +1 -1
  417. package/dist/server/plugins/scorecard-classic/template/utils.d.ts +1 -1
  418. package/dist/server/plugins/scorecard-classic/template/views.js +1 -1
  419. package/dist/server/plugins/scorecards/plugin.js +1 -1
  420. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.d.ts +1 -1
  421. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +2 -2
  422. package/dist/server/plugins/search/documents/search-documents.js +1 -1
  423. package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
  424. package/dist/server/plugins/search/engines/flexsearch/search-index.js +1 -1
  425. package/dist/server/plugins/search/engines/search-engine.d.ts +1 -1
  426. package/dist/server/plugins/search/engines/typesense/index.js +1 -1
  427. package/dist/server/plugins/search/index.js +1 -1
  428. package/dist/server/plugins/search/llmstxt/index.d.ts +1 -1
  429. package/dist/server/plugins/search/llmstxt/index.js +4 -4
  430. package/dist/server/plugins/sidebars/index.d.ts +1 -1
  431. package/dist/server/plugins/sidebars/index.js +1 -1
  432. package/dist/server/plugins/sitemap/index.js +1 -1
  433. package/dist/server/plugins/sso/index.js +1 -1
  434. package/dist/server/providers/database/database-path-generator.d.ts +2 -2
  435. package/dist/server/providers/database/utils/storage-limit-validator.d.ts +1 -1
  436. package/dist/server/sandbox/sandbox.js +2 -2
  437. package/dist/server/sandbox/types.d.ts +3 -2
  438. package/dist/server/sandbox/utils/execution-budget.d.ts +4 -3
  439. package/dist/server/sandbox/utils/execution-budget.js +1 -1
  440. package/dist/server/ssr/render.js +1 -1
  441. package/dist/server/ssr/server-side-props/get-default-static-props.d.ts +1 -1
  442. package/dist/server/ssr/server-side-props/get-server-props-from-user-handler.d.ts +1 -1
  443. package/dist/server/ssr/template.d.ts +1 -1
  444. package/dist/server/ssr/utils.d.ts +1 -0
  445. package/dist/server/ssr/utils.js +5 -5
  446. package/dist/server/store.d.ts +2 -6
  447. package/dist/server/store.js +1 -1
  448. package/dist/server/tools/notifiers/logger.js +1 -1
  449. package/dist/server/tools/notifiers/reporter.js +6 -6
  450. package/dist/server/types/plugin-hooks.d.ts +1 -1
  451. package/dist/server/types/plugins/common.d.ts +4 -6
  452. package/dist/server/types/plugins/markdown.d.ts +1 -3
  453. package/dist/server/types/plugins/search.d.ts +1 -0
  454. package/dist/server/utils/catalog-classic/get-route-slug-to-catalog-slug-map.test.js +1 -1
  455. package/dist/server/utils/crypto/constants.d.ts +5 -0
  456. package/dist/server/utils/crypto/constants.js +1 -0
  457. package/dist/server/utils/crypto/decrypt-aes-gcm.d.ts +6 -0
  458. package/dist/server/utils/crypto/decrypt-aes-gcm.js +1 -0
  459. package/dist/server/utils/crypto/decrypt-claim-value.d.ts +6 -0
  460. package/dist/server/utils/crypto/decrypt-claim-value.js +1 -0
  461. package/dist/server/utils/crypto/derive-key.d.ts +5 -0
  462. package/dist/server/utils/crypto/derive-key.js +1 -0
  463. package/dist/server/utils/crypto/encrypt-aes-gcm.d.ts +6 -0
  464. package/dist/server/utils/crypto/encrypt-aes-gcm.js +1 -0
  465. package/dist/server/utils/crypto/encrypt-claim-value.d.ts +6 -0
  466. package/dist/server/utils/crypto/encrypt-claim-value.js +1 -0
  467. package/dist/server/utils/l10n/get-build-translate-context.d.ts +7 -0
  468. package/dist/server/utils/l10n/get-build-translate-context.js +1 -0
  469. package/dist/server/utils/llmstxt/agent-feedback-llms-footer.js +1 -1
  470. package/dist/server/utils/rbac.d.ts +4 -0
  471. package/dist/server/utils/rbac.js +1 -1
  472. package/dist/server/utils/report-all-errors.js +1 -1
  473. package/dist/server/utils/sandbox-context.d.ts +18 -0
  474. package/dist/server/utils/sandbox-context.js +1 -0
  475. package/dist/server/utils/shared-data.js +1 -1
  476. package/dist/server/web-server/auth.d.ts +34 -4
  477. package/dist/server/web-server/auth.js +3 -3
  478. package/dist/server/web-server/handle-api-route-request.js +1 -1
  479. package/dist/server/web-server/middleware/catalogAuthMiddleware.d.ts +1 -1
  480. package/dist/server/web-server/middleware/telemetry-middleware.js +1 -1
  481. package/dist/server/web-server/routes/api-routes/api-routes.js +1 -1
  482. package/dist/server/web-server/routes/auth.js +1 -1
  483. package/dist/server/web-server/routes/catalog/bff-catalog-related-entities.js +1 -1
  484. package/dist/server/web-server/routes/catalog/bff-catalog-revisions.js +1 -1
  485. package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
  486. package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
  487. package/dist/server/web-server/routes/catalog/catalog.js +1 -1
  488. package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.d.ts +1 -1
  489. package/dist/server/web-server/routes/catalog/helpers/upsert-pages-stats.d.ts +1 -1
  490. package/dist/server/web-server/routes/dynamic-route.js +1 -1
  491. package/dist/server/web-server/routes/feedback.d.ts +1 -1
  492. package/dist/server/web-server/routes/helpers/process-redirects.d.ts +1 -1
  493. package/dist/server/web-server/routes/mcp-routes/a2a.js +1 -1
  494. package/dist/server/web-server/routes/mcp-routes/agent-card.js +1 -1
  495. package/dist/server/web-server/routes/mcp-routes/mcp-oauth.d.ts +10 -6
  496. package/dist/server/web-server/routes/mcp-routes/mcp-oauth.js +1 -1
  497. package/dist/server/web-server/routes/mcp-routes/mcp-routes.js +1 -1
  498. package/dist/server/web-server/routes/mcp-routes/mcp-server-card.js +1 -1
  499. package/dist/server/web-server/routes/mcp-routes/utils/build-agent-card.d.ts +1 -1
  500. package/dist/server/web-server/routes/page-data.js +1 -1
  501. package/dist/server/web-server/routes/resolve-route.js +1 -1
  502. package/dist/server/web-server/routes/search.js +1 -1
  503. package/dist/server/web-server/routes/skills/skill-markdown.js +1 -1
  504. package/dist/server/web-server/routes/skills/skills-index.js +1 -1
  505. package/dist/server/web-server/utils/prepare-list-response.d.ts +1 -1
  506. package/dist/server/workers/api-routes-worker-pool.js +1 -1
  507. package/dist/server/workers/mcp-tool-worker-pool.js +1 -1
  508. package/dist/server/workers/worker-pool.d.ts +1 -0
  509. package/dist/server/workers/worker-pool.js +1 -1
  510. package/dist/types/entitlements.d.ts +6 -1
  511. package/dist/types/markdoc.d.ts +2 -1
  512. package/dist/utils/l10n/build-i18n-config.d.ts +24 -0
  513. package/dist/utils/l10n/build-i18n-config.js +1 -0
  514. package/dist/utils/l10n/create-translate.d.ts +19 -0
  515. package/dist/utils/l10n/create-translate.js +1 -0
  516. package/dist/utils/url/get-shared-data-fetch-url.d.ts +17 -0
  517. package/dist/utils/url/get-shared-data-fetch-url.js +1 -0
  518. package/dist/utils/url/parse-preview-url.d.ts +22 -0
  519. package/dist/utils/url/parse-preview-url.js +1 -0
  520. package/package.json +21 -20
  521. package/dist/markdoc/helpers/get-operation/get-operation-info-by-id.d.ts +0 -4
  522. package/dist/markdoc/helpers/get-operation/get-operation-info-by-id.js +0 -1
  523. package/dist/markdoc/helpers/get-operation/get-operation-info-by-pointer.d.ts +0 -4
  524. package/dist/markdoc/helpers/get-operation/get-operation-info-by-pointer.js +0 -1
  525. package/dist/markdoc/helpers/get-operation/get-operation.d.ts +0 -14
  526. package/dist/markdoc/helpers/get-operation/get-operation.js +0 -1
  527. package/dist/markdoc/helpers/get-operation/index.d.ts +0 -4
  528. package/dist/markdoc/helpers/get-operation/index.js +0 -1
  529. package/dist/markdoc/helpers/get-operation/types/index.d.ts +0 -4
  530. package/dist/markdoc/helpers/get-operation/types/index.js +0 -0
  531. package/dist/markdoc/helpers/get-operation/types/operation-identifier.d.ts +0 -5
  532. package/dist/markdoc/helpers/get-operation/types/operation-identifier.js +0 -0
  533. package/dist/markdoc/helpers/get-operation/types/operation-info.d.ts +0 -6
  534. package/dist/markdoc/helpers/get-operation/types/operation-info.js +0 -0
  535. package/dist/markdoc/helpers/get-operation/types/operation-parameters.d.ts +0 -3
  536. package/dist/markdoc/helpers/get-operation/types/operation-parameters.js +0 -0
  537. package/dist/server/plugins/markdown/attribute-resolvers/helpers/get-media-content-samples.d.ts +0 -4
  538. package/dist/server/plugins/markdown/attribute-resolvers/helpers/get-media-content-samples.js +0 -1
  539. package/dist/server/plugins/mcp/handlers/sse-keepalive.d.ts +0 -15
  540. package/dist/server/plugins/mcp/handlers/sse-keepalive.js +0 -3
@@ -1 +1 @@
1
- import*as h from"react";import{useLocation as $,useNavigate as R}from"react-router-dom";import{usePageData as V,usePageSharedData as K}from"../../hooks";import{withoutHash as D,getBaseDataAttributes as w}from"@redocly/theme/core/utils";import{telemetry as A}from"../../telemetry/index.js";import{toStringIfDefined as v}from"../../../../utils/string/to-string-if-defined.js";import{findDeepFirst as _}from"../../../../utils/tree/find-deep-first.js";function re(e,o){const r=$(),i=R(),a=V(),t=G(r),s=K("catalog"),[n,p]=h.useState(()=>(e.filters??[]).map(l=>{if(l.type==="date-range"){const[c,u]=t.get(l.property)?.split("--")??[];return!c&&!u?{}:{from:c,to:u}}return new Set(t.getAll(l.property))})),[d,g]=h.useState(()=>t.get("filter")||"");o||(o=[...s]);const S=h.useMemo(()=>L(o??[],e.filters),[o,e.filters]),I=a?.props?.customFields,C=h.useMemo(()=>H(o??[],e,I||{}),[o,e,I]),b=h.useCallback((l,c)=>{p(u=>{const F=u[l]?u[l]:new Set;return F instanceof Set?(F.has(c)?u.forEach((f,m)=>{f instanceof Set&&f.has(c)&&f.delete(c)}):F.add(c),[...u.slice(0,l),F,...u.slice(l+1)]):u}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"toggle"}]),window.scrollTo(0,0)},[]),P=h.useCallback((l,c)=>{p(u=>{const F=u[l]instanceof Set?new Set(c?[c]:[]):{from:c?.from,to:c?.to},f=S[l];return u.map((m,y)=>y===l?F:S[y].parentFilter===f.property?new Set:m)}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[S]),N=()=>{const l=new URLSearchParams(Array.from(t.entries()));d?t.set("filter",d):t.delete("filter"),n.forEach((u,F)=>{const f=e.filters?.[F];if(!f)return;const m=Q(u);Z(f.property,m,l)});const c=l.toString();c!==r.search.substring(1)&&i({search:c})};h.useEffect(()=>{N()},[e.filters,n,d,i,r]);const k=h.useMemo(()=>J(e.filters),[e.filters]);return h.useMemo(()=>{const l=S.map((f,m)=>({...f,toggleOption:y=>b(m,y),selectOption:y=>P(m,y),selectedOptions:n[m]??new Set,isFilterUsed:(n[m]?.size??0)>0||!!n[m]?.from})),c=T(C,l,d),u=l.map((f,m)=>{const y=l.findIndex(O=>O.property===f.parentFilter),j=f.parentFilter?(n[y]?.size??0)>0||!!n[y].from:!0,z=l.filter((O,M)=>M!==m&&!k[m]?.has(M)),B=T(C,z,d),U=L(B.map(O=>({metadata:O})),e.filters);return{...f,parentUsed:j,filteredOptions:U[m].options}});return{groups:e.groupByFirstFilter&&u.length>0?q(u,c):[{title:"APIs",items:c}],filters:u,setFilterTerm:f=>{g(f),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"term"}])},filterTerm:d}},[S,C,d,e.groupByFirstFilter,e.filters,n,b,P,k])}function q(e,o){return e[0].options.map(r=>({title:r.value,items:o.filter(i=>{const a=i?.[e[0].property]||e[0].missingCategoryName||"Others";return Array.isArray(a)?a.includes(r.value):a===r.value})})).filter(r=>r.items.length>0)}function G(e){return h.useMemo(()=>new URLSearchParams(e.search),[e.search])}function H(e,o,r){let i;if(o.separateVersions)i=e.map(a);else{const t={};for(const s of e){if(!s.versionFolderId){const p=s.link||s.fsPath||JSON.stringify(s);t[p]=[s];continue}let n=s.versionFolderId;if(t[n]?.find(p=>p.version===s.version)){const p=s.fsPath?.replace(/\/@.*?\//,"/@version/")??"";n=`${n}-${p}`}t[n]||(t[n]=[]),t[n].push(s)}i=Object.values(t).map(s=>{s.sort((d,g)=>(d.version||"").localeCompare(g.version||""));const n=s.map(a);return{...a(s.find(d=>d.isDefault)||s[s.length-1]),versions:n}})}return i.sort((t,s)=>t.title.localeCompare(s.title)),i;function a(t){const s=t.metadata||{},n=r[t.fsPath||""]||{},p=t.link||_(t.items||[],g=>"link"in g&&!!g.link)?.link,d=t.sidebar?.[0];return{...s,...n,publishedAt:s.publishedAt||s.createdAt,title:v(s?.title)||t.label||"Untitled",description:v(s?.description),link:D(p)??"#",docsLink:D(d?.link),image:v(s?.image),version:t.version,versionFolderId:t.versionFolderId}}}function J(e){if(!e)return[];const o=[];for(let r=0;r<e.length;r++){const i=e[r];if(i.parentFilter){const a=e.findIndex(t=>t.property===i.parentFilter);o[a]=o[a]||new Set,o[a].add(r)}}return o}function L(e,o){return(o??[]).map(r=>{const i=r.options?Object.fromEntries(r.options.map(n=>[n,0])):void 0,a=i??{};let t=0;for(const n of e){const p=Array.isArray(n.metadata?.[r.property])?n.metadata?.[r.property]:[n.metadata?.[r.property]];for(const d of p){const g=E(String(d),r.valuesMapping);if(i){g in i&&(a[g]=a[g]+1);continue}d?a[g]=(a[g]??0)+1:t++}}const s=Object.entries(a).map(([n,p])=>({value:n,count:p}));return i||s.sort((n,p)=>n.value.localeCompare(p.value)),t&&s.push({value:r.missingCategoryNameTranslationKey||r.missingCategoryName||"Others",count:t}),{...r,options:s}})}function T(e,o,r){const i=e.filter(a=>o.every(t=>{if(t.selectedOptions&&!(t.selectedOptions instanceof Set))try{const n=new Date(a[t.property]).toISOString().split("T")[0];return n>=(t.selectedOptions.from??"")&&n<=(t.selectedOptions.to??"Z")}catch{return!0}if(t.selectedOptions.size===0)return!0;const s=E(a?.[t.property]||t.missingCategoryName||"Others",t.valuesMapping);return Array.isArray(s)?s.some(n=>t.selectedOptions.has(n)):t.selectedOptions.has(s)}));return r?(r=r.toLowerCase(),i.filter(a=>Object.values(a).some(t=>Array.isArray(t)?t.some(s=>String(s).toLowerCase().includes(r)):String(t).toLowerCase().includes(r)))):i}function E(e,o){return o?Array.isArray(e)?e.map(r=>o[String(r)]||r):o[String(e)]||e:e}function Z(e,o,r){r.delete(e),o.forEach(i=>{r.append(e,i)})}function Q(e){const o=new Set;return e instanceof Set?e.forEach(r=>o.add(r)):(e.from||e.to)&&o.add(`${e.from||""}--${e.to||""}`),o}export{Z as fillSearchParams,Q as getFilterValues,re as useCatalogClassic};
1
+ import*as h from"react";import{useLocation as $,useNavigate as R}from"react-router";import{usePageData as V,usePageSharedData as K}from"../../hooks";import{withoutHash as D,getBaseDataAttributes as w}from"@redocly/theme/core/utils";import{telemetry as A}from"../../telemetry/index.js";import{toStringIfDefined as v}from"../../../../utils/string/to-string-if-defined.js";import{findDeepFirst as _}from"../../../../utils/tree/find-deep-first.js";function re(e,o){const r=$(),i=R(),a=V(),t=G(r),s=K("catalog"),[n,p]=h.useState(()=>(e.filters??[]).map(l=>{if(l.type==="date-range"){const[c,u]=t.get(l.property)?.split("--")??[];return!c&&!u?{}:{from:c,to:u}}return new Set(t.getAll(l.property))})),[d,g]=h.useState(()=>t.get("filter")||"");o||(o=[...s]);const S=h.useMemo(()=>L(o??[],e.filters),[o,e.filters]),I=a?.props?.customFields,C=h.useMemo(()=>H(o??[],e,I||{}),[o,e,I]),b=h.useCallback((l,c)=>{p(u=>{const F=u[l]?u[l]:new Set;return F instanceof Set?(F.has(c)?u.forEach((f,m)=>{f instanceof Set&&f.has(c)&&f.delete(c)}):F.add(c),[...u.slice(0,l),F,...u.slice(l+1)]):u}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"toggle"}]),window.scrollTo(0,0)},[]),P=h.useCallback((l,c)=>{p(u=>{const F=u[l]instanceof Set?new Set(c?[c]:[]):{from:c?.from,to:c?.to},f=S[l];return u.map((m,y)=>y===l?F:S[y].parentFilter===f.property?new Set:m)}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[S]),N=()=>{const l=new URLSearchParams(Array.from(t.entries()));d?t.set("filter",d):t.delete("filter"),n.forEach((u,F)=>{const f=e.filters?.[F];if(!f)return;const m=Q(u);Z(f.property,m,l)});const c=l.toString();c!==r.search.substring(1)&&i({search:c})};h.useEffect(()=>{N()},[e.filters,n,d,i,r]);const k=h.useMemo(()=>J(e.filters),[e.filters]);return h.useMemo(()=>{const l=S.map((f,m)=>({...f,toggleOption:y=>b(m,y),selectOption:y=>P(m,y),selectedOptions:n[m]??new Set,isFilterUsed:(n[m]?.size??0)>0||!!n[m]?.from})),c=T(C,l,d),u=l.map((f,m)=>{const y=l.findIndex(O=>O.property===f.parentFilter),j=f.parentFilter?(n[y]?.size??0)>0||!!n[y].from:!0,z=l.filter((O,M)=>M!==m&&!k[m]?.has(M)),B=T(C,z,d),U=L(B.map(O=>({metadata:O})),e.filters);return{...f,parentUsed:j,filteredOptions:U[m].options}});return{groups:e.groupByFirstFilter&&u.length>0?q(u,c):[{title:"APIs",items:c}],filters:u,setFilterTerm:f=>{g(f),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"term"}])},filterTerm:d}},[S,C,d,e.groupByFirstFilter,e.filters,n,b,P,k])}function q(e,o){return e[0].options.map(r=>({title:r.value,items:o.filter(i=>{const a=i?.[e[0].property]||e[0].missingCategoryName||"Others";return Array.isArray(a)?a.includes(r.value):a===r.value})})).filter(r=>r.items.length>0)}function G(e){return h.useMemo(()=>new URLSearchParams(e.search),[e.search])}function H(e,o,r){let i;if(o.separateVersions)i=e.map(a);else{const t={};for(const s of e){if(!s.versionFolderId){const p=s.link||s.fsPath||JSON.stringify(s);t[p]=[s];continue}let n=s.versionFolderId;if(t[n]?.find(p=>p.version===s.version)){const p=s.fsPath?.replace(/\/@.*?\//,"/@version/")??"";n=`${n}-${p}`}t[n]||(t[n]=[]),t[n].push(s)}i=Object.values(t).map(s=>{s.sort((d,g)=>(d.version||"").localeCompare(g.version||""));const n=s.map(a);return{...a(s.find(d=>d.isDefault)||s[s.length-1]),versions:n}})}return i.sort((t,s)=>t.title.localeCompare(s.title)),i;function a(t){const s=t.metadata||{},n=r[t.fsPath||""]||{},p=t.link||_(t.items||[],g=>"link"in g&&!!g.link)?.link,d=t.sidebar?.[0];return{...s,...n,publishedAt:s.publishedAt||s.createdAt,title:v(s?.title)||t.label||"Untitled",description:v(s?.description),link:D(p)??"#",docsLink:D(d?.link),image:v(s?.image),version:t.version,versionFolderId:t.versionFolderId}}}function J(e){if(!e)return[];const o=[];for(let r=0;r<e.length;r++){const i=e[r];if(i.parentFilter){const a=e.findIndex(t=>t.property===i.parentFilter);o[a]=o[a]||new Set,o[a].add(r)}}return o}function L(e,o){return(o??[]).map(r=>{const i=r.options?Object.fromEntries(r.options.map(n=>[n,0])):void 0,a=i??{};let t=0;for(const n of e){const p=Array.isArray(n.metadata?.[r.property])?n.metadata?.[r.property]:[n.metadata?.[r.property]];for(const d of p){const g=E(String(d),r.valuesMapping);if(i){g in i&&(a[g]=a[g]+1);continue}d?a[g]=(a[g]??0)+1:t++}}const s=Object.entries(a).map(([n,p])=>({value:n,count:p}));return i||s.sort((n,p)=>n.value.localeCompare(p.value)),t&&s.push({value:r.missingCategoryNameTranslationKey||r.missingCategoryName||"Others",count:t}),{...r,options:s}})}function T(e,o,r){const i=e.filter(a=>o.every(t=>{if(t.selectedOptions&&!(t.selectedOptions instanceof Set))try{const n=new Date(a[t.property]).toISOString().split("T")[0];return n>=(t.selectedOptions.from??"")&&n<=(t.selectedOptions.to??"Z")}catch{return!0}if(t.selectedOptions.size===0)return!0;const s=E(a?.[t.property]||t.missingCategoryName||"Others",t.valuesMapping);return Array.isArray(s)?s.some(n=>t.selectedOptions.has(n)):t.selectedOptions.has(s)}));return r?(r=r.toLowerCase(),i.filter(a=>Object.values(a).some(t=>Array.isArray(t)?t.some(s=>String(s).toLowerCase().includes(r)):String(t).toLowerCase().includes(r)))):i}function E(e,o){return o?Array.isArray(e)?e.map(r=>o[String(r)]||r):o[String(e)]||e:e}function Z(e,o,r){r.delete(e),o.forEach(i=>{r.append(e,i)})}function Q(e){const o=new Set;return e instanceof Set?e.forEach(r=>o.add(r)):(e.from||e.to)&&o.add(`${e.from||""}--${e.to||""}`),o}export{Z as fillSearchParams,Q as getFilterValues,re as useCatalogClassic};
@@ -13,7 +13,7 @@ export declare function useCatalogFilter(config?: CatalogEntityConfig, serverFil
13
13
  type?: 'select' | 'checkboxes' | 'date-range';
14
14
  hide?: boolean;
15
15
  label?: string;
16
- options: import("@redocly/theme/core/types").FilterResult[];
16
+ options: import("@redocly/theme").FilterResult[];
17
17
  toggleOption: (value: string) => void;
18
18
  selectOption: (value: string) => void;
19
19
  selectedOptions: FilterState;
@@ -1 +1 @@
1
- import{useCallback as h,useEffect as w,useMemo as y,useState as P}from"react";import{useSearchParams as Q}from"react-router-dom";import{telemetry as b}from"../../telemetry/index.js";import{parseFilterQuery as g,formatFilterQuery as C,collectFilterOptions as U}from"../../../utils";import{getBaseDataAttributes as I}from"@redocly/theme/core/utils";function O(r){return r instanceof Set?r.size>0:!!(r?.from||r?.to)}function x(r,m){const[u,d]=Q(),o=u.get("filter")||"",[i,f]=P(()=>g(o,r?.filters||[])),p=y(()=>U(r?.filters,m),[r?.filters,m]);w(()=>{const t=r?.filters||[];if(t.length>0&&i.length!==t.length){const e=g(o,t);f(e)}},[r?.filters,i.length,o]);const F=h((t,e)=>{f(l=>l.map((s,c)=>{if(c!==t||!(s instanceof Set))return s;const n=new Set(s);return n.has(e)?n.delete(e):n.add(e),n})),window.scrollTo(0,0)},[]),S=h((t,e)=>{f(l=>l.map((a,s)=>s!==t?a:a instanceof Set?e&&typeof e=="string"?new Set([e]):new Set:{from:typeof e=="object"?e?.from:void 0,to:typeof e=="object"?e?.to:void 0})),b.sendCatalogFilterChangedMessage([{...I("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[]);return w(()=>{const t=new URLSearchParams(u),e=C(i,r?.filters||[]);e?t.set("filter",e):t.delete("filter"),d(t,{replace:!0})},[r?.filters,i,u,d]),y(()=>{const t=p.map((l,a)=>{const s=i[a],c=O(s);return{...l,toggleOption:n=>F(a,n),selectOption:n=>S(a,n),selectedOptions:s??new Set,isFilterUsed:c}});return{filters:t.map(l=>{const a=t.findIndex(n=>n.property===l.parentFilter),s=i[a],c=l.parentFilter?O(s):!0;return{...l,parentUsed:c}}),filterQuery:o}},[p,i,F,S,o])}export{x as useCatalogFilter};
1
+ import{useCallback as h,useEffect as w,useMemo as y,useState as P}from"react";import{useSearchParams as Q}from"react-router";import{telemetry as b}from"../../telemetry/index.js";import{parseFilterQuery as g,formatFilterQuery as C,collectFilterOptions as U}from"../../../utils";import{getBaseDataAttributes as I}from"@redocly/theme/core/utils";function O(r){return r instanceof Set?r.size>0:!!(r?.from||r?.to)}function x(r,m){const[u,d]=Q(),o=u.get("filter")||"",[i,f]=P(()=>g(o,r?.filters||[])),p=y(()=>U(r?.filters,m),[r?.filters,m]);w(()=>{const t=r?.filters||[];if(t.length>0&&i.length!==t.length){const e=g(o,t);f(e)}},[r?.filters,i.length,o]);const F=h((t,e)=>{f(l=>l.map((s,c)=>{if(c!==t||!(s instanceof Set))return s;const n=new Set(s);return n.has(e)?n.delete(e):n.add(e),n})),window.scrollTo(0,0)},[]),S=h((t,e)=>{f(l=>l.map((a,s)=>s!==t?a:a instanceof Set?e&&typeof e=="string"?new Set([e]):new Set:{from:typeof e=="object"?e?.from:void 0,to:typeof e=="object"?e?.to:void 0})),b.sendCatalogFilterChangedMessage([{...I("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[]);return w(()=>{const t=new URLSearchParams(u),e=C(i,r?.filters||[]);e?t.set("filter",e):t.delete("filter"),d(t,{replace:!0})},[r?.filters,i,u,d]),y(()=>{const t=p.map((l,a)=>{const s=i[a],c=O(s);return{...l,toggleOption:n=>F(a,n),selectOption:n=>S(a,n),selectedOptions:s??new Set,isFilterUsed:c}});return{filters:t.map(l=>{const a=t.findIndex(n=>n.property===l.parentFilter),s=i[a],c=l.parentFilter?O(s):!0;return{...l,parentUsed:c}}),filterQuery:o}},[p,i,F,S,o])}export{x as useCatalogFilter};
@@ -1 +1 @@
1
- import{useEffect as o,useMemo as h,useState as n}from"react";import{useSearchParams as m}from"react-router-dom";import{debounce as S}from"../../../../utils/time/debounce";function l(){const[a,s]=m(),c=a.get("search")||"",[r,t]=n(c);o(()=>{const e=new URLSearchParams(a);r?e.set("search",r):e.delete("search"),s(e,{replace:!0})},[r,a,s]);const u=h(()=>S(e=>{t(e)},500),[t]);return{searchQuery:r,setSearchQuery:u}}export{l as useCatalogSearch};
1
+ import{useEffect as o,useMemo as h,useState as n}from"react";import{useSearchParams as m}from"react-router";import{debounce as S}from"../../../../utils/time/debounce";function l(){const[a,s]=m(),c=a.get("search")||"",[r,t]=n(c);o(()=>{const e=new URLSearchParams(a);r?e.set("search",r):e.delete("search"),s(e,{replace:!0})},[r,a,s]);const u=h(()=>S(e=>{t(e)},500),[t]);return{searchQuery:r,setSearchQuery:u}}export{l as useCatalogSearch};
@@ -1 +1 @@
1
- import{useCallback as c,useEffect as m,useState as p}from"react";import{useSearchParams as f}from"react-router-dom";function O(l){const[s,a]=f(),u=s.get("sort")||null,[e,r]=p(u??l??null);m(()=>{const t=new URLSearchParams(s);e?t.set("sort",e):t.delete("sort"),a(t,{replace:!0})},[e,s,a]);const i=c((t,n)=>{const o=n==="desc"?t:`-${t}`;r(e===o?null:o)},[e,r]),S=c((t,n)=>{if(!t||!e)return!1;const o=n==="desc"?t:`-${t}`;return e===o},[e]);return{sortOption:e,setSortOption:r,handleSortClick:i,isColumnSorted:S}}export{O as useCatalogSort};
1
+ import{useCallback as c,useEffect as m,useState as p}from"react";import{useSearchParams as f}from"react-router";function O(l){const[s,a]=f(),u=s.get("sort")||null,[e,r]=p(u??l??null);m(()=>{const t=new URLSearchParams(s);e?t.set("sort",e):t.delete("sort"),a(t,{replace:!0})},[e,s,a]);const i=c((t,n)=>{const o=n==="desc"?t:`-${t}`;r(e===o?null:o)},[e,r]),S=c((t,n)=>{if(!t||!e)return!1;const o=n==="desc"?t:`-${t}`;return e===o},[e]);return{sortOption:e,setSortOption:r,handleSortClick:i,isColumnSorted:S}}export{O as useCatalogSort};
@@ -1 +1 @@
1
- import{useState as i}from"react";import{telemetry as n}from"../../telemetry/index.js";const s="catalog-view-mode",w="table";function u(o){const[r,a]=i(o??w);return{viewMode:r,setViewMode:t=>{if(a(t),!(typeof window>"u")){try{localStorage.setItem(s,t)}catch(e){console.warn("Failed to save view mode preference to localStorage",e)}try{const e=new URL(window.location.href);e.searchParams.set("viewMode",t),window.history.replaceState({},"",e.toString()),n.sendCatalogEntitiesViewModeChangedMessage([{mode:t,id:t,object:"view_mode",uri:window.location.href}])}catch(e){console.warn("Failed to update viewMode query parameter",e)}}}}}export{u as useCatalogViewMode};
1
+ import{useRef as s,useState as c}from"react";import{generateBeforeAfterContext as d}from"@redocly/theme/core/utils";import{telemetry as w}from"../../telemetry/index.js";const l="catalog-view-mode",u="table";function m(a){const[o,n]=c(a??u),r=s(o);return{viewMode:o,setViewMode:t=>{const i=r.current;if(r.current=t,n(t),!(typeof window>"u")){try{localStorage.setItem(l,t)}catch(e){console.warn("Failed to save view mode preference to localStorage",e)}try{const e=new URL(window.location.href);e.searchParams.set("viewMode",t),window.history.replaceState({},"",e.toString()),w.sendCatalogEntitiesViewModeChangedMessage([...d("catalogEntitiesViewModeId","button",{mode:i},{mode:t})])}catch(e){console.warn("Failed to update viewMode query parameter",e)}}}}}export{m as useCatalogViewMode};
@@ -1,7 +1,7 @@
1
1
  import type { BffCatalogEntityList, CatalogApiParams } from '@redocly/theme/core/types';
2
2
  export declare function useFetchCatalogEntities({ limit, filter, sort, search }?: CatalogApiParams, initialEntitiesList?: BffCatalogEntityList): {
3
3
  query: import("@tanstack/react-query").DefinedUseInfiniteQueryResult<import("@tanstack/react-query").InfiniteData<BffCatalogEntityList, unknown>, Error>;
4
- items: import("@redocly/theme/core/types").BffCatalogEntity[];
4
+ items: import("@redocly/theme").BffCatalogEntity[];
5
5
  total: number;
6
6
  };
7
7
  //# sourceMappingURL=useFetchCatalogEntities.d.ts.map
@@ -1 +1 @@
1
- import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as d,useRef as w}from"react";import{withPathPrefix as R}from"@redocly/theme/core/utils";import{getNextPageParam as S}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as F}from"./useSearchTracker";function x({limit:o=20,filter:i,sort:s="updated_at",search:n}={},r){const m=r?r.items.map(e=>e.key).join("-"):[],c=w(!0),l=c.current&&r;c.current&&(c.current=!1);const a=y({queryFn:async e=>{const t=new URLSearchParams;i&&t.append("filter",i),s&&t.append("sort",s),o&&t.append("limit",o.toString()),n&&t.append("search",n),e.pageParam&&Object.entries(e.pageParam).forEach(([P,f])=>{f!=null&&t.append(P,f.toString())});const p=new URL(R("/bff/catalog-entities"),window.location.origin);p.search=t.toString();const u=await fetch(p.toString());if(!u.ok)throw new Error(`Failed to fetch catalog entities from ${p.pathname}`);return u.json()},queryKey:["bff/catalog-entities",{limit:o,filter:i,sort:s,search:n,initialDataKeys:m}],initialData:l?{pages:[r],pageParams:[null]}:void 0,initialPageParam:null,getNextPageParam:S,refetchOnMount:!0,placeholderData:e=>e}),h=d(()=>{const e=a.data?.pages||[];return e[e.length-1]?.page.total},[a.data?.pages]),g=d(()=>(a.data?.pages||[]).flatMap(e=>e.items||[]),[a.data?.pages]);return F({isLoading:a.isLoading||a.isFetching,items:g,apiResource:"entities",searchQuery:n??""}),{query:a,items:g,total:h}}export{x as useFetchCatalogEntities};
1
+ import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as u,useRef as w}from"react";import{withPathPrefix as R}from"@redocly/theme/core/utils";import{getNextPageParam as S}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as F}from"./useSearchTracker";function x({limit:o=20,filter:i,sort:s="updated_at",search:n}={},r){const d=r?r.items.map(e=>e.key).join("-"):[],c=w(!0),m=c.current&&r;c.current&&(c.current=!1);const a=y({queryFn:async e=>{const t=new URLSearchParams;i&&t.append("filter",i),s&&t.append("sort",s),o&&t.append("limit",o.toString()),n&&t.append("search",n),e.pageParam&&Object.entries(e.pageParam).forEach(([P,f])=>{f!=null&&t.append(P,f.toString())});const p=new URL(R("/bff/catalog-entities"),window.location.origin);p.search=t.toString();const g=await fetch(p.toString());if(!g.ok)throw new Error(`Failed to fetch catalog entities from ${p.pathname}`);return g.json()},queryKey:["bff/catalog-entities",{limit:o,filter:i,sort:s,search:n,initialDataKeys:d}],initialData:m?{pages:[r],pageParams:[null]}:void 0,initialPageParam:null,getNextPageParam:S,refetchOnMount:!0,placeholderData:e=>e}),l=u(()=>{const e=a.data?.pages||[];return e[e.length-1]?.page.total},[a.data?.pages]),h=u(()=>(a.data?.pages||[]).flatMap(e=>e.items||[]),[a.data?.pages]);return F({isLoading:a.isLoading||a.isFetching,apiResource:"entities",searchQuery:n??""}),{query:a,items:h,total:l}}export{x as useFetchCatalogEntities};
@@ -1,9 +1,9 @@
1
1
  import type { BffCatalogRelatedEntityList, CatalogApiParams } from '@redocly/theme/core/types';
2
- export declare function useFetchCatalogEntitiesRelations({ entityKey, limit, filter, sort, search }: CatalogApiParams & {
2
+ export declare function useFetchCatalogEntitiesRelations({ entityKey, limit, filter, sort, search, }: CatalogApiParams & {
3
3
  entityKey: string;
4
4
  }, initialRelationsList?: BffCatalogRelatedEntityList): {
5
5
  query: import("@tanstack/react-query").DefinedUseInfiniteQueryResult<import("@tanstack/react-query").InfiniteData<BffCatalogRelatedEntityList, unknown>, Error>;
6
- items: import("@redocly/theme/core/types").BffCatalogRelatedEntity[];
6
+ items: import("@redocly/theme").BffCatalogRelatedEntity[];
7
7
  total: number;
8
8
  };
9
9
  //# sourceMappingURL=useFetchCatalogEntitiesRelations.d.ts.map
@@ -1 +1 @@
1
- import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as m,useRef as S}from"react";import{withPathPrefix as F}from"@redocly/theme/core/utils";import{getNextPageParam as R}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as b}from"./useSearchTracker";function E({entityKey:g,limit:o=20,filter:i,sort:s="updated_at",search:r},n){const l=n?n.items.map(e=>e.key).join("-"):[],c=S(!0),h=c.current&&n;c.current&&(c.current=!1);const t=y({queryFn:async e=>{const a=new URLSearchParams;i&&a.append("filter",i),s&&a.append("sort",s),o&&a.append("limit",o.toString()),r&&a.append("search",r),e.pageParam&&Object.entries(e.pageParam).forEach(([w,f])=>{f!=null&&a.append(w,f.toString())});const p=new URL(F(`/bff/catalog-related-entities/${g}`),window.location.origin);p.search=a.toString();const d=await fetch(p.toString());if(!d.ok)throw new Error(`Failed to fetch catalog entity relations from ${p.pathname}`);return d.json()},queryKey:["bff/catalog-entities-relations",{limit:o,filter:i,sort:s,search:r,entityKey:g,initialDataKeys:l}],initialPageParam:null,initialData:h?{pages:[n],pageParams:[null]}:void 0,refetchOnMount:!0,getNextPageParam:R}),P=m(()=>{const e=t.data?.pages||[];return e[e.length-1]?.page?.total},[t.data?.pages]),u=m(()=>(t.data?.pages||[]).flatMap(e=>e.items||[]),[t.data?.pages]);return b({isLoading:t.isLoading||t.isFetching,items:u,apiResource:"related_entities",searchQuery:r??""}),{query:t,items:u,total:P}}export{E as useFetchCatalogEntitiesRelations};
1
+ import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as d,useRef as S}from"react";import{withPathPrefix as F}from"@redocly/theme/core/utils";import{getNextPageParam as R}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as b}from"./useSearchTracker";function E({entityKey:g,limit:o=20,filter:i,sort:s="updated_at",search:r},n){const m=n?n.items.map(e=>e.key).join("-"):[],c=S(!0),l=c.current&&n;c.current&&(c.current=!1);const t=y({queryFn:async e=>{const a=new URLSearchParams;i&&a.append("filter",i),s&&a.append("sort",s),o&&a.append("limit",o.toString()),r&&a.append("search",r),e.pageParam&&Object.entries(e.pageParam).forEach(([w,f])=>{f!=null&&a.append(w,f.toString())});const p=new URL(F(`/bff/catalog-related-entities/${g}`),window.location.origin);p.search=a.toString();const u=await fetch(p.toString());if(!u.ok)throw new Error(`Failed to fetch catalog entity relations from ${p.pathname}`);return u.json()},queryKey:["bff/catalog-entities-relations",{limit:o,filter:i,sort:s,search:r,entityKey:g,initialDataKeys:m}],initialPageParam:null,initialData:l?{pages:[n],pageParams:[null]}:void 0,refetchOnMount:!0,getNextPageParam:R}),h=d(()=>{const e=t.data?.pages||[];return e[e.length-1]?.page?.total},[t.data?.pages]),P=d(()=>(t.data?.pages||[]).flatMap(e=>e.items||[]),[t.data?.pages]);return b({isLoading:t.isLoading||t.isFetching,apiResource:"related_entities",searchQuery:r??""}),{query:t,items:P,total:h}}export{E as useFetchCatalogEntitiesRelations};
@@ -1,6 +1,6 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
2
  import type { BffCatalogEntityRevision, BffCatalogEntityRevisionList } from '@redocly/theme/core/types';
3
- export declare function useFetchCatalogEntityRevisions({ entityKey, version }: {
3
+ export declare function useFetchCatalogEntityRevisions({ entityKey, version, }: {
4
4
  entityKey: string;
5
5
  version?: string | null;
6
6
  }): {
@@ -1,12 +1,9 @@
1
- import type { BffCatalogEntity } from '@redocly/theme/core/types';
2
- type BaseEntity = Pick<BffCatalogEntity, 'id' | 'key' | 'type'>;
3
1
  type ApiResource = 'entities' | 'related_entities';
4
- type SearchTrackerProps<T extends BaseEntity> = {
2
+ type SearchTrackerProps = {
5
3
  isLoading: boolean;
6
- items: T[];
7
4
  apiResource: ApiResource;
8
5
  searchQuery: string;
9
6
  };
10
- export declare function useSearchTracker<T extends BaseEntity>({ isLoading, items, apiResource, searchQuery }: SearchTrackerProps<T>): void;
7
+ export declare function useSearchTracker({ isLoading, apiResource, searchQuery }: SearchTrackerProps): void;
11
8
  export {};
12
9
  //# sourceMappingURL=useSearchTracker.d.ts.map
@@ -1 +1 @@
1
- import{useCallback as g,useEffect as m,useRef as f}from"react";import{useCatalogEntityDetails as d}from"@redocly/theme/core/hooks";import{usePageProps as p}from"../../../providers/hooks.js";import{telemetry as c}from"../../telemetry/index.js";const l={id:"redocly-unknown",object:"catalog_entity",uri:"redocly-unknown"},C={entities:"catalog_entity",related_entities:"catalog_entity"},E={entities:({items:e,searchQuery:n})=>{const t=e[0]??l;c.sendCatalogEntitiesListSearchQueryMessage([{query:n,...t}])},related_entities:({items:e,searchQuery:n})=>{const t=e[0]??l;c.sendCatalogEntitiesRelatedEntitiesListSearchQueryMessage([{query:n,...t}])}};function j({isLoading:e,items:n,apiResource:t,searchQuery:i}){const{catalogConfig:u,entitiesCatalogConfig:y}=p(),o=f(i),{getEntityDetailsLink:s}=d({catalogConfig:u,entitiesCatalogConfig:y}),a=g(r=>({id:r.id,object:C[t],uri:s(r)}),[s,t]);m(()=>{if(e)return;const r=i?.trim();!r||r===o.current||(o.current=i,E[t]({items:n.map(a),searchQuery:i}))},[n,e,i,t,a])}export{j as useSearchTracker};
1
+ import{useEffect as c,useRef as o}from"react";import{getBaseDataAttributes as a}from"@redocly/theme/core/utils";import{telemetry as n}from"../../telemetry/index.js";const l={entities:t=>{n.sendCatalogEntitiesListSearchQueryMessage([{...a("catalogEntitiesListSearchId","catalogEntitiesListSearch"),query:t}])},related_entities:t=>{n.sendCatalogEntitiesRelatedEntitiesListSearchQueryMessage([{...a("catalogEntitiesRelatedEntitiesListSearchId","catalogEntitiesRelatedEntitiesListSearch"),query:t}])}};function m({isLoading:t,apiResource:i,searchQuery:e}){const r=o(e);c(()=>{if(t)return;const s=e?.trim();!s||s===r.current||(r.current=e,l[i](e))},[t,e,i])}export{m as useSearchTracker};
@@ -6,11 +6,6 @@ export declare const highlight: (rawContent: string, language: string | undefine
6
6
  customTransformer?: ShikiTransformer;
7
7
  } | undefined) => string;
8
8
  export declare function useCodeHighlight(): {
9
- highlight: (rawContent: string, language: string | undefined, highlightOptions: {
10
- withLineNumbers?: boolean;
11
- startLineNumber?: number;
12
- highlight?: string;
13
- customTransformer?: ShikiTransformer;
14
- } | undefined) => string;
9
+ highlight: typeof highlight;
15
10
  };
16
11
  //# sourceMappingURL=useCodeHighlight.d.ts.map
@@ -1 +1 @@
1
- import h from"shiki/langs/bash.mjs";import l from"shiki/langs/c.mjs";import g from"shiki/langs/coffee.mjs";import d from"shiki/langs/csharp.mjs";import k from"shiki/langs/css.mjs";import u from"shiki/langs/go.mjs";import w from"shiki/langs/graphql.mjs";import N from"shiki/langs/html.mjs";import b from"shiki/langs/http.mjs";import y from"shiki/langs/java.mjs";import v from"shiki/langs/javascript.mjs";import x from"shiki/langs/kotlin.mjs";import H from"shiki/langs/lua.mjs";import r from"shiki/langs/markdown.mjs";import L from"shiki/langs/objective-c.mjs";import _ from"shiki/langs/perl.mjs";import j from"shiki/langs/php.mjs";import T from"shiki/langs/python.mjs";import E from"shiki/langs/scala.mjs";import M from"shiki/langs/sql.mjs";import q from"shiki/langs/swift.mjs";import S from"shiki/langs/tsx.mjs";import A from"shiki/langs/typescript.mjs";import C from"shiki/langs/vim.mjs";import D from"shiki/langs/xml.mjs";import F from"shiki/langs/yaml.mjs";import R from"shiki/langs/jsx.mjs";import W from"shiki/langs/jsonl.mjs";import{transformerNotationDiff as G,transformerNotationHighlight as J,transformerNotationWordHighlight as U,transformerNotationFocus as V,transformerNotationErrorLevel as $,transformerMetaHighlight as z,transformerMetaWordHighlight as B,transformerRemoveNotationEscape as I}from"@shikijs/transformers";import{createHighlighterCoreSync as K}from"shiki/core";import{createJavaScriptRegexEngine as O}from"shiki/engine/javascript";import P from"./ruby";import Q from"./multipart-mixed";import X from"./json-seq";import Y from"./theme";import Z from"./treeview-transformer";import rr from"./node-transformer";import or from"./line-numbers-transformer";import{mapLang as tr}from"./map-lang";const mr=[{...r[0],displayName:"Markdoc",name:"markdoc",scopeName:"source.markdoc",aliases:[],repository:{...r[0].repository,fenced_code_block:{patterns:[...r[0].repository.fenced_code_block.patterns||[],{name:"markdoc",begin:".*{%",end:"%}",patterns:[{match:"(?<={%)\\s*(/\\w+(-\\w+)?|\\w+(-\\w+)?)",name:"markdoc.tag"},{match:"\\$\\w+",name:"markdoc.variable"},{match:'".*?"',name:"markdoc.string"},{match:"\\b\\w+(?=\\()",name:"markdoc.function"},{match:"\\s+\\w+(?==|\\s)",name:"markdoc.keyword"},{match:"(?<==)false|true(?=\\s)",name:"markdoc.boolean"}]}]}}}],i="text",a=K({themes:[Y],langs:[h,l,g,d,k,u,w,N,b,y,v,x,H,r,L,_,j,T,P,E,M,q,S,A,D,C,F,mr,R,W,Q,X],engine:O()}),er=[G(),J(),U(),V(),$(),z(),B(),I(),rr()],ir=(o,n,s)=>{const{withLineNumbers:p,startLineNumber:f,highlight:c,customTransformer:t}=s||{},m=tr(n?.toLowerCase()||i),e={lang:m,theme:"theme",meta:{__raw:c},transformers:[...m==="treeview"?[Z()]:[],...er,...p?[or(f)]:[],...t?[t]:[]]};try{return a.codeToHtml(o,e)}catch{return a.codeToHtml(o,{...e,lang:i})}};function Ir(){return{highlight:ir}}export{ir as highlight,Ir as useCodeHighlight};
1
+ import l from"shiki/langs/bash.mjs";import d from"shiki/langs/c.mjs";import g from"shiki/langs/coffee.mjs";import u from"shiki/langs/csharp.mjs";import k from"shiki/langs/css.mjs";import w from"shiki/langs/go.mjs";import b from"shiki/langs/graphql.mjs";import y from"shiki/langs/html.mjs";import N from"shiki/langs/http.mjs";import v from"shiki/langs/java.mjs";import x from"shiki/langs/javascript.mjs";import H from"shiki/langs/kotlin.mjs";import L from"shiki/langs/lua.mjs";import r from"shiki/langs/markdown.mjs";import _ from"shiki/langs/objective-c.mjs";import j from"shiki/langs/perl.mjs";import q from"shiki/langs/php.mjs";import T from"shiki/langs/python.mjs";import C from"shiki/langs/scala.mjs";import E from"shiki/langs/sql.mjs";import M from"shiki/langs/swift.mjs";import S from"shiki/langs/tsx.mjs";import I from"shiki/langs/typescript.mjs";import A from"shiki/langs/vim.mjs";import D from"shiki/langs/xml.mjs";import F from"shiki/langs/yaml.mjs";import R from"shiki/langs/jsx.mjs";import W from"shiki/langs/jsonl.mjs";import{transformerNotationDiff as G,transformerNotationHighlight as J,transformerNotationWordHighlight as U,transformerNotationFocus as V,transformerNotationErrorLevel as $,transformerMetaHighlight as z,transformerMetaWordHighlight as B,transformerRemoveNotationEscape as K}from"@shikijs/transformers";import{createHighlighterCoreSync as O}from"shiki/core";import{createJavaScriptRegexEngine as P}from"shiki/engine/javascript";import Q from"./ruby";import X from"./multipart-mixed";import Y from"./json-seq";import Z from"./theme";import rr from"./treeview-transformer";import or from"./node-transformer";import tr from"./line-numbers-transformer";import{mapLang as mr}from"./map-lang";const er=[{...r[0],displayName:"Markdoc",name:"markdoc",scopeName:"source.markdoc",aliases:[],repository:{...r[0].repository,fenced_code_block:{patterns:[...r[0].repository.fenced_code_block.patterns||[],{name:"markdoc",begin:".*{%",end:"%}",patterns:[{match:"(?<={%)\\s*(/\\w+(-\\w+)?|\\w+(-\\w+)?)",name:"markdoc.tag"},{match:"\\$\\w+",name:"markdoc.variable"},{match:'".*?"',name:"markdoc.string"},{match:"\\b\\w+(?=\\()",name:"markdoc.function"},{match:"\\s+\\w+(?==|\\s)",name:"markdoc.keyword"},{match:"(?<==)false|true(?=\\s)",name:"markdoc.boolean"}]}]}}}],n="text",ir=[l,d,g,u,k,w,b,y,N,v,x,H,L,r,_,j,q,T,Q,C,E,M,S,I,D,A,F,er,R,W,X,Y];let o;function t(){return o||(o=O({themes:[Z],langs:ir,engine:P()})),o}typeof window<"u"&&typeof requestIdleCallback=="function"&&requestIdleCallback(t);const ar=[G(),J(),U(),V(),$(),z(),B(),K(),or()],nr=(m,f,s)=>{const{withLineNumbers:p,startLineNumber:c,highlight:h,customTransformer:e}=s||{},i=mr(f?.toLowerCase()||n),a={lang:i,theme:"theme",meta:{__raw:h},transformers:[...i==="treeview"?[rr()]:[],...ar,...p?[tr(c)]:[],...e?[e]:[]]};try{return t().codeToHtml(m,a)}catch{return t().codeToHtml(m,{...a,lang:n})}};function Or(){return{highlight:nr}}export{nr as highlight,Or as useCodeHighlight};
@@ -6,6 +6,7 @@ export { useL10n as useI18n } from '../l10n/hooks';
6
6
  export { useL10nConfig as useI18nConfig } from './useL10nConfig';
7
7
  export { useL10n } from '../l10n/hooks';
8
8
  export { useTranslate } from '../l10n/hooks';
9
+ export { useTranslationKeys } from '../l10n/hooks';
9
10
  export { useL10nConfig } from './useL10nConfig';
10
11
  export * from './useCurrentUserTeams';
11
12
  export * from './products';
@@ -1 +1 @@
1
- export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as g}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useL10nConfig as d}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as F}from"../../providers/page-data/hooks";import{useUserMenu as P}from"../UserMenu/useUserMenu";import{useSubmitFeedback as T}from"../Feedback/useSubmitFeedback";import{usePreloadHistory as k}from"../usePreloadHistory";import{useBreadcrumbs as D}from"../Sidebar/useBreadcrumbs";import{useBanner as R}from"./useBanner";import{useCatalog as A}from"./catalog/useCatalog";import{useCatalogSort as H}from"./catalog/useCatalogSort";import{useCatalogSearch as w}from"./catalog/useCatalogSearch";import{useFetchCatalogEntities as N}from"./catalog/useFetchCatalogEntities";import{useFetchCatalogEntitiesRelations as j}from"./catalog/useFetchCatalogEntitiesRelations";import{useFetchCatalogEntityRevisions as z}from"./catalog/useFetchCatalogEntityRevisions";import{useCatalogClassic as K}from"./catalog/useCatalogClassic";import{useTelemetry as Q}from"./useTelemetry";import{useUserTeams as X}from"./useUserTeams";import{useMarkdownText as Z}from"./markdown/useMarkdownText";import{useMarkdocRenderer as $}from"./markdown/useMarkdocRenderer";import{useCodeHighlight as oe}from"./codeHighlight/useCodeHighlight";import{useLoadAndNavigate as te}from"./useLoadAndNavigate";import{useUserClaims as ae}from"./useUserClaims";import{useMcpData as fe}from"./useMcpData";import{useAnchorPositioning as pe}from"./useAnchorPositioning";export{pe as useAnchorPositioning,R as useBanner,D as useBreadcrumbs,A as useCatalog,K as useCatalogClassic,w as useCatalogSearch,H as useCatalogSort,oe as useCodeHighlight,N as useFetchCatalogEntities,j as useFetchCatalogEntitiesRelations,z as useFetchCatalogEntityRevisions,f as useGlobalData,p as useI18n,n as useI18nConfig,g as useL10n,d as useL10nConfig,te as useLoadAndNavigate,a as useLoginUrl,$ as useMarkdocRenderer,Z as useMarkdownText,fe as useMcpData,t as usePageSharedData,F as usePageVersions,k as usePreloadHistory,T as useSubmitFeedback,Q as useTelemetry,C as useTranslate,ae as useUserClaims,P as useUserMenu,X as useUserTeams};
1
+ export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as l}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useTranslationKeys as d}from"../l10n/hooks";import{useL10nConfig as L}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as F}from"../../providers/page-data/hooks";import{useUserMenu as P}from"../UserMenu/useUserMenu";import{useSubmitFeedback as U}from"../Feedback/useSubmitFeedback";import{usePreloadHistory as D}from"../usePreloadHistory";import{useBreadcrumbs as R}from"../Sidebar/useBreadcrumbs";import{useBanner as A}from"./useBanner";import{useCatalog as H}from"./catalog/useCatalog";import{useCatalogSort as w}from"./catalog/useCatalogSort";import{useCatalogSearch as K}from"./catalog/useCatalogSearch";import{useFetchCatalogEntities as V}from"./catalog/useFetchCatalogEntities";import{useFetchCatalogEntitiesRelations as q}from"./catalog/useFetchCatalogEntitiesRelations";import{useFetchCatalogEntityRevisions as J}from"./catalog/useFetchCatalogEntityRevisions";import{useCatalogClassic as Q}from"./catalog/useCatalogClassic";import{useTelemetry as X}from"./useTelemetry";import{useUserTeams as Z}from"./useUserTeams";import{useMarkdownText as $}from"./markdown/useMarkdownText";import{useMarkdocRenderer as oe}from"./markdown/useMarkdocRenderer";import{useCodeHighlight as te}from"./codeHighlight/useCodeHighlight";import{useLoadAndNavigate as ae}from"./useLoadAndNavigate";import{useUserClaims as fe}from"./useUserClaims";import{useMcpData as pe}from"./useMcpData";import{useAnchorPositioning as ne}from"./useAnchorPositioning";export{ne as useAnchorPositioning,A as useBanner,R as useBreadcrumbs,H as useCatalog,Q as useCatalogClassic,K as useCatalogSearch,w as useCatalogSort,te as useCodeHighlight,V as useFetchCatalogEntities,q as useFetchCatalogEntitiesRelations,J as useFetchCatalogEntityRevisions,f as useGlobalData,p as useI18n,n as useI18nConfig,l as useL10n,L as useL10nConfig,ae as useLoadAndNavigate,a as useLoginUrl,oe as useMarkdocRenderer,$ as useMarkdownText,pe as useMcpData,t as usePageSharedData,F as usePageVersions,D as usePreloadHistory,U as useSubmitFeedback,X as useTelemetry,C as useTranslate,d as useTranslationKeys,fe as useUserClaims,P as useUserMenu,Z as useUserTeams};
@@ -1 +1 @@
1
- import{useLocation as c}from"react-router-dom";import{getPathnameForLocale as u,withoutPathPrefix as s}from"@redocly/theme/core/utils";import{addTrailingSlash as i}from"../../../../utils/url/add-trailing-slash.js";import{useL10nConfig as m}from"../useL10nConfig";import{useProducts as l}from"./useProducts";const x=()=>{const t=l(),o=c(),{locales:r,defaultLocale:e,currentLocale:n}=m();return t.find(a=>i(u(s(o.pathname),e,n,r)).startsWith(a.slug))};export{x as useCurrentProduct};
1
+ import{useLocation as c}from"react-router";import{getPathnameForLocale as u,withoutPathPrefix as s}from"@redocly/theme/core/utils";import{addTrailingSlash as i}from"../../../../utils/url/add-trailing-slash.js";import{useL10nConfig as m}from"../useL10nConfig";import{useProducts as l}from"./useProducts";const x=()=>{const t=l(),o=c(),{locales:r,defaultLocale:e,currentLocale:n}=m();return t.find(a=>i(u(s(o.pathname),e,n,r)).startsWith(a.slug))};export{x as useCurrentProduct};
@@ -1 +1 @@
1
- import{useLocation as i,useNavigate as s}from"react-router-dom";import{useEffect as h,useRef as m}from"react";import{useActiveSectionId as u}from"@redocly/theme/core/hooks";import{isBrowser as f}from"../../../utils/env/is-browser";import{pathnameMatchesActiveSection as p}from"./utils/pathname-matches-active-section.js";let c=!0;function g(){const t=i(),o=s(),e=u(t,!1,!1),a=m(null);h(()=>{if(e&&c){c=!1,a.current=e;return}const n=a.current!==e,r=p(window.location.pathname,e);f()&&e&&!t.hash&&n&&!r&&o({pathname:t.pathname,search:t.search,hash:`#${e}`},{replace:!0}),a.current=e},[e,t.pathname,t.search,t.hash,o])}export{g as useAutoScroll};
1
+ import{useLocation as s,useNavigate as p}from"react-router";import{useEffect as u,useRef as l}from"react";import{useActiveSectionId as h}from"@redocly/theme/core/hooks";import{isBrowser as m}from"../../../utils/env/is-browser";import{pathnameMatchesActiveSection as f}from"./utils/pathname-matches-active-section.js";import{usePageData as d}from"./usePageData";let c=!0;function b(){const t=s(),o=p(),e=h(t,!1,!1),r=!!d("props")?.props?.disableAutoScroll,a=l(null);u(()=>{if(r){a.current=e;return}if(e&&c){c=!1,a.current=e;return}const n=a.current!==e,i=f(window.location.pathname,e);m()&&e&&!t.hash&&n&&!i&&o({pathname:t.pathname,search:t.search,hash:`#${e}`},{replace:!0}),a.current=e},[e,r,t.pathname,t.search,t.hash,o])}export{b as useAutoScroll};
@@ -1 +1 @@
1
- import{useEffect as S,useMemo as c,useState as f}from"react";import{useLocation as A}from"react-router-dom";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{usePageData as B}from"../../providers/page-data/hooks";import{getBannerForSlug as D,getNextBannerTransition as T,isBannerWithinTimeRange as h}from"./utils/match-banner-target.js";const u="redocly-dismissed-banners",x=2**31-1;function E(){if(typeof window>"u")return new Set;const n=localStorage.getItem(u);if(n){const a=JSON.parse(n);if(Array.isArray(a))return new Set(a)}return new Set}function C(){const{banner:n}=w()||{},t=B()?.props?.frontmatter?.banner,d=A(),[o,g]=f(E()),[s,p]=f(()=>Date.now()),i=d.pathname,m=c(()=>{const r=Array.isArray(n)?n:[],e=Array.isArray(t)?t:[];return[...r,...e]},[n,t]);return S(()=>{const r=T(m,s);if(r===void 0)return;const e=r-Date.now(),y=Math.min(Math.max(0,e),x),l=setTimeout(()=>p(Date.now()),y);return()=>clearTimeout(l)},[m,s]),{banner:c(()=>{const r=(Array.isArray(t)?t:[]).find(e=>!o.has(e.hash)&&h(e,s));if(r)return r;if(!(!n||!Array.isArray(n)||n.length===0))return D(n,i,o,s)},[n,t,i,o,s]),dismissBanner:r=>{const e=new Set(o);e.add(r),g(e),localStorage.setItem(u,JSON.stringify(Array.from(e)))}}}export{u as STORAGE_KEY,E as getDismissedBannersFromStorage,C as useBanner};
1
+ import{useEffect as S,useMemo as c,useState as f}from"react";import{useLocation as A}from"react-router";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{usePageData as B}from"../../providers/page-data/hooks";import{getBannerForSlug as D,getNextBannerTransition as T,isBannerWithinTimeRange as h}from"./utils/match-banner-target.js";const u="redocly-dismissed-banners",x=2**31-1;function E(){if(typeof window>"u")return new Set;const n=localStorage.getItem(u);if(n){const a=JSON.parse(n);if(Array.isArray(a))return new Set(a)}return new Set}function C(){const{banner:n}=w()||{},t=B()?.props?.frontmatter?.banner,d=A(),[o,g]=f(E()),[s,p]=f(()=>Date.now()),i=d.pathname,m=c(()=>{const r=Array.isArray(n)?n:[],e=Array.isArray(t)?t:[];return[...r,...e]},[n,t]);return S(()=>{const r=T(m,s);if(r===void 0)return;const e=r-Date.now(),y=Math.min(Math.max(0,e),x),l=setTimeout(()=>p(Date.now()),y);return()=>clearTimeout(l)},[m,s]),{banner:c(()=>{const r=(Array.isArray(t)?t:[]).find(e=>!o.has(e.hash)&&h(e,s));if(r)return r;if(!(!n||!Array.isArray(n)||n.length===0))return D(n,i,o,s)},[n,t,i,o,s]),dismissBanner:r=>{const e=new Set(o);e.add(r),g(e),localStorage.setItem(u,JSON.stringify(Array.from(e)))}}}export{u as STORAGE_KEY,E as getDismissedBannersFromStorage,C as useBanner};
@@ -1 +1 @@
1
- import{useMemo as r}from"react";import{useLocation as l}from"react-router-dom";import{getLocaleFromPathname as c,withoutPathPrefix as n}from"@redocly/theme/core/utils";import{DEFAULT_LOCALE_PLACEHOLDER as m}from"../../../constants/common";import{useGlobalData as s}from"../useGlobalData";const E=()=>{const a=l(),{l10n:o}=s(),t=r(()=>o?.locales||[],[o?.locales]),e=o?.defaultLocale||m;return{currentLocale:r(()=>c(n(a.pathname),e,t),[a,t,e]),defaultLocale:e,locales:t}};export{E as useL10nConfig};
1
+ import{useMemo as r}from"react";import{useLocation as l}from"react-router";import{getLocaleFromPathname as c,withoutPathPrefix as n}from"@redocly/theme/core/utils";import{DEFAULT_LOCALE_PLACEHOLDER as m}from"../../../constants/common";import{useGlobalData as s}from"../useGlobalData";const E=()=>{const a=l(),{l10n:o}=s(),t=r(()=>o?.locales||[],[o?.locales]),e=o?.defaultLocale||m;return{currentLocale:r(()=>c(n(a.pathname),e,t),[a,t,e]),defaultLocale:e,locales:t}};export{E as useL10nConfig};
@@ -1 +1 @@
1
- import{useLocation as u}from"react-router-dom";import{useThemeConfig as d}from"@redocly/theme/core/hooks";import{getPathnameForLocale as e}from"@redocly/theme/core/utils";import{DEV_LOGIN_SLUG as i}from"../../../constants/common";import{buildLoginUrl as p}from"../../../utils/auth/build-login-url";import{useL10nConfig as a}from"./useL10nConfig";function F(c={}){const f=d(),{auth:o}=f,{defaultLocale:n,locales:t,currentLocale:r}=a(),m=u().pathname,s=()=>{if(o?.idpsInfo?.length){if(o.idpsInfo.length===1){const l=o.idpsInfo[0];return p(l.idpId,e("",n,r,t),m,c)}return e(i,n,r,t)}};return o?.devLogin?e(i,n,r,t):s()}export{F as useLoginUrl};
1
+ import{useLocation as u}from"react-router";import{useThemeConfig as d}from"@redocly/theme/core/hooks";import{getPathnameForLocale as e}from"@redocly/theme/core/utils";import{DEV_LOGIN_SLUG as i}from"../../../constants/common";import{buildLoginUrl as p}from"../../../utils/auth/build-login-url";import{useL10nConfig as a}from"./useL10nConfig";function F(c={}){const f=d(),{auth:o}=f,{defaultLocale:n,locales:t,currentLocale:r}=a(),m=u().pathname,s=()=>{if(o?.idpsInfo?.length){if(o.idpsInfo.length===1){const l=o.idpsInfo[0];return p(l.idpId,e("",n,r,t),m,c)}return e(i,n,r,t)}};return o?.devLogin?e(i,n,r,t):s()}export{F as useLoginUrl};
@@ -1 +1 @@
1
- import{useEffect as r}from"react";import{useLocation as d}from"react-router-dom";import{telemetry as s}from"../telemetry";const g=()=>{const t=d();r(()=>{const i=()=>{if(!e)return;const a=new Date().getTime()-e;s.sendPageTimeMessage([{id:`${window.origin}${t.pathname}`,object:"page",uri:`${window.origin}${t.pathname}`,durationMs:a}]),e=void 0},n=()=>{if(document.visibilityState==="visible"){e=e||new Date().getTime();return}i()},o=()=>{i()};let e=new Date().getTime();return document.addEventListener("visibilitychange",n),window.addEventListener("beforeunload",o),()=>{i(),window.removeEventListener("beforeunload",o),document.removeEventListener("visibilitychange",n)}},[t.pathname])};export{g as usePageTimeTracker};
1
+ import{useEffect as r}from"react";import{useLocation as d}from"react-router";import{telemetry as s}from"../telemetry";const g=()=>{const t=d();r(()=>{const i=()=>{if(!e)return;const a=new Date().getTime()-e;s.sendPageTimeMessage([{id:`${window.origin}${t.pathname}`,object:"page",uri:`${window.origin}${t.pathname}`,durationMs:a}]),e=void 0},n=()=>{if(document.visibilityState==="visible"){e=e||new Date().getTime();return}i()},o=()=>{i()};let e=new Date().getTime();return document.addEventListener("visibilitychange",n),window.addEventListener("beforeunload",o),()=>{i(),window.removeEventListener("beforeunload",o),document.removeEventListener("visibilitychange",n)}},[t.pathname])};export{g as usePageTimeTracker};
@@ -1 +1 @@
1
- import{useLocation as f,useNavigate as d,useNavigationType as l}from"react-router-dom";import{useEffect as v,useState as P}from"react";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{normalizeRouteSlug as E}from"../../../utils/path/normalize-route-slug";import{getBaseDataAttributes as M}from"@redocly/theme/core/utils";import{onRouteChange as y}from"../../runtime/generated/browser-plugins.js";import{resolveRouteBySlug as b}from"../utils/resolveRouteBySlug.js";import{usePageData as C}from"./usePageData.js";import{usePostMessage as R}from"../../providers/post-message/use-post-message.js";import{isInIframe as D}from"../../utils/utils.js";import{waitForContentScripts as I}from"../../ScriptLoader.js";import{telemetry as N}from"../telemetry/index.js";const _=()=>{const e=f(),r=d(),a=l(),n=C(),[t,i]=P(),m=w(),{sendMessage:h}=R();v(()=>{if(e?.pathname.endsWith("/")&&e?.pathname!=="/"){r({pathname:E(e.pathname),search:e.search,hash:e.hash},{replace:!0,state:e.state});return}I().then(()=>{if(e.pathname!==t?.pathname||e.search!==t.search){y({location:e,prevLocation:t},m);const o=`${window.origin}${e.pathname+e.search+e.hash}`,s=t?`${window.origin}${t.pathname+t.search+t.hash}`:void 0;N.sendPageViewedMessage([{...M(o,"page",o),referrer:s||document.referrer||void 0}])}});const p=!!t;i(e);const{pathname:c,hash:g,state:u}=e;(process.env.NODE_ENV==="development"||D())&&p&&b(c+g,n?.templateId).then(o=>{const s=a==="POP"?"browser":u?.origin;s&&h({type:"route-updated",origin:s,...o})}).catch(o=>console.log("Resolve route by slug failed with error: ",o.message))},[e,a])};export{_ as useRouteChangeTracker};
1
+ import{useLocation as f,useNavigate as d,useNavigationType as l}from"react-router";import{useEffect as v,useState as P}from"react";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{normalizeRouteSlug as E}from"../../../utils/path/normalize-route-slug";import{getBaseDataAttributes as M}from"@redocly/theme/core/utils";import{onRouteChange as y}from"../../runtime/generated/browser-plugins.js";import{resolveRouteBySlug as b}from"../utils/resolveRouteBySlug.js";import{usePageData as C}from"./usePageData.js";import{usePostMessage as R}from"../../providers/post-message/use-post-message.js";import{isInIframe as D}from"../../utils/utils.js";import{waitForContentScripts as I}from"../../ScriptLoader.js";import{telemetry as N}from"../telemetry/index.js";const _=()=>{const e=f(),r=d(),a=l(),n=C(),[t,i]=P(),m=w(),{sendMessage:h}=R();v(()=>{if(e?.pathname.endsWith("/")&&e?.pathname!=="/"){r({pathname:E(e.pathname),search:e.search,hash:e.hash},{replace:!0,state:e.state});return}I().then(()=>{if(e.pathname!==t?.pathname||e.search!==t.search){y({location:e,prevLocation:t},m);const o=`${window.origin}${e.pathname+e.search+e.hash}`,s=t?`${window.origin}${t.pathname+t.search+t.hash}`:void 0;N.sendPageViewedMessage([{...M(o,"page",o),referrer:s||document.referrer||void 0}])}});const p=!!t;i(e);const{pathname:c,hash:g,state:u}=e;(process.env.NODE_ENV==="development"||D())&&p&&b(c+g,n?.templateId).then(o=>{const s=a==="POP"?"browser":u?.origin;s&&h({type:"route-updated",origin:s,...o})}).catch(o=>console.log("Resolve route by slug failed with error: ",o.message))},[e,a])};export{_ as useRouteChangeTracker};
@@ -1 +1 @@
1
- import{AuthCookieNames as o}from"../../../constants/common";import{usePageData as m}from"./usePageData";import{getCookie as t}from"./utils/cookies";function E(){const{userData:e}=m("userData")||{},a=t(o.FEDERATED_ACCESS_TOKEN),r=t(o.FEDERATED_ID_TOKEN);return{email:e?.email,name:e?.name,federatedAccessToken:a,federatedIdToken:r}}export{E as useUserClaims};
1
+ import{useMemo as r}from"react";import{AuthCookieNames as m}from"../../../constants/common";import{usePageData as s}from"./usePageData";import{getCookie as t}from"./utils/cookies";function D(){const{userData:e}=s("userData")||{},o=t(m.FEDERATED_ACCESS_TOKEN),a=t(m.FEDERATED_ID_TOKEN);return r(()=>({email:e?.email,name:e?.name,federatedAccessToken:o,federatedIdToken:a}),[e?.email,e?.name,o,a])}export{D as useUserClaims};
@@ -1,3 +1,4 @@
1
1
  export { useTranslate } from './useTranslate';
2
2
  export { useL10n } from './useL10n';
3
+ export { useTranslationKeys } from './useTranslationKeys';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- import{useTranslate as o}from"./useTranslate";import{useL10n as t}from"./useL10n";export{t as useL10n,o as useTranslate};
1
+ import{useTranslate as o}from"./useTranslate";import{useL10n as t}from"./useL10n";import{useTranslationKeys as n}from"./useTranslationKeys";export{t as useL10n,o as useTranslate,n as useTranslationKeys};
@@ -1 +1 @@
1
- import a from"i18next";import{useMemo as u}from"react";import{useL10n as o}from"./useL10n";const d=()=>{const{lang:r}=o();return{translate:u(()=>(n,t)=>{let e=t&&typeof t=="string"?t:void 0,s=e?void 0:t;return n?a.t(n,{defaultValue:e,...s})||e||n||"":e??""},[r])}};export{d as useTranslate};
1
+ import r from"i18next";import{useMemo as e}from"react";import{createTranslate as o}from"../../../../utils/l10n/create-translate.js";import{useL10n as n}from"./useL10n";const p=()=>{const{lang:t}=n();return{translate:e(()=>o(r.t),[t])}};export{p as useTranslate};
@@ -0,0 +1,2 @@
1
+ export declare const useTranslationKeys: () => string[];
2
+ //# sourceMappingURL=useTranslationKeys.d.ts.map
@@ -0,0 +1 @@
1
+ import a from"i18next";import{useL10n as l}from"./useL10n";let i,d=[],u=!1;function g(){if(u)return;u=!0;const t=()=>{i=void 0,d=[]};a.on("added",t),a.on("removed",t),a.on("languageChanged",t)}function y(t){const e=new Set,o=new Set,s=n=>{if(!(!n||o.has(n))){o.add(n);for(const c of f(a.getResourceBundle(n,"translation")))e.add(c)}};s(t),s(a.language);for(const n of a.languages??[])s(n);const r=a.options?.resources??{};for(const n of Object.keys(r))if(!o.has(n)){o.add(n);for(const c of f(r[n]?.translation))e.add(c)}return[...e]}const k=()=>{const{lang:t}=l();return g(),i!==t&&(d=y(t),i=t),d};function f(t,e=""){if(!t||typeof t!="object"||Array.isArray(t))return e?[e]:[];const o=[];for(const s of Object.keys(t)){const r=e?`${e}.${s}`:s;o.push(...f(t[s],r))}return o}export{k as useTranslationKeys};
@@ -1 +1 @@
1
- import c from"i18next";import{DEFAULT_LOCALE_PLACEHOLDER as f}from"../../../constants/common.js";import{defaultTranslationImports as u}from"../../../constants/l10n/default-translations.js";async function p(a,s){const n=a?.defaultLocale||f,i=a?.translations??{},e=a?.locales?[...new Set(a.locales.flatMap(t=>[t.code,t.code.split("-")[0]]))]:[n],l={};for(const t of e){const o=await u[t]?.()||{};l[t]={translation:{...o,...i[t]?.translation}}}return{load:"currentOnly",lng:s,nonExplicitSupportedLngs:!0,fallbackLng:t=>{if(!t)return[n];const o=t.split("-")[0];if(t===n)return o!==t?[o,n]:[n];const r=[t];return o!==t&&r.push(o),r.push(n),r},interpolation:{escapeValue:!1},debug:!1,resources:{...l}}}async function d(a,s){const n=await p(a,s);await c.init(n)}export{d as initL10n};
1
+ import o from"i18next";import{buildI18nConfig as a}from"../../../utils/l10n/build-i18n-config.js";async function c(i,n){const t=await a(i,n);await o.init(t)}export{c as initL10n};
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { OpenAPIDefinition, OpenAPISchema } from '@redocly/openapi-docs';
2
+ import type { OpenAPIDefinition, OpenAPISchema } from '@redocly/api-docs';
3
3
  type JsonSchemaProps = {
4
4
  options?: any;
5
5
  title?: string;
@@ -1 +1 @@
1
- import{RedocSchema as p,StoreProvider as l}from"@redocly/openapi-docs";import*as e from"react";import{Admonition as d}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{MarkdownLink as h}from"@redocly/theme/markdoc/components/MarkdownLink/MarkdownLink";import{link as f}from"../../../../../markdoc/nodes/index.js";import{OpenApiComponentWrap as E}from"../styled.elements";const k={nodes:{link:f},components:{MarkdownLink:h}};function S(m){const{options:s,title:t,schemaResolved:o,schemaResolvedErrors:n,schema:r}=m;if(r||o){const i={openapi:"3.0.0",info:{version:"1",description:"test",title:"test"},paths:{},"x-root":o?.components?.schemas?.__root||r,components:{schemas:{...o?.components?.schemas}}};return e.createElement(E,{"data-testid":"json-schema"},t?e.createElement("h3",null,t):null,e.createElement(l,{options:{...s,markdocOptions:k},definition:i},n?.length?e.createElement(d,{name:"Problem in json-schema tag",type:"danger"},n.map((a,c)=>e.createElement("div",{key:c},a))):null,e.createElement(p,{pointer:"#/x-root",disableDeepLinks:!0})))}}export{S as JsonSchema};
1
+ import{MarkdownAdapterProvider as l,RedocSchema as h,StoreProvider as f,createMarkdocAdapter as k,markdocParser as u}from"@redocly/api-docs";import*as e from"react";import{Admonition as E}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{MarkdownLink as v}from"@redocly/theme/markdoc/components/MarkdownLink/MarkdownLink";import{link as A}from"../../../../../markdoc/nodes/index.js";import{OpenApiComponentWrap as P}from"../styled.elements";const a={nodes:{link:A},components:{MarkdownLink:v}};function S(m){const{options:s,title:t,schemaResolved:o,schemaResolvedErrors:n,schema:r}=m,i=e.useMemo(()=>k(a),[]);if(r||o){const c={openapi:"3.0.0",info:{version:"1",description:"test",title:"test"},paths:{},"x-root":o?.components?.schemas?.__root||r,components:{schemas:{...o?.components?.schemas}}};return e.createElement(P,{"data-testid":"json-schema"},t?e.createElement("h3",null,t):null,e.createElement(f,{options:{...s,markdocOptions:a,markdownParser:u},definition:c},e.createElement(l,{value:i},n?.length?e.createElement(E,{name:"Problem in json-schema tag",type:"danger"},n.map((p,d)=>e.createElement("div",{key:d},p))):null,e.createElement(h,{pointer:"#/x-root",disableDeepLinks:!0}))))}}export{S as JsonSchema};
@@ -1,13 +1,9 @@
1
1
  import * as React from 'react';
2
- import type { OpenAPIParameterLocation } from '@redocly/openapi-docs';
2
+ import type { OpenAPIParameterLocation } from '@redocly/api-docs';
3
3
  type OpenApiCodeSampleProps = {
4
4
  descriptionFile?: string;
5
5
  operationId?: string;
6
6
  pointer?: string;
7
- operation?: {
8
- path: string;
9
- method: string;
10
- };
11
7
  exampleKey?: string;
12
8
  mimeType?: string;
13
9
  language?: string;
@@ -1 +1 @@
1
- import*as o from"react";import{StoreProvider as v,RequestSamples as y,normalizeOptions as E}from"@redocly/openapi-docs";import{ErrorMessage as O,OpenApiComponentWrap as M}from"../styled.elements";import{useStore as b}from"../../hooks/use-store";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as k}from"../../../../templates/openapi-docs/mock-server-config.js";function P(u){const{descriptionFile:d,operationId:a,pointer:m,exampleKey:s,mimeType:l,language:r,requestBody:f,parameters:g,environment:t,environments:n}=u,{store:e,error:S,baseSlug:c}=b(d),i=o.useMemo(()=>({...e?.options,...(r||null)&&{codeSamples:{languages:[{lang:r??""}]},mockServer:k(e?.options?.mockServer,c||"")}}),[r,e?.options,c]),p=o.useMemo(()=>{if(e)return C(e,{operationId:a,pointer:m},E(i),{exampleKey:s,mimeType:l,environments:n,environment:t})},[s,i,l,a,m,e,n,t]);return e?p?o.createElement(M,{"data-testid":"openapi-code-sample"},o.createElement(v,{options:i,definition:e.definition,withState:{environments:n,environment:t,operation:{pointer:p.pointer,state:{requestValues:{body:f,...g}}}}},o.createElement(y,{operation:p,disableFooter:!0}))):o.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation by operationId or pointer"):o.createElement(O,null,S)}export{P as OpenApiCodeSample};
1
+ import*as o from"react";import{StoreProvider as h,RedocCodeSample as k,appendUndeclaredConfigureParameters as C,excludeMockServers as i,markdocParser as E}from"@redocly/api-docs";import{ErrorMessage as P,OpenApiComponentWrap as q}from"../styled.elements";import{useStore as x}from"../../hooks/use-store";import{findCodeSamplePanel as I}from"../../utils/find-code-sample-panel.js";function B(m){const{descriptionFile:d,operationId:s,pointer:a,exampleKey:c,mimeType:u,language:t,requestBody:l,parameters:e,environment:f,environments:v}=m,{store:r,error:y}=x(d),g=o.useMemo(()=>({specType:"openapi",...r?.options,...t&&{codeSamples:{languages:[{lang:t??""}]}},markdownParser:E}),[t,r?.options]),p=o.useMemo(()=>{if(!r?.items?.length)return;const n=I(r.items,{pointer:a,sourceId:s});if(!n)return;const S=C({...n.source,servers:i(n.source.servers)},{...e?.path&&{path:e.path},...e?.query&&{query:e.query},...e?.header&&{headers:e.header},...e?.cookie&&{cookie:e.cookie}});return{...n,...n.servers&&{servers:i(n.servers)},source:S}},[r?.items,a,s,e]);return r?p?o.createElement(q,{"data-testid":"openapi-code-sample"},o.createElement(h,{options:g,apiStore:r.store},o.createElement(k,{node:p,mimeType:u,exampleKey:c,requestBody:l,parameters:e,environment:f,environments:v}))):o.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation (use pointer or operationId)"):o.createElement(P,null,y)}export{B as OpenApiCodeSample};
@@ -1 +1 @@
1
- import*as e from"react";import{RedocExample as a,StoreProvider as c,useOpenapiDocsOptions as l}from"@redocly/openapi-docs";import{ErrorMessage as d,OpenApiComponentWrap as f}from"../styled.elements";import{useStore as E}from"../../hooks/use-store";function g(t){const{descriptionFile:i,pointer:n,options:r,mimeType:p}=t,{store:o,error:m}=E(i),s=l();return o?e.createElement(f,{"data-testid":"openapi-example"},e.createElement(c,{options:{...r,markdocOptions:s.markdocOptions},definition:o.definition},e.createElement(a,{pointer:n,mimeType:p||"application/json"}))):e.createElement(d,null,m)}export{g as OpenApiExample};
1
+ import*as e from"react";import{RedocExample as m,StoreProvider as s,markdocParser as c}from"@redocly/api-docs";import{ErrorMessage as l,OpenApiComponentWrap as d}from"../styled.elements";import{useStore as E}from"../../hooks/use-store";function y(o){const{descriptionFile:t,pointer:p,options:n,mimeType:i}=o,{store:r,error:a}=E(t);return r?e.createElement(d,{"data-testid":"openapi-example"},e.createElement(s,{options:{specType:"openapi",...r.options,...n,markdownParser:c},apiStore:r.store},e.createElement(m,{pointer:p,mimeType:i||"application/json"}))):e.createElement(l,null,a)}export{y as OpenApiExample};
@@ -1 +1 @@
1
- import*as e from"react";import{StoreProvider as S,ResponseSamples as v,normalizeOptions as g}from"@redocly/openapi-docs";import{ErrorMessage as b,OpenApiComponentWrap as E}from"../styled.elements";import{useStore as R}from"../../hooks/use-store";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as O}from"../../../../templates/openapi-docs/mock-server-config.js";function x(a){const{descriptionFile:m,operationId:i,pointer:p,exampleKey:t}=a,{store:o,error:c,baseSlug:s}=R(m),[l,f]=e.useState(),r=e.useMemo(()=>({...o?.options,mockServer:O(o?.options?.mockServer,s||"")}),[o?.options,s]),n=e.useMemo(()=>{if(o)return C(o,{operationId:i,pointer:p},g(r),{exampleKey:t})},[t,r,i,p,o]),d=e.useCallback(u=>{f(u)},[]);return o?n?e.createElement(E,{"data-testid":"openapi-response-sample"},e.createElement(S,{options:r,definition:o.definition,withState:{operation:{pointer:n.pointer,state:{activeExampleName:t}}}},e.createElement(v,{operation:n,activeResponseTab:l,onTabChange:d}))):e.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation by operationId or pointer"):e.createElement(b,null,c)}export{x as OpenApiResponseSample};
1
+ import*as o from"react";import{StoreProvider as l,RedocResponseSamples as d,markdocParser as c}from"@redocly/api-docs";import{ErrorMessage as n,OpenApiComponentWrap as f}from"../styled.elements";import{useStore as u}from"../../hooks/use-store";import{findResponseSamples as S}from"../../utils/find-openapi-response-samples.js";function g(s){const{descriptionFile:t,operationId:p,pointer:a,exampleKey:i}=s,{store:e,error:m}=u(t);if(!e)return o.createElement(n,null,m);const r=e.items?.length?S(e.items,{pointer:a,sourceId:p}):void 0;return r?.responseCodes.length?o.createElement(f,{"data-testid":"openapi-response-sample"},o.createElement(l,{options:{...e.options,specType:"openapi",markdownParser:c},apiStore:e.store},o.createElement(d,{responseCodes:r.responseCodes,exampleKey:i,schemaId:r.schemaId}))):o.createElement(n,null,"Cannot find response samples for the given operation")}export{g as OpenApiResponseSample};
@@ -1,34 +1,18 @@
1
1
  import React from 'react';
2
- import type { OpenAPIParameterLocation } from '@redocly/openapi-docs';
3
- export type ServerOverrideValue = string | {
4
- default: string;
5
- enum: string[];
6
- };
7
- export type ServerOverrides = Record<string, ServerOverrideValue>;
8
- export type RequestAndResponseType = {
9
- request: Record<string, unknown>;
10
- };
11
- export type OperationParameters = Partial<Record<OpenAPIParameterLocation, object>>;
12
- export type OperationIdentifier = {
13
- operationId?: string;
14
- pointer?: string;
15
- };
2
+ import type { OpenAPIParameterLocation } from '@redocly/api-docs';
3
+ import type { RedocConfig } from '@redocly/config';
16
4
  export type ReplayOpenApiProps = {
17
- descriptionFile?: string;
18
- operationId?: string;
5
+ descriptionFile: string;
19
6
  pointer?: string;
20
- operation?: {
21
- path: string;
22
- method: string;
23
- };
7
+ operationId?: string;
24
8
  exampleKey?: string;
25
9
  mimeType?: string;
26
- parameters?: Record<OpenAPIParameterLocation, object>;
27
- requestBody?: any;
28
- options?: any;
10
+ parameters?: Partial<Record<OpenAPIParameterLocation, object>>;
11
+ requestBody?: unknown;
12
+ options?: Partial<RedocConfig>;
29
13
  environment?: string;
30
14
  environments?: Record<string, Record<string, string>>;
31
15
  hideOtherSecuritySchemes?: boolean;
32
- } & OperationIdentifier;
16
+ };
33
17
  export declare const ReplayOpenApi: (props: ReplayOpenApiProps) => React.JSX.Element;
34
18
  //# sourceMappingURL=replay-openapi.d.ts.map
@@ -1 +1 @@
1
- import o from"react";import{EmbeddedReplay as M,StoreProvider as b}from"@redocly/openapi-docs";import{useLocation as A}from"react-router-dom";import{Admonition as I}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as P,OpenApiComponentWrap as x}from"../styled.elements.js";import{useStore as R}from"../../hooks/use-store.js";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as y}from"../../../../templates/openapi-docs/mock-server-config.js";const L=S=>{const{descriptionFile:i,operationId:p,pointer:m,exampleKey:l,mimeType:u,requestBody:a,parameters:v,options:s,environment:r,environments:c,hideOtherSecuritySchemes:O}=S,h=A(),{store:e,error:g,baseSlug:t}=R(i),d=o.useMemo(()=>({...e?.options,...s}),[s,e?.options]),f=o.useMemo(()=>{const{mockServer:E,...k}=d;return{...k,mockServer:y(E,t??"")}},[d,t]),n=o.useMemo(()=>{if(e)return C(e,{operationId:p,pointer:m},f,{exampleKey:l,mimeType:u,environments:c,environment:r,requestBody:a})},[l,f,u,p,m,e,c,r,a]);return e?n?o.createElement(x,{"data-testid":"replay-openapi"},o.createElement(b,{key:`${h.pathname}-${i}-${p||m}`,options:{...s,disableRouter:!0,routingBasePath:t,mockServer:y(d.mockServer,t)},definition:e.definition,withState:{environments:c,allowedEnvironments:r?[r]:void 0,operation:{pointer:n.pointer,state:{requestValues:{body:a,...v}}}}},o.createElement(M,{activeOperationId:n.operationId||"",fullOpenApi:e.definition,corsProxyUrl:e.options.corsProxyUrl,pointer:n.pointer,hideOtherSecuritySchemes:O}))):o.createElement(I,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",i):o.createElement(P,null,g)};export{L as ReplayOpenApi};
1
+ import o from"react";import{useLocation as g}from"react-router";import{EmbeddedReplay as k,StoreProvider as I,buildReplayPredefinedEnvValues as P,mergeEnvData as b,useOpenApiDefinition as h,withReplayPrefetch as R,markdocParser as w}from"@redocly/api-docs";import{Admonition as V}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as C,OpenApiComponentWrap as D}from"../styled.elements.js";import{useStore as v}from"../../hooks/use-store.js";import{getMockServerDocsConfig as E}from"../../../../templates/openapi-docs/mock-server-config.js";import{buildReplayOperationSourceMap as $}from"../../utils/build-replay-operation-source-map.js";import{findApiItem as x}from"../../utils/find-api-item.js";const q=R(function({descriptionFile:p,operationId:r,pointer:n,exampleKey:a,mimeType:e,requestBody:u,parameters:c,environment:s,environments:i,hideOtherSecuritySchemes:d}){const f=g(),{store:t,baseSlug:S}=v(p),m=h(),O=o.useMemo(()=>{if(!m)return{};const M=E(t?.options?.mockServer,S??""),A=P(m,M);return b(A,i??{})},[m,t?.options?.mockServer,S,i]),y=o.useMemo(()=>t?.items?$(t.items,{pointer:n,sourceId:r},{mimeType:e,exampleKey:a},t.store?.exampleStore??{}):new Map,[t?.items,t?.store?.exampleStore,n,r,e,a]);return!m||!t?null:o.createElement(k,{key:`${f.pathname}-${p}-${r||n}`,activeOperationId:r,fullOpenApi:m,pointer:n,operationSourceMap:y,hideOtherSecuritySchemes:d,predefinedEnvValues:O,allowedEnvironments:s?[s]:void 0,requestValues:{body:u,...c},activeMimeName:e})}),J=l=>{const{descriptionFile:p,operationId:r,pointer:n,options:a}=l,{store:e,error:u,baseSlug:c}=v(p),s=o.useMemo(()=>({...e?.options,...a}),[a,e?.options]),i=o.useMemo(()=>e?.items?.length?x(e.items,{pointer:n,sourceId:r}):void 0,[e?.items,n,r]);if(!e)return o.createElement(C,null,u);if(!i?.content?.meta?.pointer)return o.createElement(V,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",p);const d=i.content.meta.pointer,f=i.content.meta.sourceId??"";return o.createElement(D,{"data-testid":"replay-openapi"},o.createElement(I,{apiStore:e.store,options:{specType:"openapi",...s,mockServer:E(s.mockServer,c??""),basePath:c,markdownParser:w}},o.createElement(q,{...l,pointer:d,operationId:f})))};export{J as ReplayOpenApi};
@@ -1,15 +1,17 @@
1
- import type { OpenAPIDefinition } from '@redocly/openapi-docs';
1
+ import type { ApiItem, ApiStore } from '@redocly/api-docs';
2
2
  import type { RedocConfig } from '@redocly/config';
3
+ export type ApiDefinitionEmbedSharedData = {
4
+ items: ApiItem[];
5
+ store: ApiStore;
6
+ options: RedocConfig;
7
+ baseSlug: string;
8
+ };
3
9
  export declare function useStore(sharedDataKey?: string): {
4
10
  store: undefined;
5
11
  error: string;
6
12
  baseSlug?: undefined;
7
13
  } | {
8
- store: {
9
- definition: OpenAPIDefinition;
10
- options: RedocConfig;
11
- baseSlug: string;
12
- };
14
+ store: ApiDefinitionEmbedSharedData;
13
15
  error: null;
14
16
  baseSlug: string;
15
17
  };
@@ -0,0 +1,20 @@
1
+ import type { ApiItem, CodeSampleSource } from '@redocly/api-docs';
2
+ import type { ItemMatch } from './find-api-item.js';
3
+ export type ReplayOperationSourceOptions = {
4
+ mimeType?: string;
5
+ exampleKey?: string;
6
+ };
7
+ type ExampleStoreLike = Record<string, {
8
+ key?: string;
9
+ }>;
10
+ /**
11
+ * Builds a method/path → {@link CodeSampleSource} map from code-sample panels across the nav tree,
12
+ * optionally replacing one operation's source with a narrowed copy for replay.
13
+ *
14
+ * @param items - Docs navigation items.
15
+ * @param match - Which operation to narrow when options are set.
16
+ * @param options - When empty, returns the base map unchanged.
17
+ */
18
+ export declare function buildReplayOperationSourceMap(items: ApiItem[], match: ItemMatch, options?: ReplayOperationSourceOptions, exampleStore?: ExampleStoreLike): Map<string, CodeSampleSource>;
19
+ export {};
20
+ //# sourceMappingURL=build-replay-operation-source-map.d.ts.map
@@ -0,0 +1 @@
1
+ import{findExampleIdByKey as m}from"@redocly/api-docs";import{findCodeSamplePanel as y}from"./find-code-sample-panel.js";import{findPanelEntry as a,isCodeSamplePanelItem as l}from"./openapi-panel-entry.js";function s(e,n=new Map){for(const t of e){const d=t.content?.children;if(d?.length){const r=a(d,o=>l(o)?o.source:void 0);r&&n.set(`${r.method.toLowerCase()}:${r.path}`,r)}t.items?.length&&s(t.items,n)}return n}function c(e,n){if(!e.requestBody)return e;const t=e.requestBody[n];return t?{...e,requestBody:{[n]:t}}:{...e,requestBody:{}}}function p(e,n,t){if(!e.requestBody)return e;const d={...e.requestBody};for(const[r,o]of Object.entries(e.requestBody)){const u=o?.exampleIds?.filter(f=>t[f]?.key!==void 0);if(!u?.length)continue;const i=m(u,n,f=>t[f]);d[r]={...o,exampleIds:i?[i]:[]}}return{...e,requestBody:d}}function x(e,n,t,d={}){const r=s(e);if(!t?.mimeType&&!t?.exampleKey)return r;const o=y(e,n);if(!o?.source)return r;const u=`${o.source.method.toLowerCase()}:${o.source.path}`;let i=o.source;t.mimeType&&(i=c(i,t.mimeType)),t.exampleKey&&(i=p(i,t.exampleKey,d));const f=new Map(r);return f.set(u,i),f}export{x as buildReplayOperationSourceMap};
@@ -0,0 +1,15 @@
1
+ import type { ApiItem } from '@redocly/api-docs';
2
+ /** Identifies an OpenAPI operation item in the docs navigation tree. */
3
+ export type ItemMatch = {
4
+ pointer?: string;
5
+ sourceId?: string;
6
+ };
7
+ /**
8
+ * Finds the first {@link ApiItem} whose content meta matches `pointer` or `sourceId`.
9
+ *
10
+ * @param items - Navigation items (may contain nested `items`).
11
+ * @param match - At least one of `pointer` or `sourceId` should be set for a match.
12
+ * @returns The matching item, or `undefined` if none match or the match object is empty.
13
+ */
14
+ export declare function findApiItem(items: ApiItem[], match: ItemMatch): ApiItem | undefined;
15
+ //# sourceMappingURL=find-api-item.d.ts.map
@@ -0,0 +1 @@
1
+ function d(n){return n.startsWith("#")?n.slice(1):n}function u(n,e){if(!e.pointer&&!e.sourceId)return;const r=e.pointer===void 0?void 0:d(e.pointer);for(const i of n){const t=i.content?.meta;if(t&&(r!==void 0&&t.pointer!==void 0&&d(t.pointer)===r||e.sourceId&&t.sourceId===e.sourceId))return i;if(i.items?.length){const o=u(i.items,e);if(o)return o}}}export{u as findApiItem};
@@ -0,0 +1,11 @@
1
+ import type { ApiItem, CodeSamplePanelItem } from '@redocly/api-docs';
2
+ import type { ItemMatch } from './find-api-item.js';
3
+ /**
4
+ * Locates the code-sample panel for the operation matched by `pointer` or `sourceId`.
5
+ *
6
+ * @param items - Docs navigation items.
7
+ * @param match - Operation identity in the nav tree.
8
+ * @returns The panel entry, or `undefined` if the item or panel is missing.
9
+ */
10
+ export declare function findCodeSamplePanel(items: ApiItem[], match: ItemMatch): CodeSamplePanelItem | undefined;
11
+ //# sourceMappingURL=find-code-sample-panel.d.ts.map
@@ -0,0 +1 @@
1
+ import{findApiItem as d}from"./find-api-item.js";import{findPanelEntry as o,isCodeSamplePanelItem as r}from"./openapi-panel-entry.js";function l(i,t){const n=d(i,t);if(n?.content?.children)return o(n.content.children,e=>r(e)?e:void 0)}export{l as findCodeSamplePanel};
@@ -0,0 +1,15 @@
1
+ import type { ApiItem, ResponseCodeItem } from '@redocly/api-docs';
2
+ import type { ItemMatch } from './find-api-item.js';
3
+ export type ResponseSamples = {
4
+ responseCodes: ResponseCodeItem[];
5
+ schemaId?: string;
6
+ };
7
+ /**
8
+ * Locates response example metadata for the operation matched by `pointer` or `sourceId`.
9
+ *
10
+ * @param items - Docs navigation items.
11
+ * @param match - Operation identity in the nav tree.
12
+ * @returns Response codes (and optional schema id), or `undefined` if not found.
13
+ */
14
+ export declare function findResponseSamples(items: ApiItem[], match: ItemMatch): ResponseSamples | undefined;
15
+ //# sourceMappingURL=find-openapi-response-samples.d.ts.map
@@ -0,0 +1 @@
1
+ import{findApiItem as s}from"./find-api-item.js";import{findPanelEntry as d}from"./openapi-panel-entry.js";function f(o,r){const n=s(o,r);if(n?.content?.children)return d(n.content.children,e=>{if(!(e.kind!=="response"||!e.responseCodes?.length))return{responseCodes:e.responseCodes,schemaId:e.schemaId}})}export{f as findResponseSamples};
@@ -0,0 +1,18 @@
1
+ import type { CodeSamplePanelItem, ContentNode, ResponseCodeItem } from '@redocly/api-docs';
2
+ type PanelEntry = {
3
+ kind: string;
4
+ responseCodes?: ResponseCodeItem[];
5
+ schemaId?: string;
6
+ };
7
+ export declare function isCodeSamplePanelItem(entry: PanelEntry): entry is CodeSamplePanelItem;
8
+ /**
9
+ * Depth-first search of container nodes: inspects each container's panels first,
10
+ * then recurses into `children`.
11
+ *
12
+ * @param nodes - Markdoc content nodes (typically item `content.children`).
13
+ * @param pick - Returns a value when a panel entry matches; `undefined` skips.
14
+ * @returns The first non-undefined result from `pick`, or `undefined`.
15
+ */
16
+ export declare function findPanelEntry<T>(nodes: ContentNode[], pick: (entry: PanelEntry) => T | undefined): T | undefined;
17
+ export {};
18
+ //# sourceMappingURL=openapi-panel-entry.d.ts.map