@redocly/revel 0.128.0-next.9 → 0.128.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,99 @@
1
1
  # @redocly/revel
2
2
 
3
+ ## 0.128.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fe3253dabb: Fixed an issue where the product picker was not properly aligned in the navbar.
8
+ - Updated dependencies [fe3253dabb]
9
+ - @redocly/theme@0.60.1
10
+ - @redocly/asyncapi-docs@1.5.1
11
+ - @redocly/graphql-docs@1.5.0
12
+ - @redocly/openapi-docs@3.16.1
13
+ - @redocly/portal-plugin-mock-server@0.13.1
14
+
15
+ ## 0.128.0
16
+
17
+ ### Minor Changes
18
+
19
+ - 5cd6434fa4: Excluded pages from sitemaps if they are excluded from search.
20
+ - 56a8a6aac2: Added a `banner` component to display announcements on project pages.
21
+ - 237fb38fca: Added search and curation support for `React` pages.
22
+ - c79fd3ad50: Added support for downloading API description files up to 15MB.
23
+
24
+ ### Patch Changes
25
+
26
+ - 08277191f1: The **Connect to MCP** page action option does not display when the MCP server is not available.
27
+ - 6e7c28d09b: Fixed an issue where items from different versions appeared simultaneously in the sidebar when using `$ref` in `sidebars.yaml`.
28
+ - 39df6e65ff: Fixed an issue where the AI Search form unintentionally submitted during text entry in Japanese.
29
+ - 66df36d54c: Fixed incorrect application of `rel="noreferrer"` on internal links.
30
+ - 11e1e54493: Fixed an issue where the `Ask AI` button overlapped code examples.
31
+ - f4ee4e345b: Fixed security vulnerability in CORS middleware by upgrading `hono` to v4.10.6.
32
+ - 6e7c28d09b: Fixed an issue where switching versions at the project root redirected to the first sidebar page instead of the current one.
33
+ - Updated dependencies [08277191f1]
34
+ - Updated dependencies [39df6e65ff]
35
+ - Updated dependencies [e1eaa83a71]
36
+ - Updated dependencies [898c2db9d1]
37
+ - Updated dependencies [98f5cce261]
38
+ - Updated dependencies [56a8a6aac2]
39
+ - Updated dependencies [4849bbfbae]
40
+ - Updated dependencies [4c03b9e504]
41
+ - Updated dependencies [66df36d54c]
42
+ - Updated dependencies [38790e9d0d]
43
+ - Updated dependencies [18cb20de60]
44
+ - Updated dependencies [11e1e54493]
45
+ - Updated dependencies [eaea96e6c9]
46
+ - Updated dependencies [ca48d4ee2d]
47
+ - Updated dependencies [b25647c63a]
48
+ - Updated dependencies [5a5c4ecb7b]
49
+ - Updated dependencies [bc191c239c]
50
+ - @redocly/theme@0.60.0
51
+ - @redocly/portal-plugin-mock-server@0.13.0
52
+ - @redocly/openapi-docs@3.16.0
53
+ - @redocly/asyncapi-docs@1.5.0
54
+ - @redocly/graphql-docs@1.5.0
55
+ - @redocly/portal-legacy-ui@0.11.0
56
+ - @redocly/realm-asyncapi-sdk@0.6.0
57
+
58
+ ## 0.128.0-next.12
59
+
60
+ ### Patch Changes
61
+
62
+ - Updated dependencies [46b6ce6c79]
63
+ - @redocly/theme@0.60.0-next.8
64
+ - @redocly/asyncapi-docs@1.5.0-next.12
65
+ - @redocly/graphql-docs@1.5.0-next.1
66
+ - @redocly/openapi-docs@3.16.0-next.12
67
+ - @redocly/portal-plugin-mock-server@0.13.0-next.12
68
+
69
+ ## 0.128.0-next.11
70
+
71
+ ### Patch Changes
72
+
73
+ - 6c86ae4655: Updated `@redocly/openapi-core` to version `2.12.3`.
74
+ - Updated dependencies [190f5656a7]
75
+ - Updated dependencies [6c86ae4655]
76
+ - @redocly/realm-asyncapi-sdk@0.6.0-next.2
77
+ - @redocly/openapi-docs@3.16.0-next.11
78
+ - @redocly/theme@0.60.0-next.7
79
+ - @redocly/asyncapi-docs@1.5.0-next.11
80
+ - @redocly/portal-plugin-mock-server@0.13.0-next.11
81
+
82
+ ## 0.128.0-next.10
83
+
84
+ ### Minor Changes
85
+
86
+ - 56a8a6aac2: Added a `banner` component to display announcements on project pages.
87
+
88
+ ### Patch Changes
89
+
90
+ - Updated dependencies [56a8a6aac2]
91
+ - @redocly/theme@0.60.0-next.7
92
+ - @redocly/asyncapi-docs@1.5.0-next.10
93
+ - @redocly/graphql-docs@1.5.0-next.1
94
+ - @redocly/openapi-docs@3.16.0-next.10
95
+ - @redocly/portal-plugin-mock-server@0.13.0-next.10
96
+
3
97
  ## 0.128.0-next.9
4
98
 
5
99
  ### Patch Changes
@@ -1 +1 @@
1
- import{loadConfig as r}from"@redocly/openapi-core";import a from"node:path";import{access as e}from"node:fs/promises";import{CONFIG_FILE_NAME as i}from"../../../../constants/common.js";import{getPortalConfigStats as s}from"../../../telemetry/get-portal-config-stats.js";const p=async({context:o})=>{const t=a.join(o.fs.cwd,i),n=await f(t);return{version:"2",name:"buildContext",value:s(n)}};async function f(o){try{await e(o)}catch{return{}}const{resolvedConfig:t}=await r({configPath:o});return t}export{p as getConfigStatsUsage};
1
+ import{loadConfig as r}from"@redocly/openapi-core";import a from"node:path";import{access as i}from"node:fs/promises";import{CONFIG_FILE_NAME as e}from"../../../../constants/common.js";import{getPortalConfigStats as c}from"../../../telemetry/get-portal-config-stats.js";const C=async({context:t})=>{const o=a.join(t.fs.cwd,e),n=await f(o);return{version:"2",name:"buildContext",value:c(n)}};async function f(t){try{await i(t)}catch{return{}}const o=await r({configPath:t});return o.document?.parsed||o.resolvedConfig}export{C as getConfigStatsUsage};
@@ -1 +1 @@
1
- import t from"react";import{BrowserRouter as o}from"react-router-dom";import{ThemeDataContext as n}from"@redocly/theme/core/contexts";import i from"@redocly/theme/core/templates/Markdown";import{useBreadcrumbs as u,useCatalogClassic as m,useCurrentProduct as d,useGlobalData as l,useI18n as p,useI18nConfig as c,useL10n as g,useL10nConfig as h,usePageData as f,usePageSharedData as b,usePageVersions as T,usePreloadHistory as C,useProducts as k,useUserMenu as w,useSubmitFeedback as v,useTranslate as D,useSidebarSiblingsData as P,usePageProps as y,useUserTeams as S,useMarkdownText as $,useCodeHighlight as E,useLoadAndNavigate as I,useCatalog as L,useCatalogSort as x,useCatalogSearch as H,useFetchCatalogEntities as M,useFetchCatalogEntitiesRelations as F,useTelemetry as r,useMcpData as A}from"./app/hooks";import{Link as R}from"./app/Link";import{useFacetQuery as B,useSearch as G,useAiSearch as O}from"./app/search";import{useSidebarItems as U}from"./app/Sidebar/useSidebarItems";import{PageDataContext as N}from"./providers/page-data/PageDataContext";const s={Template:({pageProps:e,children:a})=>t.createElement(i,{pageProps:{...e,metadata:{...e.metadata,markdoc:{tagList:[]}}}},a),templateId:"markdown",isPublic:!0,props:{seo:{title:"Test"},ast:{$$mdtype:"Tag",name:"div",children:[{$$mdtype:"Tag",name:"Heading",attributes:{id:"github-flavored-markdown",level:1},children:["GitHub-flavored markdown"]},{$$mdtype:"Tag",name:"p",attributes:{},children:["These exercises assume you have",{$$mdtype:"Tag",name:"a",attributes:{href:"https://docs.redoc.ly/"},children:["basic markdown knowledge"]},"."]},{$$mdtype:"Tag",name:"Heading",attributes:{id:"create-a-new-plain-markdown-page",level:2},children:["Create a new plain markdown page"]}]},lastModified:new Date("2022-01-01").toISOString()},slug:"",userData:{isAuthenticated:!1,name:"test name",picture:""},sidebar:null,sharedData:{},sharedDataIds:{}},Q={useBreadcrumbs:u,useCatalog:L,useCatalogSort:x,useCatalogSearch:H,useFetchCatalogEntities:M,useFetchCatalogEntitiesRelations:F,useCatalogClassic:m,useCurrentProduct:d,useGlobalData:l,useSearch:G,useAiSearch:O,useFacetQuery:B,useI18n:p,useI18nConfig:c,useL10n:g,useL10nConfig:h,usePageData:f,usePageSharedData:b,usePageVersions:T,usePreloadHistory:C,useProducts:k,useUserMenu:w,useSidebarItems:U,useSidebarSiblingsData:P,useSubmitFeedback:v,useTranslate:D,useUserTeams:S,usePageProps:y,useMarkdownText:$,useCodeHighlight:E,useLoadAndNavigate:I,useTelemetry:r,useOtelTelemetry:r,useMcpData:A},V={LinkComponent:R},j={hooks:Q,components:V,config:{}};function ee({children:e,customPageData:a}){return t.createElement(o,null,t.createElement(N.Provider,{value:{...s,...a,props:{...s.props,...a?.props}}},t.createElement(n.Provider,{value:j},e)))}export{ee as TestProvider};
1
+ import e from"react";import{BrowserRouter as o}from"react-router-dom";import{ThemeDataContext as n,SearchSessionProvider as i}from"@redocly/theme/core/contexts";import u from"@redocly/theme/core/templates/Markdown";import{useBreadcrumbs as m,useBanner as d,useCatalogClassic as l,useCurrentProduct as c,useGlobalData as p,useI18n as g,useI18nConfig as h,useL10n as f,useL10nConfig as b,usePageData as T,usePageSharedData as C,usePageVersions as k,usePreloadHistory as v,useProducts as w,useUserMenu as P,useSubmitFeedback as S,useTranslate as D,useSidebarSiblingsData as y,usePageProps as $,useUserTeams as E,useMarkdownText as I,useCodeHighlight as L,useLoadAndNavigate as x,useCatalog as H,useCatalogSort as M,useCatalogSearch as F,useFetchCatalogEntities as A,useFetchCatalogEntitiesRelations as B,useTelemetry as r,useMcpData as R}from"./app/hooks";import{Link as G}from"./app/Link";import{useFacetQuery as O,useSearch as U,useAiSearch as N}from"./app/search";import{useSidebarItems as Q}from"./app/Sidebar/useSidebarItems";import{PageDataContext as V}from"./providers/page-data/PageDataContext";const s={Template:({pageProps:a,children:t})=>e.createElement(u,{pageProps:{...a,metadata:{...a.metadata,markdoc:{tagList:[]}}}},t),templateId:"markdown",isPublic:!0,props:{seo:{title:"Test"},ast:{$$mdtype:"Tag",name:"div",children:[{$$mdtype:"Tag",name:"Heading",attributes:{id:"github-flavored-markdown",level:1},children:["GitHub-flavored markdown"]},{$$mdtype:"Tag",name:"p",attributes:{},children:["These exercises assume you have",{$$mdtype:"Tag",name:"a",attributes:{href:"https://docs.redoc.ly/"},children:["basic markdown knowledge"]},"."]},{$$mdtype:"Tag",name:"Heading",attributes:{id:"create-a-new-plain-markdown-page",level:2},children:["Create a new plain markdown page"]}]},lastModified:new Date("2022-01-01").toISOString()},slug:"",userData:{isAuthenticated:!1,name:"test name",picture:""},sidebar:null,sharedData:{},sharedDataIds:{}},j={useBreadcrumbs:m,useBanner:d,useCatalog:H,useCatalogSort:M,useCatalogSearch:F,useFetchCatalogEntities:A,useFetchCatalogEntitiesRelations:B,useCatalogClassic:l,useCurrentProduct:c,useGlobalData:p,useSearch:U,useAiSearch:N,useFacetQuery:O,useI18n:g,useI18nConfig:h,useL10n:f,useL10nConfig:b,usePageData:T,usePageSharedData:C,usePageVersions:k,usePreloadHistory:v,useProducts:w,useUserMenu:P,useSidebarItems:Q,useSidebarSiblingsData:y,useSubmitFeedback:S,useTranslate:D,useUserTeams:E,usePageProps:$,useMarkdownText:I,useCodeHighlight:L,useLoadAndNavigate:x,useTelemetry:r,useOtelTelemetry:r,useMcpData:R},q={LinkComponent:G},z={hooks:j,components:q,config:{}};function te({children:a,customPageData:t}){return e.createElement(o,null,e.createElement(i,null,e.createElement(V.Provider,{value:{...s,...t,props:{...s.props,...t?.props}}},e.createElement(n.Provider,{value:z},a))))}export{te as TestProvider};
@@ -14,6 +14,7 @@ export { useUserMenu } from '../UserMenu/useUserMenu';
14
14
  export { useSubmitFeedback } from '../Feedback/useSubmitFeedback';
15
15
  export { usePreloadHistory } from '../usePreloadHistory';
16
16
  export { useBreadcrumbs } from '../Sidebar/useBreadcrumbs';
17
+ export { useBanner } from './useBanner';
17
18
  export { useCatalog } from './catalog/useCatalog';
18
19
  export { useCatalogSort } from './catalog/useCatalogSort';
19
20
  export { useCatalogSearch } from './catalog/useCatalogSearch';
@@ -1 +1 @@
1
- export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as l}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useL10nConfig as c}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as S}from"../../providers/page-data/hooks";import{useUserMenu as U}from"../UserMenu/useUserMenu";import{useSubmitFeedback as F}from"../Feedback/useSubmitFeedback";import{usePreloadHistory as P}from"../usePreloadHistory";import{useBreadcrumbs as y}from"../Sidebar/useBreadcrumbs";import{useCatalog as H}from"./catalog/useCatalog";import{useCatalogSort as v}from"./catalog/useCatalogSort";import{useCatalogSearch as A}from"./catalog/useCatalogSearch";import{useFetchCatalogEntities as G}from"./catalog/useFetchCatalogEntities";import{useFetchCatalogEntitiesRelations as R}from"./catalog/useFetchCatalogEntitiesRelations";import{useCatalogClassic as j}from"./catalog/useCatalogClassic";import{useTelemetry as z}from"./useTelemetry";import{useUserTeams as K}from"./useUserTeams";import{useMarkdownText as Q}from"./markdown/useMarkdownText";import{useCodeHighlight as X}from"./codeHighlight/useCodeHighlight";import{useLoadAndNavigate as Z}from"./useLoadAndNavigate";import{useUserClaims as $}from"./useUserClaims";import{useMcpData as oe}from"./useMcpData";export{y as useBreadcrumbs,H as useCatalog,j as useCatalogClassic,A as useCatalogSearch,v as useCatalogSort,X as useCodeHighlight,G as useFetchCatalogEntities,R as useFetchCatalogEntitiesRelations,f as useGlobalData,p as useI18n,n as useI18nConfig,l as useL10n,c as useL10nConfig,Z as useLoadAndNavigate,a as useLoginUrl,Q as useMarkdownText,oe as useMcpData,t as usePageSharedData,S as usePageVersions,P as usePreloadHistory,F as useSubmitFeedback,z as useTelemetry,C as useTranslate,$ as useUserClaims,U as useUserMenu,K as useUserTeams};
1
+ export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as l}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useL10nConfig as c}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as S}from"../../providers/page-data/hooks";import{useUserMenu as U}from"../UserMenu/useUserMenu";import{useSubmitFeedback as F}from"../Feedback/useSubmitFeedback";import{usePreloadHistory as P}from"../usePreloadHistory";import{useBreadcrumbs as y}from"../Sidebar/useBreadcrumbs";import{useBanner as E}from"./useBanner";import{useCatalog as I}from"./catalog/useCatalog";import{useCatalogSort as w}from"./catalog/useCatalogSort";import{useCatalogSearch as G}from"./catalog/useCatalogSearch";import{useFetchCatalogEntities as R}from"./catalog/useFetchCatalogEntities";import{useFetchCatalogEntitiesRelations as j}from"./catalog/useFetchCatalogEntitiesRelations";import{useCatalogClassic as z}from"./catalog/useCatalogClassic";import{useTelemetry as K}from"./useTelemetry";import{useUserTeams as Q}from"./useUserTeams";import{useMarkdownText as X}from"./markdown/useMarkdownText";import{useCodeHighlight as Z}from"./codeHighlight/useCodeHighlight";import{useLoadAndNavigate as $}from"./useLoadAndNavigate";import{useUserClaims as oe}from"./useUserClaims";import{useMcpData as te}from"./useMcpData";export{E as useBanner,y as useBreadcrumbs,I as useCatalog,z as useCatalogClassic,G as useCatalogSearch,w as useCatalogSort,Z as useCodeHighlight,R as useFetchCatalogEntities,j as useFetchCatalogEntitiesRelations,f as useGlobalData,p as useI18n,n as useI18nConfig,l as useL10n,c as useL10nConfig,$ as useLoadAndNavigate,a as useLoginUrl,X as useMarkdownText,te as useMcpData,t as usePageSharedData,S as usePageVersions,P as usePreloadHistory,F as useSubmitFeedback,K as useTelemetry,C as useTranslate,oe as useUserClaims,U as useUserMenu,Q as useUserTeams};
@@ -1 +1 @@
1
- import u,{useMemo as h}from"react";import{parse as p,transform as m,renderers as b,Tag as g,nodes as d}from"@markdoc/markdoc";import{CodeBlock as k}from"@redocly/theme/components/CodeBlock/CodeBlock";const y=t=>/\{%\s*(?:\/?\w+(?:-\w+)*|\/)(?:\s+[^%]+)?\s*(?:\/%|%\})/.test(t),C=(t,e)=>{try{const r=m(t,e);return Array.isArray(r)?r:[r]}catch(r){console.error("Error transforming node:",r)}return[]},l=(t,e,r,n)=>new g("CodeBlock",{...t,header:{title:n,controls:{copy:{}}},source:e,lang:r},[]),N=(t,e)=>{const r=t.transformAttributes(e),n=r["data-language"]||"markdoc",c=r["data-title"],o=t.attributes.content||"",a=l(r,o,n,c),s=[];if(!t.children||t.children.length<=1)return{codeNode:a,contentNodes:s};for(const i of t.children){if(!i)continue;const f=C(i,e);s.push(...f)}return{codeNode:a,contentNodes:s}},w=(t,e)=>{const r=t.transformAttributes(e),n=r["data-language"],c=r["data-title"],o=t.attributes.content||"";if(!y(o)||!t.children||t.children.length===0)return l(r,o,n,c);const a=t.children[0];if(!a||a.type!=="tag")return l(r,o,n,c);const{codeNode:s,contentNodes:i}=N(t,e);return new g("Fragment",{},[s,...i])},B=t=>h(()=>{if(!t)return null;const r=p(t),n=m(r,{nodes:{document:{...d.document,render:"div"},fence:{...d.fence,attributes:{...d.fence.attributes,label:{type:String,render:"data-label"},title:{type:String,render:"data-title"},highlight:{type:String,render:"data-highlight"}},transform:w}}});return b.react(n,u,{components:{CodeBlock:k,Fragment:u.Fragment}})},[t]);export{y as containsMarkdocTags,B as useMarkdownText};
1
+ import m,{useMemo as h}from"react";import{parse as p,transform as u,renderers as b,Tag as g,nodes as d}from"@markdoc/markdoc";import{CodeBlock as k}from"@redocly/theme/components/CodeBlock/CodeBlock";import{tags as C,components as y}from"@redocly/theme/markdoc/default";const N=Object.fromEntries(Object.entries(y).filter(([,t])=>typeof t=="function")),T=t=>/\{%\s*(?:\/?\w+(?:-\w+)*|\/)(?:\s+[^%]+)?\s*(?:\/%|%\})/.test(t),w=(t,e)=>{try{const r=u(t,e);return Array.isArray(r)?r:[r]}catch(r){console.error("Error transforming node:",r)}return[]},l=(t,e,r,n)=>new g("CodeBlock",{...t,header:{title:n,controls:{copy:{}}},source:e,lang:r},[]),A=(t,e)=>{const r=t.transformAttributes(e),n=r["data-language"]||"markdoc",c=r["data-title"],o=t.attributes.content||"",a=l(r,o,n,c),s=[];if(!t.children||t.children.length<=1)return{codeNode:a,contentNodes:s};for(const i of t.children){if(!i)continue;const f=w(i,e);s.push(...f)}return{codeNode:a,contentNodes:s}},F=(t,e)=>{const r=t.transformAttributes(e),n=r["data-language"],c=r["data-title"],o=t.attributes.content||"";if(!T(o)||!t.children||t.children.length===0)return l(r,o,n,c);const a=t.children[0];if(!a||a.type!=="tag")return l(r,o,n,c);const{codeNode:s,contentNodes:i}=A(t,e);return new g("Fragment",{},[s,...i])},x=t=>h(()=>{if(!t)return null;const r=p(t),n=u(r,{tags:C,nodes:{document:{...d.document,render:"div"},fence:{...d.fence,attributes:{...d.fence.attributes,label:{type:String,render:"data-label"},title:{type:String,render:"data-title"},highlight:{type:String,render:"data-highlight"}},transform:F}}});return b.react(n,m,{components:{...N,CodeBlock:k,Fragment:m.Fragment}})},[t]);export{T as containsMarkdocTags,x as useMarkdownText};
@@ -0,0 +1,8 @@
1
+ import type { BannerConfig } from '@redocly/config';
2
+ type BannerResult = {
3
+ banner: BannerConfig | undefined;
4
+ dismissBanner: (content: string) => void;
5
+ };
6
+ export declare function useBanner(): BannerResult;
7
+ export {};
8
+ //# sourceMappingURL=useBanner.d.ts.map
@@ -0,0 +1 @@
1
+ import{useMemo as g,useState as f,useEffect as l}from"react";import{useLocation as p}from"react-router-dom";import{useThemeConfig as y}from"@redocly/theme/core/hooks";import{usePageData as A}from"../../providers/page-data/hooks";import{getBannerForSlug as w}from"./utils/match-banner-target.js";const c="redocly-dismissed-banners",u="redocly-dismissed-banners-per-slug";function N(){const{banner:s}=y()||{},t=A()?.props?.frontmatter?.banner,S=p(),[o,d]=f(new Set),[i,m]=f(new Set);l(()=>{const r=localStorage.getItem(c),n=localStorage.getItem(u);if(r){const e=JSON.parse(r);Array.isArray(e)&&d(new Set(e))}if(n){const e=JSON.parse(n);Array.isArray(e)&&m(new Set(e))}},[]);const a=S.pathname;return{banner:g(()=>{if(t&&Array.isArray(t)&&t.length){if(i.has(a))return;for(const r of t)if(!o.has(r.content))return r;return}if(!(!s||!Array.isArray(s)||s.length===0)&&!i.has(a))return w(s,a,o)},[s,t,a,o,i]),dismissBanner:r=>{const n=new Set(o);n.add(r),d(n);const e=new Set(i);e.add(a),m(e),localStorage.setItem(c,JSON.stringify(Array.from(n))),localStorage.setItem(u,JSON.stringify(Array.from(e)))}}}export{N as useBanner};
@@ -0,0 +1,10 @@
1
+ import type { BannerConfig } from '@redocly/config';
2
+ /**
3
+ * Checks if a slug matches a target pattern
4
+ */
5
+ export declare function matchesBannerTarget(slug: string, target: string | undefined): boolean;
6
+ /**
7
+ * Returns the first matching banner for a slug, or undefined if none match
8
+ */
9
+ export declare function getBannerForSlug(banners: BannerConfig[], slug: string, dismissedBanners?: Set<string>): BannerConfig | undefined;
10
+ //# sourceMappingURL=match-banner-target.d.ts.map
@@ -0,0 +1 @@
1
+ import a from"picomatch";import{removeTrailingSlash as s}from"../../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as f}from"../../../../utils/path/normalize-route-slug";const u={};function c(t){if(!t)return!0;const r=t.trim();return r===""||r==="**"||r==="/**"}function l(t){const r=t.trim();if(c(r))return"**";let e=r.toLowerCase();return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&!e.endsWith("*/")&&(e=e.slice(0,-1)),e}function m(t){return u[t]||(u[t]=a(t,{nocase:!0})),u[t]}function h(t,r){if(c(r)||!r)return!0;const e=s(f(t)).toLowerCase(),n=e.startsWith("/")?e.slice(1):e,i=l(r);if(!i.includes("*")){const o=i.startsWith("/")?i.slice(1):i;return n===s(o)}if(i.endsWith("**")){const o=s(i.slice(0,-2));if(n===o)return!0}return m(i)(n)}function S(t,r,e=new Set){if(!(!t||t.length===0)){for(const n of t)if(!e.has(n.content)&&h(r,n.target))return n}}export{S as getBannerForSlug,h as matchesBannerTarget};
@@ -3,7 +3,7 @@ import { AiSearchError } from '@redocly/theme/core/constants';
3
3
  type AiSearchOptions = {
4
4
  filter?: SearchFilterItem[];
5
5
  };
6
- export declare function useAiSearch(options?: AiSearchOptions, searchSessionId?: string): {
6
+ export declare function useAiSearch(options?: AiSearchOptions): {
7
7
  askQuestion: (question: string, history?: AiSearchConversationItem[]) => Promise<void>;
8
8
  isGeneratingResponse: boolean;
9
9
  response: string | undefined;
@@ -1 +1 @@
1
- import{useCallback as w,useState as o}from"react";import{AiSearchError as c}from"@redocly/theme/core/constants";import{withPathPrefix as K}from"@redocly/theme/core/utils";import{ServerRoutes as L}from"../../../constants/common";import{useI18nConfig as U,useCurrentProduct as _,usePageVersions as j}from"../hooks";import{telemetry as B}from"../telemetry/index.js";function se(k,x){const[E,m]=o(),[p,g]=o([]),[M,P]=o(""),[O,l]=o([]),[Q,n]=o(!1),[v,e]=o(null),[I,i]=o(null),{currentLocale:F}=U(),J=_(),{versions:N=[]}=j()||{},h=N.find(t=>t?.active),R=w(()=>{m(""),g([]),n(!1),e(null)},[m,g,e]),G=w(()=>{R(),l([])},[R,l]);return{askQuestion:async(t,H)=>{if(!t)return;I&&I.abort();const A=new AbortController;i(A),R(),n(!0),P(t);let u="";fetch(K(L.ASK_AI),{method:"POST",body:JSON.stringify({text:t,history:H||[],locale:F,product:J?.name,filter:k?.filter,version:h&&{folder:h.folderId,label:h.label}}),signal:A.signal}).then(r=>{if(!r.ok){n(!1),r.status===401?e(c.Unauthorized):r.status===403?e(c.Forbidden):e(c.HttpRequestFailed);return}let f="";const y=r.body;if(!y)return;const T=y.getReader(),C=()=>{T.read().then(({value:d,done:V})=>{if(V){n(!1),i(null),f||e(c.EmptyResponse),t.trim().length>0&&u&&B.sendSearchAIQueryMessage({question:t,answer:f,resources:JSON.stringify(p),searchSessionId:x,messageId:u});return}const z=new TextDecoder().decode(d),D=/data: (.*)/g;let S;for(;(S=D.exec(z))!==null;){if(!S[1])continue;const a=JSON.parse(S[1]);if(a.messageId)u=a.messageId,l(s=>{if(s.length===0)return s;const b=s[s.length-1];return b.role==="assistant"&&!b.messageId?[...s.slice(0,-1),{...b,messageId:u}]:s});else if(a.answer)f+=a.answer,m(f);else if(a.sources){const s=Math.floor(Math.random()*3)+4;g(a.sources.slice(0,s))}}C()}).catch(d=>{d.name!=="AbortError"&&(console.error(d),n(!1),i(null),e(c.ErrorProcessingResponse))})};C()}).catch(r=>{r.name!=="AbortError"&&(console.error(r),n(!1),i(null),e(c.HttpRequestFailed))})},isGeneratingResponse:Q,response:E,resources:p,question:M,error:v,clearConversation:G,conversation:O,setConversation:l}}export{se as useAiSearch};
1
+ import{useCallback as w,useState as o}from"react";import{AiSearchError as c}from"@redocly/theme/core/constants";import{withPathPrefix as K}from"@redocly/theme/core/utils";import{ServerRoutes as L}from"../../../constants/common";import{useSearchSession as U}from"@redocly/theme/core/contexts";import{useI18nConfig as _,useCurrentProduct as j,usePageVersions as B}from"../hooks";import{telemetry as W}from"../telemetry/index.js";function re(k){const{searchSessionId:x}=U(),[E,m]=o(),[b,g]=o([]),[M,P]=o(""),[O,i]=o([]),[Q,n]=o(!1),[v,e]=o(null),[I,l]=o(null),{currentLocale:F}=_(),J=j(),{versions:N=[]}=B()||{},h=N.find(t=>t?.active),S=w(()=>{m(""),g([]),n(!1),e(null)},[m,g,e]),G=w(()=>{S(),i([])},[S,i]);return{askQuestion:async(t,H)=>{if(!t)return;I&&I.abort();const A=new AbortController;l(A),S(),n(!0),P(t);let u="";fetch(K(L.ASK_AI),{method:"POST",body:JSON.stringify({text:t,history:H||[],locale:F,product:J?.name,filter:k?.filter,version:h&&{folder:h.folderId,label:h.label}}),signal:A.signal}).then(r=>{if(!r.ok){n(!1),r.status===401?e(c.Unauthorized):r.status===403?e(c.Forbidden):e(c.HttpRequestFailed);return}let f="";const y=r.body;if(!y)return;const T=y.getReader(),C=()=>{T.read().then(({value:d,done:V})=>{if(V){n(!1),l(null),f||e(c.EmptyResponse),t.trim().length>0&&u&&W.sendSearchAIQueryMessage({question:t,answer:f,resources:JSON.stringify(b),searchSessionId:x,messageId:u});return}const z=new TextDecoder().decode(d),D=/data: (.*)/g;let p;for(;(p=D.exec(z))!==null;){if(!p[1])continue;const a=JSON.parse(p[1]);if(a.messageId)u=a.messageId,i(s=>{if(s.length===0)return s;const R=s[s.length-1];return R.role==="assistant"&&!R.messageId?[...s.slice(0,-1),{...R,messageId:u}]:s});else if(a.answer)f+=a.answer,m(f);else if(a.sources){const s=Math.floor(Math.random()*3)+4;g(a.sources.slice(0,s))}}C()}).catch(d=>{d.name!=="AbortError"&&(console.error(d),n(!1),l(null),e(c.ErrorProcessingResponse))})};C()}).catch(r=>{r.name!=="AbortError"&&(console.error(r),n(!1),l(null),e(c.HttpRequestFailed))})},isGeneratingResponse:Q,response:E,resources:b,question:M,error:v,clearConversation:G,conversation:O,setConversation:i}}export{re as useAiSearch};
@@ -1,5 +1,5 @@
1
1
  import type { SearchItemData, SearchFilterItem, SearchFacet } from '@redocly/theme/core/types';
2
- export declare function useSearch(product?: string, disableAutoSearch?: boolean, searchSessionId?: string): {
2
+ export declare function useSearch(product?: string, disableAutoSearch?: boolean): {
3
3
  query: string;
4
4
  setQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
5
5
  filter: SearchFilterItem[];
@@ -1 +1 @@
1
- import{useCallback as y,useEffect as _,useState as R,useRef as T}from"react";import{SEARCH_DEBOUNCE_TIME_MS as G}from"@redocly/theme/core/constants";import{withPathPrefix as b}from"@redocly/theme/core/utils";import{SEARCH_GROUP_FACET_FIELD as O,SEARCH_PRODUCT_FIELD as N,SEARCH_VERSION_FIELD as k,ServerRoutes as P}from"../../../constants/common";import{debounce as M}from"../../../utils/time/debounce.js";import{useGlobalData as Q,useI18nConfig as A}from"../hooks";import{usePageVersions as U}from"../../providers/page-data/hooks";import{useFacets as x}from"./useFacets";import{telemetry as J}from"../telemetry/index.js";const B=(s,c,e,a,n,i,o,f,m)=>{const{currentLocale:l}=A(),u=T(""),p=y(M(async(t,h,d,S)=>{if(!t.trim().length&&!h.length){e({}),a({}),n(!1);return}const E={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:t,filter:v(h,S,i),locale:d})};try{const r=await fetch(b(P.SEARCH),E);if(u.current===t){const F=await r.json();a(F.facets),e(F.documents),t.trim().length>1&&J.sendSearchQueryMessage({query:t,resultCount:Object.keys(F.documents).length.toString(),searchSessionId:m})}n(!1)}catch(r){e({}),console.log(r)}},G),[i?.version,i?.folderId,o]);return _(()=>{f||(n(!0),p(s,c,l,o),u.current=s)},[f,c,l,o,s,p,n]),{}},K=(s,c,e,a,n,i,o,f)=>{const{currentLocale:m}=A();_(()=>{l(e,s,c,m,a,n,f)},[a,f]);const l=y(async(u,p,t,h,d,S,E)=>{if(d){const{groupKey:r}=d;o(!0);const g={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:p,filter:(()=>{const C=S.find(I=>I.field===O);return C&&!t.find(L=>L.field===C?.field)?[...t,{field:C.field,values:[r]}]:v(t,E)})(),loadMore:d,locale:h})},D=await(await fetch(b(P.SEARCH),g)).json(),H=u[r]||[],j=D.documents[r],w={...u,[r]:[...H,...j]};i(w),o(!1)}},[]);return{}};function se(s,c,e){const{searchFeatures:a}=Q(),[n,i]=R(""),[o,f]=R([]),[m,l]=R({}),[u,p]=R({}),[t,h]=R(),[d,S]=R(!1),{facets:E}=x(u),{versions:r=[]}=U()||{},F=r.find(g=>g?.active);return B(n,o,l,p,S,F,s,c,e),K(n,o,m,t,E,l,S,s),{query:n,setQuery:i,filter:o,setFilter:f,items:m,isSearchLoading:d,facets:E,groupField:O,setLoadMore:h,advancedSearch:a?.advanced?.enabled,askAi:a?.ai?.enabled}}function v(s,c,e){return[...s,...c?[{field:N,values:[c]}]:[],...e?[{field:k,values:[...e.default?["default"]:[e.folderId,e.version]]}]:[]]}export{se as useSearch};
1
+ import{useCallback as I,useEffect as y,useState as F,useRef as T}from"react";import{SEARCH_DEBOUNCE_TIME_MS as G}from"@redocly/theme/core/constants";import{withPathPrefix as _}from"@redocly/theme/core/utils";import{SEARCH_GROUP_FACET_FIELD as b,SEARCH_PRODUCT_FIELD as N,SEARCH_VERSION_FIELD as k,ServerRoutes as O}from"../../../constants/common";import{debounce as M}from"../../../utils/time/debounce.js";import{useSearchSession as Q}from"@redocly/theme/core/contexts";import{useGlobalData as U,useI18nConfig as P}from"../hooks";import{usePageVersions as x}from"../../providers/page-data/hooks";import{useFacets as J}from"./useFacets";import{telemetry as B}from"../telemetry/index.js";const K=(s,n,e,r,a,c,i,f)=>{const{searchSessionId:d}=Q(),{currentLocale:m}=P(),l=T(""),p=I(M(async(t,h,u,S)=>{if(!t.trim().length&&!h.length){e({}),r({}),a(!1);return}const R={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:t,filter:A(h,S,c),locale:u})};try{const o=await fetch(_(O.SEARCH),R);if(l.current===t){const E=await o.json();r(E.facets),e(E.documents),t.trim().length>1&&B.sendSearchQueryMessage({query:t,resultCount:Object.keys(E.documents).length.toString(),searchSessionId:d})}a(!1)}catch(o){e({}),console.log(o)}},G),[c?.version,c?.folderId,i]);return y(()=>{f||(a(!0),p(s,n,m,i),l.current=s)},[f,n,m,i,s,p,a]),{}},z=(s,n,e,r,a,c,i,f)=>{const{currentLocale:d}=P();y(()=>{m(e,s,n,d,r,a,f)},[r,f]);const m=I(async(l,p,t,h,u,S,R)=>{if(u){const{groupKey:o}=u;i(!0);const v={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:p,filter:(()=>{const g=S.find(C=>C.field===b);return g&&!t.find(L=>L.field===g?.field)?[...t,{field:g.field,values:[o]}]:A(t,R)})(),loadMore:u,locale:h})},D=await(await fetch(_(O.SEARCH),v)).json(),H=l[o]||[],j=D.documents[o],w={...l,[o]:[...H,...j]};c(w),i(!1)}},[]);return{}};function ne(s,n){const{searchFeatures:e}=U(),[r,a]=F(""),[c,i]=F([]),[f,d]=F({}),[m,l]=F({}),[p,t]=F(),[h,u]=F(!1),{facets:S}=J(m),{versions:R=[]}=x()||{},o=R.find(E=>E?.active);return K(r,c,d,l,u,o,s,n),z(r,c,f,p,S,d,u,s),{query:r,setQuery:a,filter:c,setFilter:i,items:f,isSearchLoading:h,facets:S,groupField:b,setLoadMore:t,advancedSearch:e?.advanced?.enabled,askAi:e?.ai?.enabled}}function A(s,n,e){return[...s,...n?[{field:N,values:[n]}]:[],...e?[{field:k,values:[...e.default?["default"]:[e.folderId,e.version]]}]:[]]}export{ne as useSearch};
@@ -1 +1 @@
1
- import a from"react";import{ThemeDataContext as m}from"@redocly/theme/core/contexts";import{useBreadcrumbs as l,useCatalogClassic as d,useCurrentProduct as g,useGlobalData as o,useI18n as p,useI18nConfig as f,useL10n as b,useL10nConfig as C,usePageData as r,usePageSharedData as h,usePageVersions as P,usePreloadHistory as S,useProducts as T,useUserMenu as D,useSubmitFeedback as k,useTranslate as F,useSidebarSiblingsData as L,usePageProps as M,useUserTeams as v,useMarkdownText as O,useCodeHighlight as E,useLoadAndNavigate as R,useCatalog as w,useCatalogSort as x,useCatalogSearch as y,useFetchCatalogEntities as A,useFetchCatalogEntitiesRelations as I,useTelemetry as s,useMcpData as j}from"../../app/hooks";import{Link as H}from"../../app/Link";import{useFacetQuery as N,useSearch as U,useAiSearch as _}from"../../app/search";import{useSidebarItems as B}from"../../app/Sidebar/useSidebarItems";import{deepMerge as G}from"../../../utils/object/deep-merge";import{allowlistObject as Q}from"../../../utils/object/allowlist-object";const V=["title","description","seo","sidebar","excludeFromSearch","template","redirects","rbac","metadata","slug","codeSnippet","breadcrumbs","markdown","seo","navbar","footer","colorMode","feedback","navigation"],W={useBreadcrumbs:l,useCatalog:w,useCatalogSort:x,useCatalogSearch:y,useFetchCatalogEntities:A,useFetchCatalogEntitiesRelations:I,useCatalogClassic:d,useCurrentProduct:g,useGlobalData:o,useSearch:U,useAiSearch:_,useFacetQuery:N,useI18n:p,useI18nConfig:f,useL10n:b,useL10nConfig:C,usePageData:r,usePageSharedData:h,usePageVersions:P,usePreloadHistory:S,useProducts:T,useUserMenu:D,useSidebarItems:B,useSidebarSiblingsData:L,useSubmitFeedback:k,useTranslate:F,useUserTeams:v,usePageProps:M,useMarkdownText:O,useCodeHighlight:E,useLoadAndNavigate:R,useTelemetry:s,useOtelTelemetry:s,useMcpData:j},q={LinkComponent:H};function te({children:u}){const{props:e}=r()||{},t=o()||{},n=a.useMemo(()=>{const c=Q(e?.frontmatter||{},V);return G(t,c)},[t,e?.frontmatter]),i={hooks:W,components:q,config:n};return a.createElement(m.Provider,{value:i},u)}export{te as ThemeDataProvider};
1
+ import e from"react";import{ThemeDataContext as m,SearchSessionProvider as l}from"@redocly/theme/core/contexts";import{useBreadcrumbs as d,useBanner as g,useCatalogClassic as p,useCurrentProduct as f,useGlobalData as o,useI18n as b,useI18nConfig as C,useL10n as S,useL10nConfig as h,usePageData as r,usePageSharedData as P,usePageVersions as T,usePreloadHistory as D,useProducts as k,useUserMenu as v,useSubmitFeedback as F,useTranslate as L,useSidebarSiblingsData as M,usePageProps as E,useUserTeams as O,useMarkdownText as R,useCodeHighlight as w,useLoadAndNavigate as x,useCatalog as y,useCatalogSort as A,useCatalogSearch as I,useFetchCatalogEntities as j,useFetchCatalogEntitiesRelations as B,useTelemetry as s,useMcpData as H}from"../../app/hooks";import{Link as N}from"../../app/Link";import{useFacetQuery as U,useSearch as _,useAiSearch as G}from"../../app/search";import{useSidebarItems as Q}from"../../app/Sidebar/useSidebarItems";import{deepMerge as V}from"../../../utils/object/deep-merge";import{allowlistObject as W}from"../../../utils/object/allowlist-object";const q=["title","description","seo","sidebar","excludeFromSearch","template","redirects","rbac","metadata","slug","codeSnippet","breadcrumbs","markdown","seo","navbar","footer","colorMode","feedback","navigation","banner"],z={useBreadcrumbs:d,useBanner:g,useCatalog:y,useCatalogSort:A,useCatalogSearch:I,useFetchCatalogEntities:j,useFetchCatalogEntitiesRelations:B,useCatalogClassic:p,useCurrentProduct:f,useGlobalData:o,useSearch:_,useAiSearch:G,useFacetQuery:U,useI18n:b,useI18nConfig:C,useL10n:S,useL10nConfig:h,usePageData:r,usePageSharedData:P,usePageVersions:T,usePreloadHistory:D,useProducts:k,useUserMenu:v,useSidebarItems:Q,useSidebarSiblingsData:M,useSubmitFeedback:F,useTranslate:L,useUserTeams:O,usePageProps:E,useMarkdownText:R,useCodeHighlight:w,useLoadAndNavigate:x,useTelemetry:s,useOtelTelemetry:s,useMcpData:H},J={LinkComponent:N};function oe({children:n}){const{props:t}=r()||{},a=o()||{},u=e.useMemo(()=>{const c=W(t?.frontmatter||{},q);return V(a,c)},[a,t?.frontmatter]),i={hooks:z,components:J,config:u};return e.createElement(l,null,e.createElement(m.Provider,{value:i},n))}export{oe as ThemeDataProvider};
@@ -23,5 +23,6 @@ export declare const PRODUCT_GATES: {
23
23
  breadcrumbs: boolean;
24
24
  mockServer: boolean;
25
25
  codeWalkthrough: boolean;
26
+ banner: boolean;
26
27
  };
27
28
  //# sourceMappingURL=product-gates.d.ts.map
@@ -1 +1 @@
1
- const e="@redocly/revel",r="Revel",a={apiFunctions:!1,asyncapi:!1,soap:!1,reactPages:!0,catalog:!1,catalogClassic:!1,lint:!0,scorecard:!1,l10n:!0,openapi:!1,graphql:!1,markdown:!0,devOnboarding:!1,seo:!0,redirects:!0,customPlugins:!0,themeEjecting:!0,products:!0,breadcrumbs:!0,mockServer:!1,codeWalkthrough:!0,scorecards:!1};export{e as PACKAGE_NAME,a as PRODUCT_GATES,r as PRODUCT_NAME};
1
+ const e="@redocly/revel",r="Revel",a={apiFunctions:!1,asyncapi:!1,soap:!1,reactPages:!0,catalog:!1,catalogClassic:!1,lint:!0,scorecard:!1,l10n:!0,openapi:!1,graphql:!1,markdown:!0,devOnboarding:!1,seo:!0,redirects:!0,customPlugins:!0,themeEjecting:!0,products:!0,breadcrumbs:!0,mockServer:!1,codeWalkthrough:!0,scorecards:!1,banner:!0};export{e as PACKAGE_NAME,a as PRODUCT_GATES,r as PRODUCT_NAME};
@@ -135,5 +135,6 @@ export declare const FEATURE: {
135
135
  readonly codeWalkthrough: "codeWalkthrough";
136
136
  readonly aiSearchLimit: "aiSearchLimit";
137
137
  readonly mcp: "mcp";
138
+ readonly banner: "banner";
138
139
  };
139
140
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- import{AuthProviderType as e}from"@redocly/config";import{withPathPrefix as r}from"@redocly/theme/core/utils";const i="openapi_docs",L="asyncapi_docs",R="graphql_docs",I="/_spec-gql",C="markdoc",S="tags",n="*",l={[n]:"read"},d=["openid","email"],P=1440*60,N="anonymous",u="authenticated",D="**",h="Reunite",x="translations.yaml",m="redocly.yaml",U="@redocly/theme",g="@theme",M="/app-data.json",G="/eject-component",_=process.env.SERVER_EDITOR_APP_URL||"http://127.0.0.1:3000",v=process.env.REDOCLY_CORS_ORIGINS?process.env.REDOCLY_CORS_ORIGINS.split(",").map(o=>o.trim()).filter(Boolean).concat(_):[_];var a;(function(o){o.BUILD="build",o.DEVELOP="develop",o.PREPARE="prepare"})(a||(a={}));var c;(function(o){o.RATING="rating",o.SENTIMENT="sentiment",o.COMMENT="comment",o.MOOD="mood",o.PROBLEM="problem",o.SCALE="scale"})(c||(c={}));const t="entityKey",A="entityRelationId",s={INFO:"/_info",EJECT_COMPONENT:"/eject-component/:componentName",SHARED_PAGE_DATA:"/page-data/shared/*",PAGE_DATA:"/page-data/*",APP_DATA:"/app-data.json",AUTHORIZATION:"/authorize",OIDC_CALLBACK:"/_auth/oidc",SAML_CALLBACK:"/_auth/saml2",REDOCLY_CALLBACK:"/_auth/redocly",REPLAY_OAUTH2_CALLBACK:"/_auth/replay-oauth2",REDOCLY_LOGIN_CALLBACK:"/_auth/redocly/redocly-login",REDOCLY_TOKEN_LOGIN:"/_auth/redocly-token-login",SEARCH:"/_search",SEARCH_FACETS:"/_search-facets",LOGOUT:"/logout",LOGIN:"/login",IDP_LOGIN:"/_auth/idp-login",INVITE:"/invite/:code",RESOLVE_ROUTE_BY_PATH:"/resolve-route-by-path",RESOLVE_ROUTES_BY_PATHS:"/resolve-routes-by-paths",RESOLVE_ROUTE_BY_SLUG:"/resolve-route-by-slug",GET_ROUTES_BY_LINE:"/get-routes-by-line",FEEDBACK:"/feedback",TELEMETRY:"/_events",OTEL_TRACES:"/_otel/v1/traces",HEALTH:"/_health",ASK_AI:"/_ask-ai",CATALOG_ENTITIES:`/catalog-entities/:${t}?`,CATALOG_ENTITIES_RELATIONS:`/catalog-entities-relations/:${A}?`,BFF_CATALOG_ENTITIES:`/bff/catalog-entities/:${t}?`,BFF_CATALOG_RELATED_ENTITIES:`/bff/catalog-related-entities/:${t}`,BFF_CATALOG_REVISIONS:`/bff/catalog-revisions/:${t}`,MCP_OAUTH_AUTHORIZATION_SERVER:"/.well-known/oauth-authorization-server",MCP_OAUTH_PROTECTED_RESOURCE:"/.well-known/oauth-protected-resource/mcp",MCP_DYNAMIC_CLIENT_REGISTRATION:"/_mcp/register",MCP_AUTHORIZATION:"/_mcp/oauth2/auth",MCP_TOKEN_PORTAL:"/_mcp/oauth2/token-portal",MCP_CALLBACK:"/_mcp/oauth/callback",SCORECARDS:"/scorecards"},F={[e.SAML2]:r(s.IDP_LOGIN),[e.OIDC]:r(s.IDP_LOGIN)};var E;(function(o){o.AI_SEARCH="aiSearch"})(E||(E={}));const y="/login",H="/invite",b={AUTH0_PASS:"/auth/auth0-pass"},B={NotExist:"ENOENT"},f="default_locale",k="sidebar-",V="PUBLIC_",K=["BROKEN_LINK","MARKDOC","RESOLVE"],Y=["logo","navbar","products","footer","sidebar","scripts","links","feedback","search","aiAssistant","colorMode","navigation","codeSnippet","markdown","openapi","graphql","analytics","userMenu","versionPicker","breadcrumbs","catalog","entitiesCatalog","scorecard","scorecards","scorecardClassic","mcp"],O="redocly_category",w="redocly_product",j="redocly_version",q="redocly_teams",$=O,Q={asyncapi:"asyncapi",apiFunctions:"apiFunctions",reactPages:"reactPages",catalog:"catalog",catalogClassic:"catalogClassic",lint:"lint",scorecard:"scorecard",scorecards:"scorecards",l10n:"l10n",openapi:"openapi",graphql:"graphql",markdown:"markdown",devOnboarding:"devOnboarding",seo:"seo",redirects:"redirects",customPlugins:"customPlugins",themeEjecting:"themeEjecting",products:"products",breadcrumbs:"breadcrumbs",mockServer:"mockServer",sso:"sso",rbac:"rbac",analytics:"analytics",removeAttribution:"removeAttribution",advancedSearch:"advancedSearch",soap:"soap",ssoDirect:"ssoDirect",codeWalkthrough:"codeWalkthrough",aiSearchLimit:"aiSearchLimit",mcp:"mcp"};export{v as ALLOWED_CORS_ORIGINS,L as ASYNC_API_DOCS_TEMPLATE_ID,t as CATALOG_ENTITY_KEY,A as CATALOG_ENTITY_RELATION_ID,m as CONFIG_FILE_NAME,C as CUSTOM_MARKDOC_OPTIONS_PATH,S as CUSTOM_MARKDOC_TAGS_PATH,N as DEFAULT_ANONYMOUS_VISITOR_TEAM,u as DEFAULT_AUTHENTICATED_TEAM,P as DEFAULT_COOKIE_EXPIRATION,f as DEFAULT_LOCALE_PLACEHOLDER,F as DEFAULT_PROVIDERS_LOGIN_URLS,D as DEFAULT_RBAC_SCOPE,h as DEFAULT_SSO_IDP_TITLE,U as DEFAULT_THEME_NAME,y as DEV_LOGIN_SLUG,G as EJECT_COMPONENT_URL,b as ExternalRoutes,Q as FEATURE,c as FEEDBACK_TYPES,B as FsErrors,M as GLOBAL_DATA_URL,I as GRAPHQL_SPEC_SLUG,R as GRAPHQL_TEMPLATE_ID,H as INVITE_SLUG,K as MARKDOC_ERROR_TYPES,i as OPENAPI_DOCS_TEMPLATE_ID,V as PUBLIC_ENV_PREFIX,l as PUBLIC_RBAC_SCOPE_ITEM,n as RBAC_ALL_OTHER_TEAMS,d as REQUIRED_OIDC_SCOPES,E as RbacFeatures,O as SEARCH_CATEGORY_FIELD,$ as SEARCH_GROUP_FACET_FIELD,w as SEARCH_PRODUCT_FIELD,q as SEARCH_RBAC_FIELD,j as SEARCH_VERSION_FIELD,_ as SERVER_EDITOR_APP_URL,k as SIDEBAR_PREFIX,s as ServerRoutes,x as TRANSLATIONS_FILE_NAME,Y as UI_ACCESSIBLE_CONFIG_PROPS,g as USER_THEME_ALIAS,a as cliCommandNames};
1
+ import{AuthProviderType as e}from"@redocly/config";import{withPathPrefix as r}from"@redocly/theme/core/utils";const i="openapi_docs",L="asyncapi_docs",R="graphql_docs",I="/_spec-gql",C="markdoc",S="tags",n="*",l={[n]:"read"},d=["openid","email"],P=1440*60,N="anonymous",u="authenticated",D="**",h="Reunite",x="translations.yaml",m="redocly.yaml",U="@redocly/theme",g="@theme",M="/app-data.json",G="/eject-component",a=process.env.SERVER_EDITOR_APP_URL||"http://127.0.0.1:3000",b=process.env.REDOCLY_CORS_ORIGINS?process.env.REDOCLY_CORS_ORIGINS.split(",").map(o=>o.trim()).filter(Boolean).concat(a):[a];var _;(function(o){o.BUILD="build",o.DEVELOP="develop",o.PREPARE="prepare"})(_||(_={}));var c;(function(o){o.RATING="rating",o.SENTIMENT="sentiment",o.COMMENT="comment",o.MOOD="mood",o.PROBLEM="problem",o.SCALE="scale"})(c||(c={}));const t="entityKey",A="entityRelationId",s={INFO:"/_info",EJECT_COMPONENT:"/eject-component/:componentName",SHARED_PAGE_DATA:"/page-data/shared/*",PAGE_DATA:"/page-data/*",APP_DATA:"/app-data.json",AUTHORIZATION:"/authorize",OIDC_CALLBACK:"/_auth/oidc",SAML_CALLBACK:"/_auth/saml2",REDOCLY_CALLBACK:"/_auth/redocly",REPLAY_OAUTH2_CALLBACK:"/_auth/replay-oauth2",REDOCLY_LOGIN_CALLBACK:"/_auth/redocly/redocly-login",REDOCLY_TOKEN_LOGIN:"/_auth/redocly-token-login",SEARCH:"/_search",SEARCH_FACETS:"/_search-facets",LOGOUT:"/logout",LOGIN:"/login",IDP_LOGIN:"/_auth/idp-login",INVITE:"/invite/:code",RESOLVE_ROUTE_BY_PATH:"/resolve-route-by-path",RESOLVE_ROUTES_BY_PATHS:"/resolve-routes-by-paths",RESOLVE_ROUTE_BY_SLUG:"/resolve-route-by-slug",GET_ROUTES_BY_LINE:"/get-routes-by-line",FEEDBACK:"/feedback",TELEMETRY:"/_events",OTEL_TRACES:"/_otel/v1/traces",HEALTH:"/_health",ASK_AI:"/_ask-ai",CATALOG_ENTITIES:`/catalog-entities/:${t}?`,CATALOG_ENTITIES_RELATIONS:`/catalog-entities-relations/:${A}?`,BFF_CATALOG_ENTITIES:`/bff/catalog-entities/:${t}?`,BFF_CATALOG_RELATED_ENTITIES:`/bff/catalog-related-entities/:${t}`,BFF_CATALOG_REVISIONS:`/bff/catalog-revisions/:${t}`,MCP_OAUTH_AUTHORIZATION_SERVER:"/.well-known/oauth-authorization-server",MCP_OAUTH_PROTECTED_RESOURCE:"/.well-known/oauth-protected-resource/mcp",MCP_DYNAMIC_CLIENT_REGISTRATION:"/_mcp/register",MCP_AUTHORIZATION:"/_mcp/oauth2/auth",MCP_TOKEN_PORTAL:"/_mcp/oauth2/token-portal",MCP_CALLBACK:"/_mcp/oauth/callback",SCORECARDS:"/scorecards"},v={[e.SAML2]:r(s.IDP_LOGIN),[e.OIDC]:r(s.IDP_LOGIN)};var E;(function(o){o.AI_SEARCH="aiSearch"})(E||(E={}));const F="/login",y="/invite",H={AUTH0_PASS:"/auth/auth0-pass"},B={NotExist:"ENOENT"},f="default_locale",k="sidebar-",V="PUBLIC_",K=["BROKEN_LINK","MARKDOC","RESOLVE"],Y=["logo","navbar","products","footer","sidebar","scripts","links","feedback","search","aiAssistant","colorMode","navigation","codeSnippet","markdown","openapi","graphql","analytics","userMenu","versionPicker","breadcrumbs","catalog","entitiesCatalog","scorecard","scorecards","scorecardClassic","mcp","banner"],O="redocly_category",w="redocly_product",j="redocly_version",q="redocly_teams",$=O,Q={asyncapi:"asyncapi",apiFunctions:"apiFunctions",reactPages:"reactPages",catalog:"catalog",catalogClassic:"catalogClassic",lint:"lint",scorecard:"scorecard",scorecards:"scorecards",l10n:"l10n",openapi:"openapi",graphql:"graphql",markdown:"markdown",devOnboarding:"devOnboarding",seo:"seo",redirects:"redirects",customPlugins:"customPlugins",themeEjecting:"themeEjecting",products:"products",breadcrumbs:"breadcrumbs",mockServer:"mockServer",sso:"sso",rbac:"rbac",analytics:"analytics",removeAttribution:"removeAttribution",advancedSearch:"advancedSearch",soap:"soap",ssoDirect:"ssoDirect",codeWalkthrough:"codeWalkthrough",aiSearchLimit:"aiSearchLimit",mcp:"mcp",banner:"banner"};export{b as ALLOWED_CORS_ORIGINS,L as ASYNC_API_DOCS_TEMPLATE_ID,t as CATALOG_ENTITY_KEY,A as CATALOG_ENTITY_RELATION_ID,m as CONFIG_FILE_NAME,C as CUSTOM_MARKDOC_OPTIONS_PATH,S as CUSTOM_MARKDOC_TAGS_PATH,N as DEFAULT_ANONYMOUS_VISITOR_TEAM,u as DEFAULT_AUTHENTICATED_TEAM,P as DEFAULT_COOKIE_EXPIRATION,f as DEFAULT_LOCALE_PLACEHOLDER,v as DEFAULT_PROVIDERS_LOGIN_URLS,D as DEFAULT_RBAC_SCOPE,h as DEFAULT_SSO_IDP_TITLE,U as DEFAULT_THEME_NAME,F as DEV_LOGIN_SLUG,G as EJECT_COMPONENT_URL,H as ExternalRoutes,Q as FEATURE,c as FEEDBACK_TYPES,B as FsErrors,M as GLOBAL_DATA_URL,I as GRAPHQL_SPEC_SLUG,R as GRAPHQL_TEMPLATE_ID,y as INVITE_SLUG,K as MARKDOC_ERROR_TYPES,i as OPENAPI_DOCS_TEMPLATE_ID,V as PUBLIC_ENV_PREFIX,l as PUBLIC_RBAC_SCOPE_ITEM,n as RBAC_ALL_OTHER_TEAMS,d as REQUIRED_OIDC_SCOPES,E as RbacFeatures,O as SEARCH_CATEGORY_FIELD,$ as SEARCH_GROUP_FACET_FIELD,w as SEARCH_PRODUCT_FIELD,q as SEARCH_RBAC_FIELD,j as SEARCH_VERSION_FIELD,a as SERVER_EDITOR_APP_URL,k as SIDEBAR_PREFIX,s as ServerRoutes,x as TRANSLATIONS_FILE_NAME,Y as UI_ACCESSIBLE_CONFIG_PROPS,g as USER_THEME_ALIAS,_ as cliCommandNames};
@@ -1 +1 @@
1
- import{redocConfigSchema as m,rootRedoclyConfigSchema as t}from"@redocly/config";import p from"is-glob";import{I18N_DIR_NAME as d,L10N_DIR_NAME as u}from"../../../constants/common.js";import{CONFIG_FILE_NAME as f}from"../../../../constants/common.js";import{DEFAULT_SEARCH_ENGINE as A}from"../../../constants/plugins/search.js";import{deepMerge as F}from"../../../../utils/object/deep-merge.js";import{logger as C}from"../../../tools/notifiers/logger.js";import{EntitlementsProvider as b}from"../../../entitlements/entitlements-provider.js";import{readAndValidateConfig as g}from"./utils/read-and-validate-config.js";import{resolvePlugins as h}from"../../../config/external-plugins.js";import{getPathForAllLocales as l}from"../../../fs/utils/get-path-for-all-locales.js";import{parseRbacConfig as v}from"../../../utils/rbac.js";import{RbacConfigLocation as y,validateRbacConfig as S}from"../../validate-rbac-config.js";const z=async(e,{fs:r},a)=>{const n=await g(e,r,a,async c=>e===f?E(r.cwd,c?.plugins||[]):void 0);n?.rbac&&(n.rbac=await v(n.rbac),S(n.rbac,e===f?y.RootRedoclyYaml:void 0)),(n?.l10n||n?.i18n)&&(n.l10n=L(n),n.i18n=void 0);const s=F(n||{},{markdown:{partialsFolders:(n?.markdown?.partialsFolders||[]).flatMap(c=>l(c,r))}});return R({...s,configPath:e,ignore:I(n?.ignore,r)})};async function E(e,r){const a=await h(e,r),n=a.map(i=>i.config.schema?i.lifecyclePlugin.id:""),s={};for(const i of a){const o=i.lifecyclePlugin?.id;i.config.schema&&o&&t.properties&&(s[o]=i.config.schema)}return{...t,properties:{...s,...t.properties,openapi:m},$id:t.$id+n.join("")}}function R(e){const r=b.instance();return r.canAccessFeature("apiFunctions")||(e.apiFunctions=void 0),r.canAccessFeature("products")||(e.products=void 0),r.canAccessFeature("breadcrumbs")||(e.breadcrumbs={hide:!0}),r.canAccessFeature("seo")||(e.seo=void 0),r.canAccessFeature("redirects")||(e.redirects={}),r.canAccessFeature("l10n")||(e.l10n=void 0),r.canAccessFeature("rbac")||(e.rbac=void 0),r.canAccessFeature("sso")||(e.sso=void 0),r.canAccessFeature("ssoDirect")||(e.ssoDirect=void 0),r.canAccessFeature("catalogClassic")||(e.catalog=void 0,e.catalogClassic=void 0),r.canAccessFeature("scorecard")||(e.scorecard=void 0,e.scorecardClassic=void 0),r.canAccessFeature("scorecards")||(e.scorecards=void 0),r.canAccessFeature("devOnboarding")||(e.developerOnboarding=void 0),r.canAccessFeature("analytics")||(e.analytics=void 0),r.canAccessFeature("removeAttribution")||(e.removeAttribution=void 0),r.canAccessFeature("mockServer")||(e.mockServer={off:!0}),r.canAccessFeature("advancedSearch")||e.search&&(e.search.engine=A),e}function I(e=[],r){return["static",...e].flatMap(a=>p(a)&&(a.startsWith("*")||a.startsWith(u)||a.startsWith("/"+u)||a.startsWith(d)||a.startsWith("/"+d))?a:l(a,r))}function L(e){return e.i18n&&C.warn("The `i18n` configuration is deprecated. Please use `l10n` instead."),e.l10n||e.i18n||{}}export{z as redoclyConfigLoader};
1
+ import{redocConfigSchema as m,rootRedoclyConfigSchema as t}from"@redocly/config";import p from"is-glob";import{I18N_DIR_NAME as d,L10N_DIR_NAME as u}from"../../../constants/common.js";import{CONFIG_FILE_NAME as f}from"../../../../constants/common.js";import{DEFAULT_SEARCH_ENGINE as A}from"../../../constants/plugins/search.js";import{deepMerge as F}from"../../../../utils/object/deep-merge.js";import{logger as b}from"../../../tools/notifiers/logger.js";import{EntitlementsProvider as C}from"../../../entitlements/entitlements-provider.js";import{readAndValidateConfig as h}from"./utils/read-and-validate-config.js";import{resolvePlugins as v}from"../../../config/external-plugins.js";import{getPathForAllLocales as l}from"../../../fs/utils/get-path-for-all-locales.js";import{parseRbacConfig as y}from"../../../utils/rbac.js";import{RbacConfigLocation as g,validateRbacConfig as S}from"../../validate-rbac-config.js";const z=async(e,{fs:r},a)=>{const n=await h(e,r,a,async c=>e===f?E(r.cwd,c?.plugins||[]):void 0);n?.rbac&&(n.rbac=await y(n.rbac),S(n.rbac,e===f?g.RootRedoclyYaml:void 0)),(n?.l10n||n?.i18n)&&(n.l10n=L(n),n.i18n=void 0);const s=F(n||{},{markdown:{partialsFolders:(n?.markdown?.partialsFolders||[]).flatMap(c=>l(c,r))}});return R({...s,configPath:e,ignore:I(n?.ignore,r)})};async function E(e,r){const a=await v(e,r),n=a.map(i=>i.config.schema?i.lifecyclePlugin.id:""),s={};for(const i of a){const o=i.lifecyclePlugin?.id;i.config.schema&&o&&t.properties&&(s[o]=i.config.schema)}return{...t,properties:{...s,...t.properties,openapi:m},$id:t.$id+n.join("")}}function R(e){const r=C.instance();return r.canAccessFeature("apiFunctions")||(e.apiFunctions=void 0),r.canAccessFeature("products")||(e.products=void 0),r.canAccessFeature("breadcrumbs")||(e.breadcrumbs={hide:!0}),r.canAccessFeature("seo")||(e.seo=void 0),r.canAccessFeature("redirects")||(e.redirects={}),r.canAccessFeature("l10n")||(e.l10n=void 0),r.canAccessFeature("rbac")||(e.rbac=void 0),r.canAccessFeature("sso")||(e.sso=void 0),r.canAccessFeature("ssoDirect")||(e.ssoDirect=void 0),r.canAccessFeature("catalogClassic")||(e.catalog=void 0,e.catalogClassic=void 0),r.canAccessFeature("scorecard")||(e.scorecard=void 0,e.scorecardClassic=void 0),r.canAccessFeature("scorecards")||(e.scorecards=void 0),r.canAccessFeature("devOnboarding")||(e.developerOnboarding=void 0),r.canAccessFeature("analytics")||(e.analytics=void 0),r.canAccessFeature("removeAttribution")||(e.removeAttribution=void 0),r.canAccessFeature("mockServer")||(e.mockServer={off:!0}),r.canAccessFeature("advancedSearch")||e.search&&(e.search.engine=A),r.canAccessFeature("banner")||(e.banner=void 0),e}function I(e=[],r){return["static",...e].flatMap(a=>p(a)&&(a.startsWith("*")||a.startsWith(u)||a.startsWith("/"+u)||a.startsWith(d)||a.startsWith("/"+d))?a:l(a,r))}function L(e){return e.i18n&&b.warn("The `i18n` configuration is deprecated. Please use `l10n` instead."),e.l10n||e.i18n||{}}export{z as redoclyConfigLoader};
@@ -1 +1 @@
1
- import w from"node:path";import{reporter as x}from"../../../tools/notifiers/reporter.js";import{lintDefinition as h}from"../lint.js";import{ExternalResolver as v}from"../../../fs/utils/external-ref-resolver.js";const C="Non-conformant";async function M(i,e){const{data:{levelsConfig:c,configs:t,targets:n}}=await e.cache.load("","scorecard-config"),r={};let a=C,s=!1;const g=await e.fs.read(i),{data:f}=await e.cache.load(i,"yaml"),m=new v(e.fs);let l={};if(n.length){const o=await e.getConfig(w.posix.dirname(i)),d=f?.info?.["x-metadata"],p={title:f.info.title,version:f.info.version,...d,...o.metadata};l=(await y(n,p))?.configs||{}}for(const o of c){const d=await h({parsed:f,content:g,relativePath:i},l[o.name]||t[o.name],e,m);r[o.name]=d,d.errors===0&&!s?a=o.name:s=!0}let u=c.findIndex(o=>o.name===a);return{levels:r,scorecardLevel:a,scorecardLevelIdx:u+1}}async function y(i,e){if(i)for(const c of i)for(const[t,n]of Object.entries(c.where?.metadata||{})){if(String(n).match(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}Z)?\/(\d{4}-\d{2}-\d{2})?$/)){if(!e[t])continue;const[r,a]=n.split("/"),s=new Date(e[t]);if(s<new Date(r)||a&&s>new Date(a))continue}else if(String(n).match(/^\/.*\//)){if(!e[t])continue;try{if(!new RegExp(n.slice(1,-1)).test(e[t]))continue}catch{await x.panicOnBuild(`Invalid regex in scorecard target "${t}": ${n}`);continue}}else if(e[t]!==n)continue;return c}}export{y as getTarget,M as scorecardLoader};
1
+ import w from"node:path";import{reporter as x}from"../../../tools/notifiers/reporter.js";import{lintDefinition as h}from"../lint.js";import{ExternalResolver as b}from"../../../fs/utils/external-ref-resolver.js";const v="Non-conformant";async function O(o,e){const{data:{levelsConfig:s,configs:n,targets:t}}=await e.cache.load("","scorecard-config"),a={};let i=v,f=!1;const c=await e.fs.read(o),{data:l}=await e.cache.load(o,"yaml"),m=new b(e.fs);let g={};if(t.length){const r=await e.getConfig(w.posix.dirname(o)),d=l?.info?.["x-metadata"],p={title:l.info.title,version:l.info.version,...d,...r.metadata};g=(await k(t,p))?.configs||{}}for(const r of s){const d=await h({parsed:l,content:c,relativePath:o},g[r.name]||n[r.name],e,m);a[r.name]=d,d.errors===0&&!f?i=r.name:f=!0}let u=s.findIndex(r=>r.name===i);return{levels:a,scorecardLevel:i,scorecardLevelIdx:u+1}}async function k(o,e){if(o)for(const s of o){let n=!0;for(const[t,a]of Object.entries(s.where?.metadata||{}))if(String(a).match(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}Z)?\/(\d{4}-\d{2}-\d{2})?$/)){if(!e[t]){n=!1;break}const[i,f]=a.split("/"),c=new Date(e[t]);if(c<new Date(i)||f&&c>new Date(f)){n=!1;break}}else if(String(a).match(/^\/.*\//)){if(!e[t]){n=!1;break}try{if(!new RegExp(a.slice(1,-1)).test(e[t])){n=!1;break}}catch{await x.panicOnBuild(`Invalid regex in scorecard target "${t}": ${a}`),n=!1;break}}else if(e[t]!==a){n=!1;break}if(n)return s}}export{k as getTarget,O as scorecardLoader};
@@ -23,6 +23,7 @@ export type ProductGates = {
23
23
  [FEATURE.soap]: boolean;
24
24
  [FEATURE.codeWalkthrough]: boolean;
25
25
  [FEATURE.scorecards]: boolean;
26
+ [FEATURE.banner]: boolean;
26
27
  };
27
28
  export type PlanGates = {
28
29
  [FEATURE.sso]: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/revel",
3
- "version": "0.128.0-next.9",
3
+ "version": "0.128.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,7 +32,7 @@
32
32
  "@opentelemetry/sdk-trace-web": "2.0.1",
33
33
  "@opentelemetry/semantic-conventions": "1.34.0",
34
34
  "@redocly/ajv": "8.17.1",
35
- "@redocly/openapi-core": "2.12.1",
35
+ "@redocly/openapi-core": "2.12.3",
36
36
  "@shikijs/transformers": "^1.22.2",
37
37
  "@tanstack/react-query": "5.62.3",
38
38
  "@tanstack/react-table": "8.21.3",
@@ -70,10 +70,10 @@
70
70
  "os-browserify": "0.3.0",
71
71
  "path-browserify": "1.0.1",
72
72
  "picomatch": "2.3.1",
73
- "react": "^19.1.0",
73
+ "react": "^19.2.1",
74
74
  "react-calendar": "5.1.0",
75
75
  "react-date-picker": "11.0.0",
76
- "react-dom": "^19.1.0",
76
+ "react-dom": "^19.2.1",
77
77
  "react-router-dom": "^6.21.1",
78
78
  "react-select": "5.10.1",
79
79
  "reactjs-popup": "2.0.6",
@@ -92,18 +92,18 @@
92
92
  "xml-crypto": "6.0.1",
93
93
  "xpath": "0.0.34",
94
94
  "yaml-ast-parser": "0.0.43",
95
- "@redocly/asyncapi-docs": "1.5.0-next.9",
96
- "@redocly/config": "0.40.0",
97
- "@redocly/graphql-docs": "1.5.0-next.1",
98
- "@redocly/openapi-docs": "3.16.0-next.9",
99
- "@redocly/portal-legacy-ui": "0.11.0-next.0",
100
- "@redocly/portal-plugin-mock-server": "0.13.0-next.9",
101
- "@redocly/realm-asyncapi-sdk": "0.6.0-next.1",
102
- "@redocly/theme": "0.60.0-next.6"
95
+ "@redocly/portal-plugin-mock-server": "0.13.1",
96
+ "@redocly/asyncapi-docs": "1.5.1",
97
+ "@redocly/openapi-docs": "3.16.1",
98
+ "@redocly/realm-asyncapi-sdk": "0.6.0",
99
+ "@redocly/graphql-docs": "1.5.0",
100
+ "@redocly/portal-legacy-ui": "0.11.0",
101
+ "@redocly/config": "0.41.0",
102
+ "@redocly/theme": "0.60.1"
103
103
  },
104
104
  "peerDependencies": {
105
- "react": "^19.1.0",
106
- "react-dom": "^19.1.0"
105
+ "react": "^19.2.1",
106
+ "react-dom": "^19.2.1"
107
107
  },
108
108
  "nx": {
109
109
  "implicitDependencies": [