@redocly/openapi-docs 3.9.0-next.2 → 3.9.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/redocly-openapi-docs.min.js +1123 -1026
- package/lib/components/ApiInfo/ApiInfo.d.ts +3 -1
- package/lib/components/ApiInfo/ApiInfo.js +1 -1
- package/lib/components/ContentItem/ContentItem.d.ts +2 -0
- package/lib/components/ContentItem/ContentItem.js +1 -1
- package/lib/components/ContentItems/useScrollOnRender.js +1 -1
- package/lib/components/Download/types.d.ts +1 -0
- package/lib/components/Download/useDownloadInfo.d.ts +1 -1
- package/lib/components/Download/useDownloadInfo.js +1 -1
- package/lib/components/OperationItem/OperationItem.d.ts +3 -0
- package/lib/components/OperationItem/OperationItem.js +2 -2
- package/lib/components/PanelItem/styled.d.ts +1 -1
- package/lib/components/PanelItem/styled.js +1 -1
- package/lib/components/PropertyDetails/PropertyDetails.js +1 -1
- package/lib/components/PropertyDetails/types.d.ts +1 -0
- package/lib/components/Schema/ObjectSchema.js +1 -1
- package/lib/components/Schema/types.d.ts +2 -0
- package/lib/components/SectionContent/SectionContent.d.ts +9 -0
- package/lib/components/SectionContent/SectionContent.js +3 -3
- package/lib/components/SectionContent/index.d.ts +1 -1
- package/lib/components/SectionContent/index.js +1 -1
- package/lib/components/SectionItem/SectionItem.d.ts +2 -0
- package/lib/components/SectionItem/SectionItem.js +1 -1
- package/lib/components/StickySidebar/SidebarActions.js +1 -1
- package/lib/components/common/Fields/fields.js +1 -0
- package/lib/components/common/linkify.js +1 -1
- package/lib/components/pluggable/RedocSchema.d.ts +3 -1
- package/lib/components/pluggable/RedocSchema.js +1 -1
- package/lib/hooks/useOtelTelemetry.d.ts +1 -1
- package/lib/index.d.ts +24 -2
- package/lib/index.js +1 -1
- package/lib/services/code-samples/generator.js +1 -1
- package/lib/types/open-api.d.ts +1 -0
- package/lib-esm/components/ApiInfo/ApiInfo.d.ts +3 -1
- package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
- package/lib-esm/components/ContentItem/ContentItem.d.ts +2 -0
- package/lib-esm/components/ContentItem/ContentItem.js +1 -1
- package/lib-esm/components/ContentItems/useScrollOnRender.js +1 -1
- package/lib-esm/components/Download/types.d.ts +1 -0
- package/lib-esm/components/Download/useDownloadInfo.d.ts +1 -1
- package/lib-esm/components/Download/useDownloadInfo.js +1 -1
- package/lib-esm/components/OperationItem/OperationItem.d.ts +3 -0
- package/lib-esm/components/OperationItem/OperationItem.js +2 -2
- package/lib-esm/components/PanelItem/styled.d.ts +1 -1
- package/lib-esm/components/PanelItem/styled.js +1 -1
- package/lib-esm/components/PropertyDetails/PropertyDetails.js +1 -1
- package/lib-esm/components/PropertyDetails/types.d.ts +1 -0
- package/lib-esm/components/Schema/ObjectSchema.js +1 -1
- package/lib-esm/components/Schema/types.d.ts +2 -0
- package/lib-esm/components/SectionContent/SectionContent.d.ts +9 -0
- package/lib-esm/components/SectionContent/SectionContent.js +2 -2
- package/lib-esm/components/SectionContent/index.d.ts +1 -1
- package/lib-esm/components/SectionContent/index.js +1 -1
- package/lib-esm/components/SectionItem/SectionItem.d.ts +2 -0
- package/lib-esm/components/SectionItem/SectionItem.js +1 -1
- package/lib-esm/components/StickySidebar/SidebarActions.js +1 -1
- package/lib-esm/components/common/Fields/fields.js +1 -0
- package/lib-esm/components/common/linkify.js +1 -1
- package/lib-esm/components/pluggable/RedocSchema.d.ts +3 -1
- package/lib-esm/components/pluggable/RedocSchema.js +1 -1
- package/lib-esm/hooks/useOtelTelemetry.d.ts +1 -1
- package/lib-esm/index.d.ts +24 -2
- package/lib-esm/index.js +1 -1
- package/lib-esm/services/code-samples/generator.js +1 -1
- package/lib-esm/types/open-api.d.ts +1 -0
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(userClaimsAtom),p=useAtomValue(layoutAtom),[d,m]=useState(),{unstable_hooks:c,feedback:u}=n,k=useMemo((()=>getOperation(i,e,a,n,o,void 0,r)),[o,e,n,a,i,r]),{name:S,deprecated:b,isWebhook:x,badges:h}=k||{},j=p===LayoutVariant.STACKED,f=(null==u?void 0:u.type)||"sentiment",g=!0!==(null==u?void 0:u.hide),[_,y]=useState(null),O=useCallback((e=>{d!==e&&m(e)}),[d]),R=useMemo((()=>g?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:u.settings,path:joinWithSeparator(n.routingBasePath,k.href)})}):null),[g,f,u.settings,n.routingBasePath,k.href]);return _jsxs(OperationRow,{layout:p,children:[_jsx(OperationSubRowStyled,{layout:p,children:_jsxs(SamplesMiddlePanel,{isStacked:j,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:_jsx(RequestDetails,{operation:k,translate:l})}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:k})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:(null===(t=k.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:d,onTabChange:O}):null}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:k,activeResponseTab:d,onTabChange:O})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsxs(SamplesMiddlePanel,{isStacked:j,children:[(null===(s=k.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(k.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:k.callbacks,onExpand:y,selectedCallback:_})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})]}),_?_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:_,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:p,children:_jsx(SamplesMiddlePanel,{isStacked:j,fullWidth:!0,children:R})})]})}export const OperationItem=memo(OperationItemComponent);const OperationSamplesPanel=styled(SamplesPanel)`
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink,joinWithSeparator}from"../../services";import{layoutAtom,userClaimsAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";import{useTranslate}from"../../hooks";function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const l=useTranslate(),{parser:i,options:n}=useAtomValue(globalStoreAtom),r=useAtomValue(userClaimsAtom),p=useAtomValue(layoutAtom),[d,m]=useState(),{unstable_hooks:c,feedback:u}=n,k=useMemo((()=>getOperation(i,e,a,n,o,void 0,r)),[o,e,n,a,i,r]),{name:S,deprecated:b,isWebhook:x,badges:h}=k||{},j=p===LayoutVariant.STACKED,f=(null==u?void 0:u.type)||"sentiment",g=!0!==(null==u?void 0:u.hide),[_,y]=useState(null),O=useCallback((e=>{d!==e&&m(e)}),[d]),R=useMemo((()=>g?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:u.settings,path:joinWithSeparator(n.routingBasePath,k.href)})}):null),[g,f,u.settings,n.routingBasePath,k.href]);return _jsxs(OperationRow,{layout:p,children:[_jsx(OperationSubRowStyled,{layout:p,children:_jsxs(SamplesMiddlePanel,{isStacked:j,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==c?void 0:c.BeforeOperation),props:{operation:k}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${S}`}),_jsx(CustomBadges,{badges:h,children:S}),b&&_jsx(StyledBadge,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),x&&_jsx(StyledBadge,{children:l("openapi.badges.webhook","Webhook")})]})]})}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:_jsx(RequestDetails,{operation:k,translate:l})}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:k})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsx(SamplesMiddlePanel,{isStacked:j,children:(null===(t=k.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:k.responses,operationId:k.id,operationPointer:k.pointer,callbackId:k.callbackId,activeResponseTab:d,onTabChange:O}):null}),_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:k,activeResponseTab:d,onTabChange:O})})]}),_jsxs(OperationSubRowStyled,{layout:p,children:[_jsxs(SamplesMiddlePanel,{isStacked:j,children:[(null===(s=k.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(k.id,"callbacks")}),l("openapi.callbacks","Callbacks")]}),_jsx(CallbacksList,{callbacks:k.callbacks,onExpand:y,selectedCallback:_})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==c?void 0:c.AfterOperation),props:{operation:k}})]}),_?_jsx(OperationSamplesPanel,{isStacked:j,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:_,translate:l})}):null]}),_jsx(OperationSubRowStyled,{layout:p,children:_jsx(SamplesMiddlePanel,{isStacked:j,fullWidth:!0,children:R})})]})}export const OperationItem=memo(OperationItemComponent);export const OperationSamplesPanel=styled(SamplesPanel)`
|
|
2
2
|
margin-left: auto;
|
|
3
3
|
--code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
|
|
4
|
-
|
|
4
|
+
`;const FeedbackWrapper=styled.div`
|
|
5
5
|
& > div {
|
|
6
6
|
flex: 1 1 auto;
|
|
7
7
|
display: flex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const PanelItemWrap: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
2
2
|
export declare const Item: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
3
3
|
export declare const Header: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
4
|
-
export declare const Title: import("styled-components").StyledComponent<"
|
|
4
|
+
export declare const Title: import("styled-components").StyledComponent<"p", any, {
|
|
5
5
|
active?: boolean;
|
|
6
6
|
}, never>;
|
|
7
7
|
export declare const ActionsWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -15,7 +15,7 @@ import styled from"styled-components";import{CheckmarkIcon}from"@redocly/theme";
|
|
|
15
15
|
color: var(--menu-content-title-color);
|
|
16
16
|
font-size: var(--h6-font-size);
|
|
17
17
|
line-height: var(--line-height-xsm);
|
|
18
|
-
`;export const Title=styled.
|
|
18
|
+
`;export const Title=styled.p`
|
|
19
19
|
margin: 0;
|
|
20
20
|
color: var(--text-color-secondary);
|
|
21
21
|
font-size: var(--font-size-base);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Schema}from"../Schema";import{FieldDetails}from"./FieldDetails";import{generateDeepLink}from"../common/LinkToField";import{activeMimeNameAtom}from"../../jotai/app";function PropertyDetailsComponent({field:e,skipWriteOnly:i,skipReadOnly:r,level:
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Schema}from"../Schema";import{FieldDetails}from"./FieldDetails";import{generateDeepLink}from"../common/LinkToField";import{activeMimeNameAtom}from"../../jotai/app";function PropertyDetailsComponent({field:e,skipWriteOnly:i,skipReadOnly:r,level:s=1,showTitle:t,renderDiscriminatorSwitch:a,isFirst:o,fieldParentsName:n,disableDeepLinks:m,oneOfLevel:p,slug:l}){const d=useAtomValue(activeMimeNameAtom),c=m?void 0:generateDeepLink(e,d),h=l&&c?`${l}&${c.replace("#","")}`:c,y=!e.schema.isPrimitive&&!e.schema.isCircular;return _jsxs(Wrapper,{isFist:o,expanded:y,className:"property",children:[_jsx(FieldDetails,{field:e,renderDiscriminatorSwitch:a,deepLink:h,fieldParentsName:n}),y&&_jsx(Schema,{schema:e.schema,skipReadOnly:r,skipWriteOnly:i,showTitle:t,expandable:!0,level:s+1,fieldParentsName:[...n||[],e.name],deepLink:h,required:e.required,disableDeepLinks:m,oneOfLevel:p,slug:l})]})}export const PropertyDetails=memo(PropertyDetailsComponent);const Wrapper=styled.div`
|
|
2
2
|
width: 100%;
|
|
3
3
|
padding: ${({isFist:e})=>`var(--schema-${e?"fist-":""}property-details-spacing)`} 0
|
|
4
4
|
${({expanded:e})=>e?0:"var(--schema-property-details-spacing)"};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{PropertiesTableCaption}from"../common";import{Discriminator}from"../Discriminator";import{globalOptionsAtom}from"../../jotai/store";import{PropertyDetails}from"../PropertyDetails";import{SubSchema}from"./SubSchema";import{getExpandByDefault}from"./helpers";import{useTranslate}from"../../hooks";import{ArrayClosingLabel,LabelValue}from"../common/styled";function ObjectSchemaComponent({schema:e,showTitle:a,discriminator:r,level:i,skipWriteOnly:o,skipReadOnly:t,fieldParentsName:n,expandable:l,deepLink:s,required:m,disableDeepLinks:p,shouldCloseArray:c,oneOfLevel:d}){const{fields:
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{PropertiesTableCaption}from"../common";import{Discriminator}from"../Discriminator";import{globalOptionsAtom}from"../../jotai/store";import{PropertyDetails}from"../PropertyDetails";import{SubSchema}from"./SubSchema";import{getExpandByDefault}from"./helpers";import{useTranslate}from"../../hooks";import{ArrayClosingLabel,LabelValue}from"../common/styled";function ObjectSchemaComponent({schema:e,showTitle:a,discriminator:r,level:i,skipWriteOnly:o,skipReadOnly:t,fieldParentsName:n,expandable:l,deepLink:s,required:m,disableDeepLinks:p,shouldCloseArray:c,oneOfLevel:d,slug:h}){const{fields:u=[],title:f}=e,x=useTranslate(),{schemasExpansionLevel:b}=useAtomValue(globalOptionsAtom),y=t||o?u.filter((e=>!(t&&e.schema.readOnly||o&&e.schema.writeOnly))):u,j=getExpandByDefault({required:m,level:i,schemasExpansionLevel:b});return _jsxs(SubSchema,{expandable:l,expandByDefault:j,level:i,propertyLength:y.length,deepLink:s,operationPointer:e.operationPointer,children:[_jsxs(_Fragment,{children:[a&&_jsx(PropertiesTableCaption,{children:f}),y.map(((e,l)=>_jsx(PropertyDetails,{isFirst:0===l,field:e,fieldParentsName:Number(i)>1?n:[],renderDiscriminatorSwitch:(null==r?void 0:r.fieldName)===e.name&&(null==r?void 0:r.parentSchema)?()=>_jsx(Discriminator,{parent:r.parentSchema,onChange:null==r?void 0:r.onChange,activeOneOfIdx:r.activeOneOfIdx,translate:x}):void 0,skipReadOnly:t,skipWriteOnly:o,showTitle:a,level:i,disableDeepLinks:p,oneOfLevel:d,slug:h},e.name)))]}),c&&_jsx(ArrayClosingLabel,{className:"array-closing-label",children:_jsx(LabelValue,{children:"]"})})]})}export const ObjectSchema=memo(ObjectSchemaComponent);
|
|
2
2
|
//# sourceMappingURL=ObjectSchema.js.map
|
|
@@ -16,6 +16,7 @@ export interface SchemaProps extends SchemaOptions {
|
|
|
16
16
|
fieldParentsName?: string[];
|
|
17
17
|
expandable?: boolean;
|
|
18
18
|
deepLink?: string;
|
|
19
|
+
slug?: string;
|
|
19
20
|
required?: boolean;
|
|
20
21
|
disableDeepLinks?: boolean;
|
|
21
22
|
oneOfLevel?: number;
|
|
@@ -31,6 +32,7 @@ export interface ObjectSchemaProps extends Omit<SchemaProps, 'onDiscriminatorCha
|
|
|
31
32
|
fieldParentsName?: string[];
|
|
32
33
|
expandable?: boolean;
|
|
33
34
|
required?: boolean;
|
|
35
|
+
slug?: string;
|
|
34
36
|
oneOfLevel?: number;
|
|
35
37
|
shouldCloseArray?: boolean;
|
|
36
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LayoutVariant } from '@redocly/theme';
|
|
1
2
|
import type { ReactElement } from 'react';
|
|
2
3
|
import type { ContentItemModel } from '../../models';
|
|
3
4
|
interface SectionContentProps {
|
|
@@ -5,4 +6,12 @@ interface SectionContentProps {
|
|
|
5
6
|
hideFooterAndHeader?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function SectionContent({ items, hideFooterAndHeader, }: SectionContentProps): ReactElement | null;
|
|
9
|
+
export declare const SectionContainer: import("styled-components").StyledComponent<"div", any, {
|
|
10
|
+
layout?: LayoutVariant;
|
|
11
|
+
}, never>;
|
|
12
|
+
export declare const RightPanelContainer: import("styled-components").StyledComponent<"div", any, {
|
|
13
|
+
isStacked: boolean;
|
|
14
|
+
} & {
|
|
15
|
+
isStacked: boolean;
|
|
16
|
+
}, never>;
|
|
8
17
|
export {};
|
|
@@ -2,13 +2,13 @@ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";i
|
|
|
2
2
|
align-self: flex-start;
|
|
3
3
|
padding-top: var(--panel-gap-vertical);
|
|
4
4
|
padding-bottom: var(--panel-gap-vertical);
|
|
5
|
-
|
|
5
|
+
`;export const SectionContainer=styled.div`
|
|
6
6
|
width: 100%;
|
|
7
7
|
|
|
8
8
|
@media screen and (min-width: ${breakpoints.large}) {
|
|
9
9
|
width: ${({layout:e})=>e===LayoutVariant.STACKED?"100%":"calc(100% - var(--panel-samples-width))"};
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
`;export const RightPanelContainer=styled(SamplesPanel)`
|
|
12
12
|
margin: var(--spacing-base) 0;
|
|
13
13
|
`;
|
|
14
14
|
//# sourceMappingURL=SectionContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SectionContent } from './SectionContent';
|
|
1
|
+
export { SectionContent, SectionContainer, RightPanelContainer } from './SectionContent';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{SectionContent}from"./SectionContent";
|
|
1
|
+
export{SectionContent,SectionContainer,RightPanelContainer}from"./SectionContent";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { LayoutVariant } from '@redocly/theme';
|
|
1
2
|
import type { GroupModel } from '../../models';
|
|
2
3
|
export interface SectionItemProps {
|
|
3
4
|
item: GroupModel;
|
|
5
|
+
layout: LayoutVariant;
|
|
4
6
|
}
|
|
5
7
|
export declare const SectionItem: import("react").NamedExoticComponent<SectionItemProps>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{LayoutVariant}from"@redocly/theme";import{SamplesMiddlePanel,Row}from"../common";import{Markdown}from"../Markdown";import{ExternalDocumentation}from"../ExternalDocumentation";function SectionItemComponent({item:t,layout:e}){const{externalDocs:o,ast:n,description:a}=t,r=e===LayoutVariant.STACKED,m=!t.parent||"tag"!==t.parent.type;return _jsxs(_Fragment,{children:[_jsx(Markdown,{ast:n,source:a,htmlWrap:t=>_jsx(SamplesMiddlePanel,{compact:!0,fullWidth:m,isStacked:r,children:t})}),o&&_jsx(Row,{children:_jsx(SamplesMiddlePanel,{compact:!0,fullWidth:m,isStacked:r,children:_jsx(ExternalDocumentation,{externalDocs:o})})})]})}export const SectionItem=memo(SectionItemComponent);
|
|
2
2
|
//# sourceMappingURL=SectionItem.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useAtom}from"jotai";import{LayoutVariant,SidebarActions as ThemeSidebarActions}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarAtom,layoutAtom}from"../../jotai/app";export const SidebarActions=()=>{const[a,o]=useAtom(layoutAtom),[t,e]=useAtom(collapsedSidebarAtom);return _jsx(_Fragment,{children:_jsx(Wrapper,{children:_jsx(ThemeSidebarActions,{layout:a,onChangeViewClick:()=>o(a===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:t,onChangeCollapseSidebarClick:()=>e(!t),
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useAtom}from"jotai";import{LayoutVariant,SidebarActions as ThemeSidebarActions}from"@redocly/theme";import styled from"styled-components";import{collapsedSidebarAtom,layoutAtom}from"../../jotai/app";export const SidebarActions=()=>{const[a,o]=useAtom(layoutAtom),[t,e]=useAtom(collapsedSidebarAtom);return _jsx(_Fragment,{children:_jsx(Wrapper,{children:_jsx(ThemeSidebarActions,{layout:a,onChangeViewClick:()=>o(a===LayoutVariant.STACKED?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED),collapsedSidebar:t,onChangeCollapseSidebarClick:()=>e(!t),isApiDocs:!0})})})};const Wrapper=styled.div`
|
|
2
2
|
position: sticky;
|
|
3
3
|
top: calc(100vh);
|
|
4
4
|
padding: var(--spacing-sm) var(--spacing-md);
|
|
@@ -41,6 +41,7 @@ import styled from"styled-components";import{Button}from"@redocly/theme";export
|
|
|
41
41
|
border-radius: var(--border-radius);
|
|
42
42
|
border: var(--schema-inline-border);
|
|
43
43
|
padding: 0 var(--spacing-unit);
|
|
44
|
+
width: fit-content;
|
|
44
45
|
`;export const RecursiveLabel=styled(Tag)`
|
|
45
46
|
background-color: var(--schema-recursive-bg-color);
|
|
46
47
|
border-color: var(--schema-recursive-border-color);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{useAtomValue}from"jotai";import{Link as LinkRouter}from"react-router-dom";import{LinkIcon}from"@redocly/theme";import{globalOptionsAtom}from"../../jotai/store";import{tryDecodeURIComponent}from"../../utils";export function Link(i){var o;const{routingBasePath:t,unstable_hooks:e,onDeepLinkClick:n}=useAtomValue(globalOptionsAtom),r=i.security?null===(o=null==e?void 0:e.replaceSecurityLink)||void 0===o?void 0:o.call(e,{securityRequirementId:i.to}):i.to,a=n&&{onClick:i=>{i.preventDefault(),n(t+r)}};return r?_jsx(LinkRouter,Object.assign({"aria-label":i["aria-label"]||`link to ${r}`,id:tryDecodeURIComponent(i.id||""),className:i.className||"",to:(null==r?void 0:r.startsWith("#"))?r:t+r},a,{children:i.children})):i.children?_jsxs("span",{"aria-label":i["aria-label"]||`link to ${r}`,className:i.className,children:[" ",i.children," "]}):null}export const StyledShareLink=styled(Link)`
|
|
1
|
+
import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{useAtomValue}from"jotai";import{Link as LinkRouter}from"react-router-dom";import{LinkIcon}from"@redocly/theme";import{globalOptionsAtom}from"../../jotai/store";import{tryDecodeURIComponent}from"../../utils";export function Link(i){var o;const{routingBasePath:t,unstable_hooks:e,onDeepLinkClick:n}=useAtomValue(globalOptionsAtom),r=i.security?null===(o=null==e?void 0:e.replaceSecurityLink)||void 0===o?void 0:o.call(e,{securityRequirementId:i.to}):i.to,a=n&&{onClick:i=>{i.preventDefault(),n((t||"")+r)}};return r?_jsx(LinkRouter,Object.assign({"aria-label":i["aria-label"]||`link to ${r}`,id:tryDecodeURIComponent(i.id||""),className:i.className||"",to:(null==r?void 0:r.startsWith("#"))?r:(t||"")+r},a,{children:i.children})):i.children?_jsxs("span",{"aria-label":i["aria-label"]||`link to ${r}`,className:i.className,children:[" ",i.children," "]}):null}export const StyledShareLink=styled(Link)`
|
|
2
2
|
position: absolute;
|
|
3
3
|
top: 50%;
|
|
4
4
|
left: 0;
|
|
@@ -3,6 +3,8 @@ import type { OpenAPISchema } from '../../types';
|
|
|
3
3
|
interface RedocSchemaProps {
|
|
4
4
|
pointer?: string;
|
|
5
5
|
schema?: OpenAPISchema;
|
|
6
|
+
disableDeepLinks?: boolean;
|
|
7
|
+
slug?: string;
|
|
6
8
|
}
|
|
7
|
-
export declare const RedocSchema: ({ pointer, schema }: RedocSchemaProps) => ReactElement;
|
|
9
|
+
export declare const RedocSchema: ({ pointer, schema, disableDeepLinks, slug, }: RedocSchemaProps) => ReactElement;
|
|
8
10
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreAtom}from"../../jotai/store";export const RedocSchema=({pointer:e,schema:o})=>{const{options:
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{getSchema}from"../../models";import{Row}from"../common";import{FullWidthPanel}from"./styled.components";import{Schema}from"../Schema";import{globalStoreAtom}from"../../jotai/store";export const RedocSchema=({pointer:e,schema:o,disableDeepLinks:r,slug:t})=>{const{options:m,parser:s}=useAtomValue(globalStoreAtom),a=getSchema({parser:s,schemaOrRef:o||{$ref:e},pointer:e||"",options:m,deps:{operation:{pointer:"RedocSchema"}}});return _jsx(Row,{children:_jsx(FullWidthPanel,{children:_jsx(Schema,{schema:a,level:1,disableDeepLinks:r,slug:t})})})};
|
|
2
2
|
//# sourceMappingURL=RedocSchema.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare function useOtelTelemetry(): {
|
|
2
|
-
send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened", data: unknown): void;
|
|
2
|
+
send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened" | "asyncapi_docs.performance_metrics" | "asyncapi_docs.viewed" | "asyncapi_docs.switch_message.clicked" | "asyncapi_docs.switch_example.clicked" | "asyncapi_docs.message.clicked", data: unknown): void;
|
|
3
3
|
};
|
package/lib-esm/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export type { Options } from './services/config-options/types';
|
|
2
2
|
export type { IMenuItem } from './services/types';
|
|
3
|
-
export type { OperationModel, SchemaModel, ContentItemModel } from './models/types';
|
|
3
|
+
export type { OperationModel, SchemaModel, ContentItemModel, GroupModel, FieldModel, } from './models/types';
|
|
4
4
|
export type { CodeSampleOptions } from './models/code-sample-options';
|
|
5
5
|
export type { SecurityDetails, OpenAPIDefinition, OpenAPIOperation, OpenAPIParameterLocation, OpenAPISchema, } from './types';
|
|
6
|
+
export type { ServerListProps } from './components/ServerList/types';
|
|
7
|
+
export type { DownloadUrlsConfig, DownloadIconType, UseDownloadInfoProps, UseDownloadInfoReturnType, } from './components/Download/types';
|
|
6
8
|
export { simplifyAstStructure } from './utils/simplifyAstStructure';
|
|
7
9
|
export { getOperation } from './models/operation';
|
|
8
10
|
export { getServerEnvName } from './utils/environments';
|
|
@@ -14,8 +16,28 @@ export { RedocSchema, RedocExample } from './components/pluggable';
|
|
|
14
16
|
export { RedoclyOpenAPIDocs, RedoclyOpenAPIDocsStandalone, AppProvider, StoreProvider, getMarkdownHeaderId, } from './components/RedoclyOpenAPIDocs';
|
|
15
17
|
export { JsonPointer } from './utils/JsonPointer';
|
|
16
18
|
export { isOperationName } from './utils/openapi';
|
|
19
|
+
export { pathIncludesLink } from './utils/path';
|
|
17
20
|
export { OpenAPIParser } from './services';
|
|
18
|
-
export { buildContentItems, normalizeOptions } from './services';
|
|
21
|
+
export { buildContentItems, normalizeOptions, makeDeepLink } from './services';
|
|
19
22
|
export declare function useOpenapiDocsOptions(): import("./services").Options;
|
|
20
23
|
export { EmbeddedReplay } from './components/Replay/EmbeddedReplay';
|
|
21
24
|
export { convertOperationToReplayValue } from './components/Replay/utils';
|
|
25
|
+
export { SectionContainer } from './components/SectionContent';
|
|
26
|
+
export { Row } from './components/common';
|
|
27
|
+
export { RightPanelContainer } from './components/SectionContent';
|
|
28
|
+
export { Overview } from './components/Overview';
|
|
29
|
+
export { SamplesMiddlePanel, Section, SamplesPanel } from './components/common';
|
|
30
|
+
export { Heading } from './components/common/OperationItemTitle';
|
|
31
|
+
export { Dropdown } from './components/common/Dropdown';
|
|
32
|
+
export { Markdown } from './components/Markdown';
|
|
33
|
+
export { FieldValueLabel, FieldLabel } from './components/common';
|
|
34
|
+
export { CodeBlockPanel } from './components/common';
|
|
35
|
+
export { OperationSamplesPanel } from './components/OperationItem/OperationItem';
|
|
36
|
+
export { ExternalDocumentation } from './components/ExternalDocumentation';
|
|
37
|
+
export { PropertyDetails } from './components/PropertyDetails';
|
|
38
|
+
export { addMarkdownItems } from './services/menu/markdown';
|
|
39
|
+
export { getValueFromMdParsedExtension } from './utils/helpers';
|
|
40
|
+
export { ContentItem } from './components/ContentItem';
|
|
41
|
+
export { ExampleSwitch } from './components/Samples/ExampleSwitch';
|
|
42
|
+
export { useDownloadInfo } from './components/Download/useDownloadInfo';
|
|
43
|
+
export { SECTION_ATTR } from './constants';
|
package/lib-esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{simplifyAstStructure}from"./utils/simplifyAstStructure";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";export{generateDeepLink}from"./components/common";export{RequestSamples}from"./components/RequestSamples";export{ResponseSamples}from"./components/ResponseSamples";export{RedocSchema,RedocExample}from"./components/pluggable";export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone,AppProvider,StoreProvider,getMarkdownHeaderId}from"./components/RedoclyOpenAPIDocs";export{JsonPointer}from"./utils/JsonPointer";export{isOperationName}from"./utils/openapi";export{OpenAPIParser}from"./services";export{buildContentItems,normalizeOptions}from"./services";export function useOpenapiDocsOptions(){return useAtomValue(globalOptionsAtom)}export{EmbeddedReplay}from"./components/Replay/EmbeddedReplay";export{convertOperationToReplayValue}from"./components/Replay/utils";
|
|
1
|
+
import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{simplifyAstStructure}from"./utils/simplifyAstStructure";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";export{generateDeepLink}from"./components/common";export{RequestSamples}from"./components/RequestSamples";export{ResponseSamples}from"./components/ResponseSamples";export{RedocSchema,RedocExample}from"./components/pluggable";export{RedoclyOpenAPIDocs,RedoclyOpenAPIDocsStandalone,AppProvider,StoreProvider,getMarkdownHeaderId}from"./components/RedoclyOpenAPIDocs";export{JsonPointer}from"./utils/JsonPointer";export{isOperationName}from"./utils/openapi";export{pathIncludesLink}from"./utils/path";export{OpenAPIParser}from"./services";export{buildContentItems,normalizeOptions,makeDeepLink}from"./services";export function useOpenapiDocsOptions(){return useAtomValue(globalOptionsAtom)}export{EmbeddedReplay}from"./components/Replay/EmbeddedReplay";export{convertOperationToReplayValue}from"./components/Replay/utils";export{SectionContainer}from"./components/SectionContent";export{Row}from"./components/common";export{RightPanelContainer}from"./components/SectionContent";export{Overview}from"./components/Overview";export{SamplesMiddlePanel,Section,SamplesPanel}from"./components/common";export{Heading}from"./components/common/OperationItemTitle";export{Dropdown}from"./components/common/Dropdown";export{Markdown}from"./components/Markdown";export{FieldValueLabel,FieldLabel}from"./components/common";export{CodeBlockPanel}from"./components/common";export{OperationSamplesPanel}from"./components/OperationItem/OperationItem";export{ExternalDocumentation}from"./components/ExternalDocumentation";export{PropertyDetails}from"./components/PropertyDetails";export{addMarkdownItems}from"./services/menu/markdown";export{getValueFromMdParsedExtension}from"./utils/helpers";export{ContentItem}from"./components/ContentItem";export{ExampleSwitch}from"./components/Samples/ExampleSwitch";export{useDownloadInfo}from"./components/Download/useDownloadInfo";export{SECTION_ATTR}from"./constants";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={},activeMimeName:l=""},{environment:c,requestValues:u,activeSecuritySchemeIds:p}){var d,m,y;const h=c.server,f=e.servers.find((e=>e.url===h))||e.servers[0],g=getSelectedSecurityScheme(e.security,p),{securityHeaders:O,securityCookies:v,securityQueries:S,securityOAuth2ExtraCalls:T,basicAuth:_}=getSecurityData(g||(null===(d=e.security)||void 0===d?void 0:d[0]),r,c),C=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,l),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},k=u;let j=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=k.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(O);!j&&(null==C?void 0:C.name)&&E.unshift({name:"Content-Type",value:null==C?void 0:C.name});const A=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=k.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=k.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=k.query)||void 0===r?void 0:r[i]))||String((null===(s=k.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(S),w=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,x=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=k.path)||void 0===a?void 0:a[s])||t.example||n[s]||getParameterValue(r,s),e}),{}),M=null===(y=null==C?void 0:C.examples)||void 0===y?void 0:y[t],R=(null==C?void 0:C.examples)||{},[D]=Object.values(R),q=null==C?void 0:C.name.toLowerCase(),N=(null==k?void 0:k.body)||(null==M?void 0:M.value)||(null==D?void 0:D.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:q===MediaTypes.XML?"xml":"json"}),s);let H="",U=[];switch(normalizeMimeType(q)){case MediaTypes.JSON:H=JSON.stringify(getDataRequest(N,o));break;case MediaTypes.XML:H=N;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:H=queryString.stringify(getDataRequest(N,o)),U=objectToHarParams(getDataRequest(N,o));break;default:H=String(N||"")}const $=H?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:H,params:U}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:A,headers:E,queryString:P,postData:$,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:T,basicAuth:_,pathParameters:x,serverVariables:c,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=i,y=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(y);return langToSnippetConfig[e]?h.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):o("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),o("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),u={access_token:c["x-defaultAccessToken"],token_type:c["x-defaultTokenType"],client_id:c["x-defaultClientId"],client_secret:c["x-defaultClientSecret"]},p=c["x-defaultUsername"],d=c["x-defaultPassword"];switch(c.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${u.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))):c.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=u.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:c.name,value:t})),"cookie"===c.in&&l.securityCookies.push({name:c.name,value:t}),"query"===c.in&&l.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)l.basicAuth={username:p||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:d||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==u?void 0:u.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];if(Array.isArray(e))return e.map((e=>({name:`${t}`,value:String(e)})));for(const[r,s]of Object.entries(e)){const e=t?`${t}[${r}]`:r;"object"==typeof s&&null!==s?a.push(...objectToHarParams(s,e)):a.push({name:e,value:String(s)})}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
1
|
+
import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{isObject}from"@redocly/theme";import{areArraysEqual,serializeParameterValue,getSecurityDetails,getParameterValue,queryString,isArrayOfObjects,deleteEmptyArrayItem}from"../../utils";import{normalizeMimeType,arrayMergeStrategy}from"../utils";import{MediaTypes}from"../../constants";import{HTTPSnippet}from"./httpsnippet";import{getActiveMediaType}from"../../models/mediaContent";import StringUtility from"./httpsnippet/helpers/string-utility";function getSelectedSecurityScheme(e,t){return e.find((e=>{const a=e.schemes.map((e=>e.id));return areArraysEqual(a,t||[])}))}function mapOperationToHAR(e,{exampleName:t="",skipOptionalParameters:a=!1,withOAuth2Call:r=!1,spec:s,generatedPayloadSamplesMaxDepth:i=8,pathParams:n={},properties:o={},activeMimeName:l=""},{environment:c,requestValues:u,activeSecuritySchemeIds:p}){var d,m,y;const h=c.server,f=e.servers.find((e=>e.url===h))||e.servers[0],g=getSelectedSecurityScheme(e.security,p),{securityHeaders:O,securityCookies:v,securityQueries:S,securityOAuth2ExtraCalls:T,basicAuth:_}=getSecurityData(g||(null===(d=e.security)||void 0===d?void 0:d[0]),r,c),C=(null===(m=null==e?void 0:e.requestBody)||void 0===m?void 0:m.content)&&getActiveMediaType(e.requestBody.content,l),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},k=u;let j=!1;const E=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=k.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||e.example||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(j=!0,e.value=C.name),e))).concat(O);!j&&(null==C?void 0:C.name)&&E.unshift({name:"Content-Type",value:null==C?void 0:C.name});const A=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a;for(const[r,s]of Object.entries(t))e.push({name:r,value:String((null===(a=k.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),P=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,e.example||Sampler.sample(e.schema.rawSchema,b,s))))).reduce(((e,t)=>{var a,r,s;for(const[i,n]of Object.entries(t))e.push({name:i,value:isArrayOfObjects(null===(a=k.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=k.query)||void 0===r?void 0:r[i]))||String((null===(s=k.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(S),w=`${null==f?void 0:f.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,x=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=k.path)||void 0===a?void 0:a[s])||t.example||n[s]||getParameterValue(r,s),e}),{}),M=null===(y=null==C?void 0:C.examples)||void 0===y?void 0:y[t],R=(null==C?void 0:C.examples)||{},[D]=Object.values(R),q=null==C?void 0:C.name.toLowerCase(),N=(null==k?void 0:k.body)||(null==M?void 0:M.value)||(null==D?void 0:D.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,Object.assign(Object.assign({},b),{format:q===MediaTypes.XML?"xml":"json"}),s);let H="",U=[];switch(normalizeMimeType(q)){case MediaTypes.JSON:H=JSON.stringify(getDataRequest(N,o));break;case MediaTypes.XML:H=N;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:H=queryString.stringify(getDataRequest(N,o)),U=objectToHarParams(getDataRequest(N,o));break;default:H=String(N||"")}const $=H?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:H,params:U}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:w,httpVersion:"HTTP/1.1",cookies:A,headers:E,queryString:P,postData:$,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:T,basicAuth:_,pathParameters:x,serverVariables:c,allResponseCodes:z}}const defaultOptions={withImports:!0,withComments:!1},langToSnippetConfig={curl:{code:"shell",defaultTarget:"curl",defaultOptions:Object.assign(Object.assign({},defaultOptions),{short:!0})},JavaScript:{code:"javascript",defaultTarget:"fetch",defaultOptions:Object.assign(Object.assign({},defaultOptions),{withImports:!1})},"Node.js":{code:"node",defaultTarget:"fetch",defaultOptions:Object.assign({},defaultOptions)},Python:{code:"python",defaultTarget:"requests",defaultOptions:Object.assign({},defaultOptions)},"Java8+Apache":{code:"java8",defaultTarget:"apachehttp",defaultOptions:Object.assign({},defaultOptions)},Java:{code:"java",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#":{code:"csharp",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},"C#+Newtonsoft":{code:"csharpNewtonsoft",defaultTarget:"httpclient",defaultOptions:Object.assign({},defaultOptions)},Go:{code:"go",defaultTarget:"http.DefaultClient",defaultOptions:Object.assign({},defaultOptions)},PHP:{code:"php",defaultTarget:"curl",defaultOptions:Object.assign({},defaultOptions)},Ruby:{code:"ruby",defaultTarget:"net::http",defaultOptions:Object.assign({},defaultOptions)},R:{code:"r",defaultTarget:"httr",defaultOptions:Object.assign({},defaultOptions)}};export function getCodeSample({lang:e,operation:t,exampleName:a,pathParams:r,properties:s,options:i={},environment:n,translate:o}){try{const{skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,store:d,activeMimeName:m}=i,y=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:c,spec:u,generatedPayloadSamplesMaxDepth:p,activeMimeName:m},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(y);return langToSnippetConfig[e]?h.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):o("openapi.unsupportedLanguage","Language is not supported.")}catch(e){return console.error(e),o("openapi.failedToGenerateCodeSample","Failed to generate code sample.")}}function getSecurityData(e,t,a){var r,s,i,n,o;const l={securityHeaders:[],securityCookies:[],securityQueries:[],securityOAuth2ExtraCalls:[],basicAuth:void 0};for(const c of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(c.id,a),u={access_token:c["x-defaultAccessToken"],token_type:c["x-defaultTokenType"],client_id:c["x-defaultClientId"],client_secret:c["x-defaultClientSecret"]},p=c["x-defaultUsername"],d=c["x-defaultPassword"];switch(c.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${u.token_type||e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=u.access_token?`${u.token_type||"Bearer"} ${u.access_token}`:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";c.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(c.flows.clientCredentials,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))):c.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(c.flows.password,c.scopes,Object.assign(Object.assign({},e),{client_id:u.client_id||e.client_id,client_secret:u.client_secret||e.client_secret}))),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=u.access_token||e.raw||"YOUR_API_KEY_HERE";"header"===c.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:c.name,value:t})),"cookie"===c.in&&l.securityCookies.push({name:c.name,value:t}),"query"===c.in&&l.securityQueries.push({name:c.name,value:t});break}case"http":if("basic"===c.scheme)l.basicAuth={username:p||e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:d||e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null==u?void 0:u.access_token)||(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${c.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(c.scheme||"bearer")} ${t}`})}}}return l}function getOAuth2PasswordCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"password"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},{name:"username",value:a.username||"<username>"},{name:"password",value:a.password||"<password>"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}function getOAuth2ClientCredsCallHar(e,t,a){return{method:"POST",url:e.tokenUrl,httpVersion:"HTTP/1.1",headers:[{name:"Content-Type",value:MediaTypes.URL_ENCODED},{name:"Accept",value:MediaTypes.JSON}],queryString:[],postData:{mimeType:MediaTypes.URL_ENCODED,text:"",params:[{name:"grant_type",value:"client_credentials"},{name:"client_id",value:a.client_id||"YOUR_CLIENT_ID"},{name:"client_secret",value:a.client_secret||"YOUR_CLIENT_SECRET"},t.length?{name:"scope",value:t.join(" ")}:void 0].filter(isDefined)},cookies:[],headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:[]}}export function getDataRequest(e,t){if(e){if(isObject(e))return Object.keys(e).length>0&&0===Object.keys(t).length?e:merge(e,t,{arrayMerge:arrayMergeStrategy});try{return merge(JSON.parse(e),t,{arrayMerge:arrayMergeStrategy})}catch(e){return!1}}return!1}function objectToHarParams(e,t=""){const a=[];for(const[r,s]of Object.entries(e)){const i=t?`${t}[${r}]`:r;if("object"==typeof s&&null!==s)a.push(...objectToHarParams(s,i));else{const r=Array.isArray(e)&&"string"==typeof s&&t?t:i;a.push({name:r,value:String(s)})}}return a}export function isDefined(e){return void 0!==e}export function capitalizeFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}
|
|
2
2
|
//# sourceMappingURL=generator.js.map
|
|
@@ -24,6 +24,7 @@ export interface OpenAPIInfo extends ParsedDescriptionWithSummary {
|
|
|
24
24
|
termsOfService?: string;
|
|
25
25
|
contact?: OpenAPIContact;
|
|
26
26
|
license?: OpenAPILicense;
|
|
27
|
+
externalDocs?: OpenAPIExternalDocumentation;
|
|
27
28
|
'x-logo'?: XLogo;
|
|
28
29
|
'x-metadata'?: XMetadata;
|
|
29
30
|
'x-seo'?: XSEO;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/openapi-docs",
|
|
3
|
-
"version": "3.9.0-next.
|
|
3
|
+
"version": "3.9.0-next.4",
|
|
4
4
|
"description": "Redocly OpenAPI Docs",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-esm/index.js",
|
|
@@ -39,12 +39,14 @@
|
|
|
39
39
|
"styled-components": "^4.1.1 || ^5.3.11",
|
|
40
40
|
"swagger2openapi": "^7.0.8",
|
|
41
41
|
"tslib": "^2.2.0",
|
|
42
|
+
"unfetch": "4.2.0",
|
|
42
43
|
"url": "~0.11.0",
|
|
44
|
+
"url-polyfill": "1.1.12",
|
|
43
45
|
"url-template": "^2.0.8",
|
|
44
46
|
"util": "~0.12.5",
|
|
45
47
|
"web-vitals": "3.3.1",
|
|
46
|
-
"@redocly/
|
|
47
|
-
"@redocly/
|
|
48
|
+
"@redocly/config": "0.24.1",
|
|
49
|
+
"@redocly/replay": "0.12.0-next.4"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@shikijs/transformers": "1.24.0",
|
|
@@ -87,12 +89,10 @@
|
|
|
87
89
|
"ts-jest": "29.1.2",
|
|
88
90
|
"ts-node": "10.9.2",
|
|
89
91
|
"typescript": "5.6.2",
|
|
90
|
-
"unfetch": "4.2.0",
|
|
91
|
-
"url-polyfill": "1.1.12",
|
|
92
92
|
"webpack": "5.94.0",
|
|
93
93
|
"webpack-cli": "5.1.4",
|
|
94
94
|
"webpack-dev-server": "5.1.0",
|
|
95
|
-
"@redocly/theme": "0.53.0-next.
|
|
95
|
+
"@redocly/theme": "0.53.0-next.4"
|
|
96
96
|
},
|
|
97
97
|
"scripts": {
|
|
98
98
|
"start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",
|