@redocly/openapi-docs 3.0.0-alpha.27 → 3.0.0-alpha.29.alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/console.redocly-openapi-docs.min.js +128 -128
- package/dist/oauth2-redirect.js +2 -2
- package/dist/redocly-openapi-docs.min.js +834 -753
- package/lib/components/Callbacks/CallbackOperation.js +1 -1
- package/lib/components/ContentItems/useAutoScroll.js +1 -1
- package/lib/components/Fields/Field.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/Providers.d.ts +2 -1
- package/lib/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/types.d.ts +1 -0
- package/lib/components/Responses/Response.js +1 -1
- package/lib/components/Search/MenuItemSearch.js +1 -1
- package/lib/components/SectionContent/SectionContent.js +1 -1
- package/lib/components/SideMenu/MenuItem.d.ts +2 -5
- package/lib/components/SideMenu/MenuItem.js +1 -1
- package/lib/components/SideMenu/MenuItemLink.js +1 -1
- package/lib/components/SideMenu/MenuItems.js +1 -1
- package/lib/components/SideMenu/SideMenu.js +1 -1
- package/lib/components/SideMenu/hooks/index.d.ts +2 -0
- package/lib/components/SideMenu/hooks/index.js +2 -0
- package/lib/components/SideMenu/hooks/useMenuItemExpanded.d.ts +3 -0
- package/lib/components/SideMenu/hooks/useMenuItemExpanded.js +2 -0
- package/lib/components/SideMenu/hooks/useMenuItems.d.ts +9 -0
- package/lib/components/SideMenu/hooks/useMenuItems.js +2 -0
- package/lib/components/SideMenu/types.d.ts +8 -3
- package/lib/components/Tabs/CollapsingTabs/CollapsingTabs.js +1 -1
- package/lib/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
- package/lib/components/common/LinkToField.d.ts +1 -1
- package/lib/components/common/LinkToField.js +1 -1
- package/lib/components/common/panels.js +1 -1
- package/lib/components/rightPanel/Console/Console.js +1 -1
- package/lib/hooks/index.d.ts +0 -1
- package/lib/hooks/index.js +1 -1
- package/lib/services/OAuth2.js +1 -1
- package/lib/services/code-samples/httpsnippet/index.js +1 -1
- package/lib/services/menu/operation.js +1 -1
- package/lib/services/search/SearchStore.js +1 -1
- package/lib/types/open-api.d.ts +1 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/path.d.ts +4 -0
- package/lib/utils/path.js +2 -0
- package/lib/utils/string.d.ts +1 -0
- package/lib/utils/string.js +1 -1
- package/lib-esm/components/Callbacks/CallbackOperation.js +1 -1
- package/lib-esm/components/ContentItems/useAutoScroll.js +1 -1
- package/lib-esm/components/Fields/Field.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/Providers.d.ts +2 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/Providers.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/types.d.ts +1 -0
- package/lib-esm/components/Responses/Response.js +1 -1
- package/lib-esm/components/Search/MenuItemSearch.js +1 -1
- package/lib-esm/components/SectionContent/SectionContent.js +1 -1
- package/lib-esm/components/SideMenu/MenuItem.d.ts +2 -5
- package/lib-esm/components/SideMenu/MenuItem.js +1 -1
- package/lib-esm/components/SideMenu/MenuItemLink.js +1 -1
- package/lib-esm/components/SideMenu/MenuItems.js +1 -1
- package/lib-esm/components/SideMenu/SideMenu.js +1 -1
- package/lib-esm/components/SideMenu/hooks/index.d.ts +2 -0
- package/lib-esm/components/SideMenu/hooks/index.js +2 -0
- package/lib-esm/components/SideMenu/hooks/useMenuItemExpanded.d.ts +3 -0
- package/lib-esm/components/SideMenu/hooks/useMenuItemExpanded.js +2 -0
- package/lib-esm/components/SideMenu/hooks/useMenuItems.d.ts +9 -0
- package/lib-esm/components/SideMenu/hooks/useMenuItems.js +2 -0
- package/lib-esm/components/SideMenu/types.d.ts +8 -3
- package/lib-esm/components/Tabs/CollapsingTabs/CollapsingTabs.js +1 -1
- package/lib-esm/components/Tabs/CollapsingTabs/CollapsingTabsBase.js +1 -1
- package/lib-esm/components/common/LinkToField.d.ts +1 -1
- package/lib-esm/components/common/LinkToField.js +2 -2
- package/lib-esm/components/common/panels.js +1 -1
- package/lib-esm/components/rightPanel/Console/Console.js +1 -1
- package/lib-esm/hooks/index.d.ts +0 -1
- package/lib-esm/hooks/index.js +1 -1
- package/lib-esm/services/OAuth2.js +1 -1
- package/lib-esm/services/code-samples/httpsnippet/index.js +1 -1
- package/lib-esm/services/menu/operation.js +1 -1
- package/lib-esm/services/search/SearchStore.js +1 -1
- package/lib-esm/types/open-api.d.ts +1 -0
- package/lib-esm/utils/index.d.ts +1 -1
- package/lib-esm/utils/index.js +1 -1
- package/lib-esm/utils/path.d.ts +4 -0
- package/lib-esm/utils/path.js +2 -0
- package/lib-esm/utils/string.d.ts +1 -0
- package/lib-esm/utils/string.js +1 -1
- package/package.json +41 -36
- package/lib/components/SideMenu/useMenuItemLink.d.ts +0 -18
- package/lib/components/SideMenu/useMenuItemLink.js +0 -2
- package/lib/utils/decorators.d.ts +0 -1
- package/lib/utils/decorators.js +0 -2
- package/lib-esm/components/SideMenu/useMenuItemLink.d.ts +0 -18
- package/lib-esm/components/SideMenu/useMenuItemLink.js +0 -2
- package/lib-esm/utils/decorators.d.ts +0 -1
- package/lib-esm/utils/decorators.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{memo}from"react";import{
|
|
1
|
+
import React,{memo}from"react";import{MenuItem}from"./MenuItem";import{MenuItemUl}from"./styled";import{MenuExternalLink}from"./MenuItemEternalLink";function MenuItemsComponents({items:e,root:t,className:n,linksBefore:m=[],linksAfter:r=[],expanded:a=!0,style:i}){return React.createElement(MenuItemUl,{className:n,style:i,expanded:a,role:t?"navigation":void 0},m.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))),e.map((e=>React.createElement(MenuItem,{key:e.id,item:e}))),r.map((e=>React.createElement(MenuExternalLink,{key:JSON.stringify(e),link:e}))))}export const MenuItems=memo(MenuItemsComponents);
|
|
2
2
|
//# sourceMappingURL=MenuItems.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{memo,useRef}from"react";import{useRecoilValue}from"recoil";import{RedocAttribution}from"./styled";import{MenuItems}from"./MenuItems";import{PerfectScrollbarWrap}from"../common";import{globalOptionsSelector}from"../../recoil/store";const SideMenuComponent=({items:e,className:t})=>{const{sidebarLinks:o,whiteLabel:r,pagination:n}=useRecoilValue(globalOptionsSelector),l=useRef();return React.createElement(PerfectScrollbarWrap,{updateFn:e=>{l.current=e},className:t,options:{wheelPropagation:!1}},React.createElement(MenuItems,{items:
|
|
1
|
+
import React,{memo,useRef}from"react";import{useRecoilValue}from"recoil";import{RedocAttribution}from"./styled";import{MenuItems}from"./MenuItems";import{PerfectScrollbarWrap}from"../common";import{globalOptionsSelector}from"../../recoil/store";import{useMenuItems}from"./hooks";const SideMenuComponent=({items:e,className:t})=>{const{sidebarLinks:o,whiteLabel:r,pagination:n}=useRecoilValue(globalOptionsSelector),l=useRef(),i=useMenuItems({items:e,pagination:n});return React.createElement(PerfectScrollbarWrap,{updateFn:e=>{l.current=e},className:t,options:{wheelPropagation:!1}},React.createElement(MenuItems,{items:i,root:!0,linksBefore:null==o?void 0:o.beforeInfo,linksAfter:null==o?void 0:o.end}),r&&React.createElement(RedocAttribution,null,React.createElement("a",{href:"https://redoc.ly",target:"_blank",rel:"noreferrer"},"Powered by Redocly")))};export const SideMenu=memo(SideMenuComponent);
|
|
2
2
|
//# sourceMappingURL=SideMenu.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useEffect,useState}from"react";export function useMenuItemExpanded({active:e,hasActiveSubItem:t,type:n}){const[u,s]=useState(isItemExpanded(e,t,n));return useEffect((()=>{s(isItemExpanded(e,t,n))}),[e,t,n]),[u,s]}function isItemExpanded(e,t,n){return e||t||"group"===n}
|
|
2
|
+
//# sourceMappingURL=useMenuItemExpanded.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IMenuItem } from '../../../services';
|
|
2
|
+
import type { ExtendedMenuItem } from '../types';
|
|
3
|
+
import { Pagination } from '../../../services';
|
|
4
|
+
type UseMenuItemsInput = {
|
|
5
|
+
items: IMenuItem[];
|
|
6
|
+
pagination: Pagination;
|
|
7
|
+
};
|
|
8
|
+
export declare function useMenuItems({ items, pagination }: UseMenuItemsInput): ExtendedMenuItem[];
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useActiveSectionId}from"@redocly/theme";import{useMemo}from"react";import{useLocation}from"react-router-dom";import{Pagination}from"../../../services";import{normalizeHashPath,pathMatchedLink}from"../../../utils";export function useMenuItems({items:e,pagination:t}){const i=useLocation(),m=useActiveSectionId(i,!1,!1);return useMemo((()=>mapAndSetActiveItems(e,m,i,t)),[m,e,i,t])}function mapAndSetActiveItems(e,t="",i,m){return e.map((e=>{const n=isItemActive(e,t,i),o=isSubItemActive(e,t,i);return m===Pagination.Item&&(e.href=normalizeHashPath(e.href)),Object.assign(Object.assign({},e),{items:mapAndSetActiveItems(e.items||[],t,i,m),active:n&&!o,hasActiveSubItem:o})})).filter(Boolean)}function isItemActive(e,t="",i){return!!e.href&&(t?e.id===t:pathMatchedLink(i,e.href))}function isSubItemActive(e,t="",i){return(e.items||[]).some((e=>isItemActive(e,t,i)||isSubItemActive(e,t,i)))}
|
|
2
|
+
//# sourceMappingURL=useMenuItems.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties } from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ExternalLink, IMenuItem } from '../../services';
|
|
3
3
|
export interface MenuItemLinkProps {
|
|
4
4
|
depth: number;
|
|
5
5
|
active: boolean;
|
|
@@ -8,18 +8,23 @@ export interface MenuItemLinkProps {
|
|
|
8
8
|
hasChildren?: boolean;
|
|
9
9
|
to: string;
|
|
10
10
|
href?: string;
|
|
11
|
+
onClick?: () => void;
|
|
11
12
|
}
|
|
12
13
|
export interface MenuItemsProps {
|
|
13
|
-
items:
|
|
14
|
+
items: ExtendedMenuItem[];
|
|
14
15
|
expanded?: boolean;
|
|
15
16
|
style?: CSSProperties;
|
|
16
17
|
root?: boolean;
|
|
17
18
|
className?: string;
|
|
18
19
|
linksBefore?: ExternalLink[];
|
|
19
20
|
linksAfter?: ExternalLink[];
|
|
20
|
-
pagination: Pagination;
|
|
21
21
|
}
|
|
22
22
|
export type StyledMenuItemLinkProps = Omit<MenuItemLinkProps, 'active' | 'hasChildren'> & {
|
|
23
23
|
$active: MenuItemLinkProps['active'];
|
|
24
24
|
$hasChildren: MenuItemLinkProps['hasChildren'];
|
|
25
25
|
};
|
|
26
|
+
export type ExtendedMenuItem = IMenuItem & {
|
|
27
|
+
active: boolean;
|
|
28
|
+
hasActiveSubItem: boolean;
|
|
29
|
+
items: ExtendedMenuItem[];
|
|
30
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(n[o[a]]=e[o[a]])}return n};import React,{memo,useCallback,useEffect,useState}from"react";import{useRecoilState}from"recoil";import{CollapsingTabsBase}from"./CollapsingTabsBase";import{operationStore}from"../../../recoil/operation";function getActiveIndexFromOperation(e,t,n){var o;if(!t)return-1;if("number"==typeof n&&n>0){return hasActiveExampleName(null===(o=e[n])||void 0===o?void 0:o.content,t)?n:getActiveIndexFromOperation(e,t)}return e.findIndex((({content:e})=>hasActiveExampleName(e,t)))}function hasActiveExampleName(e,t){return!!(null==e?void 0:e.mediaTypes.find((e=>Object.keys(e.examples||[]).includes(t||""))))}function CollapsingTabsComponent(e){var{children:t}=e,n=__rest(e,["children"]);const{operation:{pointer:o,responses:a},tabs:i}=n,[r,s]=useRecoilState(operationStore(o)),[l,c]=useState(0);function p(e){s((t=>Object.assign(Object.assign({},t),{activeResponseTab:e})))}useEffect((()=>{const e=i.findIndex((e=>e.title===(null==r?void 0:r.activeResponseTab)));c(e)}),[i,null==r?void 0:r.activeResponseTab,c]);const m=null==r?void 0:r.activeExampleName;useEffect((()=>{const e=getActiveIndexFromOperation(a,m,l);e>-1&&(c(e),p(i[e].title))}),[m]);const u=useCallback((e=>{l!==e&&(c(e),p(i[e].title))}),[l]);return React.createElement(CollapsingTabsBase,Object.assign({},n,{activeIndex:l,onChange:u}),t)}export const CollapsingTabs=memo(CollapsingTabsComponent);
|
|
1
|
+
var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(n[o[a]]=e[o[a]])}return n};import React,{memo,useCallback,useEffect,useState}from"react";import{useRecoilState}from"recoil";import{CollapsingTabsBase}from"./CollapsingTabsBase";import{operationStore}from"../../../recoil/operation";function getActiveIndexFromOperation(e,t,n){var o;if(!t)return-1;if("number"==typeof n&&n>0){return hasActiveExampleName(null===(o=e[n])||void 0===o?void 0:o.content,t)?n:getActiveIndexFromOperation(e,t)}return e.findIndex((({content:e})=>hasActiveExampleName(e,t)))}function hasActiveExampleName(e,t){return!!(null==e?void 0:e.mediaTypes.find((e=>Object.keys(e.examples||[]).includes(t||""))))}function CollapsingTabsComponent(e){var{children:t}=e,n=__rest(e,["children"]);const{operation:{pointer:o,responses:a},tabs:i}=n,[r,s]=useRecoilState(operationStore(o)),[l,c]=useState(0);function p(e){s((t=>Object.assign(Object.assign({},t),{activeResponseTab:e})))}useEffect((()=>{const e=i.findIndex((e=>e.title===(null==r?void 0:r.activeResponseTab)));c(e)}),[i,null==r?void 0:r.activeResponseTab,c]);const m=null==r?void 0:r.activeExampleName;useEffect((()=>{const e=getActiveIndexFromOperation(a,m,l);e>-1&&i[e]&&(c(e),p(i[e].title))}),[m]);const u=useCallback((e=>{l!==e&&(c(e),p(i[e].title))}),[l]);return React.createElement(CollapsingTabsBase,Object.assign({},n,{activeIndex:l,onChange:u}),t)}export const CollapsingTabs=memo(CollapsingTabsComponent);
|
|
2
2
|
//# sourceMappingURL=CollapsingTabs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from"react";import{Tabs}from"react-tabs";import{useRecoilValue}from"recoil";import{CollapsingDropdown}from"../../common/Dropdown";import{CollapsingTabList}from"./CollapsingTabList";import{CollapsingTab}from"./CollapsingTab";import{globalOptionsSelector}from"../../../recoil/store";function CollapsingTabsBaseComponent({tabs:e,children:
|
|
1
|
+
import React from"react";import{Tabs}from"react-tabs";import{useRecoilValue}from"recoil";import{CollapsingDropdown}from"../../common/Dropdown";import{CollapsingTabList}from"./CollapsingTabList";import{CollapsingTab}from"./CollapsingTab";import{globalOptionsSelector}from"../../../recoil/store";function CollapsingTabsBaseComponent({tabs:e,children:o,hidden:t,activeIndex:a,onChange:l}){const{samplesTabsMaxCount:n}=useRecoilValue(globalOptionsSelector),i=React.useMemo((()=>e.slice(n).map((({title:e},o)=>({idx:o,value:e})))),[e,n]),s=`${i.length} more`,[c,r]=React.useState(s),p=React.useCallback((()=>{var o;const t=a>=n;c!==s&&c===e[a].title||!t?c===s||t||r(s):r(null===(o=e[a])||void 0===o?void 0:o.title)}),[a,n,c,s,e]);React.useEffect((()=>{setTimeout(p,0)}),[a,n,p]);return React.createElement(Tabs,{selectedIndex:a,onSelect:l},React.createElement(CollapsingTabList,{hidden:t},e.map(((e,o)=>React.createElement(CollapsingTab,{key:null==e?void 0:e.key,disabled:o>=n},null==e?void 0:e.title))),i.length?React.createElement(CollapsingDropdown,{options:i,onChange:e=>{l(n+e.idx)},placeholder:s,value:c,active:a>=n}):null),o)}export const CollapsingTabsBase=React.memo(CollapsingTabsBaseComponent);
|
|
2
2
|
//# sourceMappingURL=CollapsingTabsBase.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import styled from"styled-components";import React from"react";import{AnchorIcon}from"@redocly/theme";import{joinWithSeparator,Pagination}from"../../services";import{constructFieldDeepFragment}from"../../services/history/helpers";import{
|
|
1
|
+
import styled from"styled-components";import React from"react";import{AnchorIcon}from"@redocly/theme";import{joinWithSeparator,Pagination}from"../../services";import{constructFieldDeepFragment}from"../../services/history/helpers";import{pathMatchedLink}from"../../utils";import{ShareLink}from"./linkify";export function generateDeepLink(i,e){const t=i.deps.operation,o=constructFieldDeepFragment(i);if(!(null==t?void 0:t.id)&&!t.isCallback)return"#"+o;let n=e.pagination===Pagination.Item?"#":t.href;return joinWithSeparator(n,o,"!")}export const LinkToField=i=>{const e=i.to;return React.createElement(ShareLinkToField,{className:i.className,isActive:!(!(null==i?void 0:i.location)||!pathMatchedLink(i.location,e)),to:e,id:null==e?void 0:e.split("#")[1]})};export const ShareLinkToField=styled(ShareLink)`
|
|
2
2
|
left: 10px;
|
|
3
3
|
display: flex;
|
|
4
|
-
${({isActive:
|
|
4
|
+
${({isActive:i})=>i&&`\n ${AnchorIcon} {\n visibility: visible;\n }\n `}
|
|
5
5
|
:hover ${AnchorIcon}, :focus ${AnchorIcon} {
|
|
6
6
|
visibility: visible;
|
|
7
7
|
}
|
|
@@ -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,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,
|
|
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,T]=useState(),w=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]),A=useCallback((e=>{m(e)}),[]),F=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,w;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:A}=e,F=A&&A.content&&(null===(a=getActiveMediaType(A.content))||void 0===a?void 0:a.name)||"";let V=q.body;if(/json/.test(F))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=q.auth;if(q.auth){const e=Object.keys(q.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===(b=null==x?void 0:x.components)||void 0===b?void 0:b.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==A?void 0:A.content)&&(null===(j=getActiveMediaType(A.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({},q.path),q.query),q.header),q.cookie),securities:{authorized:U},requestBody:V,requestContentType:W,responseContentType:(null===(R=q.header)||void 0===R?void 0:R.Accept)||null,requestInterceptor:makeRequestInterceptor(E,e,null==U?void 0:U.Authorization)};try{const e=yield Swagger.execute(z),o=null==e?void 0:e.data;o instanceof Blob&&(isFileUploadMime(o.type)&&(e.fileInfo={rawData:o,fileName:getFileNameFromHeaders(e.headers)}),e.data=yield o.text()),null==t||t({request:z,response:e}),T(e),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===(w=null===(I=E.events)||void 0===I?void 0:I.tryItSent)||void 0===w||w.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((()=>{w&&w!==e&&(T(void 0),P(void 0),m(0))}),[e,w]);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:A}),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:F})),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/lib-esm/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { useDimensions } from './useDimensions';
|
|
2
2
|
export { usePrevious } from './usePrevious';
|
|
3
|
-
export { useLicense } from './useLicense';
|
|
4
3
|
export { useActivateExample } from './useActivateExample';
|
|
5
4
|
export { useRouter } from './useRouter';
|
|
6
5
|
export { useContentItems } from './useContentItems';
|
package/lib-esm/hooks/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{
|
|
1
|
+
export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))((function(i,s){function c(e){try{n(r.next(e))}catch(e){s(e)}}function o(e){try{n(r.throw(e))}catch(e){s(e)}}function n(e){var t;e.done?i(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(c,o)}n((r=r.apply(e,t||[])).next())}))};import*as qs from"
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))((function(i,s){function c(e){try{n(r.next(e))}catch(e){s(e)}}function o(e){try{n(r.throw(e))}catch(e){s(e)}}function n(e){var t;e.done?i(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(c,o)}n((r=r.apply(e,t||[])).next())}))};import*as qs from"query-string";import{base64UrlEncode,encodeState,sha256}from"./utils";const DEFAULT_OAUTH2_REDIRECT_PAGE="/oauth2-redirect.html";export class OAuth2{static authorizeImplicit({authorizationUrl:e,clientId:t,scopes:a,extraParams:r={},routingBasePath:i,redirectUri:s,successCallback:c,errorCallback:o}){const n=encodeState({date:(new Date).toString()}),l=new URL(e),d="/"===i?"":i,h=`${window.location.origin}${d}/oauth2-redirect.html`;l.searchParams.set("client_id",t),l.searchParams.set("redirect_uri",s||h),l.searchParams.set("response_type","token"),l.searchParams.set("state",n),Array.isArray(a)&&l.searchParams.set("scope",a.join(" "));for(const e in r)l.searchParams.set(e,r[e]);window.redirectOAuth2={flow:"implicit",data:{authorizationUrl:e,clientId:t,scopes:a},state:n,successCallback:e=>{c(e),OAuth2.clearRedirectData("implicit")},errorCallback:e=>{o(e),OAuth2.clearRedirectData("implicit")}},window.open(l.toString())}static authorizeAuthorizationCode({authorizationUrl:e,tokenUrl:t,clientId:a,clientSecret:r,codeVerifier:i,codeChallenge:s,scopes:c,extraParams:o={},extraHeaders:n={},routingBasePath:l,redirectUri:d,successCallback:h,errorCallback:u}){const p=new URL(e),w="/"===l?"":l,_=`${window.location.origin}${w}/oauth2-redirect.html`,m=encodeState({date:(new Date).toString()});p.searchParams.set("client_id",a),p.searchParams.set("redirect_uri",d||_),p.searchParams.set("response_type","code"),p.searchParams.set("state",m),Array.isArray(c)&&p.searchParams.set("scope",c.join(" ")),s&&(p.searchParams.set("code_challenge",s),p.searchParams.set("code_challenge_method","S256"));for(const e in o)p.searchParams.set(e,o[e]);window.redirectOAuth2={flow:"authorizationCode",data:{authorizationUrl:e,clientId:a,scopes:c},state:m,successCallback:({auth_code:e})=>__awaiter(this,void 0,void 0,(function*(){try{const s=yield fetch(t,{method:"POST",headers:Object.assign({"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},n),body:qs.stringify(Object.assign(Object.assign(Object.assign({client_id:a,client_secret:r},i&&{code_verifier:i}),{code:e,grant_type:"authorization_code",redirect_uri:d||_}),o))});yield handleResponseCallback(s,h,u)}catch(e){u(e)}OAuth2.clearRedirectData("authorizationCode")})),errorCallback:e=>{u(e),OAuth2.clearRedirectData("authorizationCode")}},window.open(p.toString())}static clearRedirectData(e){window.redirectOAuth2={flow:e,data:{authorizationUrl:"",clientId:"",scopes:[]},state:"",successCallback:()=>{},errorCallback:()=>{}}}static authorizeClientCredentials({tokenUrl:e,clientId:t,clientSecret:a,scopes:r=[],extraParams:i={},extraHeaders:s={},successCallback:c,errorCallback:o}){return __awaiter(this,void 0,void 0,(function*(){try{const n=JSON.parse(JSON.stringify(Object.assign({client_id:t,client_secret:a,grant_type:"client_credentials",scope:Array.isArray(r)&&r.length?r.join(" "):void 0},i))),l=yield fetch(e,{method:"POST",headers:Object.assign({"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},s),body:qs.stringify(n)});yield handleResponseCallback(l,c,o)}catch(e){o(e)}}))}}export const oauth2Instance=new OAuth2;function handleResponseCallback(e,t,a){return __awaiter(this,void 0,void 0,(function*(){if(e.ok){const a=yield e.json();t(a)}else a(new Error((e.headers.get("Content-Type")||"").indexOf("json")>-1?JSON.stringify(yield e.json()):yield e.text()))}))}export function deriveCodeChallenge(e){return __awaiter(this,void 0,void 0,(function*(){return base64UrlEncode(yield sha256(e))}))}
|
|
2
2
|
//# sourceMappingURL=OAuth2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as qs from"
|
|
1
|
+
import*as qs from"query-string";import*as url from"url";import{normalizeMimeType,unescapeServerVariables}from"../../utils";import{MediaTypes}from"../../../constants";import targets from"./targets";import reducer from"./helpers/reducer";export class HTTPSnippet{constructor(e){Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const r=Object.assign({},e);this.request=this.prepare(Object.assign(Object.assign({},r),{httpVersion:r.httpVersion||"HTTP/1.1",queryString:r.queryString||[],headers:r.headers||[],cookies:r.cookies||[],postData:r.postData?Object.assign(Object.assign({},r.postData),{jsonObj:void 0,paramsObj:void 0}):void 0,bodySize:0,headersSize:0,queryObj:{},headersObj:{},cookiesObj:{},allHeaders:{},uriObj:{},fullUrl:"",pathParameters:r.pathParameters||{},serverVariables:r.serverVariables||{}}))}prepare(e){var r;if(e.queryString&&e.queryString.length&&(e.queryObj=e.queryString.reduce(reducer,{})),e.headers&&e.headers.length){const r=/^HTTP\/2/;e.headersObj=e.headers.reduce((function(t,a){let s=a.name;return e.httpVersion.match(r)&&(s=s.toLowerCase()),t[s]=a.value,t}),{})}e.cookies&&e.cookies.length&&(e.cookiesObj=e.cookies.reduceRight((function(e,r){return e[r.name]=r.value,e}),{}));const t=e.cookies.map((function(e){return encodeURIComponent(e.name)+"="+encodeURIComponent(e.value)}));if(t.length&&(e.allHeaders.cookie=t.join("; ")),e.postData)switch(normalizeMimeType(e.postData.mimeType)){case"multipart/mixed":case"multipart/related":case MediaTypes.MULTIPART:case"multipart/alternative":break;case MediaTypes.URL_ENCODED:(null===(r=e.postData)||void 0===r?void 0:r.params)?(e.postData.paramsObj=e.postData.params.reduce(reducer,{}),e.postData.text=qs.stringify(e.postData.paramsObj)):e.postData.text="";break;case"text/json":case"text/x-json":case MediaTypes.JSON:case"application/x-json":if(e.postData.text)try{e.postData.jsonObj=JSON.parse(e.postData.text)}catch(r){e.postData.mimeType="text/plain"}}return e.allHeaders=Object.assign(e.allHeaders,e.headersObj),e.uriObj=url.parse(e.url,!0,!0),e.queryObj=Object.assign(e.queryObj,e.uriObj.query),e.uriObj.query=null,e.uriObj.search=null,e.uriObj.path=e.uriObj.pathname=unescapeServerVariables(e.uriObj.pathname),e.url=unescapeServerVariables(url.format(e.uriObj)),e.uriObj.query=e.queryObj,e.uriObj.search=qs.stringify(e.queryObj),e.uriObj.search&&(e.uriObj.path=e.uriObj.pathname+"?"+e.uriObj.search),e.fullUrl=unescapeServerVariables(url.format(e.uriObj)),e}convert(e,r,t){!t&&r&&(t=r);const a=this._matchTarget(e,r);if(a){const s=a(this.request,t,{target:e,client:r});return 1===s.length?s[0]:s}throw new Error("Can not match target")}_matchTarget(e,r){return!!Object.prototype.hasOwnProperty.call(targets,e)&&("string"==typeof r&&"function"==typeof targets[e][r]?targets[e][r]:targets[e][targets[e].info.default])}}
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{alphabeticallyByProp,getOperationId,getOperationName}from"../../utils";import{Pagination}from"../types";import{normalizePath}from"../utils";import{joinWithSeparator}from"../history";export function getOperationsItems(t,e,o,a){if(0===e.operations.length)return[];const i=[];for(const r of e.operations){const e=getOperationId(r,t),n="operation";i.push({id:e,type:n,parent:t,operationDefinition:r,depth:o,name:getOperationName(r),httpVerb:r.httpVerb,path:r.pathName,items:[],isWebhook:r.isWebhook,operationId:r.operationId,href:getHref({id:e,type:n,parent:t},a.pagination)})}return a.sortOperationsAlphabetically&&i.sort(alphabeticallyByProp("name")),i}export function getHref({type:t,id:e,parent:o},a){switch(a){case Pagination.None:return`#${e}`;case Pagination.Item:return"section"===t?"tag"===(null==o?void 0:o.type)?normalizePath(joinWithSeparator(o.id,e,"#")):`#${e}`:o&&"group"!==o.type?normalizePath(joinWithSeparator(o.id,e)):normalizePath(e);case Pagination.Section:return"operation"===t?normalizePath(o?joinWithSeparator(o.id,e,"#"):`#${e}`):"section"===t?o?`#${e}`:normalizePath(`#${e}`):normalizePath(e);default:return""}}
|
|
1
|
+
import{alphabeticallyByProp,getOperationId,getOperationName}from"../../utils";import{Pagination}from"../types";import{normalizePath}from"../utils";import{joinWithSeparator}from"../history";export function getOperationsItems(t,e,o,a){if(0===e.operations.length)return[];const i=[];for(const r of e.operations){const e=getOperationId(r,t),n="operation";i.push({id:e,type:n,parent:t,operationDefinition:r,depth:o,name:getOperationName(r),httpVerb:r.httpVerb,path:r.pathName,items:[],isWebhook:r.isWebhook,operationId:r.operationId,href:getHref({id:e,type:n,parent:t},a.pagination)})}return a.sortOperationsAlphabetically&&i.sort(alphabeticallyByProp("name")),i}export function getHref({type:t,id:e,parent:o},a){switch(a){case Pagination.None:return`#${e}`;case Pagination.Item:return"section"===t?"tag"===(null==o?void 0:o.type)?normalizePath(joinWithSeparator(o.id,e,"#")):`#${e}`:o&&"group"!==o.type?normalizePath(joinWithSeparator(o.id,e)):normalizePath(e);case Pagination.Section:return"operation"===t||"schema"===t?normalizePath(o?joinWithSeparator(o.id,e,"#"):`#${e}`):"section"===t?o?`#${e}`:normalizePath(`#${e}`):normalizePath(e);default:return""}}
|
|
2
2
|
//# sourceMappingURL=operation.js.map
|