@redocly/openapi-docs 3.1.3 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/redocly-openapi-docs.min.js +1185 -1146
- package/lib/components/OperationItem/OperationItem.js +2 -5
- package/lib/components/Panel/index.d.ts +0 -2
- package/lib/components/Panel/index.js +1 -1
- package/lib/components/PropertyDetails/FieldDetails.js +1 -5
- package/lib/components/Replay/Replay.js +1 -1
- package/lib/components/Replay/utils.js +1 -1
- package/lib/components/Schema/OneOfSchema.js +1 -1
- package/lib/components/TagItem/OperationsNavigation.js +1 -1
- package/lib/components/common/Badges.d.ts +13 -0
- package/lib/components/common/Badges.js +19 -0
- package/lib/components/common/index.d.ts +1 -0
- package/lib/components/common/index.js +1 -1
- package/lib/components/common/schema.d.ts +0 -2
- package/lib/components/common/schema.js +1 -3
- package/lib/jotai/operation.d.ts +1 -0
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/utils/areArraysEqual.d.ts +1 -0
- package/lib/utils/areArraysEqual.js +2 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.js +2 -5
- package/lib-esm/components/Panel/index.d.ts +0 -2
- package/lib-esm/components/Panel/index.js +1 -1
- package/lib-esm/components/PropertyDetails/FieldDetails.js +1 -5
- package/lib-esm/components/Replay/Replay.js +1 -1
- package/lib-esm/components/Replay/utils.js +1 -1
- package/lib-esm/components/Schema/OneOfSchema.js +1 -1
- package/lib-esm/components/TagItem/OperationsNavigation.js +1 -1
- package/lib-esm/components/common/Badges.d.ts +13 -0
- package/lib-esm/components/common/Badges.js +19 -0
- package/lib-esm/components/common/index.d.ts +1 -0
- package/lib-esm/components/common/index.js +1 -1
- package/lib-esm/components/common/schema.d.ts +0 -2
- package/lib-esm/components/common/schema.js +1 -3
- package/lib-esm/jotai/operation.d.ts +1 -0
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/utils/areArraysEqual.d.ts +1 -0
- package/lib-esm/utils/areArraysEqual.js +2 -0
- package/lib-esm/utils/index.d.ts +1 -0
- package/lib-esm/utils/index.js +1 -1
- package/package.json +3 -3
- package/lib/components/Panel/ContentPanel.d.ts +0 -2
- package/lib/components/Panel/ContentPanel.js +0 -25
- package/lib/components/Panel/Description.d.ts +0 -1
- package/lib/components/Panel/Description.js +0 -8
- package/lib-esm/components/Panel/ContentPanel.d.ts +0 -2
- package/lib-esm/components/Panel/ContentPanel.js +0 -25
- package/lib-esm/components/Panel/Description.d.ts +0 -1
- package/lib-esm/components/Panel/Description.js +0 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import styled,{css}from"styled-components";import{
|
|
1
|
+
import styled,{css}from"styled-components";import{deprecatedCss}from"./mixins";export const OneOfButton=styled.button`
|
|
2
2
|
border: 1px solid var(--schema-buttons-border-color);
|
|
3
3
|
height: 24px;
|
|
4
4
|
border-radius: var(--border-radius);
|
|
@@ -48,8 +48,6 @@ import styled,{css}from"styled-components";import{Badge}from"@redocly/theme";imp
|
|
|
48
48
|
}
|
|
49
49
|
`;export const Wrapper=styled.div`
|
|
50
50
|
margin-bottom: 1em;
|
|
51
|
-
`;export const BadgeStyle=styled(Badge)`
|
|
52
|
-
margin-left: 0;
|
|
53
51
|
`;export const SelectionTitle=styled.div`
|
|
54
52
|
font-size: var(--font-size-sm);
|
|
55
53
|
line-height: var(--line-height-sm);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={}},{environment:l,requestValues:u}){var
|
|
1
|
+
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={}},{environment:l,requestValues:u,activeSecuritySchemeIds:p}){var c,d,m;const h=l.server,y=e.servers.find((e=>e.url===h))||e.servers[0],f=getSelectedSecurityScheme(e.security,p),{securityHeaders:g,securityCookies:v,securityQueries:O,securityOAuth2ExtraCalls:S,basicAuth:T}=getSecurityData(f||(null===(c=e.security)||void 0===c?void 0:c[0]),r,l),C=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&getActiveMediaType(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i},E=u;let _=!1;const A=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=E.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(_=!0,e.value=C.name),e))).concat(g);!_&&(null==C?void 0:C.name)&&A.unshift({name:"Content-Type",value:null==C?void 0:C.name});const k=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=E.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=E.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=E.query)||void 0===r?void 0:r[i]))||String((null===(s=E.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(O),j=`${null==y?void 0:y.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,w=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=E.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),R=null===(m=null==C?void 0:C.examples)||void 0===m?void 0:m[t],D=(null==C?void 0:C.examples)||{},[q]=Object.values(D),M=(null==E?void 0:E.body)||(null==R?void 0:R.value)||(null==q?void 0:q.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,b,s),H=null==C?void 0:C.name.toLowerCase();let N="",x=[];switch(normalizeMimeType(H)){case MediaTypes.JSON:case MediaTypes.XML:N=JSON.stringify(getDataRequest(M,o));break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:N=queryString.stringify(getDataRequest(M,o)),x=objectToHarParams(getDataRequest(M,o));break;default:N=String(M||"")}const U=N?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:N,params:x}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:j,httpVersion:"HTTP/1.1",cookies:k,headers:A,queryString:P,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:S,basicAuth:T,pathParameters:w,serverVariables:l,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n}){try{const{skipOptionalParameters:o,withOAuth2Call:l,spec:u,generatedPayloadSamplesMaxDepth:p,store:c}=i,d=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:o,withOAuth2Call:l,spec:u,generatedPayloadSamplesMaxDepth:p},{environment:n,requestValues:c.requestValues,activeSecuritySchemeIds:c.activeSecuritySchemeIds}),m=new HTTPSnippet(d);return langToSnippetConfig[e]?m.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):"Language is not supported."}catch(e){return console.error(e),"Failed to generate code sample."}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const u of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(u.id,a);switch(u.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";u.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(u.flows.clientCredentials,u.scopes,e)):u.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(u.flows.password,u.scopes,e)),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===u.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:u.name,value:t})),"cookie"===u.in&&l.securityCookies.push({name:u.name,value:t}),"query"===u.in&&l.securityQueries.push({name:u.name,value:t});break}case"http":if("basic"===u.scheme)l.basicAuth={username:e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${u.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(u.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getDataRequest(e,t){if(e){if("object"==typeof e)return merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,s]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof s&&null!==s?a.push(...objectToHarParams(s,e)):a.push({name:e,value:String(s)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function areArraysEqual(arr1: unknown[], arr2: unknown[]): boolean;
|
package/lib-esm/utils/index.d.ts
CHANGED
package/lib-esm/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./highlight";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";
|
|
1
|
+
export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./highlight";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"url": "~0.11.0",
|
|
45
45
|
"url-template": "^2.0.8",
|
|
46
46
|
"util": "~0.12.5",
|
|
47
|
-
"@redocly/replay": "0.3.
|
|
47
|
+
"@redocly/replay": "0.3.5",
|
|
48
48
|
"@redocly/config": "0.6.2"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"webpack": "5.91.0",
|
|
92
92
|
"webpack-cli": "5.1.4",
|
|
93
93
|
"webpack-dev-server": "4.15.2",
|
|
94
|
-
"@redocly/theme": "0.
|
|
94
|
+
"@redocly/theme": "0.38.1"
|
|
95
95
|
},
|
|
96
96
|
"scripts": {
|
|
97
97
|
"start": "webpack serve --mode=development --hot",
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ContentPanel=void 0;const styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),headers_1=require("../common/headers");exports.ContentPanel=(0,styled_components_1.default)(theme_1.Panel)`
|
|
2
|
-
&:not(:last-child) {
|
|
3
|
-
margin-bottom: 20px;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
> ${theme_1.PanelHeader} {
|
|
7
|
-
${theme_1.PanelHeaderTitle} {
|
|
8
|
-
margin-right: 8px;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&.panel-security-schemas ${theme_1.PanelHeaderTitle} {
|
|
13
|
-
min-width: fit-content;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
${headers_1.FieldsGroupHeader} {
|
|
17
|
-
// TODO fix me - this style overrides style inside MediaTypesSwitch by FormControl(why?)
|
|
18
|
-
font-family: var(--font-family-base);
|
|
19
|
-
|
|
20
|
-
> ${theme_1.PanelBody} > div:last-child > & {
|
|
21
|
-
margin-top: 0;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
//# sourceMappingURL=ContentPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const Description: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Description=void 0;const styled_components_1=__importDefault(require("styled-components"));exports.Description=styled_components_1.default.span`
|
|
2
|
-
font-size: 0.9em;
|
|
3
|
-
white-space: nowrap;
|
|
4
|
-
overflow: hidden;
|
|
5
|
-
text-overflow: ellipsis;
|
|
6
|
-
font-weight: normal;
|
|
7
|
-
`;
|
|
8
|
-
//# sourceMappingURL=Description.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import styled from"styled-components";import{Panel,PanelHeader,PanelHeaderTitle,PanelBody}from"@redocly/theme";import{FieldsGroupHeader}from"../common/headers";export const ContentPanel=styled(Panel)`
|
|
2
|
-
&:not(:last-child) {
|
|
3
|
-
margin-bottom: 20px;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
> ${PanelHeader} {
|
|
7
|
-
${PanelHeaderTitle} {
|
|
8
|
-
margin-right: 8px;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&.panel-security-schemas ${PanelHeaderTitle} {
|
|
13
|
-
min-width: fit-content;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
${FieldsGroupHeader} {
|
|
17
|
-
// TODO fix me - this style overrides style inside MediaTypesSwitch by FormControl(why?)
|
|
18
|
-
font-family: var(--font-family-base);
|
|
19
|
-
|
|
20
|
-
> ${PanelBody} > div:last-child > & {
|
|
21
|
-
margin-top: 0;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
//# sourceMappingURL=ContentPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const Description: import("styled-components").StyledComponent<"span", any, {}, never>;
|