@redocly/realm 0.129.2 → 0.130.0-custom.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (697) hide show
  1. package/CHANGELOG.md +508 -83
  2. package/dist/bin.d.ts +1 -0
  3. package/dist/bin.js +1 -1
  4. package/dist/cli/develop.js +1 -1
  5. package/dist/cli/eject/resolveEjectParams.js +1 -1
  6. package/dist/cli/eject/resolveTheme.d.ts +1 -1
  7. package/dist/cli/eject/resolveTheme.js +1 -1
  8. package/dist/cli/prepare/copy-env-files.js +1 -1
  9. package/dist/cli/prepare/index.js +1 -1
  10. package/dist/cli/stats/collectors/openapi.d.ts +3 -0
  11. package/dist/cli/stats/collectors/openapi.js +1 -0
  12. package/dist/cli/stats/index.d.ts +7 -0
  13. package/dist/cli/stats/index.js +1 -0
  14. package/dist/cli/stats/options.d.ts +3 -0
  15. package/dist/cli/stats/options.js +1 -0
  16. package/dist/cli/telemetry/index.d.ts +2 -2
  17. package/dist/cli/telemetry/index.js +1 -1
  18. package/dist/client/App.js +1 -1
  19. package/dist/client/ErrorBoundary.js +1 -1
  20. package/dist/client/app/DevModeFloatingBar/index.d.ts +3 -0
  21. package/dist/client/app/DevModeFloatingBar/index.js +43 -0
  22. package/dist/client/app/Feedback/useSubmitFeedback.js +1 -1
  23. package/dist/client/app/Sidebar/RequestAccessButton.js +2 -2
  24. package/dist/client/app/Sidebar/Sidebar.js +2 -2
  25. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +23 -0
  26. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -0
  27. package/dist/client/app/Sidebar/useSidebarItems.d.ts +2 -2
  28. package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
  29. package/dist/client/app/hooks/catalog/useCatalogClassic.d.ts +1 -1
  30. package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
  31. package/dist/client/app/hooks/catalog/useCatalogFilter.js +1 -1
  32. package/dist/client/app/hooks/catalog/useCatalogViewMode.js +1 -1
  33. package/dist/client/app/hooks/catalog/useSearchTracker.js +1 -1
  34. package/dist/client/app/hooks/codeHighlight/useCodeHighlight.js +1 -1
  35. package/dist/client/app/hooks/useAutoScroll.js +1 -1
  36. package/dist/client/app/hooks/usePageTimeTracker.js +1 -1
  37. package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
  38. package/dist/client/app/hooks/useTelemetry.d.ts +2 -2
  39. package/dist/client/app/hooks/utils/pathname-matches-active-section.d.ts +6 -0
  40. package/dist/client/app/hooks/utils/pathname-matches-active-section.js +1 -0
  41. package/dist/client/app/markdoc/custom-components/html-script.js +1 -0
  42. package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -0
  43. package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -0
  44. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -0
  45. package/dist/client/app/markdoc/hooks/use-store.js +1 -0
  46. package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
  47. package/dist/client/app/search/message-handlers.d.ts +29 -0
  48. package/dist/client/app/search/message-handlers.js +1 -0
  49. package/dist/client/app/search/sse-parser.d.ts +10 -0
  50. package/dist/client/app/search/sse-parser.js +2 -0
  51. package/dist/client/app/search/useAiSearch.d.ts +9 -11
  52. package/dist/client/app/search/useAiSearch.js +1 -1
  53. package/dist/client/app/search/useSearch.js +1 -1
  54. package/dist/client/app/telemetry/index.d.ts +11 -1
  55. package/dist/client/app/telemetry/index.js +1 -1
  56. package/dist/client/browser-entry.js +3 -3
  57. package/dist/client/constants/ai-search.d.ts +30 -0
  58. package/dist/client/constants/ai-search.js +1 -0
  59. package/dist/client/constants/common.d.ts +2 -0
  60. package/dist/client/constants/common.js +1 -0
  61. package/dist/client/constants/index.d.ts +2 -0
  62. package/dist/client/constants/index.js +1 -0
  63. package/dist/client/runtime/useSocketMessages.js +1 -1
  64. package/dist/{server/plugins/asyncapi-docs/template → client/templates/asyncapi-docs}/helpers.d.ts +3 -3
  65. package/dist/client/templates/asyncapi-docs/helpers.js +1 -0
  66. package/dist/{server/plugins/asyncapi-docs/template/AsyncApiDocs.d.ts → client/templates/asyncapi-docs/template.d.ts} +3 -2
  67. package/dist/client/templates/asyncapi-docs/template.js +15 -0
  68. package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/helpers.d.ts +2 -2
  69. package/dist/client/templates/openapi-docs/helpers.js +5 -0
  70. package/dist/{server/plugins/openapi-docs/template/OpenAPIDocs.d.ts → client/templates/openapi-docs/template.d.ts} +1 -1
  71. package/dist/client/templates/openapi-docs/template.js +18 -0
  72. package/dist/client/types/ai-search.d.ts +73 -0
  73. package/dist/client/types/ai-search.js +0 -0
  74. package/dist/client/types/index.d.ts +1 -0
  75. package/dist/client/utils/catalog/inject-catalog-items.d.ts +1 -1
  76. package/dist/client/utils/catalog/inject-catalog-items.js +1 -1
  77. package/dist/constants/catalog-entities.d.ts +12 -0
  78. package/dist/constants/catalog-entities.js +1 -0
  79. package/dist/constants/common.d.ts +6 -4
  80. package/dist/constants/common.js +1 -1
  81. package/dist/constants/l10n/langs/ar.js +1 -1
  82. package/dist/constants/l10n/langs/de.js +1 -1
  83. package/dist/constants/l10n/langs/en.js +1 -1
  84. package/dist/constants/l10n/langs/es.js +1 -1
  85. package/dist/constants/l10n/langs/fr.js +1 -1
  86. package/dist/constants/l10n/langs/hi.js +1 -1
  87. package/dist/constants/l10n/langs/it.js +1 -1
  88. package/dist/constants/l10n/langs/ja.js +1 -1
  89. package/dist/constants/l10n/langs/ko.js +1 -1
  90. package/dist/constants/l10n/langs/pl.js +1 -1
  91. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  92. package/dist/constants/l10n/langs/pt.js +1 -1
  93. package/dist/constants/l10n/langs/ru.js +1 -1
  94. package/dist/constants/l10n/langs/uk.js +1 -1
  95. package/dist/constants/l10n/langs/zh.js +1 -1
  96. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-inner-text.d.ts +1 -1
  97. package/dist/markdoc/helpers/get-inner-text.js +2 -0
  98. package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-variable.d.ts +2 -2
  99. package/dist/markdoc/helpers/get-variable.js +1 -0
  100. package/dist/markdoc/nodes/fence/index.js +1 -0
  101. package/dist/markdoc/nodes/heading.js +1 -0
  102. package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.d.ts +6 -6
  103. package/dist/markdoc/tags/json-example.d.ts +3 -0
  104. package/dist/markdoc/tags/json-schema.d.ts +3 -0
  105. package/dist/markdoc/tags/openapi-code-sample.d.ts +3 -0
  106. package/dist/markdoc/tags/openapi-example.d.ts +3 -0
  107. package/dist/markdoc/tags/openapi-response-sample.d.ts +3 -0
  108. package/dist/markdoc/tags/replay-openapi.d.ts +3 -0
  109. package/dist/markdoc/types.d.ts +8 -0
  110. package/dist/markdoc/types.js +0 -0
  111. package/dist/server/api-routes/execute-api-route.js +1 -1
  112. package/dist/server/api-routes/import-api-routes-handlers.js +1 -1
  113. package/dist/server/api-routes/run-api-routes-worker.js +1 -1
  114. package/dist/server/config/env-config.d.ts +17 -0
  115. package/dist/server/config/env-config.js +1 -0
  116. package/dist/server/config/env-schema.d.ts +245 -0
  117. package/dist/server/config/env-schema.js +3 -0
  118. package/dist/server/config/env-schemas/api-urls.d.ts +24 -0
  119. package/dist/server/config/env-schemas/api-urls.js +1 -0
  120. package/dist/server/config/env-schemas/auth.d.ts +42 -0
  121. package/dist/server/config/env-schemas/auth.js +1 -0
  122. package/dist/server/config/env-schemas/catalog.d.ts +12 -0
  123. package/dist/server/config/env-schemas/catalog.js +1 -0
  124. package/dist/server/config/env-schemas/database.d.ts +15 -0
  125. package/dist/server/config/env-schemas/database.js +1 -0
  126. package/dist/server/config/env-schemas/environment-detection.d.ts +24 -0
  127. package/dist/server/config/env-schemas/environment-detection.js +1 -0
  128. package/dist/server/config/env-schemas/feature-flags.d.ts +24 -0
  129. package/dist/server/config/env-schemas/feature-flags.js +1 -0
  130. package/dist/server/config/env-schemas/organization-project.d.ts +30 -0
  131. package/dist/server/config/env-schemas/organization-project.js +1 -0
  132. package/dist/server/config/env-schemas/scorecards.d.ts +12 -0
  133. package/dist/server/config/env-schemas/scorecards.js +1 -0
  134. package/dist/server/config/env-schemas/search.d.ts +21 -0
  135. package/dist/server/config/env-schemas/search.js +1 -0
  136. package/dist/server/config/env-schemas/server-config.d.ts +51 -0
  137. package/dist/server/config/env-schemas/server-config.js +1 -0
  138. package/dist/server/config/env-schemas/site.d.ts +12 -0
  139. package/dist/server/config/env-schemas/site.js +1 -0
  140. package/dist/server/config/env-schemas/ssr.d.ts +18 -0
  141. package/dist/server/config/env-schemas/ssr.js +1 -0
  142. package/dist/server/config/env-schemas/telemetry.d.ts +15 -0
  143. package/dist/server/config/env-schemas/telemetry.js +1 -0
  144. package/dist/server/config/env-schemas/test.d.ts +22 -0
  145. package/dist/server/config/env-schemas/test.js +1 -0
  146. package/dist/server/constants/common.d.ts +3 -0
  147. package/dist/server/constants/common.js +1 -1
  148. package/dist/server/constants/feedback.d.ts +6 -0
  149. package/dist/server/constants/feedback.js +1 -0
  150. package/dist/server/constants/plugins/catalog-entities.d.ts +1 -11
  151. package/dist/server/constants/plugins/catalog-entities.js +1 -1
  152. package/dist/server/entitlements/entitlements-provider.js +1 -1
  153. package/dist/server/esbuild/esbuild-logger.js +2 -2
  154. package/dist/server/esbuild/esbuild.js +3 -3
  155. package/dist/server/esbuild/plugins/assets-resolver.js +1 -1
  156. package/dist/server/esbuild/plugins/esbuild-compile-resolver.js +1 -1
  157. package/dist/server/esbuild/plugins/styled-components-ssr.js +1 -1
  158. package/dist/server/esbuild/plugins/themes-resolver.js +2 -2
  159. package/dist/server/{config/external-plugins.d.ts → external-plugins/resolve-external-plugins.d.ts} +2 -2
  160. package/dist/server/{config/external-plugins.js → external-plugins/resolve-external-plugins.js} +1 -1
  161. package/dist/server/fs/cache.js +1 -1
  162. package/dist/server/fs/content-fs.d.ts +1 -0
  163. package/dist/server/fs/content-fs.js +1 -1
  164. package/dist/server/fs/last-modified-tracker.js +1 -1
  165. package/dist/server/fs/utils/is-loader-cache-enabled.js +1 -1
  166. package/dist/server/node-bundle-entry.js +1 -1
  167. package/dist/server/persistence/kv/repositories/kv-remote-repository.d.ts +1 -0
  168. package/dist/server/persistence/kv/repositories/kv-remote-repository.js +2 -1
  169. package/dist/server/persistence/kv/services/kv-service.js +1 -1
  170. package/dist/server/plugins/analytics/adobe/index.js +1 -1
  171. package/dist/server/plugins/analytics/amplitude/index.js +1 -1
  172. package/dist/server/plugins/analytics/fullstory/index.js +1 -1
  173. package/dist/server/plugins/analytics/ga/index.js +1 -1
  174. package/dist/server/plugins/analytics/gtm/browser-hooks.js +1 -1
  175. package/dist/server/plugins/analytics/gtm/index.js +1 -1
  176. package/dist/server/plugins/analytics/heap/index.js +1 -1
  177. package/dist/server/plugins/analytics/rudderstack/index.js +1 -1
  178. package/dist/server/plugins/analytics/segment/index.js +1 -1
  179. package/dist/server/plugins/asyncapi-docs/asyncapi-doc-loader.js +3 -3
  180. package/dist/server/plugins/asyncapi-docs/get-server-props.js +1 -1
  181. package/dist/server/plugins/asyncapi-docs/index.js +1 -1
  182. package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.js +27 -27
  183. package/dist/server/plugins/asyncapi-docs/search/schema-processor.js +1 -1
  184. package/dist/server/plugins/asyncapi-docs/search/search-resolver.js +1 -1
  185. package/dist/server/plugins/asyncapi-docs/store-definition-bundles.js +1 -1
  186. package/dist/server/plugins/catalog-classic/get-server-props.d.ts +8 -3
  187. package/dist/server/plugins/catalog-classic/get-server-props.js +1 -1
  188. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.d.ts +38 -64
  189. package/dist/server/plugins/catalog-entities/database/catalog-entities-service.js +1 -1
  190. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.d.ts +8 -0
  191. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-attributes-db-record.js +1 -0
  192. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-db-record.d.ts +2 -1
  193. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-read-model.js +1 -1
  194. package/dist/server/plugins/catalog-entities/database/mappers/{create-entity-relation.d.ts → create-entity-relation-read-model.d.ts} +2 -2
  195. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation-read-model.js +1 -0
  196. package/dist/server/plugins/catalog-entities/database/mappers/map-entity-relation-row.js +1 -1
  197. package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.d.ts +27 -0
  198. package/dist/server/plugins/catalog-entities/database/repositories/common/revision-repository.js +1 -0
  199. package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.d.ts +36 -0
  200. package/dist/server/plugins/catalog-entities/database/repositories/common/version-repository.js +1 -0
  201. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.d.ts +15 -4
  202. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.js +38 -27
  203. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.d.ts +36 -9
  204. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +37 -21
  205. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.d.ts +41 -42
  206. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-repository.js +1 -1
  207. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.d.ts +3 -1
  208. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-write-repository.js +1 -1
  209. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.d.ts +7 -1
  210. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-relations-repository.js +1 -1
  211. package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.d.ts +5 -9
  212. package/dist/server/plugins/catalog-entities/database/repositories/remote/catalog-entities-remote-repository.js +1 -1
  213. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.d.ts +13 -0
  214. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-entities-exclusion-filter.js +1 -0
  215. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.d.ts +31 -0
  216. package/dist/server/plugins/catalog-entities/database/repositories/utils/build-rbac-filter.js +9 -0
  217. package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.d.ts +34 -0
  218. package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.js +13 -0
  219. package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.d.ts +23 -0
  220. package/dist/server/plugins/catalog-entities/database/repositories/utils/normalize-revision-flags.js +1 -0
  221. package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.d.ts +78 -0
  222. package/dist/server/plugins/catalog-entities/database/repositories/utils/semantic-version-sort.js +34 -0
  223. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
  224. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
  225. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +6 -4
  226. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
  227. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +2 -2
  228. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.d.ts +1 -1
  229. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
  230. package/dist/server/plugins/catalog-entities/extensions/extractors/fs-entities-extractor.js +1 -1
  231. package/dist/server/plugins/catalog-entities/get-server-props.js +1 -1
  232. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  233. package/dist/server/plugins/catalog-entities/schemas/database-schemas.d.ts +3 -0
  234. package/dist/server/plugins/catalog-entities/schemas/database-schemas.js +1 -1
  235. package/dist/server/plugins/catalog-entities/schemas/dto-schemas.d.ts +15 -1
  236. package/dist/server/plugins/catalog-entities/schemas/dto-schemas.js +1 -1
  237. package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.d.ts +26 -164
  238. package/dist/server/plugins/catalog-entities/schemas/read-model-schemas.js +0 -1
  239. package/dist/server/plugins/catalog-entities/types/extractors.d.ts +4 -4
  240. package/dist/server/plugins/catalog-entities/types/openapi.d.ts +11 -0
  241. package/dist/server/plugins/catalog-entities/types/openapi.js +0 -0
  242. package/dist/server/plugins/catalog-entities/types/params.d.ts +6 -0
  243. package/dist/server/plugins/catalog-entities/types/params.js +0 -0
  244. package/dist/server/plugins/catalog-entities/utils/ajv-validator.js +1 -1
  245. package/dist/server/plugins/catalog-entities/utils/catalog-data-collector.js +1 -1
  246. package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.d.ts +11 -0
  247. package/dist/server/plugins/catalog-entities/utils/get-not-accessible-catalog-resources.js +1 -0
  248. package/dist/server/plugins/config-parser/index.js +1 -1
  249. package/dist/server/plugins/config-parser/loaders/content-slugs-loader.js +1 -1
  250. package/dist/server/plugins/config-parser/loaders/nearest-redocly-config-loader.js +1 -1
  251. package/dist/server/plugins/config-parser/loaders/redocly-config-loader.js +1 -1
  252. package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
  253. package/dist/server/plugins/default-theme/index.js +1 -1
  254. package/dist/server/plugins/entitlements/index.js +1 -1
  255. package/dist/server/plugins/graphql-docs/graphql-doc-loader.js +1 -1
  256. package/dist/server/plugins/graphql-docs/index.js +1 -1
  257. package/dist/server/plugins/graphql-docs/search/search-resolver.js +1 -1
  258. package/dist/server/plugins/graphql-docs/template/GraphQLDocs.js +6 -2
  259. package/dist/server/plugins/lifecycle.js +2 -2
  260. package/dist/server/plugins/markdown/attribute-resolvers/code-walkthrough/filesets-resolver.js +1 -1
  261. package/dist/server/plugins/markdown/attribute-resolvers/resolve-code-snippet-from-file.js +1 -1
  262. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-href.js +1 -1
  263. package/dist/server/plugins/markdown/attribute-resolvers/resolve-html-source-attribute.js +1 -1
  264. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src-set.js +1 -1
  265. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-src.js +1 -1
  266. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-example-ref.js +1 -1
  267. package/dist/server/plugins/markdown/attribute-resolvers/resolve-json-schema-ref.js +1 -1
  268. package/dist/server/plugins/markdown/attribute-resolvers/resolve-link.js +1 -1
  269. package/dist/server/plugins/markdown/attribute-resolvers/resolve-native-md-link.js +1 -1
  270. package/dist/server/plugins/markdown/attribute-resolvers/resolve-nav-links.js +1 -1
  271. package/dist/server/plugins/markdown/attribute-resolvers/resolve-open-api-ref.js +1 -1
  272. package/dist/server/plugins/markdown/attribute-resolvers/resolve-parsed-yaml.js +1 -1
  273. package/dist/server/plugins/markdown/attribute-resolvers/resolve-raw-content.js +1 -1
  274. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-or-cdn-icon.js +1 -1
  275. package/dist/server/plugins/markdown/attribute-resolvers/resolve-relative-path.js +1 -1
  276. package/dist/server/plugins/markdown/attribute-resolvers/resolve-sample-from-json-schema.js +1 -1
  277. package/dist/server/plugins/markdown/attribute-resolvers/resolve-svg-content.js +1 -1
  278. package/dist/server/plugins/markdown/compiler.d.ts +1 -0
  279. package/dist/server/plugins/markdown/compiler.js +1 -1
  280. package/dist/server/plugins/markdown/index.js +1 -1
  281. package/dist/server/plugins/markdown/is-partial.d.ts +1 -1
  282. package/dist/server/plugins/markdown/is-partial.js +1 -1
  283. package/dist/server/plugins/markdown/markdoc/import-user-tags.js +1 -1
  284. package/dist/server/plugins/markdown/markdoc/markdoc-options.js +1 -1
  285. package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
  286. package/dist/server/plugins/markdown/markdoc/plugins/headings.js +1 -1
  287. package/dist/server/plugins/markdown/markdoc/plugins/render-mermaid.js +1 -1
  288. package/dist/server/plugins/markdown/markdoc/plugins/utils.js +1 -1
  289. package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.d.ts +1 -1
  290. package/dist/server/plugins/markdown/markdoc/resolve-raw-partials.js +2 -2
  291. package/dist/server/plugins/markdown/markdown-static-data-loader.js +1 -1
  292. package/dist/server/plugins/markdown/runtime-transform.js +1 -1
  293. package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
  294. package/dist/server/plugins/markdown/search/get-search-documents.js +2 -2
  295. package/dist/server/plugins/markdown/search/nodes/section-node.js +1 -1
  296. package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
  297. package/dist/server/plugins/markdown/search/to-markdown.js +17 -13
  298. package/dist/server/plugins/markdown/search/walk-sections.js +1 -1
  299. package/dist/server/plugins/markdown/utils/stringify-tag-children-objects.js +1 -1
  300. package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
  301. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.d.ts +58 -0
  302. package/dist/server/plugins/mcp/docs-mcp/tools/docs-mcp-tool.js +1 -0
  303. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.d.ts +9 -8
  304. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.js +1 -1
  305. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.d.ts +9 -8
  306. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.js +1 -1
  307. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.d.ts +9 -8
  308. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-api-description.js +1 -1
  309. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.d.ts +9 -8
  310. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.js +1 -1
  311. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +7 -13
  312. package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -1
  313. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.d.ts +9 -6
  314. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.js +1 -1
  315. package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts +10 -2
  316. package/dist/server/plugins/mcp/docs-mcp/tools/search.js +6 -1
  317. package/dist/server/plugins/mcp/docs-mcp/tools/utils.d.ts +2 -1
  318. package/dist/server/plugins/mcp/docs-mcp/tools/utils.js +6 -6
  319. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.d.ts +9 -2
  320. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.js +1 -1
  321. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
  322. package/dist/server/plugins/mcp/handlers/errors.js +1 -1
  323. package/dist/server/plugins/mcp/handlers/handle-mcp-request.d.ts +5 -0
  324. package/dist/server/plugins/mcp/handlers/handle-mcp-request.js +1 -0
  325. package/dist/server/plugins/mcp/handlers/mcp-request-handler.d.ts +0 -1
  326. package/dist/server/plugins/mcp/handlers/mcp-request-handler.js +1 -1
  327. package/dist/server/plugins/mcp/servers/base-server.js +1 -1
  328. package/dist/server/plugins/mcp/servers/docs-server.d.ts +9 -2
  329. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  330. package/dist/server/plugins/mcp/types.d.ts +59 -0
  331. package/dist/server/plugins/mcp/workers/execute-mcp-tool.d.ts +3 -0
  332. package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -0
  333. package/dist/server/plugins/nav-utils.d.ts +1 -1
  334. package/dist/server/plugins/nav-utils.js +1 -1
  335. package/dist/server/plugins/openapi-docs/decorators.d.ts +3 -0
  336. package/dist/server/plugins/openapi-docs/decorators.js +1 -1
  337. package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.d.ts +2 -4
  338. package/dist/server/plugins/openapi-docs/get-server-props-custom-fields.js +1 -1
  339. package/dist/server/plugins/openapi-docs/get-server-props.js +1 -1
  340. package/dist/server/plugins/openapi-docs/index.js +1 -1
  341. package/dist/server/plugins/openapi-docs/load-definition.d.ts +1 -0
  342. package/dist/server/plugins/openapi-docs/load-definition.js +3 -3
  343. package/dist/server/plugins/openapi-docs/openrpc-converter.d.ts +2 -0
  344. package/dist/server/plugins/openapi-docs/openrpc-converter.js +1 -0
  345. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +20 -20
  346. package/dist/server/plugins/openapi-docs/search/search-resolver.js +1 -1
  347. package/dist/server/plugins/openapi-docs/search-indexer.js +1 -1
  348. package/dist/server/plugins/openapi-docs/store-definition-bundles.js +1 -1
  349. package/dist/server/plugins/openapi-docs/utils.d.ts +1 -0
  350. package/dist/server/plugins/scorecard-classic/compute-scorecard.d.ts +2 -1
  351. package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
  352. package/dist/server/plugins/scorecard-classic/get-scorecard-config.d.ts +2 -1
  353. package/dist/server/plugins/scorecard-classic/index.js +1 -1
  354. package/dist/server/plugins/scorecard-classic/lint.d.ts +1 -1
  355. package/dist/server/plugins/scorecard-classic/lint.js +1 -1
  356. package/dist/server/plugins/scorecard-classic/loaders/scorecard-config.js +1 -1
  357. package/dist/server/plugins/scorecard-classic/loaders/scorecard.d.ts +6 -4
  358. package/dist/server/plugins/scorecard-classic/loaders/scorecard.js +1 -1
  359. package/dist/server/plugins/scorecard-classic/shared-utils.d.ts +1 -1
  360. package/dist/server/plugins/scorecard-classic/shared-utils.js +1 -1
  361. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.d.ts +3 -1
  362. package/dist/server/plugins/scorecard-classic/template/Grid/Grid.js +3 -3
  363. package/dist/server/plugins/scorecard-classic/template/Grid/GridHeader.js +15 -9
  364. package/dist/server/plugins/scorecard-classic/template/Grid/GridRow.js +1 -1
  365. package/dist/server/plugins/scorecard-classic/template/LevelIndicator.d.ts +1 -0
  366. package/dist/server/plugins/scorecard-classic/template/LevelIndicator.js +4 -4
  367. package/dist/server/plugins/scorecard-classic/template/components.js +1 -1
  368. package/dist/server/plugins/scorecard-classic/template/index.styles.d.ts +1 -0
  369. package/dist/server/plugins/scorecard-classic/template/index.styles.js +92 -19
  370. package/dist/server/plugins/scorecard-classic/template/index.types.d.ts +5 -1
  371. package/dist/server/plugins/scorecard-classic/template/useData.js +1 -1
  372. package/dist/server/plugins/scorecard-classic/template/views.js +1 -1
  373. package/dist/server/plugins/scorecard-classic/types.d.ts +5 -3
  374. package/dist/server/plugins/scorecard-classic/types.js +1 -1
  375. package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.d.ts +12 -0
  376. package/dist/server/plugins/scorecards/database/repositories/local/scorecards-config-local-repository.js +1 -0
  377. package/dist/server/plugins/scorecards/database/scorecards-config-service.d.ts +11 -0
  378. package/dist/server/plugins/scorecards/database/scorecards-config-service.js +1 -0
  379. package/dist/server/plugins/scorecards/plugin.js +1 -1
  380. package/dist/server/plugins/scorecards/workers/run-scorecards-worker.d.ts +2 -1
  381. package/dist/server/plugins/scorecards/workers/run-scorecards-worker.js +1 -1
  382. package/dist/server/plugins/scorecards/workers/scorecards.d.ts +1 -12
  383. package/dist/server/plugins/scorecards/workers/scorecards.js +1 -1
  384. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.d.ts +11 -0
  385. package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -0
  386. package/dist/server/plugins/search/documents/search-documents.js +1 -1
  387. package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
  388. package/dist/server/plugins/search/engines/typesense/index.js +1 -1
  389. package/dist/server/plugins/search/index.js +1 -1
  390. package/dist/server/plugins/search/llmstxt/index.js +5 -5
  391. package/dist/server/plugins/search/utils.d.ts +2 -0
  392. package/dist/server/plugins/search/utils.js +2 -2
  393. package/dist/server/plugins/sidebars/index.d.ts +0 -2
  394. package/dist/server/plugins/sidebars/index.js +3 -3
  395. package/dist/server/plugins/sso/index.js +1 -1
  396. package/dist/server/providers/database/base-repository.d.ts +1 -0
  397. package/dist/server/providers/database/base-repository.js +1 -1
  398. package/dist/server/providers/database/database-connection-factory.js +1 -1
  399. package/dist/server/providers/database/database-initialization-strategy.js +1 -1
  400. package/dist/server/providers/database/database-preconnect-service.js +1 -1
  401. package/dist/server/providers/database/databases/catalog-sqlite/migrations/0005_catalog-relations-constraint-fix.sql +2 -0
  402. package/dist/server/providers/database/databases/catalog-sqlite/migrations/0006_add-catalog-entitities-attributes-table.sql +11 -0
  403. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0005_snapshot.json +393 -0
  404. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/0006_snapshot.json +458 -0
  405. package/dist/server/providers/database/databases/catalog-sqlite/migrations/meta/_journal.json +14 -0
  406. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.d.ts +143 -0
  407. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-attributes-table.js +1 -0
  408. package/dist/server/providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js +1 -1
  409. package/dist/server/providers/database/databases/main-sqlite/migrations/0006_change-scorecards-config-timestamps-field-types.sql +19 -0
  410. package/dist/server/providers/database/databases/main-sqlite/migrations/meta/0006_snapshot.json +261 -0
  411. package/dist/server/providers/database/databases/main-sqlite/migrations/meta/_journal.json +7 -0
  412. package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.d.ts +24 -18
  413. package/dist/server/providers/database/databases/main-sqlite/schemas/scorecards-config-table.js +1 -1
  414. package/dist/server/providers/database/databases/sqld-sqlite/drizzle.config.js +1 -1
  415. package/dist/server/providers/database/databases/sqld-sqlite/migrations/0007_catalog-relations-constraint-fix.sql +2 -0
  416. package/dist/server/providers/database/databases/sqld-sqlite/migrations/0008_add-catalog-entitities-attributes-table.sql +11 -0
  417. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0007_snapshot.json +833 -0
  418. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/0008_snapshot.json +898 -0
  419. package/dist/server/providers/database/databases/sqld-sqlite/migrations/meta/_journal.json +14 -0
  420. package/dist/server/providers/database/pagination/entities-to-filter.d.ts +15 -0
  421. package/dist/server/providers/database/pagination/entities-to-filter.js +1 -0
  422. package/dist/server/providers/database/pagination/utils/index.d.ts +4 -0
  423. package/dist/server/providers/database/pagination/utils/index.js +1 -1
  424. package/dist/server/providers/database/pagination/utils/is-nested-condition.d.ts +16 -0
  425. package/dist/server/providers/database/pagination/utils/is-nested-condition.js +1 -0
  426. package/dist/server/providers/database/pagination/utils/is-simple-condition.d.ts +18 -0
  427. package/dist/server/providers/database/pagination/utils/is-simple-condition.js +1 -0
  428. package/dist/server/providers/database/pagination/utils/map-operator.d.ts +10 -0
  429. package/dist/server/providers/database/pagination/utils/map-operator.js +1 -0
  430. package/dist/server/providers/database/pagination/utils/transform-condition.d.ts +12 -0
  431. package/dist/server/providers/database/pagination/utils/transform-condition.js +1 -0
  432. package/dist/server/providers/database/sqld-not-running-error.d.ts +5 -0
  433. package/dist/server/providers/database/sqld-not-running-error.js +1 -0
  434. package/dist/server/ssr/render.js +1 -1
  435. package/dist/server/ssr/server-side-props/get-server-props-from-user-handler.js +1 -1
  436. package/dist/server/ssr/utils.js +8 -8
  437. package/dist/server/store.d.ts +16 -6
  438. package/dist/server/store.js +1 -1
  439. package/dist/server/telemetry/index.js +1 -1
  440. package/dist/server/tools/notifiers/formatter.js +3 -3
  441. package/dist/server/tools/notifiers/helpers/colors.js +1 -1
  442. package/dist/server/tools/notifiers/logger.js +2 -2
  443. package/dist/server/tools/notifiers/reporter.js +9 -9
  444. package/dist/server/tools/notifiers/terminal-manager.js +4 -4
  445. package/dist/server/types/plugins/common.d.ts +8 -1
  446. package/dist/server/types/plugins/markdown.d.ts +2 -7
  447. package/dist/server/types/plugins/scorecards.d.ts +30 -0
  448. package/dist/server/types/plugins/scorecards.js +0 -0
  449. package/dist/server/utils/ai-agent-detection.d.ts +16 -0
  450. package/dist/server/utils/ai-agent-detection.js +1 -0
  451. package/dist/server/utils/envs/get-api-route-allowed-env-variables.js +1 -1
  452. package/dist/server/utils/envs/load-env-variables.d.ts +1 -1
  453. package/dist/server/utils/envs/load-env-variables.js +1 -1
  454. package/dist/server/utils/envs/sanitize-branch-name.d.ts +6 -0
  455. package/dist/server/utils/envs/sanitize-branch-name.js +1 -0
  456. package/dist/server/utils/fs.js +1 -1
  457. package/dist/server/utils/globs.js +1 -1
  458. package/dist/server/utils/index.d.ts +2 -2
  459. package/dist/server/utils/index.js +1 -1
  460. package/dist/server/utils/is-catalog-entities-enabled.js +1 -1
  461. package/dist/server/utils/is-scorecards-enabled.js +1 -1
  462. package/dist/server/utils/lifecycle-hooks.js +1 -1
  463. package/dist/server/utils/rbac.d.ts +76 -7
  464. package/dist/server/utils/rbac.js +1 -1
  465. package/dist/server/utils/report-all-errors.js +1 -1
  466. package/dist/server/utils/set-execution-mode.d.ts +5 -0
  467. package/dist/server/utils/set-execution-mode.js +1 -0
  468. package/dist/server/utils/time/with-timestamp.d.ts +42 -10
  469. package/dist/server/utils/time/with-timestamp.js +1 -1
  470. package/dist/server/version.js +1 -1
  471. package/dist/server/web-server/auth.d.ts +2 -0
  472. package/dist/server/web-server/auth.js +4 -4
  473. package/dist/server/web-server/dev-server.js +1 -1
  474. package/dist/server/web-server/handle-api-route-request.js +1 -1
  475. package/dist/server/web-server/http.js +2 -2
  476. package/dist/server/web-server/middleware/apiKeyMiddleware.js +1 -1
  477. package/dist/server/web-server/middleware/catalogAuthMiddleware.d.ts +4 -6
  478. package/dist/server/web-server/middleware/catalogAuthMiddleware.js +1 -1
  479. package/dist/server/web-server/middleware/corsMiddleware.js +1 -1
  480. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js +1 -1
  481. package/dist/server/web-server/middleware/idleTimeoutMiddleware.js +1 -1
  482. package/dist/server/web-server/middleware/responseHeadersMiddleware.js +1 -1
  483. package/dist/server/web-server/mime-types.js +1 -1
  484. package/dist/server/web-server/routes/ask-ai.js +1 -1
  485. package/dist/server/web-server/routes/auth.js +1 -1
  486. package/dist/server/web-server/routes/catalog/bff-catalog-related-entities.js +1 -1
  487. package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
  488. package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
  489. package/dist/server/web-server/routes/catalog/catalog.js +1 -1
  490. package/dist/server/web-server/routes/catalog/dto/read-entity-dto.d.ts +3 -0
  491. package/dist/server/web-server/routes/catalog/dto/read-entity-dto.js +0 -0
  492. package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.d.ts +43 -0
  493. package/dist/server/web-server/routes/catalog/helpers/create-entity-relation-update-schema.js +1 -0
  494. package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.d.ts +6823 -0
  495. package/dist/server/web-server/routes/catalog/helpers/create-entity-schema.js +1 -0
  496. package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.d.ts +1102 -0
  497. package/dist/server/web-server/routes/catalog/helpers/create-entity-update-schema.js +1 -0
  498. package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.d.ts +10 -0
  499. package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.js +1 -0
  500. package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.d.ts +4 -0
  501. package/dist/server/web-server/routes/catalog/mappers/map-entity-read-model-schema-to-entity-read-dto.js +1 -0
  502. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.d.ts +4 -0
  503. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entities.js +1 -0
  504. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.d.ts +4 -0
  505. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity-update-data.js +1 -0
  506. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.d.ts +4 -0
  507. package/dist/server/web-server/routes/catalog/parsers/entities/parse-entity.js +1 -0
  508. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.d.ts +13 -0
  509. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entities-relations.js +1 -0
  510. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.d.ts +13 -0
  511. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation-update-data.js +1 -0
  512. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.d.ts +13 -0
  513. package/dist/server/web-server/routes/catalog/parsers/relations/parse-entity-relation.js +1 -0
  514. package/dist/server/web-server/routes/cors-proxy.d.ts +5 -0
  515. package/dist/server/web-server/routes/cors-proxy.js +2 -0
  516. package/dist/server/web-server/routes/dynamic-route.js +1 -1
  517. package/dist/server/web-server/routes/error.js +1 -1
  518. package/dist/server/web-server/routes/feedback.js +1 -1
  519. package/dist/server/web-server/routes/helpers/get-current-rbac-teams.d.ts +3 -0
  520. package/dist/server/web-server/routes/helpers/get-current-rbac-teams.js +1 -0
  521. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.d.ts +2 -0
  522. package/dist/server/web-server/routes/helpers/get-md-asset-pathname.js +1 -0
  523. package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.d.ts +11 -0
  524. package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.js +1 -0
  525. package/dist/server/web-server/routes/index.js +1 -1
  526. package/dist/server/web-server/routes/info.js +1 -1
  527. package/dist/server/web-server/routes/mcp-oauth.js +1 -1
  528. package/dist/server/web-server/routes/otel/otel.js +1 -1
  529. package/dist/server/web-server/routes/page-data.js +1 -1
  530. package/dist/server/web-server/routes/path-prefix-redirect.js +1 -1
  531. package/dist/server/web-server/routes/resolve-route.js +1 -1
  532. package/dist/server/web-server/routes/semantic-search.d.ts +4 -0
  533. package/dist/server/web-server/routes/semantic-search.js +1 -0
  534. package/dist/server/web-server/utils.d.ts +2 -2
  535. package/dist/server/workers/mcp-tool-worker-pool.d.ts +4 -0
  536. package/dist/server/workers/mcp-tool-worker-pool.js +1 -0
  537. package/dist/server/workers/mcp-tool-worker.d.ts +2 -0
  538. package/dist/server/workers/mcp-tool-worker.js +1 -0
  539. package/dist/server/workers/types.d.ts +7 -1
  540. package/dist/server/workers/worker-pool.js +1 -1
  541. package/dist/{server/utils → utils}/slugger.d.ts +13 -0
  542. package/package.json +21 -23
  543. package/dist/client/app/ErrorBubble/index.d.ts +0 -3
  544. package/dist/client/app/ErrorBubble/index.js +0 -59
  545. package/dist/client/app/PageCounter/index.d.ts +0 -3
  546. package/dist/client/app/PageCounter/index.js +0 -64
  547. package/dist/server/plugins/asyncapi-docs/template/AsyncApiDocs.js +0 -9
  548. package/dist/server/plugins/asyncapi-docs/template/helpers.js +0 -1
  549. package/dist/server/plugins/catalog-entities/database/mappers/create-entity-relation.js +0 -1
  550. package/dist/server/plugins/catalog-entities/entities/validate-entity.d.ts +0 -6
  551. package/dist/server/plugins/catalog-entities/entities/validate-entity.js +0 -1
  552. package/dist/server/plugins/markdown/markdoc/custom-components/html-script.js +0 -1
  553. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-code-sample.js +0 -1
  554. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/openapi-response-sample.js +0 -1
  555. package/dist/server/plugins/markdown/markdoc/custom-components/openapi/replay-openapi.js +0 -1
  556. package/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js +0 -2
  557. package/dist/server/plugins/markdown/markdoc/helpers/get-variable.js +0 -1
  558. package/dist/server/plugins/markdown/markdoc/hooks/use-store.js +0 -1
  559. package/dist/server/plugins/markdown/markdoc/nodes/fence/index.js +0 -1
  560. package/dist/server/plugins/markdown/markdoc/nodes/heading.js +0 -1
  561. package/dist/server/plugins/markdown/markdoc/tags/json-example.d.ts +0 -3
  562. package/dist/server/plugins/markdown/markdoc/tags/json-schema.d.ts +0 -3
  563. package/dist/server/plugins/markdown/markdoc/tags/openapi-code-sample.d.ts +0 -3
  564. package/dist/server/plugins/markdown/markdoc/tags/openapi-example.d.ts +0 -3
  565. package/dist/server/plugins/markdown/markdoc/tags/openapi-response-sample.d.ts +0 -3
  566. package/dist/server/plugins/markdown/markdoc/tags/replay-openapi.d.ts +0 -3
  567. package/dist/server/plugins/mcp/workers/run-api-routes-worker.d.ts +0 -5
  568. package/dist/server/plugins/mcp/workers/run-api-routes-worker.js +0 -1
  569. package/dist/server/plugins/openapi-docs/template/OpenAPIDocs.js +0 -14
  570. package/dist/server/plugins/openapi-docs/template/helpers.js +0 -5
  571. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.d.ts +0 -6
  572. package/dist/server/plugins/search/ai-indexer/prepare-ai-search-documents.js +0 -1
  573. package/dist/server/utils/envs/is-build-mode.d.ts +0 -2
  574. package/dist/server/utils/envs/is-build-mode.js +0 -1
  575. package/dist/server/utils/envs/is-develop-mode.d.ts +0 -7
  576. package/dist/server/utils/envs/is-develop-mode.js +0 -1
  577. package/dist/server/utils/envs/is-production-mode.d.ts +0 -10
  578. package/dist/server/utils/envs/is-production-mode.js +0 -1
  579. package/dist/server/workers/mcp-worker-pool.d.ts +0 -4
  580. package/dist/server/workers/mcp-worker-pool.js +0 -1
  581. package/dist/utils/env/is-local-development.d.ts +0 -13
  582. package/dist/utils/env/is-local-development.js +0 -1
  583. package/dist/utils/env/is-production.d.ts +0 -13
  584. package/dist/utils/env/is-production.js +0 -1
  585. package/dist/utils/env/is-web-view.d.ts +0 -14
  586. package/dist/utils/env/is-web-view.js +0 -1
  587. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.d.ts +0 -0
  588. /package/dist/client/app/{ErrorBubble → DevModeFloatingBar}/DetailedErrors.js +0 -0
  589. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/html-script.d.ts +0 -0
  590. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.d.ts +0 -0
  591. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/index.js +0 -0
  592. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.d.ts +0 -0
  593. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/explain-step.js +0 -0
  594. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.d.ts +0 -0
  595. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-id.js +0 -0
  596. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.d.ts +0 -0
  597. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation-info-by-pointer.js +0 -0
  598. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.d.ts +0 -0
  599. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/get-operation.js +0 -0
  600. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.d.ts +0 -0
  601. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/index.js +0 -0
  602. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.d.ts +0 -0
  603. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/index.js +0 -0
  604. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.d.ts +0 -0
  605. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-identifier.js +0 -0
  606. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.d.ts +0 -0
  607. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-info.js +0 -0
  608. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.d.ts +0 -0
  609. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/get-operation/types/operation-parameters.js +0 -0
  610. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.d.ts +0 -0
  611. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/index.js +0 -0
  612. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.d.ts +0 -0
  613. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-example.js +0 -0
  614. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.d.ts +0 -0
  615. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/json-schema.js +0 -0
  616. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-code-sample.d.ts +0 -0
  617. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.d.ts +0 -0
  618. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-example.js +0 -0
  619. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/openapi-response-sample.d.ts +0 -0
  620. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/replay-openapi.d.ts +0 -0
  621. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.d.ts +0 -0
  622. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/openapi/step-by-step-wrapper.js +0 -0
  623. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.d.ts +0 -0
  624. /package/dist/{server/plugins/markdown → client/app}/markdoc/custom-components/styled.elements.js +0 -0
  625. /package/dist/{server/plugins/markdown → client/app}/markdoc/hooks/use-store.d.ts +0 -0
  626. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.d.ts +0 -0
  627. /package/dist/{server/plugins/openapi-docs/template → client/templates/openapi-docs}/mock-server-config.js +0 -0
  628. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.d.ts +0 -0
  629. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/definition-path.js +0 -0
  630. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.d.ts +0 -0
  631. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/index.js +0 -0
  632. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.d.ts +0 -0
  633. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-example-ref.js +0 -0
  634. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.d.ts +0 -0
  635. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/json-schema-ref.js +0 -0
  636. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.d.ts +0 -0
  637. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/parsed-yaml.js +0 -0
  638. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.d.ts +0 -0
  639. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/raw-content.js +0 -0
  640. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.d.ts +0 -0
  641. /package/dist/{server/plugins/markdown/markdoc → markdoc}/attributes/sample-from-json-schema.js +0 -0
  642. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.d.ts +0 -0
  643. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/extract-rbac-from-condition-node.js +0 -0
  644. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.d.ts +0 -0
  645. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/get-node-attribute.js +0 -0
  646. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.d.ts +0 -0
  647. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-code-node.js +0 -0
  648. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.d.ts +0 -0
  649. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-conditional-node.js +0 -0
  650. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.d.ts +0 -0
  651. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-content-node.js +0 -0
  652. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.d.ts +0 -0
  653. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-example-node.js +0 -0
  654. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.d.ts +0 -0
  655. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-fence-node.js +0 -0
  656. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.d.ts +0 -0
  657. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-function.js +0 -0
  658. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.d.ts +0 -0
  659. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-list-node.js +0 -0
  660. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.d.ts +0 -0
  661. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-node.js +0 -0
  662. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.d.ts +0 -0
  663. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-string-node.js +0 -0
  664. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.d.ts +0 -0
  665. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-tag.js +0 -0
  666. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.d.ts +0 -0
  667. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-text-node.js +0 -0
  668. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.d.ts +0 -0
  669. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/guards/is-variable.js +0 -0
  670. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.d.ts +0 -0
  671. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/remove-markdoc-tags.js +0 -0
  672. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.d.ts +0 -0
  673. /package/dist/{server/plugins/markdown/markdoc → markdoc}/helpers/set-node-attribute-value.js +0 -0
  674. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.d.ts +0 -0
  675. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/escape-html.js +0 -0
  676. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/fence/index.d.ts +0 -0
  677. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.d.ts +0 -0
  678. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/gfm-list-item.js +0 -0
  679. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/heading.d.ts +0 -0
  680. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.d.ts +0 -0
  681. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/index.js +0 -0
  682. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.d.ts +0 -0
  683. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/table.js +0 -0
  684. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.d.ts +0 -0
  685. /package/dist/{server/plugins/markdown/markdoc → markdoc}/nodes/text.js +0 -0
  686. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/index.js +0 -0
  687. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-example.js +0 -0
  688. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/json-schema.js +0 -0
  689. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-code-sample.js +0 -0
  690. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-example.js +0 -0
  691. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/openapi-response-sample.js +0 -0
  692. /package/dist/{server/plugins/markdown/markdoc → markdoc}/tags/replay-openapi.js +0 -0
  693. /package/dist/server/{config → external-plugins}/resolve-module.d.ts +0 -0
  694. /package/dist/server/{config → external-plugins}/resolve-module.js +0 -0
  695. /package/dist/{server/utils → utils}/conflict-resolvers.d.ts +0 -0
  696. /package/dist/{server/utils → utils}/conflict-resolvers.js +0 -0
  697. /package/dist/{server/utils → utils}/slugger.js +0 -0
@@ -1 +1 @@
1
- import{writeFileSync as C}from"node:fs";import $ from"node:path";import{REDOCLY_TEAMS_RBAC as v}from"@redocly/config";import{combineUrls as I}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as w}from"../../constants/common.js";import{GRAPHQL_TEMPLATE_ID as H,GRAPHQL_SPEC_SLUG as N,PUBLIC_RBAC_SCOPE_ITEM as O}from"../../../constants/common.js";import{removeTrailingSlash as _}from"../../../utils/url/remove-trailing-slash.js";import{getTemplatePath as Q}from"./get-template-path.js";import{searchResolver as F}from"./search/search-resolver.js";import{graphqlDocLoader as M}from"./graphql-doc-loader.js";import{getAiDocumentsStore as A}from"./search/ai/get-ai-search-document.js";import{fromCurrentDir as U}from"../../utils/paths.js";import{ensureDir as k}from"../../utils/fs.js";import{telemetryTraceStep as x}from"../../../cli/telemetry/helpers/trace-step.js";const B="graphql-docs-",R="graphql-spec-download";async function nt(){return{id:"graphql",requiredEntitlements:["graphql"],loaders:{"graphql-doc":M},processContent:async(t,{fs:n,cache:l,isPathIgnored:u,withPathPrefix:p})=>{await x("build.plugin.graphql_docs",async()=>{t.createRequestHandler(R,U(import.meta.url,"./spec-download.api.js")),t.addApiRoute({slug:N+"/*",requestHandlerId:R,httpMethod:"all",[v]:O,getStaticData:async()=>({props:{}})});const m=t.createTemplate(H,Q("./template/GraphQLDocs.js"));for(const{relativePath:o}of n.scan(/(\.gql|\.graphql)$/)){if(await u(o))continue;const h=await l.load(o,"graphql-doc");if(!h.data)continue;j(h.data.content,t.outdir,o);const{menu:q,content:T,settings:i,metadata:y,store:c}=h.data,b=`${B}${o}`;await t.createSharedData(b,T);const d=[{key:"graphQlSettings",id:b}],E=q.getGroups(),G=q.getSidebarItems(),g={type:"graphql",title:E[0].name,...y},s=[{slugSuffix:"",fsPath:o,templateId:m,getStaticData:S(void 0,i,p),sharedData:d,getAiDocumentsStore:A({label:i.info?.title??"GraphQL Overview",groupName:"overview",metadata:g,actions:t,store:c,includeInLLMsTxt:!0})}];for(const r of E){const f=`${r.id}`;s.push({slugSuffix:f,fsPath:o,templateId:m,getStaticData:S(r,i,p),sharedData:d});for(const e of r.typeGroups){const a=`${e.id}`;s.push({slugSuffix:a,fsPath:o,templateId:m,getStaticData:S(e,i,p),sharedData:d,getAiDocumentsStore:A({label:e.name,groupName:e.name,metadata:g,actions:t,store:c,isTypeGroup:!0,items:new Set(e.items)})});for(const L of e.items){const P=`${e.id}/${L}`;s.push({slugSuffix:P,fsPath:o,templateId:m,getStaticData:S(e,i,p),sharedData:d,getAiDocumentsStore:A({label:L,groupName:e.name,metadata:g,actions:t,store:c})})}}}if(!s.length)return;const D=s[s.length-1];D.metadata=g,D.getSidebar=r=>{function f(e){return e.map(a=>({...a,slug:a.slug&&_(I(r.baseSlug,a.slug)),routeSlug:a.routeSlug&&_(I(r.baseSlug,a.routeSlug)),link:a.link&&_(I(r.baseSlug,a.link)),items:a.items&&f(a.items)}))}return f(G)},D.getSearchDocuments=F(t,c);for(const r of s)t.addRoute(r)}})}}}function S(t,n,l){return async function(u){return{props:{seo:{title:t?.name},settings:{...n,location:{section:t?.id},sidebar:{hide:!0},baseUrlPath:l(u.baseSlug)},disableAutoScroll:!0}}}}function j(t,n,l){const u=w.slice(1);C(k($.resolve(n,`${u}/${l}`)),t,"utf8")}export{nt as graphqlDocsPlugin,j as storeGqlSchema};
1
+ import{writeFileSync as v}from"node:fs";import $ from"node:path";import{REDOCLY_TEAMS_RBAC as w}from"@redocly/config";import{combineUrls as _}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as F}from"../../constants/common.js";import{GRAPHQL_TEMPLATE_ID as N,GRAPHQL_SPEC_SLUG as H,PUBLIC_RBAC_SCOPE_ITEM as M}from"../../../constants/common.js";import{removeTrailingSlash as I}from"../../../utils/url/remove-trailing-slash.js";import{getTemplatePath as Q}from"./get-template-path.js";import{searchResolver as U}from"./search/search-resolver.js";import{graphqlDocLoader as k}from"./graphql-doc-loader.js";import{getAiDocumentsStore as E}from"./search/ai/get-ai-search-document.js";import{fromCurrentDir as x}from"../../utils/paths.js";import{ensureDir as B}from"../../utils/fs.js";import{telemetryTraceStep as j}from"../../../cli/telemetry/helpers/trace-step.js";import{OPENAPI_CUSTOM_FIELDS_SERVER_PROPS_GETTER_ID as K}from"../../constants/plugins/openapi-docs.js";const V="graphql-docs-",L="graphql-spec-download";async function pt(){return{id:"graphql",requiredEntitlements:["graphql"],loaders:{"graphql-doc":k},processContent:async(t,{fs:l,cache:i,isPathIgnored:u,withPathPrefix:m,getConfig:T})=>{await j("build.plugin.graphql_docs",async()=>{t.createRequestHandler(L,x(import.meta.url,"./spec-download.api.js"));const b=!!(await T()).rules?.["custom-fields-schema"];t.addApiRoute({slug:H+"/*",requestHandlerId:L,httpMethod:"all",[w]:M,getStaticData:async()=>({props:{}})});const p=t.createTemplate(N,Q("./template/GraphQLDocs.js"));for(const{relativePath:s}of l.scan(/(\.gql|\.graphql)$/)){if(await u(s))continue;const D=await i.load(s,"graphql-doc");if(!D.data)continue;W(D.data.content,t.outdir,s);const{menu:R,content:G,settings:n,metadata:C,store:c}=D.data,A=`${V}${s}`;await t.createSharedData(A,G);const d=[{key:"graphQlSettings",id:A}],q=R.getGroups(),y=R.getSidebarItems(),g={type:"graphql",title:n.metadata?.title||q[0].name,...C},e=[{slugSuffix:"",fsPath:s,templateId:p,getStaticData:h(void 0,n,m),sharedData:d,getAiDocumentsStore:E({label:n.info?.title??"GraphQL Overview",groupName:"overview",metadata:g,actions:t,store:c,includeInLLMsTxt:!0}),serverPropsGetterIds:b?[K]:[]}];for(const o of q){const S=`${o.id}`;e.push({slugSuffix:S,fsPath:s,templateId:p,getStaticData:h(o,n,m),sharedData:d});for(const a of o.typeGroups){const r=`${a.id}`;e.push({slugSuffix:r,fsPath:s,templateId:p,getStaticData:h(a,n,m),sharedData:d,getAiDocumentsStore:E({label:a.name,groupName:a.name,metadata:g,actions:t,store:c,isTypeGroup:!0,items:new Set(a.items)})});for(const P of a.items){const O=`${a.id}/${P}`;e.push({slugSuffix:O,fsPath:s,templateId:p,getStaticData:h(a,n,m),sharedData:d,getAiDocumentsStore:E({label:P,groupName:a.name,metadata:g,actions:t,store:c})})}}}if(!e.length)return;const f=e[0];e[0]=e[e.length-1],e[e.length-1]=f,f.metadata=g,f.getSidebar=o=>{function S(a){return a.map(r=>({...r,slug:r.slug&&I(_(o.baseSlug,r.slug)),routeSlug:r.routeSlug&&I(_(o.baseSlug,r.routeSlug)),link:r.link&&I(_(o.baseSlug,r.link)),items:r.items&&S(r.items)}))}return S(y)},f.getSearchDocuments=U(t,c);for(const o of e)t.addRoute(o)}})}}}function h(t,l,i){return async function(u){return{props:{seo:{title:t?.name},settings:{...l,location:{section:t?.id},sidebar:{hide:!0},baseUrlPath:i(u.baseSlug)},disableAutoScroll:!0}}}}function W(t,l,i){const u=F.slice(1);v(B($.resolve(l,`${u}/${i}`)),t,"utf8")}export{pt as graphqlDocsPlugin,W as storeGqlSchema};
@@ -1 +1 @@
1
- import{REDOCLY_ROUTE_RBAC as m,REDOCLY_TEAMS_RBAC as l}from"@redocly/config";import{removeMarkdownLinks as h}from"../../openapi-docs/utils.js";import{extractDocumentSearchFacets as b,setDocumentSearchFacets as R}from"./search-facets.js";function k(c,e){return async(t,r)=>{const s=t.getSidebar?.(t)||[];return f(c,r,t,s,e)}}function f(c,e,t,r,s,p){const a=[];for(const n of r)if(n.type==="group")a.push(...f(c,e,t,n.items??[],s,n.label));else{const i=S(n,s,p||"");if(i){const o=n.link||n.slug,d={slug:t.slug,fsPath:t.fsPath},g=t.metadata||{},u=b(c,g);R(c,u),a.push({id:o,url:o,text:h(i.description||""),title:i.name,facets:u,[l]:e[l],[m]:e[m]||d})}}return a}function S(c,e,t){const r=t.toLowerCase(),{label:s}=c;switch(r){case"queries":return e.getQueryField(s);case"mutations":return e.getMutationField(s);case"subscriptions":return e.getSubscriptionField(s);case"directives":return e.getDirective(s);case"objects":case"interfaces":case"unions":case"enums":case"inputs":case"scalars":return e.getType(s)}}export{k as searchResolver};
1
+ import{REDOCLY_ROUTE_RBAC as m,REDOCLY_TEAMS_RBAC as l}from"@redocly/config";import{removeMarkdownLinks as b}from"../../openapi-docs/utils.js";import{extractDocumentSearchFacets as R,setDocumentSearchFacets as S}from"./search-facets.js";function v(c,e){return async(t,r)=>{const s=t.getSidebar?.(t)||[];return f(c,r,t,s,e)}}function f(c,e,t,r,s,p,d){const a=[];for(const n of r)if(n.type==="group")a.push(...f(c,e,t,n.items??[],s,p,n.label));else{const i=F(n,s,d||"");if(i){const o=n.link||n.slug,g={slug:t.slug,fsPath:t.fsPath},h=t.metadata||{},u=R(c,h);S(c,u),a.push({id:o,url:o,text:b(i.description||""),title:i.name,facets:u,[l]:e[l],[m]:e[m]||g})}}return a}function F(c,e,t){const r=t.toLowerCase(),{label:s}=c;switch(r){case"queries":return e.getQueryField(s);case"mutations":return e.getMutationField(s);case"subscriptions":return e.getSubscriptionField(s);case"directives":return e.getDirective(s);case"objects":case"interfaces":case"unions":case"enums":case"inputs":case"scalars":return e.getType(s)}}export{v as searchResolver};
@@ -1,4 +1,8 @@
1
- import t from"react";import c from"styled-components";import{RedoclyGraphQLDocs as h}from"@redocly/graphql-docs";import{buildSchema as l}from"graphql";import{LayoutVariant as g}from"@redocly/theme/components/SidebarActions/SidebarActions";import{useThemeConfig as p}from"@redocly/theme/core/hooks";import{usePageSharedData as f}from"../../../../client/providers/page-data/hooks.js";import{useCodeHighlight as u}from"../../../../client/app/hooks/codeHighlight/useCodeHighlight.js";function d({pageProps:o}){const e=f("graphQlSettings"),{settings:r}=o,{graphql:a}=p(),{highlight:i}=u(),s=t.useMemo(()=>({graphql:l(e)}),[e]),m=t.useMemo(()=>{const n={...a,...r};return{layout:o.apiOptions?.layout??g.THREE_PANEL,...n,markdown:{...n.markdown,highlight:i},navigation:{contentPrefix:""}}},[a,r,i,o.apiOptions?.layout]);return t.createElement(S,null,t.createElement(h,{schema:s,settings:m}))}const S=c.div`
1
+ import a from"react";import m from"styled-components";import{RedoclyGraphQLDocs as h}from"@redocly/graphql-docs";import{buildSchema as p}from"graphql";import{LayoutVariant as l}from"@redocly/theme/components/SidebarActions/SidebarActions";import{useThemeConfig as g}from"@redocly/theme/core/hooks";import{ThreePanelLayout as f}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as u}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{usePageSharedData as d}from"../../../../client/providers/page-data/hooks.js";import{useCodeHighlight as E}from"../../../../client/app/hooks/codeHighlight/useCodeHighlight.js";function y({pageProps:t}){const o=d("graphQlSettings"),{settings:e}=t,{graphql:r}=g(),{highlight:n}=E(),s=a.useMemo(()=>({graphql:p(o)}),[o]),c=a.useMemo(()=>{const i={...r,...e};return{layout:t.apiOptions?.layout??l.THREE_PANEL,...i,markdown:{...i.markdown,highlight:n},navigation:{contentPrefix:""}}},[r,e,n,t.apiOptions?.layout]);return a.createElement(v,null,a.createElement(S,{layout:t.apiOptions?.layout},a.createElement(u,{metadata:t.metadata})),a.createElement(h,{schema:s,settings:c}))}const S=m(f)`
2
+ && {
3
+ padding-right: ${({layout:t})=>t===l.THREE_PANEL?"calc(var(--panel-gap-horizontal) * 2)":"var(--panel-gap-horizontal)"};
4
+ }
5
+ `,v=m.div`
2
6
  --navigation-anchor-offset: var(--navbar-height);
3
7
  --sidebar-width: 0px;
4
- `;export{d as default};
8
+ `;export{y as default};
@@ -1,2 +1,2 @@
1
- import _ from"@redocly/portal-plugin-mock-server";import B from"path";import{REDOCLY_ROUTE_RBAC as x}from"@redocly/config";import{combineUrls as v,withPathPrefix as O}from"@redocly/theme/core/utils";import{VERSION_SEPARATOR as N}from"../constants/common.js";import{removeTrailingSlash as D}from"../../utils/url/remove-trailing-slash.js";import{removeLeadingSlash as L}from"../../utils/url/remove-leading-slash.js";import{isTruthy as V}from"../../utils/guards/is-truthy.js";import{normalizeRouteSlug as F}from"../../utils/path/normalize-route-slug.js";import{slash as j}from"../../utils/path/slash.js";import{parsePathVersions as k}from"../../utils/path/parse-path-versions.js";import{reporter as E}from"../tools/notifiers/reporter.js";import{logger as P}from"../tools/notifiers/logger.js";import{isDevelopMode as $}from"../utils/envs/is-develop-mode.js";import{shaDirPathShort as z}from"../utils/crypto/sha-dir-path-short.js";import{customPagesPlugin as M}from"../../server/plugins/pages/index.js";import{openAPIDocsPlugin as q}from"../../server/plugins/openapi-docs/index.js";import{asyncAPIDocsPlugin as I}from"../../server/plugins/asyncapi-docs/index.js";import{configParserPlugin as U}from"./config-parser/index.js";import{markdownPlugin as G}from"./markdown/index.js";import{generateBrowserPluginsModule as W,generateClientRoutes as K,generateTemplatesModule as H}from"../esbuild/generate.js";import{graphqlDocsPlugin as Y}from"./graphql-docs/index.js";import{searchPlugin as J}from"./search/index.js";import{defaultThemePlugin as Q}from"./default-theme/index.js";import{apiKeyMgmtPlugin as X}from"./dev-onboarding/index.js";import{apiFunctionsPlugin as Z}from"./api-functions/index.js";import{scorecardClassicPlugin as ee}from"./scorecard-classic/index.js";import{lintPlugin as te}from"./lint/index.js";import{resolvePlugins as oe}from"../config/external-plugins.js";import{sidebarsPlugin as ie}from"./sidebars/index.js";import{l10nPlugin as ne}from"./l10n/index.js";import{analyticsPlugins as re}from"./analytics/index.js";import{sitemapPlugin as se}from"./sitemap/index.js";import{entitlementsPlugin as ae}from"./entitlements/index.js";import{getBilledPagesCount as le,slug as ce}from"../utils/index.js";import{telemetry as ue}from"../../cli/telemetry/index.js";import{telemetryTraceStep as b}from"../../cli/telemetry/helpers/trace-step.js";import{EntitlementsProvider as A}from"../entitlements/entitlements-provider.js";import{ssoPlugin as fe}from"./sso/index.js";import{Cache as me}from"../fs/cache.js";import{ContentFs as de}from"../fs/content-fs.js";import{findProductBySlug as pe}from"../utils/product.js";import{parseBaseName as ge}from"./utils.js";import{isRouteReserved as Pe}from"./get-reserved-routes.js";import{catalogClassicPlugin as he}from"./catalog-classic/index.js";import{arazzoDocsPlugin as ye}from"./arazzo-docs/index.js";const we=[U,fe,Q,ne,G,q,I,ye,ee,te,Z,M,Y,X,he,{importPath:"./catalog-entities/plugin.js",loadCondition:()=>process.env.NEW_CATALOG_ENABLED==="true"},{importPath:"./scorecards/plugin.js",loadCondition:()=>process.env.NEW_SCORECARDS_ENABLED==="true"},{importPath:"./mcp/index.js",loadCondition:()=>A.instance().canAccessFeature("mcp")},ie,se,ae,J,_,...re];async function gt(o,t=we){return await b("build.plugins_init",async()=>{const n=[],C=A.instance(),h={};for(const f of t){let a;if("loadCondition"in f){if(!f.loadCondition())continue;const e=await import(f.importPath);if(!e.default||typeof e.default!="function"){await E.panicOnBuild(`Dynamic plugin ${f.importPath} does not export a default export or it is not a function`);continue}a=e.default}else a=f;const d=await a(o);for(const[e,i]of Object.entries(d.loaders||{}))h[e]&&await E.panicOnBuild(`Duplicate loader with name ${e}`),h[e]=i;(!d.requiredEntitlements||d.requiredEntitlements?.every(e=>C.canAccessFeature(e)))&&n.push(d)}const s=new de(o.contentDir);await s.ready;const u=new me(s);return u.setLoaders(h),P.verbose("All plugins instantiated"),{pluginInstances:n,lifecycleContext:ve(s,u)}})}function T(o){P.verbose("Generating templates"),b("build.write_client_entries",()=>{H(o),W(o),K(o)})}async function Ce(o){const t=o.getAllRoutes();le(t)||await E.panicOnBuild("No routes created by plugins. Please check your project configuration.")}async function Pt(o,t,n,C={}){const h=A.instance();try{await b("build.plugins_run",async()=>{t.startPluginsRun();let s=[];await b("build.plugins_process_content",async a=>{for(const e of o){const i=P.startTiming();await e.processContent?.(t,n),P.verboseTime(i,`processContent for ${e.id}`)}s=(await oe(t.contentDir,t.config.plugins)).map(e=>e.lifecyclePlugin).filter(e=>V(e)&&(!e.requiredEntitlements||e.requiredEntitlements?.every(i=>h.canAccessFeature(i)))),n.cache.setLoaders(Object.fromEntries(s.flatMap(e=>Object.entries(e.loaders||{}))));for(const e of s){const i=P.startTiming();await e.processContent?.(t,n),P.verboseTime(i,`processContent for ${e.id}`)}a?.setAttribute("externalPluginsProcessed",s.length.toString())});const u=await Re(t,n),f=[...o,...s];T(t),$()?await t.userCodeReady:t.buildRevision++,await b("build.plugins_after_routes_created",async()=>{for(const a of f){const d=P.startTiming();await a.afterRoutesCreated?.(t,u),P.verboseTime(d,`afterRoutesCreated for ${a.id}`)}}),await t.reportUnsetEnvVars(),await Ce(t),T(t)})}catch(s){const u="Unhandled error in plugin. "+s.message+`
2
- `+s.stack;ue.sendCliErrorCaughtMessage({message:u}),C.failFast?await E.panic(u):await E.panicOnBuild(u)}finally{t.finishPluginsRun()}}async function Re(o,t){const{cache:n,fs:C}=t,h=await t.getConfig(),s=Object.values(h.products||{}),u=(await n.load("versions-config","versions-config")).data,f=(await n.load("content-slugs","content-slugs")).data;for(const{duplicateInAllLocales:e,slugSuffix:i,sharedData:y=[],redirectFrom:w=[],...l}of o.newRoutes){const c=F(l.slug?l.slug:a(l.fsPath)),p=D(i?v(c,i):c),r={...l,[x]:{slug:p,fsPath:l.fsPath},slug:p,baseSlug:c,versions:d(l.fsPath,i),product:pe(s,p,a)};Pe(p,h)&&await E.panicOnBuildContentError(`Route "${p}" is reserved and cannot be used. Please choose a different slug for "${l.fsPath}".`),o.routesByFsPath.set(r.fsPath,r.slug),o.routesBySlug.set(r.slug,r);for(const{key:g,id:m}of y)o.addRouteSharedData(r.slug,g,m);for(const g of w)o.addRedirect(g.from,{type:g.type,to:r.slug});if(e)for(const g of C.localeFolders){const m={...r,slug:"/"+g.toLowerCase()+r.slug};o.routesByFsPath.set(m.fsPath,m.slug),o.routesBySlug.set(m.slug,m);for(const{key:R,id:S}of y)o.addRouteSharedData(m.slug,R,S);for(const R of w){const S=v(C.localizationFolder,g,R.from);o.addRedirect(S,{type:R.type,to:m.slug})}}}return o.newRoutes=[],{...t,slugify:a};function a(e){const i=j(e).replace(new RegExp("^(@i18n|@l10n)\\/"),""),y=f.fileSlugs.get(i)||f.dirSlugs.get(D(i));if(y)return y;const{baseName:w,isIndexFile:l}=ge(e);let c=B.dirname(e.replace(new RegExp("^(@i18n|@l10n)\\/"),""));return c=c==="."?"/":c,v("/",ce(l?c:v(c,w)),"/")}function d(e,i=""){const y=k(e);if(!y?.versionName)return;const{versionFolderPath:w,filePathInVersion:l,versionName:c}=y,p=u.get(w);if(p)return p.versions.map(r=>{const g=p.defaultVersion===r.version,m=L(v(w,N+r.version,l)),R=a(m);return{version:r.version,label:r.name||r.version,link:F(v(R,i)),default:g,active:c===r.version,folderId:z(`${w}`)}})}}function ve(o,t){return{fs:o,cache:t,getConfig:async(n=".")=>(await t.load(n,"nearest-redocly-config",o.localeFolders)).data,isPathIgnored:async n=>(await t.load(n,"is-ignored")).data,withPathPrefix:O,logger:P}}export{we as INTERNAL_PLUGINS,ve as createLifecycleContext,gt as initPlugins,Pt as runPlugins,T as writeClientEntries};
1
+ import x from"@redocly/portal-plugin-mock-server";import O from"path";import{REDOCLY_ROUTE_RBAC as N}from"@redocly/config";import{combineUrls as E,withPathPrefix as L}from"@redocly/theme/core/utils";import{VERSION_SEPARATOR as V}from"../constants/common.js";import{removeTrailingSlash as F}from"../../utils/url/remove-trailing-slash.js";import{removeLeadingSlash as j}from"../../utils/url/remove-leading-slash.js";import{isTruthy as k}from"../../utils/guards/is-truthy.js";import{normalizeRouteSlug as T}from"../../utils/path/normalize-route-slug.js";import{slash as $}from"../../utils/path/slash.js";import{parsePathVersions as M}from"../../utils/path/parse-path-versions.js";import{reporter as b}from"../tools/notifiers/reporter.js";import{logger as P}from"../tools/notifiers/logger.js";import{envConfig as A}from"../config/env-config.js";import{shaDirPathShort as z}from"../utils/crypto/sha-dir-path-short.js";import{customPagesPlugin as q}from"../../server/plugins/pages/index.js";import{openAPIDocsPlugin as I}from"../../server/plugins/openapi-docs/index.js";import{asyncAPIDocsPlugin as U}from"../../server/plugins/asyncapi-docs/index.js";import{configParserPlugin as G}from"./config-parser/index.js";import{markdownPlugin as W}from"./markdown/index.js";import{generateBrowserPluginsModule as K,generateClientRoutes as H,generateTemplatesModule as Y}from"../esbuild/generate.js";import{graphqlDocsPlugin as J}from"./graphql-docs/index.js";import{searchPlugin as Q}from"./search/index.js";import{defaultThemePlugin as X}from"./default-theme/index.js";import{apiKeyMgmtPlugin as Z}from"./dev-onboarding/index.js";import{apiFunctionsPlugin as ee}from"./api-functions/index.js";import{scorecardClassicPlugin as te}from"./scorecard-classic/index.js";import{lintPlugin as oe}from"./lint/index.js";import{resolveExternalPlugins as ie}from"../external-plugins/resolve-external-plugins.js";import{sidebarsPlugin as ne}from"./sidebars/index.js";import{l10nPlugin as re}from"./l10n/index.js";import{analyticsPlugins as se}from"./analytics/index.js";import{sitemapPlugin as ae}from"./sitemap/index.js";import{entitlementsPlugin as le}from"./entitlements/index.js";import{getBilledPagesCount as ce,slug as ue}from"../utils/index.js";import{telemetry as fe}from"../../cli/telemetry/index.js";import{telemetryTraceStep as D}from"../../cli/telemetry/helpers/trace-step.js";import{EntitlementsProvider as B}from"../entitlements/entitlements-provider.js";import{ssoPlugin as me}from"./sso/index.js";import{Cache as de}from"../fs/cache.js";import{ContentFs as pe}from"../fs/content-fs.js";import{findProductBySlug as ge}from"../utils/product.js";import{parseBaseName as Pe}from"./utils.js";import{isRouteReserved as he}from"./get-reserved-routes.js";import{catalogClassicPlugin as ye}from"./catalog-classic/index.js";import{arazzoDocsPlugin as we}from"./arazzo-docs/index.js";const Ce=[G,me,X,re,W,I,U,we,te,oe,ee,q,J,Z,ye,{importPath:"./catalog-entities/plugin.js",loadCondition:()=>A.NEW_CATALOG_ENABLED==="true"},{importPath:"./scorecards/plugin.js",loadCondition:()=>A.NEW_SCORECARDS_ENABLED==="true"},{importPath:"./mcp/index.js",loadCondition:()=>B.instance().canAccessFeature("mcp")},ne,ae,le,Q,x,...se];async function Pt(t,o=Ce){return await D("build.plugins_init",async()=>{const r=[],v=B.instance(),h={};for(const d of o){let a;if("loadCondition"in d){if(!d.loadCondition())continue;const e=await import(d.importPath);if(!e.default||typeof e.default!="function"){await b.panicOnBuild(`Dynamic plugin ${d.importPath} does not export a default export or it is not a function`);continue}a=e.default}else a=d;const p=await a(t);for(const[e,i]of Object.entries(p.loaders||{}))h[e]&&await b.panicOnBuild(`Duplicate loader with name ${e}`),h[e]=i;(!p.requiredEntitlements||p.requiredEntitlements?.every(e=>v.canAccessFeature(e)))&&r.push(p)}const s=new pe(t.contentDir);await s.ready;const m=new de(s);return m.setLoaders(h),P.verbose("All plugins instantiated"),{pluginInstances:r,lifecycleContext:Ee(s,m)}})}function _(t){P.verbose("Generating templates"),D("build.write_client_entries",()=>{Y(t),K(t),H(t)})}async function Re(t){const o=t.getAllRoutes();ce(o)||await b.panicOnBuild("No routes created by plugins. Please check your project configuration.")}async function ht(t,o,r,v={}){const h=B.instance();try{await D("build.plugins_run",async()=>{o.startPluginsRun();let s=[];await D("build.plugins_process_content",async a=>{for(const e of t){const i=P.startTiming();await e.processContent?.(o,r),P.verboseTime(i,`processContent for ${e.id}`)}s=(await ie(o.contentDir,o.config.plugins)).map(e=>e.lifecyclePlugin).filter(e=>k(e)&&(!e.requiredEntitlements||e.requiredEntitlements?.every(i=>h.canAccessFeature(i)))),r.cache.setLoaders(Object.fromEntries(s.flatMap(e=>Object.entries(e.loaders||{}))));for(const e of s){const i=P.startTiming();await e.processContent?.(o,r),P.verboseTime(i,`processContent for ${e.id}`)}a?.setAttribute("externalPluginsProcessed",s.length.toString())});const m=await ve(o,r),d=[...t,...s];_(o),A.isDevelopMode?await o.userCodeReady:o.buildRevision++,await D("build.plugins_after_routes_created",async()=>{for(const a of d){const p=P.startTiming();await a.afterRoutesCreated?.(o,m),P.verboseTime(p,`afterRoutesCreated for ${a.id}`)}}),await o.reportUnsetEnvVars(),await Re(o),_(o)})}catch(s){const m="Unhandled error in plugin. "+s.message+`
2
+ `+s.stack;fe.sendCliErrorCaughtMessage({message:m}),v.failFast?await b.panic(m):await b.panicOnBuild(m)}finally{o.finishPluginsRun()}}async function ve(t,o){const{cache:r,fs:v}=o,h=await o.getConfig(),s=Object.values(h.products||{}),m=(await r.load("versions-config","versions-config")).data,d=(await r.load("content-slugs","content-slugs")).data;t.routesByDir=new Map;for(const{duplicateInAllLocales:e,slugSuffix:i,sharedData:y=[],redirectFrom:w=[],...c}of t.newRoutes){const u=T(c.slug?c.slug:a(c.fsPath)),g=F(i?E(u,i):u),n={...c,[N]:{slug:g,fsPath:c.fsPath},slug:g,baseSlug:u,versions:p(c.fsPath,i),product:ge(s,g,a)};he(g,h)&&await b.panicOnBuildContentError(`Route "${g}" is reserved and cannot be used. Please choose a different slug for "${c.fsPath}".`),t.routesByFsPath.set(n.fsPath,n.slug),t.routesBySlug.set(n.slug,n);let C="";for(const f of c.fsPath.split("/")){const l=t.routesByDir.get(C),R=l||[];R.push(n),l||t.routesByDir.set(C,R),C=(C&&C+"/"||"")+f}for(const{key:f,id:l}of y)t.addRouteSharedData(n.slug,f,l);for(const f of w)t.addRedirect(f.from,{type:f.type,to:n.slug});if(e)for(const f of v.localeFolders){const l={...n,slug:"/"+f.toLowerCase()+n.slug};t.routesByFsPath.set(l.fsPath,l.slug),t.routesBySlug.set(l.slug,l);for(const{key:R,id:S}of y)t.addRouteSharedData(l.slug,R,S);for(const R of w){const S=E(v.localizationFolder,f,R.from);t.addRedirect(S,{type:R.type,to:l.slug})}}}return t.newRoutes=[],{...o,slugify:a};function a(e){const i=$(e).replace(new RegExp("^(@i18n|@l10n)\\/"),""),y=d.fileSlugs.get(i)||d.dirSlugs.get(F(i));if(y)return y;const{baseName:w,isIndexFile:c}=Pe(e);let u=O.dirname(e.replace(new RegExp("^(@i18n|@l10n)\\/"),""));return u=u==="."?"/":u,E("/",ue(c?u:E(u,w)),"/")}function p(e,i=""){const y=M(e);if(!y?.versionName)return;const{versionFolderPath:w,filePathInVersion:c,versionName:u}=y,g=m.get(w);if(g)return g.versions.map(n=>{const C=g.defaultVersion===n.version,f=j(E(w,V+n.version,c)),l=a(f);return{version:n.version,label:n.name||n.version,link:T(E(l,i)),default:C,active:u===n.version,folderId:z(`${w}`)}})}}function Ee(t,o){return{fs:t,cache:o,getConfig:async(r=".")=>(await o.load(r,"nearest-redocly-config",t.localeFolders)).data,isPathIgnored:async r=>(await o.load(r,"is-ignored")).data,withPathPrefix:L,logger:P}}export{Ce as INTERNAL_PLUGINS,Ee as createLifecycleContext,Pt as initPlugins,ht as runPlugins,_ as writeClientEntries};
@@ -1 +1 @@
1
- import c from"node:path";import v from"is-glob";import m from"picomatch";import{parseFileChunks as h}from"./file-chunk-parser.js";import{getNodeAttribute as b}from"../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as d}from"../../markdoc/helpers/set-node-attribute-value.js";import{readFileContent as g}from"../../read-file-content.js";import{resolvePathInMarkdown as x}from"../../resolve-path-in-markdown.js";import{removeL10nPrefix as P}from"../../../../fs/utils/remove-l10n-prefix.js";import{mapFileExtensionToLanguage as k}from"./map-file-extension-to-language.js";async function V(a,f,p,u){const{actions:{contentDir:F},context:{fs:i}}=u,n=b(a,f);if(!Array.isArray(n))d(a,"resolvedFilesets",[]);else{const w=await Promise.all(n.map(async e=>{const s=Array.isArray(e.files)?e.files:[],o=Array.isArray(e.downloadAssociatedFiles)?e.downloadAssociatedFiles:[],r=await Promise.all(s.map(l)),t=await Promise.all(o.map(l));return{...e,files:r.flat(),downloadAssociatedFiles:t.flat()}}));d(a,"resolvedFilesets",w.filter(e=>!!e));async function l(e){const s=x(e,P(p),F),o=await A(s);return(await Promise.all(o.map(y))).filter(t=>t!==null)}async function A(e){if(!v(e))return[e];const{base:s}=m.scan(e);return i.scan(new RegExp(s)).filter(({isVirtual:t})=>!t).map(({realRelativePath:t})=>t).filter(t=>m(e)(t))}async function y(e){const s=await g(e,i);if(s==null)return null;const{root:o,metadata:r}=await h(s,e);return{path:e,content:o,metadata:r,basename:c.basename(e),language:k(c.extname(e))}}}}export{V as resolveCodeWalkthroughFilesets};
1
+ import c from"node:path";import v from"is-glob";import m from"picomatch";import{getNodeAttribute as h}from"../../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as d}from"../../../../../markdoc/helpers/set-node-attribute-value.js";import{parseFileChunks as b}from"./file-chunk-parser.js";import{readFileContent as g}from"../../read-file-content.js";import{resolvePathInMarkdown as x}from"../../resolve-path-in-markdown.js";import{removeL10nPrefix as P}from"../../../../fs/utils/remove-l10n-prefix.js";import{mapFileExtensionToLanguage as k}from"./map-file-extension-to-language.js";async function V(a,f,p,u){const{actions:{contentDir:F},context:{fs:i}}=u,n=h(a,f);if(!Array.isArray(n))d(a,"resolvedFilesets",[]);else{const w=await Promise.all(n.map(async e=>{const s=Array.isArray(e.files)?e.files:[],o=Array.isArray(e.downloadAssociatedFiles)?e.downloadAssociatedFiles:[],r=await Promise.all(s.map(l)),t=await Promise.all(o.map(l));return{...e,files:r.flat(),downloadAssociatedFiles:t.flat()}}));d(a,"resolvedFilesets",w.filter(e=>!!e));async function l(e){const s=x(e,P(p),F),o=await A(s);return(await Promise.all(o.map(y))).filter(t=>t!==null)}async function A(e){if(!v(e))return[e];const{base:s}=m.scan(e);return i.scan(new RegExp(s)).filter(({isVirtual:t})=>!t).map(({realRelativePath:t})=>t).filter(t=>m(e)(t))}async function y(e){const s=await g(e,i);if(s==null)return null;const{root:o,metadata:r}=await b(s,e);return{path:e,content:o,metadata:r,basename:c.basename(e),language:k(c.extname(e))}}}}export{V as resolveCodeWalkthroughFilesets};
@@ -1,4 +1,4 @@
1
- import c from"node:path";import{slash as L}from"../../../../utils/path/slash.js";import{reporter as F}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as n}from"../markdoc/helpers/get-node-attribute.js";import{MdResolveError as h}from"./md-resolve-error.js";async function V(i,w,b,{actions:{contentDir:m},context:u}){const o=n(i,w);if(!o)return;const r=o.startsWith("/")?o.slice(1):L(c.relative(m,c.resolve(m,c.dirname(b),o)));if(!u.fs.exists(r)){await F.panicOnBuildContentError(`Code snippet file ${r} does not exist`);return}let e=await u.fs.read(r);const d=n(i,"after"),p=n(i,"before"),y=n(i,"from"),C=n(i,"to"),v=n(i,"prefix")||"",s=y??d,f=C??p,g=d!==null,x=p!==null,E=(typeof s=="number"?Math.max(s||0,1):1)+(g?1:0);let a=(typeof f=="number"?f:1/0)-(x?1:0);if(typeof s=="string"){let t=e.indexOf(s);if(t===-1)throw new h(`Cannot find start text "${s}" in snippet file`,{rawLink:r});for(;e[t]!==`
1
+ import c from"node:path";import{slash as L}from"../../../../utils/path/slash.js";import{reporter as F}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as n}from"../../../../markdoc/helpers/get-node-attribute.js";import{MdResolveError as h}from"./md-resolve-error.js";async function V(i,w,b,{actions:{contentDir:m},context:u}){const o=n(i,w);if(!o)return;const r=o.startsWith("/")?o.slice(1):L(c.relative(m,c.resolve(m,c.dirname(b),o)));if(!u.fs.exists(r)){await F.panicOnBuildContentError(`Code snippet file ${r} does not exist`);return}let e=await u.fs.read(r);const d=n(i,"after"),p=n(i,"before"),y=n(i,"from"),C=n(i,"to"),v=n(i,"prefix")||"",s=y??d,f=C??p,g=d!==null,x=p!==null,E=(typeof s=="number"?Math.max(s||0,1):1)+(g?1:0);let a=(typeof f=="number"?f:1/0)-(x?1:0);if(typeof s=="string"){let t=e.indexOf(s);if(t===-1)throw new h(`Cannot find start text "${s}" in snippet file`,{rawLink:r});for(;e[t]!==`
2
2
  `&&t>0;)t--;typeof a=="number"&&(a-=e.slice(0,t-1).split(`
3
3
  `).length),e=e.slice(t+1)}if(typeof f=="string"){let t=e.indexOf(f);if(t===-1)throw new h(`Cannot find end text "${p}" in snippet file`,{rawLink:r});e[t-1]===`
4
4
  `&&t--,e=e.slice(0,t)}const l=e.split(`
@@ -1 +1 @@
1
- import{withPathPrefix as m,withoutPathPrefix as p}from"@redocly/theme/core/utils";import{isLocalLink as u}from"../../../../utils/path/is-local-link.js";import{getNodeAttribute as s}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as l}from"../markdoc/helpers/set-node-attribute-value.js";import{resolveLink as a}from"./resolve-link.js";async function H(r,t="href",n,c){const i=s(r,"attrs")||{},e=i[t];if(!e)return;const h=p(e);l(r,t,h),await a(r,t,n,c);const o=s(r,t);if(delete r.attributes[t],!o)return;let f=o;!o.startsWith("#")&&u(o)&&(f=m(o)),l(r,"attrs",{...i,[t]:f})}export{H as resolveHtmlHref};
1
+ import{withPathPrefix as m,withoutPathPrefix as p}from"@redocly/theme/core/utils";import{isLocalLink as u}from"../../../../utils/path/is-local-link.js";import{getNodeAttribute as s}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as l}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{resolveLink as a}from"./resolve-link.js";async function H(r,t="href",n,c){const i=s(r,"attrs")||{},e=i[t];if(!e)return;const h=p(e);l(r,t,h),await a(r,t,n,c);const o=s(r,t);if(delete r.attributes[t],!o)return;let f=o;!o.startsWith("#")&&u(o)&&(f=m(o)),l(r,"attrs",{...i,[t]:f})}export{H as resolveHtmlHref};
@@ -1 +1 @@
1
- import S from"node:path";import{normalizeRouteSlug as v}from"../../../../utils/path/normalize-route-slug.js";import{reporter as a}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as m}from"../markdoc/helpers/get-node-attribute.js";import{FileNotFoundError as u,resolveAssetPath as w,resolveSrcSet as h}from"../../../utils/index.js";import{MdResolveError as $}from"./md-resolve-error.js";import{getLinkOriginalAttrName as A}from"./utils.js";async function B(e,o,s,{actions:{contentDir:n,outdir:l,getRouteBySlug:p},context:c}){const i=m(e,"attrs")?.[o],g=m(e,"name");if(!i)return;const f=A(o),t=e[f]||i;if(!(g==="iframe"&&p(v(t)))){if(e[f]=t,o==="src"){if(!S.extname(t))return;try{const r=await w(t,c.fs,{fromFileRelativePath:s,contentDir:n,outdir:l});e.attributes.attrs[o]=r}catch(r){if(r instanceof u)throw new $(`File ${t} does not exist`,{rawLink:t,link:t});await a.panicOnBuild(`Cannot resolve %rp: ${r.message}`,t)}}if(o==="srcSet")try{const r=await h(i,c.fs,{fromFileRelativePath:s,contentDir:n,outdir:l});e.attributes.attrs[o]=r}catch(r){r instanceof u?await a.panicOnBuildContentError(`Cannot resolve 'srcSet' attribute: ${i}: ${r.message}`):await a.panicOnBuild(`Cannot resolve 'srcSet' attribute: ${i}: ${r.message}`)}}}export{B as resolveHtmlSourceAttribute};
1
+ import S from"node:path";import{normalizeRouteSlug as v}from"../../../../utils/path/normalize-route-slug.js";import{reporter as a}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as m}from"../../../../markdoc/helpers/get-node-attribute.js";import{FileNotFoundError as u,resolveAssetPath as w,resolveSrcSet as h}from"../../../utils/index.js";import{MdResolveError as $}from"./md-resolve-error.js";import{getLinkOriginalAttrName as A}from"./utils.js";async function B(e,o,s,{actions:{contentDir:n,outdir:l,getRouteBySlug:p},context:c}){const i=m(e,"attrs")?.[o],g=m(e,"name");if(!i)return;const f=A(o),t=e[f]||i;if(!(g==="iframe"&&p(v(t)))){if(e[f]=t,o==="src"){if(!S.extname(t))return;try{const r=await w(t,c.fs,{fromFileRelativePath:s,contentDir:n,outdir:l});e.attributes.attrs[o]=r}catch(r){if(r instanceof u)throw new $(`File ${t} does not exist`,{rawLink:t,link:t});await a.panicOnBuild(`Cannot resolve %rp: ${r.message}`,t)}}if(o==="srcSet")try{const r=await h(i,c.fs,{fromFileRelativePath:s,contentDir:n,outdir:l});e.attributes.attrs[o]=r}catch(r){r instanceof u?await a.panicOnBuildContentError(`Cannot resolve 'srcSet' attribute: ${i}: ${r.message}`):await a.panicOnBuild(`Cannot resolve 'srcSet' attribute: ${i}: ${r.message}`)}}}export{B as resolveHtmlSourceAttribute};
@@ -1 +1 @@
1
- import{reporter as c}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as a}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as m}from"../markdoc/helpers/set-node-attribute-value.js";import{FileNotFoundError as p,resolveSrcSet as u}from"../../../utils/index.js";import{getLinkOriginalAttrName as g}from"./utils.js";import{MdResolveError as v}from"./md-resolve-error.js";async function k(r,e,l,{actions:{contentDir:n,outdir:s},context:f}){if(a(r,e)){const i=g(e),o=r[i]||a(r,e);if(r[i]=o,!o)return;try{const t=await u(o,f.fs,{fromFileRelativePath:l,contentDir:n,outdir:s});m(r,e,t)}catch(t){if(t instanceof p)throw new v(`File ${t.filePath} does not exist`,{rawLink:t.filePath,link:t.filePath});await c.panicOnBuild(`Cannot resolve 'srcSet' attribute: ${t.message}`)}}}export{k as resolveImageSrcSet};
1
+ import{reporter as c}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as a}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as m}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{FileNotFoundError as p,resolveSrcSet as u}from"../../../utils/index.js";import{getLinkOriginalAttrName as g}from"./utils.js";import{MdResolveError as v}from"./md-resolve-error.js";async function k(r,e,l,{actions:{contentDir:n,outdir:s},context:f}){if(a(r,e)){const i=g(e),o=r[i]||a(r,e);if(r[i]=o,!o)return;try{const t=await u(o,f.fs,{fromFileRelativePath:l,contentDir:n,outdir:s});m(r,e,t)}catch(t){if(t instanceof p)throw new v(`File ${t.filePath} does not exist`,{rawLink:t.filePath,link:t.filePath});await c.panicOnBuild(`Cannot resolve 'srcSet' attribute: ${t.message}`)}}}export{k as resolveImageSrcSet};
@@ -1 +1 @@
1
- import{reporter as m}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as n}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../markdoc/helpers/set-node-attribute-value.js";import{FileNotFoundError as p,resolveAssetPath as g}from"../../../utils/index.js";import{MdResolveError as u}from"./md-resolve-error.js";import{getLinkOriginalAttrName as v}from"./utils.js";async function x(t,o,s,{actions:{contentDir:a,outdir:l},context:f}){if(n(t,o)){const i=v(o),r=t[i]||n(t,o);if(typeof r!="string"||(t[i]=r,!r))return;try{const e=await g(r,f.fs,{fromFileRelativePath:s,contentDir:a,outdir:l});c(t,o,e)}catch(e){if(e instanceof p)throw new u(`File ${r} does not exist`,{rawLink:r,link:r});await m.panicOnBuild(`Cannot resolve %rp: ${e.message}`,r)}}}export{x as resolveImageSrc};
1
+ import{reporter as m}from"../../../tools/notifiers/reporter.js";import{getNodeAttribute as n}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{FileNotFoundError as p,resolveAssetPath as g}from"../../../utils/index.js";import{MdResolveError as u}from"./md-resolve-error.js";import{getLinkOriginalAttrName as v}from"./utils.js";async function x(t,o,s,{actions:{contentDir:a,outdir:l},context:f}){if(n(t,o)){const i=v(o),r=t[i]||n(t,o);if(typeof r!="string"||(t[i]=r,!r))return;try{const e=await g(r,f.fs,{fromFileRelativePath:s,contentDir:a,outdir:l});c(t,o,e)}catch(e){if(e instanceof p)throw new u(`File ${r} does not exist`,{rawLink:r,link:r});await m.panicOnBuild(`Cannot resolve %rp: ${e.message}`,r)}}}export{x as resolveImageSrc};
@@ -1 +1 @@
1
- import{JsonPointer as w}from"@redocly/openapi-docs";import{isObject as d}from"../../../../utils/guards/is-object.js";import{getNodeAttribute as u}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as s}from"../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as p}from"./md-resolve-error.js";import{resolvePathInMarkdown as $}from"../resolve-path-in-markdown.js";async function b(e,o,m,{context:n,actions:h}){const r=u(e,o);try{if(!d(r)||typeof r.$ref!="string"){try{JSON.stringify(r)}catch(i){throw new Error(`Invalid JSON value: ${i.message}`)}s(e,o+"Resolved",r);return}const[t,f]=r.$ref.split("#");if(!t)throw new Error(`Invalid $ref. Path to file is required: ${r.$ref}`);const l=$(t,m,h.contentDir),c=await n.fs.getFileInfo(l);if(!c)throw new Error(`Invalid $ref. No such file: ${l}`);let a;try{a=(await n.cache.load(c.realRelativePath,"yaml")).data}catch(i){throw new Error(`Invalid file format. File must be valid json or yaml: ${l} ${i?.message||""}`)}if(!f){s(e,o+"Resolved",a);return}const v=w.get(a,f);s(e,o+"Resolved",v)}catch(t){throw s(e,o+"ResolvedErrors",[t.message]),new p(t.message,{rawLink:""})}}export{b as resolveJsonExampleRef};
1
+ import{JsonPointer as w}from"@redocly/openapi-docs";import{isObject as d}from"../../../../utils/guards/is-object.js";import{getNodeAttribute as u}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as s}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as p}from"./md-resolve-error.js";import{resolvePathInMarkdown as $}from"../resolve-path-in-markdown.js";async function b(e,o,m,{context:n,actions:h}){const r=u(e,o);try{if(!d(r)||typeof r.$ref!="string"){try{JSON.stringify(r)}catch(i){throw new Error(`Invalid JSON value: ${i.message}`)}s(e,o+"Resolved",r);return}const[t,f]=r.$ref.split("#");if(!t)throw new Error(`Invalid $ref. Path to file is required: ${r.$ref}`);const l=$(t,m,h.contentDir),c=await n.fs.getFileInfo(l);if(!c)throw new Error(`Invalid $ref. No such file: ${l}`);let a;try{a=(await n.cache.load(c.realRelativePath,"yaml")).data}catch(i){throw new Error(`Invalid file format. File must be valid json or yaml: ${l} ${i?.message||""}`)}if(!f){s(e,o+"Resolved",a);return}const v=w.get(a,f);s(e,o+"Resolved",v)}catch(t){throw s(e,o+"ResolvedErrors",[t.message]),new p(t.message,{rawLink:""})}}export{b as resolveJsonExampleRef};
@@ -1 +1 @@
1
- import a from"node:path";import{getNodeAttribute as u}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as f}from"../markdoc/helpers/set-node-attribute-value.js";import{formatBundleFromMarkdocError as b}from"../errors.js";import{MdResolveError as d}from"./md-resolve-error.js";import{dereferenceJsonSchemaRefs as h}from"./helpers/dereference-json-schema-refs.js";async function k(o,r,e,{context:c,actions:i}){const l=u(o,r),t=i.contentDir,p=a.resolve(t,e),s=await h({schemaOrRef:l,filePath:p,fs:c.fs});f(o,r+"Resolved",s?.oas);const n=s?.problems[0];if(!n)return{};const m=b(n,e,t);throw f(o,r+"ResolvedErrors",[m]),new d(m,{rawLink:""})}export{k as resolveJsonSchemaRef};
1
+ import a from"node:path";import{getNodeAttribute as u}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as f}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{formatBundleFromMarkdocError as b}from"../errors.js";import{MdResolveError as d}from"./md-resolve-error.js";import{dereferenceJsonSchemaRefs as h}from"./helpers/dereference-json-schema-refs.js";async function k(o,r,e,{context:c,actions:i}){const l=u(o,r),t=i.contentDir,p=a.resolve(t,e),s=await h({schemaOrRef:l,filePath:p,fs:c.fs});f(o,r+"Resolved",s?.oas);const n=s?.problems[0];if(!n)return{};const m=b(n,e,t);throw f(o,r+"ResolvedErrors",[m]),new d(m,{rawLink:""})}export{k as resolveJsonSchemaRef};
@@ -1 +1 @@
1
- import o from"node:path";import{ASYNC_API_DOCS_TEMPLATE_ID as F,GRAPHQL_SPEC_SLUG as T,GRAPHQL_TEMPLATE_ID as d,OPENAPI_DOCS_TEMPLATE_ID as v}from"../../../../constants/common.js";import{isLocalLink as U}from"../../../../utils/path/is-local-link.js";import{normalizeRouteSlug as P}from"../../../../utils/path/normalize-route-slug.js";import{removeFragment as y}from"../../../../utils/path/remove-fragment.js";import{PUBLIC_API_DEFINITIONS_FOLDER as C,DEPRECATED_PUBLIC_API_DEFINITIONS_FOLDER as M}from"../../../constants/common.js";import{getInnerText as N}from"../markdoc/helpers/get-inner-text.js";import{getNodeAttribute as W}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as g}from"./md-resolve-error.js";import{getLinkOriginalAttrName as B}from"./utils.js";import{isOpenApiURL as j}from"../../openapi-docs/is-openapi-doc.js";import{parseBaseName as G}from"../../utils.js";import{isMarkdownPage as $}from"../is-markdown-page.js";import{copyStaticFile as H}from"../../../utils/fs.js";const V=i=>[C,M,T].some(r=>i.startsWith(r));async function lt(i,r,k,{actions:L,context:c}){const{contentDir:w,outdir:D,getRouteByFsPath:A,slugHasRouteOrRedirect:E}=L,_=B(r),s=i[_]||W(i,r);if(i[_]=s,!U(s)||V(s))return;const[b,t="",R,h]=/^([^\?#]+)?([^#]+)?(.+)?/.exec(s)||[],f=i.type==="image"?"IMAGE":"LINK",u=String(i.attributes.title||i.attributes.alt||N([i])||""),n=y(k);if(i.type!=="image"){const{isOpenapiDetected:e,isOpenapiValid:m}=await j(t,n,L,c);if(e&&!m)throw new g(`OpenAPI route ${s} does not exist`,{rawLink:s,link:t,title:u,brokenLinkType:f})}if(o.extname(t)===""){if(t.startsWith("/")){if(!E(P(t)))throw new g(`Route ${t} does not exist`,{rawLink:s,link:t,title:u,brokenLinkType:f});p(i,r,t+(R||"")+(h||""))}if(!s.startsWith("#")&&!t.startsWith("/")&&$(n)){const e=A(n)?.slug;if(!e)return;const{isIndexFile:m}=G(n),I=m?P(o.posix.join(e,t)):P(o.posix.join(e,"../",t));if(!E(P(I)))throw new g(`Route ${t} does not exist`,{rawLink:s,link:I,title:u,brokenLinkType:f});p(i,r,I+(R||"")+(h||""))}return}const a=t.startsWith("/")?t.substring(1):o.posix.join(o.posix.dirname(n),decodeURI(t)),O=t.startsWith("/")?o.posix.join("static",t.substring(1)):"",x=c.fs.exists(a),S=c.fs.exists(O),l=A(a);if(!x&&!l&&!S)throw p(i,r,"#"),new g(`File ${a} does not exist`,{rawLink:s,link:a,title:u,brokenLinkType:f});if(l){const e=[v,d,F].includes(l.templateId);p(i,r,(e?l.baseSlug:l.slug)+(h||""))}else if(x){const e=c.fs.getFileInfo(a);if(!e||e.isVirtual)return;const m=await H(w,e.realRelativePath,D);p(i,r,m)}}export{lt as resolveLink};
1
+ import o from"node:path";import{ASYNC_API_DOCS_TEMPLATE_ID as F,GRAPHQL_SPEC_SLUG as T,GRAPHQL_TEMPLATE_ID as d,OPENAPI_DOCS_TEMPLATE_ID as v}from"../../../../constants/common.js";import{isLocalLink as U}from"../../../../utils/path/is-local-link.js";import{normalizeRouteSlug as P}from"../../../../utils/path/normalize-route-slug.js";import{removeFragment as y}from"../../../../utils/path/remove-fragment.js";import{PUBLIC_API_DEFINITIONS_FOLDER as C,DEPRECATED_PUBLIC_API_DEFINITIONS_FOLDER as M}from"../../../constants/common.js";import{getInnerText as N}from"../../../../markdoc/helpers/get-inner-text.js";import{getNodeAttribute as W}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as g}from"./md-resolve-error.js";import{getLinkOriginalAttrName as B}from"./utils.js";import{isOpenApiURL as j}from"../../openapi-docs/is-openapi-doc.js";import{parseBaseName as G}from"../../utils.js";import{isMarkdownPage as $}from"../is-markdown-page.js";import{copyStaticFile as H}from"../../../utils/fs.js";const V=i=>[C,M,T].some(r=>i.startsWith(r));async function lt(i,r,k,{actions:L,context:c}){const{contentDir:w,outdir:D,getRouteByFsPath:A,slugHasRouteOrRedirect:E}=L,_=B(r),s=i[_]||W(i,r);if(i[_]=s,!U(s)||V(s))return;const[b,t="",R,h]=/^([^\?#]+)?([^#]+)?(.+)?/.exec(s)||[],f=i.type==="image"?"IMAGE":"LINK",u=()=>String(i.attributes.title||i.attributes.alt||N([i])||""),n=y(k);if(i.type!=="image"){const{isOpenapiDetected:e,isOpenapiValid:m}=await j(t,n,L,c);if(e&&!m)throw new g(`OpenAPI route ${s} does not exist`,{rawLink:s,link:t,title:u(),brokenLinkType:f})}if(o.extname(t)===""){if(t.startsWith("/")){if(!E(P(t)))throw new g(`Route ${t} does not exist`,{rawLink:s,link:t,title:u(),brokenLinkType:f});p(i,r,t+(R||"")+(h||""))}if(!s.startsWith("#")&&!t.startsWith("/")&&$(n)){const e=A(n)?.slug;if(!e)return;const{isIndexFile:m}=G(n),I=m?P(o.posix.join(e,t)):P(o.posix.join(e,"../",t));if(!E(P(I)))throw new g(`Route ${t} does not exist`,{rawLink:s,link:I,title:u(),brokenLinkType:f});p(i,r,I+(R||"")+(h||""))}return}const a=t.startsWith("/")?t.substring(1):o.posix.join(o.posix.dirname(n),decodeURI(t)),O=t.startsWith("/")?o.posix.join("static",t.substring(1)):"",x=c.fs.exists(a),S=c.fs.exists(O),l=A(a);if(!x&&!l&&!S)throw p(i,r,"#"),new g(`File ${a} does not exist`,{rawLink:s,link:a,title:u(),brokenLinkType:f});if(l){const e=[v,d,F].includes(l.templateId);p(i,r,(e?l.baseSlug:l.slug)+(h||""))}else if(x){const e=c.fs.getFileInfo(a);if(!e||e.isVirtual)return;const m=await H(w,e.realRelativePath,D);p(i,r,m)}}export{lt as resolveLink};
@@ -1 +1 @@
1
- import{getPathPrefix as s,withPathPrefix as n}from"@redocly/theme/core/utils";import{isLocalLink as m}from"../../../../utils/path/is-local-link.js";import{getNodeAttribute as a}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../markdoc/helpers/set-node-attribute-value.js";import{resolveLink as h}from"./resolve-link.js";async function x(r,i,e,f){await h(r,i,e,f);const o=s();if(!o)return;const t=a(r,i);!t||t==="#"||!m(t)||t.startsWith(o)||p(r,i,t.startsWith("#")?t:n(t))}export{x as resolveNativeMdLink};
1
+ import{getPathPrefix as s,withPathPrefix as n}from"@redocly/theme/core/utils";import{isLocalLink as m}from"../../../../utils/path/is-local-link.js";import{getNodeAttribute as a}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{resolveLink as h}from"./resolve-link.js";async function x(r,i,e,f){await h(r,i,e,f);const o=s();if(!o)return;const t=a(r,i);!t||t==="#"||!m(t)||t.startsWith(o)||p(r,i,t.startsWith("#")?t:n(t))}export{x as resolveNativeMdLink};
@@ -1 +1 @@
1
- import n from"node:path";import{getNodeAttribute as f}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../markdoc/helpers/set-node-attribute-value.js";import{getLinkOriginalAttrName as a}from"./utils.js";import{resolveLinksFromConfig as v}from"../../nav-utils.js";async function L(o,r,t,{context:s,actions:i}){const e=a(r),m=o[e]||f(o,r);o[e]=m;const l=await v(m,n.dirname(n.resolve(i.contentDir,t)),i,s,{navFile:t});p(o,r,l)}export{L as resolveNavLinks};
1
+ import n from"node:path";import{getNodeAttribute as f}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as p}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{getLinkOriginalAttrName as a}from"./utils.js";import{resolveLinksFromConfig as v}from"../../nav-utils.js";async function L(o,r,t,{context:s,actions:i}){const e=a(r),m=o[e]||f(o,r);o[e]=m;const l=await v(m,n.dirname(n.resolve(i.contentDir,t)),i,s,{navFile:t});p(o,r,l)}export{L as resolveNavLinks};
@@ -1 +1 @@
1
- import f from"node:path";import{OPENAPI_SHARED_DATA_PREFIX as p}from"../../../constants/plugins/openapi-docs.js";import{getNodeAttribute as A}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as w}from"../markdoc/helpers/set-node-attribute-value.js";import{isOpenapiDoc as d}from"../../openapi-docs/is-openapi-doc.js";import{MdResolveError as a}from"./md-resolve-error.js";import{getLinkOriginalAttrName as g}from"./utils.js";async function O(r,t,e,{context:n}){const s=g(t);let o=r[s]||A(r,t);if(o||await d(e,n)&&(o=f.basename(e)),r[s]=o,!o)return;const i=f.posix.join(f.posix.dirname(e),o),m=p+i;if(w(r,t,m),!n.fs.exists(i))throw new a(`Definition file ${i} does not exist`,{rawLink:i});if(await n.isPathIgnored(i))throw new a(`Definition file ${i} is ignored in config`,{rawLink:i});return{sharedDataId:m}}export{O as resolveOpenApiRef};
1
+ import f from"node:path";import{OPENAPI_SHARED_DATA_PREFIX as p}from"../../../constants/plugins/openapi-docs.js";import{getNodeAttribute as A}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as w}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{isOpenapiDoc as d}from"../../openapi-docs/is-openapi-doc.js";import{MdResolveError as a}from"./md-resolve-error.js";import{getLinkOriginalAttrName as g}from"./utils.js";async function O(r,t,e,{context:n}){const s=g(t);let o=r[s]||A(r,t);if(o||await d(e,n)&&(o=f.basename(e)),r[s]=o,!o)return;const i=f.posix.join(f.posix.dirname(e),o),m=p+i;if(w(r,t,m),!n.fs.exists(i))throw new a(`Definition file ${i} does not exist`,{rawLink:i});if(await n.isPathIgnored(i))throw new a(`Definition file ${i} is ignored in config`,{rawLink:i});return{sharedDataId:m}}export{O as resolveOpenApiRef};
@@ -1 +1 @@
1
- import{getNodeAttribute as m}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as f}from"./md-resolve-error.js";import{resolvePathInMarkdown as l}from"../resolve-path-in-markdown.js";async function p(t,r,a,{context:o}){const s=m(t,r);if(s){const e=l(s,a,o.fs.cwd);if(!o.fs.exists(e))throw new f(`Schema file ${e} does not exist`,{rawLink:e});const i=(await o.cache.load(e,"yaml")).data;c(t,r+"Resolved",i)}}export{p as resolveParsedYaml};
1
+ import{getNodeAttribute as m}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as f}from"./md-resolve-error.js";import{resolvePathInMarkdown as l}from"../resolve-path-in-markdown.js";async function p(t,r,a,{context:o}){const s=m(t,r);if(s){const e=l(s,a,o.fs.cwd);if(!o.fs.exists(e))throw new f(`Schema file ${e} does not exist`,{rawLink:e});const i=(await o.cache.load(e,"yaml")).data;c(t,r+"Resolved",i)}}export{p as resolveParsedYaml};
@@ -1 +1 @@
1
- import{getNodeAttribute as m}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../markdoc/helpers/set-node-attribute-value.js";import{readFileContent as l}from"../read-file-content.js";import{resolvePathInMarkdown as w}from"../resolve-path-in-markdown.js";import{MdResolveError as p}from"./md-resolve-error.js";async function R(o,e,i,{context:r,actions:s}){const n=m(o,e),a=s.contentDir;if(n){const t=w(n,i,a);if(!r.fs.exists(t))throw new p(`File ${t} does not exist`,{rawLink:t});const f=await l(t,r.fs);c(o,e+"RawContent",f)}}export{R as resolveRawContent};
1
+ import{getNodeAttribute as m}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as c}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{readFileContent as l}from"../read-file-content.js";import{resolvePathInMarkdown as w}from"../resolve-path-in-markdown.js";import{MdResolveError as p}from"./md-resolve-error.js";async function R(o,e,i,{context:r,actions:s}){const n=m(o,e),a=s.contentDir;if(n){const t=w(n,i,a);if(!r.fs.exists(t))throw new p(`File ${t} does not exist`,{rawLink:t});const f=await l(t,r.fs);c(o,e+"RawContent",f)}}export{R as resolveRawContent};
@@ -1 +1 @@
1
- import{getNodeAttribute as s}from"../markdoc/helpers/get-node-attribute.js";import{resolveLink as m}from"./resolve-link.js";import{resolveSvgContent as g}from"./resolve-svg-content.js";import{isIconPath as l}from"../../../utils/index.js";import{getLinkOriginalAttrName as p}from"./utils.js";async function k(i,r,t,{context:e,actions:n}){const f=p(r),o=i[f]||s(i,r);!o||typeof o!="string"||(o.endsWith(".svg")?await g(i,r,t,{context:e,actions:n}):l(o)&&await m(i,r,t,{context:e,actions:n}))}export{k as resolveRelativeOrCdnIcon};
1
+ import{getNodeAttribute as s}from"../../../../markdoc/helpers/get-node-attribute.js";import{resolveLink as m}from"./resolve-link.js";import{resolveSvgContent as g}from"./resolve-svg-content.js";import{isIconPath as l}from"../../../utils/index.js";import{getLinkOriginalAttrName as p}from"./utils.js";async function k(i,r,t,{context:e,actions:n}){const f=p(r),o=i[f]||s(i,r);!o||typeof o!="string"||(o.endsWith(".svg")?await g(i,r,t,{context:e,actions:n}):l(o)&&await m(i,r,t,{context:e,actions:n}))}export{k as resolveRelativeOrCdnIcon};
@@ -1 +1 @@
1
- import e from"node:path";import{slash as g}from"../../../../utils/path/slash.js";import{getNodeAttribute as h}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as v}from"../markdoc/helpers/set-node-attribute-value.js";import{isL10nPath as m}from"../../../fs/utils/is-l10n-path.js";import{getLocaleFromRelativePath as A}from"../../../fs/utils/get-locale-from-relative-path.js";import{getLinkOriginalAttrName as d}from"./utils.js";async function R(o,i,r,n){const s=h(o,i);if(!s)return;const l=n.actions.contentDir,a=d(i),t=o[a]||s;o[a]=t;const c=m(r)?A(r):void 0,f=n.context.fs,p=c&&!m(t.slice(1))?`${f.localizationFolder}/${c}/`:"",u=t.startsWith("/")?p+t.slice(1):g(e.relative(l,e.resolve(l,e.dirname(r),t)));v(o,i,u)}export{R as resolveRelativePath};
1
+ import e from"node:path";import{slash as g}from"../../../../utils/path/slash.js";import{getNodeAttribute as h}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as v}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{isL10nPath as m}from"../../../fs/utils/is-l10n-path.js";import{getLocaleFromRelativePath as A}from"../../../fs/utils/get-locale-from-relative-path.js";import{getLinkOriginalAttrName as d}from"./utils.js";async function R(o,i,r,n){const s=h(o,i);if(!s)return;const l=n.actions.contentDir,a=d(i),t=o[a]||s;o[a]=t;const c=m(r)?A(r):void 0,f=n.context.fs,p=c&&!m(t.slice(1))?`${f.localizationFolder}/${c}/`:"",u=t.startsWith("/")?p+t.slice(1):g(e.relative(l,e.resolve(l,e.dirname(r),t)));v(o,i,u)}export{R as resolveRelativePath};
@@ -1 +1 @@
1
- import S from"node:path";import{getNodeAttribute as f}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as i}from"../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as a}from"./md-resolve-error.js";import{generateSampleFromSchema as g}from"./helpers/generate-sample-from-schema.js";import{formatBundleFromMarkdocError as k}from"../errors.js";import{dereferenceJsonSchemaRefs as E}from"./helpers/dereference-json-schema-refs.js";async function y(o,e,r,{context:p,actions:l}){const h=f(o,e),t=l.contentDir,d=S.resolve(t,r),s=await E({schemaOrRef:h,filePath:d,fs:p.fs});if(!s)return;const{schema:u,problems:w,oas:b}=s,m=w[0];if(m){const c=k(m,r,t);throw i(o,e+"ResolvedErrors",[c]),new a(c,{rawLink:""})}const R=f(o,"mode"),{value:v,error:n}=g(u,{mode:R,spec:b});if(i(o,e+"Resolved",v),n)throw new a(n,{rawLink:""})}export{y as resolveSampleFromJsonSchema};
1
+ import S from"node:path";import{getNodeAttribute as f}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as i}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{MdResolveError as a}from"./md-resolve-error.js";import{generateSampleFromSchema as g}from"./helpers/generate-sample-from-schema.js";import{formatBundleFromMarkdocError as k}from"../errors.js";import{dereferenceJsonSchemaRefs as E}from"./helpers/dereference-json-schema-refs.js";async function y(o,e,r,{context:p,actions:l}){const h=f(o,e),t=l.contentDir,d=S.resolve(t,r),s=await E({schemaOrRef:h,filePath:d,fs:p.fs});if(!s)return;const{schema:u,problems:w,oas:b}=s,m=w[0];if(m){const c=k(m,r,t);throw i(o,e+"ResolvedErrors",[c]),new a(c,{rawLink:""})}const R=f(o,"mode"),{value:v,error:n}=g(u,{mode:R,spec:b});if(i(o,e+"Resolved",v),n)throw new a(n,{rawLink:""})}export{y as resolveSampleFromJsonSchema};
@@ -1 +1 @@
1
- import{getNodeAttribute as m}from"../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as l}from"../markdoc/helpers/set-node-attribute-value.js";import{optimize as p}from"../../../../compiled/svgo/svgo-node.js";import{slug as c}from"../../../utils/index.js";import{MdResolveError as d}from"./md-resolve-error.js";import{resolvePathInMarkdown as u}from"../resolve-path-in-markdown.js";async function b(o,r,n,{context:i,actions:s}){const e=m(o,r),a=s.contentDir;if(e){const t=u(e,n,a);if(!i.fs.exists(t))throw new d(`File ${t} does not exist`,{rawLink:e});let f=p(await i.fs.read(t),{plugins:[{name:"prefixIds",params:{prefix:c(t).replaceAll(/[\/\.]/g,"-")}}]}).data;l(o,r+"RawContent",f)}}export{b as resolveSvgContent};
1
+ import{getNodeAttribute as m}from"../../../../markdoc/helpers/get-node-attribute.js";import{setNodeAttributeValue as l}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{optimize as p}from"../../../../compiled/svgo/svgo-node.js";import{slug as c}from"../../../utils/index.js";import{MdResolveError as d}from"./md-resolve-error.js";import{resolvePathInMarkdown as u}from"../resolve-path-in-markdown.js";async function b(o,r,n,{context:i,actions:s}){const e=m(o,r),a=s.contentDir;if(e){const t=u(e,n,a);if(!i.fs.exists(t))throw new d(`File ${t} does not exist`,{rawLink:e});let f=p(await i.fs.read(t),{plugins:[{name:"prefixIds",params:{prefix:c(t).replaceAll(/[\/\.]/g,"-")}}]}).data;l(o,r+"RawContent",f)}}export{b as resolveSvgContent};
@@ -24,6 +24,7 @@ type ParsedAstChunk = {
24
24
  type MarkdocInfo = {
25
25
  sharedDataDeps?: Set<string>;
26
26
  dynamicMarkdocComponents?: string[];
27
+ partials?: string[];
27
28
  tagList?: string[];
28
29
  htmlTagsList?: string[];
29
30
  tagOccurrence?: Record<string, number>;
@@ -1 +1 @@
1
- import L from"@markdoc/markdoc";import*as M from"path";import{GATED_MARKDOC_TAGS as A}from"../../constants/entitlements.js";import{logger as O}from"../../tools/notifiers/logger.js";import{reporter as F}from"../../tools/notifiers/reporter.js";import{sha1 as G}from"../../utils/crypto/sha1.js";import{formatMarkdocError as N}from"./errors.js";import{extractFirstHeading as j,visit as x}from"./markdoc/plugins/utils.js";import{attributeResolvers as y}from"./attribute-resolvers/index.js";import{MdResolveError as K}from"./attribute-resolvers/md-resolve-error.js";import{processHtmlTokens as $}from"./html/process-html-tokens.js";import{resolveRawPartials as W}from"./markdoc/resolve-raw-partials.js";import{EntitlementsProvider as Y}from"../../entitlements/entitlements-provider.js";import{MARKDOC_PARTIALS_DEPS_KEY as B}from"../../store.js";import{getLinkOriginalAttrName as U}from"./attribute-resolvers/utils.js";const V="EMPTY";async function q(a,o,e){const n=Y.instance(),{actions:g}=e,{relativePath:s,resolveErrors:_}=a,m=new Set,p=new Set,c=new Set,v={},f=new Set,w={},k={};function E(t,P){const D=P||V;t[D]=(t[D]||0)+1}const S=[];return a.resolveErrors.length=0,x(a.ast,t=>{const P=D();S.push(P.then(r=>{r?.sharedDataIds&&r.sharedDataIds.forEach(d=>m.add(d))}).catch(z));async function D(){const r=[];switch(t.type){case"fence":E(w,t.attributes.language);break;case"link":case"image":await y.nativeMdLink(t,t.type==="link"?"href":"src",s,e);break;case"tag":if(!t.tag)break;const d=o?.tags?.[t.tag];if(!d){A[t.tag]&&!n.canAccessFeature(A[t.tag])&&(t.errors.push({level:"warning",id:"invalid-tag",message:`Undefined tag: ${t.tag}`}),t.tag="",t.type="error",t.attributes={});break}const h=t.tag==="html"?t.attributes.name:t.tag;if((t.tag==="html"?f:c).add(h),v[h]=(v[h]||0)+1,h==="code-snippet"&&E(w,t.attributes.language),d.attributes?.__idx&&(t.attributes.__idx=v[t.tag]),d.dynamicComponentLib&&p.add(d.dynamicComponentLib),!d.attributes)break;if(h==="partial"&&t.attributes?.file){const i=U("file"),l=t[i]||t.attributes.file,b=l.startsWith("/")?l.slice(1):M.posix.normalize(M.posix.join(M.posix.dirname(s),l)),u=(g.getGlobalConfig(B)||{})[b];if(u?.dynamicComponents)for(const R of u.dynamicComponents)p.add(R);if(u?.sharedDataDeps)for(const R of u.sharedDataDeps)m.add(R)}for(const[i,l]of Object.entries(d.attributes)){const b=l.type;if(b&&(b.resolver||l.resolver)){const T=y[b.resolver||l.resolver],u=await T?.(t,i,s,e);u?.sharedDataId&&r.push(u.sharedDataId)}}if(h==="code-walkthrough")for(const i of t.attributes.resolvedFilesets||[])for(const l of i.files||[])E(k,l.language);const I=t.attributes?.attrs;if(I&&t.tag==="html")for(const i of Object.keys(I))i==="src"||i==="srcSet"?await y.htmlSourceAttribute(t,i,s,e):i==="href"&&await y.htmlHref(t,i,s,e);break}return{sharedDataIds:r}}async function z(r){if(!(r instanceof K)){await F.panicOnBuild(r.message);return}_.push(N({type:"resolve_link",meta:{...r.meta,link:r.meta.link??r.meta.rawLink},lines:t.lines,location:t.location,error:{id:"",level:"error",message:r.message,location:t.location}},a.relativePath,a.rawContent))}}),await Promise.all(S),a.sharedDataDeps=m,a.dynamicMarkdocComponents=p,a.validatedAtRevision<g.buildRevision&&(a.markdocErrors=L.validate(a.ast,o).map(t=>N(t,s,a.rawContent)),a.validatedAtRevision=g.buildRevision),{sharedDataDeps:a.sharedDataDeps,dynamicMarkdocComponents:Array.from(a.dynamicMarkdocComponents?.values()??[]),tagList:Array.from(c),htmlTagsList:Array.from(f),tagOccurrence:v,codeSnippetLanguages:w,codeWalkthroughLanguages:k}}const H=new L.Tokenizer({html:!0,allowIndentation:!0,allowComments:!0});H.parser.block.ruler.getRules("reference").length=0;function C(a,o){const e=H.tokenize(o),n=$(e);return{ast:L.parse(n,{file:a,slots:!0}),rawContent:o,resolveErrors:[],markdocErrors:[],relativePath:a,sharedDataDeps:void 0,validatedAtRevision:-1}}async function ft(a,o){const{data:e}=await o.cache.load(a,"markdown-ast");return j(e.ast)}async function dt(a,o){F.clearMarkdocProblems();const e=a.getAllRoutes();let n=0;const g=O.isInteractive();for(const s of e)await a.resolveRouteStaticData(s,o,!0),n++,g&&n%100===0&&O.logInFooter("validate",` \u{1F50D} Status: validating markdoc (${n}/${e.length})`)}async function gt(a,o,e){const n=a.content?G(a.content):"";return await e.context.cache.load(a.relativePath,{loader:s,name:"markdown-inline-parser"},[n,String(e.actions.buildRevision)]);async function s(_,m,p){let c;if(a.content){const f=a.content?a.content:await m.fs.read(a.relativePath),w=await m.getConfig(),k=await W(f,a.relativePath,w.markdown?.partialsFolders,m);c=C(a.relativePath,k)}else c=(await m.cache.load(a.relativePath,"markdown-ast")).data;let v={};if(e.actions.buildRevision!==0&&(v=await q(c,o,e)),!a.isVirtual){for(const f of c.markdocErrors)p(f);for(const f of c.resolveErrors)p(f)}return{ast:c.ast,info:v}}}export{ft as extractMdFirstHeading,C as getAst,gt as parseAndResolveMarkdoc,q as resolveAndValidateMarkdoc,dt as validateAllMarkdowns};
1
+ import L from"@markdoc/markdoc";import*as M from"path";import{GATED_MARKDOC_TAGS as O}from"../../constants/entitlements.js";import{logger as F}from"../../tools/notifiers/logger.js";import{reporter as N}from"../../tools/notifiers/reporter.js";import{sha1 as j}from"../../utils/crypto/sha1.js";import{formatMarkdocError as H}from"./errors.js";import{extractFirstHeading as x,visit as K}from"./markdoc/plugins/utils.js";import{attributeResolvers as y}from"./attribute-resolvers/index.js";import{MdResolveError as $}from"./attribute-resolvers/md-resolve-error.js";import{processHtmlTokens as U}from"./html/process-html-tokens.js";import{resolveRawPartials as W}from"./markdoc/resolve-raw-partials.js";import{EntitlementsProvider as Y}from"../../entitlements/entitlements-provider.js";import{MARKDOC_PARTIALS_DEPS_KEY as B}from"../../store.js";import{getLinkOriginalAttrName as V}from"./attribute-resolvers/utils.js";const q="EMPTY";async function C(a,s,e){const c=Y.instance(),{actions:g}=e,{relativePath:o,resolveErrors:S}=a,f=new Set,u=new Set,l=new Set,w=new Set,n={},k=new Set,b={},_={};function E(t,P){const D=P||q;t[D]=(t[D]||0)+1}const A=[];return a.resolveErrors.length=0,K(a.ast,t=>{const P=D();A.push(P.then(r=>{r?.sharedDataIds&&r.sharedDataIds.forEach(d=>f.add(d))}).catch(G));async function D(){const r=[];switch(t.type){case"fence":E(b,t.attributes.language);break;case"link":case"image":await y.nativeMdLink(t,t.type==="link"?"href":"src",o,e);break;case"tag":if(!t.tag)break;const d=s?.tags?.[t.tag];if(!d){O[t.tag]&&!c.canAccessFeature(O[t.tag])&&(t.errors.push({level:"warning",id:"invalid-tag",message:`Undefined tag: ${t.tag}`}),t.tag="",t.type="error",t.attributes={});break}const p=t.tag==="html"?t.attributes.name:t.tag;if((t.tag==="html"?k:w).add(p),n[p]=(n[p]||0)+1,p==="code-snippet"&&E(b,t.attributes.language),d.attributes?.__idx&&(t.attributes.__idx=n[t.tag]),d.dynamicComponentLib&&u.add(d.dynamicComponentLib),!d.attributes)break;if(p==="partial"&&t.attributes?.file){const i=V("file"),m=t[i]||t.attributes.file,h=m.startsWith("/")?m.slice(1):M.posix.normalize(M.posix.join(M.posix.dirname(o),m));l.add(h);const v=(g.getGlobalConfig(B)||{})[h];if(v?.dynamicComponents)for(const R of v.dynamicComponents)u.add(R);if(v?.sharedDataDeps)for(const R of v.sharedDataDeps)f.add(R)}for(const[i,m]of Object.entries(d.attributes)){const h=m.type;if(h&&(h.resolver||m.resolver)){const T=y[h.resolver||m.resolver],v=await T?.(t,i,o,e);v?.sharedDataId&&r.push(v.sharedDataId)}}if(p==="code-walkthrough")for(const i of t.attributes.resolvedFilesets||[])for(const m of i.files||[])E(_,m.language);const I=t.attributes?.attrs;if(I&&t.tag==="html")for(const i of Object.keys(I))i==="src"||i==="srcSet"?await y.htmlSourceAttribute(t,i,o,e):i==="href"&&await y.htmlHref(t,i,o,e);break}return{sharedDataIds:r}}async function G(r){if(!(r instanceof $)){await N.panicOnBuild(r.message);return}S.push(H({type:"resolve_link",meta:{...r.meta,link:r.meta.link??r.meta.rawLink},lines:t.lines,location:t.location,error:{id:"",level:"error",message:r.message,location:t.location}},a.relativePath,a.rawContent))}}),await Promise.all(A),a.sharedDataDeps=f,a.dynamicMarkdocComponents=u,a.validatedAtRevision<g.buildRevision&&(a.markdocErrors=L.validate(a.ast,s).map(t=>H(t,o,a.rawContent)),a.validatedAtRevision=g.buildRevision),{sharedDataDeps:a.sharedDataDeps,dynamicMarkdocComponents:Array.from(a.dynamicMarkdocComponents?.values()??[]),partials:Array.from(l),tagList:Array.from(w),htmlTagsList:Array.from(k),tagOccurrence:n,codeSnippetLanguages:b,codeWalkthroughLanguages:_}}const z=new L.Tokenizer({html:!0,allowIndentation:!0,allowComments:!0});z.parser.block.ruler.getRules("reference").length=0;function J(a,s){const e=z.tokenize(s),c=U(e);return{ast:L.parse(c,{file:a,slots:!0}),rawContent:s,resolveErrors:[],markdocErrors:[],relativePath:a,sharedDataDeps:void 0,validatedAtRevision:-1}}async function dt(a,s){const{data:e}=await s.cache.load(a,"markdown-ast");return x(e.ast)}async function gt(a,s){N.clearMarkdocProblems();const e=a.getAllRoutes();let c=0;const g=F.isInteractive();for(const o of e)await a.resolveRouteStaticData(o,s,!0),c++,g&&c%100===0&&F.logInFooter("validate",` \u{1F50D} Status: validating markdoc (${c}/${e.length})`)}async function vt(a,s,e){const c=a.content?j(a.content):"";return await e.context.cache.load(a.relativePath,{loader:o,name:"markdown-inline-parser"},[c,String(e.actions.buildRevision)]);async function o(S,f,u){let l;if(a.content){const n=a.content?a.content:await f.fs.read(a.relativePath),k=await f.getConfig(),b=await W(n,a.relativePath,k.markdown?.partialsFolders,f);l=J(a.relativePath,b)}else l=(await f.cache.load(a.relativePath,"markdown-ast")).data;let w={};if(e.actions.buildRevision!==0&&(w=await C(l,s,e)),!a.isVirtual){for(const n of l.markdocErrors)u(n);for(const n of l.resolveErrors)u(n)}return{ast:l.ast,info:w}}}export{dt as extractMdFirstHeading,J as getAst,vt as parseAndResolveMarkdoc,C as resolveAndValidateMarkdoc,gt as validateAllMarkdowns};
@@ -1 +1 @@
1
- import g from"path";import{REDOCLY_TEAMS_RBAC as v}from"@redocly/config";import{MARKDOC_PARTIALS_DATA_KEY as y}from"../../store.js";import{reporter as D}from"../../tools/notifiers/reporter.js";import{canAccessFeature as R}from"../../utils/entitlements/can-access-feature.js";import{extractMdFirstHeading as A,getAst as C}from"./compiler.js";import{getTemplatePath as w}from"./get-template-path.js";import{prepareMarkdocPartials as M}from"./markdoc/partials.js";import{searchResolver as T}from"./search/search-resolver.js";import{markdownStaticDataLoader as E}from"./markdown-static-data-loader.js";import{makeErrorRoute as I}from"../error-route.js";import{validateRbacConfig as O}from"../validate-rbac-config.js";import{findFrontmatterSlugs as _,getSidebarSharedDataId as G,resolveFrontmatterSlugs as L}from"../utils.js";import{isPartial as j}from"./is-partial.js";import{markdownFrontmatterLoader as z}from"./markdown-frontmatter-loader.js";import{resolveRawPartials as B}from"./markdoc/resolve-raw-partials.js";import{getAiDocumentsStore as K}from"./search/get-ai-search-documents.js";import{registerPageProps as N}from"../register-page-props.js";import{sanitizeMalformedMdContent as W}from"./utils/sanitize-malformed-md-content.js";import{telemetryTraceStep as Y}from"../../../cli/telemetry/helpers/trace-step.js";async function le(h){return{id:"markdoc",requiredEntitlements:["markdown"],loaders:{"markdown-frontmatter":z,"markdown-ast":async(t,r)=>{const i=await r.fs.read(t),n=await r.getConfig(),d=await B(i,t,n?.markdown?.partialsFolders,r),l=W(d);return C(t,l)}},processContent:async(t,r)=>{await Y("build.plugin.markdown",async i=>{const{markdown:n}=await r.getConfig();i?.setAttribute("config",JSON.stringify(n||{}));const d=n?.partialsFolders??[],l=t.createTemplate("markdown","@redocly/theme/core/templates/Markdown"),S=t.registerServerPropsGetter("markdown",w("./get-server-props.js"));t.createTemplate("error",w("../../../client/app/Error/ErrorDetails.js"));for(const o of r.fs.scan(/\.md$/))if(!await r.isPathIgnored(o.relativePath)&&!j(o.relativePath,d))try{await k(o)}catch(a){t.addRoute(I(o.relativePath,a)),i?.error(a),await D.panicOnBuild("Failed to create route for markdown file: %s",a.message)}async function k(o){const{relativePath:a,realRelativePath:P}=o,{data:{frontmatter:e}}=await r.cache.load(a,"markdown-frontmatter"),F=e?.metadata||{},b=await _(a,"markdown-frontmatter",e,r),p=L(b,a);let c=null;e?.sidebar&&(c=await G(e.sidebar,a,r.fs));let u=l;if(e?.template){const f=e.template.startsWith("./")||e.template.startsWith("../");let m=e.template;if(f){const s=g.posix.dirname(P);m=g.resolve(h.contentDir,s,e.template)}u=t.createTemplate(e.template,m)}e?.rbac&&(R("rbac")?O({content:{[a]:e.rbac}}):e.rbac=void 0),await N(o,r.fs,t),(p.length?p.reverse():[void 0]).forEach(f=>{t.addRoute({excludeFromSearch:e?.excludeFromSearch||!1,slug:f,fsPath:a,templateId:u,sharedData:c?[{id:c,key:"sidebar"}]:void 0,redirectFrom:Object.entries(e.redirects||{}).map(([m,{type:s}])=>({type:s||301,from:m})),[v]:e?.rbac,getNavText:async()=>(e?.seo?.title||await A(a,r)||"").toString(),metadata:{type:"markdown",...F},async getStaticData(m,s){return E(o,m,r,e,s)},getSearchDocuments:T(e,a,t.getSearchFacets,t.setSearchFacets),getAiDocumentsStore:K(t.getSearchFacets,e),serverPropsGetterIds:[S]})})}})},afterRoutesCreated:async(t,r)=>{const i=await M(r,t);t.setGlobalConfig({[y]:i})}}}export{le as markdownPlugin};
1
+ import d from"path";import{REDOCLY_TEAMS_RBAC as y}from"@redocly/config";import{MARKDOC_PARTIALS_DATA_KEY as D}from"../../store.js";import{reporter as R}from"../../tools/notifiers/reporter.js";import{canAccessFeature as A}from"../../utils/entitlements/can-access-feature.js";import{extractMdFirstHeading as C,getAst as M}from"./compiler.js";import{getTemplatePath as w}from"./get-template-path.js";import{prepareMarkdocPartials as T}from"./markdoc/partials.js";import{searchResolver as E}from"./search/search-resolver.js";import{markdownStaticDataLoader as I}from"./markdown-static-data-loader.js";import{makeErrorRoute as _}from"../error-route.js";import{validateRbacConfig as O}from"../validate-rbac-config.js";import{findFrontmatterSlugs as G,getSidebarSharedDataId as L,resolveFrontmatterSlugs as j}from"../utils.js";import{isPartial as z}from"./is-partial.js";import{markdownFrontmatterLoader as B}from"./markdown-frontmatter-loader.js";import{resolveRawPartials as K}from"./markdoc/resolve-raw-partials.js";import{getAiDocumentsStore as N}from"./search/get-ai-search-documents.js";import{registerPageProps as W}from"../register-page-props.js";import{sanitizeMalformedMdContent as Y}from"./utils/sanitize-malformed-md-content.js";import{telemetryTraceStep as q}from"../../../cli/telemetry/helpers/trace-step.js";async function fe(h){return{id:"markdoc",requiredEntitlements:["markdown"],loaders:{"markdown-frontmatter":B,"markdown-ast":async(t,r)=>{const i=await r.fs.read(t),n=await r.getConfig(),l=await K(i,t,n?.markdown?.partialsFolders,r),c=Y(l);return M(t,c)}},processContent:async(t,r)=>{await q("build.plugin.markdown",async i=>{const{markdown:n}=await r.getConfig();i?.setAttribute("config",JSON.stringify(n||{}));const l=n?.partialsFolders??[],c=t.createTemplate("markdown","@redocly/theme/core/templates/Markdown"),S=t.registerServerPropsGetter("markdown",w("./get-server-props.js"));t.createTemplate("error",w("../../../client/app/Error/ErrorDetails.js"));for(const o of r.fs.scan(/\.md$/))if(!await r.isPathIgnored(o.relativePath)&&!z(o.relativePath,l))try{await k(o)}catch(a){t.addRoute(_(o.relativePath,a)),i?.error(a),await R.panicOnBuild("Failed to create route for markdown file: %s",a.message)}async function k(o){const{relativePath:a,realRelativePath:P}=o,{data:{frontmatter:e}}=await r.cache.load(a,"markdown-frontmatter"),b=e?.metadata||{},F=(await r.getConfig(d.dirname(a)))?.metadata||{},v=await G(a,"markdown-frontmatter",e,r),g=j(v,a);let f=null;e?.sidebar&&(f=await L(e.sidebar,a,r.fs));let u=c;if(e?.template){const p=e.template.startsWith("./")||e.template.startsWith("../");let m=e.template;if(p){const s=d.posix.dirname(P);m=d.resolve(h.contentDir,s,e.template)}u=t.createTemplate(e.template,m)}e?.rbac&&(A("rbac")?O({content:{[a]:e.rbac}}):e.rbac=void 0),await W(o,r.fs,t),(g.length?g.reverse():[void 0]).forEach(p=>{t.addRoute({excludeFromSearch:e?.excludeFromSearch||!1,slug:p,fsPath:a,templateId:u,sharedData:f?[{id:f,key:"sidebar"}]:void 0,redirectFrom:Object.entries(e.redirects||{}).map(([m,{type:s}])=>({type:s||301,from:m})),[y]:e?.rbac,getNavText:async()=>(e?.seo?.title||await C(a,r)||"").toString(),metadata:{type:"markdown",__basename:d.basename(a),...F,...b},async getStaticData(m,s){return I(o,m,r,e,s)},getSearchDocuments:E(e,a,t.getSearchFacets,t.setSearchFacets),getAiDocumentsStore:N(t.getSearchFacets,e),serverPropsGetterIds:[S]})})}})},afterRoutesCreated:async(t,r)=>{const i=await T(r,t);t.setGlobalConfig({[D]:i})}}}export{fe as markdownPlugin};
@@ -1,2 +1,2 @@
1
- export declare const isPartial: (relativePath: string, partialsFolders: string[]) => boolean;
1
+ export declare const isPartial: (relativePath: string, _partialsFolders: string[]) => boolean;
2
2
  //# sourceMappingURL=is-partial.d.ts.map
@@ -1 +1 @@
1
- import a from"path";import{pathMatchesGlobPattern as i}from"../../utils/globs.js";const p=(r,o)=>o.some(t=>{const e=a.posix.normalize(t);return i(r,e)});export{p as isPartial};
1
+ import t from"path";import{isPathInFolder as a}from"../../../utils/path/is-path-in-folder.js";const e=(r,i)=>["_partials"].some(o=>a(r,t.posix.normalize(o)));export{e as isPartial};
@@ -1 +1 @@
1
- import{pathToFileURL as o}from"url";import{isDevelopMode as e}from"../../../utils/envs/is-develop-mode.js";async function a(t){if(process.env.REDOCLY_STATIC_BUNDLE)return await import("@redocly-markdoc/schema");try{const r=e()?"js":"mjs";return await import(o(`${t}/user-tags-entry.${r}`)+"?"+new Date)}catch(r){if(e())return{schema:{}};throw r}}export{a as importUserTags};
1
+ import{pathToFileURL as o}from"url";import{envConfig as r}from"../../../config/env-config.js";async function n(t){if(r.isRuntimeMode)return await import("@redocly-markdoc/schema");try{const e=r.isDevelopMode?"js":"mjs";return await import(o(`${t}/user-tags-entry.${e}`)+"?"+new Date)}catch(e){if(r.isDevelopMode)return{schema:{}};throw e}}export{n as importUserTags};
@@ -1 +1 @@
1
- import f from"@markdoc/markdoc";import*as g from"@redocly/theme/markdoc/default";import{reporter as p}from"../../../tools/notifiers/reporter.js";import{includes as u}from"./functions/includes.js";import{importUserTags as d}from"./import-user-tags.js";import*as l from"./nodes/index.js";import h from"./tags/index.js";import{concat as O}from"./functions/concat.js";const y=g.tags;function b(o){return Object.fromEntries(Object.entries(o).map(([r,e])=>[e.tagName||r,e]))}function T(o){const{tags:r,functions:e={},...n}=o,a={...r,...n};let i=Object.entries(a);const s=[],t=[];for(const[c,m]of i)c in f.nodes?s.push([c,m]):t.push([c,m]);return{nodes:Object.fromEntries(s),tags:Object.fromEntries(t),functions:e}}async function D(o="../../../esbuild/cache/server/",r=""){let e;try{e=(await d(o)).schema}catch(t){throw t.code==="ERR_MODULE_NOT_FOUND"?(p.printErrors(),new Error("Please fix the errors above and try again.")):t}const{tags:n={},nodes:a={},functions:i={}}=T(e),s={tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean}}}}};return{nodes:{...l,...a},tags:{...h,...y,...b(n),...s.tags},functions:{...f.functions,...i,includes:u,concat:O}}}export{D as getMarkdocOptions};
1
+ import f from"@markdoc/markdoc";import*as g from"@redocly/theme/markdoc/default";import{reporter as p}from"../../../tools/notifiers/reporter.js";import*as u from"../../../../markdoc/nodes/index.js";import d from"../../../../markdoc/tags/index.js";import{includes as l}from"./functions/includes.js";import{importUserTags as h}from"./import-user-tags.js";import{concat as O}from"./functions/concat.js";const y=g.tags;function b(o){return Object.fromEntries(Object.entries(o).map(([r,e])=>[e.tagName||r,e]))}function T(o){const{tags:r,functions:e={},...n}=o,a={...r,...n};let i=Object.entries(a);const s=[],t=[];for(const[c,m]of i)c in f.nodes?s.push([c,m]):t.push([c,m]);return{nodes:Object.fromEntries(s),tags:Object.fromEntries(t),functions:e}}async function D(o="../../../esbuild/cache/server/",r=""){let e;try{e=(await h(o)).schema}catch(t){throw t.code==="ERR_MODULE_NOT_FOUND"?(p.printErrors(),new Error("Please fix the errors above and try again.")):t}const{tags:n={},nodes:a={},functions:i={}}=T(e),s={tags:{schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean}}}}};return{nodes:{...u,...a},tags:{...d,...y,...b(n),...s.tags},functions:{...f.functions,...i,includes:l,concat:O}}}export{D as getMarkdocOptions};
@@ -1 +1 @@
1
- import*as l from"path";import{MARKDOC_PARTIALS_DATA_KEY as f,MARKDOC_PARTIALS_DEPS_KEY as D}from"../../../store.js";import{isPartial as h}from"../is-partial.js";function A(e,t){return Promise.all(e.map(t)).then(o=>e.filter((i,n)=>o[n]))}async function C(e,t){const{markdown:o}=await e.getConfig(),i=o?.partialsFolders??[],n=await A(e.fs.scan(/\.md$/),async a=>!(!l.posix.basename(a.relativePath).endsWith(".md")||await e.isPathIgnored(a.relativePath)||!h(a.relativePath,i)));t.setGlobalConfig({[f]:Object.fromEntries(n.map(a=>[a.relativePath,{}]))});const m={},p={};for(const a of n){const{ast:s,info:r}=await t.parseMarkdoc(a,e);m[a.relativePath]=s;const c=Array.isArray(r.dynamicMarkdocComponents)?r.dynamicMarkdocComponents:[],d=r.sharedDataDeps instanceof Set?Array.from(r.sharedDataDeps):Array.isArray(r.sharedDataDeps)?r.sharedDataDeps:[];p[a.relativePath]={dynamicComponents:new Set(c),sharedDataDeps:new Set(d)}}return t.setGlobalConfig({[D]:Object.fromEntries(Object.entries(p).map(([a,s])=>[a,{dynamicComponents:Array.from(s.dynamicComponents),sharedDataDeps:Array.from(s.sharedDataDeps)}]))}),m}export{C as prepareMarkdocPartials};
1
+ import*as f from"path";import{MARKDOC_PARTIALS_DATA_KEY as D,MARKDOC_PARTIALS_DEPS_KEY as A}from"../../../store.js";import{isPartial as y}from"../is-partial.js";function h(t,s){return Promise.all(t.map(s)).then(i=>t.filter((o,n)=>i[n]))}async function b(t,s){const{markdown:i}=await t.getConfig(),o=i?.partialsFolders??[],n=await h(t.fs.scan(/\.md$/),async a=>!(!f.posix.basename(a.relativePath).endsWith(".md")||await t.isPathIgnored(a.relativePath)||!y(a.relativePath,o)));s.setGlobalConfig({[D]:Object.fromEntries(n.map(a=>[a.relativePath,{}]))});const p={},m={};for(const a of n){const{ast:e,info:r}=await s.parseMarkdoc(a,t);p[a.relativePath]=e;const l=Array.isArray(r.dynamicMarkdocComponents)?r.dynamicMarkdocComponents:[],c=r.sharedDataDeps instanceof Set?Array.from(r.sharedDataDeps):Array.isArray(r.sharedDataDeps)?r.sharedDataDeps:[],d=Array.isArray(r.partials)?r.partials:[];m[a.relativePath]={dynamicComponents:new Set(l),sharedDataDeps:new Set(c),partials:new Set(d)}}return s.setGlobalConfig({[A]:Object.fromEntries(Object.entries(m).map(([a,e])=>[a,{dynamicComponents:Array.from(e.dynamicComponents),sharedDataDeps:Array.from(e.sharedDataDeps),partials:Array.from(e.partials)}]))}),p}export{b as prepareMarkdocPartials};
@@ -1 +1 @@
1
- import{getNodeAttribute as r}from"../helpers/get-node-attribute.js";import{getInnerText as i}from"../helpers/get-inner-text.js";function u(t){const e=r(t,"level");if(e)return{value:i(t.children),id:r(t,"id"),depth:e}}export{u as getHeadingData};
1
+ import{getNodeAttribute as r}from"../../../../../markdoc/helpers/get-node-attribute.js";import{getInnerText as i}from"../../../../../markdoc/helpers/get-inner-text.js";function u(t){const e=r(t,"level");if(e)return{value:i(t.children),id:r(t,"id"),depth:e}}export{u as getHeadingData};
@@ -1 +1 @@
1
- import{nanoid as p}from"nanoid";import{logger as h}from"../../../../tools/notifiers/logger.js";import{sha as m}from"../../../../utils/crypto/sha.js";const a={};function i(e){if(e.toLowerCase().includes("gantt")&&!e.toLowerCase().includes("todaymarker off")){const o=new Date().toISOString().split("T")[0];return m(e+o)}return m(e)}async function y(e,c="default"){if(e.length===0)return[];const r=[];for(let t=0;t<e.length;t++){const n=i(e[t]);a[n]||r.push(e[t])}if(r.length){const t=process.env.REDOCLY_MERMAID_MICROSERVICE_URL||"https://api.redocly.com/mermaid",n=h.startTiming(),d=p(),f=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","x-request-id":process.env.REQUEST_ID||""},body:JSON.stringify({definitions:r,rayId:d,theme:c,organizationId:process.env.ORGANIZATION_ID})});if(f.status!==200)throw new Error(`Something went wrong during remote rendering. Please, save this Ray ID: ${d} and contact Redocly team.`);h.verboseTime(n,"Rendered mermaid diagrams (%s)",r.length);const g=await f.json();for(let s=0;s<r.length;s++){const l=i(r[s]);a[l]=g[s]}}const o=[];for(let t=0;t<e.length;t++){const n=i(e[t]);o.push(a[n])}return o}export{a as cache,i as generateDiagramHash,y as renderMermaid};
1
+ import{nanoid as R}from"nanoid";import{envConfig as i}from"../../../../config/env-config.js";import{logger as h}from"../../../../tools/notifiers/logger.js";import{sha as g}from"../../../../utils/crypto/sha.js";const s={};function c(t){if(t.toLowerCase().includes("gantt")&&!t.toLowerCase().includes("todaymarker off")){const o=new Date().toISOString().split("T")[0];return g(t+o)}return g(t)}async function O(t,d="default"){if(t.length===0)return[];const r=[];for(let e=0;e<t.length;e++){const n=c(t[e]);s[n]||r.push(t[e])}if(r.length){const e=i.REDOCLY_MERMAID_MICROSERVICE_URL||"https://api.redocly.com/mermaid",n=h.startTiming(),f=R(),m=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","x-request-id":i.REQUEST_ID||""},body:JSON.stringify({definitions:r,rayId:f,theme:d,organizationId:i.ORGANIZATION_ID})});if(m.status!==200)throw new Error(`Something went wrong during remote rendering. Please, save this Ray ID: ${f} and contact Redocly team.`);h.verboseTime(n,"Rendered mermaid diagrams (%s)",r.length);const l=await m.json();for(let a=0;a<r.length;a++){const p=c(r[a]);s[p]=l[a]}}const o=[];for(let e=0;e<t.length;e++){const n=c(t[e]);o.push(s[n])}return o}export{s as cache,c as generateDiagramHash,O as renderMermaid};
@@ -1 +1 @@
1
- import{isNode as l}from"../helpers/guards/is-node.js";import{isStringNode as s}from"../helpers/guards/is-string-node.js";import{getNodeAttribute as c}from"../helpers/get-node-attribute.js";import{getInnerText as a}from"../helpers/get-inner-text.js";function p(t){const r=c(t,"level");if(r)return{value:a(t.children),id:c(t,"id"),depth:r}}function h(t){let r;return f(t,i=>{if(l(i)&&i.type==="heading")return r=p(i)?.value,o}),r}const o=Symbol("Exit visitor");function f(t,r){if(!t)return;const i=r(t);if(i===o)return i;for(const e of t.children){if(!e||s(e))continue;const n=f(e,r);if(n===o)return n}const u=t.slots||{};for(const e of Object.values(u)){if(!e||s(e))continue;const n=f(e,r);if(n===o)return n}}export{o as EXIT,h as extractFirstHeading,p as getHeadingData,f as visit};
1
+ import{isNode as l}from"../../../../../markdoc/helpers/guards/is-node.js";import{isStringNode as s}from"../../../../../markdoc/helpers/guards/is-string-node.js";import{getNodeAttribute as c}from"../../../../../markdoc/helpers/get-node-attribute.js";import{getInnerText as a}from"../../../../../markdoc/helpers/get-inner-text.js";function p(t){const r=c(t,"level");if(r)return{value:a(t.children),id:c(t,"id"),depth:r}}function h(t){let r;return f(t,i=>{if(l(i)&&i.type==="heading")return r=p(i)?.value,o}),r}const o=Symbol("Exit visitor");function f(t,r){if(!t)return;const i=r(t);if(i===o)return i;for(const e of t.children){if(!e||s(e))continue;const n=f(e,r);if(n===o)return n}const u=t.slots||{};for(const e of Object.values(u)){if(!e||s(e))continue;const n=f(e,r);if(n===o)return n}}export{o as EXIT,h as extractFirstHeading,p as getHeadingData,f as visit};
@@ -1,3 +1,3 @@
1
1
  import type { LifecycleContext } from '../../../types';
2
- export declare const resolveRawPartials: (content: string, relativePath: string, partialsFolders: string[] | undefined, context: LifecycleContext, referenceChain?: string[]) => Promise<string>;
2
+ export declare const resolveRawPartials: (content: string, relativePath: string, _partialsFolders: string[] | undefined, context: LifecycleContext, referenceChain?: string[]) => Promise<string>;
3
3
  //# sourceMappingURL=resolve-raw-partials.d.ts.map
@@ -1,2 +1,2 @@
1
- import p from"node:path";import _ from"is-glob";import{slash as $}from"../../../../utils/path/slash.js";import{reporter as d}from"../../../tools/notifiers/reporter.js";import{convertGlobToRegex as h}from"../../../utils/index.js";import{formatMarkdocError as k}from"../errors.js";import{isPartial as E}from"../is-partial.js";const b=/\{\% ?raw-partial file="([^"]+)" ?\/?\%\}/gm,y=async(t,a,i=[],o,l=[a])=>{for(const s of i){const r=_(s)?h(s):new RegExp(`^${s}/`);await o.fs.scan(r)}const n=[],f=t.replace(b,(s,r)=>(n.push(u(s,r)),"_$redocly$"+(n.length-1)+"$")),w=await Promise.all(n);return f.replace(/_\$redocly\$(\d+)\$/g,(s,r)=>w[+r]);async function u(s,r){const e=r.startsWith("/")?r.slice(1):$(p.relative(o.fs.cwd,p.resolve(o.fs.cwd,p.dirname(a),r)));if(l.includes(e)){const c=[...l,e];return await d.panicOnBuildContentError(`Circular reference chain detected when processing raw partials: ${c.map(()=>"%rp").join(" -> ")}`,...c),""}const m=!o.fs.exists(e),g=!e.endsWith(".md")||await o.isPathIgnored(e)||!E(e,i);if(m||g){const R={type:"resolve_link",lines:[1,t.split(`
2
- `).length],meta:{rawLink:r,link:e},error:{id:"error",level:"error",message:m?"Raw partial file does not exist":"Could not resolve raw partial. Starting with 0.73.0 version all partials should be placed in partials folders"}};return d.reportMarkdocProblem(k(R,a,t)),""}const v=await o.fs.read(e);return await y(v,e,i,o,[...l,e])}};export{y as resolveRawPartials};
1
+ import p from"node:path";import{slash as v}from"../../../../utils/path/slash.js";import{reporter as d}from"../../../tools/notifiers/reporter.js";import{formatMarkdocError as R}from"../errors.js";import{isPartial as $}from"../is-partial.js";const h=/\{\% ?raw-partial file="([^"]+)" ?\/?\%\}/gm,k=async(t,o,E=[],e,i=[o])=>{for(const s of["_partials"])await e.fs.scan(new RegExp(`^${s}/`));const l=[],f=t.replace(h,(s,a)=>(l.push(w(s,a)),"_$redocly$"+(l.length-1)+"$")),m=await Promise.all(l);return f.replace(/_\$redocly\$(\d+)\$/g,(s,a)=>m[+a]);async function w(s,a){const r=a.startsWith("/")?a.slice(1):v(p.relative(e.fs.cwd,p.resolve(e.fs.cwd,p.dirname(o),a)));if(i.includes(r)){const n=[...i,r];return await d.panicOnBuildContentError(`Circular reference chain detected when processing raw partials: ${n.map(()=>"%rp").join(" -> ")}`,...n),""}const c=!e.fs.exists(r),u=!r.endsWith(".md")||await e.isPathIgnored(r)||!$(r,["_partials"]);if(c||u){const g={type:"resolve_link",lines:[1,t.split(`
2
+ `).length],meta:{rawLink:a,link:r},error:{id:"error",level:"error",message:c?"Raw partial file does not exist":"Could not resolve raw partial. Starting with 0.73.0 version all partials should be placed in partials folders"}};return d.reportMarkdocProblem(R(g,o,t)),""}const _=await e.fs.read(r);return await k(_,r,["_partials"],e,[...i,r])}};export{k as resolveRawPartials};
@@ -1 +1 @@
1
- import A from"path";import{REDOCLY_TEAMS_RBAC as m,REDOCLY_ROUTE_RBAC as y}from"@redocly/config";import{removeTrailingSlash as R}from"../../../utils/url/remove-trailing-slash.js";import{addLeadingSlash as S}from"../../../utils/url/add-leading-slash.js";import{resolveFrontmatterKeys as P}from"../resolve-frontmatter-keys.js";import{resolveItem as T}from"../nav-utils.js";const C=new WeakMap;async function _(l,i,s,e,a){const o=await s.getConfig(),{ast:d,compoundHash:n,info:c}=await a.parseMarkdoc(l,s),g={...o.markdown?.editPage,...e.markdown?.editPage},t=i.fsPath!=null?s.fs.getFileInfo(i.fsPath):null,f=!g?.hide&&g?.baseUrl?{to:R(g.baseUrl)+S(t?.realRelativePath||i.fsPath||"")}:void 0,k={...o.feedback,...e.feedback},u=e.feedback?{type:k.type||"sentiment",settings:k.settings||{},hide:e.feedback?.hide}:void 0;let w=C.get(d),r=w?.ast;(!r||w?.compoundHash!==n)&&(r=JSON.stringify(d),C.set(d,{ast:r,compoundHash:n}));let h;e.navigation&&(h={...e.navigation,nextButton:await L(e.navigation.nextButton,i,a,s),previousButton:await L(e.navigation.previousButton,i,a,s)});const p=e?.seo?await P(e.seo,["image"],i.fsPath||"",a,s):void 0,v=c.tagList;Array.isArray(v)&&v.includes("code-walkthrough")&&(e.markdown=e.markdown||{},e.markdown.toc={hide:!0},e.footer=e.footer||{},e.footer={hide:!0});const b=e?.seo?.title||await i.getNavText?.();return{ast:r,frontmatter:await P({...e,...u!==void 0?{feedback:u}:{},...p!==void 0?{seo:p}:{},...h!==void 0?{navigation:h}:{}},o.markdown?.frontMatterKeysToResolve||["image","links"],i.fsPath||"",a,s),editPage:f,props:{metadata:{markdoc:{tagList:c.tagList}},seo:{...p,...b?{title:b}:{}}},[m]:i[m],[y]:i[y]}}async function L(l,i,s,e){if(!l||typeof l!="object")return;let a=l,o,d;if("page"in a&&typeof a.page=="string"){const{page:t,...f}=a;a=f,o=t}if("label"in a&&typeof a.label=="string"){const{label:t,...f}=a;a=f,d=t}let n;if(o){const t=await T({page:o},i.fsPath?A.dirname(i.fsPath):".",s,e,{navFile:i.fsPath||""});n=Array.isArray(t)?t[0]:t,n=n?.type!=="error"?n:void 0}const c=n?.routeSlug,g=d??n?.label;return{...a,label:g,link:c}}export{_ as markdownStaticDataLoader};
1
+ import R from"path";import{REDOCLY_TEAMS_RBAC as b,REDOCLY_ROUTE_RBAC as C}from"@redocly/config";import{removeTrailingSlash as S}from"../../../utils/url/remove-trailing-slash.js";import{addLeadingSlash as T}from"../../../utils/url/add-leading-slash.js";import{resolveFrontmatterKeys as m}from"../resolve-frontmatter-keys.js";import{resolveItem as B}from"../nav-utils.js";const A=new WeakMap;async function F(l,i,s,e,a){const d=await s.getConfig(),{ast:t,compoundHash:n,info:c}=await a.parseMarkdoc(l,s),g={...d.markdown?.editPage,...e.markdown?.editPage},o=i.fsPath!=null?s.fs.getFileInfo(i.fsPath):null,f=!g?.hide&&g?.baseUrl?{to:S(g.baseUrl)+T(o?.realRelativePath||i.fsPath||"")}:void 0,u={...d.feedback,...e.feedback},w=e.feedback?{type:u.type||"sentiment",settings:u.settings||{},hide:e.feedback?.hide}:void 0;Array.isArray(e.banner)&&(e.banner=e.banner.map(r=>r&&r.rbac?{...r,[b]:r.rbac}:r));let v=A.get(t),h=v?.ast;(!h||v?.compoundHash!==n)&&(h=JSON.stringify(t),A.set(t,{ast:h,compoundHash:n}));let p;e.navigation&&(p={...e.navigation,nextButton:await L(e.navigation.nextButton,i,a,s),previousButton:await L(e.navigation.previousButton,i,a,s)});const k=e?.seo?await m(e.seo,["image"],i.fsPath||"",a,s):void 0,y=c.tagList;Array.isArray(y)&&y.includes("code-walkthrough")&&(e.markdown=e.markdown||{},e.markdown.toc={hide:!0},e.footer=e.footer||{},e.footer={hide:!0});const P=e?.seo?.title||await i.getNavText?.();return{ast:h,frontmatter:await m({...e,...w!==void 0?{feedback:w}:{},...k!==void 0?{seo:k}:{},...p!==void 0?{navigation:p}:{}},d.markdown?.frontMatterKeysToResolve||["image","links"],i.fsPath||"",a,s),editPage:f,props:{metadata:{markdoc:{tagList:c.tagList}},seo:{...k,...P?{title:P}:{}}},[b]:i[b],[C]:i[C]}}async function L(l,i,s,e){if(!l||typeof l!="object")return;let a=l,d,t;if("page"in a&&typeof a.page=="string"){const{page:o,...f}=a;a=f,d=o}if("label"in a&&typeof a.label=="string"){const{label:o,...f}=a;a=f,t=o}let n;if(d){const o=await B({page:d},i.fsPath?R.dirname(i.fsPath):".",s,e,{navFile:i.fsPath||""});n=Array.isArray(o)?o[0]:o,n=n?.type!=="error"?n:void 0}const c=n?.routeSlug,g=t??n?.label;return{...a,label:g,link:c}}export{F as markdownStaticDataLoader};
@@ -1 +1 @@
1
- import u from"@markdoc/markdoc";import{isTag as b}from"./markdoc/helpers/guards/is-tag.js";import{slugger as g}from"../../utils/index.js";import{getMarkdocOptions as l}from"./markdoc/markdoc-options.js";import{visit as h,getHeadingData as k}from"./markdoc/plugins/utils.js";import{renderMermaid as v}from"./markdoc/plugins/render-mermaid.js";import{deepStringify as M}from"./markdoc/utils/deep-stringify.js";import{stringifyTagChildrenObjects as w}from"./utils/stringify-tag-children-objects.js";async function _(d,e,p){const c=await l(p),t=[],a=[],i=M(e.variables?.pageProps),{headers:y,...f}=e.variables||{};g.reset();const s=u.transform(d,{...c,...e,variables:{...f,pageProps:i}});let o=0;h(s,r=>{if(b(r)){switch(r.name){case"Heading":r.attributes.__idx=o,o++;const n=k(r);n&&t.push(n);break;case"Mermaid":a.push({tag:r,source:r.attributes.diagramSource});break}w(r)}});const m=await v(a.map(r=>r.source));for(let r=0;r<m.length;r++)a[r].tag.attributes.diagramHtml=m[r];return{headings:t,renderableAst:s,pageProps:i}}export{_ as transformMdAst};
1
+ import u from"@markdoc/markdoc";import{isTag as b}from"../../../markdoc/helpers/guards/is-tag.js";import{slugger as g}from"../../utils/index.js";import{getMarkdocOptions as l}from"./markdoc/markdoc-options.js";import{visit as h,getHeadingData as k}from"./markdoc/plugins/utils.js";import{renderMermaid as v}from"./markdoc/plugins/render-mermaid.js";import{deepStringify as M}from"./markdoc/utils/deep-stringify.js";import{stringifyTagChildrenObjects as w}from"./utils/stringify-tag-children-objects.js";async function _(d,e,p){const c=await l(p),t=[],a=[],i=M(e.variables?.pageProps),{headers:y,...f}=e.variables||{};g.reset();const s=u.transform(d,{...c,...e,variables:{...f,pageProps:i}});let o=0;h(s,r=>{if(b(r)){switch(r.name){case"Heading":r.attributes.__idx=o,o++;const n=k(r);n&&t.push(n);break;case"Mermaid":a.push({tag:r,source:r.attributes.diagramSource});break}w(r)}});const m=await v(a.map(r=>r.source));for(let r=0;r<m.length;r++)a[r].tag.attributes.diagramHtml=m[r];return{headings:t,renderableAst:s,pageProps:i}}export{_ as transformMdAst};
@@ -1,4 +1,4 @@
1
- import _ from"@markdoc/markdoc";import D from"node:path";import{AI_SEARCH_CHUNK_SIZE as E,AI_SEARCH_DOCUMENT_CHUNK_SIZE as M}from"../../../constants/plugins/search.js";import{slugger as P}from"../../../utils/slugger.js";import{toMarkdown as U}from"./to-markdown.js";import{AstToSearchNodeTransformer as b}from"./walk-sections.js";import{getLocaleFromRelativePath as x}from"../../../fs/utils/get-locale-from-relative-path.js";import{HeadingNode as I}from"./nodes/heading-node.js";import{extractDocumentSearchFacets as y}from"./search-facets.js";import{formatDocumentMetadata as L}from"../../search/utils.js";import{TagNode as H}from"./nodes/tag-node.js";import{MARKDOC_PARTIALS_DATA_KEY as K}from"../../../store.js";const N=Symbol(),W=(n,c)=>async(e,r,u,s)=>{if(c?.excludeFromSearch)return;P.reset();const i=await e.getNavText?.()||D.basename(e.fsPath),p=_.Ast.fromJSON(r.ast),m=new b({partials:s.getGlobalConfig(K)||{},getInnerContent:U,ast:p,skipConditionals:!0}),f=Array.from(m.transform());return{async getLLMsTxts(){const o=c?.seo,g=o&&typeof o=="object"&&"description"in o?String(o.description):void 0,C=f.map(t=>t.content).filter(Boolean).join(`
1
+ import _ from"@markdoc/markdoc";import D from"node:path";import{AI_SEARCH_CHUNK_SIZE as E,AI_SEARCH_DOCUMENT_CHUNK_SIZE as M}from"../../../constants/plugins/search.js";import{slugger as P}from"../../../../utils/slugger.js";import{toMarkdown as U}from"./to-markdown.js";import{AstToSearchNodeTransformer as b}from"./walk-sections.js";import{getLocaleFromRelativePath as x}from"../../../fs/utils/get-locale-from-relative-path.js";import{HeadingNode as I}from"./nodes/heading-node.js";import{extractDocumentSearchFacets as y}from"./search-facets.js";import{formatDocumentMetadata as L}from"../../search/utils.js";import{TagNode as H}from"./nodes/tag-node.js";import{MARKDOC_PARTIALS_DATA_KEY as K}from"../../../store.js";const N=Symbol(),W=(n,c)=>async(e,r,u,s)=>{if(c?.excludeFromSearch)return;P.reset();const i=await e.getNavText?.()||D.basename(e.fsPath),p=_.Ast.fromJSON(r.ast),m=new b({partials:s.getGlobalConfig(K)||{},getInnerContent:U,ast:p,skipConditionals:!0}),f=Array.from(m.transform());return{async getLLMsTxts(){const o=c?.seo,g=o&&typeof o=="object"&&"description"in o?String(o.description):void 0,C=f.map(t=>t.content).filter(Boolean).join(`
2
2
  `).trim();return[{title:i,description:g,slug:e.slug,fsPath:e.fsPath,content:C,includeInLLMsTxt:!0}]},async getSearchDocuments(){return j(e,f,n,i)}}};function j(n,c,e,r){const u=n.slug,s=new Map,i=n.metadata||{},p=y(i,e),m=L(i),f=m?`Metadata:
3
3
  ${m}
4
4
  `:"";let o=[];for(const t of c)if(t instanceof I){o.splice(t.attributes.level-1,6);const a=t.attributes.level>2,l=o[o.length-1]?.title,S=o[o.length-1]?.url,A=a&&l?l:w(r,t),T=a&&S?S:t.getUrl(u),d={title:A,content:"",url:T,level:t.attributes.level,toc:o.map(v=>h(v.section)).join(`
@@ -1,2 +1,2 @@
1
- import{SEARCH_DOCUMENT_METADATA_KEY as p}from"../../../constants/plugins/search.js";import{TagNode as E}from"./nodes/tag-node.js";import{TextNode as U}from"./nodes/text-node.js";import{slugger as M}from"../../../utils/slugger.js";import{MdSearchDocument as A}from"./md-search-document.js";import{HeadingNode as N}from"./nodes/heading-node.js";const T=Symbol();function _(c,e){if(!c)return e;if(!e)return c;const u=[" ",`
2
- `," "],s=u.some(n=>c.endsWith(n)),a=u.some(n=>e.startsWith(n));return c+(!s&&!a?" ":"")+e}function v(c,e,u,s,a,d={},n){const g=new Map(Array.from({length:6},(t,m)=>[m,""])),i=new Map;let h=null;s=s??{},M.reset();for(const t of c.transform()){const m=t.getUrl(e),f={...s};if(t.rbacTeam&&(f[t.rbacTeam.toLowerCase()]="read"),t instanceof U){const o=t.parentNode?.id,r=o?`${m}#${o}`:T,l=i.get(r)??new A(u,e,[],d,f,a);l.text=_(l.text,t.content),l.facets=d,i.set(r,l);continue}if(t instanceof E){const o=`${m}#${t.id}`,r=new A(t.content,t.getUrl(e),t.getPath(g),d,f,a);i.set(o,r);continue}if(t instanceof N){g.set(t.attributes.level,t.content);const o=new A(t.content,t.getUrl(e),t.getPath(g),d,f,a),r=`${m}#${t.id}`;i.set(r,o),h===null&&(h=o)}}const D=Array.from(i.values()),S=h??D[0];if(S&&n?.includes&&(S[p].curated=!0,S[p].includes=n.includes),n?.excludes)for(const t of D)t[p].curated=!0,t[p].excludes=n.excludes;return D}export{v as getSearchDocuments};
1
+ import{SEARCH_DOCUMENT_METADATA_KEY as p}from"../../../constants/plugins/search.js";import{slugger as E}from"../../../../utils/slugger.js";import{TagNode as U}from"./nodes/tag-node.js";import{TextNode as M}from"./nodes/text-node.js";import{MdSearchDocument as A}from"./md-search-document.js";import{HeadingNode as N}from"./nodes/heading-node.js";const T=Symbol();function _(c,e){if(!c)return e;if(!e)return c;const u=[" ",`
2
+ `," "],s=u.some(n=>c.endsWith(n)),a=u.some(n=>e.startsWith(n));return c+(!s&&!a?" ":"")+e}function v(c,e,u,s,a,d={},n){const g=new Map(Array.from({length:6},(t,m)=>[m,""])),i=new Map;let h=null;s=s??{},E.reset();for(const t of c.transform()){const m=t.getUrl(e),f={...s};if(t.rbacTeam&&(f[t.rbacTeam.toLowerCase()]="read"),t instanceof M){const o=t.parentNode?.id,r=o?`${m}#${o}`:T,l=i.get(r)??new A(u,e,[],d,f,a);l.text=_(l.text,t.content),l.facets=d,i.set(r,l);continue}if(t instanceof U){const o=`${m}#${t.id}`,r=new A(t.content,t.getUrl(e),t.getPath(g),d,f,a);i.set(o,r);continue}if(t instanceof N){g.set(t.attributes.level,t.content);const o=new A(t.content,t.getUrl(e),t.getPath(g),d,f,a),r=`${m}#${t.id}`;i.set(r,o),h===null&&(h=o)}}const D=Array.from(i.values()),S=h??D[0];if(S&&n?.includes&&(S[p].curated=!0,S[p].includes=n.includes),n?.excludes)for(const t of D)t[p].curated=!0,t[p].excludes=n.excludes;return D}export{v as getSearchDocuments};
@@ -1 +1 @@
1
- import{getInnerText as o}from"../../markdoc/helpers/get-inner-text.js";import{slugger as c}from"../../../../utils/slugger.js";class a{#t;#e;#r;#n;constructor(t){const{node:r,content:n,rbacTeam:s,parentNode:i}=t;this.#t=r,this.#e=n,this.#r=i,this.#n=s}get attributes(){return this.#t.attributes}get content(){return this.#e}get node(){return this.#t}get id(){throw new Error("SectionNode needs an id mixin applied")}get parentNode(){return this.#r}get rbacTeam(){return this.#n}}function h(e){let t=0;return class extends e{#t=++t;get id(){return this.#t}}}function g(e){return class extends e{#t;constructor(...t){super(...t);const r=this;this.#t=c.slug(o(r.node.children),{replaceDots:!0,replaceSlashes:!0})}get id(){return this.#t}}}export{a as SectionNode,h as WithCounterId,g as WithSlugId};
1
+ import{getInnerText as o}from"../../../../../markdoc/helpers/get-inner-text.js";import{slugger as c}from"../../../../../utils/slugger.js";class a{#t;#e;#r;#n;constructor(t){const{node:r,content:n,rbacTeam:s,parentNode:i}=t;this.#t=r,this.#e=n,this.#r=i,this.#n=s}get attributes(){return this.#t.attributes}get content(){return this.#e}get node(){return this.#t}get id(){throw new Error("SectionNode needs an id mixin applied")}get parentNode(){return this.#r}get rbacTeam(){return this.#n}}function h(e){let t=0;return class extends e{#t=++t;get id(){return this.#t}}}function g(e){return class extends e{#t;constructor(...t){super(...t);const r=this;this.#t=c.slug(o(r.node.children),{replaceDots:!0,replaceSlashes:!0})}get id(){return this.#t}}}export{a as SectionNode,h as WithCounterId,g as WithSlugId};
@@ -1 +1 @@
1
- import p from"@markdoc/markdoc";import{REDOCLY_ROUTE_RBAC as l,REDOCLY_TEAMS_RBAC as A}from"@redocly/config";import{getSearchDocuments as h}from"./get-search-documents.js";import{AstToSearchNodeTransformer as T}from"./walk-sections.js";import{setDocumentSearchFacets as R,extractDocumentSearchFacets as S}from"./search-facets.js";import{getInnerText as C}from"../markdoc/helpers/get-inner-text.js";import{MARKDOC_PARTIALS_DATA_KEY as D}from"../../../store.js";import{normalizeFrontmatterKeywords as _}from"../../helpers/normalize-frontmatter-keywords.js";function K(e,m,o,c){return async(t,r,a)=>{if(e?.excludeFromSearch)return[];const i=p.Ast.fromJSON(r.ast),f=new T({ast:i,getInnerContent:C,partials:a.getGlobalConfig(D)||{}}),u=t.metadata||{},n=S(u,o);R(n,o,c);const d=e?.seo?.title||m,{result:s}=_(e?.keywords);return h(f,t.slug,d,r[A],r[l],n,s||void 0)}}export{K as searchResolver};
1
+ import p from"@markdoc/markdoc";import{REDOCLY_ROUTE_RBAC as l,REDOCLY_TEAMS_RBAC as A}from"@redocly/config";import{getInnerText as h}from"../../../../markdoc/helpers/get-inner-text.js";import{getSearchDocuments as T}from"./get-search-documents.js";import{AstToSearchNodeTransformer as R}from"./walk-sections.js";import{setDocumentSearchFacets as S,extractDocumentSearchFacets as C}from"./search-facets.js";import{MARKDOC_PARTIALS_DATA_KEY as D}from"../../../store.js";import{normalizeFrontmatterKeywords as _}from"../../helpers/normalize-frontmatter-keywords.js";function K(e,m,o,c){return async(t,r,a)=>{if(e?.excludeFromSearch)return[];const i=p.Ast.fromJSON(r.ast),f=new R({ast:i,getInnerContent:h,partials:a.getGlobalConfig(D)||{}}),u=t.metadata||{},n=C(u,o);S(n,o,c);const d=e?.seo?.title||m,{result:s}=_(e?.keywords);return T(f,t.slug,d,r[A],r[l],n,s||void 0)}}export{K as searchResolver};