@redocly/openapi-docs 3.0.0-alpha.38 → 3.0.0-alpha.40
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/console.redocly-openapi-docs.min.js +6 -6
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-openapi-docs.min.js +1072 -747
- package/lib/components/common/panels.js +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/types/open-api.d.ts +1 -0
- package/lib-esm/components/common/panels.js +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/types/open-api.d.ts +1 -0
- package/package.json +2 -29
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var i=Object.getOwnPropertyDescriptor(t,a);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,i)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.capitalizeFirst=exports.isDefined=exports.getCodeSample=void 0;const query_string_1=require("query-string"),Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),labels_1=require("../labels"),httpsnippet_1=require("./httpsnippet"),string_utility_1=__importDefault(require("./httpsnippet/helpers/string-utility")),mediaContent_1=require("../../models/mediaContent");function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:l={}},{activeServer:o,requestValues:u}){var p,c,d;const{securityHeaders:m,securityCookies:h,securityQueries:f,securityOAuth2ExtraCalls:_,basicAuth:v}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r),y=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),g={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:s},O={path:null==u?void 0:u.path,cookie:null==u?void 0:u.cookie,header:null==u?void 0:u.header,query:null==u?void 0:u.query,body:null==u?void 0:u.body};let T=!1;const b=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=O.header)||void 0===t?void 0:t[e.name])||(0,utils_1.getParameterValue)("header",e.name)||(0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,g,i))}})).map((e=>((null==y?void 0:y.name)&&"content-type"===e.name.toLowerCase()&&(T=!0,e.value=y.name),e))).concat(m);!T&&(null==y?void 0:y.name)&&b.unshift({name:"Content-Type",value:null==y?void 0:y.name});const C=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>(0,query_string_1.parse)((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,g,i))))).reduce(((e,t)=>{var a;for(const[r,i]of Object.entries(t))e.push({name:r,value:String((null===(a=O.cookie)||void 0===a?void 0:a[r])||i)});return e}),[]).concat(h),S=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>(0,query_string_1.parse)((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,g,i))))).reduce(((e,t)=>{var a,r,i;for(const[s,n]of Object.entries(t))e.push({name:s,value:(0,utils_1.isArrayOfObjects)(null===(a=O.query)||void 0===a?void 0:a[s])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=O.query)||void 0===r?void 0:r[s]))||String((null===(i=O.query)||void 0===i?void 0:i[s])||n)});return e}),[]).concat(f),D=`${null==o?void 0:o.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,E=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:i}=t;return e[i]=(null===(a=O.path)||void 0===a?void 0:a[i])||n[i]||(0,utils_1.getParameterValue)(r,i),e}),{}),q=null===(d=null==y?void 0:y.examples)||void 0===d?void 0:d[t],j=(null==y?void 0:y.examples)||{},[P]=Object.values(j),A=O.body||(null==q?void 0:q.value)||(null==P?void 0:P.value)||(null==y?void 0:y.schema)&&Sampler.sample(null==y?void 0:y.schema.rawSchema,g,i),w=null==y?void 0:y.name.toLowerCase();let R="",k=[];switch((0,utils_2.normalizeMimeType)(w)){case constants_1.MediaTypes.JSON:R=JSON.stringify(getDataRequest(A,l));break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:R=(0,query_string_1.stringify)(getDataRequest(A,l)),k=objectToHarParams(getDataRequest(A,l));break;default:R=String(A||"")}const M=R?{mimeType:(null==y?void 0:y.name)||constants_1.MediaTypes.OCTET_STREAM,text:R,params:k}:void 0,x=e.responses.map((e=>e.code));return{method:e.httpVerb,url:D,httpVersion:"HTTP/1.1",cookies:C,headers:b,queryString:S,postData:M,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:_,basicAuth:v,pathParameters:E,serverVariables:(null==o?void 0:o.variables)||e.activeServer.variables,allResponseCodes:x}}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)},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)}};function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:i,options:s={}}){try{const{skipOptionalParameters:n,withOAuth2Call:l,spec:o,generatedPayloadSamplesMaxDepth:u,store:p}=s,c=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:i,skipOptionalParameters:n,withOAuth2Call:l,spec:o,generatedPayloadSamplesMaxDepth:u},p),d=new httpsnippet_1.HTTPSnippet(c);return langToSnippetConfig[e]?d.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),s)):"Language is not supported."}catch(e){return console.error(e),"Failed to generate code sample."}}function getSecurityData(e,t){var a,r,i,s;const n={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const l of(null==e?void 0:e.schemes)||[]){const e=(0,utils_1.getSecurityDetails)(l.id);switch(l.type){case"openIdConnect":null===(a=n.securityHeaders)||void 0===a||a.push({name:"Authorization",value:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";l.flows.clientCredentials&&t?n.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(l.flows.clientCredentials,l.scopes,e)):l.flows.password&&t&&n.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(l.flows.password,l.scopes,e)),null===(r=n.securityHeaders)||void 0===r||r.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===l.in&&(null===(i=n.securityHeaders)||void 0===i||i.push({name:l.name,value:t})),"cookie"===l.in&&n.securityCookies.push({name:l.name,value:t}),"query"===l.in&&n.securityQueries.push({name:l.name,value:t});break}case"http":"basic"===l.scheme?n.basicAuth={username:e.username||`<${string_utility_1.default.toSnakeCase((0,labels_1.l)("tryItAuthBasicUsername"))}>`,password:e.password||`<${string_utility_1.default.toSnakeCase((0,labels_1.l)("tryItAuthBasicPassword"))}>`}:null===(s=n.securityHeaders)||void 0===s||s.push({name:"Authorization",value:`${capitalizeFirst(l.scheme||"bearer")} <YOUR_${l.bearerFormat||"TOKEN"}_HERE>`})}}return n}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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(0,deepmerge_1.default)(e,t,{arrayMerge:utils_2.arrayMergeStrategy});try{return(0,deepmerge_1.default)(JSON.parse(e),t,{arrayMerge:utils_2.arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e){const t=[];for(const[a,r]of Object.entries(e))t.push({name:a,value:String(r)});return t}function isDefined(e){return void 0!==e}function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}exports.getCodeSample=getCodeSample,exports.isDefined=isDefined,exports.capitalizeFirst=capitalizeFirst;
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var i=Object.getOwnPropertyDescriptor(t,a);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,i)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&__createBinding(t,e,a);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.capitalizeFirst=exports.isDefined=exports.getCodeSample=void 0;const query_string_1=require("query-string"),Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),labels_1=require("../labels"),httpsnippet_1=require("./httpsnippet"),string_utility_1=__importDefault(require("./httpsnippet/helpers/string-utility")),mediaContent_1=require("../../models/mediaContent");function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:l={}},{activeServer:o,requestValues:u}){var p,c,d,m;const{securityHeaders:h,securityCookies:f,securityQueries:_,securityOAuth2ExtraCalls:v,basicAuth:y}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r),g=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),O={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:s},T={path:null==u?void 0:u.path,cookie:null==u?void 0:u.cookie,header:null==u?void 0:u.header,query:null==u?void 0:u.query,body:null==u?void 0:u.body};let b=!1;const S=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=T.header)||void 0===t?void 0:t[e.name])||(0,utils_1.getParameterValue)("header",e.name)||(0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,O,i))}})).map((e=>((null==g?void 0:g.name)&&"content-type"===e.name.toLowerCase()&&(b=!0,e.value=g.name),e))).concat(h);!b&&(null==g?void 0:g.name)&&S.unshift({name:"Content-Type",value:null==g?void 0:g.name});const C=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>(0,query_string_1.parse)((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,O,i))))).reduce(((e,t)=>{var a;for(const[r,i]of Object.entries(t))e.push({name:r,value:String((null===(a=T.cookie)||void 0===a?void 0:a[r])||i)});return e}),[]).concat(f),D=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>(0,query_string_1.parse)((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,O,i))))).reduce(((e,t)=>{var a,r,i;for(const[s,n]of Object.entries(t))e.push({name:s,value:(0,utils_1.isArrayOfObjects)(null===(a=T.query)||void 0===a?void 0:a[s])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=T.query)||void 0===r?void 0:r[s]))||String((null===(i=T.query)||void 0===i?void 0:i[s])||n)});return e}),[]).concat(_),E=`${null===(d=o||e.activeServer)||void 0===d?void 0:d.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,q=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:i}=t;return e[i]=(null===(a=T.path)||void 0===a?void 0:a[i])||n[i]||(0,utils_1.getParameterValue)(r,i),e}),{}),j=null===(m=null==g?void 0:g.examples)||void 0===m?void 0:m[t],P=(null==g?void 0:g.examples)||{},[A]=Object.values(P),w=T.body||(null==j?void 0:j.value)||(null==A?void 0:A.value)||(null==g?void 0:g.schema)&&Sampler.sample(null==g?void 0:g.schema.rawSchema,O,i),R=null==g?void 0:g.name.toLowerCase();let k="",M=[];switch((0,utils_2.normalizeMimeType)(R)){case constants_1.MediaTypes.JSON:k=JSON.stringify(getDataRequest(w,l));break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:k=(0,query_string_1.stringify)(getDataRequest(w,l)),M=objectToHarParams(getDataRequest(w,l));break;default:k=String(w||"")}const x=k?{mimeType:(null==g?void 0:g.name)||constants_1.MediaTypes.OCTET_STREAM,text:k,params:M}:void 0,H=e.responses.map((e=>e.code));return{method:e.httpVerb,url:E,httpVersion:"HTTP/1.1",cookies:C,headers:S,queryString:D,postData:x,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:y,pathParameters:q,serverVariables:(null==o?void 0:o.variables)||e.activeServer.variables,allResponseCodes:H}}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)},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)}};function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:i,options:s={}}){try{const{skipOptionalParameters:n,withOAuth2Call:l,spec:o,generatedPayloadSamplesMaxDepth:u,store:p}=s,c=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:i,skipOptionalParameters:n,withOAuth2Call:l,spec:o,generatedPayloadSamplesMaxDepth:u},p),d=new httpsnippet_1.HTTPSnippet(c);return langToSnippetConfig[e]?d.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),s)):"Language is not supported."}catch(e){return console.error(e),"Failed to generate code sample."}}function getSecurityData(e,t){var a,r,i,s;const n={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const l of(null==e?void 0:e.schemes)||[]){const e=(0,utils_1.getSecurityDetails)(l.id);switch(l.type){case"openIdConnect":null===(a=n.securityHeaders)||void 0===a||a.push({name:"Authorization",value:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";l.flows.clientCredentials&&t?n.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(l.flows.clientCredentials,l.scopes,e)):l.flows.password&&t&&n.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(l.flows.password,l.scopes,e)),null===(r=n.securityHeaders)||void 0===r||r.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===l.in&&(null===(i=n.securityHeaders)||void 0===i||i.push({name:l.name,value:t})),"cookie"===l.in&&n.securityCookies.push({name:l.name,value:t}),"query"===l.in&&n.securityQueries.push({name:l.name,value:t});break}case"http":"basic"===l.scheme?n.basicAuth={username:e.username||`<${string_utility_1.default.toSnakeCase((0,labels_1.l)("tryItAuthBasicUsername"))}>`,password:e.password||`<${string_utility_1.default.toSnakeCase((0,labels_1.l)("tryItAuthBasicPassword"))}>`}:null===(s=n.securityHeaders)||void 0===s||s.push({name:"Authorization",value:`${capitalizeFirst(l.scheme||"bearer")} <YOUR_${l.bearerFormat||"TOKEN"}_HERE>`})}}return n}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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:constants_1.MediaTypes.URL_ENCODED},{name:"Accept",value:constants_1.MediaTypes.JSON}],queryString:[],postData:{mimeType:constants_1.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(0,deepmerge_1.default)(e,t,{arrayMerge:utils_2.arrayMergeStrategy});try{return(0,deepmerge_1.default)(JSON.parse(e),t,{arrayMerge:utils_2.arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e){const t=[];for(const[a,r]of Object.entries(e))t.push({name:a,value:String(r)});return t}function isDefined(e){return void 0!==e}function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}exports.getCodeSample=getCodeSample,exports.isDefined=isDefined,exports.capitalizeFirst=capitalizeFirst;
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
package/lib/types/open-api.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parse as parseQueryString,stringify as stringifyQueryString}from"query-string";import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{deleteEmptyArrayItem,isArrayOfObjects,serializeParameterValue,getSecurityDetails,getParameterValue}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{l}from"../labels";import{HTTPSnippet}from"./httpsnippet";import StringUtility from"./httpsnippet/helpers/string-utility";import{getActiveMediaType}from"../../models/mediaContent";function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:o={}},{activeServer:l,requestValues:u}){var p,c,d;const{securityHeaders:
|
|
1
|
+
import{parse as parseQueryString,stringify as stringifyQueryString}from"query-string";import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{deleteEmptyArrayItem,isArrayOfObjects,serializeParameterValue,getSecurityDetails,getParameterValue}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{l}from"../labels";import{HTTPSnippet}from"./httpsnippet";import StringUtility from"./httpsnippet/helpers/string-utility";import{getActiveMediaType}from"../../models/mediaContent";function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:i,generatedPayloadSamplesMaxDepth:s=8,pathParams:n={},properties:o={}},{activeServer:l,requestValues:u}){var p,c,d,m;const{securityHeaders:h,securityCookies:y,securityQueries:g,securityOAuth2ExtraCalls:v,basicAuth:f}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r),O=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&getActiveMediaType(e.requestBody.content),T={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:s},S={path:null==u?void 0:u.path,cookie:null==u?void 0:u.cookie,header:null==u?void 0:u.header,query:null==u?void 0:u.query,body:null==u?void 0:u.body};let C=!1;const b=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=S.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))}})).map((e=>((null==O?void 0:O.name)&&"content-type"===e.name.toLowerCase()&&(C=!0,e.value=O.name),e))).concat(h);!C&&(null==O?void 0:O.name)&&b.unshift({name:"Content-Type",value:null==O?void 0:O.name});const E=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>parseQueryString(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))))).reduce(((e,t)=>{var a;for(const[r,i]of Object.entries(t))e.push({name:r,value:String((null===(a=S.cookie)||void 0===a?void 0:a[r])||i)});return e}),[]).concat(y),A=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>parseQueryString(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,T,i))))).reduce(((e,t)=>{var a,r,i;for(const[s,n]of Object.entries(t))e.push({name:s,value:isArrayOfObjects(null===(a=S.query)||void 0===a?void 0:a[s])&&JSON.stringify(deleteEmptyArrayItem(null===(r=S.query)||void 0===r?void 0:r[s]))||String((null===(i=S.query)||void 0===i?void 0:i[s])||n)});return e}),[]).concat(g),_=`${null===(d=l||e.activeServer)||void 0===d?void 0:d.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:i}=t;return e[i]=(null===(a=S.path)||void 0===a?void 0:a[i])||n[i]||getParameterValue(r,i),e}),{}),R=null===(m=null==O?void 0:O.examples)||void 0===m?void 0:m[t],w=(null==O?void 0:O.examples)||{},[D]=Object.values(w),j=S.body||(null==R?void 0:R.value)||(null==D?void 0:D.value)||(null==O?void 0:O.schema)&&Sampler.sample(null==O?void 0:O.schema.rawSchema,T,i),k=null==O?void 0:O.name.toLowerCase();let M="",H=[];switch(normalizeMimeType(k)){case MediaTypes.JSON:M=JSON.stringify(getDataRequest(j,o));break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:M=stringifyQueryString(getDataRequest(j,o)),H=objectToHarParams(getDataRequest(j,o));break;default:M=String(j||"")}const q=M?{mimeType:(null==O?void 0:O.name)||MediaTypes.OCTET_STREAM,text:M,params:H}:void 0,N=e.responses.map((e=>e.code));return{method:e.httpVerb,url:_,httpVersion:"HTTP/1.1",cookies:E,headers:b,queryString:A,postData:q,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:f,pathParameters:P,serverVariables:(null==l?void 0:l.variables)||e.activeServer.variables,allResponseCodes:N}}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)},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:i,options:s={}}){try{const{skipOptionalParameters:n,withOAuth2Call:o,spec:l,generatedPayloadSamplesMaxDepth:u,store:p}=s,c=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:i,skipOptionalParameters:n,withOAuth2Call:o,spec:l,generatedPayloadSamplesMaxDepth:u},p),d=new HTTPSnippet(c);return langToSnippetConfig[e]?d.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),s)):"Language is not supported."}catch(e){return console.error(e),"Failed to generate code sample."}}function getSecurityData(e,t){var a,r,i,s;const n={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const o of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(o.id);switch(o.type){case"openIdConnect":null===(a=n.securityHeaders)||void 0===a||a.push({name:"Authorization",value:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";o.flows.clientCredentials&&t?n.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(o.flows.clientCredentials,o.scopes,e)):o.flows.password&&t&&n.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(o.flows.password,o.scopes,e)),null===(r=n.securityHeaders)||void 0===r||r.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===o.in&&(null===(i=n.securityHeaders)||void 0===i||i.push({name:o.name,value:t})),"cookie"===o.in&&n.securityCookies.push({name:o.name,value:t}),"query"===o.in&&n.securityQueries.push({name:o.name,value:t});break}case"http":"basic"===o.scheme?n.basicAuth={username:e.username||`<${StringUtility.toSnakeCase(l("tryItAuthBasicUsername"))}>`,password:e.password||`<${StringUtility.toSnakeCase(l("tryItAuthBasicPassword"))}>`}:null===(s=n.securityHeaders)||void 0===s||s.push({name:"Authorization",value:`${capitalizeFirst(o.scheme||"bearer")} <YOUR_${o.bearerFormat||"TOKEN"}_HERE>`})}}return n}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){const t=[];for(const[a,r]of Object.entries(e))t.push({name:a,value:String(r)});return t}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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.40",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -119,34 +119,7 @@
|
|
|
119
119
|
"webpack-dev-server": "^4.9.3",
|
|
120
120
|
"workerize-loader": "github:redocly/workerize-loader#webpack-5-dist",
|
|
121
121
|
"js-yaml": "4.1.0",
|
|
122
|
-
"@redocly/theme": "0.
|
|
123
|
-
},
|
|
124
|
-
"nx": {
|
|
125
|
-
"namedInputs": {
|
|
126
|
-
"prod": [
|
|
127
|
-
"!{projectRoot}/**/__tests__/**",
|
|
128
|
-
"!{projectRoot}/playground/**/*",
|
|
129
|
-
"!{projectRoot}/.github/**/*",
|
|
130
|
-
"!{projectRoot}/docker-test/**/*",
|
|
131
|
-
"!{projectRoot}/tests/**/*"
|
|
132
|
-
]
|
|
133
|
-
},
|
|
134
|
-
"targets": {
|
|
135
|
-
"build": {
|
|
136
|
-
"outputs": [
|
|
137
|
-
"{projectRoot}/lib",
|
|
138
|
-
"{projectRoot}/lib-esm",
|
|
139
|
-
"{projectRoot}/bin",
|
|
140
|
-
"{projectRoot}/dist"
|
|
141
|
-
]
|
|
142
|
-
},
|
|
143
|
-
"test": {
|
|
144
|
-
"outputs": [
|
|
145
|
-
"{projectRoot}/report.json",
|
|
146
|
-
"{projectRoot}/coverage"
|
|
147
|
-
]
|
|
148
|
-
}
|
|
149
|
-
}
|
|
122
|
+
"@redocly/theme": "0.13.1"
|
|
150
123
|
},
|
|
151
124
|
"scripts": {
|
|
152
125
|
"start": "webpack serve --mode=development --hot",
|