@redocly/redoc-revel 0.135.0-next.3 → 0.135.0-next.5

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 (115) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/api-schemas/search-facets.d.ts +41 -0
  3. package/dist/api-schemas/search-facets.js +1 -0
  4. package/dist/api-schemas/search.d.ts +66 -0
  5. package/dist/api-schemas/search.js +1 -0
  6. package/dist/client/app/Feedback/useSubmitFeedback.js +1 -1
  7. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +5 -2
  8. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -1
  9. package/dist/client/app/UserMenu/useUserMenu.js +1 -1
  10. package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
  11. package/dist/client/app/pages/Invite/Invite.js +1 -1
  12. package/dist/client/app/search/useAiSearch.js +1 -1
  13. package/dist/client/app/search/useFacets.js +1 -1
  14. package/dist/client/app/search/useSearch.js +1 -1
  15. package/dist/client/app/utils/resolveRouteBySlug.js +1 -1
  16. package/dist/client/browser-entry.js +2 -2
  17. package/dist/client/providers/post-message/PostMessageProvider.js +1 -1
  18. package/dist/client/providers/theme/ThemeDataProvider.js +1 -1
  19. package/dist/client/templates/asyncapi-docs/template.js +1 -1
  20. package/dist/client/templates/openapi-docs/helpers.js +2 -2
  21. package/dist/client/templates/openapi-docs/template.js +1 -1
  22. package/dist/client/types/post-message.d.ts +4 -0
  23. package/dist/constants/api.d.ts +49 -0
  24. package/dist/constants/api.js +1 -0
  25. package/dist/constants/common.d.ts +0 -48
  26. package/dist/constants/common.js +1 -1
  27. package/dist/server/config/env-config.d.ts +2 -2
  28. package/dist/server/config/env-schema.d.ts +5 -5
  29. package/dist/server/config/env-schemas/feature-flags.d.ts +4 -0
  30. package/dist/server/config/env-schemas/feature-flags.js +1 -1
  31. package/dist/server/config/env-schemas/server-config.d.ts +0 -3
  32. package/dist/server/config/env-schemas/server-config.js +1 -1
  33. package/dist/server/constants/common.d.ts +0 -1
  34. package/dist/server/constants/common.js +1 -1
  35. package/dist/server/constants/plugins/search.js +1 -1
  36. package/dist/server/plugins/graphql-docs/template/GraphQLDocs.js +1 -1
  37. package/dist/server/plugins/markdown/attribute-resolvers/index.js +1 -1
  38. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-gallery.d.ts +4 -0
  39. package/dist/server/plugins/markdown/attribute-resolvers/resolve-image-gallery.js +1 -0
  40. package/dist/server/plugins/markdown/extract-frontmatter.d.ts +6 -0
  41. package/dist/server/plugins/markdown/extract-frontmatter.js +1 -0
  42. package/dist/server/plugins/markdown/markdown-frontmatter-loader.js +1 -1
  43. package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -1
  44. package/dist/server/plugins/mcp/docs-mcp/codemode/build-execute-tool-description.d.ts +4 -0
  45. package/dist/server/plugins/mcp/docs-mcp/codemode/build-execute-tool-description.js +4 -0
  46. package/dist/server/plugins/mcp/docs-mcp/codemode/sandbox.d.ts +3 -0
  47. package/dist/server/plugins/mcp/docs-mcp/codemode/sandbox.js +7 -0
  48. package/dist/server/plugins/mcp/docs-mcp/codemode/types.d.ts +9 -0
  49. package/dist/server/plugins/mcp/docs-mcp/tool-schemas.d.ts +2 -0
  50. package/dist/server/plugins/mcp/docs-mcp/tool-schemas.js +1 -1
  51. package/dist/server/plugins/mcp/docs-mcp/tools/core/search.d.ts +2 -1
  52. package/dist/server/plugins/mcp/docs-mcp/tools/core/search.js +1 -1
  53. package/dist/server/plugins/mcp/docs-mcp/tools/core/types.d.ts +6 -0
  54. package/dist/server/plugins/mcp/docs-mcp/tools/core/types.js +0 -0
  55. package/dist/server/plugins/mcp/docs-mcp/tools/core/whoami.d.ts +2 -1
  56. package/dist/server/plugins/mcp/docs-mcp/tools/execute.d.ts +9 -0
  57. package/dist/server/plugins/mcp/docs-mcp/tools/execute.js +1 -0
  58. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-schema.d.ts +2 -3
  59. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type-list.d.ts +2 -9
  60. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type.d.ts +2 -5
  61. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/list-graphql-apis.d.ts +2 -5
  62. package/dist/server/plugins/mcp/docs-mcp/tools/graphql/types.d.ts +21 -0
  63. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +11 -46
  64. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoint-info.d.ts +2 -6
  65. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoints.d.ts +2 -4
  66. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-full-api-description.d.ts +2 -4
  67. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-security-schemes.d.ts +2 -4
  68. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/list-apis.d.ts +2 -5
  69. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/types.d.ts +16 -0
  70. package/dist/server/plugins/mcp/docs-mcp/tools/openapi/types.js +0 -0
  71. package/dist/server/plugins/mcp/handlers/errors.js +1 -1
  72. package/dist/server/plugins/mcp/index.js +1 -1
  73. package/dist/server/plugins/mcp/mode.d.ts +9 -0
  74. package/dist/server/plugins/mcp/mode.js +1 -0
  75. package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
  76. package/dist/server/plugins/mcp/types.d.ts +1 -0
  77. package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -1
  78. package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.d.ts +4 -0
  79. package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.js +1 -0
  80. package/dist/server/plugins/search/engines/flexsearch/index.d.ts +3 -3
  81. package/dist/server/plugins/search/engines/flexsearch/index.js +1 -1
  82. package/dist/server/plugins/search/engines/search-engine.d.ts +3 -3
  83. package/dist/server/plugins/search/engines/search-engine.js +1 -1
  84. package/dist/server/plugins/search/engines/typesense/index.d.ts +3 -3
  85. package/dist/server/plugins/search/engines/typesense/index.js +1 -1
  86. package/dist/server/plugins/sitemap/index.js +1 -1
  87. package/dist/server/types/plugins/common.d.ts +3 -0
  88. package/dist/server/types/plugins/search.d.ts +2 -2
  89. package/dist/server/types/web-server.d.ts +8 -0
  90. package/dist/server/utils/rbac.js +1 -1
  91. package/dist/server/web-server/auth.js +3 -3
  92. package/dist/server/web-server/dev-server.js +1 -1
  93. package/dist/server/web-server/middleware/jsonValidatorMiddleware.d.ts +336 -0
  94. package/dist/server/web-server/middleware/jsonValidatorMiddleware.js +1 -0
  95. package/dist/server/web-server/routes/auth.d.ts +1 -1
  96. package/dist/server/web-server/routes/auth.js +1 -1
  97. package/dist/server/web-server/routes/catalog/bff-catalog-related-entities.js +1 -1
  98. package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
  99. package/dist/server/web-server/routes/catalog/catalog-relations.js +1 -1
  100. package/dist/server/web-server/routes/catalog/catalog.js +1 -1
  101. package/dist/server/web-server/routes/cors-proxy.js +1 -1
  102. package/dist/server/web-server/routes/index.js +1 -1
  103. package/dist/server/web-server/routes/mcp-routes/mcp-oauth.js +1 -1
  104. package/dist/server/web-server/routes/mcp-routes/mcp-routes.js +1 -1
  105. package/dist/server/web-server/routes/page-data.js +1 -1
  106. package/dist/server/web-server/routes/search.d.ts +5 -3
  107. package/dist/server/web-server/routes/search.js +1 -1
  108. package/dist/types/api.d.ts +15 -0
  109. package/dist/types/api.js +0 -0
  110. package/dist/types/index.d.ts +1 -1
  111. package/dist/utils/auth/build-login-url.js +1 -1
  112. package/dist/utils/auth/is-auth-route-path.js +1 -1
  113. package/package.json +14 -12
  114. package/dist/types/search.d.ts +0 -29
  115. /package/dist/{types/search.js → server/plugins/mcp/docs-mcp/codemode/types.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @redocly/redoc-revel
2
2
 
3
+ ## 0.135.0-next.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 7e9f8d8c9e7: Updated `@redocly/openapi-core` to version `2.34.0`.
8
+ - 23c1666e2ac: Fixed security vulnerability `GHSA-cmwh-pvxp-8882` by upgrading `dompurify` to version `3.4.11`.
9
+ - 63244207e95: Fixed an issue where search results prioritized matches in page text over matches in page titles.
10
+ - 054f8d0400e: Fixed issues in the breadcrumbs dropdown component where the chevron icon did not change when opened and a focus outline was added on click.
11
+ - 413e45fabee: Fixed an issue where the selected version persisted across versioned content sets instead of resetting to each set's default version.
12
+ - a614929940f: Added annotations to the MCP tools.
13
+ - 9042008046d: Fixed security vulnerability `CVE-2026-53550` by removing `gray-matter`.
14
+ - 5af80849dfe: Updated `@redocly/openapi-core` to version `2.33.1`.
15
+ - Updated dependencies [7e9f8d8c9e7]
16
+ - Updated dependencies [5f5fcd52f7a]
17
+ - Updated dependencies [23c1666e2ac]
18
+ - Updated dependencies [63244207e95]
19
+ - Updated dependencies [054f8d0400e]
20
+ - Updated dependencies [7e9f8d8c9e7]
21
+ - Updated dependencies [5af80849dfe]
22
+ - @redocly/openapi-docs@3.23.0-next.5
23
+ - @redocly/theme@0.67.0-next.4
24
+ - @redocly/realm-asyncapi-sdk@0.13.0-next.3
25
+ - @redocly/portal-plugin-mock-server@0.20.0-next.5
26
+ - @redocly/asyncapi-docs@1.12.0-next.5
27
+ - @redocly/graphql-docs@1.12.0-next.5
28
+
29
+ ## 0.135.0-next.4
30
+
31
+ ### Minor Changes
32
+
33
+ - ed259391abf: Updated the `img` Markdoc tag with `framed`, `caption`, and `images` properties.
34
+
35
+ ### Patch Changes
36
+
37
+ - 5013e21e4be: Fixed security vulnerability `CVE-2026-54285` by upgrading `@opentelemetry/exporter-trace-otlp-http` to version `0.219.0`.
38
+ - 3bbb4a5933e: Fixed security vulnerabilities `CVE-2026-54286`, `CVE-2026-54287`, `CVE-2026-54288`, `CVE-2026-54289`, and `CVE-2026-54290` by upgrading `hono` to version `4.12.25`.
39
+ - Updated dependencies [5013e21e4be]
40
+ - Updated dependencies [ed259391abf]
41
+ - @redocly/realm-asyncapi-sdk@0.13.0-next.2
42
+ - @redocly/theme@0.67.0-next.3
43
+ - @redocly/portal-plugin-mock-server@0.20.0-next.4
44
+ - @redocly/asyncapi-docs@1.12.0-next.4
45
+ - @redocly/graphql-docs@1.12.0-next.4
46
+ - @redocly/openapi-docs@3.23.0-next.4
47
+
3
48
  ## 0.135.0-next.3
4
49
 
5
50
  ### Patch Changes
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export declare const searchFacetsRequestSchema: z.ZodObject<{
3
+ locale: z.ZodString;
4
+ field: z.ZodOptional<z.ZodString>;
5
+ query: z.ZodOptional<z.ZodString>;
6
+ filter: z.ZodOptional<z.ZodArray<z.ZodObject<{
7
+ field: z.ZodString;
8
+ values: z.ZodArray<z.ZodString, "many">;
9
+ isQuickFilter: z.ZodOptional<z.ZodBoolean>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ field: string;
12
+ values: string[];
13
+ isQuickFilter?: boolean | undefined;
14
+ }, {
15
+ field: string;
16
+ values: string[];
17
+ isQuickFilter?: boolean | undefined;
18
+ }>, "many">>;
19
+ facetQuery: z.ZodOptional<z.ZodString>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ locale: string;
22
+ field?: string | undefined;
23
+ query?: string | undefined;
24
+ filter?: {
25
+ field: string;
26
+ values: string[];
27
+ isQuickFilter?: boolean | undefined;
28
+ }[] | undefined;
29
+ facetQuery?: string | undefined;
30
+ }, {
31
+ locale: string;
32
+ field?: string | undefined;
33
+ query?: string | undefined;
34
+ filter?: {
35
+ field: string;
36
+ values: string[];
37
+ isQuickFilter?: boolean | undefined;
38
+ }[] | undefined;
39
+ facetQuery?: string | undefined;
40
+ }>;
41
+ //# sourceMappingURL=search-facets.d.ts.map
@@ -0,0 +1 @@
1
+ import{z as t}from"zod";import{searchFilterItemSchema as a}from"./search.js";const o=t.object({locale:t.string().max(100),field:t.string().max(100).optional(),query:t.string().max(500).optional(),filter:t.array(a).max(50).optional(),facetQuery:t.string().max(500).optional()});export{o as searchFacetsRequestSchema};
@@ -0,0 +1,66 @@
1
+ import { z } from 'zod';
2
+ export declare const searchFilterItemSchema: z.ZodObject<{
3
+ field: z.ZodString;
4
+ values: z.ZodArray<z.ZodString, "many">;
5
+ isQuickFilter: z.ZodOptional<z.ZodBoolean>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ field: string;
8
+ values: string[];
9
+ isQuickFilter?: boolean | undefined;
10
+ }, {
11
+ field: string;
12
+ values: string[];
13
+ isQuickFilter?: boolean | undefined;
14
+ }>;
15
+ export declare const searchRequestSchema: z.ZodObject<{
16
+ query: z.ZodString;
17
+ locale: z.ZodString;
18
+ filter: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
+ field: z.ZodString;
20
+ values: z.ZodArray<z.ZodString, "many">;
21
+ isQuickFilter: z.ZodOptional<z.ZodBoolean>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ field: string;
24
+ values: string[];
25
+ isQuickFilter?: boolean | undefined;
26
+ }, {
27
+ field: string;
28
+ values: string[];
29
+ isQuickFilter?: boolean | undefined;
30
+ }>, "many">>;
31
+ loadMore: z.ZodOptional<z.ZodObject<{
32
+ groupKey: z.ZodString;
33
+ offset: z.ZodNumber;
34
+ }, "strip", z.ZodTypeAny, {
35
+ groupKey: string;
36
+ offset: number;
37
+ }, {
38
+ groupKey: string;
39
+ offset: number;
40
+ }>>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ query: string;
43
+ locale: string;
44
+ filter?: {
45
+ field: string;
46
+ values: string[];
47
+ isQuickFilter?: boolean | undefined;
48
+ }[] | undefined;
49
+ loadMore?: {
50
+ groupKey: string;
51
+ offset: number;
52
+ } | undefined;
53
+ }, {
54
+ query: string;
55
+ locale: string;
56
+ filter?: {
57
+ field: string;
58
+ values: string[];
59
+ isQuickFilter?: boolean | undefined;
60
+ }[] | undefined;
61
+ loadMore?: {
62
+ groupKey: string;
63
+ offset: number;
64
+ } | undefined;
65
+ }>;
66
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";const t=e.object({field:e.string().max(100),values:e.array(e.string().max(200)).max(100),isQuickFilter:e.boolean().optional()}),o=e.object({query:e.string().max(500),locale:e.string().max(100),filter:e.array(t).max(50).optional(),loadMore:e.object({groupKey:e.string().max(200),offset:e.number().int().nonnegative()}).optional()});export{t as searchFilterItemSchema,o as searchRequestSchema};
@@ -1 +1 @@
1
- import{useCallback as f}from"react";import{withPathPrefix as b,combineUrls as u}from"@redocly/theme/core/utils";import{ServerRoutes as l}from"../../../constants/common";import{usePageData as P}from"../../providers/hooks";import{usePageSharedData as g}from"../../providers/page-data/hooks";function O(){const{basePath:o}=g("openAPIDocsStore")||{},e=P()?.templateId==="openapi_docs";return{submitFeedback:f(async({type:i,values:r,path:n,location:s,lang:c})=>{const m=u(window.location.origin,e?o:"",n),a={};for(const[d,t]of Object.entries(r))a[d]=typeof t=="string"?t.trim():t;const p={location:s?.trim(),lang:c?.trim(),component:i,...a,path:m};await fetch(b(l.FEEDBACK),{method:"POST",body:JSON.stringify(p)})},[o,e])}}export{O as useSubmitFeedback};
1
+ import{useCallback as f}from"react";import{withPathPrefix as b,combineUrls as u}from"@redocly/theme/core/utils";import{ServerRoutes as l}from"../../../constants/api";import{usePageData as P}from"../../providers/hooks";import{usePageSharedData as g}from"../../providers/page-data/hooks";function O(){const{basePath:o}=g("openAPIDocsStore")||{},e=P()?.templateId==="openapi_docs";return{submitFeedback:f(async({type:i,values:r,path:n,location:s,lang:c})=>{const m=u(window.location.origin,e?o:"",n),a={};for(const[d,t]of Object.entries(r))a[d]=typeof t=="string"?t.trim():t;const p={location:s?.trim(),lang:c?.trim(),component:i,...a,path:m};await fetch(b(l.FEEDBACK),{method:"POST",body:JSON.stringify(p)})},[o,e])}}export{O as useSubmitFeedback};
@@ -16,8 +16,11 @@ import type { ResolvedNavItem, Version } from '@redocly/config';
16
16
  * /@latest
17
17
  *
18
18
  * So we foolow these rules:
19
- * - we prefer the items with the same version name as the active version
20
- * - if there are no items with the same version name, we pick the default version for folder
19
+ * - only the active version's own folder follows the active version
20
+ * - every other folder keeps its own default version, even if it happens to
21
+ * contain a version with the same name as the active version
22
+ * - if the active version name doesn't exist in its own folder, that folder
23
+ * falls back to its default version
21
24
  */
22
25
  export declare function filterOutVersionedItems(items: ResolvedNavItem[], activeVersion?: Version | null, versionNamesByFolderId?: Record<string, Set<string>>): ResolvedNavItem[];
23
26
  //# sourceMappingURL=filter-out-versioned-items.d.ts.map
@@ -1 +1 @@
1
- function l(f,e,n={}){for(const r of f)r.versionFolderId&&r.version&&(n[r.versionFolderId]=n[r.versionFolderId]??new Set).add(r.version);return f.filter(r=>r.version==null?r:e?r.version===e.version?!0:r.versionFolderId&&n[r.versionFolderId]?.has(e.version)?!1:r.isDefault:r.isDefault).map(r=>{if(Array.isArray(r.items)&&r.items.length){const s=l(r.items,e,n);return s.length===0?null:{...r,items:s}}return r}).filter(r=>r!==null)}export{l as filterOutVersionedItems};
1
+ function f(o,n,e={}){for(const r of o)r.versionFolderId&&r.version&&(e[r.versionFolderId]=e[r.versionFolderId]??new Set).add(r.version);return o.filter(r=>r.version==null?r:!n||r.versionFolderId!==n.folderId?r.isDefault:r.versionFolderId&&e[r.versionFolderId]?.has(n.version)?r.version===n.version:r.isDefault).map(r=>{if(Array.isArray(r.items)&&r.items.length){const s=f(r.items,n,e);return s.length===0?null:{...r,items:s}}return r}).filter(r=>r!==null)}export{f as filterOutVersionedItems};
@@ -1 +1 @@
1
- import{withPathPrefix as t}from"@redocly/theme/core/utils";import{ServerRoutes as e}from"../../../constants/common";import{usePageData as r}from"../hooks/usePageData";import{useLoginUrl as a}from"../hooks/useLoginUrl";async function n(){try{await fetch(t(e.LOGOUT),{method:"POST"})}catch(o){console.error(o)}}function f(){const{userData:o}=r("userData")||{};return{loginUrl:a(),userData:o,handleLogout:async()=>{await n(),window.location.replace(t(e.LOGOUT))}}}export{f as useUserMenu};
1
+ import{withPathPrefix as t}from"@redocly/theme/core/utils";import{ServerRoutes as e}from"../../../constants/api";import{usePageData as r}from"../hooks/usePageData";import{useLoginUrl as a}from"../hooks/useLoginUrl";async function n(){try{await fetch(t(e.LOGOUT),{method:"POST"})}catch(o){console.error(o)}}function f(){const{userData:o}=r("userData")||{};return{loginUrl:a(),userData:o,handleLogout:async()=>{await n(),window.location.replace(t(e.LOGOUT))}}}export{f as useUserMenu};
@@ -1 +1 @@
1
- import t,{useEffect as g,useState as s}from"react";import{useNavigate as h}from"react-router-dom";import{Button as y}from"@redocly/theme/components/Button/Button";import{H3 as S}from"@redocly/theme/components/Typography/H3";import{H4 as v}from"@redocly/theme/components/Typography/H4";import{Admonition as w}from"@redocly/theme/components/Admonition/Admonition";import{getPathnameForLocale as E,withPathPrefix as P}from"@redocly/theme/core/utils";import{ServerRoutes as L}from"../../../../constants/common";import{telemetry as b}from"../../telemetry/index.js";import{buildLoginUrl as k}from"../../../../utils/auth/build-login-url";import{usePageProps as O}from"../../../providers/page-data/hooks";import{Wrapper as T,HeadingSection as C}from"./styled";import{DevLoginForm as R}from"./DevLoginForm";import{useL10nConfig as F}from"../../hooks";async function x(r){try{const{status:o}=await fetch(P(L.AUTHORIZATION),{method:"POST",body:JSON.stringify(r)});return o}catch(o){console.error(o)}}function G(){const{defaultLocale:r,locales:o,currentLocale:c}=F(),l=h(),[a,d]=s({values:{teams:[],email:"example@example.com"}}),[n,u]=s();g(()=>{const e=new URLSearchParams(window.location.search);u(e.get("redirectTo")||void 0)},[]);const i=O(),m=i?.authIdps,p=(i.rbac?.teams||[]).filter(e=>e!=="*"),f=async()=>{await x(a.values)===200&&(l(n||"/"),window.location.reload())};return t.createElement(T,null,t.createElement(C,null,t.createElement(S,{"data-cy":"login-title"},"Dev-mode login"),t.createElement(w,{type:"warning",name:"This is dev mode login simulator."},"Any email works and password is not checked.")),t.createElement(t.Fragment,null,t.createElement(R,{teams:p,formState:a,setFormState:d,onSubmit:f}),Object.keys(m||{}).length>0&&t.createElement(v,null,"Use SSO:"),Object.values(m||{}).map(e=>t.createElement("div",{key:e.idpId},t.createElement(y,{fullWidth:!0,size:"large","data-cy":"idp-login",to:k(e.idpId,E("",r,c,o),n),onClick:()=>b.sendLoginProviderButtonClickedMessage([{object:"button",provider:e.type}])},e.title||e.type)))))}export{G as default};
1
+ import t,{useEffect as g,useState as s}from"react";import{useNavigate as h}from"react-router-dom";import{Button as y}from"@redocly/theme/components/Button/Button";import{H3 as S}from"@redocly/theme/components/Typography/H3";import{H4 as v}from"@redocly/theme/components/Typography/H4";import{Admonition as w}from"@redocly/theme/components/Admonition/Admonition";import{getPathnameForLocale as E,withPathPrefix as P}from"@redocly/theme/core/utils";import{ServerRoutes as L}from"../../../../constants/api";import{telemetry as b}from"../../telemetry/index.js";import{buildLoginUrl as k}from"../../../../utils/auth/build-login-url";import{usePageProps as O}from"../../../providers/page-data/hooks";import{Wrapper as T,HeadingSection as C}from"./styled";import{DevLoginForm as R}from"./DevLoginForm";import{useL10nConfig as F}from"../../hooks";async function x(r){try{const{status:o}=await fetch(P(L.AUTHORIZATION),{method:"POST",body:JSON.stringify(r)});return o}catch(o){console.error(o)}}function G(){const{defaultLocale:r,locales:o,currentLocale:c}=F(),l=h(),[a,d]=s({values:{teams:[],email:"example@example.com"}}),[n,u]=s();g(()=>{const e=new URLSearchParams(window.location.search);u(e.get("redirectTo")||void 0)},[]);const i=O(),m=i?.authIdps,p=(i.rbac?.teams||[]).filter(e=>e!=="*"),f=async()=>{await x(a.values)===200&&(l(n||"/"),window.location.reload())};return t.createElement(T,null,t.createElement(C,null,t.createElement(S,{"data-cy":"login-title"},"Dev-mode login"),t.createElement(w,{type:"warning",name:"This is dev mode login simulator."},"Any email works and password is not checked.")),t.createElement(t.Fragment,null,t.createElement(R,{teams:p,formState:a,setFormState:d,onSubmit:f}),Object.keys(m||{}).length>0&&t.createElement(v,null,"Use SSO:"),Object.values(m||{}).map(e=>t.createElement("div",{key:e.idpId},t.createElement(y,{fullWidth:!0,size:"large","data-cy":"idp-login",to:k(e.idpId,E("",r,c,o),n),onClick:()=>b.sendLoginProviderButtonClickedMessage([{object:"button",provider:e.type}])},e.title||e.type)))))}export{G as default};
@@ -1,4 +1,4 @@
1
- import e,{useState as m}from"react";import s from"styled-components";import{Button as d}from"@redocly/theme/components/Button/Button";import{H3 as p}from"@redocly/theme/components/Typography/H3";import{ServerRoutes as u}from"../../../../constants/common";import{withPathPrefix as f}from"@redocly/theme/core/utils";function g(){const t=new URLSearchParams(window.location.search);return{code:t.get("code")||"",org:t.get("org")||"",invitedBy:t.get("invitedBy")||""}}function P(){const{code:t,org:a,invitedBy:i}=g(),[o,l]=m(t),c=async r=>{if(r.preventDefault(),!o)return;const n=new URL(f(u.IDP_LOGIN),window.location.href);n.searchParams.set("inviteCode",o),n.searchParams.set("redirectTo","/"),window.location.href=n.toString()};return e.createElement(v,null,e.createElement(p,null,"Join ",a||"Redocly"),e.createElement("form",{onSubmit:c},e.createElement("div",{className:"form-content"},!t&&e.createElement(e.Fragment,null,e.createElement("span",{className:"label"},"Enter your invite code"),e.createElement("input",{type:"text",value:o,onChange:r=>l(r.target.value),placeholder:"Invite code",autoFocus:!0})),i&&e.createElement("div",{className:"invite-info"},e.createElement("strong",null,i)," has invited you to join"),e.createElement(d,{fullWidth:!0,size:"large",variant:"primary",type:"submit",disabled:!o},"Accept invite"))))}const v=s.div`
1
+ import e,{useState as m}from"react";import s from"styled-components";import{Button as d}from"@redocly/theme/components/Button/Button";import{H3 as p}from"@redocly/theme/components/Typography/H3";import{ServerRoutes as u}from"../../../../constants/api";import{withPathPrefix as f}from"@redocly/theme/core/utils";function g(){const t=new URLSearchParams(window.location.search);return{code:t.get("code")||"",org:t.get("org")||"",invitedBy:t.get("invitedBy")||""}}function P(){const{code:t,org:a,invitedBy:i}=g(),[o,l]=m(t),c=async r=>{if(r.preventDefault(),!o)return;const n=new URL(f(u.IDP_LOGIN),window.location.href);n.searchParams.set("inviteCode",o),n.searchParams.set("redirectTo","/"),window.location.href=n.toString()};return e.createElement(v,null,e.createElement(p,null,"Join ",a||"Redocly"),e.createElement("form",{onSubmit:c},e.createElement("div",{className:"form-content"},!t&&e.createElement(e.Fragment,null,e.createElement("span",{className:"label"},"Enter your invite code"),e.createElement("input",{type:"text",value:o,onChange:r=>l(r.target.value),placeholder:"Invite code",autoFocus:!0})),i&&e.createElement("div",{className:"invite-info"},e.createElement("strong",null,i)," has invited you to join"),e.createElement(d,{fullWidth:!0,size:"large",variant:"primary",type:"submit",disabled:!o},"Accept invite"))))}const v=s.div`
2
2
  font-family: var(--font-family-base);
3
3
  display: flex;
4
4
  justify-content: center;
@@ -1 +1 @@
1
- import{useCallback as E,useEffect as Q,useMemo as J,useRef as m,useState as y}from"react";import{AiSearchError as d}from"@redocly/theme/core/constants";import{withPathPrefix as N,splitContentByToolCalls as V}from"@redocly/theme/core/utils";import{ServerRoutes as j}from"../../../constants/common";import{useSearchSession as B}from"@redocly/theme/core/contexts";import{AI_SEARCH_REQUEST_HEADERS as D,HTTP_ERROR_MAP as G}from"../../constants";import{useI18nConfig as K,usePageVersions as L}from"../hooks";import{telemetry as U}from"../telemetry/index.js";import{streamSSEMessages as $}from"./sse-parser";import{handleSSEMessage as z}from"./message-handlers";function or(u){const{searchSessionId:p}=B(),[r,t]=y({status:"idle"}),[P,g]=y([]),[S,b]=y([]),o=m(null),a=m(""),n=m(""),i=m([]),{currentLocale:C}=K(),{versions:_=[]}=L()||{},l=_.find(e=>e?.active),f=E(()=>{t({status:"idle",response:""}),b([]),a.current="",n.current="",i.current=[]},[]),w=E(()=>{o.current?.abort(),o.current=null,f(),g([])},[f]);Q(()=>()=>{o.current?.abort()},[]);const O=E(async(e,q)=>{if(!e)return;o.current?.abort();const h=new AbortController;o.current=h,f(),t({status:"loading",question:e,response:"",resources:[]});try{const c=await fetch(N(j.ASK_AI),{method:"POST",headers:D,body:JSON.stringify({text:e,history:q||[],locale:C,product:u?.product,filter:u?.filter,version:l&&{folder:l.folderId,label:l.label},searchSessionId:p}),signal:h.signal});if(!c.ok){t({status:"error",question:e,error:G[c.status]??d.HttpRequestFailed});return}const A=c.body;if(!A){t({status:"error",question:e,error:d.HttpRequestFailed});return}let I=!1;for await(const s of $(A,h.signal)){const F={messageId:a.current,resources:i.current,accumulatedResponse:n.current,setConversation:g,setState:t,setToolCalls:b},{messageId:v,resources:H,accumulatedResponse:M}=z(s,F);v&&(a.current=v),H&&(i.current=H),M&&(n.current=M),s.type==="error"&&(I=!0)}if(o.current=null,t(s=>s.status==="error"?s:n.current?{status:"success",question:e,response:n.current,resources:i.current}:{status:"error",question:e,error:d.EmptyResponse}),!I&&n.current&&e.trim()&&a.current){const s=a.current;U.sendSearchAIQueryMessage([{id:s,object:"aiSearchMessage",uri:`urn:redocly:realm:ui:aiSearchMessage:${s}`,question:e,answer:n.current,resources:JSON.stringify(i.current),searchSessionId:p,messageId:s,source:"realm",...u?.product&&{product:u.product}}])}}catch(c){if(c instanceof Error&&c.name==="AbortError")return;o.current=null,t({status:"error",question:e,error:d.HttpRequestFailed})}},[f,u?.product,C,u?.filter,l,p]),R=r.status==="loading"||r.status==="success"||r.status==="idle"?r.response:void 0,k=J(()=>V(R,S),[R,S]);return{askQuestion:O,isGeneratingResponse:r.status==="loading",response:R,resources:r.status==="loading"||r.status==="success"?r.resources:[],question:r.status!=="idle"?r.question:"",error:r.status==="error"?r.error:null,clearConversation:w,conversation:P,setConversation:g,toolCalls:S,contentSegments:k}}export{or as useAiSearch};
1
+ import{useCallback as E,useEffect as Q,useMemo as J,useRef as m,useState as y}from"react";import{AiSearchError as d}from"@redocly/theme/core/constants";import{withPathPrefix as N,splitContentByToolCalls as V}from"@redocly/theme/core/utils";import{ServerRoutes as j}from"../../../constants/api";import{useSearchSession as B}from"@redocly/theme/core/contexts";import{AI_SEARCH_REQUEST_HEADERS as D,HTTP_ERROR_MAP as G}from"../../constants";import{useI18nConfig as K,usePageVersions as L}from"../hooks";import{telemetry as U}from"../telemetry/index.js";import{streamSSEMessages as $}from"./sse-parser";import{handleSSEMessage as z}from"./message-handlers";function or(u){const{searchSessionId:p}=B(),[r,t]=y({status:"idle"}),[P,g]=y([]),[S,b]=y([]),o=m(null),a=m(""),n=m(""),i=m([]),{currentLocale:C}=K(),{versions:_=[]}=L()||{},l=_.find(e=>e?.active),f=E(()=>{t({status:"idle",response:""}),b([]),a.current="",n.current="",i.current=[]},[]),w=E(()=>{o.current?.abort(),o.current=null,f(),g([])},[f]);Q(()=>()=>{o.current?.abort()},[]);const O=E(async(e,q)=>{if(!e)return;o.current?.abort();const h=new AbortController;o.current=h,f(),t({status:"loading",question:e,response:"",resources:[]});try{const c=await fetch(N(j.ASK_AI),{method:"POST",headers:D,body:JSON.stringify({text:e,history:q||[],locale:C,product:u?.product,filter:u?.filter,version:l&&{folder:l.folderId,label:l.label},searchSessionId:p}),signal:h.signal});if(!c.ok){t({status:"error",question:e,error:G[c.status]??d.HttpRequestFailed});return}const A=c.body;if(!A){t({status:"error",question:e,error:d.HttpRequestFailed});return}let I=!1;for await(const s of $(A,h.signal)){const F={messageId:a.current,resources:i.current,accumulatedResponse:n.current,setConversation:g,setState:t,setToolCalls:b},{messageId:v,resources:H,accumulatedResponse:M}=z(s,F);v&&(a.current=v),H&&(i.current=H),M&&(n.current=M),s.type==="error"&&(I=!0)}if(o.current=null,t(s=>s.status==="error"?s:n.current?{status:"success",question:e,response:n.current,resources:i.current}:{status:"error",question:e,error:d.EmptyResponse}),!I&&n.current&&e.trim()&&a.current){const s=a.current;U.sendSearchAIQueryMessage([{id:s,object:"aiSearchMessage",uri:`urn:redocly:realm:ui:aiSearchMessage:${s}`,question:e,answer:n.current,resources:JSON.stringify(i.current),searchSessionId:p,messageId:s,source:"realm",...u?.product&&{product:u.product}}])}}catch(c){if(c instanceof Error&&c.name==="AbortError")return;o.current=null,t({status:"error",question:e,error:d.HttpRequestFailed})}},[f,u?.product,C,u?.filter,l,p]),R=r.status==="loading"||r.status==="success"||r.status==="idle"?r.response:void 0,k=J(()=>V(R,S),[R,S]);return{askQuestion:O,isGeneratingResponse:r.status==="loading",response:R,resources:r.status==="loading"||r.status==="success"?r.resources:[],question:r.status!=="idle"?r.question:"",error:r.status==="error"?r.error:null,clearConversation:w,conversation:P,setConversation:g,toolCalls:S,contentSegments:k}}export{or as useAiSearch};
@@ -1 +1 @@
1
- import{useCallback as y,useEffect as u,useState as n}from"react";import{withPathPrefix as S}from"@redocly/theme/core/utils";import{ServerRoutes as d}from"../../../constants/common";import{useI18nConfig as b}from"../hooks";function h(e){const[o,c]=n([]),[s,a]=n(null),[t,r]=n(null),[p,i]=n(!1),{currentLocale:f}=b();u(()=>{i(!0),m()},[t]);const m=y(async()=>{if(e&&t===null){i(!1);return}let l={locale:f,field:e};t&&(l={...l,...t});const F=await(await fetch(S(d.SEARCH_FACETS),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l)})).json();e?a(F):c(F),i(!1)},[f,t,e]);return{initialFacets:o,searchFacets:s,isFacetsLoading:p,setSearchFacetQuery:r}}function E(e){const[o,c]=n(null),{searchFacets:s,setSearchFacetQuery:a}=h(e);return u(()=>{const t=s?s.find(r=>r.field===e)??null:null;c(t)},[s,e]),{searchFacet:o,setSearchFacet:c,setSearchFacetQuery:a}}const L=e=>{const[o,c]=n([]),{initialFacets:s}=h();return u(()=>{if(e&&Object.keys(e).length){const a=[];for(const t of s)a.push({...t,values:e[t.field]?.map(r=>({...r,isCounterVisible:!0}))||[]});c(a)}else c(s)},[s,e]),{facets:o}};export{E as useFacetQuery,L as useFacets};
1
+ import{useCallback as y,useEffect as u,useState as n}from"react";import{withPathPrefix as S}from"@redocly/theme/core/utils";import{ServerRoutes as d}from"../../../constants/api";import{useI18nConfig as b}from"../hooks";function h(e){const[o,c]=n([]),[s,a]=n(null),[t,r]=n(null),[p,i]=n(!1),{currentLocale:f}=b();u(()=>{i(!0),m()},[t]);const m=y(async()=>{if(e&&t===null){i(!1);return}let l={locale:f,field:e};t&&(l={...l,...t});const F=await(await fetch(S(d.SEARCH_FACETS),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l)})).json();e?a(F):c(F),i(!1)},[f,t,e]);return{initialFacets:o,searchFacets:s,isFacetsLoading:p,setSearchFacetQuery:r}}function E(e){const[o,c]=n(null),{searchFacets:s,setSearchFacetQuery:a}=h(e);return u(()=>{const t=s?s.find(r=>r.field===e)??null:null;c(t)},[s,e]),{searchFacet:o,setSearchFacet:c,setSearchFacetQuery:a}}const L=e=>{const[o,c]=n([]),{initialFacets:s}=h();return u(()=>{if(e&&Object.keys(e).length){const a=[];for(const t of s)a.push({...t,values:e[t.field]?.map(r=>({...r,isCounterVisible:!0}))||[]});c(a)}else c(s)},[s,e]),{facets:o}};export{E as useFacetQuery,L as useFacets};
@@ -1 +1 @@
1
- import{useCallback as b,useEffect as O,useState as E,useRef as w}from"react";import{SEARCH_DEBOUNCE_TIME_MS as q}from"@redocly/theme/core/constants";import{withPathPrefix as A}from"@redocly/theme/core/utils";import{SEARCH_GROUP_FACET_FIELD as j,SEARCH_PRODUCT_FIELD as L,SEARCH_VERSION_FIELD as M,ServerRoutes as v}from"../../../constants/common";import{debounce as Q}from"../../../utils/time/debounce.js";import{useSearchSession as U}from"@redocly/theme/core/contexts";import{useGlobalData as J,useI18nConfig as D}from"../hooks";import{usePageVersions as B}from"../../providers/page-data/hooks";import{useFacets as K}from"./useFacets";import{telemetry as $}from"../telemetry/index.js";const z=(o,c,r,a,s,u,f,n,l)=>{const{searchSessionId:y}=U(),{currentLocale:F}=D(),d=w(""),m=w(null),p=w(async(e,i)=>{try{u(null);const t=await fetch(A(v.SEARCH),i);if(!t.ok)throw new Error(t.statusText||`Search failed (${t.status})`);if(R(e)){const S=await t.json();a(S.facets),r(S.documents),m.current=null,e.trim().length>1&&$.sendSearchQueryMessage([{object:"search",query:e,resultCount:Object.keys(S.documents).length.toString(),searchSessionId:y,...n&&{product:n}}]),s(!1)}}catch(t){if(!R(e))return;m.current={query:e,requestParams:i},r({}),s(!1),u(t instanceof Error?t.message:"An unknown error occurred")}}),R=e=>d.current===e,h=b(Q(async(e,i,t,S)=>{if(!e.trim().length&&!i.length){r({}),a({}),s(!1),u(null),m.current=null;return}const I={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:e,filter:H(i,S,f),locale:t})};await p.current(e,I)},q),[f?.version,f?.folderId,n]);return O(()=>{l||(s(!0),h(o,c,F,n),d.current=o)},[l,c,F,n,o,h,s]),{retrySearch:b(async()=>{const e=m.current;e&&(s(!0),d.current=e.query,await p.current(e.query,e.requestParams))},[s])}},W=(o,c,r,a,s,u,f,n,l)=>{const{currentLocale:y}=D();O(()=>{F(r,o,c,y,a,s,n,l)},[a,n,l?.version,l?.folderId]);const F=b(async(d,m,p,R,h,C,e,i)=>{if(h){const{groupKey:t}=h;f(!0);const I={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:m,filter:(()=>{const g=C.find(_=>_.field===j);let P=p;return g&&(p.find(N=>N.field===g.field)||(P=[...p,{field:g.field,values:[t]}])),H(P,e,i)})(),loadMore:h,locale:R})},T=await(await fetch(A(v.SEARCH),I)).json(),k=d[t]||[],x=T.documents[t],G={...d,[t]:[...k,...x]};u(G),f(!1)}},[]);return{}};function ae(o,c){const{searchFeatures:r}=J(),[a,s]=E(""),[u,f]=E([]),[n,l]=E({}),[y,F]=E({}),[d,m]=E(),[p,R]=E(!1),[h,C]=E(null),{facets:e}=K(y),{versions:i=[]}=B()||{},t=i.find(I=>I?.active),{retrySearch:S}=z(a,u,l,F,R,C,t,o,c);return W(a,u,n,d,e,l,R,o,t),{query:a,setQuery:s,filter:u,setFilter:f,items:n,isSearchLoading:p,searchError:h,facets:e,groupField:j,setLoadMore:m,retrySearch:S,advancedSearch:r?.advanced?.enabled,askAi:r?.ai?.enabled}}function H(o,c,r){return[...o,...c?[{field:L,values:[c]}]:[],...r?[{field:M,values:[...r.default?["default"]:[r.folderId,r.version]]}]:[]]}export{ae as useSearch};
1
+ import{useCallback as b,useEffect as O,useState as E,useRef as w}from"react";import{SEARCH_DEBOUNCE_TIME_MS as q}from"@redocly/theme/core/constants";import{withPathPrefix as A}from"@redocly/theme/core/utils";import{ServerRoutes as j}from"../../../constants/api";import{SEARCH_GROUP_FACET_FIELD as v,SEARCH_PRODUCT_FIELD as L,SEARCH_VERSION_FIELD as M}from"../../../constants/common";import{debounce as Q}from"../../../utils/time/debounce.js";import{useSearchSession as U}from"@redocly/theme/core/contexts";import{useGlobalData as J,useI18nConfig as D}from"../hooks";import{usePageVersions as B}from"../../providers/page-data/hooks";import{useFacets as K}from"./useFacets";import{telemetry as $}from"../telemetry/index.js";const z=(o,c,r,a,s,u,f,n,l)=>{const{searchSessionId:y}=U(),{currentLocale:F}=D(),m=w(""),d=w(null),p=w(async(e,i)=>{try{u(null);const t=await fetch(A(j.SEARCH),i);if(!t.ok)throw new Error(t.statusText||`Search failed (${t.status})`);if(R(e)){const S=await t.json();a(S.facets),r(S.documents),d.current=null,e.trim().length>1&&$.sendSearchQueryMessage([{object:"search",query:e,resultCount:Object.keys(S.documents).length.toString(),searchSessionId:y,...n&&{product:n}}]),s(!1)}}catch(t){if(!R(e))return;d.current={query:e,requestParams:i},r({}),s(!1),u(t instanceof Error?t.message:"An unknown error occurred")}}),R=e=>m.current===e,h=b(Q(async(e,i,t,S)=>{if(!e.trim().length&&!i.length){r({}),a({}),s(!1),u(null),d.current=null;return}const I={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:e,filter:H(i,S,f),locale:t})};await p.current(e,I)},q),[f?.version,f?.folderId,n]);return O(()=>{l||(s(!0),h(o,c,F,n),m.current=o)},[l,c,F,n,o,h,s]),{retrySearch:b(async()=>{const e=d.current;e&&(s(!0),m.current=e.query,await p.current(e.query,e.requestParams))},[s])}},W=(o,c,r,a,s,u,f,n,l)=>{const{currentLocale:y}=D();O(()=>{F(r,o,c,y,a,s,n,l)},[a,n,l?.version,l?.folderId]);const F=b(async(m,d,p,R,h,C,e,i)=>{if(h){const{groupKey:t}=h;f(!0);const I={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:d,filter:(()=>{const g=C.find(_=>_.field===v);let P=p;return g&&(p.find(N=>N.field===g.field)||(P=[...p,{field:g.field,values:[t]}])),H(P,e,i)})(),loadMore:h,locale:R})},T=await(await fetch(A(j.SEARCH),I)).json(),k=m[t]||[],x=T.documents[t],G={...m,[t]:[...k,...x]};u(G),f(!1)}},[]);return{}};function ue(o,c){const{searchFeatures:r}=J(),[a,s]=E(""),[u,f]=E([]),[n,l]=E({}),[y,F]=E({}),[m,d]=E(),[p,R]=E(!1),[h,C]=E(null),{facets:e}=K(y),{versions:i=[]}=B()||{},t=i.find(I=>I?.active),{retrySearch:S}=z(a,u,l,F,R,C,t,o,c);return W(a,u,n,m,e,l,R,o,t),{query:a,setQuery:s,filter:u,setFilter:f,items:n,isSearchLoading:p,searchError:h,facets:e,groupField:v,setLoadMore:d,retrySearch:S,advancedSearch:r?.advanced?.enabled,askAi:r?.ai?.enabled}}function H(o,c,r){return[...o,...c?[{field:L,values:[c]}]:[],...r?[{field:M,values:[...r.default?["default"]:[r.folderId,r.version]]}]:[]]}export{ue as useSearch};
@@ -1 +1 @@
1
- import{withPathPrefix as n}from"@redocly/theme/core/utils";import{OPENAPI_DOCS_TEMPLATE_ID as f,ServerRoutes as s}from"../../../constants/common";async function p(r,t){const e=await fetch(n(s.RESOLVE_ROUTE_BY_SLUG),{method:"POST",body:JSON.stringify(r)}),{route:o}=await e.json();let i=t;return(t==="markdown"||t===f)&&(i=o.fsPath),{file:i.replace(/^\//g,""),url:r,pointer:o.pointer,position:o.position}}export{p as resolveRouteBySlug};
1
+ import{withPathPrefix as f}from"@redocly/theme/core/utils";import{ServerRoutes as n}from"../../../constants/api";import{OPENAPI_DOCS_TEMPLATE_ID as s}from"../../../constants/common";async function S(i,r){const e=await fetch(f(n.RESOLVE_ROUTE_BY_SLUG),{method:"POST",body:JSON.stringify(i)}),{route:o}=await e.json();let t=r;return(r==="markdown"||r===s)&&(t=o.fsPath),{file:t.replace(/^\//g,""),url:i,pointer:o.pointer,position:o.position}}export{S as resolveRouteBySlug};
@@ -1,7 +1,7 @@
1
- import{telemetry as s}from"./app/telemetry/index.js";s.init({otel:{isProd:process.env.NODE_ENV==="production",serviceVersion:`${P}@${process.env.REDOCLY_PORTAL_VERSION}`,version:"1.0.0",collectorTraceUrl:new URL(e(O.OTEL_TRACES),location.origin).toString(),serviceName:"realm-ui",tracerName:"client-telemetry"},disabled:!_});import o from"react";import{hydrateRoot as p}from"react-dom/client";import{RouterProvider as m,createBrowserRouter as d}from"react-router-dom";import{HelmetProvider as f}from"@dr.pogodin/react-helmet";import{StyleSheetManager as u}from"styled-components";import{getLocaleFromPathname as E,withoutPathPrefix as R,withPathPrefix as e}from"@redocly/theme/core/utils";import{DEFAULT_LOCALE_PLACEHOLDER as L,ServerRoutes as O}from"../constants/common";import{CLIENT_TELEMETRY_ENABLED as _}from"./constants/common.js";import{shouldForwardProp as D}from"../utils/should-forward-prop.js";import"./polyfills";import{PACKAGE_NAME as P,PRODUCT_NAME as h}from"../config/product-gates";import{App as g,routes as A}from"./App";import{Loader as v,useRefresh as x,globalData as t}from"./runtime/loader";import{initL10n as N}from"./app/l10n/initL10n";function T(){return x(),o.createElement(f,{context:{}},o.createElement(u,{shouldForwardProp:D},o.createElement(g,null)))}function b(){t?.removeAttribution&&process.env.REDOCLY_PORTAL_VERSION?console.log(`
1
+ import{telemetry as s}from"./app/telemetry/index.js";s.init({otel:{isProd:process.env.NODE_ENV==="production",serviceVersion:`${P}@${process.env.REDOCLY_PORTAL_VERSION}`,version:"1.0.0",collectorTraceUrl:new URL(e(L.OTEL_TRACES),location.origin).toString(),serviceName:"realm-ui",tracerName:"client-telemetry"},disabled:!_});import o from"react";import{hydrateRoot as p}from"react-dom/client";import{RouterProvider as m,createBrowserRouter as d}from"react-router-dom";import{HelmetProvider as f}from"@dr.pogodin/react-helmet";import{StyleSheetManager as u}from"styled-components";import{getLocaleFromPathname as E,withoutPathPrefix as R,withPathPrefix as e}from"@redocly/theme/core/utils";import{ServerRoutes as L}from"../constants/api";import{DEFAULT_LOCALE_PLACEHOLDER as O}from"../constants/common";import{CLIENT_TELEMETRY_ENABLED as _}from"./constants/common.js";import{shouldForwardProp as D}from"../utils/should-forward-prop.js";import"./polyfills";import{PACKAGE_NAME as P,PRODUCT_NAME as h}from"../config/product-gates";import{App as g,routes as A}from"./App";import{Loader as v,useRefresh as x,globalData as t}from"./runtime/loader";import{initL10n as N}from"./app/l10n/initL10n";function T(){return x(),o.createElement(f,{context:{}},o.createElement(u,{shouldForwardProp:D},o.createElement(g,null)))}function b(){t?.removeAttribution&&process.env.REDOCLY_PORTAL_VERSION?console.log(`
2
2
  %c Version: ${process.env.REDOCLY_PORTAL_VERSION} %c
3
3
  `,"background:#ffffff ; padding: 1px; border:1px solid #0044D4; border-radius: 3px; color: #0044D4","background:transparent"):process.env.REDOCLY_PORTAL_VERSION&&console.log(`
4
4
  %c Redocly ${h} %c ${process.env.REDOCLY_PORTAL_VERSION} %c
5
5
 
6
6
  %chttps://redocly.com
7
- `,"background:#0044D4 ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff; border:1px solid #0044D4","background:#ffffff ; padding: 1px; border:1px solid #0044D4; border-radius: 0 3px 3px 0; color: #0044D4","background:transparent","font-size: 10px; font-style: italic;")}async function C(){process.env.NODE_ENV!=="production"&&import("./runtime/ws-client").then(l=>l.listenWs()),await v.load(window.location.pathname,void 0,window.location.search),b();const r=t?.l10n,n=r?.locales||[],i=r?.defaultLocale||L,a=E(R(location.pathname),i,n);await N(r,a);const c=d([{Component:T,path:e("/*"),children:A}]);p(document.getElementById("app_root"),o.createElement(m,{future:{v7_startTransition:!1},router:c}))}C();
7
+ `,"background:#0044D4 ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff; border:1px solid #0044D4","background:#ffffff ; padding: 1px; border:1px solid #0044D4; border-radius: 0 3px 3px 0; color: #0044D4","background:transparent","font-size: 10px; font-style: italic;")}async function C(){process.env.NODE_ENV!=="production"&&import("./runtime/ws-client").then(l=>l.listenWs()),await v.load(window.location.pathname,void 0,window.location.search),b();const r=t?.l10n,n=r?.locales||[],i=r?.defaultLocale||O,a=E(R(location.pathname),i,n);await N(r,a);const c=d([{Component:T,path:e("/*"),children:A}]);p(document.getElementById("app_root"),o.createElement(m,{future:{v7_startTransition:!1},router:c}))}C();
@@ -1 +1 @@
1
- import r,{createContext as M,useEffect as E}from"react";import{useLocation as U,useNavigate as L}from"react-router-dom";import{useColorSwitcher as x}from"@redocly/theme/core/hooks";import{withPathPrefix as O}from"@redocly/theme/core/utils";import{ServerRoutes as T}from"../../../constants/common";import{removeTrailingSlash as z}from"../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as S}from"../../../utils/path/normalize-route-slug";import{loadAndNavigate as N}from"../../app/utils/loadAndNavigate";import{syncScrollWithEditor as A}from"../../app/utils/syncScrollWithEditor";import{PostMessageConnection as H}from"./PostMessageConnection";import{isHostnameOnDomain as c}from"../../app/utils/isHostnameOnDomain";const _=M({sendMessage:()=>{}});function Q({children:i,enabled:o}){const P=L(),l=U(),s=r.useRef(null),{switchColorMode:h}=x(),u=r.useCallback(e=>{s.current?.send(e)},[]),p=r.useCallback(e=>{console.info("[PM] connection initialized."),s.current=new H(e.source,e.origin),u({type:"initialized"})},[u]),f=r.useCallback(async e=>{const{path:n="/",line:t=1,url:m}=e;let a=m;if(!m)try{const d=await fetch(O(T.RESOLVE_ROUTE_BY_PATH),{method:"POST",body:JSON.stringify(n+(t?`:${t}`:""))}),{route:y}=await d.json();a=y?.slug??y?.url??void 0}catch(d){console.error(d)}if(!a)return;a=a==="/"?"/":z(a);const[C,R]=a.split("#"),k=S(C)===S(l.pathname),v=(R??"")===l.hash.substring(1);(m?k&&v:k)||(console.info("[PM] Update route to: ",a),await N({navigate:P,to:a,origin:"pm"}))},[l]),w=r.useCallback(async e=>{const{action:n}=e;switch(n){case"back":window.history.back();break;case"forward":window.history.forward();break;case"reload":window.location.reload();break}},[]),b=r.useCallback(e=>{window.scrollTo({top:e.position.absolute,behavior:"instant"})},[]),g=r.useCallback(e=>{h(e.colorSchema)},[h]);return E(()=>{if(!o)return;const e=async n=>{if(!j(n.origin))return;const t=n.data;switch(t.type){case"initialize":p(n);break;case"route-update":if(!s.current)return;f(t);break;case"location-update":if(!s.current)return;w(t);break;case"scroll-update":if(!s.current)return;b(t);break;case"editor-scroll-update":if(!s.current)return;A(t.percentScrolled,t.sequenceNumber);break;case"color-schema-update":if(!s.current)return;g(t);break}};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[o,p,f,w,b,g]),r.createElement(_.Provider,{value:{sendMessage:u}},i)}function j(i){const o=new URL(i);return c(o.hostname,"localhost")||c(o.hostname,"127.0.0.1")||c(o.hostname,"blueharvest.cloud")||c(o.hostname,"bhstage.cloud")||c(o.hostname,"cloud.redocly.com")||c(o.hostname,"cloud.eu.redocly.com")||c(o.hostname,"cba.au.redocly.com")}export{_ as PostMessageContext,Q as PostMessageProvider};
1
+ import s,{createContext as E,useEffect as U}from"react";import{useLocation as L,useNavigate as x}from"react-router-dom";import{useColorSwitcher as O}from"@redocly/theme/core/hooks";import{withPathPrefix as T}from"@redocly/theme/core/utils";import{ServerRoutes as z}from"../../../constants/api";import{removeTrailingSlash as D}from"../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as P}from"../../../utils/path/normalize-route-slug";import{loadAndNavigate as I}from"../../app/utils/loadAndNavigate";import{resolveRouteBySlug as N}from"../../app/utils/resolveRouteBySlug";import{syncScrollWithEditor as A}from"../../app/utils/syncScrollWithEditor";import{PostMessageConnection as H}from"./PostMessageConnection";import{isHostnameOnDomain as i}from"../../app/utils/isHostnameOnDomain";import{usePageData as _}from"../../app/hooks/usePageData";const B=E({sendMessage:()=>{}});function ae({children:l,enabled:t}){const R=x(),n=L(),c=s.useRef(null),{switchColorMode:h}=O(),p=_()?.templateId,u=s.useCallback(e=>{c.current?.send(e)},[]),f=s.useCallback(async e=>{console.info("[PM] connection initialized."),c.current=new H(e.source,e.origin);const a=await N(n.pathname+n.hash,p).catch(o=>{console.error("Initial route resolve failed with error: ",o.message)});u({type:"initialized",initialRoute:a})},[u,n.pathname,n.hash,p]),g=s.useCallback(async e=>{const{path:a="/",line:o=1,url:m}=e;let r=m;if(!m)try{const d=await fetch(T(z.RESOLVE_ROUTE_BY_PATH),{method:"POST",body:JSON.stringify(a+(o?`:${o}`:""))}),{route:S}=await d.json();r=S?.slug??S?.url??void 0}catch(d){console.error(d)}if(!r)return;r=r==="/"?"/":D(r);const[v,C]=r.split("#"),y=P(v)===P(n.pathname),M=(C??"")===n.hash.substring(1);(m?y&&M:y)||(console.info("[PM] Update route to: ",r),await I({navigate:R,to:r,origin:"pm"}))},[n]),w=s.useCallback(async e=>{const{action:a}=e;switch(a){case"back":window.history.back();break;case"forward":window.history.forward();break;case"reload":window.location.reload();break}},[]),b=s.useCallback(e=>{window.scrollTo({top:e.position.absolute,behavior:"instant"})},[]),k=s.useCallback(e=>{h(e.colorSchema)},[h]);return U(()=>{if(!t)return;const e=async a=>{if(!j(a.origin))return;const o=a.data;switch(o.type){case"initialize":f(a);break;case"route-update":if(!c.current)return;g(o);break;case"location-update":if(!c.current)return;w(o);break;case"scroll-update":if(!c.current)return;b(o);break;case"editor-scroll-update":if(!c.current)return;A(o.percentScrolled,o.sequenceNumber);break;case"color-schema-update":if(!c.current)return;k(o);break}};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[t,f,g,w,b,k]),s.createElement(B.Provider,{value:{sendMessage:u}},l)}function j(l){const t=new URL(l);return i(t.hostname,"localhost")||i(t.hostname,"127.0.0.1")||i(t.hostname,"blueharvest.cloud")||i(t.hostname,"bhstage.cloud")||i(t.hostname,"cloud.redocly.com")||i(t.hostname,"cloud.eu.redocly.com")||i(t.hostname,"cba.au.redocly.com")}export{B as PostMessageContext,ae as PostMessageProvider};
@@ -1 +1 @@
1
- import e from"react";import{ThemeDataContext as m,SearchSessionProvider as l}from"@redocly/theme/core/contexts";import{useAnchorPositioning as d,useBreadcrumbs as g,useBanner as p,useCatalogClassic as f,useCurrentProduct as b,useGlobalData as a,useI18n as h,useI18nConfig as C,useL10n as P,useL10nConfig as S,usePageData as r,usePageSharedData as T,usePageVersions as D,usePreloadHistory as k,useProducts as v,useUserMenu as F,useSubmitFeedback as M,useTranslate as E,useSidebarSiblingsData as L,usePageProps as R,useUserTeams as O,useMarkdownText as y,useMarkdocRenderer as A,useCodeHighlight as w,useLoadAndNavigate as x,useCatalog as I,useCatalogSort as j,useCatalogSearch as B,useFetchCatalogEntities as H,useFetchCatalogEntitiesRelations as N,useFetchCatalogEntityRevisions as U,useTelemetry as s,useMcpData as _}from"../../app/hooks";import{Link as G}from"../../app/Link";import{useFacetQuery as Q,useSearch as V,useAiSearch as W}from"../../app/search";import{useSidebarItems as q}from"../../app/Sidebar/useSidebarItems";import{deepMerge as z}from"../../../utils/object/deep-merge";import{allowlistObject as J}from"../../../utils/object/allowlist-object";const K=["title","description","seo","sidebar","excludeFromSearch","template","redirects","rbac","metadata","slug","codeSnippet","breadcrumbs","markdown","seo","navbar","footer","colorMode","feedback","navigation"],X={useAnchorPositioning:d,useBreadcrumbs:g,useBanner:p,useCatalog:I,useCatalogSort:j,useCatalogSearch:B,useFetchCatalogEntities:H,useFetchCatalogEntitiesRelations:N,useFetchCatalogEntityRevisions:U,useCatalogClassic:f,useCurrentProduct:b,useGlobalData:a,useSearch:V,useAiSearch:W,useFacetQuery:Q,useI18n:h,useI18nConfig:C,useL10n:P,useL10nConfig:S,usePageData:r,usePageSharedData:T,usePageVersions:D,usePreloadHistory:k,useProducts:v,useUserMenu:F,useSidebarItems:q,useSidebarSiblingsData:L,useSubmitFeedback:M,useTranslate:E,useUserTeams:O,usePageProps:R,useMarkdownText:y,useMarkdocRenderer:A,useCodeHighlight:w,useLoadAndNavigate:x,useTelemetry:s,useOtelTelemetry:s,useMcpData:_},Y={LinkComponent:G};function ne({children:n}){const{props:t}=r()||{},o=a()||{},u=e.useMemo(()=>{const c=J(t?.frontmatter||{},K);return z(o,c)},[o,t?.frontmatter]),i={hooks:X,components:Y,config:u};return e.createElement(l,null,e.createElement(m.Provider,{value:i},n))}export{ne as ThemeDataProvider};
1
+ import e from"react";import{ThemeDataContext as l,SearchSessionProvider as d}from"@redocly/theme/core/contexts";import{useAnchorPositioning as g,useBreadcrumbs as p,useBanner as b,useCatalogClassic as f,useCurrentProduct as h,useGlobalData as s,useI18n as C,useI18nConfig as P,useL10n as S,useL10nConfig as T,usePageData as r,usePageSharedData as D,usePageVersions as M,usePreloadHistory as k,useProducts as v,useUserMenu as F,useSubmitFeedback as E,useTranslate as L,useSidebarSiblingsData as R,usePageProps as y,useUserTeams as O,useMarkdownText as A,useMarkdocRenderer as w,useCodeHighlight as x,useLoadAndNavigate as I,useCatalog as j,useCatalogSort as B,useCatalogSearch as H,useFetchCatalogEntities as N,useFetchCatalogEntitiesRelations as U,useFetchCatalogEntityRevisions as _,useTelemetry as n,useMcpData as G}from"../../app/hooks";import{Link as Q}from"../../app/Link";import{useFacetQuery as V,useSearch as W,useAiSearch as q}from"../../app/search";import{useSidebarItems as z}from"../../app/Sidebar/useSidebarItems";import{deepMerge as J}from"../../../utils/object/deep-merge";import{allowlistObject as K}from"../../../utils/object/allowlist-object";const X=["title","description","seo","sidebar","excludeFromSearch","template","redirects","rbac","metadata","slug","codeSnippet","breadcrumbs","markdown","seo","navbar","footer","colorMode","feedback","navigation"],Y={useAnchorPositioning:g,useBreadcrumbs:p,useBanner:b,useCatalog:j,useCatalogSort:B,useCatalogSearch:H,useFetchCatalogEntities:N,useFetchCatalogEntitiesRelations:U,useFetchCatalogEntityRevisions:_,useCatalogClassic:f,useCurrentProduct:h,useGlobalData:s,useSearch:W,useAiSearch:q,useFacetQuery:V,useI18n:C,useI18nConfig:P,useL10n:S,useL10nConfig:T,usePageData:r,usePageSharedData:D,usePageVersions:M,usePreloadHistory:k,useProducts:v,useUserMenu:F,useSidebarItems:z,useSidebarSiblingsData:R,useSubmitFeedback:E,useTranslate:L,useUserTeams:O,usePageProps:y,useMarkdownText:A,useMarkdocRenderer:w,useCodeHighlight:x,useLoadAndNavigate:I,useTelemetry:n,useOtelTelemetry:n,useMcpData:G},Z={LinkComponent:Q};function ue({children:u}){const{props:t}=r()||{},a=s(),o=e.useMemo(()=>a||{},[a]),i=e.useMemo(()=>{const m=K(t?.frontmatter||{},X);return J(o,m)},[o,t?.frontmatter]),c={hooks:Y,components:Z,config:i};return e.createElement(d,null,e.createElement(l.Provider,{value:c},u))}export{ue as ThemeDataProvider};
@@ -1,4 +1,4 @@
1
- import m from"styled-components";import*as t from"react";import{RedoclyAsyncAPIDocs as d}from"@redocly/asyncapi-docs";import{withPathPrefix as r}from"@redocly/theme/core/utils";import{ServerRoutes as p}from"../../../constants/common.js";import{CLIENT_TELEMETRY_ENABLED as f}from"../../constants/common.js";import{PACKAGE_NAME as E}from"../../../config/product-gates";import{usePageSharedData as A}from"../../providers/page-data/hooks";import{useCollectMarkdocOptions as h}from"./helpers.js";function u({pageProps:o}){const e=A("AsyncApiDefinition"),{document:i,apiItems:a,protocol:n,downloadUrls:s}=e,c=r(o?.settings?.baseUrlPath),l=h(o);return t.createElement(g,null,t.createElement(d,{pageProps:o,document:i,apiItems:a,routingBasePath:c,protocol:n,downloadUrls:s,markdocOptions:l,telemetryConfig:{collectorUrl:new URL(r(p.OTEL_TRACES),location.origin).toString(),disabled:!f,serviceVersion:`${E}@${process.env.REDOCLY_PORTAL_VERSION}`}}))}const g=m.div`
1
+ import m from"styled-components";import*as t from"react";import{RedoclyAsyncAPIDocs as d}from"@redocly/asyncapi-docs";import{withPathPrefix as r}from"@redocly/theme/core/utils";import{ServerRoutes as p}from"../../../constants/api.js";import{CLIENT_TELEMETRY_ENABLED as f}from"../../constants/common.js";import{PACKAGE_NAME as E}from"../../../config/product-gates";import{usePageSharedData as A}from"../../providers/page-data/hooks";import{useCollectMarkdocOptions as h}from"./helpers.js";function u({pageProps:o}){const e=A("AsyncApiDefinition"),{document:i,apiItems:a,protocol:n,downloadUrls:s}=e,c=r(o?.settings?.baseUrlPath),l=h(o);return t.createElement(g,null,t.createElement(d,{pageProps:o,document:i,apiItems:a,routingBasePath:c,protocol:n,downloadUrls:s,markdocOptions:l,telemetryConfig:{collectorUrl:new URL(r(p.OTEL_TRACES),location.origin).toString(),disabled:!f,serviceVersion:`${E}@${process.env.REDOCLY_PORTAL_VERSION}`}}))}const g=m.div`
2
2
  a[id],
3
3
  a[data-section-id],
4
4
  div[data-section-id] {
@@ -1,5 +1,5 @@
1
- import{useMemo as f}from"react";import{components as g}from"@redocly-markdoc/components";import{schema as c}from"@redocly-markdoc/schema";import{Ast as d}from"@markdoc/markdoc";import{PageNavigation as h}from"@redocly/theme/components/PageNavigation/PageNavigation";import{tags as _,components as y}from"@redocly/theme/markdoc/default";import{Breadcrumbs as P}from"@redocly/theme/components/Breadcrumbs/Breadcrumbs";import{withPathPrefix as m}from"@redocly/theme/core/utils";import{OPENAPI_DOCS_TEMPLATE_ID as w,ServerRoutes as u}from"../../../constants/common.js";import{isBrowser as S}from"../../../utils/env/is-browser.js";import*as O from"../../../markdoc/nodes/index.js";import v from"../../../markdoc/tags/index.js";import{normalizeCustomTags as C}from"../../../markdoc/helpers/normalize-custom-tags.js";import*as T from"../../app/markdoc/custom-components/index.js";import{usePageData as x,useSidebarSiblingsData as A}from"../../providers/page-data/hooks";import{telemetry as E}from"../../app/telemetry/index.js";import{getMockServerDocsConfig as R}from"./mock-server-config.js";function K(o="",r="",t="/"){return o.endsWith(t)&&(o=o.slice(0,-t.length)),r.startsWith(t)&&(r=r.slice(t.length)),!o||!r?o+r:o+t+r}function b(o){if(o)return Object.entries(o).reduce((r,[t,n])=>(r[t]=d.fromJSON(JSON.stringify(n)),r),{})}function X(o,{markdown:r,baseSlug:t}){return f(()=>{const i=S();if(o.options.oAuth2RedirectURI=i?`${window.location.origin}${m(u.REPLAY_OAUTH2_CALLBACK)}`:null,o.options.routingBasePath=m(t),o.options.mockServer=R(o.options.mockServer,t),!o.options.corsProxyUrl){const e=m(`${u.CORS_PROXY}/`);o.options.corsProxyUrl=i?new URL(e,window.location.origin).toString():e}o.options.scrollYOffset=i?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--navbar-height"),10):0,o.options.markdocOptions={tags:{...v,..._,...C(c?.tags??{})},nodes:{...O,...c?.nodes??{}},functions:{...c?.functions??{}},components:{...T,...y,...g,...globalThis.__LOADER.markdocComponents},...r,partials:b(r?.partials)},o.options.unstable_hooks={...o.options.unstable_hooks,MiddlePanelFooter:()=>{const{templateId:e}=x()||{},{nextPage:s,prevPage:a}=A()||{};return e===w?null:h({nextPage:s,prevPage:a})},MiddlePanelHeader:()=>P({})};const l={codeSamplesLanguageSwitch:"samples_language_switch",codeSamplesCopy:"code_samples_copy",panelToggle:"panel_toggle",targetServerSwitch:"target_server_switch",tryItOpen:"try_it_toggle",tryItSent:"try_it_sent"},p={};for(const[e,s]of Object.entries(l)){const a=U(o.options.events?.[e]);p[e]=F(a,s)}return o.options.events=p,o},[o,r,t])}function U(o){if(typeof window>"u")return null;if(typeof o=="function")return o;if(typeof o!="string")return null;try{const r=o.trim();if(!r.match(/^(\([^)]*\)\s*=>\s*.+|[a-zA-Z_$][\w$]*\s*=>\s*.+)$/))throw new Error("Invalid function format. Only arrow functions allowed.");if(["eval","Function","constructor","prototype","__proto__","import","require","process","global","window","document"].some(i=>r.includes(i)))throw new Error("Function contains prohibited keywords");return new Function("event",`
1
+ import{useMemo as f}from"react";import{components as g}from"@redocly-markdoc/components";import{schema as c}from"@redocly-markdoc/schema";import{Ast as d}from"@markdoc/markdoc";import{PageNavigation as h}from"@redocly/theme/components/PageNavigation/PageNavigation";import{tags as _,components as y}from"@redocly/theme/markdoc/default";import{Breadcrumbs as P}from"@redocly/theme/components/Breadcrumbs/Breadcrumbs";import{withPathPrefix as m}from"@redocly/theme/core/utils";import{ServerRoutes as u}from"../../../constants/api.js";import{OPENAPI_DOCS_TEMPLATE_ID as w}from"../../../constants/common.js";import{isBrowser as S}from"../../../utils/env/is-browser.js";import*as O from"../../../markdoc/nodes/index.js";import v from"../../../markdoc/tags/index.js";import{normalizeCustomTags as C}from"../../../markdoc/helpers/normalize-custom-tags.js";import*as T from"../../app/markdoc/custom-components/index.js";import{usePageData as x,useSidebarSiblingsData as A}from"../../providers/page-data/hooks";import{telemetry as E}from"../../app/telemetry/index.js";import{getMockServerDocsConfig as R}from"./mock-server-config.js";function X(o="",r="",t="/"){return o.endsWith(t)&&(o=o.slice(0,-t.length)),r.startsWith(t)&&(r=r.slice(t.length)),!o||!r?o+r:o+t+r}function b(o){if(o)return Object.entries(o).reduce((r,[t,n])=>(r[t]=d.fromJSON(JSON.stringify(n)),r),{})}function Z(o,{markdown:r,baseSlug:t}){return f(()=>{const i=S();if(o.options.oAuth2RedirectURI=i?`${window.location.origin}${m(u.REPLAY_OAUTH2_CALLBACK)}`:null,o.options.routingBasePath=m(t),o.options.mockServer=R(o.options.mockServer,t),!o.options.corsProxyUrl){const e=m(`${u.CORS_PROXY}/`);o.options.corsProxyUrl=i?new URL(e,window.location.origin).toString():e}o.options.scrollYOffset=i?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--navbar-height"),10):0,o.options.markdocOptions={tags:{...v,..._,...C(c?.tags??{})},nodes:{...O,...c?.nodes??{}},functions:{...c?.functions??{}},components:{...T,...y,...g,...globalThis.__LOADER.markdocComponents},...r,partials:b(r?.partials)},o.options.unstable_hooks={...o.options.unstable_hooks,MiddlePanelFooter:()=>{const{templateId:e}=x()||{},{nextPage:s,prevPage:a}=A()||{};return e===w?null:h({nextPage:s,prevPage:a})},MiddlePanelHeader:()=>P({})};const l={codeSamplesLanguageSwitch:"samples_language_switch",codeSamplesCopy:"code_samples_copy",panelToggle:"panel_toggle",targetServerSwitch:"target_server_switch",tryItOpen:"try_it_toggle",tryItSent:"try_it_sent"},p={};for(const[e,s]of Object.entries(l)){const a=U(o.options.events?.[e]);p[e]=F(a,s)}return o.options.events=p,o},[o,r,t])}function U(o){if(typeof window>"u")return null;if(typeof o=="function")return o;if(typeof o!="string")return null;try{const r=o.trim();if(!r.match(/^(\([^)]*\)\s*=>\s*.+|[a-zA-Z_$][\w$]*\s*=>\s*.+)$/))throw new Error("Invalid function format. Only arrow functions allowed.");if(["eval","Function","constructor","prototype","__proto__","import","require","process","global","window","document"].some(i=>r.includes(i)))throw new Error("Function contains prohibited keywords");return new Function("event",`
2
2
  'use strict';
3
3
  const userFn = ${r};
4
4
  return userFn(event);
5
- `)}catch(r){return console.error("Function parsing error:",r),null}}function F(o,r){return t=>{if(o)try{o(t)}catch(n){console.error("User event handler error:",n)}if(r)try{E.sendOpenapiDocsMessage([{object:"openapi_docs",eventType:r,operationHttpVerb:t.operationHttpVerb,operationPath:t.operationPath,lang:"lang"in t?t.lang:void 0,action:t.action,state:"state"in t?t.state:void 0,serverUrl:"serverUrl"in t?t.serverUrl:void 0}])}catch{}}}export{K as joinWithSeparator,F as mergeEvents,b as parsePartials,U as safeParseFunction,X as usePatchedStore};
5
+ `)}catch(r){return console.error("Function parsing error:",r),null}}function F(o,r){return t=>{if(o)try{o(t)}catch(n){console.error("User event handler error:",n)}if(r)try{E.sendOpenapiDocsMessage([{object:"openapi_docs",eventType:r,operationHttpVerb:t.operationHttpVerb,operationPath:t.operationPath,lang:"lang"in t?t.lang:void 0,action:t.action,state:"state"in t?t.state:void 0,serverUrl:"serverUrl"in t?t.serverUrl:void 0}])}catch{}}}export{X as joinWithSeparator,F as mergeEvents,b as parsePartials,U as safeParseFunction,Z as usePatchedStore};
@@ -1,4 +1,4 @@
1
- import*as o from"react";import i from"styled-components";import{RedoclyOpenAPIDocs as m}from"@redocly/openapi-docs";import{LayoutVariant as c}from"@redocly/config";import{CLIENT_TELEMETRY_ENABLED as s}from"../../constants/common.js";import{ThreePanelLayout as p}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as f}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{withPathPrefix as h}from"@redocly/theme/core/utils";import{useUserClaims as d}from"../../app/hooks";import{ServerRoutes as u}from"../../../constants/common.js";import{PACKAGE_NAME as E}from"../../../config/product-gates";import{usePageSharedData as v}from"../../providers/page-data/hooks";import{usePatchedStore as g}from"./helpers.js";function y({pageProps:t}){const r=d(),e=v("openAPIDocsStore"),n=o.useMemo(()=>({layout:t.apiOptions?.layout,userClaims:r}),[t.apiOptions?.layout,r]),a=g(e,t);if(!e)return"Something went wrong";const l=t.apiOptions?.layout;return o.createElement(A,null,o.createElement(S,{layout:l},o.createElement(f,{metadata:t.metadata})),o.createElement(m,{store:{options:a.options,definition:a.definition,withState:n},telemetryConfig:{collectorUrl:new URL(h(u.OTEL_TRACES),location.origin).toString(),disabled:!s,serviceVersion:`${E}@${process.env.REDOCLY_PORTAL_VERSION}`}}))}const S=i(p)`
1
+ import*as o from"react";import i from"styled-components";import{RedoclyOpenAPIDocs as m}from"@redocly/openapi-docs";import{LayoutVariant as c}from"@redocly/config";import{CLIENT_TELEMETRY_ENABLED as s}from"../../constants/common.js";import{ThreePanelLayout as p}from"@redocly/theme/layouts/ThreePanelLayout";import{CatalogClassicInfoBlock as f}from"@redocly/theme/components/CatalogClassic/CatalogClassicInfoBlock";import{withPathPrefix as h}from"@redocly/theme/core/utils";import{useUserClaims as d}from"../../app/hooks";import{ServerRoutes as u}from"../../../constants/api.js";import{PACKAGE_NAME as E}from"../../../config/product-gates";import{usePageSharedData as v}from"../../providers/page-data/hooks";import{usePatchedStore as g}from"./helpers.js";function y({pageProps:t}){const r=d(),e=v("openAPIDocsStore"),n=o.useMemo(()=>({layout:t.apiOptions?.layout,userClaims:r}),[t.apiOptions?.layout,r]),a=g(e,t);if(!e)return"Something went wrong";const l=t.apiOptions?.layout;return o.createElement(A,null,o.createElement(S,{layout:l},o.createElement(f,{metadata:t.metadata})),o.createElement(m,{store:{options:a.options,definition:a.definition,withState:n},telemetryConfig:{collectorUrl:new URL(h(u.OTEL_TRACES),location.origin).toString(),disabled:!s,serviceVersion:`${E}@${process.env.REDOCLY_PORTAL_VERSION}`}}))}const S=i(p)`
2
2
  && {
3
3
  padding-right: ${({layout:t})=>t===c.THREE_PANEL?"calc(var(--panel-gap-horizontal) * 2)":"var(--panel-gap-horizontal)"};
4
4
  }
@@ -33,6 +33,10 @@ export type IncomingMessage = RouteUpdateIncomingMessage | InitializeIncomingMes
33
33
  export type OutgoingMessage = InitializedOutgoingMessage | RouteUpdatedOutgoingMessage | AddReviewCommentOutgoingMessage | ReviewHoverLinesOutgoingMessage | ScrollOutgoingMessage | EditorScrollOutgoingMessage;
34
34
  type InitializedOutgoingMessage = {
35
35
  type: 'initialized';
36
+ initialRoute?: {
37
+ file: string;
38
+ url: string;
39
+ };
36
40
  };
37
41
  type RouteUpdatedOutgoingMessage = {
38
42
  type: 'route-updated';
@@ -0,0 +1,49 @@
1
+ export declare const AUTH_SEGMENT = "_auth";
2
+ export declare const CATALOG_ENTITY_KEY = "entityKey";
3
+ export declare const CATALOG_ENTITY_ID = "entityId";
4
+ export declare const CATALOG_ENTITY_RELATION_ID = "entityRelationId";
5
+ export declare const ServerRoutes: {
6
+ readonly CORS_PROXY: '/_api/cors';
7
+ readonly INFO: '/_info';
8
+ readonly EJECT_COMPONENT: '/eject-component/:componentName';
9
+ readonly SHARED_PAGE_DATA: '/page-data/shared/*';
10
+ readonly PAGE_DATA: '/page-data/*';
11
+ readonly APP_DATA: '/app-data.json';
12
+ readonly AUTHORIZATION: '/authorize';
13
+ readonly OIDC_CALLBACK: "/_auth/oidc";
14
+ readonly SAML_CALLBACK: "/_auth/saml2";
15
+ readonly REDOCLY_CALLBACK: "/_auth/redocly";
16
+ readonly REPLAY_OAUTH2_CALLBACK: "/_auth/replay-oauth2";
17
+ readonly REDOCLY_LOGIN_CALLBACK: "/_auth/redocly/redocly-login";
18
+ readonly REDOCLY_TOKEN_LOGIN: "/_auth/redocly-token-login";
19
+ readonly SEARCH: '/_search';
20
+ readonly SEARCH_FACETS: '/_search-facets';
21
+ readonly SEMANTIC_SEARCH: '/_semantic-search';
22
+ readonly LOGOUT: '/logout';
23
+ readonly POST_LOGOUT: '/post-logout';
24
+ readonly LOGIN: '/login';
25
+ readonly IDP_LOGIN: "/_auth/idp-login";
26
+ readonly INVITE: '/invite/:code';
27
+ readonly RESOLVE_ROUTE_BY_PATH: '/resolve-route-by-path';
28
+ readonly RESOLVE_ROUTES_BY_PATHS: '/resolve-routes-by-paths';
29
+ readonly RESOLVE_ROUTE_BY_SLUG: '/resolve-route-by-slug';
30
+ readonly GET_ROUTES_BY_LINE: '/get-routes-by-line';
31
+ readonly FEEDBACK: '/feedback';
32
+ readonly TELEMETRY: '/_events';
33
+ readonly OTEL_TRACES: '/_otel/v1/traces';
34
+ readonly HEALTH: '/_health';
35
+ readonly ASK_AI: '/_ask-ai';
36
+ readonly CATALOG_ENTITIES: "/catalog-entities/:entityId?";
37
+ readonly CATALOG_ENTITIES_RELATIONS: "/catalog-entities-relations/:entityRelationId?";
38
+ readonly BFF_CATALOG_ENTITIES: "/bff/catalog-entities/:entityKey?";
39
+ readonly BFF_CATALOG_RELATED_ENTITIES: "/bff/catalog-related-entities/:entityKey";
40
+ readonly BFF_CATALOG_REVISIONS: '/bff/catalog-revisions';
41
+ readonly MCP_OAUTH_AUTHORIZATION_SERVER: '/.well-known/oauth-authorization-server';
42
+ readonly MCP_OAUTH_PROTECTED_RESOURCE: '/.well-known/oauth-protected-resource';
43
+ readonly MCP_DYNAMIC_CLIENT_REGISTRATION: '/_mcp/register';
44
+ readonly MCP_AUTHORIZATION: '/_mcp/oauth2/auth';
45
+ readonly MCP_TOKEN_PORTAL: '/_mcp/oauth2/token-portal';
46
+ readonly MCP_CALLBACK: '/_mcp/oauth/callback';
47
+ readonly SCORECARDS: '/scorecards';
48
+ };
49
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ const e="_auth",_="entityKey",t="entityId",A="entityRelationId",T={CORS_PROXY:"/_api/cors",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:`/${e}/oidc`,SAML_CALLBACK:`/${e}/saml2`,REDOCLY_CALLBACK:`/${e}/redocly`,REPLAY_OAUTH2_CALLBACK:`/${e}/replay-oauth2`,REDOCLY_LOGIN_CALLBACK:`/${e}/redocly/redocly-login`,REDOCLY_TOKEN_LOGIN:`/${e}/redocly-token-login`,SEARCH:"/_search",SEARCH_FACETS:"/_search-facets",SEMANTIC_SEARCH:"/_semantic-search",LOGOUT:"/logout",POST_LOGOUT:"/post-logout",LOGIN:"/login",IDP_LOGIN:`/${e}/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/:${_}?`,BFF_CATALOG_RELATED_ENTITIES:`/bff/catalog-related-entities/:${_}`,BFF_CATALOG_REVISIONS:"/bff/catalog-revisions",MCP_OAUTH_AUTHORIZATION_SERVER:"/.well-known/oauth-authorization-server",MCP_OAUTH_PROTECTED_RESOURCE:"/.well-known/oauth-protected-resource",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"};export{e as AUTH_SEGMENT,t as CATALOG_ENTITY_ID,_ as CATALOG_ENTITY_KEY,A as CATALOG_ENTITY_RELATION_ID,T as ServerRoutes};
@@ -1,5 +1,4 @@
1
1
  import { type RedoclyConfig, type UiAccessibleConfig } from '@redocly/config';
2
- export declare const AUTH_SEGMENT = "_auth";
3
2
  export declare const AuthCookieNames: {
4
3
  readonly AUTHORIZATION: 'authorization';
5
4
  readonly IDP_ID_TOKEN: 'idp_id_token';
@@ -42,53 +41,6 @@ export declare enum FEEDBACK_TYPES {
42
41
  PROBLEM = "problem",
43
42
  SCALE = "scale"
44
43
  }
45
- export declare const CATALOG_ENTITY_KEY = "entityKey";
46
- export declare const CATALOG_ENTITY_ID = "entityId";
47
- export declare const CATALOG_ENTITY_RELATION_ID = "entityRelationId";
48
- export declare const ServerRoutes: {
49
- readonly CORS_PROXY: '/_api/cors';
50
- readonly INFO: '/_info';
51
- readonly EJECT_COMPONENT: '/eject-component/:componentName';
52
- readonly SHARED_PAGE_DATA: '/page-data/shared/*';
53
- readonly PAGE_DATA: '/page-data/*';
54
- readonly APP_DATA: '/app-data.json';
55
- readonly AUTHORIZATION: '/authorize';
56
- readonly OIDC_CALLBACK: "/_auth/oidc";
57
- readonly SAML_CALLBACK: "/_auth/saml2";
58
- readonly REDOCLY_CALLBACK: "/_auth/redocly";
59
- readonly REPLAY_OAUTH2_CALLBACK: "/_auth/replay-oauth2";
60
- readonly REDOCLY_LOGIN_CALLBACK: "/_auth/redocly/redocly-login";
61
- readonly REDOCLY_TOKEN_LOGIN: "/_auth/redocly-token-login";
62
- readonly SEARCH: '/_search';
63
- readonly SEARCH_FACETS: '/_search-facets';
64
- readonly SEMANTIC_SEARCH: '/_semantic-search';
65
- readonly LOGOUT: '/logout';
66
- readonly POST_LOGOUT: '/post-logout';
67
- readonly LOGIN: '/login';
68
- readonly IDP_LOGIN: "/_auth/idp-login";
69
- readonly INVITE: '/invite/:code';
70
- readonly RESOLVE_ROUTE_BY_PATH: '/resolve-route-by-path';
71
- readonly RESOLVE_ROUTES_BY_PATHS: '/resolve-routes-by-paths';
72
- readonly RESOLVE_ROUTE_BY_SLUG: '/resolve-route-by-slug';
73
- readonly GET_ROUTES_BY_LINE: '/get-routes-by-line';
74
- readonly FEEDBACK: '/feedback';
75
- readonly TELEMETRY: '/_events';
76
- readonly OTEL_TRACES: '/_otel/v1/traces';
77
- readonly HEALTH: '/_health';
78
- readonly ASK_AI: '/_ask-ai';
79
- readonly CATALOG_ENTITIES: "/catalog-entities/:entityId?";
80
- readonly CATALOG_ENTITIES_RELATIONS: "/catalog-entities-relations/:entityRelationId?";
81
- readonly BFF_CATALOG_ENTITIES: "/bff/catalog-entities/:entityKey?";
82
- readonly BFF_CATALOG_RELATED_ENTITIES: "/bff/catalog-related-entities/:entityKey";
83
- readonly BFF_CATALOG_REVISIONS: '/bff/catalog-revisions';
84
- readonly MCP_OAUTH_AUTHORIZATION_SERVER: '/.well-known/oauth-authorization-server';
85
- readonly MCP_OAUTH_PROTECTED_RESOURCE: '/.well-known/oauth-protected-resource';
86
- readonly MCP_DYNAMIC_CLIENT_REGISTRATION: '/_mcp/register';
87
- readonly MCP_AUTHORIZATION: '/_mcp/oauth2/auth';
88
- readonly MCP_TOKEN_PORTAL: '/_mcp/oauth2/token-portal';
89
- readonly MCP_CALLBACK: '/_mcp/oauth/callback';
90
- readonly SCORECARDS: '/scorecards';
91
- };
92
44
  export declare enum RbacFeatures {
93
45
  AI_SEARCH = "aiSearch"
94
46
  }
@@ -1 +1 @@
1
- const o="_auth",A={AUTHORIZATION:"authorization",IDP_ID_TOKEN:"idp_id_token",IDP_ACCESS_TOKEN:"idp_access_token",FEDERATED_ACCESS_TOKEN:"federated_access_token",FEDERATED_ID_TOKEN:"federated_id_token"},T="openapi_docs",i="asyncapi_docs",O="graphql_docs",p="/_spec-gql",L="markdoc",C="tags",c="*",I={[c]:"read"},R=["openid","email"],S=1440*60,l="anonymous",d="authenticated",N="**",P="Reunite",D="translations.yaml",u="redocly.yaml",x="@redocly/theme",g="@theme",U="/app-data.json",h="/eject-component";var t;(function(e){e.BUILD="build",e.DEVELOP="develop",e.PREPARE="prepare"})(t||(t={}));var a;(function(e){e.RATING="rating",e.SENTIMENT="sentiment",e.COMMENT="comment",e.MOOD="mood",e.PROBLEM="problem",e.SCALE="scale"})(a||(a={}));const r="entityKey",s="entityId",E="entityRelationId",m={CORS_PROXY:"/_api/cors",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:`/${o}/oidc`,SAML_CALLBACK:`/${o}/saml2`,REDOCLY_CALLBACK:`/${o}/redocly`,REPLAY_OAUTH2_CALLBACK:`/${o}/replay-oauth2`,REDOCLY_LOGIN_CALLBACK:`/${o}/redocly/redocly-login`,REDOCLY_TOKEN_LOGIN:`/${o}/redocly-token-login`,SEARCH:"/_search",SEARCH_FACETS:"/_search-facets",SEMANTIC_SEARCH:"/_semantic-search",LOGOUT:"/logout",POST_LOGOUT:"/post-logout",LOGIN:"/login",IDP_LOGIN:`/${o}/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/:${s}?`,CATALOG_ENTITIES_RELATIONS:`/catalog-entities-relations/:${E}?`,BFF_CATALOG_ENTITIES:`/bff/catalog-entities/:${r}?`,BFF_CATALOG_RELATED_ENTITIES:`/bff/catalog-related-entities/:${r}`,BFF_CATALOG_REVISIONS:"/bff/catalog-revisions",MCP_OAUTH_AUTHORIZATION_SERVER:"/.well-known/oauth-authorization-server",MCP_OAUTH_PROTECTED_RESOURCE:"/.well-known/oauth-protected-resource",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"};var _;(function(e){e.AI_SEARCH="aiSearch"})(_||(_={}));const M="/login",G="/invite",H={AUTH0_PASS:"/auth/auth0-pass"},b={NotExist:"ENOENT"},F="default_locale",y="sidebar-",v="PUBLIC_",k="branch.",B=["BROKEN_LINK","MARKDOC","RESOLVE"],K=["logo","navbar","products","footer","sidebar","scripts","links","feedback","search","aiAssistant","colorMode","palette","navigation","codeSnippet","markdown","openapi","graphql","analytics","userMenu","versionPicker","breadcrumbs","catalog","entitiesCatalog","scorecard","scorecards","scorecardClassic","mcp","banner"],n="redocly_category",f="redocly_product",Y="redocly_version",V="redocly_teams",$=n,w={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",kvStorageLimit:"kvStorageLimit",mcp:"mcp",banner:"banner"};export{i as ASYNC_API_DOCS_TEMPLATE_ID,o as AUTH_SEGMENT,A as AuthCookieNames,k as BRANCH_ENV_PREFIX,s as CATALOG_ENTITY_ID,r as CATALOG_ENTITY_KEY,E as CATALOG_ENTITY_RELATION_ID,u as CONFIG_FILE_NAME,L as CUSTOM_MARKDOC_OPTIONS_PATH,C as CUSTOM_MARKDOC_TAGS_PATH,l as DEFAULT_ANONYMOUS_VISITOR_TEAM,d as DEFAULT_AUTHENTICATED_TEAM,S as DEFAULT_COOKIE_EXPIRATION,F as DEFAULT_LOCALE_PLACEHOLDER,N as DEFAULT_RBAC_SCOPE,P as DEFAULT_SSO_IDP_TITLE,x as DEFAULT_THEME_NAME,M as DEV_LOGIN_SLUG,h as EJECT_COMPONENT_URL,H as ExternalRoutes,w as FEATURE,a as FEEDBACK_TYPES,b as FsErrors,U as GLOBAL_DATA_URL,p as GRAPHQL_SPEC_SLUG,O as GRAPHQL_TEMPLATE_ID,G as INVITE_SLUG,B as MARKDOC_ERROR_TYPES,T as OPENAPI_DOCS_TEMPLATE_ID,v as PUBLIC_ENV_PREFIX,I as PUBLIC_RBAC_SCOPE_ITEM,c as RBAC_ALL_OTHER_TEAMS,R as REQUIRED_OIDC_SCOPES,_ as RbacFeatures,n as SEARCH_CATEGORY_FIELD,$ as SEARCH_GROUP_FACET_FIELD,f as SEARCH_PRODUCT_FIELD,V as SEARCH_RBAC_FIELD,Y as SEARCH_VERSION_FIELD,y as SIDEBAR_PREFIX,m as ServerRoutes,D as TRANSLATIONS_FILE_NAME,K as UI_ACCESSIBLE_CONFIG_PROPS,g as USER_THEME_ALIAS,t as cliCommandNames};
1
+ const s={AUTHORIZATION:"authorization",IDP_ID_TOKEN:"idp_id_token",IDP_ACCESS_TOKEN:"idp_access_token",FEDERATED_ACCESS_TOKEN:"federated_access_token",FEDERATED_ID_TOKEN:"federated_id_token"},n="openapi_docs",_="asyncapi_docs",E="graphql_docs",p="/_spec-gql",i="markdoc",A="tags",c="*",d={[c]:"read"},O=["openid","email"],T=1440*60,I="anonymous",R="authenticated",S="**",L="Reunite",l="translations.yaml",C="redocly.yaml",x="@redocly/theme",D="@theme",P="/app-data.json",N="/eject-component";var t;(function(o){o.BUILD="build",o.DEVELOP="develop",o.PREPARE="prepare"})(t||(t={}));var e;(function(o){o.RATING="rating",o.SENTIMENT="sentiment",o.COMMENT="comment",o.MOOD="mood",o.PROBLEM="problem",o.SCALE="scale"})(e||(e={}));var r;(function(o){o.AI_SEARCH="aiSearch"})(r||(r={}));const m="/login",u="/invite",g={AUTH0_PASS:"/auth/auth0-pass"},U={NotExist:"ENOENT"},M="default_locale",h="sidebar-",b="PUBLIC_",F="branch.",v=["BROKEN_LINK","MARKDOC","RESOLVE"],k=["logo","navbar","products","footer","sidebar","scripts","links","feedback","search","aiAssistant","colorMode","palette","navigation","codeSnippet","markdown","openapi","graphql","analytics","userMenu","versionPicker","breadcrumbs","catalog","entitiesCatalog","scorecard","scorecards","scorecardClassic","mcp","banner"],a="redocly_category",H="redocly_product",y="redocly_version",G="redocly_teams",B=a,f={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",kvStorageLimit:"kvStorageLimit",mcp:"mcp",banner:"banner"};export{_ as ASYNC_API_DOCS_TEMPLATE_ID,s as AuthCookieNames,F as BRANCH_ENV_PREFIX,C as CONFIG_FILE_NAME,i as CUSTOM_MARKDOC_OPTIONS_PATH,A as CUSTOM_MARKDOC_TAGS_PATH,I as DEFAULT_ANONYMOUS_VISITOR_TEAM,R as DEFAULT_AUTHENTICATED_TEAM,T as DEFAULT_COOKIE_EXPIRATION,M as DEFAULT_LOCALE_PLACEHOLDER,S as DEFAULT_RBAC_SCOPE,L as DEFAULT_SSO_IDP_TITLE,x as DEFAULT_THEME_NAME,m as DEV_LOGIN_SLUG,N as EJECT_COMPONENT_URL,g as ExternalRoutes,f as FEATURE,e as FEEDBACK_TYPES,U as FsErrors,P as GLOBAL_DATA_URL,p as GRAPHQL_SPEC_SLUG,E as GRAPHQL_TEMPLATE_ID,u as INVITE_SLUG,v as MARKDOC_ERROR_TYPES,n as OPENAPI_DOCS_TEMPLATE_ID,b as PUBLIC_ENV_PREFIX,d as PUBLIC_RBAC_SCOPE_ITEM,c as RBAC_ALL_OTHER_TEAMS,O as REQUIRED_OIDC_SCOPES,r as RbacFeatures,a as SEARCH_CATEGORY_FIELD,B as SEARCH_GROUP_FACET_FIELD,H as SEARCH_PRODUCT_FIELD,G as SEARCH_RBAC_FIELD,y as SEARCH_VERSION_FIELD,h as SIDEBAR_PREFIX,l as TRANSLATIONS_FILE_NAME,k as UI_ACCESSIBLE_CONFIG_PROPS,D as USER_THEME_ALIAS,t as cliCommandNames};
@@ -15,7 +15,6 @@ declare function loadEnvConfig(): {
15
15
  REDOCLY_CONTENT_DIR?: string | undefined;
16
16
  REDOCLY_PORTAL_VERSION?: string | undefined;
17
17
  REDOCLY_TELEMETRY?: string | undefined;
18
- REDOCLY_TELEMETRY_ENDPOINT?: string | undefined;
19
18
  TELEMETRY_DEV_DEBUG?: boolean | undefined;
20
19
  WEB_SERVER_IDLE_TIMEOUT?: string | undefined;
21
20
  REDOCLY_PROBLEMS_OUTPUT_FILE?: string | undefined;
@@ -53,6 +52,7 @@ declare function loadEnvConfig(): {
53
52
  REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
54
53
  REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
55
54
  REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
55
+ REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
56
56
  SEARCH_DEV_REINIT?: string | undefined;
57
57
  SEARCH_DEV_DEBUG: boolean;
58
58
  TYPESENSE_API_URL?: string | undefined;
@@ -94,7 +94,6 @@ export declare const envConfig: {
94
94
  REDOCLY_CONTENT_DIR?: string | undefined;
95
95
  REDOCLY_PORTAL_VERSION?: string | undefined;
96
96
  REDOCLY_TELEMETRY?: string | undefined;
97
- REDOCLY_TELEMETRY_ENDPOINT?: string | undefined;
98
97
  TELEMETRY_DEV_DEBUG?: boolean | undefined;
99
98
  WEB_SERVER_IDLE_TIMEOUT?: string | undefined;
100
99
  REDOCLY_PROBLEMS_OUTPUT_FILE?: string | undefined;
@@ -132,6 +131,7 @@ export declare const envConfig: {
132
131
  REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
133
132
  REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
134
133
  REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
134
+ REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
135
135
  SEARCH_DEV_REINIT?: string | undefined;
136
136
  SEARCH_DEV_DEBUG: boolean;
137
137
  TYPESENSE_API_URL?: string | undefined;