@redocly/openapi-docs 3.0.0-alpha.66 → 3.0.0-alpha.67

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";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,s)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(s,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function i(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}l((o=o.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(r[o[s]]=e[o[s]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const index_1=require("swagger-client/es/execute/index"),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),recoil_1=require("@redocly/recoil"),shallowCopyForTryIt_1=require("./shallowCopyForTryIt"),string_1=require("../../../utils/string"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_1=require("../utils"),ResponsePanel_1=require("../ResponsePanel"),ConsoleTabs_1=require("../ConsoleTabs"),ActionPanel_1=require("../ActionPanel"),Request_1=require("./Request"),styled_1=require("../styled"),ConsoleWrapper_1=require("./ConsoleWrapper"),hooks_1=require("../../../hooks"),store_1=require("../../../recoil/store"),models_1=require("../../../models"),operation_1=require("../../../recoil/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:r,rootElement:o,properties:s,securityDefaults:n,onClose:a}){let i=(0,react_1.useRef)();const[l,c]=(0,recoil_1.useRecoilState)((0,operation_1.operationStore)(e.pointer)),[u,d]=(0,react_1.useState)(l.activeServer||e.activeServer),[p,_]=(0,react_1.useState)(0),[v,y]=(0,react_1.useState)(!1),[h,m]=(0,react_1.useState)(!1),[b,f]=(0,react_1.useState)({values:{path:(0,utils_1.getParameters)(e.parameters,"path"),cookie:(0,utils_1.getParameters)(e.parameters,"cookie"),header:(0,utils_1.getParameters)(e.parameters,"header"),query:(0,utils_1.getParameters)(e.parameters,"query")}}),[g,O]=(0,react_1.useState)(),[j,S]=(0,react_1.useState)(),[q,C]=(0,react_1.useState)(),[P,w]=(0,react_1.useState)(),I=(0,hooks_1.usePrevious)(e),{parser:T,options:R}=(0,recoil_1.useRecoilValue)(store_1.globalStoreSelector),k=(0,react_1.useCallback)(((e,t=e.getState())=>{var{values:r}=t,o=__rest(t,["values"]);i.current=e,setTimeout((()=>{f(Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},r),{query:(0,utils_1.unescapeQueryParams)(r.query||{})})}))}),0)}),[]),x=(0,react_1.useCallback)((e=>{var{values:t}=e,r=__rest(e,["values"]);const o=Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},t),{query:(0,utils_1.unescapeQueryParams)(t.query||{})})});c((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),f(o),(0,utils_1.updateStorage)(o)}),[c]),E=(0,react_1.useCallback)((e=>{_(e)}),[]),A=(0,react_1.useCallback)((e=>{d(e),c((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[c]),F=(0,react_1.useCallback)((()=>__awaiter(this,void 0,void 0,(function*(){var r,o,s,n,a,l,c,d,p,v,h,f,O,j,q,P,I;const{values:T,invalid:k}=(null===(r=null==i?void 0:i.current)||void 0===r?void 0:r.getState())||b||{};if(null===(o=i.current)||void 0===o||o.submitForm(),k)return m(!0),setTimeout((()=>m(!1)),1e3),void(null===(n=null===(s=R.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:x,requestBody:E}=e,A=E&&E.content&&(null===(a=(0,models_1.getActiveMediaType)(E.content))||void 0===a?void 0:a.name)||"";let F=T.body;if(/json/.test(A))try{F=JSON.parse(F)}catch(e){console.error(e)}y(!0);const V=g,D=(e.httpVerb||"").toLowerCase();if(!x)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");const M=x.find((e=>u.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),B=Date.now();let N,U=T.auth;if(T.auth){const e=Object.keys(T.auth)[0],t=(0,string_1.unescapeFormId)(e);N=Object.assign(Object.assign({},V),{components:Object.assign(Object.assign({},null==V?void 0:V.components),{securitySchemes:Object.assign(Object.assign({},null===(l=null==V?void 0:V.components)||void 0===l?void 0:l.securitySchemes),{[t]:Object.assign(Object.assign({},null===(d=null===(c=null==V?void 0:V.components)||void 0===c?void 0:c.securitySchemes)||void 0===d?void 0:d[t]),{type:"openIdConnect"===(null===(h=null===(v=null===(p=null==V?void 0:V.components)||void 0===p?void 0:p.securitySchemes)||void 0===v?void 0:v[t])||void 0===h?void 0:h.type)?"oauth2":(null===(O=null===(f=null==V?void 0:V.components)||void 0===f?void 0:f.securitySchemes)||void 0===O?void 0:O[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else N=Object.assign({},V);N.servers=x;const W=R.corsProxyUrl;W&&x.length&&(N.servers=x.map((e=>Object.assign(Object.assign({},e),{url:W+normalizeUrlProtocol(e.url)}))),N.paths=Object.assign(Object.assign({},N.paths),{[e.path]:Object.assign(Object.assign({},N.paths[e.path]),{[D]:Object.assign(Object.assign({},N.paths[e.path][D]),{servers:void 0}),servers:void 0})}));const z=(null==E?void 0:E.content)&&(null===(j=(0,models_1.getActiveMediaType)(E.content))||void 0===j?void 0:j.name)||null;if(z&&F&&(0,helper_1.isFileUploadMime)(z)){const e=Object.values(F);F=e.length>1?e:e[0]}const H={server:W?W+normalizeUrlProtocol(M.url):M.url,serverVariables:(0,utils_1.getDefaultOrStoredVariables)(M),spec:N,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},T.path),T.query),T.header),T.cookie),securities:{authorized:U},requestBody:F,requestContentType:z,responseContentType:(null===(q=T.header)||void 0===q?void 0:q.Accept)||null,requestInterceptor:(0,utils_1.makeRequestInterceptor)(R,e,null==U?void 0:U.Authorization)};try{const r=yield(0,index_1.execute)(H),o=null==r?void 0:r.data;o instanceof Blob&&((0,helper_1.isFileUploadMime)(o.type)&&(r.fileInfo={rawData:o,fileName:(0,utils_1.getFileNameFromHeaders)(r.headers)}),r.data=yield o.text()),null==t||t({request:H,response:r}),w(r),C(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:H,response:e.response})),w(void 0),C(e)}finally{y(!1),_(1),S(Date.now()-B),null===(I=null===(P=R.events)||void 0===P?void 0:P.tryItSent)||void 0===I||I.call(P,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[u.url,b,t,e,R,g]);(0,theme_1.useMount)((()=>__awaiter(this,void 0,void 0,(function*(){var t;const r=yield(0,shallowCopyForTryIt_1.dereferenceDefinitionForTryIt)(e,T.definition);O(r),null===(t=i.current)||void 0===t||t.setValues({})})))),(0,react_1.useEffect)((()=>{I&&I!==e&&(w(void 0),C(void 0),_(0))}),[e,I]);const V=!(!P&&!q);return react_1.default.createElement(ConsoleWrapper_1.ConsoleWrapper,{shaking:h,className:r,rootElement:o},react_1.default.createElement(Panel_1.StyledCodeHeader,null,react_1.default.createElement(ConsoleTabs_1.ConsoleTabs,{active:p,hasResponse:V,onChange:E}),a&&react_1.default.createElement(styled_1.CloseButton,{onClick:a}," ✕ ")),react_1.default.createElement(styled_1.ConsoleBody,{hidden:0!==p,"data-cy":"console-request-body"},react_1.default.createElement(Request_1.Request,{operation:e,properties:s,securityDefaults:n,form:b,resolvedRawSpec:g,server:u,formApi:i.current,setFormApi:k,handleChange:x,handleServerChange:A})),react_1.default.createElement(styled_1.ConsoleBody,{hidden:1!==p,"data-cy":"console-response-body"},react_1.default.createElement(ResponsePanel_1.ResponsePanel,{response:P,error:q,time:j})),react_1.default.createElement(ActionPanel_1.ActionPanel,{hasResponse:V,params:b.values,operation:e,loading:v,execute:F}))}exports.Console=(0,react_1.memo)(ConsoleComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,s)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(s,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function i(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,i)}l((o=o.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(r[o[s]]=e[o[s]])}return r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const index_1=require("swagger-client/es/execute/index"),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),recoil_1=require("@redocly/recoil"),shallowCopyForTryIt_1=require("./shallowCopyForTryIt"),string_1=require("../../../utils/string"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_1=require("../utils"),ResponsePanel_1=require("../ResponsePanel"),ConsoleTabs_1=require("../ConsoleTabs"),ActionPanel_1=require("../ActionPanel"),Request_1=require("./Request"),styled_1=require("../styled"),ConsoleWrapper_1=require("./ConsoleWrapper"),hooks_1=require("../../../hooks"),store_1=require("../../../recoil/store"),models_1=require("../../../models"),operation_1=require("../../../recoil/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:r,rootElement:o,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){let l=(0,react_1.useRef)();const[c,u]=(0,recoil_1.useRecoilState)((0,operation_1.operationStore)(e.pointer)),[d,p]=(0,react_1.useState)(c.activeServer||e.activeServer),[_,v]=(0,react_1.useState)(0),[y,h]=(0,react_1.useState)(!1),[m,b]=(0,react_1.useState)(!1),[f,g]=(0,react_1.useState)({values:{path:(0,utils_1.getParameters)(e.parameters,"path"),cookie:(0,utils_1.getParameters)(e.parameters,"cookie"),header:(0,utils_1.getParameters)(e.parameters,"header"),query:(0,utils_1.getParameters)(e.parameters,"query")}}),[O,j]=(0,react_1.useState)(),[S,q]=(0,react_1.useState)(),[C,P]=(0,react_1.useState)(),[w,I]=(0,react_1.useState)(),T=(0,hooks_1.usePrevious)(e),{parser:x,options:E}=(0,recoil_1.useRecoilValue)(store_1.globalStoreSelector),R=(0,react_1.useCallback)(((e,t=e.getState())=>{var{values:r}=t,o=__rest(t,["values"]);l.current=e,setTimeout((()=>{g(Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},r),{query:(0,utils_1.unescapeQueryParams)(r.query||{})})}))}),0)}),[]),k=(0,react_1.useCallback)((e=>{var{values:t}=e,r=__rest(e,["values"]);const o=Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},t),{query:(0,utils_1.unescapeQueryParams)(t.query||{})})});u((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),g(o),(0,utils_1.updateStorage)(o)}),[u]),A=(0,react_1.useCallback)((e=>{v(e)}),[]),F=(0,react_1.useCallback)((e=>{p(e),u((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[u]),B=(0,react_1.useCallback)((()=>__awaiter(this,void 0,void 0,(function*(){var r,o,s,n,a,i,c,u,p,_,y,m,g,j,S,C,w;const{values:T,invalid:x}=(null===(r=null==l?void 0:l.current)||void 0===r?void 0:r.getState())||f||{};if(null===(o=l.current)||void 0===o||o.submitForm(),x)return b(!0),setTimeout((()=>b(!1)),1e3),void(null===(n=null===(s=E.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:R,requestBody:k}=e,A=k&&k.content&&(null===(a=(0,models_1.getActiveMediaType)(k.content))||void 0===a?void 0:a.name)||"";let F=T.body;if(/json/.test(A))try{F=JSON.parse(F)}catch(e){console.error(e)}h(!0);const B=O,V=(e.httpVerb||"").toLowerCase();if(!R)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");const D=R.find((e=>d.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),M=Date.now();let N,U=T.auth;if(T.auth){const e=Object.keys(T.auth)[0],t=(0,string_1.unescapeFormId)(e);N=Object.assign(Object.assign({},B),{components:Object.assign(Object.assign({},null==B?void 0:B.components),{securitySchemes:Object.assign(Object.assign({},null===(i=null==B?void 0:B.components)||void 0===i?void 0:i.securitySchemes),{[t]:Object.assign(Object.assign({},null===(u=null===(c=null==B?void 0:B.components)||void 0===c?void 0:c.securitySchemes)||void 0===u?void 0:u[t]),{type:"openIdConnect"===(null===(y=null===(_=null===(p=null==B?void 0:B.components)||void 0===p?void 0:p.securitySchemes)||void 0===_?void 0:_[t])||void 0===y?void 0:y.type)?"oauth2":(null===(g=null===(m=null==B?void 0:B.components)||void 0===m?void 0:m.securitySchemes)||void 0===g?void 0:g[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else N=Object.assign({},B);N.servers=R;const W=E.corsProxyUrl;W&&R.length&&(N.servers=R.map((e=>Object.assign(Object.assign({},e),{url:W+normalizeUrlProtocol(e.url)}))),N.paths=Object.assign(Object.assign({},N.paths),{[e.path]:Object.assign(Object.assign({},N.paths[e.path]),{[V]:Object.assign(Object.assign({},N.paths[e.path][V]),{servers:void 0}),servers:void 0})}));const z=(null==k?void 0:k.content)&&(null===(j=(0,models_1.getActiveMediaType)(k.content))||void 0===j?void 0:j.name)||null;if(z&&F&&(0,helper_1.isFileUploadMime)(z)){const e=Object.values(F);F=e.length>1?e:e[0]}const H={server:W?W+normalizeUrlProtocol(D.url):D.url,serverVariables:(0,utils_1.getDefaultOrStoredVariables)(D),spec:N,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},T.path),T.query),T.header),T.cookie),securities:{authorized:U},requestBody:F,requestContentType:z,responseContentType:(null===(S=T.header)||void 0===S?void 0:S.Accept)||null,requestInterceptor:(0,utils_1.makeRequestInterceptor)(E,e,null==U?void 0:U.Authorization)};try{const r=yield(0,index_1.execute)(H),o=null==r?void 0:r.data;o instanceof Blob&&((0,helper_1.isFileUploadMime)(o.type)&&(r.fileInfo={rawData:o,fileName:(0,utils_1.getFileNameFromHeaders)(r.headers)}),r.data=yield o.text()),null==t||t({request:H,response:r}),I(r),P(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:H,response:e.response})),I(void 0),P(e)}finally{h(!1),v(1),q(Date.now()-M),null===(w=null===(C=E.events)||void 0===C?void 0:C.tryItSent)||void 0===w||w.call(C,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[d.url,f,t,e,E,O]);(0,theme_1.useMount)((()=>__awaiter(this,void 0,void 0,(function*(){var t;const r=yield(0,shallowCopyForTryIt_1.dereferenceDefinitionForTryIt)(e,x.definition);j(r),null===(t=l.current)||void 0===t||t.setValues({})})))),(0,react_1.useEffect)((()=>{T&&T!==e&&(I(void 0),P(void 0),v(0))}),[e,T]);const V=!(!w&&!C);return react_1.default.createElement(ConsoleWrapper_1.ConsoleWrapper,{shaking:m,className:r,rootElement:o},react_1.default.createElement(Panel_1.StyledCodeHeader,null,react_1.default.createElement(ConsoleTabs_1.ConsoleTabs,{active:_,hasResponse:V,onChange:A}),i&&react_1.default.createElement(styled_1.CloseButton,{onClick:i}," ✕ ")),react_1.default.createElement(styled_1.ConsoleBody,{hidden:0!==_,"data-cy":"console-request-body"},react_1.default.createElement(Request_1.Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,form:f,resolvedRawSpec:O,server:d,formApi:l.current,setFormApi:R,handleChange:k,handleServerChange:F})),react_1.default.createElement(styled_1.ConsoleBody,{hidden:1!==_,"data-cy":"console-response-body"},react_1.default.createElement(ResponsePanel_1.ResponsePanel,{response:w,error:C,time:S})),react_1.default.createElement(ActionPanel_1.ActionPanel,{hasResponse:V,params:f.values,operation:e,loading:y,execute:B}))}exports.Console=(0,react_1.memo)(ConsoleComponent);
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),informed_1=require("informed"),recoil_1=require("@redocly/recoil"),theme_1=require("@redocly/theme"),utils_1=require("../utils"),utils_2=require("../../../utils"),OAuth2_1=require("../../../services/OAuth2"),services_1=require("../../../services"),Panel_1=require("../../Panel"),ServersDropdown_1=require("../ServersDropdown"),TryItPanel_1=require("../TryItPanel"),RequestBody_1=require("../RequestBody"),OperationParameters_1=require("../../OperationParameters"),AuthPanel_1=require("../AuthPanel"),store_1=require("../../../recoil/store"),RenderHook_1=require("../../RenderHook");function RequestComponent({operation:e,properties:r,securityDefaults:t,form:a,resolvedRawSpec:o,server:l,formApi:n,setFormApi:u,handleChange:i,handleServerChange:s}){const d=a.errors||{},c=d.path||d.cookie||d.header||d.query,{hooks:_,authCorsProxyUrl:p}=(0,recoil_1.useRecoilValue)(store_1.globalOptionsSelector),h=o&&utils_2.JsonPointer.get(o,e.pointer);let y=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];y&&a.values.auth[y]||(y=void 0),!y||void 0===a.values.auth[y].token&&void 0===a.values.auth[y].client_id&&void 0===a.values.auth[y].client_secret||a.values.auth[y].token&&a.values.auth[y].token.access_token||(y=void 0),y&&null!=a.values.auth[y].username&&(a.values.auth[y].username&&a.values.auth[y].password||(y=void 0));const f=e.parameters||[];return!o&&react_1.default.createElement(react_1.default.Fragment,null,"Loading...")||react_1.default.createElement(informed_1.Form,{onChange:i,getApi:u,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},react_1.default.createElement(ServersDropdown_1.ServersDropdown,{operation:e,onChange:s}),react_1.default.createElement(Panel_1.Accordion,{initialActiveIdx:e.security.length&&y?1:0},e.security.length&&n&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItAuth"),"data-cy":"security-trigger",error:!y&&!!d.auth,success:!!y,renderChildrenHidden:!0},theme_1.OpenApiTryItSecurityPanel||(null==_?void 0:_.ReplaceTryItSecurityPanel)?react_1.default.createElement(AuthPanelWrapper,{field:"auth",validate:utils_1.requiredValidator},(r=>react_1.default.createElement(RenderHook_1.RenderHook,{Hook:theme_1.OpenApiTryItSecurityPanel||(null==_?void 0:_.ReplaceTryItSecurityPanel),props:{server:l,operation:e,onChange:r,OAuth2:OAuth2_1.OAuth2}}))):react_1.default.createElement(AuthPanel_1.AuthPanel,{formApi:n,form:a,operation:e,activeServer:l.url,authCorsProxyUrl:p,securityDefaults:t}))||null,e.requestBody&&n&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItBody"),"data-cy":"body-trigger",error:!!d.body,renderChildrenHidden:!0},react_1.default.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:n,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==h?void 0:h.requestBody,properties:r}))||null,f.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:c,renderChildrenHidden:!0},react_1.default.createElement(OperationParameters_1.OperationParameters,{operation:e,values:a.values,errors:a.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:a}=(0,informed_1.useField)(Object.assign({},e)),{setValue:o}=r,{children:l}=a;return t(react_1.default.createElement(react_1.default.Fragment,null,l(o)))}function allowBodyErrors(){}exports.Request=(0,react_1.memo)(RequestComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,a){void 0===a&&(a=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,a,o)}:function(e,r,t,a){void 0===a&&(a=t),e[a]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&__createBinding(r,e,t);return __setModuleDefault(r,e),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;const react_1=__importStar(require("react")),informed_1=require("informed"),recoil_1=require("@redocly/recoil"),theme_1=require("@redocly/theme"),utils_1=require("../utils"),utils_2=require("../../../utils"),OAuth2_1=require("../../../services/OAuth2"),services_1=require("../../../services"),Panel_1=require("../../Panel"),ServersDropdown_1=require("../ServersDropdown"),TryItPanel_1=require("../TryItPanel"),RequestBody_1=require("../RequestBody"),OperationParameters_1=require("../../OperationParameters"),AuthPanel_1=require("../AuthPanel"),store_1=require("../../../recoil/store"),RenderHook_1=require("../../RenderHook");function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:a,form:o,resolvedRawSpec:l,server:n,formApi:u,setFormApi:i,handleChange:s,handleServerChange:d}){const c=o.errors||{},_=c.path||c.cookie||c.header||c.query,{hooks:p,authCorsProxyUrl:h}=(0,recoil_1.useRecoilValue)(store_1.globalOptionsSelector),y=l&&utils_2.JsonPointer.get(l,e.pointer);let m=o.values&&o.values.auth&&Object.keys(o.values.auth)[0];m&&o.values.auth[m]||(m=void 0),!m||void 0===o.values.auth[m].token&&void 0===o.values.auth[m].client_id&&void 0===o.values.auth[m].client_secret||o.values.auth[m].token&&o.values.auth[m].token.access_token||(m=void 0),m&&null!=o.values.auth[m].username&&(o.values.auth[m].username&&o.values.auth[m].password||(m=void 0));const f=e.parameters||[];return!l&&react_1.default.createElement(react_1.default.Fragment,null,"Loading...")||react_1.default.createElement(informed_1.Form,{onChange:s,getApi:i,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},react_1.default.createElement(ServersDropdown_1.ServersDropdown,{operation:e,onChange:d}),react_1.default.createElement(Panel_1.Accordion,{initialActiveIdx:e.security.length&&m?1:0},e.security.length&&u&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItAuth"),"data-cy":"security-trigger",error:!m&&!!c.auth,success:!!m,renderChildrenHidden:!0},theme_1.OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel)?react_1.default.createElement(AuthPanelWrapper,{field:"auth",validate:utils_1.requiredValidator},(r=>react_1.default.createElement(RenderHook_1.RenderHook,{Hook:theme_1.OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel),props:{server:n,operation:e,onChange:r,OAuth2:OAuth2_1.OAuth2}}))):react_1.default.createElement(AuthPanel_1.AuthPanel,{formApi:u,form:o,operation:e,activeServer:n.url,authCorsProxyUrl:h,securityDefaults:a}))||null,e.requestBody&&u&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItBody"),"data-cy":"body-trigger",error:!!c.body,renderChildrenHidden:!0},react_1.default.createElement(RequestBody_1.RequestBody,{validate:allowBodyErrors,formApi:u,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==y?void 0:y.requestBody,properties:r,mergeExampleBody:t}))||null,f.length&&react_1.default.createElement(TryItPanel_1.TryItPanel,{header:(0,services_1.l)("tryItParameters"),"data-cy":"parameters-trigger",error:_,renderChildrenHidden:!0},react_1.default.createElement(OperationParameters_1.OperationParameters,{operation:e,values:o.values,errors:o.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:a}=(0,informed_1.useField)(Object.assign({},e)),{setValue:o}=r,{children:l}=a;return t(react_1.default.createElement(react_1.default.Fragment,null,l(o)))}function allowBodyErrors(){}exports.Request=(0,react_1.memo)(RequestComponent);
2
2
  //# sourceMappingURL=Request.js.map
@@ -12,12 +12,14 @@ export interface ConsoleProps {
12
12
  rootElement?: HTMLElement | null;
13
13
  onClose?: () => void;
14
14
  properties?: any;
15
+ mergeExampleBody?: boolean;
15
16
  securityDefaults?: Record<string, SecurityDetails | string>;
16
17
  onResponse?: (arg: RequestAndResponseType) => void;
17
18
  }
18
19
  export interface RequestProps {
19
20
  operation: OperationModel;
20
21
  properties?: any;
22
+ mergeExampleBody?: boolean;
21
23
  securityDefaults: Record<string, string | SecurityDetails> | undefined;
22
24
  form: any;
23
25
  resolvedRawSpec: any;
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,i)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestBody=void 0;const react_1=__importStar(require("react")),recoil_1=require("@redocly/recoil"),DropdownOrLabel_1=require("../../DropdownOrLabel"),MediaTypeSwitch_1=require("../../MediaTypeSwitch"),common_1=require("../../common"),RequestMimeLabel_1=require("../RequestMimeLabel"),utils_1=require("../utils"),utils_2=require("../../../utils"),Body_1=require("./Body"),models_1=require("../../../models"),app_1=require("../../../recoil/app"),operation_1=require("../../../recoil/operation");function RequestBodyComponent({body:{content:e},formApi:t,resolvedBody:r,properties:o,id:i,validate:a,pointer:l}){const n=(0,recoil_1.useRecoilValue)(app_1.activeMimeNameSelector),{examples:u,name:c}=e&&(0,models_1.getActiveMediaType)(e,n)||{},d=(0,react_1.useCallback)((t=>{if(!e||!e.hasSample)return"";if(!(null==u?void 0:u[t]))return"";const r=c&&(0,utils_2.fromSessionStorage)((0,utils_1.getStorageExampleKey)(i,c,t,u)),a=r?JSON.parse(r):null==u?void 0:u[t];return(0,utils_1.encodeSample)(a,o)}),[c,u,i,e,o]),{activeExampleName:s}=(0,recoil_1.useRecoilValue)((0,operation_1.operationStore)(l));(0,react_1.useEffect)((()=>{if(c){const e=(0,utils_1.getStorageExampleKey)(i,c,s,u);t.setValue("body",(0,utils_2.fromSessionStorage)(e)||d(s||""))}else t.setValue("body",JSON.stringify(o||{},null,2))}),[u,s,c,t,d,i,o]);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(MediaTypeSwitch_1.MediaTypesSwitch,{content:e,renderDropdown:e=>react_1.default.createElement(DropdownOrLabel_1.DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel_1.RequestMimeLabel,Dropdown:common_1.Dropdown}))},(l=>react_1.default.createElement(Body_1.Body,{mediaType:l,mediaContent:e,resolvedBody:r,id:i,properties:o,getActiveSample:d,formApi:t,validate:a}))))}exports.RequestBody=(0,react_1.memo)(RequestBodyComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,i)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestBody=void 0;const react_1=__importStar(require("react")),recoil_1=require("@redocly/recoil"),DropdownOrLabel_1=require("../../DropdownOrLabel"),MediaTypeSwitch_1=require("../../MediaTypeSwitch"),common_1=require("../../common"),RequestMimeLabel_1=require("../RequestMimeLabel"),utils_1=require("../utils"),utils_2=require("../../../utils"),Body_1=require("./Body"),models_1=require("../../../models"),app_1=require("../../../recoil/app"),operation_1=require("../../../recoil/operation");function RequestBodyComponent({body:{content:e},formApi:t,resolvedBody:r,properties:o,mergeExampleBody:i,id:a,validate:l,pointer:n}){const u=(0,recoil_1.useRecoilValue)(app_1.activeMimeNameSelector),{examples:c,name:d}=e&&(0,models_1.getActiveMediaType)(e,u)||{},s=(0,react_1.useCallback)((t=>{if(!e||!e.hasSample)return"";if(!(null==c?void 0:c[t]))return"";const r=d&&(0,utils_2.fromSessionStorage)((0,utils_1.getStorageExampleKey)(a,d,t,c)),i=r?JSON.parse(r):null==c?void 0:c[t];return(0,utils_1.encodeSample)(i,o)}),[d,c,a,e,o]),{activeExampleName:_}=(0,recoil_1.useRecoilValue)((0,operation_1.operationStore)(n));(0,react_1.useEffect)((()=>{if(o&&!i)return void t.setValue("body",JSON.stringify(o||{},null,2));const e=(0,utils_1.getStorageExampleKey)(a,d,_,c);t.setValue("body",(0,utils_2.fromSessionStorage)(e)||s(_||""))}),[c,_,d,t,s,a,o,i]);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(MediaTypeSwitch_1.MediaTypesSwitch,{content:e,renderDropdown:e=>react_1.default.createElement(DropdownOrLabel_1.DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel_1.RequestMimeLabel,Dropdown:common_1.Dropdown}))},(i=>react_1.default.createElement(Body_1.Body,{mediaType:i,mediaContent:e,resolvedBody:r,id:a,properties:o,getActiveSample:s,formApi:t,validate:l}))))}exports.RequestBody=(0,react_1.memo)(RequestBodyComponent);
2
2
  //# sourceMappingURL=RequestBody.js.map
@@ -9,6 +9,7 @@ export interface RequestBodyProps {
9
9
  formApi: FormApi;
10
10
  id: string;
11
11
  properties: any;
12
+ mergeExampleBody?: boolean;
12
13
  }
13
14
  export interface BodyProps extends Pick<RequestBodyProps, 'resolvedBody' | 'validate' | 'formApi' | 'id' | 'properties'> {
14
15
  mediaType: MediaTypeModel;
@@ -23,6 +23,6 @@ export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId,
23
23
  clientSecret: string;
24
24
  }) => Record<'Authorization', string> | GenericObject;
25
25
  export declare function encodeSample(sample: ExampleModel, properties: RequestBodyProps['properties']): string;
26
- export declare const getStorageExampleKey: (operationId: string, activeMimeType: string, activeExample?: string | false, examples?: {
26
+ export declare const getStorageExampleKey: (operationId: string, activeMimeType?: string, activeExample?: string | false, examples?: {
27
27
  [name: string]: ExampleModel;
28
28
  } | undefined) => string;
@@ -1,2 +1,2 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.fromCookie=exports.requiredValidator=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;const deepmerge_1=__importDefault(require("deepmerge")),nexus_1=require("../../recoil/nexus"),constants_1=require("../../constants"),utils_1=require("../../services/utils"),utils_2=require("../../utils"),operation_1=require("../../recoil/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];(0,utils_2.setSecurityDetails)(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))(0,utils_2.setParameterValue)(r,t,e.values[r][t])}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:a}=t;return e[a]=(0,utils_2.getParameterValue)(r||"",a),e}),{});exports.getParameters=getParameters;const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,t=0){const r=e[t],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function getInitialServerWithVariables(e){const t=(0,utils_2.fromSessionStorage)("serverUrl"),r=e.find((e=>e.url===t))||e[0],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=(0,utils_2.fromSessionStorage)("variables"),r=t&&JSON.parse(t)||{},a={};return Object.entries(e.variables||{}).forEach((([e,t])=>{a[e]=r[e]||t.default||""})),a}function updateVariablesStorage(e,t){const r=(0,utils_2.fromSessionStorage)("variables"),a=r&&JSON.parse(r)||{};(0,utils_2.toSessionStorage)("variables",JSON.stringify(Object.assign(Object.assign({},a),{[e]:t})))}function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[(0,utils_2.unescapeFormId)(t)]=r,e)),{})}function getFileNameFromHeaders(e){const t="filename=";for(const[r,a]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=a.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[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;const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},a,o)=>s=>{var i,n;const{requestValues:l}=(0,nexus_1.getRecoil)((0,operation_1.operationStore)(a.pointer));r&&(s=Object.assign(Object.assign({},s),{url:decodeURIComponent(s.url)})),t&&(s.headers["X-User-Agent"]="Redocly Try it API console");const u=(null===(i=null==l?void 0:l.header)||void 0===i?void 0:i.authorization)||(null===(n=null==l?void 0:l.header)||void 0===n?void 0:n.Authorization);return!o&&u&&(s.headers.Authorization=u),e?e(s,a):s};function requiredValidator(e){if(!e)return"Field is required"}exports.makeRequestInterceptor=makeRequestInterceptor,exports.requiredValidator=requiredValidator;const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}exports.fromCookie=fromCookie;const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};function encodeSample(e,t){if(!e)return"";if(e.mime===constants_1.MediaTypes.URL_ENCODED)return e.value;const r=e.value,a=t?(0,deepmerge_1.default)(r,t,{arrayMerge:utils_1.arrayMergeStrategy}):r;return JSON.stringify(a,null,2)}exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader,exports.encodeSample=encodeSample;const getStorageExampleKey=(e,t,r,a)=>{let o=e+"_"+t;return r&&a&&Object.keys(a).includes(r)&&(o+="_"+r),o};exports.getStorageExampleKey=getStorageExampleKey;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStorageExampleKey=exports.encodeSample=exports.getOAuth2TokenEndpointAuthHeader=exports.validateTokenEndpointMethod=exports.fromCookie=exports.requiredValidator=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;const deepmerge_1=__importDefault(require("deepmerge")),nexus_1=require("../../recoil/nexus"),constants_1=require("../../constants"),utils_1=require("../../services/utils"),utils_2=require("../../utils"),operation_1=require("../../recoil/operation");function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];(0,utils_2.setSecurityDetails)(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))(0,utils_2.setParameterValue)(r,t,e.values[r][t])}exports.normalizeUrlProtocol=normalizeUrlProtocol,exports.updateStorage=updateStorage;const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:a}=t;return e[a]=(0,utils_2.getParameterValue)(r||"",a),e}),{});exports.getParameters=getParameters;const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;function getServerWithVariables(e,t=0){const r=e[t],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function getInitialServerWithVariables(e){const t=(0,utils_2.fromSessionStorage)("serverUrl"),r=e.find((e=>e.url===t))||e[0],a=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:a})}function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=(0,utils_2.fromSessionStorage)("variables"),r=t&&JSON.parse(t)||{},a={};return Object.entries(e.variables||{}).forEach((([e,t])=>{a[e]=r[e]||t.default||""})),a}function updateVariablesStorage(e,t){const r=(0,utils_2.fromSessionStorage)("variables"),a=r&&JSON.parse(r)||{};(0,utils_2.toSessionStorage)("variables",JSON.stringify(Object.assign(Object.assign({},a),{[e]:t})))}function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[(0,utils_2.unescapeFormId)(t)]=r,e)),{})}function getFileNameFromHeaders(e){const t="filename=";for(const[r,a]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=a.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[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;const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},a,o)=>s=>{var i,n;const{requestValues:l}=(0,nexus_1.getRecoil)((0,operation_1.operationStore)(a.pointer));r&&(s=Object.assign(Object.assign({},s),{url:decodeURIComponent(s.url)})),t&&(s.headers["X-User-Agent"]="Redocly Try it API console");const u=(null===(i=null==l?void 0:l.header)||void 0===i?void 0:i.authorization)||(null===(n=null==l?void 0:l.header)||void 0===n?void 0:n.Authorization);return!o&&u&&(s.headers.Authorization=u),e?e(s,a):s};function requiredValidator(e){if(!e)return"Field is required"}exports.makeRequestInterceptor=makeRequestInterceptor,exports.requiredValidator=requiredValidator;const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}exports.fromCookie=fromCookie;const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};exports.validateTokenEndpointMethod=validateTokenEndpointMethod;const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};function encodeSample(e,t){if(!e)return"";if(e.mime===constants_1.MediaTypes.URL_ENCODED)return e.value;const r=e.value,a=t?(0,deepmerge_1.default)(r,t,{arrayMerge:utils_1.arrayMergeStrategy}):r;return JSON.stringify(a,null,2)}exports.getOAuth2TokenEndpointAuthHeader=getOAuth2TokenEndpointAuthHeader,exports.encodeSample=encodeSample;const getStorageExampleKey=(e,t="",r,a)=>{let o=e+"_"+t;return r&&a&&Object.keys(a).includes(r)&&(o+="_"+r),o};exports.getStorageExampleKey=getStorageExampleKey;
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useRecoilValue,useRecoilState}from"@redocly/recoil";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreSelector}from"../../../recoil/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../recoil/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,securityDefaults:n,onClose:a}){let i=useRef();const[l,c]=useRecoilState(operationStore(e.pointer)),[u,p]=useState(l.activeServer||e.activeServer),[d,m]=useState(0),[v,y]=useState(!1),[h,f]=useState(!1),[b,g]=useState({values:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[O,S]=useState(),[j,C]=useState(),[R,P]=useState(),[I,T]=useState(),q=usePrevious(e),{parser:w,options:E}=useRecoilValue(globalStoreSelector),_=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);i.current=e,setTimeout((()=>{g(Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{})})}))}),0)}),[]),k=useCallback((e=>{var{values:t}=e,o=__rest(e,["values"]);const r=Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},t),{query:unescapeQueryParams(t.query||{})})});c((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),g(r),updateStorage(r)}),[c]),F=useCallback((e=>{m(e)}),[]),A=useCallback((e=>{p(e),c((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[c]),V=useCallback((()=>__awaiter(this,void 0,void 0,(function*(){var o,r,s,n,a,l,c,p,d,v,h,g,S,j,R,I,q;const{values:w,invalid:_}=(null===(o=null==i?void 0:i.current)||void 0===o?void 0:o.getState())||b||{};if(null===(r=i.current)||void 0===r||r.submitForm(),_)return f(!0),setTimeout((()=>f(!1)),1e3),void(null===(n=null===(s=E.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:k,requestBody:F}=e,A=F&&F.content&&(null===(a=getActiveMediaType(F.content))||void 0===a?void 0:a.name)||"";let V=w.body;if(/json/.test(A))try{V=JSON.parse(V)}catch(e){console.error(e)}y(!0);const x=O,B=(e.httpVerb||"").toLowerCase();if(!k)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");const D=k.find((e=>u.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),N=Date.now();let M,U=w.auth;if(w.auth){const e=Object.keys(w.auth)[0],t=unescapeFormId(e);M=Object.assign(Object.assign({},x),{components:Object.assign(Object.assign({},null==x?void 0:x.components),{securitySchemes:Object.assign(Object.assign({},null===(l=null==x?void 0:x.components)||void 0===l?void 0:l.securitySchemes),{[t]:Object.assign(Object.assign({},null===(p=null===(c=null==x?void 0:x.components)||void 0===c?void 0:c.securitySchemes)||void 0===p?void 0:p[t]),{type:"openIdConnect"===(null===(h=null===(v=null===(d=null==x?void 0:x.components)||void 0===d?void 0:d.securitySchemes)||void 0===v?void 0:v[t])||void 0===h?void 0:h.type)?"oauth2":(null===(S=null===(g=null==x?void 0:x.components)||void 0===g?void 0:g.securitySchemes)||void 0===S?void 0:S[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else M=Object.assign({},x);M.servers=k;const H=E.corsProxyUrl;H&&k.length&&(M.servers=k.map((e=>Object.assign(Object.assign({},e),{url:H+normalizeUrlProtocol(e.url)}))),M.paths=Object.assign(Object.assign({},M.paths),{[e.path]:Object.assign(Object.assign({},M.paths[e.path]),{[B]:Object.assign(Object.assign({},M.paths[e.path][B]),{servers:void 0}),servers:void 0})}));const W=(null==F?void 0:F.content)&&(null===(j=getActiveMediaType(F.content))||void 0===j?void 0:j.name)||null;if(W&&V&&isFileUploadMime(W)){const e=Object.values(V);V=e.length>1?e:e[0]}const z={server:H?H+normalizeUrlProtocol(D.url):D.url,serverVariables:getDefaultOrStoredVariables(D),spec:M,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},w.path),w.query),w.header),w.cookie),securities:{authorized:U},requestBody:V,requestContentType:W,responseContentType:(null===(R=w.header)||void 0===R?void 0:R.Accept)||null,requestInterceptor:makeRequestInterceptor(E,e,null==U?void 0:U.Authorization)};try{const o=yield execute(z),r=null==o?void 0:o.data;r instanceof Blob&&(isFileUploadMime(r.type)&&(o.fileInfo={rawData:r,fileName:getFileNameFromHeaders(o.headers)}),o.data=yield r.text()),null==t||t({request:z,response:o}),T(o),P(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:z,response:e.response})),T(void 0),P(e)}finally{y(!1),m(1),C(Date.now()-N),null===(q=null===(I=E.events)||void 0===I?void 0:I.tryItSent)||void 0===q||q.call(I,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[u.url,b,t,e,E,O]);useMount((()=>__awaiter(this,void 0,void 0,(function*(){var t;const o=yield dereferenceDefinitionForTryIt(e,w.definition);S(o),null===(t=i.current)||void 0===t||t.setValues({})})))),useEffect((()=>{q&&q!==e&&(T(void 0),P(void 0),m(0))}),[e,q]);const x=!(!I&&!R);return React.createElement(ConsoleWrapper,{shaking:h,className:o,rootElement:r},React.createElement(StyledCodeHeader,null,React.createElement(ConsoleTabs,{active:d,hasResponse:x,onChange:F}),a&&React.createElement(CloseButton,{onClick:a}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==d,"data-cy":"console-request-body"},React.createElement(Request,{operation:e,properties:s,securityDefaults:n,form:b,resolvedRawSpec:O,server:u,formApi:i.current,setFormApi:_,handleChange:k,handleServerChange:A})),React.createElement(ConsoleBody,{hidden:1!==d,"data-cy":"console-response-body"},React.createElement(ResponsePanel,{response:I,error:R,time:j})),React.createElement(ActionPanel,{hasResponse:x,params:b.values,operation:e,loading:v,execute:V}))}export const Console=memo(ConsoleComponent);
1
+ var __awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(s,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function i(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))},__rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(o[r[s]]=e[r[s]])}return o};import{execute}from"swagger-client/es/execute/index";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useRecoilValue,useRecoilState}from"@redocly/recoil";import{dereferenceDefinitionForTryIt}from"./shallowCopyForTryIt";import{unescapeFormId}from"../../../utils/string";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{getDefaultOrStoredVariables,getFileNameFromHeaders,getParameters,makeRequestInterceptor,unescapeQueryParams,updateStorage}from"../utils";import{ResponsePanel}from"../ResponsePanel";import{ConsoleTabs}from"../ConsoleTabs";import{ActionPanel}from"../ActionPanel";import{Request}from"./Request";import{CloseButton,ConsoleBody}from"../styled";import{ConsoleWrapper}from"./ConsoleWrapper";import{usePrevious}from"../../../hooks";import{globalStoreSelector}from"../../../recoil/store";import{getActiveMediaType}from"../../../models";import{operationStore}from"../../../recoil/operation";function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}function ConsoleComponent({operation:e,onResponse:t,className:o,rootElement:r,properties:s,mergeExampleBody:n,securityDefaults:a,onClose:i}){let l=useRef();const[c,u]=useRecoilState(operationStore(e.pointer)),[p,d]=useState(c.activeServer||e.activeServer),[m,v]=useState(0),[y,h]=useState(!1),[f,g]=useState(!1),[b,O]=useState({values:{path:getParameters(e.parameters,"path"),cookie:getParameters(e.parameters,"cookie"),header:getParameters(e.parameters,"header"),query:getParameters(e.parameters,"query")}}),[S,j]=useState(),[C,R]=useState(),[P,I]=useState(),[T,q]=useState(),w=usePrevious(e),{parser:E,options:_}=useRecoilValue(globalStoreSelector),k=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);l.current=e,setTimeout((()=>{O(Object.assign(Object.assign({},r),{values:Object.assign(Object.assign({},o),{query:unescapeQueryParams(o.query||{})})}))}),0)}),[]),F=useCallback((e=>{var{values:t}=e,o=__rest(e,["values"]);const r=Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},t),{query:unescapeQueryParams(t.query||{})})});u((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),O(r),updateStorage(r)}),[u]),x=useCallback((e=>{v(e)}),[]),A=useCallback((e=>{d(e),u((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[u]),V=useCallback((()=>__awaiter(this,void 0,void 0,(function*(){var o,r,s,n,a,i,c,u,d,m,y,f,O,j,C,P,T;const{values:w,invalid:E}=(null===(o=null==l?void 0:l.current)||void 0===o?void 0:o.getState())||b||{};if(null===(r=l.current)||void 0===r||r.submitForm(),E)return g(!0),setTimeout((()=>g(!1)),1e3),void(null===(n=null===(s=_.events)||void 0===s?void 0:s.tryItSent)||void 0===n||n.call(s,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"ValidationFailed",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description}));const{servers:k,requestBody:F}=e,x=F&&F.content&&(null===(a=getActiveMediaType(F.content))||void 0===a?void 0:a.name)||"";let A=w.body;if(/json/.test(x))try{A=JSON.parse(A)}catch(e){console.error(e)}h(!0);const V=S,B=(e.httpVerb||"").toLowerCase();if(!k)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");const D=k.find((e=>p.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),N=Date.now();let M,U=w.auth;if(w.auth){const e=Object.keys(w.auth)[0],t=unescapeFormId(e);M=Object.assign(Object.assign({},V),{components:Object.assign(Object.assign({},null==V?void 0:V.components),{securitySchemes:Object.assign(Object.assign({},null===(i=null==V?void 0:V.components)||void 0===i?void 0:i.securitySchemes),{[t]:Object.assign(Object.assign({},null===(u=null===(c=null==V?void 0:V.components)||void 0===c?void 0:c.securitySchemes)||void 0===u?void 0:u[t]),{type:"openIdConnect"===(null===(y=null===(m=null===(d=null==V?void 0:V.components)||void 0===d?void 0:d.securitySchemes)||void 0===m?void 0:m[t])||void 0===y?void 0:y.type)?"oauth2":(null===(O=null===(f=null==V?void 0:V.components)||void 0===f?void 0:f.securitySchemes)||void 0===O?void 0:O[t]).type})})})}),U=Object.assign(Object.assign({},U),{[t]:U[e]})}else M=Object.assign({},V);M.servers=k;const H=_.corsProxyUrl;H&&k.length&&(M.servers=k.map((e=>Object.assign(Object.assign({},e),{url:H+normalizeUrlProtocol(e.url)}))),M.paths=Object.assign(Object.assign({},M.paths),{[e.path]:Object.assign(Object.assign({},M.paths[e.path]),{[B]:Object.assign(Object.assign({},M.paths[e.path][B]),{servers:void 0}),servers:void 0})}));const W=(null==F?void 0:F.content)&&(null===(j=getActiveMediaType(F.content))||void 0===j?void 0:j.name)||null;if(W&&A&&isFileUploadMime(W)){const e=Object.values(A);A=e.length>1?e:e[0]}const z={server:H?H+normalizeUrlProtocol(D.url):D.url,serverVariables:getDefaultOrStoredVariables(D),spec:M,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},w.path),w.query),w.header),w.cookie),securities:{authorized:U},requestBody:A,requestContentType:W,responseContentType:(null===(C=w.header)||void 0===C?void 0:C.Accept)||null,requestInterceptor:makeRequestInterceptor(_,e,null==U?void 0:U.Authorization)};try{const o=yield execute(z),r=null==o?void 0:o.data;r instanceof Blob&&(isFileUploadMime(r.type)&&(o.fileInfo={rawData:r,fileName:getFileNameFromHeaders(o.headers)}),o.data=yield r.text()),null==t||t({request:z,response:o}),q(o),I(void 0)}catch(e){e&&e.response&&e.response.data instanceof Blob&&(e.response.data=yield e.response.data.text(),null==t||t({request:z,response:e.response})),q(void 0),I(e)}finally{h(!1),v(1),R(Date.now()-N),null===(T=null===(P=_.events)||void 0===P?void 0:P.tryItSent)||void 0===T||T.call(P,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[p.url,b,t,e,_,S]);useMount((()=>__awaiter(this,void 0,void 0,(function*(){var t;const o=yield dereferenceDefinitionForTryIt(e,E.definition);j(o),null===(t=l.current)||void 0===t||t.setValues({})})))),useEffect((()=>{w&&w!==e&&(q(void 0),I(void 0),v(0))}),[e,w]);const B=!(!T&&!P);return React.createElement(ConsoleWrapper,{shaking:f,className:o,rootElement:r},React.createElement(StyledCodeHeader,null,React.createElement(ConsoleTabs,{active:m,hasResponse:B,onChange:x}),i&&React.createElement(CloseButton,{onClick:i}," ✕ ")),React.createElement(ConsoleBody,{hidden:0!==m,"data-cy":"console-request-body"},React.createElement(Request,{operation:e,properties:s,mergeExampleBody:n,securityDefaults:a,form:b,resolvedRawSpec:S,server:p,formApi:l.current,setFormApi:k,handleChange:F,handleServerChange:A})),React.createElement(ConsoleBody,{hidden:1!==m,"data-cy":"console-response-body"},React.createElement(ResponsePanel,{response:T,error:P,time:C})),React.createElement(ActionPanel,{hasResponse:B,params:b.values,operation:e,loading:y,execute:V}))}export const Console=memo(ConsoleComponent);
2
2
  //# sourceMappingURL=Console.js.map
@@ -1,2 +1,2 @@
1
- import React,{memo}from"react";import{Form,useField}from"informed";import{useRecoilValue}from"@redocly/recoil";import{OpenApiTryItSecurityPanel}from"@redocly/theme";import{requiredValidator}from"../utils";import{JsonPointer}from"../../../utils";import{OAuth2}from"../../../services/OAuth2";import{l}from"../../../services";import{Accordion}from"../../Panel";import{ServersDropdown}from"../ServersDropdown";import{TryItPanel}from"../TryItPanel";import{RequestBody}from"../RequestBody";import{OperationParameters}from"../../OperationParameters";import{AuthPanel}from"../AuthPanel";import{globalOptionsSelector}from"../../../recoil/store";import{RenderHook}from"../../RenderHook";function RequestComponent({operation:e,properties:r,securityDefaults:t,form:o,resolvedRawSpec:a,server:n,formApi:i,setFormApi:s,handleChange:u,handleServerChange:c}){const d=o.errors||{},m=d.path||d.cookie||d.header||d.query,{hooks:p,authCorsProxyUrl:y}=useRecoilValue(globalOptionsSelector),h=a&&JsonPointer.get(a,e.pointer);let v=o.values&&o.values.auth&&Object.keys(o.values.auth)[0];v&&o.values.auth[v]||(v=void 0),!v||void 0===o.values.auth[v].token&&void 0===o.values.auth[v].client_id&&void 0===o.values.auth[v].client_secret||o.values.auth[v].token&&o.values.auth[v].token.access_token||(v=void 0),v&&null!=o.values.auth[v].username&&(o.values.auth[v].username&&o.values.auth[v].password||(v=void 0));const f=e.parameters||[];return!a&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(Form,{onChange:u,getApi:s,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},React.createElement(ServersDropdown,{operation:e,onChange:c}),React.createElement(Accordion,{initialActiveIdx:e.security.length&&v?1:0},e.security.length&&i&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",error:!v&&!!d.auth,success:!!v,renderChildrenHidden:!0},OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel)?React.createElement(AuthPanelWrapper,{field:"auth",validate:requiredValidator},(r=>React.createElement(RenderHook,{Hook:OpenApiTryItSecurityPanel||(null==p?void 0:p.ReplaceTryItSecurityPanel),props:{server:n,operation:e,onChange:r,OAuth2:OAuth2}}))):React.createElement(AuthPanel,{formApi:i,form:o,operation:e,activeServer:n.url,authCorsProxyUrl:y,securityDefaults:t}))||null,e.requestBody&&i&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",error:!!d.body,renderChildrenHidden:!0},React.createElement(RequestBody,{validate:allowBodyErrors,formApi:i,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==h?void 0:h.requestBody,properties:r}))||null,f.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:m,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:e,values:o.values,errors:o.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:o}=useField(Object.assign({},e)),{setValue:a}=r,{children:n}=o;return t(React.createElement(React.Fragment,null,n(a)))}function allowBodyErrors(){}export const Request=memo(RequestComponent);
1
+ import React,{memo}from"react";import{Form,useField}from"informed";import{useRecoilValue}from"@redocly/recoil";import{OpenApiTryItSecurityPanel}from"@redocly/theme";import{requiredValidator}from"../utils";import{JsonPointer}from"../../../utils";import{OAuth2}from"../../../services/OAuth2";import{l}from"../../../services";import{Accordion}from"../../Panel";import{ServersDropdown}from"../ServersDropdown";import{TryItPanel}from"../TryItPanel";import{RequestBody}from"../RequestBody";import{OperationParameters}from"../../OperationParameters";import{AuthPanel}from"../AuthPanel";import{globalOptionsSelector}from"../../../recoil/store";import{RenderHook}from"../../RenderHook";function RequestComponent({operation:e,properties:r,mergeExampleBody:t,securityDefaults:o,form:a,resolvedRawSpec:n,server:i,formApi:s,setFormApi:u,handleChange:c,handleServerChange:d}){const m=a.errors||{},p=m.path||m.cookie||m.header||m.query,{hooks:y,authCorsProxyUrl:h}=useRecoilValue(globalOptionsSelector),v=n&&JsonPointer.get(n,e.pointer);let f=a.values&&a.values.auth&&Object.keys(a.values.auth)[0];f&&a.values.auth[f]||(f=void 0),!f||void 0===a.values.auth[f].token&&void 0===a.values.auth[f].client_id&&void 0===a.values.auth[f].client_secret||a.values.auth[f].token&&a.values.auth[f].token.access_token||(f=void 0),f&&null!=a.values.auth[f].username&&(a.values.auth[f].username&&a.values.auth[f].password||(f=void 0));const R=e.parameters||[];return!n&&React.createElement(React.Fragment,null,"Loading...")||React.createElement(Form,{onChange:c,getApi:u,style:{flex:1,display:"flex",flexDirection:"column",margin:0}},React.createElement(ServersDropdown,{operation:e,onChange:d}),React.createElement(Accordion,{initialActiveIdx:e.security.length&&f?1:0},e.security.length&&s&&React.createElement(TryItPanel,{header:l("tryItAuth"),"data-cy":"security-trigger",error:!f&&!!m.auth,success:!!f,renderChildrenHidden:!0},OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel)?React.createElement(AuthPanelWrapper,{field:"auth",validate:requiredValidator},(r=>React.createElement(RenderHook,{Hook:OpenApiTryItSecurityPanel||(null==y?void 0:y.ReplaceTryItSecurityPanel),props:{server:i,operation:e,onChange:r,OAuth2:OAuth2}}))):React.createElement(AuthPanel,{formApi:s,form:a,operation:e,activeServer:i.url,authCorsProxyUrl:h,securityDefaults:o}))||null,e.requestBody&&s&&React.createElement(TryItPanel,{header:l("tryItBody"),"data-cy":"body-trigger",error:!!m.body,renderChildrenHidden:!0},React.createElement(RequestBody,{validate:allowBodyErrors,formApi:s,body:e.requestBody,pointer:e.pointer,id:e.id,resolvedBody:null==v?void 0:v.requestBody,properties:r,mergeExampleBody:t}))||null,R.length&&React.createElement(TryItPanel,{header:l("tryItParameters"),"data-cy":"parameters-trigger",error:p,renderChildrenHidden:!0},React.createElement(OperationParameters,{operation:e,values:a.values,errors:a.errors||{}}))||null))}function AuthPanelWrapper(e){const{fieldApi:r,render:t,userProps:o}=useField(Object.assign({},e)),{setValue:a}=r,{children:l}=o;return t(React.createElement(React.Fragment,null,l(a)))}function allowBodyErrors(){}export const Request=memo(RequestComponent);
2
2
  //# sourceMappingURL=Request.js.map
@@ -12,12 +12,14 @@ export interface ConsoleProps {
12
12
  rootElement?: HTMLElement | null;
13
13
  onClose?: () => void;
14
14
  properties?: any;
15
+ mergeExampleBody?: boolean;
15
16
  securityDefaults?: Record<string, SecurityDetails | string>;
16
17
  onResponse?: (arg: RequestAndResponseType) => void;
17
18
  }
18
19
  export interface RequestProps {
19
20
  operation: OperationModel;
20
21
  properties?: any;
22
+ mergeExampleBody?: boolean;
21
23
  securityDefaults: Record<string, string | SecurityDetails> | undefined;
22
24
  form: any;
23
25
  resolvedRawSpec: any;
@@ -1,2 +1,2 @@
1
- import React,{memo,useCallback,useEffect}from"react";import{useRecoilValue}from"@redocly/recoil";import{DropdownOrLabel}from"../../DropdownOrLabel";import{MediaTypesSwitch}from"../../MediaTypeSwitch";import{Dropdown}from"../../common";import{RequestMimeLabel}from"../RequestMimeLabel";import{encodeSample,getStorageExampleKey}from"../utils";import{fromSessionStorage}from"../../../utils";import{Body}from"./Body";import{getActiveMediaType}from"../../../models";import{activeMimeNameSelector}from"../../../recoil/app";import{operationStore}from"../../../recoil/operation";function RequestBodyComponent({body:{content:e},formApi:o,resolvedBody:t,properties:r,id:a,validate:i,pointer:m}){const l=useRecoilValue(activeMimeNameSelector),{examples:n,name:p}=e&&getActiveMediaType(e,l)||{},c=useCallback((o=>{if(!e||!e.hasSample)return"";if(!(null==n?void 0:n[o]))return"";const t=p&&fromSessionStorage(getStorageExampleKey(a,p,o,n)),i=t?JSON.parse(t):null==n?void 0:n[o];return encodeSample(i,r)}),[p,n,a,e,r]),{activeExampleName:s}=useRecoilValue(operationStore(m));useEffect((()=>{if(p){const e=getStorageExampleKey(a,p,s,n);o.setValue("body",fromSessionStorage(e)||c(s||""))}else o.setValue("body",JSON.stringify(r||{},null,2))}),[n,s,p,o,c,a,r]);return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:e,renderDropdown:e=>React.createElement(DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))},(m=>React.createElement(Body,{mediaType:m,mediaContent:e,resolvedBody:t,id:a,properties:r,getActiveSample:c,formApi:o,validate:i}))))}export const RequestBody=memo(RequestBodyComponent);
1
+ import React,{memo,useCallback,useEffect}from"react";import{useRecoilValue}from"@redocly/recoil";import{DropdownOrLabel}from"../../DropdownOrLabel";import{MediaTypesSwitch}from"../../MediaTypeSwitch";import{Dropdown}from"../../common";import{RequestMimeLabel}from"../RequestMimeLabel";import{encodeSample,getStorageExampleKey}from"../utils";import{fromSessionStorage}from"../../../utils";import{Body}from"./Body";import{getActiveMediaType}from"../../../models";import{activeMimeNameSelector}from"../../../recoil/app";import{operationStore}from"../../../recoil/operation";function RequestBodyComponent({body:{content:e},formApi:o,resolvedBody:t,properties:r,mergeExampleBody:a,id:i,validate:m,pointer:l}){const n=useRecoilValue(activeMimeNameSelector),{examples:p,name:c}=e&&getActiveMediaType(e,n)||{},d=useCallback((o=>{if(!e||!e.hasSample)return"";if(!(null==p?void 0:p[o]))return"";const t=c&&fromSessionStorage(getStorageExampleKey(i,c,o,p)),a=t?JSON.parse(t):null==p?void 0:p[o];return encodeSample(a,r)}),[c,p,i,e,r]),{activeExampleName:s}=useRecoilValue(operationStore(l));useEffect((()=>{if(r&&!a)return void o.setValue("body",JSON.stringify(r||{},null,2));const e=getStorageExampleKey(i,c,s,p);o.setValue("body",fromSessionStorage(e)||d(s||""))}),[p,s,c,o,d,i,r,a]);return React.createElement(React.Fragment,null,React.createElement(MediaTypesSwitch,{content:e,renderDropdown:e=>React.createElement(DropdownOrLabel,Object.assign({},e,{variant:"dark",fullWidth:!0,Label:RequestMimeLabel,Dropdown:Dropdown}))},(a=>React.createElement(Body,{mediaType:a,mediaContent:e,resolvedBody:t,id:i,properties:r,getActiveSample:d,formApi:o,validate:m}))))}export const RequestBody=memo(RequestBodyComponent);
2
2
  //# sourceMappingURL=RequestBody.js.map
@@ -9,6 +9,7 @@ export interface RequestBodyProps {
9
9
  formApi: FormApi;
10
10
  id: string;
11
11
  properties: any;
12
+ mergeExampleBody?: boolean;
12
13
  }
13
14
  export interface BodyProps extends Pick<RequestBodyProps, 'resolvedBody' | 'validate' | 'formApi' | 'id' | 'properties'> {
14
15
  mediaType: MediaTypeModel;
@@ -23,6 +23,6 @@ export declare const getOAuth2TokenEndpointAuthHeader: ({ authMethod, clientId,
23
23
  clientSecret: string;
24
24
  }) => Record<'Authorization', string> | GenericObject;
25
25
  export declare function encodeSample(sample: ExampleModel, properties: RequestBodyProps['properties']): string;
26
- export declare const getStorageExampleKey: (operationId: string, activeMimeType: string, activeExample?: string | false, examples?: {
26
+ export declare const getStorageExampleKey: (operationId: string, activeMimeType?: string, activeExample?: string | false, examples?: {
27
27
  [name: string]: ExampleModel;
28
28
  } | undefined) => string;
@@ -1,2 +1,2 @@
1
- import merge from"deepmerge";import{getRecoil}from"../../recoil/nexus";import{MediaTypes}from"../../constants";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";import{operationStore}from"../../recoil/operation";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];setSecurityDetails(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))setParameterValue(r,t,e.values[r][t])}export const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:o}=t;return e[o]=getParameterValue(r||"",o),e}),{});const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}export function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=fromSessionStorage("variables"),r=t&&JSON.parse(t)||{},o={};return Object.entries(e.variables||{}).forEach((([e,t])=>{o[e]=r[e]||t.default||""})),o}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),o=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},o),{[e]:t})))}export function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[unescapeFormId(t)]=r,e)),{})}export function getFileNameFromHeaders(e){const t="filename=";for(const[r,o]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=o.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},o,a)=>n=>{var i,s;const{requestValues:u}=getRecoil(operationStore(o.pointer));r&&(n=Object.assign(Object.assign({},n),{url:decodeURIComponent(n.url)})),t&&(n.headers["X-User-Agent"]="Redocly Try it API console");const c=(null===(i=null==u?void 0:u.header)||void 0===i?void 0:i.authorization)||(null===(s=null==u?void 0:u.header)||void 0===s?void 0:s.Authorization);return!a&&c&&(n.headers.Authorization=c),e?e(n,o):n};export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};export function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}export const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};export const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};export function encodeSample(e,t){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;const r=e.value,o=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(o,null,2)}export const getStorageExampleKey=(e,t,r,o)=>{let a=e+"_"+t;return r&&o&&Object.keys(o).includes(r)&&(a+="_"+r),a};
1
+ import merge from"deepmerge";import{getRecoil}from"../../recoil/nexus";import{MediaTypes}from"../../constants";import{arrayMergeStrategy}from"../../services/utils";import{fromSessionStorage,getParameterValue,setParameterValue,setSecurityDetails,toSessionStorage,unescapeFormId}from"../../utils";import{operationStore}from"../../recoil/operation";export function normalizeUrlProtocol(e){return e.startsWith("//")?"https:"+e:e}export function updateStorage(e){if(e.values.auth)for(const t of Object.keys(e.values.auth)){const r=e.values.auth[t];setSecurityDetails(t,r)}updateParameterStorage(e)}function updateParameterStorage(e){var t;for(const r of["path","query","header","cookie"])if(null===(t=e.values)||void 0===t?void 0:t[r])for(const t of Object.keys(e.values[r]))setParameterValue(r,t,e.values[r][t])}export const getParameters=(e,t)=>e.filter((e=>e.in===t)).reduce(((e,t)=>{const{in:r,name:o}=t;return e[o]=getParameterValue(r||"",o),e}),{});const pathTemplateRegExp=/(?:{)(\w+)(?:})/g;export function getServerWithVariables(e,t=0){const r=e[t],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function getInitialServerWithVariables(e){const t=fromSessionStorage("serverUrl"),r=e.find((e=>e.url===t))||e[0],o=getDefaultOrStoredVariables(r);return Object.assign(Object.assign({},r),{variables:o})}export function expandVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]||e))}export function expandDefaultServerVariables(e,t={}){return e.replace(pathTemplateRegExp,((e,r)=>t[r]&&t[r].default||e))}export function getDefaultOrStoredVariables(e){if(!(null==e?void 0:e.variables))return{};const t=fromSessionStorage("variables"),r=t&&JSON.parse(t)||{},o={};return Object.entries(e.variables||{}).forEach((([e,t])=>{o[e]=r[e]||t.default||""})),o}export function updateVariablesStorage(e,t){const r=fromSessionStorage("variables"),o=r&&JSON.parse(r)||{};toSessionStorage("variables",JSON.stringify(Object.assign(Object.assign({},o),{[e]:t})))}export function unescapeQueryParams(e){return Object.entries(e).reduce(((e,[t,r])=>(e[unescapeFormId(t)]=r,e)),{})}export function getFileNameFromHeaders(e){const t="filename=";for(const[r,o]of Object.entries(e))if("content-disposition"===r.toLowerCase()){const e=o.split(";").find((e=>e.trim().startsWith(t)));if(e)return e.split(t)[1]}return""}export const makeRequestInterceptor=({requestInterceptor:e,sendXUserAgentInTryIt:t,disableTryItRequestUrlEncoding:r},o,a)=>n=>{var i,s;const{requestValues:u}=getRecoil(operationStore(o.pointer));r&&(n=Object.assign(Object.assign({},n),{url:decodeURIComponent(n.url)})),t&&(n.headers["X-User-Agent"]="Redocly Try it API console");const c=(null===(i=null==u?void 0:u.header)||void 0===i?void 0:i.authorization)||(null===(s=null==u?void 0:u.header)||void 0===s?void 0:s.Authorization);return!a&&c&&(n.headers.Authorization=c),e?e(n,o):n};export function requiredValidator(e){if(!e)return"Field is required"}const getCookie=e=>{const t=document.cookie.match("\\b"+e+"=([^;]*)\\b");return t?t[1]:void 0};export function fromCookie(e){if("cookie"===e.in)return getCookie(e.name||"")}export const validateTokenEndpointMethod=e=>{if(!e)return!0;const t=Array.isArray(e)?e:[e];return!(t.length&&!t.includes("none")&&!t.includes("client_secret_basic"))};export const getOAuth2TokenEndpointAuthHeader=({authMethod:e,clientId:t,clientSecret:r})=>"client_secret_basic"===e||Array.isArray(e)&&e.includes("client_secret_basic")?{Authorization:`Basic ${btoa(t+":"+r)}`}:{};export function encodeSample(e,t){if(!e)return"";if(e.mime===MediaTypes.URL_ENCODED)return e.value;const r=e.value,o=t?merge(r,t,{arrayMerge:arrayMergeStrategy}):r;return JSON.stringify(o,null,2)}export const getStorageExampleKey=(e,t="",r,o)=>{let a=e+"_"+t;return r&&o&&Object.keys(o).includes(r)&&(a+="_"+r),a};
2
2
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.0.0-alpha.66",
3
+ "version": "3.0.0-alpha.67",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -114,7 +114,7 @@
114
114
  "webpack-cli": "^5.1.4",
115
115
  "webpack-dev-server": "^4.15.1",
116
116
  "workerize-loader": "github:redocly/workerize-loader#webpack-5-dist",
117
- "@redocly/theme": "0.27.2"
117
+ "@redocly/theme": "0.27.4"
118
118
  },
119
119
  "scripts": {
120
120
  "start": "webpack serve --mode=development --hot",