@redocly/openapi-docs 3.3.19 → 3.3.21

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.
Files changed (140) hide show
  1. package/dist/redocly-openapi-docs.min.js +1174 -937
  2. package/lib/components/ApiInfo/ApiInfo.js +1 -1
  3. package/lib/components/ApiInfo/Metadata.d.ts +3 -1
  4. package/lib/components/ApiInfo/Metadata.js +1 -1
  5. package/lib/components/CallbackSamples/CallbackSamples.d.ts +2 -0
  6. package/lib/components/CallbackSamples/CallbackSamples.js +1 -1
  7. package/lib/components/Callbacks/CallbackDetails.d.ts +2 -0
  8. package/lib/components/Callbacks/CallbackDetails.js +1 -1
  9. package/lib/components/Callbacks/CallbackOperation.js +1 -1
  10. package/lib/components/Callbacks/CallbackSummary.d.ts +3 -2
  11. package/lib/components/Callbacks/CallbackSummary.js +1 -1
  12. package/lib/components/Discriminator/Discriminator.d.ts +2 -0
  13. package/lib/components/Discriminator/Discriminator.js +1 -1
  14. package/lib/components/ExpandAllButton/ExpandAllButton.js +1 -1
  15. package/lib/components/MediaTypeSwitch/MediaTypesSwitch.js +1 -1
  16. package/lib/components/OperationItem/OperationItem.js +2 -2
  17. package/lib/components/Overview/Overview.d.ts +8 -3
  18. package/lib/components/Overview/Overview.js +1 -1
  19. package/lib/components/PayloadSamples/Example.js +1 -1
  20. package/lib/components/PayloadSamples/MediaTypeSamples.js +1 -1
  21. package/lib/components/PayloadSamples/PayloadSamples.js +1 -1
  22. package/lib/components/PropertyDetails/DescriptionEnums.d.ts +1 -1
  23. package/lib/components/PropertyDetails/DescriptionEnums.js +1 -1
  24. package/lib/components/PropertyDetails/EnumValues.js +1 -1
  25. package/lib/components/PropertyDetails/Examples.js +1 -1
  26. package/lib/components/PropertyDetails/FieldDetail.d.ts +1 -0
  27. package/lib/components/PropertyDetails/FieldDetail.js +1 -1
  28. package/lib/components/PropertyDetails/FieldDetails.js +1 -1
  29. package/lib/components/PropertyDetails/Pattern.js +1 -1
  30. package/lib/components/PropertyDetails/SimpleEnums.d.ts +1 -1
  31. package/lib/components/PropertyDetails/SimpleEnums.js +1 -1
  32. package/lib/components/PropertyDetails/types.d.ts +3 -0
  33. package/lib/components/Replay/EmbeddedReplay.js +1 -1
  34. package/lib/components/Replay/Replay.js +1 -1
  35. package/lib/components/Request/RequestDetails.js +1 -1
  36. package/lib/components/Request/types.d.ts +2 -0
  37. package/lib/components/RequestParameters/RequestParameters.js +1 -1
  38. package/lib/components/RequestSamples/useCodeSamples.js +1 -1
  39. package/lib/components/ResponseSamples/Summary.js +1 -1
  40. package/lib/components/Responses/OperationResponseList.js +1 -1
  41. package/lib/components/Responses/ResponseHeaders.js +1 -1
  42. package/lib/components/RightPanel/RightPanel.js +1 -1
  43. package/lib/components/Schema/ObjectSchema.js +1 -1
  44. package/lib/components/Schema/OneOfSchema.js +1 -1
  45. package/lib/components/Schema/RecursiveSchema.js +1 -1
  46. package/lib/components/Schema/SubSchema.js +1 -1
  47. package/lib/components/Security/OAuthFlow.js +1 -1
  48. package/lib/components/Security/SecurityFlow.js +1 -1
  49. package/lib/components/Security/SecurityModal.js +1 -1
  50. package/lib/components/ServerList/ServerList.d.ts +1 -1
  51. package/lib/components/ServerList/ServerList.js +1 -1
  52. package/lib/components/ServerList/types.d.ts +4 -1
  53. package/lib/components/TagItem/OperationNavigationItems.d.ts +10 -0
  54. package/lib/components/TagItem/OperationNavigationItems.js +37 -0
  55. package/lib/components/TagItem/OperationsNavigation.d.ts +1 -6
  56. package/lib/components/TagItem/OperationsNavigation.js +1 -40
  57. package/lib/components/TagItem/TagItem.js +1 -1
  58. package/lib/components/TagItem/styled.d.ts +2 -0
  59. package/lib/components/TagItem/styled.js +6 -0
  60. package/lib/components/TagItem/types.d.ts +5 -0
  61. package/lib/components/TagItem/types.js +2 -0
  62. package/lib/components/common/BodyContent/BodyContent.js +1 -1
  63. package/lib/components/common/Dropdown/Dropdown.d.ts +1 -4
  64. package/lib/components/common/ExpandableExample/ExpandableExample.js +1 -1
  65. package/lib/hooks/index.d.ts +1 -0
  66. package/lib/hooks/index.js +1 -1
  67. package/lib/hooks/useTranslate.d.ts +2 -0
  68. package/lib/hooks/useTranslate.js +2 -0
  69. package/lib/services/code-samples/generator.d.ts +3 -1
  70. package/lib/services/code-samples/generator.js +1 -1
  71. package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
  72. package/lib-esm/components/ApiInfo/Metadata.d.ts +3 -1
  73. package/lib-esm/components/ApiInfo/Metadata.js +1 -1
  74. package/lib-esm/components/CallbackSamples/CallbackSamples.d.ts +2 -0
  75. package/lib-esm/components/CallbackSamples/CallbackSamples.js +1 -1
  76. package/lib-esm/components/Callbacks/CallbackDetails.d.ts +2 -0
  77. package/lib-esm/components/Callbacks/CallbackDetails.js +1 -1
  78. package/lib-esm/components/Callbacks/CallbackOperation.js +1 -1
  79. package/lib-esm/components/Callbacks/CallbackSummary.d.ts +3 -2
  80. package/lib-esm/components/Callbacks/CallbackSummary.js +1 -1
  81. package/lib-esm/components/Discriminator/Discriminator.d.ts +2 -0
  82. package/lib-esm/components/Discriminator/Discriminator.js +1 -1
  83. package/lib-esm/components/ExpandAllButton/ExpandAllButton.js +1 -1
  84. package/lib-esm/components/MediaTypeSwitch/MediaTypesSwitch.js +1 -1
  85. package/lib-esm/components/OperationItem/OperationItem.js +2 -2
  86. package/lib-esm/components/Overview/Overview.d.ts +8 -3
  87. package/lib-esm/components/Overview/Overview.js +1 -1
  88. package/lib-esm/components/PayloadSamples/Example.js +1 -1
  89. package/lib-esm/components/PayloadSamples/MediaTypeSamples.js +1 -1
  90. package/lib-esm/components/PayloadSamples/PayloadSamples.js +1 -1
  91. package/lib-esm/components/PropertyDetails/DescriptionEnums.d.ts +1 -1
  92. package/lib-esm/components/PropertyDetails/DescriptionEnums.js +1 -1
  93. package/lib-esm/components/PropertyDetails/EnumValues.js +1 -1
  94. package/lib-esm/components/PropertyDetails/Examples.js +1 -1
  95. package/lib-esm/components/PropertyDetails/FieldDetail.d.ts +1 -0
  96. package/lib-esm/components/PropertyDetails/FieldDetail.js +1 -1
  97. package/lib-esm/components/PropertyDetails/FieldDetails.js +1 -1
  98. package/lib-esm/components/PropertyDetails/Pattern.js +1 -1
  99. package/lib-esm/components/PropertyDetails/SimpleEnums.d.ts +1 -1
  100. package/lib-esm/components/PropertyDetails/SimpleEnums.js +1 -1
  101. package/lib-esm/components/PropertyDetails/types.d.ts +3 -0
  102. package/lib-esm/components/Replay/EmbeddedReplay.js +1 -1
  103. package/lib-esm/components/Replay/Replay.js +1 -1
  104. package/lib-esm/components/Request/RequestDetails.js +1 -1
  105. package/lib-esm/components/Request/types.d.ts +2 -0
  106. package/lib-esm/components/RequestParameters/RequestParameters.js +1 -1
  107. package/lib-esm/components/RequestSamples/useCodeSamples.js +1 -1
  108. package/lib-esm/components/ResponseSamples/Summary.js +1 -1
  109. package/lib-esm/components/Responses/OperationResponseList.js +1 -1
  110. package/lib-esm/components/Responses/ResponseHeaders.js +1 -1
  111. package/lib-esm/components/RightPanel/RightPanel.js +1 -1
  112. package/lib-esm/components/Schema/ObjectSchema.js +1 -1
  113. package/lib-esm/components/Schema/OneOfSchema.js +1 -1
  114. package/lib-esm/components/Schema/RecursiveSchema.js +1 -1
  115. package/lib-esm/components/Schema/SubSchema.js +1 -1
  116. package/lib-esm/components/Security/OAuthFlow.js +1 -1
  117. package/lib-esm/components/Security/SecurityFlow.js +1 -1
  118. package/lib-esm/components/Security/SecurityModal.js +1 -1
  119. package/lib-esm/components/ServerList/ServerList.d.ts +1 -1
  120. package/lib-esm/components/ServerList/ServerList.js +1 -1
  121. package/lib-esm/components/ServerList/types.d.ts +4 -1
  122. package/lib-esm/components/TagItem/OperationNavigationItems.d.ts +10 -0
  123. package/lib-esm/components/TagItem/OperationNavigationItems.js +37 -0
  124. package/lib-esm/components/TagItem/OperationsNavigation.d.ts +1 -6
  125. package/lib-esm/components/TagItem/OperationsNavigation.js +1 -40
  126. package/lib-esm/components/TagItem/TagItem.js +2 -2
  127. package/lib-esm/components/TagItem/styled.d.ts +2 -0
  128. package/lib-esm/components/TagItem/styled.js +6 -0
  129. package/lib-esm/components/TagItem/types.d.ts +5 -0
  130. package/lib-esm/components/TagItem/types.js +2 -0
  131. package/lib-esm/components/common/BodyContent/BodyContent.js +1 -1
  132. package/lib-esm/components/common/Dropdown/Dropdown.d.ts +1 -4
  133. package/lib-esm/components/common/ExpandableExample/ExpandableExample.js +1 -1
  134. package/lib-esm/hooks/index.d.ts +1 -0
  135. package/lib-esm/hooks/index.js +1 -1
  136. package/lib-esm/hooks/useTranslate.d.ts +2 -0
  137. package/lib-esm/hooks/useTranslate.js +2 -0
  138. package/lib-esm/services/code-samples/generator.d.ts +3 -1
  139. package/lib-esm/services/code-samples/generator.js +1 -1
  140. package/package.json +10 -10
@@ -1,46 +1,7 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{HttpVerb,NavigationBadge,SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,a]=useState(!1),r=useNavigate(),i=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:n,webhooks:s,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),a=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=a.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!n.length&&!s.length)return null;const p=e=>{r(e)};return _jsxs(Wrapper,{isStacked:i,"data-testid":"operation-navigation-list",children:[n.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Operations"}),n.map((({id:e,href:o,httpVerb:a,path:r,deprecated:i,badges:n})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:i?"http-deprecated":a,children:a}),_jsx(Path,{children:r}),i&&_jsx(NavigationBadge,{deprecated:!0,children:"Deprecated"}),n&&n.map((({name:e,color:t})=>_jsx(NavigationBadge,{color:t,children:e},e)))]})},e)))]}),s.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&_jsxs(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>a(!0),children:["Show ",l," more..."]})]})}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo,memo,useState,useCallback}from"react";import{useNavigate}from"react-router-dom";import{LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{SamplesPanel}from"../common";import{layoutAtom}from"../../jotai/app";import{OperationNavigationItems}from"./OperationNavigationItems";import{StyledButton}from"./styled";import{useTranslate}from"../../hooks";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:o,routingBasePath:t}){const e=useTranslate(),[a,s]=useState(!1),i=useNavigate(),n=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:r,webhooks:p,count:m}=useMemo((()=>{const t=o.filter((o=>"operation"===o.type)),e=a?t:t.slice(0,MAX_OPERATIONS),{operations:s,webhooks:i}=e.reduce(((o,t)=>t.isWebhook?Object.assign(Object.assign({},o),{webhooks:[...o.webhooks,t]}):Object.assign(Object.assign({},o),{operations:[...o.operations,t]})),{operations:[],webhooks:[]});return{operations:s,webhooks:i,count:!a&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[a,o]),l=useCallback((o=>i(o)),[i]);return r.length||p.length?_jsxs(Wrapper,{isStacked:n,"data-testid":"operation-navigation-list",children:[r.length>0&&_jsx(OperationNavigationItems,{items:r,onClick:l,routingBasePath:t,translate:e,title:e("openapi.operations","Operations")}),p.length>0&&_jsx(OperationNavigationItems,{items:p,onClick:l,routingBasePath:t,translate:e,title:e("openapi.webhooks","Webhooks")}),!a&&Boolean(m)&&_jsxs(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>s(!0),children:[e("openapi.actions.show","Show")," ",m," ",e("openapi.actions.more","more"),"..."]})]}):null}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
5
5
  padding-top: var(--spacing-xxl);
6
- `,Heading=styled.span`
7
- font-size: var(--font-size-base);
8
- line-height: var(--line-height-base);
9
- font-weight: var(--font-weight-bold);
10
- color: var(--text-color-primary);
11
- margin: var(--spacing-sm) 0 var(--spacing-xxs) 0;
12
- `,StyledButton=styled(Button)`
13
- & + & {
14
- margin-left: 0;
15
- }
16
- `,Item=styled(StyledButton)`
17
- border-radius: var(--border-radius);
18
- background: var(--bg-color);
19
- justify-content: space-between;
20
-
21
- & > span {
22
- display: flex;
23
- align-items: baseline;
24
- gap: var(--spacing-unit);
25
- overflow-x: hidden;
26
- }
27
-
28
- &:hover {
29
- background: var(--bg-color);
30
- }
31
-
32
- &:hover::after {
33
- content: '→';
34
- line-height: var(--line-height-base);
35
- }
36
- `,Path=styled.span`
37
- font-family: var(--font-family-base);
38
- font-size: var(--font-size-base);
39
- line-height: var(--line-height-base);
40
- color: var(--text-color-primary);
41
- text-decoration: none;
42
- white-space: nowrap;
43
- text-overflow: ellipsis;
44
- overflow-x: hidden;
45
6
  `;
46
7
  //# sourceMappingURL=OperationsNavigation.js.map
@@ -1,6 +1,6 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback}from"react";import{breakpoints,Button,H2,LayoutVariant,LinkIcon}from"@redocly/theme";import{useNavigate}from"react-router-dom";import styled from"styled-components";import{useAtomValue}from"jotai";import{Row,SamplesMiddlePanel,ShareLink}from"../common";import{Markdown}from"../Markdown";import{OperationsNavigation}from"./OperationsNavigation";import{layoutAtom}from"../../jotai/app";export function TagItemComponent({item:t,routingBasePath:a="",isExpanded:o}){const{description:i,name:e,href:n}=t,r=useNavigate(),m=useAtomValue(layoutAtom),s=useCallback((()=>{r(a+t.href)}),[t.href,r,a]),d=Boolean(t.items.length),l=m===LayoutVariant.STACKED;return _jsxs(Wrapper,{expanded:o,children:[_jsxs(Row,{layout:m,children:[_jsxs(SamplesMiddlePanel,{fullWidth:!d,isStacked:l,children:[_jsxs(Heading,{children:[_jsx(ShareLink,{to:n,"aria-label":`link to ${e}`}),e]}),_jsx(Markdown,{source:i})]}),d&&_jsx(OperationsNavigation,{items:t.items,routingBasePath:a})]}),d&&!o&&_jsx(ShowButton,{type:"button",variant:"text",size:"medium",onClick:s,children:"+ Show"})]})}export const TagItem=memo(TagItemComponent);const Wrapper=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback}from"react";import{breakpoints,Button,H2,LayoutVariant,LinkIcon}from"@redocly/theme";import{useNavigate}from"react-router-dom";import styled from"styled-components";import{useAtomValue}from"jotai";import{Row,SamplesMiddlePanel,ShareLink}from"../common";import{Markdown}from"../Markdown";import{OperationsNavigation}from"./OperationsNavigation";import{layoutAtom}from"../../jotai/app";import{useTranslate}from"../../hooks";export function TagItemComponent({item:a,routingBasePath:t="",isExpanded:o}){const e=useTranslate(),{description:i,name:n,href:r}=a,s=useNavigate(),m=useAtomValue(layoutAtom),d=useCallback((()=>{s(t+a.href)}),[a.href,s,t]),l=Boolean(a.items.length),p=m===LayoutVariant.STACKED;return _jsxs(Wrapper,{expanded:o,children:[_jsxs(Row,{layout:m,children:[_jsxs(SamplesMiddlePanel,{fullWidth:!l,isStacked:p,children:[_jsxs(Heading,{children:[_jsx(ShareLink,{to:r,"aria-label":`link to ${n}`}),n]}),_jsx(Markdown,{source:i})]}),l&&_jsx(OperationsNavigation,{items:a.items,routingBasePath:t})]}),l&&!o&&_jsxs(ShowButton,{type:"button",variant:"text",size:"medium",onClick:d,children:["+ ",e("openapi.actions.show","Show")]})]})}export const TagItem=memo(TagItemComponent);const Wrapper=styled.div`
2
2
  padding-top: var(--spacing-lg);
3
- padding-bottom: ${({expanded:t})=>t?"var(--spacing-xxl)":""};
3
+ padding-bottom: ${({expanded:a})=>a?"var(--spacing-xxl)":""};
4
4
  `,ShowButton=styled(Button)`
5
5
  margin: var(--spacing-md) var(--spacing-xl) var(--spacing-xxs);
6
6
  width: calc(100% - var(--spacing-xl) * 2);
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledButton: import("styled-components").StyledComponent<import("react").FC<import("@redocly/theme").ButtonProps>, any, import("@redocly/theme").ButtonProps, never>;
@@ -0,0 +1,6 @@
1
+ import styled from"styled-components";import{Button}from"@redocly/theme";export const StyledButton=styled(Button)`
2
+ & + & {
3
+ margin-left: 0;
4
+ }
5
+ `;
6
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1,5 @@
1
+ import type { OperationMenuItem } from '../../models';
2
+ export type OperationsNavigationProps = {
3
+ items: OperationMenuItem[];
4
+ routingBasePath: string;
5
+ };
@@ -0,0 +1,2 @@
1
+ export{};
2
+ //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtom}from"jotai";import{LinkIcon}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{RequiredLabel}from"../Fields";import{ConstraintsView}from"../ConstraintsView";import{Schema}from"../../Schema";import{getActiveMediaType}from"../../../models";import{Markdown}from"../../Markdown";import{activeMimeNameAtom}from"../../../jotai/app";import{LinkToField}from"../LinkToField";function BodyContentComponent({required:e,skipReadOnly:o,skipWriteOnly:i,description:t,content:n,deepLink:r}){const[a,s]=useAtom(activeMimeNameAtom);if(!n)return null;const{schema:m,examples:l,operation:p,name:d}=getActiveMediaType(n,a),c=n.mediaTypes.map((({name:e})=>({label:e,value:e})));return _jsxs(_Fragment,{children:[_jsxs(Title,{children:[r&&_jsx(LinkToField,{to:r}),"Body",_jsx(Dropdown,{options:c,value:d,triggerVariant:"ghost",triggerSize:"large",onChange:({value:e})=>s(e)})]}),e&&_jsx(RequiredLabel,{children:"required"}),_jsx(StyledMarkdown,{source:t}),"object"===(null==m?void 0:m.type)&&(null==m?void 0:m.constraints)&&_jsx(ConstraintsView,{constraints:(null==m?void 0:m.constraints)||[]}),_jsx(Schema,{skipReadOnly:o,skipWriteOnly:i,schema:m,examples:l,operation:p,level:1,disableDeepLinks:!r},"schema")]})}export const BodyContent=memo(BodyContentComponent);const StyledMarkdown=styled(Markdown)`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{useAtom}from"jotai";import{LinkIcon}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{RequiredLabel}from"../Fields";import{ConstraintsView}from"../ConstraintsView";import{Schema}from"../../Schema";import{getActiveMediaType}from"../../../models";import{Markdown}from"../../Markdown";import{activeMimeNameAtom}from"../../../jotai/app";import{LinkToField}from"../LinkToField";import{useTranslate}from"../../../hooks";function BodyContentComponent({required:e,skipReadOnly:o,skipWriteOnly:i,description:t,content:n,deepLink:r}){const a=useTranslate(),[s,m]=useAtom(activeMimeNameAtom);if(!n)return null;const{schema:l,examples:p,operation:d,name:c}=getActiveMediaType(n,s),g=n.mediaTypes.map((({name:e})=>({label:e,value:e})));return _jsxs(_Fragment,{children:[_jsxs(Title,{children:[r&&_jsx(LinkToField,{to:r}),a("openapi.body","Body"),_jsx(Dropdown,{options:g,value:c,triggerVariant:"ghost",triggerSize:"large",onChange:({value:e})=>m(e)})]}),e&&_jsx(RequiredLabel,{children:a("openapi.badges.required","required")}),_jsx(StyledMarkdown,{source:t}),"object"===(null==l?void 0:l.type)&&(null==l?void 0:l.constraints)&&_jsx(ConstraintsView,{constraints:(null==l?void 0:l.constraints)||[]}),_jsx(Schema,{skipReadOnly:o,skipWriteOnly:i,schema:l,examples:p,operation:d,level:1,disableDeepLinks:!r},"schema")]})}export const BodyContent=memo(BodyContentComponent);const StyledMarkdown=styled(Markdown)`
2
2
  margin: var(--spacing-xxs) 0 0;
3
3
  `,Title=styled.span`
4
4
  position: relative;
@@ -1,10 +1,7 @@
1
1
  import type { SelectOption } from '@redocly/theme';
2
2
  export interface DropdownProps<T> {
3
3
  value: T;
4
- onChange: ({ label, value }: {
5
- label: any;
6
- value: any;
7
- }) => void;
4
+ onChange: ({ label, value }: SelectOption<T>) => void;
8
5
  options: SelectOption<T>[];
9
6
  className?: string;
10
7
  triggerVariant?: 'ghost' | 'outlined';
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{Button}from"@redocly/theme";import{useMemo,useState}from"react";import{Markdown}from"../../Markdown";import{ExampleValue}from"../Fields";const MAX_EXAMPLE_LENGTH=150;export function ExpandableExample({value:e}){const[t,s]=useState(!1),n=useMemo((()=>e.slice(0,MAX_EXAMPLE_LENGTH)),[e]);return _jsxs(Container,{children:[_jsx(Markdown,{source:t?e:n}),(e!==n||t)&&_jsx(ButtonWrap,{children:_jsx(Button,{variant:"link",size:"small",onClick:()=>{s(!t)},children:t?"Hide example":"Show example"})})]})}const Container=styled(ExampleValue)`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{Button}from"@redocly/theme";import{useMemo,useState}from"react";import{Markdown}from"../../Markdown";import{ExampleValue}from"../Fields";import{useTranslate}from"../../../hooks";const MAX_EXAMPLE_LENGTH=150;export function ExpandableExample({value:e}){const s=useTranslate(),[o,a]=useState(!1),t=useMemo((()=>e.slice(0,MAX_EXAMPLE_LENGTH)),[e]);return _jsxs(Container,{children:[_jsx(Markdown,{source:o?e:t}),(e!==t||o)&&_jsx(ButtonWrap,{children:_jsx(Button,{variant:"link",size:"small",onClick:()=>{a(!o)},children:o?s("openapi.hideExample","Hide example"):s("openapi.showExample","Show example")})})]})}const Container=styled(ExampleValue)`
2
2
  display: inline;
3
3
 
4
4
  & * {
@@ -5,3 +5,4 @@ export { useRouter } from './useRouter';
5
5
  export { useContentItems } from './useContentItems';
6
6
  export { useActiveWithFallback } from './useActiveWithFallback';
7
7
  export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
8
+ export { useTranslate } from './useTranslate';
@@ -1,2 +1,2 @@
1
- export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";
1
+ export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useTranslate}from"./useTranslate";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import type { TFunction } from '@redocly/theme';
2
+ export declare function useTranslate(): TFunction;
@@ -0,0 +1,2 @@
1
+ import{useThemeHooks}from"@redocly/theme";export function useTranslate(){const{translate:e}=useThemeHooks().useTranslate();return e}
2
+ //# sourceMappingURL=useTranslate.js.map
@@ -1,6 +1,7 @@
1
1
  import type { OperationModel } from '../../models';
2
2
  import type * as HAR from './har';
3
3
  import type { Languages } from './types';
4
+ import type { TFunction } from '@redocly/theme';
4
5
  export type CustomHAR = HAR.Request & {
5
6
  securityOAuth2ExtraCalls?: HAR.Request[];
6
7
  basicAuth?: {
@@ -13,7 +14,7 @@ export type CustomHAR = HAR.Request & {
13
14
  serverVariables?: Record<string, string>;
14
15
  allResponseCodes?: string[];
15
16
  };
16
- export declare function getCodeSample({ lang, operation, exampleName, pathParams, properties, options, environment, }: {
17
+ export declare function getCodeSample({ lang, operation, exampleName, pathParams, properties, options, environment, translate, }: {
17
18
  lang: Languages;
18
19
  operation: OperationModel;
19
20
  exampleName?: string;
@@ -21,6 +22,7 @@ export declare function getCodeSample({ lang, operation, exampleName, pathParams
21
22
  properties?: GenericObject;
22
23
  options?: GenericObject;
23
24
  environment: Record<string, string>;
25
+ translate: TFunction;
24
26
  }): string;
25
27
  export declare function isDefined<T>(arg?: T): arg is T;
26
28
  export declare function capitalizeFirst(str: string): string;
@@ -1,2 +1,2 @@
1
- import*as Sampler from"openapi-sampler";import merge from"deepmerge";import{toXML}from"jstoxml";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={}},{environment:l,requestValues:u,activeSecuritySchemeIds:p}){var c,d,m;const h=l.server,y=e.servers.find((e=>e.url===h))||e.servers[0],f=getSelectedSecurityScheme(e.security,p),{securityHeaders:g,securityCookies:v,securityQueries:O,securityOAuth2ExtraCalls:S,basicAuth:T}=getSecurityData(f||(null===(c=e.security)||void 0===c?void 0:c[0]),r,l),C=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&getActiveMediaType(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},E=u;let _=!1;const A=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=E.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(_=!0,e.value=C.name),e))).concat(g);!_&&(null==C?void 0:C.name)&&A.unshift({name:"Content-Type",value:null==C?void 0:C.name});const k=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,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=E.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),j=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,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=E.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=E.query)||void 0===r?void 0:r[i]))||String((null===(s=E.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(O),P=`${null==y?void 0:y.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,w=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=E.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),R=null===(m=null==C?void 0:C.examples)||void 0===m?void 0:m[t],D=(null==C?void 0:C.examples)||{},[q]=Object.values(D),M=(null==E?void 0:E.body)||(null==R?void 0:R.value)||(null==q?void 0:q.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,b,s),H=null==C?void 0:C.name.toLowerCase();let N="",x=[];switch(normalizeMimeType(H)){case MediaTypes.JSON:N=JSON.stringify(getDataRequest(M,o));break;case MediaTypes.XML:N="object"==typeof M?toXML(getDataRequest(M,o),{indent:" "}):M;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:N=queryString.stringify(getDataRequest(M,o)),x=objectToHarParams(getDataRequest(M,o));break;default:N=String(M||"")}const U=N?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:N,params:x}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:P,httpVersion:"HTTP/1.1",cookies:k,headers:A,queryString:j,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:S,basicAuth:T,pathParameters:w,serverVariables:l,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}){try{const{skipOptionalParameters:o,withOAuth2Call:l,spec:u,generatedPayloadSamplesMaxDepth:p,store:c}=i,d=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:o,withOAuth2Call:l,spec:u,generatedPayloadSamplesMaxDepth:p},{environment:n,requestValues:c.requestValues,activeSecuritySchemeIds:c.activeSecuritySchemeIds}),m=new HTTPSnippet(d);return langToSnippetConfig[e]?m.convert(langToSnippetConfig[e].code,langToSnippetConfig[e].defaultTarget,Object.assign(Object.assign({},langToSnippetConfig[e].defaultOptions),i)):"Language is not supported."}catch(e){return console.error(e),"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 u of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(u.id,a);switch(u.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";u.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(u.flows.clientCredentials,u.scopes,e)):u.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(u.flows.password,u.scopes,e)),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===u.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:u.name,value:t})),"cookie"===u.in&&l.securityCookies.push({name:u.name,value:t}),"query"===u.in&&l.securityQueries.push({name:u.name,value:t});break}case"http":if("basic"===u.scheme)l.basicAuth={username:e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${u.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(u.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:[]}}function getDataRequest(e,t){if(e){if("object"==typeof e)return 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 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{toXML}from"jstoxml";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={}},{environment:l,requestValues:u,activeSecuritySchemeIds:p}){var c,d,m;const h=l.server,y=e.servers.find((e=>e.url===h))||e.servers[0],f=getSelectedSecurityScheme(e.security,p),{securityHeaders:g,securityCookies:v,securityQueries:O,securityOAuth2ExtraCalls:S,basicAuth:T}=getSecurityData(f||(null===(c=e.security)||void 0===c?void 0:c[0]),r,l),C=(null===(d=null==e?void 0:e.requestBody)||void 0===d?void 0:d.content)&&getActiveMediaType(e.requestBody.content),b={skipNonRequired:a,skipReadOnly:!0,maxSampleDepth:i,quiet:!0},E=u;let _=!1;const A=e.parameters.filter((e=>"header"===e.in)).filter((e=>!(a&&!e.required))).map((e=>{var t;return{name:e.name,value:(null===(t=E.header)||void 0===t?void 0:t[e.name])||getParameterValue("header",e.name)||serializeParameterValue(e,Sampler.sample(e.schema.rawSchema,b,s))}})).map((e=>((null==C?void 0:C.name)&&"content-type"===e.name.toLowerCase()&&(_=!0,e.value=C.name),e))).concat(g);!_&&(null==C?void 0:C.name)&&A.unshift({name:"Content-Type",value:null==C?void 0:C.name});const k=e.parameters.filter((e=>"cookie"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,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=E.cookie)||void 0===a?void 0:a[r])||s)});return e}),[]).concat(v),j=e.parameters.filter((e=>"query"===e.in)).filter((e=>!(a&&!e.required))).map((e=>queryString.parse(serializeParameterValue(e,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=E.query)||void 0===a?void 0:a[i])&&JSON.stringify(deleteEmptyArrayItem(null===(r=E.query)||void 0===r?void 0:r[i]))||String((null===(s=E.query)||void 0===s?void 0:s[i])||n)});return e}),[]).concat(O),P=`${null==y?void 0:y.url.replace(/\/$/,"")}/${e.path.replace(/^\//,"")}`,w=e.parameters.filter((e=>"path"===e.in)).reduce(((e,t)=>{var a;const{in:r,name:s}=t;return e[s]=(null===(a=E.path)||void 0===a?void 0:a[s])||n[s]||getParameterValue(r,s),e}),{}),R=null===(m=null==C?void 0:C.examples)||void 0===m?void 0:m[t],D=(null==C?void 0:C.examples)||{},[q]=Object.values(D),M=(null==E?void 0:E.body)||(null==R?void 0:R.value)||(null==q?void 0:q.value)||(null==C?void 0:C.schema)&&Sampler.sample(null==C?void 0:C.schema.rawSchema,b,s),H=null==C?void 0:C.name.toLowerCase();let N="",x=[];switch(normalizeMimeType(H)){case MediaTypes.JSON:N=JSON.stringify(getDataRequest(M,o));break;case MediaTypes.XML:N="object"==typeof M?toXML(getDataRequest(M,o),{indent:" "}):M;break;case MediaTypes.URL_ENCODED:case MediaTypes.MULTIPART:N=queryString.stringify(getDataRequest(M,o)),x=objectToHarParams(getDataRequest(M,o));break;default:N=String(M||"")}const U=N?{mimeType:(null==C?void 0:C.name)||MediaTypes.OCTET_STREAM,text:N,params:x}:void 0,z=e.responses.map((e=>e.code));return{method:e.httpVerb,url:P,httpVersion:"HTTP/1.1",cookies:k,headers:A,queryString:j,postData:U,headersSize:-1,bodySize:-1,securityOAuth2ExtraCalls:S,basicAuth:T,pathParameters:w,serverVariables:l,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:u,spec:p,generatedPayloadSamplesMaxDepth:c,store:d}=i,m=mapOperationToHAR(t,{exampleName:a,pathParams:r,properties:s,skipOptionalParameters:l,withOAuth2Call:u,spec:p,generatedPayloadSamplesMaxDepth:c},{environment:n,requestValues:d.requestValues,activeSecuritySchemeIds:d.activeSecuritySchemeIds}),h=new HTTPSnippet(m);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 u of(null==e?void 0:e.schemes)||[]){const e=getSecurityDetails(u.id,a);switch(u.type){case"openIdConnect":null===(r=l.securityHeaders)||void 0===r||r.push({name:"Authorization",value:e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>"});break;case"oauth2":{const a=e.token?`${e.token.token_type||"Bearer"} ${e.token.access_token}`:"Bearer <YOUR_TOKEN_HERE>";u.flows.clientCredentials&&t?l.securityOAuth2ExtraCalls.push(getOAuth2ClientCredsCallHar(u.flows.clientCredentials,u.scopes,e)):u.flows.password&&t&&l.securityOAuth2ExtraCalls.push(getOAuth2PasswordCallHar(u.flows.password,u.scopes,e)),null===(s=l.securityHeaders)||void 0===s||s.push({name:"Authorization",value:a});break}case"apiKey":{const t=e.raw||"YOUR_API_KEY_HERE";"header"===u.in&&(null===(i=l.securityHeaders)||void 0===i||i.push({name:u.name,value:t})),"cookie"===u.in&&l.securityCookies.push({name:u.name,value:t}),"query"===u.in&&l.securityQueries.push({name:u.name,value:t});break}case"http":if("basic"===u.scheme)l.basicAuth={username:e.username||`<${StringUtility.toSnakeCase("Username")}>`,password:e.password||`<${StringUtility.toSnakeCase("Password")}>`};else{const t=(null===(n=e.token)||void 0===n?void 0:n.access_token)||`<YOUR_${u.bearerFormat||"TOKEN"}_HERE>`;null===(o=l.securityHeaders)||void 0===o||o.push({name:"Authorization",value:`${capitalizeFirst(u.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:[]}}function getDataRequest(e,t){if(e){if("object"==typeof e)return 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 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)}
2
2
  //# sourceMappingURL=generator.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.3.19",
3
+ "version": "3.3.21",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@markdoc/markdoc": "0.4.0",
27
- "@redocly/openapi-core": "1.25.1",
27
+ "@redocly/openapi-core": "1.25.3",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "^2.0.12",
30
30
  "fast-deep-equal": "^3.1.3",
@@ -33,8 +33,8 @@
33
33
  "lunr": "^2.3.8",
34
34
  "openapi-sampler": "^1.5.1",
35
35
  "path-browserify": "^1.0.1",
36
- "prismjs": "^1.22.0",
37
- "react-router-dom": "^6.21.1",
36
+ "prismjs": "1.29.0",
37
+ "react-router-dom": "6.21.1",
38
38
  "slugify": "^1.4.4",
39
39
  "stickyfill": "^1.1.1",
40
40
  "stringify-object": "^3.3.0",
@@ -45,8 +45,8 @@
45
45
  "url": "~0.11.0",
46
46
  "url-template": "^2.0.8",
47
47
  "util": "~0.12.5",
48
- "@redocly/replay": "0.5.14",
49
- "@redocly/config": "0.11.0"
48
+ "@redocly/replay": "0.5.16",
49
+ "@redocly/config": "0.12.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@testing-library/jest-dom": "6.1.5",
@@ -62,7 +62,7 @@
62
62
  "@types/react": "18.2.79",
63
63
  "@types/react-dom": "18.2.25",
64
64
  "@types/styled-components": "5.1.34",
65
- "@types/webpack": "4.41.38",
65
+ "@types/webpack": "5.28.5",
66
66
  "@types/webpack-env": "1.18.5",
67
67
  "compare-versions": "5.0.3",
68
68
  "core-js": "3.29.1",
@@ -90,10 +90,10 @@
90
90
  "typescript": "5.2.2",
91
91
  "unfetch": "4.2.0",
92
92
  "url-polyfill": "1.1.12",
93
- "webpack": "5.91.0",
93
+ "webpack": "5.94.0",
94
94
  "webpack-cli": "5.1.4",
95
- "webpack-dev-server": "4.15.2",
96
- "@redocly/theme": "0.42.3"
95
+ "webpack-dev-server": "5.1.0",
96
+ "@redocly/theme": "0.44.0"
97
97
  },
98
98
  "scripts": {
99
99
  "start": "webpack serve --mode=development --hot",