@redocly/reference-docs 2.11.3 → 2.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli/commands/redocly-docs-cli.min.js +5 -5
- package/bin/cli/commands/redocly-docs-cli.min.js.LICENSE.txt +1 -1
- package/dist/console.redocly-reference-docs.min.js +58 -58
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-reference-docs.min.js +83 -83
- package/lib/components/console/Console.js +1 -1
- package/lib/components/console/RequestBody.d.ts +1 -0
- package/lib/components/console/RequestBody.js +1 -1
- package/lib-esm/components/console/Console.js +1 -1
- package/lib-esm/components/console/RequestBody.d.ts +1 -0
- package/lib-esm/components/console/RequestBody.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TryItPanel=exports.Console=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),informed_1=require("informed"),mobx_react_1=require("mobx-react"),utils_1=require("../../utils"),styled_components_1=require("./styled.components"),ServerDropdown_1=require("./ServerDropdown"),OperationParameters_1=require("./OperationParameters"),ActionPanel_1=require("./ActionPanel"),ResponsePanel_1=require("./ResponsePanel"),RequestBody_1=require("./RequestBody"),ConsoleBadges_1=require("./ConsoleBadges"),AuthPanel_1=require("./AuthPanel"),services_1=require("../../services"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),redoc_lib_1=require("../../redoc-lib"),helper_1=require("../../redoc-lib/src/components/helper"),Labels_1=require("../../redoc-lib/src/services/Labels"),styled_components_2=(0,tslib_1.__importDefault)(require("../../redoc-lib/src/styled-components")),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),PanelBody_1=require("../Panel/PanelBody"),utils_2=require("./utils"),helper_2=require("../common/FileUpload/helper");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,t){void 0===t&&(t=e.getState());var n=t.values,a=(0,tslib_1.__rest)(t,["values"]);r.formApi=e,setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},a),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{query:(0,utils_2.unescapeQueryParams)(n.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.values,n=(0,tslib_1.__rest)(e,["values"]),a=(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{query:(0,utils_2.unescapeQueryParams)(t.query||{})})});r.setState({form:a}),(0,utils_2.updateStorage)(a)}}),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,n,a,s,o,i,l,c,u,p,d,_,h,m,b,v,y,g,f,P,R,q,S,C,w,E,I,x,A,T,O,k,B,j,F,H,D=this;return(0,tslib_1.__generator)(this,(function(U){switch(U.label){case 0:if(e=this.props,t=e.store,r=e.operation,n=e.onResponse,a=this.state.form,s=a.values,o=a.invalid,this.formApi.submitForm(),o)return this.setState({shaking:!0}),setTimeout((function(){return D.setState({shaking:!1})}),1e3),null===(O=null===(T=null==t?void 0:t.options.events)||void 0===T?void 0:T.tryItSent)||void 0===O||O.call(T,{eventType:services_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=this.props.operation.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",c=s.body,/json/.test(l))try{c=JSON.parse(c)}catch(e){console.error(e)}if(this.setState({loading:!0}),u=this.state.resolvedRawSpec,!(p=(0,utils_1.get)(u,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||(0,utils_1.get)(u,["paths",r.path,"servers"])||(0,utils_1.get)(u,["servers"])))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");d=p.find((function(e){return D.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),_=Date.now(),h=!!window.document.documentMode,b=s.auth,s.auth?(v=Object.keys(s.auth)[0],y=(0,utils_1.unescapeFormId)(v),m=(0,tslib_1.__assign)((0,tslib_1.__assign)({},u),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components.securitySchemes),(x={},x[y]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components.securitySchemes[y]),{type:"openIdConnect"===u.components.securitySchemes[y].type?"oauth2":u.components.securitySchemes[y].type}),x))})}),b=(0,tslib_1.__assign)((0,tslib_1.__assign)({},b),((A={})[y]=b[v],A))):m=(0,tslib_1.__assign)({},u),(g=t.options.corsProxyUrl)&&u.servers&&u.servers.length&&(m.servers=u.servers.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:g+normalizeUrlProtocol(e.url)})}))),(f=(null===(B=null===(k=null==i?void 0:i.content)||void 0===k?void 0:k.active)||void 0===B?void 0:B.name)||null)&&c&&(0,helper_2.isFileUploadMime)(f)&&(P=Object.values(c),c=P.length>1?P:P[0]),R=function(e,t){return function(r){return D.props.store.options.sendXUserAgentInTryIt&&(r.headers["X-User-Agent"]="Redocly Try it API console"),e?e(r,t):r}},q={userFetch:h&&require("cross-fetch").fetch,server:g?g+normalizeUrlProtocol(d.url):d.url,serverVariables:this.state.server.variables,spec:m,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},s.path),s.query),s.header),s.cookie),securities:{authorized:b},requestBody:c,requestContentType:f,responseContentType:(null===(j=s.header)||void 0===j?void 0:j.Accept)||null,requestInterceptor:R(t.options.requestInterceptor,r)},U.label=1;case 1:return U.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(q)];case 2:return S=U.sent(),(C=null==S?void 0:S.data)instanceof Blob?((0,helper_2.isFileUploadMime)(C.type)&&(S.fileInfo={rawData:C,fileName:(0,utils_2.getFileNameFromHeaders)(S.headers)}),w=S,[4,C.text()]):[3,4];case 3:w.data=U.sent(),U.label=4;case 4:return null==n||n({request:q,response:S}),this.setState({response:S,error:void 0}),[3,9];case 5:return(E=U.sent())&&E.response&&E.response.data instanceof Blob?(I=E.response,[4,E.response.data.text()]):[3,7];case 6:I.data=U.sent(),null==n||n({request:q,response:E.response}),U.label=7;case 7:return this.setState({response:void 0,error:E}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-_}),null===(H=null===(F=null==t?void 0:t.options.events)||void 0===F?void 0:F.tryItSent)||void 0===H||H.call(F,{eventType:services_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(){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var e,t,r,n;return(0,tslib_1.__generator)(this,(function(a){switch(a.label){case 0:return e=this.props,t=e.store,r=e.operation,[4,t.dereferenceSpecForTryIt(r)];case 1:return n=a.sent(),this.setState({resolvedRawSpec:n}),this.formApi.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,n=e.rootElement,a=this.state,s=a.shaking,o=a.activeTab,i=a.form,l=a.response,c=a.loading,u=a.error,p=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:s,className:r,rootElement:n},React.createElement(Panel_1.CodeHeader,null,React.createElement(ConsoleBadges_1.ConsoleBadges,{active:o,hasResponse:p,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(styled_components_1.CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(styled_components_1.ConsoleBody,{hidden:0!==o},this.renderRequest()),React.createElement(styled_components_1.ConsoleBody,{hidden:1!==o},this.renderResponse()),React.createElement(ActionPanel_1.ActionPanel,{hasResponse:p,params:i.values,operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,n=t.store,a=t.properties,s=t.securityDefaults,o=this.state,i=o.form,l=o.resolvedRawSpec,c=o.server,u=i.errors||{},p=u.path||u.cookie||u.header||u.query,d=i.values&&i.values.auth&&Object.keys(i.values.auth)[0];d&&i.values.auth[d]||(d=void 0),!d||void 0===i.values.auth[d].token&&void 0===i.values.auth[d].client_id&&void 0===i.values.auth[d].client_secret||i.values.auth[d].token&&i.values.auth[d].token.access_token||(d=void 0),d&&null!=i.values.auth[d].username&&(i.values.auth[d].username&&i.values.auth[d].password||(d=void 0));var _=r.parameters||[],h=null===(e=null==n?void 0:n.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(React.Fragment,null,React.createElement(informed_1.Form,{onChange:this.handleChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},React.createElement(Panel_1.Accordion,{initialActiveIdx:r.security.length&&d?1:0},r.security.length&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!d&&!!u.auth,success:!!d},h?React.createElement(AuthPanelHook,{field:"auth",validate:AuthPanel_1.requiredValidator},(function(e){return React.createElement(helper_1.RenderHook,{Hook:h,props:{server:c,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}})})):React.createElement(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:i,operation:r,activeServer:c.url,authCorsProxyUrl:n.options.authCorsProxyUrl,securityDefaults:s}))||null,r.requestBody&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!u.body},React.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,console:this,body:r.requestBody,id:r.id,properties:a}))||null,_.length&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:p,renderChildrenHidden:!0},React.createElement(OperationParameters_1.OperationParameters,{operation:r,values:i.values,errors:i.errors||{}}))||null)),React.createElement(ServerDropdown_1.ServerChooser,{operation:r,onChange:this.handleServerChange}))}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,n=e.time;return React.createElement(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:n})}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(React.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,n=e.children,a=e.rootElement,s=(0,utils_1.useDimensions)(a)[0];return React.createElement(styled_components_1.ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==s?void 0:s.width},n)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,n=t.render,a=t.userProps,s=r.setValue,o=a.children;return n(React.createElement(React.Fragment,null,o(s)))}function TryItPanel(e){var t=e.header,r=e.error,n=e.success,a=(0,tslib_1.__rest)(e,["header","error","success"]);return React.createElement(StyledTryItPanel,(0,tslib_1.__assign)({},a,{header:function(e){var s=e.toggle,o=e.expanded;return React.createElement(Panel_1.Header,{onClick:s,isExpanded:o,"data-cy":a["data-cy"]},React.createElement(Panel_1.Trigger,null,React.createElement(Panel_1.Title,null,t),React.createElement(redoc_lib_1.ShelfIcon,{direction:o?"down":"right"})),r&&React.createElement(redoc_lib_1.CrossIcon,{size:"14px",color:"#ff908b"})||null,n&&React.createElement(redoc_lib_1.LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}exports.Console=Console,exports.TryItPanel=TryItPanel;var templateObject_1,StyledTryItPanel=(0,styled_components_2.default)(Panel_1.Panel)(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Panel_1.Header,(function(e){return e.error?"#ff908b":"#89949f"}),redoc_lib_1.ShelfIcon,PanelBody_1.PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TryItPanel=exports.Console=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),informed_1=require("informed"),mobx_react_1=require("mobx-react"),utils_1=require("../../utils"),styled_components_1=require("./styled.components"),ServerDropdown_1=require("./ServerDropdown"),OperationParameters_1=require("./OperationParameters"),ActionPanel_1=require("./ActionPanel"),ResponsePanel_1=require("./ResponsePanel"),RequestBody_1=require("./RequestBody"),ConsoleBadges_1=require("./ConsoleBadges"),AuthPanel_1=require("./AuthPanel"),services_1=require("../../services"),swagger_client_1=(0,tslib_1.__importDefault)(require("swagger-client")),redoc_lib_1=require("../../redoc-lib"),helper_1=require("../../redoc-lib/src/components/helper"),Labels_1=require("../../redoc-lib/src/services/Labels"),styled_components_2=(0,tslib_1.__importDefault)(require("../../redoc-lib/src/styled-components")),Panel_1=require("../Panel"),OAuth2_1=require("../../services/OAuth2"),PanelBody_1=require("../Panel/PanelBody"),utils_2=require("./utils"),helper_2=require("../common/FileUpload/helper");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,t){void 0===t&&(t=e.getState());var n=t.values,a=(0,tslib_1.__rest)(t,["values"]);r.formApi=e,setTimeout((function(){var e=(0,tslib_1.__assign)((0,tslib_1.__assign)({},a),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{query:(0,utils_2.unescapeQueryParams)(n.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.values,n=(0,tslib_1.__rest)(e,["values"]),a=(0,tslib_1.__assign)((0,tslib_1.__assign)({},n),{values:(0,tslib_1.__assign)((0,tslib_1.__assign)({},t),{query:(0,utils_2.unescapeQueryParams)(t.query||{})})});r.setState({form:a}),(0,utils_2.updateStorage)(a)}}),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,n,a,s,o,i,l,c,u,d,p,_,h,m,b,v,y,g,f,P,R,q,S,C,w,E,I,x,A,T,O,k,B,j,F,H,D=this;return(0,tslib_1.__generator)(this,(function(U){switch(U.label){case 0:if(e=this.props,t=e.store,r=e.operation,n=e.onResponse,a=this.state.form,s=a.values,o=a.invalid,this.formApi.submitForm(),o)return this.setState({shaking:!0}),setTimeout((function(){return D.setState({shaking:!1})}),1e3),null===(O=null===(T=null==t?void 0:t.options.events)||void 0===T?void 0:T.tryItSent)||void 0===O||O.call(T,{eventType:services_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=this.props.operation.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",c=s.body,/json/.test(l))try{c=JSON.parse(c)}catch(e){console.error(e)}if(this.setState({loading:!0}),u=this.state.resolvedRawSpec,!(d=(0,utils_1.get)(u,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||(0,utils_1.get)(u,["paths",r.path,"servers"])||(0,utils_1.get)(u,["servers"])))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");p=d.find((function(e){return D.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),_=Date.now(),h=!!window.document.documentMode,b=s.auth,s.auth?(v=Object.keys(s.auth)[0],y=(0,utils_1.unescapeFormId)(v),m=(0,tslib_1.__assign)((0,tslib_1.__assign)({},u),{components:(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components),{securitySchemes:(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components.securitySchemes),(x={},x[y]=(0,tslib_1.__assign)((0,tslib_1.__assign)({},u.components.securitySchemes[y]),{type:"openIdConnect"===u.components.securitySchemes[y].type?"oauth2":u.components.securitySchemes[y].type}),x))})}),b=(0,tslib_1.__assign)((0,tslib_1.__assign)({},b),((A={})[y]=b[v],A))):m=(0,tslib_1.__assign)({},u),(g=t.options.corsProxyUrl)&&u.servers&&u.servers.length&&(m.servers=u.servers.map((function(e){return(0,tslib_1.__assign)((0,tslib_1.__assign)({},e),{url:g+normalizeUrlProtocol(e.url)})}))),(f=(null===(B=null===(k=null==i?void 0:i.content)||void 0===k?void 0:k.active)||void 0===B?void 0:B.name)||null)&&c&&(0,helper_2.isFileUploadMime)(f)&&(P=Object.values(c),c=P.length>1?P:P[0]),R=function(e,t){return function(r){return D.props.store.options.sendXUserAgentInTryIt&&(r.headers["X-User-Agent"]="Redocly Try it API console"),e?e(r,t):r}},q={userFetch:h&&require("cross-fetch").fetch,server:g?g+normalizeUrlProtocol(p.url):p.url,serverVariables:this.state.server.variables,spec:m,pathName:r.path,method:r.httpVerb,parameters:(0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)((0,tslib_1.__assign)({},s.path),s.query),s.header),s.cookie),securities:{authorized:b},requestBody:c,requestContentType:f,responseContentType:(null===(j=s.header)||void 0===j?void 0:j.Accept)||null,requestInterceptor:R(t.options.requestInterceptor,r)},U.label=1;case 1:return U.trys.push([1,5,8,9]),[4,swagger_client_1.default.execute(q)];case 2:return S=U.sent(),(C=null==S?void 0:S.data)instanceof Blob?((0,helper_2.isFileUploadMime)(C.type)&&(S.fileInfo={rawData:C,fileName:(0,utils_2.getFileNameFromHeaders)(S.headers)}),w=S,[4,C.text()]):[3,4];case 3:w.data=U.sent(),U.label=4;case 4:return null==n||n({request:q,response:S}),this.setState({response:S,error:void 0}),[3,9];case 5:return(E=U.sent())&&E.response&&E.response.data instanceof Blob?(I=E.response,[4,E.response.data.text()]):[3,7];case 6:I.data=U.sent(),null==n||n({request:q,response:E.response}),U.label=7;case 7:return this.setState({response:void 0,error:E}),[3,9];case 8:return this.setState({loading:!1,activeTab:1,time:Date.now()-_}),null===(H=null===(F=null==t?void 0:t.options.events)||void 0===F?void 0:F.tryItSent)||void 0===H||H.call(F,{eventType:services_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(){return(0,tslib_1.__awaiter)(this,void 0,void 0,(function(){var e,t,r,n;return(0,tslib_1.__generator)(this,(function(a){switch(a.label){case 0:return e=this.props,t=e.store,r=e.operation,[4,t.dereferenceSpecForTryIt(r)];case 1:return n=a.sent(),this.setState({resolvedRawSpec:n}),this.formApi.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,n=e.rootElement,a=this.state,s=a.shaking,o=a.activeTab,i=a.form,l=a.response,c=a.loading,u=a.error,d=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:s,className:r,rootElement:n},React.createElement(Panel_1.CodeHeader,null,React.createElement(ConsoleBadges_1.ConsoleBadges,{active:o,hasResponse:d,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(styled_components_1.CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(styled_components_1.ConsoleBody,{hidden:0!==o},this.renderRequest()),React.createElement(styled_components_1.ConsoleBody,{hidden:1!==o},this.renderResponse()),React.createElement(ActionPanel_1.ActionPanel,{hasResponse:d,params:i.values,operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,n=t.store,a=t.properties,s=t.securityDefaults,o=this.state,i=o.form,l=o.resolvedRawSpec,c=o.server,u=i.errors||{},d=u.path||u.cookie||u.header||u.query,p=l&&redoc_lib_1.JsonPointer.get(l,r.pointer),_=i.values&&i.values.auth&&Object.keys(i.values.auth)[0];_&&i.values.auth[_]||(_=void 0),!_||void 0===i.values.auth[_].token&&void 0===i.values.auth[_].client_id&&void 0===i.values.auth[_].client_secret||i.values.auth[_].token&&i.values.auth[_].token.access_token||(_=void 0),_&&null!=i.values.auth[_].username&&(i.values.auth[_].username&&i.values.auth[_].password||(_=void 0));var h=r.parameters||[],m=null===(e=null==n?void 0:n.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!l&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(React.Fragment,null,React.createElement(informed_1.Form,{onChange:this.handleChange,getApi:this.setFormApi,style:(0,tslib_1.__assign)((0,tslib_1.__assign)({},flexColumn),{margin:0})},React.createElement(Panel_1.Accordion,{initialActiveIdx:r.security.length&&_?1:0},r.security.length&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!_&&!!u.auth,success:!!_},m?React.createElement(AuthPanelHook,{field:"auth",validate:AuthPanel_1.requiredValidator},(function(e){return React.createElement(helper_1.RenderHook,{Hook:m,props:{server:c,operation:r,onChange:e,OAuth2:OAuth2_1.OAuth2}})})):React.createElement(AuthPanel_1.AuthPanel,{formApi:this.formApi,form:i,operation:r,activeServer:c.url,authCorsProxyUrl:n.options.authCorsProxyUrl,securityDefaults:s}))||null,r.requestBody&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!u.body},React.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,console:this,body:r.requestBody,id:r.id,resolvedBody:p.requestBody,properties:a}))||null,h.length&&React.createElement(TryItPanel,{header:(0,Labels_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},React.createElement(OperationParameters_1.OperationParameters,{operation:r,values:i.values,errors:i.errors||{}}))||null)),React.createElement(ServerDropdown_1.ServerChooser,{operation:r,onChange:this.handleServerChange}))}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,n=e.time;return React.createElement(ResponsePanel_1.ResponsePanel,{response:t,error:r,time:n})}}),t=(0,tslib_1.__decorate)([mobx_react_1.observer],t)}(React.Component);function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,n=e.children,a=e.rootElement,s=(0,utils_1.useDimensions)(a)[0];return React.createElement(styled_components_1.ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==s?void 0:s.width},n)}function AuthPanelHook(e){var t=(0,informed_1.useField)((0,tslib_1.__assign)({},e)),r=t.fieldApi,n=t.render,a=t.userProps,s=r.setValue,o=a.children;return n(React.createElement(React.Fragment,null,o(s)))}function TryItPanel(e){var t=e.header,r=e.error,n=e.success,a=(0,tslib_1.__rest)(e,["header","error","success"]);return React.createElement(StyledTryItPanel,(0,tslib_1.__assign)({},a,{header:function(e){var s=e.toggle,o=e.expanded;return React.createElement(Panel_1.Header,{onClick:s,isExpanded:o,"data-cy":a["data-cy"]},React.createElement(Panel_1.Trigger,null,React.createElement(Panel_1.Title,null,t),React.createElement(redoc_lib_1.ShelfIcon,{direction:o?"down":"right"})),r&&React.createElement(redoc_lib_1.CrossIcon,{size:"14px",color:"#ff908b"})||null,n&&React.createElement(redoc_lib_1.LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}exports.Console=Console,exports.TryItPanel=TryItPanel;var templateObject_1,StyledTryItPanel=(0,styled_components_2.default)(Panel_1.Panel)(templateObject_1||(templateObject_1=(0,tslib_1.__makeTemplateObject)(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Panel_1.Header,(function(e){return e.error?"#ff908b":"#89949f"}),redoc_lib_1.ShelfIcon,PanelBody_1.PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _this=this;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestBody=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),react_1=require("react"),mobx_react_1=require("mobx-react"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge")),redoc_lib_1=require("../../redoc-lib"),CodemirrorInput_1=(0,tslib_1.__importDefault)(require("./CodemirrorInput")),RequestMimeLabel_1=require("./RequestMimeLabel"),Samples_1=require("../Samples"),utils_1=require("../../services/utils"),RequestBodyForm_1=require("./RequestBodyForm"),helper_1=require("../common/FileUpload/helper"),models_1=require("../../models");exports.RequestBody=(0,mobx_react_1.observer)((function(e){var r,t,
|
|
1
|
+
"use strict";var _this=this;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestBody=void 0;var tslib_1=require("tslib"),React=(0,tslib_1.__importStar)(require("react")),react_1=require("react"),mobx_react_1=require("mobx-react"),deepmerge_1=(0,tslib_1.__importDefault)(require("deepmerge")),redoc_lib_1=require("../../redoc-lib"),CodemirrorInput_1=(0,tslib_1.__importDefault)(require("./CodemirrorInput")),RequestMimeLabel_1=require("./RequestMimeLabel"),Samples_1=require("../Samples"),utils_1=require("../../services/utils"),RequestBodyForm_1=require("./RequestBodyForm"),helper_1=require("../common/FileUpload/helper"),models_1=require("../../models");exports.RequestBody=(0,mobx_react_1.observer)((function(e){var r,t,o=e.properties,i=void 0===o?{}:o,a=(0,tslib_1.__rest)(e,["properties"]),l=function(e){var r,t=a.body.content;if(!t||!t.hasSample)return"";var o=null===(r=t.active)||void 0===r?void 0:r.examples;if(!(null==o?void 0:o[e]))return"";var l=(0,deepmerge_1.default)(null==o?void 0:o[e].value,i,{arrayMerge:utils_1.arrayMerge});return JSON.stringify(l,null,2)},n=null===(t=null===(r=a.body.content)||void 0===r?void 0:r.operation)||void 0===t?void 0:t.activeExampleName,u=function(e){var r,t;null===(t=null===(r=a.body.content)||void 0===r?void 0:r.operation)||void 0===t||t.activateExampleName(e),a.console.formApi.setValue("body",l(e))},d=function(e){if(!e)return"";if("application/x-www-form-urlencoded"===e.mime)return e.value;var r=(0,deepmerge_1.default)(e.value,i,{arrayMerge:utils_1.arrayMerge});return JSON.stringify(r,null,2)},s=function(e,r){return(0,tslib_1.__awaiter)(void 0,void 0,void 0,(function(){var t;return(0,tslib_1.__generator)(this,(function(o){return t=a.console.formApi,(0,t.setValue)("body."+e,r),[2]}))}))};(0,react_1.useEffect)((function(){!1!==n?n&&a.console.formApi.setValue("body",l(n)):a.console.formApi.setValue("body",JSON.stringify(i,null,2))}),[n]);var m=a.validate,c=a.body;return React.createElement(React.Fragment,null,React.createElement(redoc_lib_1.MediaTypesSwitch,{content:c.content,renderDropdown:function(e){return React.createElement(redoc_lib_1.DropdownOrLabel,(0,tslib_1.__assign)({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel_1.RequestMimeLabel,Dropdown:redoc_lib_1.Dropdown}))}},(function(e){var r=e.examples||{},t=Object.keys(r),o=e.schema,i=(0,helper_1.isRootFileUpload)(o||{},e.name)||e.name===models_1.MediaTypes.MULTIPART||e.name===models_1.MediaTypes.URL_ENCODED,l=(0,Samples_1.useExampleKey)(e.operation,r).exampleKey,n=r[l];return React.createElement(React.Fragment,null,t.length&&1!==t.length&&React.createElement(Samples_1.ExampleSwitch,{examples:r,onChange:u,exampleKey:l})||null,i?React.createElement(RequestBodyForm_1.RequestBodyForm,{mediaType:e,onChange:s.bind(_this)}):React.createElement(CodemirrorInput_1.default,{id:"body"+a.id,field:"body",initialValue:d(n),schema:(a.resolvedBody.content[e.name]||{}).schema,mode:e.name,validate:m}))})))}));
|
|
2
2
|
//# sourceMappingURL=RequestBody.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign,__awaiter,__decorate,__extends,__generator,__makeTemplateObject,__rest}from"tslib";import*as React from"react";import{Form,useField}from"informed";import{observer}from"mobx-react";import{get,useDimensions,unescapeFormId}from"../../utils";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled.components";import{ServerChooser}from"./ServerDropdown";import{OperationParameters}from"./OperationParameters";import{ActionPanel}from"./ActionPanel";import{ResponsePanel}from"./ResponsePanel";import{RequestBody}from"./RequestBody";import{ConsoleBadges}from"./ConsoleBadges";import{AuthPanel,requiredValidator}from"./AuthPanel";import{AnalyticsEventType}from"../../services";import Swagger from"swagger-client";import{ShelfIcon,CrossIcon,LockIcon}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/helper";import{l}from"../../redoc-lib/src/services/Labels";import styled from"../../redoc-lib/src/styled-components";import{CodeHeader,Panel,Header,Accordion,Trigger,Title}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{PanelBody}from"../Panel/PanelBody";import{getFileNameFromHeaders,getParameters,unescapeQueryParams,updateStorage}from"./utils";import{isFileUploadMime}from"../common/FileUpload/helper";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,t){void 0===t&&(t=e.getState());var o=t.values,n=__rest(t,["values"]);r.formApi=e,setTimeout((function(){var e=__assign(__assign({},n),{values:__assign(__assign({},o),{query:unescapeQueryParams(o.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.values,o=__rest(e,["values"]),n=__assign(__assign({},o),{values:__assign(__assign({},t),{query:unescapeQueryParams(t.query||{})})});r.setState({form:n}),updateStorage(n)}}),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 __awaiter(r,void 0,void 0,(function(){var e,t,r,o,n,a,s,i,l,c,u,p,d,m,h,v,f,g,y,b,_,P,R,S,C,E,I,w,T,A,k,x,O,q,B,F,j,H,U=this;return __generator(this,(function(V){switch(V.label){case 0:if(e=this.props,t=e.store,r=e.operation,o=e.onResponse,n=this.state.form,a=n.values,s=n.invalid,this.formApi.submitForm(),s)return this.setState({shaking:!0}),setTimeout((function(){return U.setState({shaking:!1})}),1e3),null===(O=null===(x=null==t?void 0:t.options.events)||void 0===x?void 0:x.tryItSent)||void 0===O||O.call(x,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=this.props.operation.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",c=a.body,/json/.test(l))try{c=JSON.parse(c)}catch(e){console.error(e)}if(this.setState({loading:!0}),u=this.state.resolvedRawSpec,!(p=get(u,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||get(u,["paths",r.path,"servers"])||get(u,["servers"])))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");d=p.find((function(e){return U.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),m=Date.now(),h=!!window.document.documentMode,f=a.auth,a.auth?(g=Object.keys(a.auth)[0],y=unescapeFormId(g),v=__assign(__assign({},u),{components:__assign(__assign({},u.components),{securitySchemes:__assign(__assign({},u.components.securitySchemes),(A={},A[y]=__assign(__assign({},u.components.securitySchemes[y]),{type:"openIdConnect"===u.components.securitySchemes[y].type?"oauth2":u.components.securitySchemes[y].type}),A))})}),f=__assign(__assign({},f),((k={})[y]=f[g],k))):v=__assign({},u),(b=t.options.corsProxyUrl)&&u.servers&&u.servers.length&&(v.servers=u.servers.map((function(e){return __assign(__assign({},e),{url:b+normalizeUrlProtocol(e.url)})}))),(_=(null===(B=null===(q=null==i?void 0:i.content)||void 0===q?void 0:q.active)||void 0===B?void 0:B.name)||null)&&c&&isFileUploadMime(_)&&(P=Object.values(c),c=P.length>1?P:P[0]),R=function(e,t){return function(r){return U.props.store.options.sendXUserAgentInTryIt&&(r.headers["X-User-Agent"]="Redocly Try it API console"),e?e(r,t):r}},S={userFetch:h&&require("cross-fetch").fetch,server:b?b+normalizeUrlProtocol(d.url):d.url,serverVariables:this.state.server.variables,spec:v,pathName:r.path,method:r.httpVerb,parameters:__assign(__assign(__assign(__assign({},a.path),a.query),a.header),a.cookie),securities:{authorized:f},requestBody:c,requestContentType:_,responseContentType:(null===(F=a.header)||void 0===F?void 0:F.Accept)||null,requestInterceptor:R(t.options.requestInterceptor,r)},V.label=1;case 1:return V.trys.push([1,5,8,9]),[4,Swagger.execute(S)];case 2:return C=V.sent(),(E=null==C?void 0:C.data)instanceof Blob?(isFileUploadMime(E.type)&&(C.fileInfo={rawData:E,fileName:getFileNameFromHeaders(C.headers)}),I=C,[4,E.text()]):[3,4];case 3:I.data=V.sent(),V.label=4;case 4:return null==o||o({request:S,response:C}),this.setState({response:C,error:void 0}),[3,9];case 5:return(w=V.sent())&&w.response&&w.response.data instanceof Blob?(T=w.response,[4,w.response.data.text()]):[3,7];case 6:T.data=V.sent(),null==o||o({request:S,response:w.response}),V.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()-m}),null===(H=null===(j=null==t?void 0:t.options.events)||void 0===j?void 0:j.tryItSent)||void 0===H||H.call(j,{eventType: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:getParameters(t.operation.parameters,"path"),cookie:getParameters(t.operation.parameters,"cookie"),header:getParameters(t.operation.parameters,"header"),query:getParameters(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return __extends(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,o;return __generator(this,(function(n){switch(n.label){case 0:return e=this.props,t=e.store,r=e.operation,[4,t.dereferenceSpecForTryIt(r)];case 1:return o=n.sent(),this.setState({resolvedRawSpec:o}),this.formApi.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,o=e.rootElement,n=this.state,a=n.shaking,s=n.activeTab,i=n.form,l=n.response,c=n.loading,u=n.error,p=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:a,className:r,rootElement:o},React.createElement(CodeHeader,null,React.createElement(ConsoleBadges,{active:s,hasResponse:p,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==s},this.renderRequest()),React.createElement(ConsoleBody,{hidden:1!==s},this.renderResponse()),React.createElement(ActionPanel,{hasResponse:p,params:i.values,operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,o=t.store,n=t.properties,a=t.securityDefaults,s=this.state,i=s.form,c=s.resolvedRawSpec,u=s.server,p=i.errors||{},d=p.path||p.cookie||p.header||p.query,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 h=r.parameters||[],v=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!c&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(React.Fragment,null,React.createElement(Form,{onChange:this.handleChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},React.createElement(Accordion,{initialActiveIdx:r.security.length&&m?1:0},r.security.length&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!m&&!!p.auth,success:!!m},v?React.createElement(AuthPanelHook,{field:"auth",validate:requiredValidator},(function(e){return React.createElement(RenderHook,{Hook:v,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2}})})):React.createElement(AuthPanel,{formApi:this.formApi,form:i,operation:r,activeServer:u.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:a}))||null,r.requestBody&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!p.body},React.createElement(RequestBody,{validate:allowBodyErrors,console:this,body:r.requestBody,id:r.id,properties:n}))||null,h.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:r,values:i.values,errors:i.errors||{}}))||null)),React.createElement(ServerChooser,{operation:r,onChange:this.handleServerChange}))}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,o=e.time;return React.createElement(ResponsePanel,{response:t,error:r,time:o})}}),t=__decorate([observer],t)}(React.Component);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,o=e.children,n=e.rootElement,a=useDimensions(n)[0];return React.createElement(ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==a?void 0:a.width},o)}function AuthPanelHook(e){var t=useField(__assign({},e)),r=t.fieldApi,o=t.render,n=t.userProps,a=r.setValue,s=n.children;return o(React.createElement(React.Fragment,null,s(a)))}export function TryItPanel(e){var t=e.header,r=e.error,o=e.success,n=__rest(e,["header","error","success"]);return React.createElement(StyledTryItPanel,__assign({},n,{header:function(e){var a=e.toggle,s=e.expanded;return React.createElement(Header,{onClick:a,isExpanded:s,"data-cy":n["data-cy"]},React.createElement(Trigger,null,React.createElement(Title,null,t),React.createElement(ShelfIcon,{direction:s?"down":"right"})),r&&React.createElement(CrossIcon,{size:"14px",color:"#ff908b"})||null,o&&React.createElement(LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}var templateObject_1,StyledTryItPanel=styled(Panel)(templateObject_1||(templateObject_1=__makeTemplateObject(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Header,(function(e){return e.error?"#ff908b":"#89949f"}),ShelfIcon,PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
1
|
+
import{__assign,__awaiter,__decorate,__extends,__generator,__makeTemplateObject,__rest}from"tslib";import*as React from"react";import{Form,useField}from"informed";import{observer}from"mobx-react";import{get,useDimensions,unescapeFormId}from"../../utils";import{CloseButton,ConsoleBody,ConsoleWrap}from"./styled.components";import{ServerChooser}from"./ServerDropdown";import{OperationParameters}from"./OperationParameters";import{ActionPanel}from"./ActionPanel";import{ResponsePanel}from"./ResponsePanel";import{RequestBody}from"./RequestBody";import{ConsoleBadges}from"./ConsoleBadges";import{AuthPanel,requiredValidator}from"./AuthPanel";import{AnalyticsEventType}from"../../services";import Swagger from"swagger-client";import{JsonPointer,ShelfIcon,CrossIcon,LockIcon}from"../../redoc-lib";import{RenderHook}from"../../redoc-lib/src/components/helper";import{l}from"../../redoc-lib/src/services/Labels";import styled from"../../redoc-lib/src/styled-components";import{CodeHeader,Panel,Header,Accordion,Trigger,Title}from"../Panel";import{OAuth2}from"../../services/OAuth2";import{PanelBody}from"../Panel/PanelBody";import{getFileNameFromHeaders,getParameters,unescapeQueryParams,updateStorage}from"./utils";import{isFileUploadMime}from"../common/FileUpload/helper";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,t){void 0===t&&(t=e.getState());var o=t.values,n=__rest(t,["values"]);r.formApi=e,setTimeout((function(){var e=__assign(__assign({},n),{values:__assign(__assign({},o),{query:unescapeQueryParams(o.query||{})})});r.setState({form:e})}),0)}}),Object.defineProperty(r,"handleChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=e.values,o=__rest(e,["values"]),n=__assign(__assign({},o),{values:__assign(__assign({},t),{query:unescapeQueryParams(t.query||{})})});r.setState({form:n}),updateStorage(n)}}),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 __awaiter(r,void 0,void 0,(function(){var e,t,r,o,n,a,s,i,l,c,u,p,d,m,h,v,f,g,y,b,_,P,R,S,C,E,I,w,T,A,k,x,O,q,B,F,j,H,U=this;return __generator(this,(function(V){switch(V.label){case 0:if(e=this.props,t=e.store,r=e.operation,o=e.onResponse,n=this.state.form,a=n.values,s=n.invalid,this.formApi.submitForm(),s)return this.setState({shaking:!0}),setTimeout((function(){return U.setState({shaking:!1})}),1e3),null===(O=null===(x=null==t?void 0:t.options.events)||void 0===x?void 0:x.tryItSent)||void 0===O||O.call(x,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:r.operationId,operationPath:r.path,operationHttpVerb:r.httpVerb,operationSummary:r.description}),[2];if(i=this.props.operation.requestBody,l=i&&i.content&&i.content.active&&i.content.active.name||"",c=a.body,/json/.test(l))try{c=JSON.parse(c)}catch(e){console.error(e)}if(this.setState({loading:!0}),u=this.state.resolvedRawSpec,!(p=get(u,["paths",r.path,(r.httpVerb||"").toLowerCase(),"servers"])||get(u,["paths",r.path,"servers"])||get(u,["servers"])))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");d=p.find((function(e){return U.state.server.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url)})),m=Date.now(),h=!!window.document.documentMode,f=a.auth,a.auth?(g=Object.keys(a.auth)[0],y=unescapeFormId(g),v=__assign(__assign({},u),{components:__assign(__assign({},u.components),{securitySchemes:__assign(__assign({},u.components.securitySchemes),(A={},A[y]=__assign(__assign({},u.components.securitySchemes[y]),{type:"openIdConnect"===u.components.securitySchemes[y].type?"oauth2":u.components.securitySchemes[y].type}),A))})}),f=__assign(__assign({},f),((k={})[y]=f[g],k))):v=__assign({},u),(b=t.options.corsProxyUrl)&&u.servers&&u.servers.length&&(v.servers=u.servers.map((function(e){return __assign(__assign({},e),{url:b+normalizeUrlProtocol(e.url)})}))),(_=(null===(B=null===(q=null==i?void 0:i.content)||void 0===q?void 0:q.active)||void 0===B?void 0:B.name)||null)&&c&&isFileUploadMime(_)&&(P=Object.values(c),c=P.length>1?P:P[0]),R=function(e,t){return function(r){return U.props.store.options.sendXUserAgentInTryIt&&(r.headers["X-User-Agent"]="Redocly Try it API console"),e?e(r,t):r}},S={userFetch:h&&require("cross-fetch").fetch,server:b?b+normalizeUrlProtocol(d.url):d.url,serverVariables:this.state.server.variables,spec:v,pathName:r.path,method:r.httpVerb,parameters:__assign(__assign(__assign(__assign({},a.path),a.query),a.header),a.cookie),securities:{authorized:f},requestBody:c,requestContentType:_,responseContentType:(null===(F=a.header)||void 0===F?void 0:F.Accept)||null,requestInterceptor:R(t.options.requestInterceptor,r)},V.label=1;case 1:return V.trys.push([1,5,8,9]),[4,Swagger.execute(S)];case 2:return C=V.sent(),(E=null==C?void 0:C.data)instanceof Blob?(isFileUploadMime(E.type)&&(C.fileInfo={rawData:E,fileName:getFileNameFromHeaders(C.headers)}),I=C,[4,E.text()]):[3,4];case 3:I.data=V.sent(),V.label=4;case 4:return null==o||o({request:S,response:C}),this.setState({response:C,error:void 0}),[3,9];case 5:return(w=V.sent())&&w.response&&w.response.data instanceof Blob?(T=w.response,[4,w.response.data.text()]):[3,7];case 6:T.data=V.sent(),null==o||o({request:S,response:w.response}),V.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()-m}),null===(H=null===(j=null==t?void 0:t.options.events)||void 0===j?void 0:j.tryItSent)||void 0===H||H.call(j,{eventType: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:getParameters(t.operation.parameters,"path"),cookie:getParameters(t.operation.parameters,"cookie"),header:getParameters(t.operation.parameters,"header"),query:getParameters(t.operation.parameters,"query")}},shaking:!1,loading:!1,activeTab:0,server:{}},r}return __extends(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,o;return __generator(this,(function(n){switch(n.label){case 0:return e=this.props,t=e.store,r=e.operation,[4,t.dereferenceSpecForTryIt(r)];case 1:return o=n.sent(),this.setState({resolvedRawSpec:o}),this.formApi.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,o=e.rootElement,n=this.state,a=n.shaking,s=n.activeTab,i=n.form,l=n.response,c=n.loading,u=n.error,p=!(!l&&!u);return React.createElement(ConsoleWrapHook,{shaking:a,className:r,rootElement:o},React.createElement(CodeHeader,null,React.createElement(ConsoleBadges,{active:s,hasResponse:p,onChange:this.handleTabChange}),this.props.onClose&&React.createElement(CloseButton,{onClick:this.props.onClose}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==s},this.renderRequest()),React.createElement(ConsoleBody,{hidden:1!==s},this.renderResponse()),React.createElement(ActionPanel,{hasResponse:p,params:i.values,operation:t,loading:c,execute:this.handleExecute}))}}),Object.defineProperty(t.prototype,"renderRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e,t=this.props,r=t.operation,o=t.store,n=t.properties,a=t.securityDefaults,s=this.state,i=s.form,c=s.resolvedRawSpec,u=s.server,p=i.errors||{},d=p.path||p.cookie||p.header||p.query,m=c&&JsonPointer.get(c,r.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=r.parameters||[],f=null===(e=null==o?void 0:o.options.hooks)||void 0===e?void 0:e.ReplaceTryItSecurityPanel;return!c&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(React.Fragment,null,React.createElement(Form,{onChange:this.handleChange,getApi:this.setFormApi,style:__assign(__assign({},flexColumn),{margin:0})},React.createElement(Accordion,{initialActiveIdx:r.security.length&&h?1:0},r.security.length&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",renderChildrenHidden:!0,error:!h&&!!p.auth,success:!!h},f?React.createElement(AuthPanelHook,{field:"auth",validate:requiredValidator},(function(e){return React.createElement(RenderHook,{Hook:f,props:{server:u,operation:r,onChange:e,OAuth2:OAuth2}})})):React.createElement(AuthPanel,{formApi:this.formApi,form:i,operation:r,activeServer:u.url,authCorsProxyUrl:o.options.authCorsProxyUrl,securityDefaults:a}))||null,r.requestBody&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",renderChildrenHidden:!0,error:!!p.body},React.createElement(RequestBody,{validate:allowBodyErrors,console:this,body:r.requestBody,id:r.id,resolvedBody:m.requestBody,properties:n}))||null,v.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:d,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:r,values:i.values,errors:i.errors||{}}))||null)),React.createElement(ServerChooser,{operation:r,onChange:this.handleServerChange}))}}),Object.defineProperty(t.prototype,"renderResponse",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.state,t=e.response,r=e.error,o=e.time;return React.createElement(ResponsePanel,{response:t,error:r,time:o})}}),t=__decorate([observer],t)}(React.Component);export{Console};function allowBodyErrors(){}function ConsoleWrapHook(e){var t=e.shaking,r=e.className,o=e.children,n=e.rootElement,a=useDimensions(n)[0];return React.createElement(ConsoleWrap,{shaking:t,className:r,"data-cy":"console",fullWidth:null==a?void 0:a.width},o)}function AuthPanelHook(e){var t=useField(__assign({},e)),r=t.fieldApi,o=t.render,n=t.userProps,a=r.setValue,s=n.children;return o(React.createElement(React.Fragment,null,s(a)))}export function TryItPanel(e){var t=e.header,r=e.error,o=e.success,n=__rest(e,["header","error","success"]);return React.createElement(StyledTryItPanel,__assign({},n,{header:function(e){var a=e.toggle,s=e.expanded;return React.createElement(Header,{onClick:a,isExpanded:s,"data-cy":n["data-cy"]},React.createElement(Trigger,null,React.createElement(Title,null,t),React.createElement(ShelfIcon,{direction:s?"down":"right"})),r&&React.createElement(CrossIcon,{size:"14px",color:"#ff908b"})||null,o&&React.createElement(LockIcon,{size:"14px",color:"#56ff26"})||null)}}))}var templateObject_1,StyledTryItPanel=styled(Panel)(templateObject_1||(templateObject_1=__makeTemplateObject(["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"],["\n "," {\n color: white;\n border: 1px solid ",";\n padding: 10px;\n }\n\n "," path {\n fill: white;\n }\n\n "," {\n padding: 15px 10px;\n background-color: #3e4c59;\n border: 1px solid ",";\n border-top: 0;\n }\n"])),Header,(function(e){return e.error?"#ff908b":"#89949f"}),ShelfIcon,PanelBody,(function(e){return e.error?"#ff908b":"#89949f"}));
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _this=this;import{__assign,__awaiter,__generator,__rest}from"tslib";import*as React from"react";import{useEffect}from"react";import{observer}from"mobx-react";import merge from"deepmerge";import{DropdownOrLabel,Dropdown,MediaTypesSwitch}from"../../redoc-lib";import CodemirrorInput from"./CodemirrorInput";import{RequestMimeLabel}from"./RequestMimeLabel";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMerge}from"../../services/utils";import{RequestBodyForm}from"./RequestBodyForm";import{isRootFileUpload}from"../common/FileUpload/helper";import{MediaTypes}from"../../models";export var RequestBody=observer((function(e){var r,o,t=e.properties,a=void 0===t?{}:t,i=__rest(e,["properties"]),n=function(e){var r,o=i.body.content;if(!o||!o.hasSample)return"";var t=null===(r=o.active)||void 0===r?void 0:r.examples;if(!(null==t?void 0:t[e]))return"";var n=merge(null==t?void 0:t[e].value,a,{arrayMerge:arrayMerge});return JSON.stringify(n,null,2)},l=null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o?void 0:o.activeExampleName,m=function(e){var r,o;null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o||o.activateExampleName(e),i.console.formApi.setValue("body",n(e))},d=function(e){if(!e)return"";if("application/x-www-form-urlencoded"===e.mime)return e.value;var r=merge(e.value,a,{arrayMerge:arrayMerge});return JSON.stringify(r,null,2)},p=function(e,r){return __awaiter(void 0,void 0,void 0,(function(){var o;return __generator(this,(function(t){return o=i.console.formApi,(0,o.setValue)("body."+e,r),[2]}))}))};useEffect((function(){!1!==l?l&&i.console.formApi.setValue("body",n(l)):i.console.formApi.setValue("body",JSON.stringify(a,null,2))}),[l]);var u=i.validate,s=i.body;return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:s.content,renderDropdown:function(e){return React.createElement(DropdownOrLabel,__assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))}},(function(e){var r=e.examples||{},o=Object.keys(r),t=e.schema
|
|
1
|
+
var _this=this;import{__assign,__awaiter,__generator,__rest}from"tslib";import*as React from"react";import{useEffect}from"react";import{observer}from"mobx-react";import merge from"deepmerge";import{DropdownOrLabel,Dropdown,MediaTypesSwitch}from"../../redoc-lib";import CodemirrorInput from"./CodemirrorInput";import{RequestMimeLabel}from"./RequestMimeLabel";import{ExampleSwitch,useExampleKey}from"../Samples";import{arrayMerge}from"../../services/utils";import{RequestBodyForm}from"./RequestBodyForm";import{isRootFileUpload}from"../common/FileUpload/helper";import{MediaTypes}from"../../models";export var RequestBody=observer((function(e){var r,o,t=e.properties,a=void 0===t?{}:t,i=__rest(e,["properties"]),n=function(e){var r,o=i.body.content;if(!o||!o.hasSample)return"";var t=null===(r=o.active)||void 0===r?void 0:r.examples;if(!(null==t?void 0:t[e]))return"";var n=merge(null==t?void 0:t[e].value,a,{arrayMerge:arrayMerge});return JSON.stringify(n,null,2)},l=null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o?void 0:o.activeExampleName,m=function(e){var r,o;null===(o=null===(r=i.body.content)||void 0===r?void 0:r.operation)||void 0===o||o.activateExampleName(e),i.console.formApi.setValue("body",n(e))},d=function(e){if(!e)return"";if("application/x-www-form-urlencoded"===e.mime)return e.value;var r=merge(e.value,a,{arrayMerge:arrayMerge});return JSON.stringify(r,null,2)},p=function(e,r){return __awaiter(void 0,void 0,void 0,(function(){var o;return __generator(this,(function(t){return o=i.console.formApi,(0,o.setValue)("body."+e,r),[2]}))}))};useEffect((function(){!1!==l?l&&i.console.formApi.setValue("body",n(l)):i.console.formApi.setValue("body",JSON.stringify(a,null,2))}),[l]);var u=i.validate,s=i.body;return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:s.content,renderDropdown:function(e){return React.createElement(DropdownOrLabel,__assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))}},(function(e){var r=e.examples||{},o=Object.keys(r),t=e.schema,a=isRootFileUpload(t||{},e.name)||e.name===MediaTypes.MULTIPART||e.name===MediaTypes.URL_ENCODED,n=useExampleKey(e.operation,r).exampleKey,l=r[n];return React.createElement(React.Fragment,null,o.length&&1!==o.length&&React.createElement(ExampleSwitch,{examples:r,onChange:m,exampleKey:n})||null,a?React.createElement(RequestBodyForm,{mediaType:e,onChange:p.bind(_this)}):React.createElement(CodemirrorInput,{id:"body"+i.id,field:"body",initialValue:d(l),schema:(i.resolvedBody.content[e.name]||{}).schema,mode:e.name,validate:u}))})))}));
|
|
2
2
|
//# sourceMappingURL=RequestBody.js.map
|