@redocly/realm 0.130.0-custom.2 → 0.130.0-custom.21

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 (428) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/bin.js +1 -1
  3. package/dist/cli/develop.js +1 -1
  4. package/dist/cli/eject/resolveTheme.d.ts +1 -1
  5. package/dist/cli/eject/resolveTheme.js +1 -1
  6. package/dist/cli/prepare/copy-env-files.js +1 -1
  7. package/dist/cli/prepare/index.js +1 -1
  8. package/dist/cli/stats/collectors/openapi.js +1 -1
  9. package/dist/cli/telemetry/index.js +1 -1
  10. package/dist/client/App.js +1 -1
  11. package/dist/client/ErrorBoundary.js +1 -1
  12. package/dist/client/app/DevModeFloatingBar/index.d.ts +3 -0
  13. package/dist/client/app/DevModeFloatingBar/index.js +43 -0
  14. package/dist/client/app/Feedback/useSubmitFeedback.js +1 -1
  15. package/dist/client/app/Sidebar/InstancePicker.d.ts +10 -0
  16. package/dist/client/app/Sidebar/InstancePicker.js +48 -0
  17. package/dist/client/app/Sidebar/Sidebar.js +11 -3
  18. package/dist/client/app/Sidebar/useBreadcrumbs.js +1 -1
  19. package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
  20. package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
  21. package/dist/client/app/hooks/useAutoScroll.js +1 -1
  22. package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
  23. package/dist/client/app/hooks/utils/pathname-matches-active-section.d.ts +6 -0
  24. package/dist/client/app/hooks/utils/pathname-matches-active-section.js +1 -0
  25. package/dist/client/app/markdoc/custom-components/html-script.js +1 -0
  26. package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -0
  27. package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -0
  28. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -0
  29. package/dist/client/app/markdoc/hooks/use-store.js +1 -0
  30. package/dist/client/browser-entry.js +5 -5
  31. package/dist/client/constants/common.d.ts +2 -0
  32. package/dist/client/constants/common.js +1 -0
  33. package/dist/client/providers/hooks.js +1 -1
  34. package/dist/client/runtime/loader.js +1 -1
  35. package/dist/client/runtime/useSocketMessages.js +1 -1
  36. package/dist/{server/plugins/asyncapi-docs/template → client/templates/asyncapi-docs}/helpers.d.ts +3 -3
  37. package/dist/client/templates/asyncapi-docs/helpers.js +1 -0
  38. package/dist/{server/plugins/asyncapi-docs/template/AsyncApiDocs.d.ts → client/templates/asyncapi-docs/template.d.ts} +1 -1
  39. package/dist/{server/plugins/asyncapi-docs/template/AsyncApiDocs.js → client/templates/asyncapi-docs/template.js} +1 -1
  40. package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/helpers.d.ts +14 -1
  41. package/dist/client/templates/openapi-docs/helpers.js +5 -0
  42. package/dist/{server/plugins/openapi-docs/template/OpenAPIDocs.d.ts → client/templates/openapi-docs/template.d.ts} +1 -1
  43. package/dist/{server/plugins/openapi-docs/template/OpenAPIDocs.js → client/templates/openapi-docs/template.js} +1 -1
  44. package/dist/client/utils/catalog/inject-catalog-items.d.ts +1 -1
  45. package/dist/client/utils/catalog/inject-catalog-items.js +1 -1
  46. package/dist/constants/catalog-entities.d.ts +12 -0
  47. package/dist/constants/catalog-entities.js +1 -0
  48. package/dist/constants/common.d.ts +2 -2
  49. package/dist/constants/common.js +1 -1
  50. package/dist/constants/l10n/langs/ar.js +1 -1
  51. package/dist/constants/l10n/langs/de.js +1 -1
  52. package/dist/constants/l10n/langs/en.js +1 -1
  53. package/dist/constants/l10n/langs/es.js +1 -1
  54. package/dist/constants/l10n/langs/fr.js +1 -1
  55. package/dist/constants/l10n/langs/hi.js +1 -1
  56. package/dist/constants/l10n/langs/it.js +1 -1
  57. package/dist/constants/l10n/langs/ja.js +1 -1
  58. package/dist/constants/l10n/langs/ko.js +1 -1
  59. package/dist/constants/l10n/langs/pl.js +1 -1
  60. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  61. package/dist/constants/l10n/langs/pt.js +1 -1
  62. package/dist/constants/l10n/langs/ru.js +1 -1
  63. package/dist/constants/l10n/langs/uk.js +1 -1
  64. package/dist/constants/l10n/langs/zh.js +1 -1
  65. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-inner-text.d.ts +1 -1
  66. package/dist/markdoc/helpers/get-inner-text.js +2 -0
  67. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-variable.d.ts +2 -2
  68. package/dist/markdoc/helpers/get-variable.js +1 -0
  69. package/dist/markdoc/nodes/fence/index.js +1 -0
  70. package/dist/markdoc/nodes/heading.js +1 -0
  71. package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.d.ts +6 -6
  72. package/dist/markdoc/tags/json-example.d.ts +3 -0
  73. package/dist/markdoc/tags/json-schema.d.ts +3 -0
  74. package/dist/markdoc/tags/openapi-code-sample.d.ts +3 -0
  75. package/dist/markdoc/tags/openapi-example.d.ts +3 -0
  76. package/dist/markdoc/tags/openapi-response-sample.d.ts +3 -0
  77. package/dist/markdoc/tags/replay-openapi.d.ts +3 -0
  78. package/dist/markdoc/types.d.ts +8 -0
  79. package/dist/markdoc/types.js +0 -0
  80. package/dist/server/api-routes/import-api-routes-handlers.js +1 -1
  81. package/dist/server/api-routes/run-api-routes-worker.js +1 -1
  82. package/dist/server/config/env-config.js +1 -0
  83. package/dist/{config → server/config}/env-schema.d.ts +6 -3
  84. package/dist/{config → server/config}/env-schemas/database.d.ts +1 -1
  85. package/dist/server/config/env-schemas/database.js +1 -0
  86. package/dist/{config → server/config}/env-schemas/organization-project.d.ts +3 -0
  87. package/dist/{config → server/config}/env-schemas/organization-project.js +1 -1
  88. package/dist/server/constants/common.d.ts +3 -0
  89. package/dist/server/constants/common.js +1 -1
  90. package/dist/server/constants/feedback.d.ts +6 -0
  91. package/dist/server/constants/feedback.js +1 -0
  92. package/dist/server/constants/plugins/catalog-entities.d.ts +0 -11
  93. package/dist/server/constants/plugins/catalog-entities.js +1 -1
  94. package/dist/server/entitlements/entitlements-provider.js +1 -1
  95. package/dist/server/esbuild/esbuild-logger.js +1 -1
  96. package/dist/server/esbuild/esbuild.js +1 -1
  97. package/dist/server/esbuild/plugins/assets-resolver.js +1 -1
  98. package/dist/server/esbuild/plugins/esbuild-compile-resolver.js +1 -1
  99. package/dist/server/esbuild/plugins/styled-components-ssr.js +1 -1
  100. package/dist/server/esbuild/plugins/themes-resolver.js +2 -2
  101. package/dist/server/{config/external-plugins.d.ts → external-plugins/resolve-external-plugins.d.ts} +2 -2
  102. package/dist/server/external-plugins/resolve-external-plugins.js +1 -0
  103. package/dist/server/fs/cache.js +1 -1
  104. package/dist/server/fs/fast-mtime.js +3 -3
  105. package/dist/server/fs/last-modified-tracker.js +1 -1
  106. package/dist/server/fs/utils/is-loader-cache-enabled.js +1 -1
  107. package/dist/server/node-bundle-entry.js +1 -1
  108. package/dist/server/plugins/analytics/adobe/index.js +1 -1
  109. package/dist/server/plugins/analytics/amplitude/index.js +1 -1
  110. package/dist/server/plugins/analytics/fullstory/index.js +1 -1
  111. package/dist/server/plugins/analytics/ga/index.js +1 -1
  112. package/dist/server/plugins/analytics/gtm/browser-hooks.js +1 -1
  113. package/dist/server/plugins/analytics/gtm/index.js +1 -1
  114. package/dist/server/plugins/analytics/heap/index.js +1 -1
  115. package/dist/server/plugins/analytics/rudderstack/index.js +1 -1
  116. package/dist/server/plugins/analytics/segment/index.js +1 -1
  117. package/dist/server/plugins/asyncapi-docs/index.js +1 -1
  118. package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.js +27 -27
  119. package/dist/server/plugins/catalog-classic/get-server-props.js +1 -1
  120. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.js +1 -1
  121. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.d.ts +2 -2
  122. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.js +1 -1
  123. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
  124. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
  125. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
  126. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +1 -1
  127. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
  128. package/dist/server/plugins/catalog-entities/extensions/extractors/fs-entities-extractor.js +1 -1
  129. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  130. package/dist/server/plugins/config-parser/loaders/redocly-config-loader.js +1 -1
  131. package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
  132. package/dist/server/plugins/default-theme/index.js +1 -1
  133. package/dist/server/plugins/entitlements/index.js +1 -1
  134. package/dist/server/plugins/graphql-docs/index.js +1 -1
  135. package/dist/server/plugins/lifecycle.js +1 -1
  136. package/dist/server/plugins/markdown/attribute-resolvers/code-walkthrough/filesets-resolver.js +1 -1
  137. package/dist/server/plugins/markdown/attribute-resolvers/resolve-code-snippet-from-file.js +1 -1
  138. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-href.js +1 -1
  139. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-source-attribute.js +1 -1
  140. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src-set.js +1 -1
  141. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src.js +1 -1
  142. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-example-ref.js +1 -1
  143. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-schema-ref.js +1 -1
  144. package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
  145. package/dist/server/plugins/markdown/attribute-resolvers/resolve-native-md-link.js +1 -1
  146. package/dist/server/plugins/markdown/attribute-resolvers/resolve-nav-links.js +1 -1
  147. package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
  148. package/dist/server/plugins/markdown/attribute-resolvers/resolve-parsed-yaml.js +1 -1
  149. package/dist/server/plugins/markdown/attribute-resolvers/resolve-raw-content.js +1 -1
  150. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-or-cdn-icon.js +1 -1
  151. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-path.js +1 -1
  152. package/dist/server/plugins/markdown/attribute-resolvers/resolve-sample-from-json-schema.js +1 -1
  153. package/dist/server/plugins/markdown/attribute-resolvers/resolve-svg-content.js +1 -1
  154. package/dist/server/plugins/markdown/markdoc/import-user-tags.js +1 -1
  155. package/dist/server/plugins/markdown/markdoc/markdoc-options.js +1 -1
  156. package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
  157. package/dist/server/plugins/markdown/markdoc/plugins/headings.js +1 -1
  158. package/dist/server/plugins/markdown/markdoc/plugins/render-mermaid.js +1 -1
  159. package/dist/server/plugins/markdown/markdoc/plugins/utils.js +1 -1
  160. package/dist/server/plugins/markdown/runtime-transform.js +1 -1
  161. package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
  162. package/dist/server/plugins/markdown/search/get-search-documents.js +2 -2
  163. package/dist/server/plugins/markdown/search/nodes/section-node.js +1 -1
  164. package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
  165. package/dist/server/plugins/markdown/search/to-markdown.js +17 -13
  166. package/dist/server/plugins/markdown/search/walk-sections.js +1 -1
  167. package/dist/server/plugins/markdown/utils/stringify-tag-children-objects.js +1 -1
  168. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.d.ts +5 -1
  169. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.js +1 -1
  170. package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -1
  171. package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts +3 -2
  172. package/dist/server/plugins/mcp/docs-mcp/tools/search.js +6 -1
  173. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
  174. package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -1
  175. package/dist/server/plugins/mcp/servers/docs-server.d.ts +9 -2
  176. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  177. package/dist/server/plugins/mcp/types.d.ts +20 -1
  178. package/dist/server/plugins/openapi-docs/decorators.js +1 -1
  179. package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.js +1 -1
  180. package/dist/server/plugins/openapi-docs/index.js +1 -1
  181. package/dist/server/plugins/openapi-docs/instances.d.ts +33 -0
  182. package/dist/server/plugins/openapi-docs/instances.js +1 -0
  183. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +20 -20
  184. package/dist/server/plugins/openapi-docs/search-indexer.js +1 -1
  185. package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
  186. package/dist/server/plugins/scorecard-classic/index.js +1 -1
  187. package/dist/server/plugins/scorecard-classic/lint.js +1 -1
  188. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.d.ts +2 -1
  189. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.js +3 -3
  190. package/dist/server/plugins/scorecard-classic/template/Grid/GridHeader.js +15 -9
  191. package/dist/server/plugins/scorecard-classic/template/Grid/GridRow.js +1 -1
  192. package/dist/server/plugins/scorecard-classic/template/index.styles.js +5 -6
  193. package/dist/server/plugins/scorecard-classic/template/views.js +1 -1
  194. package/dist/server/plugins/scorecards/database/scorecards-config-service.js +1 -1
  195. package/dist/server/plugins/scorecards/plugin.js +1 -1
  196. package/dist/server/plugins/scorecards/workers/run-scorecards-worker.js +1 -1
  197. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.d.ts +11 -0
  198. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -0
  199. package/dist/server/plugins/search/documents/search-documents.js +1 -1
  200. package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
  201. package/dist/server/plugins/search/engines/typesense/index.js +1 -1
  202. package/dist/server/plugins/search/index.js +1 -1
  203. package/dist/server/plugins/search/llmstxt/index.js +1 -1
  204. package/dist/server/plugins/search/utils.d.ts +2 -0
  205. package/dist/server/plugins/search/utils.js +2 -2
  206. package/dist/server/plugins/sidebars/index.js +2 -2
  207. package/dist/server/plugins/sso/index.js +1 -1
  208. package/dist/server/providers/database/base-repository.js +1 -1
  209. package/dist/server/providers/database/database-connection-factory.js +1 -1
  210. package/dist/server/providers/database/database-preconnect-service.js +1 -1
  211. package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.js +1 -1
  212. package/dist/server/ssr/render.js +1 -1
  213. package/dist/server/ssr/server-side-props/get-server-props-from-user-handler.js +1 -1
  214. package/dist/server/ssr/utils.js +1 -1
  215. package/dist/server/store.d.ts +3 -1
  216. package/dist/server/store.js +1 -1
  217. package/dist/server/telemetry/index.js +1 -1
  218. package/dist/server/tools/notifiers/formatter.js +1 -1
  219. package/dist/server/tools/notifiers/helpers/colors.js +1 -1
  220. package/dist/server/tools/notifiers/logger.js +1 -1
  221. package/dist/server/tools/notifiers/reporter.js +1 -1
  222. package/dist/server/tools/notifiers/terminal-manager.js +1 -1
  223. package/dist/server/types/plugins/common.d.ts +1 -0
  224. package/dist/server/types/plugins/markdown.d.ts +0 -7
  225. package/dist/server/utils/ai-agent-detection.d.ts +16 -0
  226. package/dist/server/utils/ai-agent-detection.js +1 -0
  227. package/dist/server/utils/envs/load-env-variables.js +1 -1
  228. package/dist/server/utils/fs.js +1 -1
  229. package/dist/server/utils/index.d.ts +2 -2
  230. package/dist/server/utils/index.js +1 -1
  231. package/dist/server/utils/is-catalog-entities-enabled.js +1 -1
  232. package/dist/server/utils/is-scorecards-enabled.js +1 -1
  233. package/dist/server/utils/report-all-errors.js +1 -1
  234. package/dist/server/version.js +1 -1
  235. package/dist/server/web-server/auth.d.ts +2 -0
  236. package/dist/server/web-server/auth.js +4 -4
  237. package/dist/server/web-server/handle-api-route-request.js +1 -1
  238. package/dist/server/web-server/http.js +2 -2
  239. package/dist/server/web-server/middleware/apiKeyMiddleware.js +1 -1
  240. package/dist/server/web-server/middleware/catalogAuthMiddleware.js +1 -1
  241. package/dist/server/web-server/middleware/corsMiddleware.js +1 -1
  242. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js +1 -1
  243. package/dist/server/web-server/middleware/idleTimeoutMiddleware.js +1 -1
  244. package/dist/server/web-server/middleware/responseHeadersMiddleware.js +1 -1
  245. package/dist/server/web-server/mime-types.js +1 -1
  246. package/dist/server/web-server/routes/auth.js +1 -1
  247. package/dist/server/web-server/routes/cors-proxy.d.ts +5 -0
  248. package/dist/server/web-server/routes/cors-proxy.js +2 -0
  249. package/dist/server/web-server/routes/dynamic-route.js +1 -1
  250. package/dist/server/web-server/routes/error.js +1 -1
  251. package/dist/server/web-server/routes/feedback.js +1 -1
  252. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.d.ts +2 -0
  253. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.js +1 -0
  254. package/dist/server/web-server/routes/index.js +1 -1
  255. package/dist/server/web-server/routes/info.js +1 -1
  256. package/dist/server/web-server/routes/mcp-oauth.js +1 -1
  257. package/dist/server/web-server/routes/otel/otel.js +1 -1
  258. package/dist/server/web-server/routes/page-data.js +1 -1
  259. package/dist/server/web-server/routes/path-prefix-redirect.js +1 -1
  260. package/dist/server/web-server/routes/resolve-route.js +1 -1
  261. package/dist/server/web-server/routes/semantic-search.d.ts +4 -0
  262. package/dist/server/web-server/routes/semantic-search.js +1 -0
  263. package/dist/server/workers/worker-pool.js +1 -1
  264. package/dist/{server/utils → utils}/slugger.d.ts +13 -0
  265. package/package.json +11 -11
  266. package/dist/client/app/ErrorBubble/index.d.ts +0 -3
  267. package/dist/client/app/ErrorBubble/index.js +0 -59
  268. package/dist/client/app/PageCounter/index.d.ts +0 -3
  269. package/dist/client/app/PageCounter/index.js +0 -64
  270. package/dist/config/env-config.js +0 -1
  271. package/dist/config/env-schemas/database.js +0 -1
  272. package/dist/server/config/external-plugins.js +0 -1
  273. package/dist/server/plugins/asyncapi-docs/template/helpers.js +0 -1
  274. package/dist/server/plugins/markdown/markdoc/custom-components/html-script.js +0 -1
  275. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-code-sample.js +0 -1
  276. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-response-sample.js +0 -1
  277. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/replay-openapi.js +0 -1
  278. package/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js +0 -2
  279. package/dist/server/plugins/markdown/markdoc/helpers/get-variable.js +0 -1
  280. package/dist/server/plugins/markdown/markdoc/hooks/use-store.js +0 -1
  281. package/dist/server/plugins/markdown/markdoc/nodes/fence/index.js +0 -1
  282. package/dist/server/plugins/markdown/markdoc/nodes/heading.js +0 -1
  283. package/dist/server/plugins/markdown/markdoc/tags/json-example.d.ts +0 -3
  284. package/dist/server/plugins/markdown/markdoc/tags/json-schema.d.ts +0 -3
  285. package/dist/server/plugins/markdown/markdoc/tags/openapi-code-sample.d.ts +0 -3
  286. package/dist/server/plugins/markdown/markdoc/tags/openapi-example.d.ts +0 -3
  287. package/dist/server/plugins/markdown/markdoc/tags/openapi-response-sample.d.ts +0 -3
  288. package/dist/server/plugins/markdown/markdoc/tags/replay-openapi.d.ts +0 -3
  289. package/dist/server/plugins/openapi-docs/template/helpers.js +0 -5
  290. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.d.ts +0 -6
  291. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.js +0 -1
  292. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.d.ts +0 -0
  293. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.js +0 -0
  294. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/html-script.d.ts +0 -0
  295. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.d.ts +0 -0
  296. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.js +0 -0
  297. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.d.ts +0 -0
  298. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.js +0 -0
  299. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.d.ts +0 -0
  300. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.js +0 -0
  301. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.d.ts +0 -0
  302. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.js +0 -0
  303. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.d.ts +0 -0
  304. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.js +0 -0
  305. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.d.ts +0 -0
  306. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.js +0 -0
  307. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.d.ts +0 -0
  308. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.js +0 -0
  309. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.d.ts +0 -0
  310. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.js +0 -0
  311. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.d.ts +0 -0
  312. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.js +0 -0
  313. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.d.ts +0 -0
  314. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.js +0 -0
  315. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.d.ts +0 -0
  316. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.js +0 -0
  317. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.d.ts +0 -0
  318. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.js +0 -0
  319. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.d.ts +0 -0
  320. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.js +0 -0
  321. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-code-sample.d.ts +0 -0
  322. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.d.ts +0 -0
  323. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.js +0 -0
  324. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-response-sample.d.ts +0 -0
  325. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/replay-openapi.d.ts +0 -0
  326. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.d.ts +0 -0
  327. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.js +0 -0
  328. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.d.ts +0 -0
  329. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.js +0 -0
  330. /package/dist/{server/plugins/markdown → client/app}/markdoc/hooks/use-store.d.ts +0 -0
  331. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.d.ts +0 -0
  332. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.js +0 -0
  333. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.d.ts +0 -0
  334. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.js +0 -0
  335. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.d.ts +0 -0
  336. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.js +0 -0
  337. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.d.ts +0 -0
  338. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.js +0 -0
  339. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.d.ts +0 -0
  340. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.js +0 -0
  341. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.d.ts +0 -0
  342. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.js +0 -0
  343. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.d.ts +0 -0
  344. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.js +0 -0
  345. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.d.ts +0 -0
  346. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.js +0 -0
  347. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.d.ts +0 -0
  348. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.js +0 -0
  349. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.d.ts +0 -0
  350. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.js +0 -0
  351. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.d.ts +0 -0
  352. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.js +0 -0
  353. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.d.ts +0 -0
  354. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.js +0 -0
  355. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.d.ts +0 -0
  356. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.js +0 -0
  357. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.d.ts +0 -0
  358. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.js +0 -0
  359. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.d.ts +0 -0
  360. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.js +0 -0
  361. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.d.ts +0 -0
  362. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.js +0 -0
  363. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.d.ts +0 -0
  364. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.js +0 -0
  365. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.d.ts +0 -0
  366. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.js +0 -0
  367. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.d.ts +0 -0
  368. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.js +0 -0
  369. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.d.ts +0 -0
  370. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.js +0 -0
  371. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.d.ts +0 -0
  372. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.js +0 -0
  373. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.d.ts +0 -0
  374. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.js +0 -0
  375. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.d.ts +0 -0
  376. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.js +0 -0
  377. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.d.ts +0 -0
  378. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.js +0 -0
  379. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.d.ts +0 -0
  380. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.js +0 -0
  381. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/index.d.ts +0 -0
  382. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.d.ts +0 -0
  383. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.js +0 -0
  384. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/heading.d.ts +0 -0
  385. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.d.ts +0 -0
  386. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.js +0 -0
  387. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.d.ts +0 -0
  388. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.js +0 -0
  389. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.d.ts +0 -0
  390. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.js +0 -0
  391. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.js +0 -0
  392. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-example.js +0 -0
  393. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-schema.js +0 -0
  394. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-code-sample.js +0 -0
  395. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-example.js +0 -0
  396. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-response-sample.js +0 -0
  397. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/replay-openapi.js +0 -0
  398. /package/dist/{config → server/config}/env-config.d.ts +0 -0
  399. /package/dist/{config → server/config}/env-schema.js +0 -0
  400. /package/dist/{config → server/config}/env-schemas/api-urls.d.ts +0 -0
  401. /package/dist/{config → server/config}/env-schemas/api-urls.js +0 -0
  402. /package/dist/{config → server/config}/env-schemas/auth.d.ts +0 -0
  403. /package/dist/{config → server/config}/env-schemas/auth.js +0 -0
  404. /package/dist/{config → server/config}/env-schemas/catalog.d.ts +0 -0
  405. /package/dist/{config → server/config}/env-schemas/catalog.js +0 -0
  406. /package/dist/{config → server/config}/env-schemas/environment-detection.d.ts +0 -0
  407. /package/dist/{config → server/config}/env-schemas/environment-detection.js +0 -0
  408. /package/dist/{config → server/config}/env-schemas/feature-flags.d.ts +0 -0
  409. /package/dist/{config → server/config}/env-schemas/feature-flags.js +0 -0
  410. /package/dist/{config → server/config}/env-schemas/scorecards.d.ts +0 -0
  411. /package/dist/{config → server/config}/env-schemas/scorecards.js +0 -0
  412. /package/dist/{config → server/config}/env-schemas/search.d.ts +0 -0
  413. /package/dist/{config → server/config}/env-schemas/search.js +0 -0
  414. /package/dist/{config → server/config}/env-schemas/server-config.d.ts +0 -0
  415. /package/dist/{config → server/config}/env-schemas/server-config.js +0 -0
  416. /package/dist/{config → server/config}/env-schemas/site.d.ts +0 -0
  417. /package/dist/{config → server/config}/env-schemas/site.js +0 -0
  418. /package/dist/{config → server/config}/env-schemas/ssr.d.ts +0 -0
  419. /package/dist/{config → server/config}/env-schemas/ssr.js +0 -0
  420. /package/dist/{config → server/config}/env-schemas/telemetry.d.ts +0 -0
  421. /package/dist/{config → server/config}/env-schemas/telemetry.js +0 -0
  422. /package/dist/{config → server/config}/env-schemas/test.d.ts +0 -0
  423. /package/dist/{config → server/config}/env-schemas/test.js +0 -0
  424. /package/dist/server/{config → external-plugins}/resolve-module.d.ts +0 -0
  425. /package/dist/server/{config → external-plugins}/resolve-module.js +0 -0
  426. /package/dist/{server/utils → utils}/conflict-resolvers.d.ts +0 -0
  427. /package/dist/{server/utils → utils}/conflict-resolvers.js +0 -0
  428. /package/dist/{server/utils → utils}/slugger.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,121 @@
1
1
  # @redocly/realm
2
2
 
3
+ ## 0.130.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 5b1e533559: Fixed security vulnerability CVE-2026-25128 in fast-xml-parser by upgrading openapi-sampler to version 1.7.0.
8
+ - Updated dependencies [5b1e533559]
9
+ - @redocly/portal-plugin-mock-server@0.15.2
10
+ - @redocly/asyncapi-docs@1.7.2
11
+ - @redocly/openapi-docs@3.18.2
12
+ - @redocly/theme@0.62.1
13
+ - @redocly/graphql-docs@1.7.1
14
+
15
+ ## 0.130.3
16
+
17
+ ### Patch Changes
18
+
19
+ - 0beb1adad0: Fixed a bug where AI search events were not tracked for project analytics.
20
+ - Updated dependencies [e7708a15f1]
21
+ - Updated dependencies [e7708a15f1]
22
+ - @redocly/portal-plugin-mock-server@0.15.1
23
+ - @redocly/asyncapi-docs@1.7.1
24
+ - @redocly/openapi-docs@3.18.1
25
+
26
+ ## 0.131.0-next.6
27
+
28
+ ### Patch Changes
29
+
30
+ - bfdf798d61: Fixed **View as Markdown** and **Copy for LLM** page actions incorrectly omitting schema properties that share a name with a property at a different nesting level.
31
+ - 17aafeac4a: Fixed an issue in OpenAPI docs where example keys were used instead of summary text in example drop-downs.
32
+ - 3b5a78a01a: Updated `@redocly/openapi-core` to version `2.19.0`.
33
+ - 9b35001fdd: Fixed an issue in OpenAPI docs where nested Markdoc partial tags prevented partial content from rendering.
34
+ - c50df09073: Fixed an issue where scorecard displayed a "Lint completed without rules" message when rules were configured in the `apis` section of `redocly.yaml` rather than at the root level.
35
+ - 2bb21c43ec: Fixed security vulnerability `CVE-2026-26278` in `fast-xml-parser` by upgrading to version `5.3.6`.
36
+ - Updated dependencies [17aafeac4a]
37
+ - Updated dependencies [3b5a78a01a]
38
+ - Updated dependencies [2bb21c43ec]
39
+ - Updated dependencies [2bb21c43ec]
40
+ - @redocly/openapi-docs@3.19.0-next.4
41
+ - @redocly/portal-plugin-mock-server@0.16.0-next.4
42
+ - @redocly/asyncapi-docs@1.8.0-next.4
43
+
44
+ ## 0.131.0-next.5
45
+
46
+ ### Patch Changes
47
+
48
+ - 5ef75a3b5d: Fixed an issue where the **Copy for LLM** and **View as Markdown** page actions ignored the respective path prefix for the root page.
49
+ - Updated dependencies [5ef75a3b5d]
50
+ - @redocly/theme@0.63.0-next.3
51
+ - @redocly/asyncapi-docs@1.8.0-next.3
52
+ - @redocly/graphql-docs@1.8.0-next.3
53
+ - @redocly/openapi-docs@3.19.0-next.3
54
+ - @redocly/portal-plugin-mock-server@0.16.0-next.3
55
+
56
+ ## 0.131.0-next.4
57
+
58
+ ### Minor Changes
59
+
60
+ - d87ca0f750: Replaces the separate right-side development mode controls in Realm docs UI with a single bottom floating status bar to improve user experience.
61
+ - e7cc4036fc: Added support for OpenAPI 3.2 `tags` object.
62
+ - 4aa015b6ea: Added support for OpenAPI 3.2 `querystring` parameters to handle structured query parameters with nested objects and arrays.
63
+ - 10585dd0d0: Added support for the `nodeType` field in the OpenAPI 3.2 XML Object.
64
+ - 703634d21f: Enabled semantic search for Docs MCP.
65
+
66
+ ### Patch Changes
67
+
68
+ - c2b1717b2b: Added stricter validation to feedback forms.
69
+ - 34ef22b17c: Added `code-snippet` Markdoc tag support for `llms.txt`.
70
+ - b8765bab46: Updated `@redocly/openapi-core` to version `2.18.2`.
71
+ - Updated dependencies [c2b1717b2b]
72
+ - Updated dependencies [e7cc4036fc]
73
+ - Updated dependencies [4aa015b6ea]
74
+ - Updated dependencies [10585dd0d0]
75
+ - Updated dependencies [34ef22b17c]
76
+ - Updated dependencies [b8765bab46]
77
+ - @redocly/theme@0.63.0-next.2
78
+ - @redocly/openapi-docs@3.19.0-next.2
79
+ - @redocly/asyncapi-docs@1.8.0-next.2
80
+ - @redocly/graphql-docs@1.8.0-next.2
81
+ - @redocly/portal-plugin-mock-server@0.16.0-next.2
82
+
83
+ ## 0.130.2
84
+
85
+ ### Patch Changes
86
+
87
+ - 4dfbc3b570: Fixed an issue where Project Analytics would not display any data for specific versions of Realm.
88
+ - Updated dependencies [4dfbc3b570]
89
+ - @redocly/realm-asyncapi-sdk@0.8.1
90
+ - @redocly/theme@0.62.0
91
+
92
+ ## 0.131.0-next.3
93
+
94
+ ### Patch Changes
95
+
96
+ - 807547ecbd: Improved build memory usage during build for large projects.
97
+
98
+ ## 0.131.0-next.2
99
+
100
+ ### Minor Changes
101
+
102
+ - 8a6153095f: Added an internal `/_api/cors` proxy endpoint in Realm and configured embedded Replay to use it by default.
103
+
104
+ ### Patch Changes
105
+
106
+ - 089558ba51: Updated `@redocly/openapi-core` to version `2.18.0`.
107
+ - 8ff89afeb0: Fixed an issue where Project Analytics would not display any data for specific versions of Realm.
108
+ - adf0e98992: Fixed an issue where the expand dropdown buttons were not covered by other dropdown menus.
109
+ - Updated dependencies [089558ba51]
110
+ - Updated dependencies [8ff89afeb0]
111
+ - Updated dependencies [adf0e98992]
112
+ - @redocly/openapi-docs@3.19.0-next.1
113
+ - @redocly/realm-asyncapi-sdk@0.9.0-next.1
114
+ - @redocly/theme@0.63.0-next.1
115
+ - @redocly/asyncapi-docs@1.8.0-next.1
116
+ - @redocly/portal-plugin-mock-server@0.16.0-next.1
117
+ - @redocly/graphql-docs@1.8.0-next.1
118
+
3
119
  ## 0.131.0-next.1
4
120
 
5
121
  ### Patch Changes
package/dist/bin.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import"./server/utils/set-execution-mode.js";import"./cli/utils/node-version-check.js";import o from"mri";import*as r from"node:path";import{tmpdir as A}from"node:os";import*as x from"node:fs";import"./server/node-fetch-polyfill.js";import{cliCommandNames as g}from"./constants/common.js";import{initPlugins as T}from"./server/plugins/lifecycle.js";import{loadEnvVariables as y}from"./server/utils/envs/load-env-variables.js";import{PORTAL_VERSION as k}from"./server/version.js";import{logger as p}from"./server/tools/notifiers/logger.js";import{reporter as t}from"./server/tools/notifiers/reporter.js";import{sha as R}from"./server/utils/crypto/sha.js";import{envConfig as S}from"./config/env-config.js";import{develop as V}from"./cli/develop.js";import{eject as I}from"./cli/eject/index.js";import{beforeCommand as w}from"./server/utils/lifecycle-hooks.js";import{Store as C}from"./server/store.js";import{prepare as L}from"./cli/prepare/index.js";import{fromCurrentDir as _}from"./server/utils/paths.js";import{translationsCliOpts as M}from"./cli/translations/options.js";import{generateTranslations as N}from"./cli/translations/index.js";import{EntitlementsProvider as F}from"./server/entitlements/entitlements-provider.js";import{isValidPlan as U}from"./server/entitlements/is-valid-plan.js";import{stopAllCompilers as $}from"./server/esbuild/esbuild.js";import{copyLibsqlPrebuiltBinary as q}from"./cli/prepare/libsql/copy-prebuilt-binary.js";import{telemetry as d}from"./cli/telemetry/index.js";import{stats as B}from"./cli/stats/index.js";import{statsCliOpts as G}from"./cli/stats/options.js";const n=process.argv[2];let i;const f={alias:{d:"project-dir",p:"port"},default:{"project-dir":S.REDOCLY_CONTENT_DIR||process.cwd(),outdir:"public"}},Y={alias:f.alias,default:{...f.default,plan:"enterprise"}},z={alias:{d:"prepareDir"},default:{prepareDir:"public"}},H={boolean:["force"],alias:{f:"force",d:"project-dir"},default:{"project-dir":process.cwd()}};process.on("uncaughtException",async function(e){e?.code==="ERR_INVALID_STATE"?console.log("Ignore premature close error"):(p.error("Uncaught exception occurred. Stopping compilers."),await $(),p.error("Exiting due to uncaught exception"),await t.panic(e))});try{n||await t.panicOnContentError("Command not specified.");const e=F.instance();switch(["prepare","serve","stats"].includes(n)&&await e.init(),["eject","translate"].includes(n)&&await e.init({developModePlan:"enterprise"}),n){case"develop":case"preview":const a=o(process.argv.slice(3),Y),E=r.resolve(a["project-dir"]),j=r.join(A(),"redocly-public-"+R(E)),l=a.plan.toLowerCase();U(l)||await t.panicOnContentError(`Invalid --plan argument value '${l}'.`),await e.init({developModePlan:l}),i=new C({contentDir:r.resolve(a["project-dir"]),outdir:j,serverOutDir:_(import.meta.url,"./server/esbuild/cache/server")}),await w(g.DEVELOP,a,i),await V(a,i);break;case"prepare":const s=o(process.argv.slice(3),f),u=r.resolve(r.join(s.outdir,"server"));i=new C({contentDir:r.resolve(s["project-dir"]),outdir:r.resolve(s.outdir,"client"),serverOutDir:u}),await w(g.PREPARE,s,i),q(u),await L(s,i);break;case"serve":await y();const b=o(process.argv.slice(3),z),O=r.resolve(b.prepareDir);d.sendServeCliCommandExecutedMessage();const v=r.join(O,"server","index.mjs");x.existsSync(v)||await t.panic("Server not found. Please run `realm prepare` first"),import(v).catch(async c=>{await t.panic("Failed to load server",c)});break;case"eject":e.canAccessFeature("themeEjecting")||await t.panicOnContentError('The "eject" command is not available for this project');const m=o(process.argv.slice(3),H),{lifecycleContext:{getConfig:h,fs:D}}=await T({outdir:"",contentDir:r.resolve(m["project-dir"]),setGlobalConfig:()=>null});D.dispose(),d.sendCliCommandEjectExecutedMessage([{object:"cli_command",arguments:m}]),await I({...m,config:await h()}),p.clearAllTimeouts();break;case"translate":if(e.canAccessFeature("l10n")){const c=o(process.argv.slice(3),M);d.sendCliCommandTranslateExecutedMessage({arguments:c}),await N(c)}else await t.panicOnContentError('The "translate" command is not available for this project');break;case"stats":const P=o(process.argv.slice(3),G);await B(P);break;case"--version":console.log(k);break;default:await t.panicOnContentError(`Unknown command "${n}"`)}}catch(e){p.error("Exiting due to uncaught exception"),await t.panic(e)}
2
+ import"./server/utils/set-execution-mode.js";import"./cli/utils/node-version-check.js";import o from"mri";import*as r from"node:path";import{tmpdir as A}from"node:os";import*as x from"node:fs";import"./server/node-fetch-polyfill.js";import{cliCommandNames as g}from"./constants/common.js";import{initPlugins as T}from"./server/plugins/lifecycle.js";import{loadEnvVariables as y}from"./server/utils/envs/load-env-variables.js";import{PORTAL_VERSION as k}from"./server/version.js";import{logger as p}from"./server/tools/notifiers/logger.js";import{reporter as t}from"./server/tools/notifiers/reporter.js";import{sha as R}from"./server/utils/crypto/sha.js";import{envConfig as S}from"./server/config/env-config.js";import{develop as V}from"./cli/develop.js";import{eject as I}from"./cli/eject/index.js";import{beforeCommand as w}from"./server/utils/lifecycle-hooks.js";import{Store as C}from"./server/store.js";import{prepare as L}from"./cli/prepare/index.js";import{fromCurrentDir as _}from"./server/utils/paths.js";import{translationsCliOpts as M}from"./cli/translations/options.js";import{generateTranslations as N}from"./cli/translations/index.js";import{EntitlementsProvider as F}from"./server/entitlements/entitlements-provider.js";import{isValidPlan as U}from"./server/entitlements/is-valid-plan.js";import{stopAllCompilers as $}from"./server/esbuild/esbuild.js";import{copyLibsqlPrebuiltBinary as q}from"./cli/prepare/libsql/copy-prebuilt-binary.js";import{telemetry as d}from"./cli/telemetry/index.js";import{stats as B}from"./cli/stats/index.js";import{statsCliOpts as G}from"./cli/stats/options.js";const n=process.argv[2];let i;const f={alias:{d:"project-dir",p:"port"},default:{"project-dir":S.REDOCLY_CONTENT_DIR||process.cwd(),outdir:"public"}},Y={alias:f.alias,default:{...f.default,plan:"enterprise"}},z={alias:{d:"prepareDir"},default:{prepareDir:"public"}},H={boolean:["force"],alias:{f:"force",d:"project-dir"},default:{"project-dir":process.cwd()}};process.on("uncaughtException",async function(e){e?.code==="ERR_INVALID_STATE"?console.log("Ignore premature close error"):(p.error("Uncaught exception occurred. Stopping compilers."),await $(),p.error("Exiting due to uncaught exception"),await t.panic(e))});try{n||await t.panicOnContentError("Command not specified.");const e=F.instance();switch(["prepare","serve","stats"].includes(n)&&await e.init(),["eject","translate"].includes(n)&&await e.init({developModePlan:"enterprise"}),n){case"develop":case"preview":const a=o(process.argv.slice(3),Y),E=r.resolve(a["project-dir"]),j=r.join(A(),"redocly-public-"+R(E)),l=a.plan.toLowerCase();U(l)||await t.panicOnContentError(`Invalid --plan argument value '${l}'.`),await e.init({developModePlan:l}),i=new C({contentDir:r.resolve(a["project-dir"]),outdir:j,serverOutDir:_(import.meta.url,"./server/esbuild/cache/server")}),await w(g.DEVELOP,a,i),await V(a,i);break;case"prepare":const s=o(process.argv.slice(3),f),u=r.resolve(r.join(s.outdir,"server"));i=new C({contentDir:r.resolve(s["project-dir"]),outdir:r.resolve(s.outdir,"client"),serverOutDir:u}),await w(g.PREPARE,s,i),q(u),await L(s,i);break;case"serve":await y();const b=o(process.argv.slice(3),z),O=r.resolve(b.prepareDir);d.sendServeCliCommandExecutedMessage();const v=r.join(O,"server","index.mjs");x.existsSync(v)||await t.panic("Server not found. Please run `realm prepare` first"),import(v).catch(async c=>{await t.panic("Failed to load server",c)});break;case"eject":e.canAccessFeature("themeEjecting")||await t.panicOnContentError('The "eject" command is not available for this project');const m=o(process.argv.slice(3),H),{lifecycleContext:{getConfig:h,fs:D}}=await T({outdir:"",contentDir:r.resolve(m["project-dir"]),setGlobalConfig:()=>null});D.dispose(),d.sendCliCommandEjectExecutedMessage([{object:"cli_command",arguments:m}]),await I({...m,config:await h()}),p.clearAllTimeouts();break;case"translate":if(e.canAccessFeature("l10n")){const c=o(process.argv.slice(3),M);d.sendCliCommandTranslateExecutedMessage({arguments:c}),await N(c)}else await t.panicOnContentError('The "translate" command is not available for this project');break;case"stats":const P=o(process.argv.slice(3),G);await B(P);break;case"--version":console.log(k);break;default:await t.panicOnContentError(`Unknown command "${n}"`)}}catch(e){p.error("Exiting due to uncaught exception"),await t.panic(e)}
@@ -1 +1 @@
1
- import{logger as t}from"../server/tools/notifiers/logger.js";import{reporter as u}from"../server/tools/notifiers/reporter.js";import{green as v}from"../server/tools/notifiers/helpers/colors.js";import{envConfig as m}from"../config/env-config.js";import{resolveCache as w}from"../server/esbuild/plugins/themes-resolver.js";import{getBilledPagesCount as p}from"../server/utils/index.js";import{createClientCompiler as C,createServerCompiler as h}from"../server/esbuild/esbuild.js";import{initPlugins as S,runPlugins as f,writeClientEntries as E}from"../server/plugins/lifecycle.js";import{startDevServer as R}from"../server/web-server/dev-server.js";import{validateAllMarkdowns as b}from"../server/plugins/markdown/compiler.js";import{reportAllErrors as g}from"../server/utils/report-all-errors.js";import{copyMigrationsFolder as y}from"../server/providers/database/copy-migrations.js";async function F(i,e){t.info("Starting project preview mode."),E(e),t.startTiming("initial-js"),await L(e),t.infoTime("initial-js","JavaScript compiled");const{pluginInstances:a,lifecycleContext:n}=await S({contentDir:e.contentDir,outdir:e.outdir,serverOutDir:void 0,devLogin:i["dev-login"]!==!1,setGlobalConfig:e.setGlobalConfig});e.lifecycleContext=n,y(e),await f(a,e,n,{failFast:!0});const d=async()=>{const r=performance.now();u.clearErrors(),await f(a,e,n),m.REDOCLY_EXP_DISABLE_MD_VALIDATION!=="true"?await b(e,n):t.info("Skipping markdown validation step"),D().then(async()=>{await g(n);const l=p(e.getAllRoutes()),o=u.summary(` \u{1F440} Last change processed in ${v(Math.round(performance.now()-r)+"ms")}`,l);e.runListeners("errors-updated",void 0,o),e.runListeners("pages-updated",void 0,l),e.runListeners("routes-updated")})};m.REDOCLY_EXP_DISABLE_MD_VALIDATION!=="true"?await b(e,n):t.info("Skipping markdown validation step"),await g(n);const s=p(e.getAllRoutes());u.summary(" \u{1F440} Watching for changes...",s),e.runListeners("pages-updated",void 0,s),n.fs.watch(async()=>{w.clear(),await d()}),t.verbose("Starting development server."),await R(e,n,{port:Number(i.port||4e3)}),u.listenStdin()}async function L(i){let e=!0,a=!0;const n=r=>{r==="client"?e=!0:a=!0,i.runListeners("build-started"),e!=a&&(i.startEsbuildRun(),t.startTiming("rebuild"))},d=async r=>{r==="client"?e=!1:a=!1,!(e||a)&&(i.finishEsbuildRun(),i.buildRevision++,t.infoTime("rebuild","JavaScript re-compiled"),await i.reloadMarkdocOptions(),i.markUserCodeReady(),i.runListeners("build-updated"),i.lifecycleContext&&i.buildRevision>1&&i.lifecycleContext.fs.emitCodeUpdated())},s=[new Promise((r,l)=>{const o={label:"client",buildStart(){t.verbose("Start compiling client code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Client compiled"),r(!0)},rebuildStart:()=>n("client"),rebuildEnd:()=>d("client")};C(i,i.outdir,"development",o).then(c=>c.watch()).catch(l)}),new Promise((r,l)=>{const o={label:"server",buildStart(){t.verbose("Start compiling server code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Server compiled"),r(!0)},rebuildStart:()=>n("server"),rebuildEnd:()=>d("server")};h(i,i.serverOutDir,"development",o).then(c=>c.watch()).catch(l)})];await Promise.all(s),await i.reloadMarkdocOptions()}function D(){return new Promise(i=>{setTimeout(i,0)})}export{F as develop};
1
+ import{logger as t}from"../server/tools/notifiers/logger.js";import{reporter as u}from"../server/tools/notifiers/reporter.js";import{green as v}from"../server/tools/notifiers/helpers/colors.js";import{envConfig as m}from"../server/config/env-config.js";import{resolveCache as w}from"../server/esbuild/plugins/themes-resolver.js";import{getBilledPagesCount as p}from"../server/utils/index.js";import{createClientCompiler as C,createServerCompiler as h}from"../server/esbuild/esbuild.js";import{initPlugins as S,runPlugins as f,writeClientEntries as E}from"../server/plugins/lifecycle.js";import{startDevServer as R}from"../server/web-server/dev-server.js";import{validateAllMarkdowns as b}from"../server/plugins/markdown/compiler.js";import{reportAllErrors as g}from"../server/utils/report-all-errors.js";import{copyMigrationsFolder as y}from"../server/providers/database/copy-migrations.js";async function F(i,e){t.info("Starting project preview mode."),E(e),t.startTiming("initial-js"),await L(e),t.infoTime("initial-js","JavaScript compiled");const{pluginInstances:a,lifecycleContext:n}=await S({contentDir:e.contentDir,outdir:e.outdir,serverOutDir:void 0,devLogin:i["dev-login"]!==!1,setGlobalConfig:e.setGlobalConfig});e.lifecycleContext=n,y(e),await f(a,e,n,{failFast:!0});const d=async()=>{const r=performance.now();u.clearErrors(),await f(a,e,n),m.REDOCLY_EXP_DISABLE_MD_VALIDATION!=="true"?await b(e,n):t.info("Skipping markdown validation step"),D().then(async()=>{await g(n);const l=p(e.getAllRoutes()),o=u.summary(` \u{1F440} Last change processed in ${v(Math.round(performance.now()-r)+"ms")}`,l);e.runListeners("errors-updated",void 0,o),e.runListeners("pages-updated",void 0,l),e.runListeners("routes-updated")})};m.REDOCLY_EXP_DISABLE_MD_VALIDATION!=="true"?await b(e,n):t.info("Skipping markdown validation step"),await g(n);const s=p(e.getAllRoutes());u.summary(" \u{1F440} Watching for changes...",s),e.runListeners("pages-updated",void 0,s),n.fs.watch(async()=>{w.clear(),await d()}),t.verbose("Starting development server."),await R(e,n,{port:Number(i.port||4e3)}),u.listenStdin()}async function L(i){let e=!0,a=!0;const n=r=>{r==="client"?e=!0:a=!0,i.runListeners("build-started"),e!=a&&(i.startEsbuildRun(),t.startTiming("rebuild"))},d=async r=>{r==="client"?e=!1:a=!1,!(e||a)&&(i.finishEsbuildRun(),i.buildRevision++,t.infoTime("rebuild","JavaScript re-compiled"),await i.reloadMarkdocOptions(),i.markUserCodeReady(),i.runListeners("build-updated"),i.lifecycleContext&&i.buildRevision>1&&i.lifecycleContext.fs.emitCodeUpdated())},s=[new Promise((r,l)=>{const o={label:"client",buildStart(){t.verbose("Start compiling client code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Client compiled"),r(!0)},rebuildStart:()=>n("client"),rebuildEnd:()=>d("client")};C(i,i.outdir,"development",o).then(c=>c.watch()).catch(l)}),new Promise((r,l)=>{const o={label:"server",buildStart(){t.verbose("Start compiling server code."),t.startTiming(this.label)},buildEnd(){t.verboseTime(this.label,"Server compiled"),r(!0)},rebuildStart:()=>n("server"),rebuildEnd:()=>d("server")};h(i,i.serverOutDir,"development",o).then(c=>c.watch()).catch(l)})];await Promise.all(s),await i.reloadMarkdocOptions()}function D(){return new Promise(i=>{setTimeout(i,0)})}export{F as develop};
@@ -1,3 +1,3 @@
1
- import type { ResolvedPlugin } from '../../server/config/external-plugins.js';
1
+ import type { ResolvedPlugin } from '../../server/external-plugins/resolve-external-plugins.js';
2
2
  export declare function resolveTheme(contentDir: string, pluginPaths: string[], themeName?: string, componentToEject?: string): Promise<ResolvedPlugin | undefined>;
3
3
  //# sourceMappingURL=resolveTheme.d.ts.map
@@ -1 +1 @@
1
- import*as f from"path";import{bold as i}from"colorette";import{existsSync as m}from"node:fs";import{USER_THEME_ALIAS as u}from"../../constants/common.js";import{reporter as a}from"../../server/tools/notifiers/reporter.js";import{resolvePlugins as l}from"../../server/config/external-plugins.js";const d=[".tsx",".ts",".mjsx",".mjs",".jsx",".js"];async function T(t,s,e,n){const o=(await l(t,s)).find(r=>e?r.name===e:h(r,n));if(!o){const r=e?`The requested theme ${i(e)} does not exist`:n?`The requested component ${i(n)} does not exist in any theme`:void 0;r&&await a.panicOnBuildContentError(r)}return o}function h(t,s){if(t.name===u||!s)return!1;for(const e of d)if(m(f.join(t.pluginDirAbsolutePath,s+e)))return!0;return!1}export{T as resolveTheme};
1
+ import*as f from"path";import{bold as i}from"colorette";import{existsSync as m}from"node:fs";import{USER_THEME_ALIAS as u}from"../../constants/common.js";import{reporter as a}from"../../server/tools/notifiers/reporter.js";import{resolveExternalPlugins as l}from"../../server/external-plugins/resolve-external-plugins.js";const d=[".tsx",".ts",".mjsx",".mjs",".jsx",".js"];async function T(t,s,e,n){const o=(await l(t,s)).find(r=>e?r.name===e:h(r,n));if(!o){const r=e?`The requested theme ${i(e)} does not exist`:n?`The requested component ${i(n)} does not exist in any theme`:void 0;r&&await a.panicOnBuildContentError(r)}return o}function h(t,s){if(t.name===u||!s)return!1;for(const e of d)if(m(f.join(t.pluginDirAbsolutePath,s+e)))return!0;return!1}export{T as resolveTheme};
@@ -1 +1 @@
1
- import t from"node:path";import{copyFileSync as v,existsSync as s,mkdirSync as u}from"node:fs";import{envConfig as c}from"../../config/env-config.js";import{logger as l}from"../../server/tools/notifiers/logger.js";import{sanitizeBranchName as a}from"../../server/utils/envs/sanitize-branch-name.js";const F=n=>{const i=f();s(n.serverOutDir)||u(n.serverOutDir,{recursive:!0});const e=[];for(const o of i){const r=t.join(n.contentDir,o);if(!s(r))continue;const p=t.join(n.serverOutDir,o);v(r,p),e.push(o)}e.length>0&&l.info(`Env files included in bundle: ${e.map(()=>"%rp").join(", ")}`,...e)},f=()=>{const n=c.redoclyEnv,i=c.PUBLIC_REDOCLY_BRANCH_NAME,e=[".env"];switch(i&&e.push(`.env.branch.${a(i)}`),n){case"production":e.push(".env.production");break;case"preview":e.push(".env.preview");break;default:e.push(".env.development");break}return e};export{F as copyEnvFiles};
1
+ import t from"node:path";import{copyFileSync as v,existsSync as s,mkdirSync as u}from"node:fs";import{envConfig as c}from"../../server/config/env-config.js";import{logger as l}from"../../server/tools/notifiers/logger.js";import{sanitizeBranchName as a}from"../../server/utils/envs/sanitize-branch-name.js";const F=n=>{const i=f();s(n.serverOutDir)||u(n.serverOutDir,{recursive:!0});const e=[];for(const o of i){const r=t.join(n.contentDir,o);if(!s(r))continue;const p=t.join(n.serverOutDir,o);v(r,p),e.push(o)}e.length>0&&l.info(`Env files included in bundle: ${e.map(()=>"%rp").join(", ")}`,...e)},f=()=>{const n=c.redoclyEnv,i=c.PUBLIC_REDOCLY_BRANCH_NAME,e=[".env"];switch(i&&e.push(`.env.branch.${a(i)}`),n){case"production":e.push(".env.production");break;case"preview":e.push(".env.preview");break;default:e.push(".env.development");break}return e};export{F as copyEnvFiles};
@@ -1 +1 @@
1
- import T from"node:path";import{unlink as h}from"node:fs/promises";import{writeFileSync as y}from"node:fs";import{envConfig as S}from"../../config/env-config.js";import{PORTAL_VERSION as A}from"../../server/version.js";import{logger as e}from"../../server/tools/notifiers/logger.js";import{reporter as b}from"../../server/tools/notifiers/reporter.js";import{shutdowner as O}from"../../server/tools/shutdowner.js";import{promiseMapLimit as D}from"../../server/utils/async/promise-map-limit.js";import{validateReactPages as E}from"../../server/plugins/pages/validators/validate-react-pages.js";import{ensureDir as v}from"../../server/utils/index.js";import{initPlugins as M,runPlugins as _,writeClientEntries as x}from"../../server/plugins/lifecycle.js";import{createClientCompiler as L,createNodeBundleCompiler as J}from"../../server/esbuild/esbuild.js";import{validateAllMarkdowns as j}from"../../server/plugins/markdown/compiler.js";import{copyEnvFiles as k}from"./copy-env-files.js";import{EsbuildError as l,esbuildLogger as p}from"../../server/esbuild/esbuild-logger.js";import{reportAllErrors as F}from"../../server/utils/report-all-errors.js";import{collectAnalytics as U}from"./analytics/collect-analytics.js";import{copyMigrationsFolder as z}from"../../server/providers/database/copy-migrations.js";import{telemetry as c}from"../telemetry/index.js";import{telemetryTraceStep as m}from"../telemetry/helpers/trace-step.js";async function si(C,i){c.initialize(A),e.info("Starting project build.");const P=e.startTiming();await m("build.start",async R=>{x(i);const d=await L(i,i.outdir,"production"),u=await J(i,i.serverOutDir,"production");let n,f;try{await m("build.client_compilation",async()=>{const s=e.startTiming(),o=await d.rebuild().catch(a=>{throw new l(a)});Array.isArray(o.warnings)&&p(new l({warnings:o.warnings}));const r=e.infoTime(s,"Client JavaScript compiled");r&&c.sendTimingPerformedMessage(r)}),await m("build.server_compilation",async()=>{const s=e.startTiming(),o=await u.rebuild().catch(a=>{throw new l(a)});Array.isArray(o.warnings)&&p(new l({warnings:o.warnings}));const r=e.infoTime(s,"Server JavaScript compiled");r&&c.sendTimingPerformedMessage({message:r.message,timeMs:r.timeMs})}),await i.reloadMarkdocOptions();let t;({pluginInstances:t,lifecycleContext:n}=await M({outdir:i.outdir,serverOutDir:i.serverOutDir,contentDir:i.contentDir,devLogin:C.devLogin,setGlobalConfig:i.setGlobalConfig})),n.fs.dispose(),i.lifecycleContext=n,z(i),await _(t,i,n),f=U(i,n),await m("build.client_server_recompile",async()=>{const s=e.startTiming();e.info("Re-compiling JavaScript with user code"),(await Promise.all([d.rebuild(),u.rebuild()]).catch(a=>{throw new l(a)})).forEach(({warnings:a})=>{Array.isArray(a)&&p(new l({warnings:a}))});const r=e.infoTime(s,"JavaScript re-compiled");r&&c.sendTimingPerformedMessage(r)}),await m("build.pages_validation",async()=>{await E(i,n),await j(i,n)}),await F(n),i.markUserCodeReady()}catch(t){R?.error(t),t instanceof l&&p(t)}finally{f&&await f.catch(()=>{}),await d.dispose(),await u.dispose()}b.printErrors(),e.info("Rendering pages..."),await m("build.prepare_static_data",async t=>{const s=e.startTiming(),o=[...i.getAllRoutes(),...i.getAllApiRoutes()];t?.setAttribute("totalRoutes",o.length.toString()),await D(o,15,a=>i.writeRouteStaticData(a,n));const r=e.successTime(s,"Page static data prepared.");r&&c.sendTimingPerformedMessage(r)}),await m("build.store_serialization",async()=>{const t=e.startTiming();v(i.serverOutDir),y(T.join(i.serverOutDir,"store.json"),JSON.stringify(await i.toJson())),e.successTime(t,"Store serialized and written."),k(i)});const g=S.REDOCLY_PROBLEMS_OUTPUT_FILE;if(g){const t=e.startTiming();y(v(g),JSON.stringify(b.getProblems()),"utf-8"),e.successTime(t,"Broken links written.")}await h(T.join(i.serverOutDir,"index.css"));const w=e.successTime(P,"All done");w&&c.sendTimingPerformedMessage(w)}),await O.exitWithCode(0)}export{si as prepare};
1
+ import T from"node:path";import{unlink as S}from"node:fs/promises";import{writeFileSync as y}from"node:fs";import{envConfig as v}from"../../server/config/env-config.js";import{PORTAL_VERSION as A}from"../../server/version.js";import{logger as e}from"../../server/tools/notifiers/logger.js";import{reporter as b}from"../../server/tools/notifiers/reporter.js";import{shutdowner as O}from"../../server/tools/shutdowner.js";import{promiseMapLimit as E}from"../../server/utils/async/promise-map-limit.js";import{validateReactPages as D}from"../../server/plugins/pages/validators/validate-react-pages.js";import{ensureDir as C}from"../../server/utils/index.js";import{initPlugins as M,runPlugins as _,writeClientEntries as x}from"../../server/plugins/lifecycle.js";import{createClientCompiler as L,createNodeBundleCompiler as J}from"../../server/esbuild/esbuild.js";import{validateAllMarkdowns as j}from"../../server/plugins/markdown/compiler.js";import{copyEnvFiles as k}from"./copy-env-files.js";import{EsbuildError as l,esbuildLogger as p}from"../../server/esbuild/esbuild-logger.js";import{reportAllErrors as F}from"../../server/utils/report-all-errors.js";import{collectAnalytics as U}from"./analytics/collect-analytics.js";import{copyMigrationsFolder as z}from"../../server/providers/database/copy-migrations.js";import{telemetry as c}from"../telemetry/index.js";import{telemetryTraceStep as m}from"../telemetry/helpers/trace-step.js";async function si(P,i){c.initialize(A),e.info("Starting project build.");const R=e.startTiming();await m("build.start",async h=>{x(i);const d=await L(i,i.outdir,"production"),u=await J(i,i.serverOutDir,"production");let n,f;try{await m("build.client_compilation",async()=>{const s=e.startTiming(),o=await d.rebuild().catch(a=>{throw new l(a)});Array.isArray(o.warnings)&&p(new l({warnings:o.warnings}));const r=e.infoTime(s,"Client JavaScript compiled");r&&c.sendTimingPerformedMessage(r)}),await m("build.server_compilation",async()=>{const s=e.startTiming(),o=await u.rebuild().catch(a=>{throw new l(a)});Array.isArray(o.warnings)&&p(new l({warnings:o.warnings}));const r=e.infoTime(s,"Server JavaScript compiled");r&&c.sendTimingPerformedMessage({message:r.message,timeMs:r.timeMs})}),await i.reloadMarkdocOptions();let t;({pluginInstances:t,lifecycleContext:n}=await M({outdir:i.outdir,serverOutDir:i.serverOutDir,contentDir:i.contentDir,devLogin:P.devLogin,setGlobalConfig:i.setGlobalConfig})),n.fs.dispose(),i.lifecycleContext=n,z(i),await _(t,i,n),f=U(i,n),await m("build.client_server_recompile",async()=>{const s=e.startTiming();e.info("Re-compiling JavaScript with user code"),(await Promise.all([d.rebuild(),u.rebuild()]).catch(a=>{throw new l(a)})).forEach(({warnings:a})=>{Array.isArray(a)&&p(new l({warnings:a}))});const r=e.infoTime(s,"JavaScript re-compiled");r&&c.sendTimingPerformedMessage(r)}),await m("build.pages_validation",async()=>{await D(i,n),await j(i,n)}),v.isProductionEnv&&await F(n),i.markUserCodeReady()}catch(t){h?.error(t),t instanceof l&&p(t)}finally{f&&await f.catch(()=>{}),await d.dispose(),await u.dispose()}b.printErrors(),e.info("Rendering pages..."),await m("build.prepare_static_data",async t=>{const s=e.startTiming(),o=[...i.getAllRoutes(),...i.getAllApiRoutes()];t?.setAttribute("totalRoutes",o.length.toString()),await E(o,15,a=>i.writeRouteStaticData(a,n));const r=e.successTime(s,"Page static data prepared.");r&&c.sendTimingPerformedMessage(r)}),await m("build.store_serialization",async()=>{const t=e.startTiming();C(i.serverOutDir),y(T.join(i.serverOutDir,"store.json"),JSON.stringify(await i.toJson())),e.successTime(t,"Store serialized and written."),k(i)});const g=v.REDOCLY_PROBLEMS_OUTPUT_FILE;if(g){const t=e.startTiming();y(C(g),JSON.stringify(b.getProblems()),"utf-8"),e.successTime(t,"Broken links written.")}await S(T.join(i.serverOutDir,"index.css"));const w=e.successTime(R,"All done");w&&c.sendTimingPerformedMessage(w)}),await O.exitWithCode(0)}export{si as prepare};
@@ -1 +1 @@
1
- import{detectSpec as m,getTypes as f,normalizeTypes as d,normalizeVisitors as u,resolveDocument as w,BaseResolver as h,Stats as S,walkDocument as y}from"@redocly/openapi-core";import{logger as l}from"../../../server/tools/notifiers/logger.js";import{telemetryTraceStep as g}from"../../telemetry/helpers/trace-step.js";import{telemetry as D}from"../../telemetry/index.js";const t={refs:{metric:"References",total:0,color:"red",items:new Set},externalDocs:{metric:"External Documents",total:0,color:"magenta"},schemas:{metric:"Schemas",total:0,color:"white"},parameters:{metric:"Parameters",total:0,color:"yellow",items:new Set},links:{metric:"Links",total:0,color:"cyan",items:new Set},pathItems:{metric:"Path Items",total:0,color:"green"},webhooks:{metric:"Webhooks",total:0,color:"green"},operations:{metric:"Operations",total:0,color:"yellow"},tags:{metric:"Tags",total:0,color:"white",items:new Set}};async function x(a,r){await g("stats.openapi",async()=>{l.info("OpenAPI collector: start processing documents...");const s=(await a.cache.load(".","load-oas-docs")).data,e=[];for(const o of s)if(!o.isVirtual){const n=await b(o);e.push(n)}D.sendStatsOpenapiCollectedMessage([{object:"openapi_stats",openapiStats:e.map(o=>JSON.stringify(o))}]),r||console.table(e),l.info("OpenAPI collector: openapi docments processing completed.")})}async function b(a){const r=a.definition,s=m(r),e=d(f(s)),o=u([{severity:"warn",ruleId:"openapi_stats",visitor:S(t)}],e),n={problems:[],specVersion:s,visitorsData:{}},c={source:{absoluteRef:""},parsed:r},i=e.Root;if(!i)throw new Error("Root type not found in OpenAPI spec types");const p=await w({rootDocument:c,rootType:i,externalRefResolver:new h});return y({rootType:i,normalizedVisitors:o,resolvedRefMap:p,document:c,ctx:n}),{path:a.relativePath,refs:t.refs.total,externalDocs:t.externalDocs.total,schemas:t.schemas.total,parameters:t.parameters.total,links:t.links.total,pathItems:t.pathItems.total,webhooks:t.webhooks.total,operations:t.operations.total,tags:t.tags.total,version:s}}export{x as collectOpenapiDocumentsStatistics};
1
+ import{detectSpec as m,getTypes as f,normalizeTypes as d,normalizeVisitors as u,resolveDocument as w,BaseResolver as h,Stats as y,walkDocument as S}from"@redocly/openapi-core";import{logger as l}from"../../../server/tools/notifiers/logger.js";import{envConfig as g}from"../../../server/config/env-config.js";import{telemetryTraceStep as D}from"../../telemetry/helpers/trace-step.js";import{telemetry as I}from"../../telemetry/index.js";const t={refs:{metric:"References",total:0,color:"red",items:new Set},externalDocs:{metric:"External Documents",total:0,color:"magenta"},schemas:{metric:"Schemas",total:0,color:"white"},parameters:{metric:"Parameters",total:0,color:"yellow",items:new Set},links:{metric:"Links",total:0,color:"cyan",items:new Set},pathItems:{metric:"Path Items",total:0,color:"green"},webhooks:{metric:"Webhooks",total:0,color:"green"},operations:{metric:"Operations",total:0,color:"yellow"},tags:{metric:"Tags",total:0,color:"white",items:new Set}};async function T(s,a){await D("stats.openapi",async()=>{l.info("OpenAPI collector: start processing documents...");const e=(await s.cache.load(".","load-oas-docs")).data,o=[];for(const r of e)if(!r.isVirtual){const n=await v(r);o.push(n),I.sendStatsOpenapiCollectedMessage([{...n,projectBuildId:g.PROJECT_BUILD_ID||""}])}a||console.table(o),l.info("OpenAPI collector: openapi docments processing completed.")})}async function v(s){const a=s.definition,e=m(a),o=d(f(e)),r=u([{severity:"warn",ruleId:"openapi_stats",visitor:y(t)}],o),n={problems:[],specVersion:e,visitorsData:{}},c={source:{absoluteRef:""},parsed:a},i=o.Root;if(!i)throw new Error("Root type not found in OpenAPI spec types");const p=await w({rootDocument:c,rootType:i,externalRefResolver:new h});return S({rootType:i,normalizedVisitors:r,resolvedRefMap:p,document:c,ctx:n}),{path:s.relativePath,refs:t.refs.total,externalDocs:t.externalDocs.total,schemas:t.schemas.total,parameters:t.parameters.total,links:t.links.total,pathItems:t.pathItems.total,webhooks:t.webhooks.total,operations:t.operations.total,tags:t.tags.total,version:e}}export{T as collectOpenapiDocumentsStatistics};
@@ -1 +1 @@
1
- import{AsyncApiRealmCLI as c}from"@redocly/realm-asyncapi-sdk";import{TELEMETRY_ENABLED as i}from"../../server/constants/common.js";import{shutdowner as a}from"../../server/tools/shutdowner.js";import{envConfig as o}from"../../config/env-config.js";import{PACKAGE_NAME as l}from"../../config/product-gates.js";class n extends c.Telemetry{#e=new Map;constructor(){super(),this.updateCloudEventData(()=>({organization:{id:o.ORGANIZATION_ID||"",slug:o.ORGANIZATION_SLUG||""},project:{id:o.PROJECT_ID||"",slug:""},productType:"cli",sourceDetails:{user:"Anonymous",object:"user",uri:""},request:{source:"cli"}}))}initialize(e,r,t){const s=r!==void 0?!(r&&i):!i;this.init({otel:{serviceName:"realm-cli",serviceVersion:`${l}@${e}`,collectorTraceUrl:o.OTEL_TRACES_URL||"https://otel.cloud.redocly.com/v1/traces",isProd:o.isProductionEnv,version:"1.0",tracerName:"cli-telemetry"},disabled:s,verbose:t}),a.registerShutdownCallback(this.#r.bind(this))}addTraceStepCallbacks(e,{error:r,end:t}){this.#e.set(e,{error:r,end:t})}removeTraceStepCallbacks(e){this.#e.delete(e)}async#r(e){for(const[,{error:r,end:t}]of this.#e)e&&r(e),t();this.#e.clear(),await this.forceFlush(),await this.shutdown()}}const d=new n,f=d.tracer;export{d as telemetry,f as telemetryTracer};
1
+ import{AsyncApiRealmCLI as c}from"@redocly/realm-asyncapi-sdk";import{ulid as l}from"ulid";import{TELEMETRY_ENABLED as i}from"../../server/constants/common.js";import{shutdowner as s}from"../../server/tools/shutdowner.js";import{envConfig as t}from"../../server/config/env-config.js";import{PACKAGE_NAME as n}from"../../config/product-gates.js";class d extends c.Telemetry{#e=new Map;constructor(){super(),this.updateCloudEventData(()=>({organizationId:t.ORGANIZATION_ID||"",organizationSlug:t.ORGANIZATION_SLUG||"",projectId:t.PROJECT_ID||"",projectSlug:t.PROJECT_SLUG||"",origin:"realmCli",actor:{id:`ann_${l()}`,object:"user",uri:""},source:"cli"}))}initialize(e,r,o){const a=r!==void 0?!(r&&i):!i;this.init({otel:{serviceName:"realm-cli",serviceVersion:`${n}@${e}`,collectorTraceUrl:t.OTEL_TRACES_URL||"https://otel.cloud.redocly.com/v1/traces",isProd:t.isProductionEnv,version:"1.0",tracerName:"cli-telemetry"},disabled:a,verbose:o}),s.registerShutdownCallback(this.#r.bind(this))}addTraceStepCallbacks(e,{error:r,end:o}){this.#e.set(e,{error:r,end:o})}removeTraceStepCallbacks(e){this.#e.delete(e)}async#r(e){for(const[,{error:r,end:o}]of this.#e)e&&r(e),o();this.#e.clear(),await this.forceFlush(),await this.shutdown()}}const m=new d,A=m.tracer;export{m as telemetry,A as telemetryTracer};
@@ -1 +1 @@
1
- import*as o from"react";import{useEffect as i}from"react";import{Outlet as g,useLocation as d,useNavigate as P}from"react-router-dom";import{components as h}from"@redocly-markdoc/components";import T from"@markdoc/markdoc/dist/react";import{withoutPathPrefix as D}from"@redocly/theme/core/utils";import{InternalServerErrorLayout as S}from"@redocly/theme/layouts/InternalServerErrorLayout";import{RootLayout as L}from"@redocly/theme/layouts/RootLayout";import{PageLayout as _}from"@redocly/theme/layouts/PageLayout";import{components as c}from"@redocly/theme/markdoc/default";import{Sidebar as C}from"./app/Sidebar/Sidebar";import{loadAndNavigate as v}from"./app/utils/loadAndNavigate";import{useActions as A}from"./app/Sidebar/useActions";import{useScrollTracker as N}from"./app/hooks/useScrollTracker";import{useAutoScroll as O}from"./app/hooks/useAutoScroll";import{OPENAPI_DOCS_TEMPLATE_ID as y,ASYNC_API_DOCS_TEMPLATE_ID as R,GRAPHQL_TEMPLATE_ID as I}from"../constants/common";import{removeTrailingSlash as b}from"../utils/url/remove-trailing-slash";import{removeLeadingSlash as k}from"../utils/url/remove-leading-slash";import{envConfig as s}from"../config/env-config";import*as x from"../server/plugins/markdown/markdoc/custom-components/index";import{ErrorBubble as M}from"./app/ErrorBubble";import{DefaultStyles as V}from"./styling/default-styles";import{ThemeDataProvider as B}from"./providers/theme/ThemeDataProvider";import{PageDataContext as G}from"./providers/page-data/PageDataContext";import{SeoTags as $}from"./app/seo/SeoTags";import{useRouterForLocalLinks as w,useRunningEnvironmentCheck as F}from"./providers/hooks";import{usePageData as H,usePageDataLoader as Q}from"./providers/page-data/hooks";import{ErrorBoundary as U}from"./ErrorBoundary";import{ErrorDetails as u,Loader as Y}from"./server-entry";import"@styles";import{useRouteChangeTracker as j}from"./app/hooks/useRouteChangeTracker";import{isInIframe as q}from"./utils";import{useL10n as z}from"./app/l10n";import{PostMessageProvider as J}from"./providers/post-message/PostMessageProvider";import{ScriptLoader as K}from"./ScriptLoader";import{clientRoutes as W}from"./runtime/generated/routes.js";import{PageCounter as X}from"./app/PageCounter";import{usePageTimeTracker as Z}from"./app/hooks/usePageTimeTracker";globalThis.__LOADER.markdocComponents={...x,...c};function Be(){const e=Q(),[t,a]=o.useState(e),r=d(),m=P();z(),i(()=>{e?a(e):v({navigate:m,to:r.pathname+r.search+r.hash}).then(()=>a(Y.loadSync(r.pathname)))},[r,m]),w();const n=F();return n?(console.log(n),o.createElement(u,{error:{message:n,name:""}})):t?o.createElement(U,null,o.createElement(V,null),o.createElement(G.Provider,{value:e||t},o.createElement(B,null,o.createElement(J,{enabled:s.NODE_ENV==="development"||q()},o.createElement(g,null))))):null}function f(){j(),Z(),N(),O();const e=H(),t=A(),{layout:a}=t,r={layout:a},m=s.NODE_ENV!=="production",n=globalThis.SSR_OMIT_SUSPENSE,p=e?.props.ast&&e.props.ast.$$mdtype==="Tag"?T(e.props.ast,o,{components:{...globalThis.__LOADER.markdocComponents,...c,...h}}):null,E=b(e?.slug||"");if(i(()=>{document.documentElement.classList.add("ready")},[]),e?.props.pagePropGetterError?.message)return m?o.createElement(u,{error:{...e?.props?.pagePropGetterError}}):o.createElement(S,null);if(!!e?.props?.compilationErrors?.length)return e?.Template?o.createElement(e.Template,{pageProps:e?.props,children:p}):null;const l=()=>o.createElement(L,null,o.createElement(_,{sidebar:o.createElement(C,{layoutControls:t})},o.createElement($,{seo:e?.props.seo,slug:E}),e?.Template?o.createElement(e.Template,{pageProps:[y,R,I].includes(e.templateId)?{...e.props,apiOptions:r}:e?.props,children:p}):null),s.NODE_ENV!=="production"&&o.createElement(M,null),s.NODE_ENV!=="production"&&o.createElement(X,null),o.createElement(K,null));return n?l():o.createElement(o.Suspense,null,l())}const Ge=[...W.map(e=>({Component:f,path:k(D(e).substring(1)+"/*")})),{Component:f,path:"*"}];export{Be as App,f as Page,Ge as routes};
1
+ import*as o from"react";import{useEffect as l}from"react";import{Outlet as E,useLocation as g,useNavigate as d}from"react-router-dom";import{components as h}from"@redocly-markdoc/components";import P from"@markdoc/markdoc/dist/react";import{withoutPathPrefix as T}from"@redocly/theme/core/utils";import{InternalServerErrorLayout as D}from"@redocly/theme/layouts/InternalServerErrorLayout";import{RootLayout as S}from"@redocly/theme/layouts/RootLayout";import{PageLayout as L}from"@redocly/theme/layouts/PageLayout";import{components as i}from"@redocly/theme/markdoc/default";import{Sidebar as _}from"./app/Sidebar/Sidebar";import{loadAndNavigate as v}from"./app/utils/loadAndNavigate";import{useActions as C}from"./app/Sidebar/useActions";import{useScrollTracker as A}from"./app/hooks/useScrollTracker";import{useAutoScroll as y}from"./app/hooks/useAutoScroll";import{OPENAPI_DOCS_TEMPLATE_ID as O,ASYNC_API_DOCS_TEMPLATE_ID as R,GRAPHQL_TEMPLATE_ID as N}from"../constants/common";import{removeTrailingSlash as I}from"../utils/url/remove-trailing-slash";import{removeLeadingSlash as b}from"../utils/url/remove-leading-slash";import*as k from"./app/markdoc/custom-components/index";import{DefaultStyles as M}from"./styling/default-styles";import{ThemeDataProvider as x}from"./providers/theme/ThemeDataProvider";import{PageDataContext as B}from"./providers/page-data/PageDataContext";import{SeoTags as G}from"./app/seo/SeoTags";import{useRouterForLocalLinks as V,useRunningEnvironmentCheck as F}from"./providers/hooks";import{usePageData as $,usePageDataLoader as w}from"./providers/page-data/hooks";import{ErrorBoundary as H}from"./ErrorBoundary";import{ErrorDetails as c,Loader as Q}from"./server-entry";import"@styles";import{useRouteChangeTracker as U}from"./app/hooks/useRouteChangeTracker";import{isInIframe as Y}from"./utils";import{useL10n as j}from"./app/l10n";import{PostMessageProvider as q}from"./providers/post-message/PostMessageProvider";import{ScriptLoader as z}from"./ScriptLoader";import{clientRoutes as J}from"./runtime/generated/routes.js";import{DevModeFloatingBar as K}from"./app/DevModeFloatingBar";import{usePageTimeTracker as W}from"./app/hooks/usePageTimeTracker";globalThis.__LOADER.markdocComponents={...k,...i};function ke(){const e=w(),[t,n]=o.useState(e),r=g(),m=d();j(),l(()=>{e?n(e):v({navigate:m,to:r.pathname+r.search+r.hash}).then(()=>n(Q.loadSync(r.pathname)))},[r,m]),V();const a=F();return a?(console.log(a),o.createElement(c,{error:{message:a,name:""}})):t?o.createElement(H,null,o.createElement(M,null),o.createElement(B.Provider,{value:e||t},o.createElement(x,null,o.createElement(q,{enabled:process.env.NODE_ENV==="development"||Y()},o.createElement(E,null))))):null}function u(){U(),W(),A(),y();const e=$(),t=C(),{layout:n}=t,r={layout:n},m=process.env.NODE_ENV!=="production",a=globalThis.SSR_OMIT_SUSPENSE,s=e?.props.ast&&e.props.ast.$$mdtype==="Tag"?P(e.props.ast,o,{components:{...globalThis.__LOADER.markdocComponents,...i,...h}}):null,f=I(e?.slug||"");if(l(()=>{document.documentElement.classList.add("ready")},[]),e?.props.pagePropGetterError?.message)return m?o.createElement(c,{error:{...e?.props?.pagePropGetterError}}):o.createElement(D,null);if(!!e?.props?.compilationErrors?.length)return e?.Template?o.createElement(e.Template,{pageProps:e?.props,children:s}):null;const p=()=>o.createElement(S,null,o.createElement(L,{sidebar:o.createElement(_,{layoutControls:t})},o.createElement(G,{seo:e?.props.seo,slug:f}),e?.Template?o.createElement(e.Template,{pageProps:[O,R,N].includes(e.templateId)?{...e.props,apiOptions:r}:e?.props,children:s}):null),process.env.NODE_ENV!=="production"&&o.createElement(K,null),o.createElement(z,null));return a?p():o.createElement(o.Suspense,null,p())}const Me=[...J.map(e=>({Component:u,path:b(T(e).substring(1)+"/*")})),{Component:u,path:"*"}];export{ke as App,u as Page,Me as routes};
@@ -1 +1 @@
1
- import*as n from"react";import{envConfig as s}from"../config/env-config.js";import{ErrorDetails as a}from"./app/Error/ErrorDetails";import{telemetry as i}from"./app/telemetry/index.js";class u extends n.Component{constructor(r){super(r),this.state={error:void 0}}componentDidCatch(r,c){const{name:e,message:t}=r,o={name:e,message:t,stack:c.componentStack??void 0};this.setState({error:o}),i.sendClientErrorMessage([{object:"client",message:`${e}: ${t}`,url:location.href}]),i.sendError(o,"ReactErrorBoundary"),s.NODE_ENV!=="production"&&console.log(r)}render(){return this.state.error&&s.NODE_ENV!=="production"?n.createElement(a,{error:this.state.error}):this.props.children}}export{u as ErrorBoundary};
1
+ import*as s from"react";import{ErrorDetails as a}from"./app/Error/ErrorDetails";import{telemetry as n}from"./app/telemetry/index.js";class p extends s.Component{constructor(r){super(r),this.state={error:void 0}}componentDidCatch(r,c){const{name:e,message:t}=r,o={name:e,message:t,stack:c.componentStack??void 0};this.setState({error:o}),n.sendClientErrorMessage([{object:"client",message:`${e}: ${t}`,url:location.href}]),n.sendError(o,"ReactErrorBoundary"),process.env.NODE_ENV!=="production"&&console.log(r)}render(){return this.state.error&&process.env.NODE_ENV!=="production"?s.createElement(a,{error:this.state.error}):this.props.children}}export{p as ErrorBoundary};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function DevModeFloatingBar(): React.JSX.Element | null;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,43 @@
1
+ import e from"react";import u from"styled-components";import{Tooltip as X}from"@redocly/theme/components/Tooltip/Tooltip";import{CheckmarkFilledIcon as H}from"@redocly/theme/icons/CheckmarkFilledIcon/CheckmarkFilledIcon";import{DraggableIcon as O}from"@redocly/theme/icons/DraggableIcon/DraggableIcon";import{ErrorFilledIcon as N}from"@redocly/theme/icons/ErrorFilledIcon/ErrorFilledIcon";import{Button as U}from"@redocly/theme/components/Button/Button";import{DetailedErrors as G}from"./DetailedErrors";import{useSocketMessages as T}from"../../runtime/useSocketMessages";const V="pages-updated",W="errors-updated",P=99,f=24,k="portal.dev-mode-floating-bar-slot",K=280,w="bottom-left",R=["bottom-left","middle","bottom-right"];function Y(t,a){const s=a/2;return{minX:s+f,maxX:t-s-f}}function j(t,a){switch(t){case"bottom-left":return a.minX;case"bottom-right":return a.maxX;case"middle":default:return(a.minX+a.maxX)/2}}function q(t){return typeof t=="string"&&R.includes(t)}function J(){if(typeof window>"u")return w;try{const t=localStorage.getItem(k);return q(t)?t:w}catch{return w}}function de(){const[t,a]=e.useState(0),[s,z]=e.useState([]),[B,E]=e.useState(!1),[l,v]=e.useState(!1),[c,L]=e.useState(J),[p,b]=e.useState(null),S=e.useRef(0),g=e.useRef(null),h=e.useRef(null);T(V,r=>a(r.pages)),T(W,r=>z(r.errors));const y=e.useCallback(()=>h.current?.getBoundingClientRect().width||K,[]),d=e.useCallback(()=>Y(window.innerWidth,y()),[y]),x=e.useCallback(r=>{const o=d();return Math.min(Math.max(o.minX,r),o.maxX)},[d]),D=e.useCallback(r=>{const o=d();return R.map(n=>{const i=j(n,o),$=Math.abs(i-r);return{slot:n,distance:$}}).sort((n,i)=>n.distance-i.distance)[0].slot},[d]);e.useEffect(()=>{if(!(typeof window>"u"))try{localStorage.setItem(k,c)}catch{return}},[c]),e.useEffect(()=>{if(!l)return;const r=n=>{const i=x(n.clientX-S.current);g.current=i,b(i)},o=()=>{v(!1);const n=g.current||0,i=D(n);L(i),b(null),g.current=null};return window.addEventListener("pointermove",r),window.addEventListener("pointerup",o),window.addEventListener("pointercancel",o),()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",o)}},[x,D,l,c]);const M=r=>{if(r.button!==0)return;const o=h.current?.getBoundingClientRect();if(!o)return;const n=o.left+o.width/2;S.current=r.clientX-n,g.current=n,b(n),v(!0),r.preventDefault()},_=e.useMemo(()=>{if(l&&p!==null)return{left:`${p}px`,right:"auto",transform:"translateX(-50%)"};switch(c){case"middle":return{left:"50%",right:"auto",transform:"translateX(-50%)"};case"bottom-right":return{left:"auto",right:`${f}px`,transform:"none"};case"bottom-left":default:return{left:`${f}px`,right:"auto",transform:"none"}}},[p,l,c]);if(!t&&!s.length)return null;const A=s.length>P?`${P}+`:s.length,m=s.length>0,I=m?"Problems":"No problems",F=c==="bottom-left"?"left":c==="bottom-right"?"right":"center";return e.createElement(e.Fragment,null,e.createElement(Q,{ref:h,$isDragging:l,style:_},e.createElement(X,{tip:"Drag to move",placement:"top",arrowPosition:F,disabled:l},e.createElement(Z,{type:"button","aria-label":"Drag floating bar",onPointerDown:M,$isDragging:l},e.createElement(O,{size:"14px",color:"var(--color-warm-grey-5)"}))),e.createElement(ee,{"aria-label":"Total number of pages in documentation"},e.createElement(C,null,t),e.createElement(te,null,"pages")),e.createElement(X,{tip:I,placement:"top"},e.createElement(re,{type:"button",variant:"secondary",size:"small",icon:m?e.createElement(N,{size:"14px",color:"var(--color-raspberry-6)"}):e.createElement(H,{size:"14px",color:"var(--color-green-6)"}),"aria-label":m?"Show detailed error message":"No errors",onClick:()=>m&&E(!0)},e.createElement(C,null,A)))),B&&e.createElement(G,{onHide:()=>E(!1),problems:s}))}const Q=u.div`
2
+ position: fixed;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 2px;
6
+ background: var(--color-warm-grey-10);
7
+ color: var(--color-warm-grey-1);
8
+ border-radius: var(--border-radius-lg);
9
+ bottom: var(--spacing-lg);
10
+ padding: var(--spacing-xxs);
11
+ box-shadow: var(--bg-raised-shadow);
12
+ z-index: var(--z-index-raised);
13
+ user-select: none;
14
+ cursor: ${({$isDragging:t})=>t?"grabbing":"default"};
15
+ `,Z=u.button`
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ border: 0;
20
+ background: transparent;
21
+ color: inherit;
22
+ height: var(--line-height-base);
23
+ cursor: ${({$isDragging:t})=>t?"grabbing":"grab"};
24
+ `,ee=u.div`
25
+ display: inline-flex;
26
+ align-items: center;
27
+ padding-right: var(--spacing-xs);
28
+ gap: var(--spacing-xxs);
29
+ white-space: nowrap;
30
+ line-height: var(--line-height-base);
31
+ `,te=u.span`
32
+ font-size: var(--font-size-base);
33
+ `,C=u.span`
34
+ font-size: var(--font-size-base);
35
+ font-weight: var(--font-weight-regular);
36
+ `,re=u(U)`
37
+ --button-bg-color-secondary: var(--color-warm-grey-8);
38
+ --button-bg-color-secondary-hover: var(--color-warm-grey-7);
39
+ --button-bg-color-secondary-pressed: var(--color-warm-grey-6);
40
+ --button-color: var(--color-warm-grey-3);
41
+ --button-color-hover: var(--color-warm-grey-3);
42
+ --button-padding: 1px 6px;
43
+ `;export{de as DevModeFloatingBar};
@@ -1 +1 @@
1
- import{useCallback as m}from"react";import{withPathPrefix as p,combineUrls as d}from"@redocly/theme/core/utils";import{ServerRoutes as b}from"../../../constants/common";import{usePageData as u}from"../../providers/hooks";import{usePageSharedData as f}from"../../providers/page-data/hooks";function w(){const{basePath:t}=f("openAPIDocsStore")||{},o=u()?.templateId==="openapi_docs";return{submitFeedback:m(async({type:e,values:a,path:i,location:r,lang:s})=>{const n=d(window.location.origin,o?t:"",i),c={location:r,lang:s,component:e,...a,path:n};await fetch(p(b.FEEDBACK),{method:"POST",body:JSON.stringify(c)})},[t,o])}}export{w as useSubmitFeedback};
1
+ import{useCallback as f}from"react";import{withPathPrefix as b,combineUrls as u}from"@redocly/theme/core/utils";import{ServerRoutes as l}from"../../../constants/common";import{usePageData as P}from"../../providers/hooks";import{usePageSharedData as g}from"../../providers/page-data/hooks";function O(){const{basePath:o}=g("openAPIDocsStore")||{},e=P()?.templateId==="openapi_docs";return{submitFeedback:f(async({type:i,values:r,path:n,location:s,lang:c})=>{const m=u(window.location.origin,e?o:"",n),a={};for(const[d,t]of Object.entries(r))a[d]=typeof t=="string"?t.trim():t;const p={location:s?.trim(),lang:c?.trim(),component:i,...a,path:m};await fetch(b(l.FEEDBACK),{method:"POST",body:JSON.stringify(p)})},[o,e])}}export{O as useSubmitFeedback};
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import type { OpenApiInstance } from '../../templates/openapi-docs/helpers.js';
3
+ type InstancePickerProps = {
4
+ instances?: OpenApiInstance[];
5
+ value?: string;
6
+ onChange: (value: string) => void;
7
+ };
8
+ export declare function InstancePicker({ instances, value, onChange }: InstancePickerProps): React.JSX.Element | null;
9
+ export {};
10
+ //# sourceMappingURL=InstancePicker.d.ts.map
@@ -0,0 +1,48 @@
1
+ import*as t from"react";import i from"styled-components";import{Select as p}from"@redocly/theme/components/Select/Select";import{SelectInputWrapper as d}from"@redocly/theme/components/Select/SelectInput";const v={element:"Default",value:""};function x({instances:r=[],value:o="",onChange:l}){if(r.length<=1)return null;const n=(r.some(e=>e.key==="")?r:[{key:"",title:"Default"},...r]).map(e=>{const a=e.title||(e.key?e.key:v.element);return{value:e.key,element:t.createElement(h,{title:a},a)}}),c=n.some(e=>e.value===o)?o:"",s=e=>{l(typeof e=="string"?e:"")};return t.createElement(f,{"data-component-name":"InstancePicker/InstancePicker",role:"region","aria-label":"Instance selector"},t.createElement(m,{htmlFor:"instance-picker-select"},"Instance:"),t.createElement(k,{disabled:!n.length,options:n,value:c,onChange:s,dataAttributes:{id:"instance-picker-select","aria-label":"Select instance"}}))}const m=i.label`
2
+ font-size: var(--version-picker-label-font-size);
3
+ font-weight: var(--version-picker-label-font-weight);
4
+ white-space: nowrap;
5
+ flex-shrink: 0;
6
+ `,k=i(p)`
7
+ --dropdown-menu-min-width: 100%;
8
+ --dropdown-menu-max-width: 100%;
9
+ --select-list-item-bg-color-active: var(--version-picker-list-item-bg-color-active);
10
+ --select-list-item-bg-color-hover: var(--version-picker-list-item-bg-color-hover);
11
+
12
+ flex: 1;
13
+ min-width: 0;
14
+
15
+ font-size: var(--version-picker-font-size);
16
+ font-weight: var(--version-picker-font-weight);
17
+ border-radius: var(--version-picker-border-radius);
18
+ line-height: var(--version-picker-line-height);
19
+ color: var(--version-picker-text-color);
20
+
21
+ ${d} {
22
+ border: var(--version-picker-input-border);
23
+ border-radius: var(--version-picker-input-border-radius);
24
+ padding: var(--version-picker-input-padding-vertical)
25
+ var(--version-picker-input-padding-horizontal);
26
+
27
+ &:focus-within {
28
+ outline: 1px solid var(--version-picker-focus-outline-color);
29
+ }
30
+ }
31
+ `,f=i.div`
32
+ display: flex;
33
+ flex-wrap: nowrap;
34
+ gap: 10px;
35
+ flex-direction: row;
36
+ align-items: center;
37
+ justify-content: space-between;
38
+ padding: var(--version-picker-padding-vertical) var(--version-picker-padding-horizontal);
39
+ border-bottom: var(--version-picker-border-bottom);
40
+ `,h=i.span`
41
+ display: block;
42
+ flex: 1;
43
+ min-width: 0;
44
+ max-width: 100%;
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ `;export{x as InstancePicker};
@@ -1,11 +1,19 @@
1
- import e,{useEffect as y,useState as p}from"react";import b from"styled-components";import{Menu as I}from"@redocly/theme/components/Menu/Menu";import{SidebarActions as L}from"@redocly/theme/components/SidebarActions/SidebarActions";import{Sidebar as w}from"@redocly/theme/components/Sidebar/Sidebar";import{VersionPicker as A}from"@redocly/theme/components/VersionPicker/VersionPicker";import{Button as B}from"@redocly/theme/components/Button/Button";import{CatalogEntityHistoryButton as P}from"@redocly/theme/components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistoryButton";import{ArrowLeftIcon as x}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{withPathPrefix as D}from"@redocly/theme/core/utils";import{telemetry as h}from"../telemetry/index.js";import{usePreloadHistory as T}from"../usePreloadHistory";import{useTranslate as C}from"../hooks";import{usePageSharedData as M,usePageVersions as V}from"../../providers/page-data/hooks";import{useSidebarItems as j}from"./useSidebarItems";import{renderAdmonition as H,RequestAccessButton as R}from"./RequestAccessButton";function ie({layoutControls:s}){const{versions:l=[]}=V()||{},k=l.find(t=>t?.active),{translate:o}=C(),{currentItems:m,backLink:n,versionLabel:a,pushDrilldownState:g,popDrilldownState:v}=j(k),[c,S]=p(),{collapsedSidebar:i}=s,d=M("openAPIDocsStore")?.definition.info?.["x-metadata"]?.apiId,E=T(),[u,r]=p(void 0);return y(()=>{const t=setTimeout(()=>r(void 0),350);return()=>clearTimeout(t)},[u]),m.length?e.createElement(e.Fragment,null,e.createElement(w,{collapsed:i,menuItemsAnimation:u,versions:e.createElement(A,{versions:l,onChange:t=>{h.sendVersionPickerSelectionChangeMessage([{object:"version_picker",action:"change"}]);const f=location.hash?t?.link+location.hash:t?.link;f&&E.push(D(f))}}),menu:e.createElement(I,{items:m,onDrilldownOpen:t=>{r("slideInRight"),g(t)}}),footer:e.createElement("div",{style:{width:"100%"}},!i&&H(c),e.createElement(L,{...s,requestAccessButton:d?e.createElement(R,{apiId:d,status:c,setStatus:S}):null})),header:(n||a)&&e.createElement(q,null,n&&e.createElement(J,{icon:e.createElement(x,null),iconPosition:"left",variant:"ghost",size:"medium","data-component-name":"Sidebar/BackButton",to:n.slug,onClick:()=>{r("slideInLeft"),v(),h.sendSidebarDrilldownBackButtonClickedMessage([{object:"button",action:"click"}])}},i?"":n.label?e.createElement("div",{"data-translation-key":"sidebar.menu.backToLabel"},o("sidebar.menu.backToLabel",{value:o(n.labelTranslationKey,n.label)})):e.createElement("div",{"data-translation-key":"sidebar.menu.backLabel"},o("sidebar.menu.backLabel"))),a&&!i&&e.createElement(P,{version:a}))})):null}const q=b.div`
1
+ import e,{useEffect as V,useState as v}from"react";import l from"styled-components";import{Menu as R}from"@redocly/theme/components/Menu/Menu";import{SidebarActions as j}from"@redocly/theme/components/SidebarActions/SidebarActions";import{Sidebar as M}from"@redocly/theme/components/Sidebar/Sidebar";import{VersionPicker as H}from"@redocly/theme/components/VersionPicker/VersionPicker";import{Button as q}from"@redocly/theme/components/Button/Button";import{CatalogEntityHistoryButton as K}from"@redocly/theme/components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistoryButton";import{ArrowLeftIcon as $}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{combineUrls as z,withPathPrefix as y,removeTrailingSlash as F}from"@redocly/theme/core/utils";import{telemetry as E}from"../telemetry/index.js";import{usePreloadHistory as J}from"../usePreloadHistory";import{useTranslate as O}from"../hooks";import{usePageData as U,usePageSharedData as _,usePageVersions as G}from"../../providers/page-data/hooks";import{useSidebarItems as N}from"./useSidebarItems";import{InstancePicker as Q}from"./InstancePicker";import{renderAdmonition as W,RequestAccessButton as X}from"./RequestAccessButton";function ke({layoutControls:m}){const{versions:u=[]}=G()||{},P=u.find(t=>t?.active),{translate:r}=O(),{currentItems:d,backLink:a,versionLabel:s,pushDrilldownState:x,popDrilldownState:B}=N(P),[f,L]=v(),{collapsedSidebar:i}=m,p=U(),o=_("openAPIDocsStore"),h=o?.definition?.info?.["x-metadata"]?.apiId,b=J(),[g,c]=v(void 0);if(V(()=>{const t=setTimeout(()=>c(void 0),350);return()=>clearTimeout(t)},[g]),!d.length)return null;const k=p?.props?.itemId,w=p?.props?.baseSlug,A=t=>{const n=o?.instances?.find(T=>T.key===t);if(!n)return;const S=n.baseSlug||w;if(!S)return;const D=(k?n.routeSuffixesByItemId?.[k]:void 0)||n.routeSuffixesByItemId?.[""]||"/",I=F(z(S,D)),C=location.hash?`${I}${location.hash}`:I;b.push(y(C))};return e.createElement(e.Fragment,null,e.createElement(M,{collapsed:i,menuItemsAnimation:g,versions:e.createElement(Z,null,e.createElement(H,{versions:u,onChange:t=>{E.sendVersionPickerSelectionChangeMessage([{object:"version_picker",action:"change"}]);const n=location.hash?t?.link+location.hash:t?.link;n&&b.push(y(n))}}),e.createElement(Q,{instances:o?.instances||[],value:o?.currentInstanceKey||"",onChange:A})),menu:e.createElement(R,{items:d,onDrilldownOpen:t=>{c("slideInRight"),x(t)}}),footer:e.createElement("div",{style:{width:"100%"}},!i&&W(f),e.createElement(j,{...m,requestAccessButton:h?e.createElement(X,{apiId:h,status:f,setStatus:L}):null})),header:(a||s)&&e.createElement(Y,null,a&&e.createElement(ee,{icon:e.createElement($,null),iconPosition:"left",variant:"ghost",size:"medium","data-component-name":"Sidebar/BackButton",to:a.slug,onClick:()=>{c("slideInLeft"),B(),E.sendSidebarDrilldownBackButtonClickedMessage([{object:"button",action:"click"}])}},i?"":a.label?e.createElement("div",{"data-translation-key":"sidebar.menu.backToLabel"},r("sidebar.menu.backToLabel",{value:r(a.labelTranslationKey,a.label)})):e.createElement("div",{"data-translation-key":"sidebar.menu.backLabel"},r("sidebar.menu.backLabel"))),s&&!i&&e.createElement(K,{version:s}))}))}const Y=l.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--menu-header-container-gap);
5
5
  width: 100%;
6
- `,J=b(B)`
6
+ `,Z=l.div`
7
+ [data-component-name='VersionPicker/VersionPicker'],
8
+ [data-component-name='InstancePicker/InstancePicker'] {
9
+ flex-direction: column;
10
+ align-items: stretch;
11
+ justify-content: flex-start;
12
+ gap: 6px;
13
+ }
14
+ `,ee=l(q)`
7
15
  padding: var(--menu-item-padding-vertical) 0;
8
16
  height: calc(var(--line-height-base) + var(--menu-item-padding-vertical) * 2);
9
17
  justify-content: flex-start;
10
18
  width: 100%;
11
- `;export{ie as Sidebar};
19
+ `;export{ke as Sidebar};
@@ -1 +1 @@
1
- import{useMemo as k}from"react";import{useLocation as T}from"react-router-dom";import{useThemeConfig as y}from"@redocly/theme/core/hooks";import{withoutPathPrefix as K}from"@redocly/theme/core/utils";import{usePageVersions as g,useTranslate as v,usePageSharedData as d}from"../hooks";import{useSidebarItems as x}from"./useSidebarItems";function D(){const a=d("sidebar")?.relatedNavbarItem,n=d("current-catalog-info"),r=y(),{translate:l}=v(),{versions:e=[]}=g()||{},c=e.find(m=>m?.active),{allSidebarItems:i}=x(c),t=T().pathname,o=n?.item,s=n?.catalog,b=r.breadcrumbs?.prefixItems,f=r.breadcrumbs?.hide;return k(()=>{const m=B({allSidebarItems:i,pathname:K(t),catalogItemInfo:o,relatedNavbarItem:a,catalogInfo:s,prefixItems:b,hide:f,translate:l}),p=S(i,m);return{breadcrumbs:m,currentItemSiblings:p}},[t,a,i,o,s,b,f,l])}const B=({allSidebarItems:a=[],pathname:n,catalogItemInfo:r,relatedNavbarItem:l,catalogInfo:e,prefixItems:c,hide:i,translate:u})=>{if(i===!0)return[];const t=h(a);if(t.length===0)return[];if(r){const o=t[t.length-1];o&&o.label!==r.label&&t.unshift({label:r.label,link:r.link})}if(l&&l.label!==t[0].label&&t.unshift(l),e&&t.unshift({label:u(e.labelTranslationKey,e.label),labelTranslationKey:e.labelTranslationKey,link:e.link,icon:e.icon}),c?.length){const o=c.map(s=>({label:u(s.labelTranslationKey,s.label),labelTranslationKey:s.labelTranslationKey,link:s.link,icon:s.icon}));t.unshift(...o)}return t.length===1&&(!t[0]?.link||t[0]?.link===n)?[]:t},S=(a,n)=>{if(n.length===0)return[];const r=(e,c)=>{for(const i of e){if(i.active)return{item:i,parent:c};if(i.items?.length){const u=r(i.items,i);if(u)return u}}},l=r(a);return l?.parent?l.parent.items?.filter(e=>!!(e.link&&e.link!==l.item.link&&e.label)).map(e=>({label:e.label,labelTranslationKey:e.labelTranslationKey,link:e.link,icon:e.icon}))||[]:[]},h=a=>{const n=a.find(({active:l,hasActiveSubItem:e})=>l||e);if(!n?.label)return[];const r={label:n.label,labelTranslationKey:n.labelTranslationKey,link:n.link,icon:n.icon};return n.type==="group"&&n.selectFirstItemOnExpand&&n.items?.[0]?.link&&(r.link=n.items[0].link),n.items?.length||(r.link=void 0),[r,...h(n.items||[])]};export{B as generateBreadcrumbs,S as generateSiblings,D as useBreadcrumbs};
1
+ import{useMemo as v,useRef as y}from"react";import{useLocation as K}from"react-router-dom";import{useThemeConfig as g}from"@redocly/theme/core/hooks";import{withoutPathPrefix as x}from"@redocly/theme/core/utils";import{usePageVersions as B,useTranslate as S,usePageSharedData as p}from"../hooks";import{useSidebarItems as A}from"./useSidebarItems";function F(){const a=p("sidebar")?.relatedNavbarItem,t=p("current-catalog-info"),r=g(),{translate:i}=S(),{versions:e=[]}=B()||{},u=e.find(c=>c?.active),{allSidebarItems:l}=A(u),n=K().pathname,o=t?.item,s=t?.catalog,b=r.breadcrumbs?.prefixItems,f=r.breadcrumbs?.hide,h=v(()=>{const c=I({allSidebarItems:l,pathname:x(n),catalogItemInfo:o,relatedNavbarItem:a,catalogInfo:s,prefixItems:b,hide:f,translate:i}),T=P(l,c);return{breadcrumbs:c,currentItemSiblings:T}},[n,a,l,o,s,b,f,i]),d=y(h);return(l.some(c=>c.active||c.hasActiveSubItem)||l.length===0)&&(d.current=h),d.current}const I=({allSidebarItems:a=[],pathname:t,catalogItemInfo:r,relatedNavbarItem:i,catalogInfo:e,prefixItems:u,hide:l,translate:m})=>{if(l===!0)return[];const n=k(a);if(n.length===0)return[];if(r){const o=n[n.length-1];o&&o.label!==r.label&&n.unshift({label:r.label,link:r.link})}if(i&&i.label!==n[0].label&&n.unshift(i),e&&n.unshift({label:m(e.labelTranslationKey,e.label),labelTranslationKey:e.labelTranslationKey,link:e.link,icon:e.icon}),u?.length){const o=u.map(s=>({label:m(s.labelTranslationKey,s.label),labelTranslationKey:s.labelTranslationKey,link:s.link,icon:s.icon}));n.unshift(...o)}return n.length===1&&(!n[0]?.link||n[0]?.link===t)?[]:n},P=(a,t)=>{if(t.length===0)return[];const r=(e,u)=>{for(const l of e){if(l.active)return{item:l,parent:u};if(l.items?.length){const m=r(l.items,l);if(m)return m}}},i=r(a);return i?.parent?i.parent.items?.filter(e=>!!(e.link&&e.link!==i.item.link&&e.label)).map(e=>({label:e.label,labelTranslationKey:e.labelTranslationKey,link:e.link,icon:e.icon}))||[]:[]},k=a=>{const t=a.find(({active:i,hasActiveSubItem:e})=>i||e);if(!t?.label)return[];const r={label:t.label,labelTranslationKey:t.labelTranslationKey,link:t.link,icon:t.icon};return t.type==="group"&&t.selectFirstItemOnExpand&&t.items?.[0]?.link&&(r.link=t.items[0].link),t.items?.length||(r.link=void 0),[r,...k(t.items||[])]};export{I as generateBreadcrumbs,P as generateSiblings,F as useBreadcrumbs};
@@ -1 +1 @@
1
- import{useLocation as _}from"react-router-dom";import{useEffect as k,useMemo as S,useState as b}from"react";import{useActiveSectionId as D}from"@redocly/theme/core/hooks";import{getMenuItemType as v}from"@redocly/theme/core/utils";import{MenuItemType as C}from"@redocly/theme/core/constants";import{usePageSharedData as T,useSidebarItemsData as h,useSidebarConnectedCatalogConfig as y,useSidebarConnectedCatalogEntity as G}from"../../providers/page-data/hooks";import{mapItemsPropsToState as g}from"./utils";import{injectCatalogItems as E}from"../../utils/catalog/inject-catalog-items";import{CATALOG_BASE_SLUG as O,CATALOG_SLUGS as K}from"../../../server/constants/plugins/catalog-entities";import{filterOutVersionedItems as B}from"./helpers/filter-out-versioned-items";const M="catalog.backToAllLabel",P=`${O}/${K.ALL}`;function U(n){const e=h();return S(()=>B(e,n),[e,n])}function J(n){const e=_(),t=D(e,!0),a=G(),p=y(),s=U(n),c=a?E(s,a.key,p?.slug,e.search):s,[u,I]=b(null),r=S(()=>g(c,e,t),[t,e,c]),l=T("current-catalog-info"),L=S(()=>f(r),[c]),[o,m]=b(L),i=o.length>0?o[o.length-1]:void 0,A=i&&g([...i.item.link?[{...i.item,items:[],menuStyle:void 0,separatorLine:!1}]:[],...i.item.items],e,t);k(()=>{if(!u||u!==t){const d=f(r);m(d),I(t)}},[s,e,t,u]);const w=i?{slug:i.previousLink,event:"sidebar_drilldown_back_button.clicked"}:a?{label:"Back to Catalog",labelTranslationKey:M,slug:P,event:"back_to_catalog_button.clicked"}:l?{label:l.catalog.label,labelTranslationKey:l.catalog.labelTranslationKey,slug:l.catalog.link,event:"back_to_catalog_button.clicked"}:void 0;return{currentItems:A||r,allSidebarItems:r,popDrilldownState:()=>{o.length>0&&m(o.slice(0,o.length-1))},pushDrilldownState:d=>{m([...o,d])},backLink:w,versionLabel:a?.version??null}}function f(n,e=[]){for(const t of n){if(!t.active&&!t.hasActiveSubItem)continue;if(v(t)===C.DrillDown&&e.push({item:t}),t.active)return e;if(t.hasActiveSubItem)return f(t.items,e)}return e}export{U as useRawSidebarItems,J as useSidebarItems};
1
+ import{useLocation as _}from"react-router-dom";import{useEffect as k,useMemo as S,useState as b}from"react";import{useActiveSectionId as D}from"@redocly/theme/core/hooks";import{getMenuItemType as v}from"@redocly/theme/core/utils";import{MenuItemType as C}from"@redocly/theme/core/constants";import{CATALOG_BASE_SLUG as T,CATALOG_SLUGS as h}from"../../../constants/catalog-entities";import{usePageSharedData as y,useSidebarItemsData as G,useSidebarConnectedCatalogConfig as E,useSidebarConnectedCatalogEntity as O}from"../../providers/page-data/hooks";import{mapItemsPropsToState as g}from"./utils";import{injectCatalogItems as K}from"../../utils/catalog/inject-catalog-items";import{filterOutVersionedItems as B}from"./helpers/filter-out-versioned-items";const M="catalog.backToAllLabel",P=`${T}/${h.ALL}`;function U(n){const e=G();return S(()=>B(e,n),[e,n])}function J(n){const e=_(),t=D(e,!0),a=O(),p=E(),s=U(n),c=a?K(s,a.key,p?.slug,e.search):s,[u,I]=b(null),r=S(()=>g(c,e,t),[t,e,c]),l=y("current-catalog-info"),L=S(()=>f(r),[c]),[o,m]=b(L),i=o.length>0?o[o.length-1]:void 0,A=i&&g([...i.item.link?[{...i.item,items:[],menuStyle:void 0,separatorLine:!1}]:[],...i.item.items],e,t);k(()=>{if(!u||u!==t){const d=f(r);m(d),I(t)}},[s,e,t,u]);const w=i?{slug:i.previousLink,event:"sidebar_drilldown_back_button.clicked"}:a?{label:"Back to Catalog",labelTranslationKey:M,slug:P,event:"back_to_catalog_button.clicked"}:l?{label:l.catalog.label,labelTranslationKey:l.catalog.labelTranslationKey,slug:l.catalog.link,event:"back_to_catalog_button.clicked"}:void 0;return{currentItems:A||r,allSidebarItems:r,popDrilldownState:()=>{o.length>0&&m(o.slice(0,o.length-1))},pushDrilldownState:d=>{m([...o,d])},backLink:w,versionLabel:a?.version??null}}function f(n,e=[]){for(const t of n){if(!t.active&&!t.hasActiveSubItem)continue;if(v(t)===C.DrillDown&&e.push({item:t}),t.active)return e;if(t.hasActiveSubItem)return f(t.items,e)}return e}export{U as useRawSidebarItems,J as useSidebarItems};
@@ -1 +1 @@
1
- import*as y from"react";import{useLocation as $,useNavigate as R}from"react-router-dom";import{usePageData as V,usePageSharedData as K}from"../../hooks";import{useProcessScorecard as q}from"@redocly/theme/ext/process-scorecard";import{withoutHash as j}from"@redocly/theme/core/utils";import{telemetry as L}from"../../telemetry/index.js";import{toStringIfDefined as A}from"../../../../utils/string/to-string-if-defined.js";import{findDeepFirst as G}from"../../../../utils/tree/find-deep-first.js";function ne(e,o,t){const c=$(),a=R(),n=V(),l=J(c),s=K("catalog"),[r,f]=y.useState(()=>(e.filters??[]).map(u=>{if(u.type==="date-range"){const[d,p]=l.get(u.property)?.split("--")??[];return!d&&!p?{}:{from:d,to:p}}return new Set(l.getAll(u.property))})),[i,v]=y.useState(()=>l.get("filter")||"");o||(o=[...s]);const g=y.useMemo(()=>D(o??[],e.filters),[o,e.filters]),{processScorecard:O}=q(),C=n?.props?.customFields,I=y.useMemo(()=>Z(o??[],e,C||{},O,t),[o,e,C,O,t]),b=y.useCallback((u,d)=>{f(p=>{const S=p[u]?p[u]:new Set;return S instanceof Set?(S.has(d)?p.forEach((m,h)=>{m instanceof Set&&m.has(d)&&m.delete(d)}):S.add(d),[...p.slice(0,u),S,...p.slice(u+1)]):p}),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"toggle"}]),window.scrollTo(0,0)},[]),P=y.useCallback((u,d)=>{f(p=>{const S=p[u]instanceof Set?new Set(d?[d]:[]):{from:d?.from,to:d?.to},m=g[u];return p.map((h,F)=>F===u?S:g[F].parentFilter===m.property?new Set:h)}),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"select"}]),window.scrollTo(0,0)},[g]),N=()=>{const u=new URLSearchParams(Array.from(l.entries()));i?l.set("filter",i):l.delete("filter"),r.forEach((p,S)=>{const m=e.filters?.[S];if(!m)return;const h=Y(p);X(m.property,h,u)});const d=u.toString();d!==c.search.substring(1)&&a({search:d})};y.useEffect(()=>{N()},[e.filters,r,i,a,c]);const k=y.useMemo(()=>Q(e.filters),[e.filters]);return y.useMemo(()=>{const u=g.map((m,h)=>({...m,toggleOption:F=>b(h,F),selectOption:F=>P(h,F),selectedOptions:r[h]??new Set,isFilterUsed:(r[h]?.size??0)>0||!!r[h]?.from})),d=T(I,u,i),p=u.map((m,h)=>{const F=u.findIndex(w=>w.property===m.parentFilter),z=m.parentFilter?(r[F]?.size??0)>0||!!r[F].from:!0,U=u.filter((w,M)=>M!==h&&!k[h]?.has(M)),_=T(I,U,i),B=D(_.map(w=>({metadata:w})),e.filters);return{...m,parentUsed:z,filteredOptions:B[h].options}});return{groups:e.groupByFirstFilter&&p.length>0?H(p,d):[{title:"APIs",items:d}],filters:p,setFilterTerm:m=>{v(m),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"term"}])},filterTerm:i}},[g,I,i,e.groupByFirstFilter,e.filters,r,b,P,k])}function H(e,o){return e[0].options.map(t=>({title:t.value,items:o.filter(c=>{const a=c?.[e[0].property]||e[0].missingCategoryName||"Others";return Array.isArray(a)?a.includes(t.value):a===t.value})})).filter(t=>t.items.length>0)}function J(e){return y.useMemo(()=>new URLSearchParams(e.search),[e.search])}function Z(e,o,t,c,a){let n;if(o.separateVersions)n=e.map(l);else{const s={};for(const r of e){if(!r.versionFolderId){const i=r.link||r.fsPath||JSON.stringify(r);s[i]=[r];continue}let f=r.versionFolderId;if(s[f]?.find(i=>i.version===r.version)){const i=r.fsPath?.replace(/\/@.*?\//,"/@version/")??"";f=`${f}-${i}`}s[f]||(s[f]=[]),s[f].push(r)}n=Object.values(s).map(r=>{r.sort((v,g)=>(v.version||"").localeCompare(g.version||""));const f=r.map(l);return{...l(r.find(v=>v.isDefault)||r[r.length-1]),versions:f}})}return a&&(n=n.filter(s=>!!s.scorecardLevel)),n.sort((s,r)=>s.title.localeCompare(r.title)),n;function l(s){const r=s.metadata||{},f=t[s.fsPath||""]||{},i=s.link||G(s.items||[],C=>"link"in C&&!!C.link)?.link,v=s.sidebar?.[0],g={...r,...f,publishedAt:r.publishedAt||r.createdAt,title:A(r?.title)||s.label||"Untitled",description:A(r?.description),link:j(i)??"#",docsLink:j(v?.link),image:A(r?.image),version:s.version,versionFolderId:s.versionFolderId},O=c({levels:g.scorecardLevels,status:g.scorecardStatus,scorecardLevel:g.scorecardLevel,scorecardLevelIdx:g.scorecardLevelIdx},g);return{...g,scorecardLevels:O?.levels,scorecardStatus:O?.status,scorecardLevel:O?.scorecardLevel,scorecardLevelIdx:O?.scorecardLevelIdx}}}function Q(e){if(!e)return[];const o=[];for(let t=0;t<e.length;t++){const c=e[t];if(c.parentFilter){const a=e.findIndex(n=>n.property===c.parentFilter);o[a]=o[a]||new Set,o[a].add(t)}}return o}function D(e,o){return(o??[]).map(t=>{const c=t.options?Object.fromEntries(t.options.map(s=>[s,0])):void 0,a=c??{};let n=0;for(const s of e){const r=Array.isArray(s.metadata?.[t.property])?s.metadata?.[t.property]:[s.metadata?.[t.property]];for(const f of r){const i=E(String(f),t.valuesMapping);if(c){i in c&&(a[i]=a[i]+1);continue}f?a[i]=(a[i]??0)+1:n++}}const l=Object.entries(a).map(([s,r])=>({value:s,count:r}));return c||l.sort((s,r)=>s.value.localeCompare(r.value)),n&&l.push({value:t.missingCategoryNameTranslationKey||t.missingCategoryName||"Others",count:n}),{...t,options:l}})}function T(e,o,t){const c=e.filter(a=>o.every(n=>{if(n.selectedOptions&&!(n.selectedOptions instanceof Set))try{const s=new Date(a[n.property]).toISOString().split("T")[0];return s>=(n.selectedOptions.from??"")&&s<=(n.selectedOptions.to??"Z")}catch{return!0}if(n.selectedOptions.size===0)return!0;const l=E(a?.[n.property]||n.missingCategoryName||"Others",n.valuesMapping);return Array.isArray(l)?l.some(s=>n.selectedOptions.has(s)):n.selectedOptions.has(l)}));return t?(t=t.toLowerCase(),c.filter(a=>Object.values(a).some(n=>Array.isArray(n)?n.some(l=>String(l).toLowerCase().includes(t)):String(n).toLowerCase().includes(t)))):c}function E(e,o){return o?Array.isArray(e)?e.map(t=>o[String(t)]||o["*"]||t):o[String(e)]||o["*"]||e:e}function X(e,o,t){t.delete(e),o.forEach(c=>{t.append(e,c)})}function Y(e){const o=new Set;return e instanceof Set?e.forEach(t=>o.add(t)):(e.from||e.to)&&o.add(`${e.from||""}--${e.to||""}`),o}export{X as fillSearchParams,Y as getFilterValues,ne as useCatalogClassic};
1
+ import*as y from"react";import{useLocation as $,useNavigate as R}from"react-router-dom";import{usePageData as V,usePageSharedData as K}from"../../hooks";import{useProcessScorecard as q}from"@redocly/theme/ext/process-scorecard";import{withoutHash as j}from"@redocly/theme/core/utils";import{telemetry as L}from"../../telemetry/index.js";import{toStringIfDefined as A}from"../../../../utils/string/to-string-if-defined.js";import{findDeepFirst as G}from"../../../../utils/tree/find-deep-first.js";function ne(e,o,t){const c=$(),a=R(),n=V(),l=J(c),s=K("catalog"),[r,f]=y.useState(()=>(e.filters??[]).map(u=>{if(u.type==="date-range"){const[d,p]=l.get(u.property)?.split("--")??[];return!d&&!p?{}:{from:d,to:p}}return new Set(l.getAll(u.property))})),[i,v]=y.useState(()=>l.get("filter")||"");o||(o=[...s]);const g=y.useMemo(()=>D(o??[],e.filters),[o,e.filters]),{processScorecard:O}=q(),C=n?.props?.customFields,I=y.useMemo(()=>Z(o??[],e,C||{},O,t),[o,e,C,O,t]),b=y.useCallback((u,d)=>{f(p=>{const F=p[u]?p[u]:new Set;return F instanceof Set?(F.has(d)?p.forEach((m,h)=>{m instanceof Set&&m.has(d)&&m.delete(d)}):F.add(d),[...p.slice(0,u),F,...p.slice(u+1)]):p}),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"toggle"}]),window.scrollTo(0,0)},[]),P=y.useCallback((u,d)=>{f(p=>{const F=p[u]instanceof Set?new Set(d?[d]:[]):{from:d?.from,to:d?.to},m=g[u];return p.map((h,S)=>S===u?F:g[S].parentFilter===m.property?new Set:h)}),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"select"}]),window.scrollTo(0,0)},[g]),N=()=>{const u=new URLSearchParams(Array.from(l.entries()));i?l.set("filter",i):l.delete("filter"),r.forEach((p,F)=>{const m=e.filters?.[F];if(!m)return;const h=Y(p);X(m.property,h,u)});const d=u.toString();d!==c.search.substring(1)&&a({search:d})};y.useEffect(()=>{N()},[e.filters,r,i,a,c]);const k=y.useMemo(()=>Q(e.filters),[e.filters]);return y.useMemo(()=>{const u=g.map((m,h)=>({...m,toggleOption:S=>b(h,S),selectOption:S=>P(h,S),selectedOptions:r[h]??new Set,isFilterUsed:(r[h]?.size??0)>0||!!r[h]?.from})),d=T(I,u,i),p=u.map((m,h)=>{const S=u.findIndex(w=>w.property===m.parentFilter),z=m.parentFilter?(r[S]?.size??0)>0||!!r[S].from:!0,U=u.filter((w,M)=>M!==h&&!k[h]?.has(M)),_=T(I,U,i),B=D(_.map(w=>({metadata:w})),e.filters);return{...m,parentUsed:z,filteredOptions:B[h].options}});return{groups:e.groupByFirstFilter&&p.length>0?H(p,d):[{title:"APIs",items:d}],filters:p,setFilterTerm:m=>{v(m),L.sendCatalogFilterChangedMessage([{object:"catalog_filter",type:"term"}])},filterTerm:i}},[g,I,i,e.groupByFirstFilter,e.filters,r,b,P,k])}function H(e,o){return e[0].options.map(t=>({title:t.value,items:o.filter(c=>{const a=c?.[e[0].property]||e[0].missingCategoryName||"Others";return Array.isArray(a)?a.includes(t.value):a===t.value})})).filter(t=>t.items.length>0)}function J(e){return y.useMemo(()=>new URLSearchParams(e.search),[e.search])}function Z(e,o,t,c,a){a||(e=e.filter(s=>!s.metadata?.isInstance));let n;if(o.separateVersions)n=e.map(l);else{const s={};for(const r of e){if(!r.versionFolderId){const i=r.link||r.fsPath||JSON.stringify(r);s[i]=[r];continue}let f=r.versionFolderId;if(s[f]?.find(i=>i.version===r.version)){const i=r.fsPath?.replace(/\/@.*?\//,"/@version/")??"";f=`${f}-${i}`}s[f]||(s[f]=[]),s[f].push(r)}n=Object.values(s).map(r=>{r.sort((v,g)=>(v.version||"").localeCompare(g.version||""));const f=r.map(l);return{...l(r.find(v=>v.isDefault)||r[r.length-1]),versions:f}})}return a&&(n=n.filter(s=>!!s.scorecardLevel)),n.sort((s,r)=>s.title.localeCompare(r.title)),n;function l(s){const r=s.metadata||{},f=t[s.fsPath||""]||{},i=s.link||G(s.items||[],C=>"link"in C&&!!C.link)?.link,v=s.sidebar?.[0],g={...r,...f,publishedAt:r.publishedAt||r.createdAt,title:A(r?.title)||s.label||"Untitled",description:A(r?.description),link:j(i)??"#",docsLink:j(v?.link),image:A(r?.image),version:s.version,versionFolderId:s.versionFolderId},O=c({levels:g.scorecardLevels,status:g.scorecardStatus,scorecardLevel:g.scorecardLevel,scorecardLevelIdx:g.scorecardLevelIdx},g);return{...g,scorecardLevels:O?.levels,scorecardStatus:O?.status,scorecardLevel:O?.scorecardLevel,scorecardLevelIdx:O?.scorecardLevelIdx}}}function Q(e){if(!e)return[];const o=[];for(let t=0;t<e.length;t++){const c=e[t];if(c.parentFilter){const a=e.findIndex(n=>n.property===c.parentFilter);o[a]=o[a]||new Set,o[a].add(t)}}return o}function D(e,o){return(o??[]).map(t=>{const c=t.options?Object.fromEntries(t.options.map(s=>[s,0])):void 0,a=c??{};let n=0;for(const s of e){const r=Array.isArray(s.metadata?.[t.property])?s.metadata?.[t.property]:[s.metadata?.[t.property]];for(const f of r){const i=E(String(f),t.valuesMapping);if(c){i in c&&(a[i]=a[i]+1);continue}f?a[i]=(a[i]??0)+1:n++}}const l=Object.entries(a).map(([s,r])=>({value:s,count:r}));return c||l.sort((s,r)=>s.value.localeCompare(r.value)),n&&l.push({value:t.missingCategoryNameTranslationKey||t.missingCategoryName||"Others",count:n}),{...t,options:l}})}function T(e,o,t){const c=e.filter(a=>o.every(n=>{if(n.selectedOptions&&!(n.selectedOptions instanceof Set))try{const s=new Date(a[n.property]).toISOString().split("T")[0];return s>=(n.selectedOptions.from??"")&&s<=(n.selectedOptions.to??"Z")}catch{return!0}if(n.selectedOptions.size===0)return!0;const l=E(a?.[n.property]||n.missingCategoryName||"Others",n.valuesMapping);return Array.isArray(l)?l.some(s=>n.selectedOptions.has(s)):n.selectedOptions.has(l)}));return t?(t=t.toLowerCase(),c.filter(a=>Object.values(a).some(n=>Array.isArray(n)?n.some(l=>String(l).toLowerCase().includes(t)):String(n).toLowerCase().includes(t)))):c}function E(e,o){return o?Array.isArray(e)?e.map(t=>o[String(t)]||o["*"]||t):o[String(e)]||o["*"]||e:e}function X(e,o,t){t.delete(e),o.forEach(c=>{t.append(e,c)})}function Y(e){const o=new Set;return e instanceof Set?e.forEach(t=>o.add(t)):(e.from||e.to)&&o.add(`${e.from||""}--${e.to||""}`),o}export{X as fillSearchParams,Y as getFilterValues,ne as useCatalogClassic};
@@ -1 +1 @@
1
- import{useLocation as i,useNavigate as r}from"react-router-dom";import{useEffect as s,useRef as u}from"react";import{useActiveSectionId as f}from"@redocly/theme/core/hooks";import{isBrowser as h}from"../../../utils/env/is-browser";let n=!0;function v(){const t=i(),o=r(),e=f(t,!1,!1),a=u(null);s(()=>{if(e&&n){n=!1,a.current=e;return}const c=a.current!==e;h()&&e&&!t.hash&&c&&!window.location.pathname.includes(e)&&o({pathname:t.pathname,search:t.search,hash:`#${e}`},{replace:!0}),a.current=e},[e,t.pathname,t.search,t.hash,o])}export{v as useAutoScroll};
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 +1 @@
1
- import{useLocation as u,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{removeTrailingSlash as E}from"../../../utils/url/remove-trailing-slash";import{envConfig as M}from"../../../config/env-config.js";import{onRouteChange as y}from"../../runtime/generated/browser-plugins.js";import{resolveRouteBySlug as C}from"../utils/resolveRouteBySlug.js";import{usePageData as b}from"./usePageData.js";import{usePostMessage as T}from"../../providers/post-message/use-post-message.js";import{isInIframe as I}from"../../utils/utils.js";import{waitForContentScripts as N}from"../../ScriptLoader.js";import{telemetry as R}from"../telemetry/index.js";const W=()=>{const e=u(),n=d(),a=l(),r=b(),[t,i]=P(),m=w(),{sendMessage:h}=T();v(()=>{N().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;R.sendPageViewedMessage([{object:"view_stats",uri:o,referrer:s||document.referrer||void 0}])}});const c=!!t;i(e);const{pathname:p,hash:g,state:f}=e;if(e?.pathname.endsWith("/")&&e?.pathname!=="/"){const o=E(e.pathname);n({pathname:o,search:e.search,hash:e.hash},{replace:!0})}(M.NODE_ENV==="development"||I())&&c&&C(p+g,r?.templateId).then(o=>{const s=a==="POP"?"browser":f?.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{W as useRouteChangeTracker};
1
+ import{useLocation as u,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{removeTrailingSlash as E}from"../../../utils/url/remove-trailing-slash";import{onRouteChange as M}from"../../runtime/generated/browser-plugins.js";import{resolveRouteBySlug as y}from"../utils/resolveRouteBySlug.js";import{usePageData as b}from"./usePageData.js";import{usePostMessage as C}from"../../providers/post-message/use-post-message.js";import{isInIframe as T}from"../../utils/utils.js";import{waitForContentScripts as I}from"../../ScriptLoader.js";import{telemetry as N}from"../telemetry/index.js";const U=()=>{const e=u(),n=d(),a=l(),r=b(),[t,i]=P(),m=w(),{sendMessage:h}=C();v(()=>{I().then(()=>{if(e.pathname!==t?.pathname||e.search!==t.search){M({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([{object:"page",uri:o,referrer:s||document.referrer||void 0}])}});const c=!!t;i(e);const{pathname:p,hash:g,state:f}=e;if(e?.pathname.endsWith("/")&&e?.pathname!=="/"){const o=E(e.pathname);n({pathname:o,search:e.search,hash:e.hash},{replace:!0})}(process.env.NODE_ENV==="development"||T())&&c&&y(p+g,r?.templateId).then(o=>{const s=a==="POP"?"browser":f?.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{U as useRouteChangeTracker};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * True when pathname (after decode) already identifies the same section as activeSectionId.
3
+ * Used to avoid adding redundant hash when URL path already matches (e.g. encoded %7b/%7d vs logical {}).
4
+ */
5
+ export declare function pathnameMatchesActiveSection(pathname: string, activeSectionId: string): boolean;
6
+ //# sourceMappingURL=pathname-matches-active-section.d.ts.map
@@ -0,0 +1 @@
1
+ import{normalizeRouteSlug as t}from"../../../../utils/path/normalize-route-slug";function c(e,o){return t(e).toLowerCase().includes(o.toLowerCase())}export{c as pathnameMatchesActiveSection};
@@ -0,0 +1 @@
1
+ import*as s from"react";import{loadScriptFromReactAsync as l,loadScriptFromReactSync as i}from"../../../ScriptLoader";function u(n){let r=!1;const{children:c,src:e,async:o,...t}=n;return typeof document<"u"&&(r=!!(e?document.querySelector(`script[src="${e}"]`):null)),s.useEffect(()=>{r||(e?o?l(e,t):i(e,!1,t):c&&i(c.toString(),!0,t))},[e]),null}export{u as HtmlScript};
@@ -0,0 +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"./get-operation/index";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};
@@ -0,0 +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"./get-operation/index";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};
@@ -0,0 +1 @@
1
+ import o from"react";import{EmbeddedReplay as E,StoreProvider as M}from"@redocly/openapi-docs";import{useLocation as b}from"react-router-dom";import{Admonition as k}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as A,OpenApiComponentWrap as I}from"../styled.elements.js";import{useStore as P}from"../../hooks/use-store.js";import{getOperation as x}from"./get-operation/index.js";import{getMockServerDocsConfig as R}from"../../../../templates/openapi-docs/mock-server-config.js";const L=y=>{const{descriptionFile:n,operationId:i,pointer:p,exampleKey:d,mimeType:l,requestBody:a,parameters:S,options:m,environment:t,environments:s,hideOtherSecuritySchemes:O}=y,h=b(),{store:e,error:v,baseSlug:u}=P(n),c=o.useMemo(()=>({...e?.options,...m}),[m,e?.options]),f=o.useMemo(()=>{const{mockServer:C,...g}=c;return g},[c]),r=o.useMemo(()=>{if(e)return x(e,{operationId:i,pointer:p},f,{exampleKey:d,mimeType:l,environments:s,environment:t,requestBody:a})},[d,f,l,i,p,e,s,t,a]);return e?r?o.createElement(I,{"data-testid":"replay-openapi"},o.createElement(M,{key:`${h.pathname}-${n}-${i||p}`,options:{...m,disableRouter:!0,routingBasePath:u,mockServer:R(c.mockServer,u)},definition:e.definition,withState:{environments:s,allowedEnvironments:t?[t]:void 0,operation:{pointer:r.pointer,state:{requestValues:{body:a,...S}}}}},o.createElement(E,{activeOperationId:r.operationId||"",fullOpenApi:e.definition,corsProxyUrl:e.options.corsProxyUrl,pointer:r.pointer,hideOtherSecuritySchemes:O}))):o.createElement(k,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",n):o.createElement(A,null,v)};export{L as ReplayOpenApi};
@@ -0,0 +1 @@
1
+ import{usePageSharedData as t}from"../../../providers/page-data/hooks";function n(r){const e=t(r||"");return e?{store:e,error:null,baseSlug:e.baseSlug}:{store:void 0,error:"Incorrect OpenAPI file path"}}export{n as useStore};