@redocly/openapi-docs 3.5.16 → 3.5.18

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 (56) hide show
  1. package/dist/redocly-openapi-docs.min.js +985 -957
  2. package/lib/components/ExpandAllButton/ExpandAllButton.js +1 -1
  3. package/lib/components/OperationItem/_tests_/OperationItem.test.js +1 -1
  4. package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  5. package/lib/components/Replay/EmbeddedReplay.d.ts +3 -4
  6. package/lib/components/Replay/EmbeddedReplay.js +1 -1
  7. package/lib/components/Replay/Replay.js +1 -6
  8. package/lib/components/Replay/utils.d.ts +13 -5
  9. package/lib/components/Replay/utils.js +1 -1
  10. package/lib/components/RequestSamples/Example.js +1 -1
  11. package/lib/components/RequestSamples/RequestSamples.js +7 -1
  12. package/lib/components/ResponseSamples/ResponseSamples.js +1 -1
  13. package/lib/components/Schema/Schema.js +1 -1
  14. package/lib/components/Schema/SubSchema.js +1 -1
  15. package/lib/components/SchemaDefinition/SchemaDefinition.js +1 -1
  16. package/lib/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
  17. package/lib/components/common/SchemaSelection/SchemaSelection.js +1 -1
  18. package/lib/hooks/useActivateExample.js +1 -1
  19. package/lib/hooks/useContentItems.d.ts +2 -2
  20. package/lib/index.d.ts +1 -0
  21. package/lib/index.js +1 -1
  22. package/lib/jotai/app.js +1 -1
  23. package/lib/jotai/operation.d.ts +4 -3
  24. package/lib/jotai/operation.js +1 -1
  25. package/lib/jotai/replay.d.ts +4 -0
  26. package/lib/jotai/replay.js +1 -1
  27. package/lib/models/operation.js +1 -1
  28. package/lib/services/menu/builder.d.ts +1 -2
  29. package/lib-esm/components/ExpandAllButton/ExpandAllButton.js +1 -1
  30. package/lib-esm/components/OperationItem/_tests_/OperationItem.test.js +1 -1
  31. package/lib-esm/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  32. package/lib-esm/components/Replay/EmbeddedReplay.d.ts +3 -4
  33. package/lib-esm/components/Replay/EmbeddedReplay.js +1 -1
  34. package/lib-esm/components/Replay/Replay.js +1 -6
  35. package/lib-esm/components/Replay/utils.d.ts +13 -5
  36. package/lib-esm/components/Replay/utils.js +1 -1
  37. package/lib-esm/components/RequestSamples/Example.js +1 -1
  38. package/lib-esm/components/RequestSamples/RequestSamples.js +7 -1
  39. package/lib-esm/components/ResponseSamples/ResponseSamples.js +1 -1
  40. package/lib-esm/components/Schema/Schema.js +1 -1
  41. package/lib-esm/components/Schema/SubSchema.js +1 -1
  42. package/lib-esm/components/SchemaDefinition/SchemaDefinition.js +1 -1
  43. package/lib-esm/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
  44. package/lib-esm/components/common/SchemaSelection/SchemaSelection.js +1 -1
  45. package/lib-esm/hooks/useActivateExample.js +1 -1
  46. package/lib-esm/hooks/useContentItems.d.ts +2 -2
  47. package/lib-esm/index.d.ts +1 -0
  48. package/lib-esm/index.js +1 -1
  49. package/lib-esm/jotai/app.js +1 -1
  50. package/lib-esm/jotai/operation.d.ts +4 -3
  51. package/lib-esm/jotai/operation.js +1 -1
  52. package/lib-esm/jotai/replay.d.ts +4 -0
  53. package/lib-esm/jotai/replay.js +1 -1
  54. package/lib-esm/models/operation.js +1 -1
  55. package/lib-esm/services/menu/builder.d.ts +1 -2
  56. package/package.json +5 -6
@@ -1,7 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,o,t,a){return new(t||(t=Promise))((function(r,n){function i(e){try{l(a.next(e))}catch(e){n(e)}}function s(e){try{l(a.throw(e))}catch(e){n(e)}}function l(e){var o;e.done?r(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((a=a.apply(e,o||[])).next())}))};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,Suspense,useCallback,useRef,useState,lazy}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import styled from"styled-components";import{useAtom,useAtomValue}from"jotai";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{replayStateAtom}from"../../jotai/replay";import{operationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{activeMimeNameAtom,environmentAtom}from"../../jotai/app";import{convertOperationToReplayValue}from"./utils";import{useTranslate}from"../../hooks";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var a,r;const n=useTranslate(),i=useRef(null),{routingBasePath:s,mockServer:l,oAuth2RedirectURI:m}=useAtomValue(globalOptionsAtom),{parser:c}=useAtomValue(globalStoreAtom),[p,u]=useState(!1),[d,v]=useAtom(replayStateAtom),[A,f]=useAtom(operationStore(e.pointer)),[y,S]=useAtom(activeMimeNameAtom),[[,O],_]=useAtom(environmentAtom);useFocusTrap(i),useModalScrollLock(p);const h=useCallback((({requestValues:e,activeExampleName:o,activeMimeName:t,environment:a,environments:r,activeSecuritySchemeIds:n})=>{f((t=>Object.assign(Object.assign({},t),{requestValues:e,activeExampleName:o,activeSecuritySchemeIds:n}))),S(t||y),_({environment:a,environments:r})}),[f,S,y,_]),x=()=>{d!==LOADING_STATE.LOADING&&u(!p),d===LOADING_STATE.NOT_LOADED&&v(LOADING_STATE.LOADING)};return _jsxs(Wrapper,{children:[_jsx(Button,{onClick:x,variant:"primary",iconPosition:"left",icon:d===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:d===LOADING_STATE.LOADING?n("openapi.loading","Loading..."):n("openapi.tryIt","Try it")}),p&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:i,children:_jsx(ReplayOverlay,{value:convertOperationToReplayValue(e,t,A),onRequestChange:h,onClose:x,corsProxyUrl:o,operationUrl:s+e.href,onLoad:()=>v(LOADING_STATE.LOADED),mockServer:l,environment:O,apiId:null===(r=null===(a=null==c?void 0:c.definition.info)||void 0===a?void 0:a["x-metadata"])||void 0===r?void 0:r.apiId,oAuth2RedirectURI:m,definitionUrl:null==c?void 0:c.definitionUrl,disableCollectionsTab:!0})})})})]})}export const Replay=memo(ReplayComponent);const Wrapper=styled.div`
2
- display: flex;
3
- justify-content: flex-end;
4
- border-top: var(--panel-border);
5
- padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
- `;
1
+ var __awaiter=this&&this.__awaiter||function(e,o,t,r){return new(t||(t=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((r=r.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom}from"../../jotai/app";import{convertOperationToReplayValue}from"./utils";import{useTranslate}from"../../hooks";import{JsonPointer}from"../../utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,n;const a=useTranslate(),i=useRef(null),{mockServer:s,oAuth2RedirectURI:l,routingBasePath:u}=useAtomValue(globalOptionsAtom),m=useAtomValue(allOperationsAtom),{parser:p}=useAtomValue(globalStoreAtom),[c,d]=useState(!1),[A,f]=useAtom(replayStateAtom),[y,O]=useAtom(allOperations),[[,v],h]=useAtom(environmentAtom);useFocusTrap(i),useModalScrollLock(c);const _=useCallback((({operations:e,environment:o,environments:t})=>{const r=e.reduce(((e,o)=>{o.requestValues.body=o.requestValues.body instanceof URLSearchParams?Object.fromEntries(o.requestValues.body.entries()):o.requestValues.body;const{path:t,method:r}=o.sourcePath,n=JsonPointer.compile(["paths",t,r]);return e[n]=merge(getDefaultOperationStore(n),o),e}),{});O(Object.assign(Object.assign({},y),r)),h({environment:o,environments:t})}),[y,O,h]),I=()=>{A!==LOADING_STATE.LOADING&&d(!c),A===LOADING_STATE.NOT_LOADED&&f(LOADING_STATE.LOADING)},T=useCallback((e=>{if(!e)return;const o=m.find((o=>o.operationId===e));return u+(null==o?void 0:o.href)}),[m,u]);return t?_jsxs(_Fragment,{children:[_jsx(Button,{onClick:I,variant:"primary",iconPosition:"left",icon:A===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:A===LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),c&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:i,children:_jsx(ReplayOverlay,{activeOperationId:e.operationId,source:{data:t,type:"openapi"},onRequestChange:_,onClose:I,onLoad:()=>f(LOADING_STATE.LOADED),settings:{corsProxyUrl:o,mockServer:s,environment:v,apiId:null===(n=null===(r=null==p?void 0:p.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,disableCollectionsTab:!0,storageKey:u,convertOperationToReplayValue:convertOperationToReplayValue,getOperationUrl:T}})})})})]}):null}export const Replay=memo(ReplayComponent);
7
2
  //# sourceMappingURL=Replay.js.map
@@ -1,14 +1,22 @@
1
- import type { OperationModel, SecurityRequirement } from '../../models';
2
1
  import type { OpenAPIDefinition } from '../../types';
3
- import type { OperationStore } from '../../jotai/operation';
4
- import type { AppStore } from '../../jotai/app';
5
- export declare function convertOperationToReplayValue(operation: OperationModel, fullOpenApi?: OpenAPIDefinition, operationState?: OperationStore, appState?: AppStore): {
2
+ import { type SecurityRequirement } from '../../models';
3
+ export declare function convertOperationToReplayValue(path: string, method: string, openAPI: OpenAPIDefinition): {
4
+ id: string;
6
5
  name: string;
7
6
  method: string;
7
+ operationId: string | undefined;
8
8
  parameters: any[];
9
9
  body: any;
10
10
  path: string;
11
+ href: string;
11
12
  servers: import("../../types").OpenAPIServer[];
12
13
  security: any[] | undefined;
13
- };
14
+ responses: {
15
+ [k: string]: {
16
+ code: string;
17
+ description: string | GenericObject;
18
+ mediaTypes: {} | undefined;
19
+ };
20
+ };
21
+ } | undefined;
14
22
  export declare function convertRequestSecurity(security?: SecurityRequirement[]): any[] | undefined;
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t};import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,t,a){var i,r;const o=(null==a?void 0:a.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(i=null==t?void 0:t.requestValues)||void 0===i?void 0:i.body)?{activeExampleName:null==t?void 0:t.activeExampleName,[o]:null===(r=null==t?void 0:t.requestValues)||void 0===r?void 0:r.body}:{activeExampleName:null==t?void 0:t.activeExampleName}),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,a=e.map((e=>{var a;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(a=null==n?void 0:n[String(e.in)])||void 0===a?void 0:a[e.name])||e.example,schema:e.schema}}));for(const[e,i]of Object.entries(n||{}))for(const[n,r]of Object.entries(i||{}))t.has(e+":"+n)||a.push({name:n,in:e,required:!1,description:"",example:String(r),schema:void 0});return a}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,a,i,r,o;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(a=e[0])||void 0===a?void 0:a.examples);if(l)return l;if(null===(i=e.schema)||void 0===i?void 0:i.example)return e.schema.example;const m=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?isPrimitive(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,n,t){var a;if(!e||!(null===(a=e.content)||void 0===a?void 0:a.mediaTypes)){if(!t)return;const{activeExampleName:e}=t,n=__rest(t,["activeExampleName"]);return{activeExampleName:e,mediaTypes:Object.fromEntries(Object.entries(n).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,activeExampleName:null==t?void 0:t.activeExampleName,mediaTypes:e.content.mediaTypes.reduce(((e,a)=>{var i,r;const o=a.schema,l=(null==t?void 0:t[a.name])?{default:{value:null==t?void 0:t[a.name],rawValue:null==t?void 0:t[a.name],mime:a.name}}:a.examples||a.formExamples;return e[a.name]={name:a.name,examples:l,schema:getBodySchema(null===(i=a.schema)||void 0===i?void 0:i.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
1
+ var __rest=this&&this.__rest||function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)n.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(t[r[a]]=e[r[a]])}return t};import{isPrimitive}from"@redocly/theme";import{getOperation}from"../../models";import{normalizeOptions,OpenAPIParser}from"../../services";export function convertOperationToReplayValue(e,n,t){var r;if(!t)return;const a=new OpenAPIParser(t),i=null===(r=a.definition.paths)||void 0===r?void 0:r[e],o=null==i?void 0:i[n],m=getOperation(a,Object.assign(Object.assign({},o),{pathName:e,httpVerb:n,pathParameters:i.parameters||[],pathServers:i.servers||[]}),void 0,normalizeOptions({}),""),s={id:m.id,name:m.name,method:m.httpVerb,operationId:m.operationId,parameters:convertParameters(m.parameters),body:convertRequestBody(m.requestBody,t),path:m.path,href:m.href,servers:m.servers,security:convertRequestSecurity(m.security),responses:Object.fromEntries(m.responses.map((e=>{var n;return[e.code,{code:e.code,description:e.description,mediaTypes:null===(n=e.content)||void 0===n?void 0:n.mediaTypes.reduce(((e,n)=>{var r;return e[n.name]={name:n.name,schema:getBodySchema(null===(r=n.schema)||void 0===r?void 0:r.rawSchema,t)},e}),{})}]})))};return s}function convertParameters(e,n){const t=new Set,r=e.map((e=>{var r;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(r=null==n?void 0:n[String(e.in)])||void 0===r?void 0:r[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(n||{}))for(const[n,i]of Object.entries(a||{}))t.has(e+":"+n)||r.push({name:n,in:e,required:!1,description:"",example:String(i),schema:void 0});return r}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,r,a,i,o;const m=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(r=e[0])||void 0===r?void 0:r.examples);if(m)return m;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const s=(null===(i=null==n?void 0:n.default)||void 0===i?void 0:i.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==s?void 0:s[e.name])?isPrimitive(null==s?void 0:s[e.name])?String(null==s?void 0:s[e.name]):JSON.stringify(null==s?void 0:s[e.name]):""}function convertRequestBody(e,n,t){var r;if(!e||!(null===(r=e.content)||void 0===r?void 0:r.mediaTypes)){if(!t)return;const{activeExampleName:e}=t,n=__rest(t,["activeExampleName"]);return{activeExampleName:e,mediaTypes:Object.fromEntries(Object.entries(n).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,activeExampleName:null==t?void 0:t.activeExampleName,mediaTypes:e.content.mediaTypes.reduce(((e,r)=>{var a,i;const o=r.schema,m=(null==t?void 0:t[r.name])?{default:{value:null==t?void 0:t[r.name],rawValue:null==t?void 0:t[r.name],mime:r.name}}:r.examples||r.formExamples;return e[r.name]={name:r.name,examples:m,schema:getBodySchema(null===(a=r.schema)||void 0===a?void 0:a.rawSchema,n),parameters:null===(i=null==o?void 0:o.fields)||void 0===i?void 0:i.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,m)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.map((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,openIdConnectUrl:e.openIdConnectUrl,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{ExampleSwitch,useExampleKey}from"../Samples";import{useActivateExample}from"../../hooks";function ExampleComponent({mediaType:e,mediaContent:m,renderSample:t}){const a=e.examples||{},o=Object.keys(a),p=useActivateExample(m),{exampleKey:s}=useExampleKey(e.operation,a);if(!o.length||1===o.length)return t();return _jsxs(_Fragment,{children:[_jsx(ExampleSwitch,{examples:a,exampleKey:s,onChange:e=>p(e)}),t(s)]})}export const Example=memo(ExampleComponent);
1
+ import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import{ExampleSwitch,useExampleKey}from"../Samples";import{useActivateExample}from"../../hooks";import{operationStore}from"../../jotai/operation";function ExampleComponent({mediaType:e,mediaContent:t,renderSample:o}){const m=e.operation.pointer,[a,r]=useAtom(operationStore(m)),n=e.examples||{},p=Object.keys(n),s=useActivateExample(t),{exampleKey:i}=useExampleKey(e.operation,n);if(!p.length||1===p.length)return o();return _jsxs(_Fragment,{children:[_jsx(ExampleSwitch,{examples:n,exampleKey:i,onChange:e=>{r(Object.assign(Object.assign({},a),{activeExampleName:e,activeOneOf:{[m]:p.indexOf(e)},requestValues:{body:null}})),s(e)}}),o(i)]})}export const Example=memo(ExampleComponent);
2
2
  //# sourceMappingURL=Example.js.map
@@ -1,7 +1,13 @@
1
- var __rest=this&&this.__rest||function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)o.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(a[t[r]]=e[t[r]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,t=__rest(e,["operation","disableFooter"]);const[{activeLanguage:r},l]=useAtom(languageAtom),{samples:s}=useCodeSamples(o),{parser:n,options:{events:p,corsProxyUrl:m,hideReplay:i}}=useAtomValue(globalStoreAtom),d=useActiveWithFallback(s,r),c=useCallback((({lang:e,title:a})=>()=>{var t;const r=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});null===(t=null==p?void 0:p.codeSamplesCopy)||void 0===t||t.call(p,r)}),[o,p]),u=useMemo((()=>{if(!(a||o.isWebhook||i||o.hideReplay))return _jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:n.definition})}),[m,a,i,o,n.definition]),y=useMemo((()=>s.map((e=>e.key===d?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:c(e)},t)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:c(e)},t))},e.key+o.id):null))),[d,c,o,t,s]);return s.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:()=>_jsxs(StyledPanelHeader,{isExpandable:!1,children:[_jsx(StyledServerListDropdown,{operation:o}),_jsx(LanguageDropdown,{activeTab:d,samples:s,onChange:l})]}),footer:u,isExpandable:!1,children:y}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
1
+ var __rest=this&&this.__rest||function(e,o){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(a[r[t]]=e[r[t]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,r=__rest(e,["operation","disableFooter"]);const[{activeLanguage:t,languages:l},s]=useAtom(languageAtom),{samples:n}=useCodeSamples(o),{parser:p,options:{events:i,corsProxyUrl:m,hideReplay:d}}=useAtomValue(globalStoreAtom),c=!(a||o.isWebhook||d||o.hideReplay),u=!!(null==l?void 0:l.length),y=useActiveWithFallback(n,t),g=useCallback((({lang:e,title:a})=>()=>{var r;const t=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});null===(r=null==i?void 0:i.codeSamplesCopy)||void 0===r||r.call(i,t)}),[o,i]),f=()=>_jsxs(StyledPanelHeader,{isExpandable:!1,withReplay:!u&&c,children:[_jsx(StyledServerListDropdown,{operation:o}),u&&_jsx(LanguageDropdown,{activeTab:y,samples:n,onChange:s}),!u&&c&&_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})]}),v=useMemo((()=>{if(c&&u)return _jsx(ReplayWrapper,{children:_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})})}),[c,u,o,m,p.definition]),x=useMemo((()=>n.map((e=>e.key===y?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:g(e)},r)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:g(e)},r))},e.key+o.id):null))),[y,g,o,r,n]);return l&&!n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,isExpandable:!1,expanded:!1}):n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,footer:v,isExpandable:!1,children:x}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
2
2
  flex-wrap: nowrap;
3
+ ${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
3
4
  `,StyledServerListDropdown=styled(ServerListDropdown)`
4
5
  padding-right: var(--spacing-base);
5
6
  min-width: 0;
7
+ `,ReplayWrapper=styled.div`
8
+ display: flex;
9
+ justify-content: flex-end;
10
+ border-top: var(--panel-border);
11
+ padding: var(--spacing-base) var(--spacing-md) var(--spacing-md);
6
12
  `;
7
13
  //# sourceMappingURL=RequestSamples.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:a}){const{events:n}=useAtomValue(globalOptionsAtom),l=e.responses.filter((e=>{var o,a;return null!==(a=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==a&&a})),s=l.map((({code:e})=>({key:e,title:e}))),t=(null==s?void 0:s.find((({key:e})=>e===o)))||(null==s?void 0:s[0]),m=useCallback((()=>{var o;const a=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==n?void 0:n.codeSamplesCopy)||void 0===o||o.call(n,a)}),[e,n]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:s,activeTab:t,onChange:e=>a(e.key)})}),isExpandable:!1,children:l.map((e=>e.code===t.key?_jsx("div",{children:_jsx(PayloadSamples,{content:e.content,onCopyClick:m})},e.code):null))})}export const ResponseSamples=memo(ResponseSamplesComponent);
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples,StyledCodeBlock}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";import{useTranslate}from"../../hooks";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:n}){const{events:a}=useAtomValue(globalOptionsAtom),s=useTranslate(),l=e.responses.filter((e=>{var o,n;return null!==(n=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==n&&n})),t=e.responses.map((({code:e})=>({key:e,title:e}))),r=(null==t?void 0:t.find((({key:e})=>e===o)))||(null==t?void 0:t[0]),m=useCallback((()=>{var o;const n=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,n)}),[e,a]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:t,activeTab:r,onChange:e=>n(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===r.key?_jsx("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?_jsx(PayloadSamples,{content:e.content,onCopyClick:m}):_jsx(StyledCodeBlock,{source:s("openapi.noResponseContent","No content")})},e.code):null}))})}export const ResponseSamples=memo(ResponseSamplesComponent);
2
2
  //# sourceMappingURL=ResponseSamples.js.map
@@ -1,4 +1,4 @@
1
- var __rest=this&&this.__rest||function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)r.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(t[o[i]]=e[o[i]])}return t};import{jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{useLocation}from"react-router-dom";import styled from"styled-components";import{ArraySchema}from"./ArraySchema";import{ObjectSchema}from"./ObjectSchema";import{OneOfSchema}from"./OneOfSchema";import{RecursiveSchema}from"./RecursiveSchema";import{operationStore}from"../../jotai/operation";import{FieldDetails}from"../PropertyDetails";import{pathIncludesLink}from"../../utils";function SchemaComponent(e){var r,{schema:t,onDiscriminatorChange:o}=e,i=__rest(e,["schema","onDiscriminatorChange"]);const{activeOneOf:n}=useAtomValue(operationStore(null==t?void 0:t.operationPointer)),a=useLocation();if(!t)return null;const{type:s,oneOf:c,discriminatorProp:m,isCircular:l}=t;if(l)return _jsx(RecursiveSchema,{schema:t});if(void 0!==m){if(!c||!c.length)return console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${t.title}`),null;const e=c.findIndex(((e,r)=>pathIncludesLink(a,`d=${r}`))),r=-1===e?0:e,s=c[void 0!==n[t.pointer]?n[t.pointer]:r];return(null==s?void 0:s.isCircular)?_jsx(RecursiveSchema,{schema:s}):_jsx(ObjectSchema,Object.assign({},i,{schema:s,discriminator:{fieldName:m,parentSchema:t,activeOneOfIdx:r,onChange:o}}))}if(void 0!==c)return _jsx(OneOfSchema,Object.assign({},i,{schema:t}));const p=Array.isArray(s)?s:[s];if(p.includes("object")){if(null===(r=t.fields)||void 0===r?void 0:r.length)return _jsx(ObjectSchema,Object.assign({},i,{schema:t}))}else if(p.includes("array"))return _jsx(ArraySchema,Object.assign({},i,{schema:t}));const d={schema:t,name:"",description:t.description,required:!1,deprecated:!1};return _jsx(Wrapper,{children:_jsx(FieldDetails,{field:d,fieldParentsName:i.fieldParentsName})})}export const Schema=memo(SchemaComponent);const Wrapper=styled.div`
1
+ var __rest=this&&this.__rest||function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)r.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(t[o[i]]=e[o[i]])}return t};import{jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useAtomValue}from"jotai";import{useLocation}from"react-router-dom";import styled from"styled-components";import{ArraySchema}from"./ArraySchema";import{ObjectSchema}from"./ObjectSchema";import{OneOfSchema}from"./OneOfSchema";import{RecursiveSchema}from"./RecursiveSchema";import{operationStore}from"../../jotai/operation";import{FieldDetails}from"../PropertyDetails";import{pathIncludesLink}from"../../utils";function SchemaComponent(e){var r,{schema:t,onDiscriminatorChange:o}=e,i=__rest(e,["schema","onDiscriminatorChange"]);const{activeOneOf:n}=useAtomValue(operationStore((null==t?void 0:t.operationPointer)||"")),a=useLocation();if(!t)return null;const{type:s,oneOf:c,discriminatorProp:m,isCircular:l}=t;if(l)return _jsx(RecursiveSchema,{schema:t});if(void 0!==m){if(!c||!c.length)return console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${t.title}`),null;const e=c.findIndex(((e,r)=>pathIncludesLink(a,`d=${r}`))),r=-1===e?0:e,s=c[void 0!==n[t.pointer]?n[t.pointer]:r];return(null==s?void 0:s.isCircular)?_jsx(RecursiveSchema,{schema:s}):_jsx(ObjectSchema,Object.assign({},i,{schema:s,discriminator:{fieldName:m,parentSchema:t,activeOneOfIdx:r,onChange:o}}))}if(void 0!==c)return _jsx(OneOfSchema,Object.assign({},i,{schema:t}));const p=Array.isArray(s)?s:[s];if(p.includes("object")){if(null===(r=t.fields)||void 0===r?void 0:r.length)return _jsx(ObjectSchema,Object.assign({},i,{schema:t}))}else if(p.includes("array"))return _jsx(ArraySchema,Object.assign({},i,{schema:t}));const d={schema:t,name:"",description:t.description,required:!1,deprecated:!1};return _jsx(Wrapper,{children:_jsx(FieldDetails,{field:d,fieldParentsName:i.fieldParentsName})})}export const Schema=memo(SchemaComponent);const Wrapper=styled.div`
2
2
  width: 100%;
3
3
  padding: var(--spacing-xxs) 0;
4
4
  border-bottom: 1px solid var(--border-color-primary);
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useLocation}from"react-router-dom";import{useAtomValue}from"jotai/index";import{pathIncludesLink}from"../../utils";import{operationStore}from"../../jotai/operation";import{extractTypeFromDeepLink}from"./helpers";import{ViewNested}from"../ViewNested";import{useTranslate}from"../../hooks";function SubSchemaComponent({expandByDefault:e,deepLink:o,level:r,expandable:t=!1,isNestedArray:a=!1,isArray:i="",propertyLength:n="",children:p,operationPointer:m}){var s;const l=useTranslate(),d=useLocation(),u=pathIncludesLink(d,o),c=extractTypeFromDeepLink(o),x=useAtomValue(operationStore(m)),f=`${l("openapi.actions.show","Show")} ${1===Number(n)?"":n} ${i&&"array "}${1!==n?"properties":"property"}`;return _jsx(ViewNested,{expandByDefault:e||u,level:r,isNestedArray:a,expandable:t,expandText:f,children:p,expandedAll:null===(s=x[c])||void 0===s?void 0:s.expandedAll})}export const SubSchema=memo(SubSchemaComponent);
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useLocation}from"react-router-dom";import{useAtomValue}from"jotai/index";import{pathIncludesLink}from"../../utils";import{operationStore}from"../../jotai/operation";import{extractTypeFromDeepLink}from"./helpers";import{ViewNested}from"../ViewNested";import{useTranslate}from"../../hooks";function SubSchemaComponent({expandByDefault:e,deepLink:o,level:r,expandable:t=!1,isNestedArray:a=!1,isArray:i="",propertyLength:n="",children:p,operationPointer:m}){var s;const l=useTranslate(),d=useLocation(),u=pathIncludesLink(d,o),c=extractTypeFromDeepLink(o),x=useAtomValue(operationStore(m||"")),f=`${l("openapi.actions.show","Show")} ${1===Number(n)?"":n} ${i&&"array "}${1!==n?"properties":"property"}`;return _jsx(ViewNested,{expandByDefault:e||u,level:r,isNestedArray:a,expandable:t,expandText:f,children:p,expandedAll:null===(s=x[c])||void 0===s?void 0:s.expandedAll})}export const SubSchema=memo(SubSchemaComponent);
2
2
  //# sourceMappingURL=SubSchema.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import styled from"styled-components";import{LayoutVariant}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import{writeAtom}from"../../jotai/nexus";import{SamplesMiddlePanel,SamplesPanel,Row,Section,CodeBlockPanel}from"../common";import{getMediaType}from"../../models";import{MediaTypeSamples}from"../PayloadSamples";import{Schema}from"../Schema";import{Markdown}from"../Markdown";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{operationStore}from"../../jotai/operation";const getMediaTypeInfo=(e,o)=>{if(!e)return{};const a={schema:{$ref:e}};return o&&(a.examples={example:{$ref:o}}),a};function SchemaDefinitionComponent({schemaRef:e,exampleRef:o,showReadOnly:a=!0,showWriteOnly:t=!1}){var i,n,m;const s=useAtomValue(layoutAtom),{parser:r,options:l}=useAtomValue(globalStoreAtom),p=useMemo((()=>getMediaType(r,"json",!1,getMediaTypeInfo(e,o),l,{operation:{pointer:"SchemaDefinitionComponent"}})),[o,l,r,e]),[c,d]=useAtom(operationStore(null===(i=p.operation)||void 0===i?void 0:i.pointer)),u=useCallback((e=>{if(!p.schema)return;const o=p.schema,a=o.oneOf;if(a&&(null==p?void 0:p.examples)&&Object.keys(null==p?void 0:p.examples).includes(e)){const t=a.findIndex((o=>o.title===e));-1!==t&&o&&writeAtom(operationStore(o.operationPointer),(e=>{var a,i;return Object.assign(Object.assign({},e),{activeExampleName:(null===(i=null===(a=o.oneOf)||void 0===a?void 0:a[t])||void 0===i?void 0:i.title)||e.activeExampleName,activeOneOf:Object.assign(Object.assign({},e.activeOneOf),{[o.pointer]:t})})}))}c.activeExampleName!==e&&d((o=>Object.assign(Object.assign({},o),{activeExampleName:e})))}),[null==p?void 0:p.examples,p.schema,c.activeExampleName,d]),f=s===LayoutVariant.STACKED;return _jsx(Section,{children:_jsxs(Row,{layout:s,children:[_jsxs(SamplesMiddlePanel,{isStacked:f,children:[(null===(n=p.schema)||void 0===n?void 0:n.description)&&_jsx(Description,{children:_jsx(Markdown,{source:null===(m=p.schema)||void 0===m?void 0:m.description})}),_jsx(Schema,{skipWriteOnly:!t,skipReadOnly:!a,schema:p.schema,level:1})]}),_jsx(SamplesPanel,{isStacked:f,children:_jsx(CodeBlockPanel,{className:"panel-response-samples",children:_jsx(MediaTypeSamples,{mediaType:p,onChange:u})})})]})})}export const SchemaDefinition=memo(SchemaDefinitionComponent);const Description=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import styled from"styled-components";import{LayoutVariant}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import{writeAtom}from"../../jotai/nexus";import{SamplesMiddlePanel,SamplesPanel,Row,Section,CodeBlockPanel}from"../common";import{getMediaType}from"../../models";import{MediaTypeSamples}from"../PayloadSamples";import{Schema}from"../Schema";import{Markdown}from"../Markdown";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{operationStore}from"../../jotai/operation";const getMediaTypeInfo=(e,o)=>{if(!e)return{};const t={schema:{$ref:e}};return o&&(t.examples={example:{$ref:o}}),t};function SchemaDefinitionComponent({schemaRef:e,exampleRef:o,showReadOnly:t=!0,showWriteOnly:a=!1}){var i,m,n;const r=useAtomValue(layoutAtom),{parser:s,options:l}=useAtomValue(globalStoreAtom),p=useMemo((()=>getMediaType(s,"json",!1,getMediaTypeInfo(e,o),l,{operation:{pointer:"SchemaDefinitionComponent"}})),[o,l,s,e]),[c,d]=useAtom(operationStore(null===(i=p.operation)||void 0===i?void 0:i.pointer)),u=useCallback((e=>{var o,t;if(!p.schema)return;const a=p.schema,i=a.oneOf;if(i&&(null==p?void 0:p.examples)&&Object.keys(null==p?void 0:p.examples).includes(e)){const m=i.findIndex((o=>o.title===e));-1!==m&&a&&writeAtom(operationStore(a.operationPointer),{activeExampleName:null===(t=null===(o=a.oneOf)||void 0===o?void 0:o[m])||void 0===t?void 0:t.title,activeOneOf:{[a.pointer]:m}})}c.activeExampleName!==e&&d({activeExampleName:e})}),[null==p?void 0:p.examples,p.schema,c.activeExampleName,d]),f=r===LayoutVariant.STACKED;return _jsx(Section,{children:_jsxs(Row,{layout:r,children:[_jsxs(SamplesMiddlePanel,{isStacked:f,children:[(null===(m=p.schema)||void 0===m?void 0:m.description)&&_jsx(Description,{children:_jsx(Markdown,{source:null===(n=p.schema)||void 0===n?void 0:n.description})}),_jsx(Schema,{skipWriteOnly:!a,skipReadOnly:!t,schema:p.schema,level:1})]}),_jsx(SamplesPanel,{isStacked:f,children:_jsx(CodeBlockPanel,{className:"panel-response-samples",children:_jsx(MediaTypeSamples,{mediaType:p,onChange:u})})})]})})}export const SchemaDefinition=memo(SchemaDefinitionComponent);const Description=styled.div`
2
2
  margin-bottom: var(--spacing-vertical);
3
3
  `;
4
4
  //# sourceMappingURL=SchemaDefinition.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useEffect,useRef,useState}from"react";import styled from"styled-components";import{useMount,useUnmount,IS_BROWSER,breakpoints}from"@redocly/theme";import{useAtom}from"jotai";import{useLocation}from"react-router-dom";import{isSidebarOpenedAtom}from"../../jotai/app";import{SidebarActions}from"./SidebarActions";let Stickyfill;IS_BROWSER&&(Stickyfill=require("stickyfill"));const stickyfill=Stickyfill&&Stickyfill(),StyledStickySidebar=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useEffect,useRef,useState}from"react";import styled from"styled-components";import{useMount,breakpoints}from"@redocly/theme";import{useAtom}from"jotai";import{useLocation}from"react-router-dom";import{isSidebarOpenedAtom}from"../../jotai/app";import{SidebarActions}from"./SidebarActions";const StyledStickySidebar=styled.div`
2
2
  overflow: hidden;
3
3
  flex-direction: column;
4
4
  backface-visibility: hidden;
@@ -21,5 +21,5 @@ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";i
21
21
  @media print {
22
22
  display: none;
23
23
  }
24
- `;function StickyResponsiveSidebarComponent({scrollYOffset:e,className:i,children:t,collapsedSidebar:o}){const[s,r]=useState("0px"),a=useRef(null),l=useLocation(),[n,d]=useAtom(isSidebarOpenedAtom);return useEffect((()=>{l.hash&&d(!1)}),[l.pathname,l.hash,d]),useMount((()=>{stickyfill&&stickyfill.add(a.current);const i=e();r(`${i}px`)})),useUnmount((()=>{stickyfill&&stickyfill.remove(a.current)})),_jsx(_Fragment,{children:_jsxs(StyledStickySidebar,{open:n,className:i,offsetTop:s,style:{top:s},ref:a,collapsedSidebar:o,children:[o||n?t:null,_jsx(SidebarActions,{})]})})}export const StickyResponsiveSidebar=memo(StickyResponsiveSidebarComponent);
24
+ `;function StickyResponsiveSidebarComponent({scrollYOffset:e,className:o,children:t,collapsedSidebar:i}){const[s,r]=useState("0px"),a=useRef(null),d=useLocation(),[n,c]=useAtom(isSidebarOpenedAtom);return useEffect((()=>{d.hash&&c(!1)}),[d.pathname,d.hash,c]),useMount((()=>{const o=e();r(`${o}px`)})),_jsx(_Fragment,{children:_jsxs(StyledStickySidebar,{open:n,className:o,offsetTop:s,style:{top:s},ref:a,collapsedSidebar:i,children:[i||n?t:null,_jsx(SidebarActions,{})]})})}export const StickyResponsiveSidebar=memo(StickyResponsiveSidebarComponent);
25
25
  //# sourceMappingURL=StickyResponsiveSidebar.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useCallback}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:n,schema:t,defaultOneOfIdx:i}){var a,r;const[s,m]=useAtom(operationStore(n)),l=null===(r=e[null!==(a=s.activeOneOf[t.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,c=useCallback((({value:e})=>{void 0!==e&&(o?o(e):m((o=>{var n,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(n=t.oneOf)||void 0===n?void 0:n[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[t.pointer]:e})})})))}),[o,t.oneOf,t.pointer,m]);return isUndefined(l)?null:e.length>LIMIT_FOR_SEGMENTED?_jsx(Dropdown,{options:e,value:l,onChange:c}):_jsx(Segmented,{value:l,onChange:c,options:e,size:"small","data-testid":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useCallback,useEffect,useRef,useState}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:t,schema:n,defaultOneOfIdx:r}){var i,a;const[s,l]=useAtom(operationStore(t)),u=null===(a=e[null!==(i=s.activeOneOf[n.pointer])&&void 0!==i?i:r])||void 0===a?void 0:a.value,[d,m]=useState(!1),c=useRef(null);useEffect((()=>{if(!c.current)return;const e=()=>{var e;const o=null===(e=c.current)||void 0===e?void 0:e.querySelectorAll('button[role="tab"]'),t=Array.from(o||[]).some((e=>e.offsetWidth<e.scrollWidth));t!==d&&m(t)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[d,e]);const f=useCallback((({value:e})=>{var t,r;void 0!==e&&(o?o(e):l({activeExampleName:null===(r=null===(t=n.oneOf)||void 0===t?void 0:t[e])||void 0===r?void 0:r.title,activeOneOf:{[n.pointer]:e},requestValues:{body:null}}))}),[o,n.oneOf,n.pointer,l]);return isUndefined(u)?null:e.length>LIMIT_FOR_SEGMENTED||d?_jsx(Dropdown,{options:e,value:u,onChange:f}):_jsx(Segmented,{ref:c,value:u,onChange:f,options:e,size:"small","data-testid":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
2
2
  //# sourceMappingURL=SchemaSelection.js.map
@@ -1,2 +1,2 @@
1
- import{useCallback}from"react";import{useSetAtom}from"jotai";import{getActiveMediaType}from"../models";import{operationStore}from"../jotai/operation";export function useActivateExample(e){const i=useSetAtom(operationStore((null==e?void 0:e.operation.pointer)||"no_operation_pointer")),t=e?getActiveMediaType(e):void 0;return useCallback((e=>{var o,a,n;if(t)if(t.examples&&(null===(o=t.schema)||void 0===o?void 0:o.oneOf)&&Object.keys(t.examples).includes(e)){const o=null===(n=null===(a=t.schema)||void 0===a?void 0:a.oneOf)||void 0===n?void 0:n.findIndex((i=>i.title===e));i(-1===o?i=>Object.assign(Object.assign({},i),{activeExampleName:e,requestValues:{}}):e=>{var i,a,n,s;return Object.assign(Object.assign({},e),{activeOneOf:Object.assign(Object.assign({},e.activeOneOf),{[(null===(i=t.schema)||void 0===i?void 0:i.pointer)||""]:o}),activeExampleName:(null===(s=null===(n=null===(a=t.schema)||void 0===a?void 0:a.oneOf)||void 0===n?void 0:n[o])||void 0===s?void 0:s.title)||e.activeExampleName,requestValues:{}})})}else i((i=>Object.assign(Object.assign({},i),{activeExampleName:e,requestValues:{}})))}),[t,i])}
1
+ import{useCallback}from"react";import{useSetAtom}from"jotai";import{getActiveMediaType}from"../models";import{operationStore}from"../jotai/operation";export function useActivateExample(e){const o=useSetAtom(operationStore((null==e?void 0:e.operation.pointer)||"no_operation_pointer")),i=e?getActiveMediaType(e):void 0;return useCallback((e=>{var t,a,l,n,r,m,v;if(i)if(i.examples&&(null===(t=i.schema)||void 0===t?void 0:t.oneOf)&&Object.keys(i.examples).includes(e)){const t=null===(l=null===(a=i.schema)||void 0===a?void 0:a.oneOf)||void 0===l?void 0:l.findIndex((o=>o.title===e));o(-1===t?{activeExampleName:e,requestValues:{}}:{activeOneOf:{[(null===(n=i.schema)||void 0===n?void 0:n.pointer)||""]:t},activeExampleName:null===(v=null===(m=null===(r=i.schema)||void 0===r?void 0:r.oneOf)||void 0===m?void 0:m[t])||void 0===v?void 0:v.title,requestValues:{}})}else o({activeExampleName:e,requestValues:{}})}),[i,o])}
2
2
  //# sourceMappingURL=useActivateExample.js.map
@@ -1,12 +1,12 @@
1
1
  import type { ContentItemModel } from '../models';
2
- import type { ExtendedMenuItem, IMenuItem, OpenAPIParser, Options } from '../services';
2
+ import type { OpenAPIParser, Options } from '../services';
3
3
  type UseContentItemsInput = {
4
4
  parser: OpenAPIParser;
5
5
  options: Options;
6
6
  };
7
7
  type UseContentItemsReturnType = {
8
8
  contentItems: ContentItemModel[];
9
- flatItems: (ExtendedMenuItem & IMenuItem)[];
9
+ flatItems: ContentItemModel[];
10
10
  };
11
11
  export declare const useContentItems: ({ options, parser, }: UseContentItemsInput) => UseContentItemsReturnType;
12
12
  export {};
@@ -16,3 +16,4 @@ export { OpenAPIParser } from './services';
16
16
  export { buildContentItems, normalizeOptions } from './services';
17
17
  export declare function useOpenapiDocsOptions(): import("./services").Options;
18
18
  export { EmbeddedReplay } from './components/Replay/EmbeddedReplay';
19
+ export { convertOperationToReplayValue } from './components/Replay/utils';
package/lib-esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";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";
1
+ import{useAtomValue}from"jotai";import{globalOptionsAtom}from"./jotai/store";export{getOperation}from"./models/operation";export{getServerEnvName}from"./utils/environments";export{getTagOrGroup}from"./models/group";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";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{atom}from"jotai";import{atomWithStorage,createJSONStorage}from"jotai/utils";import{IS_BROWSER,LayoutVariant}from"@redocly/theme";import{getCookie,removeCookie,setCookie}from"../utils/cookies";import{globalOptionsAtom}from"./store";import{mergeEnvData}from"../utils/environments";import{fromSessionStorage,safeJsonParse,toSessionStorage}from"../utils";const defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const n=safeJsonParse(getCookie(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),r=safeJsonParse(fromSessionStorage(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),r),n)},setItem:(e,t)=>{const{environments:o}=t,n=__rest(t,["environments"]),r={environments:o};setCookie(e,JSON.stringify(n)),toSessionStorage(e,JSON.stringify(r))},removeItem:e=>{removeCookie(e),sessionStorage.removeItem(e)}};export const appStore=atomWithStorage("redoc.appStore",defaultAppStoreValue,customStorage);export const appStoreOverrideAtom=atom({});export const environmentsAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom);return mergeEnvData(t.environments,(null==o?void 0:o.environments)||{})}));export const environmentAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom),n=mergeEnvData(t.environments,(null==o?void 0:o.environments)||{}),r=(null==o?void 0:o.environment)||t.environment,a=n[r]?r:Object.keys(n)[0];return[n[a]||{},a||""]}),((e,t,{environment:o,environments:n})=>{const r=e(appStore);t(appStore,Object.assign(Object.assign({},r),{environment:o||r.environment,environments:mergeEnvData(r.environments||{},n)}))}));export const isSidebarOpenedAtom=atom((e=>e(appStore).isSidebarOpened),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{isSidebarOpened:o}))}));export const activeMimeNameAtom=atom((e=>e(appStore).activeMimeName),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{activeMimeName:o}))}));export const layoutAtom=atom((e=>e(appStore).layout),((e,t,o=LayoutVariant.STACKED)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{layout:o}))}));export const appSessionStore=atomWithStorage("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},IS_BROWSER?createJSONStorage((()=>sessionStorage)):void 0);export const collapsedSidebarAtom=atom((e=>e(appSessionStore).collapsedSidebar),((e,t,o)=>{const n=e(appSessionStore);t(appSessionStore,Object.assign(Object.assign({},n),{collapsedSidebar:o}))}));export function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}export const languageAtom=atom((e=>{var t;const{codeSamples:o}=e(globalOptionsAtom),n=o.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),r=e(appStore).language||n[0].key;return{languages:n,activeLanguage:(null===(t=n.find((({key:e})=>e===r)))||void 0===t?void 0:t.key)||n[0].key}}),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{language:o}))}));
1
+ var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{atom}from"jotai";import{atomWithStorage,createJSONStorage}from"jotai/utils";import{IS_BROWSER,LayoutVariant}from"@redocly/theme";import{getCookie,removeCookie,setCookie}from"../utils/cookies";import{globalOptionsAtom}from"./store";import{mergeEnvData}from"../utils/environments";import{fromSessionStorage,safeJsonParse,toSessionStorage}from"../utils";const defaultAppStoreValue={isSidebarOpened:!0,activeMimeName:"",layout:LayoutVariant.THREE_PANEL,language:"",environment:"",environments:{}},customStorage={getItem:e=>{var t,o;const n=safeJsonParse(getCookie(e,null===(o=null===(t=globalThis.redoclyCookieStorage)||void 0===t?void 0:t.getStore)||void 0===o?void 0:o.call(t))),r=safeJsonParse(fromSessionStorage(e));return Object.assign(Object.assign(Object.assign({},defaultAppStoreValue),r),n)},setItem:(e,t)=>{const{environments:o}=t,n=__rest(t,["environments"]),r={environments:o};setCookie(e,JSON.stringify(n)),toSessionStorage(e,JSON.stringify(r))},removeItem:e=>{removeCookie(e),sessionStorage.removeItem(e)}};export const appStore=atomWithStorage("redoc.appStore",defaultAppStoreValue,customStorage);export const appStoreOverrideAtom=atom({});export const environmentsAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom);return mergeEnvData(t.environments,(null==o?void 0:o.environments)||{})}));export const environmentAtom=atom((e=>{const t=e(appStore),o=e(appStoreOverrideAtom),n=mergeEnvData(t.environments,(null==o?void 0:o.environments)||{}),r=(null==o?void 0:o.environment)||t.environment,a=n[r]?r:Object.keys(n)[0];return[n[a]||{},a||""]}),((e,t,{environment:o,environments:n})=>{const r=e(appStore);t(appStore,Object.assign(Object.assign({},r),{environment:o||r.environment,environments:mergeEnvData(r.environments||{},n)}))}));export const isSidebarOpenedAtom=atom((e=>e(appStore).isSidebarOpened),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{isSidebarOpened:o}))}));export const activeMimeNameAtom=atom((e=>e(appStore).activeMimeName),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{activeMimeName:o}))}));export const layoutAtom=atom((e=>e(appStore).layout),((e,t,o=LayoutVariant.STACKED)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{layout:o}))}));export const appSessionStore=atomWithStorage("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},IS_BROWSER?createJSONStorage((()=>sessionStorage)):void 0);export const collapsedSidebarAtom=atom((e=>e(appSessionStore).collapsedSidebar),((e,t,o)=>{const n=e(appSessionStore);t(appSessionStore,Object.assign(Object.assign({},n),{collapsedSidebar:o}))}));export function getLangKey({lang:e,label:t}){return(t||e).toLowerCase()}export const languageAtom=atom((e=>{var t,o,n;const{codeSamples:r}=e(globalOptionsAtom),a=r.languages.map((({lang:e,label:t},o)=>({key:getLangKey({lang:e,label:t}),lang:e,title:t||e,order:o}))),s=e(appStore).language||(null===(t=a[0])||void 0===t?void 0:t.key);return{languages:a,activeLanguage:(null===(o=a.find((({key:e})=>e===s)))||void 0===o?void 0:o.key)||(null===(n=a[0])||void 0===n?void 0:n.key)}}),((e,t,o)=>{const n=e(appStore);t(appStore,Object.assign(Object.assign({},n),{language:o}))}));
2
2
  //# sourceMappingURL=app.js.map
@@ -31,6 +31,7 @@ export declare function getDefaultOperationStore(pointer: string, requestValues?
31
31
  expandedAll: undefined;
32
32
  };
33
33
  };
34
- export declare const operationStore: import("jotai/vanilla/utils/atomFamily").AtomFamily<any, import("jotai").PrimitiveAtom<OperationStore> & {
35
- init: OperationStore;
36
- }>;
34
+ export declare const allOperations: import("jotai").PrimitiveAtom<Record<string, OperationStore>> & {
35
+ init: Record<string, OperationStore>;
36
+ };
37
+ export declare const operationStore: import("jotai/vanilla/utils/atomFamily").AtomFamily<string, import("jotai").WritableAtom<OperationStore, [update: Partial<OperationStore>], void>>;
@@ -1,2 +1,2 @@
1
- import{atom}from"jotai";import{atomFamily}from"jotai/utils";import deepEqual from"fast-deep-equal";export function getDefaultOperationStore(e,t={}){return{activeExampleName:void 0,activeOneOf:{[e]:0},requestValues:t,request:{expandedAll:void 0},response:{expandedAll:void 0}}}export const operationStore=atomFamily((e=>atom(getDefaultOperationStore(e))),deepEqual);
1
+ import{atom}from"jotai";import{atomFamily}from"jotai/utils";import merge from"deepmerge";export function getDefaultOperationStore(e,t={}){return{activeExampleName:void 0,activeOneOf:{[e]:0},requestValues:t,request:{expandedAll:void 0},response:{expandedAll:void 0}}}export const allOperations=atom({});export const operationStore=atomFamily((e=>atom((t=>{var o;return(null===(o=t(allOperations))||void 0===o?void 0:o[e])||getDefaultOperationStore(e)}),((t,o,a)=>{const r=t(allOperations),i=r[e]||getDefaultOperationStore(e);o(allOperations,Object.assign(Object.assign({},r),{[e]:merge(i,a)}))}))));
2
2
  //# sourceMappingURL=operation.js.map
@@ -1,3 +1,7 @@
1
+ import type { OperationMenuItem } from '../models';
1
2
  export declare const replayStateAtom: import("jotai").PrimitiveAtom<string> & {
2
3
  init: string;
3
4
  };
5
+ export declare const allOperationsAtom: import("jotai").PrimitiveAtom<OperationMenuItem[]> & {
6
+ init: OperationMenuItem[];
7
+ };
@@ -1,2 +1,2 @@
1
- import{atom}from"jotai";import{LOADING_STATE}from"../constants";export const replayStateAtom=atom(LOADING_STATE.NOT_LOADED);
1
+ import{atom}from"jotai";import{LOADING_STATE}from"../constants";export const replayStateAtom=atom(LOADING_STATE.NOT_LOADED);export const allOperationsAtom=atom([]);
2
2
  //# sourceMappingURL=replay.js.map
@@ -1,2 +1,2 @@
1
- import{removeLeadingSlash}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,getValueFromMdParsedExtension,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByDeprecated,sortByRequired}from"../utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurity}from"./security";import{getResponse}from"./response";import{getHref}from"../services/menu/operation";export function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}export function getOperation(e,r,t,o,i,s,a=!0){var n,l;const p=r.isWebhook,d={operationDefinition:r,parent:t,pointer:r.pointer,description:a?getValueFromMdParsedExtension(r,"description"):"",externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:p,isCallback:Boolean(null==s?void 0:s.isCallback),isEvent:(null==s?void 0:s.isCallback)||p,name:getOperationName(r),defaultExampleName:r.defaultSampleName,[REDOCLY_TEAMS_RBAC]:r[REDOCLY_TEAMS_RBAC]||(null==t?void 0:t[REDOCLY_TEAMS_RBAC]),type:"operation",callbackId:null==s?void 0:s.id,href:i,get callbacks(){return a?Object.keys(r.callbacks||[]).map((s=>{var a;return getCallback(e,s,null===(a=r.callbacks)||void 0===a?void 0:a[s],d.pointer,o,i,t)})):[]},get responses(){let t=!1;return a?Object.keys(r.responses||[]).filter((e=>"default"===e||("success"===getStatusCodeType(e)&&(t=!0),isStatusCode(e)))).map((i=>getResponse({parser:e,code:i,defaultAsError:t,infoOrRef:r.responses[i],options:o,isEvent:d.isEvent,operation:d}))):[]},get parameters(){if(!a)return[];let t=mergeParams(e,r.pathParameters,r.parameters,{pathPointer:JsonPointer.dirName(d.pointer),operationPointer:d.pointer}).map((({paramOrRef:r,pointer:t})=>getField(e,r,t,o,{operation:d,type:"request"})));return o.sortRequiredPropsFirst&&(t=sortByRequired(t)),sortByDeprecated(t)}};(null==s?void 0:s.isCallback)?(d.security=getSecurity(r.security,e),d.servers=normalizeServers("",r.servers||r.pathServers||[]),d.id=removeLeadingSlash(i)):(d.id=getOperationId(r,t),d.href=d.href||getHref(d),d.security=a?getSecurity(r.security||e.definition.security,e):[],d.servers=a?normalizeServers(e.definitionUrl,mergeInMockServer(r.servers||r.pathServers||e.definition.servers||[],o.mockServer)):[]),o.showExtensions&&(d.extensions=extractExtensions(r,o.showExtensions)),d.requestBody=a&&r.requestBody?getRequestBody({parser:e,infoOrRef:r.requestBody,options:o,operation:d,isEvent:d.isEvent}):void 0;const c=null===(n=d.requestBody)||void 0===n?void 0:n.content;return d.payload={lang:"Payload",source:"",requestBodyContent:(null==c?void 0:c.hasSample)?c:void 0},d.definitionSamples=r["x-codeSamples"]||[],d.badges=(null===(l=r["x-badges"])||void 0===l?void 0:l.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],d.hasSamples=(null==c?void 0:c.hasSample)||d.definitionSamples.length>0,d.hideReplay=!0===r["x-hideReplay"],d}export function mergeInMockServer(e,r){if(!r)return e;const t={url:r.url,description:r.description};switch(r.position){case"first":return[t,...e];case"last":return[...e,t];case"replace":return[t];default:return e}}
1
+ import{removeLeadingSlash}from"@redocly/theme";import{REDOCLY_TEAMS_RBAC}from"@redocly/config";import{extractExtensions,getOperationId,getOperationName,getStatusCodeType,getValueFromMdParsedExtension,isStatusCode,JsonPointer,mergeParams,normalizeServers,sortByDeprecated,sortByRequired}from"../utils";import{getCallback}from"./callback";import{getField}from"./field";import{getRequestBody}from"./request";import{getSecurity}from"./security";import{getResponse}from"./response";import{getHref}from"../services/menu/operation";export function isPayloadSample(e){return"Payload"===e.lang&&"requestBodyContent"in e}export function getOperation(e,r,t,o,i,s,a=!0){var n,l,p;const d=r.isWebhook,c={operationDefinition:r,parent:t,pointer:r.pointer,description:a?getValueFromMdParsedExtension(r,"description"):"",externalDocs:r.externalDocs,deprecated:!!r.deprecated,httpVerb:r.httpVerb,operationId:r.operationId,path:r.pathName,isWebhook:d,isCallback:Boolean(null==s?void 0:s.isCallback),isEvent:(null==s?void 0:s.isCallback)||d,name:getOperationName(r),defaultExampleName:r.defaultSampleName,[REDOCLY_TEAMS_RBAC]:r[REDOCLY_TEAMS_RBAC]||(null==t?void 0:t[REDOCLY_TEAMS_RBAC]),type:"operation",callbackId:null==s?void 0:s.id,href:i,get callbacks(){return a?Object.keys(r.callbacks||[]).map((s=>{var a;return getCallback(e,s,null===(a=r.callbacks)||void 0===a?void 0:a[s],c.pointer,o,i,t)})):[]},get responses(){let t=!1;return a?Object.keys(r.responses||[]).filter((e=>"default"===e||("success"===getStatusCodeType(e)&&(t=!0),isStatusCode(e)))).map((i=>getResponse({parser:e,code:i,defaultAsError:t,infoOrRef:r.responses[i],options:o,isEvent:c.isEvent,operation:c}))):[]},get parameters(){if(!a)return[];let t=mergeParams(e,r.pathParameters,r.parameters,{pathPointer:JsonPointer.dirName(c.pointer),operationPointer:c.pointer}).map((({paramOrRef:r,pointer:t})=>getField(e,r,t,o,{operation:c,type:"request"})));return o.sortRequiredPropsFirst&&(t=sortByRequired(t)),sortByDeprecated(t)}};if(null==s?void 0:s.isCallback)c.security=getSecurity(r.security,e),c.servers=normalizeServers("",r.servers||r.pathServers||[]),c.id=removeLeadingSlash(i);else{c.id=getOperationId(r,t),c.href=c.href||getHref(c),c.security=a?getSecurity(r.security||e.definition.security,e):[];const i=r.servers||((null===(n=r.pathServers)||void 0===n?void 0:n.length)?r.pathServers:null)||e.definition.servers||[];c.servers=a?normalizeServers(e.definitionUrl,mergeInMockServer(i,o.mockServer)):[]}o.showExtensions&&(c.extensions=extractExtensions(r,o.showExtensions)),c.requestBody=a&&r.requestBody?getRequestBody({parser:e,infoOrRef:r.requestBody,options:o,operation:c,isEvent:c.isEvent}):void 0;const u=null===(l=c.requestBody)||void 0===l?void 0:l.content;return c.payload={lang:"Payload",source:"",requestBodyContent:(null==u?void 0:u.hasSample)?u:void 0},c.definitionSamples=r["x-codeSamples"]||[],c.badges=(null===(p=r["x-badges"])||void 0===p?void 0:p.map((({name:e,color:r,position:t})=>({name:e,color:r||"var(--color-info-base)",position:t||"after"}))))||[],c.hasSamples=(null==u?void 0:u.hasSample)||c.definitionSamples.length>0,c.hideReplay=!0===r["x-hideReplay"],c}export function mergeInMockServer(e,r){if(!r)return e;const t={url:r.url,description:r.description};switch(r.position){case"first":return[t,...e];case"last":return[...e,t];case"replace":return[t];default:return e}}
2
2
  //# sourceMappingURL=operation.js.map
@@ -1,9 +1,8 @@
1
1
  import type { OpenAPIParser } from '../OpenAPIParser';
2
2
  import type { Options } from '../config-options';
3
3
  import type { ContentItemModel } from '../../models';
4
- import type { ExtendedMenuItem, IMenuItem } from '../types';
5
4
  export declare function buildMenuStructure(parser: OpenAPIParser, options: Options): ContentItemModel[];
6
5
  export declare function buildContentItems(parser: OpenAPIParser, options: Options): {
7
6
  contentItems: ContentItemModel[];
8
- flatItems: (ExtendedMenuItem & IMenuItem)[];
7
+ flatItems: ContentItemModel[];
9
8
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.5.16",
3
+ "version": "3.5.18",
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.26.1",
27
+ "@redocly/openapi-core": "1.27.1",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "2.5.4",
30
30
  "fast-deep-equal": "^3.1.3",
@@ -36,7 +36,6 @@
36
36
  "prismjs": "1.29.0",
37
37
  "react-router-dom": "^6.21.1",
38
38
  "slugify": "^1.4.4",
39
- "stickyfill": "^1.1.1",
40
39
  "stringify-object": "^3.3.0",
41
40
  "styled-components": "^4.1.1 || ^5.3.11",
42
41
  "swagger2openapi": "^7.0.8",
@@ -44,8 +43,8 @@
44
43
  "url": "~0.11.0",
45
44
  "url-template": "^2.0.8",
46
45
  "util": "~0.12.5",
47
- "@redocly/config": "0.20.0",
48
- "@redocly/replay": "0.8.13"
46
+ "@redocly/config": "0.20.1",
47
+ "@redocly/replay": "0.9.0"
49
48
  },
50
49
  "devDependencies": {
51
50
  "@shikijs/transformers": "1.24.0",
@@ -58,7 +57,7 @@
58
57
  "@types/jest-when": "3.5.5",
59
58
  "@types/json-pointer": "1.0.34",
60
59
  "@types/json-schema": "^7.0.15",
61
- "@types/node": "18.19.3",
60
+ "@types/node": "22.10.5",
62
61
  "@types/prismjs": "1.26.4",
63
62
  "@types/react": "18.3.9",
64
63
  "@types/react-dom": "18.3.5",