@redocly/redoc-reef 0.133.0-next.6 → 0.134.0-next.0

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 (37) hide show
  1. package/CHANGELOG.md +123 -26
  2. package/dist/client/app/hooks/useBanner.js +1 -1
  3. package/dist/client/app/hooks/utils/match-banner-target.d.ts +7 -1
  4. package/dist/client/app/hooks/utils/match-banner-target.js +1 -1
  5. package/dist/client/app/markdoc/custom-components/openapi/json-schema.js +1 -1
  6. package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -1
  7. package/dist/constants/l10n/langs/ar.js +1 -1
  8. package/dist/constants/l10n/langs/de.js +1 -1
  9. package/dist/constants/l10n/langs/en.js +1 -1
  10. package/dist/constants/l10n/langs/es.js +1 -1
  11. package/dist/constants/l10n/langs/fr.js +1 -1
  12. package/dist/constants/l10n/langs/hi.js +1 -1
  13. package/dist/constants/l10n/langs/it.js +1 -1
  14. package/dist/constants/l10n/langs/ja.js +1 -1
  15. package/dist/constants/l10n/langs/ko.js +1 -1
  16. package/dist/constants/l10n/langs/pl.js +1 -1
  17. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  18. package/dist/constants/l10n/langs/pt.js +1 -1
  19. package/dist/constants/l10n/langs/ru.js +1 -1
  20. package/dist/constants/l10n/langs/uk.js +1 -1
  21. package/dist/constants/l10n/langs/zh.js +1 -1
  22. package/dist/server/api-routes/execute-api-route.js +1 -1
  23. package/dist/server/plugins/api-functions/index.js +1 -1
  24. package/dist/server/plugins/asyncapi-docs/get-server-props.js +1 -1
  25. package/dist/server/plugins/catalog-entities/database/catalog-entities-publisher.d.ts +2 -2
  26. package/dist/server/plugins/catalog-entities/database/catalog-entities-publisher.js +6 -6
  27. package/dist/server/plugins/catalog-entities/database/remote-publish-lock-service.d.ts +22 -0
  28. package/dist/server/plugins/catalog-entities/database/remote-publish-lock-service.js +1 -0
  29. package/dist/server/plugins/catalog-entities/database/types.d.ts +1 -0
  30. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  31. package/dist/server/plugins/markdown/markdown-frontmatter-loader.js +1 -1
  32. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
  33. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  34. package/dist/server/plugins/mcp/types.d.ts +1 -0
  35. package/dist/server/plugins/openapi-docs/get-server-props.js +1 -1
  36. package/dist/server/utils/rbac.js +1 -1
  37. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,102 @@
1
1
  # @redocly/redoc-reef
2
2
 
3
+ ## 0.134.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e718f5e7020: Updated styles for the `cards` Markdoc tag.
8
+ - 5d34ebf32e7: Added `Implemented by` section to interface types in `graphql-docs` to display implementing types.
9
+
10
+ ### Patch Changes
11
+
12
+ - 9128ceb60a4: Fixed an issue where links inside schema descriptions rendered by the `json-schema` Markdoc tag did not include the project path prefix.
13
+ - 3745b0efc61: Fixed an issue where the search dialog closed on window resize.
14
+ - feff7549f14: Fixed an issue where front matter errors would falsely appear resolved after any edits to the file.
15
+ - 1aef2da3a89: Enter prerelease mode.
16
+ - be0e05cb14e: Fixed an issue where webhooks remained visible when all endpoints were hidden by `x-rbac` access control.
17
+ - d8df7b3ca37: Improved OpenAPI and AsyncAPI page rendering performance for projects with many Markdoc partials.
18
+ - ee9b6a26d8f: Improved error handling for API function files that do not export a default function.
19
+ - 4d8d5cd53db: Fixed an issue where embedded Replay (`replay-openapi` Markdoc tag) could crash when using the mock server.
20
+ - Updated dependencies [3745b0efc61]
21
+ - Updated dependencies [1aef2da3a89]
22
+ - Updated dependencies [106eaf2baa5]
23
+ - Updated dependencies [e718f5e7020]
24
+ - Updated dependencies [5d34ebf32e7]
25
+ - Updated dependencies [d8df7b3ca37]
26
+ - Updated dependencies [4d8d5cd53db]
27
+ - @redocly/theme@0.66.0-next.0
28
+ - @redocly/portal-plugin-mock-server@0.19.0-next.0
29
+ - @redocly/realm-asyncapi-sdk@0.12.0-next.0
30
+ - @redocly/portal-legacy-ui@0.17.0-next.0
31
+ - @redocly/asyncapi-docs@1.11.0-next.0
32
+ - @redocly/graphql-docs@1.11.0-next.0
33
+ - @redocly/openapi-docs@3.22.0-next.0
34
+
35
+ ## 0.133.0
36
+
37
+ ### Minor Changes
38
+
39
+ - 0f097a8536: Added multi-version API support for Docs MCP tools.
40
+ - e2b2f2e27f: Improved visibility and accessibility of Markdown links by adding an underline.
41
+ - 76cad3a2f3: Updated styles for page navigation buttons.
42
+ - b5906fb936: Updated the icon displayed alongside hyperlinks in the project.
43
+ - 0858f54ae5: Added Client ID Metadata Document (CIMD) support to the MCP OAuth flow.
44
+ - f2f525c850: Added support for callback URLs in `developerOnboarding`.
45
+ - 7e407eeb7c: Added `hreflang` alternate links for translated pages.
46
+ - 7e407eeb7c: Improved language picker accessibility by converting menu options to links.
47
+
48
+ ### Patch Changes
49
+
50
+ - e271a42c40: Prevented search engines from indexing Markdown pages generated by the `llms.txt` feature.
51
+ - ba76c06785: Fixed unauthenticated callback execution in the MCP docs server.
52
+ - 3367a23fae: Fixed an issue in OpenAPI docs route resolution where lines not tied to an operation generated incorrect URLs by duplicating the base slug.
53
+ - e13c79eb30: Fixed an issue where searching in projects without searchable content caused a server error.
54
+ - 36c67eafc2: Fixed rendering of non-Latin characters by enforcing UTF-8 encoding.
55
+ - f7725b9cc7: Fixed an issue where login and logout redirects caused 404 and URI mismatch errors in projects with path prefix.
56
+ - eeb767e9b4: Fixed an issue where preview login redirects failed when the branch hostname contained double hyphens.
57
+ - fac8607a7b: Fixed an issue where closing the search dialog modal locked page scrolling.
58
+ - 7cd2d9f19e: Fixed an issue in Realm Markdown image handling where inline `data:` image URLs were incorrectly treated as broken local routes.
59
+ - 84838a59f0: Excluded buttons and links from heading content to improve accessibility.
60
+ - 4d93e20695: Fixed an issue where MCP connect actions were hidden for OpenAPI pages excluded from search (`openapi.excludeFromSearch`).
61
+ - 86ded9afea: Fixed API function responses with status `204` to prevent errors when calling JSON or text helpers.
62
+ - c9c36d6ac3: Fixed curation in Typesense search.
63
+ - 7447d30745: Fixed security vulnerabilities `CVE-2026-44455`, `CVE-2026-44456`, `CVE-2026-44457`, `CVE-2026-44458` and `CVE-2026-44459` by upgrading `hono` to version `4.12.18`.
64
+ - a1bb760b29: Fixed an issue where the tooltips in API docs and Replay might partially render outside the viewport.
65
+ - c768a98d39: Fixed an issue where operation-level `x-rbac` rules removed the OpenAPI definition link from `llms.txt`.
66
+ - d3c1f3870c: Fixed an issue where API functions failed to hot-reload after files were added in Reunite's Webview or local preview.
67
+ - ba76c06785: Fixed an issue where MCP auth URLs were displayed after MCP docs had been disabled.
68
+ - 46f103f0c4: Updated `@redocly/openapi-core` to version `2.30.5`.
69
+ - Updated dependencies [e2b2f2e27f]
70
+ - Updated dependencies [76cad3a2f3]
71
+ - Updated dependencies [3367a23fae]
72
+ - Updated dependencies [b5906fb936]
73
+ - Updated dependencies [36c67eafc2]
74
+ - Updated dependencies [f2f525c850]
75
+ - Updated dependencies [49d39a0486]
76
+ - Updated dependencies [f2a18386e5]
77
+ - Updated dependencies [7e407eeb7c]
78
+ - Updated dependencies [fac8607a7b]
79
+ - Updated dependencies [5e5d990eac]
80
+ - Updated dependencies [84838a59f0]
81
+ - Updated dependencies [4d93e20695]
82
+ - Updated dependencies [7e407eeb7c]
83
+ - Updated dependencies [a1bb760b29]
84
+ - Updated dependencies [ab8c509bb9]
85
+ - Updated dependencies [e5a4a33708]
86
+ - Updated dependencies [4a857b489d]
87
+ - Updated dependencies [46f103f0c4]
88
+ - Updated dependencies [59198fb803]
89
+ - Updated dependencies [9f60402b86]
90
+ - Updated dependencies [4002f20f63]
91
+ - Updated dependencies [62ea0748ec]
92
+ - @redocly/theme@0.65.0
93
+ - @redocly/openapi-docs@3.21.0
94
+ - @redocly/asyncapi-docs@1.10.0
95
+ - @redocly/graphql-docs@1.10.0
96
+ - @redocly/realm-asyncapi-sdk@0.11.0
97
+ - @redocly/portal-plugin-mock-server@0.18.0
98
+ - @redocly/portal-legacy-ui@0.16.0
99
+
3
100
  ## 0.133.0-next.6
4
101
 
5
102
  ### Patch Changes
@@ -196,7 +293,7 @@
196
293
  - e88064ce2d: Added support for Excalidraw and PlantUML diagrams.
197
294
  Improved dark mode for Mermaid diagrams.
198
295
  - ae3272861b: Added support for `x-badges` in OpenAPI and AsyncAPI parameters and schema properties.
199
- Badges can now be rendered before and after field names.
296
+ Badges can be rendered before and after field names.
200
297
  - ce5a165177: Added support for `or` functions in RBAC conditions within Markdoc content.
201
298
 
202
299
  ### Patch Changes
@@ -406,7 +503,7 @@
406
503
  - 6561be12489: Fixed an issue where the "Last updated" date displayed incorrect values on project pages.
407
504
  - 60b9b77bc39: Fixed a bug that caused search result highlighting to break in Flexsearch when the query contained duplicate words.
408
505
  - ae3272861b4: Added support for `x-badges` in OpenAPI and AsyncAPI parameters and schema properties.
409
- Badges can now be rendered before and after field names.
506
+ Badges can be rendered before and after field names.
410
507
  - 87a97521127: Fixed an issue where `partial` Markdoc tags in OpenAPI and AsyncAPI `description` fields did not resolve when path separators differed.
411
508
  - Updated dependencies [4003b73d9ca]
412
509
  - Updated dependencies [ae3272861b4]
@@ -501,14 +598,14 @@
501
598
  - f7b6c52055: Improved appearance and deep linking for the `tabs` Markdoc tag.
502
599
  - d0b99c0768: Fixed URL fragment duplication when opening docs for endpoints with path parameters (e.g. `/foo/{id}/bar`).
503
600
  - 2d305eec36: Fixed the built-in CORS proxy failing with "fetch failed" for certain URLs.
504
- Now the browser's `accept-encoding` header isn't forwarded and the error message surfaces the underlying cause.
601
+ The browser's `accept-encoding` header isn't forwarded and the error message surfaces the underlying cause.
505
602
  - 1eb287db9f: Fixed code sample generation when path parameter examples contain integer values.
506
603
  - 807547ecbd: Improved build memory usage for large projects.
507
604
  - 7276b4e5d6: Fixed an issue in AI Search where clearing the product tag would still include the product in the search request.
508
605
  - a9a1ee0fe1: Fixed an issue where page actions remained visible even though `search` was disabled.
509
606
  - 9b9b43a1b4: Improved the accessibility of AsyncAPI docs.
510
607
  - 1cc1909566: Fixed an issue where optional properties of API operations were inconsistently displayed between API docs and Replay.
511
- The optional properties are now respect the configuration in `redocly.yaml`.
608
+ The optional properties respect the configuration in `redocly.yaml`.
512
609
  - 130c111688: Fixed security vulnerability `CVE-2026-26996` by upgrading `minimatch` to version `10.2.1`.
513
610
  - 7e3400d4a8: Fixed page actions overlapping the navbar.
514
611
  - d264713872: Fixed an issue where `rbac` configuration ignored versioned content folder paths with leading slashes.
@@ -572,7 +669,7 @@
572
669
  ### Patch Changes
573
670
 
574
671
  - 2d305eec36a: Fixed the built-in CORS proxy failing with "fetch failed" for certain URLs.
575
- Now the browser's `accept-encoding` header isn't forwarded and the error message surfaces the underlying cause.
672
+ The browser's `accept-encoding` header isn't forwarded and the error message surfaces the underlying cause.
576
673
 
577
674
  ## 0.131.0-next.13
578
675
 
@@ -602,7 +699,7 @@
602
699
  - 43955ab32fd: Improved the accessibility of OpenAPI and GraphQL docs.
603
700
  - 7276b4e5d63: Fixed an issue in AI Search where clearing the product tag would still include the product in the search request.
604
701
  - 1cc1909566f: Fixed an issue where optional properties of API operations were inconsistently displayed between API docs and Replay.
605
- The optional properties are now displayed or hidden according to configuration in `redocly.yaml`.
702
+ The optional properties are displayed or hidden according to configuration in `redocly.yaml`.
606
703
  - d59b5669cea: Updated `@redocly/openapi-core` to version `2.20.4`.
607
704
  - Updated dependencies [43955ab32fd]
608
705
  - Updated dependencies [7276b4e5d63]
@@ -859,7 +956,7 @@
859
956
  - ac12b3523a: Added an interactive lightbox viewer for Mermaid diagrams with zoom, pan, and keyboard navigation.
860
957
  - 85818157d8: Added bundling support for OpenAPI 3.2 `components/mediaTypes` references used in request and response content.
861
958
  - 1ff6da217d: Added support for branch-specific configuration in `redocly.yaml`.
862
- - 12fd642835: Transitioned AI Search to agent mode, now featuring expanded search capabilities and direct integration with the Docs MCP.
959
+ - 12fd642835: Transitioned AI Search to agent mode, featuring expanded search capabilities and direct integration with the Docs MCP.
863
960
  - ec292cdaaa: Made the **403 Forbidden** error page layout ejectable and improved its styling.
864
961
  - f117f86b3b: Added `login-button` Markdoc tag to render a login button on project pages.
865
962
  - 053051e82f: Added `rbac` support for banners to allow conditional visibility based on user team membership.
@@ -926,7 +1023,7 @@
926
1023
 
927
1024
  ### Minor Changes
928
1025
 
929
- - 12fd642835: Transitioned AI Search to agent mode, now featuring expanded search capabilities and direct integration with the Docs MCP.
1026
+ - 12fd642835: Transitioned AI Search to agent mode, featuring expanded search capabilities and direct integration with the Docs MCP.
930
1027
  - 053051e82f: Added `rbac` support for banners to allow conditional visibility based on user team membership.
931
1028
 
932
1029
  ### Patch Changes
@@ -3849,7 +3946,7 @@
3849
3946
  ### Minor Changes
3850
3947
 
3851
3948
  - ec9eff8ad9: Added support for partial loading of items included in large OpenAPI descriptions to improve performance.
3852
- Now, if a `tag` has more than 15 operations, the items are loaded quicker.
3949
+ If a `tag` has more than 15 operations, the items are loaded quicker.
3853
3950
  - 86f7780631: Added AI conversations UI with follow up questions.
3854
3951
  Added configurable suggestions to AI search.
3855
3952
 
@@ -3862,12 +3959,12 @@
3862
3959
  - 34a049d3d0: Fixed an issue where Markdown pages with `frontmatter.slug` directed users to a 404 error page when selected in a different language locale.
3863
3960
  - 03608f2a01: Fixed AI search error handling for Unauthorized and Forbidden errors.
3864
3961
  - a85ddf0b86: Resolved an issue with AI search resource styles being overridden by custom styles for `<Tag>` component.
3865
- - 6b9933d961: Fixed script handling in single page application (SPA) mode. Inline scripts are now executed on navigation.
3962
+ - 6b9933d961: Fixed script handling in single page application (SPA) mode. Inline scripts are executed on navigation.
3866
3963
  - c34c0da390: Fixed an issue where in development mode updates to `redocly.yaml` config were processed much longer than updates to other files.
3867
3964
  - 463b9fb93e: Fixed an issue where the `navigation.nextButton.text` and `navigation.previousButton.text` config properties did not change the text of the navigation buttons.
3868
3965
  - 7e80929731: Fixed an issue where the SEO `meta` tags were not updated during navigation between pages.
3869
3966
  - b74163612d: Resolved an issue where active operation items were incorrectly rendered on the server side.
3870
- - 074dc10262: Improved the check for the `Complex` badge in `openapi-docs`. The badge now appears only when the nesting of `allOf` exceeds 5 levels.
3967
+ - 074dc10262: Improved the check for the `Complex` badge in `openapi-docs`. The badge appears only when the nesting of `allOf` exceeds 5 levels.
3871
3968
  - bcb712fe03: Resolved an issue where the discriminator did not update the property type.
3872
3969
  - 328b992074: Resolved an issue where an additional slash was incorrectly added to the URL in code samples when using server variables.
3873
3970
 
@@ -3938,8 +4035,8 @@
3938
4035
  ### Patch Changes
3939
4036
 
3940
4037
  - 99358a34e5: Resolved an issue where switching to a product opened a non-priority page instead of an index page.
3941
- Now, if a product has an index page, it is displayed first.
3942
- - 6b9933d961: Fixed script handling in single page application (SPA) mode. Inline scripts are now executed on navigation.
4038
+ If a product has an index page, it is displayed first.
4039
+ - 6b9933d961: Fixed script handling in single page application (SPA) mode. Inline scripts are executed on navigation.
3943
4040
  - Updated dependencies [bcb712fe03]
3944
4041
  - Updated dependencies [ec9eff8ad9]
3945
4042
  - @redocly/openapi-docs@3.7.0-next.2
@@ -4043,7 +4140,7 @@
4043
4140
  ### Minor Changes
4044
4141
 
4045
4142
  - bc13399880: Enhanced development mode error handling showing compilation errors instead of `Internal Server Error` page.
4046
- CSS errors now display in an a toast message.
4143
+ CSS errors display in an a toast message.
4047
4144
  Pages automatically rebuild after fixing errors without server restart.
4048
4145
 
4049
4146
  ## 0.115.1
@@ -4142,8 +4239,8 @@
4142
4239
  ### Patch Changes
4143
4240
 
4144
4241
  - a058d3103e: Improved the OpenAPI definition bundling error message by including the path to the file, making it easier to identify the location of the error.
4145
- - f08b1cfdd2: Headers are now excluded from page data for anonymous users to prevent potential cache deception attacks.
4146
- - 7a285f0828: Improved AI search dialog: now links opening in new tabs, the search button is always enabled, and the search field label is updated.
4242
+ - f08b1cfdd2: Headers are excluded from page data for anonymous users to prevent potential cache deception attacks.
4243
+ - 7a285f0828: Improved AI search dialog: links opening in new tabs, the search button is always enabled, and the search field label is updated.
4147
4244
  - 44110c4c7c: Changed the text color in the total page counter to improve readability in light mode.
4148
4245
  - 698f536b5c: Updated version of the `@redocly/openapi-core` dependency to `1.26.1`.
4149
4246
  - Updated dependencies [44110c4c7c]
@@ -4214,7 +4311,7 @@
4214
4311
  ### Patch Changes
4215
4312
 
4216
4313
  - 5ffc1db4e8: Updated version of the `@redocly/openapi-core` dependency to `1.26.0`.
4217
- - 001406d157: Improved error handling in the project: project pages that display an error message are now automatically refreshed after the user resolves the error in the editor.
4314
+ - 001406d157: Improved error handling in the project: project pages that display an error message are automatically refreshed after the user resolves the error in the editor.
4218
4315
  This occurs both for Reunite and local projects.
4219
4316
  - Updated dependencies [5ffc1db4e8]
4220
4317
  - Updated dependencies [b6b91308d6]
@@ -4407,7 +4504,7 @@
4407
4504
 
4408
4505
  ### Patch Changes
4409
4506
 
4410
- - ae03d1fc71: Improved the `output` property for `apis` configuration. The property now works as a reference from `openapi` Markdoc tags.
4507
+ - ae03d1fc71: Improved the `output` property for `apis` configuration. The property works as a reference from `openapi` Markdoc tags.
4411
4508
  - be7d2e6286: Fixed an issue where if you set `REDOCLY_PREFIX_PATHS` in the environment variables for a project, the Reunite Webview would stop updating based on the page selected in the editor.
4412
4509
  - Updated dependencies [9574a87b33]
4413
4510
  - Updated dependencies [47065856c6]
@@ -4601,7 +4698,7 @@
4601
4698
 
4602
4699
  ### Patch Changes
4603
4700
 
4604
- - 5e5916b415: Resolved an issue that caused the page to crash when using the OpenAPI Code Sample Markdoc tags if the `descriptionFile` value was an incorrect path. Now if the path is invalid, users are presented with an error directing them to correct it.
4701
+ - 5e5916b415: Resolved an issue that caused the page to crash when using the OpenAPI Code Sample Markdoc tags if the `descriptionFile` value was an incorrect path. If the path is invalid, users are presented with an error directing them to correct it.
4605
4702
 
4606
4703
  ## 0.104.3
4607
4704
 
@@ -4933,8 +5030,8 @@
4933
5030
 
4934
5031
  ### Minor Changes
4935
5032
 
4936
- - 176b280257: Deprecated the `theme.imports` property. Themes and plugins must now be enabled through the `plugins` configuration property. Using the `theme.imports` does not fail the build for now, but produces warnings in the build log.
4937
- - 7e71bf855b: Deprecated the `theme` property of `redocly.yaml` config. All of the configuration properties under `theme` now reside in the root of the config.
5033
+ - 176b280257: Deprecated the `theme.imports` property. Themes and plugins must be enabled through the `plugins` configuration property. Using the `theme.imports` does not fail the build, but produces warnings in the build log.
5034
+ - 7e71bf855b: Deprecated the `theme` property of `redocly.yaml` config. All of the configuration properties under `theme` reside in the root of the config.
4938
5035
 
4939
5036
  ### Patch Changes
4940
5037
 
@@ -5027,13 +5124,13 @@
5027
5124
 
5028
5125
  ### Patch Changes
5029
5126
 
5030
- - ed391e8607: Resolved an issue with audience verification. Users without access permissions to the project are now redirected to the sign up page.
5127
+ - ed391e8607: Resolved an issue with audience verification. Users without access permissions to the project are redirected to the sign up page.
5031
5128
 
5032
5129
  ## 0.92.2
5033
5130
 
5034
5131
  ### Patch Changes
5035
5132
 
5036
- - 8b3aa69af2: Each error in the `redocly.yaml` file is now reported separately. Previously, all validation errors from `redocly.yaml` were bundled and reported as one error.
5133
+ - 8b3aa69af2: Each error in the `redocly.yaml` file is reported separately. Previously, all validation errors from `redocly.yaml` were bundled and reported as one error.
5037
5134
  - Updated dependencies [ac665b40f7]
5038
5135
  - Updated dependencies [a0e2645687]
5039
5136
  - Updated dependencies [c848158ee4]
@@ -5051,7 +5148,7 @@
5051
5148
 
5052
5149
  ### Minor Changes
5053
5150
 
5054
- - 2ad34ae141: **IMPORTANT**: Markdoc errors will now fail a production build.\
5151
+ - 2ad34ae141: **IMPORTANT**: Markdoc errors fail production builds.\
5055
5152
  To make Realm ignore Markdoc errors during production builds, set the `reunite.ignoreMarkdocErrors` property in `redocly.yaml` to `true`.
5056
5153
 
5057
5154
  ### Patch Changes
@@ -5169,7 +5266,7 @@
5169
5266
 
5170
5267
  - 0fdd7f22f9: Changed the order of moods in the mood feedback type to "from negative to positive".
5171
5268
  - 67100a3e83: fix(project): Adjusted cache headers to prevent browser caching to ensure users always receive the latest version of the content.
5172
- - fde6bd8184: Improved the default behavior for versioned items in sidebars. When items from different versioned folders are available, the sidebar now prefers and displays items with the same version as the currently active page.
5269
+ - fde6bd8184: Improved the default behavior for versioned items in sidebars. When items from different versioned folders are available, the sidebar prefers and displays items with the same version as the currently active page.
5173
5270
  - Updated dependencies [0fdd7f22f9]
5174
5271
  - Updated dependencies [1b6abdc7af]
5175
5272
  - @redocly/theme@0.38.2
@@ -5225,7 +5322,7 @@
5225
5322
  ### Patch Changes
5226
5323
 
5227
5324
  - e50e90b554: Fixed an issue when versioned content had a separate sidebars.yaml defined for each version, the navbar groups and separators were displayed for all versions of the content.
5228
- Now the navbar groups and separators are displayed only for the corresponding version chosen in the version picker.
5325
+ The navbar groups and separators are displayed only for the corresponding version chosen in the version picker.
5229
5326
 
5230
5327
  ## 0.88.2
5231
5328
 
@@ -1 +1 @@
1
- import{useMemo as f,useState as u}from"react";import{useLocation as d}from"react-router-dom";import{useThemeConfig as p}from"@redocly/theme/core/hooks";import{usePageData as g}from"../../providers/page-data/hooks";import{getBannerForSlug as S}from"./utils/match-banner-target.js";const i="redocly-dismissed-banners";function y(){if(typeof window>"u")return new Set;const r=localStorage.getItem(i);if(r){const s=JSON.parse(r);if(Array.isArray(s))return new Set(s)}return new Set}function x(){const{banner:r}=p()||{},o=g()?.props?.frontmatter?.banner,m=d(),[n,c]=u(y()),a=m.pathname;return{banner:f(()=>{const t=(Array.isArray(o)?o:[]).find(e=>!n.has(e.hash));if(t)return t;if(!(!r||!Array.isArray(r)||r.length===0))return S(r,a,n)},[r,o,a,n]),dismissBanner:t=>{const e=new Set(n);e.add(t),c(e),localStorage.setItem(i,JSON.stringify(Array.from(e)))}}}export{i as STORAGE_KEY,y as getDismissedBannersFromStorage,x as useBanner};
1
+ import{useEffect as S,useMemo as c,useState as f}from"react";import{useLocation as A}from"react-router-dom";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{usePageData as B}from"../../providers/page-data/hooks";import{getBannerForSlug as D,getNextBannerTransition as T,isBannerWithinTimeRange as h}from"./utils/match-banner-target.js";const u="redocly-dismissed-banners",x=2**31-1;function E(){if(typeof window>"u")return new Set;const n=localStorage.getItem(u);if(n){const a=JSON.parse(n);if(Array.isArray(a))return new Set(a)}return new Set}function C(){const{banner:n}=w()||{},t=B()?.props?.frontmatter?.banner,d=A(),[o,g]=f(E()),[s,p]=f(()=>Date.now()),i=d.pathname,m=c(()=>{const r=Array.isArray(n)?n:[],e=Array.isArray(t)?t:[];return[...r,...e]},[n,t]);return S(()=>{const r=T(m,s);if(r===void 0)return;const e=r-Date.now(),y=Math.min(Math.max(0,e),x),l=setTimeout(()=>p(Date.now()),y);return()=>clearTimeout(l)},[m,s]),{banner:c(()=>{const r=(Array.isArray(t)?t:[]).find(e=>!o.has(e.hash)&&h(e,s));if(r)return r;if(!(!n||!Array.isArray(n)||n.length===0))return D(n,i,o,s)},[n,t,i,o,s]),dismissBanner:r=>{const e=new Set(o);e.add(r),g(e),localStorage.setItem(u,JSON.stringify(Array.from(e)))}}}export{u as STORAGE_KEY,E as getDismissedBannersFromStorage,C as useBanner};
@@ -21,6 +21,12 @@ export declare function getTargetSpecificity(target: string | undefined): Specif
21
21
  * specific, negative if `right` is, and 0 when equal.
22
22
  */
23
23
  export declare function compareSpecificity(left: Specificity, right: Specificity): number;
24
+ export declare function isBannerWithinTimeRange(banner: Pick<ResolvedBannerConfig, 'startAt' | 'endAt'>, now?: number): boolean;
25
+ /**
26
+ * Returns the soonest banner visibility transition strictly after `now`,
27
+ * considering every `startAt` and `endAt` across `banners`.
28
+ */
29
+ export declare function getNextBannerTransition(banners: Pick<ResolvedBannerConfig, 'startAt' | 'endAt'>[], now?: number): number | undefined;
24
30
  /**
25
31
  * Checks if a slug matches a target pattern
26
32
  */
@@ -28,5 +34,5 @@ export declare function matchesBannerTarget(slug: string, target: string | undef
28
34
  /**
29
35
  * Returns the most specific matching banner for a slug.
30
36
  */
31
- export declare function getBannerForSlug(banners: ResolvedBannerConfig[], slug: string, dismissedBanners?: Set<string>): ResolvedBannerConfig | undefined;
37
+ export declare function getBannerForSlug(banners: ResolvedBannerConfig[], slug: string, dismissedBanners?: Set<string>, now?: number): ResolvedBannerConfig | undefined;
32
38
  //# sourceMappingURL=match-banner-target.d.ts.map
@@ -1 +1 @@
1
- import f from"picomatch";import{removeTrailingSlash as l}from"../../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as m}from"../../../../utils/path/normalize-route-slug";const s={};function u(t){const e=t.trim();return e===""||e==="**"||e==="/**"}function h(t){const e=t.trim();if(u(e))return"**";let i=e.toLowerCase();return i.startsWith("/")&&(i=i.slice(1)),i.endsWith("/")&&!i.endsWith("*/")&&(i=i.slice(0,-1)),i}function d(t){return s[t]||(s[t]=f(t,{nocase:!0})),s[t]}const o={CatchAll:0,DoubleWildcard:1,SingleWildcard:2,ExactMatch:3};function S(t){if(!t||u(t))return{tier:o.CatchAll,literalSegments:0};const e=t.trim().split("/").filter(i=>!i.includes("*")&&i.trim()!=="").length;return t.includes("*")?t.includes("**")?{tier:o.DoubleWildcard,literalSegments:e}:{tier:o.SingleWildcard,literalSegments:e}:{tier:o.ExactMatch,literalSegments:e}}function g(t,e){return t.tier!==e.tier?t.tier-e.tier:t.literalSegments-e.literalSegments}function p(t,e){if(!e||u(e))return!0;const i=l(m(t)).toLowerCase(),c=i.startsWith("/")?i.slice(1):i,r=h(e);if(!r.includes("*")){const n=r.startsWith("/")?r.slice(1):r;return c===l(n)}if(r.endsWith("**")){const n=l(r.slice(0,-2));if(c===n)return!0}return d(r)(c)}function C(t,e,i=new Set){if(!t||t.length===0)return;let c,r;for(const n of t){if(i.has(n.hash)||!p(e,n.target))continue;const a=S(n.target);(!r||g(a,r)>0)&&(r=a,c=n)}return c}export{o as SpecificityTier,g as compareSpecificity,C as getBannerForSlug,S as getTargetSpecificity,p as matchesBannerTarget};
1
+ import m from"picomatch";import{removeTrailingSlash as a}from"../../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as h}from"../../../../utils/path/normalize-route-slug";const l={};function f(t){const e=t.trim();return e===""||e==="**"||e==="/**"}function p(t){const e=t.trim();if(f(e))return"**";let i=e.toLowerCase();return i.startsWith("/")&&(i=i.slice(1)),i.endsWith("/")&&!i.endsWith("*/")&&(i=i.slice(0,-1)),i}function g(t){return l[t]||(l[t]=m(t,{nocase:!0})),l[t]}const s={CatchAll:0,DoubleWildcard:1,SingleWildcard:2,ExactMatch:3};function S(t){if(!t||f(t))return{tier:s.CatchAll,literalSegments:0};const e=t.trim().split("/").filter(i=>!i.includes("*")&&i.trim()!=="").length;return t.includes("*")?t.includes("**")?{tier:s.DoubleWildcard,literalSegments:e}:{tier:s.SingleWildcard,literalSegments:e}:{tier:s.ExactMatch,literalSegments:e}}function W(t,e){return t.tier!==e.tier?t.tier-e.tier:t.literalSegments-e.literalSegments}function u(t){if(!t)return;const e=Date.parse(t);return Number.isNaN(e)?void 0:e}function x(t,e=Date.now()){const i=u(t.startAt);if(i!==void 0&&e<i)return!1;const r=u(t.endAt);return!(r!==void 0&&e>=r)}function w(t,e=Date.now()){return t.flatMap(i=>[u(i.startAt),u(i.endAt)]).filter(i=>i!==void 0&&i>e).sort((i,r)=>i-r)[0]}function T(t,e){if(!e||f(e))return!0;const i=a(h(t)).toLowerCase(),r=i.startsWith("/")?i.slice(1):i,n=p(e);if(!n.includes("*")){const c=n.startsWith("/")?n.slice(1):n;return r===a(c)}if(n.endsWith("**")){const c=a(n.slice(0,-2));if(r===c)return!0}return g(n)(r)}function y(t,e,i=new Set,r=Date.now()){if(!t||t.length===0)return;let n,c;for(const o of t){if(i.has(o.hash)||!x(o,r)||!T(e,o.target))continue;const d=S(o.target);(!c||W(d,c)>0)&&(c=d,n=o)}return n}export{s as SpecificityTier,W as compareSpecificity,y as getBannerForSlug,w as getNextBannerTransition,S as getTargetSpecificity,x as isBannerWithinTimeRange,T as matchesBannerTarget};
@@ -1 +1 @@
1
- import{RedocSchema as c,StoreProvider as p}from"@redocly/openapi-docs";import*as e from"react";import{Admonition as d}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{OpenApiComponentWrap as l}from"../styled.elements";function v(s){const{options:r,schemaResolved:o,schemaResolvedErrors:t,schema:n}=s;if(n||o){const m={openapi:"3.0.0",info:{version:"1",description:"test",title:"test"},paths:{},"x-root":o?.components?.schemas?.__root||n,components:{schemas:{...o?.components?.schemas}}};return e.createElement(l,{"data-testid":"json-schema"},e.createElement(p,{options:r,definition:m},t?.length?e.createElement(d,{name:"Problem in json-schema tag",type:"danger"},t.map((i,a)=>e.createElement("div",{key:a},i))):null,e.createElement(c,{pointer:"#/x-root",disableDeepLinks:!0})))}}export{v as JsonSchema};
1
+ import{RedocSchema as c,StoreProvider as p}from"@redocly/openapi-docs";import*as e from"react";import{Admonition as d}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{MarkdownLink as l}from"@redocly/theme/markdoc/components/MarkdownLink/MarkdownLink";import{link as h}from"../../../../../markdoc/nodes/index.js";import{OpenApiComponentWrap as f}from"../styled.elements";const k={nodes:{link:h},components:{MarkdownLink:l}};function x(r){const{options:m,schemaResolved:o,schemaResolvedErrors:t,schema:n}=r;if(n||o){const s={openapi:"3.0.0",info:{version:"1",description:"test",title:"test"},paths:{},"x-root":o?.components?.schemas?.__root||n,components:{schemas:{...o?.components?.schemas}}};return e.createElement(f,{"data-testid":"json-schema"},e.createElement(p,{options:{...m,markdocOptions:k},definition:s},t?.length?e.createElement(d,{name:"Problem in json-schema tag",type:"danger"},t.map((i,a)=>e.createElement("div",{key:a},i))):null,e.createElement(c,{pointer:"#/x-root",disableDeepLinks:!0})))}}export{x as JsonSchema};
@@ -1 +1 @@
1
- import o from"react";import{EmbeddedReplay as E,StoreProvider as M}from"@redocly/openapi-docs";import{useLocation as b}from"react-router-dom";import{Admonition as k}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as A,OpenApiComponentWrap as I}from"../styled.elements.js";import{useStore as P}from"../../hooks/use-store.js";import{getOperation as x}from"./get-operation/index.js";import{getMockServerDocsConfig as R}from"../../../../templates/openapi-docs/mock-server-config.js";const L=y=>{const{descriptionFile:n,operationId:i,pointer:p,exampleKey:d,mimeType:l,requestBody:a,parameters:S,options:m,environment:t,environments:s,hideOtherSecuritySchemes:O}=y,h=b(),{store:e,error:v,baseSlug:u}=P(n),c=o.useMemo(()=>({...e?.options,...m}),[m,e?.options]),f=o.useMemo(()=>{const{mockServer:C,...g}=c;return g},[c]),r=o.useMemo(()=>{if(e)return x(e,{operationId:i,pointer:p},f,{exampleKey:d,mimeType:l,environments:s,environment:t,requestBody:a})},[d,f,l,i,p,e,s,t,a]);return e?r?o.createElement(I,{"data-testid":"replay-openapi"},o.createElement(M,{key:`${h.pathname}-${n}-${i||p}`,options:{...m,disableRouter:!0,routingBasePath:u,mockServer:R(c.mockServer,u)},definition:e.definition,withState:{environments:s,allowedEnvironments:t?[t]:void 0,operation:{pointer:r.pointer,state:{requestValues:{body:a,...S}}}}},o.createElement(E,{activeOperationId:r.operationId||"",fullOpenApi:e.definition,corsProxyUrl:e.options.corsProxyUrl,pointer:r.pointer,hideOtherSecuritySchemes:O}))):o.createElement(k,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",n):o.createElement(A,null,v)};export{L as ReplayOpenApi};
1
+ import o from"react";import{EmbeddedReplay as M,StoreProvider as b}from"@redocly/openapi-docs";import{useLocation as A}from"react-router-dom";import{Admonition as I}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as P,OpenApiComponentWrap as x}from"../styled.elements.js";import{useStore as R}from"../../hooks/use-store.js";import{getOperation as C}from"./get-operation/index.js";import{getMockServerDocsConfig as y}from"../../../../templates/openapi-docs/mock-server-config.js";const L=S=>{const{descriptionFile:i,operationId:p,pointer:m,exampleKey:l,mimeType:u,requestBody:a,parameters:v,options:s,environment:r,environments:c,hideOtherSecuritySchemes:O}=S,h=A(),{store:e,error:g,baseSlug:t}=R(i),d=o.useMemo(()=>({...e?.options,...s}),[s,e?.options]),f=o.useMemo(()=>{const{mockServer:E,...k}=d;return{...k,mockServer:y(E,t??"")}},[d,t]),n=o.useMemo(()=>{if(e)return C(e,{operationId:p,pointer:m},f,{exampleKey:l,mimeType:u,environments:c,environment:r,requestBody:a})},[l,f,u,p,m,e,c,r,a]);return e?n?o.createElement(x,{"data-testid":"replay-openapi"},o.createElement(b,{key:`${h.pathname}-${i}-${p||m}`,options:{...s,disableRouter:!0,routingBasePath:t,mockServer:y(d.mockServer,t)},definition:e.definition,withState:{environments:c,allowedEnvironments:r?[r]:void 0,operation:{pointer:n.pointer,state:{requestValues:{body:a,...v}}}}},o.createElement(M,{activeOperationId:n.operationId||"",fullOpenApi:e.definition,corsProxyUrl:e.options.corsProxyUrl,pointer:n.pointer,hideOtherSecuritySchemes:O}))):o.createElement(I,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",i):o.createElement(P,null,g)};export{L as ReplayOpenApi};