@redocly/openapi-docs 3.0.0-alpha.20 → 3.0.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/console.redocly-openapi-docs.min.js +21 -21
- package/dist/oauth2-redirect.js +1 -1
- package/dist/redocly-openapi-docs.min.js +808 -808
- package/lib/components/Endpoint/api-client.d.ts +1 -2
- package/lib/components/rightPanel/Console/Console.js +1 -1
- package/lib-esm/components/Endpoint/api-client.d.ts +1 -2
- package/lib-esm/components/rightPanel/Console/Console.js +1 -1
- package/package.json +2 -3
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { HTTPMethod } from '@redocly/api-client';
|
|
2
1
|
import type { OperationModel } from '../../models';
|
|
3
2
|
export declare function getRequestInput({ parameters, httpVerb, path, activeServer }: OperationModel): {
|
|
4
|
-
method:
|
|
3
|
+
method: string;
|
|
5
4
|
url: string;
|
|
6
5
|
params: Record<string, string>[];
|
|
7
6
|
headers: Record<string, string>[];
|
|
@@ -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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const swagger_client_1=__importDefault(require("swagger-client")),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),recoil_1=require("recoil"),utils_1=require("../../../utils"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_2=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,h]=(0,react_1.useState)(!1),[m,y]=(0,react_1.useState)(!1),[f,b]=(0,react_1.useState)({values:{path:(0,utils_2.getParameters)(e.parameters,"path"),cookie:(0,utils_2.getParameters)(e.parameters,"cookie"),header:(0,utils_2.getParameters)(e.parameters,"header"),query:(0,utils_2.getParameters)(e.parameters,"query")}}),[g,O]=(0,react_1.useState)(),[j,S]=(0,react_1.useState)(),[q,P]=(0,react_1.useState)(),[C,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((()=>{b(Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},r),{query:(0,utils_2.unescapeQueryParams)(r.query||{})})}))}),0)}),[]),E=(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_2.unescapeQueryParams)(t.query||{})})});c((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),b(o),(0,utils_2.updateStorage)(o)}),[c]),A=(0,react_1.useCallback)((e=>{_(e)}),[]),D=(0,react_1.useCallback)((e=>{d(e),c((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[c]),M=(0,react_1.useCallback)((()=>__awaiter(this,void 0,void 0,(function*(){var r,o,s,n,a,l,c,d,p,v,m,b,O,j,q,C,I;const{values:T,invalid:k}=(null===(r=null==i?void 0:i.current)||void 0===r?void 0:r.getState())||f||{};if(null===(o=i.current)||void 0===o||o.submitForm(),k)return y(!0),setTimeout((()=>y(!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:E,requestBody:A}=e,D=A&&A.content&&(null===(a=(0,models_1.getActiveMediaType)(A.content))||void 0===a?void 0:a.name)||"";let M=T.body;if(/json/.test(D))try{M=JSON.parse(M)}catch(e){console.error(e)}h(!0);const x=g,
|
|
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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Console=void 0;const swagger_client_1=__importDefault(require("swagger-client")),react_1=__importStar(require("react")),theme_1=require("@redocly/theme"),recoil_1=require("recoil"),utils_1=require("../../../utils"),Panel_1=require("../../Panel"),helper_1=require("../../common/FileUpload/helper"),events_1=require("../../../events"),utils_2=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,h]=(0,react_1.useState)(!1),[m,y]=(0,react_1.useState)(!1),[f,b]=(0,react_1.useState)({values:{path:(0,utils_2.getParameters)(e.parameters,"path"),cookie:(0,utils_2.getParameters)(e.parameters,"cookie"),header:(0,utils_2.getParameters)(e.parameters,"header"),query:(0,utils_2.getParameters)(e.parameters,"query")}}),[g,O]=(0,react_1.useState)(),[j,S]=(0,react_1.useState)(),[q,P]=(0,react_1.useState)(),[C,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((()=>{b(Object.assign(Object.assign({},o),{values:Object.assign(Object.assign({},r),{query:(0,utils_2.unescapeQueryParams)(r.query||{})})}))}),0)}),[]),E=(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_2.unescapeQueryParams)(t.query||{})})});c((e=>Object.assign(Object.assign({},e),{requestValues:JSON.parse(JSON.stringify(t))}))),b(o),(0,utils_2.updateStorage)(o)}),[c]),A=(0,react_1.useCallback)((e=>{_(e)}),[]),D=(0,react_1.useCallback)((e=>{d(e),c((t=>Object.assign(Object.assign({},t),{activeServer:e})))}),[c]),M=(0,react_1.useCallback)((()=>__awaiter(this,void 0,void 0,(function*(){var r,o,s,n,a,l,c,d,p,v,m,b,O,j,q,C,I;const{values:T,invalid:k}=(null===(r=null==i?void 0:i.current)||void 0===r?void 0:r.getState())||f||{};if(null===(o=i.current)||void 0===o||o.submitForm(),k)return y(!0),setTimeout((()=>y(!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:E,requestBody:A}=e,D=A&&A.content&&(null===(a=(0,models_1.getActiveMediaType)(A.content))||void 0===a?void 0:a.name)||"";let M=T.body;if(/json/.test(D))try{M=JSON.parse(M)}catch(e){console.error(e)}h(!0);const x=g,V=(e.httpVerb||"").toLowerCase();if(!E)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 F=E.find((e=>u.url.endsWith(e.url.endsWith("/")?e.url.substring(0,e.url.length-1):e.url))),B=Date.now(),N=!!window.document.documentMode;let U,W=T.auth;if(T.auth){const e=Object.keys(T.auth)[0],t=(0,utils_1.unescapeFormId)(e);U=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===(d=null===(c=null==x?void 0:x.components)||void 0===c?void 0:c.securitySchemes)||void 0===d?void 0:d[t]),{type:"openIdConnect"===(null===(m=null===(v=null===(p=null==x?void 0:x.components)||void 0===p?void 0:p.securitySchemes)||void 0===v?void 0:v[t])||void 0===m?void 0:m.type)?"oauth2":(null===(O=null===(b=null==x?void 0:x.components)||void 0===b?void 0:b.securitySchemes)||void 0===O?void 0:O[t]).type})})})}),W=Object.assign(Object.assign({},W),{[t]:W[e]})}else U=Object.assign({},x);U.servers=E;const z=R.corsProxyUrl;z&&E.length&&(U.servers=E.map((e=>Object.assign(Object.assign({},e),{url:z+normalizeUrlProtocol(e.url)}))),U.paths=Object.assign(Object.assign({},U.paths),{[e.path]:Object.assign(Object.assign({},U.paths[e.path]),{[V]:Object.assign(Object.assign({},U.paths[e.path][V]),{servers:void 0}),servers:void 0})}));const H=(null==A?void 0:A.content)&&(null===(j=(0,models_1.getActiveMediaType)(A.content))||void 0===j?void 0:j.name)||null;if(H&&M&&(0,helper_1.isFileUploadMime)(H)){const e=Object.values(M);M=e.length>1?e:e[0]}const J={userFetch:N&&require("cross-fetch").fetch,server:z?z+normalizeUrlProtocol(F.url):F.url,serverVariables:(0,utils_2.getDefaultOrStoredVariables)(F),spec:U,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:W},requestBody:M,requestContentType:H,responseContentType:(null===(q=T.header)||void 0===q?void 0:q.Accept)||null,requestInterceptor:(0,utils_2.makeRequestInterceptor)(R,e,null==W?void 0:W.Authorization)};try{const r=yield swagger_client_1.default.execute(J),o=null==r?void 0:r.data;o instanceof Blob&&((0,helper_1.isFileUploadMime)(o.type)&&(r.fileInfo={rawData:o,fileName:(0,utils_2.getFileNameFromHeaders)(r.headers)}),r.data=yield o.text()),null==t||t({request:J,response:r}),w(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:J,response:e.response})),w(void 0),P(e)}finally{h(!1),_(1),S(Date.now()-B),null===(I=null===(C=R.events)||void 0===C?void 0:C.tryItSent)||void 0===I||I.call(C,{eventType:events_1.AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[u.url,f,t,e,R,g]);(0,theme_1.useMount)((()=>__awaiter(this,void 0,void 0,(function*(){var t;const r=yield(0,utils_2.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),P(void 0),_(0))}),[e,I]);const x=!(!C&&!q);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:p,hasResponse:x,onChange:A}),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:f,resolvedRawSpec:g,server:u,formApi:i.current,setFormApi:k,handleChange:E,handleServerChange:D})),react_1.default.createElement(styled_1.ConsoleBody,{hidden:1!==p,"data-cy":"console-response-body"},react_1.default.createElement(ResponsePanel_1.ResponsePanel,{response:C,error:q,time:j})),react_1.default.createElement(ActionPanel_1.ActionPanel,{hasResponse:x,params:f.values,operation:e,loading:v,execute:M}))}exports.Console=(0,react_1.memo)(ConsoleComponent);
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { HTTPMethod } from '@redocly/api-client';
|
|
2
1
|
import type { OperationModel } from '../../models';
|
|
3
2
|
export declare function getRequestInput({ parameters, httpVerb, path, activeServer }: OperationModel): {
|
|
4
|
-
method:
|
|
3
|
+
method: string;
|
|
5
4
|
url: string;
|
|
6
5
|
params: Record<string, string>[];
|
|
7
6
|
headers: Record<string, string>[];
|
|
@@ -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 Swagger from"swagger-client";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useRecoilValue,useRecoilState}from"recoil";import{unescapeFormId}from"../../../utils";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{dereferenceDefinitionForTryIt,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),[g,b]=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,w]=useState(),T=usePrevious(e),{parser:q,options:E}=useRecoilValue(globalStoreSelector),_=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);i.current=e,setTimeout((()=>{b(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))}))),b(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,b,S,j,R,I,T;const{values:q,invalid:_}=(null===(o=null==i?void 0:i.current)||void 0===o?void 0:o.getState())||g||{};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=q.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
|
|
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 Swagger from"swagger-client";import React,{useEffect,useState,useRef,useCallback,memo}from"react";import{useMount}from"@redocly/theme";import{useRecoilValue,useRecoilState}from"recoil";import{unescapeFormId}from"../../../utils";import{StyledCodeHeader}from"../../Panel";import{isFileUploadMime}from"../../common/FileUpload/helper";import{AnalyticsEventType}from"../../../events";import{dereferenceDefinitionForTryIt,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),[g,b]=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,w]=useState(),T=usePrevious(e),{parser:q,options:E}=useRecoilValue(globalStoreSelector),_=useCallback(((e,t=e.getState())=>{var{values:o}=t,r=__rest(t,["values"]);i.current=e,setTimeout((()=>{b(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))}))),b(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,b,S,j,R,I,T;const{values:q,invalid:_}=(null===(o=null==i?void 0:i.current)||void 0===o?void 0:o.getState())||g||{};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=q.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))),M=Date.now(),N=!!window.document.documentMode;let U,H=q.auth;if(q.auth){const e=Object.keys(q.auth)[0],t=unescapeFormId(e);U=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===(b=null==x?void 0:x.components)||void 0===b?void 0:b.securitySchemes)||void 0===S?void 0:S[t]).type})})})}),H=Object.assign(Object.assign({},H),{[t]:H[e]})}else U=Object.assign({},x);U.servers=k;const W=E.corsProxyUrl;W&&k.length&&(U.servers=k.map((e=>Object.assign(Object.assign({},e),{url:W+normalizeUrlProtocol(e.url)}))),U.paths=Object.assign(Object.assign({},U.paths),{[e.path]:Object.assign(Object.assign({},U.paths[e.path]),{[B]:Object.assign(Object.assign({},U.paths[e.path][B]),{servers:void 0}),servers:void 0})}));const z=(null==F?void 0:F.content)&&(null===(j=getActiveMediaType(F.content))||void 0===j?void 0:j.name)||null;if(z&&V&&isFileUploadMime(z)){const e=Object.values(V);V=e.length>1?e:e[0]}const J={userFetch:N&&require("cross-fetch").fetch,server:W?W+normalizeUrlProtocol(D.url):D.url,serverVariables:getDefaultOrStoredVariables(D),spec:U,pathName:e.path,method:e.httpVerb,parameters:Object.assign(Object.assign(Object.assign(Object.assign({},q.path),q.query),q.header),q.cookie),securities:{authorized:H},requestBody:V,requestContentType:z,responseContentType:(null===(R=q.header)||void 0===R?void 0:R.Accept)||null,requestInterceptor:makeRequestInterceptor(E,e,null==H?void 0:H.Authorization)};try{const o=yield Swagger.execute(J),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:J,response:o}),w(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:J,response:e.response})),w(void 0),P(e)}finally{y(!1),m(1),C(Date.now()-M),null===(T=null===(I=E.events)||void 0===I?void 0:I.tryItSent)||void 0===T||T.call(I,{eventType:AnalyticsEventType.TryItSent,resource:"Redocly_OperationTryIt",action:"Sent",operationId:e.operationId,operationPath:e.path,operationHttpVerb:e.httpVerb,operationSummary:e.description})}}))),[u.url,g,t,e,E,O]);useMount((()=>__awaiter(this,void 0,void 0,(function*(){var t;const o=yield dereferenceDefinitionForTryIt(e,q.definition);S(o),null===(t=i.current)||void 0===t||t.setValues({})})))),useEffect((()=>{T&&T!==e&&(w(void 0),P(void 0),m(0))}),[e,T]);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:g,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:g.values,operation:e,loading:v,execute:V}))}export const Console=memo(ConsoleComponent);
|
|
2
2
|
//# sourceMappingURL=Console.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.22",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@markdoc/markdoc": "0.1.13",
|
|
19
|
-
"@redocly/api-client": "^0.0.1",
|
|
20
19
|
"@redocly/openapi-core": "1.0.0-beta.97",
|
|
21
20
|
"@redocly/vscode-json-languageservice": "3.4.9",
|
|
22
21
|
"@wojtekmaj/enzyme-adapter-react-17": "^0.6.2",
|
|
@@ -93,7 +92,7 @@
|
|
|
93
92
|
"devDependencies": {
|
|
94
93
|
"@percy/cli": "^1.10.3",
|
|
95
94
|
"@percy/cypress": "^3.1.1",
|
|
96
|
-
"@redocly/theme": "^0.9.
|
|
95
|
+
"@redocly/theme": "^0.9.4",
|
|
97
96
|
"@testing-library/jest-dom": "^5.15.1",
|
|
98
97
|
"@testing-library/react": "^12.1.4",
|
|
99
98
|
"@testing-library/react-hooks": "^8.0.1",
|