@redocly/reference-docs 2.42.5 → 2.43.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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),informed_1=require("informed"),mobx_react_1=require("mobx-react"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),react_1=require("react"),utils_1=require("../../utils"),redoc_lib_1=require("../../redoc-lib"),RenderHook_1=require("../../redoc-lib/src/components/RenderHook"),Labels_1=require("../../redoc-lib/src/services/Labels"),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),helper_1=require("../common/FileUpload/helper"),OperationParameters_1=require("../OperationParameters"),hooks_1=require("../../hooks"),events_1=require("../../events"),utils_2=require("./utils"),AuthPanel_1=require("./AuthPanel"),ConsoleBadges_1=require("./ConsoleBadges"),RequestBody_1=require("./RequestBody"),ResponsePanel_1=require("./ResponsePanel"),ActionPanel_1=require("./ActionPanel"),ServersDropdown_1=require("./ServersDropdown"),TryItPanel_1=require("./TryItPanel"),styled_1=require("./styled");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e;var t=e.getState(),s=t.values,i=(0,tslib_1.__rest)(t,["values"]);setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},s),{query:(0,utils_2.unescapeQueryParams)(s.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{query:(0,utils_2.unescapeQueryParams)(e.query||{})});r.setState((function(e){return{form:(0,tslib_1.__assign)((0,tslib_1.__assign)({},e.form),{values:t})}}),(function(){(0,utils_2.updateStorage)(r.state.form),r.props.operation.setRequestValues(e)}))}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e}),r.props.operation.setActiveServer(e)}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(r,void 0,void 0,(function(){var e,t,r,s,i,o,n,a,l,u,_,d,c,p,h,v,m,b,g,y,f,x,j,P,q,S,A,C,w,k,I,O,T,R,B,F,H,V,D,E,U,N,L=this;return(0,tslib_1.__generator)(this,(function(W){switch(W.label){case 0:if(e=this.props,t=e.store,r=e.operation,s=e.onResponse,null===(T=this.formApi)||void 0===T||T.submitForm(),((null===(R=this.formApi)||void 0===R?void 0:R.getState())||this.state.form).invalid)return this.setState({shaking:!0}),setTimeout((function(){return L.setState({shaking:!1})}),1e3),null===(F=null===(B=null==t?void 0:t.options.events)||void 0===B?void 0:B.tryItSent)||void 0===F||F.call(B,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=(this.state.form||(null===(H=this.formApi)||void 0===H?void 0:H.getState())).values,o=this.props.operation,n=o.servers,a=o.requestBody,l=a&&a.content&&a.content.active&&a.content.active.name||"",u=i.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),_=this.state.resolvedRawSpec,d=(r.httpVerb||"").toLowerCase(),!n)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=n.find((function(e){return L.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),p=Date.now(),h=!!window.document.documentMode,m=i.auth,i.auth?(b=Object.keys(i.auth)[0],g=(0,utils_1.unescapeFormId)(b),v=(0,tslib_1.__assign)((0,tslib_1.__assign)({},_),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes),(w={},w[g]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes[g]),{type:"openIdConnect"===(null==_?void 0:_.components.securitySchemes[g].type)?"oauth2":null==_?void 0:_.components.securitySchemes[g].type}),w))})}),m=(0,tslib_1.__assign)((0,tslib_1.__assign)({},m),((k={})[g]=m[b],k))):v=(0,tslib_1.__assign)({},_),v.servers=n,(y=t.options.corsProxyUrl)&&n.length&&(v.servers=n.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:y+normalizeUrlProtocol(e.url)})})),v.paths=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths),((I={})[r.path]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths[r.path]),((O={})[d]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths[r.path][d]),{servers:void 0}),O.servers=void 0,O)),I))),(f=(null===(D=null===(V=null==a?void 0:a.content)||void 0===V?void 0:V.active)||void 0===D?void 0:D.name)||null)&&u&&(0,helper_1.isFileUploadMime)(f)&&(x=Object.values(u),u=x.length>1?x:x[0]),j={userFetch:h&&require("cross-fetch").fetch,server:y?y+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:v,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},i.path),i.query),i.header),i.cookie),securities:{authorized:m},requestBody:u,requestContentType:f,responseContentType:(null===(E=i.header)||void 0===E?void 0:E.Accept)||null,requestInterceptor:(0,utils_2.makeRequestInterceptor)(t.options,r,null==m?void 0:m.Authorization)},W.label=1;case 1:return W.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(j)];case 2:return P=W.sent(),(q=null==P?void 0:P.data)instanceof Blob?((0,helper_1.isFileUploadMime)(q.type)&&(P.fileInfo={rawData:q,fileName:(0,utils_2.getFileNameFromHeaders)(P.headers)}),S=P,[4,q.text()]):[3,4];case 3:S.data=W.sent(),W.label=4;case 4:return null==s||s({request:j,response:P}),this.setState({response:P,error:void 0}),[3,9];case 5:return(A=W.sent())&&A.response&&A.response.data instanceof Blob?(C=A.response,[4,A.response.data.text()]):[3,7];case 6:C.data=W.sent(),null==s||s({request:j,response:A.response}),W.label=7;case 7:return this.setState({response:void 0,error:A}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-p}),null===(N=null===(U=null==t?void 0:t.options.events)||void 0===U?void 0:U.tryItSent)||void 0===N||N.call(U,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[7];case 9:return[2]}}))}))}}),r.state={form:{values:{path:(0,utils_2.getParameters)(t.operation.parameters,"path"),cookie:(0,utils_2.getParameters)(t.operation.parameters,"cookie"),header:(0,utils_2.getParameters)(t.operation.parameters,"header"),query:(0,utils_2.getParameters)(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,s,i;return(0,tslib_1.__generator)(this,(function(o){switch(o.label){case 0:return t=this.props,r=t.store,s=t.operation,[4,r.dereferenceSpecForTryIt(s)];case 1:return i=o.sent(),this.setState({resolvedRawSpec:i}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,s=e.rootElement,i=this.state,o=i.shaking,n=i.activeTab,a=i.form,l=i.response,u=i.loading,_=i.error,d=!(!l&&!_);return(0,jsx_runtime_1.jsxs)(ConsoleWrapHook,(0,tslib_1.__assign)({shaking:o,className:r,rootElement:s},{children:[(0,jsx_runtime_1.jsxs)(Panel_1.CodeHeader,{children:[(0,jsx_runtime_1.jsx)(ConsoleBadges_1.ConsoleBadges,{active:n,hasResponse:d,onChange:this.handleTabChange},void 0),this.props.onClose&&(0,jsx_runtime_1.jsx)(styled_1.CloseButton,(0,tslib_1.__assign)({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:0!==n,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:1!==n,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),(0,jsx_runtime_1.jsx)(ActionPanel_1.ActionPanel,{hasResponse:d,params:a.values,operation:t,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,s=t.store,i=t.properties,o=t.securityDefaults,n=this.state,a=n.form,l=n.resolvedRawSpec,u=n.server,_=a.errors||{},d=_.path||_.cookie||_.header||_.query,c=l&&redoc_lib_1.JsonPointer.get(l,r.pointer),p=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];p&&a.values.auth[p]||(p=void 0),!p||void 0===a.values.auth[p].token&&void 0===a.values.auth[p].client_id&&void 0===a.values.auth[p].client_secret||a.values.auth[p].token&&a.values.auth[p].token.access_token||(p=void 0),p&&null!=a.values.auth[p].username&&(a.values.auth[p].username&&a.values.auth[p].password||(p=void 0));var h=r.parameters||[],v=null===(e=null==s?void 0:s.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:"Loading..."},void 0)||(0,jsx_runtime_1.jsxs)(informed_1.Form,(0,tslib_1.__assign)({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},{children:[(0,jsx_runtime_1.jsx)(ServersDropdown_1.ServersDropdown,{operation:r,onChange:this.handleServerChange},void 0),(0,jsx_runtime_1.jsxs)(Panel_1.Accordion,(0,tslib_1.__assign)({initialActiveIdx:r.security.length&&p?1:0},{children:[r.security.length&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!p&&!!_.auth,success:!!p},{children:v?(0,jsx_runtime_1.jsx)(AuthPanelHook,(0,tslib_1.__assign)({field:"auth",validate:AuthPanel_1.requiredValidator},{children:function(e){return(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:v,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}},void 0)}}),void 0):(0,jsx_runtime_1.jsx)(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:a,operation:r,activeServer:u.url,authCorsProxyUrl:s.options.authCorsProxyUrl,securityDefaults:o},void 0)}),void 0)||null,r.requestBody&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!_.body},{children:(0,jsx_runtime_1.jsx)(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:r.requestBody,id:r.id,resolvedBody:null==c?void 0:c.requestBody,properties:i},void 0)}),void 0)||null,h.length&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:(0,jsx_runtime_1.jsx)(OperationParameters_1.OperationParameters,{operation:r,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,s=e.time;return(0,jsx_runtime_1.jsx)(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:s},void 0)}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(react_1.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,s=e.children,i=e.rootElement,o=(0,hooks_1.useDimensions)(i)[0];return(0,jsx_runtime_1.jsx)(styled_1.ConsoleWrap,(0,tslib_1.__assign)({shaking:t,className:r,"data-cy":"console",fullWidth:null==o?void 0:o.width},{children:s}),void 0)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,s=t.render,i=t.userProps,o=r.setValue,n=i.children;return s((0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:n(o)},void 0))}exports.Console=Console;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;var tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),informed_1=require("informed"),mobx_react_1=require("mobx-react"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),react_1=require("react"),utils_1=require("../../utils"),redoc_lib_1=require("../../redoc-lib"),RenderHook_1=require("../../redoc-lib/src/components/RenderHook"),Labels_1=require("../../redoc-lib/src/services/Labels"),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),helper_1=require("../common/FileUpload/helper"),OperationParameters_1=require("../OperationParameters"),hooks_1=require("../../hooks"),events_1=require("../../events"),utils_2=require("./utils"),AuthPanel_1=require("./AuthPanel"),ConsoleBadges_1=require("./ConsoleBadges"),RequestBody_1=require("./RequestBody"),ResponsePanel_1=require("./ResponsePanel"),ActionPanel_1=require("./ActionPanel"),ServersDropdown_1=require("./ServersDropdown"),TryItPanel_1=require("./TryItPanel"),styled_1=require("./styled");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(r,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.formApi=e;var t=e.getState(),s=t.values,i=(0,tslib_1.__rest)(t,["values"]);setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},i),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},s),{query:(0,utils_2.unescapeQueryParams)(s.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{query:(0,utils_2.unescapeQueryParams)(e.query||{})});r.setState((function(e){return{form:(0,tslib_1.__assign)((0,tslib_1.__assign)({},e.form),{values:t})}}),(function(){(0,utils_2.updateStorage)(r.state.form),r.props.operation.setRequestValues(e)}))}}),Object.defineProperty(r,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({activeTab:e})}}),Object.defineProperty(r,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.setState({server:e}),r.props.operation.setActiveServer(e)}}),Object.defineProperty(r,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return(0,tslib_1.__awaiter)(r,void 0,void 0,(function(){var e,t,r,s,i,o,n,a,l,u,_,d,c,p,h,v,m,b,y,g,f,x,j,P,q,S,A,C,w,k,I,O,T,R,B,F,H,V,D,E,U,N,L,W,M=this;return(0,tslib_1.__generator)(this,(function(z){switch(z.label){case 0:if(e=this.props,t=e.store,r=e.operation,s=e.onResponse,null===(B=this.formApi)||void 0===B||B.submitForm(),((null===(F=this.formApi)||void 0===F?void 0:F.getState())||this.state.form).invalid)return this.setState({shaking:!0}),setTimeout((function(){return M.setState({shaking:!1})}),1e3),null===(V=null===(H=null==t?void 0:t.options.events)||void 0===H?void 0:H.tryItSent)||void 0===V||V.call(H,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=(this.state.form||(null===(D=this.formApi)||void 0===D?void 0:D.getState())).values,o=this.props.operation,n=o.servers,a=o.requestBody,l=a&&a.content&&a.content.active&&a.content.active.name||"",u=i.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),_=this.state.resolvedRawSpec,d=(r.httpVerb||"").toLowerCase(),!n)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=n.find((function(e){return M.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),p=Date.now(),h=!!window.document.documentMode,m=i.auth,i.auth?(b=Object.keys(i.auth)[0],y=(0,utils_1.unescapeFormId)(b),v=(0,tslib_1.__assign)((0,tslib_1.__assign)({},_),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes),(I={},I[y]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},null==_?void 0:_.components.securitySchemes[y]),{type:"openIdConnect"===(null==_?void 0:_.components.securitySchemes[y].type)?"oauth2":null==_?void 0:_.components.securitySchemes[y].type}),I))})}),g="cookie"===(null==_?void 0:_.components.securitySchemes[y].in)?"Cookie":y,f="cookie"===(null==_?void 0:_.components.securitySchemes[y].in)?(null==_?void 0:_.components.securitySchemes[y].name)+"="+m[b]:m[b],m=(0,tslib_1.__assign)((0,tslib_1.__assign)({},m),((O={})[g]=f,O))):v=(0,tslib_1.__assign)({},_),v.servers=n,(x=t.options.corsProxyUrl)&&n.length&&(v.servers=n.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:x+normalizeUrlProtocol(e.url)})})),v.paths=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths),((T={})[r.path]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths[r.path]),((R={})[d]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},v.paths[r.path][d]),{servers:void 0}),R.servers=void 0,R)),T))),(j=(null===(U=null===(E=null==a?void 0:a.content)||void 0===E?void 0:E.active)||void 0===U?void 0:U.name)||null)&&u&&(0,helper_1.isFileUploadMime)(j)&&(P=Object.values(u),u=P.length>1?P:P[0]),q={userFetch:h&&require("cross-fetch").fetch,server:x?x+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:v,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},i.path),i.query),i.header),i.cookie),securities:{authorized:m},requestBody:u,requestContentType:j,responseContentType:(null===(N=i.header)||void 0===N?void 0:N.Accept)||null,requestInterceptor:(0,utils_2.makeRequestInterceptor)(t.options,r,m)},z.label=1;case 1:return z.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(q)];case 2:return S=z.sent(),(A=null==S?void 0:S.data)instanceof Blob?((0,helper_1.isFileUploadMime)(A.type)&&(S.fileInfo={rawData:A,fileName:(0,utils_2.getFileNameFromHeaders)(S.headers)}),C=S,[4,A.text()]):[3,4];case 3:C.data=z.sent(),z.label=4;case 4:return null==s||s({request:q,response:S}),this.setState({response:S,error:void 0}),[3,9];case 5:return(w=z.sent())&&w.response&&w.response.data instanceof Blob?(k=w.response,[4,w.response.data.text()]):[3,7];case 6:k.data=z.sent(),null==s||s({request:q,response:w.response}),z.label=7;case 7:return this.setState({response:void 0,error:w}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-p}),null===(W=null===(L=null==t?void 0:t.options.events)||void 0===L?void 0:L.tryItSent)||void 0===W||W.call(L,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[7];case 9:return[2]}}))}))}}),r.state={form:{values:{path:(0,utils_2.getParameters)(t.operation.parameters,"path"),cookie:(0,utils_2.getParameters)(t.operation.parameters,"cookie"),header:(0,utils_2.getParameters)(t.operation.parameters,"header"),query:(0,utils_2.getParameters)(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return(0,tslib_1.__extends)(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var t,r,s,i;return(0,tslib_1.__generator)(this,(function(o){switch(o.label){case 0:return t=this.props,r=t.store,s=t.operation,[4,r.dereferenceSpecForTryIt(s)];case 1:return i=o.sent(),this.setState({resolvedRawSpec:i}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.operation,r=e.className,s=e.rootElement,i=this.state,o=i.shaking,n=i.activeTab,a=i.form,l=i.response,u=i.loading,_=i.error,d=!(!l&&!_);return(0,jsx_runtime_1.jsxs)(ConsoleWrapHook,(0,tslib_1.__assign)({shaking:o,className:r,rootElement:s},{children:[(0,jsx_runtime_1.jsxs)(Panel_1.CodeHeader,{children:[(0,jsx_runtime_1.jsx)(ConsoleBadges_1.ConsoleBadges,{active:n,hasResponse:d,onChange:this.handleTabChange},void 0),this.props.onClose&&(0,jsx_runtime_1.jsx)(styled_1.CloseButton,(0,tslib_1.__assign)({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:0!==n,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),(0,jsx_runtime_1.jsx)(styled_1.ConsoleBody,(0,tslib_1.__assign)({hidden:1!==n,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),(0,jsx_runtime_1.jsx)(ActionPanel_1.ActionPanel,{hasResponse:d,params:a.values,operation:t,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,s=t.store,i=t.properties,o=t.securityDefaults,n=this.state,a=n.form,l=n.resolvedRawSpec,u=n.server,_=a.errors||{},d=_.path||_.cookie||_.header||_.query,c=l&&redoc_lib_1.JsonPointer.get(l,r.pointer),p=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];p&&a.values.auth[p]||(p=void 0),!p||void 0===a.values.auth[p].token&&void 0===a.values.auth[p].client_id&&void 0===a.values.auth[p].client_secret||a.values.auth[p].token&&a.values.auth[p].token.access_token||(p=void 0),p&&null!=a.values.auth[p].username&&(a.values.auth[p].username&&a.values.auth[p].password||(p=void 0));var h=r.parameters||[],v=null===(e=null==s?void 0:s.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:"Loading..."},void 0)||(0,jsx_runtime_1.jsxs)(informed_1.Form,(0,tslib_1.__assign)({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},{children:[(0,jsx_runtime_1.jsx)(ServersDropdown_1.ServersDropdown,{operation:r,onChange:this.handleServerChange},void 0),(0,jsx_runtime_1.jsxs)(Panel_1.Accordion,(0,tslib_1.__assign)({initialActiveIdx:r.security.length&&p?1:0},{children:[r.security.length&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!p&&!!_.auth,success:!!p},{children:v?(0,jsx_runtime_1.jsx)(AuthPanelHook,(0,tslib_1.__assign)({field:"auth",validate:AuthPanel_1.requiredValidator},{children:function(e){return(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:v,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}},void 0)}}),void 0):(0,jsx_runtime_1.jsx)(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:a,operation:r,activeServer:u.url,authCorsProxyUrl:s.options.authCorsProxyUrl,securityDefaults:o},void 0)}),void 0)||null,r.requestBody&&this.formApi&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!_.body},{children:(0,jsx_runtime_1.jsx)(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:r.requestBody,id:r.id,resolvedBody:null==c?void 0:c.requestBody,properties:i},void 0)}),void 0)||null,h.length&&(0,jsx_runtime_1.jsx)(TryItPanel_1.TryItPanel,(0,tslib_1.__assign)({header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},{children:(0,jsx_runtime_1.jsx)(OperationParameters_1.OperationParameters,{operation:r,values:a.values,errors:a.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,s=e.time;return(0,jsx_runtime_1.jsx)(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:s},void 0)}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(react_1.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,s=e.children,i=e.rootElement,o=(0,hooks_1.useDimensions)(i)[0];return(0,jsx_runtime_1.jsx)(styled_1.ConsoleWrap,(0,tslib_1.__assign)({shaking:t,className:r,"data-cy":"console",fullWidth:null==o?void 0:o.width},{children:s}),void 0)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,s=t.render,i=t.userProps,o=r.setValue,n=i.children;return s((0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:n(o)},void 0))}exports.Console=Console;
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,4 +1,5 @@
1
- import type { FieldModel, OpenAPIServer, Server, ServerVariables, OperationModel, ExampleModel } from '../../redoc-lib';
1
+ import type { RequestAuth } from '../../types';
2
+ import type { ExampleModel, FieldModel, OpenAPIServer, OperationModel, Server, ServerVariables } from '../../redoc-lib';
2
3
  import type { RedocProNormalizedOptions } from '../../services';
3
4
  import type { RequestBodyProps } from './RequestBody';
4
5
  export declare function normalizeUrlProtocol(url: string): string;
@@ -12,7 +13,7 @@ export declare function getDefaultOrStoredVariables(server?: OpenAPIServer): Ser
12
13
  export declare function updateVariablesStorage(name: string, value: string): void;
13
14
  export declare function unescapeQueryParams(params: GenericObject): GenericObject;
14
15
  export declare function getFileNameFromHeaders(headers: Record<string, string>): string;
15
- export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, securitySchemaAuth?: string | undefined) => (req: Request) => void | Request;
16
+ export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, auth?: RequestAuth | undefined) => (req: Request) => void | Request;
16
17
  export declare const validateTokenEndpointMethod: (token: string[] | string | undefined) => boolean;
17
18
  export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId, clientSecret, }: {
18
19
  authMethod?: string | string[] | undefined;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;var tslib_1=require("tslib"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge")),types_1=require("../../types"),utils_1=require("../../services/utils"),utils_2=require("../../utils");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],i=e.values.auth[a];(0,utils_2.setSecurityDetails)(a,i)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var i=a[t];if(null===(r=e.values)||void 0===r?void 0:r[i])for(var s=0,n=Object.keys(e.values[i]);s<n.length;s++){var o=n[s];(0,utils_2.setParameterValue)(i,o,e.values[i][o])}}}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=(0,utils_2.getParameterValue)(t||"",a),e}),{})};exports.getParameters=getParameters;var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function getInitialServerWithVariables(e){var r=(0,utils_2.fromSessionStorage)("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=(0,utils_2.fromSessionStorage)("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],i=e[1];a[r]=t[r]||i.default||""})),a}function updateVariablesStorage(e,r){var t,a=(0,utils_2.fromSessionStorage)("variables"),i=a&&JSON.parse(a)||{};(0,utils_2.toSessionStorage)("variables",JSON.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)({},i),((t={})[e]=r,t))))}function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[(0,utils_2.unescapeFormId)(t)]=a,e}),{})}function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var i=a[t],s=i[0],n=i[1];if("content-disposition"===s.toLowerCase()){var o=n.split(";").find((function(e){return e.trim().startsWith(r)}));if(o)return o.split(r)[1]}}return""}exports.getServerWithVariables=getServerWithVariables,exports.getInitialServerWithVariables=getInitialServerWithVariables,exports.expandVariables=expandVariables,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.getDefaultOrStoredVariables=getDefaultOrStoredVariables,exports.updateVariablesStorage=updateVariablesStorage,exports.unescapeQueryParams=unescapeQueryParams,exports.getFileNameFromHeaders=getFileNameFromHeaders;var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,i=e.sendXUserAgentInTryIt,s=e.disableTryItRequestUrlEncoding;return function(e){var n,o,l,u;s&&(e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:decodeURIComponent(e.url)})),i&&(e.headers["X-User-Agent"]="Redocly Try it API console");var p=(null===(o=null===(n=null==r?void 0:r.requestValues)||void 0===n?void 0:n.header)||void 0===o?void 0:o.authorization)||(null===(u=null===(l=null==r?void 0:r.requestValues)||void 0===l?void 0:l.header)||void 0===u?void 0:u.Authorization);return!t&&p&&(e.headers.Authorization=p),a?a(e,r):e}};exports.makeRequestInterceptor=makeRequestInterceptor;var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};function encodeSample(e,r){if(!e)return"";if(e.mime===types_1.MediaTypes.URL_ENCODED)return e.value;var t=e.value,a=r?(0,deepmerge_1.default)(t,r,{arrayMerge:utils_1.arrayMergeStrategy}):t;return JSON.stringify(a,null,2)}exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader,exports.encodeSample=encodeSample;var getStorageExampleKey=function(e,r,t,a){var i=e+"_"+r;return t&&a&&Object.keys(a).includes(t)&&(i+="_"+t),i};exports.getStorageExampleKey=getStorageExampleKey;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.makeRequestInterceptor=exports.getFileNameFromHeaders=exports.unescapeQueryParams=exports.updateVariablesStorage=exports.getDefaultOrStoredVariables=exports.expandDefaultServerVariables=exports.expandVariables=exports.getInitialServerWithVariables=exports.getServerWithVariables=exports.getParameters=exports.updateStorage=exports.normalizeUrlProtocol=void 0;var tslib_1=require("tslib"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge")),types_1=require("../../types"),utils_1=require("../../services/utils"),utils_2=require("../../utils");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],i=e.values.auth[a];(0,utils_2.setSecurityDetails)(a,i)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var i=a[t];if(null===(r=e.values)||void 0===r?void 0:r[i])for(var o=0,n=Object.keys(e.values[i]);o<n.length;o++){var s=n[o];(0,utils_2.setParameterValue)(i,s,e.values[i][s])}}}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=(0,utils_2.getParameterValue)(t||"",a),e}),{})};exports.getParameters=getParameters;var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function getInitialServerWithVariables(e){var r=(0,utils_2.fromSessionStorage)("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{variables:a})}function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=(0,utils_2.fromSessionStorage)("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],i=e[1];a[r]=t[r]||i.default||""})),a}function updateVariablesStorage(e,r){var t,a=(0,utils_2.fromSessionStorage)("variables"),i=a&&JSON.parse(a)||{};(0,utils_2.toSessionStorage)("variables",JSON.stringify((0,tslib_1.__assign)((0,tslib_1.__assign)({},i),((t={})[e]=r,t))))}function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[(0,utils_2.unescapeFormId)(t)]=a,e}),{})}function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var i=a[t],o=i[0],n=i[1];if("content-disposition"===o.toLowerCase()){var s=n.split(";").find((function(e){return e.trim().startsWith(r)}));if(s)return s.split(r)[1]}}return""}exports.getServerWithVariables=getServerWithVariables,exports.getInitialServerWithVariables=getInitialServerWithVariables,exports.expandVariables=expandVariables,exports.expandDefaultServerVariables=expandDefaultServerVariables,exports.getDefaultOrStoredVariables=getDefaultOrStoredVariables,exports.updateVariablesStorage=updateVariablesStorage,exports.unescapeQueryParams=unescapeQueryParams,exports.getFileNameFromHeaders=getFileNameFromHeaders;var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,i=e.sendXUserAgentInTryIt,o=e.disableTryItRequestUrlEncoding;return function(e){var n,s,l,u;o&&(e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:decodeURIComponent(e.url)})),i&&(e.headers["X-User-Agent"]="Redocly Try it API console");var d=(null===(s=null===(n=null==r?void 0:r.requestValues)||void 0===n?void 0:n.header)||void 0===s?void 0:s.authorization)||(null===(u=null===(l=null==r?void 0:r.requestValues)||void 0===l?void 0:l.header)||void 0===u?void 0:u.Authorization);return!(null==t?void 0:t.Authorization)&&d&&(e.headers.Authorization=d),(null==t?void 0:t.Cookie)&&(e.headers["X-Redocly-Cookie"]=t.Cookie),a?a(e,r):e}};exports.makeRequestInterceptor=makeRequestInterceptor;var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};function encodeSample(e,r){if(!e)return"";if(e.mime===types_1.MediaTypes.URL_ENCODED)return e.value;var t=e.value,a=r?(0,deepmerge_1.default)(t,r,{arrayMerge:utils_1.arrayMergeStrategy}):t;return JSON.stringify(a,null,2)}exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader,exports.encodeSample=encodeSample;var getStorageExampleKey=function(e,r,t,a){var i=e+"_"+r;return t&&a&&Object.keys(a).includes(t)&&(i+="_"+t),i};exports.getStorageExampleKey=getStorageExampleKey;
2
2
  //# sourceMappingURL=utils.js.map
package/lib/types.d.ts CHANGED
@@ -23,3 +23,7 @@ export declare type SecurityDetails = {
23
23
  client_secret?: string;
24
24
  scopes?: string;
25
25
  };
26
+ export declare type RequestAuth = {
27
+ Authorization?: string;
28
+ Cookie?: string;
29
+ };
@@ -1,2 +1,2 @@
1
- import{__assign,__awaiter,__decorate,__extends,__generator,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function r(r){var t=e.call(this,r)||this;return Object.defineProperty(t,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.formApi=e;var r=e.getState(),o=r.values,s=__rest(r,["values"]);setTimeout((function(){var e=__assign(__assign({},s),{values:__assign(__assign({},o),{query:unescapeQueryParams(o.query||{})})});t.setState({form:e})}),0)}}),Object.defineProperty(t,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=__assign(__assign({},e),{query:unescapeQueryParams(e.query||{})});t.setState((function(e){return{form:__assign(__assign({},e.form),{values:r})}}),(function(){updateStorage(t.state.form),t.props.operation.setRequestValues(e)}))}}),Object.defineProperty(t,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeTab:e})}}),Object.defineProperty(t,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({server:e}),t.props.operation.setActiveServer(e)}}),Object.defineProperty(t,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,r,t,o,s,n,a,i,l,u,d,p,c,h,m,v,_,g,f,y,b,P,x,S,j,C,A,w,I,k,q,T,O,R,F,B,H,V,D,E,U,N,W=this;return __generator(this,(function(z){switch(z.label){case 0:if(e=this.props,r=e.store,t=e.operation,o=e.onResponse,null===(O=this.formApi)||void 0===O||O.submitForm(),((null===(R=this.formApi)||void 0===R?void 0:R.getState())||this.state.form).invalid)return this.setState({shaking:!0}),setTimeout((function(){return W.setState({shaking:!1})}),1e3),null===(B=null===(F=null==r?void 0:r.options.events)||void 0===F?void 0:F.tryItSent)||void 0===B||B.call(F,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:t.operationId,operationPath:t.path,operationHttpVerb:t.httpVerb,operationSummary:t.description}),[2];if(s=(this.state.form||(null===(H=this.formApi)||void 0===H?void 0:H.getState())).values,n=this.props.operation,a=n.servers,i=n.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",u=s.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),d=this.state.resolvedRawSpec,p=(t.httpVerb||"").toLowerCase(),!a)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=a.find((function(e){return W.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),h=Date.now(),m=!!window.document.documentMode,_=s.auth,s.auth?(g=Object.keys(s.auth)[0],f=unescapeFormId(g),v=__assign(__assign({},d),{components:__assign(__assign({},null==d?void 0:d.components),{securitySchemes:__assign(__assign({},null==d?void 0:d.components.securitySchemes),(I={},I[f]=__assign(__assign({},null==d?void 0:d.components.securitySchemes[f]),{type:"openIdConnect"===(null==d?void 0:d.components.securitySchemes[f].type)?"oauth2":null==d?void 0:d.components.securitySchemes[f].type}),I))})}),_=__assign(__assign({},_),((k={})[f]=_[g],k))):v=__assign({},d),v.servers=a,(y=r.options.corsProxyUrl)&&a.length&&(v.servers=a.map((function(e){return __assign(__assign({},e),{url:y+normalizeUrlProtocol(e.url)})})),v.paths=__assign(__assign({},v.paths),((q={})[t.path]=__assign(__assign({},v.paths[t.path]),((T={})[p]=__assign(__assign({},v.paths[t.path][p]),{servers:void 0}),T.servers=void 0,T)),q))),(b=(null===(D=null===(V=null==i?void 0:i.content)||void 0===V?void 0:V.active)||void 0===D?void 0:D.name)||null)&&u&&isFileUploadMime(b)&&(P=Object.values(u),u=P.length>1?P:P[0]),x={userFetch:m&&require("cross-fetch").fetch,server:y?y+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:v,pathName:t.path,method:t.httpVerb,parameters:__assign(__assign(__assign(__assign({},s.path),s.query),s.header),s.cookie),securities:{authorized:_},requestBody:u,requestContentType:b,responseContentType:(null===(E=s.header)||void 0===E?void 0:E.Accept)||null,requestInterceptor:makeRequestInterceptor(r.options,t,null==_?void 0:_.Authorization)},z.label=1;case 1:return z.trys.push([1,5,8,9]),[4,Swagger.execute(x)];case 2:return S=z.sent(),(j=null==S?void 0:S.data)instanceof Blob?(isFileUploadMime(j.type)&&(S.fileInfo={rawData:j,fileName:getFileNameFromHeaders(S.headers)}),C=S,[4,j.text()]):[3,4];case 3:C.data=z.sent(),z.label=4;case 4:return null==o||o({request:x,response:S}),this.setState({response:S,error:void 0}),[3,9];case 5:return(A=z.sent())&&A.response&&A.response.data instanceof Blob?(w=A.response,[4,A.response.data.text()]):[3,7];case 6:w.data=z.sent(),null==o||o({request:x,response:A.response}),z.label=7;case 7:return this.setState({response:void 0,error:A}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-h}),null===(N=null===(U=null==r?void 0:r.options.events)||void 0===U?void 0:U.tryItSent)||void 0===N||N.call(U,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:t.operationId,operationPath:t.path,operationHttpVerb:t.httpVerb,operationSummary:t.description}),[7];case 9:return[2]}}))}))}}),t.state={form:{values:{path:getParameters(r.operation.parameters,"path"),cookie:getParameters(r.operation.parameters,"cookie"),header:getParameters(r.operation.parameters,"header"),query:getParameters(r.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},t}return __extends(r,e),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return __awaiter(this,void 0,void 0,(function(){var r,t,o,s;return __generator(this,(function(n){switch(n.label){case 0:return r=this.props,t=r.store,o=r.operation,[4,t.dereferenceSpecForTryIt(o)];case 1:return s=n.sent(),this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(r.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,r=e.operation,t=e.className,o=e.rootElement,s=this.state,n=s.shaking,a=s.activeTab,i=s.form,l=s.response,u=s.loading,d=s.error,p=!(!l&&!d);return _jsxs(ConsoleWrapHook,__assign({shaking:n,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:a,hasResponse:p,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,__assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,__assign({hidden:0!==a,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,__assign({hidden:1!==a,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:p,params:i.values,operation:r,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(r.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,r=this.props,t=r.operation,o=r.store,s=r.properties,n=r.securityDefaults,a=this.state,i=a.form,u=a.resolvedRawSpec,d=a.server,p=i.errors||{},c=p.path||p.cookie||p.header||p.query,h=u&&JsonPointer.get(u,t.pointer),m=i.values&&i.values.auth&&Object.keys(i.values.auth)[0];m&&i.values.auth[m]||(m=void 0),!m||void 0===i.values.auth[m].token&&void 0===i.values.auth[m].client_id&&void 0===i.values.auth[m].client_secret||i.values.auth[m].token&&i.values.auth[m].token.access_token||(m=void 0),m&&null!=i.values.auth[m].username&&(i.values.auth[m].username&&i.values.auth[m].password||(m=void 0));var v=t.parameters||[],_=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!u&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,__assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,__assign({initialActiveIdx:t.security.length&&m?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,__assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!m&&!!p.auth,success:!!m},{children:_?_jsx(AuthPanelHook,__assign({field:"auth",validate:requiredValidator},{children:function(e){return _jsx(RenderHook,{Hook:_,props:{server:d,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:i,operation:t,activeServer:d.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:n},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,__assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!p.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==h?void 0:h.requestBody,properties:s},void 0)}),void 0)||null,v.length&&_jsx(TryItPanel,__assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:c,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:i.values,errors:i.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(r.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,r=e.response,t=e.error,o=e.time;return _jsx(ResponsePanel,{response:r,error:t,time:o},void 0)}}),r=__decorate([observer],r)}(Component);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){var r=e.shaking,t=e.className,o=e.children,s=e.rootElement,n=useDimensions(s)[0];return _jsx(ConsoleWrap,__assign({shaking:r,className:t,"data-cy":"console",fullWidth:null==n?void 0:n.width},{children:o}),void 0)}function AuthPanelHook(e){var r=useField(__assign({},e)),t=r.fieldApi,o=r.render,s=r.userProps,n=t.setValue,a=s.children;return o(_jsx(_Fragment,{children:a(n)},void 0))}
1
+ import{__assign,__awaiter,__decorate,__extends,__generator,__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Form,useField}from"informed";import{observer}from"mobx-react";import Swagger from"swagger-client";import{Component}from"react";import{unescapeFormId}from"../../utils";import{JsonPointer}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/RenderHook";import{l}from"../../redoc-lib/src/services/Labels";import{CodeHeader,Accordion}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{isFileUploadMime}from"../common/FileUpload/helper";import{OperationParameters}from"../OperationParameters";import{useDimensions}from"../../hooks";import{AnalyticsEventType}from"../../events";import{getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"./utils";import{AuthPanel,requiredValidator}from"./AuthPanel";import{ConsoleBadges}from"./ConsoleBadges";import{RequestBody}from"./RequestBody";import{ResponsePanel}from"./ResponsePanel";import{ActionPanel}from"./ActionPanel";import{ServersDropdown}from"./ServersDropdown";import{TryItPanel}from"./TryItPanel";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}var flexColumn={flex:1,display:"flex",flexDirection:"column"},Console=function(e){function r(r){var t=e.call(this,r)||this;return Object.defineProperty(t,"formApi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(t,"setFormApi",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.formApi=e;var r=e.getState(),o=r.values,s=__rest(r,["values"]);setTimeout((function(){var e=__assign(__assign({},s),{values:__assign(__assign({},o),{query:unescapeQueryParams(o.query||{})})});t.setState({form:e})}),0)}}),Object.defineProperty(t,"handleValueChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var r=__assign(__assign({},e),{query:unescapeQueryParams(e.query||{})});t.setState((function(e){return{form:__assign(__assign({},e.form),{values:r})}}),(function(){updateStorage(t.state.form),t.props.operation.setRequestValues(e)}))}}),Object.defineProperty(t,"handleTabChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({activeTab:e})}}),Object.defineProperty(t,"handleServerChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){t.setState({server:e}),t.props.operation.setActiveServer(e)}}),Object.defineProperty(t,"handleExecute",{enumerable:!0,configurable:!0,writable:!0,value:function(){return __awaiter(t,void 0,void 0,(function(){var e,r,t,o,s,n,a,i,l,u,d,p,c,m,h,v,_,g,f,y,b,P,S,x,C,j,A,w,k,I,q,T,O,R,F,B,H,V,D,E,U,N,W,M,z=this;return __generator(this,(function(J){switch(J.label){case 0:if(e=this.props,r=e.store,t=e.operation,o=e.onResponse,null===(F=this.formApi)||void 0===F||F.submitForm(),((null===(B=this.formApi)||void 0===B?void 0:B.getState())||this.state.form).invalid)return this.setState({shaking:!0}),setTimeout((function(){return z.setState({shaking:!1})}),1e3),null===(V=null===(H=null==r?void 0:r.options.events)||void 0===H?void 0:H.tryItSent)||void 0===V||V.call(H,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:t.operationId,operationPath:t.path,operationHttpVerb:t.httpVerb,operationSummary:t.description}),[2];if(s=(this.state.form||(null===(D=this.formApi)||void 0===D?void 0:D.getState())).values,n=this.props.operation,a=n.servers,i=n.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",u=s.body,/json/.test(l))try{u=JSON.parse(u)}catch(e){console.error(e)}if(this.setState({loading:!0}),d=this.state.resolvedRawSpec,p=(t.httpVerb||"").toLowerCase(),!a)throw console.error("Servers are not specified in your OpenAPI file. You can't use Try It Out console without specifying servers. If you use OpenAPI 2, make sure you configured host and basepath"),new Error("Servers are not specified");c=a.find((function(e){return z.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),m=Date.now(),h=!!window.document.documentMode,_=s.auth,s.auth?(g=Object.keys(s.auth)[0],f=unescapeFormId(g),v=__assign(__assign({},d),{components:__assign(__assign({},null==d?void 0:d.components),{securitySchemes:__assign(__assign({},null==d?void 0:d.components.securitySchemes),(q={},q[f]=__assign(__assign({},null==d?void 0:d.components.securitySchemes[f]),{type:"openIdConnect"===(null==d?void 0:d.components.securitySchemes[f].type)?"oauth2":null==d?void 0:d.components.securitySchemes[f].type}),q))})}),y="cookie"===(null==d?void 0:d.components.securitySchemes[f].in)?"Cookie":f,b="cookie"===(null==d?void 0:d.components.securitySchemes[f].in)?(null==d?void 0:d.components.securitySchemes[f].name)+"="+_[g]:_[g],_=__assign(__assign({},_),((T={})[y]=b,T))):v=__assign({},d),v.servers=a,(P=r.options.corsProxyUrl)&&a.length&&(v.servers=a.map((function(e){return __assign(__assign({},e),{url:P+normalizeUrlProtocol(e.url)})})),v.paths=__assign(__assign({},v.paths),((O={})[t.path]=__assign(__assign({},v.paths[t.path]),((R={})[p]=__assign(__assign({},v.paths[t.path][p]),{servers:void 0}),R.servers=void 0,R)),O))),(S=(null===(U=null===(E=null==i?void 0:i.content)||void 0===E?void 0:E.active)||void 0===U?void 0:U.name)||null)&&u&&isFileUploadMime(S)&&(x=Object.values(u),u=x.length>1?x:x[0]),C={userFetch:h&&require("cross-fetch").fetch,server:P?P+normalizeUrlProtocol(c.url):c.url,serverVariables:this.state.server.variables,spec:v,pathName:t.path,method:t.httpVerb,parameters:__assign(__assign(__assign(__assign({},s.path),s.query),s.header),s.cookie),securities:{authorized:_},requestBody:u,requestContentType:S,responseContentType:(null===(N=s.header)||void 0===N?void 0:N.Accept)||null,requestInterceptor:makeRequestInterceptor(r.options,t,_)},J.label=1;case 1:return J.trys.push([1,5,8,9]),[4,Swagger.execute(C)];case 2:return j=J.sent(),(A=null==j?void 0:j.data)instanceof Blob?(isFileUploadMime(A.type)&&(j.fileInfo={rawData:A,fileName:getFileNameFromHeaders(j.headers)}),w=j,[4,A.text()]):[3,4];case 3:w.data=J.sent(),J.label=4;case 4:return null==o||o({request:C,response:j}),this.setState({response:j,error:void 0}),[3,9];case 5:return(k=J.sent())&&k.response&&k.response.data instanceof Blob?(I=k.response,[4,k.response.data.text()]):[3,7];case 6:I.data=J.sent(),null==o||o({request:C,response:k.response}),J.label=7;case 7:return this.setState({response:void 0,error:k}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-m}),null===(M=null===(W=null==r?void 0:r.options.events)||void 0===W?void 0:W.tryItSent)||void 0===M||M.call(W,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:t.operationId,operationPath:t.path,operationHttpVerb:t.httpVerb,operationSummary:t.description}),[7];case 9:return[2]}}))}))}}),t.state={form:{values:{path:getParameters(r.operation.parameters,"path"),cookie:getParameters(r.operation.parameters,"cookie"),header:getParameters(r.operation.parameters,"header"),query:getParameters(r.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},t}return __extends(r,e),Object.defineProperty(r.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e;return __awaiter(this,void 0,void 0,(function(){var r,t,o,s;return __generator(this,(function(n){switch(n.label){case 0:return r=this.props,t=r.store,o=r.operation,[4,t.dereferenceSpecForTryIt(o)];case 1:return s=n.sent(),this.setState({resolvedRawSpec:s}),null===(e=this.formApi)||void 0===e||e.setValues({}),[2]}}))}))}}),Object.defineProperty(r.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e){e.operation!==this.props.operation&&this.setState({response:void 0,error:void 0,activeTab:0})}}),Object.defineProperty(r.prototype,"render",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,r=e.operation,t=e.className,o=e.rootElement,s=this.state,n=s.shaking,a=s.activeTab,i=s.form,l=s.response,u=s.loading,d=s.error,p=!(!l&&!d);return _jsxs(ConsoleWrapHook,__assign({shaking:n,className:t,rootElement:o},{children:[_jsxs(CodeHeader,{children:[_jsx(ConsoleBadges,{active:a,hasResponse:p,onChange:this.handleTabChange},void 0),this.props.onClose&&_jsx(CloseButton,__assign({onClick:this.props.onClose},{children:" ✕ "}),void 0)]},void 0),_jsx(ConsoleBody,__assign({hidden:0!==a,"data-cy":"console-request-body"},{children:this.renderRequest()}),void 0),_jsx(ConsoleBody,__assign({hidden:1!==a,"data-cy":"console-response-body"},{children:this.renderResponse()}),void 0),_jsx(ActionPanel,{hasResponse:p,params:i.values,operation:r,loading:u,execute:this.handleExecute},void 0)]}),void 0)}}),Object.defineProperty(r.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,r=this.props,t=r.operation,o=r.store,s=r.properties,n=r.securityDefaults,a=this.state,i=a.form,u=a.resolvedRawSpec,d=a.server,p=i.errors||{},c=p.path||p.cookie||p.header||p.query,m=u&&JsonPointer.get(u,t.pointer),h=i.values&&i.values.auth&&Object.keys(i.values.auth)[0];h&&i.values.auth[h]||(h=void 0),!h||void 0===i.values.auth[h].token&&void 0===i.values.auth[h].client_id&&void 0===i.values.auth[h].client_secret||i.values.auth[h].token&&i.values.auth[h].token.access_token||(h=void 0),h&&null!=i.values.auth[h].username&&(i.values.auth[h].username&&i.values.auth[h].password||(h=void 0));var v=t.parameters||[],_=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!u&&_jsx(_Fragment,{children:"Loading..."},void 0)||_jsxs(Form,__assign({onValueChange:this.handleValueChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},{children:[_jsx(ServersDropdown,{operation:t,onChange:this.handleServerChange},void 0),_jsxs(Accordion,__assign({initialActiveIdx:t.security.length&&h?1:0},{children:[t.security.length&&this.formApi&&_jsx(TryItPanel,__assign({header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!h&&!!p.auth,success:!!h},{children:_?_jsx(AuthPanelHook,__assign({field:"auth",validate:requiredValidator},{children:function(e){return _jsx(RenderHook,{Hook:_,props:{server:d,operation:t,onChange:e,OAuth2:OAuth2}},void 0)}}),void 0):_jsx(AuthPanel,{formApi:this.formApi,form:i,operation:t,activeServer:d.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:n},void 0)}),void 0)||null,t.requestBody&&this.formApi&&_jsx(TryItPanel,__assign({header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!p.body},{children:_jsx(RequestBody,{validate:allowBodyErrors,formApi:this.formApi,body:t.requestBody,id:t.id,resolvedBody:null==m?void 0:m.requestBody,properties:s},void 0)}),void 0)||null,v.length&&_jsx(TryItPanel,__assign({header:l("tryItParameters"),"data-cy":"parameters-trigger",error:c,renderChildrenHidden:!0},{children:_jsx(OperationParameters,{operation:t,values:i.values,errors:i.errors||{}},void 0)}),void 0)||null]}),void 0)]}),void 0)}}),Object.defineProperty(r.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,r=e.response,t=e.error,o=e.time;return _jsx(ResponsePanel,{response:r,error:t,time:o},void 0)}}),r=__decorate([observer],r)}(Component);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){var r=e.shaking,t=e.className,o=e.children,s=e.rootElement,n=useDimensions(s)[0];return _jsx(ConsoleWrap,__assign({shaking:r,className:t,"data-cy":"console",fullWidth:null==n?void 0:n.width},{children:o}),void 0)}function AuthPanelHook(e){var r=useField(__assign({},e)),t=r.fieldApi,o=r.render,s=r.userProps,n=t.setValue,a=s.children;return o(_jsx(_Fragment,{children:a(n)},void 0))}
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,4 +1,5 @@
1
- import type { FieldModel, OpenAPIServer, Server, ServerVariables, OperationModel, ExampleModel } from '../../redoc-lib';
1
+ import type { RequestAuth } from '../../types';
2
+ import type { ExampleModel, FieldModel, OpenAPIServer, OperationModel, Server, ServerVariables } from '../../redoc-lib';
2
3
  import type { RedocProNormalizedOptions } from '../../services';
3
4
  import type { RequestBodyProps } from './RequestBody';
4
5
  export declare function normalizeUrlProtocol(url: string): string;
@@ -12,7 +13,7 @@ export declare function getDefaultOrStoredVariables(server?: OpenAPIServer): Ser
12
13
  export declare function updateVariablesStorage(name: string, value: string): void;
13
14
  export declare function unescapeQueryParams(params: GenericObject): GenericObject;
14
15
  export declare function getFileNameFromHeaders(headers: Record<string, string>): string;
15
- export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, securitySchemaAuth?: string | undefined) => (req: Request) => void | Request;
16
+ export declare const makeRequestInterceptor: ({ requestInterceptor, sendXUserAgentInTryIt, disableTryItRequestUrlEncoding, }: Pick<RedocProNormalizedOptions, 'requestInterceptor' | 'sendXUserAgentInTryIt' | 'disableTryItRequestUrlEncoding'>, operation: OperationModel, auth?: RequestAuth | undefined) => (req: Request) => void | Request;
16
17
  export declare const validateTokenEndpointMethod: (token: string[] | string | undefined) => boolean;
17
18
  export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId, clientSecret, }: {
18
19
  authMethod?: string | string[] | undefined;
@@ -1,2 +1,2 @@
1
- import{__assign}from"tslib";import merge from"deepmerge";import{MediaTypes}from"../../types";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],n=e.values.auth[a];setSecurityDetails(a,n)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var n=a[t];if(null===(r=e.values)||void 0===r?void 0:r[n])for(var i=0,o=Object.keys(e.values[n]);i<o.length;i++){var s=o[i];setParameterValue(n,s,e.values[n][s])}}}export var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=getParameterValue(t||"",a),e}),{})};var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function getInitialServerWithVariables(e){var r=fromSessionStorage("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}export function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=fromSessionStorage("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],n=e[1];a[r]=t[r]||n.default||""})),a}export function updateVariablesStorage(e,r){var t,a=fromSessionStorage("variables"),n=a&&JSON.parse(a)||{};toSessionStorage("variables",JSON.stringify(__assign(__assign({},n),((t={})[e]=r,t))))}export function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[unescapeFormId(t)]=a,e}),{})}export function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var n=a[t],i=n[0],o=n[1];if("content-disposition"===i.toLowerCase()){var s=o.split(";").find((function(e){return e.trim().startsWith(r)}));if(s)return s.split(r)[1]}}return""}export var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,n=e.sendXUserAgentInTryIt,i=e.disableTryItRequestUrlEncoding;return function(e){var o,s,u,l;i&&(e=__assign(__assign({},e),{url:decodeURIComponent(e.url)})),n&&(e.headers["X-User-Agent"]="Redocly Try it API console");var c=(null===(s=null===(o=null==r?void 0:r.requestValues)||void 0===o?void 0:o.header)||void 0===s?void 0:s.authorization)||(null===(l=null===(u=null==r?void 0:r.requestValues)||void 0===u?void 0:u.header)||void 0===l?void 0:l.Authorization);return!t&&c&&(e.headers.Authorization=c),a?a(e,r):e}};export var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};export var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};export function encodeSample(e,r){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;var t=e.value,a=r?merge(t,r,{arrayMerge:arrayMergeStrategy}):t;return JSON.stringify(a,null,2)}export var getStorageExampleKey=function(e,r,t,a){var n=e+"_"+r;return t&&a&&Object.keys(a).includes(t)&&(n+="_"+t),n};
1
+ import{__assign}from"tslib";import merge from"deepmerge";import{MediaTypes}from"../../types";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(var r=0,t=Object.keys(e.values.auth);r<t.length;r++){var a=t[r],n=e.values.auth[a];setSecurityDetails(a,n)}updateParameterStorage(e)}function updateParameterStorage(e){for(var r,t=0,a=["path","query","header","cookie"];t<a.length;t++){var n=a[t];if(null===(r=e.values)||void 0===r?void 0:r[n])for(var i=0,o=Object.keys(e.values[n]);i<o.length;i++){var u=o[i];setParameterValue(n,u,e.values[n][u])}}}export var getParameters=function(e,r){return e.filter((function(e){return e.in===r})).reduce((function(e,r){var t=r.in,a=r.name;return e[a]=getParameterValue(t||"",a),e}),{})};var pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,r){void 0===r&&(r=0);var t=e[r],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function getInitialServerWithVariables(e){var r=fromSessionStorage("serverUrl"),t=e.find((function(e){return e.url===r}))||e[0],a=getDefaultOrStoredVariables(t);return __assign(__assign({},t),{variables:a})}export function expandVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]||e}))}export function expandDefaultServerVariables(e,r){return void 0===r&&(r={}),e.replace(pathTemplateRegExp,(function(e,t){return r[t]&&r[t].default||e}))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};var r=fromSessionStorage("variables"),t=r&&JSON.parse(r)||{},a={};return Object.entries(e.variables||{}).forEach((function(e){var r=e[0],n=e[1];a[r]=t[r]||n.default||""})),a}export function updateVariablesStorage(e,r){var t,a=fromSessionStorage("variables"),n=a&&JSON.parse(a)||{};toSessionStorage("variables",JSON.stringify(__assign(__assign({},n),((t={})[e]=r,t))))}export function unescapeQueryParams(e){return Object.entries(e).reduce((function(e,r){var t=r[0],a=r[1];return e[unescapeFormId(t)]=a,e}),{})}export function getFileNameFromHeaders(e){for(var r="filename=",t=0,a=Object.entries(e);t<a.length;t++){var n=a[t],i=n[0],o=n[1];if("content-disposition"===i.toLowerCase()){var u=o.split(";").find((function(e){return e.trim().startsWith(r)}));if(u)return u.split(r)[1]}}return""}export var makeRequestInterceptor=function(e,r,t){var a=e.requestInterceptor,n=e.sendXUserAgentInTryIt,i=e.disableTryItRequestUrlEncoding;return function(e){var o,u,s,l;i&&(e=__assign(__assign({},e),{url:decodeURIComponent(e.url)})),n&&(e.headers["X-User-Agent"]="Redocly Try it API console");var c=(null===(u=null===(o=null==r?void 0:r.requestValues)||void 0===o?void 0:o.header)||void 0===u?void 0:u.authorization)||(null===(l=null===(s=null==r?void 0:r.requestValues)||void 0===s?void 0:s.header)||void 0===l?void 0:l.Authorization);return!(null==t?void 0:t.Authorization)&&c&&(e.headers.Authorization=c),(null==t?void 0:t.Cookie)&&(e.headers["X-Redocly-Cookie"]=t.Cookie),a?a(e,r):e}};export var validateTokenEndpointMethod=function(e){if(!e)return!0;var r=Array.isArray(e)?e:[e];return!(r.length&&!r.includes("none")&&!r.includes("client_secret_basic"))};export var getOAuth2TokenEndpointAuthHeader=function(e){var r=e.authMethod,t=e.clientId,a=e.clientSecret;return"client_secret_basic"===r||Array.isArray(r)&&r.includes("client_secret_basic")?{Authorization:"Basic "+btoa(t+":"+a)}:{}};export function encodeSample(e,r){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;var t=e.value,a=r?merge(t,r,{arrayMerge:arrayMergeStrategy}):t;return JSON.stringify(a,null,2)}export var getStorageExampleKey=function(e,r,t,a){var n=e+"_"+r;return t&&a&&Object.keys(a).includes(t)&&(n+="_"+t),n};
2
2
  //# sourceMappingURL=utils.js.map
@@ -23,3 +23,7 @@ export declare type SecurityDetails = {
23
23
  client_secret?: string;
24
24
  scopes?: string;
25
25
  };
26
+ export declare type RequestAuth = {
27
+ Authorization?: string;
28
+ Cookie?: string;
29
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/reference-docs",
3
- "version": "2.42.5",
3
+ "version": "2.43.0",
4
4
  "description": "Redocly Reference Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",