@redocly/openapi-docs 3.1.3 → 3.2.0

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.
@@ -1,4 +1,2 @@
1
1
  export * from './Trigger';
2
- export * from './Description';
3
- export * from './ContentPanel';
4
2
  export * from './ResponsePanel';
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./Trigger"),exports),__exportStar(require("./Description"),exports),__exportStar(require("./ContentPanel"),exports),__exportStar(require("./ResponsePanel"),exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./Trigger"),exports),__exportStar(require("./ResponsePanel"),exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),replay_1=require("@redocly/replay"),store_1=require("../../jotai/store"),replay_2=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("../../utils"),utils_2=require("./utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,a;const n=(0,react_1.useRef)(null),{routingBasePath:i,mockServer:s,oAuth2RedirectURI:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{parser:l}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[u,p]=(0,react_1.useState)(!1),[c,m]=(0,jotai_1.useAtom)(replay_2.replayStateAtom),[,d]=(0,jotai_1.useAtom)(app_1.unsupportedFeatureScreenAtom),j=(0,jotai_1.useSetAtom)((0,operation_1.operationStore)(e.pointer)),[A,v]=(0,jotai_1.useAtom)(app_1.activeMimeNameAtom),[[,x],y]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(n);const h=(0,react_1.useCallback)((({requestValues:e,activeExampleName:t,activeMimeName:r,environment:o,environments:a})=>{j((r=>Object.assign(Object.assign({},r),{requestValues:e,activeExampleName:t}))),v(r||A),y({environment:o,environments:a})}),[j,v,A,y]),f=()=>{(0,utils_1.isMobile)({tablet:!0})?d(!0):(c!==constants_1.LOADING_STATE.LOADING&&p(!u),c===constants_1.LOADING_STATE.NOT_LOADED&&m(constants_1.LOADING_STATE.LOADING))};return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsx)("span",{children:"Experience it firsthand in the API Explorer!"}),(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:f,variant:"primary",iconPosition:"left",icon:c===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:c===constants_1.LOADING_STATE.LOADING?"Loading...":"Try it"}),u&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:n,children:(0,jsx_runtime_1.jsx)(replay_1.ReplayOverlay,{value:(0,utils_2.convertOperationToReplayValue)(e,r),onRequestChange:h,onClose:f,corsProxyUrl:t,operationUrl:i+e.href,onLoad:()=>m(constants_1.LOADING_STATE.LOADED),mockServer:s,environment:x,apiId:null===(a=null===(o=null==l?void 0:l.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===a?void 0:a.apiId,oAuth2RedirectURI:_})})})})]})}exports.Replay=(0,react_1.memo)(ReplayComponent);const Wrapper=styled_components_1.default.div`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),replay_1=require("@redocly/replay"),store_1=require("../../jotai/store"),replay_2=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("../../utils"),utils_2=require("./utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,a;const i=(0,react_1.useRef)(null),{routingBasePath:n,mockServer:s,oAuth2RedirectURI:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{parser:l}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[u,c]=(0,react_1.useState)(!1),[p,m]=(0,jotai_1.useAtom)(replay_2.replayStateAtom),[,d]=(0,jotai_1.useAtom)(app_1.unsupportedFeatureScreenAtom),j=(0,jotai_1.useSetAtom)((0,operation_1.operationStore)(e.pointer)),[v,A]=(0,jotai_1.useAtom)(app_1.activeMimeNameAtom),[[,x],y]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(i),(0,theme_1.useModalScrollLock)(u);const h=(0,react_1.useCallback)((({requestValues:e,activeExampleName:t,activeMimeName:r,environment:o,environments:a,activeSecuritySchemeIds:i})=>{j((r=>Object.assign(Object.assign({},r),{requestValues:e,activeExampleName:t,activeSecuritySchemeIds:i}))),A(r||v),y({environment:o,environments:a})}),[j,A,v,y]),f=()=>{(0,utils_1.isMobile)({tablet:!0})?d(!0):(p!==constants_1.LOADING_STATE.LOADING&&c(!u),p===constants_1.LOADING_STATE.NOT_LOADED&&m(constants_1.LOADING_STATE.LOADING))};return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsx)("span",{children:"Experience it firsthand in the API Explorer!"}),(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:f,variant:"primary",iconPosition:"left",icon:p===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:p===constants_1.LOADING_STATE.LOADING?"Loading...":"Try it"}),u&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:i,children:(0,jsx_runtime_1.jsx)(replay_1.ReplayOverlay,{value:(0,utils_2.convertOperationToReplayValue)(e,r),onRequestChange:h,onClose:f,corsProxyUrl:t,operationUrl:n+e.href,onLoad:()=>m(constants_1.LOADING_STATE.LOADED),mockServer:s,environment:x,apiId:null===(a=null===(o=null==l?void 0:l.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===a?void 0:a.apiId,oAuth2RedirectURI:_})})})})]})}exports.Replay=(0,react_1.memo)(ReplayComponent);const Wrapper=styled_components_1.default.div`
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: center;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertRequestSecurity=exports.convertOperationToReplayValue=void 0;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,n,t,r){var i,o;const a=(null==r?void 0:r.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(i=null==t?void 0:t.requestValues)||void 0===i?void 0:i.body)?{[a]:null===(o=null==t?void 0:t.requestValues)||void 0===o?void 0:o.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,r=e.map((e=>{var r;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(r=null==n?void 0:n[String(e.in)])||void 0===r?void 0:r[e.name])||e.example,schema:e.schema}}));for(const[e,i]of Object.entries(n||{}))for(const[n,o]of Object.entries(i||{}))t.has(e+":"+n)||r.push({name:n,in:e,required:!1,description:"",example:String(o),schema:void 0});return r}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,r,i,o,a;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(r=e[0])||void 0===r?void 0:r.examples);if(l)return l;if(null===(i=e.schema)||void 0===i?void 0:i.example)return e.schema.example;const u=(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.value)||(null===(a=null==n?void 0:n.default)||void 0===a?void 0:a.rawValue);return(null==u?void 0:u[e.name])?(0,theme_1.isPrimitive)(null==u?void 0:u[e.name])?String(null==u?void 0:u[e.name]):JSON.stringify(null==u?void 0:u[e.name]):""}function convertRequestBody(e,n,t){var r;if(!e||!(null===(r=e.content)||void 0===r?void 0:r.mediaTypes)){if(!t)return;return{mediaTypes:Object.fromEntries(Object.entries(t).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,r)=>{var i,o;const a=r.schema,l=(null==t?void 0:t[r.name])?{default:{value:null==t?void 0:t[r.name],rawValue:null==t?void 0:t[r.name],mime:r.name}}:r.examples||r.formExamples;return e[r.name]={name:r.name,examples:l,schema:getBodySchema(null===(i=r.schema)||void 0===i?void 0:i.rawSchema,n),parameters:null===(o=null==a?void 0:a.fields)||void 0===o?void 0:o.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertRequestSecurity=exports.convertOperationToReplayValue=void 0;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,n,t,r){var i,o;const a=(null==r?void 0:r.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(i=null==t?void 0:t.requestValues)||void 0===i?void 0:i.body)?{[a]:null===(o=null==t?void 0:t.requestValues)||void 0===o?void 0:o.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,r=e.map((e=>{var r;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(r=null==n?void 0:n[String(e.in)])||void 0===r?void 0:r[e.name])||e.example,schema:e.schema}}));for(const[e,i]of Object.entries(n||{}))for(const[n,o]of Object.entries(i||{}))t.has(e+":"+n)||r.push({name:n,in:e,required:!1,description:"",example:String(o),schema:void 0});return r}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,r,i,o,a;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(r=e[0])||void 0===r?void 0:r.examples);if(l)return l;if(null===(i=e.schema)||void 0===i?void 0:i.example)return e.schema.example;const u=(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.value)||(null===(a=null==n?void 0:n.default)||void 0===a?void 0:a.rawValue);return(null==u?void 0:u[e.name])?(0,theme_1.isPrimitive)(null==u?void 0:u[e.name])?String(null==u?void 0:u[e.name]):JSON.stringify(null==u?void 0:u[e.name]):""}function convertRequestBody(e,n,t){var r;if(!e||!(null===(r=e.content)||void 0===r?void 0:r.mediaTypes)){if(!t)return;return{mediaTypes:Object.fromEntries(Object.entries(t).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,r)=>{var i,o;const a=r.schema,l=(null==t?void 0:t[r.name])?{default:{value:null==t?void 0:t[r.name],rawValue:null==t?void 0:t[r.name],mime:r.name}}:r.examples||r.formExamples;return e[r.name]={name:r.name,examples:l,schema:getBodySchema(null===(i=r.schema)||void 0===i?void 0:i.rawSchema,n),parameters:null===(o=null==a?void 0:a.fields)||void 0===o?void 0:o.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;
2
2
  //# sourceMappingURL=utils.js.map
@@ -3,6 +3,7 @@ export type OperationStore = {
3
3
  activeOneOf: {
4
4
  [pointer: string]: number;
5
5
  };
6
+ activeSecuritySchemeIds?: string[];
6
7
  requestValues: {
7
8
  [field: string]: any;
8
9
  };
@@ -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 s=Object.getOwnPropertyDescriptor(t,a);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,s)}: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 Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),httpsnippet_1=require("./httpsnippet"),mediaContent_1=require("../../models/mediaContent"),string_utility_1=__importDefault(require("./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 p,c,d;const m=l.server,f=e.servers.find((e=>e.url===m))||e.servers[0],{securityHeaders:h,securityCookies:_,securityQueries:g,securityOAuth2ExtraCalls:v,basicAuth:O}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r,l),y=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),T={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i},C=u;let S=!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=C.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,T,s))}})).map((e=>((null==y?void 0:y.name)&&"content-type"===e.name.toLowerCase()&&(S=!0,e.value=y.name),e))).concat(h);!S&&(null==y?void 0:y.name)&&b.unshift({name:"Content-Type",value:null==y?void 0:y.name});const D=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,T,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=C.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(_),E=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,T,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:(0,utils_1.isArrayOfObjects)(null===(a=C.query)||void 0===a?void 0:a[i])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=C.query)||void 0===r?void 0:r[i]))||String((null===(s=C.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(g),j=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=C.path)||void 0===a?void 0:a[s])||n[s]||(0,utils_1.getParameterValue)(r,s),e}),{}),w=null===(d=null==y?void 0:y.examples)||void 0===d?void 0:d[t],k=(null==y?void 0:y.examples)||{},[q]=Object.values(k),A=(null==C?void 0:C.body)||(null==w?void 0:w.value)||(null==q?void 0:q.value)||(null==y?void 0:y.schema)&&Sampler.sample(null==y?void 0:y.schema.rawSchema,T,s),R=null==y?void 0:y.name.toLowerCase();let M="",x=[];switch((0,utils_2.normalizeMimeType)(R)){case constants_1.MediaTypes.JSON:case constants_1.MediaTypes.XML:M=JSON.stringify(getDataRequest(A,o));break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:M=utils_1.queryString.stringify(getDataRequest(A,o)),x=objectToHarParams(getDataRequest(A,o));break;default:M=String(A||"")}const N=M?{mimeType:(null==y?void 0:y.name)||constants_1.MediaTypes.OCTET_STREAM,text:M,params:x}:void 0,H=e.responses.map((e=>e.code));return{method:e.httpVerb,url:j,httpVersion:"HTTP/1.1",cookies:D,headers:b,queryString:E,postData:N,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:O,pathParameters:P,serverVariables:l,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)},"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)}};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}),m=new httpsnippet_1.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=(0,utils_1.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||`<${string_utility_1.default.toSnakeCase("Username")}>`,password:e.password||`<${string_utility_1.default.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: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,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}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 s=Object.getOwnPropertyDescriptor(t,a);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,s)}: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 Sampler=__importStar(require("openapi-sampler")),deepmerge_1=__importDefault(require("deepmerge")),utils_1=require("../../utils"),utils_2=require("../utils"),constants_1=require("../../constants"),httpsnippet_1=require("./httpsnippet"),mediaContent_1=require("../../models/mediaContent"),string_utility_1=__importDefault(require("./httpsnippet/helpers/string-utility"));function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return(0,utils_1.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:c}){var p,d,m;const f=l.server,h=e.servers.find((e=>e.url===f))||e.servers[0],_=getSelectedSecurityScheme(e.security,c),{securityHeaders:y,securityCookies:v,securityQueries:g,securityOAuth2ExtraCalls:O,basicAuth:S}=getSecurityData(_||(null===(p=e.security)||void 0===p?void 0:p[0]),r,l),T=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&(0,mediaContent_1.getActiveMediaType)(e.requestBody.content),C={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i},b=u;let D=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=b.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,C,s))}})).map((e=>((null==T?void 0:T.name)&&"content-type"===e.name.toLowerCase()&&(D=!0,e.value=T.name),e))).concat(y);!D&&(null==T?void 0:T.name)&&E.unshift({name:"Content-Type",value:null==T?void 0:T.name});const j=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>utils_1.queryString.parse((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,C,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=b.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=>utils_1.queryString.parse((0,utils_1.serializeParameterValue)(e,Sampler.sample(e.schema.rawSchema,C,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:(0,utils_1.isArrayOfObjects)(null===(a=b.query)||void 0===a?void 0:a[i])&&JSON.stringify((0,utils_1.deleteEmptyArrayItem)(null===(r=b.query)||void 0===r?void 0:r[i]))||String((null===(s=b.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(g),w=`${null==h?void 0:h.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,k=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=b.path)||void 0===a?void 0:a[s])||n[s]||(0,utils_1.getParameterValue)(r,s),e}),{}),q=null===(m=null==T?void 0:T.examples)||void 0===m?void 0:m[t],A=(null==T?void 0:T.examples)||{},[R]=Object.values(A),M=(null==b?void 0:b.body)||(null==q?void 0:q.value)||(null==R?void 0:R.value)||(null==T?void 0:T.schema)&&Sampler.sample(null==T?void 0:T.schema.rawSchema,C,s),x=null==T?void 0:T.name.toLowerCase();let N="",H=[];switch((0,utils_2.normalizeMimeType)(x)){case constants_1.MediaTypes.JSON:case constants_1.MediaTypes.XML:N=JSON.stringify(getDataRequest(M,o));break;case constants_1.MediaTypes.URL_ENCODED:case constants_1.MediaTypes.MULTIPART:N=utils_1.queryString.stringify(getDataRequest(M,o)),H=objectToHarParams(getDataRequest(M,o));break;default:N=String(M||"")}const z=N?{mimeType:(null==T?void 0:T.name)||constants_1.MediaTypes.OCTET_STREAM,text:N,params:H}:void 0,U=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:j,headers:E,queryString:P,postData:z,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:O,basicAuth:S,pathParameters:k,serverVariables:l,allResponseCodes:U}}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)}};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:c,store:p}=i,d=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:o,withOAuth2Call:l,spec:u,generatedPayloadSamplesMaxDepth:c},{environment:n,requestValues:p.requestValues,activeSecuritySchemeIds:p.activeSecuritySchemeIds}),m=new httpsnippet_1.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=(0,utils_1.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||`<${string_utility_1.default.toSnakeCase("Username")}>`,password:e.password||`<${string_utility_1.default.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: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,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}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
@@ -0,0 +1 @@
1
+ export declare function areArraysEqual(arr1: unknown[], arr2: unknown[]): boolean;
@@ -0,0 +1,2 @@
1
+ "use strict";function areArraysEqual(r,e){return r.length===e.length&&r.every(((r,a)=>r===e[a]))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.areArraysEqual=void 0,exports.areArraysEqual=areArraysEqual;
2
+ //# sourceMappingURL=areArraysEqual.js.map
@@ -20,3 +20,4 @@ export * from './path';
20
20
  export * from './queryString';
21
21
  export * from './isMobile';
22
22
  export * from './replaceVariables';
23
+ export * from './areArraysEqual';
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var p=Object.getOwnPropertyDescriptor(r,t);p&&!("get"in p?!r.__esModule:p.writable||p.configurable)||(p={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,p)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./JsonPointer"),exports),__exportStar(require("./openapi"),exports),__exportStar(require("./helpers"),exports),__exportStar(require("./highlight"),exports),__exportStar(require("./dom"),exports),__exportStar(require("./debug"),exports),__exportStar(require("./sort"),exports),__exportStar(require("./argValuesHelpers"),exports),__exportStar(require("./theme-helpers"),exports),__exportStar(require("./debounce"),exports),__exportStar(require("./security-details"),exports),__exportStar(require("./session-storage"),exports),__exportStar(require("./local-storage"),exports),__exportStar(require("./parameters"),exports),__exportStar(require("./string"),exports),__exportStar(require("./test-utils"),exports),__exportStar(require("./compose"),exports),__exportStar(require("./saveTextBeforeHeading"),exports),__exportStar(require("./path"),exports),__exportStar(require("./queryString"),exports),__exportStar(require("./isMobile"),exports),__exportStar(require("./replaceVariables"),exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var p=Object.getOwnPropertyDescriptor(r,t);p&&!("get"in p?!r.__esModule:p.writable||p.configurable)||(p={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,p)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./JsonPointer"),exports),__exportStar(require("./openapi"),exports),__exportStar(require("./helpers"),exports),__exportStar(require("./highlight"),exports),__exportStar(require("./dom"),exports),__exportStar(require("./debug"),exports),__exportStar(require("./sort"),exports),__exportStar(require("./argValuesHelpers"),exports),__exportStar(require("./theme-helpers"),exports),__exportStar(require("./debounce"),exports),__exportStar(require("./security-details"),exports),__exportStar(require("./session-storage"),exports),__exportStar(require("./local-storage"),exports),__exportStar(require("./parameters"),exports),__exportStar(require("./string"),exports),__exportStar(require("./test-utils"),exports),__exportStar(require("./compose"),exports),__exportStar(require("./saveTextBeforeHeading"),exports),__exportStar(require("./path"),exports),__exportStar(require("./queryString"),exports),__exportStar(require("./isMobile"),exports),__exportStar(require("./replaceVariables"),exports),__exportStar(require("./areArraysEqual"),exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,2 @@
1
1
  export * from './Trigger';
2
- export * from './Description';
3
- export * from './ContentPanel';
4
2
  export * from './ResponsePanel';
@@ -1,2 +1,2 @@
1
- export*from"./Trigger";export*from"./Description";export*from"./ContentPanel";export*from"./ResponsePanel";
1
+ export*from"./Trigger";export*from"./ResponsePanel";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Suspense,memo,useCallback,useState,useRef}from"react";import{Button,RocketIcon,CircleDashIcon,Portal,useFocusTrap}from"@redocly/theme";import styled from"styled-components";import{useAtom,useAtomValue,useSetAtom}from"jotai";import{ReplayOverlay}from"@redocly/replay";import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{replayStateAtom}from"../../jotai/replay";import{operationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{activeMimeNameAtom,unsupportedFeatureScreenAtom,environmentAtom}from"../../jotai/app";import{isMobile}from"../../utils";import{convertOperationToReplayValue}from"./utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,a;const n=useRef(null),{routingBasePath:i,mockServer:s,oAuth2RedirectURI:m}=useAtomValue(globalOptionsAtom),{parser:l}=useAtomValue(globalStoreAtom),[p,c]=useState(!1),[u,A]=useAtom(replayStateAtom),[,d]=useAtom(unsupportedFeatureScreenAtom),v=useSetAtom(operationStore(e.pointer)),[f,x]=useAtom(activeMimeNameAtom),[[,y],O]=useAtom(environmentAtom);useFocusTrap(n);const S=useCallback((({requestValues:e,activeExampleName:o,activeMimeName:t,environment:r,environments:a})=>{v((t=>Object.assign(Object.assign({},t),{requestValues:e,activeExampleName:o}))),x(t||f),O({environment:r,environments:a})}),[v,x,f,O]),j=()=>{isMobile({tablet:!0})?d(!0):(u!==LOADING_STATE.LOADING&&c(!p),u===LOADING_STATE.NOT_LOADED&&A(LOADING_STATE.LOADING))};return _jsxs(Wrapper,{children:[_jsx("span",{children:"Experience it firsthand in the API Explorer!"}),_jsx(Button,{onClick:j,variant:"primary",iconPosition:"left",icon:u===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:u===LOADING_STATE.LOADING?"Loading...":"Try it"}),p&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:n,children:_jsx(ReplayOverlay,{value:convertOperationToReplayValue(e,t),onRequestChange:S,onClose:j,corsProxyUrl:o,operationUrl:i+e.href,onLoad:()=>A(LOADING_STATE.LOADED),mockServer:s,environment:y,apiId:null===(a=null===(r=null==l?void 0:l.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===a?void 0:a.apiId,oAuth2RedirectURI:m})})})})]})}export const Replay=memo(ReplayComponent);const Wrapper=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Suspense,memo,useCallback,useState,useRef}from"react";import{Button,RocketIcon,CircleDashIcon,Portal,useFocusTrap,useModalScrollLock}from"@redocly/theme";import styled from"styled-components";import{useAtom,useAtomValue,useSetAtom}from"jotai";import{ReplayOverlay}from"@redocly/replay";import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{replayStateAtom}from"../../jotai/replay";import{operationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{activeMimeNameAtom,unsupportedFeatureScreenAtom,environmentAtom}from"../../jotai/app";import{isMobile}from"../../utils";import{convertOperationToReplayValue}from"./utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,a;const n=useRef(null),{routingBasePath:i,mockServer:s,oAuth2RedirectURI:l}=useAtomValue(globalOptionsAtom),{parser:m}=useAtomValue(globalStoreAtom),[p,c]=useState(!1),[u,A]=useAtom(replayStateAtom),[,d]=useAtom(unsupportedFeatureScreenAtom),v=useSetAtom(operationStore(e.pointer)),[S,f]=useAtom(activeMimeNameAtom),[[,y],x]=useAtom(environmentAtom);useFocusTrap(n),useModalScrollLock(p);const I=useCallback((({requestValues:e,activeExampleName:o,activeMimeName:t,environment:r,environments:a,activeSecuritySchemeIds:n})=>{v((t=>Object.assign(Object.assign({},t),{requestValues:e,activeExampleName:o,activeSecuritySchemeIds:n}))),f(t||S),x({environment:r,environments:a})}),[v,f,S,x]),O=()=>{isMobile({tablet:!0})?d(!0):(u!==LOADING_STATE.LOADING&&c(!p),u===LOADING_STATE.NOT_LOADED&&A(LOADING_STATE.LOADING))};return _jsxs(Wrapper,{children:[_jsx("span",{children:"Experience it firsthand in the API Explorer!"}),_jsx(Button,{onClick:O,variant:"primary",iconPosition:"left",icon:u===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:u===LOADING_STATE.LOADING?"Loading...":"Try it"}),p&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:n,children:_jsx(ReplayOverlay,{value:convertOperationToReplayValue(e,t),onRequestChange:I,onClose:O,corsProxyUrl:o,operationUrl:i+e.href,onLoad:()=>A(LOADING_STATE.LOADED),mockServer:s,environment:y,apiId:null===(a=null===(r=null==m?void 0:m.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===a?void 0:a.apiId,oAuth2RedirectURI:l})})})})]})}export const Replay=memo(ReplayComponent);const Wrapper=styled.div`
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: center;
@@ -1,2 +1,2 @@
1
- import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,t,i){var a,r;const o=(null==i?void 0:i.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(a=null==t?void 0:t.requestValues)||void 0===a?void 0:a.body)?{[o]:null===(r=null==t?void 0:t.requestValues)||void 0===r?void 0:r.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,i=e.map((e=>{var i;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(i=null==n?void 0:n[String(e.in)])||void 0===i?void 0:i[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(n||{}))for(const[n,r]of Object.entries(a||{}))t.has(e+":"+n)||i.push({name:n,in:e,required:!1,description:"",example:String(r),schema:void 0});return i}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,i,a,r,o;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(i=e[0])||void 0===i?void 0:i.examples);if(l)return l;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const m=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?isPrimitive(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,n,t){var i;if(!e||!(null===(i=e.content)||void 0===i?void 0:i.mediaTypes)){if(!t)return;return{mediaTypes:Object.fromEntries(Object.entries(t).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,i)=>{var a,r;const o=i.schema,l=(null==t?void 0:t[i.name])?{default:{value:null==t?void 0:t[i.name],rawValue:null==t?void 0:t[i.name],mime:i.name}}:i.examples||i.formExamples;return e[i.name]={name:i.name,examples:l,schema:getBodySchema(null===(a=i.schema)||void 0===a?void 0:a.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
1
+ import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,i,t){var a,r;const o=(null==t?void 0:t.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==i?void 0:i.requestValues),body:convertRequestBody(e.requestBody,n,(null===(a=null==i?void 0:i.requestValues)||void 0===a?void 0:a.body)?{[o]:null===(r=null==i?void 0:i.requestValues)||void 0===r?void 0:r.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const i=new Set,t=e.map((e=>{var t;return i.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(t=null==n?void 0:n[String(e.in)])||void 0===t?void 0:t[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(n||{}))for(const[n,r]of Object.entries(a||{}))i.has(e+":"+n)||t.push({name:n,in:e,required:!1,description:"",example:String(r),schema:void 0});return t}function getInputType({type:e,format:n,enum:i}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":i.length>0?"select":"text":"file"}function getFieldExamples(e,n){var i,t,a,r,o;const l=(null===(i=e[0])||void 0===i?void 0:i.example)||(null===(t=e[0])||void 0===t?void 0:t.examples);if(l)return l;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const m=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?isPrimitive(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,n,i){var t;if(!e||!(null===(t=e.content)||void 0===t?void 0:t.mediaTypes)){if(!i)return;return{mediaTypes:Object.fromEntries(Object.entries(i).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,t)=>{var a,r;const o=t.schema,l=(null==i?void 0:i[t.name])?{default:{value:null==i?void 0:i[t.name],rawValue:null==i?void 0:i[t.name],mime:t.name}}:t.examples||t.formExamples;return e[t.name]={name:t.name,examples:l,schema:getBodySchema(null===(a=t.schema)||void 0===a?void 0:a.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
2
2
  //# sourceMappingURL=utils.js.map
@@ -3,6 +3,7 @@ export type OperationStore = {
3
3
  activeOneOf: {
4
4
  [pointer: string]: number;
5
5
  };
6
+ activeSecuritySchemeIds?: string[];
6
7
  requestValues: {
7
8
  [field: string]: any;
8
9
  };
@@ -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 p,c,d;const m=l.server,h=e.servers.find((e=>e.url===m))||e.servers[0],{securityHeaders:y,securityCookies:f,securityQueries:g,securityOAuth2ExtraCalls:v,basicAuth:O}=getSecurityData(null===(p=e.security)||void 0===p?void 0:p[0],r,l),T=(null===(c=null==e?void 0:e.requestBody)||void 0===c?void 0:c.content)&&getActiveMediaType(e.requestBody.content),S={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i},C=u;let b=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=C.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,S,s))}})).map((e=>((null==T?void 0:T.name)&&"content-type"===e.name.toLowerCase()&&(b=!0,e.value=T.name),e))).concat(y);!b&&(null==T?void 0:T.name)&&E.unshift({name:"Content-Type",value:null==T?void 0:T.name});const _=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,S,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=C.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(f),A=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,S,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=C.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=C.query)||void 0===r?void 0:r[i]))||String((null===(s=C.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(g),k=`${null==h?void 0:h.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,P=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=C.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),j=null===(d=null==T?void 0:T.examples)||void 0===d?void 0:d[t],w=(null==T?void 0:T.examples)||{},[R]=Object.values(w),D=(null==C?void 0:C.body)||(null==j?void 0:j.value)||(null==R?void 0:R.value)||(null==T?void 0:T.schema)&&Sampler.sample(null==T?void 0:T.schema.rawSchema,S,s),M=null==T?void 0:T.name.toLowerCase();let q="",H=[];switch(normalizeMimeType(M)){case MediaTypes.JSON:case MediaTypes.XML:q=JSON.stringify(getDataRequest(D,o));break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:q=queryString.stringify(getDataRequest(D,o)),H=objectToHarParams(getDataRequest(D,o));break;default:q=String(D||"")}const N=q?{mimeType:(null==T?void 0:T.name)||MediaTypes.OCTET_STREAM,text:q,params:H}:void 0,x=e.responses.map((e=>e.code));return{method:e.httpVerb,url:k,httpVersion:"HTTP/1.1",cookies:_,headers:E,queryString:A,postData:N,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:v,basicAuth:O,pathParameters:P,serverVariables:l,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)},"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}),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)}
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;
@@ -0,0 +1,2 @@
1
+ export function areArraysEqual(e,r){return e.length===r.length&&e.every(((e,n)=>e===r[n]))}
2
+ //# sourceMappingURL=areArraysEqual.js.map
@@ -20,3 +20,4 @@ export * from './path';
20
20
  export * from './queryString';
21
21
  export * from './isMobile';
22
22
  export * from './replaceVariables';
23
+ export * from './areArraysEqual';
@@ -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",
3
+ "version": "3.2.0",
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.3",
47
+ "@redocly/replay": "0.3.4",
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.37.7"
94
+ "@redocly/theme": "0.38.0"
95
95
  },
96
96
  "scripts": {
97
97
  "start": "webpack serve --mode=development --hot",
@@ -1,2 +0,0 @@
1
- import { Panel } from '@redocly/theme';
2
- export declare const ContentPanel: import("styled-components").StyledComponent<typeof Panel, any, {}, never>;
@@ -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,2 +0,0 @@
1
- import { Panel } from '@redocly/theme';
2
- export declare const ContentPanel: import("styled-components").StyledComponent<typeof Panel, any, {}, never>;
@@ -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>;
@@ -1,8 +0,0 @@
1
- import styled from"styled-components";export const Description=styled.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