@redocly/realm 0.135.0-next.4 → 0.135.0-next.6
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 +70 -0
- package/dist/cli/build/analytics/collect-analytics.js +1 -1
- package/dist/cli/build/analytics/collectors/get-nested-configs-usage.js +1 -1
- package/dist/cli/telemetry/get-portal-config-stats.js +1 -1
- package/dist/cli/telemetry/index.js +1 -1
- package/dist/client/app/Sidebar/RequestAccessButton.js +2 -2
- package/dist/client/app/Sidebar/Sidebar.js +3 -3
- package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +5 -2
- package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogClassic.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogFilter.js +1 -1
- package/dist/client/app/hooks/useRouteChangeTracker.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-code-sample.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/openapi-response-sample.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/replay-openapi.js +1 -1
- package/dist/client/app/pages/DevLogin/DevLogin.js +1 -1
- package/dist/client/app/search/useSearch.js +1 -1
- package/dist/client/providers/theme/ThemeDataProvider.js +1 -1
- package/dist/markdoc/helpers/get-operation/get-operation.js +1 -0
- package/dist/markdoc/helpers/get-operation/index.d.ts +4 -0
- package/dist/markdoc/helpers/get-operation/index.js +1 -0
- package/dist/markdoc/helpers/get-resolved-sample-code-block.d.ts +3 -0
- package/dist/markdoc/helpers/get-resolved-sample-code-block.js +5 -0
- package/dist/markdoc/tags/openapi-code-sample.js +1 -1
- package/dist/markdoc/tags/openapi-response-sample.js +1 -1
- package/dist/server/config/env-config.d.ts +2 -0
- package/dist/server/config/env-schema.d.ts +5 -0
- package/dist/server/config/env-schemas/feature-flags.d.ts +4 -0
- package/dist/server/config/env-schemas/feature-flags.js +1 -1
- package/dist/server/constants/common.d.ts +2 -0
- package/dist/server/constants/common.js +1 -1
- package/dist/server/constants/plugins/search.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/helpers/get-media-content-samples.d.ts +4 -0
- package/dist/server/plugins/markdown/attribute-resolvers/helpers/get-media-content-samples.js +1 -0
- package/dist/server/plugins/markdown/attribute-resolvers/helpers/load-openapi-bundle.d.ts +7 -0
- package/dist/server/plugins/markdown/attribute-resolvers/helpers/load-openapi-bundle.js +1 -0
- package/dist/server/plugins/markdown/attribute-resolvers/index.js +1 -1
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-code-samples.d.ts +4 -0
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-code-samples.js +1 -0
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-response-samples.d.ts +4 -0
- package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-response-samples.js +1 -0
- package/dist/server/plugins/markdown/attribute-resolvers/utils.d.ts +2 -0
- package/dist/server/plugins/markdown/attribute-resolvers/utils.js +1 -1
- package/dist/server/plugins/markdown/compiler.js +1 -1
- package/dist/server/plugins/markdown/extract-frontmatter.d.ts +6 -0
- package/dist/server/plugins/markdown/extract-frontmatter.js +1 -0
- package/dist/server/plugins/markdown/index.js +1 -1
- package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
- package/dist/server/plugins/markdown/markdown-frontmatter-loader.js +1 -1
- package/dist/server/plugins/markdown/search/get-ai-search-documents.js +1 -1
- package/dist/server/plugins/markdown/search/search-resolver.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/codemode/build-execute-tool-description.d.ts +4 -0
- package/dist/server/plugins/mcp/docs-mcp/codemode/build-execute-tool-description.js +4 -0
- package/dist/server/plugins/mcp/docs-mcp/codemode/sandbox.d.ts +3 -0
- package/dist/server/plugins/mcp/docs-mcp/codemode/sandbox.js +7 -0
- package/dist/server/plugins/mcp/docs-mcp/codemode/types.d.ts +9 -0
- package/dist/server/plugins/mcp/docs-mcp/codemode/types.js +0 -0
- package/dist/server/plugins/mcp/docs-mcp/tool-schemas.d.ts +2 -0
- package/dist/server/plugins/mcp/docs-mcp/tool-schemas.js +1 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/core/search.d.ts +2 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/core/types.d.ts +6 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/core/types.js +0 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/core/whoami.d.ts +2 -1
- package/dist/server/plugins/mcp/docs-mcp/tools/execute.d.ts +9 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/execute.js +1 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-schema.d.ts +2 -3
- package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type-list.d.ts +2 -9
- package/dist/server/plugins/mcp/docs-mcp/tools/graphql/get-graphql-type.d.ts +2 -5
- package/dist/server/plugins/mcp/docs-mcp/tools/graphql/list-graphql-apis.d.ts +2 -5
- package/dist/server/plugins/mcp/docs-mcp/tools/graphql/types.d.ts +21 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +11 -46
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoint-info.d.ts +2 -6
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-endpoints.d.ts +2 -4
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-full-api-description.d.ts +2 -4
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/get-security-schemes.d.ts +2 -4
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/list-apis.d.ts +2 -5
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/types.d.ts +16 -0
- package/dist/server/plugins/mcp/docs-mcp/tools/openapi/types.js +0 -0
- package/dist/server/plugins/mcp/handlers/errors.js +1 -1
- package/dist/server/plugins/mcp/index.js +1 -1
- package/dist/server/plugins/mcp/mode.d.ts +9 -0
- package/dist/server/plugins/mcp/mode.js +1 -0
- package/dist/server/plugins/mcp/servers/docs-server.js +1 -1
- package/dist/server/plugins/mcp/types.d.ts +1 -0
- package/dist/server/plugins/mcp/workers/execute-mcp-tool.js +1 -1
- package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.d.ts +4 -0
- package/dist/server/plugins/mcp/workers/mcp-tool-telemetry.js +1 -0
- package/dist/server/plugins/scorecard-classic/get-scorecard-config.d.ts +11 -0
- package/dist/server/plugins/search/engines/typesense/index.js +1 -1
- package/dist/server/ssr/server-side-props/get-server-props-from-system-handlers.js +1 -1
- package/dist/server/store.d.ts +0 -2
- package/dist/server/store.js +1 -1
- package/dist/server/telemetry/index.js +1 -1
- package/dist/server/types/plugins/common.d.ts +3 -0
- package/dist/types/markdoc.d.ts +5 -0
- package/package.json +12 -11
- package/dist/client/app/markdoc/custom-components/openapi/get-operation/get-operation.js +0 -1
- package/dist/client/app/markdoc/custom-components/openapi/get-operation/index.d.ts +0 -4
- package/dist/client/app/markdoc/custom-components/openapi/get-operation/index.js +0 -1
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/get-operation-info-by-id.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/get-operation-info-by-id.js +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/get-operation-info-by-pointer.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/get-operation-info-by-pointer.js +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/get-operation.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/index.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/index.js +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-identifier.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-identifier.js +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-info.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-info.js +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-parameters.d.ts +0 -0
- /package/dist/{client/app/markdoc/custom-components/openapi → markdoc/helpers}/get-operation/types/operation-parameters.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# @redocly/realm
|
|
2
2
|
|
|
3
|
+
## 0.135.0-next.6
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8358282927d: Added support for the `openapi-code-sample` and `openapi-response-sample` Markdoc tags in `llms.txt`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 2046acf9c67: Updated `@redocly/openapi-core` to version `2.35.0`.
|
|
12
|
+
- 21155963477: Fixed layout shift in the sidebar that happened when users selected a sidebar item.
|
|
13
|
+
- f52a2b04b55: Fixed an issue where the deprecated badge didn't appear in search dialog results for the Typesense search engine.
|
|
14
|
+
- ead3c5da075: Fixed an issue where search results were incorrectly scoped to the selected product, version, or filter.
|
|
15
|
+
This issue occurred when names of products, versions or filters included the same word, for example: `Version` and `Version 2`.
|
|
16
|
+
- Updated dependencies [359a05ad5d]
|
|
17
|
+
- Updated dependencies [2046acf9c67]
|
|
18
|
+
- Updated dependencies [9df2991666]
|
|
19
|
+
- Updated dependencies [21155963477]
|
|
20
|
+
- Updated dependencies [8358282927d]
|
|
21
|
+
- Updated dependencies [33b827ed767]
|
|
22
|
+
- @redocly/realm-asyncapi-sdk@0.13.0-next.4
|
|
23
|
+
- @redocly/openapi-docs@3.23.0-next.6
|
|
24
|
+
- @redocly/theme@0.67.0-next.5
|
|
25
|
+
- @redocly/portal-plugin-mock-server@0.20.0-next.6
|
|
26
|
+
- @redocly/asyncapi-docs@1.12.0-next.6
|
|
27
|
+
- @redocly/graphql-docs@1.12.0-next.6
|
|
28
|
+
|
|
29
|
+
## 0.135.0-next.5
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- 7e9f8d8c9e7: Updated `@redocly/openapi-core` to version `2.34.0`.
|
|
34
|
+
- 23c1666e2ac: Fixed security vulnerability `GHSA-cmwh-pvxp-8882` by upgrading `dompurify` to version `3.4.11`.
|
|
35
|
+
- 63244207e95: Fixed an issue where search results prioritized matches in page text over matches in page titles.
|
|
36
|
+
- 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.
|
|
37
|
+
- 413e45fabee: Fixed an issue where the selected version persisted across versioned content sets instead of resetting to each set's default version.
|
|
38
|
+
- a614929940f: Added annotations to the MCP tools.
|
|
39
|
+
- 9042008046d: Fixed security vulnerability `CVE-2026-53550` by removing `gray-matter`.
|
|
40
|
+
- 5af80849dfe: Updated `@redocly/openapi-core` to version `2.33.1`.
|
|
41
|
+
- Updated dependencies [7e9f8d8c9e7]
|
|
42
|
+
- Updated dependencies [5f5fcd52f7a]
|
|
43
|
+
- Updated dependencies [23c1666e2ac]
|
|
44
|
+
- Updated dependencies [63244207e95]
|
|
45
|
+
- Updated dependencies [054f8d0400e]
|
|
46
|
+
- Updated dependencies [7e9f8d8c9e7]
|
|
47
|
+
- Updated dependencies [5af80849dfe]
|
|
48
|
+
- @redocly/openapi-docs@3.23.0-next.5
|
|
49
|
+
- @redocly/theme@0.67.0-next.4
|
|
50
|
+
- @redocly/realm-asyncapi-sdk@0.13.0-next.3
|
|
51
|
+
- @redocly/portal-plugin-mock-server@0.20.0-next.5
|
|
52
|
+
- @redocly/asyncapi-docs@1.12.0-next.5
|
|
53
|
+
- @redocly/graphql-docs@1.12.0-next.5
|
|
54
|
+
|
|
3
55
|
## 0.135.0-next.4
|
|
4
56
|
|
|
5
57
|
### Minor Changes
|
|
@@ -85,6 +137,24 @@
|
|
|
85
137
|
- @redocly/openapi-docs@3.23.0-next.0
|
|
86
138
|
- @redocly/theme@0.67.0-next.0
|
|
87
139
|
|
|
140
|
+
## 0.134.1
|
|
141
|
+
|
|
142
|
+
### Patch Changes
|
|
143
|
+
|
|
144
|
+
- 593b45d834e: 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`.
|
|
145
|
+
- 15517889222: Fixed security vulnerability `CVE-2026-53550` by upgrading `js-yaml` to version `4.2.0`.
|
|
146
|
+
- 21fcae7c24a: Fixed security vulnerabilities `GHSA-gvmj-g25r-r7wr`, `CVE-2026-49978`, `GHSA-x4vx-rjvf-j5p4`, `GHSA-vxr8-fq34-vvx9`, `CVE-2026-49459`, `CVE-2026-49458`, `GHSA-76mc-f452-cxcm`, and `GHSA-cmwh-pvxp-8882` by upgrading `dompurify` to version `3.4.11`.
|
|
147
|
+
- afdf3f12bf2: Fixed security vulnerability `GHSA-gv7w-rqvm-qjhr` by upgrading `esbuild` to version `0.28.1`.
|
|
148
|
+
- 89eec49eb26: Fixed security vulnerability `CVE-2026-54285` by upgrading `@opentelemetry/core` to version `2.8.0`.
|
|
149
|
+
- Updated dependencies [21fcae7c24a]
|
|
150
|
+
- Updated dependencies [89eec49eb26]
|
|
151
|
+
- @redocly/openapi-docs@3.22.1
|
|
152
|
+
- @redocly/realm-asyncapi-sdk@0.12.1
|
|
153
|
+
- @redocly/portal-plugin-mock-server@0.19.1
|
|
154
|
+
- @redocly/asyncapi-docs@1.11.1
|
|
155
|
+
- @redocly/graphql-docs@1.11.1
|
|
156
|
+
- @redocly/theme@0.66.0
|
|
157
|
+
|
|
88
158
|
## 0.134.0
|
|
89
159
|
|
|
90
160
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getApiFunctionsUsage as f}from"./collectors/get-api-functions-usage.js";import{getAsyncApiUsage as l}from"./collectors/get-async-api-usage.js";import{getConfigStatsUsage as c}from"./collectors/get-config-stats-usage.js";import{getFileExtensionsUsage as
|
|
1
|
+
import{getApiFunctionsUsage as f}from"./collectors/get-api-functions-usage.js";import{getAsyncApiUsage as l}from"./collectors/get-async-api-usage.js";import{getConfigStatsUsage as c}from"./collectors/get-config-stats-usage.js";import{getFileExtensionsUsage as d}from"./collectors/get-file-extensions-usage.js";import{getFrontmatterUsage as U}from"./collectors/get-frontmatter-usage.js";import{getMarkdocUsage as p}from"./collectors/get-markdoc-usage.js";import{getNestedConfigsUsage as u}from"./collectors/get-nested-configs-usage.js";import{getProcessedConfigStatsUsage as S}from"./collectors/get-processed-config-stats-usage.js";import{getRefsUsage as C}from"./collectors/get-refs-usage.js";import{getThemeFolderUsage as x}from"./collectors/get-theme-folder-usage.js";import{telemetry as y}from"../../telemetry/index.js";async function w(r,i){const n=[f,l,c,d,U,p,u,S,C,x],g=await Promise.allSettled(n.map(t=>t({store:r,context:i}))),e={},s={};for(const t of g)if(t.status==="fulfilled"){const{name:o,value:a,version:m}=t.value;a&&(e[o]=a,s[o]=m)}y.sendBuildMessage({usageStats:e.usageStats,asyncApiUsage:e.asyncApiUsage,buildContext:e.buildContext,fileExtensions:e.fileExtensions,frontmatterUsage:e.frontmatterUsage,markdocUsage:e.markdocUsage,processedBuildContext:e.processedBuildContext,nestedConfigStats:e.nestedConfigStats,refsUsageStats:e.refsUsageStats,themeFolderUsage:e.themeFolderUsage,versions:JSON.stringify(s)})}export{w as collectAnalytics};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dirname as
|
|
1
|
+
import{dirname as s}from"node:path";import{getPortalConfigStats as f}from"../../../telemetry/get-portal-config-stats.js";const r=20,g=512*1024,d=async({context:n})=>{const e=[];let o=0;for(const{relativePath:i,isVirtual:a}of n.fs.scan(/redocly\.yaml$/)){if(a||i==="redocly.yaml")continue;if(e.length>=r)break;const t=f(await n.getConfig(s(i)));if(t!==void 0){if(o+=Buffer.byteLength(t,"utf8"),o>g)break;e.push(t)}}return{version:"1",name:"nestedConfigStats",value:e.length>0?`[${e.join(",")}]`:void 0}};export{d as getNestedConfigsUsage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const i=[
|
|
1
|
+
import{MARKDOC_PARTIALS_DATA_KEY as o}from"../../server/constants/common.js";const i=[/secret/i,/password|passphrase/i,/private[-_]?key/i],a="**********",f=e=>i.some(t=>t.test(e)),s=e=>{if(!e)return e;if(Array.isArray(e))return e.map(t=>s(t)).filter(t=>t!==void 0);if(typeof e=="object"){const t={};for(const[r,n]of Object.entries(e))t[r]=f(r)?a:s(n);return t}return e},c=e=>{const{[o]:t,...r}=e;return r},A=e=>{if(Array.isArray(e))return e.length>0?JSON.stringify(e.map(s)):void 0;const t=c(e),r=s(t);return r&&JSON.stringify(r)};export{A as getPortalConfigStats};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{AsyncApiRealmCLI as c}from"@redocly/realm-asyncapi-sdk";import{ulid as l}from"ulid";import{TELEMETRY_ENABLED as i}from"../../server/constants/common.js";import{shutdowner as s}from"../../server/tools/shutdowner.js";import{envConfig as r}from"../../server/config/env-config.js";import{PACKAGE_NAME as n}from"../../config/product-gates.js";class d extends c.Telemetry{#e=new Map;constructor(){super(),this.updateCloudEventData(()=>({organizationId:r.ORGANIZATION_ID||"",organizationSlug:r.ORGANIZATION_SLUG||"",projectId:r.PROJECT_ID||"",projectSlug:r.PROJECT_SLUG||"",origin:"realmCli",actor:{id:`ann_${l()}`,object:"user",uri:""},source:"cli",env:r.REDOCLY_ENV}))}initialize(e,t,o){const a=t!==void 0?!(t&&i):!i;this.init({otel:{serviceName:"realm-cli",serviceVersion:`${n}@${e}`,collectorTraceUrl:r.OTEL_TRACES_URL||"https://otel.cloud.redocly.com/v1/traces",isProd:r.isProductionEnv,version:"1.0",tracerName:"cli-telemetry"},disabled:a,verbose:o}),s.registerShutdownCallback(this.#r.bind(this))}addTraceStepCallbacks(e,{error:t,end:o}){this.#e.set(e,{error:t,end:o})}removeTraceStepCallbacks(e){this.#e.delete(e)}async#r(e){for(const[,{error:t,end:o}]of this.#e)e&&t(e),o();this.#e.clear(),await this.forceFlush(),await this.shutdown()}}const m=new d,A=m.tracer;export{m as telemetry,A as telemetryTracer};
|
|
1
|
+
import{AsyncApiRealmCLI as c}from"@redocly/realm-asyncapi-sdk";import{ulid as l}from"ulid";import{TELEMETRY_ENABLED as i}from"../../server/constants/common.js";import{shutdowner as s}from"../../server/tools/shutdowner.js";import{envConfig as r}from"../../server/config/env-config.js";import{PACKAGE_NAME as n}from"../../config/product-gates.js";class d extends c.Telemetry{#e=new Map;constructor(){super(),this.updateCloudEventData(()=>({organizationId:r.ORGANIZATION_ID||"",organizationSlug:r.ORGANIZATION_SLUG||"",projectId:r.PROJECT_ID||"",projectSlug:r.PROJECT_SLUG||"",origin:"realmCli",actor:{id:`ann_${l()}`,object:"user",uri:""},source:"urn:redocly:realm:cli",env:r.REDOCLY_ENV}))}initialize(e,t,o){const a=t!==void 0?!(t&&i):!i;this.init({otel:{serviceName:"realm-cli",serviceVersion:`${n}@${e}`,collectorTraceUrl:r.OTEL_TRACES_URL||"https://otel.cloud.redocly.com/v1/traces",isProd:r.isProductionEnv,version:"1.0",tracerName:"cli-telemetry"},disabled:a,verbose:o}),s.registerShutdownCallback(this.#r.bind(this))}addTraceStepCallbacks(e,{error:t,end:o}){this.#e.set(e,{error:t,end:o})}removeTraceStepCallbacks(e){this.#e.delete(e)}async#r(e){for(const[,{error:t,end:o}]of this.#e)e&&t(e),o();this.#e.clear(),await this.forceFlush(),await this.shutdown()}}const m=new d,A=m.tracer;export{m as telemetry,A as telemetryTracer};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import n,{useEffect as D,useState as a}from"react";import C from"styled-components";import{Button as I}from"@redocly/theme/components/Button/Button";import{Admonition as N}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{withPathPrefix as y,getBaseDataAttributes as k}from"@redocly/theme/core/utils";import{usePageData as q}from"../hooks/usePageData";import{usePreloadHistory as w}from"../usePreloadHistory";import{telemetry as b}from"../telemetry/index.js";import{useLoginUrl as x}from"../hooks";const U=e=>{const{apiId:s,status:t,setStatus:i}=e,c=w(),{userData:r}=q("userData")||{},u=x(),[l,p]=a(),[h,A]=a(),[m,g]=a(!0);D(()=>{r?.isAuthenticated&&fetch(`/api/api-keys/api-products/${s}/access`).then(d=>d.json().then(o=>{d.ok?(i(o.status),A(o.appId)):p(o.message)}).catch(()=>p("Something went wrong")).finally(()=>g(!1)))},[r?.isAuthenticated,s,i]);const E=()=>{!r?.isAuthenticated&&u?window.location.href=y(u):t==="ACCEPTED"?c.push("/apps/"+h||""):t==="NONE"&&c.push("/apps/?createApp&apiId="+s),b.sendRequestApiAccessClickedMessage([k("requestApiAccess","button")])},P=(t==="PENDING"||m||l!=null)&&r?.isAuthenticated;return n.createElement(n.Fragment,null,n.createElement(I,{disabled:P,onClick:E,fullWidth:!0,size:"small"},R(t,m,l,!!r?.isAuthenticated)))},R=(e,s,t,i)=>{if(!i)return"Request access";if(s)return"Loading...";if(t)return"Failed to check access";switch(e){case"NONE":return"Request access";case"ACCEPTED":return"Credentials";case"PENDING":return"Pending access..."}return null},Y=e=>e==="ACCEPTED"?n.createElement(f,{type:"success",name:"You have access to this API"}):e==="PENDING"?n.createElement(f,{type:"info",name:"You have requested access to this API"}):null,f=C(N)`
|
|
2
2
|
margin-top: 0px;
|
|
3
3
|
margin-bottom: var(--spacing-sm);
|
|
4
|
-
`;export{
|
|
4
|
+
`;export{U as RequestAccessButton,Y as renderAdmonition};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import e,{useEffect as y,useState as
|
|
1
|
+
import e,{useEffect as y,useState as b}from"react";import h from"styled-components";import{Menu as w}from"@redocly/theme/components/Menu/Menu";import{SidebarActions as A}from"@redocly/theme/components/SidebarActions/SidebarActions";import{Sidebar as B}from"@redocly/theme/components/Sidebar/Sidebar";import{VersionPicker as I}from"@redocly/theme/components/VersionPicker/VersionPicker";import{Button as L}from"@redocly/theme/components/Button/Button";import{CatalogEntityHistoryButton as P}from"@redocly/theme/components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistoryButton";import{ArrowLeftIcon as D}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{withPathPrefix as x,getBaseDataAttributes as C,generateBeforeAfterContext as T}from"@redocly/theme/core/utils";import{telemetry as v}from"../telemetry/index.js";import{usePreloadHistory as M}from"../usePreloadHistory";import{useTranslate as V}from"../hooks";import{usePageSharedData as H,usePageVersions as R}from"../../providers/page-data/hooks";import{useSidebarItems as q}from"./useSidebarItems";import{renderAdmonition as J,RequestAccessButton as j}from"./RequestAccessButton";function re({layoutControls:s}){const{versions:l=[]}=R()||{},m=l.find(t=>t?.active),{translate:o}=V(),{currentItems:c,backLink:n,versionLabel:r,pushDrilldownState:g,popDrilldownState:k}=q(m),[d,E]=b(),{collapsedSidebar:i}=s,u=H("openAPIDocsStore")?.definition.info?.["x-metadata"]?.apiId,S=M(),[f,a]=b(void 0);return y(()=>{const t=setTimeout(()=>a(void 0),350);return()=>clearTimeout(t)},[f]),c.length?e.createElement(e.Fragment,null,e.createElement(B,{collapsed:i,menuItemsAnimation:f,versions:e.createElement(I,{versions:l,onChange:t=>{v.sendVersionPickerChangedMessage([...T("versionPicker","dropdown",{version:m?.version||""},{version:t?.version||""})]);const p=location.hash?t?.link+location.hash:t?.link;p&&S.push(x(p))}}),menu:e.createElement(w,{items:c,onDrilldownOpen:t=>{a("slideInRight"),g(t)}}),footer:e.createElement("div",{style:{width:"100%"}},!i&&J(d),e.createElement(A,{...s,requestAccessButton:u?e.createElement(j,{apiId:u,status:d,setStatus:E}):null})),header:(n||r)&&e.createElement(z,null,n&&e.createElement(F,{icon:e.createElement(D,null),iconPosition:"left",variant:"ghost",size:"medium","data-component-name":"Sidebar/BackButton",to:n.slug,onClick:()=>{a("slideInLeft"),k(),v.sendSidebarDrilldownBackClickedMessage([C("sidebarDrilldownBack","button")])}},i?"":n.label?e.createElement("div",{"data-translation-key":"sidebar.menu.backToLabel"},o("sidebar.menu.backToLabel",{value:o(n.labelTranslationKey,n.label)})):e.createElement("div",{"data-translation-key":"sidebar.menu.backLabel"},o("sidebar.menu.backLabel"))),r&&!i&&e.createElement(P,{version:r}))})):null}const z=h.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
gap: var(--menu-header-container-gap);
|
|
5
5
|
width: 100%;
|
|
6
|
-
`,
|
|
6
|
+
`,F=h(L)`
|
|
7
7
|
padding: var(--menu-item-padding-vertical) 0;
|
|
8
8
|
height: calc(var(--line-height-base) + var(--menu-item-padding-vertical) * 2);
|
|
9
9
|
justify-content: flex-start;
|
|
10
10
|
width: 100%;
|
|
11
|
-
`;export{
|
|
11
|
+
`;export{re as Sidebar};
|
|
@@ -16,8 +16,11 @@ import type { ResolvedNavItem, Version } from '@redocly/config';
|
|
|
16
16
|
* /@latest
|
|
17
17
|
*
|
|
18
18
|
* So we foolow these rules:
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
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
|
|
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*as h from"react";import{useLocation as
|
|
1
|
+
import*as h from"react";import{useLocation as $,useNavigate as R}from"react-router-dom";import{usePageData as V,usePageSharedData as K}from"../../hooks";import{withoutHash as D,getBaseDataAttributes as w}from"@redocly/theme/core/utils";import{telemetry as A}from"../../telemetry/index.js";import{toStringIfDefined as v}from"../../../../utils/string/to-string-if-defined.js";import{findDeepFirst as _}from"../../../../utils/tree/find-deep-first.js";function re(e,o){const r=$(),i=R(),a=V(),t=G(r),s=K("catalog"),[n,p]=h.useState(()=>(e.filters??[]).map(l=>{if(l.type==="date-range"){const[c,u]=t.get(l.property)?.split("--")??[];return!c&&!u?{}:{from:c,to:u}}return new Set(t.getAll(l.property))})),[d,g]=h.useState(()=>t.get("filter")||"");o||(o=[...s]);const S=h.useMemo(()=>L(o??[],e.filters),[o,e.filters]),I=a?.props?.customFields,C=h.useMemo(()=>H(o??[],e,I||{}),[o,e,I]),b=h.useCallback((l,c)=>{p(u=>{const F=u[l]?u[l]:new Set;return F instanceof Set?(F.has(c)?u.forEach((f,m)=>{f instanceof Set&&f.has(c)&&f.delete(c)}):F.add(c),[...u.slice(0,l),F,...u.slice(l+1)]):u}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"toggle"}]),window.scrollTo(0,0)},[]),P=h.useCallback((l,c)=>{p(u=>{const F=u[l]instanceof Set?new Set(c?[c]:[]):{from:c?.from,to:c?.to},f=S[l];return u.map((m,y)=>y===l?F:S[y].parentFilter===f.property?new Set:m)}),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[S]),N=()=>{const l=new URLSearchParams(Array.from(t.entries()));d?t.set("filter",d):t.delete("filter"),n.forEach((u,F)=>{const f=e.filters?.[F];if(!f)return;const m=Q(u);Z(f.property,m,l)});const c=l.toString();c!==r.search.substring(1)&&i({search:c})};h.useEffect(()=>{N()},[e.filters,n,d,i,r]);const k=h.useMemo(()=>J(e.filters),[e.filters]);return h.useMemo(()=>{const l=S.map((f,m)=>({...f,toggleOption:y=>b(m,y),selectOption:y=>P(m,y),selectedOptions:n[m]??new Set,isFilterUsed:(n[m]?.size??0)>0||!!n[m]?.from})),c=T(C,l,d),u=l.map((f,m)=>{const y=l.findIndex(O=>O.property===f.parentFilter),j=f.parentFilter?(n[y]?.size??0)>0||!!n[y].from:!0,z=l.filter((O,M)=>M!==m&&!k[m]?.has(M)),B=T(C,z,d),U=L(B.map(O=>({metadata:O})),e.filters);return{...f,parentUsed:j,filteredOptions:U[m].options}});return{groups:e.groupByFirstFilter&&u.length>0?q(u,c):[{title:"APIs",items:c}],filters:u,setFilterTerm:f=>{g(f),A.sendCatalogFilterChangedMessage([{...w("catalogFilter","field"),type:"term"}])},filterTerm:d}},[S,C,d,e.groupByFirstFilter,e.filters,n,b,P,k])}function q(e,o){return e[0].options.map(r=>({title:r.value,items:o.filter(i=>{const a=i?.[e[0].property]||e[0].missingCategoryName||"Others";return Array.isArray(a)?a.includes(r.value):a===r.value})})).filter(r=>r.items.length>0)}function G(e){return h.useMemo(()=>new URLSearchParams(e.search),[e.search])}function H(e,o,r){let i;if(o.separateVersions)i=e.map(a);else{const t={};for(const s of e){if(!s.versionFolderId){const p=s.link||s.fsPath||JSON.stringify(s);t[p]=[s];continue}let n=s.versionFolderId;if(t[n]?.find(p=>p.version===s.version)){const p=s.fsPath?.replace(/\/@.*?\//,"/@version/")??"";n=`${n}-${p}`}t[n]||(t[n]=[]),t[n].push(s)}i=Object.values(t).map(s=>{s.sort((d,g)=>(d.version||"").localeCompare(g.version||""));const n=s.map(a);return{...a(s.find(d=>d.isDefault)||s[s.length-1]),versions:n}})}return i.sort((t,s)=>t.title.localeCompare(s.title)),i;function a(t){const s=t.metadata||{},n=r[t.fsPath||""]||{},p=t.link||_(t.items||[],g=>"link"in g&&!!g.link)?.link,d=t.sidebar?.[0];return{...s,...n,publishedAt:s.publishedAt||s.createdAt,title:v(s?.title)||t.label||"Untitled",description:v(s?.description),link:D(p)??"#",docsLink:D(d?.link),image:v(s?.image),version:t.version,versionFolderId:t.versionFolderId}}}function J(e){if(!e)return[];const o=[];for(let r=0;r<e.length;r++){const i=e[r];if(i.parentFilter){const a=e.findIndex(t=>t.property===i.parentFilter);o[a]=o[a]||new Set,o[a].add(r)}}return o}function L(e,o){return(o??[]).map(r=>{const i=r.options?Object.fromEntries(r.options.map(n=>[n,0])):void 0,a=i??{};let t=0;for(const n of e){const p=Array.isArray(n.metadata?.[r.property])?n.metadata?.[r.property]:[n.metadata?.[r.property]];for(const d of p){const g=E(String(d),r.valuesMapping);if(i){g in i&&(a[g]=a[g]+1);continue}d?a[g]=(a[g]??0)+1:t++}}const s=Object.entries(a).map(([n,p])=>({value:n,count:p}));return i||s.sort((n,p)=>n.value.localeCompare(p.value)),t&&s.push({value:r.missingCategoryNameTranslationKey||r.missingCategoryName||"Others",count:t}),{...r,options:s}})}function T(e,o,r){const i=e.filter(a=>o.every(t=>{if(t.selectedOptions&&!(t.selectedOptions instanceof Set))try{const n=new Date(a[t.property]).toISOString().split("T")[0];return n>=(t.selectedOptions.from??"")&&n<=(t.selectedOptions.to??"Z")}catch{return!0}if(t.selectedOptions.size===0)return!0;const s=E(a?.[t.property]||t.missingCategoryName||"Others",t.valuesMapping);return Array.isArray(s)?s.some(n=>t.selectedOptions.has(n)):t.selectedOptions.has(s)}));return r?(r=r.toLowerCase(),i.filter(a=>Object.values(a).some(t=>Array.isArray(t)?t.some(s=>String(s).toLowerCase().includes(r)):String(t).toLowerCase().includes(r)))):i}function E(e,o){return o?Array.isArray(e)?e.map(r=>o[String(r)]||r):o[String(e)]||e:e}function Z(e,o,r){r.delete(e),o.forEach(i=>{r.append(e,i)})}function Q(e){const o=new Set;return e instanceof Set?e.forEach(r=>o.add(r)):(e.from||e.to)&&o.add(`${e.from||""}--${e.to||""}`),o}export{Z as fillSearchParams,Q as getFilterValues,re as useCatalogClassic};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback as h,useEffect as w,useMemo as y,useState as P}from"react";import{useSearchParams as Q}from"react-router-dom";import{telemetry as b}from"../../telemetry/index.js";import{parseFilterQuery as g,formatFilterQuery as C,collectFilterOptions as U}from"../../../utils";function O(r){return r instanceof Set?r.size>0:!!(r?.from||r?.to)}function
|
|
1
|
+
import{useCallback as h,useEffect as w,useMemo as y,useState as P}from"react";import{useSearchParams as Q}from"react-router-dom";import{telemetry as b}from"../../telemetry/index.js";import{parseFilterQuery as g,formatFilterQuery as C,collectFilterOptions as U}from"../../../utils";import{getBaseDataAttributes as I}from"@redocly/theme/core/utils";function O(r){return r instanceof Set?r.size>0:!!(r?.from||r?.to)}function x(r,m){const[u,d]=Q(),o=u.get("filter")||"",[i,f]=P(()=>g(o,r?.filters||[])),p=y(()=>U(r?.filters,m),[r?.filters,m]);w(()=>{const t=r?.filters||[];if(t.length>0&&i.length!==t.length){const e=g(o,t);f(e)}},[r?.filters,i.length,o]);const F=h((t,e)=>{f(l=>l.map((s,c)=>{if(c!==t||!(s instanceof Set))return s;const n=new Set(s);return n.has(e)?n.delete(e):n.add(e),n})),window.scrollTo(0,0)},[]),S=h((t,e)=>{f(l=>l.map((a,s)=>s!==t?a:a instanceof Set?e&&typeof e=="string"?new Set([e]):new Set:{from:typeof e=="object"?e?.from:void 0,to:typeof e=="object"?e?.to:void 0})),b.sendCatalogFilterChangedMessage([{...I("catalogFilter","field"),type:"select"}]),window.scrollTo(0,0)},[]);return w(()=>{const t=new URLSearchParams(u),e=C(i,r?.filters||[]);e?t.set("filter",e):t.delete("filter"),d(t,{replace:!0})},[r?.filters,i,u,d]),y(()=>{const t=p.map((l,a)=>{const s=i[a],c=O(s);return{...l,toggleOption:n=>F(a,n),selectOption:n=>S(a,n),selectedOptions:s??new Set,isFilterUsed:c}});return{filters:t.map(l=>{const a=t.findIndex(n=>n.property===l.parentFilter),s=i[a],c=l.parentFilter?O(s):!0;return{...l,parentUsed:c}}),filterQuery:o}},[p,i,F,S,o])}export{x as useCatalogFilter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLocation as f,useNavigate as d,useNavigationType as l}from"react-router-dom";import{useEffect as v,useState as P}from"react";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{normalizeRouteSlug as E}from"../../../utils/path/normalize-route-slug";import{
|
|
1
|
+
import{useLocation as f,useNavigate as d,useNavigationType as l}from"react-router-dom";import{useEffect as v,useState as P}from"react";import{useThemeConfig as w}from"@redocly/theme/core/hooks";import{normalizeRouteSlug as E}from"../../../utils/path/normalize-route-slug";import{getBaseDataAttributes as M}from"@redocly/theme/core/utils";import{onRouteChange as y}from"../../runtime/generated/browser-plugins.js";import{resolveRouteBySlug as b}from"../utils/resolveRouteBySlug.js";import{usePageData as C}from"./usePageData.js";import{usePostMessage as R}from"../../providers/post-message/use-post-message.js";import{isInIframe as D}from"../../utils/utils.js";import{waitForContentScripts as I}from"../../ScriptLoader.js";import{telemetry as N}from"../telemetry/index.js";const _=()=>{const e=f(),r=d(),a=l(),n=C(),[t,i]=P(),m=w(),{sendMessage:h}=R();v(()=>{if(e?.pathname.endsWith("/")&&e?.pathname!=="/"){r({pathname:E(e.pathname),search:e.search,hash:e.hash},{replace:!0,state:e.state});return}I().then(()=>{if(e.pathname!==t?.pathname||e.search!==t.search){y({location:e,prevLocation:t},m);const o=`${window.origin}${e.pathname+e.search+e.hash}`,s=t?`${window.origin}${t.pathname+t.search+t.hash}`:void 0;N.sendPageViewedMessage([{...M(o,"page",o),referrer:s||document.referrer||void 0}])}});const p=!!t;i(e);const{pathname:c,hash:g,state:u}=e;(process.env.NODE_ENV==="development"||D())&&p&&b(c+g,n?.templateId).then(o=>{const s=a==="POP"?"browser":u?.origin;s&&h({type:"route-updated",origin:s,...o})}).catch(o=>console.log("Resolve route by slug failed with error: ",o.message))},[e,a])};export{_ as useRouteChangeTracker};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"react";import{StoreProvider as v,RequestSamples as y,normalizeOptions as E}from"@redocly/openapi-docs";import{ErrorMessage as O,OpenApiComponentWrap as M}from"../styled.elements";import{useStore as b}from"../../hooks/use-store";import{getOperation as C}from"
|
|
1
|
+
import*as o from"react";import{StoreProvider as v,RequestSamples as y,normalizeOptions as E}from"@redocly/openapi-docs";import{ErrorMessage as O,OpenApiComponentWrap as M}from"../styled.elements";import{useStore as b}from"../../hooks/use-store";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as k}from"../../../../templates/openapi-docs/mock-server-config.js";function P(u){const{descriptionFile:d,operationId:a,pointer:m,exampleKey:s,mimeType:l,language:r,requestBody:f,parameters:g,environment:t,environments:n}=u,{store:e,error:S,baseSlug:c}=b(d),i=o.useMemo(()=>({...e?.options,...(r||null)&&{codeSamples:{languages:[{lang:r??""}]},mockServer:k(e?.options?.mockServer,c||"")}}),[r,e?.options,c]),p=o.useMemo(()=>{if(e)return C(e,{operationId:a,pointer:m},E(i),{exampleKey:s,mimeType:l,environments:n,environment:t})},[s,i,l,a,m,e,n,t]);return e?p?o.createElement(M,{"data-testid":"openapi-code-sample"},o.createElement(v,{options:i,definition:e.definition,withState:{environments:n,environment:t,operation:{pointer:p.pointer,state:{requestValues:{body:f,...g}}}}},o.createElement(y,{operation:p,disableFooter:!0}))):o.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation by operationId or pointer"):o.createElement(O,null,S)}export{P as OpenApiCodeSample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{StoreProvider as S,ResponseSamples as v,normalizeOptions as g}from"@redocly/openapi-docs";import{ErrorMessage as b,OpenApiComponentWrap as E}from"../styled.elements";import{useStore as R}from"../../hooks/use-store";import{getOperation as C}from"
|
|
1
|
+
import*as e from"react";import{StoreProvider as S,ResponseSamples as v,normalizeOptions as g}from"@redocly/openapi-docs";import{ErrorMessage as b,OpenApiComponentWrap as E}from"../styled.elements";import{useStore as R}from"../../hooks/use-store";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as O}from"../../../../templates/openapi-docs/mock-server-config.js";function x(a){const{descriptionFile:m,operationId:i,pointer:p,exampleKey:t}=a,{store:o,error:c,baseSlug:s}=R(m),[l,f]=e.useState(),r=e.useMemo(()=>({...o?.options,mockServer:O(o?.options?.mockServer,s||"")}),[o?.options,s]),n=e.useMemo(()=>{if(o)return C(o,{operationId:i,pointer:p},g(r),{exampleKey:t})},[t,r,i,p,o]),d=e.useCallback(u=>{f(u)},[]);return o?n?e.createElement(E,{"data-testid":"openapi-response-sample"},e.createElement(S,{options:r,definition:o.definition,withState:{operation:{pointer:n.pointer,state:{activeExampleName:t}}}},e.createElement(v,{operation:n,activeResponseTab:l,onTabChange:d}))):e.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation by operationId or pointer"):e.createElement(b,null,c)}export{x as OpenApiResponseSample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o from"react";import{EmbeddedReplay as M,StoreProvider as b}from"@redocly/openapi-docs";import{useLocation as A}from"react-router-dom";import{Admonition as I}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as P,OpenApiComponentWrap as x}from"../styled.elements.js";import{useStore as R}from"../../hooks/use-store.js";import{getOperation as C}from"
|
|
1
|
+
import o from"react";import{EmbeddedReplay as M,StoreProvider as b}from"@redocly/openapi-docs";import{useLocation as A}from"react-router-dom";import{Admonition as I}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{ErrorMessage as P,OpenApiComponentWrap as x}from"../styled.elements.js";import{useStore as R}from"../../hooks/use-store.js";import{getOperation as C}from"../../../../../markdoc/helpers/get-operation/index.js";import{getMockServerDocsConfig as y}from"../../../../templates/openapi-docs/mock-server-config.js";const L=S=>{const{descriptionFile:i,operationId:p,pointer:m,exampleKey:l,mimeType:u,requestBody:a,parameters:v,options:s,environment:r,environments:c,hideOtherSecuritySchemes:O}=S,h=A(),{store:e,error:g,baseSlug:t}=R(i),d=o.useMemo(()=>({...e?.options,...s}),[s,e?.options]),f=o.useMemo(()=>{const{mockServer:E,...k}=d;return{...k,mockServer:y(E,t??"")}},[d,t]),n=o.useMemo(()=>{if(e)return C(e,{operationId:p,pointer:m},f,{exampleKey:l,mimeType:u,environments:c,environment:r,requestBody:a})},[l,f,u,p,m,e,c,r,a]);return e?n?o.createElement(x,{"data-testid":"replay-openapi"},o.createElement(b,{key:`${h.pathname}-${i}-${p||m}`,options:{...s,disableRouter:!0,routingBasePath:t,mockServer:y(d.mockServer,t)},definition:e.definition,withState:{environments:c,allowedEnvironments:r?[r]:void 0,operation:{pointer:n.pointer,state:{requestValues:{body:a,...v}}}}},o.createElement(M,{activeOperationId:n.operationId||"",fullOpenApi:e.definition,corsProxyUrl:e.options.corsProxyUrl,pointer:n.pointer,hideOtherSecuritySchemes:O}))):o.createElement(I,{type:"danger"},"Cannot find OpenAPI operation by operationId or pointer in ",i):o.createElement(P,null,g)};export{L as ReplayOpenApi};
|
|
@@ -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
|
|
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 v}from"@redocly/theme/components/Typography/H3";import{H4 as S}from"@redocly/theme/components/Typography/H4";import{Admonition as w}from"@redocly/theme/components/Admonition/Admonition";import{getBaseDataAttributes as P,getPathnameForLocale as E,withPathPrefix as L}from"@redocly/theme/core/utils";import{ServerRoutes as b}from"../../../../constants/api";import{telemetry as k}from"../../telemetry/index.js";import{buildLoginUrl as O}from"../../../../utils/auth/build-login-url";import{usePageProps as T}from"../../../providers/page-data/hooks";import{Wrapper as C,HeadingSection as R}from"./styled";import{DevLoginForm as A}from"./DevLoginForm";import{useL10nConfig as F}from"../../hooks";async function x(r){try{const{status:o}=await fetch(L(b.AUTHORIZATION),{method:"POST",body:JSON.stringify(r)});return o}catch(o){console.error(o)}}function K(){const{defaultLocale:r,locales:o,currentLocale:c}=F(),l=h(),[a,d]=s({values:{teams:[],email:"example@example.com"}}),[i,u]=s();g(()=>{const e=new URLSearchParams(window.location.search);u(e.get("redirectTo")||void 0)},[]);const n=T(),m=n?.authIdps,p=(n.rbac?.teams||[]).filter(e=>e!=="*"),f=async()=>{await x(a.values)===200&&(l(i||"/"),window.location.reload())};return t.createElement(C,null,t.createElement(R,null,t.createElement(v,{"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(A,{teams:p,formState:a,setFormState:d,onSubmit:f}),Object.keys(m||{}).length>0&&t.createElement(S,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:O(e.idpId,E("",r,c,o),i),onClick:()=>k.sendLoginProviderClickedMessage([{...P("loginProvider","button"),provider:e.type}])},e.title||e.type)))))}export{K as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback as b,useEffect as
|
|
1
|
+
import{useCallback as b,useEffect as A,useState as E,useRef as w}from"react";import{SEARCH_DEBOUNCE_TIME_MS as Q}from"@redocly/theme/core/constants";import{getBaseDataAttributes as q,withPathPrefix as O}from"@redocly/theme/core/utils";import{ServerRoutes as D}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 U}from"../../../utils/time/debounce.js";import{useSearchSession as B}from"@redocly/theme/core/contexts";import{useGlobalData as J,useI18nConfig as H}from"../hooks";import{usePageVersions as K}from"../../providers/page-data/hooks";import{useFacets as $}from"./useFacets";import{telemetry as z}from"../telemetry/index.js";const W=(o,c,r,a,s,u,f,n,l)=>{const{searchSessionId:y}=B(),{currentLocale:F}=H(),m=w(""),d=w(null),p=w(async(e,i)=>{try{u(null);const t=await fetch(O(D.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&&z.sendSearchQueryMessage([{...q("searchQuery","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(U(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:T(i,S,f),locale:t})};await p.current(e,I)},Q),[f?.version,f?.folderId,n]);return A(()=>{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])}},X=(o,c,r,a,s,u,f,n,l)=>{const{currentLocale:y}=H();A(()=>{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]}])),T(P,e,i)})(),loadMore:h,locale:R})},j=await(await fetch(O(D.SEARCH),I)).json(),k=m[t]||[],x=j.documents[t],G={...m,[t]:[...k,...x]};u(G),f(!1)}},[]);return{}};function le(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}=$(y),{versions:i=[]}=K()||{},t=i.find(I=>I?.active),{retrySearch:S}=W(a,u,l,F,R,C,t,o,c);return X(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 T(o,c,r){return[...o,...c?[{field:L,values:[c]}]:[],...r?[{field:M,values:[...r.default?["default"]:[r.folderId,r.version]]}]:[]]}export{le as useSearch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{ThemeDataContext as
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getOperation as E,getServerEnvName as l,normalizeOptions as x,OpenAPIParser as h,getTagOrGroup as q}from"@redocly/openapi-docs";import{getOperationInfoById as v}from"./get-operation-info-by-id.js";import{getOperationInfoByPointer as y}from"./get-operation-info-by-pointer.js";function M(s,{operationId:i,pointer:f},m,{exampleKey:r,mimeType:a,environments:p,environment:d,requestBody:g}){let o;if(i?o=v(s.definition,i):f&&(o=y(s.definition,f)),!o)return;const O=new h(s.definition,void 0,x(s.options)),u=o.tags?.[0],B=u?q("group",{name:u},void 0):void 0,n=E(O,o,B,m,"");if(a&&n.requestBody?.content?.mediaTypes&&(n.requestBody.content.mediaTypes=n.requestBody?.content?.mediaTypes.filter(e=>e.name===a)),r&&(n.requestBody?.content?.mediaTypes.forEach(e=>{if(!e.examples)return;const t=e.examples[r];e.examples=t?{[r]:t}:{}}),n.responses?.forEach(e=>{e.content?.mediaTypes?.forEach(t=>{if(!t.examples)return;const c=t.examples[r];t.examples=c?{[r]:c}:{}})})),g&&n.requestBody?.content?.mediaTypes.forEach(e=>{e.examples={}}),p&&(n.servers=n.servers.map(e=>{const t=p?.[l(e)];return t?{...e,url:t.server||e.url}:e})),d){const e=n.servers.filter(t=>d===l(t));n.servers=e.length?e:n.servers}return n}export{M as getOperation};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./get-operation-info-by-id.js";export*from"./get-operation-info-by-pointer.js";export*from"./get-operation.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DefinitionPath as
|
|
1
|
+
import{DefinitionPath as a}from"../attributes/index.js";import{getNodeAttribute as o}from"../helpers/get-node-attribute.js";import{getResolvedSampleCodeBlock as p}from"../helpers/get-resolved-sample-code-block.js";const u={schema:{attributes:{descriptionFile:{type:a,required:!0},pointer:{type:String,required:!1},operationId:{type:String,required:!1},exampleKey:{type:String,required:!1},mimeType:{type:String,required:!1},language:{type:String,required:!1},parameters:{type:Object,default:{},required:!1},requestBody:{type:Object,required:!1},environments:{type:Object,default:{},required:!1},environment:{type:String,required:!1},codeSamplesResolved:{type:Array,required:!1,resolver:"openapiCodeSamples"}},validate(r){const e=[];return r.attributes.pointer&&r.attributes.operationId&&e.push({id:"pointer-and-operationId-attributes-are-mutually-exclusive",level:"error",message:'The "pointer" and "operationId" attributes are mutually exclusive, you can only use one.'}),!r.attributes.pointer&&!r.attributes.operationId&&e.push({id:"pointer-or-operationId-attribute-required",level:"error",message:'This tag requires the "pointer" or "operationId" attribute to render correctly.'}),e},render:"OpenApiCodeSample",selfClosing:!0,dynamicComponentLib:"openapi",renderForLlms(r){const e=o(r,"codeSamplesResolved");if(!Array.isArray(e)||e.length===0)return"";const t=e.find(({lang:i})=>i==="shell")??e[0];return p(t)}},tagName:"openapi-code-sample"};export{u as openApiCodeSample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DefinitionPath as
|
|
1
|
+
import{DefinitionPath as t}from"../attributes/index.js";import{getNodeAttribute as i}from"../helpers/get-node-attribute.js";import{getResolvedSampleCodeBlock as o}from"../helpers/get-resolved-sample-code-block.js";const n={schema:{attributes:{descriptionFile:{type:t,required:!0},pointer:{type:String,required:!1},operationId:{type:String,required:!1},exampleKey:{type:String,required:!1},responseSamplesResolved:{type:Array,required:!1,resolver:"openapiResponseSamples"}},validate(r){const e=[];return r.attributes.pointer&&r.attributes.operationId&&e.push({id:"pointer-and-operationId-attributes-are-mutually-exclusive",level:"error",message:'The "pointer" and "operationId" attributes are mutually exclusive, you can only use one.'}),!r.attributes.pointer&&!r.attributes.operationId&&e.push({id:"pointer-or-operationId-attribute-required",level:"error",message:'This tag requires the "pointer" or "operationId" attribute to render correctly.'}),e},render:"OpenApiResponseSample",selfClosing:!0,dynamicComponentLib:"openapi",renderForLlms(r){const e=i(r,"responseSamplesResolved");return!Array.isArray(e)||e.length===0?"":e.map(o).join("")}},tagName:"openapi-response-sample"};export{n as openApiResponseSample};
|
|
@@ -52,6 +52,7 @@ declare function loadEnvConfig(): {
|
|
|
52
52
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
|
|
53
53
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
54
54
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
55
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
|
|
55
56
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
56
57
|
SEARCH_DEV_DEBUG: boolean;
|
|
57
58
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -130,6 +131,7 @@ export declare const envConfig: {
|
|
|
130
131
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
|
|
131
132
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
132
133
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
134
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
|
|
133
135
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
134
136
|
SEARCH_DEV_DEBUG: boolean;
|
|
135
137
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -56,6 +56,7 @@ export declare const envSchema: z.ZodEffects<z.ZodObject<{
|
|
|
56
56
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "false" | "true" | undefined>;
|
|
57
57
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL: z.ZodOptional<z.ZodString>;
|
|
58
58
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT: z.ZodOptional<z.ZodString>;
|
|
59
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "false" | "true" | undefined>;
|
|
59
60
|
} & {
|
|
60
61
|
SEARCH_DEV_REINIT: z.ZodOptional<z.ZodString>;
|
|
61
62
|
SEARCH_DEV_DEBUG: z.ZodEffects<z.ZodDefault<z.ZodEnum<["true", "false"]>>, boolean, "false" | "true" | undefined>;
|
|
@@ -131,6 +132,7 @@ export declare const envSchema: z.ZodEffects<z.ZodObject<{
|
|
|
131
132
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
|
|
132
133
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
133
134
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
135
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
|
|
134
136
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
135
137
|
SEARCH_DEV_DEBUG: boolean;
|
|
136
138
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -199,6 +201,7 @@ export declare const envSchema: z.ZodEffects<z.ZodObject<{
|
|
|
199
201
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: "false" | "true" | undefined;
|
|
200
202
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
201
203
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
204
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: "false" | "true" | undefined;
|
|
202
205
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
203
206
|
SEARCH_DEV_DEBUG?: "false" | "true" | undefined;
|
|
204
207
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -267,6 +270,7 @@ export declare const envSchema: z.ZodEffects<z.ZodObject<{
|
|
|
267
270
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
|
|
268
271
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
269
272
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
273
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
|
|
270
274
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
271
275
|
SEARCH_DEV_DEBUG: boolean;
|
|
272
276
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -335,6 +339,7 @@ export declare const envSchema: z.ZodEffects<z.ZodObject<{
|
|
|
335
339
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: "false" | "true" | undefined;
|
|
336
340
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
337
341
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
342
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: "false" | "true" | undefined;
|
|
338
343
|
SEARCH_DEV_REINIT?: string | undefined;
|
|
339
344
|
SEARCH_DEV_DEBUG?: "false" | "true" | undefined;
|
|
340
345
|
TYPESENSE_API_URL?: string | undefined;
|
|
@@ -15,6 +15,8 @@ export declare const featureFlagsSchema: z.ZodObject<{
|
|
|
15
15
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL: z.ZodOptional<z.ZodString>;
|
|
16
16
|
/** (Optional) API endpoint for the agent feedback endpoint;**/
|
|
17
17
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT: z.ZodOptional<z.ZodString>;
|
|
18
|
+
/** Experimental: serve the Docs MCP server in codemode (a single `execute` tool). */
|
|
19
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "false" | "true" | undefined>;
|
|
18
20
|
}, "strip", z.ZodTypeAny, {
|
|
19
21
|
NEW_CATALOG_ENABLED?: boolean | undefined;
|
|
20
22
|
NEW_SCORECARDS_ENABLED?: boolean | undefined;
|
|
@@ -25,6 +27,7 @@ export declare const featureFlagsSchema: z.ZodObject<{
|
|
|
25
27
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: boolean | undefined;
|
|
26
28
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
27
29
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
30
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: boolean | undefined;
|
|
28
31
|
}, {
|
|
29
32
|
NEW_CATALOG_ENABLED?: "false" | "true" | undefined;
|
|
30
33
|
NEW_SCORECARDS_ENABLED?: "false" | "true" | undefined;
|
|
@@ -35,5 +38,6 @@ export declare const featureFlagsSchema: z.ZodObject<{
|
|
|
35
38
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED?: "false" | "true" | undefined;
|
|
36
39
|
REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL?: string | undefined;
|
|
37
40
|
REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT?: string | undefined;
|
|
41
|
+
REDOCLY_EXP_MCP_CODE_MODE_ENABLED?: "false" | "true" | undefined;
|
|
38
42
|
}>;
|
|
39
43
|
//# sourceMappingURL=feature-flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as
|
|
1
|
+
import{z as _}from"zod";import{envBooleanStringOptional as E}from"../../utils/envs/env-boolean-string.js";const o=_.object({NEW_CATALOG_ENABLED:E(),NEW_SCORECARDS_ENABLED:E(),ENABLE_COMMENTS:_.string().optional(),REDOCLY_EXP_DISABLE_MD_VALIDATION:E(),ENABLE_SOURCE_MAPS:E(),PLAN_GATES:_.string().optional(),REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_ENABLED:E(),REDOCLY_EXP_LLMSTXT_AGENT_FEEDBACK_URL:_.string().optional(),REDOCLY_EXP_LLMSTXT_AGENT_ENDPOINT:_.string().optional(),REDOCLY_EXP_MCP_CODE_MODE_ENABLED:E()});export{o as featureFlagsSchema};
|
|
@@ -49,4 +49,6 @@ export declare const OTEL_TRACES_DEV_URL = "http://localhost:4318/v1/traces";
|
|
|
49
49
|
export declare const OTEL_EXCLUDED_ROUTES: "/_health"[];
|
|
50
50
|
export declare const SERVER_EDITOR_APP_URL: string;
|
|
51
51
|
export declare const ALLOWED_CORS_ORIGINS: string[];
|
|
52
|
+
export declare const MARKDOC_PARTIALS_DATA_KEY = "markdown/partials";
|
|
53
|
+
export declare const MARKDOC_PARTIALS_DEPS_KEY = "markdown/partials-deps";
|
|
52
54
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ServerRoutes as
|
|
1
|
+
import{ServerRoutes as I}from"../../constants/api.js";import{USER_THEME_ALIAS as L}from"../../constants/common.js";import{envConfig as _}from"../config/env-config.js";const x="runtime",N="/assets",U="/_spec",P="/_bundle",a="static",l="redocly:::linkOriginal",M="@",i="default",m=new RegExp("((?!@i18n\\/|@l10n\\/)\\/?@.*?(?=\\/))","g"),H="@redocly/theme/plugin.js",F="styles.css",G=["@theme/plugin.js","@theme/plugin.cjs","@theme/plugin.mjs"],u=_.JWT_SECRET_KEY||"test_secret_key",c="@i18n",p="@l10n",Y=[L,c,p],d="https://redocly.com/auth/aud",K="catalog.json",g="scorecard.json",B="page-count.json",h="sitemap.xml",J="llms.txt",R=_.PROJECT_ID,e=_.PROJECT_SLUG,n=_.ORGANIZATION_ID,s=_.ORG_SLUG,E=_.BH_API_URL,t=E&&s&&e?`${E}/orgs/${s}/projects/${e}`:void 0,o=E&&n&&R?`${E}/orgs/${n}/projects/${R}`:void 0,S=E?`${E}/entitlements/.well-known/jwks`:"https://app.cloud.redocly.com/api/entitlements/.well-known/jwks",W=_.ENTITLEMENTS_JWKS_CDN_URL||S,$=t?`${t}/feedback`:"",f=o?`${o}/ai-agentic-conversations`:"",j=o?`${o}/semantic-search`:"",k=t&&`${t}/registry/apis`,w=t&&`${t}/registry/paths`,V="no-store",X=365*24*60*60,y="X-Redocly-Cache-Control",v="no-cache",b="public, s-maxage=86400, max-age=10, must-revalidate",Z=_.AUTH_URL,q="Developer Documentation",r=_.REDOCLY_SSR_RENDER_MODE==="worker"?"worker":"main",z=r==="main"?0:_.REDOCLY_SSR_WORKERS_MIN!=null?Number(_.REDOCLY_SSR_WORKERS_MIN):2,Q=r==="main"?1:_.REDOCLY_SSR_WORKERS_MAX!=null?Number(_.REDOCLY_SSR_WORKERS_MAX):5,__="-----BEGIN CERTIFICATE-----",E_="-----END CERTIFICATE-----",t_=!_.isDevelopMode&&_.REDOCLY_TELEMETRY!=="off"||_.REDOCLY_TELEMETRY==="on",o_="http://localhost:4318/v1/traces",R_=[I.HEALTH],T=_.SERVER_EDITOR_APP_URL||"http://127.0.0.1:3000",e_=_.REDOCLY_CORS_ORIGINS?_.REDOCLY_CORS_ORIGINS.split(",").map(A=>A.trim()).filter(Boolean).concat(T):[T],n_="markdown/partials",s_="markdown/partials-deps";export{e_ as ALLOWED_CORS_ORIGINS,d as ALTERNATIVE_AUD_CLAIM_NAME,f as ASK_AI_API_URL,Z as AUTH_URL,__ as BEGIN_CERTIFICATE_DELIMITER,t as BH_API_PROJECTS_URL,o as BH_API_PROJECTS_URL_V2,V as CACHE_CONTROL_NO_STORE_HEADER_VALUE,v as CACHE_CONTROL_PUBLIC_HTML,K as CATALOG_OUTPUT_FILE_NAME,X as DEFAULT_IMMUTABLE_CACHE_MAX_AGE,G as DEFAULT_PROJECT_PLUGIN_PATHS,H as DEFAULT_THEME_PLUGIN_PATH,q as DEFAULT_TITLE,i as DEFAULT_VERSION_NAME,U as DEPRECATED_PUBLIC_API_DEFINITIONS_FOLDER,E_ as END_CERTIFICATE_DELIMITER,W as ENTITLEMENTS_JWKS_URL,$ as FEEDBACK_API_URL,c as I18N_DIR_NAME,u as JWT_SECRET_KEY,p as L10N_DIR_NAME,l as LINK_ORIGINAL_ATTR_NAME,J as LLMS_TXT_FILE_NAME,n_ as MARKDOC_PARTIALS_DATA_KEY,s_ as MARKDOC_PARTIALS_DEPS_KEY,n as ORG_ID,s as ORG_SLUG,R_ as OTEL_EXCLUDED_ROUTES,o_ as OTEL_TRACES_DEV_URL,B as PAGE_COUNT_OUTPUT_FILE_NAME,R as PROJECT_ID,e as PROJECT_SLUG,P as PUBLIC_API_DEFINITIONS_FOLDER,N as PUBLIC_ASSETS_FOLDER,a as PUBLIC_STATIC_FOLDER,k as REGISTRY_APIS_API_URL,w as REGISTRY_APIS_PATHS_API_URL,Y as RESERVED_DIR_NAMES,x as RUNTIME_RESOURCES_DIR,g as SCORECARD_OUTPUT_FILE_NAME,j as SEMANTIC_SEARCH_API_URL,T as SERVER_EDITOR_APP_URL,h as SITEMAP_FILE_NAME,r as SSR_RENDER_MODE,Q as SSR_WORKERS_MAX,z as SSR_WORKERS_MIN,F as STYLES_FILE,t_ as TELEMETRY_ENABLED,m as VERSIONED_FOLDER_REGEXP_MATCH,M as VERSION_SEPARATOR,y as X_REDOCLY_CACHE_CONTROL_HEADER,b as X_REDOCLY_CACHE_CONTROL_PUBLIC_HTML};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DEFAULT_ANONYMOUS_VISITOR_TEAM as e,DEFAULT_AUTHENTICATED_TEAM as t}from"../../../constants/common.js";const _="flexsearch",A=["
|
|
1
|
+
import{DEFAULT_ANONYMOUS_VISITOR_TEAM as e,DEFAULT_AUTHENTICATED_TEAM as t}from"../../../constants/common.js";const _="flexsearch",A=["title","text","path","httpPath","parameters[]:name","parameters[]:description","parameters[]:place","parameters[]:path"],o="Documentation",r="API Reference",p="search",T=100,a=10,n=20,s=100,c=150,I="ai-search",S=50,C=250,R=Symbol("metadata"),D={id:"",url:"",title:"",text:"",security:[],parameters:[{place:"",mediaType:void 0,name:"",description:"",path:[],type:"object",required:!1,example:void 0,enum:void 0}],rbacTeams:[e,t]},N=!0,x=["title"];export{I as AI_INDEX_EXPORT_FOLDER,S as AI_SEARCH_CHUNK_SIZE,C as AI_SEARCH_DOCUMENT_CHUNK_SIZE,D as BASE_SEARCH_DOCUMENT,N as DEFAULT_AI_SEARCH_ENABLED,_ as DEFAULT_SEARCH_ENGINE,x as DISABLE_DEEP_LINK_IF_FIELDS_EXIST,c as HIGHLIGHTED_TEXT_MAX_LENGTH,p as SEARCH_DATA_EXPORT_FOLDER,R as SEARCH_DOCUMENT_METADATA_KEY,a as SEARCH_GROUP_LIMIT,r as SEARCH_GROUP_NAME_API,o as SEARCH_GROUP_NAME_DOCUMENTATION,A as SEARCH_INDEX_FIELDS,T as SEARCH_LIMIT,n as SEARCH_MAX_FACET_VALUES,s as SEARCH_MAX_INMEMORY_DOCUMENTS_COUNT};
|
package/dist/server/plugins/markdown/attribute-resolvers/helpers/get-media-content-samples.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MediaContentModel } from '@redocly/openapi-docs/lib/models/types.js';
|
|
2
|
+
import type { ResolvedSampleBlock } from '../../../../../types/index.js';
|
|
3
|
+
export declare function getMediaContentSamples(content: MediaContentModel | undefined, exampleKey: string | undefined, titlePrefix: string): ResolvedSampleBlock[];
|
|
4
|
+
//# sourceMappingURL=get-media-content-samples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{convertSampleToString as p}from"@redocly/openapi-docs/lib/services/code-samples/convertSampleToString.js";import{langFromMime as r}from"@redocly/openapi-docs/lib/utils/openapi.js";import{getExampleValueByMimeType as c}from"@redocly/openapi-docs/lib/services/code-samples/get-example-value-by-mime-type.js";function d(o,t,l){const a=[];if(!o?.hasSample)return a;for(const e of o.mediaTypes??[]){const n=e.examples||e.formExamples||{},m=Object.keys(n);if(!m.length)continue;const s=m.length===1?n[m[0]]:t&&n[t]||n[m[0]],i=p(s.value,e.name,e.schema);i!==void 0&&a.push({lang:r(e.name),title:`${l} ${e.name}`,source:c(i,e.name,s.encoding)})}return a}export{d as getMediaContentSamples};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Node } from '@markdoc/markdoc';
|
|
2
|
+
import type { LifecycleContext } from '../../../../types';
|
|
3
|
+
import type { BundledDefinition } from '../../../openapi-docs/load-definition.js';
|
|
4
|
+
type OpenapiBundle = Pick<BundledDefinition, 'definition' | 'rawOptions'>;
|
|
5
|
+
export declare function loadOpenapiBundle(node: Node, context: LifecycleContext): Promise<OpenapiBundle | undefined>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=load-openapi-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{OPENAPI_SHARED_DATA_PREFIX as n}from"../../../../constants/plugins/openapi-docs.js";import{getNodeAttribute as a}from"../../../../../markdoc/helpers/get-node-attribute.js";import{logger as d}from"../../../../tools/notifiers/logger.js";async function l(r,i){const e=a(r,"descriptionFile");if(typeof e!="string"||!e.startsWith(n))return;const o=e.slice(n.length);try{const{data:t}=await i.cache.load(o,"load-oas");return t?.[0]}catch(t){d.verbose(`Failed to load OpenAPI definition ${o} for the ${r.tag} tag: ${t instanceof Error?t.message:"Unknown error"}`);return}}export{l as loadOpenapiBundle};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{resolveOpenApiRef as e}from"./resolve-open-api-ref.js";import{resolveJsonSchemaRef as
|
|
1
|
+
import{resolveOpenApiRef as e}from"./resolve-open-api-ref.js";import{resolveJsonSchemaRef as o}from"./resolve-json-schema-ref.js";import{resolveParsedYaml as r}from"./resolve-parsed-yaml.js";import{resolveRawContent as m}from"./resolve-raw-content.js";import{resolveSvgContent as t}from"./resolve-svg-content.js";import{resolveRelativePath as i}from"./resolve-relative-path.js";import{resolveLink as l}from"./resolve-link.js";import{resolveNativeMdLink as p}from"./resolve-native-md-link.js";import{resolveCodeSnippetFromFile as s}from"./resolve-code-snippet-from-file.js";import{resolveDiagramFromFile as a}from"./resolve-diagram-from-file.js";import{resolveHtmlSourceAttribute as n}from"./resolve-html-source-attribute.js";import{resolveHtmlHref as v}from"./resolve-html-href.js";import{resolveImageSrc as f}from"./resolve-image-src.js";import{resolveImageSrcSet as S}from"./resolve-image-src-set.js";import{resolveImageGallery as c}from"./resolve-image-gallery.js";import{resolveNavLinks as d}from"./resolve-nav-links.js";import{resolveRelativeOrCdnIcon as g}from"./resolve-relative-or-cdn-icon.js";import{resolveCodeWalkthroughFilesets as h}from"./code-walkthrough/filesets-resolver.js";import{resolveJsonExampleRef as R}from"./resolve-json-example-ref.js";import{resolveSampleFromJsonSchema as C}from"./resolve-sample-from-json-schema.js";import{resolveOpenapiCodeSamples as F}from"./resolve-openapi-code-samples.js";import{resolveOpenapiResponseSamples as k}from"./resolve-openapi-response-samples.js";const B={openapiRef:e,jsonSchemaRef:o,parsedYaml:r,rawContent:m,svgContent:t,relativePath:i,link:l,nativeMdLink:p,codeSnippetFile:s,diagramFile:a,htmlSourceAttribute:n,htmlHref:v,imageSrc:f,imageSrcSet:S,imageGallery:c,navLinks:d,relativeOrCdnIcon:g,codeWalkthroughFilesets:h,jsonExampleRef:R,sampleFromJsonSchema:C,openapiCodeSamples:F,openapiResponseSamples:k};export{B as attributeResolvers};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Node } from '@markdoc/markdoc';
|
|
2
|
+
import type { MarkdocResolveContext } from '../../../types';
|
|
3
|
+
export declare function resolveOpenapiCodeSamples(node: Node, attrName: string, _relativePath: string, { context }: MarkdocResolveContext): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=resolve-openapi-code-samples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{normalizeOptions as y}from"@redocly/openapi-docs";import{buildCodeSamples as f}from"@redocly/openapi-docs/lib/services/code-samples/build-code-samples.js";import{getOperation as v}from"../../../../markdoc/helpers/get-operation/index.js";import{setNodeAttributeValue as O}from"../../../../markdoc/helpers/set-node-attribute-value.js";import{getMediaContentSamples as S}from"./helpers/get-media-content-samples.js";import{loadOpenapiBundle as b}from"./helpers/load-openapi-bundle.js";import{getOptionalAttribute as a}from"./utils.js";const h={curl:"shell",JavaScript:"javascript","Node.js":"javascript",Python:"python",Java:"java","Java8+Apache":"java","C#":"csharp","C#+Newtonsoft":"csharp",PHP:"php",Go:"go",Ruby:"ruby",R:"r"},C=(e,n)=>typeof n=="string"?n:String(e??"");async function K(e,n,w,{context:u}){const o=await b(e,u);if(!o)return;const m=a(e,"language"),r={exampleKey:a(e,"exampleKey"),mimeType:a(e,"mimeType"),parameters:a(e,"parameters"),requestBody:a(e,"requestBody"),environments:a(e,"environments"),environment:a(e,"environment")},c=m?{...o.rawOptions,codeSamples:{...o.rawOptions.codeSamples,languages:[{lang:m}]}}:o.rawOptions,i=y(c),s=v({definition:o.definition,options:c},{operationId:a(e,"operationId"),pointer:a(e,"pointer")},i,r);if(!s)return;const p=f(s,i,o.definition,r,C).map(t=>({lang:h[t.lang]??t.lang.toLowerCase(),title:t.label??t.lang,source:t.source})),g=i.codeSamples.languages??[],l=g.find(({lang:t})=>t==="Payload");if(l){const t=S(s.payload?.requestBodyContent,r.exampleKey,l.label??"Payload"),d=g.indexOf(l);p.splice(d,0,...t)}p.length&&O(e,n,p)}export{K as resolveOpenapiCodeSamples};
|
package/dist/server/plugins/markdown/attribute-resolvers/resolve-openapi-response-samples.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Node } from '@markdoc/markdoc';
|
|
2
|
+
import type { MarkdocResolveContext } from '../../../types';
|
|
3
|
+
export declare function resolveOpenapiResponseSamples(node: Node, attrName: string, _relativePath: string, { context }: MarkdocResolveContext): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=resolve-openapi-response-samples.d.ts.map
|