@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.
- package/dist/redocly-openapi-docs.min.js +985 -957
- package/lib/components/ExpandAllButton/ExpandAllButton.js +1 -1
- package/lib/components/OperationItem/_tests_/OperationItem.test.js +1 -1
- package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
- package/lib/components/Replay/EmbeddedReplay.d.ts +3 -4
- package/lib/components/Replay/EmbeddedReplay.js +1 -1
- package/lib/components/Replay/Replay.js +1 -6
- package/lib/components/Replay/utils.d.ts +13 -5
- package/lib/components/Replay/utils.js +1 -1
- package/lib/components/RequestSamples/Example.js +1 -1
- package/lib/components/RequestSamples/RequestSamples.js +7 -1
- package/lib/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib/components/Schema/Schema.js +1 -1
- package/lib/components/Schema/SubSchema.js +1 -1
- package/lib/components/SchemaDefinition/SchemaDefinition.js +1 -1
- package/lib/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
- package/lib/components/common/SchemaSelection/SchemaSelection.js +1 -1
- package/lib/hooks/useActivateExample.js +1 -1
- package/lib/hooks/useContentItems.d.ts +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/jotai/app.js +1 -1
- package/lib/jotai/operation.d.ts +4 -3
- package/lib/jotai/operation.js +1 -1
- package/lib/jotai/replay.d.ts +4 -0
- package/lib/jotai/replay.js +1 -1
- package/lib/models/operation.js +1 -1
- package/lib/services/menu/builder.d.ts +1 -2
- package/lib-esm/components/ExpandAllButton/ExpandAllButton.js +1 -1
- package/lib-esm/components/OperationItem/_tests_/OperationItem.test.js +1 -1
- package/lib-esm/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
- package/lib-esm/components/Replay/EmbeddedReplay.d.ts +3 -4
- package/lib-esm/components/Replay/EmbeddedReplay.js +1 -1
- package/lib-esm/components/Replay/Replay.js +1 -6
- package/lib-esm/components/Replay/utils.d.ts +13 -5
- package/lib-esm/components/Replay/utils.js +1 -1
- package/lib-esm/components/RequestSamples/Example.js +1 -1
- package/lib-esm/components/RequestSamples/RequestSamples.js +7 -1
- package/lib-esm/components/ResponseSamples/ResponseSamples.js +1 -1
- package/lib-esm/components/Schema/Schema.js +1 -1
- package/lib-esm/components/Schema/SubSchema.js +1 -1
- package/lib-esm/components/SchemaDefinition/SchemaDefinition.js +1 -1
- package/lib-esm/components/StickySidebar/StickyResponsiveSidebar.js +2 -2
- package/lib-esm/components/common/SchemaSelection/SchemaSelection.js +1 -1
- package/lib-esm/hooks/useActivateExample.js +1 -1
- package/lib-esm/hooks/useContentItems.d.ts +2 -2
- package/lib-esm/index.d.ts +1 -0
- package/lib-esm/index.js +1 -1
- package/lib-esm/jotai/app.js +1 -1
- package/lib-esm/jotai/operation.d.ts +4 -3
- package/lib-esm/jotai/operation.js +1 -1
- package/lib-esm/jotai/replay.d.ts +4 -0
- package/lib-esm/jotai/replay.js +1 -1
- package/lib-esm/models/operation.js +1 -1
- package/lib-esm/services/menu/builder.d.ts +1 -2
- package/package.json +5 -6
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,o,t,
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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,
|
|
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:
|
|
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:
|
|
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
|
|
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 {
|
|
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:
|
|
9
|
+
flatItems: ContentItemModel[];
|
|
10
10
|
};
|
|
11
11
|
export declare const useContentItems: ({ options, parser, }: UseContentItemsInput) => UseContentItemsReturnType;
|
|
12
12
|
export {};
|
package/lib-esm/index.d.ts
CHANGED
|
@@ -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
|
package/lib-esm/jotai/app.js
CHANGED
|
@@ -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:
|
|
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
|
|
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
|
|
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
|
+
};
|
package/lib-esm/jotai/replay.js
CHANGED
|
@@ -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
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
48
|
-
"@redocly/replay": "0.
|
|
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": "
|
|
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",
|