@redocly/realm 0.137.0-next.3 → 0.137.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.
- package/CHANGELOG.md +64 -0
- package/dist/cli/stats/collectors/openapi/index.js +1 -1
- package/dist/client/app/markdoc/custom-components/openapi/json-schema.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-example.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/use-markdown-adapter.d.ts +45 -0
- package/dist/client/app/markdoc/custom-components/openapi/use-markdown-adapter.js +1 -0
- package/dist/client/utils/catalog/get-next-page-param.d.ts +1 -1
- package/dist/client/utils/catalog/get-next-page-param.js +1 -1
- package/dist/compiled/svgo/svgo-node.js +32 -32
- 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/search.d.ts +3 -0
- package/dist/server/config/env-schemas/search.js +1 -1
- package/dist/server/constants/plugins/search.d.ts +0 -2
- package/dist/server/constants/plugins/search.js +1 -1
- package/dist/server/plugins/markdown/utils/sanitize-malformed-md-content.js +2 -2
- package/dist/server/plugins/mcp/codemode/tools/manage-credentials.js +2 -2
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.d.ts +2 -1
- package/dist/server/plugins/mcp/gateway-mcp/elicitation.js +4 -4
- package/dist/server/plugins/mcp/gateway-mcp/secret-store.d.ts +8 -0
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.d.ts +2 -0
- package/dist/server/plugins/mcp/gateway-mcp/upstream-auth-scheme.js +2 -2
- package/dist/server/plugins/mcp/handlers/mcp-credentials-handler.js +1 -144
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.d.ts +6 -0
- package/dist/server/plugins/mcp/handlers/mcp-credentials-page.js +217 -0
- package/dist/server/plugins/mcp/index.js +1 -1
- package/dist/server/plugins/mcp/servers/mcp-server.js +3 -3
- package/dist/server/plugins/mcp/utils/find-gated-tool-names.d.ts +13 -0
- package/dist/server/plugins/mcp/utils/find-gated-tool-names.js +1 -0
- package/dist/server/plugins/search/engines/typesense/index.js +1 -1
- package/dist/server/plugins/search/index.js +1 -1
- package/dist/server/plugins/search/utils.d.ts +2 -1
- package/dist/server/plugins/search/utils.js +2 -2
- package/dist/server/store.d.ts +1 -0
- package/dist/server/store.js +1 -1
- package/dist/server/types/plugins/common.d.ts +3 -0
- package/dist/server/web-server/routes/mcp-routes/mcp-server-card.js +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
# @redocly/realm
|
|
2
2
|
|
|
3
|
+
## 0.137.0-next.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4925ce16bea: Fixed an issue in API docs where a schema that inherited its `discriminator` from an `allOf` parent displayed only the discriminator property, without its variants or other properties.
|
|
8
|
+
- 4925ce16bea: Fixed an issue where a variant whose schema was unavailable, such as a schema restricted by RBAC, displayed as an empty option.
|
|
9
|
+
- bff49e7278f: Fixed an issue in OpenAPI docs where selecting an example in the response panel did not update the request code sample.
|
|
10
|
+
The issue occurred when request and response examples shared the same key.
|
|
11
|
+
- ac184788d19: Fixed an issue where angle brackets: `<`, `>` weren't rendered inside inline code within Markdown link text, such as `` [`command <name>`](./page.md) ``.
|
|
12
|
+
- 67c2f278ff4: Fixed an issue where example descriptions weren't rendered in the request and response samples panels.
|
|
13
|
+
Descriptions render as Markdown below the example selector for all languages and include callback payloads and descriptions pre-parsed by the portal.
|
|
14
|
+
- 4925ce16bea: Fixed an issue where code samples omitted the discriminator value of the selected variant.
|
|
15
|
+
- bf3aa0200bf: Improved sidebar accessibility: separators are no longer announced as links by screen readers and no longer receive keyboard focus.
|
|
16
|
+
- 505de02f7b8: Fixed an issue where a search query that contained double characters returned an error.
|
|
17
|
+
- 4925ce16bea: Fixed an issue where a mapping key that pointed to the same schema as `defaultMapping` disappeared from the variant list.
|
|
18
|
+
- 4925ce16bea: Fixed an issue in API docs where the code samples panel displayed no `Discriminator` selector for schemas that inherit their `discriminator` from an `allOf` parent.
|
|
19
|
+
- Updated dependencies [4925ce16bea]
|
|
20
|
+
- Updated dependencies [4925ce16bea]
|
|
21
|
+
- Updated dependencies [bff49e7278f]
|
|
22
|
+
- Updated dependencies [67c2f278ff4]
|
|
23
|
+
- Updated dependencies [4925ce16bea]
|
|
24
|
+
- Updated dependencies [bf3aa0200bf]
|
|
25
|
+
- Updated dependencies [4925ce16bea]
|
|
26
|
+
- Updated dependencies [4925ce16bea]
|
|
27
|
+
- @redocly/api-docs@0.2.0-next.5
|
|
28
|
+
- @redocly/theme@0.69.0-next.5
|
|
29
|
+
- @redocly/asyncapi-docs@1.14.0-next.5
|
|
30
|
+
- @redocly/graphql-docs@1.14.0-next.5
|
|
31
|
+
- @redocly/openapi-docs@3.25.0-next.5
|
|
32
|
+
- @redocly/portal-plugin-mock-server@0.22.0-next.5
|
|
33
|
+
|
|
34
|
+
## 0.137.0-next.4
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- 34e13e3c9e1: Fixed OAuth2 client credentials exchange in the MCP gateway credentials form.
|
|
39
|
+
- 772bee46a31: The MCP credentials page consolidated all accepted API credentials on one page.
|
|
40
|
+
- f53b16a05de: Updated the MCP API-credentials page to match Redocly styling.
|
|
41
|
+
- 02b5b225d9d: Fixed build and Webview preview failures caused by missing exports in `@xyflow/system`.
|
|
42
|
+
- 109fd55824b: Updated `@redocly/openapi-core` to version `2.47.0`.
|
|
43
|
+
- 5b825b1f1fe: Fixed an issue in OpenAPI docs where the server URL was missing from the request panel for APIs with a single server when the mock server was disabled.
|
|
44
|
+
- Updated dependencies [02b5b225d9d]
|
|
45
|
+
- Updated dependencies [109fd55824b]
|
|
46
|
+
- Updated dependencies [5b825b1f1fe]
|
|
47
|
+
- @redocly/theme@0.69.0-next.4
|
|
48
|
+
- @redocly/api-docs@0.2.0-next.4
|
|
49
|
+
- @redocly/openapi-docs@3.25.0-next.4
|
|
50
|
+
- @redocly/asyncapi-docs@1.14.0-next.4
|
|
51
|
+
- @redocly/graphql-docs@1.14.0-next.4
|
|
52
|
+
- @redocly/portal-plugin-mock-server@0.22.0-next.4
|
|
53
|
+
|
|
3
54
|
## 0.137.0-next.3
|
|
4
55
|
|
|
5
56
|
### Minor Changes
|
|
@@ -104,6 +155,19 @@
|
|
|
104
155
|
- @redocly/graphql-docs@1.14.0-next.0
|
|
105
156
|
- @redocly/portal-plugin-mock-server@0.22.0-next.0
|
|
106
157
|
|
|
158
|
+
## 0.136.2
|
|
159
|
+
|
|
160
|
+
### Patch Changes
|
|
161
|
+
|
|
162
|
+
- 7b45d118926: Fixed build and Webview preview failures caused by missing exports in `@xyflow/system`.
|
|
163
|
+
- Updated dependencies [7b45d118926]
|
|
164
|
+
- @redocly/theme@0.68.2
|
|
165
|
+
- @redocly/api-docs@0.1.2
|
|
166
|
+
- @redocly/asyncapi-docs@1.13.2
|
|
167
|
+
- @redocly/graphql-docs@1.13.2
|
|
168
|
+
- @redocly/openapi-docs@3.24.2
|
|
169
|
+
- @redocly/portal-plugin-mock-server@0.21.2
|
|
170
|
+
|
|
107
171
|
## 0.136.1
|
|
108
172
|
|
|
109
173
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{detectSpec as u,getTypes as d,normalizeTypes as h,normalizeVisitors as w,resolveDocument as y,BaseResolver as D,StatsOAS as S,walkDocument as g}from"@redocly/openapi-core";import{logger as m}from"../../../../server/tools/notifiers/logger.js";import{envConfig as I}from"../../../../server/config/env-config.js";import{telemetryTraceStep as O}from"../../../telemetry/helpers/trace-step.js";import{telemetry as b}from"../../../telemetry/index.js";import{computeOas32Stats as v}from"./oas32.js";const t={refs:{metric:"References",total:0,color:"red",items:new Set},externalDocs:{metric:"External Documents",total:0,color:"magenta"},schemas:{metric:"Schemas",total:0,color:"white"},parameters:{metric:"Parameters",total:0,color:"yellow",items:new Set},links:{metric:"Links",total:0,color:"cyan",items:new Set},pathItems:{metric:"Path Items",total:0,color:"green"},webhooks:{metric:"Webhooks",total:0,color:"green"},operations:{metric:"Operations",total:0,color:"yellow"},tags:{metric:"Tags",total:0,color:"white",items:new Set}};async function
|
|
1
|
+
import{detectSpec as u,getTypes as d,normalizeTypes as h,normalizeVisitors as w,resolveDocument as y,BaseResolver as D,StatsOAS as S,walkDocument as g}from"@redocly/openapi-core";import{logger as m}from"../../../../server/tools/notifiers/logger.js";import{envConfig as I}from"../../../../server/config/env-config.js";import{telemetryTraceStep as O}from"../../../telemetry/helpers/trace-step.js";import{telemetry as b}from"../../../telemetry/index.js";import{computeOas32Stats as v}from"./oas32.js";const t={refs:{metric:"References",total:0,color:"red",items:new Set},externalDocs:{metric:"External Documents",total:0,color:"magenta"},schemas:{metric:"Schemas",total:0,color:"white"},parameters:{metric:"Parameters",total:0,color:"yellow",items:new Set},links:{metric:"Links",total:0,color:"cyan",items:new Set},pathItems:{metric:"Path Items",total:0,color:"green"},webhooks:{metric:"Webhooks",total:0,color:"green"},operations:{metric:"Operations",total:0,color:"yellow"},tags:{metric:"Tags",total:0,color:"white",items:new Set},xExtensions:{metric:"Vendor Extensions",total:0,color:"cyan",counts:{}}};async function E(r,s){await O("com.redocly.stats.openapi",async()=>{m.info("OpenAPI collector: start processing documents...");const e=(await r.cache.load(".","api-docs")).data,a=[];for(const n of e){if(n.type!=="openapi"||n.isVirtual)continue;const o=await x(n);a.push(o),b.sendStatsOpenapiCollectedMessage([{id:o.path,object:"openapiDefinition",uri:`urn:redocly:realm:cli:openapiDefinition:${o.path}`,...o,projectBuildId:I.PROJECT_BUILD_ID||""}])}s||console.table(a),m.info("OpenAPI collector: openapi documents processing completed.")})}async function x(r){const s=r.document,e=u(s),a=h(d(e)),n=w([{severity:"warn",ruleId:"openapi_stats",visitor:S(t)}],a),o={problems:[],specVersion:e,visitorsData:{}},c={source:{absoluteRef:""},parsed:s},i=a.Root;if(!i)throw new Error("Root type not found in OpenAPI spec types");const f=await y({rootDocument:c,rootType:i,externalRefResolver:new D});g({rootType:i,normalizedVisitors:n,resolvedRefMap:f,document:c,ctx:o});const l={path:r.relativePath,refs:t.refs.total,externalDocs:t.externalDocs.total,schemas:t.schemas.total,parameters:t.parameters.total,links:t.links.total,pathItems:t.pathItems.total,webhooks:t.webhooks.total,operations:t.operations.total,tags:t.tags.total,version:e};if(e==="oas3_2"){const p=v(s);p&&Object.assign(l,p)}return l}export{E as collectOpenapiDocumentsStatistics};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{MarkdownAdapterProvider as
|
|
1
|
+
import{MarkdownAdapterProvider as d,RedocSchema as l,StoreProvider as h,markdocParser as f}from"@redocly/api-docs";import*as e from"react";import{Admonition as k}from"@redocly/theme/markdoc/components/Admonition/Admonition";import{OpenApiComponentWrap as u}from"../styled.elements";import{markdocOptions as E,usePortalMarkdownAdapter as v}from"./use-markdown-adapter";function g(a){const{options:m,title:o,schemaResolved:t,schemaResolvedErrors:r,schema:n}=a,s=v();if(n||t){const i={openapi:"3.0.0",info:{version:"1",description:"test",title:"test"},paths:{},"x-root":t?.components?.schemas?.__root||n,components:{schemas:{...t?.components?.schemas}}};return e.createElement(u,{"data-testid":"json-schema"},o?e.createElement("h3",null,o):null,e.createElement(h,{options:{...m,markdocOptions:E,markdownParser:f},definition:i},e.createElement(d,{value:s},r?.length?e.createElement(k,{name:"Problem in json-schema tag",type:"danger"},r.map((c,p)=>e.createElement("div",{key:p},c))):null,e.createElement(l,{pointer:"#/x-root",disableDeepLinks:!0}))))}}export{g as JsonSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as r from"react";import{MarkdownAdapterProvider as P,StoreProvider as h,RedocCodeSample as E,appendUndeclaredConfigureParameters as A,excludeMockServers as i,markdocParser as C}from"@redocly/api-docs";import{ErrorMessage as M,OpenApiComponentWrap as q}from"../styled.elements";import{useStore as w}from"../../hooks/use-store";import{findCodeSamplePanel as x}from"../../utils/find-code-sample-panel.js";import{usePortalMarkdownAdapter as I}from"./use-markdown-adapter";function F(m){const{descriptionFile:d,operationId:a,pointer:s,exampleKey:c,mimeType:u,language:n,requestBody:l,parameters:e,environment:f,environments:v}=m,{store:o,error:y}=w(d),g=I(),k=r.useMemo(()=>({specType:"openapi",...o?.options,...n&&{codeSamples:{languages:[{lang:n??""}]}},markdownParser:C}),[n,o?.options]),p=r.useMemo(()=>{if(!o?.items?.length)return;const t=x(o.items,{pointer:s,sourceId:a});if(!t)return;const S=A({...t.source,servers:i(t.source.servers)},{...e?.path&&{path:e.path},...e?.query&&{query:e.query},...e?.header&&{headers:e.header},...e?.cookie&&{cookie:e.cookie}});return{...t,...t.servers&&{servers:i(t.servers)},source:S}},[o?.items,s,a,e]);return o?p?r.createElement(q,{"data-testid":"openapi-code-sample"},r.createElement(h,{options:k,apiStore:o.store},r.createElement(P,{value:g},r.createElement(E,{node:p,mimeType:u,exampleKey:c,requestBody:l,parameters:e,environment:f,environments:v})))):r.createElement("pre",{style:{color:"red"}},"Cannot find OpenAPI operation (use pointer or operationId)"):r.createElement(M,null,y)}export{F as OpenApiCodeSample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"react";import{RedocExample as
|
|
1
|
+
import*as e from"react";import{MarkdownAdapterProvider as s,RedocExample as c,StoreProvider as d,markdocParser as l}from"@redocly/api-docs";import{ErrorMessage as E,OpenApiComponentWrap as f}from"../styled.elements";import{useStore as u}from"../../hooks/use-store";import{usePortalMarkdownAdapter as k}from"./use-markdown-adapter";function v(o){const{descriptionFile:t,pointer:p,options:a,mimeType:n}=o,{store:r,error:i}=u(t),m=k();return r?e.createElement(f,{"data-testid":"openapi-example"},e.createElement(d,{options:{specType:"openapi",...r.options,...a,markdownParser:l},apiStore:r.store},e.createElement(s,{value:m},e.createElement(c,{pointer:p,mimeType:n||"application/json"})))):e.createElement(E,null,i)}export{v as OpenApiExample};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as e from"react";import{MarkdownAdapterProvider as l,RedocResponseSamples as c,StoreProvider as f,markdocParser as u}from"@redocly/api-docs";import{ErrorMessage as t,OpenApiComponentWrap as E}from"../styled.elements";import{useStore as S}from"../../hooks/use-store";import{findResponseSamples as P}from"../../utils/find-openapi-response-samples.js";import{usePortalMarkdownAdapter as h}from"./use-markdown-adapter";function v(n){const{descriptionFile:s,operationId:p,pointer:a,exampleKey:m}=n,{store:r,error:i}=S(s),d=h();if(!r)return e.createElement(t,null,i);const o=r.items?.length?P(r.items,{pointer:a,sourceId:p}):void 0;return o?.responseCodes.length?e.createElement(E,{"data-testid":"openapi-response-sample"},e.createElement(f,{options:{...r.options,specType:"openapi",markdownParser:u},apiStore:r.store},e.createElement(l,{value:d},e.createElement(c,{responseCodes:o.responseCodes,exampleKey:m,schemaId:o.schemaId})))):e.createElement(t,null,"Cannot find response samples for the given operation")}export{v as OpenApiResponseSample};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { MarkdownAdapter } from '@redocly/api-docs';
|
|
2
|
+
import { MarkdownLink } from '@redocly/theme/markdoc/components/MarkdownLink/MarkdownLink';
|
|
3
|
+
/** Routes description links through portal `Link` (path prefix, locale, etc.). */
|
|
4
|
+
export declare const markdocOptions: {
|
|
5
|
+
nodes: {
|
|
6
|
+
link: {
|
|
7
|
+
attributes?: Record<string, import("@markdoc/markdoc").SchemaAttribute>;
|
|
8
|
+
slots?: Record<string, import("@markdoc/markdoc").SchemaSlot>;
|
|
9
|
+
selfClosing?: boolean;
|
|
10
|
+
inline?: boolean;
|
|
11
|
+
transform?(node: import("@markdoc/markdoc").Node, config: Readonly<Partial<{
|
|
12
|
+
nodes: Partial<Record<import("@markdoc/markdoc").NodeType, import("@markdoc/markdoc").Schema<Partial</*elided*/ any>, string>>>;
|
|
13
|
+
tags: Record<string, import("@markdoc/markdoc").Schema>;
|
|
14
|
+
variables: Record<string, any>;
|
|
15
|
+
functions: Record<string, import("@markdoc/markdoc").ConfigFunction>;
|
|
16
|
+
partials: Record<string, any>;
|
|
17
|
+
validation?: {
|
|
18
|
+
parents?: import("@markdoc/markdoc").Node[];
|
|
19
|
+
validateFunctions?: boolean;
|
|
20
|
+
environment?: string;
|
|
21
|
+
};
|
|
22
|
+
}>>): import("@markdoc/markdoc").MaybePromise<import("@markdoc/markdoc").RenderableTreeNodes>;
|
|
23
|
+
validate?(node: import("@markdoc/markdoc").Node, config: Readonly<Partial<{
|
|
24
|
+
nodes: Partial<Record<import("@markdoc/markdoc").NodeType, import("@markdoc/markdoc").Schema<Partial</*elided*/ any>, string>>>;
|
|
25
|
+
tags: Record<string, import("@markdoc/markdoc").Schema>;
|
|
26
|
+
variables: Record<string, any>;
|
|
27
|
+
functions: Record<string, import("@markdoc/markdoc").ConfigFunction>;
|
|
28
|
+
partials: Record<string, any>;
|
|
29
|
+
validation?: {
|
|
30
|
+
parents?: import("@markdoc/markdoc").Node[];
|
|
31
|
+
validateFunctions?: boolean;
|
|
32
|
+
environment?: string;
|
|
33
|
+
};
|
|
34
|
+
}>>): import("@markdoc/markdoc").MaybePromise<import("@markdoc/markdoc").ValidationError[]>;
|
|
35
|
+
description?: string;
|
|
36
|
+
render: string;
|
|
37
|
+
children: string[];
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
components: {
|
|
41
|
+
MarkdownLink: typeof MarkdownLink;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export declare function usePortalMarkdownAdapter(): MarkdownAdapter;
|
|
45
|
+
//# sourceMappingURL=use-markdown-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as o from"react";import{createMarkdocAdapter as r}from"@redocly/api-docs";import{MarkdownLink as t}from"@redocly/theme/markdoc/components/MarkdownLink/MarkdownLink";import{link as e}from"../../../../../markdoc/nodes/index.js";const n={nodes:{link:e},components:{MarkdownLink:t}};function i(){return o.useMemo(()=>r(n),[])}export{n as markdocOptions,i as usePortalMarkdownAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function n(e){return e?.page?.nextPage?{after:e.page.nextPage}:void 0}export{n as getNextPageParam};
|